目錄
1 倒立擺小車模型搭建
2倒立擺傳遞函數模型實現
3 控制系統仿真設計
3.1 仿真模型
3.2 控制系統搭建過程
3.2.1 PID控制器設計
3.2.2 模糊PID控制器設計
1 倒立擺小車模型搭建
倒立擺小車模型參考了《MATLAB建模與仿真》一書中的P342,主要參數爲M=0.98kg、m=0.4kg、b=0.15N/(m.s)、I=0.005kg.m2、l=0.4m、g=9.8N/kg.其具體含義如圖1-1所示。
通過模型看到,當擺杆夾角遠遠小於1弧度時,可以進行近似處理,從而令cosθ=-1,sinθ=-φ,(dθdt)2=0 。
可得微分方程如圖1-2所示。
然後可以建立起以擺杆角度爲輸出量,給予小車的推力爲輸入量的傳遞函數模型,如圖1-3所示
2倒立擺傳遞函數模型實現
我採用的是MATLAB R2017b,通過腳本文件編寫了GetPendulum函數,輸入小車質量,擺杆質量和擺杆長度即可得到倒立擺的傳遞函數。具體的代碼如圖2-1所示,調用過程如圖2-2所示。
3 控制系統仿真設計
3.1 仿真模型
基於模糊調參的PID倒立擺控制系統仿真模型如圖3-1所示,其中紅色框部分爲模糊控制和可調參數的PID控制,藍框部分爲單一的PID控制,通過一個階躍信號產生擾動,可以在二種控制方案之間進行對比實驗,這裏的模糊控制器選用帶Ruleviewer功能的模塊,可以在仿真時看到控制規律。同時也方便後面對規則進行調試更改。
3.2 控制系統搭建過程
3.2.1 PID控制器設計
3.2.2 模糊PID控制器設計
在命令行輸入fuzzy即可打開模糊控制器的規則設置界面,如圖3-3所示,我們可以在這裏創建輸入變量,輸出變量和規則庫。我選擇的是第一個,Mamdani類型,然後可以開始控制器的設計。
如圖3-4所示,爲控制器的基本設置,輸入變量有兩個,一個是擺杆角度,一個是角度的變化率,輸出變量爲三個,分別對應PID的三個參數,左側可以看到去模糊化的方法爲重心法。中間就是我們的規則庫。點擊可以進入詳細的配置界面,各變量具體設置如下圖所示:
如圖3-5所示,左側爲角度變量的取值範圍和隸屬度函數,右側爲角度對應時間的變化率,這裏我的範圍規定都是-5到5之間,隸屬度函數是三角形,實際使用時要根據輸入量的具體情況,串入一個Gain模塊,設置我們的比例因子,使輸入範圍在設置值之間。
輸出變量的設置如圖3-6所示,同樣採用三角形隸屬度函數,P的範圍設置爲110-120,I的範圍設置爲115-125,D的範圍設置爲80-90,通過不同的輸入值,可以相應選擇不同的PID參數。點擊圖3-4中間的模塊可以進入規則庫編輯界面,如圖3-7所示,可見,當角度和角度變化率都在mf2這個位置時,PID三個參數輸出爲mf2,按照這樣的方式,建立起完整的規則庫。
4 仿真結果與分析
如圖4-1所示,可以在仿真過程中實時預覽輸入輸出量,很直觀的看到隸屬度函數是如何對整個模糊空間進行切割的,又是如何根據重心法得出精確解的。
如圖4-2所示,爲階躍輸出響應曲線,其中紅色表示PID控制曲線,黑色表示模糊控制和PID結合的控制曲線,通過圖可以看到,PID有很大的超調量,但趨於穩定的速度更快,模糊控制曲線更爲平緩,且比PID控制更接近穩定值。
當採用隨機信號發生器作爲干擾的激勵源時,其響應曲線如圖4-3所示,可以看到,傳統的PID控制器基本已經失效了,完全隨着激勵而變化,但黑色線代表的模糊控制器,還可以保持住一定的穩定性。所以,通過實現可以知道,模糊控制PID更適用於環境參數容易變化的場合。