首页 文章

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

提问于
浏览
0

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

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

2 回答

  • 0

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

  • 0

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

    • s函数参数可以是:常量,工作空间变量,matlab表达式 . 在matlab表达式中包含了对matlab函数的调用 .

    • simulink在模拟开始时计算每个参数的值(它有意义!) .

    解决方案是:使用matlab函数计算参数 . matlab函数可以调用其他simulink模拟 . 我尝试过,即使在一个非常简单的情况下,它也有效 .

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

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

相关问题