此示例显示了如何使用Simulink®PLCCoder™软件模拟和生成MPC控制器块的结构化文本。金宝app生成的代码使用单精度。
要运行此示例,需要Simulink和Sim金宝appulink PLC编码器。
如果〜mpcchecktoolboxinstalled('金宝appsimulink')disp('金宝appSimulink需要运行此示例。'的)返回结尾如果〜mpcchecktoolboxinstalled('plccoder')disp('金宝appSimulink PLC编码器需要运行此示例。);返回结尾
您必须具有写入权限以生成相关文件和可执行文件。因此,在开始仿真和代码生成之前,将当前目录更改为临时目录。
CWD = PWD;tmpdir = tempname;MKDIR(TMPDIR);CD(TMPDIR);
定义一个SISO工厂。
植物= SS(TF([3 1],[1 0.6 1]));
定义工厂的MPC控制器。
ts = 0.1;%样品时间p = 10;%预测地平线m = 2;%控制地平线权重= struct('mv',0,'mvrate',0.01,机汇的,1);%重量mv = struct('min',-inf,'最大限度',inf,'ratemin',-100,'ratemax', 100);%输入约束ov = struct('min',-2,'最大限度',2);%输出约束MPCOBJ = MPC(植物,TS,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控制器'])Open_System([MDL/ /引用/输出的])Open_System([MDL' /输入'])SIM(MDL)
——>模型转换为离散时间。——>假设添加到测量输出通道#1的输出扰动为集成白噪声。——>”模式。mpc对象的Noise属性为空。假设每个测量输出通道上都有白噪声。
要使用PLC编码器生成代码,请使用plcgeneratecode.
命令。
DISP('生成PLC结构文本......请等到它完成。)plcgeneratecode([mdl“/控制系统”]);
生成PLC结构文本......请等到它完成。###为“MPC_PLCDEMO / CONTROL系统”生成PLC代码。###使用 for plc代码生成参数的'mpc_plcdemo'。###开始代码 codeSys23 。###将PLC代码发出到文件。###创建PLC代码生成报告 mpc_plcdemo_codegen_rpt.html 。### PLC代码生成'MPC_PLCDEMO / CONTROL系统'成功。###生成的文件: plcsrc / mpc_plcdemo.exp
消息查看器对话框显示PLC代码生成成功。
关闭Simulink金宝app模型,并返回原始目录。
bdclose (mdl) cd(鹿)