1.速度跟踪的MPC问题建模
与大多数前期研究类似,车辆的纵向控制可使用一阶惯性系统来表示:
其中,K=1为系统增益;τd为时间常数。车辆纵向运动的连续系统状态方程可表示为
其中,x=[v a]T为系统状态向量;u=ades为系统控制输入。
通过向前欧拉法(Forward Euler,FE)可得到离散系统状态方程:
其中,k为当前采样时刻;k+1为下一采样时刻;Ts为采样周期。
速度v作为系统输出,输出方程可表示为
系统控制目标是速度跟踪精度,同时为避免过大的加速度和冲击度(加速度变化率绝对值),将性能评价函数定义为
其中,t-1为上一采样时刻;Np为预测步长;Nc为控制步长;yp(k+i|k)为控制输出预测值;yref(k+i|k)为控制输出参考值;(k+i|k)表示根据k采样时刻的信息来预测k+i时刻的值,其中i=1,2,…,Np;u(k+i)和Δu(k+i)分别是k+i时刻控制输入和控制输入增量,其中i=0,1,…,Nc-1;Q和R分别是系统输出量、控制增量和控制量权重系统矩阵。式(3.6)等号右边的第一项反映了系统对参考轨线的跟随能力,第二项反映了对控制量平稳变化的要求,整个表达式的功能是使系统能够尽快且平稳地跟踪上期望的轨迹。
系统约束为加速度及其变化率,表示为
其中,umin和umax为加速度阈值;Δumin和Δumax为加速度增量的阈值。
MPC控制的基本原理是在满足控制约束式(3.7)和式(3.8)的前提下使得性能评价函数式(3.6)最小,每个控制周期解决如下优化问题:
满足:(1)对象模型——式(3.4);
(2)控制约束——式(3.7)和式(3.8)。
通常将优化问题式(3.9)转化为标准的二次规划问题进行求解。
2.MPC问题与二次型规划问题的转化(www.xing528.com)
针对纵向运动离散状态方程式(3.4),构建新的状态向量ξ(k|t)=[x(k) u(k-1)]T,可以得到一个新的状态空间表达式:
为了使整个关系更加明确,将系统未来时刻的输出以矩阵的形式表达:
其中,
通过观察式(3.13),我们可以清楚地看到,在预测时域内的状态量和输出量都可以通过系统当前的状态量ξ(k)和控制时域内的控制增量ΔU计算得到,这也就是模型预测控制算法中“预测”功能的实现。
定义参考输出向量为Yref(k)=[ηref(k+1),…,ηref(k+Np)]T,令E=Ψξ(k),将式(3.13)代入优化目标式(3.6)可以得到
其中,QQ=INp⊗Q,RR=INp⊗R,⊗表示Kroneck乘积。公式中矩形框内的部分为常数,在优化求解时可忽略不计,则性能评价函数可以写作
令H=ΘTQQΘ+RR,g=ΘTQQ(E-Yref),则式(3.15)可改写为
在优化求解时,式(3.16)等价于
考虑到控制量与控制增量存在如下关系:
注意到式(3.7)和式(3.8)的约束对象分别为控制量和控制量的增量,在优化前需要将约束条件中的变量统一,式(3.7)和式(3.8)可以转换为以下形式:
其中,Ut=1Nc⊗u(k-1),1Nc是行数为Nc的列向量,u(k-1)为上一时刻实际的控制量,Umin、Umax分别为控制时域内控制量的最小值、最大值集合,ΔUmin、ΔUmax分别为控制时域内控制增量的最小值、最大值集合,Ak=
至此,模型预测控制的优化求解问题式(3.9)可转化为一个标准二次型规划问题:
针对式(3.21)可以使用MATLAB提供的QP求解器quadprog进行求解,得到控制时域内的一系列控制输入增量:
根据模型预测控制的基本原理,将该控制序列中第一个元素Δu∗(k)作为实际的控制输入增量作用于系统,即
系统执行这一控制量直到下一时刻。在新的时刻,系统根据状态信息重新预测下一段时域的输出,通过优化过程得到一个新的控制增量序列。如此循环往复,直至系统完成控制过程。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。