非減衰単振り子の運動(Part 2 -シミュレーション編-)
非減衰単振り子の運動(Part 2 -シミュレーション編-)
はじめに
前回は、非減衰単振り子の運動方程式を導出しました。
本稿ではその続きとして、非線形モデルと線形化モデルを 4 次のルンゲ–クッタ法(RK4)を用いて数値解析し、その挙動を比較していきます。
前回記事はこちら: 非減衰単振り子の運動(Part 1 - シミュレーション準備編 -)
単振り子のモデル
1. 概要

Fig.1 Schematic of a simple pendulum
Fig.1に示すように、単振り子の構成要素は以下です。
- 質点
(糸の先端)m - 糸の長さ
l - 重力加速度
g
仮定:
- 糸は質量がなく、伸縮しない。
- 空気抵抗や軸の摩擦はない。
- 振れ角は十分小さい場合、小振幅近似が可能。
2. 運動方程式
非線形モデル:
線形化モデル:
4 次のルンゲ・クッタ法(RK4)の公式
初期値問題の解法として4 次のルンゲ・クッタ法(単にルンゲ・クッタとも呼ぶ)がよく用いられている。この方法は
ただし、
である。
ルンゲ–クッタ法の詳しい解説は下のサイトが参考になります。
Python での常微分方程式の数値解法(Runge–Kutta 法)
シミュレーション1
まずは、初期角度
計算には Octave を用い、パラメータは次の通りです。
% simulation parameters
Tsim = 10; % シミュレーション時間 [s]
dt = 0.01; % 刻み幅 [s]
% initial condition
theta_o = [0.03, 0.5, 0.9]; % [rad] 初期角度
dtheta_o = 0.0; % [rad/s] 初期角速度
% parameters
g = 9.81; % [m/s^2] 重力加速度
l = 0.5; % [m] 糸の長さ
計算結果

Fig.2 Simulation results for three different initial angles.
Fig.2に計算結果を示します。初期角度が大きくなるにつれて、非線形モデルの周期が長くなっているのが確認できます。
振幅依存の周期(非線形モデル)
非線形モデルの振動周期は次式(5)で計算できます。
ここで
したがって、非線形モデルの周期は
一方、線形モデルの周期は次式 (6) のように表され、
式(5)の導出は以下のページにわかりやすく解説されています。
運動シミュレーション
次に、それぞれの初期角度について運動をシミュレーションします。
青い球が線形モデル、グレーの球が非線形モデルを表しており、両者の運動の違いを確認できます。
Fig.5 (

Fig.5 Pendulum motion (initial angle

Fig.6 Pendulum motion (initial angle

Fig.7 Pendulum motion (initial angle
ポイント
線形モデルは本来、振れ角が微小であることを前提としています。
そのため、初期角度が大きい場合には非線形モデルの挙動に追従できなくなります。
したがって「近似を行う」ということは、その適用範囲や意味を十分に理解しておく必要があります。
シミュレーション 2 : ブランコをイメージしよう!
次に、振り子の長さを 2 m に設定してみます。
単なる興味本位です。
このときは初期角度
これはちょうど ブランコに乗って漕ぎ始める状況をイメージすると分かりやすいでしょう。
% initial condition
theta_o = 0.5; % [rad] 初期角度
dtheta_o = -3.0; % [rad/s] 初期角速度
% parameters
l = 2.0; % [m] ブランコの長さ
計算結果

Fig.8 Pendulum angle response with initial velocity (
Fig.8 に計算結果を示します。シミュレーション 1 と同様に、非線形モデルでは周期が長くなる様子が確認できます。さらに今回は初速度を与えているため、振幅が線形モデルよりも大きくなっている点にも注目してください。
運動シミュレーション

Fig.9 Pendulum motion (
長さを 2 m にしたことで、振り子はよりゆったりと揺れるようになります。
直感的にも、ブランコをこいでいると上の位置で滞空している時間が長く感じられるとおもいます。
※ 実際には摩擦などの影響によって振動は減衰していく点に注意してください。(あとくつ飛ばしもできます)
シミュレーション 3 : ブランコで一回転!?(おまけ)
さらに初速度を大きくするとどうなるでしょうか。
実際のブランコであれば、先ほどの結果でも十分にスリルのある体験になると思いますが、
シミュレーションの良いところは、その先を行けるところです。
% initial condition
theta_o = 0.5; % [rad] 初期角度
dtheta_o = -5.0; % [rad/s] 初期角速度(後ろに蹴り出すイメージ)
% parameters
l = 2.0; % [m] ブランコの長さ
計算結果
Fig.10に示すように、非線形モデルが振り切っていますね。これはFig.11のアニメーションを見ると何が起きているか確認できます。

Fig.10 Pendulum angle response with initial velocity (

Fig.11 Pendulum motion (
そうです。初速を大きくしたので、ブランコ(非線形)が何回転もしています。実際は摩擦などの影響で減衰していきますが、乗る人が頑張ればできるかもしれません...
まとめ
線形化するといろいろ便利なことが多いですが、その意味と適用範囲についてよく知っておかなければなりません。
また、多くの力学問題では解析解を得ることは難しいため、今回のように 数値計算(RK4 など)を用いたシミュレーションが強力な手段となります。
Discussion
良いですねー。
モデルの違いで結果に差が出ていることがよくわかります。
余計なことを言わせていただければ、\theta が\pm \frac{\pi}{2} を超えると、重りは l のl の円周軌道に戻りますけどね。l の円周軌道に乗った直後は、一時的にたわんだ糸が再度\theta = 0 近傍で
円周に沿った軌道を通らず、垂直落下してから
更に余計なことを言うと、重りが垂直落下後
伸び切ることによる張力でバウンドし、重りの位置エネルギーが減衰し、ほぼ
揺れて止まると思います。
基本中の基本の振り子の運動ですけど、つつけばいくらでも研究テーマの出てくるいい例です。
教えていただいた挙動は自分では気づけていなかったので、とても勉強になりました。ありがとうございます!