单级倒立摆系统的极点配置与状态观测器设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单级倒立摆系统的极点配置与状态观测器设计

14122156 杨郁佳

(1)倒立摆的运动方程并将其线性化

选取小车的位移z ,及其速度z g 、摆的角位置θ及其角速度θg

作为状态变量,即T x z z θθ⎡⎤=⎢⎥⎣

⎦g g 则系统的状态空间模型为 01000100000010()1000mg M M x u M m g Ml

Ml x ⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥+-⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦g []1000y x

= 设M=2kg ,m=0.2kg ,g=9.81m/2

s ,则单级倒立摆系统的状态方程为 (1010)

01010

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。运行仿真程序,显示仿真曲线,如下。

o处。仿真结果表明倒立摆的杆子与数值方向的偏角从初值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。运行仿真程序,显示仿真曲线,如下。

对比两个仿真图,可以发现加上状态观测器对单级倒立摆的控制效果基本上无影响。

相关文档
最新文档