?

面向對象的柴油機多功能仿真軟件開發與應用

2021-10-19 09:06陳昊天鄧康耀
內燃機工程 2021年5期
關鍵詞:容積計算結果氣缸

陳昊天,張 琨,鄧康耀,2,王 真,崔 毅,2

(1.上海交通大學 動力機械與工程教育部重點實驗室,上海 200240;2.高新船舶與深海開發裝備協同創新中心,上海 200240;3.天際汽車科技有限公司,上海 201821)

0 概述

仿真模型和軟件在發動機的研究和設計工作中起著十分重要的作用。在發動機基礎研究過程中,仿真分析可以獲得試驗難以測量的參數,更深入地探尋宏觀、微觀機理和規律;在設計開發過程中,可以預先得知發動機的性能并加以改進,減少對試驗的依賴,降低開發成本,顯著提高開發效率。

在發動機工作過程仿真方面,國外在20世紀70年代就開發了充滿-排空模型(filling and empty model)[1]、一維特征線計算模型[2],到20世紀90年代又開發出了基于有限容積法的模型[3]。在這些模型和算法的基礎上,開發了具有圖形化界面、通用的商業軟件,市場占有率比較高的有美國GAMMA Tech公司的GT-Power、奧地利AVL公司的Boost、英國Ricardo公司的WAVE等。國內也在20世紀80年代開展了發動機性能仿真研究,并不斷改進仿真算法以提高計算精度和效率[4-5]。國內雖然在發動機性能仿真算法研究方面基本與國外同步,但是在通用性能軟件開發方面與國外仍有較大差距。開發具有自主知識產權的發動機仿真軟件,對提升發動機的設計開發水平尤其是非常規用途發動機開發,具有重要的意義。

程序開發的一個難點在于實際問題的抽象化及模型的選擇。本文中介紹了一種發動機性能仿真軟件的開發思路,將復雜的發動機物理模型抽象成可以編程實現的數學模型,并基于此開展了一種全新的發動機性能仿真軟件開發工作;為發動機的關鍵計算組件提供了多種計算模型,可以使用戶根據建模的需求進行選擇。另一個難點在于程序要有較多的功能和較好的通用性。本文中建立了一個通用程序架構,可以實現多種性能仿真計算模式,包括穩態下的一維詳細計算、容積法計算、實時計算及瞬態計算,且便于開發工作者對其進行修改和擴展。其中,實時計算是相較于當前的商用軟件增加的一種計算功能,可應用于發動機控制,如硬件在環系統的開發[6]。除此之外,基于QT開發了軟件的前后處理圖形界面,為軟件的使用提供了極大的便利。

本研究搭建了新穎的性能仿真程序框架并完成了軟件開發工作,包含了目前商用軟件欠缺的實時計算功能,為發動機性能仿真軟件的開發和發展提供了新的思路。

1 軟件架構設計

軟件的組成主要包含可視化的建模界面、實現多種求解功能的求解程序和可視化的后處理繪圖界面三部分。用戶需要在界面上從已經建立好的模型庫中選擇子模型,根據模型的需要鍵入實際的發動機結構參數等;建模工作完成后,預處理生成接口文件,由求解程序去讀取并計算;計算結果輸出到設置路徑下,然后由后處理界面讀取。軟件流程示意圖如圖1所示。

圖1 軟件執行流程

求解程序是仿真軟件的核心,其優劣一定程度上取決于程序框架的好壞。以容積法求解功能為例,介紹求解程序的框架搭建和設計思想。本研究的求解程序基于C++語言開發。

發動機物理模型的主要組件包括環境、增壓器、中冷器、進排氣容積、氣門、氣缸等,各個組件之間相互連接組成完整的模型,所以可以采用圖論的基本理論把模型抽象成一個有向圖[7]。各個組件代表各個節點,組件之間的連接關系代表有向圖的邊,各個節點之間通過有向邊來進行數據的傳遞,如圖2所示。圖中,E為環境,K為壓氣機,T為渦輪,I為中冷器,V為氣門,C為氣缸,P為容積。

圖2 發動機模型有向圖

基于這個假設,可以定義兩個類,組件類用Component表示,連接類用Link表示。組件類代表有向圖的節點,如圖3所示。連接類表示有向圖的邊,如圖4所示。組件類中定義幾個通用的接口,ReadFromCase() 表示數據的讀??;UpdateParameter()表示某個組件的迭代計算,取決于開發者選取的算法,是發動機仿真模型的核心;WriteOutput()表示計算結果的輸出和傳遞。連接類包含了兩個指針,分別指向上游和下游的組件,用來表征連接關系。

