在多體動力學模型仿真之前,一般需要把模型設置為平衡狀態,原因主要有:
如果模型不是平衡狀態,仿真開始後受到重力作用,模型中的部件會發生明顯的波動,使仿真前幾秒甚至更長時間的數據振蕩比較大,不是真實的數據,沒有價值;非平衡狀態的模型產生非常大的振蕩會使求解器解算困難,甚至產生報錯,仿真停止;實際物理模型是平衡狀態的(一直受重力作用),非平衡狀態的仿真模型不符合實際的物理模型狀態。基於上述原因,需要在多體動力學模型的時域分析之前把模型處於平衡狀態。注意:多體仿真模型進行頻域分析之前也需要進行平衡分析,因為頻域分析是在平衡位置上進行線性化。
Simpack作為專家級多體動力學仿真分析軟體,提供多種分析方法使模型達到平衡狀態。下面以示例模型為例,介紹具體方法。
1.靜平衡分析
多體動力學平衡分析最常用的方法是靜平衡分析,Simpack同樣提供靜平衡分析方法。
在平臺模型中,一個剛體部件四個角使用彈簧安裝在地面上,同時受到一個力的作用使該部件受力不平衡。
在此原始狀態下進行時域分析,如下圖所示。
點擊在線平衡分析按鈕
,進行靜平衡分析,得到靜平衡分析結果,如下圖所示。
可以看到當前模型狀態的最大殘餘加速度值非常小。如果Maximum residuum in equilibrium參數的數值比較大(有明顯的加速度),說明模型沒有處於平衡狀態,需要繼續分析。
點擊「Copy computedequilibrium states to model」按鈕把計算後的狀態複製到當前模型中,這樣模型就處於平衡狀態。
如果使模型在原始狀態和平衡狀態相互切換,最好的辦法是使用狀態集。點擊狀態集按鈕
,這樣就把當前模型的狀態保存到這個新建的狀態集中。
創建兩個狀態集,分別保存模型的初始狀態和平衡後的狀態。這樣,該平臺模型就可以在原始不平衡狀態和平衡狀態之間實現快速相互切換。
2.預載荷(Preload)分析
觀察部件的位置可以發現通過靜平衡分析後模型中的部件位置相比原始位置有了明顯的變化,這在某些仿真工況中存在一定的問題。
比如,建立汽車(或者機車)仿真模型,其部件位置是基於實際物理樣機的部件位置進行建模的,實際物理樣機的部件位置已經是平衡狀態。仿真模型中的部件初始位置和實際物理樣機部件位置相同,但進行平衡分析後,模型中的部件發生位移,和實際部件位置之間產生一定的位置偏差,導致仿真模型與實際不符。
為了解決這個問題,可以使用Simpack預載荷(Preload)分析功能。預載荷分析是通過修改力元的名義力,使其和部件的重力平衡達到平衡狀態。下面是預載荷分析和平衡分析之間的對比。
把這個平臺模型恢復到初始非平衡狀態,點擊預載荷分析按鈕
,並在Preload對話框中設置需要計算力元的哪些方向數值(本例是全部方向),並點擊Perform Preload calculation按鈕進行計算,計算後的結果為下圖所示,可以看出四個彈簧力元的6分量力都有了名義力。
關閉該對話框,並在模型中打開一個力元的屬性對話框,發現計算後的力數值已經賦予到力元中。
對模型進行在線時域分析,發現部件沒有產生運動。
如果要把預載荷分析後的模型恢復為原始狀態,可以點擊Preload對話框中的Set Solver Preloads to zero按鈕即可實現。
3.高級靜平衡分析
上述的靜平衡分析和預載荷對於一般的模型都能處理,但是對於一些複雜模型或者含有接觸的模型,那麼這兩種方法就不一定能使模型達到靜平衡狀態。
例如,三個小球與漏鬥部件接觸且小球之間也相互接觸,在重力作用下下落,相互之間產生接觸碰撞。
為這個模型中沒有可計算名義力的力元,所以不能使用預載荷分析。對這個模型進行靜平衡分析,得到的殘餘加速度為9.81,即重力加速度,說明模型沒有處於平衡狀態。那麼,如何解決呢?
打開求解器對話框,在Equilibrium類別中發現靜平衡使用的求解器方法是Newton法,該方法通過力學計算得到靜平衡的解。
修改Method選項為Time integration,該方法使用時域積分進行平衡分析。根據模型的實際情況,修改仿真時間和輸出步長值。本模型中採用默認數值即可。保存設置並關閉求解器對話框。
在模型中,點擊在線靜平衡分析對話框進行靜平衡計算,計算時間相比Newton法明顯變長,得到的仿真結果如下,說明模型已經基本處於平衡狀態。
得到平衡狀態下的模型如圖所示。
4.終極大招
如果上述的方法都不能使模型達到平衡狀態,那麼還有終極大招,可用於一切模型,即:使用時域積分方法對模型進行仿真分析,把仿真結束時的最終狀態導入到模型中,使模型達到或接近平衡狀態。注意:模型要去掉所有的激勵和驅動。
還以小球接觸這個模型為例,設置時域仿真時間為30s,採樣頻率為200Hz,進行離線時域分析。仿真完成後,在output文件夾中會生成.spckst格式文件,該文件保存仿真結束時的模型狀態。
在模型前處理中,新建兩個狀態集,其中一個為$ST_Origin表示原始狀態,另一個為$ST_Equi用於保存得到的平衡狀態。選擇$ST_Equi點擊右鍵選擇Import States命令,並選擇output文件夾中生成的.spckst格式文件導入。
把該狀態集應用到模型,當前模型的顯示如下圖所示,進行在線時域分析發現模型已經處於平衡狀態。
總結,在進行多體動力學分析之前,通常要把模型處於平衡狀態,Simpack提供多種方法使模型達到平衡狀態,為後續的精確分析打下基礎。