彭亮,黃心漢
(華中科技大學 控制科學與工程系,湖北 武漢,430074)
巡航導彈作為遠程精確制導的高技術武器裝備,已成為以“非接觸精確打擊”的重要武器。建立巡航導彈實時視景仿真系統,可以降低其研制和開發的費用和周期,減少巡航導彈遇到內部故障或在不可預見的復雜戰場環境中導致故障的可能性,有利于研究人員的研究和開發。虛擬現實仿真技術是20世紀80年代末發展起來的一項仿真技術,它以良好的沉浸感、逼真度和人機交互性能已應用于軍事、航空航天、建筑、娛樂和醫療等領域[1?2]。一般的基于PC環境下開發的仿真系統側重于視景沉浸感的表現或運動模擬。應用C++等高級編程語言開發的仿真系統往往注重于物體的運動模擬,開發代碼繁復,開發周期長,可靠性低,不利于系統的維護。而采用Vega Prime等仿真軟件能對虛擬環境進行快速開發[3],但對于運動的模擬效果一般。為此,本文作者首先對巡航導彈進行受力分析,建立導彈的六自由度動力學方程,然后,利用Matlab/Simulink軟件建立巡航導彈的數學模型,建立巡航導彈的運動仿真系統;利用Multigen Creator軟件建立巡航導彈的實體模型,并運用Vega Prime軟件建立視景仿真系統;最后,利用Visual C++將2個系統聯合起來,組成完整的巡航導彈實時視覺仿真系統。
對巡航導彈的動力學進行分析和求解時,必須先選用適當的描述巡航導彈的坐標系。對于導彈等飛行器,常用的右手坐標系有地面坐標系Axyz、彈體坐標系Ox1y1z1、彈道坐標系Ox2y2z2和速度坐標系Ox3y3z3[4]。
(1) 地面坐標系Axyz:與地面固聯,原點A取導彈質心在地面上的投影點,Ax軸在水平面內,指向目標(或目標在水平面上的投影點)為正;Ay軸與水平面垂直,往上為正;Az軸按右手定則確定。
(2) 彈體坐標系Ox1y1z1:原點O取在導彈的質心;Ox1軸與彈體縱軸重合,指向頭部為正;Oy1軸在彈體縱向對稱平面內與Ox1軸垂直,向上為正;Oz1軸垂直于Ox1y1平面,方向按照右手定則確定。
(3) 彈道坐標系Ox2y2z2:原點O取在導彈的質心;Ox2軸與導彈的速度矢量V重合;Oy2軸位于包含速度矢量的鉛垂平面內且與 Ox2軸垂直,向上為正;Oz2軸按照右手定則確定。
(4) 速度坐標系Ox3y3z3:原點O取在導彈的質心;Ox3軸與導彈的速度矢量V重合;Oy3軸在彈體縱向對稱平面內與Ox3軸垂直,向上為正;Oz3軸垂直于Ox1y1平面,方向按照右手定則確定。
導彈在飛行時,所受的力主要有重力、發動機推力、空氣動力、氣動力矩等[5]。
(1) 推力是導彈飛行的動力,與燃料消耗量等因素有關。

式中:m˙為單位時間內的發動機燃料消耗量;ue為燃氣介質對彈體的噴出速度;Sa為發動機噴管出口處的橫截面積;pa為發動機噴管出口處燃氣流的壓強;pH為導彈所處高度的大氣壓強。
(2) 空氣動力可分解為阻力Fx、升力Fy和側向力Fz。試驗結果表明:空氣動力與來流的動壓頭q和導彈的特征面積S成正比,即

式中:Cx,Cy和Cz分別為相對于彈體坐標系的側向力、法向力和橫向力系數,隨飛行馬赫數、高度、側滑角、攻角等飛行狀態的變化而變化;ρ為空氣密度;v為導彈飛行速度。
(3) 氣動力矩主要包括俯仰力矩、偏航力矩、滾轉力矩,分別用無量綱力矩因數表示為:

(4) 導彈所受的重力和導彈的飛行高度有關。

式中:g0為地球表面的重力加速度,一般取為 9.81 m/s2;Re為地球半徑,一般取為6 371 km; H為導彈離地面的高度。
根據導彈的受力以及剛體運動學原理,就可以得到導彈的六自由度數學模型。導彈運動方程組是表征導彈運動規律的數學模型,是分析、計算或模擬導彈運動的基礎。導彈在空間的運動方程由描述導彈質心運動和彈體姿態變化的動力學方程、運動學方程、導彈的質量變化方程和角度關系方程等組成[6?7]:


