Download as pdf or txt
Download as pdf or txt
You are on page 1of 39

预测控制

第五章单变量广义预测控制
主讲:吴刚 秦琳琳
主要内容
• 5.1 自校正控制的基本思想
• 5.2 广义预测控制的模型与预测
– 模型
– 预测
• 5.3 丢番图方程的递推求解
• 5.4 广义预测控制
• 5.5 阶梯式广义预测控制
– 柔化设定值轨迹
– 预测分解
– 目标函数与优化控制
– 前景优化控制
– 控制前景
广义预测控制的产生
对于一个能够应用于大多数实际过程的通用性计算
机控制算法,我们要求它能够处理下列几种复杂对象:
• 非最小相位系统:许多最小相位的连续系统,当采
样周期足够小时,所获得的离散系统却是非最小相
位的。
• 开环不稳定系统,具有容易引起不稳定的极点(振
荡)的系统。
• 系统的纯滞后未知或时变。
• 系统的阶次未知,不准确或者时变。
§5.1 自校正控制的基本思想
• 1987年,针对普通自校正控制器鲁棒性差的问题。
D.W.Clarke及其同事汲取了预测控制的若干思想,
提出了广义预测控制(Generalized Predictive
Control:GPC)。对于变参数、变时延、变阶次
的系统,只要输入输出数据足够丰富,能够进行
适当的系统辨识,运用广义预测控制都能获得稳
定的控制。
• 将在线系统辨识与最优控制器设计相结合的一种
控制算法。(自校正控制的基本思想 )
• Clark发表的GPC文章中指出,这种算法一经问世,就在实
际应用获得了很好的效果。
• GPC在牛津大学的几个试点和工业过程中得到应用。其中
包括一个水泥厂,简单地将二阶模型与标准反应曲线拟合,
就可以用GPC进行控制,这比现有的PlO装置要好得多。
• 一个多变量版本的GPC(不需要事先了解相互作用矩阵)
对喷雾干燥的具有良好控制效果,大大减少了变量间的相
互作用。
• 使用68020微处理器上运行的GPC “C”版,以60Hz的采
样率实现了主模式范围从18到几百Hz的单连杆柔性机械臂
的控制。Montague等人(1986)在IBM PC上实现了GPC以
控制非线性青霉素发酵过程,取得了良好的效果。在所有
情况下,该方法都被证明是易于使用的,在各种应用领域
都显示出它的鲁棒性。
§5.2 广义预测控制的模型与预测
• CARIMA模型
A(q −1 ) yt = B (q −1 )ut − k +
t

deg A(q −1 ) = na , deg B (q −1 ) = nb

增量形式为:A(q −1 )yt = B (q −1 )ut − k +  t


假设{ t }是零均值,不相关的随 机变量序列

A(q −1)= 1 + a1q −1 + ...... + ana q − na


B(q −1)= b0 + b1q −1 + ...... + bnb q − nb
§5.2 广义预测控制的模型与预测-预测
引入Diophantus方程
1 = E j ( q −1 ) A( q −1 )  + q − j F j ( q −1 )
其中,E j ( q −1 ) = 1 + e1j q −1 + ...... + e jj −1q −( j −1)
F j ( q −1 ) = f j0 + f j1q −1 + ...... + f jna q − na
E j ( q −1 ),F j ( q −1 )由A( q −1 )和j唯一确定。
将CARIMA模型两端同时乘以E j ( q −1 ) q j
E j ( q −1 ) A( q −1 ) yt + j = E j ( q −1 ) B ( q −1 ) ut + j − k + E j ( q −1 ) t + j
将E j ( q −1 ) A( q −1 )  = 1 − q − j F j ( q −1 )带入此式,得
yt + j − F j ( q −1 ) yt = E j ( q −1 ) B ( q −1 ) ut + j − k + E j ( q −1 ) t + j
yt + j = E j ( q −1 ) B ( q −1 ) ut + j − k + F j ( q −1 ) yt + E j ( q −1 ) t + j
§5.2 广义预测控制的模型与预测
• 预测
预测时假定开环
过去的输出:yt , yt −1 ,  yt − na
以前的输入:ut −1 , ut − 2 ,  ut − k +1− nb
未来的输入:ut , ut +1 ,  ut − k + j
未来时刻的噪声 t +1 ,  t + j
§5.2 广义预测控制的模型与预测-预测
对yt + j |t的最优预测yˆ t + j |t的形式为:
 ˆ
 t + j |t
