《倒立摆系统的建模及Matlab仿真.docx》由会员分享,可在线阅读,更多相关《倒立摆系统的建模及Matlab仿真.docx(16页珍藏版)》请在三一办公上搜索。
1、倒立摆系统的建模及Matlab仿真第 1 页 共 11 页 倒立摆系统的建模及Matlab仿真 1.系统的物理模型 考虑如图(1)所示的倒立摆系统。图中,倒立摆安装在一个小车上。这里仅考虑倒立摆在图面内运动的二维问题。 图(1)倒立摆系统 假定倒立摆系统的参数如下。 摆杆的质量:m=0.1g 摆杆的长度:l=1m小车的质量: M=1kg重力加速度:g=9.8m/s2 摆杆的质量在摆杆的中心。 设计一个控制系统,使得当给定任意初始条件(由干扰引起)时,最大超调量d 10%,调节时间ts 4s ,通过小车的水平运动使倒立摆保持在垂直位置。 2.系统的数学模型 2.1建立倒置摆的运动方程并将其线性化
2、。 为简化问题,在数学模型中首先假设:1)摆杆为刚体;2)忽略摆杆与支点之间的摩擦;3)忽略小车与接触面间的摩擦。 设小车瞬时位置为z,摆心瞬时位置为,在u作用下,小车及摆均产生加速远动,根据牛顿第二定律,在水平直线远动方向的惯性力应与u平衡,于是有 d2zd2M2+m2(z+lsinq)=u dtdt&cosq-mlq&2sinq=u &+mlqz即: (M+m)&绕摆轴转动的惯性力矩与重力矩平衡,因而有 第 2 页 共 11 页 d2m(z+lsinq)dt2lcosq=mglsinq &co2&2sin&coqzs+lqsq-lqqcoqs=gsinq 即: &以上两个方程都是非线性方程
3、,为求得解析解,需作线性化处理。由于控制的目的是保持倒立摆直&2q立,在试驾合适的外力条件下,假定很小,接近于零时合理的,则sinqq,cosq1,且可忽略q项。于是有 &=u &+mlqz (M+m)& z&+lq&=gq 联立求解可得 &z&=-mgMq+1Muq(M+m) &=Mlq-1Mlu2.2列写系统的状态空间表达式。 选取系统变量x1,x2,x3,x4, x=x1,x2,x3,x4T则 x&1=x2x&mg2=-Mx+13Mux& 3=x4x&(M+m)14=Mlx3-Mlu即 z100-mg000xd01dtz&=0&=001x+M0u=Ax+Buqq&00(M+0Mm)gMl
4、0-1Ml y=x1=1000x=Cx代入数据计算得到: 0100A=00-100001,B=010-1T,C=1000,D=0 00110 第 3 页 共 11 页 3.设计控制器 3.1判断系统的能控性和稳定性 010110103,rank(Qk)=4,故被控对象完全可控 AB=0-10-11-10-110Qk=BABA2B由特征方程 lI-A=l2(l2-11)=0解得特征值为 0,0,11。出现大于零的特征值,故被控对象不稳定 3.2确定希望的极点 希望的极点n=4,选其中一对为主导极点s1和s2,另一对为远极点,认为系统性能主要由主导极点决定,远极点只有微小影响。根据二阶系统的关系式
5、,先确定主导极点 -px1-V2sp=e0.1可得x0.59,于是取x=0.6;取误差带D=0.02有ts=4xwn,则wn=1.67,闭环主导极点为s1,2=-xwnj1-x2=-10.8j,远极点选择使它和原点的距离大于主导极点与原点距离的5倍,取s3,4=-15 3.3采用状态反馈方法使系统稳定并配置极点 状态反馈的控制规律为u=-kx,k=k0&=(A-BK)x+Bv,其特征多项式为 xk1k2k3;状态反馈系统的状态方程为lI-(A-BK)=l4+(k1-k3)l3+(k0-k2-11)l2-10k1l-10k0 希望特征多项式为 (l+15)2(l+1-0.8j)(l+1+0.8j
6、)=l4+32l3+286.64l2+499.2l+369 比较以上两式系数,解得状态反馈矩阵k=-36.9-49.92-334.54-81.92 第 4 页 共 11 页 4.设计全维观测器 4.1判断系统的能观性 10TT2T3AC(A)C(A)C=000100,rank(Qg)=4,故被控对象完全可观 0-1000-100Qg=C4.2确定观测器的反馈增益 )&=(A-GC)x+Bv+GCx;其特征多项式为 全维观测器的动态方程为xlI-(A-GC)=l4+g0l3+(g1-11)l2+(-11g0-g2)l+(-11g1-g3) 取观测器的希望极点为:-45,-45,-3+3j,-3-
7、3j;则希望特征多项式为 (l+15)2(l+1-0.8j)(l+1+0.8j)=l4+96l3+2583l2+13770l+34650 比较以上两式系数,解得观测器反馈矩阵G=962594-14826-64984 T5.降维状态观测器的设计 5.1建立倒置摆三维子系统动态方程 设小车位移z由输出传感器测量,因而无需估计,可以设计降维状态观测器,通过重新排列被控系统变量的次序,把需由降维状态观测器估计的状态变量与输出传感器测得的状态变量分离开。将z作为第四个状态变量,则被控系统的状态方程和输出方程变换为 &0-100z&1zdq0010q0=+u&01100q-1dtqz1000z0&zqy=
8、0001&qz 第 5 页 共 11 页 简记为:&1A11x&=x2A21A12x1b1+uA22x2b2x1y=y=0I1x2式中 &T,A11&qqx1=z0=00T-10110TT1,A12=000,b1=10-1 0x2=z=y,A21=100,A21=0,b2=0,I1=1 被控系统的n-q维子系统动态方程的一般形式为 &1=A11x1+v,z=A21x1 x&-A22y-b2u=y&=z& 式中v=A21y+b1u=b1u,z=yz为子系统输出量。故倒置摆三维子系统动态方程为 &0-10z&1zdq+0uq=001dt&-1q0110q&zz=100q&q5.2.判断子系统的可观
9、测性 A1=0 -1 0;0 0 1;0 11 0;C1= 1 0 0; Qg1=obsv(A1,C1);r=rank(Qg1) 运行Matlab程序;结果为r=3,故该子系统可观测 降维状态观测器动态方程的一般形式为式中h=h0T&=(A11-hA21)w+(b1-hb2)u+(A11-hA21)h+A12-hA22yw&1=w+hyxh1h2。考虑被控对象参数,单倒置摆降维观测器动态方程的一般形式为 -h0&=-h1w-h2-h02-h1-1010u+-hh+hy01w+012-h0h2+11h1110-1h0&1=w+h1yxh2第 6 页 共 11 页 5.3确定三维状态观测器的反馈矩
10、阵h 三维状态观测器的特征多项式为 lI-(A11-hA21)=l3+h0l2+(-11-h1)l+(-11h0-h2) 设希望的观测器闭环极点为-45,-3+3j,-3-3j,则希望特征多项式为 (l+45)(l+3+3j)(l+3-3j)=l3+51l2+288l+810 比较以上两式系数,解得h=51-299故所求三维状态观测器的动态方程为 -1371 -51-101-2302&=29901w+0u+13878yw1371110-166632 100051-299&10100)xw+yx=-1371y0010000016.Matlab仿真分析 6.1源程序 通过Matlab对用全维状态观
11、测器实现状态反馈的倒置摆系统进行仿真分析,下面是文件名为Inversion_pendulum_system.m的源程序 %倒立摆系统建模分析 %a)判断系统能控性和能观性 clear all; clc A=0 1 0 0;0 0 -1 0;0 0 0 1;0 0 11 0; B=0;1;0;-1; C=1 0 0 0; D=0; Uc=ctrb(A,B);rc=rank(Uc); n=size(A); if rc=n disp(The system is controlled.) elseif rc0)=0) disp(The system is unstable and the ubstab
12、le poles are:) v(find(Re0) else disp(The system is stable!); end % c)极点配置与控制器-全维状态观测器设计与仿真 pc=-1+0.8*j,-1-0.8*j,-15,-15;po=-45 -45 -3+3*j -3-3*j; K=acker(A,B,pc),G=acker(A,C,po) Gp=ss(A,B,C,D); %将受控过程创建为一个LTI对象 disp(受控对象的传递函数模型:); H=tf(Gp) Af=A-B*K-G*C; disp(观测器控制器模型:); Gc=ss(Af,-G,-K,0) %将观测器-控制器创建
13、为一个LTI对象 disp(观测器控制器的极点:); f_poles=pole(Gc) GpGc=Gp*Gc; %控制器和对象串联 disp(观测器控制器与对象串联构成的闭环系统模型:); Gcl=feedback(GpGc,1,-1) %闭环系统 disp(闭环系统的极点和零点:); c_poles=pole(Gcl) c_zeros=tzero(Gcl) lfg=dcgain(Gcl) %低频增益 N=1/lfg % 归一化常数 T=N*Gcl; %将N与闭环系统传递函数串联 x0=100 10 30 10 0 0 0 0;%初始条件向量 t=0:0.01:1; %时间列向量 r=0*t;
14、 %零参考输入 y t x=lsim(T,r,t,x0); %初始条件仿真 plot(t,x(:,1:4),-.,t,x(:,5:8) %由初始条件引起的状态响应 title(bf状态响应) legend(x1,x2,x3,x4,x1hat,x2hat,x3hat,x4hat) figure(2) step(T) title(bf阶跃响应) figure(3) impulse(T) title(bf脉冲响应) 第 8 页 共 11 页 6.2 程序运行结果 The system is controlled. The system is observable. P = 1 0 -11 0 0 v
15、 = 0 0 3.3166 -3.3166 The system is unstable and the ubstable poles are: ans = 3.3166 K = -36.9000 -49.9200 -334.5400 -81.9200 G = 96 2594 -14826 -64984 受控对象的传递函数模型 Transfer function: s2 - 1.776e-015 s - 10 - s4 - 11 s2 观测器控制器模型: a = x1 x2 x3 x1 -96 1 0 x2 -2557 49.92 333.5 x3 1.483e+004 0 0 x4 6.49
16、5e+004 -49.92 -323.5 b = u1 x1 -96 x2 -2594 x3 1.483e+004 x4 6.498e+004 c = x4 0 81.92 1 -81.92 第 9 页 共 11 页 x1 x2 x3 x4 y1 36.9 49.92 334.5 81.92 d = u1 y1 0 Continuous-time model. 观测器控制器的极点: f_poles = 1.0e+002 * -1.4948 + 1.8786i -1.4948 - 1.8786i 1.7424 -0.0328 观测器控制器与对象串联构成的闭环系统模型: a = x1 x2 x3
17、x1 0 1 0 x2 0 0 -1 x3 0 0 0 x4 0 0 11 x5 96 0 0 x6 2594 0 0 x7 -1.483e+004 0 0 x8 -6.498e+004 0 0 x6 x7 x8 x1 0 0 0 x2 49.92 334.5 81.92 x3 0 0 0 x4 -49.92 -334.5 -81.92 x5 1 0 0 x6 49.92 333.5 81.92 x7 0 0 1 x8 -49.92 -323.5 -81.92 b = u1 x1 0 x2 0 x3 0 x4 0 x5 -96 x6 -2594 x7 1.483e+004 x8 6.498e+
18、004 c = x4 x5 0 0 0 36.9 1 0 0 -36.9 0 -96 0 -2557 0 1.483e+004 0 6.495e+004 第 10 页 共 11 页 x1 x2 x3 x4 x5 x6 x7 x8 y1 1 0 0 0 0 0 0 0 d = u1 y1 0 Continuous-time model. 闭环系统的极点和零点: c_poles = -45.0000 -45.0000 -15.0001 -14.9999 -3.0000 + 3.0000i -3.0000 - 3.0000i -1.0000 + 0.8000i -1.0000 - 0.8000i c_zeros = 3.1623 0.2263 -0.1707 -3.4312 -3.1623 lfg = 1.0000 N = 1.0000 由控制器全维状态观测器实现的倒立摆系统在初始条件下引起的状态变量的响应、输出变量的阶跃响应和脉冲响应如下图 )图(2)状态响应x(t)和x(t) 第 11 页 共 11 页 图(3)阶跃响应y(t) 图(4)脉冲响应y(t)