《现代控制理论》实验报告
状态空间极点配置控制实验
一、实验原理
经典控制理论的研究对象主要是单输入单输出的系统, 控制器设计时一般需
要有关被控对象的较精确模型,现代控制理论主要是依据现代数学工具, 将经典 控制理论的概念扩展到多输入多输出系统。极点配置法通过设计状态反馈控制器 将多变量系统的闭环系统极点配置在期望的位置上, 从而使系统满足瞬态和稳态 性能指标。
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
相关热词搜索: 实验 倒立 极点 状态 配置