許飛,袁杰波,田若思,丁小芩,榮婉婷
(1.上海機(jī)電工程研究所,上海 201109;2.哈爾濱工業(yè)大學(xué),黑龍江 哈爾濱 150001)
常見的導(dǎo)彈初始對準(zhǔn)方法有自對準(zhǔn)、靜基座對準(zhǔn)、動基座對準(zhǔn)等,隨著有移動發(fā)射需求的空空導(dǎo)彈、地空導(dǎo)彈、空地導(dǎo)彈的加速發(fā)展,應(yīng)用于各種場景下的動基座對準(zhǔn)方法成為了研究熱點[1]。相較于其他的對準(zhǔn)方法,動基座對準(zhǔn)需要外部信息進(jìn)行輔助,且外部信息和子慣導(dǎo)信息都隨環(huán)境變化[2],對準(zhǔn)工作時序復(fù)雜,對準(zhǔn)和導(dǎo)航過程中需監(jiān)測的量時間分布較為分散,因此,桌面級動基座對準(zhǔn)性能測試無法覆蓋系統(tǒng)動態(tài)的過程。基于桌面測試環(huán)境下,對飛控軟件狀態(tài)驗證不到位,只能帶著問題系統(tǒng)聯(lián)調(diào),增加了系統(tǒng)級問題分析復(fù)雜性和飛控軟件反復(fù)次數(shù),導(dǎo)彈研制進(jìn)度較慢。本文針對動基座對準(zhǔn)特性和桌面測試現(xiàn)狀,整合現(xiàn)有測試流程,基于MFC,Matlab技術(shù),研制了飛控動基座對準(zhǔn)性能桌面測試系統(tǒng),實現(xiàn)首次收斂時間測試、收斂品質(zhì)測試、導(dǎo)航誤差測試等功能,且具備擴(kuò)展能力,通過適應(yīng)性更改軟件,對各型飛控動基座軟件進(jìn)行桌面測試,實現(xiàn)測試平臺通用化[3]。
動基座對準(zhǔn)需要配備主慣導(dǎo)和子慣導(dǎo)2個系統(tǒng)進(jìn)行傳遞對準(zhǔn),它是一種特殊的對準(zhǔn)方式,由外部信息(主慣導(dǎo))輔助,導(dǎo)彈上的子慣導(dǎo)利用已對準(zhǔn)好的主慣導(dǎo)信息進(jìn)行對準(zhǔn)校正。主慣導(dǎo)傳遞給子慣導(dǎo)的姿態(tài)、速度、位置等信息,由于安裝誤差、載體形變等因素[4],存在一定的失準(zhǔn)角,需要動基座對準(zhǔn)的數(shù)學(xué)模型通過一定的濾波方式估計失準(zhǔn)角,對子慣導(dǎo)系統(tǒng)的姿態(tài)進(jìn)行修正[5]。動基座對準(zhǔn)的性能可通過如下測試進(jìn)行評判。
飛控軟件中有動基座對準(zhǔn)實時收斂標(biāo)志字、周期性重置濾波器后收斂標(biāo)志字、運行過程中從未收斂標(biāo)志字,桌面測試平臺通過監(jiān)測實時收斂標(biāo)志字首次置1的時間,即可得知導(dǎo)彈動基座對準(zhǔn)首次收斂的時間[6]。在收斂品質(zhì)一樣時,首次收斂時間越小越好。
飛控動基座對準(zhǔn)分支運行一拍后,姿態(tài)角會被刷新,桌面測試系統(tǒng)監(jiān)測導(dǎo)彈姿態(tài)角第1次變?yōu)榉?,記為動基座開啟時間。飛控軟件運行過程中,會有導(dǎo)彈運行狀態(tài)返回,桌面測試系統(tǒng)監(jiān)測該狀態(tài)字可得知飛控動基座對準(zhǔn)工作時序是否運行正常。
取導(dǎo)彈狀態(tài)變量為
X=(δvn,δve,?n,?u,?e).
(1)
狀態(tài)方程為
(2)
式中:F為狀態(tài)轉(zhuǎn)移矩陣;W為系統(tǒng)噪聲陣。
觀測方程為
Z=HX+V,
(3)
式中:
(4)
濾波過程如下:
P=ΦPΦT+Qk,
(5)
K=PHT[HPHT+R]-1,
(6)
X=ΦX+K[Z-HΦX],
(7)
P=[I-KH]P[I-KH]T+KRKT.
(8)
在重置濾波器前,失準(zhǔn)角誤差矩陣P中的敏感值絕對值應(yīng)該有變小趨勢且趨于穩(wěn)定,查看失準(zhǔn)角標(biāo)準(zhǔn)差判定導(dǎo)彈動基座對準(zhǔn)品質(zhì)[7]。
模擬發(fā)控通訊封鎖后,給飛控裝訂初始導(dǎo)航參數(shù),飛控根據(jù)動基座對準(zhǔn)結(jié)果開始捷聯(lián)解算,模擬IMU以封鎖時刻的姿態(tài),保持靜止、靜止情況加高斯白噪聲的狀態(tài)下導(dǎo)航100 s,分別判斷導(dǎo)彈飛行的距離,測試導(dǎo)彈導(dǎo)航誤差[8],導(dǎo)航誤差越小越好。
飛控動基座對準(zhǔn)性能桌面測試系統(tǒng)由硬件和軟件2部分組成,硬件包括:飛控設(shè)備、電氣轉(zhuǎn)接箱、模型計算機(jī)、模擬發(fā)控計算機(jī)、電源、配套電纜,軟件平臺包括模型機(jī)軟件、模擬發(fā)控軟件、遙測接收分析軟件。桌面測試系統(tǒng)總體方案框圖如圖1所示。
圖1 桌面測試系統(tǒng)總體方案框圖Fig.1 Desktop test system overall solution block diagram
電氣轉(zhuǎn)接箱通過2根測試總線與飛行控制設(shè)備相連,完成飛控的供電和各個外設(shè)的連接;與模型機(jī)設(shè)備通過2路422總線連接,完成飛行過程中慣測量和導(dǎo)引頭的模擬數(shù)據(jù)收發(fā);與模擬發(fā)控設(shè)備通過1路422總線連接,模擬發(fā)射裝置的發(fā)控流程,完成導(dǎo)彈初始參數(shù)裝訂;模型基設(shè)備和模擬發(fā)控設(shè)備之間通過1路422總線連接,完成同步信號的收發(fā),使得裝訂數(shù)據(jù)與慣測量的變化同步;除飛控以外的各個設(shè)備外界交流電源進(jìn)行供電。本文重點介紹軟件平臺。
2.2.1 軟件功能概述
根據(jù)系統(tǒng)功能定義,充分考慮多平臺融合、簡化使用流程和強實時性的需求,選用MFC作為軟件開發(fā)平臺,Matlab數(shù)字仿真過程封裝成dll庫作為被調(diào)用對象,連接SQL數(shù)據(jù)庫產(chǎn)生供桌面仿真使用的目標(biāo)數(shù)據(jù)。MFC是微軟提供的基于C++語言的軟件開發(fā)基礎(chǔ)類庫,支持圖形、接口通信、數(shù)據(jù)庫、多線程等高級開發(fā)應(yīng)用,便于設(shè)計人員二次開發(fā)[9]。Matlab擁有豐富的優(yōu)化、計算工具,擅長于做復(fù)雜的矩陣運算。MFC和Matlab之間的混合編程,將綜合MFC可視化編程和Matlab數(shù)值計算的優(yōu)勢[10],提高桌面測試系統(tǒng)軟件的開發(fā)效率,縮短研發(fā)周期。同時,規(guī)定好dll庫的調(diào)用接口后,不同型號間只需更換數(shù)字仿真過程即可測試,易于實現(xiàn)開發(fā)平臺的通用化。軟件整體框架如圖2所示。
2.2.2 軟件設(shè)計要求
桌面測試系統(tǒng)軟件根據(jù)配置的導(dǎo)彈發(fā)射裝置初始位置和姿態(tài)、轉(zhuǎn)動角速度、運行速度、桿臂長度、封鎖發(fā)控時間、模擬飛行時間、是否有高斯白噪聲,實時仿真模擬發(fā)控和模擬IMU的輸出全過程,生成2個獨立的數(shù)據(jù)庫,供模擬發(fā)控和模擬IMU調(diào)用。模擬發(fā)控動態(tài)完成飛控參數(shù)裝訂,模擬IMU實時輸出導(dǎo)彈的慣測數(shù)據(jù),測試飛控動基座對準(zhǔn)軟件功能和性能。具體軟件功能要求如下:
圖2 測試平臺軟件執(zhí)行框圖Fig.2 Test platform software execution block diagram
(2) 仿真初始化:響應(yīng)仿真初始化命令,Matlab讀入界面配置的仿真參數(shù),實現(xiàn)系統(tǒng)資源分配、創(chuàng)建仿真進(jìn)程、初始化輸出文件。
(3) 仿真進(jìn)程調(diào)度:響應(yīng)仿真開始、仿真結(jié)束等界面控制命令,完成主慣導(dǎo)、子慣導(dǎo)運動姿態(tài)和位置等參數(shù)的動態(tài)仿真[12]。
(4) 數(shù)據(jù)庫文件生成:將主慣導(dǎo)、子慣導(dǎo)動態(tài)仿真出的數(shù)據(jù)按指定格式存進(jìn)數(shù)據(jù)庫。
(5) 人機(jī)界面交互:實時顯示發(fā)射裝置和導(dǎo)彈狀態(tài),響應(yīng)人機(jī)交互設(shè)置、發(fā)射裝置運行狀態(tài)參數(shù)設(shè)置。
(6) 數(shù)據(jù)加載:點完開始測試按鈕,模擬發(fā)控和模擬IMU軟件需要實時加載仿真生成的數(shù)據(jù)庫,按照指定的周期逐行給飛控發(fā)送數(shù)據(jù)。
(7) 通信同步:根據(jù)作戰(zhàn)時發(fā)控、IMU與飛控通信的真實時序,同步兩者首次與飛控建立通信的時間。
(8) 長時穩(wěn)定通信:模擬發(fā)控和模擬IMU軟件要嚴(yán)格按照配置的周期、封鎖時間與導(dǎo)彈飛控進(jìn)行長時間的422總線通信。
(9) 數(shù)據(jù)記錄與分析:測試開始后實時記錄飛控的遙測數(shù)據(jù),對測試敏感信息進(jìn)行分析,得出結(jié)論。
我國的產(chǎn)融結(jié)合呈現(xiàn)三大特點:一是結(jié)合方向單向性,因現(xiàn)行金融法規(guī)限制,我國都是產(chǎn)業(yè)資本向金融資本單向流動;二是結(jié)合方式多樣性,受各地市場發(fā)展不平衡、企業(yè)發(fā)展階段不一致影響,我國從初級的產(chǎn)融結(jié)合到系統(tǒng)的金融控股公司均存在;三是運作主體規(guī)范性,我國幾乎是大型企業(yè)、龍頭企業(yè)、優(yōu)勢企業(yè)先行開展產(chǎn)融結(jié)合業(yè)務(wù)。
(10) 異步多線程執(zhí)行:將硬件通信、數(shù)據(jù)處理、人機(jī)界面刷等新分別建立線程,提高CPU利用效率。
2.2.3 關(guān)鍵設(shè)計說明
針對圖2的軟件整體執(zhí)行框圖,重點介紹Matlab操作SQL數(shù)據(jù)庫、MFC程序調(diào)用Matlab仿真生成的dll、模擬發(fā)控和模擬IMU通信同步、周期控制、多線程異步執(zhí)行。
(1) Matlab要連接數(shù)據(jù)庫,必須使用JDBC/ODBC Bridge。用C/C++語言將JDBC調(diào)用轉(zhuǎn)換為ODBC APIS,送給待訪問的數(shù)據(jù)庫對應(yīng)的ODBC驅(qū)動程序,其連接過程如圖3所示[13]。Matlab對數(shù)據(jù)庫SQL的操作,可以先獲取數(shù)據(jù)庫句柄,然后調(diào)用Matlab函數(shù)進(jìn)行操作,Matlab常用的數(shù)據(jù)庫操作有exec,ping,insert,close,database,get,set,update,rows,cols等[14]。Matlab程序界面通過設(shè)置數(shù)據(jù)庫保存路徑、文件名、用戶名、密碼、仿真時間(封鎖時間)即可得到目標(biāo)數(shù)據(jù)庫。此外,由于數(shù)據(jù)庫訪問具有遠(yuǎn)程訪問功能,可直接將數(shù)據(jù)庫保存到各自待運行的仿真宿主機(jī)上,實現(xiàn)了仿真軟件多臺運行機(jī)器之間的一體化操作。
(2) Matlab可編寫2種m文件:腳本文件、函數(shù)文件。腳本文件由一系列變量和函數(shù)組成,沒有輸入輸出參數(shù),可直接運行,但無法被轉(zhuǎn)換為dll。而函數(shù)文件擁有輸入輸出參數(shù)和返回值,只需給待調(diào)用的腳本文件加一個函數(shù)名,通過Matlab代碼編譯器mcc創(chuàng)建基于C/C++的dll,本測試系統(tǒng)軟件采用函數(shù)文件編寫Matlab數(shù)字仿真過程,實現(xiàn)dll轉(zhuǎn)換較為方便[15]。MFC程序調(diào)用Matlab代碼生成的dll,可選用Matlab開發(fā)平臺提供的mbuild工具編譯鏈接,也可在IDE開發(fā)環(huán)境下使用MSVC工具來編譯鏈接。考慮到軟件的可繼承性、通用性的原則,本測試系統(tǒng)軟件選用MSVC,在VC中添加Matlab安裝路徑和Lib路徑,編寫調(diào)用dll的驅(qū)動代碼,即可完成MFC程序調(diào)用數(shù)字仿真生成的dll。
(3) 動態(tài)測試系統(tǒng)要想讓發(fā)控裝訂的戰(zhàn)車信息和模型機(jī)產(chǎn)生的慣測數(shù)據(jù)達(dá)到動態(tài)匹配,必須使2個軟件在時間上達(dá)到同步。因此,模型機(jī)開啟后先給模擬發(fā)控發(fā)送4字節(jié)同步幀,收到回復(fù)后再給飛控發(fā)送格式如表1所示的數(shù)據(jù)幀。模擬發(fā)控軟件啟動后,循環(huán)檢測同步字節(jié),匹配后才給飛行控制設(shè)備發(fā)送運行令。在實際測試時,先打開模擬發(fā)控軟件,然后打開模型機(jī)軟件,動態(tài)測試軟件的操作流程如圖4所示。
圖3 Matlab與數(shù)據(jù)庫連接Fig.3 Matlab and database connection
表1 模型機(jī)422通信格式Table 1 Model machine 422 communication format
圖4 動態(tài)測試軟件操作流程Fig.4 Dynamic test software operation process
(4) 桌面仿真軟件與飛控的RS-422通信都是按照固定的周期進(jìn)行的,具體周期控制流程圖如圖5所示。進(jìn)入循環(huán)發(fā)送之前記下上一拍計數(shù)器的拍數(shù),然后實時比對當(dāng)前計數(shù)器的拍數(shù),直到達(dá)到分頻后的頻率值再進(jìn)行RS-422通信,更新上一拍的拍數(shù)到當(dāng)前拍數(shù)。在示波器上觀測分頻后RS-422通信頻率,用1 ms的延時函數(shù)修正周期差值。對于模擬IMU軟件,定時部分建在RS-422發(fā)送進(jìn)程中。對于模擬發(fā)控軟件,定時部分建在發(fā)控流程線程中。
圖5 仿真軟件周期控制流程圖Fig.5 Simulation software cycle control flow chart
(5) 考慮桌面測試系統(tǒng)軟件涉及到RS-422的收發(fā)通信、模型解算、發(fā)控流程處理、窗口顯示刷新等速率不一的流程,若程序采用單線程順序執(zhí)行,CPU大部分時間都在死等,窗口將不能流暢的更新狀態(tài)。因此,軟件采用異步多線程方式進(jìn)行編程,采用如圖6的模擬IMU結(jié)構(gòu)圖和如圖7的模擬發(fā)控結(jié)構(gòu)圖。
為了驗證測試仿真平臺的正確性,選擇了成熟的飛控軟件和數(shù)字仿真原Matlab代碼,仿真測試導(dǎo)彈靜止發(fā)射和以20 m/s勻速前進(jìn)發(fā)射的情況。測試結(jié)果顯示,首次收斂時間均小于5 s,在失準(zhǔn)角值趨于穩(wěn)定前一段時間值較大,是由于卡爾曼濾波還未收斂,屬于正?,F(xiàn)象。首次收斂前,靜止發(fā)射時北向、東向失準(zhǔn)角標(biāo)準(zhǔn)差為0.041°,0.039°,勻速前進(jìn)發(fā)射兩向失準(zhǔn)角均方差為0.076°,0.059°,2種方式的100 s靜止導(dǎo)航誤差均小于60 m,與系統(tǒng)聯(lián)調(diào)結(jié)果符合,見圖8,9。
圖6 模型機(jī)結(jié)構(gòu)圖Fig.6 Model machine structure diagram
圖7 模擬發(fā)控結(jié)構(gòu)圖Fig.7 Analog control structure diagram
圖8 靜止發(fā)射失準(zhǔn)角Fig.8 Static emission misalignment angle
圖9 勻速前進(jìn)發(fā)射失準(zhǔn)角Fig.9 Uniform forward launch misalignment angle
本文以動基座對準(zhǔn)研究為背景,提出了一種飛控動基座對準(zhǔn)性能桌面測試系統(tǒng)設(shè)計,并對測試方法、系統(tǒng)設(shè)計方案進(jìn)行探討,得出測試結(jié)論。在系統(tǒng)軟件設(shè)計方面,分別對軟件功能、設(shè)計要求、關(guān)鍵設(shè)計進(jìn)行介紹,通過MFC調(diào)用Matlab生成的數(shù)字仿真dll實現(xiàn)平臺通用化。相較于傳統(tǒng)的桌面靜態(tài)測試系統(tǒng),此桌面測試系統(tǒng)能夠仿真導(dǎo)彈發(fā)射的動態(tài)過程,對飛控軟件動基座功能和性能的驗證更全面,提高了飛控軟件研制效率,降低系統(tǒng)調(diào)試成本,在涉及桌面動態(tài)仿真驗證領(lǐng)域具有較高的應(yīng)用價值。