?

面向高端裝備智能研制的流場仿真平臺開發

2023-10-29 01:31張欣超張洪輝
計算機仿真 2023年9期
關鍵詞:算例文件夾流場

張欣超,彭 飛,2*,張洪輝

(1. 中車工業研究院有限公司,北京100071;2. 清華大學工業工程系,北京100084)

1 引言

隨著人工智能、數字孿生、5G等技術的快速發展,以“數據+算力+算法”為核心的智能制造技術體系日趨成熟。工業多場(流-固-熱-電-磁-聲)仿真軟件作為大型裝備智能制造實現的必需使能工具,是企業數字化轉型和智能化升級的關鍵。流體通常為大型裝備(航天器、機車、汽車等)實際服役過程的激勵源,易引發氣動噪聲、流致振動、生熱等問題,為此類裝備的精準設計、安全服役和失效評估帶來諸多困難。因此,如何實現大型裝備流場性能準確模擬和量化預測具有重要的理論研究價值和現實意義。

OpenFOAM是一個完全由C++編寫的,在Linux下運行,面向對象的計算流體力學類庫。OpenFOAM跟商用的CFD軟件Ansys Fluent,CFX類似,但其作為開源,采用類似于我們日常習慣的方法在軟件中描述偏微分方程的有限元體積離散化。目前很多學者對OpenFOAM理論進行了研究。鄭澄遠[1]對OpenFOAM中的核心代碼進行了提取分析。孟德龍[2]將OpenFOAM移植到超級計算機神威太湖之光上,體現了OpenFOAM軟件的重要性。黃剛[3]基于OpenFOAM設計了一種兩相復雜流體數值求解器:FHRP-FOAM,用于研究二元聚合物混合液在相分離時的非平衡穩態現象,同時分析了求解器的并行瓶頸,提出了基于異步規約通信的并行性能優化方法。由于OpenFOAM的使用基本是在Linux或者Windows下虛擬機進行,對于大部分Windows系統使用者需要花費大量精力進行學習,因此在Windows為其開發界面是具有重要研究意義的。

針對熱-流-固耦合,一直是國內外計算流體力學專家所研究的問題,其需要將復雜模型中的流場、溫度場及應力場等多物理場之間的耦合關系進行研究,已經成為目前多場耦合的重點研究之一。Li等[4]基于不可壓縮流體的N-S方程及能量方程,對飛機電動靜液壓執行器中軸向柱塞泵閥板摩擦副進行了熱-流-固耦合分析。趙飛云等人[5]針對吊籃結構模型的熱-流-固耦合問題進行了分析。黨旭光[6]從理論上對三個物理場耦合模型進行了介紹,并在熱-流-固耦合的基礎上提出了如何建立其有限元仿真模型。Lei等[7]對超聲速流動的復雜服役情況進行了熱-流-固耦合的模型設計并進行了分析。而OpenFOAM在進行流-固耦合及熱-流-固耦合工作時,往往需要與Windows系統下其他軟件(如Ansys等)結合使用,由于OpenFOAM輸出數據結構格式固定,難以與其他軟件進行數據交互,使得自動化過程變得困難。

針對大型裝備,如機車、飛機、汽車等,對這類模型進行流場分析時,由于其服役情況基本相同,其仿真分析過程便逐漸趨向流程化。劉洪泉[8]采用ANSYS FLUENT軟件對飛行器進行模擬,獲得模型外流場的溫度、壓力、密度、速度等物理參數的分布,并將流場結果導入進行耦合模擬,獲得結構場的物理參數分布。彭佳艷等人[9]通過對高速機車車頭運動過程進行流程分析,研究分析了高速機車車頭壓力隨速度的變化情況,通過仿真得出高速機車車尾流線和湍流變化。黃森仁等人[10]針對某SUV車型的中后期造型階段的CAS面模型,經過幾何清理和模型網格劃分,構建了整車CFD計算模型并進行了模擬仿真分析,通過分析結果指出了影響氣動阻力的車身關鍵部件,為后續汽車外形的進一步優化指出了方向。彭昌明[11]討論了汽車外流場仿真分析方法,建立了汽車外流場有限元仿真模型并進行了數值模擬,通過對汽車外流場參數分析來獲得汽車外流場空氣動力學的主要特性并進行優化研究。目前大多數人都還采用商業軟件進行流場計算,如ANSYS等,但其對于企業來說,使用成本較高,同時其開發接口存在諸多限制,二次開發的難度較大,不便于后續研究的進行。

