主要内容

使用Simulink Coder进行仿真和代码生成金宝app

这个例子展示了如何用Simulink®Coder™模拟和生成MPC控制器模块的实时代码。金宝app代码可以以单精度和双精度生成。

所需的产品下载188bet金宝搏

要运行此示例,需要Simulink和Sim金宝appulink Coder。

如果~ mpcchecktoolboxinstalled (“金宝app模型”) disp (“金宝app运行这个示例需要Simulink。”返回结束如果~ mpcchecktoolboxinstalled (“金宝appsimulinkcoder”) disp (运金宝app行这个例子需要Simulink Coder。);返回结束

配置环境

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

慢性消耗病= pwd;tmpdir = tempname;mkdir (tmpdir);cd (tmpdir);

定义工厂模型和MPC控制器

定义一个SISO工厂。

植物= ss(tf([3 1],[1 0.6 1]));

为工厂定义MPC控制器。

t = 0.1;%样品时间p = 10;%预测地平线m = 2;%控制地平线重量=结构(“MV”,0,“MVRate”, 0.01,机汇的1);%的重量MV =结构(“最小值”负无穷,“马克斯”正,“杀鼠灵”, -100,“RateMax”, 100);%输入约束OV =结构(“最小值”2,“马克斯”2);%输出约束mpcobj = mpc(植物、t、p、m,重量、MV, OV);

模拟和生成双精度代码

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

在Simulink中进行模型仿真。金宝app

mdl1 =“mpc_rtwdemo”;open_system (mdl1) sim (mdl1)
——>模型转换为离散时间。——>假设添加到测量输出通道#1的输出扰动为集成白噪声。——>”模式。mpc对象的Noise属性为空。假设每个测量输出通道上都有白噪声。

控制器工作和工厂输出作为变量保存到基本工作空间中uy,分别。

使用slbuild命令。

disp (“生成C代码…请等它完成。') set_param (mdl1“RTWVerbose”“关闭”) slbuild (mdl1);
生成C代码…请等它完成。### Starting build procedure for: mpc_rtwdemo成功完成build procedure for: mpc_rtwdemo模型重建行动的原因  ============================================================================================ mpc_rtwdemo代码生成和编译代码生成信息文件不存在。建造时间:0h 0m 42.282s

在Windows®系统上,一种名为mpc_rtwdemo.exe在构建过程完成后出现在临时目录中。

运行可执行文件。

如果ispc disp (“运行可执行…”) status = system(mdl1);其他的disp (该示例仅在Windows系统上运行可执行文件。结束
该示例仅在Windows系统上运行可执行文件。

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

比较生成代码的响应(rt_urt_y)与之前在Simulink中的模拟的响应(金宝appuy).

这些响应在数值上是相等的。

单精度模拟和生成代码

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

mdl2 =“mpc_rtwdemo_single”;open_system (mdl2)

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

在Simulink中进行模型仿真。金宝app

sim (mdl2)

控制器工作和工厂输出作为变量保存到基本工作空间中u1日元,分别。

使用slbuild命令。

disp (“生成C代码…请等它完成。') set_param (mdl2“RTWVerbose”“关闭”) slbuild (mdl2);
生成C代码…请等它完成。###成功完成mpc_rtwdemo_single的构建过程模型重建行动的原因  =================================================================================================== mpc_rtwdemo_single代码生成和编译代码生成信息文件不存在。1个模型建立(0个模型已经更新)建立时间:0小时0米28.411秒

在Windows系统中,一种名为mpc_rtwdemo_single.exe在构建过程完成后出现在临时目录中

运行可执行文件。

如果ispc disp (“运行可执行…”) status = system(mdl2);其他的disp (该示例仅在Windows系统上运行可执行文件。结束
该示例仅在Windows系统上运行可执行文件。

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

比较生成代码的响应(rt_u1rt_y1)与之前在Simulink中的模拟的响应(金宝appu1日元).

这些响应在数值上是相等的。

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

bdclose (mdl1) bdclose (mdl2) cd(鹿)

相关的话题