模型预测控制是一种基于模型的闭环优化控制策略。
预测控制算法的三要素:内部(预测)模型、参考轨迹、控制算法。现在一般则更清楚地表述为内部(预测)模型、滚动优化、反馈控制。
大量的预测控制权威性文献都无一例外地指出, 预测控制最大的吸引力在于它具有显式处理约束的能力, 这种能力来自其基于模型对系统未来动态行为的预测, 通过把约束加到未来的输入、输出或状态变量上, 可以把约束显式表示在一个在线求解的二次规划或非线性规划问题中.
模型预测控制具有控制效果好、鲁棒性强等优点,可有效地克服过程的不确定性、非线性和并联性,并能方便的处理过程被控变量和操纵变量中的各种约束。
Mo(measured output):当前可测量的输出信号
Ref(Reference signa):参考信号
Md(optional measured disturbance signa):可选的测量干扰信号
Mv(optimal manipulated variables ):最优操纵变量
MPC一般通过求解一个二次规划(这里我们使用ord45)来计算最优操纵变量
一个简单的例子如下图所示:
多个MPC调度控制器解决方案
系统描述 :
如果你的对象模型是非线性,设计一个控制器操作在一个特定的目标地区表现优异,但可能在其他地区表现不佳。补偿的常用方法是设计多个控制器,每个面向一个特定的操作条件的组合。他们之间切换实时随着情况的变化。获得这项技术的调度是一个传统的例子。下面的例子显示了如何协调多个模型预测控制器
该系统是由两个物体M1和M2分别连接到两个独立的弹簧k1和k2组成。假定当M1和M2碰撞的时候是完全非弹性碰撞。力F对于M1来说是拉力,这是可操纵变量( manipulated variable MV)。目标是使M1的位置y1跟踪给定参考位置r(Reference signa)。
当M1和M2分离时,M1自由地移动。发生碰撞的时候,由于是完全非弹性碰撞,所以M1 + M2一起移动。我们假设只有M1的位置和接触传感器提供反馈。后者是用来触发开关MPC控制器来选择MPC1还是MPC2。在这里,我们认为,M2的位置和速度的不可控。在这里,我们认为右方向为正方向
%模型参数%
clear allclcM1=1; % M1的质量M2=5; % M2的质量k1=1; % 弹簧k1常数kk2=0.1;% 弹簧k2常数k b1=0.3;% 与空气的摩擦系数,与速度成正比b2=0.8;% 摩擦系数yeq1=10; % 刚性壁1的位置 yeq2=-10; % 刚性壁2的位置
状态空间模型 :
states:M1的位置和速度
MV:推力F
MD:物体1由弹簧的需求的力F和实际给出的F之间的常量误差,用来弥补弹簧弹力,使M在初始位置0上时,弹簧对其作用力为零。
MO:M1的位置
%% 状态空间模型% 当M1和M2不接触时候的状态模型.A1=[0 1;-k1/M1 -b1/M1];B1=[0 0;-1/M1 k1*yeq1/M1];C1=[1 0];D1=[0 0];sys1=ss(A1,B1,C1,D1); %建立状态空间表达式sys1=setmpcsignals(sys1,MD,