引言

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

虽然模型预测控制演算法的种类有多种,但始终离不开这三大要素[4]:

  1. 预测模型——对未来一段时间内的输出进行预测;
  2. 滚动优化——滚动进行有限时域在线优化(最优控制);
  3. 反馈校正——通过预测误差反馈,修正预测模型,提高预测精度。

本篇以MAC演算法作为开篇,对MPC演算法的三大要素的流程进行分析,从而加深对模型预测控制演算法的了解。

MAC演算法

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

模型演算法控制框图

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

  1. 预测模型;
  2. 参考轨迹;
  3. 滚动优化;
  4. 反馈校正;

一、预测模型

—————— y_M(k+i) 的求取

对于线性系统,若已知其单位脉冲响应的采样值 g_1 , g_2 ,..., g_N ,则利用离散卷积公式,可知系统的预测模型描述可近似地用一个有限项卷积表示:

y_M(k+i)=sum_{j=1}^{N}g_j*u(k+i-j)---(1)

其中, y_M(k+i) 表示系统的模型预测输出; u(k+i-j) 表示系统的控制输入;G=[g_1, g_2, ..., g_N]^T 表示系统的模型向量,可通过系统辨识的方法得到[1]。

脉冲响应模型

二、参考轨迹

—————— y_r(k+i) 的求取

在MAC中,控制系统的期望输出是由现时实际输出 y(k) 出发且向设定值 y_{sp} 光滑过度的一条参考轨迹规定的。在 k 时刻的参考轨迹可由未来时刻的值 y_r(k+i)i=1,2,..., 来描述。其表征形式如下:

y_r(k+i)=(1-alpha^i)y_{sp}+alpha^i y(k)---(2)

其中, y_r(k+i) 为参考输出; alpha^i 为柔化系数,且 0<alpha^i<1

三、滚动优化

—————— u(k+i) 的求取

若有《最优控制》的基础,不难理解,模型预测控制(MPC)的滚动优化问题实际上是以一定的优化准则来获取最优的控制输入 u(k) 。不失一般性,采用如下的优化准则:

minJ(k)=sum_{i=1}^{P}q_i[(y_P(k+i)-y_r(k+i))]^2+sum_{j=1}^{M}r_ju^2(k+j-1)---(3)

其中, P 为优化时域; M 为控制时域,一般有 M<Pq_i 为输出跟踪加权系数; r_j 为输入加权系数; y_P(k+i) 为预测输出

不难发现,若要根据上述的优化准则获取最优控制输入 u(k) ,还必须知道其预测输出 y_P(k+i) 。因此,针对 y_P(k+i) 的求取,引入了模型预测控制(MPC)的第三个要素——反馈校正

四、反馈校正

—————— y_P(k+i) 的求取

闭环预测为例, k 时刻系统的闭环预测输出可记为

y_P(k)=y_M(k)+h*e(k)---(4)

其中, y_P(k)=[y_P(k+1), ..., y_P(k+P)]^T ;

h=[h_1, ..., h_P]^Th 为反馈系数矩阵 ;

e(k)=y(k)-y_M(k)=y(k)-sum_{j=1}^{N}g_j*u(k-j)---(5)

五、最优控制率

由前面的分析可知,根据预测模型 (1) 、参考轨迹 (2) 、闭环预测 (4) 即可求解出性能指标 (3) 下的无约束MAC最优化控制率:

u_1(k)=(G_1^TQG_1+R)^{-1}G_1^TQ*[y_r(k)-G_2u_2(k)-he(k)]---(6)

其中, Q=diag(q_,q_2, ...,  q_P)R=diag(r_1, r_2, ..., r_M)

最优即时控制量为:

u(k)=d^T*[y_r(k)-G_2u_2(k)-he(k)]---(7)

其中, d^T=[1, 0... 0](G_1^TQG_1+R)^{-1}G_1^TQ---(8)

小结

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

参考文献

[1] 模型预测控制及Matlab实现.

[2] 模型预测控制介绍.

[3] 模型预测控制之参数选择.

[4]预测控制之MAC控制.

[5]广义预测控制GPC.

[6] 预测控制-席裕庚.

推荐阅读:

相关文章