Simulink:摆脱时间延迟

Simulink: Get rid of time delay

我正在尝试 运行 simulink 上的闭环系统,如下所示。

当我 运行 它得到这个结果。

如您所见,阶跃函数达到 1 时有轻微的时间延迟。闭环输出也直到 1.5 秒左右才开始。我知道这就是现实世界中会发生的情况,但我想知道是否有办法摆脱这种时间延迟并使输出显示 'ideal' 结果。

谢谢

编辑

只是想添加更多信息。步进输入是标准步进输入,我在设置方面唯一改变的是仿真时间为 8 秒,求解器是固定步长 ode1 (euler)。

您使用的是固定步长求解器,因此步长默认为 (stop_time-start_time)/50,在您的情况下等于 0.16。因此,您没有恰好 1 秒的时间步长。在第 6 个时间步长 = 0.96,步长为 0。在第 7 个时间步长 = 1.12,步长为 1。这正是显示的内容,并针对您使用的模拟参数进行更正。

对于固定步长求解器,如果您希望步长恰好在 1s 发生,则需要指定步长大小,以便模型以 1s 采取时间步长。 您可以通过转到“模拟参数”下拉菜单的“求解器”面板并将“步长”更改为适当的值来做到这一点。 (请注意,该图仍将显示从 1 开始的步骤,但会晚一个时间步骤结束。)

或者,您可以使用可变步长求解器。 (这会将步骤显示为在 1 秒时完全垂直。)

关于时间延迟,极点比零点多 3 个,因此在使用固定步长欧拉时会有 3 步长的时间延迟。 改变它的唯一方法是使用不同的求解器。