实验八状态反馈与状态观测器的工程应用一、实验目的1、对一个实际系统,建立该系统的数学模型,了解模型线性化的方法,最终获得系统的状态空间描述,并对系统进行稳定性,能控性,能观性检查。2、根据控制要求,采用极点配置方法设计状态反馈控制器,并利用全维状态观测器来实现状态反馈。二、实验要求1、对实验系统进行稳定性,能控性及能观性检查2、用状态反馈方法使起重机系统按期望速度到达B点3、全维状态观测器的设计4、观测器的引入对闭环系统的影响三、实验内容为研究起重机的防摆控制问题,需对实际问题进行简化、抽象。起重机的“搬运—行走—定位”过程可以抽象为如图2.1所示的情况,即起重机在受到外力F作用下,能够在较短时间内从A点运动到B点,且摆角不超过系统允许的最小摆角。图中m是重物的质量(kg);m0为起重机的质量(kg),g为重力加速度(m/s2),F为小车受到水平方向上的拉力(N),l为绳长,此处假设绳长保持不变。考虑到实际起重机运行过程中摆角较小(不超过10o),且平衡位置θ=0,因此在sinθ≈θ,cosθ≈1,θ2sinθ≈0的近似条件下的起重机系统的简化模型如图2.2所示图2.1起重机受力分析过程图2.2起重机系统的简化模型选取小车的位移x及其速度x,摆的角位移θ及角速度θ作为状态变量,x为输出变量。假设系统参数为m0=50kg,m=5kg,l=1m,g=9.8m/s2,则可以列出起重机系统的状态空间表达形式。由此模型可知,拉力F为输入变量,所以对于此系统,G(s)=X(s)F(s)=S^2+9.850S^4+539S^2利用MatLab可从传递函数中由G(S)求出状态方程的A,B,C,Dnum=[0109.8];den=[50053900]den=50053900[A,B,C,D]=tf2ss(num,den)A=0-10.7800001.000000001.000000001.00000B=1000C=00.020000.1960D=0(1)判断系统稳定性建立m文件,命名为Untiled2,程序:lambda=eig(A);fori=1:length(lambda)iflambda(i)=0disp('Thesystemisunstable');returnendenddisp('Thesystemisstable');运行结果为:Untitled2Thesystemisunstable所以这个系统是不稳定的。(2)判断系统的能控性或能观性建立m文件,命名为Untiled3,n=length(A);Qc=[B];Qo=[C];fori=1:n-1Qc=[QcA^(i)*B];Qo=[Qo;C*A^(i)];endifrank(Qc)==ndisp('thesystemisconctrollable');elsedisp('thesystemisunconctrollable');endifrank(Qo)==ndisp('thesystemisobservable');elsedisp('thesystemisdisobservable');end运行结果为:Untitled3thesystemisconctrollablethesystemisobservable所以起重机系统能控能观。(3)极点配置建立m文件,命名为pole_assignment程序如下:functionK=pole_assignment(A,B,lambda)n=length(A);JA=poly(A);JJA=poly(lambda);Q=[B];fori=1:n-1Q=[A^(i)*BQ];endT=zeros(n,n);fori=1:nT=T+sparse(i:n,1:n-i+1,JA(i)*ones(1,n-i+1),n,n);endP=Q*T;K=(JJA(n+1:-1:2)-JA(n+1:-1:2))*(inv(P));并根据系统要求,在Command窗口中输入:lambda=[-1+sqrt(3)*j-1-sqrt(3)*j-6-6];K=pole_assignment(A,B,lambda)得到结果:K=14.000053.2200120.0000144.0000构造状态反馈控制律为uvkx,其中KK1K2K3K4]分别是状态x,x,,反馈至v的增益,使得系统极点配置到期望位置。给定起重机初始条件:偏离角度(0)=0.6弧度,(0)=0,z(0)=0,z(0)=0,时,采用Simulink对起重机的反馈控制系统进行仿真验证,绘出反馈控制系统的状态响应曲线,观察其能否返回到参考位置((0)0,z(0)0)以及响应速度是否符合设计要求。搭建Simulink仿真模型图3.3Simulink仿真模型具体模块的参数设置如下:图3.4State-Space内部参数设置Gain图3.5Gain内部参数设置Gain1图3.6Gain内部参数设置状态变量图:图3.7状态变量示波器显示输出结果如下:图3.8输出示波器结果说明其返回了最初参考值,符合设计要求。(5)全维状态观测器计算观测器的参数阵L,应要求观测器的特征值为[-2+j-2-j-8-9]Matlab编程如下:lambda=[-2+j-2-j-8-9];k=pole_assignment(A,B,lambda);k=acker(A,B,lambda)k=21.0000134.2200373.0000360.0000L=k'L=21.0000134.2200373.0000360.0000Simulink模型搭建如下图:图3.9无反馈的状态观测器模型各状态观测器的图像如下图:Scope3:图3.10第一个状态变量波形Scope2:图3.11第二个状态变量波形Scope1:图3.12第三个状态变量波形Scope:图3.13第四个状态变量波形(6)带观测器的反馈控制系统状态方程和输出方程如下:xxCCxyvBxxLCABKBKAxx~00~0~所以LCABKBKA0=P0B=0C=[00.020000.19600000]求系统矩阵P的特征根eig(P)ans=-6.0000-6.0000-1.0000+1.7321i-1.0000-1.7321i-72.22590.0011+3.2781i0.0011-3.2781i-1.0207根据主导极点的定义,其为在系统所有的闭环极点中,距离虚轴最近且周围无闭环零点的极点。因此主导极点:-1.0000+1.7321i和-1.0000-1.7321iSimulink仿真图如下:图3.14带反馈的状态观测器的模型对于State-Space1参数的设置如下图3.15State-Space内部参数设置其中上图中A=A-L*C,B=[B-L*DL],C=I,D=[D0]响应曲线为:Scope4:图3.16Scope3:图3.17带反馈的第一个状态变量波形Scope2:图3.18带反馈的第二个状态变量波形Scope1:图3.18带反馈的第三个状态变量波形Scope:图3.19带反馈的第四个状态变量波形四、思考题(1)说明反馈控制闭环期望极点和观测器极点的选取原则。答:对于反馈控制闭环期望极点:首先闭环极点一定选在左半平面上,由于本系统为高阶系统,在高阶系统中,通常可以根据上升时间,超调量,回复时间等性能指标,按照主导极点的原则来选取。具体如下:选择一对期望的主导极点,其余极点选在距主导极点左边较远的地方,不过此时系统的零点应该位于左半开平面上距离虚轴较远的地方,使得其余极点及可能出现的零点对系统动态性能的影响较小。对于观测器极点:需使观测器的期望极点在闭环反馈系统A-BK极点的左边不远处,一般地,期望极点的选择应使状态观测器的响应速度至少比所考虑的闭环系统响应速度快2—5倍(2)说明增益矩阵对(K,L)的变化对系统性能的影响关系。反馈系统期望极点在S平面上向左移动,响应速度变快,但控制信号明显加大,超调量增加,反之,则控制信号较小,但响应时间变长。观测器极点在S平面上向左移动,观测器状态逼近实际状态的速度加快,但增益矩阵L也随之增大,实验起来较为困难,易产生饱和。(3)说明观测器的引入对系统性能的影响。答:提高系统的阶次,会使系统响应变慢,计算复杂。