王禹 曹義華
摘 要:飛機(jī)飛行的安全性是航空業(yè)發(fā)展的重要課題,自動(dòng)飛行控制是降低駕駛員工作負(fù)荷,提高飛行安全性的有效途徑。利用高安全性應(yīng)用開發(fā)環(huán)境SCADE,綜合考慮飛機(jī)運(yùn)動(dòng)安全特性,通過(guò)數(shù)據(jù)流程圖,平面狀態(tài)以及安全狀態(tài)機(jī)的建模方法,建立了飛機(jī)俯仰方向的自動(dòng)飛行控制系統(tǒng)的模型。通過(guò)飛機(jī)儀表盤可視化以及襟翼狀態(tài)仿真界面,利用驗(yàn)證模塊,飛行數(shù)據(jù)測(cè)試等手段,完成了模型的可靠性驗(yàn)證并利用SCAD-KCG生成滿足DO-178B民航A級(jí)標(biāo)準(zhǔn)的高可靠性嵌入式實(shí)時(shí)C語(yǔ)言代碼。
關(guān)鍵詞:SCADE 安全性 自動(dòng)飛行控制 仿真
中圖分類號(hào):V24 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2015)09(c)-0003-04
Automatic Flight Control System Design and Simulation Based on SCADE
Wang Yu1 Cao Yihua2
(1.Sino-French Engineer School, Beihang University;2.Aeronautic Science and Engineering School, Beihang University,Beijing,100191,China)
Abstract:Aircraft flight safety is an important topic in the aviation industry development, the automatic flight control is the effective way to reduce pilot workload and improve flight safety.Considering the aircraft movement security features,automatic pitchingflight control system model is set up in a high security SCADE application development environment by the data flow diagram,surface state and safety state machine modeling method.Through designing the dashboard and flap state simulation interface,the reliability of the model validation is completed by using the authentication module and data test.A high reliability embedded real-time C language code which meets the DO-178B grade A standard of civil aviation is generated by SCADE-KCG.
Key Words:SCADE;Safety;Automatic flight control;Simulation
隨著航空業(yè)的發(fā)展,飛機(jī)飛行的安全性越來(lái)越受到人們的關(guān)注,如何有效減輕駕駛員的駕駛壓力,實(shí)現(xiàn)自動(dòng)飛行控制系統(tǒng)是提高飛機(jī)飛行安全性的有效途徑。
傳統(tǒng)的飛機(jī)自動(dòng)控制系統(tǒng)主要通過(guò)手工編寫,工作量大,成本高且可靠性差。因此,尋求一種開發(fā)效率高,滿足高安全性要求的飛行控制系統(tǒng)是目前國(guó)內(nèi)外的研究熱點(diǎn)。
該文利用SCADE開發(fā)環(huán)境,設(shè)計(jì)出一款無(wú)人機(jī)自動(dòng)控制系統(tǒng)軟件,實(shí)現(xiàn)了飛機(jī)儀表盤的可視化以及飛機(jī)的自動(dòng)駕駛控制,建立數(shù)據(jù)庫(kù)對(duì)模型進(jìn)行了仿真模擬,驗(yàn)證了模型的正確性并生成了可編譯的C語(yǔ)言程序。
1 SCADE軟件開發(fā)環(huán)境介紹
SCADE是法國(guó)EstereI Technologies公司研制的一個(gè)用于開發(fā)的嵌入式軟件的完整的工具包,具有一個(gè)高安全性應(yīng)用開發(fā)環(huán)境,覆蓋了嵌入式軟件開發(fā)中從需求到嵌入式代碼的整個(gè)流程,是一個(gè)以軟件模型設(shè)計(jì)為中心而非傳統(tǒng)的以程序代碼為中心的軟件開發(fā)工具。利用SCADE-KCG生成的程序代碼達(dá)到了DO-178B民航A級(jí)標(biāo)準(zhǔn),具有開發(fā)周期短、安全性高、交互界面好等優(yōu)點(diǎn)。
SCADE的核心是LUSTRE語(yǔ)言,它是一種同步程序設(shè)計(jì)語(yǔ)言,適用于反應(yīng)系統(tǒng)的編程。SCADE是基于同步假設(shè)原理,即假設(shè)反映系統(tǒng)的處理速度無(wú)限快,系統(tǒng)可以在一個(gè)可以忽略不計(jì)的瞬間響應(yīng)輸入并產(chǎn)生輸出,利用數(shù)據(jù)流程圖、平面狀態(tài)機(jī)以及安全狀態(tài)機(jī)進(jìn)行建模的開發(fā)環(huán)境。數(shù)據(jù)流程圖建模采用面向處理過(guò)程的思想來(lái)描述系統(tǒng),平面狀態(tài)機(jī)則用于描述簡(jiǎn)單的狀態(tài)邏輯切換控制,描述系統(tǒng)的動(dòng)態(tài)行為,而安全狀態(tài)機(jī)提供了順序、優(yōu)先級(jí)、層次、并行的狀態(tài)結(jié)構(gòu),用于處理復(fù)雜的狀態(tài)。無(wú)論是平面狀態(tài)機(jī)還是安全狀態(tài)機(jī),其面向的都是離散控制系統(tǒng)。
該文綜合利用了這3種建模方式,實(shí)現(xiàn)了飛機(jī)自動(dòng)飛行控制系統(tǒng)的設(shè)計(jì)與仿真。
2 飛行自動(dòng)控制系統(tǒng)的設(shè)計(jì)
2.1 飛行自動(dòng)控制的需求分析與整體設(shè)計(jì)
飛行自動(dòng)控制系統(tǒng)主要用于飛行過(guò)程中的自動(dòng)控制,主要由自動(dòng)駕駛模塊與驗(yàn)證模塊組成。自動(dòng)駕駛模塊為飛機(jī)自動(dòng)飛行控制部分的主體,主要分為警示模塊,計(jì)算模塊以及控制模塊。驗(yàn)證模塊主要用于驗(yàn)證控制系統(tǒng)的合理性,對(duì)輸入輸出信息進(jìn)行對(duì)比使結(jié)果保持一致。
對(duì)于整個(gè)飛機(jī)控制系統(tǒng)而言,輸入變量主要有:由機(jī)身上傳感器上獲得的機(jī)身前大氣壓P0以及機(jī)身上大氣壓Pa,迎角Deg,是否展開起落架Train,操縱桿的位置Pos_deg,是否進(jìn)入自動(dòng)駕駛狀態(tài)P_A;輸出變量主要有:控制模塊中的升降桿的位置Elevateur,警示模塊中的起飛迎角警示A_Dec,失速警示A_Ecras,降落警示A_Desc,計(jì)算模塊中的飛行速度V,爬升角Pente以及飛機(jī)飛行的高度h。
2.2 警示模塊設(shè)計(jì)
警示模塊主要用于飛機(jī)的安全起飛以及降落,主要從以下3個(gè)方面進(jìn)行控制。
(1)對(duì)迎角的控制,以防止迎角過(guò)大造成的氣流分離導(dǎo)致飛機(jī)失速;
(2)對(duì)起落架的控制,以防止飛機(jī)過(guò)于接近地面而使起落架無(wú)法展開;
(3)對(duì)降落速度的控制,以保證飛機(jī)降落的安全性。
由于飛機(jī)在飛行過(guò)程中可能存在瞬時(shí)擾動(dòng)使得獲取的數(shù)據(jù)存在暫時(shí)性的突變,而這會(huì)導(dǎo)致對(duì)警示模塊中的3個(gè)分量的準(zhǔn)確性造成影響,因此引入100 ms的時(shí)間控制來(lái)對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證,以保證警示模塊中輸出的結(jié)果滿足實(shí)際需求。
2.3 計(jì)算模塊設(shè)計(jì)
計(jì)算模塊主要用于計(jì)算飛行速度,飛行高度以及爬升角。
對(duì)于飛行高度的計(jì)算,根據(jù)某飛機(jī)飛行數(shù)據(jù)可以得出壓強(qiáng),空氣密度與飛行高度之間的關(guān)系如下:
對(duì)于飛行速度的計(jì)算公式可以根據(jù)Bernoulli方程給出:
對(duì)于爬升角的計(jì)算公式可以有如下關(guān)系給出:
2.4 控制模塊設(shè)計(jì)
控制模塊主要用于控制飛機(jī)的操縱系統(tǒng)來(lái)實(shí)現(xiàn)飛機(jī)的飛行姿態(tài)控制。通過(guò)控制操縱桿變量使得升降桿移動(dòng)從而控制飛機(jī)的襟翼,達(dá)到飛行姿態(tài)控制的效果。
考慮到計(jì)算效率以及飛行的安全性等因素,對(duì)于飛行控制模塊的設(shè)計(jì)主要從以下幾個(gè)方面著手。
(1)假設(shè)操縱桿的移動(dòng)角度與升降桿移動(dòng)位移成線性關(guān)系;
(2)升降桿的移動(dòng)速度不能過(guò)快導(dǎo)致襟翼無(wú)法及時(shí)響應(yīng)以及引起受力突變;
(3)升降桿的位移具有一定限制,從而保證襟翼在一定范圍內(nèi)移動(dòng)。
出于以上幾點(diǎn)考慮,對(duì)控制模塊的設(shè)計(jì)如圖2所示。
然而在實(shí)際飛行中,自動(dòng)飛行控制存在一定的不穩(wěn)定性,出于對(duì)飛機(jī)飛行的安全性考慮,在升降桿的控制上該文還引入了自動(dòng)飛行控制與飛行員操縱的兩個(gè)狀態(tài),如圖3所示,即在自動(dòng)飛行控制失效時(shí)可切換至駕駛員的操縱狀態(tài)以確保飛機(jī)飛行的安全性。
2.5 自動(dòng)駕駛模塊的總體設(shè)計(jì)
綜合警示模塊,計(jì)算模塊以及控制模塊的設(shè)計(jì),得出自動(dòng)駕駛模塊如圖4所示。
2.6 驗(yàn)證模塊設(shè)計(jì)
驗(yàn)證模塊主要用于驗(yàn)證模型是否正確,數(shù)據(jù)的輸出是否合理,其返回值為bool型變量,若為true則證明模型的建立正確。
3 數(shù)據(jù)測(cè)試與仿真
3.1 仿真模塊設(shè)計(jì)
SCADE Display模塊是基于人機(jī)界面(HMI)顯示,可實(shí)現(xiàn)多功能顯示,數(shù)字化儀表以及控制面板等功能的模塊,在航空航天,軌道交通以及汽車工業(yè)上具有很大應(yīng)用。利用SCADE Display模塊,搭建飛行器儀表盤以及襟翼的狀態(tài),使得仿真結(jié)果可以可視化,以便可以正確讀取飛機(jī)目前的狀態(tài)。
飛機(jī)儀表盤的搭建如圖5所示,飛機(jī)儀表盤的輸入量為自動(dòng)導(dǎo)航飛行控制系統(tǒng)的部分輸入數(shù)據(jù)以及輸出變量,通過(guò)內(nèi)部轉(zhuǎn)換使得數(shù)據(jù)得以可視化。
其中上方的角標(biāo)為飛機(jī)飛行的方向,中間為飛機(jī)的迎角Deg,右邊的度數(shù)為操縱桿的位置Pos_deg,左邊的飛機(jī)飛行的速度V。下方的3個(gè)按鈕分別對(duì)應(yīng)警示模塊中的起飛迎角警示A_Dec,失速警示A_Ecras以及降落警示A_Desc。
通過(guò)連接接口,隨著測(cè)試數(shù)據(jù)的不斷變化,儀表盤的數(shù)據(jù)也會(huì)隨之相應(yīng)變化,當(dāng)警示生效時(shí),下方的相應(yīng)按鈕會(huì)變成紅色。在實(shí)際飛行中,通過(guò)機(jī)身上的傳感器讀出機(jī)身的機(jī)身前大氣壓P0以及機(jī)身上大氣壓Pa,迎角Deg,通過(guò)應(yīng)用所設(shè)計(jì)自動(dòng)駕駛模塊以及仿真數(shù)據(jù)接口就可以實(shí)時(shí)讀出飛機(jī)所處的狀態(tài)。
襟翼的狀態(tài)模型搭建如圖6所示,襟翼的狀態(tài)輸入量為升降桿的位置Elevateur,通過(guò)襟翼的狀態(tài)顯示,對(duì)比飛機(jī)儀表盤顯示的數(shù)據(jù)可以得出飛機(jī)在不同飛行狀態(tài)下的襟翼的變化。
3.2 數(shù)據(jù)測(cè)試
利用某飛機(jī)飛行數(shù)據(jù),創(chuàng)建項(xiàng)目自動(dòng)飛行控制數(shù)據(jù)庫(kù),為了使模型更具有普遍性,除了引用了飛機(jī)整個(gè)航程中俯仰運(yùn)動(dòng)姿態(tài)的數(shù)據(jù)之外,還加入了偏航運(yùn)動(dòng)和滾轉(zhuǎn)運(yùn)動(dòng)數(shù)據(jù),以保證系統(tǒng)數(shù)據(jù)的完整性。
通過(guò)數(shù)據(jù)測(cè)試可以得到不同模塊的變化量情況,圖7為截取的飛機(jī)起飛階段的部分?jǐn)?shù)據(jù)測(cè)試數(shù)據(jù)變化的情況。利用之前建立的驗(yàn)證模塊的數(shù)據(jù)返回值true可以得到模型的正確性,同時(shí)在數(shù)據(jù)測(cè)試與仿真的過(guò)程中,可以觀測(cè)到儀表盤上數(shù)據(jù)的變化以及襟翼的變化,進(jìn)一步驗(yàn)證了模型的準(zhǔn)確性。
此外,SCADE軟件還提供了數(shù)據(jù)的檢測(cè)功能,可以直接得出數(shù)據(jù)的覆蓋范圍通過(guò)自動(dòng)生成的報(bào)告結(jié)果顯示,檢測(cè)數(shù)據(jù)覆蓋了自動(dòng)控制系統(tǒng)的所有模塊,符合數(shù)據(jù)測(cè)試的標(biāo)準(zhǔn),驗(yàn)證了測(cè)試數(shù)據(jù)選擇的有效性。
4 代碼生成與實(shí)現(xiàn)
在仿真結(jié)果與數(shù)據(jù)測(cè)試的基礎(chǔ)上,利用SCADE-KCG生成C語(yǔ)言代碼,該代碼滿足DO-178B民航A級(jí)標(biāo)準(zhǔn)。
由于本研究的模型中的節(jié)點(diǎn)較多,因此取其中部分C語(yǔ)言程序進(jìn)行說(shuō)明。
計(jì)算模塊中的爬升角計(jì)算C代碼生成如下所述。
voidCalculPente_reset(outC_CalculPente *outC)
{outC->init = kcg_true;
DERIV_reset(&outC->_1_Context_1);
INITIALISATION_reset(&outC->Context_1);}
voidCalculPente (kcg_real h, kcg_real V, outC_CalculPente *outC){
kcg_realtmp;
kcg_bool tmp1;
outC->_L2 = V;
outC->_L11 = 0.0;
outC->_L12 = outC->_L2 > outC->_L11;
outC->_L9 = 0.0;
tmp1 = outC->_L12;
outC->_L1 = h;
outC->_L6 = 1.0;
INITIALISATION(&outC->Context_1);
outC->_L7 = outC->Context_1.Bool_Init;
DERIV(outC->_L1, outC->_L6, outC->_L7, &outC->_1_Context_1);
outC->_L3 = outC->_1_Context_1.S1;
if (tmp1) {outC->_L8 = outC->_L3 / outC->_L2;}
else {if (outC->init) {tmp = outC->_L9;}
else { tmp = outC->_L8;}
outC->_L8 = tmp;}
outC->_L5 = /* 1 */ ASIN(outC->_L8);
outC->Pente = outC->_L5;
outC->init = kcg_false;}
從爬升角的計(jì)算模塊中生成的C語(yǔ)言代碼可以看出,SCADE生成的C語(yǔ)言代碼是以函數(shù)的形式給出的,函數(shù)的名字為設(shè)計(jì)過(guò)程中節(jié)點(diǎn)的名字,參數(shù)為一個(gè)結(jié)構(gòu)體指針,結(jié)構(gòu)體元素包含該節(jié)點(diǎn)的輸入和輸出變量。
5 結(jié)語(yǔ)
SCADE開發(fā)環(huán)境由于具有低成本,高開發(fā)效率以及高安全性等特點(diǎn),在航空航天,汽車電子等領(lǐng)域得到廣泛的應(yīng)用,其安全性能已經(jīng)被空中客車,歐洲直升機(jī)等公司采用,具有很好的效果。
該文利用SCADE開發(fā)環(huán)境,考慮到飛機(jī)飛行安全中的各種因素,綜合利用3種建模方式對(duì)自動(dòng)飛行控制系統(tǒng)進(jìn)行了設(shè)計(jì),綜合了SCADE中的嵌入式系統(tǒng)理念,LUSTRE語(yǔ)言,反應(yīng)式以及同步假設(shè)等優(yōu)點(diǎn),保證了控制系統(tǒng)的可靠性,并生成了符合DO-178B民航A級(jí)標(biāo)準(zhǔn)的C語(yǔ)言代碼。
通過(guò)選取樣機(jī)數(shù)據(jù)以及對(duì)系統(tǒng)的仿真,建立了飛行器儀表盤以及飛機(jī)襟翼的可視化模型,驗(yàn)證了自動(dòng)飛行控制系統(tǒng)的正確性。
由于實(shí)際飛行中的飛機(jī)操縱系統(tǒng)更為復(fù)雜,本研究主要基于飛機(jī)的俯仰方向控制,對(duì)飛機(jī)的偏航控制以及滾轉(zhuǎn)控制并沒(méi)有深入研究,沒(méi)有考慮飛機(jī)的穩(wěn)定性能,對(duì)尾翼以及其他操縱部件的控制還亟待解決。
參考文獻(xiàn)
[1] Camus J L,Dion B.Efficient development of airborne software with Scadesuite[J].Esterel Technologies,2003,62.
[2] 張合軍,陳欣.基于SCADE的無(wú)人機(jī)自主導(dǎo)航飛行軟件設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2007,15(10):1400-1402.
[3] Joshi A,Heimdahl M P E. Model-based safety analysis of simulink models using SCADE design verifier[C]//Computer Safety, Reliability, and Security. Springer Berlin Heidelberg, 2005:122-135.
[4] Abdulla P A,Deneux J, St?lmarck G, et al. Designing safe,reliable systems using scade[C]//Leveraging Applications of Formal Methods. Springer Berlin Heidelberg, 2006:115-129.
[5] 王群偉,吳成富,陳懷民,等.基于 SCADE的無(wú)人機(jī)三余度飛控系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)[J].測(cè)控技術(shù),2007,26(4):52-54.
[6] 胡鋼偉,李振水,高亞奎.SCADE軟件開發(fā)方法研究[J].系統(tǒng)仿真學(xué)報(bào),2009 (20):286-288.
[7] 林成文,吳成富.機(jī)載軟件圖形化設(shè)計(jì)與自動(dòng)代碼生成研究[D].西安:西北工業(yè)大學(xué),2007.
[8] 顏雯清,李秀娟.SCADE平臺(tái)下C代碼的自動(dòng)生成[J].計(jì)算機(jī)仿真,2007, 24(10):264-268.
[9] Labbani O,Dekeyser J L, Boulet P.Mode-automata based methodology for scade[C]//Hybrid Systems:Computation and Control.Springer Berlin Heidelberg,2005:386-401.
[10] 王輝,徐錦法.基于組件的飛行控制系統(tǒng)軟件設(shè)計(jì)方法[J].計(jì)算機(jī)仿真, 2004,21(9):170-174.