主要内容

牛顿摇篮模型

这个例子展示了如何建模一个流行的玩具称为“牛顿的摇篮”,它由一排七个相同的球挂在一个共同的高度。在静止时,它们的排列方式是相互接触。然后一端的一个或多个球从它们的静止位置升起并释放。

两个球之间弹性碰撞的一个有趣的结果是,被释放的球似乎停止了,而另一端释放的数量相同的球(与进来的球的能量几乎相同)。中间的球似乎不动,尽管它们负责将动量从一端传递到另一端。

该模型使用一个简单的弹性碰撞模型来描述球之间的相互作用。Stateflow®图表使用局部变量来描述系统的连续状态,即位置p还有速度v.注意,这两个局部变量都定义为更新方法作为连续.这允许你将它们的导数称为p_dot而且v_dot分别。由于所有球的标称动态是相同的,本例使用这些向量赋值来表示所有球的运动:

P_dot = v;V_dot = -g/l*sin(p);

请注意,p_dot而且v_dot不是图表局部变量。它们被自动创建是因为p而且v定义为连续的。

该模型使用一个简单的for循环来检测球之间的碰撞。在一维设置中,图表只用一个for循环来模拟连续球之间的碰撞。

对碰撞的响应也简单地表示出来。每次碰撞都被视为完全弹性瞬时碰撞。碰撞中涉及的每个球的位置和速度都是交换的。

模拟这个模型会弹出一个简单的UI,显示球的运动。

相关的话题