基于RTOS的無(wú)人機(jī)發(fā)動(dòng)機(jī)數(shù)控系統(tǒng)軟件設(shè)計(jì)
點(diǎn)擊:1402
A+ A-
所屬頻道:新聞中心
0 引言
無(wú)人機(jī)在現(xiàn)代戰(zhàn)爭(zhēng)中發(fā)揮越來(lái)越重要的作用,鼴到各軍事天送重視并大力辨展研發(fā),其中態(tài)空毫速噴氣無(wú)人枧蹙發(fā)展重點(diǎn),我鏊遙年來(lái)氌魏大該方瑟磅究。垂手無(wú)入撬豹矮震特點(diǎn),疆求其噴氣動(dòng)力的控制系統(tǒng)可靠弗鼠能實(shí)現(xiàn)無(wú)人億操縱,其中發(fā)動(dòng)機(jī)控制最好深用數(shù)控系統(tǒng)。
隨著電子技術(shù)的發(fā)展和發(fā)動(dòng)機(jī)數(shù)控系統(tǒng)的研發(fā),數(shù)控系統(tǒng)硬件已基本成熟,軟件設(shè)計(jì)成為整個(gè)系統(tǒng)豹研發(fā)的重點(diǎn)。傳統(tǒng)基于DOS的編程方法,程序代碼冗長(zhǎng),不易升級(jí)維護(hù),兼容性差,修改調(diào)試?yán)щy。
近年來(lái),實(shí)時(shí)操作系統(tǒng)(RTOS)在軍用電子控制裝置中得到廣泛應(yīng)用,如美國(guó)的F16、FA-18戰(zhàn)斗機(jī)、B2隱形轟炸機(jī)及愛(ài)國(guó)者導(dǎo)彈的控制系統(tǒng)均采用了VxWorks寅時(shí)操作系統(tǒng)秘。國(guó)內(nèi)無(wú)入巍飛控系統(tǒng)設(shè)計(jì)方囂采強(qiáng)實(shí)爵操{謄系統(tǒng)已瘸子工程實(shí)際,在發(fā)動(dòng)稅控裁方_霹也拜震了相應(yīng)耱研究,僵未覓工程驗(yàn)證報(bào)道。
本文針對(duì)某光人機(jī)用單轉(zhuǎn)予渦噴發(fā)動(dòng)機(jī)數(shù)控系統(tǒng)要求及現(xiàn)有電子控制器硬件結(jié)構(gòu),進(jìn)行基于嵌入式操作系統(tǒng)VxWorks豹發(fā)動(dòng)撬數(shù)控系統(tǒng)軟繹設(shè)計(jì),并遴褥發(fā)動(dòng)規(guī)數(shù)控斌率驗(yàn)涯。
1 電子控裁器硬件系統(tǒng)
電子控制器原理方框如圖1,硬件層采用基于相似余度技術(shù)的雙通道、雙CPU模塊化結(jié)構(gòu),每個(gè)通道由采集模塊和控制模塊組成,通道之間采用UDP網(wǎng)絡(luò)通訊,控制模塊與飛控系統(tǒng)之間采塌RS422串行通訊。系統(tǒng)中,CPU采用486PC/104結(jié)構(gòu),王終瞬,在每一個(gè)羧鍘周期秀令通道麓時(shí)采集發(fā)凌橇轉(zhuǎn)速和T4激度等信號(hào),接收飛控系統(tǒng)傳輸豹飛行狀態(tài)(高度、馬赫數(shù))和控制任務(wù)指令,根據(jù)發(fā)動(dòng)機(jī)當(dāng)前工作狀態(tài)和飛控指令,由設(shè)定的控制算法計(jì)算所需供油量,兩個(gè)通道通道UDP網(wǎng)絡(luò)通訊方式進(jìn)行數(shù)據(jù)交叉?zhèn)鬏敚⑼ㄟ^(guò)余度表決邏輯穩(wěn)出控制信號(hào)驅(qū)動(dòng)執(zhí)行祝梅改變供瀨。
兩個(gè)通道同步工作,主通道進(jìn)行發(fā)動(dòng)機(jī)任務(wù)的控制,從通道作為熱備份通道,當(dāng)主通道發(fā)生故障時(shí),從通道可以隨時(shí)接替主通道進(jìn)行控制。
系統(tǒng)設(shè)計(jì)不帶機(jī)械液壓備份,為監(jiān)控電子控制器工作情況,每個(gè)通道設(shè)計(jì)有模擬電備份電路。當(dāng)飛控系統(tǒng)監(jiān)控到兩個(gè)通道均不正常工作時(shí),可通過(guò)模擬電備份通道監(jiān)控發(fā)動(dòng)機(jī)工作狀態(tài),及時(shí)采取相應(yīng)的應(yīng)急措施。
2 系統(tǒng)需求
電子控制器是發(fā)動(dòng)機(jī)控制的核心單元,根據(jù)采集的發(fā)動(dòng)機(jī)當(dāng)前工作狀態(tài)參數(shù)和接收的飛控指令參數(shù)對(duì)發(fā)動(dòng)機(jī)進(jìn)行循環(huán)控制。工作時(shí)先加電進(jìn)行自檢和初始化,無(wú)故障后進(jìn)入20ms主控循環(huán),首先雙機(jī)同步接收飛控指令,然后進(jìn)行數(shù)據(jù)采集與處理,控制器依據(jù)當(dāng)前飛控指令,調(diào)度相應(yīng)的控制任務(wù),并根據(jù)發(fā)動(dòng)機(jī)狀態(tài)參數(shù)(轉(zhuǎn)速、T4溫度等)計(jì)算當(dāng)前周期輸出控制參數(shù),雙通道通訊交叉?zhèn)鬏斢?jì)算結(jié)果,計(jì)算結(jié)果送入表決器進(jìn)行余度表決,余度控制電路根據(jù)表決結(jié)果接通相應(yīng)的控制輸出模塊,實(shí)現(xiàn)對(duì)發(fā)動(dòng)機(jī)不同工況的控制。
發(fā)動(dòng)機(jī)控制需調(diào)度的任務(wù)如圖2所示,具體包括主燃油控制、驅(qū)動(dòng)輸出控制、地面啟動(dòng)控制、空中啟動(dòng)控制、發(fā)動(dòng)機(jī)油封、發(fā)動(dòng)機(jī)冷運(yùn)轉(zhuǎn)。
3 系統(tǒng)軟件設(shè)計(jì)
基于優(yōu)先級(jí)調(diào)度算法的嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS,Real Time Operation System),可將復(fù)雜任務(wù)分解為多個(gè)簡(jiǎn)單任務(wù),在操作系統(tǒng)環(huán)境下,用戶只需定義各任務(wù)模塊的優(yōu)先級(jí)別,系統(tǒng)自動(dòng)保證各模塊不沖突并實(shí)時(shí)運(yùn)行,目前在航空航天領(lǐng)域得到成功應(yīng)用。VxWorks是其中最為優(yōu)秀的軟件之一。
本系統(tǒng)采用VxWorks操作系統(tǒng)進(jìn)行發(fā)動(dòng)機(jī)電子控制器軟件設(shè)計(jì),編程平臺(tái)采用其配套的Tornad02.2開(kāi)發(fā)環(huán)境,編程語(yǔ)言采用C語(yǔ)言。
3.1 任務(wù)模塊劃分
在VxWorks下進(jìn)行發(fā)動(dòng)機(jī)實(shí)時(shí)控制軟件開(kāi)發(fā),首先需要進(jìn)行任務(wù)模塊劃分和設(shè)計(jì)合理的優(yōu)先級(jí),保證系統(tǒng)軟硬件資源得到合理的利用。
上述發(fā)動(dòng)機(jī)控制任務(wù)中,不僅要求雙機(jī)同步,與飛控的通訊以及雙機(jī)通訊實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)傳輸,而且發(fā)動(dòng)機(jī)控制器的控制算法必須在給定的控制周期完成。所有任務(wù)要求有很強(qiáng)的實(shí)時(shí)處理性。基于DOS的傳統(tǒng)控制軟件設(shè)計(jì)將所有任務(wù)安排在一個(gè)或幾個(gè)不同優(yōu)先級(jí)別的中斷程序中,任務(wù)調(diào)度困難,隨著任務(wù)量增多,各模塊有可能沖突,軟件的可靠性不能有效保證。
本系統(tǒng)采用Vxworks設(shè)計(jì),任務(wù)劃分基于以下原則:實(shí)時(shí)性要求嚴(yán)格的任務(wù)組成獨(dú)立的模塊;計(jì)算量大占用CPU時(shí)間多的任務(wù)捆綁到一起按時(shí)問(wèn)片輪轉(zhuǎn)方式運(yùn)行;同步驅(qū)動(dòng)同步完成的任務(wù)組成一個(gè)模塊。結(jié)合發(fā)動(dòng)機(jī)控制任務(wù)要求,將系統(tǒng)軟件總體劃分為5個(gè)模塊。系統(tǒng)軟件的優(yōu)先級(jí)基于任務(wù)越重要,優(yōu)先級(jí)越高的原則進(jìn)行分配。
3.2 軟件設(shè)計(jì)與實(shí)現(xiàn)
3.2.1 數(shù)據(jù)IO模塊
數(shù)據(jù)IO模塊主要指相關(guān)設(shè)備驅(qū)動(dòng)程序。系統(tǒng)中PC/104板配置的CPU為X86體系結(jié)構(gòu),板載網(wǎng)絡(luò)芯片Intel82559,均為VxWorks給X86級(jí)CPU提供的板級(jí)支持包所支持,可自動(dòng)分配合適的硬件接口參數(shù)。硬件的行為和特性由內(nèi)部寄存器控制,系統(tǒng)采用內(nèi)存映射訪問(wèn)寄存器。
3.2.2 余度管理軟件模塊
余度管理模塊如圖4所示,包括雙機(jī)同步模塊、故障處理模塊、交叉?zhèn)鬏斈K和余度表決模塊。雙機(jī)同步是在兩個(gè)通道之間建立握手控制標(biāo)志,當(dāng)每一個(gè)通道完成相應(yīng)的步驟后自動(dòng)設(shè)置步驟完成標(biāo)志,同時(shí),查詢另一通道任務(wù)是否完成,再啟動(dòng)下一功能的任務(wù)執(zhí)行。通過(guò)在消息通信時(shí)設(shè)置同步等待周期,在交換消息的過(guò)程中實(shí)現(xiàn)同步。同步的工作包括雙通道CPU采集數(shù)據(jù)、控制律計(jì)算和同步表決輸出數(shù)據(jù)。
主從通道在每一次同步后,進(jìn)行數(shù)據(jù)采集,然后將采集的結(jié)果傳輸?shù)綄?duì)方通道中,并在兩個(gè)通道中各自進(jìn)行故障判斷。本系統(tǒng)使用的判斷方法是將兩個(gè)通道的結(jié)果進(jìn)行比較,兩個(gè)通道結(jié)果之差超過(guò)設(shè)定值時(shí)認(rèn)為發(fā)生故障,隨即調(diào)用相應(yīng)的故障處理模塊。
電子控制器在硬件上設(shè)計(jì)為兩套獨(dú)立的系統(tǒng),控制輸出通過(guò)表決邏輯執(zhí)行。在工作過(guò)程中,通道A和通道B同時(shí)采集發(fā)動(dòng)機(jī)參數(shù),在系統(tǒng)內(nèi)部每個(gè)控制周期兩個(gè)通道通過(guò)網(wǎng)絡(luò)UDP方式互相傳輸參數(shù)并進(jìn)行邏輯判斷,根據(jù)判斷結(jié)果由表決電路選通當(dāng)前沒(méi)有故障的通道控制輸出,并與飛控計(jì)算機(jī)進(jìn)行通訊傳參。兩個(gè)表決邏輯遵守其一優(yōu)先的原則。
3.2.3 通訊模塊
通訊模塊包括雙機(jī)UDP網(wǎng)絡(luò)通訊模塊和與飛控的RS422串行通訊模塊。
雙機(jī)UDP網(wǎng)絡(luò)通訊使用了客戶端一服務(wù)器模式進(jìn)行Socket通訊,服務(wù)器與客戶端的實(shí)現(xiàn)方法基本一致。在VxWorks下,利用多任務(wù)的方法,設(shè)計(jì)的通訊程序包括以下8個(gè)任務(wù):初始化(Init)、連結(jié)接受(Accept)、連結(jié)監(jiān)控(Acp—Watch)、消息發(fā)送(Send)、消息接收(Recv)、發(fā)送定時(shí)(SendTimer)、消息定時(shí)發(fā)送(SendOnTime)、網(wǎng)絡(luò)監(jiān)控(NetWatch)。
電子控制器與飛控系統(tǒng)通過(guò)RS422進(jìn)行串行通訊,接收來(lái)自飛控系統(tǒng)的控制指令和飛行狀態(tài)參數(shù),同時(shí)向飛控系統(tǒng)傳輸發(fā)動(dòng)機(jī)當(dāng)前工作參數(shù)。RS422通訊波特率為9600,采用一個(gè)起始位,一個(gè)停止位,在Vxworks下通過(guò)調(diào)用系統(tǒng)相應(yīng)的串口打開(kāi)函數(shù)open()、串口關(guān)閉函數(shù)close()、串口讀函數(shù)read()和write()以及I/0口的控制操作函數(shù)ioctl()來(lái)完成串口操作與數(shù)據(jù)傳輸。
3.2.4 發(fā)動(dòng)機(jī)控制軟件模塊
發(fā)動(dòng)機(jī)控制軟件模塊如圖5所示。控制軟件是控制系統(tǒng)的核心,控制系統(tǒng)通過(guò)控制軟件完成復(fù)雜的控制規(guī)律的計(jì)算,實(shí)現(xiàn)對(duì)發(fā)動(dòng)機(jī)的控制。控制器在接收到由傳感器采集到的發(fā)動(dòng)機(jī)轉(zhuǎn)速和T4溫度后進(jìn)行計(jì)算處理,依據(jù)飛控指令,基于信號(hào)量機(jī)制,調(diào)度某一發(fā)動(dòng)機(jī)控制任務(wù)(執(zhí)行機(jī)構(gòu)的主燃油控制,I/O模塊的驅(qū)動(dòng)輸出控制,地面啟動(dòng)控制,空中啟動(dòng)控制,發(fā)動(dòng)機(jī)油封,發(fā)動(dòng)機(jī)冷運(yùn)轉(zhuǎn)),輸出控制參數(shù)的計(jì)算結(jié)果和開(kāi)關(guān)量,同時(shí)進(jìn)行數(shù)據(jù)監(jiān)控處理。其中發(fā)動(dòng)機(jī)燃油控制規(guī)律為:
3.2.5 系統(tǒng)管理軟件模塊
系統(tǒng)管理軟件模塊包括軟件啟動(dòng)、任務(wù)調(diào)度和任務(wù)執(zhí)行。啟動(dòng)包括操作系統(tǒng)加載、硬件自檢、軟件初始化等操作。
3.3 電子控制器任務(wù)調(diào)度策略與管理
VxWorks基于優(yōu)先級(jí)的搶占式任務(wù)調(diào)度策略,每隔一定的時(shí)間便進(jìn)行周期同步校準(zhǔn)及20ms采樣的輸入輸出任務(wù)刷新。為了避免任務(wù)優(yōu)先級(jí)逆轉(zhuǎn),系統(tǒng)采用了優(yōu)先級(jí)繼承算法。
高優(yōu)先級(jí)的任務(wù)之間以及低優(yōu)先級(jí)的任務(wù)之間通過(guò)信號(hào)量進(jìn)行通信。系統(tǒng)啟動(dòng)之后,引導(dǎo)操作系統(tǒng)等后臺(tái)任務(wù),然后進(jìn)行同步操作任務(wù),接著通過(guò)信號(hào)量機(jī)制出發(fā)高優(yōu)先級(jí)的輸入數(shù)據(jù)任務(wù),若系統(tǒng)出錯(cuò),則高優(yōu)先級(jí)任務(wù)堵塞,啟動(dòng)系統(tǒng)重構(gòu)或者故障診斷等低優(yōu)先級(jí)任務(wù)。同樣,當(dāng)輸出數(shù)據(jù)比較結(jié)果不一致時(shí),亦必須調(diào)用系統(tǒng)內(nèi)故障診斷及通道故障邏輯等任務(wù)。
4 系統(tǒng)試驗(yàn)驗(yàn)證
系統(tǒng)軟件調(diào)試完畢,與電子控制器硬件結(jié)合進(jìn)行某發(fā)動(dòng)機(jī)數(shù)控試車驗(yàn)證。試驗(yàn)中控制器指令與發(fā)動(dòng)機(jī)工作數(shù)據(jù)通過(guò)試車實(shí)時(shí)監(jiān)控軟件記錄。
試車監(jiān)控記錄發(fā)動(dòng)機(jī)各工作參數(shù),其中圖9~10為發(fā)動(dòng)機(jī)從起動(dòng)一慢車一額定一最大一額定一停車的一個(gè)完整試車過(guò)程轉(zhuǎn)速與T4溫度試驗(yàn)結(jié)果。
多次試驗(yàn)結(jié)果證明,記錄的數(shù)據(jù)與與要求的試車過(guò)程吻合,電子控制系統(tǒng)工作可靠,可實(shí)現(xiàn)改型發(fā)動(dòng)機(jī)電控試車,滿足無(wú)人機(jī)對(duì)發(fā)動(dòng)機(jī)的電子控制要求。
5 結(jié)論
以某無(wú)人機(jī)用單軸噴氣發(fā)動(dòng)機(jī)數(shù)控系統(tǒng)研制為背景,采用自行設(shè)計(jì)的486級(jí)PC/104架構(gòu)雙余度硬件,重點(diǎn)進(jìn)行基于嵌入式操作系統(tǒng)VxWorks的電子控制器系統(tǒng)軟件設(shè)計(jì),將系統(tǒng)軟件劃分為多個(gè)任務(wù),基于優(yōu)先級(jí)的調(diào)度算法,CPU將運(yùn)行時(shí)間分配給不同的任務(wù),形成宏觀上多任務(wù)并發(fā)進(jìn)行的效果,在已有的電子控制器硬件平臺(tái)上,保證程序任務(wù)實(shí)現(xiàn)實(shí)時(shí)運(yùn)行。軟硬件系統(tǒng)結(jié)合裝機(jī)并進(jìn)行發(fā)動(dòng)機(jī)臺(tái)架試驗(yàn)驗(yàn)證,多次試驗(yàn)表明,所設(shè)計(jì)的實(shí)時(shí)控制軟件與電子控制器配合良好,能實(shí)現(xiàn)發(fā)動(dòng)機(jī)電子控制。該軟件系統(tǒng)能對(duì)發(fā)動(dòng)機(jī)控制任務(wù)進(jìn)行可靠的管理和調(diào)度。
(審核編輯: 智匯胡妮)
分享