阅读材料5: 跟踪控制器设计
实际工作中,许多系统都存在确定性扰动,如阵风对雷达天线的扰动,海浪对船体纵摇或横摇的扰动,飞行体在大气中受到气浪的扰动等,确定扰动的函数形式如冲击函数、阶跃函数、斜坡函数、正弦函数等。此处只讨论确定性扰动。
在诸如数控机床、导弹控制等实际控制中,常常要求闭环系统的输出以给定精度跟踪参考输入信号,实现精确的跟踪控制。
例1(149P 例5.4.1)被控对象为x y u x Bu Ax x )23(104310=????
??+???? ??--=+=,
设计状态反馈控制器使闭环极点为)54(--,讨论闭环系统的稳态性能。 解:被控对象为能控标准形,系统能控,系统开环传递函数的特征多项式为
34431det )det(2
++=???? ??+-=-s s s s A sI )31(21--=,
s (1-1) (1-1)式表明原开环系统极点为)31(21--=,s ,原系统是稳定的。 传递函数分子为01b s b +,而x x b b y )23()(10==
3
43
2)(2012010+++=
+++=
s s s a s a s b s b s G (1-2) 期望的闭环特征多项式为 209)5)(4()(2++=++=s s s s s f (1-3)
(1-3)式表明引入状态反馈控制器后,闭环系统也是稳定的,但性能有所改变。 所要设计的状态反馈增益矩阵为 )517()49320(=--=K (1-4)
所以,相应闭环系统状态矩阵为 ???? ??--=-92010BK A (1-5)
对应的闭环传递函数分母,即期望的闭环特征多项式
209)(2++=s s s f (1-6) 分子仍然为01b s b +,而x x b b y )23()(10
==
? 20
932)(201201c +++=+++=
s s s a s a s b s b s G (1-7)
考察参考输入为单位阶跃函数)(1)(t t u =,s s R /1)(=,系统的稳态输出为
)(lim )
(lim )(0
s sY t y y s t →∞
→==∞经典控制理论结论
定义
)0()()(lim 0
G s R s sG s ==→(∵1)(=s sR )
由(1-3)开环系统输出稳态值为 1)0()(00==∞G y (1-8)
说明开环系统可以精确跟踪单位阶跃输入,跟踪误差为0,该开环系统无静差(参见例5-9图1)。而由(1-8)闭环系统输出稳态值为
15.020
3
)0()(c c ===∞G y (1-9) 说明该系统闭环后
静态绝对误差 85.0)()(c -=-∞t r y ; 相对误差 85%。 系统闭环后不能精确跟踪单位阶跃输入(参见例5-9图2)。
结果表明,极点配置尽管改善了闭环系统的动态特性,却使稳态性能变差了。此外实际系统还不可避免的存在随机扰动(只知道其均值、方差等统计特性)和确定性扰动(具有确定的函数形式)。
渐近跟踪调节器设计方法
以下针对外部阶跃扰动的线性时不变系统,提出一种能实现“无静差”跟踪参考输入信号的渐近跟踪调节器设计方法。
考虑以下状态空间模型描述的m 维输入、p 维输出,)(t d 是n 维扰动输入
Cx y d Bu Ax x
=++=, (5-37) 假定系统的参考输入是阶跃输入)(1)(0t r t r =,“窜入”系统输入的阶跃扰动为)(1)(0t d t d =,控制的目的是在存在阶跃扰动)(t d 的情况下,仍希望闭环系统的输出)(t y 能很好地跟踪参考输入)(t r 。为此,定义误差向量
例5-9图1开环系统单位阶跃响应(无静差)
例5-9图2 闭环系统单位阶跃响应(有静差)
)()()(t r t y t e -= (5-38) 引入误差向量的积分)(t q ττd )()(0?=t
e t q (5-39)
]d )(d )(d )([])()()([)(0
2
121τττ
ττ
τ???==t
p
t
t
p T
e
e e t q t q t q t q
)()()()(t r t Cx t e t q
-== (5-40) 在状态方程中,将积分器的输出选择为状态向量的分量,按此,也可以将“误差向量的积分)(t q ”选为状态向量的分量,于是,综合(5-37)、(5-40)可得“增广系统”方程为
????
??=???? ??-+???? ??+???? ?????? ??=???? ??q x C y r d u B q x C A q x )0(000, (5-41) 新的状态向量是p n +维的。
对系统(5-41),若能设计一个状态反馈控制器 q K x K q x K K u 2121
)(--=???
?
??-= (5-42) 使增广的闭环系统(5-42)代入(5-41)
???
?
??-+???? ?????? ??--=???? ??r d q x C BK BK A q x 021 (5-43) 是渐近稳定的,此时,矩阵???
?
??--021
C
BK BK A 是非奇异的,可逆的。对(5-43)两边取Laplace 变换,整理后得到
???
?
??-??
?
??????? ?
?---=???? ??-)()(0)()(1
21
s r s d C BK BK A sI s q s x (5-44) 由Laplace 终值定理(参考输入
s
r 0和外部扰动s d
0都是阶跃信号)
???
? ??-??
?
??????? ??---=???? ??=???? ??-→→∞→s r s d C BK BK A sI s s q s x s t q t x s s t //0lim )()(lim )()(lim 001
210
44-50)(
???
? ??-???
?
?
?---=-001
21
0r d C
BK BK A (注意0→s ,0=sI ) 这表明)(t x 、)(t q 都趋于常值向量,因此)(t x
、)(t q 都必将趋于0
)(lim )(lim 0))()((lim )(lim t r t y t r t y t q
t t t t ∞
→∞
→∞
→∞
→==-= (5-45)
从而实现精确地跟踪控制。
小结:对增广系统(5-41)设计一个稳定化状态反馈控制器(5-42),就可以保证系统输出跟踪阶跃参考输入,而且没有稳态误差。进一步,若增广系统是能控的,可以通过对增广系统的极点配置,使其具有一定的动态性能。
定理5-5(152P 定理5.4.1)增广系统(5-41)能控的充要条件为原系统(5-37)
是能控的。且p C p m p n C A =≥+=???
?
??rank
,,00rank (证明略) 将增广系统的控制器(5-42)写为
?--=t
e K x K u 021d )(ττ (5-46)
它相当于一个比例积分“PI 控制器”,第一项是原系统的状态反馈,而第二项是为了改善稳态精度而加的积分控制作用。
根据增广的闭环系统(5-43)??
???==-=+--=Cx y t e r Cx q
d q BK x BK A x
)()(21 (5-47) (5-47)可以画出反馈控制的状态结构如图5-3。
由上分析可知,对于一个多变量系统,尽管有一个不能测量(或未知)的阶跃扰动输入,仍可以设计一个控制器,使得闭环系统的输出无静差的跟踪阶跃参考输入。
例2(155P 例5.4.2)倒立摆的状态方程和输出方程为
图5-3 增广系统的状态反馈
u x Bu Ax x
??
????
? ??-+??????? ?
?-=+=1010011
0010000100
0010 ,x Cx y )0001(== 式中:T T y
y
x x x x x )()(43
21θθ == —系统状态向量; y —小车的位移; y
—小车的速度; θ—摆杆的角位移; θ
—摆杆的角速度; u —作用在小车上的力。 控制目标为:将倒立摆保持在垂直位置0=θ,同时要求系统输出能跟踪一个阶跃输入信号,即要求小车移动一个单位距离,停在预定位置。要求调节时间为
s 5~4,最大超调为15%。
解:利用(5-43)得到相应的“增广系统”模型,假设系统没有受到干扰0=d 。 根据控制目标的性能要求,选择闭环极点为
5313154321-===--=+-=s s s j s j s 32
2)5](3)1[()(+++=s s s f 希望125)75514)(2(232+++++=s s s s s 500550335109172345+++++=s s s s s (1) 应用(5-41)式
???????
? ??-+???????? ??-+???? ?????????? ??-=???
? ??-+???? ??+???? ?????? ??=???? ??r u q x r d u B q x C A q x 000001010000
1
00
11000100000100
00010000 (2) ????
??=q x y )00001( (3)
采用极点配置,基于增广系统设计控制器 q K x K q x K K u 2121
)(--=???
? ??-= ???????
? ??-=-????
??
? ??-=q x x x x k k k k k q k x x x x k k k k 432124
131211
12432141312111)()(
???????
? ??-+???????? ???
?
?
???
?
?
??--???????? ?????????? ??-=???????? ??r q x x x x k k k k k q x x x x q x
x x x
0000)(01010000010011000100000100000
10432124
131211
143214321 ???????
? ??-+???????? ??????????
??-----+???????? ?????????? ??-=r q x x x x k k k k k k k k k k q x x x x 000000
00000
00000
0000
1
0011000100000100000
104321214131211
2413121114321 ???????
? ??-+???????? ?????????? ??+------=r q x x x x k k k k k k k k k k 000000
1
1101000100010432121413
12112413
12111 ??
?????
? ??--------++-=??
???
????? ??---s k k s k k k s k k k k s k s
C
BK BK A sI 0
1
11010010001det 0det 214
13
12
112413
12
11
121 “-”下划线表示按该元素第1次展开,“=”下划线表示按该元素第2次展开。
????
??
?
?
?-------++??
?
??
??
??------++=s k k s k k s k k k k s k k s k k s
k k k k s s 0
111010
1de t 0
00110101de t 214
13
112413
11
1214
13
12241312
1 ????
?
?
?-----++=1413
124131212
1110
1de t k s k k
s k k k s s ?
???
?
?
?
?-----++?
?????
?
?-----++1413
11413
11
1214
132413111101det 11011det k s k k s k k k s k k s k s
k k k
???
?
??---+++???? ?
?--+=1312312
121412412
13111det det k k k k s s k s k
k k s s
???
?
??-+-???? ??
----+11det 111det 413
1214132s k k k k s k
s k ???
?
??-+-???? ??
----+11det 111det 413
111141311s k k s k k s k
s s k 10)(10)(]10)11([])([2112221132142123-+-+---+-+=s s k s k k k s s s k k s s
2112212313114142151010)10()11()(k s k s k k s k k s k k s ---+--+-+= (4) 比较(1)(4)两式可得
?????????=-=-=-=-=-50010550
1033510120172
1
1212131114
21k k
k k k
k k k ?????
????-=-=-=-=-=50
55.51755
.3855
2
1413
1211
k k k k k 与Matlab 运行的结果一致 (5) 以下求闭环系统时,小车对单位阶跃输入的响应(输出)
)(det 10000)(det )()00001()()(151K K b K K K A sI b A sI A sI B A sI C s G --=???????
? ??---=-=- 由(1)式 32
2)5](3)1[()()(det +++==-s s s f A sI K 期望
?????
??+-----=????
??? ?
?+------=5055.5164015055.5174de t 5055.51645.380105055.51745.380001
de t 15s s s s s b
????
??----???? ??+-=155.5174det 5055.51641det 50s s s 10)50()55.517416455.550(22-=--++=s s s s 单位阶跃输入函数为 s
s U 1
)(=
,所以输出函数为3
22215)5](3)1[(10)
50(1)(det 1)()()(+++--=--==s s s s A sI b s s U s G s Y K K
5)5()5(23
)1(3)1(6
253422321+++++++++++=
s a s a s a s a s a s a 1)
5](3)1[(10)
50(1lim 322201=+++--?=→s s s s s a s 89.719
150
)5](3)1[(10)50(1)5(lim 232223
54≈=+++--?
+=-→s s s s s a s ???
?????+++++++++++==--5)5()5(89.73)1(3)1(1)()(6253223
21
1
s a s a s s a s a s L s Y L t y t t t t t a t a t t a t a 56555232e e e 95.33sin e 3cos e 1-----+++++= 参见例5-10图,这就是小车的输出响应。
容易验证增广系统(2)是能控的,因此可以运行Matlab 文件对增广系统进行给定极点的配置。执行以下m-文件
)01100100001000010(A ;;;-=;
)1010(B -=;;;; )0001(C =;
)0C ;zeros(4,1)A (AA =; )0B;(BB =;
)555sqrt(3)*j 1sqrt(3)*j 1(J -----+-=;
)J BB AA (acker K ,,=
可得增广系统的状态反馈增益矩阵
2
14
13
12
11
50.0000
55.5000175.000038.500055.0000K k k k k k -----=
因此,要设计的控制器为 x u )5.551755.3855(=?-+t
t y 0
d ))(1)((50ττ
若要观察实施效果,可以针对阶跃参考输入,编写和执行以下m-文件
)01100100001000010(A ;;;-=;
)1010(B -=;;;;)0001(C =;
)55.0000175.000038.500055.0000(K1----=;-50.0000K2=; % 闭环增广系统状态空间模型系数矩阵
)0C K2;*B K1*B A (Ac --=; )10;0;0;0;(Bc -=;
)0
(
Cc=;0
C
Dc=;
t=% 时间t从0→6(秒)间隔0.02秒取值:0
6:
0.02
step(Ac,
[y,=;
x,
t]
Bc,
Dc,1,
t)
Cc,
plot(t,% 绘制t-y图
y)
grid% 绘制格子
xlabel(';% x轴打印time(sec)
)
time(sec)'
O utput'
ylabel('% y轴打印Output
)
从5-10图可以看出,小车的位移很好的跟踪了单位阶跃信号。
例5-10图小车输出响应