xiaozongpeng 发表于 2021-12-3 11:43

模型预测控制(MPC)算法之一MAC算法

引言

随着自动驾驶技术以及机器人控制技术的不断发展及逐渐火热,模型预测控制(MPC)算法作为一种先进的控制算法,其应用范围与领域得到了进一步拓展与延伸。目前提出的模型预测控制算法主要有基于非参数模型的模型算法控制(MAC)和动态矩阵控制(DMC),以及基于参数模型的广义预测控制(GPC)和广义预测几点配置控制(GPP)。
虽然模型预测控制算法的种类有多种,但始终离不开这三大要素:

[*]预测模型——对未来一段时间内的输出进行预测;
[*]滚动优化——滚动进行有限时域在线优化(最优控制);
[*]反馈校正——通过预测误差反馈,修正预测模型,提高预测精度。
本篇以MAC算法作为开篇,对MPC算法的三大要素的流程进行分析,从而加深对模型预测控制算法的了解。
MAC算法

MAC作为一种非参数模型,以系统脉冲响应作为内部预测模型,通过过去与当前的输入输出状态,根据系统的预测模型来预测系统未来的输出状态。其开环预测和闭环预测的框图如下所示:



模型算法控制框图

通过上述框图可知,MAC算法主要由图中的四个模块所组成,各模块所代表的意义如下所示。当期望输入为 https://www.zhihu.com/equation?tex=c 时,获取时刻下的控制输入,首先得经过模块(2)求取此时的参考输出 https://www.zhihu.com/equation?tex=%5Cscriptsize+y_r ,并通过模块(1)求取模型输出 https://www.zhihu.com/equation?tex=%5Cscriptsize+y_M ,通过闭环反馈校正(4)求取预测输出 https://www.zhihu.com/equation?tex=%5Cscriptsize+y_p ,最终通过模块(3)算出此时的最优控制率。注明:不讨论开环预测的情况。

[*]预测模型;
[*]参考轨迹;
[*]滚动优化;
[*]反馈校正;

一、预测模型

——————的求取
对于线性系统,若已知其单位脉冲响应的采样值 https://www.zhihu.com/equation?tex=%5Cscriptsize+g_1 , https://www.zhihu.com/equation?tex=%5Cscriptsize+g_2 ,..., https://www.zhihu.com/equation?tex=%5Cscriptsize+g_N ,则利用离散卷积公式,可知系统的预测模型描述可近似地用一个有限项卷积表示:

https://www.zhihu.com/equation?tex=%5Cscriptsize+y_M%28k%2Bi%29%3D%5Csum_%7Bj%3D1%7D%5E%7BN%7Dg_j%2Au%28k%2Bi-j%29---%281%29
其中,表示系统的模型预测输出;https://www.zhihu.com/equation?tex=%5Cscriptsize+u%28k%2Bi-j%29 表示系统的控制输入;https://www.zhihu.com/equation?tex=%5Cscriptsize+G%3D%5Bg_1%2C+g_2%2C+...%2C+g_N%5D%5ET 表示系统的模型向量,可通过系统辨识的方法得到。



脉冲响应模型

二、参考轨迹

—————— 的求取
在MAC中,控制系统的期望输出是由现时实际输出 https://www.zhihu.com/equation?tex=%5Cscriptsize+y%28k%29 出发且向设定值 https://www.zhihu.com/equation?tex=%5Cscriptsize+y_%7Bsp%7D 光滑过度的一条参考轨迹规定的。在时刻的参考轨迹可由未来时刻的值, https://www.zhihu.com/equation?tex=%5Cscriptsize+i%3D1%2C2%2C...%2C 来描述。其表征形式如下:

https://www.zhihu.com/equation?tex=%5Cscriptsize+y_r%28k%2Bi%29%3D%281-%5Calpha%5Ei%29y_%7Bsp%7D%2B%5Calpha%5Ei+y%28k%29---%282%29
其中,为参考输出; https://www.zhihu.com/equation?tex=%5Cscriptsize+%5Calpha%5Ei 为柔化系数,且 https://www.zhihu.com/equation?tex=%5Cscriptsize+0%3C%5Calpha%5Ei%3C1 。
三、滚动优化

—————— https://www.zhihu.com/equation?tex=%5Cscriptsize+u%28k%2Bi%29 的求取
若有《最优控制》的基础,不难理解,模型预测控制(MPC)的滚动优化问题实际上是以一定的优化准则来获取最优的控制输入。不失一般性,采用如下的优化准则:

