主要内容

使用Simulink编码器的仿真和代码生成金宝app

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

需要产品下载188bet金宝搏

要运行此示例,需要Simulink和Sim金宝appulink编码器。

如果〜mpcchecktoolboxinstalled('金宝appsimulink')disp('金宝appSimulink需要运行此示例。'的)返回结尾如果〜mpcchecktoolboxinstalled('金宝appsimulinkcoder')disp('金宝appSimulink编码器需要运行此示例。);返回结尾

配置环境

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

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中模拟模型。金宝app

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 42.282S

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

运行可执行文件。

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

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

比较生成的代码的响应(RT_U.RT_Y.)在Simulink中的先前模拟中的响应(金宝appy)。

响应是数值相等的。

在单精度下模拟和生成代码

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

mdl2 ='mpc_rtwdemo_single';Open_System(MDL2)

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

在Simulink中模拟模型。金宝app

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 28.411s

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

运行可执行文件。

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

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

比较生成的代码的响应(RT_U1RT_Y1)在Simulink中的先前模拟中的响应(金宝appU1.Y1.)。

响应是数值相等的。

关闭Simulink金宝app模型,并返回原始目录。

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

相关话题