资源描述
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。
单倒置摆控制系统的建模及MATLAB仿真
背景:
单倒置摆系统是一个不稳定系统, 当给系统施加外力时, 倒置摆向左或向右倾倒, 影响系统稳定, 同时单倒置摆系统典型的高阶次、 多变量、 严重不稳定和强耦合的非线性系统。本文经过建立单倒置摆系统的数学模型,应用状态反馈控制配置系统极点设计单倒置摆系统的控制器,实现其状态反馈,从而使单倒置摆系统稳定工作。再经过MATLAB软件中Simulink工具对单倒置摆的运动进行计算机仿真。首先分别用经典控制理论和现代控制理论的知识推导了单倒置摆系统的数学模型; 其次分别使用模糊控制理论、 状态空间法、 模糊控制等方法对单级单倒置摆系统进行了实际系统实时控制效果的实验对比,从理论和实验方法上讨论了这类典型非线性自不稳定系统的线性控制器的设计方法及其实际控制效果的特点; 最后提出了单倒置摆控制系统各部分选型及实现方案,设计了单倒置摆系统的机械构。
问题:
本文就当倒置摆无论出现向左或向右倾倒时, 经过控制直流电动机, 使小车在水平方向运动, 倒置摆能否保持在垂直位置上为问题进行研究。以此问题为核心, 就单倒置摆系统进行分析和研究,建立单倒置摆系统的数学模型,采用状态反馈极点配置的方法设计控制器,并应用MATLAB软件进行仿真。
论述:
一、 单倒置摆系统的建模
1.系统的物理模型
如图1 所示,设摆的长度为L、 质量为m, 用铰链安装在
质量为M的小车上。小车由一台直流电动机拖动, 在水
平方向对小车施加控制力f=u,相对参考系产生位移x=z.若
不给小车施加控制力, 则倒置摆会向左或向右倾倒。这样,
整个单倒置摆系统就受到重力 图1
, 水平控制力和摩擦力的3个外力的共同作用。
2. 系统的数学模型
在系统数学模型中, 忽略摆杆质量、 执行电动机惯性以及摆轴、 轮轴=轮与接触面之间的摩擦及风力。设小车瞬时位置为x=z,倒置摆出现的偏角为θ, 则摆心瞬时位置为( z+lsin ) 。在控制力u作用下, 小车及摆均产生加速运动。根据牛顿第二定律, 在水平直线运动方向的惯性力应与控制力u平衡, 求得系统的运动方程为:
即 ( 1)
由于绕摆轴旋转运动的惯性力矩应与重力矩平衡, 因而有
即 ( 2)
方程( 1) , ( 2) 是非线性方程, 由于控制的目的是保持单倒置摆直立, 因此, 在施加合适u的条件下, 可认为 均接近零, 此时 , , 且可忽略 项, 于是得到倒置摆系统的数学模型:
( 3)
( 4)
联立求解式( 3) 、 ( 4) , 可得
( 5)
( 6)
消去中间变量θ, 可得到输入量为u、 输出量为z的微分方程为
( 7)
3. 系统的状态方程
选取小车的位移z及其速度 、 摆的角位置 及其角速度 作为状态变量, z为输出变量, 并考虑, , 以及式( 5) 、 ( 6) 、 ( 7) , 则一级单倒置摆系统的状态方程为:
( 8a)
(8b)
式中
为方便研究, 假定系统的参数M=1kg,m=0.1kg,l=1m,,则系统状态方程中参数矩阵为:
,, ( 9)
此时倒置摆的状态空间模型表示式为:
( 10)
其系统的结构图如下:
图1 单倒置摆开环系统结构图
4. 被控对象特性分析
1. 能控性分析
根据能控性的秩判据, 并将式( 9) 的有关数据带入该判据, 可得
( 11)
因此, 单倒置摆的运动状态是可控的。换句话说, 这意味着总存在一控制作用u,将非零状态转移到零。
仿真:
代码: 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;
N=size(A);n=N(1);
sys0=ss(A,b,c,d);
S=ctrb(A,b);
f=rank(S);
if f==n
disp('系统能控')
else
disp('系统不能控')
end
结果截图:
系统能控
2. 稳定性分析
由单倒置摆系统的状态方程, 可求的其特征方程为:
( 12)
解得特征值为0,0, , -。四个特征值中存在一个正根, 两个零根, 这说明单倒置摆系统, 即被控系统不稳定的。
仿真: 采用matlab对被控对象进行仿真, 如下图所示为倒摆没有添加任何控制器下四个变量的单位阶跃响应。如图可知, 系统不稳定, 不能到达控制目的。
代码:
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;
sys0=ss(A,b,c,d);
>> t=0:0.01:5;
>> [y,t,x]=step(sys0,t);
>> subplot(2,2,1);
>> plot(t,x(:,1));grid
>> xlabel('t(s)');ylabel('x(t)');
>> title('z');
>> subplot(2,2,2);
>> plot(t,x(:,2));grid;
>> xlabel('t(s)');ylabel('x(t)');
>> title('z的微分');
>> subplot(2,2,3);
>> plot(t,x(:,3));grid
>> xlabel('t(s)');ylabel('x(t)');
>> title('\theta')
>> subplot(2,2,4);
>> plot(t,x(:,4));grid
>> xlabel('t(s)');ylabel('x(t)');
>> title('\theta的微分')
结果:
图2 单倒置摆开环系统的个变量的阶跃响应曲线
由上面两个方面对系统模型进行分析, 可知被控系统是具有能控性的, 可是被控系统是不稳定的, 需对被控系统进行反馈综合, 使四个特征值全部位于根平面S左半平面的适当位置, 以满足系统的稳定工作已达到良好、 静态性能的要求。因此我们需要设计两种控制器方案来使系统到达控制的目的, 分别为: 全维状态观测器的设计和降维观测器的设计。
五 两个方案
1.单倒置摆全状态反馈
采用全状态反馈。取状态变量z、 、 θ、 为反馈信号, 状态控制规律为
( 13)
设
式中, 分别为z、 、 θ、 反馈至参考输入v的增益。则闭环控制系统的状态方程为
设置期望闭环极点为-1, -2, -1+i,-1-i
由matlab可求得:
=-0.4, =-1, =-21.4, =-6
如下图画出状态反馈系统结构图:
图3 单倒置摆全反馈系统结构图
仿真:
代码: 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;
N=size(A);n=N(1);
sys0=ss(A,b,c,d);
P_s=[-1,-2,-1+i,-1-i];
k=acker(A,b,P_s)
A1=A-b*k;
sys=ss(A1,b,c,d);
t=0:0.01:5;
[y,t,x]=step(sys,t);
>> subplot(2,2,1);
plot(t,x(:,1));grid
xlabel('t(s)');ylabel('x(t)');
title('z');
subplot(2,2,2);
plot(t,x(:,2));grid;
xlabel('t(s)');ylabel('x(t)');
title('z的微分');
subplot(2,2,3);
plot(t,x(:,3));grid
xlabel('t(s)');ylabel('x(t)');
title('\theta')
subplot(2,2,4);
plot(t,x(:,4));grid
xlabel('t(s)');ylabel('x(t)');
title('\theta的微分')
>> t=0:0.01:10;
[y,t,x]=step(sys,t);
subplot(2,2,1);
plot(t,x(:,1));grid
xlabel('t(s)');ylabel('x(t)');
title('z');
subplot(2,2,2);
plot(t,x(:,2));grid;
xlabel('t(s)');ylabel('x(t)');
title('z的微分');
subplot(2,2,3);
plot(t,x(:,3));grid
xlabel('t(s)');ylabel('x(t)');
title('\theta')
subplot(2,2,4);
plot(t,x(:,4));grid
xlabel('t(s)');ylabel('x(t)');
title('\theta的微分')
结果:
k =
-0.4000 -1.0000 -21.4000 -6.0000
图4 单倒置摆全状态反馈的阶跃响应曲线
如仿真图可知, 单倒置摆的全状态反馈为稳定的闭环系统。观察仿真曲线: 单位阶跃的作用下, 输出变量逐渐趋于某一常数, 状态变量θ则是逐渐趋于0。当参考输入v单位阶跃时, 状态向量在单位阶跃的作用下相应逐渐趋于稳定, 这时摆杆回到原始位置( 即θ=0) , 小车也保持稳定( 即z=某一常数) 。如果不将4个状态变量全用作反馈, 该系统则不能稳定。
方案一: 全维观测器的设计
为实现单倒置摆控制系统的全状态反馈, 必须获取系统的全部状态, 即z、 、 θ、 的信息。因此, 需要设置z、 、 θ、 的四个传感器。在实际的工程系统中往往并不是所有的状态信息都是能检测到的, 或者, 虽有些能够检测, 但也可能由于检测装置昂贵或安装上的困难造成难于获取信息, 从而使状态反馈在实际中难于实现, 甚至不能实现。在这种情况下设计全维状态观测器, 解决全维状态反馈的实现问题。
( 1) 判定系统状态的能观测性
将式( 9) 中的数值代入能观测性秩判据, 得:
( 14)
或者由matlab中的obsv(A,c)命令来求秩, 可得秩为4( 见仿真) 。可见被控系统的4个状态均是可观测的, 即意味着其状态可由一个全维( 四维) 状态观测器给出估值。
其中, 全维观测器的运动方程为
( 15)
式中
全维观测器已G配置极点, 决定状态向量估计误差衰减的速率。
设置状态观察器的期望闭环极点为-2, -3, -2+i,-2-i。由于最靠近虚轴的希望闭环极点为-2, 这意味着任一状态变量估计值至少以规律衰减。
由matlab可求的出G:
=9, =42, =-148, =-492
根据计算值可画出结构图
仿真:
代码1:
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;
>> V=obsv(A,c);
m=rank(V);
if m==n
disp('系统能观')
else
disp('系统不能观')
end
结果1:
代码2:
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;
N=size(A);n=N(1);
sys0=ss(A,b,c,d);
P_s=[-1,-2,-1+i,-1-i];
P_o=[-2,-3,-2+i,-2-i];
k=acker(A,b,P_s)
g=(acker(A',c',P_o))'
A1=[A ,-b*k;g*c,A-b*k-g*c];
b1=[b;b];c1=[c zeros(1,4)];d1=0;
sys=ss(A1,b1,c1,d1);
t=0:0.01:10;
[y,t,x]=step(sys,t);
figure(1);
plot(t,x(:,1:4),'--');grid
xlabel('t(s)');ylabel('x(t)');
figure(2);
plot(t,x(:,5:8),'--');grid
xlabel('t(s)');ylabel('x(t)');
figure(3)
>> subplot(4,1,1);
plot(t,(x(:,1)-x(:,5)));grid
ylabel('z');
subplot(4,1,2);
plot(t,(x(:,2)-x(:,6)));grid
ylabel('z的微分');
subplot(4,1,3);
plot(t,(x(:,3)-x(:,7)));grid
ylabel('\theta');
>> figure(3)
>> subplot(4,1,1);
>> plot(t,(x(:,1)-x(:,5)));grid
>> subplot(4,1,2);
plot(t,(x(:,2)-x(:,6)));grid
ylabel('z的微分');
>> subplot(4,1,3);
plot(t,(x(:,3)-x(:,7)));grid
ylabel('\theta');
>> subplot(4,1,4);
>> plot(t,(x(:,4)-x(:,8)));grid
>> ylabel('\theta的微分');
结果:
①
②状态反馈下的状态变量的阶跃响应曲线
图6 状态反馈下的状态变量的阶跃响应曲线
注: ”——”表示z的阶跃响应; ”——”表示的阶跃响应
”——”表示θ的阶跃响应; ”——”表示的阶跃响应; 。
③带全维观测器的状态反馈下的状态变量的阶跃响应
图7 带全维观测器的状态反馈下的状态变量的阶跃响应曲线
注: 同上。
④系统状态与全维观测器得到的估计状态之间的误差曲线
图8 系统状态与全维观测器得到的估计状态之间的误差曲线
由上图可知, 全维状态观测器观测到的4个变量的阶跃响应曲线与全状态反馈时的阶跃响应曲线基本相似( 如图6与图7所示) , 可是二者还是有误差的, 只不过误差很小( 如系统状态与全维观测器得到的估计状态之间的误差曲线图8所示, 它们的误差都在级别的, 很小) , 全维状态观测器所得的性能基本满足要求( 系统能控且稳定) , 可是由于观测器的数目多, 导致中间过程的损耗也大。实际上, 本系统中的小车位移z, 可由输出传感器获得, 因而无需估计, 能够设计降维观测器, 这样可减小误差) 。
方案二: 降维观测器的设计
由于单倒置摆控制系统中的小车位移, 可由输出传感器测量, 因而无需估计, 能够设计降维( 3维) 状态的观测器。经过重新排列被控系统状态变量的次序, 把需由降维状态观测器估计变量与输出传感器测得的状态变量分开, 也就是说, 将z作为第四个状态变量, 则按照被控系统的状态和输出方程可变换为:
( 16)
简记为
( 17)
式中
, ,,
,,,,
故单倒置摆三维子系统动态方程为
( 18)
( 19)
使用matlab对其的观测性检查, 结果是客观的。
因为降维状态观测器动态方程的一般形式为
( 20)
( 21)
式中, 。
使用matlab可求出降维状态观测器特征多项式为
( 22)
设期望的观测器闭环极点为-3, , 则由matlab 仿真可得, 期望特征多项式为
( 23)
由matlab可得, =7, =-28, =-92
因此由matlab的仿真可得降维观测器的动态方程为
( 24)
( 25)
使用降维状态观测器实现状态反馈的的单倒置摆系统结构图simulink连接的仿真图所示。
仿真:
代码:
A=[0,-1,0,0;0,0,1,0;0,11,0,0;1,0,0,0];
b=[1;0;-1;0];c=[0,0,0,1];d=0;
N=size(A);n=N(1);
sys=ss(A,b,c,d);
S=ctrb(A,b)
f=rank(S);
if f==n
disp('系统能控')
else
disp('系统不能控')
end
V=obsv(A,c);
m=rank(V);
if m==n
disp('系统能观')
else
disp('系统不能观')
end
P_s=[-1,-2,-1+i,-1-i];
k=acker(A,b,P_s);
syms h0 h1 h2
syms s
h=[h0;h1;h2];
A11=[0,-1,0;0,0,1;0,11,0];
A12=[0;0;0];
P=[-3,-2+i,-2-i];
A22=0;
A21=[1,0,0];
eq=collect(det(s*eye(3)-(A11-h*A21)),s)
systemeq=expand((s-P(1))*(s-P(2))*(s-P(3)))
[h0,h1,h2] =sOlve('h0=7','-11-h1=17','-11*h0-h2=15')
h=[h0;h1;h2];
AW=(A11-h*A21)
b1=[1;0;-1];
b2=0;
BU=b1-h*b2
BY=(A11-h*A21)*h+A12-h*A22
结果:
其中, AW、 BU、 BY分别为降维观测器的动态方程中w、 u、 的系数矩阵。
使用MATLAB中simulink连接的仿真图:
图9 单倒置摆全反馈的降全维观测器的结构图
仿真结果截图:
( 1) 降维状态观测器时, 变量z以及变量的阶跃响应曲线
( 2) 降维状态观测器时, 变量θ以及变量的阶跃响应曲线
观察上面的仿真图可知, 在给系统状态全反馈加上降维观测器之后, 单位阶跃的作用下,
小车的位移z逐渐趋于一个常数( 即2.5) , 而倒置摆出现的偏角θ也逐渐趋于0, 可见带降维观测器的系统是一个稳定的系统, 同时在性能方面符合空间的设计要求。
六 分析比较两种设计方案的性能
单倒置摆原系统( 即 开环系统) 不稳定的, 因此我们设计了单倒置摆全状态反馈系统,
由仿真图( 即状态反馈下的状态变量的阶跃响应曲线) 可知, 单倒置摆的全状态反馈系统是稳定的, 为了获取4个状态变量z、 、 θ、 , 我们为单倒置摆的全状态反馈系统设计两种观测器: 全维状态观测器和降维状态观测器。
使用matlab做出两种不同的观测器下两个状态变量z、 θ的单位阶跃响应曲线( 另外两个变量分别为她们的微分, 故这里能够不用在比较了) 。
如下图所示为simulink仿真图( 方法: 将两种观测器的下的simulink仿真图的状态变量通总线的方式连接到示波器scope上便可观测到变量单位阶跃响应曲线的比较图了)
图10 比较全维观测器与降全维观测器性能的结构图图
仿真截图:
①变量z在使用不同观测器下的单位阶跃响应曲线比较图:
图11 变量z在使用不同观测器下的单位阶跃响应曲线比较图
注: 黄色曲线”—”为全维观测器下的; 紫色曲线”—”为全维观测器下的。
②变量θ在使用不同观测器下的单位阶跃响应曲线比较图:
注: 黄色曲线”—”为全维观测器下的; 紫色曲线”—”为全维观测器下的。
图12 变量θ在使用不同观测器下的单位阶跃响应曲线比较图
比较两种不同的观测器下的发现:
①在单位阶跃的作用下, 变量z在降维观测器下的单位阶跃曲线的调节时间要小于全维观测器下的单位阶跃曲线的调节时间。即小车的水平位置z在降维观测器下的单位阶跃曲线的动态性能较全维观测器下的单位阶跃曲线的动态性能要好一些( 如图11 所示) , 它们的稳态性能则基本一致。
②在单位阶跃的作用下, 变量θ在降维观测器下的单位阶跃曲线的调节时间要小于全维观测器下的单位阶跃曲线的调节时间, 可是降维观测器下的单位阶跃曲线的超调量大于全维观测器下的单位阶跃曲线的超调量, 即倒置摆出现的偏角θ在降维观测器下的单位阶跃曲线的动态性能比全维观测器下的单位阶跃曲线的动态性能要好一些( 如图12 所示) , 同样二者而稳态性能则基本一致。
综上所述, 使用全维观测器下的状态反馈系统的单位阶跃曲线的动态性能比使用将全维观测器下的状态反馈系统的单位阶跃曲线的动态性能要差一些。
这个结果是符合理论事实的, 因为我们设置的四个变量z、 、 θ、 中的变量小车的位移z是可由输出传感器测量, 而不用使用观测器去估计的, 因此能够不使用全维观测器来估计全部的变量, 而使用降维观测器来估计其余的变量( 三维) 。单倒置摆的状态反馈系统使用全维状态观测器时, 相对于降维观测器时的精度肯定下降的, 因此单倒置摆的状态反馈系统使用降状态观测器时, 变量曲线的精确性会高于使用全维状态观测器时的曲线。
五、 结论:
本文以单倒置摆为研究对象,讨论了将极点配置在期望的区域内的状态反馈控制方法。从仿真结果能够看出,该方法能够保证系统具有一定的动态和稳态性能,不但满足闭环系统的内部动态特性要求,也兼顾了抑制外部扰动对系统的影响。由此可知,极点配置控制方法能够实现摆杆的倒立平衡控制。从本文的研究结果还可看出,单倒置摆系统是研究各种控制理论的一个理想实验装置。
【参考文献】
[1] 现代控制理论基础、 梁慧冰和孙炳达著
[2] 唐新宇. 倒摆问题的研究及控制器设计. 微计算机信息, ,19。
[3] 自动控制原理.第四版.北京:科学出版社,
[4] 丛爽,张冬军,魏衡华. 单级倒立摆三种控制方法的对比研究
[5] 张冬军,丛爽,李泽湘,等. 环型二级倒立摆的控制研究与实现
[6] 洪乃刚, MATLAB仿真技术, 机械工业出版社,
展开阅读全文