本文基于OpenFOAM交叉編譯可執行文件及C++語言開發了大型裝備用流場仿真定制軟件平臺,旨在對大型裝備進行流-固耦合及熱-流-固耦合中的流場及傳熱分析。針對大型裝備,其服役環境往往相差不大,在進行類似大型裝備的流場分析時,僅需要修改其模型即可。本研究將OpenFOAM集成到C++平臺下,通過界面參數輸入及按鈕驅動來調用OpenFOAM,增強了其自動化功能。同時,便于研究者進行模型、自研算法等源碼的集成,適用于行業知識沉淀,同時為后續軌道交通等裝備多場多層級多尺度性能自動仿真及面向數字孿生下的產品正向設計和自主創新,提供了有效的使能工具。

2 OpenFOAM交叉編譯及功能調用

鑒于OpenFOAM軟件基于Linux系統開發,當用于Windows環境與自編程序或力學仿真軟件(ANSYS、ABAQUS等)進行流固耦合仿真時,需實現數據的自動傳遞。故需實現OpenFOAM的交叉編譯來獲得其在Windows環境下的可執行文件。

2.1 Openfoam軟件交叉編譯方法及實現路徑

OpenFOAM的交叉編譯采用Ubuntu系統來實現,其實現方法為:

在SourceForm頁面獲取OpenFOAM及ThirdParty壓縮包;

安裝交叉編譯所需要的安裝包,如mingw32、w3m、flex、wget、zlib等;

下載PatchesNBatches170壓縮包,并將其放入OpenFOAM目錄下進行解壓,用于修補程序。

修改ThirdParty-1.7.0文件內的Build-mingw44及Build-mingw45;

設置環境選項;

運行build-mingw44或build-mingw45,構建MinGW交叉編譯器;

運行OpenFOAM內的wmake文件進行交叉編譯;

將文件復制到Windows下,即可進行使用。

交叉編譯實現路徑如圖1所示。

圖1 OpenFOAM交叉編譯實現圖

2.2 基于MFC的Openfoam調用實現

軟件編寫流程圖如圖2所示。

圖2 軟件設計思路流程圖

圖2中,軟件界面采用MFC進行設計,算例模板內容包含于設計文件中,調用OpenFOAM則采用CreateProcess函數完成,輸入命令則通過管道技術完成。

2.3 裝備流場性能仿真模板文件

OpenFOAM作為CFD開源軟件,主要包括前處理、求解器、后處理三個部分,其中,前處理主要包括計算模型的網格劃分,初始條件和邊界條件的設置,物性參數的設置、控制方程和離散方程的設置和離散方程的求解設置等,本文在前處理中,將網格細化參數、初始條件等設置為界面輸入,控制方程和離散方程內容則采用模板內容;求解器作為OpenFOAM的核心部分,每個求解器都可以對不同的流體類型進行求解,其中包括不可壓縮流體求解器、燃燒求解器及應力分析求解器等,本文以不可壓縮流體求解器中的simpleFoam求解器為例,進行開發,本文方亦適用于其他類型求解器。

OpenFOAM算例由三個文件夾組成,分別是0、constant及system,使用時,需要調用這三個文件夾下的字典來進行求解。

1) 外網格及模型網格劃分模板及參數設置

在OpenFOAM中,首先需要生成外部網格,外網格是采用blockMesh命令來生成,其調用的是blockMeshDict字典,該字典內命令如表1所示[12]。

表1 blockMeshDict字典命令

對于本文研究對象,將block設定為大于飛機模型的模板,以保證模型改為機車或汽車時,模型能夠在block里面,同時也方便操作者的使用。

生成外網格后,第二步是使用snappyHexMesh調用位于system文件夾下的snappyHexMeshDict文件,該文件用于在block劃分出所需要的復雜模型的網格,其主要字典命令如表2所示[12]。

表2 snappyHexMeshDict字典命令

其中,castellatedMeshControls主要用來控制網格切分,其主要信息如表3所示[12]。

