基于VxWorks的飛機(jī)配電自動(dòng)化主執(zhí)行軟件研究
先進(jìn)飛機(jī)正朝著多電、全電方向發(fā)展,供電系統(tǒng)成為了未來飛機(jī)發(fā)展的關(guān)鍵。按照功能飛機(jī)供電系統(tǒng)分為電源系統(tǒng)和配電系統(tǒng)兩大部分。先進(jìn)配電系統(tǒng)由電源系統(tǒng)處理機(jī)(PSP)、電氣負(fù)載管理中心(ELMC)、固態(tài)功率控制器(SSPC)和遠(yuǎn)程終端(RT)組成,實(shí)現(xiàn)飛機(jī)配電的智能化,其中電源系統(tǒng)處理機(jī)是配電系統(tǒng)的核心。
目前我國飛機(jī)電源系統(tǒng)仍采用的是集中配電方式。隨著航空技術(shù)的迅速發(fā)展,飛機(jī)性能有了大幅度提高,用電設(shè)備迅速增加,電源功率不斷提高,這種配電方式已經(jīng)不適應(yīng),而且嚴(yán)重影響了飛機(jī)整體性能的提高。
國外一些技術(shù)發(fā)達(dá)的國家,如美國、英國、法國等在航空航天領(lǐng)域已普遍使用了分布式配電和負(fù)載自動(dòng)管理技術(shù)。美國最近裝備部隊(duì)的F-22先進(jìn)飛機(jī)就采用了可編程的固態(tài)開關(guān)、1553B總線、微處理機(jī)和負(fù)載自動(dòng)管理技術(shù)。美國在P7-A反潛機(jī)上也使用了先進(jìn)配電系統(tǒng),系統(tǒng)控制功能達(dá)到了故障—工作、故障—容錯(cuò)、故障—保險(xiǎn)的容錯(cuò)等級。我國對該課題的研究起步較晚,但是近來發(fā)展迅速,1553B數(shù)據(jù)總線、發(fā)電機(jī)控制器、固態(tài)功率控制器和電氣負(fù)載管理中心的研究,以及某型飛機(jī)的NAMP系統(tǒng),都是富有成果性的。不過,與世界上技術(shù)先進(jìn)國家相比尚有一定差距,還有很多工作要做。先進(jìn)飛機(jī)配電系統(tǒng)可以實(shí)現(xiàn)不中斷供電和容錯(cuò)供電,提高供電系統(tǒng)的可靠性、維護(hù)性、靈活性,對于提高飛機(jī)的整體性能有重要的作用,已是第四代戰(zhàn)斗機(jī)的必備技術(shù)。 配電系統(tǒng)控制分析
配電系統(tǒng)采用集散控制方式,由具有智能性的PSP、ELMC、RT和GCU(發(fā)電機(jī)控制器)來實(shí)現(xiàn)控制。其中,ELMC監(jiān)視和控制SSPC,RT監(jiān)視和控制EMPC(機(jī)電式功率控制器)、外部電源、蓄電池以及TRU(變壓整流器)。GCU為發(fā)電機(jī)、主交流匯流條提供控制和保護(hù)。GCU在功能上是獨(dú)立的,并不受PSP控制。PSP完成頂層級的系統(tǒng)控制任務(wù),實(shí)現(xiàn)對配電系統(tǒng)集中管理。各智能終端與PSP通過MIL-STD-1553B數(shù)據(jù)總線進(jìn)行通信。
由于受MIL-STD-1553B總線1MBPS位速率的限制,不能采用單一的綜合結(jié)構(gòu),所以航空電子系統(tǒng)與配電系統(tǒng)控制采用了分層結(jié)構(gòu)。航空電子系統(tǒng)提供配電系統(tǒng)控制所必需的飛行和任務(wù)數(shù)據(jù),它采用自己單獨(dú)的數(shù)據(jù)總線。由電源系統(tǒng)處理機(jī) (PSP)擔(dān)負(fù)航空電子系統(tǒng)和配電系統(tǒng)控制之間的信息傳遞任務(wù)。
根據(jù)對飛機(jī)配電系統(tǒng)的分析,電源系統(tǒng)處理機(jī)軟件可分為下述模塊:
a. 系統(tǒng)控制指令處理模塊
b. 供電系統(tǒng)布局狀態(tài)處理模塊
c. MIL-STD-1553B 數(shù)據(jù)總線控制模塊
d. 供電系統(tǒng)初始化模塊
e. 電氣系統(tǒng)監(jiān)控模塊
f. 處理機(jī)請求排序模塊
g. 處理機(jī)請求處理模塊
由于采用了VxWorks作為操作系統(tǒng),必須將上述模塊劃分為具體的任務(wù),提交給操作系統(tǒng),由操作系統(tǒng)來調(diào)度、管理。任務(wù)調(diào)度一般采用RM和EDF方式,遵循的原則是:首先,要避免死鎖。引起死鎖的原因主要是資源的競爭,所以要保證資源的合理使用。其次,必須為每個(gè)任務(wù)合理分配CPU使用時(shí)間,對于那些I/O操作多的任務(wù)優(yōu)先級要低一些,運(yùn)算多的任務(wù)優(yōu)先級要高一些。為保證CPU的充分利用,大量運(yùn)算歸為一個(gè)任務(wù);功能耦合歸為一個(gè)任務(wù);對于周期時(shí)間,針對不同的頻率處理不同任務(wù)。如果我們在具體分析一個(gè)系統(tǒng)的時(shí)候發(fā)生原則沖突,則要針對具體的系統(tǒng)為每一個(gè)原則設(shè)定“權(quán)重”,必要的時(shí)候可以通過計(jì)算“權(quán)重”來最終確定如何去劃分任務(wù)。為了系統(tǒng)的穩(wěn)定和可擴(kuò)展性,CPU不能全載工作,達(dá)到60~70%就可以了。 VxWorks介紹
VxWorks 是Wind River 公司開發(fā)的嵌入式實(shí)時(shí)操作系統(tǒng)軟件,為程序員提供了高效的實(shí)時(shí)任務(wù)調(diào)度和中斷管理,實(shí)時(shí)的系統(tǒng)資源以及實(shí)時(shí)的任務(wù)間通信。其核心功能主要有微內(nèi)核,任務(wù)間通信機(jī)制,網(wǎng)絡(luò)支持,文件系統(tǒng)和I/O管理,POSIX標(biāo)準(zhǔn)實(shí)時(shí)擴(kuò)展,以及C++等其它標(biāo)準(zhǔn)支持。目前,VxWorks操作系統(tǒng)已經(jīng)廣泛應(yīng)用于通信、國防、工業(yè)控制、醫(yī)療設(shè)備等嵌入式實(shí)時(shí)應(yīng)用領(lǐng)域。 綜合設(shè)計(jì)軟件系統(tǒng)有嚴(yán)格的層次結(jié)構(gòu),如圖2所示。
主執(zhí)行軟件結(jié)構(gòu)圖 這樣做的目的在于明確各個(gè)層面的功能,便于軟件的工程化開發(fā)。 硬件構(gòu)架:包括了處理機(jī)和總線接口部件。軟件層對它的要求是適合于嵌入式開發(fā)。
BSP:這一層是連接硬件與VxWorks的,其功能是對上層屏蔽硬件操作,實(shí)現(xiàn)系統(tǒng)的配置,驅(qū)動(dòng)的集成,硬件的初始化等等,其部分功能類似于PC機(jī)的BIOS。
VxWorks:這是操作系統(tǒng)層。VxWorks是一款出色的嵌入式實(shí)時(shí)操作系統(tǒng),該操作系統(tǒng)采用搶占式優(yōu)先級調(diào)度,并且根據(jù)應(yīng)用可以配置和裁減以提高系統(tǒng)的效率、可靠性和實(shí)時(shí)性。其功能是對應(yīng)用軟件提供接口界面,進(jìn)行實(shí)時(shí)任務(wù)調(diào)度,系統(tǒng)資源管理等。通過在Tornado開發(fā)環(huán)境下創(chuàng)建Bootable Project 來定制所需要的VxWorks image。用戶一般要根據(jù)實(shí)際情況,適當(dāng)?shù)剡M(jìn)行添加或裁減。
應(yīng)用軟件:這是用戶層,關(guān)鍵在于根據(jù)飛機(jī)的負(fù)載特性和優(yōu)先級分布來合理地劃分任務(wù)。建立有限狀態(tài)機(jī)和Petri網(wǎng)都能有效地幫助建立合理的應(yīng)用程序模型,正確地使用相關(guān)輔助工具可以簡化建模過程。
根據(jù)開發(fā)的需要,應(yīng)用軟件分為內(nèi)核軟件和外圍集成軟件兩大塊。其中內(nèi)核軟件實(shí)現(xiàn)PSP主執(zhí)行軟件的基本功能,外圍集成軟件實(shí)現(xiàn)參數(shù)輸入、顯示等調(diào)試過程的人機(jī)界面,所有的外圍模塊通過內(nèi)核軟件的指定接口模塊與內(nèi)核通信。
鑒于數(shù)據(jù)被各個(gè)任務(wù)頻繁使用,所以建立一個(gè)嵌入式實(shí)時(shí)數(shù)據(jù)庫來管理數(shù)據(jù)是安全而高效的。關(guān)于嵌入式實(shí)時(shí)數(shù)據(jù)庫的建立,請參閱相關(guān)書籍。這里只是簡單的采用內(nèi)存數(shù)據(jù)庫來實(shí)現(xiàn),目的是消除一般數(shù)據(jù)庫中I/O操作的時(shí)間不確定性。首先,要為相關(guān)的數(shù)據(jù)類型建立相應(yīng)的結(jié)構(gòu)體。在該系統(tǒng)中需要為模擬量、狀態(tài)量、數(shù)字量、控制量建立數(shù)據(jù)結(jié)構(gòu)。以數(shù)據(jù)中的模擬量為例,可定義如下: typedef struct AnalogEntity
{
int ID;
char Name[NAME_LEN];
char U[UNIT_LEN];
int PValue; /*前一周期值*/
float Value; /*模擬量值*/
int State;
int Node;
int Aisle; /* 通道 */
ATIME Time; /* 報(bào)警時(shí)間 */
float Uplimit; / * 報(bào)警上限 */
float Lowerlimit; /* 報(bào)警下限 */
float IncValue; /* 過載值*/
int ALevel; /* 報(bào)警等級 */
int Ratio; / * 比例系數(shù) */
/* 向后兼容 */
float Res;
char Reserve[10];
} ANALOG;
其次,將所有的數(shù)據(jù)和方法封裝在一起,完成數(shù)據(jù)庫的定義而得到的數(shù)據(jù)庫,在這里把它稱為數(shù)據(jù)布局文件。對于本數(shù)據(jù)庫最重要的是要保證讀寫的時(shí)間限制,如果規(guī)定時(shí)間內(nèi)未能完成讀寫操作,必須要終止操作,并且回滾到未操作狀態(tài)。
內(nèi)核軟件的大致任務(wù)為:1553B通信處理任務(wù),電源系統(tǒng)監(jiān)測任務(wù),與備份PSP通信任務(wù),控制臺處理任務(wù),電源請求與執(zhí)行任務(wù),外圍模塊通信處理任務(wù),系統(tǒng)自監(jiān)測任務(wù)等。外圍軟件主要是航空電子模擬任務(wù)、模擬控制臺任務(wù)、綜合顯示任務(wù)。
內(nèi)核軟件:處理電源請求和執(zhí)行任務(wù),主要是解飛機(jī)負(fù)載邏輯方程,從而得出當(dāng)前的最佳控制方案,將結(jié)果通過1553B總線送給ELMC、RT等控制機(jī)構(gòu)。系統(tǒng)自監(jiān)測任務(wù)主要是監(jiān)視當(dāng)前軟件系統(tǒng)工作情況,防止外界原因使得內(nèi)部數(shù)據(jù)不穩(wěn)定,導(dǎo)致錯(cuò)誤控制的發(fā)生。外圍軟件主要是模擬PSP的工作環(huán)境和簡單的人機(jī)接口,并不是PSP功能的組成部分。采用外圍模塊通信處理任務(wù)來管理外圍的任務(wù),可以方便地?cái)U(kuò)展外圍開發(fā)中的模塊,而不影響內(nèi)核功能,便于軟件的裁減。備份PSP通信任務(wù)通過RS422與備份PSP通信,達(dá)到雙機(jī)熱備份。電源系統(tǒng)監(jiān)測任務(wù)主要是查看電源系統(tǒng)的工作狀態(tài),定期地修改數(shù)據(jù)布局文件中的狀態(tài)量,得到當(dāng)前的系統(tǒng)工作情況,對于歷史數(shù)據(jù)布局文件可以寫入歷史數(shù)據(jù)庫,以備查詢。另外,任務(wù)之間如果需要同步,可以采用信號量來實(shí)現(xiàn)。 結(jié)語
本文簡單講述了基于VxWorks的飛機(jī)電源系統(tǒng)軟件設(shè)計(jì)過程,在實(shí)際應(yīng)用中還有許多問題需要解決。比如考慮到程序用途的特殊性,必須保證程序的正確運(yùn)行,所以程序的健壯性是研究的另一個(gè)重點(diǎn)。比如,采用程序固化運(yùn)行、冗余容錯(cuò)技術(shù)、程序互檢驗(yàn)等技術(shù)都是為了保證程序準(zhǔn)確無誤地運(yùn)行。另外,飛機(jī)邏輯負(fù)載方程庫的建立和求解,以及相應(yīng)日志文件系統(tǒng)的建立,都是必要的工作。 參考文獻(xiàn):
1. Fault Tolerant Electrical Power System 裀hase I:Study. AFWAL-TR-86-2084,Boeing Military Airplane Company,May 1986.
2. Fault Tolerant Electrical Power System 裀hase II:Analysis andPreliminaryDesign.AFWAL-TR-86-2084,Boeing Military Airplane Company,May 1986.
3. VxWorks-Programmer’s Guide 5.4,1999 Wind River Systems,INC.
4. VxWorks-User’s Guide 5.4,1999 Wind River Systems,INC.
評論