一级倒立摆的极点配置及仿真
摘要
倒立摆系统是一个复杂的、高度非线性的、不稳定的高阶系统,是学习和研究现代控制理论最合适的实验装置。倒立摆的控制是控制理论应用的一个典型范例,一个稳定的倒立摆系统对于证实状态空间理论的实用性是非常有用的。
本文主要研究的是一级倒立摆,首先应用动力学方程建立一级倒
立摆的非线性数学模型,采用小偏差线性化的方法在平衡点附近局部线性化得到线性化的数学模型。然后通过输入单位阶跃信号分析系统的开环稳定性,由线性化得到的状态方程判断系统的能控性和能观性,结合系统的稳定性条件、调整时间以及超调量找到合适的极点,运用极点的配置方法(Matlab的acker函数)算出状态反馈增益矩阵K,运用状态空间分析方法,采用状态反馈为倒立摆系统建立稳定的控制律,并判断加入反馈矩阵K后的能观性和能控性是否改变。最后应用Matlab中的Simulink建立相应框图,得到输出变量水平位置和角度随时间的变化曲线,验证加入反馈矩阵K后一级倒立摆系统的稳定性。
关键词:一级倒立摆 状态反馈极点配置 Matlab Simulink
目录
1、一级倒立摆系统简介 ................................................................ 3 2、一级倒立摆系统的数学模型 ...................................................... 4 2.1、数学模型的建立 ............................................................... 4 2.2、运动分析 .......................................................................... 5 2.2.1、沿水平方向运动(直线运动) .................................. 5 2.2.2、绕轴线的转动(旋转运动) ..................................... 7 3、状态空间极点配置 .................................................................... 9 3.1、系统开环稳定性分析 ........................................................ 9 3.2、开环系统的能控性分析 ................................................... 10 3.3、开环系统的能观性分析 ................................................... 12 3.4、系统极点配置 ................................................................. 13 3.5、闭环系统的能控性和能观性分析 ..................................... 16 4、一级倒立摆系统Matlab仿真 .................................................. 17 4.1、系统开环Simulink搭建及仿真 ....................................... 17 4.2、系统极点配置后的Simulink仿真 .................................... 20 5、 总结 ..................................................................................... 24 6、 参考文献 .............................................................................. 25
1、一级倒立摆系统简介
倒立摆系统是一种很常见的又和人们的生活密切相关的系统,它
深刻揭示了自然界一种基本规律,即自然不稳定的被控对象,通过控制手段可使之具有良好的稳定性。倒立摆系统是一个非线性,强耦合,多变量和自然不稳定的系统。它是由沿导轨运动的小车和通过转轴固定在小车上的摆杆组成的。在导轨一端装有用来测量小车位移的电位计,摆体与小车之间由轴承连接,并在连接处安置电位器用来测量摆的角度。小车可沿一笔直的有界轨道向左或向右运动,同时摆可在垂直平面内自由运动。直流电机通过传送带拖动小车的运动,从而使倒立摆稳定竖立在垂直位置。
图1一级倒立摆装置简图
由图1中可以看到,倒立摆装置由沿导轨运动的小车和通过转轴固定在小车上的摆体组成。导轨的一端固定有位置传感器,通过与之共轴的轮盘转动可以测量出沿导轨由图中可以看到,倒立摆装置由沿导轨运动的小车和通过转轴固定在小车上的摆运动的小车位移;小车通过轴承连接摆体,并在小车与摆体的连接处固定有共轴角度传感
器,用以测量摆体的角度信号;并通过微分电路得到相应的速度和角速度信号;导轨的另一端固定有直流永磁力矩电机,直流电机通过传送带驱动小车沿导轨运动,在小车沿导轨左右运动的过程中将力传送到摆杆以实现整个系统的平衡。倒立摆的种类很多,有悬挂式倒立摆、平行式倒立摆、和球平衡式倒立摆;倒立摆的级数可以是一级,二级,乃至更多级。控制方法也是多种,可以通过模糊控制,智能控制,PID控制,LQR控制等来实现倒立摆的动态平衡,本文介绍的是状态反馈极点配置方法来实现一级倒立摆的控制。
2、一级倒立摆系统的数学模型
2.1、数学模型的建立
一级倒立摆系统示意图如下图所示,系统由小车、小球和轻质杆组成。倒摆通过转动关节安装驱动小车上,杆子的一端固定在小车上,另一端可以自由地左右倒下。通过对小车施加一定的外部驱动力,使倒摆保持一定的姿势。
图2 一级倒立摆系统示意图
一级倒立摆系统所用到的各变量的取值及其意义如下表1所示:
2.2、运动分析
假设轨道是光滑的,忽略摆杆的质量,系统所受的外力包括小球受到的重力和小车水平方向的驱动力 u。 x(t)和(t)分别表示小车的水平坐标和倒摆偏离垂直方向的角度。由此分析可知一级倒立摆有两个运动自由度:一个是沿水平方向运动(直线运动);另一个是绕轴线的转动(旋转运动)。
2.2.1、沿水平方向运动(直线运动)
通过受力分析,由牛顿第二运动定律,系统的运动满足下面的方程:
图3 倒立摆系统水平方向受力分析图
X轴方向:
Md2d2
dt2xmdt2xGu 小球的重心坐标满足:
xGxlsin
yGlcos
将小球的重心坐标代入①式得:
d2
dtxmd2
M2dt2(xlsin)u 联立①②③式得:
(Mm)x..
ml(sin).2
ml(cos)..
u
①
② ③
2.2.2、绕轴线的转动(旋转运动)
小球的力矩平衡方程:
(Fxcos)l(Fysin)l(mgsin)l
④式中Fx、Fy分别为:
Fmd2.
m[x..l(sin)2
l(cos)..x2xG]dtFmd2.
2
..ydt2yGm[l(cos)l(sin)]
将⑤式代入④式整理得:
mx..cosml..
mgsin
最后得到倒立摆系统的动力学方程为:
.)x..(Mmml(sin)2
ml(cos)..
u
..
xcosmlm..mgsin
④
⑤
⑥
显然该系统为明显的非线性系统。但是对小车施加驱动力的目的是要保持小球在垂直方向的姿态,因此,我们关注的是小球在垂直方向附近的动态行为变化,为此将系统在该参考位置(=0)附近进行线性化处理。
2.3、模型转化(微分方程→状态方程)
由倒摆系统的动力学模型⑥式,取如下状态变量:
Zx Z4xZ3 Z1 Z2Z1 3
.
.
..
可得到倒摆系统的状态方程:
z2
2
ucosz(Mm)gsinzml(coszsinz)z11112.
mlcos2z1(Mm)ldd
zdtdtxz4
.uml(sinz)z2mgcoszsinz
1211x2
Mmmcosz1
2.4、状态方程的线性化
采用Jacobian 矩阵线性化模型,最终得到系统的线性化状态方程为:
0
(Mm)gdzMl
0dt
mg
M
10000000
0
010
Mluz1001
M
假定系统的输出为倒摆的角度和小车的x轴坐标,则系统的输出
方程为:
.
1000yxCZ001
3、状态空间极点配置
3.1、系统开环稳定性分析
由状态方程的标准形式:
X
AXBuYCXDu
结合表1中各变量的值可得:
0
10A20.60100
0000.4905
000B10
0.5
C1000
0010 0x
x.0010
0D0
上面已经得到系统的状态方程式,对其进行阶跃响应分析,在MATLAB 指令区中键入以下命令:
A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0 ]; B=[0 ;-1; 0;0.5 ]; C=[1 0 0 0;0 0 1 0]; D=[0;0]; step(A,B,C,D);
图5 系统稳定性仿真图
可以看出,在单位阶跃响应作用下,小车位置(x)和摆杆角度(θ)都是发散的。即系统是不稳定的。
3.2、开环系统的能控性分析
采用状态反馈对系统进行任意配置极点的充要条件是系统完全
能控,因此本小节对所建立的系统状态方程运用Matlab进行能控性的分析。
系统的能控性是指系统的输入能否控制状态的变化。对于n阶线性定常系统:
.
x(t)Ax(t)Bu(t)y(t)Cx(t)Du(t)
能控性矩阵为
UcBABA2B...An1B
当rankUc=n时,系统状态完全能控,否则系统不能控。在Matlab中,可利用ctrb()函数直接求出能控性矩阵,从而确定系统的状态能控性,它的调用格式为:Uc=ctrb(A,B)。 在MATLAB 指令区中键入以下命令:
A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0 ]; B=[0 ;-1; 0;0.5 ]; Uc=ctrb(A,B); n=4;
if(n==rank(Uc)) disp('系统能控')
End
其结果为:系统能控。可以看出,系统的状态完全可控性矩阵的秩等于系统的状态变量维数,系统的输出完全可控性矩阵的秩等于系统输出向量y 的维数,所以系统可控,因此可以对系统进行控制器的设计,使系统稳定。
3.3、开环系统的能观性分析
控制系统大多数采用反馈控制形式。在现代控制理论中,其反馈信息是由系统的状态组合而成。但并非所有的系统的状态变量在物理上能侧取到,于是提出能否通过对输出的测量获得全部状态变量的信息,这便是系统的观测问题。
对于n阶线性定常系统:
.
x(t)Ax(t)Bu(t)y(t)Cx(t)Du(t)
能观测性矩阵为:
C
CA
Vcn1CA
当rankVc=n时,系统的状态完全能观测,否则系统状态不能观测。
在Matlab中,可利用obsv()函数直接求出能观性矩阵,从而确定系统的状态能观测性,它的调用格式为:Vc=obsv(A,C)。
在MATLAB 指令区中键入以下命令:
A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0 ]; C=[1 0 0 0;0 0 1 0]; Vc=obsv(A,C); n=4;
if(n==rank(Vc)) disp('系统能观')
End
其结果为:系统能观。系统的状态完全能观性矩阵的秩等于系统的状
态变量维数,系统的输出完全能控性矩阵的秩等于系统输出向量y 的维数,所以系统能观。
3.4、系统极点配置
下面采用极点配置的方法计算反馈矩阵。 1、检验系统可控性
由上节的系统可控性分析可以得到,系统的状态完全可控性矩阵的秩等于系统的状态维数4,系统的输出完全可控性矩阵的秩等于系统输出向量的维数2,所以系统可控。 2、计算特征值
综合指标为:输出超调量 p5%;超调时间 tp0.5s; 系统频宽 b10; 跟踪误差 ep0(对阶跃),ev0.2(对速度)。
确定希望的极点:显然,希望的极点n=3,选其中一对为主导极点s1
和s2,另一个为远极点,并且认为系统的性能主要是由主导极点决定的,远极点只有微小的影响。
根据二阶系统的关系式,先定出主导极点。
pe
2
tp
n2
bn*(2224244)
式中和n为此二阶系统的阻尼比和自振频率。 可以导出:
①由pe
2
5%,可得
2
3.14,从而有
1
0.707,于是2
选0.707. ②由tp0.5s得:
nn
2
n
129
0.5
0.50.707
③由b10和已选的
1
得n10,②的结果比较可取n10。这2
样便定出了主导极点为:
s1,2njn2
远极点应选择得使它的实部大于5倍的主极点的实部,现取Res34=5Res2,因此根据要求,并留有一定的裕量(设调整时间为2秒),我们选取期望的闭环极点: suii1,2,3,4
其中u1=-35,u2=-35,u3=-7.07-7.07j,u4=-7.07+7.07j,u1,u2是一对具有
1
n10的主导极点,u3,u4位于主导极点的左侧,2
因此其影响较小所以,可满足快速性和阻尼的要求。
同理,取0.5,将带入tp0.5s得到n4,远极点应选择得使它的实部大于5倍的主极点的实部,现取Rex34=5Rex2,得到另一组期望的闭环极点:
s1xi(i1,2,3,4)
其中x1=-10,x2=-10,x3=-2-23j,x4=-2+23j,x1,x2是一对具有0.5 n4的主导极点,x3,x4位于主导极点的左侧,因此其影
响较小所以,可满足快速性和阻尼的要求。
其中主导极点决定系统的性能,远极点只有微小的影响,根据系统的综合指标关系式可以先定出主导极点,远极点应选择得使它的实部大于5倍的主极点的实部。
3、计算反馈矩阵K
通过Maltalb的控制系统工具箱中的单变量系统极点配置函acker(),该函数的调用格式为:
K=acker(A,b,P)
式中,P为给定极点;K为状态反馈矩阵。 当取极点为:
u1=-35,u2=-35,u3=-7.07-7.07j,u4=-7.07+7.07j
在MATLAB 指令区中键入以下命令:
A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0 ]; B=[0 ;-1; 0;0.5 ];
P=[-35;-35;-7.07-7.07*j;-7.07+7.07*j]; k=acker(A,B,P)
得到K1的结果为:
K1= -8577 -1324 -12483 -2479
所以,反馈控制输入为:
u1K1z8577z11324z212483z32479z4
同理,当取极点为:
x1=-10,x2=-10,x3=-2-23j,x4=-2+2j
在MATLAB 指令区中键入以下命令:
A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0 ]; B=[0 ;-1; 0;0.5 ];
P=[-10;-10;-2-2*sqrt(3)*j;-2+2*sqrt(3)*j]; k=acker(A,B,P)
得到K2的结果为:
K2= -298.1504 -60.6972 -163.0989 -73.3945
所以,反馈控制输入为:
u2K2z298.1504z160.6972z2163.0989z373.3945z4
这是一个调节器系统。期望的角θ总为零,且期望的小车的位置x也总为零。因此,参考输入为零。
3.5、闭环系统的能控性和能观性分析
引入状态反馈矩阵K构成闭环后,可能使传递函数发生零极点相消而破坏系统的能控性与能观性,因此本节分析加入反馈矩阵k后的闭环系统的能控性和能观性是否发生改变。
在MATLAB 指令区中键入以下命令:
%引入反馈矩阵K1的能控能观判断%
A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0 ]; B=[0 ;-1; 0;0.5 ]; C=[1 0 0 0;0 0 1 0];
k =[ -8577 -1324 -12483 -2479]; a=A+B*k; Uc=ctrb(a,B); Vc=obsv(a,C); n=4;
if(n==rank(Uc)) if(n==rank(Vc))
disp('系统即能控又能观') end End
%引入反馈矩阵K2的能控能观判断%
A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0 ]; B=[0 ;-1; 0;0.5 ]; C=[1 0 0 0;0 0 1 0];
k =[ -298.1504 -60.6972 -163.0989 -73.3945]; a=A+B*k; Uc=ctrb(a,B); Vc=obsv(a,C); n=4;
if(n==rank(Uc)) if(n==rank(Vc))
disp('系统即能控又能观') end End
其结果为:系统即能控又能观。说明加入反馈矩阵k1、k2后并没有破坏原系统的能控性和能观性。
4、一级倒立摆系统Matlab仿真
4.1、系统开环Simulink搭建及仿真
首先点击Simulink Library Browser,点击File新建model,打开Simulink模型编辑窗口,如图6:
图6 Smulink打开画面
在模型编辑窗口上建立一级倒立摆的系统开环模型如图7:
图7系统开环模型搭建
点击Scope和Scope1,可以看到两输出变量位置(x)和角度(θ)随时间的变化,如图8和图9:
图8系统开环下角度的变化
图9系统开环下位置的变化
由图8和图9可以看出系统开环下角度和位置随时间变化都是发散的,所以系统的开环不稳定的。
4.2、系统极点配置后的Simulink仿真
用Matlab的Simulink搭建倒立摆系统,并加上通过极点配置方法计算的反馈矩阵K,在倒立摆的开环系统下加上反馈增益。检验在配置极点后系统是否达到所设定的指标。
由系统的状态方程可以得到:
1z2z
z20.6012
3z4 zz40.4905z10.5u
可由系统的状态方程得到系统的框图,如图
10
图10系统的框图
在原开环系统的基础上加上反馈增益K1如图11:
图11加上反馈增益K1的系统框图
点击Scope和Scope1,可以看到两输出变量位置(x)和角度(θ)随时间的变化,如图12和图13:
图12反馈矩阵为K1系统角度的变化
图13反馈矩阵为K1系统位置的变化
由图12可以看出一阶倒立摆系统的角度θ在1s时受到外部干扰后,系统在2s左右又重新回到0的平衡位置,调整时间为1s左右。
由图13可以看出一阶倒立摆系统的水平位置在1s时受到外部干扰后,系统在1.5s之内基本上可以由x=0稳定到新的平衡位置x=-0.7。调整时间为1s左右。
同理,在Simulink下仿真,加上由另一组得到的反馈矩阵K2后的两输出变量位置(x)和角度()随时间的变化,如图14和图15:
图14反馈矩阵为K2系统角度的变化
图15反馈矩阵为K2系统位置的变化
由图14可以看出一阶倒立摆系统的角度θ在1s时受到外部干扰后,系统在4s左右又重新回到0的平衡位置,调整时间为3s左
右。
由图13可以看出一阶倒立摆系统的水平位置在1s时受到外部干扰后,系统在4s时基本上可以由x=0稳定到新的平衡位置x=-6。调整时间为3s左右。
综上所述,由于选择了不同的和n,从而得到了两组不同的
主导极点,对于第一组极点的取的为0.707,n取的为10,而第二
组极点取的为0.5,n取的为4。不同的导致两组的超调量不同,
由图12和图14可以看出后者的超调量明显大于前者。不同的和n导致调整时间的不同,由图13和图15可以看出前者的超调时间ts为1s,后者的超调时间ts为3s。
系统的调整时间和超调量都达到了提前所设的指标,可知通过通过反馈重新配置系统的极点,能达到所期望的性能,系统由开环的不稳定通过极点的配置,增加状态反馈矩阵后达到稳定。
5、总结
传统的非线性系统分析方法需要非线性系统的精确模型,而实际中存在的大量复杂的多变量非线性系统则表现为参数的不确定性和结构的不确定性。本文用现代控制理论的极点配置方法对直线一级倒立摆控制进行了分析,通过不同的、n得到两组不同的主导极
点并分别用Simulink进行了倒立摆的系统仿真,其仿真结果达到了期望的指标。
通过这次大作业,将在现代控制理论中所学到的状态空间表达式
的建立、系统稳定性分析、系统能控性的判定和极点配置的方法以及状态反馈的建立运用到一级倒立摆的模型中,让我更加理解所学的知识,对所学的知识有了更深刻的认识,对MATLAB的应用更加熟练,加强了我运用知识解决问题的能力。
6、参考文献
[1]刘豹 唐万生 现代控制理论(第三版).北京:机械工业出版社,2006.
[2]夏德钤 翁贻方 自动控制理论(第4版).北京:机械工业出版社,2012.
[3]李国勇 程永强 计算机仿真技术与CAD—基于MATLAB的控制系统(第三版).北京:电子工业出版社,2012.
[4]易杰 俞斌 倒立摆系统的状态空间极点配置控制设计[J].电子测试.2008.8
[5]李国辉 基于simulink的单级倒立摆仿真[J]. 大连交通大学学报.2008.2
一级倒立摆的极点配置及仿真
摘要
倒立摆系统是一个复杂的、高度非线性的、不稳定的高阶系统,是学习和研究现代控制理论最合适的实验装置。倒立摆的控制是控制理论应用的一个典型范例,一个稳定的倒立摆系统对于证实状态空间理论的实用性是非常有用的。
本文主要研究的是一级倒立摆,首先应用动力学方程建立一级倒
立摆的非线性数学模型,采用小偏差线性化的方法在平衡点附近局部线性化得到线性化的数学模型。然后通过输入单位阶跃信号分析系统的开环稳定性,由线性化得到的状态方程判断系统的能控性和能观性,结合系统的稳定性条件、调整时间以及超调量找到合适的极点,运用极点的配置方法(Matlab的acker函数)算出状态反馈增益矩阵K,运用状态空间分析方法,采用状态反馈为倒立摆系统建立稳定的控制律,并判断加入反馈矩阵K后的能观性和能控性是否改变。最后应用Matlab中的Simulink建立相应框图,得到输出变量水平位置和角度随时间的变化曲线,验证加入反馈矩阵K后一级倒立摆系统的稳定性。
关键词:一级倒立摆 状态反馈极点配置 Matlab Simulink
目录
1、一级倒立摆系统简介 ................................................................ 3 2、一级倒立摆系统的数学模型 ...................................................... 4 2.1、数学模型的建立 ............................................................... 4 2.2、运动分析 .......................................................................... 5 2.2.1、沿水平方向运动(直线运动) .................................. 5 2.2.2、绕轴线的转动(旋转运动) ..................................... 7 3、状态空间极点配置 .................................................................... 9 3.1、系统开环稳定性分析 ........................................................ 9 3.2、开环系统的能控性分析 ................................................... 10 3.3、开环系统的能观性分析 ................................................... 12 3.4、系统极点配置 ................................................................. 13 3.5、闭环系统的能控性和能观性分析 ..................................... 16 4、一级倒立摆系统Matlab仿真 .................................................. 17 4.1、系统开环Simulink搭建及仿真 ....................................... 17 4.2、系统极点配置后的Simulink仿真 .................................... 20 5、 总结 ..................................................................................... 24 6、 参考文献 .............................................................................. 25
1、一级倒立摆系统简介
倒立摆系统是一种很常见的又和人们的生活密切相关的系统,它
深刻揭示了自然界一种基本规律,即自然不稳定的被控对象,通过控制手段可使之具有良好的稳定性。倒立摆系统是一个非线性,强耦合,多变量和自然不稳定的系统。它是由沿导轨运动的小车和通过转轴固定在小车上的摆杆组成的。在导轨一端装有用来测量小车位移的电位计,摆体与小车之间由轴承连接,并在连接处安置电位器用来测量摆的角度。小车可沿一笔直的有界轨道向左或向右运动,同时摆可在垂直平面内自由运动。直流电机通过传送带拖动小车的运动,从而使倒立摆稳定竖立在垂直位置。
图1一级倒立摆装置简图
由图1中可以看到,倒立摆装置由沿导轨运动的小车和通过转轴固定在小车上的摆体组成。导轨的一端固定有位置传感器,通过与之共轴的轮盘转动可以测量出沿导轨由图中可以看到,倒立摆装置由沿导轨运动的小车和通过转轴固定在小车上的摆运动的小车位移;小车通过轴承连接摆体,并在小车与摆体的连接处固定有共轴角度传感
器,用以测量摆体的角度信号;并通过微分电路得到相应的速度和角速度信号;导轨的另一端固定有直流永磁力矩电机,直流电机通过传送带驱动小车沿导轨运动,在小车沿导轨左右运动的过程中将力传送到摆杆以实现整个系统的平衡。倒立摆的种类很多,有悬挂式倒立摆、平行式倒立摆、和球平衡式倒立摆;倒立摆的级数可以是一级,二级,乃至更多级。控制方法也是多种,可以通过模糊控制,智能控制,PID控制,LQR控制等来实现倒立摆的动态平衡,本文介绍的是状态反馈极点配置方法来实现一级倒立摆的控制。
2、一级倒立摆系统的数学模型
2.1、数学模型的建立
一级倒立摆系统示意图如下图所示,系统由小车、小球和轻质杆组成。倒摆通过转动关节安装驱动小车上,杆子的一端固定在小车上,另一端可以自由地左右倒下。通过对小车施加一定的外部驱动力,使倒摆保持一定的姿势。
图2 一级倒立摆系统示意图
一级倒立摆系统所用到的各变量的取值及其意义如下表1所示:
2.2、运动分析
假设轨道是光滑的,忽略摆杆的质量,系统所受的外力包括小球受到的重力和小车水平方向的驱动力 u。 x(t)和(t)分别表示小车的水平坐标和倒摆偏离垂直方向的角度。由此分析可知一级倒立摆有两个运动自由度:一个是沿水平方向运动(直线运动);另一个是绕轴线的转动(旋转运动)。
2.2.1、沿水平方向运动(直线运动)
通过受力分析,由牛顿第二运动定律,系统的运动满足下面的方程:
图3 倒立摆系统水平方向受力分析图
X轴方向:
Md2d2
dt2xmdt2xGu 小球的重心坐标满足:
xGxlsin
yGlcos
将小球的重心坐标代入①式得:
d2
dtxmd2
M2dt2(xlsin)u 联立①②③式得:
(Mm)x..
ml(sin).2
ml(cos)..
u
①
② ③
2.2.2、绕轴线的转动(旋转运动)
小球的力矩平衡方程:
(Fxcos)l(Fysin)l(mgsin)l
④式中Fx、Fy分别为:
Fmd2.
m[x..l(sin)2
l(cos)..x2xG]dtFmd2.
2
..ydt2yGm[l(cos)l(sin)]
将⑤式代入④式整理得:
mx..cosml..
mgsin
最后得到倒立摆系统的动力学方程为:
.)x..(Mmml(sin)2
ml(cos)..
u
..
xcosmlm..mgsin
④
⑤
⑥
显然该系统为明显的非线性系统。但是对小车施加驱动力的目的是要保持小球在垂直方向的姿态,因此,我们关注的是小球在垂直方向附近的动态行为变化,为此将系统在该参考位置(=0)附近进行线性化处理。
2.3、模型转化(微分方程→状态方程)
由倒摆系统的动力学模型⑥式,取如下状态变量:
Zx Z4xZ3 Z1 Z2Z1 3
.
.
..
可得到倒摆系统的状态方程:
z2
2
ucosz(Mm)gsinzml(coszsinz)z11112.
mlcos2z1(Mm)ldd
zdtdtxz4
.uml(sinz)z2mgcoszsinz
1211x2
Mmmcosz1
2.4、状态方程的线性化
采用Jacobian 矩阵线性化模型,最终得到系统的线性化状态方程为:
0
(Mm)gdzMl
0dt
mg
M
10000000
0
010
Mluz1001
M
假定系统的输出为倒摆的角度和小车的x轴坐标,则系统的输出
方程为:
.
1000yxCZ001
3、状态空间极点配置
3.1、系统开环稳定性分析
由状态方程的标准形式:
X
AXBuYCXDu
结合表1中各变量的值可得:
0
10A20.60100
0000.4905
000B10
0.5
C1000
0010 0x
x.0010
0D0
上面已经得到系统的状态方程式,对其进行阶跃响应分析,在MATLAB 指令区中键入以下命令:
A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0 ]; B=[0 ;-1; 0;0.5 ]; C=[1 0 0 0;0 0 1 0]; D=[0;0]; step(A,B,C,D);
图5 系统稳定性仿真图
可以看出,在单位阶跃响应作用下,小车位置(x)和摆杆角度(θ)都是发散的。即系统是不稳定的。
3.2、开环系统的能控性分析
采用状态反馈对系统进行任意配置极点的充要条件是系统完全
能控,因此本小节对所建立的系统状态方程运用Matlab进行能控性的分析。
系统的能控性是指系统的输入能否控制状态的变化。对于n阶线性定常系统:
.
x(t)Ax(t)Bu(t)y(t)Cx(t)Du(t)
能控性矩阵为
UcBABA2B...An1B
当rankUc=n时,系统状态完全能控,否则系统不能控。在Matlab中,可利用ctrb()函数直接求出能控性矩阵,从而确定系统的状态能控性,它的调用格式为:Uc=ctrb(A,B)。 在MATLAB 指令区中键入以下命令:
A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0 ]; B=[0 ;-1; 0;0.5 ]; Uc=ctrb(A,B); n=4;
if(n==rank(Uc)) disp('系统能控')
End
其结果为:系统能控。可以看出,系统的状态完全可控性矩阵的秩等于系统的状态变量维数,系统的输出完全可控性矩阵的秩等于系统输出向量y 的维数,所以系统可控,因此可以对系统进行控制器的设计,使系统稳定。
3.3、开环系统的能观性分析
控制系统大多数采用反馈控制形式。在现代控制理论中,其反馈信息是由系统的状态组合而成。但并非所有的系统的状态变量在物理上能侧取到,于是提出能否通过对输出的测量获得全部状态变量的信息,这便是系统的观测问题。
对于n阶线性定常系统:
.
x(t)Ax(t)Bu(t)y(t)Cx(t)Du(t)
能观测性矩阵为:
C
CA
Vcn1CA
当rankVc=n时,系统的状态完全能观测,否则系统状态不能观测。
在Matlab中,可利用obsv()函数直接求出能观性矩阵,从而确定系统的状态能观测性,它的调用格式为:Vc=obsv(A,C)。
在MATLAB 指令区中键入以下命令:
A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0 ]; C=[1 0 0 0;0 0 1 0]; Vc=obsv(A,C); n=4;
if(n==rank(Vc)) disp('系统能观')
End
其结果为:系统能观。系统的状态完全能观性矩阵的秩等于系统的状
态变量维数,系统的输出完全能控性矩阵的秩等于系统输出向量y 的维数,所以系统能观。
3.4、系统极点配置
下面采用极点配置的方法计算反馈矩阵。 1、检验系统可控性
由上节的系统可控性分析可以得到,系统的状态完全可控性矩阵的秩等于系统的状态维数4,系统的输出完全可控性矩阵的秩等于系统输出向量的维数2,所以系统可控。 2、计算特征值
综合指标为:输出超调量 p5%;超调时间 tp0.5s; 系统频宽 b10; 跟踪误差 ep0(对阶跃),ev0.2(对速度)。
确定希望的极点:显然,希望的极点n=3,选其中一对为主导极点s1
和s2,另一个为远极点,并且认为系统的性能主要是由主导极点决定的,远极点只有微小的影响。
根据二阶系统的关系式,先定出主导极点。
pe
2
tp
n2
bn*(2224244)
式中和n为此二阶系统的阻尼比和自振频率。 可以导出:
①由pe
2
5%,可得
2
3.14,从而有
1
0.707,于是2
选0.707. ②由tp0.5s得:
nn
2
n
129
0.5
0.50.707
③由b10和已选的
1
得n10,②的结果比较可取n10。这2
样便定出了主导极点为:
s1,2njn2
远极点应选择得使它的实部大于5倍的主极点的实部,现取Res34=5Res2,因此根据要求,并留有一定的裕量(设调整时间为2秒),我们选取期望的闭环极点: suii1,2,3,4
其中u1=-35,u2=-35,u3=-7.07-7.07j,u4=-7.07+7.07j,u1,u2是一对具有
1
n10的主导极点,u3,u4位于主导极点的左侧,2
因此其影响较小所以,可满足快速性和阻尼的要求。
同理,取0.5,将带入tp0.5s得到n4,远极点应选择得使它的实部大于5倍的主极点的实部,现取Rex34=5Rex2,得到另一组期望的闭环极点:
s1xi(i1,2,3,4)
其中x1=-10,x2=-10,x3=-2-23j,x4=-2+23j,x1,x2是一对具有0.5 n4的主导极点,x3,x4位于主导极点的左侧,因此其影
响较小所以,可满足快速性和阻尼的要求。
其中主导极点决定系统的性能,远极点只有微小的影响,根据系统的综合指标关系式可以先定出主导极点,远极点应选择得使它的实部大于5倍的主极点的实部。
3、计算反馈矩阵K
通过Maltalb的控制系统工具箱中的单变量系统极点配置函acker(),该函数的调用格式为:
K=acker(A,b,P)
式中,P为给定极点;K为状态反馈矩阵。 当取极点为:
u1=-35,u2=-35,u3=-7.07-7.07j,u4=-7.07+7.07j
在MATLAB 指令区中键入以下命令:
A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0 ]; B=[0 ;-1; 0;0.5 ];
P=[-35;-35;-7.07-7.07*j;-7.07+7.07*j]; k=acker(A,B,P)
得到K1的结果为:
K1= -8577 -1324 -12483 -2479
所以,反馈控制输入为:
u1K1z8577z11324z212483z32479z4
同理,当取极点为:
x1=-10,x2=-10,x3=-2-23j,x4=-2+2j
在MATLAB 指令区中键入以下命令:
A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0 ]; B=[0 ;-1; 0;0.5 ];
P=[-10;-10;-2-2*sqrt(3)*j;-2+2*sqrt(3)*j]; k=acker(A,B,P)
得到K2的结果为:
K2= -298.1504 -60.6972 -163.0989 -73.3945
所以,反馈控制输入为:
u2K2z298.1504z160.6972z2163.0989z373.3945z4
这是一个调节器系统。期望的角θ总为零,且期望的小车的位置x也总为零。因此,参考输入为零。
3.5、闭环系统的能控性和能观性分析
引入状态反馈矩阵K构成闭环后,可能使传递函数发生零极点相消而破坏系统的能控性与能观性,因此本节分析加入反馈矩阵k后的闭环系统的能控性和能观性是否发生改变。
在MATLAB 指令区中键入以下命令:
%引入反馈矩阵K1的能控能观判断%
A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0 ]; B=[0 ;-1; 0;0.5 ]; C=[1 0 0 0;0 0 1 0];
k =[ -8577 -1324 -12483 -2479]; a=A+B*k; Uc=ctrb(a,B); Vc=obsv(a,C); n=4;
if(n==rank(Uc)) if(n==rank(Vc))
disp('系统即能控又能观') end End
%引入反馈矩阵K2的能控能观判断%
A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0 ]; B=[0 ;-1; 0;0.5 ]; C=[1 0 0 0;0 0 1 0];
k =[ -298.1504 -60.6972 -163.0989 -73.3945]; a=A+B*k; Uc=ctrb(a,B); Vc=obsv(a,C); n=4;
if(n==rank(Uc)) if(n==rank(Vc))
disp('系统即能控又能观') end End
其结果为:系统即能控又能观。说明加入反馈矩阵k1、k2后并没有破坏原系统的能控性和能观性。
4、一级倒立摆系统Matlab仿真
4.1、系统开环Simulink搭建及仿真
首先点击Simulink Library Browser,点击File新建model,打开Simulink模型编辑窗口,如图6:
图6 Smulink打开画面
在模型编辑窗口上建立一级倒立摆的系统开环模型如图7:
图7系统开环模型搭建
点击Scope和Scope1,可以看到两输出变量位置(x)和角度(θ)随时间的变化,如图8和图9:
图8系统开环下角度的变化
图9系统开环下位置的变化
由图8和图9可以看出系统开环下角度和位置随时间变化都是发散的,所以系统的开环不稳定的。
4.2、系统极点配置后的Simulink仿真
用Matlab的Simulink搭建倒立摆系统,并加上通过极点配置方法计算的反馈矩阵K,在倒立摆的开环系统下加上反馈增益。检验在配置极点后系统是否达到所设定的指标。
由系统的状态方程可以得到:
1z2z
z20.6012
3z4 zz40.4905z10.5u
可由系统的状态方程得到系统的框图,如图
10
图10系统的框图
在原开环系统的基础上加上反馈增益K1如图11:
图11加上反馈增益K1的系统框图
点击Scope和Scope1,可以看到两输出变量位置(x)和角度(θ)随时间的变化,如图12和图13:
图12反馈矩阵为K1系统角度的变化
图13反馈矩阵为K1系统位置的变化
由图12可以看出一阶倒立摆系统的角度θ在1s时受到外部干扰后,系统在2s左右又重新回到0的平衡位置,调整时间为1s左右。
由图13可以看出一阶倒立摆系统的水平位置在1s时受到外部干扰后,系统在1.5s之内基本上可以由x=0稳定到新的平衡位置x=-0.7。调整时间为1s左右。
同理,在Simulink下仿真,加上由另一组得到的反馈矩阵K2后的两输出变量位置(x)和角度()随时间的变化,如图14和图15:
图14反馈矩阵为K2系统角度的变化
图15反馈矩阵为K2系统位置的变化
由图14可以看出一阶倒立摆系统的角度θ在1s时受到外部干扰后,系统在4s左右又重新回到0的平衡位置,调整时间为3s左
右。
由图13可以看出一阶倒立摆系统的水平位置在1s时受到外部干扰后,系统在4s时基本上可以由x=0稳定到新的平衡位置x=-6。调整时间为3s左右。
综上所述,由于选择了不同的和n,从而得到了两组不同的
主导极点,对于第一组极点的取的为0.707,n取的为10,而第二
组极点取的为0.5,n取的为4。不同的导致两组的超调量不同,
由图12和图14可以看出后者的超调量明显大于前者。不同的和n导致调整时间的不同,由图13和图15可以看出前者的超调时间ts为1s,后者的超调时间ts为3s。
系统的调整时间和超调量都达到了提前所设的指标,可知通过通过反馈重新配置系统的极点,能达到所期望的性能,系统由开环的不稳定通过极点的配置,增加状态反馈矩阵后达到稳定。
5、总结
传统的非线性系统分析方法需要非线性系统的精确模型,而实际中存在的大量复杂的多变量非线性系统则表现为参数的不确定性和结构的不确定性。本文用现代控制理论的极点配置方法对直线一级倒立摆控制进行了分析,通过不同的、n得到两组不同的主导极
点并分别用Simulink进行了倒立摆的系统仿真,其仿真结果达到了期望的指标。
通过这次大作业,将在现代控制理论中所学到的状态空间表达式
的建立、系统稳定性分析、系统能控性的判定和极点配置的方法以及状态反馈的建立运用到一级倒立摆的模型中,让我更加理解所学的知识,对所学的知识有了更深刻的认识,对MATLAB的应用更加熟练,加强了我运用知识解决问题的能力。
6、参考文献
[1]刘豹 唐万生 现代控制理论(第三版).北京:机械工业出版社,2006.
[2]夏德钤 翁贻方 自动控制理论(第4版).北京:机械工业出版社,2012.
[3]李国勇 程永强 计算机仿真技术与CAD—基于MATLAB的控制系统(第三版).北京:电子工业出版社,2012.
[4]易杰 俞斌 倒立摆系统的状态空间极点配置控制设计[J].电子测试.2008.8
[5]李国辉 基于simulink的单级倒立摆仿真[J]. 大连交通大学学报.2008.2