式中:各參數的具體含義見文獻[6]。
Simulink是Matlab最重要的組件之一,它提供一個動態系統建模、仿真和綜合分析的集成環境,具有強大的數據處理和仿真功能[8]。根據導彈的動力學數學模型,利用Simulink建立導彈運動仿真系統,將導彈的整個武器裝備系統按功能分為多個模塊(如圖1所示),并將其進行封裝,有利于程序的可移植性與重用性。然后,利用 Matlab/Simulink建立巡航導彈的Simulink模型[9],如圖2所示。這樣,可以根據已建立的Simulink仿真模型獲得導彈各個時刻運動的位置、速度、加速度。還可以根據這些信息利用Simulink模擬動畫,但視圖只能展現出一維信息,對于空間的表現力不強。采用仿真軟件Vega Prime能克服該缺點。
利用Vega Prime軟件進行仿真,首先要建立導彈等物體的實體模型。Multigen Creator軟件獨有的可視化數據庫為實時系統的應用提供了有效的途徑。利用Wall和Loft等方法,結合CAD導入實體模型,采用DOF技術,加入特征紋理,建立導彈實體模型,可以獲得良好的視覺效果[10]。導彈的實體模型結構如圖3所示。

圖1 導彈飛行仿真模塊Fig.1 Flight simulation module of missile

圖2 基于Simulink的系統仿真模型Fig.2 System simulation model based on Simulink

圖3 導彈的實體模型框架Fig.3 Framework of constructing entity model
在使用導彈模型時,必須保證紋理文件和*.fit格式的模型文件在1個文件夾下,這將會使程序的可靠性降低。利用插件將兩者組合生成*.fst格式的模型文件,可以提高程序的可靠性,使Vega Prime軟件調用速度更快。導彈的*.fst模型如圖4所示。

圖4 導彈的*.fst模型Fig.4 *.fst model of missile
Vega Prime應用程序一般分為2個主要階段:Vega Prime系統的靜態描述階段和Vega Prime系統的動態循環。前一階段的主要工作是為確保Vega Prime系統的正常運行進行必要的系統設置,主要包括內存分配、參數配置、Vega Prime基本類的定義等,這一階段保證渲染出流暢的動態視景仿真畫面,再加入相應的交互控制代碼完成各種仿真應用[11?12]。本系統中,導彈是場景中運動的物體,在Vega Prime軟件的開發環境下,每一個運動的物體都是1個控制對象,為場景中的導彈運動物體需要建立了相應的控制,要控制導彈的運動就是通過改變它的位置來實現的。在視景端,導彈需要按照預先定義的路徑運動,從而實現仿真運動效果,本文中導彈的運動數據是通過 Matlab/Simulink仿真軟件計算得到的。Vega Prime應用程序框架如圖5所示。

圖5 視覺仿真系統流程圖Fig.5 Flow chart of vision simulation system
利用Vega Prime和Creator聯合完成的視景仿真系統,提供了真實環境的沉浸感,但對于導彈這種對象的運動控制要求很高,簡單的情景再現不夠,這就需要利用Visual C++將Vega Prime和Matlab/Simulink 2種仿真軟件聯合起來,實現各自的優勢。
彈道實時參數感知仿真平臺是 1個由軟件 Vega Prime,Visual C++和Matlab相結合,采用可視化軟件Vega Prime、利用Matlab/simulink強大的計算能力和仿真能力作為后臺的實時計算平臺,它利用 Visual C++強大的接口功能實現前后平臺間的實時數據傳輸。系統原理如圖6所示。

圖6 系統原理圖Fig.6 System schematic diagram
為了實現虛擬現實仿真平臺,首先利用建模軟件Creator進行底層建模,建立模型庫,生成*.flt實體模型文件;運用Matlab/Simulink軟件強大的計算功能以及矩陣計算能力計算導彈的位姿、速度、加速度;利用Vega Prime調用*.acf文件來進行場景配置;最后,利用 Visual C++集真仿真平臺,生成*.exe可執行文件[13]。程序流程如圖7所示。

