以Cradle CFD scFLOW進行流場分析,Actran進行聲學模擬。
本篇內容,參考自 Conference Paper :A machine learning-based methodology for computational aeroacous-tics predictions of multi-propeller drones. Internoise 2021。文章內的”本篇研究”、”這篇研究”,就是上述文章。建議閱讀原文。
這篇文章接續「機器學習助攻無人機設計!(一) AI能做什麼?實驗還需要做嗎?」一文,針對模擬分析流程進行說明。
模擬分析方法
這篇研究,針對機器學習整合模擬分析,提出 CFD、CAA 和機器學習的三個步驟的計算方法:
CFD 模擬-取得無人機周圍的流場數據
使用的軟體是 Hexagon 的 Cradle CFD scFLOW (2021)。
這裡的CFD模擬計算基準轉速 (18303 RPM) 下 -40% 到 0% 範圍內的 9 個不同轉速偏差,所產生的流場。採用 LES (Large Eddy Simulation) 方法,結合 WALE (Wall-Adapting Local Eddy-Viscosity)次網格尺度紊流模型。由於這裡要討論的目標的是轉速不同導致的噪音差異,因此採用四分之一模型,也就是只考慮一個旋翼和它周圍的流場,加上對稱邊界來模擬四個旋翼的情況,藉此節省計算量。同時為了提高預測精度,模型的大小也縮小到大約原本的一半,並且進行網格加密,進一步提高計算精度,整體網格數量大約一百一十萬個。雖然網格數量還是很多,但是每個網格對應的模型體積小了一半,表示它內部的平均應力會比較小。應力比較小也代表紊流的擾動對結構的整體影響比較小。另外,採用壓力式求解器(pressure-based solver)來計算非穩態(unsteady)問題,流體性質則是常溫常壓下的空氣密度、聲速和黏度。
作者也爲了驗證四分之一模型的正確性,計算並對比了整個模型以及四分之一模型的升力(Lift(N))隨時間/轉速(Rotation Number)的變化, 驗證其可行性。最後,分析結果得到不同轉速下每個旋翼周圍的流場數據 (速度、壓力和密度)。此外,也因為每次計算的時間長, 可以根據每一次CFD的計算產生7組不同的子工況(sub load case),這些數據將用於後續的 CAA 計算。
這裡的CFD模擬雖然也要求一定的計算精度,但與傳統的高精度CFD+CAA方法有所不同。計算精度的要求在滿足機器學習模型的需求,重點在於模擬數據能否正確的預測無人機轉速導致的噪音趨勢和規律。
CAA 聲學計算 – 計算麥克風位置的聲壓級
使用的軟體是 Hexagon 的 Actran (2021)。
這裡要模擬的是四個旋翼產生的氣動聲源的聲波傳播。將 CFD 模擬得到的流場數據作為氣動力聲源,用有限元素法 (FEM) 計算聲學傳播。假設無人機處在一個靜止的流體(空氣)中,這個流體位於一個半無響空間內,模型內不設置地面,以設置鏡像虛擬麥克風(在地面下方對稱位置設置一樣的聲源)模擬聲波碰到地面的反射效應。用於聲波傳播的流體介質假設為均勻介質,具有恆定的質量密度和聲速(與CFD模型中的設定相同)。整個模型需要網格劃分和邊界條件的設定,聲源傳播至整個聲學組件,四個旋翼周圍以Lighthill Surfaces進行建模,而整個聲學組件外層以無限元素(infinite elements)模擬在無響室中的無反射情況,同時也做為遠場波的解決方式。整體網格數約 2.48 x 105個。計算頻率從0到5kHz,取得每個麥克風位置492 個頻率的聲壓級(Sound Pressure Level(dBA))數據。在這一部分中由於7組不同的子工況和四個轉子以及九個轉速,一共有7 C(9,4) = 882個工況。
值得注意的是,CAA計算的部分,做了聲源的簡化 (Lighthill Surface)。傳統的高精度 CAA 計算,通常會直接在整個計算域內求解聲學方程,這需要非常精細的網格,計算量很大。這篇研究中,作者採用了 Lighthill’s analogy 的方法,只在每個周圍設置了四個 Lighthill Surfaces 。Lighthill Surface 是一個虛擬的邊界,可以將 CFD 計算得到的流場數據 (速度、壓力、密度等)「轉換」為聲源, 如此一來可以簡化計算。這樣做的好處是,只需要在 Lighthill Surface 附近有較精細的網格,而遠離旋翼的區域可以使用較粗的網格,從而降低了整體的計算量。
模擬方法總結
總結來說,上述使用的CFD和CAA方法可以視為傳統方法的一種革新。兩者都採用了模型簡化以及有限的工況組合來節省計算量,可以在保證一定精度的前提下,降低計算成本,提高預測效率,使得方法更具有工程應用的可行性。謹記模擬結果取得的目的,是用於機器學習模型中,對應「輸入/特徵」(四個旋翼的轉速偏差) 要給予「輸出/標籤」數據。
機器學習 – 模型訓練和使用
使用 Python 的 scikit-learn 套件 建立預測模型。(Python套件以外,Hexagon 的 ODYSSEE 軟體,是機器學習整合模擬的解決方案。)
將 CAA 計算得到的聲學數據作為訓練數據,使用機器學習演算法,透過 Python 的 scikit-learn 套件 建立預測模型。使用八個麥克風位置的 882 個樣本, 總共 7056 個數據進行訓練和測試,其中80% 作為訓練集,20%作為測試集。
此處的機器學習扮演了橋樑的角色,連接「輸入/特徵」(四個旋翼的轉速偏差,為預先設定的數值) 和「輸出/標籤」(八個麥克風位置的聲壓級頻譜,為CFD和CAA模擬的結果)。
簡單來說,機器學習模型會去學習不同輸入以及其對應的輸出之間的關係, 當以後輸入新的數據給模型,它就可以根據過去學習到的規律找出其對應的輸出值。也就是說機器會學到預測噪音頻譜的能力。作者使用了五種常見的迴歸演算法來訓練這個模型,包括Extra-Trees (額外樹)、Random Forest (隨機森林)、Gradient Boosting (梯度提升)、Adaptive Boosting (AdaBoost,自適應提升)、Support Vector Machine (SVM,支持向量機)。透過訓練,機器學習模型可以找出每個轉速差組合所對應的八個頻譜圖。
訓練好的機器模型,準確性驗證
做到這裡,很多人會問:「機器學習算出來的結果真的準嗎?會不會不符合實際狀況?」。下面我們就來討論這套研究流程方法的準確性:
- 與實驗數據的對比: 透過將預測的聲壓頻譜與實驗數據進行比較,可以發現在給定的條件和誤差範圍內,這套方法可以初步預測無人機噪音的聲壓頻譜。特別是在中低頻率範圍內預測結果與實驗數據相當吻合。但是高頻區域由於其高頻特徵(需要更小的計算網格以及時間步)而導致其數值與實驗相比會有一定程度上的預測偏差。而8號和2號測量點由於靠近排氣口和進氣口導致其數值會與測量數值差距較大,這反而驗證了模擬的正確性。可以說實驗數據提供了機器學習模型一個驗證的依據,在可接受的誤差範圍內,可以認定該模型是有效的。
- 五折交叉驗證和 MAE(Mean Absolute Error[dBA]) 指標: 透過五折交叉驗證可以更全面地評估模型的性能,避免模型發生過擬合的現象。而 MAE 則作為量化模型預測誤差的指標,數值越低表示模型的預測越準確。文章中的五種迴歸模型預測結果都提供了對應的平均絕對誤差。透過此方法可以得知在所有五種模型中,梯度提升(GB)具有最好的預測效果,這也是為何作者採用其作為最終模型的原因。而低的MAE也表示模型的預測結果與實際情況較為符合。
訓練集和測試集的誤差比較 : 比較模型在訓練集和測試集的 MAE 差距,可以評估模型的泛化能力,也就是對未知數據的預測能力。GB 模型在兩者上的表現都不錯, 這表示模型預測能力較好,並且沒有過擬合現象。也就是說這個模型預測未知數據的能力不錯,可以放心的使用。
實驗數據,模擬數據,機器學習的關係
這項研究巧妙地將三者結合在一起:
- 實驗數據:為研究提供了基礎和驗證的標準,並揭露了問題的複雜性。這裡的數據沒有直接應用於機器學習的訓練。雖然數據本身有一些實驗誤差,但是仍然對模擬和預測提供重要的方向。然而,因為實驗所得的數據量不夠,輸入特徵難以取得,實驗本身也有誤差等等的問題,所以沒有直接用於機器學習。最後,用來對比預測模型產生的數據、深入定義研究的問題和幫助數值模擬的最佳化。
- 模擬數據: (CFD -> CAA) 的最終結果,提供了機器學習模型所需要的訓練數據。建構了ML模型訓練用的「輸入/特徵」和「輸出/標籤」之間的關係。
- 機器學習:其結果建立了預測模型,實現了對不同情況下無人機噪音的快速預測。它作為橋樑,將不確定的輸入(轉速差)和想要得到的結果(各個麥克風位置的頻譜) 進行對應,以應用達到預測或優化設計的目的。
下一篇,我們將延續這篇研究的內容,來討論這個革新的流程,對研發無人機的幫助。
想了解流場分析和聲學模擬如何進行?歡迎和我們的