摘 要:在對民用飛機飛行顯示警告系統(tǒng)的建模仿真中,研究人員面臨著如何高效地對具有極多輸入信號的龐大系統(tǒng)進行賦值,以及對多個相似模型如何進行統(tǒng)一地測試等問題。該文基于Matlab編程語言和Simulink工具提出了解決方案,研究了一套建模的方法,創(chuàng)造性地提出了運用時間序列對輸入變量進行批量賦值的方法;通過開發(fā)模型測試軟件,高效地對多個相似的模型進行測試和調試。
關鍵詞:民用飛機 FDAS系統(tǒng) 建模仿真 Matlab Simulink
中圖分類號:TP391 文獻標識碼:A 文章編號:1674-098X(2015)08(b)-0090-03
1 研究背景及問題描述
該文的研究背景是某民用飛機飛行顯示警告系統(tǒng)的建模仿真。該系統(tǒng)決定“是否、何時、如何”將告警信號通知飛行員[1];該系統(tǒng)有上千條告警邏輯,每條邏輯的輸入變量符合觸發(fā)條件時,該條告警信號會被觸發(fā);該系統(tǒng)又根據(jù)告警根源的不同劃分為幾十個子系統(tǒng),每個子系統(tǒng)結構相同,僅內(nèi)容不同。
該系統(tǒng)在仿真和建模時,存在兩大不利因素:一是輸入信號數(shù)量龐大,達到了上千條,如何在仿真時對這些輸入變量進行方便地賦值成為一大難題;二是該系統(tǒng)子系統(tǒng)眾多,不同子系統(tǒng)的模型缺乏統(tǒng)一的測試運行平臺。本文的目標是在Matlab軟件Simulink工具環(huán)境下研究解決這些問題的有效方法。[2]
2 系統(tǒng)需求分析
該文章認為,如果要對該系統(tǒng)進行有效的建模和測試,至少需要滿足以下要求:
建立的模型應具有完整的輸入輸出定義,包括輸入的名稱、類型、單位、默認值以及輸出變量的取值范圍。
根據(jù)告警根源劃分為可單獨運行的一個個子模型,每一個子模型可獨立于其他子模型來運行。
模型調試軟件能夠對模型進行調試與驗證。
模型調試軟件能夠對模型的輸入變量進行讀取,實時查看當前的輸入變量的值。
模型調試軟件能夠對模型的輸入變量進行修改,并驗證模型運行結果。
3 系統(tǒng)設計與實現(xiàn)
文中提出一套仿真建模解決方案,其中包含建立一個樣例模型以及一個模型調試軟件,下面章節(jié)陸續(xù)介紹。[3-4]
3.1 模型框架
樣例模型基于Simulink搭建,模型架構根據(jù)“接口文件”進行劃分。每個“接口文件”對應一個飛機的子系統(tǒng),該文件記錄了該子系統(tǒng)可能觸發(fā)的所有告警信號,以及這些告警信號相關信息。
每個子系統(tǒng)會可能會觸發(fā)幾十甚至上百條告警邏輯,每一條邏輯都有確定的輸入變量定義,這些定義也都儲存在接口文件中。這些告警可以是同時觸發(fā)的。某個子系統(tǒng)告警邏輯模型的結構,是該系統(tǒng)接口文件定義的所有告警邏輯模型的并行集合,如圖 1所示。
3.2 Simulink邏輯建模
每一條告警邏輯可以是AND和OR、與非門的簡單邏輯,也可以是含有自定義函數(shù)的復雜邏輯。對于簡單告警邏輯,采用模塊庫中Simulink庫建模;對于復雜邏輯,使用simulink拓展庫“state flow”庫來建模。輸入變量采用Inport模塊搭建。邏輯判斷操作使用Simulink邏輯運算模塊搭建。
結果變量采用輸出模塊搭建。每條告警信息都有一個對應的告警編號值,這個值與是唯一的,也是一一對應的,作為告警邏輯判斷的結果變量值,如果這條告警被觸發(fā),則結果變量的值就等于該告警編號,否者就輸出0。
一條告警判斷邏輯的模型如圖2所示。
3.3 Simulink輸入變量配置
在完成了某個子系統(tǒng)(如圖3所示)的多條告警邏輯建模后,采用批量生成時間序列,以及批量匹配的方式對這個模型的輸入變量進行賦值。
使用excel建立一個變量數(shù)值與時間的關聯(lián)表格,如圖4所示。該excel文件中變量名稱同模型中的輸入端口名稱一一對應,數(shù)值取的是項目接口定義文件中定義的默認值。
接下來通過simulink的tstool工具批量生成時間序列,使用該工具選擇從該Excel表格批量生成多個變量的時間序列。時間序列是simulink模型變量在仿真運行過程中在任意時刻所有取值的集合,要明確變量類型,變量初始值才能建立時間序列。
將這些生成的時間序列導入到Matlab工作區(qū),并且保存到一個Matlab數(shù)據(jù)格式文件“A”中; 接下來在Simulink模型中,選擇“編輯輸入變量”工具,使用該工具將模型的輸入變量與數(shù)據(jù)格式文件“A”根據(jù)模塊名稱進行匹配。匹配成功后,模型再次運行時,輸入模塊會從Matlab工作區(qū)中取值。
3.4 基于Matlab GUI的模型測試程序
模型測試程序部分基于Matlab“m語言”開發(fā),對Simulink模型進行仿真配置與測試。
本項目設計的模型測試程序如圖 5所示,本項目涉及到的幾十個飛機子系統(tǒng)告警邏輯模型都可以通過它來完成測試。它包含配置文件讀取功能區(qū)、變量列表區(qū)、變量當前值查看及修改功能區(qū)、仿真操作區(qū)以及仿真結果展示區(qū)域;它可以加載調試所用變量、編輯修改任意當前變量,在當前變量下運行Simulink模型并驗證模型的正確性。
3.5 GUI模型測試程序框架
使用Matlab內(nèi)置的GUI開發(fā)工具“GUIDE”,創(chuàng)建一個空白的圖形用戶界面,自動打開一個圖形開發(fā)環(huán)境,開始圖形用戶界面的搭建。界面的布局使用uipanel面板控件來界定,設定好面板的位置后,修改其Title屬性,使其標題可以表達該區(qū)域功能。本模型測試程序主要包含四個主面板:導入和重新加載文件面板(左上角)、變量與仿真操作面板(左下角)、CAS告警信息面板(右上角)以及CAS告警屬性值(右下角)面板。
3.6 導入和重新加載文件面板
本面板的功能是為模型運行和結果分析準備好條件,包括導入仿真系統(tǒng)的配置信息、導入模型輸入變量以及重新加載這三個功能。這些功能主要是通過導入按鈕、配置文件名存儲文本框、模型輸入變量文本框和重新加載數(shù)據(jù)按鈕實現(xiàn)的。
導入仿真系統(tǒng)的配置信息這個功能是通過導入按鈕實現(xiàn)的,在按下該按鈕時,會提示用戶選取接口定義文件,系統(tǒng)會根據(jù)該文件自動生成一個配置文件,將仿真所需的信息保存在該文件中,并在配置文件名存儲文本框中顯示該文件名。導入模型輸入變量主要是通過點擊模型輸入變量文本框,在彈出的對話框瀏覽并選擇已生成好的輸入變量文件即可。重新加載的功能通過點擊重新加載數(shù)據(jù)按鈕,系統(tǒng)會自動將已導入的配置信息和模型輸入變量完成加載。
3.7 變量與仿真操作面板
本面板是與仿真運行直接相關的功能區(qū)域。該區(qū)域主要有三大部分功能,第一部分是查看模型輸入變量列表以及默認值,第二部分是編輯模型輸入變量當前值,第三部分是調用Simulink模型進行仿真。所涉及到的控件有五個:變量列表表格、坐標系、可編輯文本框、“編輯輸入變量”按鈕和“運行Simulink模型”按鈕。
查看模型輸入變量列表以及默認值的功能主要是通過變量列表表格和坐標系實現(xiàn)的。在完成“重新加載數(shù)據(jù)”后,變量列表表格顯示該模型的輸入變量名,變量類型和默認值,用戶用鼠標點擊選擇其中的任意個數(shù)變量,選取變量的當前時序值會立即顯示在坐標系上。
編輯模型輸入變量當前值主要是通過變量列表表格和“編輯輸入變量”按鈕實現(xiàn)的。按下“編輯輸入變量”按鈕會啟動時間序列編輯工具,可以用該工具對當前選中的變量的時間序列值進行修改。
調用Simulink模型進行仿真主要是通過可編輯文本框來選擇應該對哪個模型進行仿真,而點擊“運行Simulink模型”按鈕則會開始進行仿真,并將結果顯示到CAS告警信息面板、CAS告警屬性值兩個面板上。
3.8 CAS告警信息面板
在該用戶圖形界面程序的右上角部分,就是CAS告警信息面板部分。該面板主要控件只有一個,就是告警信息表格。該表格顯示告警仿真警報文字,在仿真模擬結束后,如果仿真的結果包含告警,則顯示所有產(chǎn)生過的告警信號的警報文字。
該表格在程序初始運行的時候是空白的,在執(zhí)行了“運行Simulink模型”后,會更新告警信息表格的內(nèi)容,根據(jù)模型仿真的結果來顯示對應的告警警報文字。
3.9 CAS告警屬性值面板
這一面板的主要功能是顯示模型仿真結果所關聯(lián)的其他告警屬性值。涉及的控件有兩個,一個是告警編號表另一個是告警屬性值表。前者只有一列,內(nèi)容是告警編號,后者為三列表格,內(nèi)容分別為警報聲音,警報級別和警報顏色。這兩個表格控件,連同上一節(jié)的告警信息表,均會在點擊模型運行后被更新。
4 方案驗證
依照前述方法,搭建了液壓系統(tǒng)告警邏輯模型來驗證本文提出的解決方案。在點擊運行模型按鈕后,在模型測試程序的界面中顯示出預期的告警結果如圖6所示。
5 結語
文章提出了一套針對多變量模型建模及測試的解決方案,有效地解決了某型飛機民用飛機飛行顯示警告系統(tǒng)模型仿真時存在的問題。問題主要是兩方面:第一是模型輸入變量過多,用常規(guī)的賦值方式耗時耗力的的問題;第二是多個相似的模型建立后,模型的測試和調試缺乏統(tǒng)一的工具平臺的問題。該解決方案可以在未來類似的系統(tǒng)建模過程中應用,具有一定的參考價值。
參考文獻
[1]張博.民用飛機機組告警系統(tǒng)設計[J].中國高新技術企業(yè),2014(26):29-30.
[2]陳廣永,龔華軍,沈春林,等.基于性能的復雜報警系統(tǒng)設計方法研究[J].計算機仿真,2008(5):20-23.
[3]范學東.主、備用衛(wèi)星信號報警系統(tǒng)的Matlab仿真[J].廣播電視信息,2014(11):82-84.
[4]樊燁,董金文,張昆侖,等.基于Matlab/Simulink的高速磁浮列車車載電網(wǎng)系統(tǒng)仿真研究[J].系統(tǒng)仿真學報,2007(20):4803-4807,4839.