王曉燕 郝文權(quán) 蔣永峰
(中國第一汽車股份有限公司 研發(fā)總院,長春 130013)
主題詞:多學(xué)科 強(qiáng)耦合 分布式 算法
多學(xué)科交叉耦合問題在車輛性能開發(fā)過程中變得越來越突出,采用多學(xué)科分析技術(shù)是提高車輛綜合性能的必要手段[1-2]。傳統(tǒng)的多學(xué)科分析是一種弱耦合技術(shù)[3-4],不同學(xué)科之間只是簡(jiǎn)單的信息交互,沒有求解器層面的耦合,因而難以完全表達(dá)不同學(xué)科之間的相互影響關(guān)系。此外,在車輛性能集成過程中,供應(yīng)商出于對(duì)自身核心技術(shù)保護(hù)的角度考慮,不會(huì)把子模型以白箱的方式完全提供給主機(jī)廠,給整車性能集成帶來困難。因此,需要探索一種強(qiáng)耦合算法,以實(shí)現(xiàn)不同學(xué)科在求解器層面的耦合,同時(shí)每個(gè)子模型僅需提供界面上的力與運(yùn)動(dòng)信息,實(shí)現(xiàn)“分而治之”的多學(xué)科強(qiáng)耦合分析[5]。
如前所述,多學(xué)科強(qiáng)耦合分析算法只依賴于模型的接口信息,接口指的是兩個(gè)模型的連接或共同的表面。接口可以用一組有限元模型中的接口節(jié)點(diǎn)或者一組多體動(dòng)力學(xué)模型的鉸鏈來表征。典型的接口信息分為運(yùn)動(dòng)信息和力信息。運(yùn)動(dòng)信息包括接口的位移、速度和加速度,力信息指的是接口傳遞的力與力矩。
耦合任何機(jī)械系統(tǒng),力學(xué)原則要求接口處滿足兩組條件:
(1)力的大小,即接口力必須滿足作用力與反作用力的平衡方程。
(2)接口處的運(yùn)動(dòng)量,必須要滿足兼容條件。
如果定義好一組滿足平衡條件的接口力變量,那么在耦合過程中只需要考慮運(yùn)動(dòng)量的兼容性條件。在這種情況下,接口力變量可以視為接口運(yùn)動(dòng)量的函數(shù),并且這些接口力變量可以利用運(yùn)動(dòng)信息和兼容條件進(jìn)行更新迭代。類似地,如果定義好一組合適的接口運(yùn)動(dòng)變量,即接口運(yùn)動(dòng)變量滿足兼容性條件,那么在耦合過程中只需考慮接口力的平衡方程。在后者情況下,接口運(yùn)動(dòng)變量是接口力變量的函數(shù),它們通過接口力的平衡條件來更新。兩種不同的方式可以衍生出不同的耦合策略。
圖1展示了T-T戰(zhàn)略,以兩個(gè)子系統(tǒng)的情況為例進(jìn)行說明。在這個(gè)戰(zhàn)略中,兩個(gè)子系統(tǒng)模型的接口處的運(yùn)動(dòng)數(shù)量被用作耦合器的輸入。兩個(gè)模型的接口力向量和耦合器輸出,將被用于子系統(tǒng)模型的下一步計(jì)算。
圖2說明了X-T耦合戰(zhàn)略。在這個(gè)方法中,兩個(gè)模型的接口向量和被用作耦合器的輸入。向量和是耦合器的輸出(其中X代表位移,T代表力)。
圖1 T-T方法
圖2 X-T方法
下面以第二種情形為例闡述粘合算法的原理。
假設(shè)X是合理定義的接口運(yùn)動(dòng)向量,其包含了必要和足夠的變量能夠代表接口的運(yùn)動(dòng)向量空間;F是合理定義的接口力向量,其包含了必要和足夠的變量能夠代表接口的力向量空間。并且X-T策略中接口位移X是自平衡,即如果接口處耦合輸入信息是X,此接口自動(dòng)滿足位移兼容條件。e作為一個(gè)誤差測(cè)量向量代表了接口力向量偏差,其中e=0表明接口力向量滿足平衡條件。在通常情況,e可視為校正力變量Fc的函數(shù),即
由于采用X-T耦合策略,運(yùn)動(dòng)向量自動(dòng)滿足兼容條件,那么粘合算法的唯一目標(biāo)就是使得e等于零,即找到適當(dāng)?shù)腇c滿足
方程(2)定義了一組(線性或非線性)方程,可以通過選擇適當(dāng)?shù)乃惴ǎň€性或非線性)方程求解器來解決。首先可以嘗試使用擬牛頓法BFGS[8]進(jìn)行求解,定義T接口校正力變量的初值為,其中yk是梯度差,Bk是Hesse矩陣。
然而工程絕大多數(shù)問題都是大規(guī)模、強(qiáng)非線性問題,BFGS算法雖然計(jì)算速度快,但是收斂上存在一定的魯棒問題,因此需要研究更多高效穩(wěn)定的迭代方法,例如LM+TrustRegion[9]方法:
方程(3)以及方程(4)表明可以只利用接口的信息來獲得適當(dāng)?shù)男Uc,使得接口滿足力平衡條件。工程實(shí)踐中,隱式算法首先使用BFGS算法進(jìn)行初步計(jì)算,迭代過程中發(fā)現(xiàn)若不容易收斂,切換至LM+TrustRegion算法計(jì)算,這樣既能保證收斂穩(wěn)定性,同時(shí)又能提高計(jì)算速度。
在多學(xué)科耦合過程中多體動(dòng)力學(xué)計(jì)算與結(jié)構(gòu)有限元計(jì)算存在一個(gè)時(shí)間步的延遲,迭代不易收斂或者不收斂,可采用近似模型技術(shù)進(jìn)行預(yù)測(cè)解決此問題,具體算法步驟如下:
(1)對(duì)預(yù)測(cè)量的時(shí)間序列進(jìn)行差分平穩(wěn)化;
(2)建立時(shí)間序列分析模型;
(3)進(jìn)行模型參數(shù)估計(jì)并驗(yàn)證模型;
(3)還原差分進(jìn)行預(yù)測(cè)。
如前所述,多學(xué)科強(qiáng)耦合算法需要各子模型邊界上的力與運(yùn)動(dòng)信息,在實(shí)際問題中,各子模型都是在各自的分析軟件中求解,因此如何將多學(xué)科強(qiáng)耦合算法嵌入至商業(yè)化軟件中,是首要解決的問題。比較理想的情況是直接針對(duì)商業(yè)化軟件的內(nèi)存進(jìn)行操作來讀取相應(yīng)模型的信息,但這樣涉及到各商業(yè)化軟件的底層操作,需要商業(yè)化軟件開放底層信息,實(shí)現(xiàn)起來工作量較大。本文在研究過程中,利用分析軟件提供的程序外部接口,將每個(gè)子模型的仿真控制信息及計(jì)算結(jié)果進(jìn)行存儲(chǔ),然后利用程序重新啟動(dòng)的命令來實(shí)現(xiàn)不同軟件的信息傳遞及耦合。圖3顯示了ADAMS與ABAQUS聯(lián)合分析的程序流程,在每一仿真步,ADAMS與ABAQUS分別對(duì)相應(yīng)的子模型進(jìn)行求解,并將子模型的仿真控制參數(shù)及結(jié)果信息保存至文本中。Mega-Solver粘合算法從結(jié)果文件中讀取相應(yīng)的邊界運(yùn)動(dòng)信息,判斷是否滿足容差條件,如果滿足,則進(jìn)行下一步求解;如不滿足,則根據(jù)迭代算法計(jì)算新的邊界載荷向量,同時(shí)更新模型文件中相應(yīng)的載荷信息,退回到當(dāng)前步仿真起始點(diǎn),調(diào)用當(dāng)前步存儲(chǔ)的模型控制參數(shù)文件,利用重啟動(dòng)命令重新進(jìn)行當(dāng)前步的分析。
圖3 ADAMS與ABAQUS強(qiáng)耦合分析流程
多學(xué)科強(qiáng)耦合算法“分而治之”的建模思想,使得分布式建模的技術(shù)手段變得比較容易實(shí)現(xiàn)[12][13],因?yàn)镸ega-Solver粘合算法只需要子模型的邊界信息,不需要模型的詳細(xì)內(nèi)部結(jié)構(gòu),因此可以在不同的客戶機(jī)上仿真不同子模型的特性,將子模型的分析結(jié)構(gòu)通過數(shù)據(jù)傳輸?shù)姆绞絺鬟f給主機(jī),在主機(jī)上運(yùn)行多學(xué)科強(qiáng)耦合Mega-Solver的主程序,通過粘合算法將各子模型的邊界信息進(jìn)行耦合,再將粘合算法的計(jì)算結(jié)果傳遞給各子模型進(jìn)行迭代求解,從而完成整個(gè)系統(tǒng)的耦合分析。
本文在研究過程中,建立了基于OPC技術(shù)的分布式仿真平臺(tái),如圖4所示?;诙囿w與有限元耦合技術(shù),利用MATLAB語言為主控機(jī)編寫了控制代碼,通過OPC服務(wù)器技術(shù)可以實(shí)現(xiàn)對(duì)客戶機(jī)分配任務(wù)及傳遞客戶機(jī)的計(jì)算結(jié)果;為客戶機(jī)編寫了計(jì)算控制代碼,可以接受或等待主機(jī)分配計(jì)算任務(wù)并接受主機(jī)傳遞的計(jì)算結(jié)果數(shù)據(jù),根據(jù)計(jì)算需要可以連接多臺(tái)客戶機(jī)。
圖4 基于OPC的多學(xué)科強(qiáng)耦合分布式分析技術(shù)
根據(jù)前述多學(xué)科強(qiáng)耦合算法原理,考慮多體動(dòng)力學(xué)耦合分析案例。如圖5所示,在ADAMS中,將一根桿的一端用襯套固定在大地上,另一端加正弦激勵(lì)。將桿從中間一分為二,邊界節(jié)點(diǎn)用物體局部Marker表示,擁有6個(gè)自由度;節(jié)點(diǎn)之間的相互作用力通過廣義力作用在物體I和物體II上。兩個(gè)子模型分別在AD?AMS中進(jìn)行求解,利用耦合算法進(jìn)行耦合求解。
圖5 多體動(dòng)力學(xué)強(qiáng)耦合分析案例
圖6 為耦合求解結(jié)果與ADAMS整體求解結(jié)果的對(duì)比,從圖中可以看出,耦合算法較精確地模擬了整體系統(tǒng)的運(yùn)動(dòng)。
為驗(yàn)證Mega-Solver算法的分析精度,采用簡(jiǎn)易的鋼板彈簧結(jié)構(gòu),其兩端的鏈接方式如圖7所示,在梁的中間施加載荷。傳統(tǒng)的ADAMSFlex在分析過程中,采用模態(tài)疊加的方法,因此在大變形、非線性區(qū)時(shí)模型的誤差較大,通過多學(xué)科強(qiáng)耦合聯(lián)合分析技術(shù),可以直接耦合ADAMS的動(dòng)力學(xué)分析模型與板簧的有限元模型,因而分析精度大幅提升,圖8為采用Mega-Solver耦合算法、ADAMSFlex及有限元算法的精度對(duì)比,可以看出,采用耦合算法后,分析結(jié)構(gòu)與有限元的分析精度基本吻合,而ADAMSFlex在大變形時(shí)與有限元的計(jì)算結(jié)果偏差較大。
圖6 多體動(dòng)力學(xué)耦合案例仿真結(jié)果
圖7 多體動(dòng)力學(xué)與有限元耦合分析案例
圖8 多體動(dòng)力學(xué)與有限元耦合結(jié)果
利用多學(xué)科強(qiáng)耦合分析技術(shù)實(shí)現(xiàn)了整車的耦合分析建模,其中底盤系統(tǒng)利用動(dòng)力學(xué)軟件求解,如圖9所示,車身在有限元中進(jìn)行求解,如圖10所示。每一計(jì)算步,底盤與車身在連接點(diǎn)處進(jìn)行力與運(yùn)動(dòng)信息的交換,通過粘合算法進(jìn)行綜合求解。
利用多學(xué)科強(qiáng)耦合Mega-Solver算法,可以實(shí)現(xiàn)多學(xué)科、多軟件的強(qiáng)耦合分析。Mega-Solver算法只需要界面的力與運(yùn)動(dòng)信息,而不必關(guān)注各子模型的內(nèi)部詳細(xì)結(jié)構(gòu),從而可以進(jìn)行分層模塊化的建模及分析工作。由于模型的模塊化處理,可以通過分布式技術(shù)實(shí)現(xiàn)子模型的同步求解,大大提高了分析的效率;同時(shí),由于Mega-Solver本質(zhì)上實(shí)現(xiàn)了求解器之間的耦合分析,可以充分發(fā)揮不同求解器的優(yōu)勢(shì),在處理強(qiáng)非線性、接觸等問題時(shí)可以進(jìn)一步提升分析精度。
圖9 耦合分析底盤子模型
目前,Mega-Solver粘合算法的穩(wěn)定性仍有待進(jìn)一步研究,通過引入多種迭代方法相結(jié)合以及多步法等技術(shù)手段,提高算法的魯棒性。