这个例子展示了如何使用Simulink®PLC Coder™软件模拟和生成MPC控制器块的结构化文本。金宝app生成的代码使用单精度。
要运行这个示例,需要Simulink和Si金宝appmulink PLC Coder。
如果~ mpcchecktoolboxinstalled (“金宝app模型”) disp (“金宝app运行这个示例需要Simulink。”)返回结束如果~ mpcchecktoolboxinstalled (“plccoder”) disp (运金宝app行此示例需要Simulink PLC编码器。);返回结束
您必须具有写权限才能生成相关文件和可执行文件。因此,在开始模拟和代码生成之前,请将当前目录更改为临时目录。
慢性消耗病= pwd;tmpdir = tempname;mkdir (tmpdir);cd (tmpdir);
定义一个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);
打开Simulin金宝appk模型。
mdl =“mpc_plcdemo”;open_system (mdl)
要为MPC控制器块生成结构化文本,请完成以下两个步骤:
配置MPC块使用单精度数据。设置输出数据类型属性的MPC控制器单
.
open_system ([mdl/ / MPC控制器的控制系统的])
将MPC块放在一个子系统块中,并将子系统块视为一个原子单元。选择当作原子单位对待子系统块的属性。
在Simulink中进行模型仿真。金宝app
close_system ([mdl/ / MPC控制器的控制系统的(mdl) open_system (/ /引用/输出的(mdl) open_system (' /输入']) sim (mdl)
——>模型转换为离散时间。——>假设添加到测量输出通道#1的输出扰动为集成白噪声。——>”模式。mpc对象的Noise属性为空。假设每个测量输出通道上都有白噪声。
用PLC编码器生成代码,使用plcgeneratecode
命令。
disp (“生成PLC结构文本……”请等它完成。'(mdl) plcgeneratecode (“/控制系统”]);
生成PLC结构文本…请等它完成。### mpc_plcdemo/Control System的PLC代码###使用模型设置 from 'mpc_plcdemo' for PLC代码生成参数。###开始IDE代码生成mpc_plcdemo_codegen_rpt.html。### # mpc_plcdemo/Control System的PLC代码成功生成 ### Generated files: plcsrc/mpc_plcdemo.exp
消息查看器对话框显示PLC代码生成成功。
关闭Simulink金宝app模型,并返回到原始目录。
bdclose (mdl) cd(鹿)