单级倒立摆系统的极点配置与状态观测器设计.doc
文本预览下载声明
单级倒立摆系统的极点配置与状态观测器设计杨郁佳
倒立摆的运动方程并将其线性化
选取小车的位移,及其速度、摆的角位置及其角速度作为状态变量,即则系统的状态空间模型为
设M=2kg,m=0.2kg,g=9.81m/,则单级倒立摆系统的状态方程为
状态反馈系统的极点配置。
首先,使用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程序执行结果如下:
系统能控,系统的极点为
可以通过状态反馈来任意配置极点,将极点配置在
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,经过控制稳定在处。
状态观测器实现状态反馈极点配置。
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程序执行结果如下:
状态观测器矩阵
采用MATLAB/Simulink构造具有状态观测器的单级倒立摆状态反馈控制系统的仿真模型。
首先,在MATLAB的Command Window中输入各个矩阵的值,并且在模型中的积分器中设置非零初值:2。运行仿真程序,显示仿真曲线,如下。
对比两个仿真图,可以发现加上状态观测器对单级倒立摆的控制效果基本上无影响。
显示全部