一级倒立摆地Simulink仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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));