单级倒立摆系统的极点配置与状态观测器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单级倒立摆系统的极点配置与状态观测器设计
14122156 杨郁佳
(1)倒立摆的运动方程并将其线性化
选取小车的位移z ,及其速度z 、摆的角位置θ及其角速度θ
作为状态变量,即T
x z z θθ⎡⎤=⎢⎥⎣
⎦ 则系统的状态空间模型为 01000100000010()1000mg M M x u M m g Ml Ml x ⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥+-⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦ []1000y x
= 设M=2kg ,m=0.2kg ,g=9.81m/2
s ,则单级倒立摆系统的状态方程为
(101001010)
01020.500013030
011040.54x x x x u x x x x ⎡⎤⎢⎥⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎢⎥⎣⎦⎣⎦⎣⎦⎢⎥⎣⎦
[]12100034x x y x x ⎡⎤⎢⎥
⎢⎥=⎢⎥⎢⎥⎣⎦
(2)状态反馈系统的极点配置。
首先,使用MATLAB ,判断系统的能控性矩阵是否为满秩。
MATLAB 程序如下:
A=[0 1 0 0; 0 0 -1 0; 0 0 0 1; 0 0 11 0];
B=[0; 0.5; 0; -0.5];
C=[1 0 0 0];
D=0;
rct=rank(ctrb(A,B))
[z,p,k]=ss2zp(A,B,C,D)
MATLAB 程序执行结果如下:
系统能控,系统的极点为
1=0
λ
2=0
λ
3=3.3166
λ
4=-3.3166
λ
可以通过状态反馈来任意配置极点,将极点配置在
1=-3
λ*
2=-4
λ*
3=-5
λ*
4=-6
λ*
MATLAB程序如下:
A=[0 1 0 0; 0 0 -1 0; 0 0 0 1; 0 0 11 0]; B=[0; 0.5; 0; -0.5];
P=[-3 -4 -5 -6];
K=place(A,B,P)
MATLAB程序执行结果如下:
因此,求出状态反馈矩阵为
K=[-72.0 -68.4 -332.0 -104.4]
采用MATLAB/Simulink构造单级倒立摆状态反馈控制系统的仿真模型。
首先,在MATLAB的Command Window中输入各个矩阵的值,并且在模型中的积分器中设置非零初值:2。运行仿真程序,显示仿真曲线,如下。
处。
仿真结果表明倒立摆的杆子与数值方向的偏角从初值2,经过控制稳定在=0
(3)状态观测器实现状态反馈极点配置。
MATLAB程序如下:
A=[0 1 0 0; 0 0 -1 0; 0 0 0 1; 0 0 11 0];
B=[0; 0.5; 0; -0.5];
C=[1 0 0 0];
rob=rank(obsv(A,C))
MATLAB程序执行结果如下:
Rob=4说明系统能观,可以设计状态观测器。取状态观测器的特征值为-3,-4,-5,-6 MATLAB 程序如下:
A=[0 1 0 0; 0 0 -1 0; 0 0 0 1; 0 0 11 0];
A1=A ’;
C=[1 0 0 0];
C1=C ’;
P=[-3 -4 -5 -6];
H1=place(A1,C1,P);
H=H1’
MATLAB 程序执行结果如下:
状态观测器矩阵[]18 130 540 1790T
H =--
采用MATLAB/Simulink 构造具有状态观测器的单级倒立摆状态反馈控制系统的仿真模型。
首先,在MATLAB的Command Window中输入各个矩阵的值,并且在模型中的积分器中设置非零初值:2。运行仿真程序,显示仿真曲线,如下。
对比两个仿真图,可以发现加上状态观测器对单级倒立摆的控制效果基本上无影响。