一種基于控制系統(tǒng)開發(fā)平臺的航空發(fā)動機部件建模方法
【專利摘要】本發(fā)明公開了一種基于控制系統(tǒng)開發(fā)平臺的航空發(fā)動機部件建模方法,通過構建動態(tài)鏈接庫A和動態(tài)鏈接庫B兩種方式的動態(tài)鏈接庫,在實現(xiàn)Pascal、C/C++以及M三種編程語言之間數(shù)據(jù)銜接,同時保證高度可定制的通用特性,為GasTurb下的航空發(fā)動機總體性能分析過渡到MATLAB下的控制系統(tǒng)開發(fā)提供簡便的交互途徑,實現(xiàn)總體性能分析與控制系統(tǒng)開發(fā)兩個環(huán)節(jié)的銜接,提高部門間交互效率;這種通過動態(tài)鏈接庫技術實現(xiàn)在控制系統(tǒng)開發(fā)平臺MATLAB下直接調用發(fā)動機總體性能分析平臺GasTurb下的部件級動態(tài)模型的方法,可避免控制系統(tǒng)開發(fā)平臺下的重復建模過程,降低了控制系統(tǒng)開發(fā)平臺下航空發(fā)動機部件級模型建模工作量及出現(xiàn)潛在錯誤的風險。
【專利說明】一種基于控制系統(tǒng)開發(fā)平臺的航空發(fā)動機部件建模方法
【技術領域】
[0001]本發(fā)明涉及航空發(fā)動機建模與仿真領域,具體地說,涉及一種基于控制系統(tǒng)開發(fā)平臺的航空發(fā)動機部件建模方法。
【背景技術】
[0002]在航空發(fā)動機總體性能分析領域,GasTurb軟件可執(zhí)行包含渦噴、渦扇、渦軸、渦槳在內多種類型的發(fā)動機靜/動態(tài)仿真計算,具有良好的人機界面、優(yōu)秀的仿真精度、完備的壓氣機/渦輪特性圖處理等配套輔助工具,在該領域得到了廣泛的應用與認可。而在發(fā)動控制系統(tǒng)開發(fā)領域,MATLAB及其Simulink建模仿真工具包、Control System控制工具包、Real-time Workshop實時代碼轉化工具包等配套工具,組成了可快速實現(xiàn)控制系統(tǒng)開發(fā)和設計的圖形化仿真平臺。
[0003]為了滿足航空發(fā)動機控制系統(tǒng)開發(fā)對發(fā)動機模型的需求,在文獻“基于MATLAB/SMULINK的航空發(fā)動機建模與仿真研究”(航空動力學報,2007,Vol.22 (12),p2134_2138)中,提出了一種在控制系統(tǒng)開發(fā)平臺MATLAB下構建航空發(fā)動機部件級模型的方法,該方法在控制系統(tǒng)開發(fā)平臺下利用SIMULINK的模塊庫和S函數(shù)復現(xiàn)總體性能分析平臺下發(fā)動機模型程序的功能,整個建模過程相當于控制系統(tǒng)開發(fā)人員在控制平臺下,重復進行總體性能分析人員在發(fā)動機性能分析平臺下已經(jīng)完成的建模工作。由于控制系統(tǒng)開發(fā)人員不擅長按照發(fā)動機內在的氣動熱力學規(guī)律建立其數(shù)學模型,因此該建模方法增加了工作量、降低了部門間交互效率,而且容易出現(xiàn)潛在錯誤。
【發(fā)明內容】
[0004]為了克服現(xiàn)有控制用發(fā)動機模型建模工作量大,且交互效率低的缺陷,避免建模過程出現(xiàn)潛在錯誤,本發(fā)明提出一種基于控制系統(tǒng)開發(fā)平臺的航空發(fā)動機部件建模方法;這種通過動態(tài)鏈接庫技術實現(xiàn)在控制系統(tǒng)開發(fā)平臺MATLAB下直接調用發(fā)動機總體性能分析平臺GasTurb下的部件級動態(tài)模型的方法,可避免控制系統(tǒng)開發(fā)平臺下的重復建模過程,有效地降低了控制系統(tǒng)開發(fā)人員的工作量及出現(xiàn)潛在錯誤的風險。
[0005]本發(fā)明一種基于控制系統(tǒng)開發(fā)平臺的航空發(fā)動機部件建模方法,其特征在于包括以下步驟:
[0006]步驟1.Delphi下建立動態(tài)鏈接庫A ;在GasTurb的Pascal語言源代碼基礎上定位GasTurb源代碼中用于部件級動態(tài)模型計算的功能函數(shù),添加必要的代碼完成發(fā)動機部件級動態(tài)模型計算程序,在Delphi平臺下利用Delphi的DLL程序框架進行編譯生成建立擴展名為DLL的動態(tài)鏈接庫A ;
[0007]步驟2.MATLAB下建立動態(tài)鏈接庫B ;在MATLAB/Simulink提供的S函數(shù)模版的基礎上,以C/C++語言實現(xiàn)發(fā)動機模型S函數(shù)主體計算程序、與動態(tài)鏈接庫A的輸入/輸出接口程序、與Simulink模塊輸入/輸出接口程序,在MATLAB中建立擴展名為MEXW32的動態(tài)鏈接庫B ;
[0008]步驟3.688X111-13軟件下生成發(fā)動機模型配置文件;在軟件下根據(jù)總體性能需求,對發(fā)動機模型參數(shù)進行設計,并將模型參數(shù)保存,得到相應的發(fā)動機模型配置文件;
[0009]步驟4.嫩11^8/31皿111成下發(fā)動機部件級動態(tài)模型庫;在得到動態(tài)鏈接庫八、動態(tài)鏈接庫8以及發(fā)動機模型配置文件后,通過動態(tài)鏈接庫8對動態(tài)鏈接庫匕及發(fā)動機模型配置文件的調用,實現(xiàn)在嫩11^8/31皿111成中以圖形化模塊方式直接調用的發(fā)動機部件級動態(tài)模型,實現(xiàn)在控制系統(tǒng)開發(fā)平臺嫩11八8下建立航空發(fā)動機部件級模型。
[0010]有益效果
[0011]本發(fā)明提出的一種基于控制系統(tǒng)開發(fā)平臺的航空發(fā)動機部件建模方法,通過構建動態(tài)鏈接庫八和動態(tài)鏈接庫8兩種方式的動態(tài)鏈接庫,在實現(xiàn)以及1三種編程語言之間數(shù)據(jù)銜接的同時,保證其高度可定制的通用特性,為下的航空發(fā)動機總體性能分析過渡到嫩扎仙下的控制系統(tǒng)開發(fā)提供一種簡便的交互途徑,實現(xiàn)總體性能分析與控制系統(tǒng)開發(fā)兩個環(huán)節(jié)的無縫銜接,提高部門間交互效率這種通過動態(tài)鏈接庫技術實現(xiàn)在控制系統(tǒng)開發(fā)平臺嫩下直接調用發(fā)動機總體性能分析平臺下的部件級動態(tài)模型的方法,可避免控制系統(tǒng)開發(fā)平臺下的重復建模過程,有效地降低了控制系統(tǒng)開發(fā)平臺下航空發(fā)動機部件級模型建模工作量及出現(xiàn)潛在錯誤的風險。
【專利附圖】
【附圖說明】
[0012]下面結合附圖和實施方式對本發(fā)明一種基于控制系統(tǒng)開發(fā)平臺的航空發(fā)動機部件建模方法作進一步詳細說明。
[0013]圖1為動態(tài)鏈接庫流程圖。
[0014]圖2為過渡態(tài)初始化函數(shù)流程圖。
[0015]圖3為過渡態(tài)計算函數(shù)流程圖。
[0016]圖4為和嫩11^8/31皿111吐下民用渦扇發(fā)動機模型的過渡態(tài)仿真結果;
[0017](^)高壓轉子轉速㈦高壓轉子轉速相對誤差⑷低壓轉子轉速
[0018]((1)低壓轉子轉速相對誤差(6)發(fā)動機推力化)發(fā)動機推力相對誤差。
【具體實施方式】
[0019]本實施例是一種基于控制系統(tǒng)開發(fā)平臺的航空發(fā)動機部件建模方法。
[0020]參閱圖1?圖4,基于控制系統(tǒng)開發(fā)平臺的航空發(fā)動機部件建模方法,以的語言源代碼為基礎,添加必要的代碼,在06141平臺下建立擴展名為01的動態(tài)鏈接庫八。以0/0+方式的3函數(shù)接口技術在嫩中建立擴展名為腿)(132的動態(tài)鏈接庫8。通過動態(tài)鏈接庫8對動態(tài)鏈接庫八及發(fā)動機模型配置文件的調用,實現(xiàn)在嫩!'1^8/81111111111^中以圖形化模塊方式直接調用6^181111*13的發(fā)動機部件級動態(tài)模型。其中,動態(tài)鏈接庫纟包含發(fā)動機部件級動態(tài)模型計算函數(shù),但不包含模型參數(shù);動態(tài)鏈接庫8包含3函數(shù)主體計算程序、調用動態(tài)鏈接庫4需要的輸入丨輸出接口、與嫩11^8/31皿111成模塊交互輸入/輸出接口 ;發(fā)動機模型配置文件由設計生成,包含動態(tài)鏈接庫纟需要的各種模型參數(shù),并可根據(jù)需要隨時對發(fā)動機的各種參數(shù)進行訪問或修改。
[0021]步驟1,0611)111下建立動態(tài)鏈接庫八
[0022]動態(tài)鏈接庫A中包含發(fā)動機配置文件讀取程序、發(fā)動機部件級動態(tài)模型計算程序、與動態(tài)鏈接庫B的輸入/輸出接口程序,由Pascal語言編程實現(xiàn),在Delphi平臺下編譯生成;具體實現(xiàn)方式如下:
[0023](I)定位GasTurb源代碼中用于部件級動態(tài)模型計算的功能函數(shù),主要包括:
[0024](a)配置文件讀取函數(shù)ReadEngineModel,可讀取發(fā)動機模型配置文件中發(fā)動機性能參數(shù),供后續(xù)模型計算程序使用;
[0025](b)設計點計算函數(shù)Engine_cycle,完成設計點計算功能,為非設計點計算提供初始值;
[0026](c)初始化過渡態(tài)函數(shù)InitializeTransit1n,完成對過渡態(tài)計算的參數(shù)初始化功能;
[0027](d)過渡態(tài)計算函數(shù)calculate_transient_point,按照控制指令完成過渡態(tài)計算功能。
[0028](2)在(I)中功能函數(shù)的基礎上,添加必要的代碼,完成發(fā)動機部件級動態(tài)模型計算程序,計算程序包含3個函數(shù),過渡態(tài)初始化函數(shù)、過渡態(tài)計算函數(shù)、釋放內存函數(shù);
[0029](a)過渡態(tài)初始化函數(shù)Transit1nInitialize ;主要完成對指定發(fā)動機類型、配置文件以及外部輸入情況下的過渡態(tài)初始化,只在模型計算開始階段運行一次;在原有初始化過渡態(tài)函數(shù)InitializeTransit1n的基礎上,采用迭代修正概念,以設計點為初始值進行逐步賦值,直至逼近外部輸入,實現(xiàn)主燃油流量作為輸入的過渡態(tài)計算初始化;需要說明的是給定配置文件中的控制值函數(shù)evaluate_pilot_input部分,是指在GasTurb軟件中已設定的放氣、引氣、變幾何的開環(huán)控制規(guī)律并保存在模型配置文件中,在進行過渡態(tài)計算時,如果后面的外部輸入中沒有對其相應參數(shù)進行重新賦值,那么,這些可控量按配置文件中的控制規(guī)律工作。這不僅可確保已設計的控制規(guī)律體現(xiàn)在MATLAB中,而且可通過提供的接口隨時進行重新設計;
[0030](b)過渡態(tài)計算函數(shù)Transit1nState ;根據(jù)配置文件中的控制規(guī)律以及外部輸入進行過渡態(tài)計算,每個采樣時間運行一次;
[0031](c)釋放內存函數(shù)Transit1nFree ;主要將模型計算程序所分配的內存空間進行釋放,模型計算終止階段運行一次。
[0032](3)定義與動態(tài)鏈接庫B的輸入/輸出接口 ;定義與動態(tài)鏈接庫B對應的輸入/輸出接口結構體,其中基本輸入/輸出參數(shù)、非設計點輸入/輸出參數(shù)的定義完全對應于GasTurb程序配置文件(*.NMS)中相應參數(shù),并增加主燃油流量與仿真步長作為額外輸入;通過與動態(tài)鏈接庫B之間約定的參數(shù)傳遞方案,在不改變動態(tài)鏈接庫A的情況下,實現(xiàn)輸入接口自定義配置。
[0033](4)利用Delphi的DLL程序框架進行編譯生成動態(tài)鏈接庫A ;
[0034](a)在Delphi平臺下創(chuàng)建library工程文件;
[0035](b)在工程文件下添加(2)中過渡態(tài)初始化函數(shù)、過渡態(tài)計算函數(shù)、釋放內存函數(shù)程序代碼;
[0036](c)在exports子句中將上述函數(shù)列出,以輸出供其它應用程序使用;
[0037](d)利用Delphi平臺將library工程文件編譯生成擴展名為DLL的文件,即動態(tài)鏈接庫A。
[0038]步驟2,^11^8下建立動態(tài)鏈接庫8
[0039]動態(tài)鏈接庫8中包含3函數(shù)主體計算程序、與動態(tài)鏈接庫八的輸入/輸出接口程序、與31皿111成模塊輸入/輸出接口程序,在嫩11^8/31皿111成提供的3函數(shù)模版的基礎上完成,由(:/0+語言編程實現(xiàn),在嫩11八8平臺下編譯生成;具體實現(xiàn)方式如下:
[0040](1)在3函數(shù)聲明段,定義與動態(tài)鏈接庫4對應的輸入/輸出接口結構體,以確保參數(shù)傳遞的正確性;
[0041](2)在3函數(shù)模版函數(shù)0(113仏代中添加以下程序:
[0042](^)按照與動態(tài)鏈接庫八約定的參數(shù)傳遞方案對基本輸入?yún)?shù)和非設計點輸入?yún)?shù)賦初值888888 ;
[0043]⑶通過#11(10^八?I函數(shù)實現(xiàn)(:/0+調用動態(tài)鏈接庫4中功能函數(shù);其中,108(111131-81-7用于裝載包含動態(tài)鏈接庫八的01文件并獲取其句柄用于獲取相關功能函數(shù)的指針,從而實現(xiàn)將動態(tài)鏈接庫八中的函數(shù)轉變?yōu)?:/0+下的函數(shù);
[0044](0)確定發(fā)動機類型、配置文件名以及文件安裝路徑;通過指定發(fā)動機類型、配置文件名以及文件安裝路徑,可讓動態(tài)鏈接庫4的功能函數(shù)根據(jù)相應配置實現(xiàn)不同類型發(fā)動機的性能計算;
[0045](3)在3函數(shù)模版函數(shù)111(110111:1)111:8中,定義動態(tài)鏈接庫8所需的31皿111成模塊輸入/輸出接口,并添加部件級動態(tài)模型主體計算程序代碼;動態(tài)鏈接庫4中所提供的輸入/輸出接口非常完備,但在一般情況下,諸多輸入?yún)?shù)并不需要改變,也無需考量所有輸出參數(shù);為此,可根據(jù)實際應用需求自定義31皿111成模塊下的發(fā)動機輸入/輸出接口,并完成與動態(tài)鏈接庫八的參數(shù)傳遞方案;
[0046](4)在 3 函數(shù)模版函數(shù) 111(1110:01111181:6 中,添加函數(shù)!'(1:1116)和
碰0(11116),以釋放計算所占內存空間和句柄;
[0047](5)根據(jù)3函數(shù)接口技術進行編譯實現(xiàn)動態(tài)鏈接庫8 ;動態(tài)鏈接庫8可在
中以圖形化模塊方式直接調用。
[0048]步驟3,688X111-13軟件下生成發(fā)動機模型配置文件
[0049]在軟件下根據(jù)總體性能需求,在選定的發(fā)動機類型相應的模型配置示例06.110文件基礎上對發(fā)動機模型設計點、非設計點參數(shù)進行設計,并最終生成所需的發(fā)動機模型配置文件。
[0050]步驟4,嫩!'1^8/31皿1111^下發(fā)動機部件級動態(tài)模型庫
[0051]在得到動態(tài)鏈接庫八,動態(tài)鏈接庫8,以及相應發(fā)動機模型配置文件的情況下,對31皿111成及3函數(shù)源文件的輸入/輸出接口進行簡單定義,即可快速得到可在嫩11^8/31皿111成下直接調用的各種類型發(fā)動機部件級動態(tài)模型;從而在嫩平臺下構建了用于航空發(fā)動機管理與控制系統(tǒng)開發(fā)的包含渦噴、渦扇、渦軸、渦槳在內22種發(fā)動機類型的部件級模型庫。
[0052]需要說明的是,模型庫中的模型采用的均為軟件自帶的模型配置示例06.110文件,用戶在使用其中某個模型時需要根據(jù)自己的實際需求,對模型配置文件進行個性化的自定義配置。
[0053]為進一步說明本發(fā)明的效果,下面通過民用大涵道比渦扇發(fā)動機建模實例,來驗證本發(fā)明方法的有效性。
[0054]采用本發(fā)明建模方法,可初步設計并建立能在一定程度上代表大涵道比渦扇發(fā)動機穩(wěn)態(tài)與過渡態(tài)特性的發(fā)動機模型。
[0055]首先,按照本發(fā)明方法得到動態(tài)鏈接庫八和動態(tài)鏈接庫8;然后,在對國產(chǎn)民用渦扇發(fā)動機性能需求進行分析的基礎上,在平臺下初步設計得到150座干線客機用、14噸推力級、民用大涵道比渦扇發(fā)動機模型,并將模型參數(shù)保存在模型配置文件
116)中;最后,通過對動態(tài)鏈接庫八、動態(tài)鏈接庫8和模型配置文件(3118忖.1^0的調用,在嫩扎仙/義皿111成下得到所需民用渦扇發(fā)動機部件級模型,可作為發(fā)動機控制系統(tǒng)研究的基礎。
[0056]基于本發(fā)明建模方法高度可定制的通用特性,當發(fā)動機總體部門給出民用渦扇發(fā)動機更詳細的設計參數(shù)及部件特性后,可根據(jù)需要隨時對民用渦扇發(fā)動機模型配置文件
蚱?.中的發(fā)動機各項參數(shù)進行訪問并修改。
[0057]如圖4所示,為了驗證嫩幾仙/義皿111成下民用渦扇發(fā)動機部件級模型的正確性,在相同的輸入條件下,分別對和嫩下的民用渦扇發(fā)動機模型進行穩(wěn)態(tài)與過渡態(tài)仿真。這里僅給出巡航狀態(tài),高度為11—、馬赫數(shù)為0.8情況下,和嫩11八8下模型的過渡態(tài)仿真結果。仿真結果表明,兩者相對誤差小于0.01%。該誤差可歸因于在調用動態(tài)鏈接庫的過程中存在單精度實數(shù)與雙精度實數(shù)的相互轉換問題。由于量級很小,完全不影響后續(xù)的實際應用。仿真結果驗證了嫩扎仙/義皿111成下民用渦扇發(fā)動機模型的有效性。
【權利要求】
1.一種基于控制系統(tǒng)開發(fā)平臺的航空發(fā)動機部件建模方法,其特征在于:包括以下步驟: 步驟1.Delphi下建立動態(tài)鏈接庫A ;在GasTurb的Pascal語言源代碼基礎上定位GasTurb源代碼中用于部件級動態(tài)模型計算的功能函數(shù),添加必要的代碼完成發(fā)動機部件級動態(tài)模型計算程序,在Delphi平臺下利用Delphi的DLL程序框架進行編譯生成建立擴展名為DLL的動態(tài)鏈接庫A ; 步驟2.MATLAB下建立動態(tài)鏈接庫B ;在嫩1'^^/5加111丨1^提供的S函數(shù)模版的基礎上,以C/C++語言實現(xiàn)發(fā)動機模型S函數(shù)主體計算程序、與動態(tài)鏈接庫A的輸入/輸出接口程序、與Simulink模塊輸入/輸出接口程序,在MATLAB中建立擴展名為MEXW32的動態(tài)鏈接庫B ; 步驟3.GasTurb軟件下生成發(fā)動機模型配置文件;在GasTurb軟件下根據(jù)總體性能需求,對發(fā)動機模型參數(shù)進行設計,并將模型參數(shù)保存,得到相應的發(fā)動機模型配置文件;步驟4.MATLAB/Simulink下發(fā)動機部件級動態(tài)模型庫;在得到動態(tài)鏈接庫A、動態(tài)鏈接庫B以及發(fā)動機模型配置文件后,通過動態(tài)鏈接庫B對動態(tài)鏈接庫A及發(fā)動機模型配置文件的調用,實現(xiàn)在MATLAB/Simulink中以圖形化模塊方式直接調用GasTurb的發(fā)動機部件級動態(tài)模型,實現(xiàn)在控制系統(tǒng)開發(fā)平臺MATLAB下建立航空發(fā)動機部件級模型。
【文檔編號】G05B17/02GK104375421SQ201410686811
【公開日】2015年2月25日 申請日期:2014年11月24日 優(yōu)先權日:2014年11月24日
【發(fā)明者】郭迎清, 張書剛, 孫浩 申請人:西北工業(yè)大學