何瑤
(中國直升機(jī)設(shè)計研究所,四川 景德鎮(zhèn) 333000)
直升機(jī)飛行控制系統(tǒng)從三軸增穩(wěn)控制系統(tǒng)發(fā)展而來,解決了最初直升機(jī)操縱困難、駕駛員駕駛負(fù)擔(dān)重的問題。幾十年來,經(jīng)過自動駕駛儀、多余度、主動控制、光傳操縱、電傳操縱等技術(shù)的不斷發(fā)展。現(xiàn)代直升機(jī)對于飛控系統(tǒng)有了高度綜合化、高可靠性、更舒適智能的新要求。
隨著飛控系統(tǒng)的不斷發(fā)展,加載其中的飛控軟件也越來越復(fù)雜,逐漸成為關(guān)系到飛控系統(tǒng)安全的重要因素。因此,要求飛控軟件具有快速故障隔離、高響應(yīng)速率的能力。傳統(tǒng)的操作系統(tǒng)在實時性、安全性等方面并不能滿足這些要求。分區(qū)操縱系統(tǒng)具有系統(tǒng)空間隔離和資源隔離的特點(diǎn),通過模塊化設(shè)計和軟件構(gòu)件化設(shè)計,能夠有效提高飛控系統(tǒng)軟件的安全性,保證通信和容錯的透明性。在提高開發(fā)效率和降低維護(hù)成本上都有很大的優(yōu)勢。
本文提出了基于分區(qū)實時操作系統(tǒng)的飛控軟件開發(fā)與設(shè)計方法。實現(xiàn)了系統(tǒng)調(diào)度、余度管理、同步和交叉?zhèn)鬏數(shù)裙δ堋?/p>
分區(qū)實時操作系統(tǒng)從時域和空間域上滿足了資源可用性。在時間上,采用時間調(diào)度表調(diào)度不同的任務(wù),確保分區(qū)的運(yùn)行時刻在系統(tǒng)中是確定的。在空間上,分區(qū)間、分區(qū)空間與核心空間相互隔離,分區(qū)間的中斷資源、故障相互隔離,分區(qū)空間域核心空間的訪問相互隔離。這在設(shè)計上保證了系統(tǒng)可以按照需求將不同的任務(wù)或是部件分配給每個分區(qū)的固定存儲區(qū)域,確保各個任務(wù)或部件的存儲彼此獨(dú)立,沒有影響。分區(qū)實時操作系統(tǒng)支持分區(qū)間通信,它為開發(fā)者提供基于共享內(nèi)存和服務(wù)中斷的分區(qū)間通信。其中共享內(nèi)存可以通過靜態(tài)配置,并且可以指定共享內(nèi)存的讀寫權(quán)限。滿足了不同任務(wù)之間數(shù)據(jù)共享和訪問的需求。系統(tǒng)對中斷和異常全面接管,提供相應(yīng)的處理機(jī)制,能夠保證中斷和異常的快速響應(yīng)和正確處理。同時,系統(tǒng)還提供多處擴(kuò)展接口,包括操作系統(tǒng)初始化前、操作系統(tǒng)初始化完成時開始分區(qū)調(diào)度前、分區(qū)被調(diào)度進(jìn)入時、分區(qū)被調(diào)度換出時、時間調(diào)度表每個主幀開始時、時間調(diào)度表時間窗口切換時、空閑分區(qū)運(yùn)行時、故障發(fā)生時。這些操作系統(tǒng)接口為不斷向模塊化、綜合化發(fā)展的飛控軟件開發(fā)提供了極大便利。
分區(qū)實時操作系統(tǒng)主要包括核心級板級支持包(KBSP)、目標(biāo)機(jī)代理(TA)、運(yùn)行時庫(RTL)、系統(tǒng)服務(wù)管理(SSM)、安全虛擬機(jī)內(nèi)核(SVMK)和分區(qū)級板級支持包(VBSP)。分區(qū)實時操作系統(tǒng)部件組成如圖1 所示。分區(qū)操作系統(tǒng)各部件及功能見表1 所示。
表1 分區(qū)操作系統(tǒng)部件及功能
圖1 分區(qū)操作系統(tǒng)組成部件
飛控系統(tǒng)采用四余度設(shè)計,系統(tǒng)由飛控計算機(jī)、飛控操縱臺、慣性測量組件、舵機(jī)等組成。主要功能包括人工操縱、比普操縱、三軸(俯仰、橫滾、航向)增穩(wěn)、控制增穩(wěn)等功能。飛行員通過按壓飛控操縱臺上的速度保持、高度保持等功能按鈕可以接通姿態(tài)保持、航向保持、氣壓高度保持、無線電高度保持、空速保持、自動懸停等相應(yīng)的自動飛行控制功能。
飛控系統(tǒng)還與機(jī)上的綜合顯示系統(tǒng)相交聯(lián),通過狀態(tài)指示燈、語音以及多功能顯示器上的顯示信息,為飛行員指示系統(tǒng)的工作和故障狀態(tài)。在多功能顯示器上顯示總距、差動總距、周期變距(縱向和橫向)、差動周期變距、尾推槳總距、升降舵偏轉(zhuǎn)角、方向舵偏轉(zhuǎn)角等重要操縱量信息。飛控軟件實時監(jiān)控綜合系統(tǒng)狀態(tài)及故障,通過綜顯畫面向飛行員提示飛控故障信息。同時,應(yīng)具有航前及航后提供飛控系統(tǒng)故障報告的功能,實時向其他系統(tǒng)(飛參記錄儀、直升機(jī)飛行數(shù)據(jù)監(jiān)控系統(tǒng)等)提供所需的數(shù)據(jù)。
飛控系統(tǒng)還具有飛行前自檢測(PBIT)、飛行中自檢測、維護(hù)自檢測(MBIT)能力。
飛控軟件以T0為周期運(yùn)行,軟件共有三種狀態(tài),系統(tǒng)實時監(jiān)控狀態(tài)、飛行前自檢測狀態(tài)、維護(hù)自檢測狀態(tài)。飛控計算機(jī)上電后,根據(jù)外部開關(guān)信號如PBIT、MBIT、軟件加載使能信號(GSE)進(jìn)入相應(yīng)的工作狀態(tài)。各個工作狀態(tài)軟件功能要求如下。
(1)飛行前自檢測。在直升機(jī)起飛前,地面維護(hù)人員或駕駛員可使飛控系統(tǒng)進(jìn)入飛行前自檢測狀態(tài),用以對飛行控制系統(tǒng)及相關(guān)交聯(lián)設(shè)備進(jìn)行自動、快速的檢測,以保證系統(tǒng)無故障升空。
(2)維護(hù)自檢測狀態(tài)。維護(hù)檢測狀態(tài)是指在地面狀態(tài)下,對飛控系統(tǒng)的故障讀取功、飛控配置文件的燒寫等功能。
(3)系統(tǒng)實時監(jiān)控狀態(tài)。系統(tǒng)實時監(jiān)控狀態(tài)是飛控系統(tǒng)系統(tǒng)軟件運(yùn)行的主狀態(tài),在此狀態(tài)下,軟件按預(yù)定的余度管理策略對飛控系統(tǒng)進(jìn)行實時管理、監(jiān)測與控制,以完成所需的飛行控制任務(wù)。
三種狀態(tài)之間的進(jìn)入條件如圖2。飛控系統(tǒng)在上電后,飛控軟件通過系統(tǒng)管理功能實現(xiàn)系統(tǒng)的加電引導(dǎo)功能,加電引導(dǎo)功能通過計算機(jī)相關(guān)資源的初始化、加電狀態(tài)的識別完成系統(tǒng)三種工作方式的選擇。
圖2 飛控軟件三種狀態(tài)的進(jìn)入條件
分區(qū)實時操作系統(tǒng)為本軟件搭建應(yīng)用平臺,提供任務(wù)調(diào)度、設(shè)備驅(qū)動、中斷管理等功能。飛控系統(tǒng)軟件的功能模塊的劃分如圖3 所示,通過模塊化、層次化的設(shè)計將飛控系統(tǒng)軟件劃分為主要的功能模塊和各速率組任務(wù),設(shè)計了基于優(yōu)先級調(diào)度的任務(wù)管理策略。
(1)模塊化。通過分解需求中的功能,將飛控系統(tǒng)軟件劃分為采集、輸入表決、控制律、輸出表決、系統(tǒng)申報任務(wù)模塊,通過這些任務(wù)模塊的執(zhí)行,完成飛控系統(tǒng)所需要的功能。
(2)層次化。任務(wù)模塊中包含相同功能的任務(wù)組,根據(jù)實時性的需要以及任務(wù)的執(zhí)行速率特點(diǎn)劃分到不同的執(zhí)行速率組任務(wù)中。對模塊中的任務(wù)執(zhí)行時間細(xì)分為固定速率組、動態(tài)速率組合后臺任務(wù)組。如對于采集功能,飛控系統(tǒng)軟件的采集任務(wù)模塊包含T0、4T0速率采集任務(wù)、臺總線采集任務(wù)。同樣,對于系統(tǒng)申報,根據(jù)總線周期特點(diǎn)和數(shù)據(jù)量需要,將申報任務(wù)劃分為不同速率組,如飛參4T0申報任務(wù)、綜顯4T0申報任務(wù)、綜顯12T0申報任務(wù)、綜顯36T0申報任務(wù)。
(3)優(yōu)先級。根據(jù)飛行控制系統(tǒng)各任務(wù)執(zhí)行特點(diǎn),設(shè)計任務(wù)的優(yōu)先級來調(diào)度各任務(wù)執(zhí)行。軟件上電開始運(yùn)行任務(wù)調(diào)度函數(shù),主要功能包括掛接時鐘、上電同步、掛接看門狗等。該任務(wù)在上電只運(yùn)行一次,具有最高的優(yōu)先級。其余任務(wù)優(yōu)先級從高到低依次為主周期任務(wù)、PBIT、后臺采集、申報、調(diào)試打印任務(wù)。
飛控系統(tǒng)為四余度設(shè)計,四余度計算機(jī)由兩臺飛控計算機(jī)組成,每臺飛控計算機(jī)內(nèi)包含兩套完全相同的余度通道。包括CPU、RAM、NVRAM、定時器、總線接口板、D/A 模塊、FLASH、電源模塊。每個CPU 內(nèi)存分配了數(shù)據(jù)交叉?zhèn)鬏敯l(fā)送緩存區(qū)和數(shù)據(jù)交叉?zhèn)鬏斀邮站彺鎱^(qū)。通過CCDL 總線,每個通道可以收到來自其他三個通道的數(shù)據(jù),組成四余度系統(tǒng)數(shù)據(jù)輸入和輸出。從而實現(xiàn)后續(xù)的余度表決和監(jiān)控功能。CCDL 數(shù)據(jù)在軟件時序上的數(shù)據(jù)流如圖4 所示??梢钥吹?,交叉?zhèn)鬏敂?shù)據(jù)至少經(jīng)過一拍的延時,才能送入本機(jī)。這在軟件設(shè)計時,需要進(jìn)行考慮。
軟件在上電運(yùn)行時,四機(jī)之間需要初始上電同步,確保四通道之間同時開始工作。由于定時器存在硬件差異,隨著時間積累,4 個通道之間的定時器差異不斷增大。這時,由于四機(jī)采集的外部信號不同時,導(dǎo)致4個計算機(jī)的控制律輸出會出現(xiàn)較大偏差。這屬于嚴(yán)重的計算機(jī)輸出故障。因此,在每個周期任務(wù)的開始,四機(jī)進(jìn)行一次周期同步,這樣會把定時器差異帶來的錯誤縮小在一個周期內(nèi)。故障不會因此蔓延。上電同步和周期同步采用握手的方式實現(xiàn)。即在周期時鐘到來時,本機(jī)輸出高電平至其他通道,當(dāng)在規(guī)定時間等到其他通道回復(fù)的高電平。即認(rèn)為本機(jī)同步成功,開始進(jìn)入周期工作。
余度管理是多余度設(shè)計中的關(guān)鍵所在。余度管理包括信號表決和余度降級策略。表決包括輸入表決和輸出表決。以輸入表決為例,外部信號為冗余輸入。對于一個典型的角速率信號來說,四余度慣性測量組件、四余度激光慣導(dǎo)、四余度光纖慣導(dǎo)均可以為飛控計算機(jī)提供輸入信號。這是因為對于這些關(guān)系到安全的重要信號,設(shè)置多個備份可以確保在某個部件故障時切換到其余部件,以滿足系統(tǒng)安全的要求。對于不同部件提供的同一信號,一般在軟件中設(shè)置各信號的優(yōu)先級。如優(yōu)先使用慣性測量組件的角速率信號,當(dāng)其發(fā)生故障時,依次使用備份設(shè)備的角速率信號。
對于某個四余度輸入信號來說,飛控軟件通過表決算法得到一致的輸入。并將這些數(shù)據(jù)送入控制律進(jìn)行計算。正常情況下,四機(jī)的輸出值應(yīng)該相差不大。但實際情況下的計算機(jī)計算故障和偏差也應(yīng)該進(jìn)行考慮。因此,在輸出端也采用同樣的表決算法,使四機(jī)得到一致的輸出。常用的表決算法為多數(shù)一致法,即認(rèn)為4 個余度的輸入本身應(yīng)是一致的。而余度某部件出現(xiàn)故障時,則該通道輸入值偏離其余輸入。則可以通過相應(yīng)的表決算法,得到正確的輸入值,并將故障通道進(jìn)行隔離。以四余度離散量輸入表決為例。記A 通道輸入值為X0、B 通道輸入值為X1、C 通道輸入值為X2、D 通道輸入值為X3。表決算法見表2。
表2 四余度表決算法
飛控系統(tǒng)具有主飛行控制功能和自動飛行控制功能。
主飛行控制功能是飛控系統(tǒng)的基本同時也是最主要的工作方式,主飛行控制功能包括人工操縱、比普操縱、三軸(俯仰、橫滾、航向)增穩(wěn)、控制增穩(wěn)等功能。
自動飛控功能需要從主飛行控制功能進(jìn)入,當(dāng)飛控系統(tǒng)工作在主飛行控制時,通過按壓飛控操縱臺上的速度保持、高度保持等功能按鈕接通相應(yīng)的自動飛行控制功能。主要功能包括姿態(tài)保持、航向保持、氣壓高度保持、無線電高度保持、空速保持、自動懸停。這些功能通過俯仰、橫滾、航向、高度四個通道間的舵機(jī)輸出實現(xiàn)。
飛控系統(tǒng)控制狀態(tài)和控制律流程見圖5。
圖5
當(dāng)調(diào)用12.5ms 狀態(tài)控制和控制律計算任務(wù)時,飛控系統(tǒng)軟件根據(jù)當(dāng)前的狀態(tài)控制的結(jié)果調(diào)用相應(yīng)的子模態(tài)的執(zhí)行,然后進(jìn)行相應(yīng)的控制律計算。
飛控系統(tǒng)是關(guān)系到飛行安全的重要部件。因此,需要飛控系統(tǒng)在飛行中快速準(zhǔn)確地識別系統(tǒng)出現(xiàn)的故障,合理地進(jìn)行故障處理和安全降級并通過綜顯、指示燈等向外進(jìn)行故障申報。
飛控系統(tǒng)故障按照部件分類可以分為飛控計算機(jī)故障、角位移傳感器故障、慣性測量組件故障、操縱臺故障、舵機(jī)故障、組合慣導(dǎo)故障、大氣機(jī)故障。按照系統(tǒng)軟件運(yùn)行邏輯可以分為同步故障、采集故障、互比故障、輸出故障。軟件通過采集到的數(shù)據(jù)和狀態(tài),以及實時計算得到互比狀態(tài)對各個部件進(jìn)行監(jiān)控。在軟件中,我們將這些故障逐條進(jìn)行梳理,對于一個四余度系統(tǒng),系統(tǒng)軟件需要監(jiān)控的故障條數(shù)可達(dá)數(shù)百條。軟件實時監(jiān)控這些故障,當(dāng)監(jiān)測到某條故障持續(xù)出現(xiàn),并達(dá)到一定的時間門限時,則需要通過綜顯、操縱臺指示燈等方式進(jìn)行故障告警。向飛行員的告警的故障一般申報至部件級、功能級。
當(dāng)某個故障出現(xiàn)時,如何設(shè)計故障處理,既不影響飛行安全,又將故障對系統(tǒng)的影響減少到最小。這是故障監(jiān)控及告警設(shè)計的關(guān)鍵。軟件中需要綜合考慮某個故※※障點(diǎn)出現(xiàn)故障時,對系統(tǒng)功能的影響、對軟件功能的影響、對某個部件的影響。并對故障進(jìn)行分類和相應(yīng)的處理,例如,當(dāng)由于故障出現(xiàn)導(dǎo)致某個部件不可用時,軟件中需要考慮第二備份部件、第三備份部件的使用。合理的故障監(jiān)控和告警設(shè)計是飛控軟件正常工作和保證安全的重要方法和手段。
本文介紹了一種基于分區(qū)操作系統(tǒng)的飛控軟件開發(fā)方法。分區(qū)操作系統(tǒng)為飛控軟件提供了具有空間隔離的安全的軟件運(yùn)行環(huán)境。本文分析了四余度飛控軟件的需求,設(shè)計了一種多任務(wù)調(diào)度的飛控軟件架構(gòu),實現(xiàn)了同步、周期任務(wù)、數(shù)據(jù)的輸入輸出、系統(tǒng)狀態(tài)控制以及表決監(jiān)控等軟件功能,滿足了系統(tǒng)的需求。