文档

双弹跳球:使用自适应过零位置

这个例子展示了如何根据系统动力学选择正确的过零定位算法。对于Zeno dynamic系统或具有强抖动的系统,您可以通过配置窗格选择自适应过零检测算法:

-->解算器-->过零选项-->算法:[非自适应,自适应]

您可以通过在MATLAB®命令行中键入“sldemo\u doublebounce”来运行此模型

双弹跳球系统

本例中的万博1manbetxSimulink®模型用于模拟两个弹跳球。它们以不同的初始速度从地面开始,其地面标高将在不同时间发生变化。

打开模型

图1:双弹跳球模型与动画

双弹球非自适应过零定位算法

如果使用非自适应过零定位算法,则连续的过零误差会导致模拟停止。这个系统实际上是一个所谓的“Zeno动态系统”。当任一球非常接近地面时,Simulink将挂起,因为在很短的时间内检测到过多的过零。万博1manbetx

图2:两个球的垂直位移采用非自适应过零定位算法。

模拟未完成,并显示错误消息。无法观察到地面变化事件。

双弹球自适应过零定位算法

如果选择了自适应算法,Simulink将自适应地打开/关闭该过程,以精确定位过万博1manbetx零时间。打开/关闭位置的条件为:

1) 过零信号值低于阈值。您可以通过“配置”窗格控制阈值:

-->解算器-->过零选项-->算法:[自适应]-->信号阈值

2) 连续过零诊断被命中。您可以通过“配置”窗格定义连续过零:

-->解算器-->解算器诊断控制-->时间容差和-->连续过零次数。

图3:两个球的垂直位移采用自适应过零定位算法。

模拟已经完成。可以观察到地面变化事件。关闭搜索事件时,将显示一条警告以通知您。

这个话题有用吗?