0


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

编辑: 在工作区中更新全局变量中的变量没有用,因为 simulink 似乎在一开始就读取了值

4

2 回答 2

0

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

  1. s-function 参数可以是:常量、工作区变量、matlab 表达式。在 matlab 表达式中包含对 matlab 函数的调用。
  2. simulink 在仿真开始时计算每个参数的值(这很有意义!)。

解决方法是:使用matlab函数计算参数。一个matlab函数可以调用另一个simulink仿真。我试过了,即使在一个非常简单的情况下,它也有效。

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

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

于 2014-11-19T16:31:11.927 回答
0

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

于 2014-11-19T14:56:35.330 回答