当前位置:文档之家› 一级倒立摆地Simulink仿真

一级倒立摆地Simulink仿真

单级倒立摆稳定控制
直线一级倒立摆系统在忽略了空气阻力及各种摩擦之后,可抽象成小车和匀质摆杆组成的系统,如图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));
x0=[0.1 0 0.1 0];
[Y,X]=lsim(A1,B1,C1,D1,U,t,x0);
plot(t,Y);
legend('小车','倒立摆');
运行可得:
G=[-1 -1.5495 -18.68 -3.4559]
由图分析可得调节时间很长,所以增加Q的比重,将上程序中的x,y改为x=150,y=150.运行可得:
G=[-12.247 -9.3413 -41.934 -7.7732]
比较可得,控制效果明显改善。

但反馈增益变大,意味着控制作用变强,消耗能量变大。

将G放入系统中,进行simulink仿真可得:
仿真电路图:
仿真结果:X的响应图:
Θ的响应图:
五、写出本次仿真实验的心得体会。

本实验,从数学建模到仿真系统的搭建,再到加进控制环节进行实时控制,最后得出结果的过程中,参考了大量的资料,通过对比整合,设计出了适合自己的一套实验方法:倒立摆数学模型推导部分:首先用线性化数学模型,接着用动态系统空间状态方程法导出状态方程系数矩阵,然后用MATLAB对系统进行可控可观判断及进行几点配置,加入配置后在Simulink软件上进行系统仿真。

最后通过matlab求解线性二次型最优控制的G矩阵,然后加入形同进行Simulink 仿真。

通过本实验,掌握了倒立摆仿真的整个过程,熟悉了MATLAB的仿真软件Simulink的使用,也对系统控制有了较好的理解。

通过仿真,再次认识到了自动控制在改善系统性能方面的重要性,并激发了良好的关于系统控制方面的学习兴趣。

除此之外,通过本次大作业,让我学会了很多word的操作,在此基础上,相信在以后的学习将会有较大帮助。

相关主题