Professional Documents
Culture Documents
预测控制第五章GPC课件
预测控制第五章GPC课件
第五章单变量广义预测控制
主讲:吴刚 秦琳琳
主要内容
• 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
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
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
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的矩阵相乘和求逆,为了简化计算,
引入控制前景。控制前景是控制量达到稳态的步数
g p −1 g p−2 g p − pu
= Y 1 + G1U1 + 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
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
G1U1 = =
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
G1U1 =
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++代码,在线调试算法的控
制性能,实时研究控制参数对算法性能的影响;研究外扰
对系统扰的影响,分析系统的稳定性和抗干扰性。
• 报告要求:
实验程序的提供
控制结果展示
扰动对系统影响的结果展示
对实验过程给出理论上的分析
简述遇到的问题
本次实验的结论