← sim_game

Trebuchet Lab

技術解説 遊び方

技術解説: Trebuchet Lab のシミュレーション

カウンターウェイト式の投石機(トレビュシェット)を、平面内の3自由度の力学系として解く「ラグランジュ力学モデル」の解説です。ブラウザの中で1ミリ秒刻みの数値積分(4次のルンゲ・クッタ法)を行っています。

1. 3つの角度で機械の姿を表す

支点(高さ H)のまわりに腕が回り、腕の短い側(長さ a)の端にカウンターウェイト(錘、質量 M)、長い側(長さ b = L − a)の先端にスリング(紐、長さ s)と弾(質量 m)が付きます。角度はすべて「真下から時計回り」に測ります。

θ = 腕の角度 ψ = 吊り棒の角度(吊り下げ式のとき) φ = スリングの角度 u(β) = (−sin β, −cos β) 先端 = 支点 + b·u(θ) 短い腕の端 = 支点 − a·u(θ) 錘 = 短い腕の端 + c·u(ψ) 弾 = 先端 + s·u(φ)

固定式の錘は c = 0(腕の端に直接固定)、吊り下げ式は c > 0(ヒンジで吊り棒がぶら下がる)です。スリングは「質量のない、曲がらない棒」として扱っています(実物の紐はたるむことがありますが、投擲中はほぼ張っています)。

2. ラグランジュの運動方程式

運動エネルギー T と位置エネルギー V から、3つの角度の運動方程式を自動的に導けます。

T = ½ A θ̇² + ½ M c² ψ̇² + ½ m s² φ̇² − M a c cos(θ−ψ) θ̇ψ̇ + m b s cos(θ−φ) θ̇φ̇ A = I腕 + M a² + m b² V = g [ m腕(−d cos θ) + M(a cos θ − c cos ψ) + m(−b cos θ − s cos φ) ] M(q) q̈ + C(q, q̇) = − ∂V/∂q

θ̇ψ̇ や θ̇φ̇ の項が「腕・錘・スリングが互いに引っ張り合う」連成を表し、これが投石機の挙動を複雑で面白くしています。方程式は 3×3 の連立一次式として毎ステップ解いています。

3. 弾は最初、地面の上を引きずられる

はじめ弾は地面に置かれ、スリングは先端から前方へ伸びています。腕が回り出して先端が離れると、スリングが弾を地面ごと引きずります(摩擦なしの地面)。このとき、弾の高さ yp = 0 という拘束条件を、ラグランジュの未定乗数 λ(地面が弾を押す力)を使って 4×4 の連立方程式として解きます。

[ M −JT ] [ q̈ ] [ −C − ∂V/∂q ] [ J 0 ] [ λ ] = [ −J̇ q̇ ] J = ∂yp/∂q

λ が負になった瞬間(地面が弾を「引っ張る」ことはできない)が離陸で、ここからは拘束なしの3自由度に切り替わります。

4. 放出角と「ウィップ効果」

実際の投石機は、腕の先のピンからスリングの輪が外れた瞬間に弾が飛び出します。ここでは「スリングが腕の延長線に対してなす角(放出角)」がスライダーの値に達した瞬間に放出します。画面の点線が放出ラインで、白いスリングがこの線に重なると弾が飛びます。

スリングが先端の速さより弾を速く振り回す効果(ウィップ)は、角度 φ の運動方程式から自然に現れます。放出が早すぎると弾は高く上がるだけで遅く、遅すぎると速度が下向きになります。

5. 放物運動と飛距離

放出後は空気抵抗を無視した放物運動です。放出位置 (x0, y0)、速度 (vx, vy) から、

tf = ( vy + √(vy² + 2 g y0) ) / g 飛距離 = x0 + vx tf

飛距離は支点の真下(機械の中心)から測っています。

6. エネルギー効率

錘が落ちて失う位置エネルギー M g Δy のうち、弾が持ち去る運動エネルギー+位置エネルギー(½ m v² + m g y0)の割合が効率です。残りは、腕・錘・スリングに残った運動エネルギーです。腕の運動エネルギーはほとんど回収できないので、錘を腕に固定するより、吊り下げて真下に落とす方(錘が「死に荷重」にならない)が、弾へ渡る割合が大きくなります。実際に、このシミュレーションでも効率は 6〜8 割を超えます。

数値積分の検算として、放出の瞬間までの全エネルギー(運動+位置)の変化が 0.1% 未満であることを自動テストで確かめています。

7. 失敗の条件

8. このシミュレーションに入っていないもの

空気抵抗、スリングのたるみ(伸びと切れ)、腕のしなり、ピンの摩擦、地面や支柱との衝突の詳細、錘の大きさによる回転慣性は無視しています。また、吊り棒が短いときの飛距離が不規則に変わる現象は、錘が小さな振り子のように腕と共振するために、実際の機械でも見られる複雑さです。

遊び方