现代控制理论课程实验三:一阶倒立摆的LQR控制器设计
現代控制理論課程實驗三:一階倒立擺的LQR控制器設計
- 一、實驗目的
- 二、實驗設備與軟件
- 三、實驗原理
- 3.1、被控對象模型及其線性化
- 3.2、時不變線性連續系統的狀態反饋控制與線性二次型最優控制LQR
- 3.3、實驗平臺的基本原理與使用指南
- 四、實驗內容
- 4.1、MATLAB仿真結果
- 4.2、MATLAB程序如下
- 4.2.1、判斷系統的能控與能觀性
- 4.2.2、求系統的極點
- 4.2.3、進行極點配置
- 4.3、線性二次型最優控制LQR求出配置極點
- 五、實驗室運行結果
- 六、實驗總結
一、實驗目的
1、理解并掌握線性狀態反饋控制的原理和方法;
2、理解并掌握LQR控制器設計方法;
3、練習控制性能比較與評估的方法。
二、實驗設備與軟件
實驗設備
- 倒立擺實驗臺
實驗軟件
- MATLAB軟件
三、實驗原理
3.1、被控對象模型及其線性化
倒立擺系統的各量含義與關系如下表和下圖。
根據牛頓定律建立系統垂直和水平方向的動力學方程,計及 u = F ,可得到
如下所示
該狀態方程輸入是加速度,輸出是小車位置和擺桿角度。而小車的位置和擺桿角度以及它們的導數均可以通過傳感器測量,所以在系統可控制的情況下,可以利用狀態反饋綜合控制器改善性能。
3.2、時不變線性連續系統的狀態反饋控制與線性二次型最優控制LQR
- 對時不變線性連續系統
3.3、實驗平臺的基本原理與使用指南
倒立擺系統的控制結構框圖如下
“Pendulum”模塊內部包含三種模塊,每種模塊的具體功能是通過S-Function實現的,這里不做介紹。其中“Set Car’s Vcc and Vel”模塊的作用是設置小車運動的速度和加速度,“Get Car’s Position”模塊的作用是讀取小車當前的實際位置,“Get Pend’s Angle”的作用是角度編碼器讀取擺桿當前擺起的實際角度,該角度順時針為“+”,逆時針為“-” (以豎直向下的狀態為起始狀態,見圖1)。這里需要注意的是,由于編碼器所讀脈沖的正負號與實際需要的數符號相瓣,所以編碼器輸出經過一個負的比例增益后轉化為輸出角度
另外,在Simulink中搭建系統模型時,需要將Inverted_Pendulum_RealTime_lib中的GT400-SV Initialization模塊放到編輯的模型中。
四、實驗內容
動手實驗與分析:
基于式(6)所示的倒立擺模型(控制擺角和位置),根據原系統的特點設計LQR最優控制器,并分析參數 和 陣的選取對系統的影響。實物實驗前先進行理論分析計算(包括能控性分析和穩定性分析,指標轉化計算,可以編制相應的程序計算,也可以手算),并在MATLAB/Simulink中進行離線數值計算分析,調整相關參數,合適后在倒立擺平臺上做在線實驗,比較仿真結果與實驗結果。
4.1、MATLAB仿真結果
系統的MATLAB/Simulink仿真圖如下
4.2、MATLAB程序如下
clear;A = [ 0 1 0 0; 0 0 0 0; 0 0 0 1; 0 0 29.4 0 ]; B = [ 0 1 0 3 ]'; C = [ 1 0 0 0; 0 0 1 0 ]; D = [ 0 0 ]';Gs = ss(A, B, C, D); Qc = ctrb(A, B); % 可控矩陣 Qo = obsv(A, C); % 可觀測矩陣 rankQc = rank(Qc); % 求可控矩陣的秩 rankQo = rank(Qo); % 求可控矩陣的秩if rankQc == 4disp('系統可控'); elsedisp('系統不可控'); endif rankQo == 4disp('系統可觀'); elsedisp('系統不可觀'); end4.2.1、判斷系統的能控與能觀性
判斷系統的能控與能觀性運行如下
>> shiYan3 系統可控 系統可觀- 由運行結果可知,系統可控、客觀。
4.2.2、求系統的極點
求系統的極點的代碼如下
P = poly(A); % 特征多項式 rootP = roots(P); % 極點 disp(rootP);求系統的極點運行結果如下
>> shiYan3 系統可控 系統可觀005.4222-5.4222- 可以知道系統有一個極點在右邊,系統不穩定。
4.2.3、進行極點配置
ζ=0.8、ζ=0.707、ζ=0.316
設計狀態反饋陣時,要使系統的極點設計成具有兩個主導極點,兩個非主導極點,這樣就可以用二階系統的分析方法進行參數的確定。我們設置系統的最大超調量小于等于8%,調節時間為小于等于5 S。運用超調量的計算公式可以計算出ε= 0.63;ts=5s,可以求得Wn≥0.95。用極點公式為P1,2=-εw + iw√1-εz,得到兩個配置的共軛極點為: -0.6士0.74i。選取非主導極點距虛軸的距離為主導極點距虛軸的距離的5倍以上:所以可以兩個非主導極點為:-10。
進行極點配置MATLAB程序代碼如下:
p = [-0.6 + 0.74j -0.6 - 0.74j -10 -10]; % 極點配置 K = acker(A, B, p); disp(K);進行極點配置運行如下
-3.0871 -4.6990 52.4649 8.6330MATLAB仿真如下
- 由仿真結果可知,系統的調節時間5s左右,系統的擺桿最終穩定在0的位置。
4.3、線性二次型最優控制LQR求出配置極點
線性二次型最優控制LQR求出配置極點代碼如下所示
% 線性二次型最優控制LQR求出配置極點 Q = [1000 0 0 0; 0 0 0 0; 0 0 1000 0; 0 0 0 0]; R = 1; LQR_K = lqr(A, B, Q, R); disp(LQR_K);線性二次型最優控制LQR求出配置極點運行如下
-31.6228 -21.7963 83.4140 14.2355線性二次型最優控制LQR求出配置極點MATLAB仿真如下
- 由仿真結果可知,線性二次型最優控制LQR求出配置極點,使系統的調節時間降低到了2s,擺桿的擺動幅度更小。
五、實驗室運行結果
在實驗室進行實物倒立擺的控制,設計的控制模型與系統的運行結果如下
控制系統模型
系統正常運行的效果圖
系統在擾動下的運行結果
六、實驗總結
一階倒立擺的LQR控制器設計的實驗總結如下幾點所示
- 1、通過實驗,理解并掌握了線性狀態反饋控制的原理和方法。運用狀態反饋可以配置系統的極點到任意的位置。
- 2、理解并掌握LQR控制器設計方法。
- 3、通過實驗掌握了利用狀態反饋配置極點的前提:對系統進行能控與能觀性的判斷。
- 4、通過實驗,加強了動手實踐與理論相結合的能力。
總結
以上是生活随笔為你收集整理的现代控制理论课程实验三:一阶倒立摆的LQR控制器设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LQR控制实例、传递函数与状态矩阵相互转
- 下一篇: bada 2D游戏编程之八——逐帧动画