https://www.zhihu.com/equation?tex=%5Cscriptsize+minJ%28k%29%3D%5Csum_%7Bi%3D1%7D%5E%7BP%7Dq_i%5B%28y_P%28k%2Bi%29-y_r%28k%2Bi%29%29%5D%5E2%2B%5Csum_%7Bj%3D1%7D%5E%7BM%7Dr_ju%5E2%28k%2Bj-1%29---%283%29
其中, https://www.zhihu.com/equation?tex=%5Cscriptsize+P 为优化时域; https://www.zhihu.com/equation?tex=%5Cscriptsize+M 为控制时域,一般有 https://www.zhihu.com/equation?tex=%5Cscriptsize+M%3CP ; https://www.zhihu.com/equation?tex=%5Cscriptsize+q_i 为输出跟踪加权系数; https://www.zhihu.com/equation?tex=%5Cscriptsize+r_j 为输入加权系数;为预测输出。
不难发现,若要根据上述的优化准则获取最优控制输入,还必须知道其预测输出。因此,针对的求取,引入了模型预测控制(MPC)的第三个要素——反馈校正。
四、反馈校正

——————的求取
以闭环预测为例, https://www.zhihu.com/equation?tex=k 时刻系统的闭环预测输出可记为

https://www.zhihu.com/equation?tex=%5Cscriptsize+y_P%28k%29%3Dy_M%28k%29%2Bh%2Ae%28k%29---%284%29
其中, https://www.zhihu.com/equation?tex=%5Cscriptsize+y_P%28k%29%3D%5By_P%28k%2B1%29%2C+...%2C+y_P%28k%2BP%29%5D%5ET ;

https://www.zhihu.com/equation?tex=%5Cscriptsize+h%3D%5Bh_1%2C+...%2C+h_P%5D%5ET , https://www.zhihu.com/equation?tex=%5Cscriptsize+h 为反馈系数矩阵 ;

https://www.zhihu.com/equation?tex=%5Cscriptsize+e%28k%29%3Dy%28k%29-y_M%28k%29%3Dy%28k%29-%5Csum_%7Bj%3D1%7D%5E%7BN%7Dg_j%2Au%28k-j%29---%285%29
五、最优控制率

由前面的分析可知,根据预测模型 https://www.zhihu.com/equation?tex=%5Cscriptsize+%281%29 、参考轨迹 https://www.zhihu.com/equation?tex=%5Cscriptsize+%282%29 、闭环预测 https://www.zhihu.com/equation?tex=%5Cscriptsize+%284%29 即可求解出性能指标 https://www.zhihu.com/equation?tex=%5Cscriptsize+%283%29 下的无约束MAC最优化控制率:

https://www.zhihu.com/equation?tex=%5Cscriptsize+u_1%28k%29%3D%28G_1%5ETQG_1%2BR%29%5E%7B-1%7DG_1%5ETQ%2A%5By_r%28k%29-G_2u_2%28k%29-he%28k%29%5D---%286%29
其中, https://www.zhihu.com/equation?tex=%5Cscriptsize+Q%3Ddiag%28q_%2Cq_2%2C+...%2C++q_P%29 , https://www.zhihu.com/equation?tex=%5Cscriptsize+R%3Ddiag%28r_1%2C+r_2%2C+...%2C+r_M%29 。
最优即时控制量为:

https://www.zhihu.com/equation?tex=%5Cscriptsize+u%28k%29%3Dd%5ET%2A%5By_r%28k%29-G_2u_2%28k%29-he%28k%29%5D---%287%29
其中, https://www.zhihu.com/equation?tex=%5Cscriptsize+d%5ET%3D%5B1%2C+0...+0%5D%28G_1%5ETQG_1%2BR%29%5E%7B-1%7DG_1%5ETQ---%288%29
小结

通过分析MAC算法的过程可以大致了解模型预测控制(MPC)的实现过程,但在具体设计时,还有一些设计细节需要注意,如控制时域、预测时域长度的选择,权重矩阵系数的调节等都是需要注意的。
参考文献

模型预测控制及Matlab实现.
模型预测控制介绍.
模型预测控制之参数选择.
预测控制之MAC控制.
广义预测控制GPC.
预测控制-席裕庚.

mastertravels77 发表于 2021-12-3 11:44

目前在学习模型预测的知识,楼主的帖子很好。看完后很有收获,希望楼主有持续更新。

NoiseFloor 发表于 2021-12-3 11:50

谢谢,后面有时间的话,看能不能引入实际的机器人例子吧!最近有点忙

Mecanim 发表于 2021-12-3 11:53

很精炼,很好,希望有实际应用的例子。

JamesB 发表于 2021-12-3 11:58

请引入实际机器人控制和规划例子

七彩极 发表于 2021-12-3 12:06

今天我看一篇关于GPC-PID串级预测控制的文章,搜到您的这篇文章,有点懵,请问想系统的学习这些控制理论,需要看什么书?上学那会自控也没写相应理论啊。。。。。
页: [1]
查看完整版本: 模型预测控制(MPC)算法之一MAC算法