表3 castellatedMeshControls字典命令

在snappyHexMeshDict文件中,大多數參數可以按照模板給定,但geometry以及refinementSurfaces需要按照實際進行修改,本文將geometry及refinementSurfaces需要修改的內容通過界面給定,geometry及refinementSurfaces使用如下:

geometry

{

chetif.stl ∥需要用到的stl模型文件名稱

{

type triSurfaceMesh;

name chetif; ∥按照模型文件名稱進行修改

}

refinementSurfaces

{

chetif

{

level (3 5); ∥用于指定需要細化的STL幾何面及它們細化的最小和最大程度( )。

}

}

2)計算流程及數據文件模板

在進行計算之前,需要對許多參數進行設置,由于OpenFOAM需要設置的內容過多,本文只對需要修改的重要參數進行說明,其他參數均為OpenFOAM自帶摩托車算例模板內容。

1) 修改速度及壓強

這兩個參數位于0文件夾下initialConditions,速度設置格式為(Ux Uy Uz),壓強通常設置為0,除此之外,由于采用的kOmegaSST湍流模型(可壓縮-多相),還需在該文件中設置k及ω,ω表示的是每單位體積單位時間的能量耗散,ω的倒數表示湍流的時間尺度,kω則類似于湍流耗散率ε。在本文中,這兩個參數均采用模板數值。

2) 動力粘度系數v

該參數位于constant文件夾下的transportProperties文件中,通常設置為1.5e-5。

3) 求解器選則

該部分參數位于system文件夾中的fvSolution中,用于設置矩陣求解器、殘差及其他算法控制,本文求解器選擇simpleFoam求解器,其余參數均使用默認值。

simpleFoam為OpenFOAM中穩態不可壓縮流動(層流或者RAS湍流)求解器,其壓力速度耦合采用的simple算法,simple算法的基本思想為:在流場仿真中,速度場是根據設定的壓力場通過離散形式的控制方程 求得的[13],其通過迭代方法求解耦合的Navier-Stokes方程。N-S方程表達式如(1)式所示[14]。

(1)

4) 離散格式

該部分參數位于system文件夾中的fvShcemes中,本文均采用默認參數值。

5) controlDict設置

該文件位于system文件夾下,主要用于控制求解開始/終止時間,時間步及輸出數據參數,本文采用輸出數據為acsii碼格式。

在完成snappyHexMesh后,算例文件下會生成1、2、3三個文件夾,代表三個時間步,此時需要將0文件夾中修改好的問價復制到3文件夾下,該部分操作通過C++代碼實現。

完成上述所有步驟后,向OpenFOAM中輸入simpleFoam命令使其開始計算,計算耗費時間較長。

完成計算后,OpenFOAM會輸出網格信息及每個時間步的速度、壓強變化。網格信息位于constant文件下的polyMesh文件夾,主要有faces、neighbour、owner、points等文件,其中,points內容為每個節點的坐標;faces內容為組成每個面單元的節點;owner內容對應于faces內容,映射了面單元所屬于的體單元;neighbour內容同樣對應于faces,映射了面單元相鄰的體單元,該文件只包含內部單元,不說包含邊界單元。OpenFOAM輸出文件內容如圖3。

圖3 OpenFOAM輸出文件格式

由此,完成了OpenFOAM仿真計算及參數輸出,結果可視化可以選用ParaView等軟件進行。

3 大型裝備流場性能智能仿真工具開發

工具為OpenFOAM開發了友好的界面,讓操作者能夠直觀的通過界面輸入求解內容并調用OpenFOAM進行求解,同時,本文為簡單的流場求解,如機車、汽車等提供了模板算例,使操作者能夠大大節約時間,解決了OpenFOAM操作繁瑣的問題。

3.1 界面規劃

軟件主要分為四個區域,第一個區域為工作路徑設置區域,內容為輸入OpenFOAM可執行文件路徑、算例路徑、模型路徑及模型名稱;第二個區域為參數設置區域,內容為速度、湍動能、湍流頻率及運動粘度系數等參數的輸入;第三個區域為求解參數設置,內容為網格細化程度、求解時長及輸出結果文件的時間間隔設置。

軟件的主要功能分為:

