这个例子展示了如何根据系统动力学选择正确的过零定位算法。对于Zeno dynamic系统或具有强抖动的系统,您可以通过配置窗格选择自适应过零检测算法:
-->解算器-->过零选项-->算法:[非自适应,自适应]
您可以通过在MATLAB®命令行中键入“sldemo\u doublebounce”来运行此模型
本例中的万博1manbetxSimulink®模型用于模拟两个弹跳球。它们以不同的初始速度从地面开始,其地面标高将在不同时间发生变化。
图1:双弹跳球模型与动画
如果使用非自适应过零定位算法,则连续的过零误差会导致模拟停止。这个系统实际上是一个所谓的“Zeno动态系统”。当任一球非常接近地面时,Simulink将挂起,因为在很短的时间内检测到过多的过零。万博1manbetx
图2:两个球的垂直位移采用非自适应过零定位算法。
模拟未完成,并显示错误消息。无法观察到地面变化事件。
如果选择了自适应算法,Simulink将自适应地打开/关闭该过程,以精确定位过万博1manbetx零时间。打开/关闭位置的条件为:
1) 过零信号值低于阈值。您可以通过“配置”窗格控制阈值:
-->解算器-->过零选项-->算法:[自适应]-->信号阈值
2) 连续过零诊断被命中。您可以通过“配置”窗格定义连续过零:
-->解算器-->解算器诊断控制-->时间容差和-->连续过零次数。
图3:两个球的垂直位移采用自适应过零定位算法。
模拟已经完成。可以观察到地面变化事件。关闭搜索事件时,将显示一条警告以通知您。