王宇陽,丁 濤,周鳳華,張 寧
(中國航發上海商用航空發動機制造有限責任公司,上海 201306)
當前國內航空發動機試驗具有時間緊、型號多、任務大、可靠性要求高等特點,常常造成試驗設備和人力資源緊張。而為匹配每次試驗科目的參數要求,試驗常伴隨著對發動機電子控制系統(EEC)、測試接口設備(TIE)的調整——目前的試驗狀態是在發動機停車后進行,費時費力。如果能夠在試驗進行過程中在線調整發動機參數,將極大地減少試驗的時間成本[1-3]。然而,試車臺數采系統的主要功能是實現傳感器信號的采集和顯示,其本身設計并不具有復雜的控制邏輯,不能滿足在線調整發動機參數需要的快速、可靠、復雜性的要求[4-6]。
隨著軟件技術的發展,大部分的應用系統供應商會提供軟件開發工具包(SDK),軟件開發人員可以利用SDK輔助開發外圍第三方應用程序[7]。某科研試車臺數采系統的SDK中提供了ExteralHook接口,該接口包含一套封裝于動態鏈接庫中的函數,開發者可以利用該接口訪問數采系統的當前值表(cur?rentvaluetable,CVT)。為此,本文介紹一種基于該ExteralHook 接口的試車臺在線調參系統的設計。該系統將復雜的邏輯控制寫入調參軟件,把經過軟件處理的數據發送到試車臺數采系統,再通過數采系統的ARINC429 和MOXA 板卡,與EEC、TIE 建立通信連接,從而實現在線調參功能。
由于EEC 和TIE 的通道資源緊張,為盡可能減小其通信負擔,需要減少用于在線調參功能的通道數量。試驗時調參參數可能有幾十個,但一次只需調整一個,因此在線調參系統和發動機使用ID值和調參值兩個通道。在發動機中預先寫入一個ID 值與調參值的映射關系表,調參操作時僅需試車臺發送ID值和調參值,隨后與EEC和TIE中的映射表對比,即能識別在線調參參數。
同時,根據ARINC429通信協議,數據包的最大值決定了協議中maxparameter 屬性的取值,由于調參值參數范圍不同,且只有一個發送調參值的通道,這就導致需要使用maxparameter為定值的通道去發送maxparameter數值不同的調參值。為解決這個問題,ID值和調參值通道使用BNR編碼,規定14位到29位是有效數據位,故協議能發送的最大浮點數為215=32 768,將ARINC429 板卡調參值通道的maxpa?rameter屬性設定為32 768。系統發送調參值前,在線調參軟件附加一個縮放比例Ratio,Ratio為32 768與maxparameter的比值。如發送調參值為100,那么系統實際發送值為100×32 768÷128=25 600。發動機接收數據后,根據上述方法進行反算,即可得到有效參數值。
為使在線調參系統軟件具有較強的實時性和良好的人機交互界面,同時結合某型發動機研制項目的特殊需求,對在線調參軟件提出以下技術要求:
(1) 軟件能自動測試Socket接口連接情況;
(2) 軟件使用多線程技術;
(3) 軟件界面分為在線調參主界面和燃燒室專業參數調節界面;
(4) 軟件界面具有快速安全可靠的操作邏輯;
(5) 軟件界面顯示的發動機反饋值可靠、準確;
(6) 對于某些調參參數,需具有特殊的邏輯功能(如參數微調,設置調節臺階,參數鎖定等);
(7) 軟件需比對發送值與反饋值,且考慮通信延遲性的影響;
(8) 燃燒室專業參數調節時能實現線性插值計算等性能計算功能。
目前流行的一種異步通信方式為套接字(Sock?et),兩個網絡應用程序進行通信,各自通信連接其中的一個端點。通信時,其中的一個網絡應用程序將要傳輸的一段信息寫入其所在主機的Socket中。該Socket通過網絡接口卡的傳輸介質將這段信息發送到另一個主機的Socket 中,使這段信息能傳送到其他應用程序中[8]。試車臺在線調參系統中,一個Socket端口為數采系統主機,負責處理ARINC429總線(EEC)和RS422總線(TIE)信號;另一個Socket端口為在線調參計算機。數采系統主機從在線調參計算機接收數據,分別通過ARINC429 總線和RS422 總線將數據包發送至EEC 和TIE,同時也接收它們的反饋信號并將其傳回在線調參計算機。具體結構如圖1所示。

圖1 在線調參系統總體架構Fig.1 Adjusting-parameter online system structure
基于在線調參軟件需求分析,軟件采用分層設計[9]。軟件分為人機交互層和系統交互層兩層,其結構如圖2所示。人機交互層使用QT Designer進行開發,具有操作靈活、方便、準確、穩定、數據顯示可靠的人機交互界面,包括試驗時對發動機的調參控制、重要參數顯示。系統交互層負責調參軟件與數采系統實時通信,處理人機交互層操作事件,進行性能計算等工作。