圖7 程序流程圖Fig.7 Program flow chart
在該仿真平臺下,Visual C++用于整個系統的集成;用Vega Prime軟件對仿真系統進行驅動,實現可視化仿真;用Matlab/Simulink軟件實現復雜的導彈彈道及位姿等信息的計算。采用該系統設計的仿真平臺,充分利用了Matlab/Simulink軟件豐富的數值運算和仿真功能以及Vega Prime軟件的可視化功能。同時,它結合Visual C++軟件面向對象、可視化等Windows效率和程序功能,具有明顯的優越性和通用性。
Visual C++與Matlab軟件的混合編程有以下幾種形式[14]:(1) 利用Matlab的API標準接口實現混合編程;(2) 利用Matcom實現Matlab與Visual C++的混合編程;
(3) 在Visual C++軟件中調用Matlab引擎,通過在后臺運行Matlab來實現與Visual C++軟件的混合編程;
(4) 通過調用語言編譯器和連接器,將Matlab程序編譯成Visual C++文件。
本文采用形式(4),在Matlab環境中將Matlab函數編譯成可以脫離Matlab環境運行的動態連接庫,在Visual C++環境中編寫Vega Prime應用程序,加載并調用動態連接庫,實現三者之間的無縫連接。該方法的關鍵在于對Matlab與Visual C++的接口進行編程。由于其完全脫離了Matlab環境,并提高了編程效率,因此,得到了廣泛應用。
Simulink與VC應用程序接口一個顯著的特點是Simulink仿真必須依賴于 MATLAB系統[15]。到目前為止,MATLAB提供引擎方式將Simulink與VC應用程序的編程結合起來。要通過引擎方式將Simulink與VC結合起來,首先需掌握VC與MATLAB通過引擎方式混合編程以及Simulink命令行仿真技術。
實時可視化仿真試驗平臺由控制模塊、繪圖模塊以及算法子模塊3部分構成,如圖8所示。

圖8 程序模塊圖Fig.8 Program module chart
控制模塊由Visual C++語言編寫,實現對場景以及導彈模型的選取和控制。對導彈的控制包括導彈的平移和旋轉以及在有效算法下對目標進行攻擊。同時,采用Vega Prime軟件提供的接口函數以獲取導彈運行環境的實時參數。
繪制模塊由Vega Prime應用程序編寫。由于Vega Prime軟件本身自帶了在Windows平臺下的API接口,因此,大大簡化了開發過程,縮短了開發周期,并使開發的程序具有很大的通用性。它主要用于實現對對象模型的驅動,從而實現三維仿真,并通過參數傳遞接受控制模塊的控制。
算法子模塊由 Matlab編寫,把有效算法編寫成*.m文件,經過上述操作,制作成動態鏈接庫,通過Visual C++與Matlab/Simulink的接口編程,與控制模塊之間實現參數交換,并對繪制模塊進行有效控制。
在該平臺下對某型導彈進行視景仿真試驗,運行結果如圖9和圖10所示。其中:圖9所示為導彈的爬升狀態截圖,圖10所示為仿真系統總體框架的界面圖。

圖9 導彈飛行圖Fig.9 Missile flight drawing

