集成Matcom環(huán)境下的傳動(dòng)系扭振分析系統(tǒng)求解器開發(fā)
時(shí)間:2008-03-13 17:37:00來(lái)源:lijuan
導(dǎo)語(yǔ):?傳動(dòng)系扭振動(dòng)力學(xué)微分方程組數(shù)值求解過(guò)程中包含大量的矩陣計(jì)算,提出采用Vc++下集成Matcom環(huán)境混合編程開發(fā)求解器的方法
摘 要:針對(duì)傳動(dòng)系扭振動(dòng)力學(xué)微分方程組數(shù)值求解過(guò)程中包含大量的矩陣計(jì)算,提出采用Vc++下集成Matcom環(huán)境混合編程開發(fā)求解器的方法,并用該求解器對(duì)某車傳動(dòng)系扭振的特征值和特征向量進(jìn)行實(shí)例計(jì)算,計(jì)算結(jié)果與測(cè)試及與Amesim中的比較表明,所得結(jié)論正確可信。同采用Vc++編程方法求解相比,引入matcom,可以提高程序執(zhí)行效率,縮短軟件開發(fā)的時(shí)間。
關(guān)鍵詞:傳動(dòng)系扭振特征值Matcom
引言
由于工作需要,筆者開發(fā)了一套用于計(jì)算車輛扭振特性的分析軟件— — “車輛扭振分析與計(jì)算系統(tǒng)”。該軟件是一個(gè)可視化傳動(dòng)系扭振建模分析計(jì)算工具,它從車輛的實(shí)際需要出發(fā),考慮傳動(dòng)系的特點(diǎn),運(yùn)用面向?qū)ο缶幊碳夹g(shù),能夠?yàn)閭鲃?dòng)系的扭轉(zhuǎn)振動(dòng)計(jì)算、剛強(qiáng)度校核、聯(lián)軸器選型以及整車性能匹配等提供依據(jù)。
車輛傳動(dòng)系實(shí)際上是一個(gè)復(fù)雜的齒輪傳動(dòng)系統(tǒng),上述車輛傳動(dòng)扭振分析系統(tǒng)在分析軸系的扭轉(zhuǎn)振動(dòng)時(shí)采用集中質(zhì)量模型,按照扭轉(zhuǎn)振動(dòng)的特點(diǎn),分解為發(fā)動(dòng)機(jī)模塊、變速箱模塊(包括定軸輪系和行星排模塊)、聯(lián)軸器模塊、耦合器模塊等幾個(gè)傳動(dòng)系中常見(jiàn)分系統(tǒng),經(jīng)過(guò)簡(jiǎn)單的拖拉操作即可搭建完整的車輛傳動(dòng)系扭振分析模型,并且自動(dòng)組裝動(dòng)力學(xué)微分方程中常系數(shù)項(xiàng),在計(jì)算機(jī)中求解其各階固有頻率和主振型,從而完成對(duì)車輛傳動(dòng)系統(tǒng)的扭轉(zhuǎn)振動(dòng)分析。
作為該軟件的求解器部分,其求解穩(wěn)定性和可信度是最值得關(guān)心的內(nèi)容。眾所周知,分析離散系統(tǒng)無(wú)阻尼振動(dòng)問(wèn)題的模態(tài)時(shí),扭轉(zhuǎn)振動(dòng)動(dòng)力學(xué)微分方程可以統(tǒng)一表述為

