![ee2ef91717e7c86ba01d1420c7cb095d.png](https://i-blog.csdnimg.cn/blog_migrate/6a84a31c0fa555fd08c79b3e6f7a8d50.jpeg)
一、背景:
20世纪中后期,在工业控制领域出现了一类新的计算机控制算法,称为模型预测控制(model predictive control, MPC)[1]。众所周知,到今天PID控制仍然是工业控制的主流,那么为什么还要发展MPC呢? PID作为一种“万能”控制器,其不需要知道环境的模型,就可以进行调试,同时其最大的优点在于调控参数数,易于整定。但PID主要在控制回路中其主要作用,当控制从单回路升级到整个系统之后,缺乏变量间耦合信息的单回路控制就很难保证良好的全局性能。为了能够保证全局性能,现代控制理论应运而生。围绕着航空航天、化工生产系统,最优控制、极点控制这一类先进控制都曾让人认为可以完美地控制系统,但通过实践就发现完美的理论与工业过程之间仍旧存在着巨大的鸿沟,原因在于:
(1)现代控制理论的基点是精确的数学模型,但在实际工业过程中难以得到精准的数学模型
(2)工业环境的结构、参数都具有极大的不确定性
(3)现代控制理论算法过于复杂无法满足控制过程实时性的要求指标
为了解决上述问题,打破传统控制的约束,人们致力于寻找一类对模型精准度不高、可以处理多变量和多约束的现代控制算法。模型预测控制就是在这一大背景下发展起来的先进控制算法。
模型预测算法有以下好处:
(1)例如DMC一类预测算法,其基于简单的脉冲信号或者阶跃信号就可以获得非参数模型,且不需要进一步对模型进行辨识,而这类信号对于工业过程来说是容易实现的。
(2)例如GPC一类的算法汲取了预测控制中多步优化的思想,增强了控制器的鲁棒性。
二、预测控制
预测控制算法一般分为以下三个部分:
(1)预测模型:所有的预测控制算法都需要预先得到一个预测模型,通过模型来得到预测输出。
(2)滚动优化:即在每一个采样时间点,算法只优化一个范围内的有限时域,得出所有优化控制后,只实施当前控制量于系统,到下一个采样时间点又再次进行优化预测。
(3)反馈校正:根据预测模型可计算下一个采样时间点的输出,到下一个采样时间点用实测输出与预测输出求误差,以此对未来的输出进行启发式修正。
为了便于大家的理解,今天从DMC(动态矩阵预测控制算法)入手,来具体介绍模型预测控制算法。
三、动态矩阵控制(DMC)
1.建立预测模型
DMC基于对象的阶跃响应来建立非参数模型,其适用于渐进稳定的线性对象。
对于DMC而言,首先要测定对象的单位采样值:
T为采样周期。在时间t=NT之后,阶跃响应将趋于一个稳定值(系统的稳态),即
来表示,这个集合的参数就构成了DMC的模型参数,向量(2)为矩阵的模型向量。利用(2)就足以对未来时刻的输出值进行预测。在
,当k时刻有一控制增量
作用下可以得到未来各个时刻的输出值:
(5)就是我们所需要的预测模型.
2.实行滚动优化
滚动优化是模型预测控制中必不可缺的环节,其目的在每一个时刻
为了滚动计算每一个时刻
其中:
将(6)带入(9)得:
其中A由模型向量(2)构成,表示为:
在
所需要传递给过程的增量为(12)的第一个元素
求得
将
3. 反馈校正
在
利用反馈误差对预测输入进行校正就可以得到校正预测值
此时将
细心的观众会发现,模型向量的建模时域为
其中
4. 算法流程
![75c4897a7f793f1deb66f66fe3fbb8f9.png](https://i-blog.csdnimg.cn/blog_migrate/b933f37db00ed10fb95f76f655fd1f2d.jpeg)
![c47588e2cbece3eecd8d49538f714432.png](https://i-blog.csdnimg.cn/blog_migrate/6b9a9314a4993c9573ac1a89977d1f54.jpeg)
四、代码实现(matlab)
1. 相关参数设定:
sim
其中计算动态矩阵和建模向量的程序如下:
function
2. 仿真模型:
myP
代码由参数设定,矩阵计算,仿真三个部分组成,基础算法比较简单,注释得也很清楚,固不再赘述。
六.仿真结果:
![e11408cd71eb77599ded835510bbacca.png](https://i-blog.csdnimg.cn/blog_migrate/d1621773154fb528de8a4f0b10409c7e.png)
左图是轨迹跟踪的仿真结果,右图是误差曲线走势,并没有特别认真的去调试各项参数,但DMC已经表现出了比较良好的控制效果。
参考
- ^预测控制/席裕庚著, —2版. —北京: 国防工业出版社, 2013.12