胡澤龍,孫 剛,徐 智
(中國(guó)直升機(jī)設(shè)計(jì)研究所,江西 景德鎮(zhèn) 333001)
無(wú)人直升機(jī)從起步到如今,一直飽受關(guān)注。無(wú)人直升機(jī)重量輕,體積小,能夠更有效地完成多種特殊任務(wù)。飛控系統(tǒng)作為無(wú)人直升機(jī)的飛行控制核心,對(duì)于飛行安全以及任務(wù)的順利完成,起到十分關(guān)鍵的作用。飛控應(yīng)用軟件是飛控系統(tǒng)的關(guān)鍵軟件,對(duì)于飛控系統(tǒng)能夠順利飛行更是起到?jīng)Q定性作用。
某型無(wú)人機(jī)飛控軟件基于μC/OS-II操作系統(tǒng)編寫,采取單一余度管理,對(duì)于整體飛控系統(tǒng)要求很高。而采用VxWorks作為操作系統(tǒng),進(jìn)行雙余度設(shè)計(jì),能夠有效地避免單一余度失效導(dǎo)致的各種問(wèn)題,在單機(jī)狀態(tài)下依舊可以順利地完成飛行任務(wù),提高了飛控系統(tǒng)的可靠性。
本文通過(guò)對(duì)某型無(wú)人直升機(jī)進(jìn)行改進(jìn),實(shí)現(xiàn)一款基于VxWorks操作系統(tǒng)的,采用雙余度架構(gòu)的無(wú)人直升機(jī)飛控系統(tǒng)應(yīng)用軟件,能夠?qū)崿F(xiàn)該型無(wú)人直升機(jī)飛行控制與管理系統(tǒng)的主要任務(wù),穩(wěn)定直升機(jī)姿態(tài)(俯仰、橫滾)和航向,控制發(fā)動(dòng)機(jī)風(fēng)門和直升機(jī)飛行航跡(爬升、下降、巡航、左右盤旋、懸停等),完成從起飛到降落整個(gè)過(guò)程的飛行管理,包括對(duì)動(dòng)力裝置、機(jī)載電氣設(shè)備和任務(wù)設(shè)備的管理、故障診斷及處理等多項(xiàng)任務(wù)。
VxWorks是專門為實(shí)時(shí)嵌入式系統(tǒng)而開發(fā)的操作系統(tǒng),提供了高效的實(shí)時(shí)多任務(wù)調(diào)度、中斷管理,實(shí)時(shí)的系統(tǒng)資源以及實(shí)時(shí)的任務(wù)間通信等功能支持,并為應(yīng)用與各種CPU平臺(tái)提供了統(tǒng)一的編程接口和一致的運(yùn)行特性,為程序開發(fā)提供了方便[1-3]。應(yīng)用程序員可以將盡可能多的精力投入軟件開發(fā),而較少地關(guān)注系統(tǒng)資源的管理。
VxWorks的體系結(jié)構(gòu)如圖1所示,其中包括進(jìn)程管理、存儲(chǔ)管理、文件系統(tǒng)管理、網(wǎng)絡(luò)協(xié)議及系統(tǒng)應(yīng)用等幾個(gè)部分[1][3]。本文實(shí)現(xiàn)軟件僅采用部分VxWorks系統(tǒng)功能,集成開發(fā)環(huán)境采用Tornado II進(jìn)行開發(fā),采用C語(yǔ)言程序設(shè)計(jì)。
圖1 VxWorks 體系結(jié)構(gòu)
飛控計(jì)算機(jī)硬件設(shè)備作為飛控系統(tǒng)應(yīng)用軟件的開發(fā)、運(yùn)行平臺(tái),采用了FreeScale公司PowerPC處理器MPC8245處理器作為CPU,其內(nèi)核最高頻率為300MHz;256MB的SDRAM;2個(gè)FLASH作為程序及數(shù)據(jù)的存儲(chǔ)介質(zhì),容量分別為8M×8bit和32M×16bit;128K×8bit的NVRAM(非易失存儲(chǔ)儲(chǔ)器)作為系統(tǒng)事件和故障信息記錄的存儲(chǔ)介質(zhì);利用FPGA的片內(nèi)存儲(chǔ)資源,開辟出一片雙口RAM作為飛控計(jì)算機(jī)雙余度通道之間進(jìn)行數(shù)據(jù)交叉?zhèn)鬏數(shù)耐ㄓ嵔橘|(zhì)。
計(jì)算機(jī)采用雙通道設(shè)計(jì),每個(gè)通道包括一塊核心板和接口板。核心板負(fù)責(zé)運(yùn)行操作系統(tǒng)進(jìn)行軟件運(yùn)行;接口板負(fù)責(zé)具體執(zhí)行模擬量輸入輸出、離散量輸入輸出、數(shù)字量輸入輸出。雙通道通過(guò)使用背板完成數(shù)據(jù)信號(hào)交換以及輸入輸出,并且共用一個(gè)電源模塊,電源模塊實(shí)現(xiàn)電源濾波、轉(zhuǎn)換。硬件平臺(tái)結(jié)構(gòu)如圖2所示。
圖2 硬件平臺(tái)結(jié)構(gòu)
飛行控制系統(tǒng)軟件包括實(shí)時(shí)多任務(wù)操作系統(tǒng)、底層功能軟件和應(yīng)用軟件三大部分,系統(tǒng)總體結(jié)構(gòu)如圖3所示。
圖3 系統(tǒng)軟件總體架構(gòu)
實(shí)時(shí)多任務(wù)操作系統(tǒng)即采用VxWorks操作系統(tǒng),主要負(fù)責(zé)任務(wù)執(zhí)行和驅(qū)動(dòng)管理硬件資源。底層功能軟件主要通過(guò)FPGA實(shí)現(xiàn)對(duì)硬件接口數(shù)據(jù)資源的輸入、輸出。應(yīng)用軟件作為系統(tǒng)軟件核心,通過(guò)對(duì)各個(gè)程序塊進(jìn)行執(zhí)行,完成數(shù)據(jù)采集、處理、運(yùn)算、輸出。此外,通過(guò)系統(tǒng)參數(shù)文件配置,可以對(duì)應(yīng)用軟件執(zhí)行模擬量數(shù)據(jù)參數(shù)、故障綜合信息進(jìn)行配置。本文主要針對(duì)應(yīng)用軟件的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行詳細(xì)的描述。
比較傳統(tǒng)的某型飛控系統(tǒng)應(yīng)用軟件,該應(yīng)用軟件新增了一個(gè)大功能——系統(tǒng)管理功能,飛行控制與管理功能中增加了三個(gè)新功能,BIT功能增加了PUBIT、PBIT。具體功能分布如圖4所示。
圖4 飛控系統(tǒng)功能分布圖
系統(tǒng)管理功能主要實(shí)現(xiàn)加電引導(dǎo)、設(shè)備驅(qū)動(dòng)、中斷管理、雙機(jī)同步及周期任務(wù)調(diào)度五部分功能。通過(guò)系統(tǒng)管理功能將整個(gè)飛控系統(tǒng)運(yùn)行起來(lái),從而完成相應(yīng)的飛行控制與管理功能。
飛行控制與管理功能分為9個(gè)功能模塊,右側(cè)三個(gè)功能模塊是新增的功能模塊,分別是:
1) 余度管理:包括飛控計(jì)算機(jī)雙余度通道之間的同步和數(shù)據(jù)交叉?zhèn)鬏敗⑤斎胄盘?hào)表決、飛控計(jì)算機(jī)輸出指令表決;
2)故障綜合功能:將整個(gè)飛行控制系統(tǒng)所發(fā)生的全部故障,逐一進(jìn)行判別、分類、記錄,對(duì)可恢復(fù)型故障提供恢復(fù)機(jī)制,并根據(jù)預(yù)先制定的綜合準(zhǔn)則,進(jìn)行系統(tǒng)功能上的裁定,并為故障申報(bào)做準(zhǔn)備;
3)實(shí)時(shí)記錄功能:在系統(tǒng)運(yùn)行過(guò)程中,將相關(guān)信息記錄到飛控計(jì)算機(jī)的非易失存儲(chǔ)器(NVRAM)中,包括飛控系統(tǒng)的故障信息記錄、系統(tǒng)事件記錄和掉電保護(hù)數(shù)據(jù)記錄功能。
BIT功能增加PUBIT(上電BIT)、PBIT(飛行前BIT)。上電BIT在電源接通后會(huì)自動(dòng)運(yùn)行,對(duì)CPU、RAM、FLASH、NVRAM進(jìn)行功能測(cè)試,并將結(jié)果記錄在NVRAM中。飛行前BIT在系統(tǒng)上電完畢,對(duì)應(yīng)用軟件執(zhí)行環(huán)境進(jìn)行檢查,作飛行前準(zhǔn)備。
3.1.1 任務(wù)實(shí)時(shí)調(diào)度
任務(wù)實(shí)時(shí)調(diào)度,每個(gè)通道都能夠自主地完成所有飛行功能。本文實(shí)現(xiàn)的飛控應(yīng)用軟件采用合理的優(yōu)先級(jí)配置,采用信號(hào)量進(jìn)行任務(wù)之間的調(diào)度控制,有效地完成整個(gè)系統(tǒng)的時(shí)間分配以及精準(zhǔn)的運(yùn)行周期。任務(wù)調(diào)度時(shí)序圖如圖5所示。
通過(guò)主程序掛接時(shí)鐘中斷處理程序,并且設(shè)置以20ms為周期的時(shí)鐘中斷。系統(tǒng)每20ms發(fā)生一次時(shí)鐘中斷,通過(guò)時(shí)鐘中斷處理程序釋放采集信號(hào)量,系統(tǒng)開始執(zhí)行數(shù)據(jù)采集,采集完畢,釋放監(jiān)控信號(hào)量,設(shè)備監(jiān)控程序開始執(zhí)行,依次完成余度管理、模態(tài)控制、系統(tǒng)輸出。設(shè)備監(jiān)控及余度管理會(huì)對(duì)數(shù)據(jù)進(jìn)行監(jiān)控并執(zhí)行故障綜合和實(shí)時(shí)記錄,限于篇幅,未在圖中畫出。
圖5 任務(wù)調(diào)度時(shí)序圖
3.1.2 余度管理
傳統(tǒng)的單一余度飛控應(yīng)用軟件,不需要余度管理功能。雙余度飛控系統(tǒng)應(yīng)用軟件在余度管理上主要通過(guò)底層提供的雙口RAM進(jìn)行兩個(gè)通道的數(shù)據(jù)交叉?zhèn)鬏敗J紫?,A、B機(jī)各自完成數(shù)據(jù)采集,并且結(jié)合相應(yīng)的監(jiān)控策略對(duì)單通道狀態(tài)進(jìn)行監(jiān)控,通過(guò)故障綜合記錄相應(yīng)的故障點(diǎn)及故障信息,然后通過(guò)交叉?zhèn)鬏攲㈦p通道監(jiān)控結(jié)果以及數(shù)據(jù)進(jìn)行互比,從而使得監(jiān)控狀態(tài)正確并且數(shù)據(jù)結(jié)果有效的計(jì)算機(jī)擁有輸出控制權(quán),進(jìn)行正常輸出。如果A、B通道均狀態(tài)正常,則系統(tǒng)采用A機(jī)輸出數(shù)據(jù)進(jìn)行輸出。
單通道工作流程圖如圖6所示。
圖6 單一通道工作流程圖
底層功能軟件通過(guò)判斷A、B通道故障控制邏輯確定A、B通道之間哪個(gè)通道具備輸出控制權(quán),擁有輸出控制權(quán)的輸出通道將輸出結(jié)果輸出。無(wú)輸出控制權(quán)通道的輸出結(jié)果僅程序進(jìn)行執(zhí)行,不產(chǎn)生相應(yīng)實(shí)際輸出。
3.1.3 故障綜合功能
故障綜合功能與故障記錄功能是搭配工作。故障綜合功能能夠?qū)崟r(shí)監(jiān)控整個(gè)飛控系統(tǒng)應(yīng)用軟件所設(shè)置的故障點(diǎn),了解每一個(gè)故障點(diǎn)是否發(fā)生故障,何時(shí)故障,故障持續(xù)時(shí)間,故障是否恢復(fù),然后執(zhí)行故障記錄功能,將故障信息記錄于NVRAM中。當(dāng)飛機(jī)出現(xiàn)故障并返航之后,NVRAM可以盡可能地還原出當(dāng)時(shí)飛控系統(tǒng)應(yīng)用軟件的執(zhí)行情況。
通過(guò)周期性的故障綜合,每一個(gè)通道能夠識(shí)別出自身的運(yùn)行狀態(tài),從而對(duì)通道故障控制邏輯進(jìn)行控制,確定通道是否進(jìn)行真實(shí)輸出,為雙余度的有效控制提供依據(jù)。
本文實(shí)現(xiàn)的軟件對(duì)全機(jī)共87個(gè)故障點(diǎn)進(jìn)行監(jiān)控,并且進(jìn)行相應(yīng)的故障綜合,確保軟件可靠有效地執(zhí)行。
本文軟件執(zhí)行的驗(yàn)證環(huán)境如圖7所示。
圖7 測(cè)試驗(yàn)證環(huán)境
通過(guò)仿真控制計(jì)算機(jī)給定仿真信號(hào),飛控系統(tǒng)應(yīng)用程序正常執(zhí)行,雙通道有效,可以觀察飛機(jī)執(zhí)行飛行任務(wù)的效果,如圖8所示,飛機(jī)從1處控制飛行至圖中位置,之后選擇繼續(xù)按照預(yù)定航線飛行,執(zhí)行放飛。
此時(shí),通過(guò)開發(fā)PC宿主機(jī)使單機(jī)失效,即出現(xiàn)單通道故障狀態(tài),測(cè)試雙余度中某一余度失效時(shí),單余度是否能夠保證系統(tǒng)繼續(xù)正常工作。測(cè)試結(jié)果如圖9(a)、圖9(b)所示,飛機(jī)繼續(xù)完成航線任務(wù)并且不受任何影響。
圖8 飛機(jī)執(zhí)行航線任務(wù)
圖9 飛行航線任務(wù)圖
圖9(c)、(d)中,此時(shí)飛機(jī)狀態(tài)依舊正常,并未受到飛控計(jì)算機(jī)故障影響,正常響應(yīng)新的航線飛行任務(wù),并且順利完成飛行任務(wù),不出現(xiàn)返回或失效狀態(tài)。
驗(yàn)證表明,基于VxWorks的某型無(wú)人直升機(jī)雙余度飛控應(yīng)用軟件能夠可靠有效地完成飛行任務(wù),且發(fā)揮雙余度功效,增加系統(tǒng)的可靠性。
飛行控制系統(tǒng)對(duì)于軟件的實(shí)時(shí)性和可靠性有非常高的要求。本文改進(jìn)與實(shí)現(xiàn)的某型無(wú)人直升機(jī)飛控應(yīng)用軟件能夠有效地克服該型機(jī)飛控應(yīng)用軟件的缺點(diǎn),提高實(shí)時(shí)性、可靠性。采取VxWorks操作系統(tǒng)作為實(shí)時(shí)嵌入式操作系統(tǒng),能夠有效地保證軟件的實(shí)時(shí)性。相比單余度而言,通過(guò)雙余度進(jìn)行的硬件、軟件架構(gòu),能夠很好地提高飛控系統(tǒng)的可靠性,并且具備一定的容錯(cuò)性。通過(guò)在模擬環(huán)境下的嚴(yán)格驗(yàn)證,該軟件能夠?qū)崿F(xiàn)所設(shè)計(jì)的功能,并且能夠使某型無(wú)人直升機(jī)正確有效地完成飛行任務(wù)。