simulink中的过零检测

时间:2016-06-22 05:24:59

标签: matlab simulation simulink matlab-compiler

我想知道何时在Simulink块中启用/禁用过零检测选项。请举例说明。如果我们禁用该选项并运行模拟会发生什么?

我知道过零检测器会告诉信号超过零或改变符号的次数。但我想知道我们什么时候启用它以及使用它的实时示例?

这里提到的弹跳球的例子可以在phil Goddard在评论中提供的链接中看到。 我理解弹跳球的动态。最初,球以15米/秒的初始速度向上抛出。因此,如果我们看到速度图,最初速度正在减小,当球到达顶部时,速度为零,然后球开始下降,速度在-ve方向上增加。当球接触地面时,动能运动被转换为势能和很少的热能,并且潜在的能量再次转化为动能并且球开始升高。这就是为什么在零位置,速度再次上升到最大值并且随后是相同的序列。我在启用和禁用过零检测的情况下运行模型,但我没有看到示波器图中的任何差异。

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可以通过将饱和度块的限制调整为1,使用来自 simulink>数学运算库饱和度块符号块的组合然后用-1做产品,然后加1,这样当信号低于0时输出显示1,当信号高于0时输出为0。

过零检测器的框图:

Block diagram of zero crossing detector&

过零检测器的输出:

output of zero crossing detector