章 勝,王 華,程文科,唐國金
(國防科技大學(xué)航天與材料工程學(xué)院,長沙 410073)
模型庫對實現(xiàn)知識的重用與積累具有重要意義。基于模型庫可以迅速的搭建系統(tǒng)實現(xiàn)仿真,減少類似系統(tǒng)的低水平重復(fù)開發(fā)。目前仿真界已開發(fā)了諸多領(lǐng)域的模型庫[1-4]。
文中介紹了Modelica語言作為平臺開發(fā)工具的優(yōu)勢,采用該語言設(shè)計開發(fā)了彈道導(dǎo)彈模型庫MissileLib。詳細介紹了模型庫的體系結(jié)構(gòu),模型庫模型種類豐富,支持不同粒度的模型描述,與Simulink工具箱中的Aerospace Blockset模型庫相比各具特點,利用Modelica語言平臺建模與仿真相分離的優(yōu)良特性,利用該庫快速搭建了某彈道導(dǎo)彈仿真模型進行仿真,結(jié)果得到驗證。
Modelica是一種面向?qū)ο蟮?、非因果建模的多領(lǐng)域統(tǒng)一建模語言。面向?qū)ο蟮慕7椒ㄊ褂脩裟軌蛞詰?yīng)用領(lǐng)域熟悉、直觀的對象概念來建立仿真模型,開發(fā)模型層次分明,結(jié)構(gòu)清晰;非因果建模指采用數(shù)學(xué)方程而不是賦值語句定義類的行為,方程的求解方向由仿真求解器根據(jù)方程系統(tǒng)的數(shù)據(jù)流環(huán)境自動確定。建模時用戶可以不必將方程轉(zhuǎn)化為因果賦值形式,既減輕了建模工作量,又增強了模型的魯棒性與重用性。
Modelica語言支持多領(lǐng)域建模與連續(xù)-離散混合建模,適于描述具有復(fù)雜結(jié)構(gòu)的系統(tǒng),能實現(xiàn)不同領(lǐng)域模塊間的無縫集成?;谄浣⒌哪P蛶炷軌蛟诮UZ言層次上實現(xiàn)通用目的,具有其它軟件工具所無法比擬的優(yōu)勢;Modelica語言代碼開源,支持文本建模,同時類似于Simulink,開發(fā)的模型可以在圖形化建模環(huán)境下進行拖拽式建模。此外,Modelica語言支持C和FORTRAN語言編寫的外部函數(shù),具有較強的建模靈活性與兼容性;Modelica語言平臺實現(xiàn)了建模與仿真的分離,減少了數(shù)學(xué)模型變換整理為仿真模型的工作。開發(fā)人員能更加集中于模型的抽象與開發(fā),語言平臺自動產(chǎn)生高效的程序代碼并提供豐富的求解算法實現(xiàn)仿真。仿真結(jié)束后,利用語言平臺提供的表格、曲線、三維顯示等可視化方式可以直觀的展示仿真結(jié)果,極大的方便了結(jié)果分析。
鑒于Modelica語言的優(yōu)良特性,選擇其作為模型庫的開發(fā)工具。
開發(fā)方便實用的模型庫,首先需要充分提取對象的通用模型,開發(fā)常用的功能模塊,盡量實現(xiàn)模型庫的完備性;此外應(yīng)賦予模型規(guī)范的接口,保證模型有良好的使用性;最后要將各模型有序的整合起來,形成合理的體系結(jié)構(gòu),便于模型庫的管理、使用與擴充。研究對象特點是進行模型庫架構(gòu)設(shè)計的前提。
彈道導(dǎo)彈系統(tǒng)主要由動力學(xué)與GNC兩大子系統(tǒng)組成,模型庫設(shè)計的關(guān)鍵就是對這兩個子系統(tǒng)進行科學(xué)劃分。對于動力學(xué)子系統(tǒng),不管具體導(dǎo)彈的應(yīng)用技術(shù),飛行任務(wù)如何區(qū)別,決定其運動的物理規(guī)律都是不變的,經(jīng)過多年的整理已經(jīng)形成了較完整的數(shù)學(xué)模型,依據(jù)數(shù)學(xué)模型容易建立通用性較好的運動方程模型、質(zhì)量計算模型、發(fā)動機模型與氣動計算模型;對于GNC子系統(tǒng),不同的導(dǎo)彈差別較大,沒有統(tǒng)一的數(shù)學(xué)模型,開發(fā)模型的可行思路是首先開發(fā)通用的要素及常見的導(dǎo)航、制導(dǎo)、控制模型,而后在模型庫使用過程中針對具體問題開發(fā)模型,不斷實現(xiàn)模型庫的擴充。
導(dǎo)彈飛行與所處環(huán)境息息相關(guān),模型庫中需要包含必要的環(huán)境模型,包括地球引力模型、大氣模型、風(fēng)場模型與噪聲模型;導(dǎo)彈與目標(biāo)共同構(gòu)成一個完整的彈道導(dǎo)彈仿真系統(tǒng),因此模型庫還應(yīng)提供常見的目標(biāo)模型。
圖1 彈道導(dǎo)彈模型庫架構(gòu)
彈道導(dǎo)彈系統(tǒng)的開發(fā)牽涉到許多底層功能模塊或函數(shù)的開發(fā),以實現(xiàn)諸如坐標(biāo)轉(zhuǎn)換、姿態(tài)參數(shù)轉(zhuǎn)換、插值計算等功能,這些函數(shù)或模塊與具體應(yīng)用對象無關(guān),是對彈道導(dǎo)彈領(lǐng)域基礎(chǔ)計算的抽象,具有較強的通用性,建立專庫將其列入。
對開發(fā)的導(dǎo)彈系統(tǒng)模型將其入庫,這既可以實現(xiàn)系統(tǒng)知識的積累,同時對用戶而言,可以作為學(xué)習(xí)模型庫使用及模型構(gòu)建的范例。
基于以上分析,將彈道導(dǎo)彈模型庫劃分為六大子庫:動力學(xué)模型子庫、GNC模型子庫、環(huán)境庫、目標(biāo)庫、支撐工具庫和實例庫。其中,動力學(xué)模型子庫存放動力學(xué)建模的各種功能模塊及附屬模塊,GNC模型子庫包含導(dǎo)航、制導(dǎo)與控制模型,目標(biāo)庫存放目標(biāo)模型,環(huán)境庫存環(huán)境模型,支撐工具庫存放建模運算工具,實例庫存放導(dǎo)彈系統(tǒng)模型。
3.1.1 動力學(xué)模型子庫(Dyn_system)
動力學(xué)模型子庫包含搭建動力學(xué)系統(tǒng)的一級組件模型及相應(yīng)的底層模塊,依托該模型庫的資源,用戶可以搭建導(dǎo)彈動力學(xué)子系統(tǒng)。動力學(xué)模型子庫結(jié)構(gòu)如圖2所示,子庫一級組件模型包括運動方程模型、質(zhì)量計算模型、發(fā)動機模型和氣動計算模型。
圖2 動力學(xué)模型子庫結(jié)構(gòu)
運動方程模型(EquationOfMotion)描述導(dǎo)彈的運動,根據(jù)導(dǎo)彈所受的力、力矩及導(dǎo)彈的質(zhì)量特性計算導(dǎo)彈的姿態(tài)、位置和速度,目前開發(fā)了在慣性坐標(biāo)系下描述質(zhì)心運動的6自由度模型與3自由度模型;質(zhì)量計算模型(MassProperty)計算導(dǎo)彈質(zhì)量、轉(zhuǎn)動慣量、質(zhì)心,目前開發(fā)了基于數(shù)據(jù)文件的插值計算模型;發(fā)動機模型(Propulsion)包括姿控發(fā)動機模型、推力發(fā)動機模型與力矩計算模塊,其中推力發(fā)動機模型包括插值計算與公式計算兩種方式,姿控發(fā)動機有直接開關(guān)與考慮推力延遲兩種不同粒度的描述,為了計算相應(yīng)擺角下的控制力矩,模型庫中提供了發(fā)動機力矩計算模塊;氣動計算模型(Aerodynamics)計算導(dǎo)彈所受的氣動力、氣動力矩與阻尼力矩,開發(fā)的模型包括氣動力模型、氣動力矩模型、阻尼力矩模型等。
3.1.2 GNC模型子庫(GNC_system)
由于GNC系統(tǒng)難以統(tǒng)一建模,建立模型庫的可行途徑是開發(fā)相應(yīng)的功能器件及算法模型,按功能將GNC模型子庫分解為導(dǎo)航、制導(dǎo)、控制三大部分,每一部分包含相應(yīng)的子模型。此外,該子庫提供常見的導(dǎo)航模型(平臺導(dǎo)航模型、捷聯(lián)導(dǎo)航模型)和制導(dǎo)算法(顯式制導(dǎo)方法、攝動制導(dǎo)方法)。
圖3 GNC模型子庫結(jié)構(gòu)
導(dǎo)航模型(Navigation)包括測量器件與導(dǎo)航算法。目前開發(fā)的測量器件包括慣性平臺模型、速率陀螺模型、加速度計模型、雷達模型。算法包括平臺導(dǎo)航算法與捷聯(lián)導(dǎo)航算法。為了便于用戶使用,導(dǎo)航模型中提供完整的平臺導(dǎo)航模型與捷聯(lián)導(dǎo)航模型;制導(dǎo)模型(Guidance)中包括顯式制導(dǎo)方法與攝動制導(dǎo)方法。應(yīng)用顯式制導(dǎo)模型前需預(yù)先設(shè)置目標(biāo)點坐標(biāo)參數(shù),應(yīng)用攝動制導(dǎo)模型需讀入預(yù)先計算好的標(biāo)準(zhǔn)彈道數(shù)據(jù);控制模型(AttitudeControl)包括控制算法與器件模型。目前開發(fā)的控制算法有Bang-Bang控制與PID控制,器件模型包括校正網(wǎng)絡(luò)模型、擺角合成模型和伺服機構(gòu)模型。
3.1.3 目標(biāo)模型子庫(T arget)
目標(biāo)模型子庫提供典型的目標(biāo)運動模型,目前開發(fā)了固定目標(biāo)(Fixed)和勻速運動目標(biāo)(UniformMotion)兩種模型。
3.1.4 環(huán)境模型子庫(Environment)
環(huán)境模型子庫存放導(dǎo)彈飛行的環(huán)境模型,包括地球引力模型(Gravity)、風(fēng)場模型(Wind)、大氣模型(Atmosphere)與噪聲模型(NoiseGenerator)。地球引力模型提供三種引力計算方式:垂直常引力,中心質(zhì)點引力,考慮地球扁率引力。用戶可以根據(jù)需要進行選擇。風(fēng)場模型采用平均風(fēng)模型。大氣模型采用標(biāo)準(zhǔn)大氣的擬合公式模型。目前暫且只開發(fā)了白噪聲模型。
3.1.5 支撐工具庫(Tools)
支撐工具庫存放彈道導(dǎo)彈模型開發(fā)的基本功能函數(shù)或模塊,這些函數(shù)或模塊與具體應(yīng)用對象無關(guān),是對彈道導(dǎo)彈領(lǐng)域基礎(chǔ)計算的抽象,工具庫實現(xiàn)了絕大部分的計算或換算功能,使得模型庫有更加堅實的應(yīng)用基礎(chǔ)。開發(fā)的工具包括功能函數(shù)與功能模塊。函數(shù)用于文本建模,模塊用于圖形化建模。
圖4 支撐工具庫結(jié)構(gòu)
姿態(tài)換算工具(Attitude)進行不同姿態(tài)描述間的等價換算,目前開發(fā)了歐拉角、四元素、方向余弦陣之間的換算工具;坐標(biāo)換算工具(CoordType)實現(xiàn)地球直角坐標(biāo)系與大地坐標(biāo)系間的換算功能;矢量旋轉(zhuǎn)工具(CoordRotate)進行矢量的旋轉(zhuǎn),得到不同坐標(biāo)系下的矢量表示;余弦陣計算工具(CoordSystem)求解彈道計算中常用的坐標(biāo)系間的方向余弦陣,目前開發(fā)了J2000慣性系、發(fā)射系、發(fā)射慣性系、體系間的余弦陣計算模塊與函數(shù);飛行參數(shù)計算模塊(FlightParam)方便導(dǎo)彈的氣動計算,包括馬赫數(shù)計算模塊、音速計算模塊、攻角計算模塊、地速計算模塊;力線平移計算模塊(Force)實現(xiàn)力的平移計算,求解指定點處的力與力矩;時間換算工具(Timesystem)進行不同時間系統(tǒng)間的換算,目前開發(fā)了儒略日與平太陽時的換算函數(shù);插值工具(InterpolateTable)提供數(shù)據(jù)讀取與插值計算功能,目前開發(fā)了一維、二維與三維插值模塊;數(shù)學(xué)工具(Math)包括簡單的四則運算模塊、矢量求模模塊、矩陣轉(zhuǎn)置模塊等;邏輯模塊(Logical)實現(xiàn)邏輯切換功能。目前結(jié)合需求開發(fā)了雙輸入切換模塊與三輸入切換模塊;常數(shù)(Constants)中定義了彈道計算相關(guān)的地球引力常數(shù)、地球扁率、地球平均半徑、J2項、地球自轉(zhuǎn)角速度等常數(shù)。
3.1.6 實例庫(Example)
實例庫存放已搭建的彈道導(dǎo)彈仿真模型,形成系統(tǒng)知識積累,方便后續(xù)使用,同時亦可作為模型庫使用與模型搭建的指導(dǎo)范本。目前已存放了某導(dǎo)彈的仿真模型。
圖5給出了基于Modelica語言開發(fā)的彈道導(dǎo)彈模型庫體系圖,為了便于展示模型庫整體架構(gòu),目錄僅展開到二級。
模型庫采用樹形管理機制,層次清晰,模型屬類明確,便于使用、管理與擴充。
在模型庫體系圖下方,Modelica語言平臺設(shè)有專門的模塊展示區(qū),方便用戶了解該目錄下的模塊內(nèi)容。圖6中展示了矢量旋轉(zhuǎn)工具中的功能模塊與函數(shù)。模型庫中開發(fā)的模型包括函數(shù)與模塊。函數(shù)用于文本建模,模塊用于圖形化建模。
模型庫支持不同粒度的模型描述,以滿足不同的任務(wù)需求,具有相同功能的模型歸到同一目錄下,用戶可根據(jù)具體需要進行選擇。圖7中展示了運動方程模型中的6自由度與3自由度模型。
圖7 不同粒度的運動模型
利用Modelica語言的文本描述功能,模型開發(fā)人員可以將模型的數(shù)學(xué)描述及使用說明進行編輯,形成幫助文檔,實現(xiàn)附帶知識的積累,利于模型庫的推廣使用。
文中開發(fā)的彈道導(dǎo)彈模型庫MissileLib與Simulink工具箱中提供的Aerospace Blockset模型庫均旨在實現(xiàn)導(dǎo)彈模型的快速搭建,兩者間有許多相近的地方,但也有所區(qū)別。在結(jié)構(gòu)劃分上,MissileLib更強調(diào)系統(tǒng)的模型類別,其中的GNC模型子庫相較Aerospace Blockset模型更加豐富;在開發(fā)語言方面,MissileLib基于Modelica語言開發(fā),模塊編輯更加靈活,開發(fā)的模塊重用性強,可實現(xiàn)不同領(lǐng)域模型間的無縫連接,模型代碼開源,用戶可以詳細了解其具體實現(xiàn);支撐環(huán)境方面,Modelica語言平臺也提供豐富的模型庫,與Simulink工具箱偏重于控制不同,其在多體運動、機電系統(tǒng)、離散控制等諸多領(lǐng)域均有專庫。
針對具體的彈道導(dǎo)彈仿真任務(wù),從MissileLib中選取模型進行搭建。另外,如果新開發(fā)的模型重用性較強,將其入庫以進一步完善模型庫。
圖8 主動段動力學(xué)模型圖
從動力學(xué)模型子庫與環(huán)境模型子庫中選擇相應(yīng)模型進行連接與組合,搭建導(dǎo)彈動力學(xué)子系統(tǒng)。圖8展示了搭建的導(dǎo)彈主動段動力學(xué)子系統(tǒng)模型。
從GNC模型子庫中選擇可用模型,結(jié)合具體問題開發(fā)需用模型搭建GNC子系統(tǒng)。圖9展示了導(dǎo)彈主動段GNC子系統(tǒng)模型。
圖9 主動段GNC模型圖
彈道導(dǎo)彈的飛行中存在多個階段,對導(dǎo)彈進行飛行仿真,需要解決階段切換的問題,開發(fā)階段切換模塊對系統(tǒng)進行時序管理;動力學(xué)模型的計算與GNC模型的計算不在同一個坐標(biāo)系下,利用坐標(biāo)轉(zhuǎn)換模塊實現(xiàn)狀態(tài)量在不同坐標(biāo)系下的轉(zhuǎn)換。
在選擇目標(biāo)模型后,最終完成的彈道導(dǎo)彈模型包括五大部分:階段切換模塊(PhaseSwitch),動力學(xué)模塊(DynManage),GNC模塊(GNCManage),坐標(biāo)轉(zhuǎn)換模塊(CoordT ranslator),目標(biāo)模塊(T arget)。
圖10 彈道導(dǎo)彈仿真模型
開發(fā)的模型在得到驗證后,作為系統(tǒng)的知識積累入庫。
圖11 導(dǎo)彈高度時間曲線
完成系統(tǒng)搭建后,設(shè)置導(dǎo)彈的發(fā)射點、發(fā)射方位角等參數(shù),利用Modelica語言平臺建模與仿真相分離的優(yōu)良特性,直接在語言平臺上選擇四階龍格庫塔積分算法,設(shè)置仿真時間為0~120s,對系統(tǒng)進行仿真。仿真結(jié)束后,基于語言平臺的可視化功能分析結(jié)果。圖11給出了導(dǎo)彈高度與時間的關(guān)系曲線。
為了驗證仿真結(jié)果的正確性,將結(jié)果與導(dǎo)彈的C語言仿真軟件結(jié)果進行比對,該C語言仿真軟件是已經(jīng)過系統(tǒng)的校驗,其可信性得到認可。圖12中給出了兩系統(tǒng)高度結(jié)果的誤差曲線。
圖12 高度比較誤差曲線
分析高度誤差,誤差最大值小于20m,此時高度約為1.15E5m,相對誤差約為0.017%,考慮到原系統(tǒng)采用歐拉角描述姿態(tài)運動,而新建模型采用四元素描述,姿態(tài)計算的微小差異可能引起控制量略有差別,進而導(dǎo)致結(jié)果存在小幅區(qū)別,綜合考慮認為誤差可以接受,仿真結(jié)果是可信的。
利用Modelica語言的優(yōu)良特性,基于該語言開發(fā)了彈道導(dǎo)彈模型庫MissileLib。模型庫層次清晰,易于擴充,支持不同粒度的模型描述,可靠性得到驗證,實現(xiàn)了知識的積累與重用?;谠撃P蛶炜梢钥焖俅罱◤椀缹?dǎo)彈模型實現(xiàn)仿真,為彈道導(dǎo)彈飛行性能的快速評估奠定了基礎(chǔ),該庫具有較好的應(yīng)用前景與推廣價值。
[1]Thomas R M,Timothy T C,Patrick E M.A generic common simulation framework based starting point for missile 6DOF simulations,AIAA 2005-5887[R].2005.
[2]吳媛媛,吳進華,唐靜.基于Matlab的導(dǎo)彈飛行動力學(xué)仿真模型庫設(shè)計[J].海軍航空工程學(xué)院學(xué)報,2005,20(2):257-260.
[3]任志彬.基于Modelica和Dymola的航空燃氣渦輪發(fā)動機建模與仿真[D].上海:上海交通大學(xué),2005.
[4]Gertjan Looye.The new DLR flight dynamics library[C]//The Modelica Association and University of Applied Sciences Bielefeld.Proceedings of the6th International Modelica Conference.Bielefeld,Germany,2008.
[5]陳世年.控制系統(tǒng)設(shè)計[M].北京:中國宇航出版社,2005.