模型预测控制快速求解算法模型预测控制(Model Predictive Control,MPC)是一种基于在线计算的控制优化算法,能够统一处理带约束的多参数优化控制问题。
当被控对象结构和环境相对复杂时,模型预测控制需选择较大的预测时域和控制时域,因此大大增加了在线求解的计算时间,同时降低了控制效果。
从现有的算法来看,模型预测控制通常只适用于采样时间较大、动态过程变化较慢的系统中。
因此,研究快速模型预测控制算法具有一定的理论意义和应用价值。
虽然MPC方法为适应当今复杂的工业环境已经发展出各种智能预测控制方法,在工业领域中也得到了一定应用,但是算法的理论分析和实际应用之间仍然存在着一定差距,尤其在多输入多输出系统、非线性特性及参数时变的系统和结果不确定的系统中。
预测控制方法发展至今,仍然存在一些问题,具体如下:①模型难以建立。
模型是预测控制方法的基础,因此建立的模型越精确,预测控制效果越好。
尽管模型辨识技术已经在预测控制方法的建模过程中得以应用,但是仍无法建立非常精确的系统模型。
②在线计算过程不够优化。
预测控制方法的一大特征是在线优化,即根据系统当前状态、性能指标和约束条件进行在线计算得到当前状态的控制律。
在在线优化过程中,当前的优化算法主要有线性规划、二次规划和非线性规划等。
在线性系统中,预测控制的在线计算过程大多数采用二次规划方法进行求解,但若被控对象的输入输出个数较多或预测时域较大时,该优化方法的在线计算效率也会无法满足系统快速性需求。
而在非线性系统中,在线优化过程通常采用序列二次优化算法,但该方法的在线计算成本相对较高且不能完全保证系统稳定,因此也需要不断改进。
③误差问题。
由于系统建模往往不够精确,且被控系统中往往存在各种干扰,预测控制方法的预测值和实际值之间一定会产生误差。
虽然建模误差可以通过补偿进行校正,干扰误差可以通过反馈进行校正,但是当系统更复杂时,上述两种校正结合起来也无法将误差控制在一定范围内。
模型预测控制区别于其它算法的最大特征是处理多变量多约束线性系统的能力,但随着被控对象的输入输出个数的增多,预测控制方法为保证控制输出的精确性,往往会选取较大的预测步长和控制步长,但这样会大大增加在线优化过程的计算量,从而需要更多的计算时间。
因此,预测控制方法只能适用于采样周期较大且动态变化过程较慢的系统中。
为使预测控制方法能在更多场合中应用,快速模型预测控制算法成为了一个新的研究方向。
3.1 国内外研究现状近年来人们对预测控制算法的不足有了越来越清晰的认识,为了将该算法应用到更多领域,越来越多的学者对其进行不断研究和改进。
阅读近些年国内外核心期刊的文献可知,人们对预测控制方法能够在更大更复杂的系统中应用寄予了很高期望,同时也在其不足方面做了很多探究和尝试,发展出了多种智能预测控制方法。
快速模型预测控制算法作为目前智能预测控制方法之一,其研究方向主要有以下几个方面:(1)显式模型预测控制(Explicit Model Predictive Control,EMPC)2002年Alberto Bemporad等学者[1]提出了显式模型预测控制,该方法在预测控制基础之上,在线性时不变系统优化求解过程中引入多参数二次规划理论,对系统的状态区域进行凸划分,根据最优控制问题计算得到状态分区上相应的控制律。
EMPC将模型预测控制的在线计算过程转化为离线和在线计算相结合的过程,大大减少了算法的在线计算时间,弥补了MPC方法反复在线计算的不足,EMPC也在电力电子[2]、电机控制[3]等领域得到了很好应用。
但随着被控对象问题规模(如输入、状态维数、约束等)的增大,EMPC算法在离线计算过程中所求的状态分区数会呈指数倍增加,而状态分区数的增加不仅会导致存储状态分区所需的存储空间增加,还会导致EMPC算法在线查找最优解所需的计算时间增加,因此该算法很难适用于状态约束较多(状态变量往往不超过5)、预测步长较大的复杂系统。
基于以上原因,许多学者提出用近似的显式模型预测控制方法[4,5]来代替精确的EMPC算法,即通过牺牲一定的控制精度来降低计算过程中的复杂度,从而简化整个求解过程。
如文献[6]提出了显式模型预测控制的多尺度近似方法,通过引入分段线性插入法和自适应分层函数近似法,运用重心插值理论对EMPC离线计算出的状态空间进行网格划分,得到近似的状态分区和近似控制律。
基于同样的思想,文献[7]提出了显式模型预测控制多胞体近似方法,主要利用双描述法对最优控制问题进行近似处理,再通过重心插值得到近似控制律。
文献[8]基于小波的多分辨率分析提出了近似EMPC,通过二次插值和网格划分得到低复杂度且可保证系统稳定的近似控制律。
上述文献提出的方法均能在误差允许的范围内保证系统的控制性能,在一定程度上解决了EMPC随着问题规模增大而带来的复杂度和存储空间增大的问题。
(2)模型预测控制的简化算法MPC算法采用的是在线滚动优化的控制策略,但随着工业模型和环境越来越复杂,其在线计算量越来越大,所以限制了MPC算法在动态变化较快系统中的应用。
为减少MPC在线优化求解的计算量,有学者考虑对参数进行优化,提出了预测控制的简化算法,如将参数分块化的blocking技术[9],其思想是将越远离当前时刻的控制输入越粗略计算,从而减少在线计算量。
在此基础上,又有学者提出了移动blocking方法,其核心是限制系统优化变量个数同时增大系统的有效输入步长[10]。
相较于blocking技术,文献[11]提出的简化方法主要把约束分为起作用约束集、不起作用约束集和不确定约束集,对不起作用的约束集进行忽略操作,对起作用约束集和不确定约束集进行优化计算,从而降低在线计算量,加快控制进程。
(3)改进的在线优化算法模型预测控制的核心是采用反复的迭代优化进行在线求解,选取适当的在线优化方法可以提高在线计算速度。
近年来,有学者试图对模型预测控制的标准形式做适当变形或者近似处理,继而降低预测控制方法的在线计算量。
如文献[12]提出了一种用扩展的牛顿拉夫逊(Newton-Raphson)方法来代替传统的二次规划方法,当问题规模增大时,不仅能够保证优化问题总是收敛,还可以有效解决MPC 在线计算量过大的问题。
文献[13]提出了将表存储和在线优化相结合的部分枚举法(Partial Enumeration,PE),对于规模较大的线性模型不仅有很好的控制效果,而且求解速度是传统MPC算法的5倍以上。
文献[14]提出了基于降精度求解准则的序列二次规划法,主要通过牺牲一定的精确度来降低在线优化所需的迭代次数,从而提高在线求解速度。
文献[15]提出了可用于预测控制在线优化过程的有效内点法,该内点法不仅可以减少代码量,而且可以使在线计算时间提高2-5倍。
3.2 理论基础3.2.1 凸集与凸函数首先给出凸优化理论中凸集、凸函数和仿射的定义。
凸集:假设C 为n 维实数空间n R 中的集合,若C 中任意两点之间的线段仍然在集合C 中,即对于任意12,x x C ∈且对任意实数[]0,1λ∈,都满足: 12(1)x x C λλ+-∈(3-1)则称集合C 为凸集,反之则为非凸集。
满足凸集的集合具有以下性质: (1)若集合1C 、2C 都是凸集则集合{}12121122|,,C C x x y y y C y C +==+∈∈也是凸集。
(2)两个或多个凸集的交集仍为凸集。
(3)空集也是凸集。
凸函数:设()f x 是定义在非空凸集n C R ∈上的函数,对于凸集C 中任意的1x 和2x 以及任意实数[]0,1λ∈均满足1212((1))()(1)()f x x f x f x λλλλ+-≤+- (3-2)则称()f x 为凸函数,反之则为非凸函数(或称凹函数)。
若对12x x ≠和任意实数[]0,1λ∈均满足1212((1))()(1)()f x x f x f x λλλλ+-<+- (3-3)则称()f x 为严格凸函数。
同样,根据凸函数的定义可以推导出凸函数的几个性质,具体如下:(1)若1(),,()m f x f x 是定义在凸集C 上的凸函数,则11()()m m f x f x αα++也是凸集C 上的凸函数,其中α为任意实数。
(2)若函数()f x 是定义在凸集C 上的凸函数,则对于任意实数α,函数()f x α也是凸集C 上的凸函数。
(3)若()g x 是单调递增的凸函数,()f x 也是凸函数,则复合函数[]()g f x 也是凸函数。
(4)若()f x 和()g x 都是定义在凸集C 中非单调递增的凸函数,则()()f x g x 也是定义在凸集C 中的凸函数。
仿射:对于集合C 中任意两点1x 和2x 且任意实数R λ∈,若满足12(1)x x C λλ+-∈ (3-4)则称集合C 是仿射的。
也就是说,通过集合n C R ⊆中任意两点的直线仍在集合C 中。
3.2.2 凸优化问题凸优化问题是指性能指标函数和不等式约束函数均为凸函数且由约束条件所得到的集合是凸集的最优化问题。
由于凸优化问题的局部最优解就是全局最优解,因此对于一个实际问题,如果能表示成凸优化问题,则意味着该问题可以得到彻底解决,对实际应用有着十分重要的意义。
凸优化问题有多种形式,其基本形式可表示为:min ().. ()0 1,, ()0 1,,i i f x s t g x i m h x i p ≤=== (3-5)其中()f x 为性能指标函数,()0i g x ≤为不等式约束条件,()0i h x =为等式约束条件,()0 1,,()0 1,,i i g x i m C x h x i p ≤=⎧⎫=⎨⎬≤=⎩⎭为可行域(也称可行集或约束集)。
如果上述问题中性能指标函数()f x 和不等式约束()i g x 都是仿射函数,则该问题又称线性规划问题(Linear Programming ,LP ),其形式可表示为:min .. T c x ds t Gx h Ax b +≤=(3-6)其中,m n p n G R A R ⨯⨯∈∈,对于线性规划问题而言,通常将性能指标函数中常数项d 忽略,因为其不影响最优解的集合。
该问题的几何解释可由图3.1表示,图中阴影多面体为可行域P ,若性能指标函数中T c x 为线性的,则其等位曲线是和c 正交的超平面(图中的虚线),点*x 对即为最优点。
图3.1 线性规划的几何解释如果性能指标函数()f x 是凸二次型且约束条件是仿射函数,则该问题又称二次规划问题(Quadratic Programming ,QP )。
对于二次规划问题,其标准形式可表示为: 1min2.. T T x Qx q x r s t Ax b Gx h ++=≤(3-7)其中,,,,,n n m n m p n p Q S q R A R b R G R h R ⨯⨯+∈∈∈∈∈∈。