模拟弹力球
这个示例使用两个模型的弹力球显示不同的建模方法与芝诺混合动态系统行为。芝诺非正式行为的特点是无限的事件发生在一个有限的时间间隔为特定的混合动力系统。损失能量球,球与地面碰撞先后更小的间隔时间。
混合动态系统
一个弹跳球模型是混合动态系统的一个例子。混合动力系统是一个系统,涉及两个连续动力学和离散转换系统动力学可以变化和状态值能跳。弹力球的连续动力学是由这些方程给出:
在哪里重力加速度,球的位置,是速度。系统有两个连续的状态:这个职位和速度。
模型的混合动力系统方面源于建模与地面碰撞的球。如果一个假设与地面部分弹性碰撞,碰撞前的速度,碰撞后的速度,可以恢复系数相关的球,,如下所示:
因此,弹力球显示在连续状态(速度)转换条件,。图片显示了一个球扔了一个0 m / s的速度从一个25米的高度。
使用两个积分器弹力球块模型
的sldemo_bounce_two_integrators
模型用两个积分器块模型一个弹跳球。积分器块左边是速度积分器建模第一个方程。右边的积分器块位置积分器。打开块参数对话框位置积分器的块的下限为零。这种情况代表了约束,球不能低于地面。
国家港口位置积分器和相应的比较结果是用来检测当球击中地面和重置集成商。速度的国家港口积分器用于计算。
观察芝诺的行为系统,修改解决配置参数。
打开配置参数对话框,建模选项卡,在设置,点击模型设置。
选择解算器窗格。
设置停止时间来
25
。点击旁边的箭头解算器的细节查看其他解算器参数。
下零交点选项,设置算法来
非适应
。
模拟模型。
当球击中地面更频繁和失去能量,模拟超过默认值连续的零交叉的极限1000年
。
在配置参数对话框中,设置算法来自适应
。自适应算法引入了一个复杂的治疗震颤行为。你现在可以模拟系统超过20秒。之间的喋喋不休的美国21秒,25秒仍大,和软件问题警告20秒左右。
用二阶积分器块模型弹球
的sldemo_bounce
模型使用一个二阶积分器块模型一个弹跳球。在这个模型中,第二个方程是内部的二阶积分器。打开看看,二阶积分器块对话框下限为零。在属性选项卡上,选择重新启动dx / dt当x达到饱和
。该参数允许您重新启动(弹力球模型)的一个新值时达到饱和的限制。弹力球模型中,当球击中地面,它的速度可以设置为不同的值,如后速度的影响。注意循环计算与地面碰撞后的速度。捕捉速度球就在碰撞之前的二阶积分器块的输出端口和一个内存块。然后用来计算反弹速度。
在配置参数对话框中,去解算器窗格。
在仿真时间,设置停止时间来
25
。扩大解算器的细节。在零交点选项,设置算法来
非适应
。
模拟模型。
注意,模拟遇到任何问题。你可以模拟模型没有经历20秒后过度喋喋不休,没有设置算法来自适应
。
比较建模弹力球的方法
你可以分析计算确切的时间当球落定下来地面零速度通过为每个反弹加法所需的时间。这一次是无限的和几何级数给出的:
在哪里和分别是初始位置和速度的条件。球的速度和位置必须等于零。图中显示的结果从模拟近了。情节是垂直的红线对于给定的模型参数。为和远离,两种模型产生准确、相同的结果。只有一个红色的线从第二个模型是可见的阴谋。然而,从第一个模型仿真结果不准确。情节继续显示过度地行为。相比之下,该模型使用二阶积分器完全零块落定。
模型使用二阶积分器块具有优越的数值特征相比,第一个模型,因为第二个微分方程是内部的二阶积分器。块算法可以利用这两个国家之间的关系,并使用启发式取缔喋喋不休对某些条件的行为。这些启发式成为活跃在两个州不再是相互一致的集成错误和喋喋不休的行为。因此可以使用物理的知识系统,以防止模拟陷入国家对某些类别的芝诺芝诺模型。