設計仿真 | Adams變拓撲分析之回調子程序
01文章背景
變拓撲分析的相關內容在前期文章,點擊可查看《Adams變拓撲分析之傳感器 》中已有描述,通過Adams/Sensor可以有效地完成眾多變拓撲分析的工程需求。本文將進一步挖掘Adams進行變拓撲分析的相關功能,方便大家的工程應用。子程序作為Adams一種常用的高級功能,由眾多熟悉Adams的工程師展開應用,實現了很多貌似不可能完成的任務。因為,子程序作為一種更加接近Adams內核的對象,可以實現很多界面功能不易實現的應用場景。為此,針對變拓撲分析這一場景,我們在眾多子程序中選擇CBKSUB子程序展開說明和應用,以期為有這方面需求的工程師拓展出新的使用模式。
02回調子程序
有關回調子程序的相關情況請參考《Adams回調函數功能解析 》,這里不再贅述。本文主要描述用于實現仿真過程中不同腳本命令調用的回調函數子程序的內容。

圖 1回調子程序源代碼
本程序的基本邏輯是,當回調函數遇到傳感器觸發事件發生時,首先會進行命令字符串的構建,然后將命令傳遞給Modify函數,Consub可以調用Modify,在執行了Modify發出的命令后,程序控制返回到Consub,關于Consub調用Modify的機制這里不展開。但這里需要注意一個使用特點,Adams/Solver會忽略命令末尾5個空格之后的部分,因此,當使用字符功能構建命令時,需要注意將多余的空格去掉。
對于上述邏輯,如果不想對源代碼有過多的認識,只需要考慮后面的使用流程就可以,核心思想是每個sensor對應一個Acf文件,在Acf文件中有相關的命令,當傳感器觸發事件發生后,程序會將該傳感器的ID傳輸到Data數組中,然后,命令字符串的構建會綜合這個ID,這樣就形成了那個sensor觸發,執行對應的Acf文件的目的。具體流程如下:

圖 2回調函數與sensor聯合使用流程
說明,上圖中綠色框針對的sensor定義以及Acf文件之間有一定的對應關系,在同一個模型中可以有多個sensor的存在,當然需要每個sensor有對應的Acf文件存在。回調源程序按照常規編譯流程生成DLL文件供Callback對象調用。仿真時不再需要寫復雜的仿真腳本,通過腳本命令也實現不了本功能。
03應用案例
應用案例的目的,實現模型中多個sensor存在情況下,不考慮觸發順序,按照實際情況,哪個sensor觸發就執行對應的命令。如果觸發的順序已知,可以采用常規的仿真腳本即可實現。
基本建模,建立四個球體,從上到下分別為Part_a,Part_b,Part_c,Part_d,其中前兩個與大地建立水平滑移副,后兩個與大地建立固定副,并且前兩個在質心處作用水平力,分別為200N,100N(后繼互換),由于重力加速度豎直向下,固定副解鎖后會自由落體,以表征sensor事件觸發后的動作。最后分別定義兩個sensor,事件函數分別為a,b兩球的水平速度,比較值分別為10米每秒和15米每秒,由于這里長度采用毫米為單位注意轉化。

圖 3基本模型
建立的sensor,由于要和回調函數聯合應用,此時要求sensor必須有一個觸發后的動作,因此,sensor_2類似于sensor_1具體如下:

圖 4左側為sensor定義,右側為觸發后的動作
這里選擇了最后一個動作,其實程序并不關注這個動作的數值是什么,只關注有沒有這個動作。通過命令庫找到Callback的定義項,完成回調對象的定義,如下所示:

圖 5回調對象定義
還需完成與傳感器對應的Acf文件的創建,這里有兩個傳感器,因此定義兩個Acf文件,具體如下:

圖 6Acf文件定義
定義該文件需要注意其名稱以及同sensor的ID號之間的聯系,這個在源程序中以有過說明。實現的目的,當sensor_1觸發后將3號joint抑制,也即part_c小球之后會自由落體;當sensor_2觸發后將4號joint抑制,也即part_d小球之后會自由落體。當然,將各自的sensor在觸發后關閉。
提交仿真,可以使用交互式仿真也可以使用腳本計算,但是如果使用腳本計算要注意不能再有對傳感器的操作,因為本案例找的就是傳感器觸發事件。

圖 7 0時刻動畫
上圖展示初始狀態動畫,紅色球上施加200N載荷,綠色球上施加100N載荷,分別沿水平方向加速運動,當紅色球達到10米每秒速度時sensor_1觸發,當綠色球達到15米每秒速度時sensor_2觸發,可以觀察右側曲線為各自觸發的時刻。
圖 8 Sensor_1觸發而sensor_2沒有觸發動畫
當sensor_1觸發后,黃色球體與大地之間的固定副解鎖,可參考sensor_1對應的Acf命令,將Joint_3抑制,黃色球在重力作用下自由落體,可通過動畫圖中的白色軌跡線看到其已經在動了。

圖 9 Sensor_2觸發動畫
同樣地,等到sensor_2也觸發后,靚色球體與大地之間的固定副解鎖,可參考sensor_2對應的Acf命令,將Joint_4抑制,靚色球在重力作用下自由落體,其已經運動并且有軌跡,但是當前兩個球的軌跡重合。
04文章總結
通過利用回調函數子程序的功能,拾取傳感器觸發事件,通過編程將每個傳感器觸發對應的命令選擇執行,實現了多個傳感器存在情況下,觸發次序無關的需求。通過上述流程說明和實例展示,該方法非常簡單有效,適合實際工程所需。并且,可以面對交互式仿真或者腳本仿真使用,應用范圍較廣,可解決這類較復雜工況問題,為多體動力學的變拓撲分析提供了新的解決方法。
相關產品鏈接:
https://www.anscos.com/adams.html
更多信息請關注庭田科技
全國熱線:4006336258
官方郵箱:info@anscos.com
【文章來自海克斯康工業軟件】
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