圖3 組件類示意圖

圖4 連接類示意圖

組件類只是一個抽象類,對發動機模型的各個部件,也會寫實際的類來繼承組件類,如氣缸類Cylinder,進排氣容積類Volume等。然后根據需求,對組件類中的接口進行重寫,如氣缸類需要增加燃燒過程計算函數Combustion()等,進排氣容積類需要增加傳熱計算函數Heattransfer()等,增壓器類需要增加圖譜插值函數Interpolation()等,如圖5所示。容積法計算模式下需要寫7個子類,如表1所示。為了方便開發者對源程序進行修改或補充(如增加新的計算部件),采用C++設計模式中工廠模式來設計框架,ComponentFactory類為組件工廠類,getComponent()則為創建組件對象的函數。此外,為了提升程序的通用性,發動機特有的參數在界面中輸入而不是在程序內部修改。

圖5 Component類的繼承和工廠模式

在組件類和連接類定義完成之后,要實現不同的計算功能,還需要設定不同功能下程序的算法,如設定需要調用的模型、模型的調用次序及計算終止的判斷。以穩態計算為例介紹求解器的執行過程。首先要創建組件類和連接類對應的對象;然后從界面讀取輸入的參數,進行初始化;完成之后根據設定的迭代步長及選定的算法進行迭代計算,并進行對象之間的數據交互;然后每個循環結束進行收斂判別,全部收斂則結束,否則調整參數重新計算直到收斂。執行過程如圖6所示。

表1 組件類的子類

圖6 求解程序運算流程

2 軟件算法介紹

2.1 子模型的介紹

程序的框架設計好之后,需要將發動機各個組件的計算模型寫進其對應的計算單元中。為了滿足用戶的不同建模需求,發動機關鍵組件如氣缸、進排氣道、渦輪增壓器等包含了多種計算模型。

氣缸模型主要包含燃燒模型和缸內傳熱模型。燃燒模型包括零維模型[8]、多區模型[9-10]、KIVA耦合計算模型。傳熱模型采用Woschni模型[11]。

在一維計算模式中,進排氣管道流動用一階擬線性偏微分方程描述,用守恒型的有限體積法離散,求解格式包括一階ROE格式、二階TVD格式[12-13]及三階ENO格式[14]。

管接頭計算包括定壓模型、壓力損失模型和動量守恒邊界模型[13,15]。定壓模型假定接頭處為等壓、等熵流場。壓力損失模型則考慮了管道接頭處的壓降。邊界處均采用特征線法計算。

對于渦輪增壓器,程序中提供了3種計算方法。一種是直接輸入渦輪和壓氣機的脈譜圖,利用流量、壓比、轉速、效率之間的關系,通過拉格朗日插值得到數據點的參數。由于插值函數的存在會限制程序的計算速度,因此提供了另一種快速計算方法,用多項式擬合圖譜中的轉速線和效率線,然后程序執行過程中直接調用多項式計算數據點的參數。上面兩種方法需要提供準確的脈譜圖,并且不具有預測性?;谇皟煞N方法存在的局限性,程序中提供了一種基于增壓器詳細結構參數的預測模型[16]。

在容積法計算模式中,中冷器和進排氣容積主要是以一階微分方程的形式進行熱動力參數的計算[17]。在瞬態計算模式下,要考慮曲軸系和渦輪增壓器軸的動力學方程[18]。

2.2 不同計算模式的算法對比

軟件包含幾種主要的計算功能,一維計算、容積法計算及實時計算。不同的計算模式選擇的算法會有所區別。針對微分方程的求解方法,一維計算采取四階龍格庫塔法,容積法采用預報校正法,實時計算為了減少迭代次數,采用歐拉法。

針對渦輪增壓器的計算方法,一維計算和容積法計算采取脈譜圖插值或者預測模型。實時計算為了提升模型的計算速度,采用多項式擬合法,在程序計算過程中避免了插值。

此外,針對多缸機的計算方法,一維計算考慮各缸之間不均性,對每個氣缸都進行詳細的計算。而實時計算模式下,只對第一缸進行詳細計算,其他氣缸的計算結果根據發火順序,對第一缸的計算結果進行相位偏移來獲得,從而減少氣缸計算過程中內部子函數的執行次數,提升計算速度。

