【问题标题】:How to use a variable as parameter of a s-function in simulink如何在simulink中使用变量作为s函数的参数
【发布时间】:2014-11-20 00:31:11
【问题描述】:


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

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

【问题讨论】:

    标签: matlab simulink s-function


    【解决方案1】:

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

    【讨论】:

    • 我知道但很遗憾我无法更改 s-function
    • 我认为你必须做你想做的事。
    • 你是对的,但是,s-fuctions 是关闭的。我无法访问代码。无论如何,一个参数可以是一个常数,一个来自工作区的变量和一个 matlab 表达式的结果。我尝试调用一个 matlab 函数,它似乎也可以工作。无论如何,您是对的,将 simulik 变量作为参数是没有意义的。它应该是一个输入
    【解决方案2】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-28
      • 1970-01-01
      • 1970-01-01
      • 2014-02-03
      • 2021-05-27
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      相关资源
      最近更新 更多