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

时间:2015-07-04 13:02:47

标签: matlab scope simulink clock pulse

在这个简单的simulink模型中,我很难理解我的作用域的输出:

puls_gen and scope

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

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

period=10

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

enter image description here

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

使用sim时间100,000和Period = 10,000以及Puls width = 5,000我甚至没有一个下降边缘:

enter image description here

即使模拟时间较长,在示波器窗口的末尾也会出现一个上升沿。

我做错了什么?使用固定步长求解器,范围是否不适合这么长的模拟时间?或者它不安全"使用自动缩放按钮?

1 个答案:

答案 0 :(得分:1)

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

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

要查看所有模拟时间,请打开Scope块的参数(通过单击带有cog图片的按钮),转到History选项卡,然后取消选择将数据点限制为last:复选框。

然后重新运行模拟并按下自动缩放按钮。然后,您将看到(我认为)您期待的内容。