模型预测控制(MPC)是一类特殊的控制。它的当前控制动作是在每一个采样瞬间通过求解一个有限时域开环最优控制问题而获得。过程的当前状态作为最优控制问题的初始状态,解得的最优控制序列只实施第一个控制作用。这是它与那些使用预先计算控制律的算法的最大不同。本质上模型预测控制求解一个开环最优控制问题。它的思想与具体的模型无关,但是实现则与模型有关。
1、定义系统模型
Define Plant Model
The linear open-loop dynamic model is a double integrator.
plant = tf(1,[1 0 0]);
以上为模型的传递函数
2.设计预测控制器
Design MPC Controller
Create the controller object with sampling period, prediction and control horizons.
Ts = 0.1;
p = 10;
m = 3;
mpcobj = mpc(plant, Ts, p, m);
设定控制器的采样周期,预测范围和控制范围
-->The "Weights.ManipulatedVariables" property of "mpc" object is empty. Assuming default 0.00000.
-->The "Weights.ManipulatedVariablesRate" property of "mpc" object is empty. Assuming default 0.10000.
-->The "Weights.OutputVariables" property of "mpc" object is empty. Assuming default 1.00000.
使用默认设置:输出参量的的权重为1
Specify actuator saturation limits as MV constraints.
mpcobj.MV = struct('Min',-1,'Max',1);
设置输出参量的范围
3.simulink模型
4.仿真结果
输入量的变化
输出量的变化