文档

双弹力球:使用自适应零横断位置

此示例显示了如何基于系统动力学选择正确的零交叉位置算法。对于ZENO动态系统或具有强烈聊天的系统,您可以通过配置窗格选择自适应零跨检测算法:

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

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

双弹力球系统

此示例中金宝app的Simulink®模型用于模拟两个弹跳球。它们从地面以不同的初始速度开始,其基水平将在不同的时间变化。

打开模型

图1:双弹力球模型和动画

具有非自适应零交叉位置算法的双弹跳球

如果使用了非自适应零交叉位置算法,则连续的零划分误差会导致模拟停止。该系统实际上是一个所谓的“ zeno动态系统”。当任何一个球都非常靠近地面时,Simulink将悬挂,因为在很短的时间内检测到太多的零交叉点金宝app。

图2:两个球的垂直位移,具有非自适应零交叉位置算法。

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

带有自适应零交叉位置算法的双弹跳球

如果选择了自适应算法,Simulink将自适应地打开/关闭该过程,以精确定位零金宝app交叉时间。打开/关闭位置的条件是:

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

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

2)连续零交叉诊断受到打击。您可以定义连续的零通过配置窗格:

- >求解器 - >求解器诊断控制 - >时间公差和 - >连续零交叉数的数量。

图3:具有自适应零交叉位置算法的两个球的垂直位移。

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

这个话题有帮助吗?