摘要:本文深入分析了VC++與MATLAB兩種編程語言的特點,充分發揮了兩種語言的優點,實現混合編程。并在彈箭彈道參數相對于氣動參數的靈敏度分析過程中進行了驗證,直觀方便地利用靈敏度函數對氣動參數加以辨識,得出彈道參數模型,并進行彈道計算。
關鍵詞:編程 混合編程 靈敏度
MATLAB是一種以矩陣為基本運算單位的高效數值計算軟件,帶有功能強大的數學函數庫,并開發有多種學科領域的工具箱函數庫,廣泛地應用于科學研究與工程計算。VC++用于面向對象的可視化編程,可以完成從底層軟件直到面向用戶軟件等各種應用程序的開發。利用它提供的各種實用工具,開發者可以輕松開發出高效強大的Windows應用程序。
把MATLAB在數值計算、算法設計以及數據可視化等領域的優勢與VC++應用系統集成,不僅可以完全滿足系統在數據運算與表現方面的需求,而且還可提高系統處理的效率和穩定性,同時也減少了開發人員實現算法的困難,縮短了軟件開發的周期,提高了軟件質量,在實踐中具有很高的使用價值。
1 MLRS/M26多管火箭彈彈道
所謂彈道是指彈箭在空中飛行時,其質心所經過的路線,它是一條空間曲線。從彈箭側面看,彈道的投影如圖1所示:
利用現代控制理論、彈箭飛行動力學、數值分析、隨機過程、彈箭設計理論以及計算機仿真等理論,分析彈箭彈道參數對氣動系統靈敏度函數問題,以MATLAB和VC為操作平臺,制作用戶操作界面。
2 VC++與Matlab混合編程的優點
VC++用于面向對象的可視化編程,開發者可以輕松開發出高效強大的Windows應用程序,利用它提供的各種實用工具,可以完成從底層軟件直到面向用戶軟件等各種應用程序的開發。但在實際工程開發中,與Matlab相比:
①Matlab比VC++在數值處理分析和算法工具等方面更優異。
②MATLAB比VC++在準確方便地繪制數據圖形方面更完善。
Matlab具有強大的數值計算功能,MATLAB中提供了大量用C\C++重新編寫的Matlab庫函數,MATLAB自身存在一些缺點限制了它在更多方面的應用,主要包括初等數學函數、線形代數函數、矩陣操作函數、數值計算函數、特殊數學函數、插值函數等,這些缺點主要包括:
①容易被直接讀取,所以難以保護勞動者的成果,Matlab編寫的M文件大多是文本文件。
②它的的界面開發能力較差,難以開發出友好的應用界面。
③語言執行效率低,實時性較差,Matlab大多是一種解釋性語言。
④Matlab程序不能脫離其運行環境,可移植性差。
3 用戶操作界面
在VC環境中調用Matlab程序,制作用戶操作界面。既能夠充分利用VC建立友好的界面,又可以利用MATLAB避免編寫復雜的算法,大大提高編程效率。用戶可以根據需要,直接輸入參數的初始值,點擊畫圖按鈕就可以模擬出在此彈道參數下的彈丸運動軌跡,具有可重復性,給用戶研究提供了方便。
為方便用戶研究問題,設計了用戶操作界面??紤]到軟件的通用性可重復性,應面向所有初始發射條件下的彈箭,從而定義了視圖類進行初始發射條件數據和飛行條件數據的輸入,能夠非常靈活地進行各種數據的處理。程序設計時,采用了面向對象的程序設計方法,為軟件功能的進一步完善奠定了基礎。
參考文獻:
[1]錢杏芳.導彈飛行力學.北京:北京理工大學出版社,2003.
[2]周鳴揚.Visual C++界面編程技術.北京:北京希望電子出版社,2003.
[3]劉志儉,潘獻飛.MATLA外部程序接口(6.X).北京:科學出版社,2002.
[4]董維國.MATLA7.X混合編程.北京:機械工業出版社,2006.
作者簡介:
張可菊,(1978-),女,遼寧沈陽人,講師,研究方向為控制理論與控制工程。