(.m文件与simulink文件联合)MATLAB 模型预测控制(MPC)工具箱的使用

目录

一、背景

二、工具

三、实例

3.1 建立被控对象模型

3.2 搭建SIMULINK模型

3.3 编写.m文件(已经注释了)

3.4 运行.m文件,会自动运行.mdl文件,可以查看结果

3.5 同时运行2个以上控制器

PS:需要源程序的在评论区留下邮箱和MATLAB版本号


一、背景

       要用模型预测控制(MPC)做算法的对比实验,发现写纯.m文件有点麻烦,毕竟我不深入原理,于是用MATLAB/SIMULINK自带的MPC controller模块,真是太节省时间了。MPC需4个模块:被控对象的数学模型、预测模型、优化算法以及矫正反馈。使用自带的MPC control模块的话,只需要知道被控对象的数学模型就行了。下面用一个实例进行介绍。

二、工具

①SIMULINK模型

②.m文件

②我的版本:MATLAB2020a

三、实例

3.1 建立被控对象模型

      被控对象为双积分系统,即被控对象是两个电容并联

3.2 搭建SIMULINK模型

(.m文件与simulink文件联合)MATLAB 模型预测控制(MPC)工具箱的使用_第1张图片 SIMULNK仿真
(.m文件与simulink文件联合)MATLAB 模型预测控制(MPC)工具箱的使用_第2张图片 模型设置

3.3 编写.m文件(已经注释了)

clc
plant = tf(1,[1 0 0]);
%% 设置mpc控制器
%采样时间
Ts = 0.1;
%预测范围
p = 10;
%控制范围
m = 3;
% MPC控制器
mpcobj1 = mpc(plant, Ts, p, m);%写入MPC控制器的名字
% mpcobj2 = mpc(plant, Ts, p, m);
%限制控制器的输出
mpcobj1.MV = struct('Min',-1,'Max',1);
% mpcobj2.MV = struct('Min',-1,'Max',1);
%% 打开搭建好的simulink模型
mdl = 'model';%.mdl文件的名字
open_system(mdl);
sim(mdl);

3.4 运行.m文件,会自动运行.mdl文件,可以查看结果

(.m文件与simulink文件联合)MATLAB 模型预测控制(MPC)工具箱的使用_第3张图片 运行结果

3.5 同时运行2个以上控制器

      有的人可能会问了,怎么运行两个以上的控制器呢?比如下图:

(.m文件与simulink文件联合)MATLAB 模型预测控制(MPC)工具箱的使用_第4张图片 仿真模型

只需要把.m文件修改这样即可:

% MPC控制器
mpcobj1 = mpc(plant, Ts, p, m);
mpcobj2 = mpc(plant, Ts, p, m);
%限制控制器的输出
mpcobj1.MV = struct('Min',-1,'Max',1);
mpcobj2.MV = struct('Min',-1,'Max',1);

记得,要把MPC控制器中的变量名字也对应替换,结果如下所示:

(.m文件与simulink文件联合)MATLAB 模型预测控制(MPC)工具箱的使用_第5张图片 仿真结果

PS:

码文不易,谢谢你的点赞关注收藏哦 ^ _^

上述步骤已经非常详细了。如果粉丝需要源程序,就在评论区留下邮箱MATLAB版本号,我看到了会发过去。

代做领域包括:开关电源、最大功率点跟踪(恒电压法、电导增量法、爬山法、智能算法等)、并网逆变器控制、多目标优化算法(灰狼算法、粒子群、麻雀、哈里斯鹰、布谷鸟等等)、图像处理算法(MATLAB GUI等)、嵌入式、配电网无功优化(IEEE33、21、44节点等)等。

需要的同学私聊我~

 

你可能感兴趣的:(MATLAB工具箱使用,算法,matlab,simulink,仿真器,编程语言)