3 程序應用實例

仿真程序的框架和模型算法編程實現之后,結合前后處理界面,整個軟件就可以完成預期的計算功能,但是仍然需要驗證軟件計算的合理性。以某型中速柴油機為例,介紹軟件仿真計算操作過程,并與試驗結果進行對比,驗證軟件計算的精度。柴油機的主要參數如表2所示。

表2 發動機參數

3.1 前處理

在軟件的可視化建模界面中,首先選定計算模式,然后根據發動機的實際結構,利用模型庫搭建模型。分別采用一維計算模式和容積法計算模式對計算機型進行建模,建好的模型如圖7和圖8所示。

圖7 一維計算模型

圖8 容積法計算模型

3.2 計算精度對比

對建好的一維模型和容積法模型進行穩態工況的計算,將計算結果與25%、50%、75%、90%、100%負荷穩態運行工況下的試驗數據進行對比,對比結果如圖9所示。本文中考慮了幾種主要性能參數,包括增壓壓力、燃油消耗率、最高燃燒壓力、渦前排溫及渦前壓力。其中,容積法計算結果和試驗值的最大誤差為3.88%,一維計算結果和試驗值的最大誤差為2.50%。

圖9 一維計算和容積法模型精度對比

此外,容積法計算和一維計算可以對進排氣壓力波進行預測,100%負荷下計算結果如圖10所示。壓力波均值最大誤差為0.43%,滿足精度要求。

圖10 進排氣壓力波對比

3.3 計算實時性對比

實時計算即模型一個循環的計算時間小于實際發動機運行時間的計算。將實時率ηREAL-TIME作為衡量程序實時性的指標,其含義就是發動機一個循環實際運行的時間tactul與計算一個循環的時間tcalculate的比值,表達式見式(1)。

(1)

實時率越大,表示程序相對于實際循環的計算速度越快,越能滿足實時性的要求。在實際工程中,為了避免數據交互等因素造成的延遲,在滿足精度的同時,要盡可能地提高實時率。

本研究中的發動機標定轉速為600 r/min,實際發動機一個循環的時間為200 ms。在不同的計算模式下,滿足的實時性如表3所示(測試環境為AMD 3550H CPU)。

表3 不同計算模式的實時性對比

可以看出,一維計算的實時率最低,計算速度最慢;實時計算模式的實時率很高,可以很好地滿足發動機實時性的要求,因此可以在實時控制上得到很好的應用。

3.4 后處理

在程序計算收斂之后,打開生成的計算結果文件可以在軟件的后處理界面進行圖形的繪制。以缸壓和放熱率曲線為例,上述模型的缸壓曲線和放熱率曲線如圖11和圖12所示。

圖11 缸壓曲線繪圖

圖12 放熱率曲線繪圖

3.5 與商用軟件對比

在目前市面上應用較為廣泛的商用軟件 GT-Power 上完成柴油機的建模和計算,與本文中所開發的仿真軟件進行計算精度的對比,如表4所示??梢钥闯?,本文中開發的性能仿真軟件和商用軟件相比計算精度基本相當,最大誤差均反映在增壓器轉速,GT-Power誤差為1.49%,本研究開發軟件為1.40%。

表4 與商用軟件的計算精度對比

4 結論

(1) 基于面向對象的軟件開發思想設計的通用發動機性能仿真軟件框架,可以實現多種穩態和瞬態計算模式(一維、容積法、實時)。

(2) 軟件所包含的可視化建模界面、后處理界面可以有效地完成模型搭建工作及計算結果的圖形繪制。

(3) 以某型中速柴油機為例,進行了多種穩態工況下的一維、容積法和實時計算。與試驗結果對比表明軟件有較高的計算精度;實時計算完全能滿足實時分析的要求,實時率可以達到3.92;計算精度與商用軟件基本相當。

猜你喜歡
容積計算結果氣缸
320排CT低劑量容積體部灌注成像強化峰值時間對孤立性周圍肺病變診斷價值
怎樣求醬油瓶的容積
2014款賓利GT車偶爾加速抖動
一種新型無桿氣缸傳送一模雙件開卷落料模結構
輕型載貨汽車制動液貯液罐設計
巧求容積
趣味選路
扇面等式
求離散型隨機變量的分布列的幾種思維方式
一種發電站專用的電力輸送電纜的架設設備
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合