示波器显示意外的脉冲发生器输出

Scope displays unexpected puls generator output

在这个简单的 simulink 模型中,我无法理解范围的输出:

我正在使用固定步长求解器(尝试使用 ode3 和 ode8)。 脉冲发生器的 Pulse type 设置为 Sample based,我改变了 PeriodPulse Width

首先,我将模拟时间设置为 10,并将脉冲发生器设置为 Period = 10Puls width = 5。示波器的输出符合预期:

但是当我尝试使用模拟时间 10,000 和带有 Period = 1,000Puls width = 500 的脉冲发生器时,我的范围似乎是错误的:

为什么第一个下降沿是在 5,500?我每次都使用自动缩放按钮。

使用模拟时间 100,000 和 Period = 10,000Puls width = 5,000 我什至没有得到一个下降沿:

即使仿真时间更长,范围末尾似乎也只有一个上升沿 window。

我做错了什么?示波器不适合使用固定步长求解器进行如此长的模拟时间吗?或者是不是"safe"使用Autoscale按钮?

你展示的所有情节都是正确的。 Simulink 适用于较长的仿真时间。 "safe" 使用自动缩放按钮。

默认情况下,范围设置为仅显示最后 5000 个模拟时间步长。由于您的模型采用 1s 的步长(这是基于使用脉冲发生器的默认步长,即 1s),在您的第二个图中,您只能看到从 t=5000 到 t=10000 的点(因此第一步 在那个时间段 是 5500),在你的第三个情节中你只能看到从 t=95000 到 t=100000 的点(这是脉冲值为low/zero的周期)。

要查看所有模拟时间,请打开 Scope 块的参数(通过单击上面有齿轮图片的按钮),转到 History 选项卡,然后取消选择 Limit data points to last : 复选框。

然后重新运行模拟并按下自动缩放按钮。然后你会看到(我认为)你在期待什么。