MPC Controller模型预测控制MATLAB/simulink程序报错处理

Matlab/Simulink 使用 MPC Controller 仿真时出现控制输出一直为0,或出现“Error evaluating ‘InitFcn’ callback of Adaptive MPC block”报错时,可参考如下解决方法

在simulink中建立一个最简单的MPC控制器,被控对象是一个简单的传递函数。

Simulink系统仿真模型
这里仿真模型中的模型预测控制器模块MPC Controller来自模型预测控制工具箱(model predictive control toolbox)。
model predictive control toolbox
打开模型预测控制器模块MPC Controller,在其参数框MPC controller中需要输入一个控制器名称(假如为“MPC_21”)来导入该控制器,而这个控制器“MPC_21”一般在模型预测控制设计工具(model predictive control disign tool)中进行设计(本文重点不在这里,设计过程参考作者下一篇文章)。

模型预测控制设计工具(model predictive control disign tool)中进行设计MPC控制器

两种方法启动模型预测控制设计工具(model predictive control disign tool):

1、command命令窗口中直接键入命令“mpctool”
2、matlab窗口的左下角“start”菜单栏里,单击“toolbox”,再单击“model predictive control”中的“model predictive control disign tool”。
出现如下:
模型预测控制设计工具的图形界面
分别包括对象模型的输入,模型预测控制器参数的设置,仿真参数的设置:
1、对象模型的输入:利用菜单栏命令“MPC”,单击“Import”,即可打开受控对象的模型输入窗口。
对象模型的输入窗口
这里导入了"sys"和"G"两个系统,都是在command命令窗口中以transfer function形式建立的传递函数模型,本文选择“G”模型。
2、模型预测控制器参数的设置
模型预测控制器参数的设置窗口
3、仿真参数的设置
仿真参数的设置窗口

Matlab/Simulink 使用 MPC Controller 仿真时出现控制输出一直为0,或出现“Error evaluating ‘InitFcn’ callback of Adaptive MPC block”报错时

Matlab/Simulink 使用 MPC Controller 仿真时出现控制输出一直为0,或出现“Error evaluating ‘InitFcn’ callback of Adaptive MPC block”报错时
对象模型的输入窗口
这里选择的输入信号是manipulated控制变量,不是可测量扰动“md”即“measured disturb”,所以倒入的MPC模块没有扰动,而且在simulink中的plant模型也没有扰动,只是SISO系统,于是会出现如下错误:“Error evaluating ‘InitFcn’ callback of Adaptive MPC block”
报错

所以应该勾掉MPC模块中的md选项,如下:
未勾掉
勾掉后
这样仿真就正常了,和模型预测控制设计工具(model predictive control disign tool)中仿真得到的控制信号和系统阶跃响应曲线相同,也不会出现控制输出一直为0,如下:
控制信号和系统阶跃响应曲线

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值