MATLAB與VC++混合編程在懸置系統(tǒng)優(yōu)化平臺中的應用
摘 要: 首先分析了MATLAB與VC++在懸置系統(tǒng)優(yōu)化設計編程方面的優(yōu)缺點,接著闡述了懸置系統(tǒng)的優(yōu)化設計和MATCOM轉化法的基本原理,給出了求解固有特性的m文件,通過創(chuàng)建優(yōu)化平臺,結合算例和操作步驟進行混合編程,詳細地提出了一種高效的優(yōu)化設計編程方法。通過在系統(tǒng)平臺的應用,表明MATCOM轉化法混合編程能無縫結合,大大縮短了優(yōu)化設計的周期,提高了效率。
關鍵詞: MATLAB;VC++;混合編程;優(yōu)化設計;解耦
在工程計算中,多數(shù)工程的實現(xiàn)幾乎都要涉及多目標函數(shù)的優(yōu)化,常規(guī)的解決辦法是運用MATLAB或VC++軟件進行編程計算,但目前這些軟件都還存在一些不足。一方面MATLAB雖有強大的計算能力和強大的數(shù)據(jù)處理能力,但是由于程序不能脫離其MATLAB環(huán)境運行,限制了程序的通用性和應用開發(fā),不利于后續(xù)編程;另一方面Visual C++程序的代碼運行效率高,界面設置交互性也比較好,但是由于在函數(shù)計算能力方面的不足,很大程度上加大了編程人員對一般數(shù)學函數(shù)和算法的工作量。通過合適的編譯器,結合MATLAB和Visual C++混合編程能有助于界面開發(fā)和代碼重用,而且算法精確度高,可擴展性強,混合編程連接性較好[1]。
近年來隨著動力總成懸置系統(tǒng)設計工程的發(fā)展,絕大部分研發(fā)人員在系統(tǒng)設計時以系統(tǒng)的固有頻率和解耦程度為合理設計目標,運用MATLAB的GUI界面實現(xiàn)優(yōu)化面板設計,這在一定程度上可以很好地提高運算能力,但卻制約了程序升級和改進的可擴展性能力。針對這些工程問題,本文提出了一種基于MATCOM轉換法的VC++與MATLAB混合編程。傳統(tǒng)的VC++與MATLAB混合編程一般是在VC++環(huán)境下調用MATLAB編寫的函數(shù),在函數(shù)參數(shù)傳遞方面多用MATLAB編寫優(yōu)化算法函數(shù),總是將目標函數(shù)的匿名函數(shù)作為其參數(shù)之一,以此來達到優(yōu)化目標函數(shù)的目的。然而在C++語言中是不能將函數(shù)作為參數(shù)調用的,關于VC++與MATLAB混編參數(shù)調用這方面的文章也相當少,本文提出了一種解決上述參數(shù)調用的方法。由于混編后的程序可以脫離MATLAB運行,程序的速度和效率都得到了極大的提升。本文充分發(fā)揮MATCOM轉換法的優(yōu)勢,將高難度的算法研究與實際應用結合在一起,達到了程序簡潔、編程效率提高和算法更易實現(xiàn)的目的。
1 懸置系統(tǒng)優(yōu)化分析
1.1 懸置系統(tǒng)優(yōu)化原理分析
一般情況下,都是把動力總成視為剛體,同時把動力總成懸置系統(tǒng)視為有3個移動自由度和3個轉動自由度的一個空間6自由度振動系統(tǒng),對應6個模態(tài),包括前后移動模態(tài)、左右移動模態(tài)、上下移動模態(tài)、橫向轉動模態(tài)、縱向轉動模態(tài)和左右轉動模態(tài),懸置系統(tǒng)模型如圖1所示。
目前應用比較普遍的模態(tài)解耦度評價指標是用模態(tài)的能量比值概念來表示的。第j階振型中第k個自由度的振動能量占該階運動總能量的百分比可以表示為:
采用第二種MATCOM轉化法,結合算例,將MATLAB中計算函數(shù)的m文件轉化為VC++可識別的文件;接著,通過創(chuàng)建VC++工程,將所需文件加入工程目錄中。
2 VC++與MATLAB混合編程的實現(xiàn)