Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

仮想現実を使用したニュートンのゆりかごのモデリング

この例は、「ニュートンのゆりかご」と呼ばれる一般的な玩具をモデル化する方法を示しています。「ニュートンのゆりかご」は、7 つのまったく同じボールで構成され、これらのボールは同じ高さから一列につるされています。停止しているときは、お互いのボールがちょうど触れ合うように並んでいます。片側の 1 つまたは複数のボールを静止位置から持ち上げて、手を放します。

ボールの弾性衝突に関する興味深い点は、手放されたボールが止まったように見え、もう一方の端の同数のボールが (手放されたボールとほぼ同じ力で) 振り動かされたように見えることです。中央部のボールは、一方の端から反対の端への移行運動量に関与していながらも、動いていないように見えます。

この例では、単純な弾性衝突モデルを使用してボール間の基本相互作用を説明します。Stateflow® チャートでは、ローカル変数を使用してシステムの連続状態、すなわち位置 p と速度 v を表現しています。これらの 2 つのローカル変数は、[更新方法]continuous になるように定義されます。これにより、導関数をそれぞれ p_dot および v_dot として参照できるようになります。すべてのボールのノミナル ダイナミクスは同一なので、ベクトルの割り当てでは次のようにまとめて記述されます。

p_dot = v;
v_dot = -g/l*sin(p);

p_dotv_dot はチャートのローカル変数ではありません。これらは、pv が連続になるように定義されているため、自動的に作成されます。

モデルは簡単な for ループを使用して、ボール間の衝突を検出します。1 次元の設定では、チャートは単一の for ループを使用して、隣り合ったボールの衝突のみをモデル化します。

衝突に対する反応も単純に表現されます。各衝突は完全な弾性瞬間衝突として処理されます。衝突に関与した各ボールの位置と速度は交換されます。

このモデルをシミュレートすることで、ボールの動きを示す Simulink® 3D Animation™ が作成されます。シミュレーションを開始するにはいずれかのボールをダブルクリックします。

関連するトピック