这个例子说明了如何模拟,并生成使用的Simulink PLC编码器™软件MPC控制器块结构化文本。金宝app生成的代码使用的单精度。
要运行这个例子,Simulink和Simu金宝applink的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时;%控制范围权重=结构('MV',0,'MVRate',0.01%,'OV',1);%权重MV =结构(“最低”,-Inf,“最大”,天道酬勤,'RateMin',-100,'RateMax',100);%输入约束OV =结构(“最低”,-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”对象的“Model.Noise”属性是空的。假设在每个测得的输出信道的白噪声。
为了生成与PLC编码器代码,使用plcgeneratecode
命令。
DISP(“生成PLC结构化文本...请等待,直到它完成。”)plcgeneratecode([MDL'/控制系统']);
创建PLC结构化文本...请等待,直到它完成。###为“mpc_plcdemo /控制系统”生成PLC的代码。###使用模型设置从PLC代码生成参数 'mpc_plcdemo' 的。###开始代码生成IDE codesys23 。###的Emit PLC代码文件。###创建PLC代码生成报告 mpc_plcdemo_codegen_rpt.html 。### PLC代码生成成功为“mpc_plcdemo /控制系统”。###生成的文件: plcsrc / mpc_plcdemo.exp
消息查看器对话框显示PLC代码生成是成功的。
关闭Simulink金宝app模型,并返回到原来的目录。
bdclose(MDL)CD(CWD)