y = F j ( q −1
) yt + E j ( q −1
) B ( q −1
) ut − k + j , 最优预测值

 y
 t + j |t = E j ( q −1
)t + j,估计误差的方差最小
令G j ( q −1 ) = E j ( q −1 ) B ( q −1 ),则 deg G j ( q −1 ) = j − 1 + nb
G j ( q −1 ) = E j ( q −1 ) B ( q −1 )
1 − q − j F j (q −1 )
= B ( q −1 )
A( q −1 ) 
−1
B(q ) 1 −j
F j (q −1 ) B (q −1 )
= − q
A( q −1 ) 1 − q −1 A( q −1 )(1 − q −1 )
= g 0j + g 1j q −1 + ...... + g nj b + j −1q − ( nb + j −1)
§5.2 广义预测控制的模型与预测-预测
−1 −1 −1
−1 B ( q ) 1 −j
F ( q ) B ( q )
G j (q ) = −q
j
−1 −1
A(q ) 1 − q A(q −1 )(1 − q −1 )
B( z ) 1 1
= G ( z) −1
即阶跃响应和传递函数的乘积
A( z )  1− z
所以G j的前j项是单位阶跃响应的前j项。
G j 可定义为
g 0 + g1q −1 + ...... + g j −1q − ( j −1) + g ij q − j + + g nj b + j −1q − ( nb + j −1)
其中,g i = si , 0  i  j − 1
G j ( q −1 )由两部分组成,算法实质与DMC相似
§5.3 丢番图方程的递推求解
• 对于每个j步最优预测都要求解Diophantus方程,对于
自校正控制,如果预测步数为N,那么每个采样周期
都要求解N个方程,共需求 N(N+na+nb+1)个变量,这
是十分费时费事的。为此采用了递推方法求解 丢番图
方程的三个多项式 。
§5.3 丢番图方程的递推求解
• j=1时,丢番图方程为:

1 = E1 (q −1 ) A(q −1 ) + q −1 F1 (q −1 )
deg E1 (q −1 ) = 0
 E1 (q −1 ) = 1
deg F1 (q −1 ) = na
F1 (q −1 ) = q (1 − A(q −1 ))
= (1 − a1 ) + (a1 − a2 )q −1 + ...... + ( ana −1 − ana ) q − ( na −1) + ana q − na
G1 (q −1 ) = E1 (q −1 ) B (q −1 )
= b0 + b1q −1 + ...... + bnb q − nb
§5.3 丢番图方程的递推求解
−1
E1 (q ) = 1
 f10 = 1 − a1
 i
F  f1 = ai − ai +1 ,1  i  na − 1
 na
 f1 = ana
 g = b0
0
1
 i
 g1 = bi ,1  i  nb
§5.3 丢番图方程的递推求解
已知E j −1 (q −1 )、Fj −1 (q −1 )、G j −1 (q −1 ),求解E j (q −1 )、F j (q −1 )、G j (q −1 )
1 = E j (q −1 ) A(q −1 ) + q − j F j (q −1 )
1 = E j −1 (q −1 ) A(q −1 ) + q − ( j −1) F j −1 (q −1 )

两式相减得到
0 = [ E j (q −1 ) − E j −1 (q −1 )] A(q −1 )  + q − ( j −1) [q −1 F j (q −1 ) − F j −1 (q −1 )]
deg E j (q −1 ) = j − 1 , deg E j −1 (q −1 ) = j − 2, 上式最高阶次为j − 1
 可令E j (q −1 ) − E j −1 (q −1 ) = R + e jj −1q − ( j −1),
deg R = j − 2
§5.3 丢番图方程的递推求解
 0 = RA(q −1 ) + e jj −1q − ( j −1) A(q −1 ) + q − ( j −1) [q −1 F j (q −1 ) − F j −1 (q −1 )]
= RA(q −1 ) + q − ( j −1) [e jj −1 A(q −1 ) + q −1 F j (q −1 ) − F j −1 (q −1 )]
令两边同次项系数相等,显然
R=0
Fj = q ( Fj −1 (q −1 ) − e jj −1 A(q −1 ))
 E j (q −1 ) − E j −1 (q −1 ) = 1 − 1 + (e1j − e1j −1 )q −1 + ...... + (e jj − 2 − e jj−−12 )q − ( j − 2) + e jj −1q − ( j −1)
= 0 + e jj −1q − ( j −1)
 eij = eij −1 = ei ,1  i  j − 1
