代码之家  ›  专栏  ›  技术社区  ›  Ranjith Reddy Kalluri

在simulink中求z=f(x,y)的z

  •  1
  • Ranjith Reddy Kalluri  · 技术社区  · 8 年前

    我有一个数据表,可以导入simulink的“二维查找表”。 行和列的间距不相等。 我如何创建一个模型,该模型以x、y为输入,通过从表中插值得到z作为输出。(即,对于x,y,这些值在表中的值之间,它应该根据表中的数值生成多项式方程,并获取输入并给出结果)。

    我可以使用matlab curvefit应用程序获得它,但我只能使用simulink。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Mikhail_Sam    8 年前

    你几乎已经做到了你想要的。 使用Simulink二维查找表可以自动插入数据: First example 看看这个:我设置了不等距的数据,这很好!表数据是您的 z 函数值。所以只要改变 x,y (在我的例子中 u1,u2 )你会得到你想要的。你可以看到它对 (x,y) = [2 8] .

    现在,让我们来解决第二个问题——如何求和 z 价值观 这里的重要时刻-你想得到多少钱!你知道,Simulink有很多不同的求解器,具有可变步长或固定步长。例如,用固定步长求解, dt = 0.2 会给你所有的答案 t= 0, 0.2, 0.4, ... 它将对您输入的数据进行插值并求解 z 对于每一个,如果你在这里得到总和,这会是你想要的吗? 如果是,最简单的方法是使用 Integrator 块大致如下: enter image description here

    但是如果你只想解决这个问题,你在 x、 年 在工作区中( (1 1), (3 8) , (7 10) 评论中的两对)和3的总和是什么 z 只有?它这是另一个很好的问题,可能比使用二维查找表更难:)

    我将展示许多可能的解决方案之一: 去 配置参数/解算器 并设置 固定台阶 具有 步长=1 。并使用此: enter image description here

    你可以看到它向你展示 101 但一定是 95 在你的情况下( 1+24+70 )! 这是因为simulink解决了 t = (0, 0) 也插值数据 t=0 给予额外的 6 。它很容易解决-添加您的 z 表格值 x,y = 0 .

    希望现在天气晴朗!