模型预测控制(MPC)是一类特殊的控制。它的当前控制动作是在每一个采样瞬间通过求解一个有限时域开环最优控制问题而获得。过程的当前状态作为最优控制问题的初始状态,解得的最优控制序列只实施第一个控制作用。这是它与那些使用预先计算控制律的算法的最大不同。本质上模型预测控制求解一个开环最优控制问题。它的思想与具体的模型无关,但是实现则与模型有关。

1、定义系统模型

Define Plant Model

The linear open-loop dynamic model is a double integrator.

plant = tf(1,[1 0 0]);

c39f683ccc7dda6cdc97458b41941d92.png

以上为模型的传递函数

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模型

ff57174d117b4b80d2102a41bb69123a.png

4.仿真结果

82444447fa14ef17a6ebcf4c297c72df.png

输入量的变化

a8282a7b63e28dba576718de947269a3.png

输出量的变化

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