可知预测步数不同时,多项式E的项数不同,但是相同阶次项的系数都相同
§5.3 丢番图方程的递推求解
重新定义E j (q −1 ),
E j (q −1 ) = 1 + e1q −1 + ...... + e j −1q −( j −1)
G j (q −1 ) = E j (q −1 ) B j (q −1 )
= g 0j + g 1j q −1 + ...... + g nja q −( j −1) + g nja q − j +  g njb + j −1q −(nb + j −1)
i 0  i  j − 1)是系统的阶跃响应的 第i项。
g(
F j (q −1 ) = f j0 + f j1q −1 + ...... + f jna q − na
= q[ f j0−1 + f j1−1q −1 + ...... + f jn−a1q − na − e j −1 (1 + a1q −1 + ...... + ana q − na )(1 − q −1 )]
= q[ f j0−1 − e j −1 ] + [ f j1−1 − e j −1 (a1 − 1)] + ...... + [ f ji−+11 − e j −1 (ai +1 − ai )]q −i + ...... + ana e j −1q − na
 e j −1 = f j0−1

i +1
f = f
j
i
j −1 − e j −1 (ai +1 − ai ) 0  i  na − 1, a0 = 1
f jna = f j0−1ana
§5.3 丢番图方程的递推求解

G j (q −1 ) = E j (q −1 ) B (q −1 )
= [ E j −1 (q −1 ) + f j0−1q −( j −1) ]B (q −1 )
= E j −1 (q −1 ) B (q −1 ) + f j0−1q −( j −1) B (q −1 )
= G j −1 (q −1 ) + f j0−1q −( j −1) B (q −1 )
 g ij = g ij −1 = g i ,0  i  j − 2
g ij = g ij −1 + f j0−1bi − j +1 j − 1  i  nb + j − 2
g njb + j −1 = f j0−1bnb
§5.3 丢番图方程的递推求解
 递推求解公式为:
e j −1 = f j0−1

i +1
f = f
j
i
j −1 − e j −1 (ai +1 − ai ) 0  i  na − 1, a0 = 1
f j
na
= f j0−1ana
g ij = g ij −1 = g i ,0  i  j − 2
g ij = g ij −1 + f j0−1bi − j +1 j − 1  i  nb + j − 2
g nj b + j −1 = f j0−1bnb
§5.3 丢番图方程的递推求解-例题
• 设CARIMA模型如下,用递推法求多项式
§5.4 广义预测控制算法
• GPC和DMC遵循同样的定律并且是MPC的两种特
殊情况,DMC与GPC主要不同点在于:
• 1) GPC采用参数过程模型得出预测,因此需要求
解丢番图方程,而DMC采用阶跃响应模型预测;
• 2) ) GPC采用了比DMC 的step-type干扰更通用的
扰动模型。
§5.4 广义预测控制-设定值柔化
• 采用一阶系统给出柔化设定值序列,未来t+j时刻系统的柔
化设定值记为wt+j,采用下列公式描述。

wt + k −1 = yˆ t + k −1|t

wt + k + i = wt + k + i −1 + (1 −  ) SPt , i = 0, 1, ..., p − 1

• 未来时刻系统的设定值构成了一条柔化轨迹

W = ( wt + k wt + k +1 wt + k + p −1 )T
若  1,响应很慢,无超调
若  0,即设定值权重大,响应快,有超调
0  1
实际中,要在两者之间折中考虑,
§ 5.4 广义预测控制-输出预测分解
• 输出预测分解为:已知数据部分+未知数据部分:
• 当预测步数小于时延时,输出完全由已知数据部分预测

yt + k = Fk (q −1 ) yt + Gk (q −1 )ut + Ek (q −1 )t + k
= Fk (q −1 ) yt + [Gk (q −1 ) − g 0 ]ut + g 0 ut + Ek (q −1 )t + k

= yˆ t1+ k |t + g 0 ut + Ek (q −1 )t + k
§5.4 广义预测控制-预测分解

1,……, p - 1
对于i = 0,
yt + k +i = Fk +i (q ) yt + Gk +i (q )ut +i + Ek +i (q ) t + k +i
−1 −1 −1

= Fk +i (q −1 ) yt + [Gk +i (q −1 ) − g 0 − g1q −1 − ... − g i q −i ]ut +i


+ g i ut + g i −1ut +1 + ... + g 0 ut +i + Ek +i (q −1 ) t + k +i

= yˆ t1+ k +i|t + g i ut + g i −1ut +1 + ... + g 0 ut +i + Ek +i (q −1 ) t + k +i
§5.4 广义预测控制-预测分解
• 将输出预测分解用矩阵表示

 t +k 
