章 枧,徐 軍,杜 宇,倪笑宇
(1.北京理工大學(xué),北京 100081;2.河北建筑工程學(xué)院,河北 張家口 075000)
基于模型的自動(dòng)駕駛儀軟件開發(fā)
章 枧1,徐 軍1,杜 宇1,倪笑宇2
(1.北京理工大學(xué),北京 100081;2.河北建筑工程學(xué)院,河北 張家口 075000)
針對(duì)傳統(tǒng)自動(dòng)駕駛儀軟件開發(fā)效率低、周期長(zhǎng)、成本高及難度高的缺點(diǎn),提出基于模型的自動(dòng)駕駛儀軟件開發(fā)方法。詳細(xì)介紹了利用MatLab/Simulink自動(dòng)代碼生成技術(shù)進(jìn)行自動(dòng)駕駛儀軟件開發(fā)的完整過程,對(duì)自動(dòng)生成的代碼進(jìn)行了分析及整合,最后利用嵌入式平臺(tái)MSP430進(jìn)行功能性驗(yàn)證具有一定的工程應(yīng)用價(jià)值。
自動(dòng)駕駛儀;基于模型;自動(dòng)代碼生成;DO178B驗(yàn)證;嵌入式
隨著國(guó)內(nèi)不斷開放低空空域,越來越多的小型通用飛機(jī)將投放到中國(guó)市場(chǎng),作為飛機(jī)不可缺少的自動(dòng)化設(shè)備之一,自動(dòng)駕駛儀扮演著十分重要的角色。然而,傳統(tǒng)的自動(dòng)駕駛儀軟件開發(fā)有著周期長(zhǎng)、難度大、成本高等缺點(diǎn)。因此,急需一種高效的設(shè)計(jì)方法來解決當(dāng)前的矛盾?;谀P偷脑O(shè)計(jì)方法是一種基于數(shù)學(xué)模型的快捷、簡(jiǎn)便的設(shè)計(jì)方法,最早被應(yīng)用在汽車生產(chǎn)領(lǐng)域,因其開發(fā)效率高、周期短、成本低的優(yōu)點(diǎn),得到越來越多汽車生產(chǎn)商的青睞。同時(shí),由于數(shù)學(xué)模型對(duì)需求描述的唯一性,自動(dòng)生成代碼的功能也是唯一的,軟件穩(wěn)定性也得到了極大的提高。本文將基于模型的設(shè)計(jì)方法應(yīng)用于自動(dòng)駕駛儀軟件開發(fā)過程中,與傳統(tǒng)開發(fā)方法相比,基于模型的開發(fā)方法有著不可比擬的優(yōu)點(diǎn)[1]。結(jié)合先進(jìn)的開發(fā)模式,軟硬件系統(tǒng)開發(fā)可以同時(shí)進(jìn)行,使得整個(gè)系統(tǒng)開發(fā)效率大大提高。
傳統(tǒng)自動(dòng)駕駛儀軟件開發(fā)模式中,系統(tǒng)軟件設(shè)計(jì)和硬件設(shè)計(jì)不具有同步性,系統(tǒng)軟件設(shè)計(jì)受限于硬件條件,并且在系統(tǒng)集成時(shí)可能出現(xiàn)各種問題?;谀P偷脑O(shè)計(jì)方法摒棄了傳統(tǒng)的設(shè)計(jì)模式,結(jié)合V型開發(fā)模式(見圖1)的優(yōu)點(diǎn),使得系統(tǒng)軟件設(shè)計(jì)和硬件設(shè)計(jì)可以同步進(jìn)行,極大地提高了系統(tǒng)的開發(fā)效率[2]。開發(fā)環(huán)境同一性也使得開發(fā)過程中發(fā)生錯(cuò)誤的概率降低,這也正是基于模型設(shè)計(jì)方法中代碼自動(dòng)生成的優(yōu)勢(shì)所在;既保障了系統(tǒng)的安全性,同時(shí)減少了在編寫代碼、調(diào)試代碼中花費(fèi)的時(shí)間。
圖1 V型開發(fā)模式示意圖Fig.1 The scheme of V model
Matlab為多領(lǐng)域系統(tǒng)設(shè)計(jì)提供了統(tǒng)一的軟件環(huán)境,能夠進(jìn)行高性能動(dòng)態(tài)系統(tǒng)的仿真、分析及測(cè)試,能自動(dòng)生成符合DO-178B標(biāo)準(zhǔn)和MISRA-C標(biāo)準(zhǔn)的高效的嵌入式代碼,為開發(fā)人員提供一體化工作平臺(tái)。
DO-178B標(biāo)準(zhǔn)是對(duì)航空機(jī)載軟件進(jìn)行適航認(rèn)證時(shí)適用的標(biāo)準(zhǔn),是整個(gè)民航標(biāo)準(zhǔn)體系的重要標(biāo)準(zhǔn)之一[3]。由于其認(rèn)證過程繁瑣復(fù)雜,需要耗費(fèi)大量的人力與時(shí)間;因此,MathWorks公司于2012年發(fā)布的Matlab2012b中提供了支持DO-178B認(rèn)證的工具箱DO Qualification Kit,為需要符合航空標(biāo)準(zhǔn)的項(xiàng)目提供了相關(guān)文檔、測(cè)試用例以及程序來幫助鑒定支持的Simulink軟件驗(yàn)證工具。除此之外,DO Qualification Kit還提供如表1所示的補(bǔ)充標(biāo)準(zhǔn)的支持。
表1 產(chǎn)品支持
DO Qualification Kit工具箱的應(yīng)用,極大地簡(jiǎn)化了機(jī)載航空軟件認(rèn)證的過程,為航空機(jī)載軟件的開發(fā)提供一種新的途徑。
FCC(Flight Control Computer,飛行控制計(jì)算機(jī))作為自動(dòng)駕駛儀重要的控制單元,是整個(gè)自動(dòng)駕駛儀系統(tǒng)最核心的部件?,F(xiàn)以MSP430作為駕駛儀FCC的嵌入式硬件平臺(tái),介紹自動(dòng)駕駕駛儀系統(tǒng)的外圍結(jié)構(gòu)。
如圖2所示,所有外圍模塊通過航空總線連接到FCC。駕駛儀人機(jī)交互包含按鍵模塊和顯示模塊。1)按鍵模塊:完成駕駛儀功能選擇、數(shù)據(jù)輸入及狀態(tài)切換的任務(wù),作為FCC的輸入模塊。2)顯示模塊:接收FCC的指令,顯示當(dāng)前飛機(jī)的姿態(tài)、控制數(shù)據(jù)、警告等信息。3)AHRS模塊:反饋模塊;采集飛機(jī)的三軸姿態(tài)信息、三軸加速度信息,為FCC提供控制所需反饋數(shù)據(jù)。4)ADC/GPS模塊:反饋模塊;為FCC提供大氣數(shù)據(jù)參數(shù)(高度、垂直速度、地速、溫度等參數(shù)),以及GPS導(dǎo)航參數(shù)。5)舵機(jī):執(zhí)行機(jī)構(gòu);四路舵機(jī)分別為升降舵機(jī)、方向舵機(jī)、副翼舵機(jī)和縱向配平舵機(jī),通過其拉動(dòng)多面使飛機(jī)達(dá)到不同的飛行模式[4]。駕駛儀飛行模式如圖3所示。
圖2 駕駛儀硬件系統(tǒng)框圖Fig.2 Constitute of autopilot hardware system
圖3 駕駛儀飛行模式示意圖Fig.3 The scheme of autopilot flight mode
自動(dòng)駕駛儀軟件系統(tǒng)設(shè)計(jì)包含模型搭建、模型轉(zhuǎn)化、環(huán)境配置及生成代碼等,下文將詳細(xì)介紹如何在硬件系統(tǒng)的基礎(chǔ)上,從模型設(shè)計(jì)到生成認(rèn)證代碼的過程。
4.1 駕駛儀軟件模型框架
駕駛儀模型搭建使用Matlab/Simulink,功能模型以系統(tǒng)結(jié)構(gòu)為依托,按照模塊化編程思想,將駕駛儀功能模型劃分為:按鍵輸入模塊,顯示模塊,反饋輸入模塊,縱向飛行模式模塊,橫側(cè)向飛行模式模塊。Simulink中將不同的功能單元打包成單個(gè)獨(dú)立的subsystem,使軟件模型簡(jiǎn)潔,為生成高效代碼做準(zhǔn)備。軟件模型框架如圖4所示。
圖4 駕駛儀模型框圖Fig.4 Constitute of autopilot model
圖5 按鍵輸入模塊模型Fig.5 The model of key input module
模型中按鍵輸入模塊(如圖5)使用Simulink/Stateflow搭建,Stateflow是有限狀態(tài)機(jī)(finite state machine)的圖形工具;它可以用于解決復(fù)雜的邏輯問題,用戶可以通過圖形化工具實(shí)現(xiàn)在不同狀態(tài)之間的轉(zhuǎn)換。Stateflow可以直接嵌入到Simulink仿真模型中,并且在仿真初始化階段,Simulink會(huì)把Stateflow繪制的邏輯圖形通過編譯程序轉(zhuǎn)換成C語言,使二者有機(jī)地結(jié)合在一起。因此,對(duì)于按鍵輸入模塊中包含復(fù)雜邏輯判斷、眾多的飛行模式間的切換,Stateflow能比Simulink生成更加高效的代碼。
4.2 模型轉(zhuǎn)換及驗(yàn)證
模型搭建完成,且原理性和功能性仿真無誤后,需要模型進(jìn)行轉(zhuǎn)化。如嵌入式平臺(tái),連續(xù)系統(tǒng)生成的代碼無法運(yùn)行,需要轉(zhuǎn)化為離散系統(tǒng)。如果模型中含有浮點(diǎn)運(yùn)算,需要根據(jù)嵌入式平臺(tái)浮點(diǎn)運(yùn)算的能力,來決定是否對(duì)模型進(jìn)行定點(diǎn)化處理。下面介紹模型在生成代碼前需要完成的驗(yàn)證工作。
1)模型層次化管理:手動(dòng)將模型進(jìn)行封裝和劃分,例如,將駕駛儀模型按subsystem進(jìn)行封裝。Autosubsystem、Modellibrary和Modelreference同樣可以對(duì)模型進(jìn)行封裝及劃分,這三種方式通過配置參數(shù)能夠直接影響生成的代碼。Modellibrary是模型庫(kù),生成代碼是可以被調(diào)用的函數(shù)形式。Autosubsystem形式上與subsytem相同,生成代碼為一個(gè)單獨(dú)的函數(shù)。
2)模型規(guī)范化工具(Model Advisor):對(duì)模型進(jìn)行完整性、規(guī)范性、執(zhí)行效率、數(shù)據(jù)存儲(chǔ)管理、MISRA-C:2004、IEC 61508等一系列驗(yàn)證,為生成規(guī)范高效代碼掃清障礙。工具箱能夠根據(jù)模型的錯(cuò)誤,給出正確的配置,用戶只需要選擇應(yīng)用配置即可。
3)模型定點(diǎn)化工具(Fixed-Piont):定點(diǎn)化工具主要針對(duì)浮點(diǎn)運(yùn)算能力弱或不具有浮點(diǎn)運(yùn)算的嵌入式平臺(tái),需將模型中所有浮點(diǎn)運(yùn)算轉(zhuǎn)化為定點(diǎn),以提高運(yùn)算效率。在轉(zhuǎn)化過程中要注意數(shù)值溢出,Fixed-point提供了一套完整的定點(diǎn)化工具箱,能夠自動(dòng)設(shè)置定點(diǎn)位數(shù),簡(jiǎn)化了定點(diǎn)化過程。
4)DO驗(yàn)證工具(DOQualification Kit):DO Qualification Kit為模型進(jìn)行航空機(jī)載軟件標(biāo)準(zhǔn)的驗(yàn)證工作,并生成目標(biāo)驗(yàn)證的合格證明。需要進(jìn)行驗(yàn)證的標(biāo)準(zhǔn)有DO-178B和DO-331,他們分別驗(yàn)證機(jī)載航空軟件標(biāo)準(zhǔn)和基于模型的開發(fā)與驗(yàn)證標(biāo)準(zhǔn)。在模型規(guī)范化工具中已經(jīng)包含了DO驗(yàn)證工具了,但是為了生成目標(biāo)驗(yàn)證的合規(guī)證明,需要單獨(dú)進(jìn)行驗(yàn)證。
4.3 代碼生成配置
模型完成轉(zhuǎn)化和相應(yīng)驗(yàn)證工作之后,還需完成代碼生成配置便可進(jìn)行最后的代碼生成環(huán)節(jié)。代碼生成配置主要完成的工作有:選擇生成代碼的目標(biāo)系統(tǒng)文件、硬件平臺(tái)、硬件平臺(tái)開發(fā)環(huán)境。目標(biāo)系統(tǒng)文件為.tlc格式,決定生成代碼的架構(gòu)。
ert.tlc/Embedded Coder:生成通用的嵌入式C代碼,模型功能封裝為一個(gè)獨(dú)立的函數(shù),能夠被外部函數(shù)直接調(diào)用;此目標(biāo)系統(tǒng)文件不包含具體硬件平臺(tái)的底層驅(qū)動(dòng),需根據(jù)項(xiàng)目要求手動(dòng)編寫驅(qū)動(dòng)文件。
grt.tlc/Generic Real-Time Target:生成標(biāo)準(zhǔn)的C代碼,是Simulink實(shí)時(shí)仿真的默認(rèn)目標(biāo)系統(tǒng)文件,不能被用于嵌入式系統(tǒng)中。
idelink_ert.tlc/IDE Link ERT:生成針對(duì)具體硬件型號(hào)的嵌入式C代碼;與ert.tlc的區(qū)別為:生成的代碼中包含對(duì)應(yīng)嵌入式硬件平臺(tái)的底層驅(qū)動(dòng),下載到硬件平臺(tái)能直接運(yùn)行。
4.4 自動(dòng)生成代碼及代碼整合
生成代碼前的所有工作完成之后,Build自動(dòng)生成代碼。在模型所在目錄下生成一個(gè)以模型名命名的文件夾,包含有數(shù)十個(gè)文件,其中5個(gè)文件為有用文件。表2所示為具體的代碼分析,xxx為模型名,使用ert.tlc為目標(biāo)系統(tǒng)文件。
表2 代碼分析
如果項(xiàng)目中已有主函數(shù),將以上4個(gè)文件拷貝到項(xiàng)目文件夾下(ert_main.c除外),并添加到IDE中,在其主函數(shù)中添加xxx.h與rtwtypes.h頭文件,即可完成代碼的整合過程[5]。
為了對(duì)生成代碼完成功能測(cè)試,將程序下載到MSP430,配合仿真機(jī)進(jìn)行半實(shí)物仿真。ADC/GPS數(shù)據(jù)由仿真機(jī)模擬,使用Labview編寫上位機(jī)程序,采集航向數(shù)據(jù)與垂直速度數(shù)據(jù),得到控制曲線。
圖6所示為航向控制曲線圖,控制指令為60°,從曲線可以得出航向控制無超調(diào),響應(yīng)時(shí)間較長(zhǎng),50s能穩(wěn)定在控制指令處。圖7所示為垂直速度控制曲線圖,控制指令為5m/s,在40s時(shí)指令改為0m/s,從曲線可以看出垂直速度控制響應(yīng)較快,且切換指令并無震蕩,控制系統(tǒng)穩(wěn)定。自動(dòng)駕駛儀功能測(cè)試正常,達(dá)到系統(tǒng)設(shè)計(jì)指標(biāo)要求。
圖6 航向保持控制模式Fig.6 Control mode of azimuth holding mode
圖7 垂直速度保持控制模式Fig.7 Control mode of vertical speed holding mode
本文提出了基于模型的自動(dòng)駕駛儀軟件開發(fā)方法。分析了駕駛儀的硬件系統(tǒng)結(jié)構(gòu),軟件模型框架;詳細(xì)介紹了生成代碼前的模型轉(zhuǎn)化,及自動(dòng)生成代碼的作用和整合方法。最后對(duì)代碼進(jìn)行了功能性驗(yàn)證,達(dá)到了控制性能要求。采用本文論述的自動(dòng)駕駛儀軟件開發(fā)方法,極大地降低了自動(dòng)駕駛儀系統(tǒng)的開發(fā)難度,壓縮了設(shè)計(jì)成本。本方法能讓工程師更加注重算法的優(yōu)化,而不用擔(dān)心代碼實(shí)現(xiàn)的過程,具有很高的工程應(yīng)用價(jià)值。
[1] Kuper R I. Automatic code generation: U.S. Patent 6357039[P].2002.
[2] 王巧明, 李中健, 姜達(dá)郁.Matlab平臺(tái)DSP自動(dòng)代碼生成技術(shù)研究[J].現(xiàn)代電子技術(shù), 2012, 35(14):11-13.
[3] Schumann J, Mbaya T, Mengshoel O, et al.Software health managementwith Bayesian networks[J].Innovations in Systems and Software Engineering, 2013, 9(4):271-292.
[4] 徐軍, 歐陽紹修.運(yùn)輸類飛機(jī)自動(dòng)飛行控制系統(tǒng)[M].北京:國(guó)防工業(yè)出版社, 2013:172-181.
[5] 楊向忠, 安錦文, 崔文革.嵌入式自動(dòng)代碼生成技術(shù)應(yīng)用研究[J].彈箭與制導(dǎo)學(xué)報(bào), 2008, 28(3):250-253.
Software Development of Autopilot Based on Model
ZHANG Jian1, XU Jun1, DU Yu1, NI Xiao-yu2
(1.Beijing Institute of Technology,Beijing 100081, China; 2.Hebei Institute of Architecture Civil Engineering,Zhangjiakou,Hebei 075000, China)
As the software development of traditional autopilot has the disadvantages of low efficiency, long period, high cost and high difficulty,the software development of autopilot based on model is put forward. The full process of autopilot software development using Matlab/Simulink automatic generation technology is introduced, and the analysis and integration of the automatically generated code are presented. Finally, fuctional verificationis carried outby the embedded platform MSP430. The result showsthe method of software development disscussed here can be applied inengineeringapplication.
Autopilot; Modelbase; Automatic code generation; DO178B verification; Embedded
10.19306/j.cnki.2095-8110.2017.01.009
2016-09-12;
2016-10-26。
章枧(1990-),男,碩士,主要從事嵌入式系統(tǒng)開發(fā)。E-mail:948875710@163.com
V9
A
2095-8110(2017)01-0049-04