徐鐵軍,黃超凡,徐天蒙,王改堂,葉錦函
(中國(guó)兵器工業(yè)第203研究所,西安 710065)
?
從模型到自動(dòng)代碼生成的彈載飛行控制器設(shè)計(jì)
徐鐵軍,黃超凡,徐天蒙,王改堂,葉錦函
(中國(guó)兵器工業(yè)第203研究所,西安 710065)
為了克服傳統(tǒng)彈載飛行控制器軟件開(kāi)發(fā)模式中存在的問(wèn)題,以及對(duì)代碼生成技術(shù)進(jìn)行驗(yàn)證和確認(rèn),將代碼生成技術(shù)用于彈載飛行控制器軟件實(shí)現(xiàn)。以某型反坦克導(dǎo)彈飛行控制模型為實(shí)例,利用Embedded Coder工具,按照開(kāi)發(fā)流程進(jìn)行了自動(dòng)代碼生成。對(duì)生成的代碼執(zhí)行結(jié)果和仿真計(jì)算結(jié)果進(jìn)行對(duì)比,結(jié)果驗(yàn)證了從模型生成的代碼與模型仿真計(jì)算結(jié)果的一致性。
自動(dòng)代碼生成;基于模型的設(shè)計(jì);彈載飛行控制器
目前,高性能、高可靠性的彈載飛行控制器硬件平臺(tái)通常以16位或32位嵌入式處理器或數(shù)字信號(hào)處理器(DSP)為核心、輔以A/D轉(zhuǎn)換和D/A轉(zhuǎn)換電路、通訊電路或現(xiàn)場(chǎng)總線等外圍電路組成。隨著各種類(lèi)型的高性能、低成本嵌入式處理器芯片及其外圍芯片的不斷涌現(xiàn),彈載飛行控制器的硬件平臺(tái)朝著通用化、模塊化方向發(fā)展,成本持續(xù)降低,性能不斷提升,硬件平臺(tái)已不再成為約束彈載飛行控制器發(fā)展的因素,而制約飛行控制器發(fā)展的主要因素已轉(zhuǎn)移至飛行控制器的軟件實(shí)現(xiàn)、測(cè)試和維護(hù)上。
隨著彈載飛行控制器設(shè)計(jì)的理念和開(kāi)發(fā)工具的持續(xù)發(fā)展和不斷創(chuàng)新,傳統(tǒng)的控制系統(tǒng)開(kāi)發(fā)模式遭受多方面的挑戰(zhàn)而進(jìn)行變革。
Simulink模型是當(dāng)前控制業(yè)界進(jìn)行控制算法開(kāi)發(fā)、仿真的通用圖形化語(yǔ)言,是控制算法開(kāi)發(fā)人員與系統(tǒng)仿真的主要工具。
傳統(tǒng)的飛行控制器軟件的設(shè)計(jì)流程如圖1所示,分4步進(jìn)行:
1)控制算法需求分析和確認(rèn);
2)在Simulink環(huán)境下建立控制算法模型,進(jìn)行仿真和快速原型設(shè)計(jì);
3)根據(jù)飛行控制器硬件平臺(tái)完成軟件編程;
4)飛行控制器在線仿真驗(yàn)證和確認(rèn)。
以上流程為迭代過(guò)程,若發(fā)現(xiàn)不符合期望,則返回前步驟進(jìn)行修正。
這種傳統(tǒng)開(kāi)發(fā)模式中,控制算法設(shè)計(jì)人員與軟件實(shí)現(xiàn)人員之間的媒介通常是描述數(shù)學(xué)模型的文檔,這種模式有以下問(wèn)題:
1)無(wú)論是算法設(shè)計(jì)人員對(duì)數(shù)學(xué)模型的描述,還是軟件實(shí)現(xiàn)人員對(duì)數(shù)學(xué)模型的理解都難免存在偏差或者誤解。
2)控制算法的參數(shù)經(jīng)常需要調(diào)整優(yōu)化,對(duì)應(yīng)軟件
也因此需要反復(fù)修訂,由于軟件實(shí)現(xiàn)的依據(jù)是數(shù)學(xué)模型的描述文檔,文本語(yǔ)言本質(zhì)具有的模糊性以及文檔的反復(fù)修訂很容易帶來(lái)軟件與數(shù)學(xué)模型的不一致、軟件版本控制的失誤。甚至當(dāng)數(shù)學(xué)模型一旦結(jié)構(gòu)上改動(dòng)較大的情況下,軟件編程工作就可能半途而廢,重新開(kāi)始。
圖1 控制系統(tǒng)開(kāi)發(fā)流程
除了以上問(wèn)題,面對(duì)同行業(yè)日趨激烈的競(jìng)爭(zhēng)態(tài)勢(shì),不斷縮短飛行控制器的開(kāi)發(fā)周期、削減投入成本、快速投放應(yīng)用等是彈載飛行控制器開(kāi)發(fā)部門(mén)迫切需求,也是其科研實(shí)力的突出體現(xiàn)。為使軟件設(shè)計(jì)人員從繁雜、重復(fù)的編程實(shí)現(xiàn)工作中解放出來(lái),將重點(diǎn)轉(zhuǎn)移至軟件的測(cè)試、維護(hù)、優(yōu)化等軟件工作中,將更多的精力放在飛行器控制器的可靠性、創(chuàng)新設(shè)計(jì)等迫切需求上去,因此,采用模型到代碼生成技術(shù)尤為必要。
從模型到代碼自動(dòng)生成技術(shù),如圖2所示,就是從模型直接自動(dòng)生成軟件代碼,部分代替或完全代替手工編碼,從而減少甚至免除手工編碼過(guò)程中繁瑣、易出錯(cuò)的環(huán)節(jié),即算法設(shè)計(jì)人員將控制算法轉(zhuǎn)換為描述數(shù)學(xué)模型的文檔,再由軟件設(shè)計(jì)人員將文檔轉(zhuǎn)化為編程的過(guò)程。從模型到代碼生成技術(shù)本質(zhì)上是基于模型的設(shè)計(jì)方法不可或缺的鏈接環(huán)節(jié),它能夠?qū)崿F(xiàn)控制算法與軟件編程的無(wú)縫緊密結(jié)合,具有以下優(yōu)點(diǎn):
1)極大縮短軟件編程的周期,較之手工編碼其錯(cuò)誤率極低;
2)生成完全忠于模型的程序代碼;
3)符合統(tǒng)一的程序代碼安全標(biāo)準(zhǔn);
4)模型和代碼、代碼文檔維護(hù)自動(dòng)同步更新。
近年來(lái),國(guó)內(nèi)大專(zhuān)院校和研究機(jī)構(gòu)設(shè)計(jì)人員將自動(dòng)代碼生成技術(shù)成功應(yīng)用在數(shù)字化接收機(jī)[1]、電池管理系統(tǒng)[2]、電機(jī)控制[3]、飛控系統(tǒng)快速原型設(shè)計(jì)[4-5]、電力電子控制[6]等嵌入式控制系統(tǒng)[7-9]軟件實(shí)現(xiàn)方面。
圖2 從模型到自動(dòng)生成代碼技術(shù)
文中采用和Simulink同屬于MATLAB環(huán)境的Embedded Coder產(chǎn)品,作為代碼產(chǎn)生工具,它具有以下優(yōu)點(diǎn):
1)生成的代碼忠于模型,與模型可一一互相對(duì)照,代碼緊湊、注釋完備、維護(hù)方便、可讀性好;
2)符合DO-178C安全標(biāo)準(zhǔn)認(rèn)證以及IEC61508、ISO26262等標(biāo)準(zhǔn);
3)生成的CC++代碼符合國(guó)際標(biāo)準(zhǔn),支持多種目前主流的目標(biāo)處理器,可與通用或多種嵌入式軟件集成開(kāi)發(fā)環(huán)境無(wú)縫鏈接;
4)配置專(zhuān)門(mén)工具和方法,使模型與外部代碼便利、快速結(jié)合;
5)Simulink環(huán)境本身支持多種對(duì)生成代碼的驗(yàn)證和確認(rèn)方式。
從模型到自動(dòng)代碼生成技術(shù)的開(kāi)發(fā)流程步驟如下:
1)在MATLABSimulink建模環(huán)境下,對(duì)飛行控制器及其各子系統(tǒng)如控制算法、程序調(diào)度和設(shè)備驅(qū)動(dòng)模型進(jìn)行集成、排錯(cuò);
2)根據(jù)需要對(duì)模型進(jìn)行代碼生成配置、優(yōu)化;
3)自動(dòng)代碼生成和代碼集成;
4)將生成的代碼納入外部編譯環(huán)境進(jìn)行驗(yàn)證和比較;
5)比較驗(yàn)證完成沒(méi)有問(wèn)題后,將代碼及所需支持文件、庫(kù)等轉(zhuǎn)入目標(biāo)嵌入式系統(tǒng)的集成開(kāi)發(fā)環(huán)境進(jìn)行集成和調(diào)試。
文中以控制算法構(gòu)件代碼生成為例,按以下步驟進(jìn)行:
1)首先進(jìn)行模型檢驗(yàn)和模型等效化
圖3所示為某型反坦克導(dǎo)彈控制系統(tǒng)閉環(huán)Simulink模型,以及控制器模型及其子系統(tǒng)模型。由閉環(huán)模型仿真可獲得控制器模型的輸入輸出仿真結(jié)果。對(duì)模型進(jìn)行檢驗(yàn)、查錯(cuò)并修改,對(duì)不合適的模塊進(jìn)行等效代替,使模型適于代碼生成。
圖3 某型反坦克導(dǎo)彈控制系統(tǒng)模型及控制器模型
2)自動(dòng)代碼生成
編譯模型,生成控制算法的標(biāo)準(zhǔn)C語(yǔ)言代碼。模型一經(jīng)確定,代碼一次成功生成。
3)對(duì)生成的代碼比較驗(yàn)證
將生成的此C代碼和支持文件轉(zhuǎn)入CC++集成開(kāi)發(fā)環(huán)境中,對(duì)生成代碼輸入數(shù)據(jù),計(jì)算輸出結(jié)果。圖4和圖5所示為2路獨(dú)立的控制指令的生成代碼輸出結(jié)果和仿真輸出結(jié)果對(duì)比,從圖中和計(jì)算結(jié)果可以看出,兩者完全保持一致。
圖4 指令1的模型仿真輸出結(jié)果和生成代碼輸出結(jié)果
圖5 指令2的模型仿真輸出結(jié)果和生成代碼輸出結(jié)果
由以上對(duì)比可以獲知,對(duì)于控制算法模型,采用從模型到代碼自動(dòng)生成技術(shù)可以獲得高效、緊湊的代碼,代碼計(jì)算結(jié)果與模型仿真結(jié)果完全一致。
除了彈載飛行控制器的產(chǎn)品代碼外,從模型到代碼自動(dòng)生成技術(shù)還可以完成以下工作:
1)用于完成模型復(fù)算、驗(yàn)證,只需要改變生成代碼的目標(biāo)設(shè)置,生成的代碼就可以用桌面計(jì)算機(jī)編譯器系統(tǒng)編譯成可執(zhí)行程序,用于模型復(fù)算和驗(yàn)證。
2)生成飛行控制器硬件測(cè)試軟件,需要建立硬件測(cè)試模型,自動(dòng)生成代碼,大大加快彈載飛行控制器測(cè)試軟件實(shí)現(xiàn)工作。
使用從模型到代碼自動(dòng)生成技術(shù),能夠極大地加快彈載飛行控制器軟件實(shí)現(xiàn)工作,生成的代碼完全忠于算法模型、代碼結(jié)構(gòu)緊湊、效率高、可讀性好、便于維護(hù),符合國(guó)際安全標(biāo)準(zhǔn)認(rèn)證。
自動(dòng)代碼生成技術(shù)不但可以用作控制算法加速仿真、硬件在線實(shí)時(shí)仿真等方面,還可以應(yīng)用在其它彈載嵌入式系統(tǒng)軟件實(shí)現(xiàn)中,完成不同任務(wù),例如信號(hào)處理、機(jī)器視覺(jué)、圖像處理等方面,以期大大縮短開(kāi)發(fā)周期,提高產(chǎn)品可靠性,增強(qiáng)彈載飛行控制器研制部門(mén)的技術(shù)研發(fā)實(shí)力。
[1] 張海, 陳偉. DSP自動(dòng)代碼生成在數(shù)字化接收機(jī)中的應(yīng)用 [J]. 測(cè)控技術(shù), 2004, 23(Z1): 156-158.
[2] 陳金干, 魏學(xué)哲. 基于DSP的自動(dòng)代碼生成及其在電池管理系統(tǒng)中的應(yīng)用 [J]. 電子技術(shù)應(yīng)用, 2008(6): 43-46.
[3] 艾勝, 孫馳. 基于Matlab的NPC單相五電平H橋SPWM目標(biāo)代碼生成 [J]. 船電技術(shù), 2009, 29(4): 13-17.
[4] 李強(qiáng), 王民鋼, 楊堯. 飛行控制系統(tǒng)快速原型設(shè)計(jì)與實(shí)現(xiàn) [J]. 計(jì)算機(jī)測(cè)量與控制, 2009, 17(7): 1305-1307.
[5] 方正, 張淇淳, 齊玉成. 基于DSP的快速控制原型系統(tǒng) [J]. 東北大學(xué)學(xué)報(bào), 2009, 30(8): 1069-1073.
[6] 郭元彭, 盧子廣, 楊達(dá)亮. 基于DSP代碼自動(dòng)生成的實(shí)時(shí)控制平臺(tái) [J]. 電力電子技術(shù), 2010, 44(10): 65-67.
[7] 杜磊, 薛重德, 任志國(guó). 基于DSP的自動(dòng)代碼生成及應(yīng)用 [J]. 微處理機(jī), 2010(2): 93-96.
[8] 范哲意, 周治國(guó), 劉志文, 等. 基于TMS320DM642和模型化設(shè)計(jì)的圖像跟蹤實(shí)驗(yàn)系統(tǒng) [J]. 實(shí)驗(yàn)技術(shù)與管理, 2013, 30(3): 74-77.
[9] 孔煒, 吳樹(shù)高. 自動(dòng)編碼技術(shù)在嵌入式系統(tǒng)開(kāi)發(fā)中的應(yīng)用 [J]. 工業(yè)控制計(jì)算, 2013, 26(3): 6-7.
Design of Missile-borne Flight Controller by Means of Automatic Code Generation from Model
XU Tiejun,HUANG Chaofan,XU Tianmeng,WANG Gaitang,YE Jinhan
(No.203 Research Institute of China Ordnance Industries, Xi’an 710065, China)
In order to overcome problems existing in traditional flight controller program development mode, verify and validate technology of automatic code generation, it was applied in implementation of the flight controller program. As an example of a type of anti-tank missile flight controller model, following the development workflow, the code was generated using the Embedded Coder tools. The computing results produced by executing the code and that of the simulation of model were compared and verified, it showed remarkable agreement between the generated code and the model.
automatic code generation; model-based design; missile-borne flight controller
2014-12-10
徐鐵軍(1976-),男,陜西西安人,高級(jí)工程師,博士研究生,研究方向:工程電磁場(chǎng)計(jì)算,電路線路設(shè)計(jì)與仿真、彈載電子系統(tǒng)建模研究。
TJ765.2
A