主要内容

使用Simulink编码器的仿真和代码生成万博1manbetx

此示例显示了如何使用Simulink®Coder™模拟和生成MPC控制器块的实时码。万博1manbetx可以在单个和双重诊断中生成代码。

需要产品s manbetx 845

要运行此示例,需要Simulink和Sim万博1manbetxulink编码器。

如果〜mpcchecktoolboxinstalled('万博1manbetxsimulink')disp('万博1manbetxSimulink需要运行此示例。返回结尾如果〜mpcchecktoolboxinstalled('万博1manbetxsimulinkcoder')disp('万博1manbetxSimulink编码器需要运行此示例。');返回结尾

配置环境

您必须具有写入权限以生成相关文件和可执行文件。因此,在开始仿真和代码生成之前,将当前目录更改为临时目录。

CWD = PWD;tmpdir = tempname;MKDIR(TMPDIR);CD(TMPDIR);

定义工厂模型和MPC控制器

定义SISO植物。

植物= SS(TF([3 1],[1 0.6 1]));

定义工厂的MPC控制器。

ts = 0.1;%采样时间p = 10;%预测地平线m = 2;%控制地平线权重= struct('mv',0,'mvrate',0.01,'ov',1);%重量mv = struct('min',-inf,'最大限度',inf,'ratemin',-100,'ratemax',100);%输入约束ov = struct('min',-2,'最大限度',2);%输出约束MPCOBJ = MPC(植物,TS,P,M,重量,MV,OV);

模拟和生成双重精度的代码

默认情况下,MPC控制器块使用双精度数据进行仿真和代码生成。

模拟Simulink中的模型。万博1manbetx

mdl1 ='mpc_rtwdemo';Open_System(MDL1)SIM(MDL1)
- >将模型转换为离散时间。- >假设添加到测量的输出干扰,输出通道#1是集成的白噪声。- >“MPC”对象的“Model.Noise”属性为空。假设每个测量的输出通道上的白噪声。

控制器的工作量和工厂输出被保存为基础工作区作为变量y, 分别。

用它构建模型SLBUILD.命令。

DISP('生成C代码......请等到它完成。)set_param(MDL1,'rtwverbose''离开')SLBUILD(MDL1);
生成C代码......请等到它完成。###启动构建过程:MPC_RTWDEMO ###成功完成构建过程:MPC_RTWDEMO构建摘要顶级模型目标构建:模型动作重建原因============================================================================================ mpc_rtwdemo代码生成和编译的代码生成信息文件不存在。1个型号中的1个(0型号已达到迄今为止)构建持续时间:0H 0M 30.736s

在Windows®系统上,名为的可执行文件mpc_rtwdemo.exe.在构建过程完成后出现在临时目录中。

运行可执行文件。

如果ispc disp('运行可执行...')状态=系统(MDL1);别的DISP(“该示例仅在Windows系统上运行可执行文件。结尾
该示例仅在Windows系统上运行可执行文件。

可执行文件成功完成后(Status = 0),一个名为的数据文件mpc_rtwdemo.mat.出现在临时目录中。

比较生成的代码中的响应(RT_U.RT_Y.)在Simulink中的先前模拟中的响应(万博1manbetxy)。

响应是数值相等的。

以单精度模拟和生成代码

您还可以配置MPC块以在仿真和代码生成中使用单精度数据。

mdl2 ='mpc_rtwdemo_single';Open_System(MDL2)

为此,请设置输出数据类型MPC控制器块的属性单身的

模拟Simulink中的模型。万博1manbetx

SIM(MDL2)

控制器的工作量和工厂输出被保存为基础工作区作为变量U1.y1., 分别。

用它构建模型SLBUILD.命令。

DISP('生成C代码......请等到它完成。)set_param(mdl2,'rtwverbose''离开')SLBUILD(MDL2);
生成C代码......请等到它完成。###启动构建过程:MPC_RTWDEMO_SENGELE ###成功完成构建过程:MPC_RTWDEMO_SINGLE构建摘要内置顶部模型目标:模型动作重建原因=================================================================================================== mpc_rtwdemo_single代码生成的代码和编译的代码生成信息文件不存在。1个型号中的1个(0型号已达到迄今为止)构建持续时间:0H 0M 23.339S

在Windows系统上,一个名为的可执行文件mpc_rtwdemo_single.exe.构建过程完成后出现在临时目录中

运行可执行文件。

如果ispc disp('运行可执行...')状态=系统(MDL2);别的DISP(“该示例仅在Windows系统上运行可执行文件。结尾
该示例仅在Windows系统上运行可执行文件。

可执行文件成功完成后(Status = 0),一个名为的数据文件mpc_rtwdemo_single.mat出现在临时目录中。

比较生成的代码中的响应(RT_U1RT_Y1.)在Simulink中的先前模拟中的响应(万博1manbetxU1.y1.)。

响应是数值相等的。

关闭Simulink万博1manbetx模型,然后返回原始目录。

BDCLOSE(MDL1)BDCLOSE(MDL2)CD(CWD)

相关话题