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