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

我使用的是一个固定的步长求解器(用ode3和ode8尝试过)。脉冲发生器的Pulse type设置为Sample based,而我改变了Period和Pulse Width。
首先,我将模拟时间设置为10,并将脉冲发生器设置为Period = 10和Puls width = 5。范围的产出如预期的那样:

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

为什么第一次下跌的边缘是5,500?我每次都用自动键。
使用sim time 100,000和Period = 10,000和Puls width = 5,000,我甚至连一个下降的边缘都没有:

即使有更长的模拟时间,在范围窗口的末端似乎也有一个上升的边缘。
我做错了什么?该范围是否不适用于使用固定步长求解器进行如此长的模拟时间?还是使用Autoscale按钮“安全”?
发布于 2015-07-05 14:17:50
你展示的所有情节都是正确的。Simulink很好,仿真时间长。使用“自动”按钮是“安全的”。
默认情况下,范围设置为仅显示最后5000模拟时间步骤。由于模型的步长为1s (这是基于使用脉冲发生器的默认步长,即1s),因此在第二个图中,您只看到从t=5000到t=10000的点(因此,该时间段中的第一个下行步骤为5500),而在第三个图中,您只看到从t=95000到t=100000的点(在这段时间内,脉冲的值为低/零)。
若要查看所有模拟时间,请打开范围块的参数(通过单击带有齿轮图片的按钮),转到“历史”选项卡,并取消选择“限制数据点”为“最后:”复选框。
然后重新运行您的模拟,并按自动缩放按钮。然后你会看到你在期待什么(我想)。
https://stackoverflow.com/questions/31220942
复制相似问题