当前位置:作文大全 > 倒立摆状态空间极点配置控制实验实验报告 倒立摆实验

倒立摆状态空间极点配置控制实验实验报告 倒立摆实验

时间:2021-11-14 11:10:56 浏览次数:

  《现代控制理论》实验报告

 状态空间极点配置控制实验

 一、实验原理

 经典控制理论的研究对象主要是单输入单输出的系统, 控制器设计时一般需

 要有关被控对象的较精确模型,现代控制理论主要是依据现代数学工具, 将经典 控制理论的概念扩展到多输入多输出系统。极点配置法通过设计状态反馈控制器 将多变量系统的闭环系统极点配置在期望的位置上, 从而使系统满足瞬态和稳态 性能指标。

 1?状态空间分析

 对于控制系统 X = AX + Bu

 选择控制信号为:u = -KX

 式中:X为状态向量(n维) u控制向量(纯量)

 A n x n维常数矩阵 B n X 1维常数矩阵

 求解上式,得到 x(t) = (A - BK)x(t) 方程的解为:x(t) = e( A -BK )t x(0) 状态反馈闭环控制原理图如下所示:

 从图中可以看出,如果系统状态完全可控,K选择适当,对于任意的初始状 态,当t趋于无穷时,都可以使x(t)趋于0。

 2 ?极点配置的设计步骤

 1) 检验系统的可控性条件。

 2) 从矩阵A的特征多项式卜宀*存严

 来确定a1, a2, ……,an的值。

 3) 确定使状态方程变为可控标准型的变换矩阵 T : T = MW

  TOC \o "1-5" \h \z 其中M为可控性矩阵, - :'

 &T ①“…如1" 3 1 ° °

 jy — : : ; ; ?

 術 1 0 0

 | 1 0 ■■- 0 0

 4) 利用所期望的特征值,写出期望的多项式

 0「川)@ _(S _ “■)=屮+同買T十…十兔¥ + %

 5) 需要的状态反馈增益矩阵K由以下方程确定:

 k =底一叮 % — j Q _込⑹_尙Jr “

 二、实验内容

 针对直线型一级倒立摆系统应用极点配置法设计控制器,进行极点配置并用 Matlab进行仿真实验。

 三、实验步骤及结果

 根据直线一级倒立摆的状态空间模型,以小车加速度作为输 入的系统状态方程为:

 001010 0 0

 0

 0

 1

 0

 10 0 0

 '0010

 41

 可以取I 1。则得到系统的状态方程为:

 000I\<000n 751000y010100■ c '0

 0

 0

 0

 I

 \<

 0

 0

 0

 n 75

 1

 0

 0

 0

 y

 0

 1

 0

 1

 0

 0

 ■ c '

 0

 0

 1)

 0

 0

 0

 0

 1

 1

 0

 0

 0

 7.35

 0

 C.75

 于是有:

 10 0 0

 0 0 10

 直线一级倒立摆的极点配置转化为:

 对于如上所述的系统,设计控制器,要求系统具有较短的调整时间(约 3

 秒)和合适的阻尼(阻尼比? = 0.5 )。

 采用四种不同的方法计算反馈矩阵 K

 方法一:按极点配置步骤进行计算。

 1)检验系统可控性,由系统可控性分析可以得到,系统的状态完全可控性 矩阵的秩等于系统的状态维数(4),系统的输出完全可控性矩阵的秩等于系统输 出向量y的维数⑵,所以系统可控。

 状态变辰

 倒立摆极点配置原理图

 2)计算特征值

 根据要求,并留有一定的裕量(设调整时间为 2秒),我们选取期望的闭

 环极点s =卩i (i = 1,2,3,4) ,其中:

 /q = -10, = —10- f = —2 + j2翻、/如=—2 - j2畐

 其中,卩3,卩4使一对具有匚的主导闭环极点,卩1,卩2位于 主导闭环极点的左边,因此其影响较小,因此期望的特征方程为:

 (S-74)(5 - )(5)(5 _角)=(J + 10XJ + + 2 - 2^/J/>S + 2+■ Z^J)

 =/十 24十 ^I96s2 +720^-^1600

 因此可以得到:磅=241旳"販 咕叫 勺="00

 因此有由系统的特征方程:

 因此有

 S

 -1

 0

 0

 0

 S

 0

 0

 0

 0

 S

 -1

 0

 0

 -7.35

 S

 \sI-A

 码=0* 业二 一7? 35,為=0. a4 = 0

 系统的反馈增益矩阵为:

 K =[cr4 —心 匕3 -a^:a2 一如口 _q]r '

 确定使状态方程变为可控标准型的变换矩阵 T : T = MW

 式中:

 M =

 0

 1.0000

 0

 0

 1.0000

 0

 0

 0

 0

 0.7500

 0

 5.5125

 0.7500

 0

 5.5125

 0

 0 -7.3500 -0.0000 1.0000

 -7.3500 -0.0000 1.0000 -0.0000 1.0000 0 0 1.0000 0 0 0

 于是可以得到:

 -7.3500 -0.0000 1.0000 0

 0 -7.3500 -0.0000 1.0000

 0 -0.0000 0.7500 0

 -0.00000 -0.0000 0.7500-7.35000 0 -0.0000

 -0.0000

 0 -0.0000 0.7500

 -7.3500

 0 0 -0.0000

 -0.0000 -7.3500 -0.0000

 -0.0000 -7.3500 -0.0000

 1.0000 -0.00000.7500 -0.0000

 1.0000 -0.0000

 0.7500 -0.0000

 0 1.0000 0 0.7500于是有状态反馈增益矩阵K为:

 0 1.0000 0 0.7500

 于是有状态反馈增益矩阵K为:

 K = -217.6871 -97.9592 561.3828 162.6122

 得到控制量为:

 H - -XX - 217. 6871 X ■+ 97. 9592- 561* 3823 ie2- 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 AA2*B AA3*B];

 W=[ pa⑷ 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 ⑷ pj( 3)-pa (3) pj (2)-pa(2)]*i nv(T)

 Ac = [(A-B*K)];

 Bc = [B]; Cc = [C]; De = [D];

 T=0:0.005:5;

 U=0.2*o nes(size(T));

 Cn=[1 0 0 0];

 Nbar=rscale(A,B,C n, 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),'-')

 lege nd('CartPos','CartSpd','Pe ndAn g','Pe ndSpd')

 运行得到以下结果:

 可以看出,在给定系统干扰后,倒立摆可以在 2秒内很好的回到平衡位置, 满足设计要求。

 方法二:也可以通过下面的方法进行极点配置计算:

 矩阵(A— BK的特征值是方程式|Is - (A - BK) |= 0的根:

 0

 0

 0

 ~0

 1

 0

 \)

 _0~

 0

 S

 0

 0

 0

 0

 0

 0

 1

 一

 +

 0

 0

 S

 0

 0

 0

 0

 1

 0

 0

 0

 0

 S

 0

 0

 a

 0

 b

 这是s的四次代数方程式,可表示为

 s4 + (辰 + 十(-a + 他十 bkjf 一 一% = 0

 适当选择反馈系数k 1 , k 2 , k 3 , k 4系统的特征根可以取得所希望的值 把四个特征根 入1 ,入2 ,入3 ,入4设为四次代数方程式的根,则有

 ■j4 _ (人+ & + 乂勺+彳斗)J

 + {/[川丫 + X t /+ X + Z. X | + /.]交予 + 川丫 乂彳、$ "

 —{ + -j X- A+ z^.| A j/t j +/1 斗右 2? )>S

 + /C;/」=0

 比较两式有下列联立方程式

 耗、+3/^4 = —I止]十兄r + 乂日+虫斗)

 -a + J^ =右厶 +几2久3 +易人 亠人右 +2j23 +人人

 -ak^ = —+ 久2久、丄4 + 久4 + 人4乂1 几2 )

 —应忙]=Z|Z?Z - Z J

 如果给出的 入1 ,入2,入3,入4是实数或共轭复数,则联立方程式的右边

 全部为实数。据此可求解出实数ki , k 2 , k 3 , k 4

 当将特征根指定为下列两组共轭复数时

 又a = 7.35 ,b=0.75

 利用方程式可列出关于ki , k 2, k 3 , k 4的方程组:

 心十°?衍忍=24

 —7. 3巨 + & + Q, 75 居=196

 -7, 35^2 = 720

 -7. 3晦=1600

 求解后得

 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];

 an s=A-B*K;

 P=poly(a ns)

 PJ=poly(J)

 运行结果为:

 P =

 xA4+3/4*k4*xA3-147/20*xA2+3/4*xA2*k3+k2*xA3-147/20*x*k2+k1*xA2-14 7/20*k1

 PJ = 1 24 196 720 1600

 方法三:利用爱克曼公式计算。

 爱克曼方程所确定的反馈增益矩阵为:

 K = [o 0…0 …才We⑷

 其中

 利用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 AA2*B AA3*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]* in v(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