喬伯真, 柳亞冰
中國航發(fā)控制系統(tǒng)研究所,江蘇 無錫 214063)
在航空發(fā)動機全權(quán)限數(shù)字電子控制(Full Authority Digital Electronic Control,F(xiàn)ADEC)系統(tǒng)中,數(shù)字電子控制器及其搭載的控制軟件是組成這個安全關(guān)鍵系統(tǒng)的核心成附件。為證明其設(shè)計符合性,針對電子控制器和控制軟件開展子系統(tǒng)級測試驗證成為FADEC系統(tǒng)研制過程中的關(guān)鍵環(huán)節(jié),一種有效的測試手段就是充分開展硬件在環(huán)(Hardware-in-Loop,HIL)仿真,這在航空航天、汽車電子和醫(yī)療設(shè)備等領(lǐng)域的系統(tǒng)研發(fā)工作中已被廣泛應用。在國內(nèi)航空發(fā)動機FADEC系統(tǒng)工程研制領(lǐng)域,也已在控制軟件測試和電子子系統(tǒng)集成測試過程中廣泛采用了HIL閉環(huán)仿真驗證這一測試手段。
電子控制器作為控制系統(tǒng)的核心硬件產(chǎn)品,需要開展可靠性試驗,對產(chǎn)品的可靠性進行驗證。根據(jù)《可靠性鑒定和驗收試驗》(GJB 899A—2009)的規(guī)定,機載電子設(shè)備的可靠性測試驗證方式已逐步轉(zhuǎn)向含控制軟件的系統(tǒng)級測試[1],即應用HIL仿真測試手段模擬電子控制器在典型飛行任務(wù)剖面下的輸入輸出信號,使電子控制器承受典型的運行負荷,并與環(huán)境載荷的模擬過程同步進行,從而在系統(tǒng)/子系統(tǒng)層面更真實有效地驗證電子設(shè)備的可靠性。
可靠性試驗是按特定的環(huán)境應力載荷譜和典型飛行任務(wù)HIL仿真譜執(zhí)行的循環(huán)測試,隨著控制系統(tǒng)研制過程的推進,單次試驗時間從幾百小時到數(shù)千小時不等,因此測試自動化相關(guān)技術(shù)對解決可靠性試驗的循環(huán)操作顯得尤為重要。目前環(huán)境應力載荷可以通過環(huán)境模擬設(shè)備實現(xiàn)自動操作,HIL仿真的自動化技術(shù)取決于所用測試設(shè)備的軟硬件環(huán)境,沒有統(tǒng)一的、標準的技術(shù)途徑。黃奕丹[2]介紹了自動化技術(shù)在航空電子設(shè)備自動測試過程中應用的現(xiàn)狀;馮亞冬[3]介紹了自動化技術(shù)在FADEC控制軟件適航工作中的應用情況;黃勝龍[4]以MATLAB/Simulink的xPC Target構(gòu)建汽車電子控制單元(Electronic Control Unit,ECU)的HIL仿真環(huán)境,用Python語言來編寫自動化測試程序;肖前遠[5]以Python腳本語言為基礎(chǔ),通過擴展Python模塊實現(xiàn)全數(shù)字仿真環(huán)境中的自動測試腳本。
本文以電子控制器可靠性試驗任務(wù)要求為牽引,圍繞測試任務(wù)譜的特點,利用基于Python的關(guān)鍵字驅(qū)動測試自動化框架Robot Framework作為自動化使能工具,構(gòu)建HIL仿真自動化技術(shù)方法,從自動腳本分層構(gòu)建、執(zhí)行時間顯形、工具軟件自動整合、自動執(zhí)行流程構(gòu)建等方面,設(shè)計了適用于可靠性試驗任務(wù)譜的仿真自動化技術(shù)方案,并針對以下兩個目標開展技術(shù)創(chuàng)新:
① 降低測試任務(wù)譜時間線設(shè)計實現(xiàn)和執(zhí)行時間誤差優(yōu)化的難度;
② 實現(xiàn)非自動化軟件工具的自動化整合。
通過某型FADEC控制器的可靠性摸底試驗進行了技術(shù)驗證,證明所提出方法的試驗效率和系統(tǒng)驗證的有效性均顯著提高。
本文以某平臺級地面維護設(shè)備(Ground Maintenance Equipment,GME)作為HIL仿真試驗器,該設(shè)備的上位機利用自動化中控軟件作為自動流程的控制中樞,通過用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol,UDP)通信形式的自動化接口或批處理調(diào)用方式執(zhí)行自動腳本指令。
GME設(shè)備由3個防振便攜式小型機柜組成,機柜內(nèi)安裝有程控電源、綜合測控下位PXI計算機、主控PXI計算機、信號調(diào)理箱、信號斷連箱和控制器接口適配裝置等設(shè)備,各設(shè)備之間通過電纜連接,由程控電源供電,電子控制器通過電纜和接口適配裝置與GME設(shè)備連接,使控制器和仿真試驗器在硬件鏈路層面實現(xiàn)閉環(huán)。
綜合測控下位PXI計算機通過信號負載箱接收電子控制器的輸出信號,提供給執(zhí)行機構(gòu)模型和發(fā)動機模型程序,在LabVIEW RT實時環(huán)境下進行計算后,將模型計算結(jié)果和其他仿真信號通過信號調(diào)理箱輸出給電子控制器,實現(xiàn)HIL閉環(huán)仿真。
此外,主控PXI計算機通過以太網(wǎng)與綜合測控下位PXI計算機連接,通過試驗器仿真軟件實現(xiàn)人機交互和上下位機交互,并實現(xiàn)HIL仿真測試的相關(guān)外部操作。
仿真試驗器的軟件套件主要由HIL環(huán)境仿真軟件、自動化中控軟件、上位機監(jiān)視軟件、數(shù)據(jù)分析軟件、報表生成工具軟件等組成。
HIL環(huán)境仿真軟件提供數(shù)據(jù)設(shè)備資源監(jiān)視、信號設(shè)定、故障注入、飛發(fā)通信模擬等人機交互功能,同時,實現(xiàn)輸入信號采集、模型程序加載、輸出信號設(shè)定、設(shè)備操控等上下位機交互功能。
自動化中控軟件采用基于Python語言的開源工具Robot Framework開發(fā),包括圖形化操作前端RIDE,通過UDP端口按接口協(xié)議與具備對應接口的應用軟件進行交互,通過批處理調(diào)用方式啟動某個軟件或腳本,進而按其語言格式編寫腳本代碼即可實現(xiàn)自動操作邏輯。
上位機監(jiān)視軟件可實現(xiàn)啟動/停止監(jiān)視、數(shù)據(jù)保存、停止保存等功能操作,具備常規(guī)的交互操作接口。
數(shù)據(jù)分析軟件和報表生成工具是C++控制臺應用程序,可在后臺自動運行,不影響前臺窗口程序,具有執(zhí)行效率高的優(yōu)點,適合于控制器可靠性試驗的自動執(zhí)行場景。但當前的軟件是項目早期的工具軟件,不具備自動化操作接口。
仿真運行流程主要涉及仿真環(huán)境部署、飛行任務(wù)剖面的HIL仿真運行過程和電子控制器電應力循環(huán)操作等幾方面任務(wù)。
電應力循環(huán)執(zhí)行周期為24 h,包括3個8 h執(zhí)行周期,每8 h分別按DC 30.8 V、DC 28 V、DC 25.2 V順次設(shè)定電子控制器的輸入電壓。
飛行任務(wù)剖面的運行流程以8 h為一個執(zhí)行周期,包括4 h冷天和4 h熱天測試,分別執(zhí)行一次4 h飛行任務(wù)剖面(含冷浸或熱浸階段的30 min),該過程與環(huán)境模擬設(shè)備同步;GJB 899A規(guī)定濕度應力循環(huán)和振動應力循環(huán)均由環(huán)境模擬設(shè)備自動設(shè)置,包含于8 h執(zhí)行周期內(nèi)。
因此,為了支持整個HIL測試過程隨環(huán)境模擬設(shè)備的周期自動連續(xù)運行,需要以完整電應力循環(huán)為單位,設(shè)計以24 h為周期的運行流程。同時,為了便于測試數(shù)據(jù)鏈和證據(jù)鏈管理,需要滿足數(shù)據(jù)截取、命名、歸類、分析和報表制作等自動化需求。
綜上,HIL閉環(huán)測試的執(zhí)行流程應包含4 h飛行任務(wù)剖面、8 h溫度循環(huán)和24 h電應力循環(huán)的嵌套,兼顧數(shù)據(jù)自動截斷和分析的功能,其自動運行流程可設(shè)計為仿真運行環(huán)境初始化、啟動監(jiān)視、數(shù)據(jù)存儲、任務(wù)執(zhí)行、數(shù)據(jù)截斷、數(shù)據(jù)分析調(diào)用、報表制作調(diào)用等執(zhí)行步驟,不同的流程步驟按需接續(xù)執(zhí)行或循環(huán)執(zhí)行,4 h飛行任務(wù)自動測試執(zhí)行流程如表1所示,可靠性試驗自動運行流程示意圖如圖1所示。
圖1 可靠性試驗自動運行流程示意圖
表1 4 h飛行任務(wù)自動測試執(zhí)行流程
仿真運行自動化由中控軟件Robot Framework通過腳本調(diào)用相關(guān)工具軟件、輔助腳本代碼來實現(xiàn),在Robot Framework軟件中設(shè)計開發(fā)腳本實現(xiàn)仿真流程中的每一步具體操作[6]。
在所使用的工具軟件中,HIL環(huán)境仿真軟件和上位機監(jiān)視軟件具備UDP通信功能和自動化接口協(xié)議,可由中控軟件Robot Framework直接操作,因此,仿真流程涉及的運行環(huán)境初始化、啟動監(jiān)視、執(zhí)行狀態(tài)操作指令、停止監(jiān)視、數(shù)據(jù)截取與命名等操作可通過直接在中控軟件中開發(fā)腳本來實現(xiàn)。
數(shù)據(jù)分析軟件不具備UDP通信功能和自動化接口,屬于非自動化工具軟件,如果僅通過自動腳本調(diào)用批處理命令的方式直接打開,則無法按需分析指定數(shù)據(jù),因此,需要專門設(shè)計自動化整合方法。
數(shù)據(jù)分析軟件自動化整合主要有以下3種解決途徑。
① 擴充分析軟件的功能,開發(fā)UDP通信功能和接口協(xié)議,實現(xiàn)與自動化中控軟件的交互功能。
② 改造數(shù)據(jù)分析軟件的功能結(jié)構(gòu),修改分析軟件的數(shù)據(jù)文件加載方式,使軟件啟動后自動分析默認目錄下最新的一份數(shù)據(jù)文件,在Robot Framework中通過執(zhí)行批處理文件,間接調(diào)用分析軟件,分析最近一次截取的數(shù)據(jù)段。
③ 開發(fā)一組外部輔助腳本,實現(xiàn)對分析軟件配置文件的改寫操作,先執(zhí)行輔助腳本改寫配置文件信息,再調(diào)用數(shù)據(jù)分析和報表生成工具,實現(xiàn)按需對指定數(shù)據(jù)段的分析和報表輸出。
基于投入產(chǎn)出比最優(yōu)的工程思想,為了以最小的軟件開發(fā)投入獲得最優(yōu)的自動化構(gòu)建效率,優(yōu)選途徑③。本文根據(jù)數(shù)據(jù)分析軟件的運行原理,運用Python腳本語言編寫了一套簡潔的輔助腳本[7],由自動化中控軟件通過批處理指令間接調(diào)用運行,通過改寫工具軟件的配置文件,為數(shù)據(jù)分析軟件指定待分析的文件路徑和文件名,建立分析數(shù)據(jù)源輸出目錄,為報表制作軟件指定報表數(shù)據(jù)源、報表模板和報表輸出路徑等信息,實現(xiàn)對數(shù)據(jù)分析軟件和報表制作軟件的按需操作,進而間接實現(xiàn)該類型非自動化工具軟件的自動化整合。外部輔助腳本流程如圖2所示。
圖2 外部輔助腳本流程圖
綜上,可得出可靠性試驗HIL測試的自動化調(diào)用關(guān)系,如圖3所示。中控軟件Robot Framework的腳本操作仿真軟件、上位機軟件和相關(guān)的批處理指令,不同的批處理指令再間接操作輔助腳本、數(shù)據(jù)分析軟件和報表工具。
圖3 HIL測試自動化調(diào)用關(guān)系設(shè)計示意圖
2.3.1 腳本分層封裝
中控軟件Robot Framework的腳本語言規(guī)則是以“關(guān)鍵字”代表模塊,可以將有緊密聯(lián)系的若干操作步驟封裝為一個單獨的模塊,以便于模塊復用和腳本維護,類似于C語言中的函數(shù)。
基于高內(nèi)聚低耦合的模塊化程序設(shè)計思想,從有利于頂層應用設(shè)計、底層操作解耦以及有利于腳本復用和繼承的角度出發(fā),按3層結(jié)構(gòu)規(guī)劃自動化腳本,具體如下。
① 基礎(chǔ)封裝層。該層包括項目、設(shè)備相關(guān)的基礎(chǔ)配置以及對信號資源和各自動化接口的操作封裝。
② 應用功能封裝層。該層建立在基礎(chǔ)封裝層之上,包括環(huán)境初始化、上位機數(shù)據(jù)記錄操作、控制系統(tǒng)功能操作、數(shù)據(jù)分析操作、試驗任務(wù)基礎(chǔ)操作等應用類事務(wù)操作的模塊化封裝。
③ 測試任務(wù)執(zhí)行層。該層以應用功能封裝層為基礎(chǔ),是按測試大綱或試驗工藝文件等設(shè)計實現(xiàn)的測試任務(wù)腳本集合。
應用功能封裝層承上啟下,其模塊化程度越高,測試任務(wù)腳本的開發(fā)效率和質(zhì)量越高,可維護性越好。
2.3.2 顯形腳本執(zhí)行時間的必要性
從提高測試任務(wù)腳本開發(fā)效率和執(zhí)行時間精度的目標出發(fā),需要根據(jù)設(shè)計的仿真試驗流程,對仿真任務(wù)譜的時間編排和腳本模塊實際執(zhí)行時間進行設(shè)計和統(tǒng)籌。
中控軟件自動腳本的執(zhí)行過程需要花費一定時間,這個時間包括中控軟件下發(fā)指令至被控軟件接收到指令的時間和被控軟件響應相關(guān)操作的時間。盡管單條基礎(chǔ)操作的腳本一般比較簡單,其執(zhí)行花費的時間并不多,一般僅為10 ms級,但是在設(shè)計應用功能封裝層的腳本模塊時,會涉及大量基礎(chǔ)操作腳本的組合和重復調(diào)用。在設(shè)計頂層測試任務(wù)腳本時,會涉及應用功能封裝層模塊的組合和重復調(diào)用,從而產(chǎn)生大規(guī)模的腳本嵌套。以本文設(shè)計的某型控制器可靠性測試任務(wù)腳本為例,按應用功能封裝層模塊的單步腳本為最小統(tǒng)計單位,8 h任務(wù)腳本一共包含1014條腳本,24 h任務(wù)腳本一共包含3066條腳本,如果按基礎(chǔ)封裝層的單步腳本為最小單位統(tǒng)計,腳本數(shù)將成倍增加,可到達萬條的量級。因此,各條腳本的執(zhí)行時間誤差,無論大小,最終都將通過頂層的測試任務(wù)腳本的執(zhí)行過程累加為一個總的時間誤差,這個誤差可以從單條腳本的10 ms級發(fā)展為1 min量級,甚至可能為10 min量級,導致執(zhí)行時間誤差的累積放大。電子控制器可靠性試驗流程對環(huán)境應力模擬和HIL仿真的執(zhí)行時間敏感,如果測試任務(wù)譜執(zhí)行時間誤差較大,則會導致HIL仿真過程和環(huán)境應力模擬的變化過程在時間軸上錯位,可靠性試驗的效果就會偏離試驗的設(shè)計初衷,影響電子軟件子系統(tǒng)的驗證有效性。
因此,顯形應用功能層的模塊執(zhí)行時間,對于頂層測試任務(wù)譜時間線的設(shè)計過程是十分必要的,有助于計算分配各模塊的執(zhí)行時間并統(tǒng)籌優(yōu)化執(zhí)行時間誤差。
2.3.3 按名義執(zhí)行時間模塊化設(shè)計
本文提出了一種按腳本模塊的理論執(zhí)行時間(即名義執(zhí)行時間)進行任務(wù)譜時間線設(shè)計的方法,在腳本模塊的關(guān)鍵字中顯形注明模塊的名義執(zhí)行時長,相當于腳本執(zhí)行時間隨腳本封裝也實現(xiàn)了模塊化,其實際執(zhí)行時間和時間誤差隨封裝而確定,由此有利于在頂層任務(wù)譜中設(shè)計分配時間線,也有利于統(tǒng)計執(zhí)行時間誤差和顯形時間誤差的組成,便于綜合分配執(zhí)行過程必要的等待時長,從而統(tǒng)籌減小整個任務(wù)譜的執(zhí)行時間誤差。同時,根據(jù)腳本模塊組成的占比情況,可以有針對性地優(yōu)化調(diào)用次數(shù)較多或時間誤差較大的模塊的執(zhí)行時間,進而達到優(yōu)化整個任務(wù)腳本時間線的目的。
在應用層模塊設(shè)計與調(diào)試的方法層面,不僅要提供模塊的集成度和接口設(shè)計,而且要考慮適當提高模塊的執(zhí)行時間尺度,在其中適當添加執(zhí)行等待時長。一方面利用等待時長湊整模塊的執(zhí)行時間,達到1 s或10 s量級,以便于調(diào)用模塊時進行時間計算;另一方面通過調(diào)整執(zhí)行等待時長,補償其他腳本執(zhí)行帶來的時間花費,將名義執(zhí)行時間與實際執(zhí)行時間的誤差控制在較小范圍內(nèi),等效于降低了單條操作指令執(zhí)行時間誤差及其累計效應對模塊外部產(chǎn)生的關(guān)聯(lián)性影響,這樣更便于模塊的調(diào)用者統(tǒng)計分配執(zhí)行時間。例如,在本文設(shè)計的“數(shù)據(jù)分析10s”模塊中,數(shù)據(jù)分析工具的批處理調(diào)用操作實際花費不到0.1 s時間,為了覆蓋分析工具后臺運行時間,并實現(xiàn)模塊執(zhí)行時間尺度擴大并湊整,為其封裝一定的等待時長,定義模塊的名義執(zhí)行時間為10 s,通過調(diào)試,將等待時長調(diào)整為9.91 s,使模塊實際執(zhí)行時間達到9.97 s,誤差0.03 s,執(zhí)行時間和時間誤差顯形受控。部分腳本模塊執(zhí)行時間統(tǒng)計如表2所示。
表2 部分腳本模塊執(zhí)行時間統(tǒng)計 單位:s
按名義執(zhí)行時間進行模塊化設(shè)計的方法,降低了模塊間的時間耦合,進一步增強了腳本的模塊化程度,對于強調(diào)執(zhí)行時間精度的頂層測試任務(wù)腳本開發(fā)過程,增強了腳本時間線設(shè)計的模塊化程度,降低了任務(wù)腳本編寫過程中時間線的控制與優(yōu)化的難度,提高了開發(fā)效率和質(zhì)量。
在某型電子控制器1000 h可靠性試驗中,應用了本文研究的可靠性試驗HIL仿真測試自動化技術(shù)方案,試驗執(zhí)行過程流暢,無人值守,數(shù)據(jù)報表輸出完整。根據(jù)Robot Framework軟件的運行記錄統(tǒng)計,每8 h試驗任務(wù)腳本的執(zhí)行時間誤差預計值為93 s,實際執(zhí)行時間誤差為106±2 s,誤差受控,與理論預計值的差異約13 s,該差異主要由未使用名義時間方法封裝的部分腳本執(zhí)行時間累加而來,例如高度、馬赫數(shù)和油門桿等單一參數(shù)設(shè)置腳本,且該誤差不影響自動化測試的結(jié)果判定。部分8 h任務(wù)腳本執(zhí)行時間記錄如表3所示。
表3 部分8 h任務(wù)腳本執(zhí)行時間記錄
以FADEC系統(tǒng)電子控制器可靠性試驗為對象,研究了HIL仿真測試自動運行流程及其自動腳本設(shè)計方法,一方面通過開發(fā)輔助腳本實現(xiàn)了非自動化軟件工具套件的自動化整合,實現(xiàn)對既有的非自動化工具軟件的有效利用;另一方面,通過按名義執(zhí)行時間封裝腳本模塊的方法,實現(xiàn)對執(zhí)行時間及其誤差的顯形與控制,滿足了可靠性試驗對HIL仿真自動運行的需求。
經(jīng)過某型FADEC控制器1000 h可靠性摸底試驗應用,HIL仿真自動運行流程實施效果良好可靠,每8 h循環(huán)的腳本執(zhí)行時間誤差穩(wěn)定受控。
在后續(xù)工作中,可以將高度、馬赫數(shù)、油門桿角度等一條參數(shù)設(shè)置腳本,依據(jù)其相關(guān)性,按名義執(zhí)行時間方法優(yōu)化封裝,可進一步減小頂層測試任務(wù)腳本的執(zhí)行時間誤差,優(yōu)化執(zhí)行時間分配。