一级倒立摆地Simulink仿真

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

单级倒立摆稳定控制

直线一级倒立摆系统在忽略了空气阻力及各种摩擦之后,可抽象成小车和匀质摆杆组成的系统,如图1所示。

图1 直线一级倒立摆系统

图2 控制系统结构 假设小车质量M =0.5kg ,匀质摆杆质量m=0.2kg ,摆杆长度2l =0.6m ,x (t )为小车的水平位移,θ为摆杆的角位移,2

/8.9s m g =。控制的目标是通过外力u (t)使得摆直立向上(即0)(=t θ)。该系统的非线性模型为:

u ml x

m M ml mgl x ml ml J +=++=++22)sin ()()cos (sin )cos ()(θθθθθθθ ,其中231ml J =。 解:

一、 非线性模型线性化及建立状态空间模型

因为在工作点附近(0,0==θ

θ )对系统进行线性化,所以 可以做如下线性化处理:32

sin ,cos 13!2!θθθθθ≈-≈-

当θ很小时,由cos θ、sin θ的幂级数展开式可知,忽略高次项后,

可得cos θ≈1,sin θ≈θ,θ’^2≈0;

因此模型线性化后如下:

(J+ml^2)θ’’+mlx ’’=mgl θ (a)

ml θ’’+(M+m) x ’’=u (b) 其中23

1ml J = 取系统的状态变量为,,,,4321θθ ====x x x

x x x 输出T x y ][θ=包括小车位移和摆杆的角位移.

即X=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡4321x x x x =⎥⎥⎥⎥⎦

⎤⎢⎢⎢⎢⎣⎡''θθx x Y=⎥⎦⎤⎢⎣⎡θx =⎥⎦⎤⎢⎣⎡31x x 由线性化后运动方程组得

X1’=x ’=x2 x2’=x ’’=m m M mg 3)(43-+-x3+m

m M 3)(44-+u X3’ =θ’=x4 x4’=θ’’=ml l m M g m M 3)(4)(3-++x3+ml

l m M 3)(43-+-u 故空间状态方程如下:

X ’=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡'4'3'2'1x x x x =⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎣

⎡-++-+-03)(4)(300100003)(4300

0010ml l m M g m M m m M mg ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡4321x x x x + ⎥⎥⎥⎥⎥⎥⎥⎦

⎤⎢⎢⎢⎢⎢⎢⎢⎣⎡-+--+ml l m M m m M 3)(4303)(440 u

X ’=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡'4'3'2'1x x x x =⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-01818.31001000

06727.20000

10

⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡4321x x x x + ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-5455.408182.10 u

Y= ⎥⎦⎤⎢⎣⎡31x x =⎥⎦⎤⎢⎣⎡01000001 ⎥⎥⎥⎥⎦

⎤⎢⎢⎢⎢⎣⎡4321x x x x 二、通过Matlab 仿真判断系统的可控与可观性,并说明其物理意义。

(1)判断可控性

代码:

A=[0 1 0 0;

0 0 -2.627 0;

0 0 0 1;

0 0 31.1818 0];

B=[0;1.8182;0;-4.5455];

P=ctrb(A,B);

n=rank(P);

运行了得n= 4

所以P 为满秩,系统能控

(2)判断可观性

代码:

A=[0 1 0 0;

0 0 -2.627 0;

0 0 0 1;

0 0 31.1818 0];

B=[0;1.8182;0;-4.5455];

C=[1 0 0 0;

0 0 1 0];

P=obsv(A,C);

n=rank(P);

运行了得n= 4

所以P 为满秩,系统能观。

三、能否通过状态反馈任意配置系统的极点?若能,通过Matlab 仿真确定反馈控制规律K (如图2),使得闭环极点配置在j ±-=-=-=1,2,14.321λλλ上。并给出系统在施加一个单位脉冲输入时状态响应曲线;

答: 因为系统完全能控,所以能通过状态反馈任意配置系统的极点。

要将闭环极点配置在j ±-=-=-=1,2,14.321λλλ上,所以期望特征方程为 |I —(A-BK)|=()*(+2)*((+1)^2+1)

=^4+5^3+10^2+

+4 Matlab 求解K 如下:

A=[0 1 0 0;

0 0 -2.627 0;

0 0 0 1;

0 0 31.1818 0];

B=[0;1.8182;0;-4.5455];

J=[-1 -2 -1+i -1-i];

K=place(A,B,J);

运行得:

K=[ -0.089378 -0.22345 -9.0957 -1.1894];

未加入极点配置。

仿真图:

未进行极点配置仿真电路图(1)X的响应图:

Θ的响应图:

配置后:

加入极点配置仿真图(2)X的响应图:

Θ的响应图:

四、用MatLab中的lqr函数,可以得到最优控制器对应的K。要求用LQR控制算法控制倒立摆摆动至竖直状态,并可以控制倒立摆左移和右移;

欲对系统进行最优状态反馈设计,及小化性能指标为:

J=dt 编写matalab程序如下:

A=[0 1 0 0;

0 0 -2.627 0;

0 0 0 1;

0 0 31.1818 0];

B=[0;1.8182;0;-4.5455];

C=[1 0 0 0;

0 0 1 0];

D=[0;0]

x=1;

y=1;

Q=[x 0 0 0;

0 0 0 0;

0 0 y 0;

0 0 0 0];

R=1;

G=lqr(A,B,Q,R);

A1=[(A-B*G)];

B1=[B];

C1=[C];

D1=[D];

t=0:0.01:5;

U=zeros(size(t));

相关文档
最新文档