y  yt +k|t   g 0
ˆ 1
0  0  ut   Ek (q −1 )t +k 
   1      
 yt +k +1   yˆt +k +1|t   g1 g 0  0  ut +1   Ek +1 (q )t +k +1  −1

   =   +       +


        
y   yˆ 1  g  g 0  ut + p−1   Ek + p−1 (q −1 )t +k + p−1 
 t +k + p−1   t +k + p−1|t   p−1 g p−2
§5.4 广义预测控制-预测分解
• 在t时刻预测p步的输出预测分解 0≤ i ≤ p-1
• 用矩阵形式表示
Y = ( yt + k yt + k +1  yt + k + p −1 )T
Y 1 = ( yˆ t1+ k |t yˆ t1+ k +1|t  yˆ t1+ k + p −1|t )T
U = (ut ut +1  ut + p −1 )T
E = ( Ek (q −1 )  t + k Ek +1 (q −1 ) t + k +1  Ek + p −1 (q −1 ) t + k + p −1 )T
 g0 0  0
 
 g1 g0  0 
G = 
 
 
g g  g 
 p −1 p − 2 0 
Y = Y 1 + G • U + E
• P是预测前景,也称预测长度 Predictive Horizon
§5.4 广义预测控制-
目标函数与优化控制
p −1
min J = min E{ [( yt + k +i − wt + k +i ) 2 +  (ut +i ) 2 ]}
U U
i =0

= min E[(Y − W )T (Y − W ) + U T U ]


U

等价于min J = min [(Yˆ − W )T (Yˆ − W ) + U T U ]


U U

= min [(Y 1 + GU − W )T (Y 1 + GU − W ) + U T U ]


U

J
极小化目标函数,令 =0
U
得到控制率U = (G T G + I ) −1 G T (W − Y 1 )
其中G是p ×p的矩阵
§5.4 广义预测控制-前景优化控制
• 实际应用中只需要即时控制量

ut = ut −1 + G T (W − Y 1 )
其中G T 是(G T G + I ) −1 G T的第一行。
• 只取即时控制量输出,下一个采样时刻检测实际输出信息,
G T

重新计算预测值,重新计算控制量,这就构成了闭环反馈
控制。
§5.4 广义预测控制-前景优化控制
• 控制率需要计算p ×p的矩阵相乘和求逆,为了简化计算,
引入控制前景。控制前景是控制量达到稳态的步数

ut +i = 0,p − 1  i  pu时


ut + pu −1 = ut + pu = ut + pu +1 = ........ = ut + p −1
将预测输出改写为以下形式:
 g0 0  0  0  ut 
  
 yt + k   yˆ t1+ k |t   g1 g0  0  0  ut +1   Ek (q −1 ) t + k 
   1       E (q −1 ) 
 yt + k +1   yˆ t + k +1|t    
  +  k +1 t + k +1 
   =   +g g pu − 2  g0  0  ut + pu −1   
     pu −1    
y   yˆ 1   
    Ek + p −1 (q ) t + k + p −1 

  t + k + p −1|t      1
 t + k + p −1
 g p −1 g p − 2
  g p − pu  g 0  ut + p −1 
§5.4 广义预测控制-前景优化控制
 g0 0  0 
 
 yt + k   yˆ t + k |t   g1
1
g0  0  ut   Ek (q −1 ) t + k 
   1   
 u   
 t + k +1   t + k +1|t   
y ˆ
y 
 t +1   E k +1 ( q −1
) t + k +1 
  =  +g g pu − 2  g 0    
+
 
     pu −1     
y     
  ut + pu −1   Ek + p −1 (q ) t + k + p −1 
 −1
 t + k + p −1   yˆ t + k + p −1|t   
1

 g p −1 g p−2  g p − pu 

= Y 1 + G1U1 + E
 g0 0  0 
 
 g1 g0  0 
   
其中,G1 =  
 g pu −1 g pu − 2  g0 
   

 g p −1 g p−2  g p − pu 
 p  pu

U1 = ut ( ut +1 ...... ut + pu −1 )T


§5.4 广义预测控制-前景优化控制
目标函数变为:
p −1 pu −1
min J = min E{ ( yt + k +i − wt + k +i ) +   (ut +i ) 2 }
2
U U
i =0 i =0

= min E[(Y − W )T (Y − W ) + U1 U1 ]


T
U1

等价于min J = min [(Yˆ − W )T (Yˆ − W ) + U1 U1 ]