圖2 在線調參軟件分層結構Fig.2 Adjusting-parameter online system software hierarchical structure
ExternalHook 接口包含了一套動態鏈接庫,實現方法封裝在EPHL.dll中。在動態鏈接庫EPHL.dll中,封裝了一系列的結構體和函數,定義在頭文件EPHL.h中。主要使用的結構體為:
(1) eEPHL_RETURN結構體,用于儲存數采系統返回的特殊狀態信息,也是很多API 函數的返回類型。

eEPHL_RETURN 主要用于軟件獲取在線調參計算機端口與數采系統的Socket 連接信息,如果返回EPHL_OK,則連接正常;反之,則根據返回類型提示錯誤信息。
(2) eEPHL_CONN_TYPE 結構體,用于儲存數采系統主機端口與軟件端口的連接類型。

結構體儲存通信數據,而API 函數用于軟件對于數采系統CVT 的訪問。由于通道數據都是常用類型,即C++內建類型,如浮點型、布爾型、整型等,所以不需要設計額外的結構體或類來儲存數據。
主要使用的API函數原型如下:
(1) eEPHL_RETURN EPHL_write_channel(char*name,float*value)
寫入數采系統通道。
(2) eEPHL_RETURN EPHL_read_channel(char*name,float*value)
讀取數采系統通道。
(3) eEPHL_RETURN EPHL_close(void)
關閉數采系統Socket端口。
(4) eEPHL_RETURN EPHL_init(eEPHL_CONN_TYPE conn_type,char*serv_key);
打開數采系統Socket端口。
應用程序的本質是消息循環,每次循環應用程序和操作系統都有消息交換[10]。在線調參軟件打開Socket 端口后,需要持續不間斷地和數采系統交換消息,沒有入口處理人機交互層傳遞下來的事件消息。因此設計了雙線程機制:界面線程和后臺通信線程。界面線程處理調參主界面的操作事件,燃燒室調節界面的操作事件和插值運算;后臺通信線程處理調參軟件與數采系統以及軟件界面之間的通信。線程間的通信結構如圖3所示。

圖3 線程間通信Fig.3 Inter-thread communication
界面線程通信包括:主界面接收來自后臺通信線程的數采系統數據,發送和接收燃燒室調參界面的數據;燃燒室調參界面接收來自主界面的數據。后臺通信線程包括:訪問數采系統CVT,傳遞數采系統數據給主界面線程,接收主界面線程的操作事件。
線程間通信通過使用信號與槽機制,后臺通信線程寫入計時器,當開啟該線程以后,觸發計時器,以0.1 s一次的頻率訪問數采系統CVT,在每個循環結束時觸發數據發送信號,發送到界面線程的主界面槽中來完成數據傳遞;主界面寫入計時器,循環刷新顯示控件,在每個循環結束時觸發數據發送信號,將數據發送到燃燒室在線調節界面相應槽中,更新該界面的參數。
軟件中主要的信號與槽的連接函數如下:
(1) connect(this,SIGNAL(RunBackProcess()),backprocess,SLOT(m_SlotStartInit()))
連接主界面后臺線程觸發信號和后臺通信線程槽函數。
(2) connect(backprocess,&BackProcess::m_Data?Transfer,this,&MainWindow::m_Update)
連接后臺通信線程傳輸信號和主界面刷新槽函數。
(3) connect(this,&MainWindow::m_toFuelDistri?bution,m_FuelDistribution,&Dialog::m_Update);
連接主界面與燃燒室調節界面傳輸信號與調節界面刷新槽函數。
5.3.1 軟件初始化通信自檢工作流程
軟件初始化流程如圖4 所示。打開軟件時,程序調用主界面構造函數,構造函數調用軟件初始化通信自檢函數,根據自檢情況判斷軟件當前與數采系統的通信狀態。當且僅當API 函數返回EPHL_OK 時才會通過自檢,反之則顯示未通過自檢。自檢完成后,顯示在線調參軟件主界面。

圖4 軟件初始化流程Fig.4 Software initialization flow chart
5.3.2 軟件與數采系統通信工作流程
軟件與數采系統通信流程如圖5所示。用戶在點擊左上角主界面的“connect”開關后,軟件開啟后臺線程。后臺線程每個循環從數采系統CVT 中提取和寫入數據,循環計時為0.1 s。每個循環結束時,后臺線程和主界面線程進行一次通信,此時主界面接收和發送與數采系統的通信數據。

