劉 偉,李欣益,管再升,束川良
(上海機電工程研究所,上海 201109)
高逼真度的彈道仿真能夠較為真實的模擬導(dǎo)彈在空中的飛行過程,可以預(yù)測并控制飛行試驗的風(fēng)險,是地空導(dǎo)彈設(shè)計中的一項重要任務(wù)。型號研制過程中,由于各型地空導(dǎo)彈武器系統(tǒng)戰(zhàn)技指標、攔截目標、導(dǎo)彈性能等各有不同,在彈道仿真中,出現(xiàn)了多種數(shù)學(xué)模型,彈道設(shè)計師根據(jù)數(shù)學(xué)模型編寫的彈道仿真程序各式各樣,往往花了大量時間編程,仿真結(jié)果卻不理想,彈道仿真準確度不高。同時,由于型號間彈道仿真程序不統(tǒng)一,輸入接口不一致,造成型號間彈道復(fù)核復(fù)算僅限于數(shù)學(xué)模型的檢查,無法進行真正的彈道計算。在目前型號研制任務(wù)逐漸加重、研制周期逐漸縮短、飛行任務(wù)越來越多的情況下,迫切需要一款實用、通用、方便用的彈道仿真工具,提高計算效率,節(jié)約人力、物力成本。
國內(nèi)外對彈道仿真工具的研究已有很多年,并建成了較為實用的仿真軟件,國外洛克希德馬丁公司和NASA蘭利研究中心開發(fā)了POST[1],波音公司和NASA格倫研究中心創(chuàng)建了OTIS[2],國內(nèi)西北工業(yè)大學(xué)的唐明亮、谷良賢對彈道仿真通用軟件[3]進行了探索,國防科技大學(xué)的魯中華、郭振云對彈道通用模型的建立及通用軟件設(shè)計進行了研究[4],西北工業(yè)大學(xué)龔春林、谷良賢將彈道仿真應(yīng)用在了導(dǎo)彈總體方案軟件系統(tǒng)上[5],兵器203所趙軍民、何亞娟對基于MATLAB/Simulink的彈道模塊化進行了開發(fā)[6],北京航空航天大學(xué)洪蕾[7]、南京理工大學(xué)王仲鐸、王宏波[8]在彈道仿真軟件可視化方面進行了研究。國內(nèi)外學(xué)者與開發(fā)人員進行了大量工作,但是這些仿真工具并不能直接應(yīng)用在國內(nèi)型號的彈道仿真中。根據(jù)型號特點,文中對某幾型地空導(dǎo)彈的彈道模型進行了梳理和規(guī)范,基于統(tǒng)一的仿真框架,開發(fā)了一套彈道仿真系統(tǒng)。通過界面操作或者少量的編程即可實現(xiàn)一個系統(tǒng)對多個型號進行仿真的功能,并能實現(xiàn)諸如動力系數(shù)計算、載荷計算、參數(shù)曲線實時顯示、數(shù)據(jù)快速判斷等功能,具有模塊易更換、界面易操作、實用性強的特點。
仿真系統(tǒng)采取仿真界面、仿真控制、仿真模型相對獨立的框架,層級清晰,接口明確,便于軟件的維護、升級和擴展。仿真系統(tǒng)主要框架見圖1,核心模塊包括仿真界面模塊、仿真控制模塊、仿真模型模塊,除需要完成仿真功能的核心模塊外,還增加了輔助軟件模塊。
圖1 軟件系統(tǒng)功能模塊框圖
系統(tǒng)的主要目的是實現(xiàn)多個型號的通用彈道仿真,為了實現(xiàn)通用性,系統(tǒng)在以下方面做了探索:
1)建立標準彈道數(shù)據(jù)庫。對幾個型號的彈道數(shù)據(jù)梳理后,整合了各個型號的彈道輸出文件,按照最大化原則,建立標準的彈道數(shù)據(jù)庫,并留有可擴展的空間;建立了彈道數(shù)據(jù)類,可實現(xiàn)彈道數(shù)據(jù)的統(tǒng)一管理。
2)建立標準彈道模型。針對不同的彈道模型,對模型進行再細化,建立能夠通用的標準子模型,通過多個子模型可搭建成父模型,例如不同型號制導(dǎo)規(guī)律模型不同,但都可劃分為初、中、末制導(dǎo),初制導(dǎo)模型又可細化為轉(zhuǎn)彎規(guī)律模型、姿態(tài)指令形成模型等,各型號相同的子模型可作為標準模型,放入標準模型庫,各型號有差異的子模型可作為選擇模塊,統(tǒng)一其外部接口。
3)外部數(shù)據(jù)接口標準化。彈道仿真用到很多外部數(shù)據(jù),例如質(zhì)量質(zhì)心轉(zhuǎn)動慣量、氣動模型等。外部數(shù)據(jù)一般由不同專業(yè)不同人員提供,不能直接使用,為此軟件系統(tǒng)采取封裝策略,創(chuàng)建了封裝器,使用封裝器可將各類外部數(shù)據(jù)標準化。標準化后的數(shù)據(jù)分為兩類:一是文本庫,二是動態(tài)鏈接庫。
系統(tǒng)除能進行彈道仿真外,還兼顧彈道優(yōu)化功能。系統(tǒng)可作為一個彈道計算的求解器,嵌入到ISIGHT等優(yōu)化軟件中,實現(xiàn)彈道優(yōu)化。
系統(tǒng)借助Qt工具,使用C++語言進行編程實現(xiàn),充分運用了面向?qū)ο?、繼承、多態(tài)等方法。下面對系統(tǒng)已實現(xiàn)的各個功能模塊進行簡要介紹。
建立彈道仿真模型時充分考慮了模塊易更換、接口可通用的思路,主要建立的仿真模型有:導(dǎo)彈運動學(xué)參數(shù)模型、總體參數(shù)模型、目標模型、氣動模型、自動駕駛儀模型、制導(dǎo)規(guī)律模型、相對運動模型、大氣模型、導(dǎo)彈動力學(xué)方程組模型、射向瞄準規(guī)律模型等,如圖2所示。創(chuàng)建了彈道數(shù)據(jù)類,模塊之間信息傳輸通過調(diào)用彈道數(shù)據(jù)類對象實現(xiàn)。
圖2 仿真模型
2.1.1 目標模型
目標模型用來確定目標類型、目標位置、目標速度等。防空導(dǎo)彈對付的目標均為快速移動目標,包括飛機類目標、巡航導(dǎo)彈、空地導(dǎo)彈、直升機等,根據(jù)是否機動又可分為機動目標和不機動目標。對于同一類目標,又分為兩種模型:一是根據(jù)目標運動模型計算出目標運動數(shù)據(jù);二是調(diào)用目標數(shù)據(jù)庫得到目標運動數(shù)據(jù)。
系統(tǒng)利用C++繼承、多態(tài)的特性,建立了一個目標基類“HTarget”類,并規(guī)定了基類方法,各種不同的目標均繼承自該類。
2.1.2 總體參數(shù)模型
總體參數(shù)模型用來確定彈道的輸入?yún)?shù),主要包括:導(dǎo)彈外形參數(shù)、發(fā)動機推力參數(shù)、垂直彈射參數(shù)、質(zhì)量質(zhì)心轉(zhuǎn)動慣量等。這些參數(shù)既可以通過界面直接設(shè)置,也可以通過數(shù)據(jù)庫獲取。
通過界面可以進行各種組合與參數(shù)調(diào)整,可以方便的更換發(fā)動機、質(zhì)量質(zhì)心等輸入數(shù)據(jù),根據(jù)不同的導(dǎo)彈可設(shè)置不同的輸入,可以快速的進行彈道仿真,特別是在論證初期,可通過多參數(shù)的調(diào)整使導(dǎo)彈性能達到最優(yōu)。
2.1.3 制導(dǎo)規(guī)律模塊
通常,防空導(dǎo)彈按照導(dǎo)彈飛行程序,可劃分為三個飛行階段:初制導(dǎo)、中制導(dǎo)和末制導(dǎo),在型號研制階段,還有程控指令飛行階段。軟件系統(tǒng)按照四個階段進行設(shè)計。
初制導(dǎo)規(guī)律采用傳統(tǒng)的垂直發(fā)射快速轉(zhuǎn)彎規(guī)律,通過界面可以對轉(zhuǎn)彎規(guī)律參數(shù)、初制導(dǎo)終止條件進行選擇或調(diào)整;中、末制導(dǎo)規(guī)律可選用多種導(dǎo)引規(guī)律,目前可供選擇的有修正比例導(dǎo)引規(guī)律模型和最優(yōu)導(dǎo)引律模型,可以通過界面調(diào)整比例系數(shù)和中末制導(dǎo)交班條件、末制導(dǎo)結(jié)束條件等,根據(jù)需要后續(xù)可增加其他導(dǎo)引規(guī)律;程控指令規(guī)律可以通過界面進行增添。
除了內(nèi)置的常用制導(dǎo)規(guī)律模型,系統(tǒng)還提供了自定義模型,在接口相似的情況下,支持自定義的各種制導(dǎo)規(guī)律。自定義模型采用Matlab的m文件編制而成,進行彈道仿真時軟件系統(tǒng)可自動調(diào)用Matlab軟件對m文件進行解釋,完成彈道計算。待自定義的制導(dǎo)規(guī)律模型成熟后,可對軟件系統(tǒng)進行升級,將此規(guī)律內(nèi)置在制導(dǎo)規(guī)律模型庫中。
2.1.4 射向瞄準規(guī)律模塊
射向瞄準規(guī)律模塊可計算出初制導(dǎo)滾轉(zhuǎn)到位后的導(dǎo)彈初始指向,為中末制導(dǎo)飛行創(chuàng)造有利條件。系統(tǒng)提供了三種模式:第一種模式是在型號研制初期,沒有瞄準規(guī)律模型時,通過界面指定導(dǎo)彈初始指向;第二種模式是在型號研制過程中,驗證模型的優(yōu)劣時,將模型編制成腳本程序(或m文件)嵌入到軟件中,通過彈道仿真結(jié)果對模型進行判別;第三種模式是型號已經(jīng)定型或者正在定型時,已經(jīng)固化的射向瞄準規(guī)律模型可以內(nèi)置在軟件中,通過界面選擇不同模型。
2.1.5 其他模塊
導(dǎo)彈動力學(xué)模塊有兩種彈體模型可選擇:質(zhì)點動力學(xué)模型(三自由度)、剛體動力學(xué)模型(六自由度),可設(shè)置導(dǎo)彈初始運動參數(shù)。氣動模塊和自動駕駛儀模塊均采用動態(tài)鏈接庫的形式,通過接口的標準化可實現(xiàn)不同氣動模型和自動駕駛儀模型的無縫更換。通常,不同型號的氣動模型和駕駛儀模型不同,軟件可方便的通過更換氣動和駕駛儀動態(tài)鏈接庫達到型號與模型一一對應(yīng)的目的。相對運動學(xué)模塊和大氣模塊均采用成熟的數(shù)學(xué)模型,固化在軟件中;積分模塊采用四階龍格-庫塔積分方法,氣動力、氣動力矩、角度轉(zhuǎn)換均采用飛行力學(xué)中常用的模型。
仿真界面基于Qt編寫,主要功能是為用戶提供友好的人機交互平臺,通過界面操作,可以進行仿真控制、系統(tǒng)設(shè)置、參數(shù)調(diào)節(jié)、模塊選擇、模型更改、實時圖形顯示等。2.1節(jié)中介紹的大部分仿真模型均可通過相應(yīng)的界面進行人機交互。仿真系統(tǒng)主界面如圖3所示。
圖3 仿真系統(tǒng)主界面
仿真系統(tǒng)可自由設(shè)置仿真類型(典型彈道、全空域彈道、彈道優(yōu)化等)、仿真時間、仿真步長、仿真終止條件、導(dǎo)彈飛行時間等,并能及時反饋仿真過程(如仿真各參數(shù)變化、仿真進度等)。
系統(tǒng)采用多線程控制,界面使用主線程,每一個彈道仿真過程均開辟一個工作線程,可充分利用硬件資源,并確保界面的及時響應(yīng)。
為了提高彈道仿真效率,豐富系統(tǒng)功能,開發(fā)了一些輔助模塊,例如實時顯示模塊、三維仿真模塊、腳本調(diào)試模塊、數(shù)據(jù)后處理模塊、鉸鏈力矩計算模塊、氣動特性分析模塊、動力系數(shù)分析模塊等。
其中三維仿真模塊基于OpenSceneGraph三維渲染引擎,可以對生成的彈道用三維視景仿真的形式進行表現(xiàn),仿真效果如圖4所示。
圖4 三維仿真模塊
仿真系統(tǒng)可用于多個型號的彈道仿真任務(wù),例如:典型彈道計算、全空域殺傷區(qū)計算、射程估算、制導(dǎo)規(guī)律優(yōu)化、對付多種目標條件下彈道性能計算、靶試彈道計算、鉸鏈力矩計算、動力系數(shù)計算、可用過載計算、特征點氣動特性分析等。
使用時,可通過在菜單中選擇不同型號的配置文件進行不同型號的彈道仿真。以某地空型號為例,用該系統(tǒng)進行靶試彈道仿真,同時該彈道也進行了實際的靶場飛行試驗。仿真條件為攔截虛擬平飛飛機目標,攔截點距發(fā)射點斜距125 km,攔截點海拔高度5 km,全程彈道和姿態(tài)角變化曲線與實際飛行試驗靶試彈道對比如圖5和圖6所示(其中彈道軌跡表示為北天東坐標系)。由圖5、圖6可見,仿真的彈道與靶試飛行的彈道基本重合,兩者姿態(tài)角偏差很小,仿真系統(tǒng)能較為逼真的模擬導(dǎo)彈的飛行過程,對地空導(dǎo)彈的研制起到了重要作用。
圖5 仿真與靶試彈道軌跡對比
圖6 仿真與靶試的姿態(tài)角對比
針對型號研制過程中彈道仿真的需求,開發(fā)了一套彈道仿真系統(tǒng),文中對仿真系統(tǒng)通用化、模塊化的實現(xiàn)思路進行了描述,并對各模塊的實現(xiàn)情況進行了簡要介紹。初步應(yīng)用表明,該系統(tǒng)可進行多個型號多個彈道任務(wù)的工作,顯著提高了工作效率。