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

Matlab 如何在simulink中使用变量作为s函数的参数,matlab,simulink,s-function,Matlab,Simulink,S Function,我想使用变量而不是手动插入的常量来指定s函数的一些参数。 我曾尝试在matlab中定义全局变量,并将它们用作参数,效果很好。 无论如何,我希望simulink中计算的变量用作其他s函数的参数。可能吗?如果是,我怎么做? 一个想法是继续使用Matlabe中的全局常量从simulink中更新它们,但我不能这样做,因为to workspace块在结构或数组中转换它们,我需要一个值 编辑: 在工作区的全局变量中更新变量是没有用的,因为simulink似乎在开始时读取了值我能想到的唯一解决方案是将变量作为

我想使用变量而不是手动插入的常量来指定s函数的一些参数。 我曾尝试在matlab中定义全局变量,并将它们用作参数,效果很好。 无论如何,我希望simulink中计算的变量用作其他s函数的参数。可能吗?如果是,我怎么做? 一个想法是继续使用Matlabe中的全局常量从simulink中更新它们,但我不能这样做,因为to workspace块在结构或数组中转换它们,我需要一个值

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

我能想到的唯一解决方案是将变量作为S功能块的输入信号之一,信号来自于Simulink模型的另一部分,在这里它被计算。

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

s函数参数可以是:常数、工作空间变量、matlab表达式。在matlab表达式中包含对matlab函数的调用。 simulink在模拟开始时计算每个参数的值!。 解决办法是: 使用matlab函数计算参数。matlab函数可以调用其他simulink仿真。我试过了,即使是在一个非常简单的案例中,它还是奏效了

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


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

我知道,但不幸的是,我不能更改s函数,我想你必须,做你想做的。你是对的,但s函数是关闭的。我无法访问代码。无论如何,一个参数可以是一个协方差、一个来自工作空间的变量和一个matlab表达式的结果。。我尝试调用一个matlab函数,它似乎也能工作。无论如何,您是对的,将simulik变量作为参数是没有意义的。它应该是一个输入