式中
[J]——轉(zhuǎn)動(dòng)慣量矩陣,采用集中質(zhì)量模型時(shí)產(chǎn)生的轉(zhuǎn)動(dòng)慣量系數(shù)矩陣一般為正定對(duì)角陣
[K]——?jiǎng)偠认禂?shù)矩陣,典型的傳動(dòng)系分枝軸系簡(jiǎn)化模型產(chǎn)生的剛度系數(shù)矩陣一般為正定或半正定稀疏三對(duì)角陣。
{0}——廣義坐標(biāo)向量,即為系統(tǒng)中的獨(dú)立坐標(biāo)數(shù)目,剛度矩陣和轉(zhuǎn)動(dòng)慣量矩陣都
是與之維數(shù)相同的方陣對(duì)于時(shí)不變線性常系數(shù)微分方程的數(shù)值解法相關(guān)書中已有許多介紹,l這里不作詳細(xì)的解釋??梢韵胍?jiàn)的是,在該微分方程數(shù)值解法過(guò)程中涉及大量的矩陣運(yùn)算,如矩陣四則運(yùn)算、提取某一列或者行構(gòu)成新的向量等等,這些操作在Vc++中并沒(méi)有默認(rèn)的相應(yīng)函數(shù),欲實(shí)現(xiàn)上述操作必須編寫類庫(kù)實(shí)現(xiàn)對(duì)操作符的重載,另外考慮剛度矩陣的稀疏性,對(duì)內(nèi)存的管理也需要編寫相應(yīng)的代碼,這都加重了編程的負(fù)擔(dān):實(shí)際上,工程人員熟知的Matlab軟件可以輕易解決這些問(wèn)題:Matlab作為一款專用數(shù)值計(jì)算軟件,在矩陣運(yùn)算上較c等有相當(dāng)?shù)膬?yōu)勢(shì)。但是,無(wú)論采用Matlab編寫的二次開發(fā)程序還是Vc++下調(diào)用Matlab引擎編寫的應(yīng)用程序都不能脫離Matlab的環(huán)境,也就是說(shuō)使用者必須安裝有Matlab軟件,這是很不經(jīng)濟(jì)的,也根本沒(méi)有必要。采用集成Matcom協(xié)同Vc++混合編程的方法,既能運(yùn)用Matlab的強(qiáng)大矩陣計(jì)算功能解決數(shù)值計(jì)算中的矩陣問(wèn)題,又能發(fā)布獨(dú)立的應(yīng)用程序,使用者不用再在安裝有Matlab的平臺(tái)上使用,可以完全脫離Matlab的束縛。
l Matcom介紹及其安裝方法
Matcom是Math Works公司出品的Mathtools組件之一,可用于Matlab的M文件的C++自動(dòng)轉(zhuǎn)化=在數(shù)字運(yùn)算中,采用c代碼的應(yīng)用程序和采用Matlab的m 文件執(zhí)行速度相比,可以大幅減少仿真時(shí)間和內(nèi)存需求。Matcom可以生成MEX文件,可產(chǎn)生用于Excel和Visual Basic的動(dòng)態(tài)連接庫(kù)或者應(yīng)用到獨(dú)立的C++應(yīng)用程序。Matcom擁有專用的矩陣算法庫(kù)(Mattix
),包含了Matlab中超過(guò)60O個(gè)函數(shù)的常用函數(shù),封裝在獨(dú)立的DLL中,Window應(yīng)用程序或自開發(fā)程序都可以調(diào)用,并且產(chǎn)生的可執(zhí)行文件相當(dāng)?shù)男。瑘?zhí)行效率相當(dāng)?shù)母?,可以?yīng)用于線性代數(shù)、多項(xiàng)式、信號(hào)處理等方面工程計(jì)算中,同時(shí)具備文件輸入輸出流,圖形可視化功能和強(qiáng)大的后處理功能。
Matcom中的矩陣類庫(kù)包含在Matrix、Ma—triXL、MatrixVB下,其中MatriXL是對(duì)Microsoft Excel提供的矩陣類庫(kù),MatrixVB是對(duì)Microsoft Visual Basic提供的矩陣類庫(kù)。在這里不作討論。下面簡(jiǎn)單介紹Ma—trix整合到Vc++中去的過(guò)程,以Microsoft Vi—sual C++6.0為例:
[第一步] 將編譯好的“v4501v.1ib”文件加入到工程中去,通常在Matcom的安裝目錄下的Lib文件夾里。
[第二步] 包含“matlib.h”頭文件,如“#include”建議盡量放在調(diào)用Matcom的類的頭文件下,否則在使用過(guò)程中可能會(huì)和其它類庫(kù)發(fā)生沖突。
[第三步] 設(shè)定庫(kù)函數(shù)編譯目錄,如:Project Settings/C,C++ Preprocessor/Additional include directories。在框中加入⋯ \matcom45\lih目錄。
[第四步] 在調(diào)用的地方加上初始化類庫(kù)的語(yǔ)句,如
int main()
{
initM(MATCOM.VERSION);
//在這里填入你的代碼
exitM();
return 0;
}
經(jīng)過(guò)以上步驟就可以將Matcom集成到Vc++中去,矩陣的運(yùn)算將變得非常簡(jiǎn)單。比如定義如下矩陣A ,B:
Mm A,B;
要實(shí)現(xiàn)矩陣A和B相加只需要“A+B”即可?;镜暮瘮?shù)、操作可以查看Matcom的幫助,建議直接查看Matlab的幫助,兩者有許多的相同的地方,可以說(shuō)在矩陣運(yùn)算等方面,Matcom可以完全替代Matlab的功能。
2 工程實(shí)例應(yīng)用
按照以上步驟建立起Matcom環(huán)境后,就可以編寫自己的求解程序了。下面對(duì)參考文獻(xiàn)[2]中CA1150PK2L2T型載重貨車發(fā)動(dòng)機(jī)與傳動(dòng)系統(tǒng)的扭轉(zhuǎn)振動(dòng)當(dāng)量系統(tǒng)進(jìn)行動(dòng)力學(xué)求解,其傳動(dòng)系簡(jiǎn)圖、系統(tǒng)的當(dāng)量轉(zhuǎn)動(dòng)慣量、當(dāng)量剛度值在文獻(xiàn)[2]中詳細(xì)列出,這里限于篇幅,不再轉(zhuǎn)述。作為計(jì)算結(jié)果、精度的一個(gè)對(duì)比,以反應(yīng)Matcom集成環(huán)境下矩陣計(jì)算的可信度和精度,本文只將文獻(xiàn)[2]中3檔變速工況下傳動(dòng)系扭轉(zhuǎn)振動(dòng)分析結(jié)果做一個(gè)對(duì)比。該傳動(dòng)系可在“車輛扭振分析與計(jì)算系統(tǒng)”中建模,按照文中簡(jiǎn)化為24個(gè)集中轉(zhuǎn)動(dòng)慣量單元和23個(gè)軸當(dāng)量彈性元件構(gòu)成的多分枝當(dāng)量扭振模型,其中J1~J10為發(fā)動(dòng)機(jī)部分,如曲軸、活塞、減震器等簡(jiǎn)化的10個(gè)當(dāng)量轉(zhuǎn)動(dòng)慣量。在“車輛扭振分析與計(jì)算系統(tǒng)”中建模時(shí),主要采用了發(fā)動(dòng)機(jī)模塊和軸段扭轉(zhuǎn)單元。所建模型如圖1所示。
另外,筆者為了驗(yàn)證計(jì)算結(jié)果的正確性,除了同原文章中的計(jì)算結(jié)果做了比較外,還在機(jī)、電、液一體化大型仿真軟件Amesim中計(jì)算了該車在變速器3檔工況下的扭振固有頻率,一并列表,如表1。
3 計(jì)算結(jié)果對(duì)比與誤差分析
從表1對(duì)比可以看出,結(jié)果同文獻(xiàn)[2]符合的較好,但中間第2、3、4階固有頻率在文獻(xiàn)[2]中沒(méi)有列出;另外,可以看出同Arnesim的計(jì)算結(jié)果相比,還是相當(dāng)精確的?,F(xiàn)將結(jié)果對(duì)比的結(jié)論和誤差分析歸納于下
① 對(duì)于第一階的固有頻率,三個(gè)結(jié)果都比較接近,在文獻(xiàn)[2]中提到,在該車3擋變速傳動(dòng)系單結(jié)點(diǎn)扭轉(zhuǎn)振動(dòng)的固有頻率下,節(jié)點(diǎn)在貫通軸上?,F(xiàn)在將本文計(jì)算結(jié)果的一階主振型做圖,如圖2所示。可以看到節(jié)點(diǎn)發(fā)生在J17~J19之間,查閱文獻(xiàn)[2]可知,結(jié)點(diǎn)正是發(fā)生在貫通軸上,說(shuō)明第一階固有頻率和主振型的計(jì)算是有效的。
② 第二階和第三階固有頻率在文獻(xiàn)[2]中并沒(méi)有列出,但與Amesim對(duì)比可以發(fā)現(xiàn),該固有頻率是存在的,并且第二階和第三階固有頻率應(yīng)當(dāng)是相等的,即發(fā)生了重頻,在這種情況下,對(duì)同一頻率存在兩種振型。
③ 為了進(jìn)一步驗(yàn)證重頻發(fā)生的可能性,將原有模型作一個(gè)修改,即將J14、J19、J20這幾個(gè)轉(zhuǎn)動(dòng)慣量刪除,構(gòu)成兩支完全對(duì)稱的分枝軸系,即除去了前后橋傳動(dòng)軸的影響,只直接連接上對(duì)稱車輪部分總成。這樣構(gòu)成的分支軸系由于其對(duì)稱性,應(yīng)當(dāng)會(huì)出現(xiàn)重頻現(xiàn)象,在“車輛扭振分析與計(jì)算系統(tǒng)”建模后如圖3所示。
同樣在Amesim和“車輛扭振分析與計(jì)算系統(tǒng)”軟件中計(jì)算,將計(jì)算結(jié)果列如表2。
從表2可以看出,重頻仍然發(fā)生在第二階和第三階固有頻率,這主要原因是因?yàn)镴14、J19、J20同車輪部分J17,J18,J23,J24相比較小,因此對(duì)其低階振型影響
不大,同原來(lái)傳動(dòng)系固有頻率相比,基本上只少了第6階的固有頻率。因此可以判斷,由于該車輛的車輪總體部分在固有頻率影響因素里占了主要因素,就出現(xiàn)了上述的重頻現(xiàn)象。
① 可以從圖3看出在文獻(xiàn)[2]中考慮的節(jié)點(diǎn)數(shù)主要計(jì)及在J19貫通軸前的主貫通軸(即J17~J19這一段)上的節(jié)點(diǎn)數(shù),而前四階振型節(jié)點(diǎn)都發(fā)生在J17~J19之間,說(shuō)明前四階振型都為單節(jié)點(diǎn),文獻(xiàn)[2]可能考慮到固有頻率值相差不大,并且節(jié)點(diǎn)發(fā)生處基本上位于同一塊區(qū)域,因此并未列出其余單節(jié)點(diǎn)的固有頻率值。
⑤ “車輛扭振分析與計(jì)算系統(tǒng)”在計(jì)算該傳動(dòng)系固有頻率時(shí),選用的具體算法為矩陣迭代法。在系統(tǒng)中有固有頻率相等情況下,矩陣迭代法會(huì)依次計(jì)算出這幾個(gè)相等的固有頻率,并且這些固有頻率對(duì)應(yīng)的主坐標(biāo)是互相正交的。從圖3中可以看出來(lái),當(dāng)?shù)诙A主振型達(dá)到最大值時(shí),第三階主振型基本保持在最小值,即最低點(diǎn)上,舍去誤差造成的結(jié)果,基本上是一對(duì)正交振型,從而進(jìn)一步驗(yàn)證了該車輛傳動(dòng)軸系存在相等固有頻率的結(jié)論。
⑥ 矩陣迭代法是一種設(shè)定初始迭代值,重復(fù)迭代以期得到在誤差允許范圍內(nèi)的精確值的數(shù)值解法,其每次迭代的誤差會(huì)依次累積到下一結(jié)果中去,比較文獻(xiàn)[2]中第6節(jié)點(diǎn)和Amesim中算出的第9階固有頻率值,可見(jiàn)誤差比較大。有經(jīng)驗(yàn)的用戶通過(guò)可以設(shè)定初始迭代矩陣,以及迭代矩陣法對(duì)于半正定矩陣的所設(shè)定校正值可以減少這種由于迭代產(chǎn)生的誤差,或者選用別的數(shù)值計(jì)算方法求解,如目前大型軟件常用的IAanczos方法。
4 結(jié)論
綜上所述,“車輛扭振分析與計(jì)算系統(tǒng)”求解器的開發(fā)采用了在Vc++下集成Matcom混合編程的方法,求解了某車傳動(dòng)系扭振動(dòng)力學(xué)微分方程的特征值和特征向量,方法可行,結(jié)果準(zhǔn)確。實(shí)際上還可以推廣到求解在外力作用下的響應(yīng)等其它問(wèn)題,這只是在程序算法上的不同。另外,應(yīng)用Matcom的強(qiáng)大繪圖函數(shù),還可以方便的調(diào)用繪圖函數(shù)繪制振型圖等。應(yīng)用了集成Matcom技術(shù)混合編程開發(fā)“車輛扭振分析與計(jì)算系統(tǒng)”的求解器,其計(jì)算結(jié)果正確,能夠滿足該系統(tǒng)對(duì)求解的計(jì)算要求。