第一篇:基于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°)時,保持不變。
第二篇:基于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.
第三篇:基于一階倒立擺的matlab仿真實驗
成都理工大學工程技術學院 基于一階倒立擺的matlab仿真實驗
實驗人員:-------
-------學
號:--------
---------
實驗日期:20150618 摘要
本文主要研究的是一級倒立擺的控制問題,并對其參數進行了優化。倒立擺是典型的快速、多變量、非線性、強耦合、自然不穩定系統。由于在實際中有很多這樣的系統,因此對它的研究在理論上和方法論上均有深遠的意義。本文首先簡單的介紹了一下倒立擺以及倒立擺的控制方法,并對其參數優化算法做了分類介紹。然后,介紹了本文選用的優化參數的狀態空間極點的配置和PID控制。接著建立了一級倒立擺的數學模型,并求出其狀態空間描述。本文著重講述的是利用狀態空間中極點配置實現方法。最后,用Simulink對系統進行了仿真,得出在實際控制中是兩種比較好的控制方法。
Abstract
This paper mainly studies the level of the inverted pendulum control problem, and its parameters are optimized.Inverted pendulum is a typical rapid, multi-variable, nonlinear, strong coupling, natural unstable system.In practice, however, because there are a lot of such a system, so the study of it in theory and methodology have profound significance.This article first introduced the inverted pendulum, and simple of the inverted pendulum control method, made a classification and the parameter optimization algorithm is introduced.And then, introduced in this paper, choose the optimization of the parameters of state space pole configuration and PID control.Then set up the level of the mathematical model of inverted pendulum, and find out the state space description.This paper focuses on the pole assignment method is the use of state space.Finally, the system are simulated using Simulink, it is concluded that in the actual control is two good control method.This paper mainly studies the level of the inverted pendulum control problem, and its parameters are optimized.Inverted pendulum is a typical rapid, multi-variable, nonlinear, strong coupling, natural unstable system.In practice, however, because there are a lot of such a system, so the study of it in theory and methodology have profound significance.This article first introduced the inverted pendulum, and simple of the inverted pendulum control method, made a classification and the parameter optimization algorithm is introduced.And then, introduced in this paper, choose the optimization of the parameters of state space pole configuration and PID control.Then set up the level of the mathematical model of inverted pendulum, and find out the state space description.This paper focuses on the pole assignment method is the use of state space.Finally, the system are simulated using Simulink, it is concluded that in the actual control is two good control method.目 錄 引言..................................................4 1.1 倒立擺介紹以及應用.........................................4 1.2 倒立擺的控制方法...........................................5
2單級倒立擺數學模型的建立...............................6 2.1傳遞函數...................................................8 2.2狀態空間方程...............................................9
3系統Matlab 仿真和開環響應.............................11 4 系統設計.............................................15 4.1極點配置與控制器的設計....................................15 4.2系統仿真:................................................16 4.3仿真結果..................................................17 4.4根據傳遞函數設計第二種控制方法-----PID串級控制............18
5結 論
...............................................19引言
1.1 倒立擺介紹以及應用
倒立擺控制系統是一個復雜的、不穩定的、非線性系統,是進行控制理論教學及開展各種控制實驗的理想實驗平臺。對倒立擺系統的研究能有效的反映控制中的許多典型問題:如非線性問題、魯棒性問題、鎮定問題、隨動問題以及跟蹤問題等。通過對倒立擺的控制,用來檢驗新的控制方法是否有較強的處理非線性和不穩定性問題的能力。
通過對它的研究不僅可以解決控制中的理論和技術實現問題,還能將控制理論涉及的主要基礎學科:力學,數學和計算機科學進行有機的綜合應用。其控制方法和思路無論對理論或實際的過程控制都有很好的啟迪,是檢驗各種控制理論和方法的有效的“試金石”。倒立擺的研究不僅有其深刻的理論意義,還有重要的工程背景。在多種控制理論與方法的研究與應用中,特別是在工程實踐中,也存在一種可行性的實驗問題,使其理論與方法得到有效檢驗,倒立擺就能為此提供一個從理論通往實踐的橋梁,目前,對倒立擺的研究已經引起國內外學者的廣泛關注,是控制領域研究的熱門課題之一。
倒立擺不僅僅是一種優秀的教學實驗儀器,同時也是進行控制理論研究的理想實驗平臺。由于倒立擺系統本身具有的高階次、不穩定、多變量、非線性和強耦合特性,許多現代控制理論的研究人員一直將它視為典型的研究對象,不斷從中發掘出新的控制策略和控制方法,相關的科研成果在航天科技和機器人學方面獲得了廣闊的應用。二十世紀九十年代以來,更加復雜多種形式的倒立擺系統成為控制理論研究領域的熱點,每年在專業雜志上都有大量的優秀論文出現。因此,倒立擺系統在控制理論研究中是一種較為理想的實驗裝置。
倒立擺主要應用在以下幾個方面:(1)機器人的站立與行走類似于雙倒立擺系統,盡管第一臺機器人在美國問世至今已有三 十年的歷史,機器人的關鍵技術--機器人的行走控制至今仍未能很好解決。(2)在火箭等飛行器的飛行過程中,為了保持其正確的姿態,要不斷進行實時控制。
(3)通信衛星在預先計算好的軌道和確定的位置上運行的同時,要保持其穩定的姿態,使衛星天線一直指向地球,使它的太陽能電池板一直指向太陽。(4)偵察衛星中攝像機的輕微抖動會對攝像的圖像質量產生很大的影響,為了提高攝像的質量,必須能自動地保持伺服云臺的穩定,消除震動。
(5)為防止單級火箭在拐彎時斷裂而誕生的柔性火箭(多級火箭),其飛行姿態的控制也可
以用多級倒立擺系統進行研究。
由于倒立擺系統與雙足機器人、火箭飛行控制和各類伺服云臺穩定有很大相似性,因此對倒立擺控制機理的研究具有重要的理論和實踐意義。
1.2 倒立擺的控制方法
倒立擺有多種控制方法。對倒立擺這樣的一個典型被控對象進行研究,無論在理論上和方法上都具有重要意義。不僅由于其級數增加而產生的控制難度是對人類控制能力的有力挑戰,更重要的是實現其控制穩定的過程中不斷發現新的控制方法,探索新的控制理論,并進而將新的控制方法應用到更廣泛的受控對象中。當前,倒立擺的控制方法可分為以下幾類 :
(1)線性理論控制方法
將倒立擺系統的非線性模型進行近似線性化處理,獲得系統在平衡點附近的線性化模型,然后再利用各種線性系統控制器設計方法,得到期望的控制器。PID控制、狀態反饋控制、能量控制]、LQR控制算法是其典型代表。
(2)預測控制和變結構控制方法
預測控制:是一種優化控制方法,強調的是模型的功能而不是結構。變結構控制:是一種非連續控制,可將控制對象從任意位置控制到滑動曲面上仍然保持系統的穩定性和魯棒性,但是系統存在顫抖。預測控制、變結構控制和自適應控制在理論上有較好的控制效果,但由于控制方法復雜,成本也高,不易在快速變化的系統上實時實現
2單級倒立擺數學模型的建立
在忽略了空氣流動,各種摩擦之后,可將倒立擺系統抽象成小車和勻質桿組成的系統,如下圖1所示
圖1 單級倒立擺模型示意圖
那我們在本實驗中定義如下變量:
M
小車質量
(本實驗系統
1.096 Kg)m
擺桿質量
(本實驗系統
0.109 Kg)b
小車摩擦系數(本實驗系統
0.1 N/m/sec)l
擺桿轉動軸心到桿質心的長度(0.25 m)I
擺桿慣量
(0.0034 kg*m*m)F
加在小車上的力
x
小車位置
φ
擺桿與垂直向上方向的夾角 θ
擺桿與垂直向下方向的夾角(考慮到擺桿初始位置為豎直向下)下面我們對這個系統作一下受力分析。下圖2是系統中小車和擺桿的受力分析圖。其中,N和P為小車與擺桿相互作用力的水平和垂直方向的分量。
注意:在實際倒立擺系統中檢測和執行裝置的正負方向已經完全確定,因而矢量方向定義如圖,圖示方向為矢量正方向。
圖2 倒立擺模型受力分析
分析小車水平方向所受的合力,可以得到等式:
應用Newton方法來建立系統的動力學方程過程如下:
分析小車水平方向所受的合力,可以得到以下方程:
??F?bx??N M?x由擺桿水平方向的受力進行分析可以得到下面等式:
N?md2dt2
(x?lsin?)
?2sin???ml?cos??ml?x即 N?m???
把這個等式代入上式中,就得到系統的第一個運動方程:
??cos??ml??2sin??F??bx??ml?(M?m)?x(1)
為了推出系統的第二個運動方程,我們對擺桿垂直方向上的合力進行分析,可以得到下面方程:
d2P?mg?m2(lcos?)dt??sin??ml??2cos?即:P?mg??ml?
力矩平衡方程如下:
???Plsin??Nlcos??I?
注意:此方程中力矩的方向,由于?????,cos???cos?,sin???sin?,故等式前面有負號。
21I?mlN3P合并這兩個方程,約去和,由得到第二個運動方程:
43???mglsin???ml??cos?ml2?x(2)
設?????(?是擺桿與垂直向上方向之間的夾角),假設?與1(單位是
d?()2?0sin????,dtcos???1,弧度)相比很小,即?《1,則可以進行近似處理:。用u來代表被控對象的輸入力F,線性化后兩個運動方程如下:
4???g?????x?3l?????u???bx??ml?x?(M?m)?(3)
2.1傳遞函數
對方程組(3)進行拉普拉斯變換,得到
?422?l?(s)s?g?(s)?X(s)s?3?(M?m)X(s)s2?bX(s)s?ml?(s)s2?U(s)?(4)
注意:推導傳遞函數時假設初始條件為0。
由于輸出為角度?,求解方程組(4)的第一個方程,可以得到
4gX(s)?[l?2]?(s)3s
把上式代入方程組(4)的第二個方程,得到
?(I?ml2)g??(I?ml2)g?2(M?m)????(s)s?b??2??(s)s?ml?(s)s2?U(s)s?s??ml?ml
整理后得到傳遞函數:
ml2sqs?443?(s)?U(s)bml2qs3?(M?m)mgl2bmgls?sqq
22q?[(M?m)(I?ml)?(ml)] 其中
2.2狀態空間方程
系統狀態空間方程為
??AX?BuXy?CX?Du
???,?x方程組(3)對?解代數方程,得到解如下: ??x??x??4b3mg4??????xx??u(4M?m)(4M?m)(4M?m)??????????3b3g(M?m)3?????x??u??(4M?m)l(4M?m)l(4M?m)l?
整理后得到系統狀態空間方程:
1???0?x?4b????0??(4M?m)?x?????0??0?????3b??0??????(4M?m)l?03mg(4M?m)03g(M?m)(4M?m)l0?0??x??4???0?????x?(4M?m)??????u1?????0?3??????0?????????(4M?m)l??
?x?????x??1000??x?0??y???????????0?u?0010??????????????
帶入參數可得系統的狀態空間方程:
???0?x10?????0-0.08831670.629317x???????0??00??????0-0.23565527.8285?????0??x??0??x????0.883160???????u??1???0???????0??2.35655???? ???x?????x??1000??x?0??y???????????0?u?0010?????????????? 3系統Matlab 仿真和開環響應
系統開環穩定性分析
num=[2.35655 0 0];den=[1 0.088167-27.9169-2.30942];sys=tf(num,den)[z,p,k]=tf2zp(num,den);step(sys)%階躍響應曲線: grid on
階躍響應曲線
rlocus(sys)%根軌跡
根軌跡
bode(sys)%波特圖
[A,B,C,D]=tf2ss(num,den);Q=ctrb(A,B)rank(Q)%系統能控性分析
Q =
1.0000-0.0882 27.9247 0 1.0000-0.0882 0 0 1.0000
ans = 3
由得到的rank(Q)的值可知,原系統的能控性矩陣為3,所以我們可知原系統是不能控的。m=obsv(A,C)rank(m)m = 2.3565 0 0-0.2078 65.7876 5.4423 65.8059-0.3580-0.4798
ans = 3 由得到的rank(m)的值可知,原系統的能觀性矩陣為3,所以我們可知原系統是能觀的。eig(A)ans =
5.2810-5.2864-0.0827
由eig(A)的值可知系統是不穩定的。4 系統設計
4.1極點配置與控制器的設計
采用極點配置法設計多輸出的倒立擺系統的控制方案。可以用完全狀態反饋來解決,控制擺桿和小車的位置。
設計狀態反饋陣時,要使系統的極點設計成兩個主導極點和兩個非主導極點,用二階系統的分析方法確定參數。
根據系統性能要求: 最大超調量10%,調節時間為 1s
-??運用超調量計算公式:?%?? 得到??0.707wn?5.66
1-?2 t?3
s??n P2=-4-4.33j 得到兩個主導極點為:P1=-4+4.33j P4=-20 選取兩個非主導極點:P3=-20 根據MATLAB求取狀態增益矩陣,程序如下: a=[0 1 0 0 0-0.0883167 0.629317 0 0 0 0 1 0-0.23655 27.8285 0];b=[0 0.883167 0 2.35655];p=[-4+4.33j-6-4.33j-20-20];k=acker(a,b,p)k =
-740.4267-247.3685 646.9576 113.8866
4.2系統仿真:
根據狀態空間表達式建立一階倒立擺SimuLink仿真圖,如下:
4.3仿真結果
系統仿真圖(位置,速度,角度,角速度)
根軌跡
4.4根據傳遞函數設計第二種控制方法-----PID串級控制
PID控制器系統框圖:
經過幾次參數調試得出Kp=300,Ki=200,Kd=20滿足性能要求,其仿真圖形如下:
5結 論
本次設計主要通過PID串級控制和狀態空間極點配置的方法對直線一級倒立擺進行校正,通過此次課程,掌握MATLAB的基本使用方法。在課程設計過程中,培養了團隊協作能力,刻苦鉆研以及編程能力,為今后的學習工作打下了良好的基礎。經過這次課程,是我受益匪淺。
第一、學會了如何運用自己所學的知識結合實踐
第二、硬件最然需要不斷嘗試,但不是盲目的調試,而是需要有理論作為指導,指明調整的方向,這樣設計系統就會事半功倍。第三、Matlab等工具軟件的使用也大大提高了設計系統的速度。這些都是試驗中珍貴的收獲。
最后再一次感謝老師的耐心講解與精心的教誨,讓我渡過難關,順利完成實驗。
第四篇:線性系統倒立擺實驗
直線倒立擺控制及一級正擺位移和角度控制
一、實驗目的
(1)在Matlab Simulink環境下實現控制伺服電機;(2)完成直線倒立擺建模、仿真與分析;
(3)通過控制器設計使倒立擺系統穩定運行(擺角保持零度附近):
二、實驗內容及要求
(1)狀態空間極點配置控制實驗(一組極點為書上指定,任選另一組,但保證控制效果要好于前者)具體記錄要求:在穩定后(先截一張圖),疊加一擾動(僅角度擾動),記錄消除擾動的過程(再截一張圖),同時記錄你所選擇的期望極點組。
(2)線性二次最優控制LQR 控制實驗(R,Q選擇為書上指定,任選另一組,但保證控制效果要好于前者)具體記錄要求:在穩定后(先截一張圖),疊加一擾動(僅角度擾動),記錄消除擾動的過程(再截一張圖),同時記錄你所選擇的R,Q取值。(3)一級正擺位移和角度控制
借助于正擺實驗平臺,構思、設計控制策略和控制算法,并編程實現,通過實驗設備將物體快速、準確地運輸到指定的位置,且在吊運的整個過程(起吊,運輸,到達目的地)保持較小的擺動角。要求:系統啟動后,在當前位置給正擺施加一角度擾動,當平衡(擺角為零)后,讓小車直線運行30厘米,并快速保證平衡(擺角為零)。
三、實驗過程
1.實驗方法
(1)Matlab Simulink仿真環境下精確控制電機
在MATLAB Simulink仿真環境中,建立模型,然后進行仿真并分析結果。(2)直線倒立擺建模、仿真與分析
利用牛頓力學進行受力分析,然后建立直線一級倒立擺系統的數學模型;進行仿真分析。(3)狀態空間極點配置控制實驗
進入 MATLAB Simulink 實時控制工具箱“Googol Education Products”打開“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment PolesExperiments”中的“Poles Control M File1”。
圖1 直線一級倒立擺狀態空間極點配置實時控制模塊(程序)
(4)線性二次最優控制LQR 控制實驗
打開直線一級倒立擺 LQR 實時控制模塊,(進入 MATLAB Simulink 實時控制工具箱“Googol Education Products”打開“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment LQRExperiments”中的“LQR Control Demo”)。
圖2 直線一級倒立擺 LQR 控制實時控制模塊(程序)
(5)一級正擺位移和角度控制
(進入 MATLAB Simulink 實時控制工具箱“Googol Education Products”打開 “ Inverted PendulumLinear Inverted PendulumLinear 1-Stage PendulumExperiment LQR Control Experiments”中的“LQR Control Simulink”)
圖3 直線一級順擺 LQR 實時控制模塊(程序)
2.實驗裝置
觀察下圖我們我們可知直線單級倒立擺控制系統硬件包括計算機、I/O接口設備、伺服電機系統、倒立擺本體和光電碼盤反饋測量元件等幾大部件,它們正好組成了一個閉環系統。
圖4 一級倒立擺實驗硬件結構圖
對于倒立擺本體而言,可以根據光電碼盤的反饋通過換算獲得小車的位移,小車的速度信號可以通過差分法得到。擺桿的角度由光電碼盤檢測并直接反饋到I/O設備,速度信號可以通過差分法得到。計算機從I/O設備中實時讀取數據,確定控制策略(實際上是電機的輸出力矩),并發送給I/O設備,I/O設備產生相應的控制量,交與伺服驅動器處理,然后使電機轉動,帶動小車運動,保持擺桿平衡。
圖5是一個經典的倒立擺裝置圖形。小車由6V的直流電機通過齒輪和齒條機構來驅動。小車可以沿導軌做往復運動。小車位移通過一個額外的與電機齒輪嚙合的齒輪測得。小車上面通過軸關節安裝一個擺桿,擺桿可以繞軸做旋轉運動。系統的參數可以改變以使用戶能夠研究運動特性變化的影響,同時結合系統詳盡的參數說明和建模過程,我們能夠方便地設計自己的控制系統。
圖5 一級倒立擺實驗裝置圖
上面的倒立擺控制實驗儀器,包括:擺桿機構、滑塊導軌機構基座,其特征在于:其蝸桿通過軸承固定于基座上,與之嚙合的渦輪扇的軸通過軸承固定于動座下邊,大皮帶輪軸一端聯接電機,另一端電位計由支座固定于動座上并電機共軸,大皮帶輪與2個小皮帶輪通過皮帶連結,并通過軸承固定于動座之上;滑塊固定聯接于皮帶輪之間的皮帶上,同時滑塊與動座固定的導軌動配合;擺桿機構通過下擺支座與滑塊絞接;控制箱連電位計,電機。
四、實驗結果
(1)狀態空間極點配置控制實驗 K=-34.8233-17.4150
69.4100
12.4717
我們首先打開電源,輸入一組實驗指導書上指定的極點-10,-10,?2?23.2,?2?23.2 后得到如下提所示的圖。
圖6 直線一級倒立擺參數修改前穩定時的仿真結果圖
我們選擇的一組期望的閉環極點是:μ1=-8,μ2=-8,μ3=-2+2*sqrt(3)*i,μ4=-2-2*sqrt(3)*i得到的反饋增益陣為:K=[-34.8299,-17.4150,69.4100,12.4717]
圖7 直線一級倒立擺參數修改后擾動時的仿真結果圖
添加一擾動后,系統的輸出圖像如下圖所示,該擾動在0.5秒時加到系統中,上升時間為Tr=2s,最大超調量為0.635%,系統在4.5秒后回到最大誤差的5%范圍內,所以系統調節時間Ts=4s。
系統穩定時的輸出圖像如下圖所示,系統穩定時的輸出圖像如下圖所示,從圖中可以看出此時系統的位置Pos穩態誤差為0.06,角度Angle穩態誤差為-3.16。
添加一擾動后,系統的輸出圖像如下圖所示,該擾動在0.5秒時加到系統中,上升時間為Tr=2s,最大超調量為0.633%,系統在4.5秒后回到最大誤差的5%范圍內,所以系統調節時間Ts=4s。
實驗提高:
1.實驗目的
系統啟動后,在當前位置給正擺施加一角度擾動,當平衡(擺角近似為零,需要有程序自動判斷,不能只用停止若干秒)后,讓小車直線運行40厘米,并快速保證平衡(擺角為零).2.實驗原理
為了實現上述實驗目的,我們使用LQR控制器,對其進行配置Q11=1500,Q33=700,R=5。K=17.3205,得到K=17.3205 8.6802-11.5153-0.5016,因為在上述過程中要求指定位置的快速穩定,并且在移動過程要保持最小角。用一個SWITCH開關來控制選擇輸入位置,具體的設計圖如下圖所示:
3.實驗結果
實驗結果如下圖所示
運行1.5秒后,讓最大值為0.4的斜坡信號接入,得到Qmax=17.1°,小車能很快的移到指定位置。(3)實驗結果分析
極點配置的實驗,輸入參數后從起擺到穩定時間適中,穩態后震蕩比LQR大,但振蕩頻率要小。對于LQR控制實驗的結果與預期基本相符,當我們輸入更大參數時,擺桿起擺后到達平衡所需時間會變短,但是左右位移會變大,穩定后的擺角震蕩的幅度會變小,這些變化與我們對實驗的實驗預期較吻合,這是因為Q是誤差的權矩陣,Q增大證明指標更看重誤差,于是會用相對大的能量來使靜態誤差更快的減小,于是過渡時間變小,超調變大,穩態誤差變小。對于一級正擺位移和角度控制實驗,我們小組提出了多種方法,最終選擇了如上圖所示的方法,基本實現了要求,選擇角度變化最大值越小,則穩定所需要的時間就越大,經過多次試驗,我們選擇了如上圖所示的一組參數。
第五篇:amesim與matlab聯合仿真步驟(自己總結)(精)
Amesim 與 matlab 聯合仿真參數設置 實驗軟件平臺
Matlab2009a , amesimR8a , VC6.0 企業版(英文版 步驟: 1 將 VC++中 的 “vcvar32.bat” 文 件 從 Microsoft Visual C++目錄(通常是.Microsoft Visual StudioVC98Bin 中拷 貝至 AMESim 目錄下。設置環境變量:我的電腦〉環境變 量。設置 AMESim 環境變量:變量名 AME ,值為其安裝路 徑如安裝在 C 盤中則值為 C:+amesim 安裝路徑。設置 Matlab 環境變量:變量名 MATLAB 值為 D:MATLAB,此 處我安裝的 matlab 在 D 盤根目錄下。確認在系統環境變量 PATH 中包含系統安裝目錄 C:WINDOWSsystem32 3 在 Matlab 的目錄列表里加上 AMESim 與 Matlab 接口文 件所在的目錄 %AME%matlabamesim。File-〉 Set Path-〉 Add Folder 加 上 需 要 聯 合 仿 真 的 amesim 文 件 目 錄 和 C:AMEsimmatlabamesim(注 意 R8A 版 本 是
將 %AME%scriptingmatlabamesim 設置到 MATLAB 路徑中 加入 matlab 默認路徑中 將聯合仿真的許可證文件 licnese.dat 拷貝到 AMESim 安 裝目錄下的 licnesing 文件夾中 確認是否在 AMESim 中選擇 VC 作為編譯器。具體操作 在 AMESim-〉 Opions-> AMESim Preferences->Compilation/Parameters中。.在 MATLAB 命令窗口中輸入命令 Mex-setup ,選擇 VC 作為編譯器
注意點: 1, Vc 建議安裝企業版而且是英文的,其第一次打開安裝 文件安裝并不完全,重啟動以后再次點安裝文件,會出現于 第一次安裝文件不同的界面,就說明沒有安裝完全
2, Matlab 的安裝目錄和 amesim 的安裝目錄都不能在中文 路徑下,而去文件夾的名稱不能有空格
3, 聯合仿真設置成功的標志 : 可以運行 amesim-〉 HELP-〉 GET AMESIM DEMO-〉 interface-〉 amesimsimulink 下的范例
4, 如果運行的現實找不到 matlab bin 則說明系統環境變 量中沒有設置 matlab 路徑,設置方法見上面,再重啟電腦, 再次用 amesim 打開范例并到參數模式下, 運行 TOOLS-〉 Start matlab ,系統會調用 matlab 程序,再在打開的 matlab 中找 到與 amesim 中打開的文件同目錄且同名的.mdl 文件,在 matlab 中運行仿真, 如果沒有錯誤則在 amesim 中進入仿真 模式打開相應的元件就可
以看到曲線(注意在 amesim 中不用運行仿真 如果上面設置成功下面不用看 下面給出 amesim4.0 版本設置方法
為了實現二者的聯合仿真,需要在 Windows2000 或更高級 操作系統下安裝 Visual C++ 6.0,AMESim4.2以上版本與 MATLAB6.1上版本(含 Simulink 1.將 VC++中 的 “vcvar32.bat” 文 件 從 Microsoft Visual C++目錄(通常是.Microsoft Visual StudioVC98Bin 中拷 貝至 AMESim 目錄下。
2.環境變量確認: 1, 選擇“ 控制面板-系統” 或者在“ 我的電腦” 圖標上 點右鍵,選擇“ 屬性”;
2, 在彈出的“ 系統屬性” 窗口中選擇“ 高級” 頁,選擇 “ 環境變量”;
3, 在彈出的“ 環境變量” 窗口中找到環境變量“ AME ” , 它的值就是你所安裝 AMESim 的路徑,選中改環境變量;4, 點擊“ 確認” 按鍵,該變量就會加到系統中;5, 如上 法確認環境變量 “ MATLAB", 該 值 為你所安裝 的 MATLAB 的路徑 3.確認是否在 AMESim 中選擇 VC 作為編譯器。具體操作 在 AMESim-〉 Opions-> AMESim Preferences->Compilation/Parameters中。
4.在 MATLAB 命令窗口中使用 Mex – setup , 選擇 VC 作為 編譯器。5.在 Matlab 的目錄列表里加上 AMESim 與 Matlab 接口文 件所在的
目錄 %AME%matlabamesim,其中 %AME% 是 AMESim 的 安 裝 目 錄 , 如 果 安 裝 在 C:AMEsim , 則 就 加 上 C:AMEsimmatlabamesim。
6.The name of the S-Function is the name of the system with an ‘_’ added.7.The input of the interface block in AMESim has its ports in reverse order compared with Simulink.(注意 : 這里的模塊的輸入口是指在 matlab 中顯示 的輸入口,而且在 matlab 中的輸出口和 simulink 中的接口 是對應的.可以參考幫助文件,里面有詳細的提示 8.Remember to change from Parameters to Run mode in AMESim before running the simulation in Simulink or to use File->Write aux.files.注意 : 如果上面的設置還是不成功 , 甚至運行 Amesim 中自帶的范例
也會出錯 , 那可能是你的軟件本身就有問題 , 可以下載一個補 丁就能解決.