圖10 總界面圖Fig.10 Total interface drawing
(1) 在充分分析當前巡航導彈操作訓練所帶來的問題的基礎上,提出采用軟件VC和Vega Prime軟件開發視景仿真程序的方法,以巡航導彈虛擬仿真系統為背景,實現了用Vega Prime軟件進行視景仿真驅動。
(2) 利用Matlab/Simulink軟件建立導彈的運動仿真部分,獲取導彈各個時刻的速度、位置、加速度等,能夠對導彈的運動特性進行模擬并具有良好的移植性,可供不同的研究對象使用。結合VC和Vega Prime軟件兩者的優勢,采用面向對象的設計方法,有利于提高系統的可擴展性、重用性和可修改性。
(3) 該系統在有效算法的控制下,可以實現對導彈彈道參數、氣動力及導彈位姿參數的實時計算,并實現對導彈整個運行過程的三維實時仿真。
(4) 所研究的設計方案基于VC和Vega Prime軟件的視景仿真控制方法,對開發類似武器裝備的操作訓練系統具有一定的參考價值。
[1]古伊, 高井祥, 孫九運. 基于Creator Pro/Vega Prime的三維地形仿真技術[J]. 礦山測量, 2005(1): 27?29.GU Ying, GAO Jing-xiang, SUN Jiu-yun. Description of creator Pro/Vega Prime based three-dimensional topographic simulation techniques[J]. Mine Surveying, 2005(1): 27-29.
[2]王云翔, 趙經成, 付戰平, 等. 基于Vega Prime的視景仿真驅動技術研究[J]. 微型計算機信息, 2008, 24(3): 214?216.WANG Yun-xiang, ZHAO Jing-cheng, FU Zhan-ping, et al.Research of scene simulation drive technique based on Vega Prime[J]. Microcomputer Information, 2008, 24(3): 214?216.
[3]李亞臣, 胡健, 黎遠忠, 等. 基于Vega Prime的航天器視景仿真中的多坐標系問題[J]. 系統仿真學報, 2007, 19(3): 575?578.LI Ya-chen, HU Jian, LI Yuan-zhong, et al. Research on various coordinate systems in spacecraft visual simulation based on Vega Prime[J]. Journal of System Simulation, 2007, 19(3): 575?578.
[4]張靜瑜. 導彈彈道建模與仿真系統的設計與實現[D]. 吉林大學計算機科學與技術學院, 2009.ZHANG Jing-yu. Design and implementation of missile trajectory modeling and simulation system[D]. College of Computer Science and Technology, Jilin University, 2009.
[5]錢杏芳, 張鴻端, 林瑞雄. 導彈飛行力學[M]. 北京: 北京理工大學出版社, 2000.QIAN Xing-fang, ZHANG Hong-duan, LIN Rui-xiong. Missile flight mechanics[M]. Beijing: Beijing Institute of Technology Press, 2000.
[6]趙晶慧. 遠程空空導彈制導控制系統研究[D]. 哈爾濱工業大學航天工程系, 2007.ZHAO Jing-hui. Study on guidance control system of long range air to air missile[D]. Department of Astronautic Engineering,Harbin Institute of Technology, 2007.
[7]郝麗杰, 姚郁, 姜宇. 質量矩控制導彈的建模與仿真研究[J].系統仿真學報, 2005, 17(9): 2054?2056.HAO Li-jie, YAO Yu, JIANG Yu. Modeling and simulation research of missile based on mass moment control[J]. Journal of System Simulation, 2005, 17(9): 2054?2056.
[8]黃永安, 馬路, 劉慧敏. MATLAB7.0/Simulink6.0建模仿真開發與高級工程應用[M]. 北京: 清華大學出版社, 2005.HUANG Yong-an, MA Lu, LIU Hui-min. Modeling and simulation for development and advanced project application of MATLAB7.0/Simulink6.0[M]. Beijing: Tsinghua University Press, 2005.
[9]王欣, 姚俊, 王育欣. 基于 Matlab/Simulink的導彈三通道彈道仿真[J]. 裝備制造技術, 2007(12): 68?69.WANG Xin, YAO Jun, WANG Yu-xin. Three-channel ballistic simulation of missile based on Matlab/Simulink[J]. Equipment Manufacturing Technology, 2007(12): 68?69.
[10]CHEN Shi-neng, XU Li-mei, LI Hui. Research on 3D modeling in scene simulation based on Creator and 3dsmax[J]. Journal of Electronic Science and Technology of China, 2006, 4(2):1736?1740.
[11]ZHANG Shu-ai, TAN Guo-xin, LIANG Bo, et al. Design and implementation of real-time 3D campus scene simulation management system based on Vega[C]//International Conference on Computer Science and Software Engineering. Wuhan, 2008:1162?1165.
[12]YANG Si, LI Xiao-min, XIE Hui. UAV servicing and training system based on VR and HLA[C]//The Eighth International Conference on Electronic Measurement and Instruments. Xi’an,2007, 341?345.
[13]CHEN Gang, GAN Zhi-chun, SHENG Jian-jun, et al. Equipment simulation training system based on virtual reality[C]//International Conference on Computer and Electrical Engineering. Zhengzhou, 2008: 563?567.
[14]沈智芳, 易從艷. Visual C++與MATLAB程序的接口研究[J].電腦開發與應用, 2008(10): 824?826.SHEN Zhi-fang, YI Cong-yan, Visual C++ and MATLAB the procedure interface studies[J]. Computer Development and Applications. Zhengzhou, 2008(10): 824?826.
[15]王春民, 安海忠, 王豐貴. 基于VC和Smiulink的電力電子仿真實驗平臺設計[J]. 吉林大學學報: 信息科學版, 2008, 26(3):265?269.WANG Chun-min, AN Hai-zhong, WANG Feng-gui. Design of simulation experimental platform for power electronics based on VC and Simulink [J]. Journal of Jilin University: Information Science Edition, 2008, 26(3): 265?269.