【发布时间】:2016-10-23 20:58:33
【问题描述】:
我想知道何时启用/禁用 Simulink 模块中的过零检测选项。请举例说明。如果我们禁用该选项并运行模拟会发生什么?
我知道过零检测器会告诉信号过零或改变符号的次数。但我想知道我们何时必须启用此功能以及使用它的实时示例?
这里提到的弹跳球的例子可以在下面由 phil Goddard 在他的评论中提供的链接中看到。 我了解弹跳球的动力学。最初,一个球以 15 m/s 的初速度向上抛出。因此,如果我们看到速度图,最初速度是减小的,当球到达顶部时,速度为零,然后球开始下落,速度在 -ve 方向上增加。当球接触地面时,动能转化为势能和少量热能,势能又转化为动能,球开始上升。这就是为什么在零位置,速度再次上升到最大值并且遵循相同的序列。我在启用和禁用过零检测的情况下运行模型,但在范围图中没有看到任何差异。
提前致谢。
【问题讨论】:
-
该文档有一个zero crossing detection 的示例,并附有解释。请注意,过零检测仅在模拟中有效,因为它涉及到时间倒退的可能性(寻找过零点)。它没有实时的等价物。
-
@PhilGoddard 为什么我们必须寻找零交叉点?而且我在文档中注意到,某些块有一组过零变量,用于检测上限或下限。为什么我们必须检测上限或下限?
-
如果您正在模拟一个弹跳球(这是我之前评论中链接中的示例),您想知道球落地的确切时间吗?如果是这样,那么您需要打开过零检测。如果您对模拟显示球在撞击地面之前开始上升感到高兴,那么您不需要过零检测。阈值只是指定您对离地面有多近感到满意。较小的阈值表示需要更准确的模拟。
-
@PhilGoddard 我编辑了这个问题。我无法在此处添加评论,因为它太长了。
标签: matlab simulation simulink matlab-compiler