圖5 軟件與數采系統通信流程Fig.5 Communication flow chart between software and acquisition system
5.3.3 調參流程
程序初始化時,設置調參ID值缺省值為255,調參值缺省值為0。255為EEC/TIE接收的無效參數,發動機在接收到該參數時不會觸發任何動作。調參工作流程如圖6 所示。調參操作時,首先打開調參開關,在需求調參的通道輸入調參值,軟件會自動計算當前調參值對應的調參ID 值。然后點擊“注入”按鈕,軟件進行如下流程:如果調參開關此時未打開,則提示用戶打開調參開關,并且不改變當前調參ID 值和調參值;如果調參開關打開,但輸入調參值超過該調參值量程范圍,則提示用戶確認參數值是否正確,并且不改變當前調參ID 值和調參值;如果調參開關打開,且輸入調參值滿足調參量程范圍,則軟件計算當前通道調參ID 值,再根據ARINC429 協議計算當前調參值浮點數到整數的轉換數值,并按需計算調參值為負時的補碼,把計算結果發送到后臺線程的調參ID和調參值變量,后臺線程再將調參ID和調參值變量發送到發動機,隨后主界面線程停滯2 s等待接收EEC/TIE反饋ID值和調參值,最后將反饋ID值和調參值反算后與系統發送的ID值和調參值進行比對。如果比對結果一致,彈出提示窗口,點擊彈窗的“OK”按鈕后,軟件自動關閉調參開關,完成整個調參流程;如果比對結果不一致,彈出提示窗口,點擊“OK”按鈕后,調參ID值和調參值變更為缺省值,并且不關閉調參開關,等待下一輪輸入。

圖6 調參工作流程Fig.6 Adjusting-parameter working flow chart
5.3.4 增減量調節按鈕流程
增減量調節按鈕分別用于調節可調靜止葉片角度鎖定值和主燃級M%燃油分配比例。增減量調節按鈕流程見圖7。除增量臺階設置外,主燃級M%燃油分配比例調參還具有調節最大值設置功能。調節時,程序讀取當前臺階設置和調節最大值,如果符合調節條件,則更改調節值并填入參數值調節框;如果不符合條件,則彈出警告窗且維持原調節值不變。

圖7 增減量調節按鈕流程Fig.7 Increase/decrease adjusting button flow chart
燃燒室相關的性能參數調節為在線調參較為重要的調節流程,通過燃燒室的參數調節能完成主燃級打開等關鍵單項試驗科目。
燃燒室在線調節界面數據顯示主要分為三部分:目標P2%計算值顯示,重要參數顯示和開關量顯示。目標P2%顯示的輸入為目標M%值,用戶輸入M%,點擊“Apply”按鈕,從主界面線程提取當前EEC 的燃油流量,使用M%和燃油流量計算出目標P2%,并自動填充到P2%比例調節的調參值框。同時,該界面在主窗口調用構造函數時實例化,后臺線程啟動后循環向燃燒室在線調節界面對象中的變量發送數據,燃燒室界面顯示對象中的重要參數。燃油分配在線可調標志和主燃級可調標志開關指示燈初始化為0,每次點擊按鈕時,均會改變指示燈開關量狀態。
調參值中的P2%比例通過主燃級M%比例自動插值得到,插值流程如圖8 所示。點擊界面上的“Apply”按鈕時,程序讀取當前輸入M%值和機載傳感器燃油流量,計算P1M,經過線性插值計算P2M,再使用燃油流量和P2M計算出P2%比例,然后自動填入調參框中。

圖8 主燃級M%到P2%插值流程Fig.8 Primary fuel M%level to P2%level interpolation flow chart
為實現友好、簡潔的人機交互界面,使用QT Designer作為人機交互界面開發工具。根據某型發動機具體要求,設計了如圖9、圖10所示界面。
圖9 是在線調參主界面,包括EEC 調參界面和TIE調參界面。界面菜單欄的“connect”按鈕實現在線調參系統與發動機的通信連接(開啟后臺通信線程),左上角的“調參開關”實現在打開此開關時發動機才能觸發調參動作,并配有反饋指示燈。EEC 調參界面中,每個調參值有參數輸入框、“注入”按鈕、EEC 反饋A/B 通道值,其中VSV 角度鎖定調參值還有+-微調按鈕以及微調按鈕臺階設置。TIE 界面中,每個調參值有參數輸入框、“注入”按鈕、TIE 反饋值。界面右邊的“燃油分配調節”按鈕,用于打開圖10所示的燃燒室燃油分配在線調節界面。

圖9 在線調參系統主界面Fig.9 Main interface of parameter-adjusting online system

圖10 燃燒室調節界面Fig.10 Combustor adjusting interface
圖10 左邊顯示了一些調節過程中需要關注的重要參數,其中左上方的兩個按鈕用于打開燃燒室調節參數的鎖定狀態。右邊為一些操作控件,可以實現設置調節最大值、調節臺階、微調、發送調參值等動作。
利用ExternalHook編寫的在線調參程序配合試車臺數采系統現有環境,極大地提高了航空發動機試車中在線調參的實用性。同時,友好的人機交互界面和交互層邏輯,增加了在線調參操作過程中的容錯能力;對調參操作進行了簡化,提高了航空發動機試車的效率。經過某型核心機與整機長時間的試車準備階段驗證,此系統可靠、安全、穩定,對于航空發動機試車在線調參科目的實現有一定的參考意義。