讲课15模型预测控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16.323讲课15
模型预测控制
z Allgower,F.,和A.Zheng,非线性模型预测控制,Springer-Verlag,2000。z Comacho,E.,和C.Bordons,模型预测控制,Springer-Verlag,1999。
z Kouvaritakis,B.,和M.Cannon,非线性预测控制:理论和实践,IEE出版社,2001。
z Maciejowski,J.,有约束的预测控制,Pearson Education POD,2002.
z Rossiter,J.A.,基于模型的预测控制:实践方法,CRC出版社,2003。
MPC
z 在讲课7的计划是有效“开环”
- 使用一个假设的模型和约束集设计控制输入序列u()t 。
- 问题是有模型误差与/或扰动时,这些输入不能产生期望的系统响应。 z 需要“闭环”策略补偿这些误差。
- 方法称作模型预测控制 - 也就是知名的滚动时域控制
z 基本策略:
- 在时刻k ,由当前状态x()k 使用系统模型的知识设计一个有限范围N 长的输入序列
u(|1),u(|2),u(|3),,u(|)k k k k k k k k N ++++…
- 实现输入序列的一部分,通常就是第一步。 - 在时间1k
+,对状态x(1)k +重复上述步骤
参考
旧输出
旧输入
过去当前未来时间
未来输入,没有控制
“最优的”未来输入
未来输出,没有控制
“最优的”未来输出MPC :基本思想(来自Bo Wahlberg )
MIT OCW 供图
z 注意控制算法是基于在每一步数值求解一个最优化问题
- 典型的有约束优化
z MPC 的主要优势:
- 明确说明系统约束。
不只是设计控制器使得系统远离约束。
- 可以容易处理非线性和时变对象动态,因为控制器是可以实时(和计划时间)修改的模型的显函数
z 许多商业应用的时间可以追溯到20世纪70年代早期,见
/~qin/cptv/cptv14.html
- 很多这些工作是过程控制 — 是非线性动态,但是变化不是特别快。
z 随着计算机速度的增长,应用该方法到更快的时间尺度引起了很多新的研究
兴趣:航天系统的轨道设计。
MIT OCW 供图
噪声
对象输出
对象
输出
噪声
轨道生成
轨道生成
参考
参考
反馈补偿
MPC 的实现结构(来自Mark Milam )
基本公式
z 给定一个对象动态集(假设线性)
x(1)x()u()
z()x()
k A k B k k C k +=+=
代价函数为
{
}zz
uu
z(|)
u(|)
(x(|))N
R R j J k j k k j k F k N k ==+++++∑
-
xx
z(|)
R k j k +是状态加权范数的缩写,与早期的工作一致,可以取
zz
zz z(|)
z(|)z(|)T R k j k k j k R k j k +=++
-
(x(|)F k N k +是终端代价函数
z 注意如果N →∞,而且z 和u 没有附加的约束,则这就是在3-14页解过的
离散LQR 问题。
- 注意本来是写为输入控制序列,但是这里看成线性状态反馈。 - 注意在标称的情况下,这两者没有区别。 - 但是有模型误差和扰动,状态反馈形式更不敏感。
⇒这是使用反馈的主要原因。
z 问题:当x 和u 限制增加的时候,不再能找到解析形式的通用解⇒必须用
数值求解。
z 尽管如此,对于很长的输入序列:
- 如果期望模型是错误的与/或有扰动,则求解是没有意义的,因为最终的计划实现不太可能(在那之后可以开始一个新的) - 较长的计划有更多的自由度,而且需要更长的时间计算。
z 一般使用较小的N 设计⇒短计划不能完成所有的目标。
- 经典的难题是N 到底需要多大?
- 如果计划不能达到目标,则必须开发一个残余的代价函数。
z 典型问题叙述:对于有限的N (0F
=)
{
}zz
uu
min z(|)
u(|)
N
R R u
j J k j k k j k ==+++∑
s.t. x(1|)x(|)u(|) x(|)x() z(|)x(|)
k j k A k j k B k j k k k k k j k C k j k ++=+++≡+=+ 而且 u(|)m k j k u +≤
z 考虑转化为更标准的优化问题。
z(|)x(|)k k C k k =
z(1|)x(1|)(x(|)u(|)) =x(|)u(|)
k k C k k C A k k B k k CA k k CB k k +=+=++
21z(2|)x(2|)
(x(1|)u(1|))
=(x(|)u(|)u(1|) =x(|)u(|)u(1|) z(|)=x(|)u N N k k C k k C A k k B k k CA A k k B k k CB k k CA k k CAB k k CB k k k N k CA k k CA B −+=+=+++++++++++
(|)u((1)|)
k k CB k N k +++−
z 组合这些方程为下列形式:
2
123
z(|)z(1|)=x(|)z(2|)z(|)0
000u(|)000u(1|)+00u(1|)N
N N N k k C k k CA k k k k CA k N k CA k k CB k k CAB CB k N k CA B CA B CA B CB −−−⎡⎤⎡⎤⎢⎥⎢⎥+⎢⎥⎢⎥
⎢⎥⎢⎥+⎢⎥⎢⎥
⎢⎥⎢⎥
⎢⎥⎢⎥+⎣⎦⎣⎦
⎡⎤⎡⎤⎢⎥⎢
⎥
⎢⎥+⎢
⎥⎢⎥⎢
⎥⎢⎥⎢⎥
⎢⎥+−⎣⎦⎢⎥⎣⎦