MPC特点原理以及各项参数的选择--引⽤别⼈的博客⽹址
参见:MATLAB techtalk 中关于MPC的讲解视频:
或者:
下⾯是转载别⼈参照视频所作的笔记记录:
参见⽹址:
blog.csdn/u013414501/article/details/51772672
MPC的三⼤要素:
预测模型——对未来⼀段时间内的输出进⾏预测;
滚动优化——滚动进⾏有限时域在线优化(最优控制);
反馈校正——通过预测误差反馈,修正预测模型,提⾼预测精度。
Mo(measured output): 当前可测量的输出信号
Ref(Reference signa): 参考信号
Md(optional measured disturbance signa): 可选的测量⼲扰信号
Mv(optimal manipulated variables ):最优操纵变量
MPC⼀般通过求解⼀个⼆次规划来计算最优操纵变量
MPC作⽤机理为:
在每⼀个采⽤时刻,根据获得的当前测量信息,在线求解⼀个有限时间开环优化问题,并将得到的控制序列的第⼀个元素作⽤于被控对象。在下⼀个采样时刻,重复上述过程:⽤新的测量值作为此时预测系统未来动态的初始条件,刷新优化问题并重新求解。即MPC算法包括三个步骤:
(1)预测系统未来动态;
(2)(数值)求解开环优化问题;
(3)将优化解的第⼀个元素(或者说第⼀部分)作⽤于系统
这三步是在每个采样时刻重复进⾏的,且⽆论采⽤什么样的模型,每个采样时刻得到的测量值都作为当前时刻预测系统未来动态的初始条件
在线求解开环优化问题获得开环优化序列是MPC和传统控制⽅法的主要区别,因为后者通常是离线求解⼀个反馈控制律,并将得到的反馈控制律⼀直作⽤于系统。
在这⾥给出两点说明:
1.MPC是⼀个反馈控制策略,但是之前不是说将得到的控制序列中的第⼀个元素作⽤于被控对象,求解开环问题。那么哪来的反馈呢?实际上在下⼀个采样周期,下⼀时刻的测量值⼜被使⽤上了,⽤下⼀时刻的测量值求解下⼀时刻的控制值。故这是⼀个反馈控制策略
2.传统的控制⽅法为什么被称为离线控制?
设计变阻器应有的级数来达到控制并励直流电动机启动的例⼦,那么如何看的出来是离线控制呢?其实很简单,在起始的时候就已经把每级电阻值就给定出来了,
但是实际上是否能如理论计算的这样呢?⽐如我电压突然受到了扰动了怎么办?那么这个计算的每级电阻值肯定不对了啦,但是传统的控制⽅法对此确是⽆能为⼒的,因为每级启动电阻在最早的时候已经计算好了的。
MPC的基本特点
不管是何种算法,他们的基本特点都是:基于模型的预测、滚动优化和前馈-反馈的控制结构。
1.基于模型的预测
在MPC算法中,需要⼀个描述对象动态⾏为的模型,这个模型的作⽤是预测系统未来的动态。即能够根据系统k时刻的状态和k时刻的控制输⼊,
预测到k+1时刻的输出。在这⾥k时刻的输⼊正是⽤来控制系统k+1时间的输出,使其最⼤限度的接近k+1时刻的期望值。故我们强调的是该模型的预测作⽤,⽽不是模型的形式。
在这⾥我重点讲解⼀下状态空间模型。那么什么是状态?输出是不是也是状态的⼀种?对的,输出也是⼀种状态,只不过我们赋予了这个状态特殊的意义。
举个例⼦来说,舞龙,假设是只能通过龙尾的⼈A指挥前⾯⼀个⼈B动作,然后B指挥他前⾯的⼀个⼈C动作….依次如此,达到控制龙头的⼈F叼住绣球的动作。
如果只关注龙头的⼈(输出)和龙尾的⼈(输⼊),⽽忽略龙⾝⼦的动态,那就是所谓的输⼊—输出系统。经典控制理论就是建⽴在输⼊—输出系统的基础上⾯的。
但是我如果不管要管龙尾和龙头的⼈,我连龙⾝⼦上⾯的⼈也要要求在固定的位置,那么这就是状态空间的概念,即我对系统中的每⼀个状态都要控制到。
龙头位置的⼈也是⼀个状态,故输出本⾝就是⼀个状态,或者说是状态的⼀个组合。
2.滚动优化
因为外部⼲扰和模型失配的影响,系统的预测输出和实际输出存在着偏差,如果测量值能测到这个偏差,那么在下⼀时刻能根据这个测量到偏差的测量值在线求解下⼀时刻的控制输⼊,
即优化掉了这个偏差值。若将求解的控制输出的全部序列作⽤于系统,那么k+1时刻的测量值不能影响控制动作,也就是说测量值所包括的外部⼲扰或模型误差信息得不到有效利⽤。
故我们将每个采样时刻的优化解的第⼀个分量作⽤于系统,在下⼀个采⽤时刻,根据新得到的测量值为初始条件重新预测系统的未来输出并求解优化解,继续讲这个时刻的优化解
的第⼀个分量作⽤于系统,这样重复⾄⽆穷。故预测控制不是采⽤⼀个不变的全局优化⽬标,⽽是采⽤时间向前滚动式的有限时域优化策略。
这也就是意味着优化过程不是⼀次离线进⾏,⽽是反复在线进⾏的。
下⾯是转载别⼈参照视频所作的笔记记录:
⼀、什么是MPC模型预测控制
adaptiveMPC(Model Predict Control)是⼀种反馈控制(feedback control)算法, 使⽤模型来预测过程的未来输出。
举例:
[场景] 车道保持
[已知模型] 车辆模型,⽐如速度控制,转向控制对应的偏航量
[预测] 根据已知模型和所选的控制策略(action),进⾏轨迹预测
[优化] 通过优化控制策略,来尽可能的拟合预测的轨迹。
如下图所⽰为⼀个MIMO系统u1,u2输⼊与y1,y2输出相互影响。如果使⽤PID控制的话,每⼀个⼦系统单独设计⼀个PID控制器,
两个相互影响的⼦系统没有任何的交联,使得系统难以设计,如果像图⼆⼀样设计⼀个较⼤的系统,
则参数较多难以实现,
⽽使⽤MPC控制器的话可以较好的解决两种问题,综合相互间的影响来设计参数。
MPC控制
此外MPC控制还可以⽅便的⽀持各种约束条件,具备⼀定的预测能⼒(有点像前馈feedforward控制)。
⼆、MPC的特点
综合上述,总结⼀下MPC的特点:
⽀持MIMO系统,便于构建输⼊输出间的相互影响参数
⽀持⽅便添加约束条件
具有预测能⼒、
需要较好的处理器和较⼤的内存,因为需要⼤量的在线优化,存储⼤量的变量
MPC相对于LQR控制⽽⾔,MPC可以考虑空间状态变量的各种约束,⽽LQR,PID等控制只能够考虑输⼊输出变量的各种约束。
MPC可应⽤于线性和。
三、MPC参数选择
选择⼀个好的参数不仅影响MPC控制的性能,⽽且还会影响到MPC每⼀个timestep内进⾏在线优化的计算复杂度。
这⾥将会给出关于控制器采样周期、预测及控制范围(prediction and control)、约束及权重。
采样周期的选择
采样周期过⼤,则系统反应过慢导致难以及时进⾏修正控制,⽽采样周期过⼩,则会导致系统产⽣⼤量的在线优化计算,给系统带来较⼤的开销。
因⽽建议采样周期设计采⽤开环响应时间(10~90%上升时间)的⼗分之⼀或⼆⼗分之⼀:
预测范围(prediction horizon)的选择
预测范围指的是⼀次优化后预测未来输出的时间步的个数。建议范围:在开环响应时间内采样20-30个样本的范围
控制范围(control horizon)的选择
如下图 [k, k+m]范围为控制范围,之后的红⾊部分称为 held constant,其中控制范围是要通过优化器来进⾏优化的参数动作。
过⼩的控制范围,可能⽆法做到较好的控制,⽽较⼤的控制范围,⽐如与预测范围相等,则会导致只有前⼀部分的控制范围才会有较好的效果,
⽽后⼀部分的控制范围则收效甚微,⽽且将带来⼤量的计算开销。
建议控制范围应该在预测范围的10~20%之间,最⼩值为2~3个timestep时间步
约束
对于约束,⼀般分为Hard约束和Soft约束,Hard约束是不可违背必须遵守的,在控制系统中,输⼊输出都可能会有约束限制,
但是在设计时不建议将输⼊输出都给予Hard约束,因为这两部的约束有可能是有重叠的,导致优化器会产⽣不可⾏解。
建议输出采⽤较⼩容忍度的Soft约束,⽽输⼊的话建议输⼊和输⼊参数变化率⼆者之间不要同时为Hard约束,可以⼀个Hard⼀个Soft。四、Linear MPC (Adaptive MPC 与 Gain-Scheduled MPC)
Linear MPC适⽤于:
对于⾮线性系统⽽⾔,需要在不同的operating point处进⾏线性化处理如下图。
Adaptive MPC
在 Adaptive MPC中,当operating condition发⽣变化的时候,需要进⾏⼀次近似线性化计算,在每个时间步中,
使⽤其近似线性模型来更新内部的平台模型(plant model,⽐如飞控模型,⾃⾏车模型等)。
在 Adaptive MPC中,在不同的operating point条件下,其优化问题的结构保持不变,即状态数量,约束数量不会随着operating condition⽽改变。
Gain-Scheduled MPC
在 Gain-Scheduled MPC中,在不同的operating point条件下,其优化问题的结构会发⽣变化,需要为每⼀个operating point构建⼀个MPC 控制器,且相互之间独⽴,其状态数量约束数量也可能不同。
在 Gain-Scheduled MPC模式下,需要设计调度算法来切换不同的MPC模型。
⼆者选型
[Adaptive MPC] 当能够构建平台(如飞⾏器,⾃动车等)的runtime线性模型,且在不同的operating point下优化问题的结构不变。
[Gain-Scheduled MPC] 当能够构建平台(如飞⾏器,⾃动车等)的runtime线性模型,且在不同的operating point下优化问题的结构发⽣变化。
五、Non-Linear MPC (Adaptive MPC 与 Gain-Scheduled MPC)
Non-Linear MPC适⽤于(相对强⼤,能够提供更准确的预测能⼒,与决策⽀持,但是⾮线性优化的计算开销较⼤)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。