如何从 MATLAB 脚本控制/触发 Simulink 模型(在外部模式下运行)

问题描述 投票:0回答:1

作为 HiL 仿真的一部分,我在 Simulink 中有一个工厂模型,它在 PLC 上以外部模式运行。 MPC 控制器作为 MATLAB 脚本在 PC 上运行。在每个采样时间,来自 PC 的控制输入被发送到 PLC 上的对象模型,对象模型执行一个步骤并生成一个输出,该输出再次发送到 PC 上的控制器。

首先,我将设备和控制器的采样周期设置为恒定,假设为 3 秒,一切正常。然而,我不想有一个固定的采样周期,而是想触发工厂使用 MATLAB 脚本模拟一个步骤。换句话说,每当控制器完成计算并准备好输出时,它就必须将输出发送到对象输入,然后触发对象模型生成输出。

我搜索了 MATLAB 文档,老实说找不到合适的方法来做到这一点。

任何关于如何实现它的想法都值得赞赏:)

matlab controls hardware simulink plc
1个回答
0
投票

我认为您会发现

yourmodel(...)
命令很有用,请参阅帮助:https://www.mathworks.com/help/simulink/ug/simulink-model-command.html

在您的情况下,您将启动模型,调用

yourmodel([],[],[],'compile')
,然后运行控制器,获取更新的输入并调用:

outputs = <initial input to controller>
for n = 1:numSteps
    u = runController(outputs)
    states = yourmodel(states,u,t,'update')
    outputs = yourmodel(states,u,t,'outputs')
end
© www.soinside.com 2019 - 2024. All rights reserved.