主要内容

牛顿摇篮的虚拟现实建模

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

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

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

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

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

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

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

模拟这个模型创建一个Simulink®3D动画™,显示球的运动。万博1manbetx双击任意一个球开始模拟。

相关的话题