劉煒 陳立平 丁建完
摘要:
Modelica技術難以仿真動態特性在空間上非定常分布的流動、傳熱和燃燒等復雜問題,因此提出一種基于MWorks與FLUENT的協同仿真方法,設計協同仿真的耦合方式、數據交換機制和仿真架構,利用Modelica外部函數、MWorks仿真用戶接口和FLUENT UDF編寫協同仿真程序.以某單向閥為研究對象對此協同仿真方法的有效性進行驗證.所提出的方法可實現Modelica技術與CFD技術的優勢互補,能夠為多領域系統仿真提供新的解決方法.
關鍵詞:
多領域系統仿真; 協同仿真; 動態特性; Modelica; MWorks; FLUENT
中圖分類號: TP391.9
文獻標志碼: B
Abstract:
Modelica can hardly simulate the complex issues such as fluid flow, heat transfer, combustion, etc., in which the system behaviors are distributed in space unsteadily. To solve the problem, a method of cosimulation between MWorks and FLUENT is proposed. The coupling mode, data exchange scheme and simulation architecture are designed for cosimulation. The cosimulation program is implemented using Modelica external function, MWorks simulation user interfaces and FLUENT UDF. The cosimulation method is verified by a simulation example of check valve. The complementary advantages of Modelica and CFD technique are implemented by the method, which is a new method for multidomain system simulation.
Key words:
multidomain system simulation; cosimulation; dynamic characteristics; Modelica; MWorks; FLUENT
0引言
隨著科學技術和工程實踐的發展,現代產品系統日益復雜,其研發難度不斷增加.仿真技術作為產品研發設計的支撐工具和方法,能夠有效降低研發成本,提高產品性能,縮短研發周期.系統涉及多個學科領域的耦合交互是產品復雜性的主要表現之一.[1]現有的大部分仿真平臺適合特定學科的仿真,對多領域耦合系統仿真的支持不足,逐漸無法勝任復雜產品整體動態性能的快速協同仿真.[2]目前,Modelica已成為全球多領域統一建模語言的標準[3],是未來的發展趨勢,可為復雜多領域耦合系統的仿真提供有效的解決方案.MWorks是完全支持Modelica的多領域工程系統建模仿真平臺,提供從可視化建模、仿真計算到結果分析、優化的完整功能.[4]
Modelica技術適合系統級動態特性和控制器性能的仿真,其模型為零維集中參數模型和離散數目很少的一維模型[5],難以仿真行為屬性在空間上非定常分布的復雜問題.隨著CFD技術的發展,FLUENT等商用CFD軟件可以很好地模擬流動、傳熱和燃燒等涉及流場的問題.Modelica技術和CFD各有優勢,因此開展Modelica模型與FLUENT的協同仿真,實現兩者仿真能力的互補,能夠為多領域系統的仿真提供有效的新手段.文獻[6]開展Modelica技術與FLUENT軟件的協同仿真研究,利用MWorks與MATLAB/SIMULINK的軟件接口,導出SFunction模塊,然后在SIMULINK中通過編寫額外的SFunction模型實現與FLUENT的通信.此方法間接依賴MATLAB/SIMULINK軟件,不能充分地發揮Modelica技術的優勢,且步驟繁多,效率較低.本文研究MWorks直接與FLUENT協同仿真的理論和實現方法.
1協同仿真的實現基礎
1.1Modelica外部函數和對象
Modelica模型除可以調用Modelica語言編寫的函數外,還可以調用其他語言編寫的函數,目前支持C和FORTRAN 77.這些語言編寫的函數稱為外部函數[3],其結構見圖1.外部函數接口支持許多高級的特征,例如使用C語言實現需要的功能,可極大擴展Modelica的仿真能力.
1.3FLUENT用戶自定義函數
FLUENT是目前可用的、功能強大的CFD軟件工具,能夠讓用戶更深入、更快速地優化產品性能.FLUENT內置豐富的、經充分驗證過的模擬流動、湍流、熱傳導和工業應用相互作用所需的物理建模模塊,能為廣泛的CFD和多物理場應用提供快速、精確的結果.FLUENT用戶自定義函數(UserDefined Function, UDF)是可以被FLUENT求解器動態加載的C語言函數.UDF大大地增強FLUENT的標準功能,能夠自定義邊界條件、介質屬性、反應率、源項和擴散率等,調整迭代中的計算值,在迭代開始、結束時或異步讀寫求解器的數據和執行特定的操作,擴展和增強現有的數學模型.UDF讓FLUENT通過C語言程序實現與外界的交互.
2協同仿真的方案設計
2.1仿真系統的耦合方式
協同仿真往往包含2個或以上的在不同仿真軟件工具中建模的子系統模型,見圖3.模型S1在軟件工具T1中建模,模型S2在軟件工具T2中建模,他們由不同的控制方程表達,但是模型S1和S2具有共同的變量x和y,不能分開求解.
協同仿真的實現通常有2種耦合方式:一種是將所有不同仿真工具的模型集成到同一個仿真環境中,聯立求解控制方程,即模型的耦合,稱為強耦合;另一種是將每個子系統模型在各自的求解器中求解,求解器之間交換所需的變量值,即求解器的耦合,稱為弱耦合.弱耦合的一種交錯求解流程見圖4.
Modelica模型與FLUENT模型相差甚遠,難以將其方程轉換到同一個仿真環境中.本文選擇弱耦合的方式實現MWorks和FLUENT的協同仿真.2次數據交換時刻的間隔稱為通信步長.在單步求解時,由于通信步長和積分步長不一致,或者某些算法在積分步長內的多次計算需要,很可能出現在非數據交換時刻對輸入數據進行取值.在數據交換時刻,求解器會直接采用輸入值,而在非數據交換時刻,求解器會近似取值,這樣給仿真帶來偏差.協同仿真首先推薦采用定步長算法,保持通信步長與積分步長一致,或通信步長是積分步長的倍數;若采用變步長算法,應控制積分步長不大于通訊步長,有利于消除偏差.
2.2數據交換方式
數據交換是實現MWorks與FLUENT協同仿真的關鍵步驟,根據MWorks和FLUENT的擴展編程功能,可以通過3種方式實現數據通信.第一種是利用MWorks的仿真用戶接口與FLUENT訪問求解器數據的UDF宏,直接進行通信;第二種是讓MWorks的外部函數與FLUENT的求解器訪問共享的文件或內存實現通信;第三種是將網絡通信的服務器端和客戶端嵌入到MWorks的外部函數和FLUENT的UDF中,利用網絡通信協議的發送和接收實現通信.3種數據交換方式見圖5.應該根據仿真需求選擇合適的方式.本文考慮簡易性和交換速度,第一種交換方式是最佳選擇.
2.3協同仿真的架構和流程
根據MWorks和FLUENT仿真的運行機制,確定以FLUENT為主控端、MWorks為從屬端的主從模式架構,見圖6.模型構建和仿真準備工作完成后,整個仿真過程在FLUENT中執行.
分別在MWorks和FLUENT中構建對應的子系統模型,并確定耦合的子系統和變量.在MWorks中將Modelica模型轉換為包含模型和求解器的動態鏈接庫.編寫FLUENT的UDF程序,主要內容有壓力、流量、作用力的計算函數,并在對應的宏中調用,包括:在DEFINE_PROFILE中定義CFD模型的邊界條件;在DEFINE_ON_DEMAND中加載MWorks的dll;實例化、初始化和終止MWorks仿真模型;在DEFINE_EXECUTE_AT_END中實現數據的交換和MWorks求解器的運行控制;控制動網格、調整求解和定義介質屬性的相關宏等.最后,將UDF源代碼編譯,加載到FLUENT中,將所有的宏綁定到對應的執行節點.至此,仿真前期的準備任務已經完成.
仿真階段MWorks和FLUENT的協同仿真流程見圖7.
先初始化FLUENT模型,然后執行DEFINE_ON_DEMAND宏,加載、實例化、初始化MWorks模型.設置FLUENT求解的相關參數,開始迭代求解.每當FLUENT完成一個時間步長的計算,進行一次數據交換,同時MWorks求解器也向前推進相同步長的計算.當計算到達仿真結束時刻時,FLUENT求解完成.最后,執行DEFINE_ON_DEMAND宏,終止和卸載MWorks模型.
3協同仿真案例分析
為驗證MWorks與FLUENT協同仿真的有效性,以一個單向閥為例進行仿真分析.單向閥的入口和出口壓力變化、閥芯運動和彈簧力在MWorks中建模,而單向閥內介質的流動和液體壓力在FLUENT中建模.MWorks模型將端口壓力、閥芯位移傳給FLUENT模型,FLUENT模型將端口流量和液壓力傳給MWorks模型.單向閥的幾何和網格模型見圖8,邊界條件和閥芯移動的動網格由UDF設置,同時要計算閥芯受到的液壓力和端口的流量,傳遞給MWorks.
單向閥在MWorks中的Modelica模型見圖9.用于協同仿真的模型與普通模型相對,增加接口適配模型和協同仿真數據傳遞模型.接口適配模型是將Modelica的非因果連接器轉換為輸入、輸出變量,協同仿真數據傳遞模型包含交互變量、外部函數等,實現Modelica模型與外界交互的功能.
將Modelica模型轉換為dll后,在FLUENT中執行協同仿真.單向閥在進出口壓力的作用下打開再關閉,閥芯的運動位移見圖10.結果表明協同仿真能夠很好地模擬單向閥的動態特性.
4結束語
針對Modelica技術難以仿真行為屬性在空間上非定常分布的流動、傳熱和燃燒等復雜問題,提出MWorks與FLUENT協同仿真的基本方法.本文的研究結論主要有以下幾點:(1)Modelica外部函數、MWorks仿真用戶接口和FLUENT UDF是實現協同仿真的基礎;(2)設計協同仿真的耦合方式、數據交換機制和架構及流程,編寫協同仿真程序;(3)以單向閥仿真案例驗證協同仿真方法的有效性.
本研究為多領域系統的仿真提供有效的新思路和解決方法.
參考文獻:
[1]王克明, 熊光楞. 復雜產品的協同設計與仿真[J]. 計算機集成制造系統, 2003, 9(S1): 1519. DOI: 10.3969/j.issn.10065911.2003.z1.004.
WANG K M, XIONG G L. Cooperative design and simulation for complex product[J]. Computer Integrated Manufacturing Systems, 2003, 9(S1): 1519. DOI: 10.3969/j.issn.10065911.2003.z1.004.
[2]周凡利. 工程系統多領域統一模型編譯映射與仿真求解研究[D]. 武漢: 華中科技大學, 2011.
[3]FRITZSON P. Principles of object oriented modeling and simulation with Modelica 3.3: A cyberphysical approach[M]. New Jersey: John Wiley & Sons, 2014.
[4]ZHOU F L, CHEN L P, WU Y Z, et al. MWorks: a modern IDE for modeling and simulation of multi domain physical systems based on Modelica[C]// Proceedings of the 5th International Modelica Conference. Vienna, 2006: 725731.
[5]劉煒, 陳立平, 朱明清. 分布參數熱流體系統的面向對象建模研究[J]. 計算機仿真, 2015, 32(11): 229233. DOI: 10.3969/j.issn.10069348.2015.11.052.
LIU W, CHEN L P, ZHU M Q. Objectoriented modeling for distribution parameter thermofluid system[J]. Computer Simulation, 2015, 32(11): 229233. DOI: 10.3969/j.issn.10069348.2015.11.052.
[6]趙建軍, 駱雪芹. 基于Modelica技術與FLUENT的氣浮運動平臺聯合仿真[J]. 組合機床與自動化加工技術, 2014(5): 9699. DOI: 10.13462/j.cnki.mmtamt.2014.05.024.
ZHAO J J, LUO X Q. Cosimulation of ultraprecision motion stage based on Modelica and FLUENT[J]. Modular Machine Tool & Automatic Manufacturing Technique, 2014(5): 9699. DOI: 10.13462/j.cnki.mmtamt.2014.05.024.
[7]丁建完. 陳述式仿真模型相容性分析與約簡方法研究[D]. 武漢: 華中科技大學, 2006.
(編輯武曉英)