- ADAMS 2016虛擬樣機技術從入門到精通
- 陳峰華
- 3455字
- 2020-11-28 15:58:18
4.1 計算求解
4.1.1 計算類型
1.裝配計算
如果在建立構件時構件之間的位置并不是實際裝配的位置,就利用運動副的約束關系將兩個構件放置到正確的位置。
2.運動學計算
由于運動副和驅動是約束系統的自由度,因此當添加運動副和驅動后相應的系統自由度就會減少。如果系統的自由度減少到零,那么系統各個構件的位置和姿態就可以在任意時刻由約束關系來確定,在進行計算仿真時系統會進行運動學計算,由于系統做平面運動,因此任意一個運動副添加旋轉驅動,系統的自由度均為零,進行運動學仿真。在這種情況下,系統認為驅動提供任意大小的驅動載荷,只要能滿足運動學關系就行。在運動學計算中,計算運動副的相對位移、速度、加速度、約束力和約束載荷以及任意Marker點的位移、速度、加速度等數據。
3.動力學計算
模型上不會添加驅動,而是讓其在重力的作用下運動。由于系統還有一個自由度未確定,因此系統進行動力學計算。在動力學計算中,將會考慮構件的慣性力,求解動力學方程,計算運動副的相對位移、速度、加速度、約束力和約束載荷以及任意Marker點的位移、速度、加速度等數據。
4.靜平衡計算
靜平衡計算時系統構件在載荷的作用下受力平衡。一個系統有多個靜平衡位置,運行一定時間的運動學計算或動力學計算后讓系統到達某一位置,再進行一次靜平衡計算,這樣就可以找到該位置附近的靜平衡位置。一個系統可能會有多個靜平衡位置,如果在靜平衡位置處開始動力學計算,系統就會始終不動。
5.線性化計算
線性化計算將系統的非線性動力學方程線性化,這樣得到系統的共振頻率和振型(模態)。
4.1.2 驗證模型
在仿真計算之前,對系統的構成、系統的自由度、未定義質量的構件和過約束等情況進行查詢,即便是在建立模型的過程中也要進行查詢,以保證模型的準確性。依次單擊菜單Tools→Model Verify,系統彈出系統信息窗口,如圖4-1所示,從中可以看到有關模型的詳細信息。

圖4-1 驗證模型信息
4.1.3 仿真控制
仿真控制是決定仿真計算的類型、仿真時間、仿真步數和仿真步長等信息??梢允褂脙煞N仿真控制,一種是交互式,另一種是腳本式。交互式是普通的方式,完成多數的仿真,腳本控制不僅能完成交互式的所有功能,還能完成一些特殊的功能,如在仿真過程的模型中修改一些元素的參數或改變積分參數等。
1.交互式仿真控制
單擊工具欄中的仿真計算按鈕,彈出交互式仿真控制對話框,如圖4-2所示。

圖4-2 交互式仿真對話框
交互式仿真控制對話框中的選項如下。
Step
01 控制按鈕: 運行仿真計算、
終止仿真計算、
返回仿真設置的起始位置、
播放最后一次仿真的動畫、
驗證模型。
Step
02 Sim.Type:仿真類型有Default、Dynamic(動力學計算)、Kinematic(運動學計算)和Static(靜平衡計算)。如果選擇Default,系統就會根據模型的自由度自動選擇進行動力學計算還是進行運動學計算。
Step
03 仿真時間:有End Time(終止時間)和Duration Time(持續時間)兩個選項。如果選擇Duration Time,當仿真結束后再次單擊仿真計算按鈕,就會從上次仿真計算結束的時間開始繼續進行仿真計算。另外,如果需要進行靜平衡和裝配計算,可單擊
和
按鈕。
Step
04 仿真計算的步長和步數:如果選擇Steps,設置仿真步數,系統根據仿真的時間和步數計算仿真的時間間隔,如果選擇Step Size,就需要輸入仿真計算的時間間隔。
Step
05 Start at equilibrium:從靜平衡位置處開始仿真計算,系統會在模型的當前位置處找到一個靜平衡位置,然后從該位置開始進行仿真計算。
Step
06 Reset before running:在仿真計算時,從模型的起始位置開始仿真計算。
Step
07 仿真計算過程中的調試:No Debug(沒有調試)、Eprint(在信息窗口顯示每幀計算信息)和Table(在新窗口中顯示每幀的迭代等信息)。
Step
08 仿真設置:單擊Simulation Settings按鈕后,彈出仿真設置對話框。設置目標不同,對話框中的內容也不一樣。
2.腳本仿真控制
腳本仿真控制相當于求解器性質的仿真控制命令,并讀取相關的仿真控制參數。在運行腳本仿真控制以前,必須先創建腳本控制命令。單擊按鈕,系統彈出創建仿真控制腳本的對話框,進行如下3種腳本仿真控制。
(1)Simple Run:簡單腳本控制,在這種情況下只能進行運動學、動力學和靜平衡計算控制。如圖4-3所示,在Script Type下拉列表中選擇Simple Run,在Simulation Type下拉列表中選擇仿真類型,有運動學、動力學和靜平衡計算控制,然后輸入相應的仿真參數,創建仿真腳本。