1) 界面部分:軟件界面通過C++及MFC編寫,通過將輸入到界面的OpenFOAM執行文件、算例文件、模型文件路徑,及用于求解的速度等參數傳遞到求解器中進行求解,并將結果文件輸出到指定文件夾。

2)求解部分:通過C++中的CreateProcess函數及管道技術來調用OpenFOAM可執行文件,并向其傳遞運算命令,求解部分則使用OpenFOAM內的simpleFoam求解器。本文以SimpleFoam求解器為例進行相關功能展示,其他求解器開發亦可采用該方式實現。

3) 數據處理:用于提取計算生成的流場壓力、速度、加速度、溫度等結果,并生成可視化所需圖像。

3.2 關鍵數據格式及可視化

軟件功能流程圖如圖5所示。

軟件的操作流程較為簡單。在運行軟件后,首先進入一個初始操作界面,軟件操作界面如圖4所示。操作界面提供了OpenFOAM可執行文件路徑輸入框、算例文件輸入框及STL模型文件輸入框,同時提供了速度、網格細化等級、求解時長及輸出數據時間間隔等參數輸入框。計算結果采用ParaView查看,并將圖像返回到軟件界面,如圖5所示。

圖4 軟件初始操作界面示意圖

圖5 軟件功能流程圖

4 仿真平臺應用案例

采用上述軟件開發方法,實現了三類重要裝備流場性能仿真。

4.1 航天器流場性能仿真及結果可視化

由于缺少航天器相關知識,無法獲得航天器在運行時的環境參數,本文選用飛機著陸時的環境參數及速度。在飛機著陸時,由于硬著陸或不適當的著陸技術,導致輪胎(由于空氣或陸地撞擊)及減震支柱產生較高應力,導致它們更快磨損或斷裂,對飛機造成損壞,因此對飛機的仿真是十分有必要的。本文選用著陸速度為35m/s,湍動能為8,湍流頻率為52,運動粘度系數為1.5e-05。計算后通過ParaView返回圖像如圖6所示。

圖6 飛機模型壓力場

4.2 機車流場性能仿真及結果可視化

電力機車作為鐵路運輸的重要角色,研究其運動時車頭壓力分布是十分有必要的。本文取電力機車運行速度132km/h、湍動能0.24、湍流頻率1.78、運動粘度系數1.5e-05[15]。在界面輸入參數后,通過ParaView輸出其壓力云圖,并返回到界面如圖7所示。

圖7 機車模型壓力場

4.3 汽車流場性能仿真及結果可視化

對汽車而言,CFD對計算其車體所受壓力及汽車車身造型設計都具有重要作用,在高速運行時,汽車服役環境與電力機車相差很小,本文取汽車速度為120km/h[10],其余參數參照4.2節中電力機車參數,計算后通過ParaView返回圖像如圖8所示。

圖8 汽車模型壓力場

5 結論

1)開發的OpenFOAM界面軟件能夠實現對常態服役情況的機車、汽車及飛機等交通工具進行流場仿真并計算出其壓力場用于應力計算。

2)軟件具有簡單、友好的界面,操作簡潔,使操作者能夠準確在界面輸入求解來獲得壓力場結果。

3)通過上述算例可以發現,對機車、汽車及飛機等進行壓力場計算是十分有必要的,可以用來預測壓力是否會引起這些大型裝備外部的變形。

4)由于軟件局限性,只能對單一服役情況的機車、汽車及飛機進行流場計算,并且在軟件開發過程中只使用了OpenFOAM中的simpleFoam求解器,OpenFOAM所包含的內容還有很多沒有進行開發,需要進一步改善。

猜你喜歡
算例文件夾流場
磁力文件夾
大型空冷汽輪發電機轉子三維流場計算
轉杯紡排雜區流場與排雜性能
摸清超標源頭 大文件夾這樣處理
調動右鍵 解決文件夾管理三大難題
基于HYCOM的斯里蘭卡南部海域溫、鹽、流場統計分析
掛在墻上的文件夾
基于振蕩能量的低頻振蕩分析與振蕩源定位(二)振蕩源定位方法與算例
基于瞬態流場計算的滑動軸承靜平衡位置求解
互補問題算例分析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合