如何在simulink中使用变量作为s函数的参数

时间:2014-11-19 14:42:49

标签: matlab simulink s-function


我想使用变量指定s函数的一些参数,而不是使用手动插入的常量 我试图在matlab中定义全局变量并将它们用作参数,它工作正常 无论如何,我希望在simulink中计算的变量用作其他s-fuction的参数。可能吗?如果是的话,我该怎么做呢? 一个想法是继续在matlab e中使用全局常量来从simulink更新它们,但我无法做到,因为“to workspace”块在struct或array中转换它们,我需要一个值。

修改 更新工作空间中全局变量中的变量是没有用的,因为似乎simulink读取了开头的值

2 个答案:

答案 0 :(得分:0)

我能想到的唯一解决方案是将“变量”作为S功能块的输入信号之一,信号来自Simulink模型的其他部分,计算它。

答案 1 :(得分:0)

我找到了解决方案。 首先,重要的是要知道:

  1. s函数参数可以是:常量,工作空间变量,matlab表达式。在matlab表达式中包含了对matlab函数的调用。
  2. simulink在模拟开始时计算每个参数的值(它有意义!)。
  3. 解决方案是: 使用matlab函数计算参数。 matlab函数可以调用其他simulink模拟。我尝试过,即使是在一个非常简单的情况下,它也有效。

    我知道,这是一个疯狂的解决方案,但它是一个解决方案。警告:目前我无法知道这个疯狂的解决方案是否会对模拟产生一些副作用。

    这个问题的最佳解决方案是在s函数的输入中转换参数,但我不能这样做,因为它是第三方函数