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