在Simulink中使用GPU模拟MPC控制器金宝app
这个例子展示了如何在Simulink™中生成CUDA代码并使用GPU来计算最优的MPC移动。金宝app
创建植物模型和设计MPC控制器
使用双积分器作为工厂。
Plant = tf(1,[1 0 0]);
为植物创建MPC对象,采样时间为0.1秒,预测和控制水平分别为10步和3步。
Mpcobj = mpc(plant, 0.1, 10,3);
- - - >“权重。“mpc”对象的“操纵变量”属性为空。假设默认的0.00000。- - - >“权重。“mpc”对象的“操纵变量率”属性为空。假设默认的0.10000。- - - >“权重。“mpc”对象的OutputVariables属性为空。假设默认的1.00000。
将被操纵的变量限制在-1和1之间。
mpcobj。MV =结构(“最小值”, 1“马克斯”1);
在Simulink中控制对象模型金宝app
利用MPC控制器模金宝app块创建Simulink闭环仿真,利用mpcobj
对象作为参数传递,以控制双集成器工厂。对于本例,打开已存在的文件gpudemo
金宝app仿真软件模型。
open_system (“gpudemo”)
单击打开配置参数对话框模型设置.然后,在代码生成部分中,选择生成GPU的代码.
现在您可以通过单击运行模型运行或者使用MATLAB命令sim卡
.在运行仿真之前,模型将从Simulink模型生成CUDA代码,并编译它以获得一个MEX可执行文件。金宝app当对模型进行仿真时,调用该文件,在GPU上进行仿真。
sim卡(“gpudemo”)
- - - >转换”模型。“mpc”对象的“植物”属性到状态空间。——>将模型转换为离散时间。假设测量输出通道1没有增加干扰。——>”模式。“mpc”对象的“Noise”属性为空。假设每个测量输出通道上都有白噪声。
仿真后,两个示波器的图显示,被控变量没有超过限制,并且在大约3秒后,装置输出跟踪参考信号。
在这里,整个Simulink模型在金宝appGPU上执行。要在GPU上只部署MPC块,你可以创建一个只有MPC块的模型。通常在嵌入式控制模块中,部署的模型包含控制器块和一些用于输入/输出信号的接口块。