第一篇:Adams振動仿真心得
Adams單自由度隔振掃頻研究心得:
1.對于box剛體,討論y方向單自由度,對box需要兩點移動副約束,兩點要求是棱角點
或者中心點,而且兩點不能在一個y的高度上(猜測可能有冗余約束)。
2.Box上的兩點移動副約束要求:first body 與second body 要求互換,即同一零件不能作
為兩個移動副的first body。如果還不行,在滿足說說的條件下,多嘗試幾種組合。
3.重力場的加載與否不影響頻響應函數的得出及結果。頻響函數縱坐標單位為分貝,即振
幅的常用對數的20倍。
4.幅頻特性曲線,無阻尼對應相位差180°,有阻尼對應相位差小于180°。
5.加載重力加速度后,時域仿真會整體自由落體,靜態求解會報錯,但是不影響頻響求解。
6.當彈簧阻尼系數設置過大時,(共振峰值近似消除),頻響求解會報錯,可能是振動模塊
無法仿真過阻尼狀態。
1.2.3.非線性彈簧下,對于質量塊,如何建立力? 右鍵彈簧功能圖標,選擇“箭頭指向一點”的圖表,確定詳細欄中為:Two Bodies、constant,選擇質量塊→選擇ground→選擇質量中心→方向確定點。對新建的力以后,要modify一下,因為通過剛度外部數據需由常數改為函數。函數-AKISPL(DM(MAKER_11,PART_3.CM)-400,0,SPLINE_1,0),大括號內依次表
示,MAKER_11和PART_3.CM兩標記點之間的距離減參考坐標(即第一變量為變形),沒有第二變量,曲線名稱為SPLINE_1,微分階數為零。
研究非線性彈簧彈簧力和位移的關系,要用非線性力取代彈簧。得到的力-位移曲線曲率大的部分放大后會發現是具有滯回特性的。
需建立兩個測量,監測力和位移。
研究有阻尼彈簧振幅衰減過程,可定義衰減系數指標,表示前兩個峰值之比。4.5.6.1.導入的參數文件如果是csv格式,在導入后,time column index 可以不輸入1,如果是
txt格式需要輸入1才能讀入數據曲線。
2.利用模型確認工具,可以發現模型自由度數目不對,或者模型有問題時,利用children
按鈕可以找到問題所在;需要刪除零質量零件但是又找不到零件時,在菜單欄view 下面的part only 或者model里面可以找到并刪除。
3.輸入設計變量要干脆,不要修改,否則出現編號雜亂無章,變量過多,暫時不知道怎么
刪除無用編號。
1.通過繪制垂直方向(或水平方向)頻響的幅值曲線與相位曲線,可以看出影響垂直方向
(或水平方向)響應的最大的模態頻率。
2.通過繪制功率譜密度或PSD曲線,可以顯示振動分析中各種頻率輸入的傳遞能量。會看
到在模態頻率處曲線縱坐標開始有較大的降幅。
3.通過繪制模態坐標,可以查看某一階模態對應的振動響應。在單個坐標系里得到各階模
態對應的振動響應,從而找到對系統振動響應影響最大的模態。
4.對于三維頻響圖,y軸標記為run:1.0~2.0,暫不知道表示什么意思。
查看創建某一part的measure,查看振動情況時,選擇坐標方向而不是mag(幅值)項,這里的mag(幅值)項還不知道什么意思,從mag(幅值)的結果來看不是振幅的意思,也不是各個方向振幅的模值。
第二篇:adams運動仿真教學
起重機的建模和仿真,如下圖所示。
1)啟動ADAMS 1.運行ADAMS,選擇create a new model;2.modal name 中命名為lift_mecha;3.確認gravity 文本框中是earth normal(-global Y),units文本框中是MKS;ok 4.選擇setting——working grid,在打開的參數設置中,設置size在X和Y方向均為20 m,spacing在X和Y方向均為1m;ok 5.通過縮放按鈕2)建模
1.查看左下角的坐標系為XY平面
2.選擇setting——icons下的new size圖標單位為1 3.在工具圖標中,選擇實體建模按鈕中的box按鈕4.設置實體參3.53.數;
,使窗口顯示所有柵格,單擊F4打開坐標窗口。On ground Length :12 Height:4 Depth:8 5.鼠標點擊屏幕上中心坐標處,建立基座部分 6.繼續boxNew part Length :3 Height:3 Depth: 3.5 設置完畢,在基座右上角建立座架Mount部件 建立Mount座架部件,設置參數:
7.左鍵點擊立體視角按鈕架到基座中間部位:,查看模型,座架Mount不在基座中間,調整座
①右鍵選擇主工具箱中的position按鈕圖標
中的move按鈕
②在打開的參數設置對話框中選擇Vector,Distance項中輸入3m,實現Mount移至基座中間位置
③設置完畢,選擇座架實體,移動方向箭頭按Z軸方向,Distance項中輸入2.25m,完成座架的移動
右鍵選擇座架,在快捷菜單中選擇rename,命名為Mount 8.選擇setting—working grid 打開柵格設置對話框,在set location中,選擇pick 選擇Mount.cm座架質心,并選擇X軸和Y軸方向,選擇完畢,柵格位于座架中心
選擇主工具箱中的視角按鈕,觀察視圖 將spacing—working grid,設置spacing中X和Y均為0.5 10.選擇圓柱實體繪圖按鈕New part Length:10m Radius:1m 選擇座架的中心點,點擊左側確定軸肩方向,建立軸肩,單擊三維視圖按鈕,觀察視圖,設置參數:
11.繼續圓柱工具① 設置參數: New part Length: 13m Radius: 0.5m ② 選擇Mount.cm作為創建點,方向同軸肩,建立懸臂,繪制懸臂
③ 右鍵選擇新建的懸臂,在快捷菜單中選擇part_4——Rename,命名為boom ④選擇懸臂,移動方向沿X軸負向,實現懸臂的向左移動:
1)右鍵選擇工具箱中的position按鈕中的move按鈕
2)在打開的參數對話框中,選擇vector,distance中輸入2m,點擊懸臂,實現移動
⑤ 右鍵點擊實體建模按鈕設置圓角半徑為1.5m ⑥ 左鍵選擇座架上側的兩條邊,點擊右鍵,完成倒角,在彈出的下一級菜單中選擇導圓角工具,12.選擇box按鈕圖標① 設置參數: New part Length : 4.5 Height: 3.0 Depth: 4.0 ② 選擇懸臂左側中心點,命名為bucket,建立鏟斗,創建鏟斗
③ 右鍵選擇position按鈕下一級按鈕move按鈕
④ 在打開的參數對話框中,選擇vector,distance中輸入2.25m,選擇鏟斗,移動方向沿全部坐標系X軸負方向,實現鏟斗的橫向移動
⑤ 在主工具箱中,選擇三維視圖按鈕,察看鏟斗
⑥ 繼續選擇move按鈕,設置參數中選擇vector,distance中輸入2.0m,選擇鏟斗,移動方向沿全部坐標系 Z軸負方向,實現鏟斗的縱向移動
⑦ 移動完畢,選擇主工具箱中的渲染按鈕render,察看三維實體效果,再次選擇render按鈕,實體圖則以線框顯示
⑧ 右鍵點擊實體建模按鈕,再彈出的下一級按鈕中選擇倒角工具的參數設置對話框中,設置倒角Width為1.5m,⑨ 選擇鏟斗下側的兩條邊,完畢單擊右鍵,完成倒角
⑩ 右鍵選擇實體建模工具按鈕,再下一級按鈕中選擇Hollow按鈕的參數設置對話框中設置參數Thickness為0.25m 選擇鏟斗為挖空對象,鏟斗上平面為工作平面,完畢點擊右鍵挖空鏟斗,在打開,在打開
3)添加約束
根據圖示關系,添加鏈接 ① 在主工具箱中,選擇轉動副bod——1 loc和pick feature,下方的參數設置對話框中,設置參數2 ② 選擇基座和座架,然后選擇座架中心Mount.cm,旋轉軸沿y軸正向,建立座架與基座的轉動副
③ 繼續用轉動副按鈕,建立軸肩與座架間的轉動副,設置參數為2 bod——1 loc和Normal to grid,選擇軸肩和座架,再選擇座架中心點,建立轉動副 ④ 繼續用轉動副按鈕,建立鏟斗與懸臂間的轉動副,設置參數為2 bod——1 loc和Normal to grid,選擇鏟斗與懸臂,再選擇鏟斗下側中心點,建立轉動副 ⑤ 選擇主工具箱中的平動副,設置參數2 bod——1 loc和pick feature,選擇懸臂與軸肩,再選擇懸臂中心標記點,移動方向沿X軸正方向,建立懸臂和軸肩間的平動副
⑥ 右鍵點擊窗口右下角的Information 信息按鈕,選擇約束按鈕,觀察是否按要求施加約束,關閉信息窗口 ⑦ 檢查完畢,選擇仿真按鈕運動 4)添加運動
① 選擇主工具箱中的旋轉運動按鈕,右鍵點擊座架中心標記點,在彈出的,對系統進行仿真,觀察系統在重力作用下的選擇窗口中,選擇JOINT_mount_ground,給座駕與基座的轉動副添加轉動運動 ② 選擇俯視圖按鈕,觀察旋轉運動副的箭頭圖標
③ 右鍵點擊該運動,在彈出的快捷菜單中選擇motion_mount_ground——modify在修改對話框中,修改function項為360d*time ④ 重復上述動作,在軸肩和座架之間建立旋轉運動Motion_shoulder_ground, ⑤ 右鍵點擊該運動,在彈出的快捷菜單中選擇motion_shoulder_ground——modify在修改對話框中,修改function項為-STEP(time,0,0,0.10,30d)⑥ 重復上述動作,在鏟斗和懸臂之間建立旋轉運動Motion_bucket_boom ⑦ 設置運動函數為45d*(1-cos(360d*time))
⑧ 右鍵點擊主工具箱中旋轉運動按鈕,選擇下一級平行運動按鈕,點擊懸臂中心平動副,在懸臂和座架間建立平行運動
⑨ 設置平行運動函數為STEP(time,0.8,0,1,5)
⑩ 選擇主工具箱中的仿真按鈕,設置仿真參數END Time:1;Steps:100,進行仿真
5)測量和后處理
① 鼠標右鍵點擊鏟斗,打開右鍵快捷鍵,選擇測量measure ② 系統打開參數設置對話框,將Characteristic設置為CM Point,Component 設置為Y,測量Y向位移。
③ 點擊Apply,出現空白的測量窗口 ④ 點擊總工具箱中測量長度按鈕,測量懸臂左端點與軸肩右端點間的距離
保存文件qizhongji在E:jiben0520053377目錄中,推出系統。
其它CAD圖與ADAMS軟件的接口
1)在solid-edge、solid-working、p-re、UG等三維造型軟件中,繪制三維圖形,下圖所示為裝載機的工作裝置CAD三維圖;
裝載機工作裝置中包含許多零部件,為簡化仿真模型,可以在建立三維圖形時,將鏈接螺栓等非傳動件忽略,將其質量添加到相連的傳動件上即可,切記:在CAD軟件裝配圖繪制完三維圖后,將文件保存為.igs為后綴的格式退出。2)將三維CAD圖形文件調入ADAMS軟件
打開ADAMS軟件,進入ADAMS界面,進行以下操作:
① 在File菜單,選擇Import命令,顯示文件輸入對話框。
② 在File Type欄,選擇輸入的CAD文件格式,后綴為.igs格式,顯示輸入的CAD文件對話框,如上圖所示。
③ 在File To Read右邊的空框內輸入文件名,方法為:鼠標放在空框內,點擊右鍵,選擇browse,打開文件瀏覽對話框,找到已保存的后綴為.igs的文件,雙擊即可。
④ 在Part Name 欄,輸入ADAMS數據庫名。
⑤ 選擇OK按鈕,即可將CAD文件調入ADAMS軟件中。
1)點擊放大縮小圖標示調入的圖形;
2)修改個零部件的物理特性:視圖在由CAD軟件調入ADAMS軟件后,其各部件的物理特性丟失,只保留了幾何特性,所以,為進行系統仿真,需要對每一個零部件添加材料特性,方法如下:
① 將鼠標放在要修改的零部件上,點擊右鍵,依次選擇:浮動菜單的第一項part—modify,打開修改對話框;,將鼠標放在繪圖視窗內,按下左鍵,移動鼠標,顯
② 在category欄選擇mass properties;在define mass by欄選擇geometry and material type;在material type 欄,輸入零件的材料
③ 點擊修改對話框下角的show calculated inertia,計算零件的質量和轉動慣量等參數;
④ Ok退出,即完成零件的物性修改,其它零件類推。
3)根據前面仿真分析方法對導入后的裝載機工作裝置進行仿真分析。4)測量輸出起升油缸的作用力,保存文件,退出系統。
第三篇:基于adams和matlab的一級倒立擺聯合仿真
基于PRO/E,ADAMS和MATLAB/SIMULINK的雙回路PID控制一級倒立擺聯合仿真
目錄
一、倒立擺簡介
1、概述
2、倒立擺分類
3、倒立擺控制方法
二、聯合仿真流程
三、基于PRO/E的一級倒立擺三維建模
四、基于ADAMS的一級倒立擺模型設計
五、ADAMS和MATLAB/SIMULINK的聯合仿真 六、一級倒立擺的雙回路PID控制策略
1、一級倒立擺的角度控制
2、一級倒立擺的雙閉環控制
3、一級倒立擺擺桿長度參數對控制策略的影響
七、問題總結
參考文獻
一、倒立擺簡介
1、概述
倒立擺控制系統是一個復雜的、不穩定的、非線性系統,是進行控制理論教學及開展各種控制實驗的理想實驗平臺。對倒立擺系統的研究能有效的反映控制中的許多典型問題:如非線性問題、魯棒性問題、鎮定問題、隨動問題以及跟蹤問題等。通過對倒立擺的控制,用來檢驗新的控制方法是否有較強的處理非線性和不穩定性問題的能力。同時,其控制方法在軍工、航天、機器人和一般工業過程領域中都有著廣泛的用途,如機器人行走過程中的平衡控制、火箭發射中的垂直度控制和衛星飛行中的姿態控制等。
倒立擺系統按擺桿數量的不同,可分為一級,二級,三級倒立擺等,多級擺的擺桿之間屬于自由連接(即無電動機或其他驅動設備)。
倒立擺的控制問題就是使擺桿盡快地達到一個平衡位置,并且使之沒有大的振蕩和過大的角度和速度。當擺桿到達期望的位置后,系統能克服隨機擾動而保持穩定的位置。
圖1.1 一級倒立擺
2、倒立擺分類
(1)直線型倒立擺
它是最常見倒立擺系統,也稱車擺裝置,根據目前的研究它又分為1,2,3,4級車擺,典型結構圖如圖11.2所示,圖中以三級車擺為例,它是由可以沿直線導軌運動的小車以及一端固定于小車之上的勻質長桿組成的系統,小車可以通過轉動裝置由力矩電機、步進電機、直流電機或者交流伺服電機驅動,車的導軌一般有固定的行程,因而小車的運動范圍都是受到限制的。
圖1.2 直線型倒立擺
(2)環型倒立擺
環型倒立擺也稱擺桿式倒立擺,如圖1.3所示,圖中以二級為例,一般是由水平放置的擺桿和連在其端接的自由倒擺組成,原理上也可以看成是車擺的軌道為圓軌情況,擺桿是通過傳動電機帶動旋轉的。此擺設計好了可以擺脫普通車擺的行程限制,但是同時帶來了一個新的非線性因素:離心力作用。
圖1.3 環形倒立擺
(3)旋轉式倒立擺
環型擺也叫旋轉式倒立擺,但是這里的旋轉式倒立擺不同于第二種的環型擺,它的擺桿(旋臂)是在豎直平面內旋轉的,而環型擺擺桿是在水平面旋轉的,如圖1.4所示。圖中倒立擺系統是單級旋轉倒立擺,將擺桿安裝在與電機轉軸相連的旋臂上,通過電機帶動旋臂的轉動來控制倒擺的倒立,整個系統復雜,不穩定。
圖1.4 單級旋轉式倒立擺
(4)復合倒立擺系列
復合倒立擺為一類新型倒立擺,由運動本體和擺桿組件組成,其運動本體可以很方便的調整成三種模式,一是(2)中所述的環形倒立擺,還可以把本體翻轉90度,連桿豎直向下和豎直向上組成托擺和頂擺兩種形式的倒立擺。
3、倒立擺控制方法
控制器設計是倒立擺系統的核心內容,因為倒立擺是一個絕對不穩定的系統,為了實現倒立擺穩定性控制并且可以承受一定的干擾,需要給系統設計控制器,目前典型的控制器設計理論有: a.PID控制。通過機理分析建立動力學模型,使用狀態空間理論推導出非線性模型,并在平衡點處進行線性化得到系統的狀態方程和輸出方程,從而設計出PID控制器實現控制。
b.狀態反饋控制。使用狀態空間理論推導出狀態方程和輸出方程,應用狀態反饋實現控制“如劉珊中等應用狀態反饋和Kalman濾波相結合的方法,對二級倒立擺平衡系統進行控制。
c.利用云模型實現對倒立擺的控制。用云模型構成語言值,用語言值構成規則,形成一種定性的推理機制。
d.模糊控制。模糊控制是采用模糊化,模糊推理,解模糊運算等的模糊控制方法。其主要工作是模糊控制器的設計。現以倒立擺控制來簡單說明模糊控制器設計的一般方法。以擺桿的傾角和速度作為輸入變量”可以將傾角描述成:向左傾角大;中;小;向右傾角小;中;大。速度描述成:倒得非常快;快;慢;靜止;升得慢;快;非常決。它們都可以用模糊語言變量來表示用類似的模糊集合可以對控制小車運動的輸出進行定義。接著定義某些隸屬函數,這個安排隸屬度的過程就是對變量實現模糊化的過程“接著是建立一系列的模糊規則,如:如果擺桿向左傾斜大并倒的非常快,那么向左作快運動;如果擺桿向左傾斜大并升的慢,那么向左作慢運動,等等。最后,模糊輸出被分解成可以加到小車上的確切的驅動電壓,這個過程為解模糊判決。此外,還有對倒立擺的雙閉環模糊控制方案。
e.神經網絡控制。神經網絡能夠任意充分地逼近復雜的非線性關系,它能夠學習和適應嚴重不確定性系統的動態特性,所有定量或定性的信息按等勢分布儲存與網絡內的神經元,有很強的魯棒性和容錯性,也可將Q學習算法和BP神經網絡有效結合,實現狀態未離散化的倒立擺的無模型學習控制。以及楊振強等為解決模糊神經網絡在控制多變量系統時的規則組合爆炸問題,提出用狀態變量合成模糊神經網絡控制倒立擺。
f.自適應控制。主要為倒立擺設計各種自適應控制器。上述控制算法大都針對倒立擺工作在平衡點的穩定控制”本論文設計的控制器首先是能實現倒立擺的起擺,在擺起到平衡位置附近時再切換至穩定控制。
二、聯合仿真流程
本文以一級倒立擺為研究對象,建立的倒立擺由軌道,滑塊,擺桿和轉軸組成,滑塊在軌道上做往復的直線運動,擺桿繞滑塊做轉動。具體的聯合仿真流程如下:
1、在PRO/E軟件里建立上述各個零件的三維模型,然后進行裝配。裝配后的組件另存為x_t文件,輸入到ADAMS里。
2、將PRO/E的生成的三維模型導入ADAMS中,在ADAMS中定義各零件的質量,施加固定副、移動副和轉動副,然后建立輸入和輸出的狀態變量(輸入為作用在滑塊上的水平力,輸出為滑塊的位移和擺桿相對于豎直方向的角度),最后將生成的adm文件導出到MATLAB。
3、將ADAMS生成的倒立擺模型導入MATLAB,建立控制模型(采用PID雙閉環的控制方法),設置好參數之后進行聯合仿真。
三、基于PRO/E的一級倒立擺三維建模
1、在PRO/E中建立一級倒立擺的三維模型,擺桿的初始位置為豎直方向。
2、在組裝零件時需要注意,為了保證倒立擺模型導入ADAMS里面之后位置正確(即擺桿擺動平面為X-Y平面),需要使導軌安裝的長度方向沿組件默認坐標軸的x軸方向,其中心與組件坐標軸中心重合。
3、建立倒立擺之后,保存副本,選擇x_t文件格式保存。
圖3.1 一級倒立擺的PRO/E模型
四、基于ADAMS的一級倒立擺模型設計
1、將PRO/E生成的x_t文件導入ADAMS中,選擇file-import,文件類型選擇x_t,找到PRO/E的文件導入。導入的文件如下圖所示,可以看到,擺桿的運動平面在x-y平面內,軌道的質心與ADAMS的默認坐標軸原點重合。圖4.1 導入ADAMS的倒立擺三維模型
2、設置文件的保存路徑。為了避免PRO/E文件導入和MATLAB程序運行失敗,我們將ADAMS的保存路徑設在根目錄下,文件名為英文字符,PRO/E的所有文件放入此目錄下。
3、將導入的PART2,PART3,PART4和PART5分別命名為guidao,huakuai,baigan和zhou。然后定義各零件質量,材料選擇steel.4、添加約束。這里需要添加的約束有三個:
(1)ground和guidao之間的固定副,用來固定軌道。
圖4.2 固定副定義界面
圖4.3 固定副
(2)huakuai和baigan之間的轉動副,保證擺桿相對滑塊作轉動。
圖4.4 轉動副定義界面
圖4.5 轉動副(3)guidao和huakuai之間的移動副,保證滑塊沿軌道作水平運動。
圖4.6 移動副定義界面
圖4.7 移動副
5、定義作用力。初始力作用在滑塊上,方向選擇與擺桿偏移方向一致。
圖4.8 滑塊上的水平作用力
6、建立輸入和輸出狀態變量。建立三個system elements,包括輸入變量(force),輸出變量(angle,position)。(1)Force的參數設為零,由MATLAB輸入。
圖4.9 定義狀態變量force(2)Angle為擺桿距離豎直方向的角度,使用AZ函數測量。選取的參考點為擺桿上的MARKER_16和滑塊上的MARKER_17。
圖4.10 定義狀態變量angle
(3)Position為滑塊質心到全局坐標原點的距離。位移的測量值使用DZ函數。需要注意的是,由于軌道在PRO/E 中的坐標軸與ADAMS的默認坐標系不一致,所以要修改MARKER_20以保持和滑塊的質心坐標一致。修改方式見下圖的orientation參數欄。
圖4.11 定義狀態變量position
圖4.12MARKER點定義界面
(4)完成狀態變量的設置后,需要將force與上面建立的作用力SFORCE_1關聯,使用函數VARVAL。
圖4.13 SFORCE_1與force關聯
7、創建輸出文件。這一步我們要創建一個可以輸入到MATLAB的文件。(1)首先要創建輸入和輸出元素,選擇build—-data elements---plant---plant input,設置輸入文件名和變量名。輸出元素同理。
圖4.14 創建plant input
圖4.15 創建plant output(2)打開controls---plant export New controls plant一欄中填入inverted_pendulum,file prefix同理。輸入和輸出信號選擇剛才建立的兩個變量。Target software選擇MATLAB。其他選項默認。點擊OK即可。這樣就會有相關的文件在我們最初設置的保存路徑中生成。
圖4.16 設置ADAMS和MATLAB接口
圖4.17 ADAMS輸出文件
這一步完成之后就完成了ADAMS里的建模。下圖為倒立擺的完成模型。
圖4.18 ADAMS的倒立擺最終模型
五、ADAMS和MATLAB/SIMULINK的聯合仿真
完成ADAMS建模之后,我們將輸出的文件導入到MATLAB里進行仿真。
使用ADAMS和MATLAB/SIMULINK的聯合仿真有一個好處,即不用對物理模型進行分析,再建立傳遞函數。ADAMS導出的模型直接包含其所有的力學特性,更加方便進行相關控制。聯合仿真的步驟:
1、將MATLAB的當前文件夾設為ADAMS的文件夾,然后在命令窗口輸入inverted_pendulum(即ADAMS輸出的文件名),會導入倒立擺的參數和變量。最后輸入adams_sys指令,會彈出一個SIMULINK的仿真窗口,我們可以在里面添加控制模塊進行倒立擺仿真。
圖5.1 MATLAB導入ADAMS文件命令
圖5.2 生成的adams_sys
2、MATLAB控制方法設計。
在這里我們采用雙閉環的PID控制方法,一路是角度控制,一路是位移控制。
首先給倒立擺系統一個擾動,這里用階躍信號實現(持續時間0.1秒,幅值為1),使系統不穩定,然后通過角度和位移反饋控制系統,達到穩態。擺桿角度給定值設定為0度,位移給定值設為0,分別與模型輸出的實際角度和實際位移進行比對,差值輸入到PID中進行反饋控制,控制的結果輸入到force接口,實現系統的控制。建立的模塊圖如下:
圖5.3 MATLAB/SIMULINK的倒立擺PID控制模塊圖
3、動態仿真。先確定PID參數(PID參數設置下一章會講到)。然后設置adams sub模塊參數,將animation mode改為interactive,communication interval設為0.005。最后將仿真時間設為10秒,開始仿真。仿真時會打開ADAMS軟件,動畫演示倒立擺的平衡控制過程。
圖5.4聯合仿真時調用的ADAMS界面 六、一級倒立擺的PID控制策略
1、一級倒立擺的角度控制
前面我們提到了對一級倒立擺的控制目標有擺角和滑塊位移,下面先對角度控制的PID參數進行設置,然后再加上位移控制環。
首先使用PI調節,調節比例參數使系統出現震蕩,然后加上積分環節進行微調,最后取Kp=20,Ki=0.1,系統的擺角響應曲線如下:
10.80.60.40.20-0.2-0.4-0.6-0.800.511.522.533.544.55圖6.1 采用PI控制方案的角度響應曲線 從輸出曲線可以看出,盡管PI的控制作用總是趨于消除穩態誤差,但由于積分環節的缺陷而延緩了響應速度,所以不能及時地將超調遏制住,控制效果也就不怎么好了。
基于上述問題,可以加入微分環節(相當于加入了角速度反饋),參數設置為Kp=20,Ki=0.1,Kd=3。進行動態仿真后,得到的角度響應曲線如下。
0.035
0.030.0250.020.0150.010.0050-0.00500.511.522.533.544.55圖6.2 采用PID控制方案的角度響應曲線
可以看到加入微分環節后,系統的動態特性得到了很大的改善,系統受到0.1s的擾動后,在0.6s左右就達到了穩態,而且穩態精度也大大提高。
但是由于角度有穩態誤差的存在,所以不加位置反饋控制的話,滑塊會一直向一個方向偏移,如圖6.4所示為滑塊的位移曲線。
-4x 10420-2-4-611.051.11.15圖6.3 采用PID控制方案后角度的穩態誤差
500-50-100-150-200-250-300
00.511.522.533.544.55圖6.4 采用PID控制方案的位移響應曲線
2、一級倒立擺的雙閉環控制
在角度反饋的基礎上,加入位置反饋。由于兩路反饋并不是相互獨立的,所以單單設置位移的PID參數必定會影響到角度的反饋。所以這里PID參數的設置思想是,先調好角度反饋,然后根據角度的穩態誤差設定位移的PID參數,使兩路的反饋可以將這一穩態誤差抵消,最后微調兩路的參數優化控制效果。經過調試,確定角度反饋的PID參數為Kp=40,Ki=0.02,Kd=10;位移反饋的PID參數為Kp=-0.04,Ki=-0.01,Kd=-0.02。經過仿真后,得到的擺桿擺角和滑塊位移的響應曲線如下
0.030.020.010-0.01-0.02-0.03012345678910圖6.5 雙回路PID控制的角度響應曲線(L=500mm)
50-5-10-***910圖6.6 雙回路PID控制的位移響應曲線(L=500mm)
雙回路控制的平衡時間比單獨的角度控制要長,但是在2s左右也基本達到了平衡,控制效果很好。
3、一級倒立擺擺桿長度參數對控制策略的影響
之前我們建立的一級倒立擺模型的擺桿長度是L=500mm,下面將擺桿長度設為L=250mm,分析上面PID的控制策略對該系統動態響應的影響。
使用PRO/E對一級倒立擺重新建模,將擺桿長度設為250mm,然后將模型導入到ADAMS中,完成系統力學定義后導入MATLAB進行仿真。
系統的控制策略仍采用雙回路的PID控制。這里將上一節得到的角度和位移PID參數輸入到此模型,觀察其動態響應與之前的模型有何不同。
經過聯合仿真,得到的角度和位移響應曲線如下
0.0150.010.0050-0.005-0.01012345678910圖6.7雙回路PID控制的角度響應曲線(L=250mm)
420-2-4-6-8
012345678910圖6.8雙回路PID控制的位移響應曲線(L=250mm)
分析:
角度響應:L=500模型的超調量和二次超調量分別為0.025和0.02,平衡時間大概為2.5s;L=250模型的超調量和二次超調量分別為0.015和0.008,平衡時間為4.5s。
位移響應:L=500模型的超調量和二次超調量分別為7和13,平衡時間為6s;L=250模型的超調量和二次超調量分別為2和7,平衡時間為8s。
可以看出來,L=250模型要比L=500模型容易穩定,即在受到相同的擾動狀況下,使用較小的PID參數就可以達到平衡。
七、問題總結
本文利用PRO/E、ADAMS和MATLAB軟件成功地對一級倒立擺控制系統進行了仿真分析.在仿真過程中不需要推導機械系統的復雜微分方程,直接用ADAMS建立的虛擬模型進行分析,大大方便了建模過程.而且通過ADAMS軟件建立的虛擬模型能更好地接近實際物理模型,與那些近似線性化的簡易數學模型相比,這為我們以后的物理樣機試驗提供了更為可靠的依據。
在聯合仿真過程中,遇到了一些問題:
1、PRO/E導入ADAMS會有模型位置放錯的情況,這個時候需要保證兩個軟件里設定的坐標軸一致。
2、對于各零件的MARKER點局部坐標和ADAMS全局坐標不一樣情況,需要修改orientation,否則會出現測量錯誤的情況。
3、在使用角度測量函數AZ和DZ時,如果將FROM MARKER 和TO MARKER位置搞反的話,后面輸出的角度值可能為負,后面的PID參數也隨之改變。
4、使用PID調節,發現如果時間足夠長的話,倒立擺不能保持位置上的穩定,滑塊也會越走越遠,直到脫離軌道。這是因為使用PID控制角度時,總會有微小的穩態誤差,這個誤差最終會導致位置上的不平衡。
5、本文PID參數的確定采用的是試湊法,即通過控制經驗和多次系統調試來確定參數,往往比較繁瑣,難以達到期望的精度。而且雙回路控制比單回路控制的難度更大。這種情況下可以采用極點配置法或擴充臨界比例法等。
參考文獻
1、范成建等(2006).虛擬樣機軟件MSC.ADAMS應用與提高.北京市, 機械工業出版社.2、賈長治,殷軍輝(2010).MD ADAMS虛擬樣機從入門到精通.北京市, 機械工業出版社.3、姜學軍(2009).計算機控制技術.北京市,清華大學出版社.4、應再恩,平雪良.(2012).“基于ADAMS和MATLAB的雙回路PID控制倒立擺聯合仿真.” 機械傳動(08): 64-67.5、楊世勇,徐莉蘋.(2007).“單級倒立擺的PID控制研究.” 控制工程(S1): 23-24+53.6、肖力龍(2007).直線一級倒立擺起擺與穩擺控制研究及控制系統設計, 中南大學.碩士: 77.
第四篇:關于ADAMS重型自卸車舉升機構的仿真優化研究論文
引 言
近年來,隨著經濟的發展,市場對重型自卸車的需求量大大增加,這類自卸車廣泛應用于使用條件比較惡劣的礦山工地,舉升機構是自卸車的核心機構,設計時既要考慮運動學問題,又要考慮機構的強度問題。若舉升機構設計不當,容易發生結構的早期斷裂現象。自卸車的舉升機構可分為直推式和連桿組合式兩大類。直推式設計簡單,易于計算,但油缸行程長,一般采用多級油缸,成本高。連桿組合式油缸行程短,可采用單級油缸,制造工藝簡單,機構經優化后可得到較小的油缸力曲線,但由于其結構復雜,設計計算比較困難。
傳統的設計方法是采用“作圖法” ,效率低且精度差。近來出現利用計算機編制優化程序進行設計的一些方法,計算精度得到了提高,但程序一般只針對一種類型的舉升機構,程序通用性差而調試工作量大,如何保證程序的可靠性也是令人頭疼的問題。隨著CAE技術的成熟,虛擬樣機技術得到了廣泛應用,工程技術人員可以利用CAD軟件建立三維機構模型,在CAE軟件中對其施加鉸鏈及運動約束,模擬現實中的機構運動并進行仿真優化,得到所需的設計數據,精確度高并大大縮短開發周期,降低了成本。
采用世界一流的多體動力學仿真軟件—— ADAM S的虛擬樣機技術,對某汽車廠重型自卸車的浮動油缸式舉升機構進行仿真優化研究,目的是對原有機構進行優化,在給定舉升質量和滿足最大舉升角的前提下,改變機構尺寸,使油缸舉升力最小,降低油缸的制造成本。虛擬樣機的建立
1.1 建立模型
ADAMS軟件的建模能力不強,虛擬樣機的三維模型可利用Catia、UG等三維CAD軟件建立,再導入ADAMS軟件中。本次設計為了簡化模型、加快設計進度,在ADAM S直接建立圖1所示的抽象模型,并不影響計算結果。
長方體為裝載貨物的車箱,總質量為40 t,假設在工作過程中總質量不發生變化;A 為后鉸鏈點, BD為拉桿, CE為油缸, DEF為三角板。A~ F 點均為圓柱副連接,油缸CE由兩個連桿組成,相對運動為滑動副,施加平移驅動。施加運動副時,要注意其方向正確性并不得有多余約束,否則不能完成運動仿真。
要找到一個最佳位置,使油缸舉升力最小,并滿足自卸車其它方面的要求。各點的初始位置可以由原車型各點的設計位置來確定, A 點為原點。
1.2 虛擬樣機的仿真
模型建立后進行一次仿真,油缸行程按850 mm,輸出油缸舉升力隨活塞行程的變化曲線(見圖2)。油缸舉升力最大值為(6.88× 105)N.1.3 模型的參數化
進行優化要定義設計變量,設計變量的值是可以改變的。以B~ F 點的x、y 坐標作為設計變量,當各點的坐標變化時,桿件和結構尺寸也發生相應的改變,系統自動修改模型,不需要人工干預,提高了優化效率。
定義設計變量的值時要注意它們的取值范圍,這個取值范圍取決于車箱底架及副車架的結構布置,并不與舉升機構產生干涉。將定義好的設計變量代入各點坐標中,即完成了虛擬樣機的參數化過程。
1.4 建立約束條件
為了使自卸車能將貨物卸干凈,舉升角應大于貨物的安息角。該型自卸車主要用于運載煤炭,煤炭的安息角為27°~ 45°,設計時最大舉升角取50°,在優化過程中需要滿足這一約束條件。定義約束條件時首先定義一個“測量”(取名ME A_ AN GL E)以獲得仿真過程中的舉升角.優化計算
前述工作完成后便可進行優化分析。在滿足約束條件的前提下,優化程序在設計變量的取值范圍內自動對其進行調整,最終得到使油缸力最小的設計變量值。軟件ADAMS /View 提供了一個友好的用戶界面,可以輸出各種力、位移、速度、加速度等曲線,便于用戶直觀了解在優化過程中約束條件、目標函數等“測量”的變化情況。
本次優化涉及十個設計變量,要在一次計算中同時對這么多的設計變量進行優化,往往由于計算過程中各設計變量的取值產生矛盾,而使計算失敗。因此,對于這種設計變量較多的情況,應先對部分設計變量進行優化,得到一個優化結果,再對其它設計變量進行優化。
為了確定第一次優化的設計變量,需要對每一個設計變量進行分析,研究其敏感度,即對目標函數的影響程度,選擇最高的變量作為第一次優化的設計變量結束語
本次優化的結果,確定了關鍵點的坐標,也就確定了機構的最佳尺寸。ADAMS仿真的另一個應用是求出支點(A、B、C、F 點)的反力,為車架和車箱的結構計算提供載荷條件。而舉升機構的進一步有限元計算也可以在ADAMS中進行,這時要建立機構的實體模型,通過CAE軟件(如Nastran、AN SYS等)轉換為中性文件,再導入ADAMS中計算。
第五篇:基于ADAMS與MATLAB的倒立擺聯合仿真實驗
基于ADAMS與MATLAB的倒立擺聯合仿真實驗
一、實驗目的
在傳統的機電一體化研究設計過程中,機械工程師和控制工程師雖然在共同設計開發一個系統,但是他們各自都需要建立自己的模型,然后分別采用不同的分析軟件,對機械系統和控制系統進行獨立的設計、調試和試驗,最后進行機械系統和控制系統各自的物理樣機聯合調試,如果發現問題又要回到各自的模型中分別修改,然后再聯合調試,顯然這種方式費時費力。
基于多領域的建模與聯合仿真技術很好的解決了這個問題,為機械和控制系統進行聯合分析提供了一種全新的設計方法。機械工程師和控制工程師就可以享有同一個樣機模型,進行設計、調試和試驗,可以利用虛擬樣機對機械系統和控制系統進行反復聯合調試,直到獲得滿意的設計效果,然后進行物理樣機的建造和調試。
ADAMS與MATLAB是機械系統仿真和控制系統仿真領域應用較為廣泛的軟件,其中ADAMS為用戶提供了強大的建模、仿真環境,使用戶能夠對各種機械系統進行建模、仿真和分析,具有十分強大的運動學和動力學分析功能;而MATLAB具有強大的計算功能、極高的編程效率及模塊化的建模方式,因此,把ADAMS與MATLAB聯合起來仿真,可以充分將兩者的優勢相結合,將機械系統仿真分析同控制系統設計有機結合起來,實現機電一體化的聯合分析。
本實驗以倒立擺為例,進行ADAMS與MATLAB的聯合仿真,對倒立擺的運動性能和運動規律進行分析。
二、實驗方法
軟件環境:MD ADAMS R3,MATLAB R2009b 2.1 建立倒立擺的動力學模型
啟動ADAMS/View模塊彈出如圖1所示對話框,建立小車及擺桿模型。首先選擇“Create a new model”選項,創建一個新的模型,將該文件保存在相應的文件夾下,本實驗將結果保存在E:daolibai_adams文件夾下,將文件名取為“daolibai_adams”,其余選項保持默認。注意,在ADAMS中路徑名和文件名最好采用英文字符,否則有可能在運行的過程中出現意想不到的錯誤。
圖1 啟動ADAMS/View模塊
進入ADAMS/View界面后,需要對相關參數進行設置。選擇菜單欄中的“Settings→Working Grid”選項,彈出如圖2所示的對話框,設置網格的大小。將“Spacing”設置為X:10mm,Y:10mm,其余參數保持默認。在“Settings”選項中還可以設置圖標的大小,單位等等參數,在本實驗中這些參數都保持默認即可。
圖2 設置網格的大小
與此同時,單擊菜單欄“View”選項下的“Coordinate Window”(或者按下鍵盤上的F4按鈕),如圖3所示。可隨時在窗口中觀察鼠標的當前空間坐標位置,方便我們進行建模。
圖3 打開鼠標當前空間位置觀察窗口
右鍵點擊ADAMS建模工具箱中的圖標,選擇工具Box,在視圖中(0,0,0)處建一個長、寬、高分別為30cm,20cm,20cm的長方體代替小車模型,如圖4所示。
圖4 長方體尺寸設置
圖5 在視圖中建立的長方體前視圖
長方體建立完畢后,需要進一步在視圖中調整其位置。在當前視角下,點擊工具箱中的圖標,進入如圖6所示的界面。在Distance選項中輸入15cm,選擇長方體,然后點擊向左的箭頭,小車模型即向左平移15cm。單擊工具箱中的按鈕,即可返回工具箱主界面。點擊圖標,切換到右視角視圖,再次運用按鈕,在Distance選項中輸入10cm,選擇長方體,然后點擊向右的箭頭,將小車模型向右平移10cm,如圖7所示。
圖6 將小車模型向左平移15cm
圖7 將小車模型向右平移10cm
小車模型位置修改完畢后,右鍵點擊小車模型,選擇Rename,將模型的名稱修改為xiaoche,如圖8所示。與此同時,在右鍵菜單中選擇Modify,將小車的質量修改為0.5KG,其修改方法如圖9所示。
圖8 修改模型名稱
圖9 修改小車模型的質量
至此,小車模型及參數設置完畢,接下來建立擺桿的模型。在建模工具箱中選擇(Cylinder)工具建立擺桿模型,其參數設置如圖10所示。
圖10 擺桿參數的設置
擺桿參數設置完畢后,沿小車垂直向上的方向建立該圓柱體,建好后單擊右鍵修改其特性參數,將部件名稱修改為baigan,將擺桿質量修改為0.2kg,轉動慣量修改為0.006kg·㎡。建好后,運用工具箱中的順時針旋轉5°,建完后的模型如圖11所示。
工具,將擺桿繞端點
圖11 倒立擺模型前視圖與三維視圖
倒立擺的三維模型建立好后,我們需要為模型添加相應的運動副和運動。小車與地面用平移副約束,右鍵單擊圖標,在彈出菜單中選擇工具,添加方式選擇2 Bod-1 Loc方式,分別選擇小車和大地,在小車質心處添加水平方向的平移約束副,如圖12。
圖12 在小車與大地之間添加移動副
擺桿與小車之間存在旋轉運動,故需要在小車與擺桿之間添加一個轉動副。單擊工具中的圖標,添加方式選擇2 Bod-1 Loc方式,分別選擇擺桿和小車,在擺桿與小車的鉸接處建立旋轉副,如圖13所示。
圖13 在擺桿與小車之間建立旋轉副JOINT_2
倒立擺模型的約束添加完畢之后,我們可以對模型進行運動測試。點擊工具,進入運動仿真測試對話框,設置仿真時間為1秒,步長為1000,如圖14所示。
圖14 運動仿真參數設置
點擊按鈕開始運動仿真測試,可以看到小車沿著水平方向作直線運動,擺桿繞著鉸接點作旋轉運動。
2.2 定義倒立擺機械系統的輸入輸出變量
1)定義輸入變量
本實驗中需要在ADAMS中定義一個狀態變量接收控制小車運動的水平力。選擇Build菜單下的System Elements創建一個名為controlforce的狀態變量,如圖15所示。
圖15 創建輸入狀態變量
由圖15可以看出F(time,?)后面輸入欄中的數值為0,表示該控制力的數值將從控制軟件的輸出獲得。
給小車定義一個水平力,單擊ADAMS工具箱中的工具,選擇Body Moving的建模方式,一次選擇小車質心作為力的作用點,選擇水平向右作為其加載方向(如圖16),這樣該水平力將一直隨著小車的移動而移動。
圖16 為小車添加水平方向作用力
上述過程完成以后,右鍵單擊該水平力,選擇Modify,將其函數值定義為VARVAL(.daolibai_adams.controlforce),以實時從狀態變量controlforce中接收力的數值,如圖17。
圖17 函數值的定義
2)定義輸出變量
定義輸出變量的方法與定義輸入變量的方法相同,定義ADAMS狀態變量以輸出動力學模型的運動狀態至控制軟件,本實驗就是要輸出擺桿的擺角。選擇Build菜單下的System Elements創建一個名為rotateangle的狀態變量,選擇擺桿的上端點和小車的鉸接點出的MARKER點為擺桿繞Z軸旋轉運動的參考點,如圖18所示。
圖18 定義輸出變量
其中,在F(time,?)后面的文本輸入欄輸入擺桿擺角表達式AZ(MARKER_11,MARKER_12),AZ函數用來測量繞Z軸旋轉的角度,本實驗中即表示擺桿繞著Z軸旋轉的角度。利用ADAMS工具箱中的工具,在擺桿的上端點創建一個測點MARKER_11,在小車上創建測點MARKER_12,此點為小車與擺桿的鉸接點。設置完畢后單擊OK按鈕保存設置。3)將狀態變量指定為輸入/輸出變量
上述狀態變量定義完成之后,還需要將定義好的狀態變量指定為輸入或輸出變量。
指定狀態變量controlforce為輸入變量。單擊主菜單Build→Data Elements→Plant→Plant Input→New后,彈出輸入變量定義對話框,如圖19所示。將Variable Name欄中輸入controlforce,然后單擊OK按鈕即完成設置。
圖19 輸入變量定義對話框
指定狀態變量rotateangle為輸入變量。單擊主菜單Build→Data Elements→Plant→Plant Output→New后,彈出輸入變量定義對話框,如圖20所示。將Variable Name欄中輸入rotateangle,然后單擊OK按鈕即完成設置。
圖20 輸出變量定義對話框 4)導出ADAMS模型
通過以上工作,已經在ADAMS機械系統模型中定義了同控制系統交互的相關狀態變量和函數,接下來需要利用ADAMS/Controls模塊將這些狀態變量定義為輸入輸出信號,并將相關信息導出,以便和其他控制程序連接。
單擊Controls菜單下的Plant Export子菜單,彈出如圖21所示的設置窗口。將輸出文件名修改為test123;在輸入信號定義欄中,單擊From Input按鈕后,彈出數據庫瀏覽窗口,選擇定義的PINPUT_1為輸入項,雙擊后,定義的狀態變量controlforce將自動出現在輸入信號一欄中,同理,輸出信號的設置方法同上。目標控制軟件下拉菜單可以根據需要選取,本實驗目標軟件選為MATLAB,其他選項保持默認。單擊OK按鈕,ADAMS將導出*.m文件,同時產生調用ADAMS/Solver的cmd文件和*.adm的ADAMS模型文件。
圖21 ADAMS變量導出設置 上述過程完成后,MATLAB已經可以讀取ADAMS模型的相關信息了。
2.3 在MATLAB/Simulink中導入ADAMS模型
1)變量的導入
啟動MATLAB后,在命令窗口中輸入導出的ADAMS模型名稱test123,在MATLAB窗口將出現如下信息:
>> clear all >> test123 ans = 26-Jun-2013 08:53:34 %%% INFO : ADAMS plant actuators names : 1 controlforce %%% INFO : ADAMS plant sensors names : 1 rotateangle 在MATLAB命令提示符下輸入who命令,顯示文件中定義的變量列表,在MATLAB命令窗口中返回如下結果:
Your variables are: ADAMS_cwd ADAMS_mode ADAMS_solver_type arch ADAMS_exec ADAMS_outputs ADAMS_static flag ADAMS_host ADAMS_pinput ADAMS_sysdir machine ADAMS_init ADAMS_poutput ADAMS_uy_ids temp_str ADAMS_inputs ADAMS_prefix ans topdir 可以選擇以上顯示的任何一個變量名,檢驗變量,例如,如果輸入ADAMS_outputs,則MATLAB將顯示在ADAMS中定義的輸出變量:
ADAMS_outputs = Rotateangle 注意:ADAMS導出的文件必須置于MATLAB工作目錄下,即ADAMS與MATLAB共用同一個工作目錄,否則上述過程不能進行。與此同時,還要把ADAMS/win32文件夾下的“adams_plant.mexw32”及ADAMS/Controls/win32/文件夾下的“plant.lib”放在ADMAS與MATLAB的共用工作目錄下。這兩個文件是adams_sub模塊的核心。ADAMS提供一個S函數,用于ADAMS和simulink聯合仿真的調度和通信,如果simulink找不到它,聯合仿真就不能進行。2)ADAMS模塊的導入
在MATLAB命令窗口中輸入“adams_sys”命令,即可導入ADAMS模塊,如圖22所示。
圖22 adams_sys模塊
3)仿真參數的設置
點擊圖22中的adams_sys模塊,即可進入adams_sub模塊,如圖23所示。
圖23 adams_sub模塊 點擊圖23中的MSC.Software模塊,彈出如圖24所示的對話框,在對話框中設置如下參數:
圖24 仿真參數的設置
將聯合仿真的通信間隔Communication Interval選項設置為0.001,該選項定義了ADAMS與MATLAB/Simulink交換數據的通信間隔,調整該參數將控制聯合仿真的速度,并影響計算的速度。
將simulation mode選項設置為continuous,即連續仿真模式。其余參數保持默認,單擊OK按鈕,保存參數設置。3)聯合仿真分析
在MATLAB/Simulink中建立如下控制框圖(圖25),設置仿真時間為5s。
圖25 聯合仿真控制框圖
點擊start命令,開始進行聯合仿真,幾秒鐘后,將彈出一個DOS窗口,顯示ADAMS在聯合仿真分析中的各種數據。聯合仿真結束后,仿真結果既可以在MATLAB/Simulink中查看,也可以在ADAMS后處理器中查看。圖26和圖27分別為Simulink模型中示波器輸出的擺桿擺角隨時間變換曲線和輸入力矩隨時間變化曲線。
圖26 擺桿擺角隨時間變化曲線 圖27 輸入力矩隨時間變化曲線
一、實驗結果
由圖26和圖27可以看出,擺桿的擺角在輸入力矩的作用下,轉角由0逐漸增大,當到達最大擺角(5°)時,保持不變。