T
U1 U1

= min [(Y 1 + G1U1 − W )T (Y 1 + G1U1 − W ) + U1 U1 ]


T
U1

J
极小化目标函数,令 =0
U1
U1 = (G1 G1 + I ) −1 G1 (W − Y 1 )
T T
得到控制率为
其中G1是p  pu的矩阵,维数下降,计 算量大大减少。
ut = ut −1 + G1 (W − Y 1 )
T
即时控制量为:
其中G1 是(G1 G1 + I ) −1 G1 的第一行。
T T T
§5.4 阶梯式广义预测控制
• 关于广义预测控制的改进方案很多,但大
多是在其基础之上增加某种功能,使原本
计算量很大的算法更加复杂,不利于在线
实施。而这些算法的鲁棒性并没有明显超
过广义预测控制。
• 对于广义预测自校正控制来说,控制器参
数变动频繁,逆矩阵必须在线求解,十分
麻烦。为此引入了阶梯式控制。
§5.4 阶梯式广义预测控制
ut = 
ut + i = ut + i −1 =  i ut =  i ,1  i  pu − 1?

( )
T
U1 = ut ut +1 ut + pu −1

= ( )
T
  pu −1

= (1  p u
)
−1 T
?
 g0 0 0   g0 0 0 
   
 g1 g0 0   ut   g1 g0 0  1 
   ut +1     
G1U1 =   =  
 g pu −1 g pu − 2 g0     g pu −1 g pu − 2 g0   
   u      pu −1 
   t + pu −1    
 g p −1 g p−2 g p − pu   g p −1 g p−2 g p − pu 
 
§5.4 阶梯式广义预测控制
 g0 
 
 g1 +  g 0 
 
G1U1 =  
 pu −1
g +  g pu − 2 + ...... +  pu −1
g0 
 
 
 g p −1 +  g p − 2 + ...... +  pu −1 g p − p 
 u 

= G2
其中,G2 是p  1的列向量
Y = Y 1 + G2 + E
§5.4 阶梯式广义预测控制
目标函数变为:
min J = min [(Yˆ − W )T (Yˆ − W ) +  (1 +  2 + ...... +  2( pu −1) ) 2 ]
 

极小化目标函数,控制律为:
G2T (W − Y 1 )
= T
G2 G2 +  (1 +  2 + ...... +  2( pu −1) )
阶梯因子 = 0时,ut+i = 0, 这同pu = 1时动态矩阵控制相同。
 = 1时,ut =ut +1 = =ut +pu +1 , 每一步控制增量相同。

• 算法中逆矩阵的求解变成了向量运算和标量运算,不需要
在线求解逆矩阵了,计算量大大减小。而且由在线求逆引
起的逆矩阵的存在性和数字问题等理论与实际应用中的难
点,也都得到了回避,十分有利于实际实施。
水箱实验
• 周五上午(5月13日开始)
实验题目:预测控制在水箱系统中
的应用
• 建模:运用系统辨识的方法,建立水箱系统的模型。
• 实验步骤:
– 试验设计及数据预处理
– 模型阶次/结构选择:参数模型以及非参数模型,阶次
以及纯时延的选择
– 参数估计:不用matlab提供的函数
– 模型校验
• 报告要求:
– 选择的系统模型类
– 辨识的原理,方法和公式
– 辨识的源程序
– 辨识结果
– 辨识结果和实际系统输出的偏差曲线
实验题目:预测控制在水箱系统中
的应用
• 仿真:利用辨识出来的模型,仿真一种预测控制(如模型
预测控制、动态矩阵控制、广义预测控制等)算法的性能,
要求系统具有快速型。主要目的是通过仿真,得到最优的
控制参数(预测前景,控制前景,柔化因子,控制权重,
阶梯因子等)
• 报告要求:
1) 仿真程序以及注释
2) 给出仿真曲线,比较参数不同时仿真曲线的差异
3) 给出一个比较好的仿真结果,要求具有快速性
4) 给出一个仿真结论,每个控制参数对系统性能的影响
5) C++控制代码
实验题目:预测控制在水箱系统中
的应用
• 实控:编写预测控制算法的C++代码,在线调试算法的控
制性能,实时研究控制参数对算法性能的影响;研究外扰
对系统扰的影响,分析系统的稳定性和抗干扰性。
• 报告要求:
实验程序的提供
控制结果展示
扰动对系统影响的结果展示
对实验过程给出理论上的分析
简述遇到的问题
本次实验的结论

You might also like