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

nle07wnf  于 7个月前  发布在  Matlab
关注(0)|答案(1)|浏览(178)

作为HiL仿真的一部分,我在Simulink中有一个工厂模型,该模型在PLC的外部模式下运行。MPC控制器作为MATLAB脚本在PC上运行。在每个采样时间,来自PC的控制输入被发送到PLC上的被控对象模型,被控对象模型执行一个步骤并生成输出,该输出再次发送到PC上的控制器。
首先,我将被控对象和控制器的采样周期设置为常数,比如说3秒,一切正常。然而,我不想有一个固定的采样周期,而是我想触发工厂模拟一个步骤使用MATLAB脚本。换句话说,每当控制器完成其计算并准备好输出时,它必须将输出发送到对象输入,然后触发对象模型以生成输出。
我已经搜索了MATLAB文档,老实说,找不到合适的方法来做到这一点。
任何关于如何实现它的想法都值得赞赏:)

rqqzpn5f

rqqzpn5f1#

我想你会发现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

相关问题