0

在这个简单的 simulink 模型中,我无法理解示波器的输出:

puls_gen 和范围

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

首先,我将模拟时间设置为 10,并将脉冲发生器设置为Period = 10Puls width = 5。范围的输出与预期的一样:

期间=10

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

在此处输入图像描述

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

使用 sim time 100,000 并且Period = 10,000我什至Puls width = 5,000没有得到一个下降沿:

在此处输入图像描述

即使仿真时间更长,在示波器窗口的末端似乎也有一个上升沿。

我究竟做错了什么?范围是否不适合使用固定步长求解器进行如此长时间的仿真?还是使用自动缩放按钮不“安全”?

4

1 回答 1

1

您显示的所有图都是正确的。Simulink 很好,仿真时间长。使用自动缩放按钮是“安全的”。

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

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

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

于 2015-07-05T14:17:50.440 回答