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 ループを使用して、隣り合ったボールの衝突のみをモデル化します。

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

このモデルをシミュレートすると、ボールの運動を示す単純な UI が表示されます。

関連するトピック