圖4-3 創建腳本控制對話框
(2)Adams View Commands:ADAMS/View命令方式,如圖4-4所示。在Script Type下拉列表中選擇Adams View Commands,然后在下面的輸入框中輸入命令。在這種情況下需要知道ADAMS/View的命令語法格式。如果對命令語法不熟練,可單擊Append Run Commands按鈕,之后出現新的對話框,如圖4-5所示。在Run command to be appended to script下拉列表中選擇仿真類型,并輸入相應仿真參數,單擊OK按鈕,將仿真命令添加到命令的末尾。在這種情況下,如果用命令的方式改變了模型的參數,求解器不會理會這些參數,而是按一開始時的參數進行仿真計算。如果確實想修改模型的參數,就只能回到最初狀態進行修改,而不能在仿真腳本中用命令來修改。

圖4-4 創建ADAMS/View仿真腳本控制對話框

圖4-5 添加ADAMS/View仿真命令對話框
(3)Adams Solver Commands:求解器命令方式,如圖4-6所示。在Script Type下拉列表中選擇Adams Solver Commands,然后在下面的輸入框中輸入命令和參數,在Append ACF Command下拉列表中選擇仿真控制命令,就會彈出相應的對話框,輸入參數即可。在這種仿真腳本控制下,修改模型中元素的參數,例如改變仿真步長、仿真精度、使元素失效或者有效等,因此在這種情況下可以完成常規仿真所不能完成的一些特殊計算。

圖4-6 創建ADAMS/Solver仿真腳本控制對話框
以上是創建腳本的方法。在創建腳本后,需要執行腳本命令。單擊菜單Simulation→Script Controls后,系統彈出執行腳本仿真控制對話框,如圖4-7所示。在Simulation Script Name輸入框中輸入腳本命令的名稱,然后單擊按鈕開始運行腳本仿真。

圖4-7 執行腳本仿真控制對話框
4.1.4 傳感器
與仿真控制密切聯系的一個元素是控制器,傳感器感知系統運行到某一個狀態的時間,這種狀態是系統模型元素之間的函數,也是時間的函數,例如兩個Marker點之間的位置、速度、加速度等。當傳感器感知到狀態已經發生時,采取一定的動作,從而改變系統的運行方向,使系統采用另外一種方式繼續進行仿真計算。將腳本控制和傳感器結合起來進行仿真控制,可完成一些特殊的仿真控制,例如在某一狀態下使約束失效、取消重力加速度等。
定義傳感器,需要定義傳感器感知狀態的事件以及事件發生后系統要執行的動作。單擊菜單Simulate→Sensor→New后,彈出定義傳感器對話框,如圖4-8所示。

圖4-8 定義傳感器對話框
1.定義傳感器感知的事件及事件發生的條件
定義傳感器,首先要定義傳感器感知事件以及判斷事件發生的條件。求解器在每一步計算過程中都會將事件的值與判斷事件發生的值進行比較,當事件的值滿足發生條件時就認為事件發生了,此時傳感器會讓系統執行一定的動作。
在定義傳感器對話框中,Event Definition項定義傳感器感知事件,通常用函數表達式來表示。事件選擇用Run-Time Expression(運行過程函數)和User-Written subroutine(用戶自己定義的子程序)來表示。如果用運行過程函數來定義,在Expression后的輸入框中輸入具體的函數表達式來定義,單擊按鈕彈出函數構造器來創建復雜函數表達式。Event Evaluation項定義傳感器事件的值,表示傳感器返回值、如果時間是角度值,還需要選擇Angular values項。判斷事件發生的條件是等于某個目標值,大于等于某個目標值或者小于等于某個目標值。由于求解是在一定的步長范圍內進行的,因此事件的值不可能與判斷事件發生的值完全匹配,只要事件的值與判斷事件發生的值在一定的誤差范圍內,就認為事件的值滿足事件發生的值。當判斷條件是等于時,事件發生的條件是事件落在真值區間范圍內(Value-Error Tolerance, Value + Error Tolerance);當判斷條件是大于等于時,事件發生的條件是事件的值落在(Value-Error Tolerance, +∞)范圍內;當判斷條件是小于等于時,事件發生的條件是事件落在(-∞, Value + Error Tolerance)范圍內。判斷條件是等于的時候,如果仿真步長過大,事件的值就有可能跨越事件發生的范圍,使傳感器感知不到時間發生了。在這種情況下,需要減少仿真的步長。
2.定義傳感器產生的動作
當傳感器的事件發生時需要由傳感器產生一定的動作,從而改變求解器方向。傳感器產生的動作分為標準動作和特殊動作。
標準動作分為以下幾種。
(1)Genrate additional output step:在傳感器事件發生時再多計算一步。
(2)Set output step size:重新設置計算步長,需要輸入新的仿真步長。
(3)Terminate current step and:當使用交互式仿真控制時,如果選擇Stop就終止當前的仿真;如果選擇Continue就繼續當前的仿真命令并執行下一個仿真命令。
特殊動作分為以下幾種。
(1)Set integration step size:設置下一步積分步長,以提高下一步的計算精度。
(2)Restart integration:如果在Set integration step size中設置了計算精度,就使用該精度進行計算;如果沒有就重新調整積分階次。
(3)Refactorize Jacobian:重新啟動矩陣分解,以提高計算精度。另外,在不能收斂的條件下,重新啟動矩陣分解有利于收斂。
(4)Dump state variable vector:將狀態變量的值寫到工作目錄下的文件中。