如何在运行时从“工作空间”块中更新变量

时间:2015-04-20 09:10:31

标签: matlab simulink

我有一个样本模型(如下所示),它包含一个from workspace块。它包含工作空间变量variable1(时间序列信号)。我在模拟期间更改了variable1的数据,但模型没有更新variable1的当前值。它仅在我停止并重新启动模拟时更新,但我希望它仅在运行时更新。任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

这并不是Simulink的设计工作方式,因此没有简单的方法可以做到这一点。 Simulink仅检查仅在模拟开始时的模型初始化期间检查工作空间的值。最好的办法是使用set_param,如:

set_param('untitled/From Workspace',' VariableName','variable1'); % put the correct path to your block

这不会改变块的参数化方式,但会强制Simulink使用variable1的新值对块进行参数化。由于variable1是一个timeseries对象,我不确定它的效果如何,但值得一试。

有关详细信息,请参阅this discussion on MATLAB Central