Simulin金宝appk上的Guy

金宝appSimulink &基于模型的设计

处理传输延迟块

昨天我看到了这个模型:

使用传输延迟块建模

乍一看,人们可能认为这两种实现应该给出相同的结果。但事实并非如此,因为延迟的数据是不同的。

我认为这个模型是一个很好的解释一个属性的机会运输延迟块,似乎混淆了许多用户。

这个问题

在模拟模型时,我们注意到,如果信号延迟了两个2ms的延迟,与一个4ms的延迟相比,传递函数的输出是不同的。下面的图片是一个放大的过渡在4毫秒。我们可以看到信号延迟了两个2ms,延迟开始增加之前模拟达到4ms。

模型输出

调查

在这个模型中,传输延迟块的初始条件设置为零。因此,在4毫秒输入信号到传递函数从0跳到100。

我做的第一件事是仔细观察传递函数的输入。如果我们在4ms区域附近缩放,我们可以看到信号延迟了两个2ms的延迟(蓝色),它遵循3.8ms到4ms之间的斜率。延迟一个4毫秒的信号在4毫秒处显示一个完美的阶跃。(注意,我使用了新特性I上周讲过了在Simulink Scope上添加标记!)金宝app

延时信号

您可能会注意到,在这个模型中斜坡信号的持续时间是求解器最大步长的函数。更改求解器设置将改变模拟结果。

为了找到这种现象的解释,让我们看看文档:

运输延误文件

以防你错过,我强调了使用这个块的一个重要要求:这个块的输入应该是一个连续的信号。这里所说的连续,不仅是指信号的采样时间应该是连续的,而且是指信号的值应该是平稳变化的(两个值之间的差异应该很小)。

的解释

正如您在文档中看到的,Transport Delay块在点之间进行线性插值。这大致导致以下事件的顺序:

  • 在该模型中,最大时间步长为0.2ms
  • 在t=4ms时,传递函数块的输出发生了很大的变化。
  • 求解器返回到~3.86ms,以确保公差得到尊重。
  • 在3.86ms时,4ms的延迟在缓冲区中。所期望的值是在模拟开始之前,因此传输延迟输出它的初始条件。
  • 在3.86ms时,第二个2ms延迟块查看其缓冲区。它发现在t=1.8ms时,一个点等于0在时间2ms时,一个点等于100。第二个传输延迟块在这两个点之间插入并生成一个输出~30
  • 对于3.8ms到4ms之间的其他点重复相同的过程。

结论

在这个模型中,第一个2ms的延迟是在t=2ms时生成一个步长。这一步成为第二个传输延迟块的输入。阶跃信号不是连续信号(连续采样时间且平滑变化)。这违背了文档中指定的指导。

当然,有多种方法可以获得预期的结果。通常情况下,最佳解决方案将取决于使用该结构的更大上下文。例如,避免由第一个2ms延迟生成的步骤的一种方法是将其初始值设置为100。在这种情况下,两个2ms的延迟将产生与4ms延迟相同的结果。

现在轮到你了

你使用传输延迟块吗?你是否曾经对你可以输入到这个块的信号的限制感到困惑?留下一个这里的评论

|

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。