现代控制理论》实验报告状态空间极点配置控制实验一、实验原理经典控制理论的研究对象主要是单输入单输出的系统,控制器设计时一般需 要有关被控对象的较精确模型,现代控制理论主要是依据现代数学工具,将经典 控制理论的概念扩展到多输入多输出系统极点配置法通过设计状态反馈控制器 将多变量系统的闭环系统极点配置在期望的位置上,从而使系统满足瞬态和稳态 性能指标1 ■状态空间分析对于控制系统 X = AX + Bu选择控制信号为:u = -(X式中:X为状态向量(n维) u控制向量(纯量)A n X n维常数矩阵 B n XI维常数矩阵求解上式,得到 x(t) = (A - B()x(t)方程的解为: x(t) = e( A-B( )t x(0)状态反馈闭环控制原理图如下所示:从图中可以看出,如果系统状态完全可控,(选择适当,对于任意的初始状 态,当t趋于无穷时,都可以使x(t)趋于02■极点配置的设计步骤1) 检验系统的可控性条件2) 从矩阵A的特征多项式- A - Sn + - ' 4-+ Ojj来确定al, a2, ,an的值3) 确定使状态方程变为可控标准型的变换矩阵 T:T = MW其中M为可控性矩阵,4) 利用所期望的特征值,写出期望的多项式5) 需要的状态反馈增益矩阵 ( 由以下方程确定二、实验内容针对直线型一级倒立摆系统应用极点配置法设计控制器,进行极点配置并用Ma tlab进行仿真实验。
三、实验步骤及结果1. 根据直线一级倒立摆的状态空间模型,以小车加速度作为输 入的系统状态方程为:可以取l 1则得到系统的状态方程为:于是有:直线一级倒立摆的极点配置转化为: 对于如上所述的系统,设计控制器,要求系统具有较短的调整时间(约 3 秒)和合适的阻尼(阻尼比 = 0.5)2. 采用四种不同的方法计算反馈矩阵 K 方法一:按极点配置步骤进行计算1) 检验系统可控性,由系统可控性分析可以得到,系统的状态完全可控性 矩阵的秩等于系统的状态维数(4),系统的输出完全可控性矩阵的秩等于系统输 出向量y的维数(2),所以系统可控倒立摆极点配置原理图2) 计算特征值根据要求,并留有一定的裕量(设调整时间为 2秒),我们选取期望的闭 环极点s 二口i (i = 1,2,3,4),其中:其中,口,口使一对具有=二的主导闭环极点,口,口位于3 4 1 2主导闭环极点的左边,因此其影响较小,因此期望的特征方程为:因此可以得到:= 24, a. = 196. = 720, q = 1600由系统的特征方程:因此有 L;,: = '■ - ‘1=一7■阳.心=、-h =-系统的反馈增益矩阵为:3)确定使状态方程变为可控标准型的变换矩阵 T:T = MW 式中:M =01.0000001.000000000.750005.51250.750005.51250W =0-7.3500-0.00001.0000-7.3500-0.00001.00000-0.00001.0000001.0000000于是可以得到:-7.3500-0.00001.000000-7.3500-0.00001.00000-0.00000.75000-0.00000-0.00000.7500-7.350000-0.0000-0.0000-7.3500-0.000001.0000-0.00000.7500-0.000001.000000.75004) 于是有状态反馈增益矩阵 K 为:K = -217.6871 -97.9592 561.3828 162.6122 得到控制量为:以上计算可以采用 MATLAB 编程计算。
程序如下:clear;A=[ 0 1 0 0; 0 0 0 0; 0 0 0 1; 0 0 7.35 0];B=[ 0 1 0 0.75]';C=[ 1 0 0 0; 0 0 1 0];D=[ 0 0 ]';J=[ -10 0 0 0; 0 -10 0 0; 0 0 -2-2*sqrt(3)*i 0;0 0 0 -2+2*sqrt(3)*i]; pa=poly(A);pj=poly(J);M=[B A*B A"2*B A“3*B];W=[ pa(4) pa(3) pa(2) 1; pa(3) pa(2) 1 0;pa(2) 1 0 0; 1 0 0 0];T=M*W;K=[pj(5)-pa(5) pj(4)-pa(4) pj(3)-pa(3) pj(2)-pa(2)]*inv(T)Ac = [(A-B*K)];Bc = [B]; Cc = [C]; Dc = [D];T=0:0.005:5; U=0.2*ones(size(T));Cn=[1 0 0 0]; Nbar=rscale(A,B,Cn,0,K);Bcn=[Nbar*B]; [Y,X]=lsim(Ac,Bcn,Cc,Dc,U,T); plot(T,X(:,1),'-')hold on; plot(T,X(:,2),'-.')hold on; plot(T,X(:,3),'.')hold on; plot(T,X(:,4),'-') legend('CartPos','CartSpd','PendAng','PendSpd') 运行得到以下结果:可以看出,在给定系统干扰后,倒立摆可以在2 秒内很好的回到平衡位置, 满足设计要求。
方法二:也可以通过下面的方法进行极点配置计算:矩阵(A—BK)的特征值是方程式|ls - (A - BK) |= 0的根: 这是s的四次代数方程式,可表示为适当选择反馈系数 k , k , k , k 系统的特征根可以取得所希望的值1 2 3 4把四个特征根 入,入,入,入 设为四次代数方程式的根,则有 1234比较两式有下列联立方程式如果给出的 入,入,入,入 是实数或共轭复数,则联立方程式的右边1 2 3 4全部为实数据此可求解出实数k , k , k , k 当将特征根指定为下列两组共轭复数时 又a = 7.35, b=0.75利用方程式可列出关于k , k , k , k 的方程组:1 2 3 4求解后得K = -217.6871 -97.9592 561.3828 162.6122 即施加在小车水平方向的控制力 u: 可以看出,和方法一的计算结果一样程序如下:clear;syms a s b k1 k2 k3 k4;A=[ 0 1 0 0;0 0 0 0;0 0 0 1;0 0 a 0];B=[ 0 1 0 b]';SS=[ s 0 0 0;0 s 0 0;0 0 s 0;0 0 0 s];K=[k1 k2 k3 k4];J=[ -10 0 0 0;0 -10 0 0;0 0 -2-2*sqrt(3)*i 0;0 0 0 -2+2*sqrt(3)*i]; ans=A-B*K;P=poly(ans) PJ=poly(J) 运行结果为:P =x"4+3/4 *k4 *x"3T47/20*x"2+3/4 *x"2 *k3+k2 *x"3-147/20*x* k2+k1 *x"2T4 7/20*k1PJ = 1 24 196 720 1600方法三:利用爱克曼公式计算。
爱克曼方程所确定的反馈增益矩阵为:K 二[O 0 ■■- 0其中 T UI -「h - ■ - 1 上 - Ji利用MATLAB可以方便的计算,程序如下: clear;A=[ 0 1 0 0;0 0 0 0;0 0 0 1;0 0 7.35 0];B=[ 0 1 0 0.75]';M=[B A*B A"2*B A“3*B];J=[ -10 0 0 0;0 -10 0 0;0 0 -2-2*sqrt(3)*i 0;0 0 0 -2+2*sqrt(3)*i]; phi=polyvalm(poly(J),A);K=[ 0 0 0 1]*inv(M)*phi 运行结果为:K = -217.6871 -97.9592 561.3828 162.6122方法四:可以直接利用MATLAB的极点配置函数[K,PREC,MESSAGE]= PLACE(A,B,P)来计算程序如下:clear;A=[ 0 1 0 0;0 0 0 0;0 0 0 1;0 0 7.35 0];B=[ 0 1 0 0.75]'; P=[-10-0.0001*j,-10+0.0001*j,-2-2*sqrt(3)*j,-2+2*sqrt(3)*j];K=place(A,B,P);运行结果:K = -217.6871 -97.9592 561.3828 162.6122。