
信号処理素人老人がScilabの「信号処理のデモ」からカテゴリ脱出。「振り子」のデモはしつこく続きます。振り子は物理実験の主役?今回の振り子はN重振り子です。過去回でもやったN重振り子ですが、今回のデモはローレンスリバモア研発のSUNDIALSのソルバを利用するものです。その処理はベラボーに速い?多分。
※「手習ひデジタル信号処理」投稿順 Indexはこちら
※Windows11上の Scilab2024.0.0を使用させていただいております。(Scilabについては御本家 Scilab 様へ)
多重振り子
多重振り子のシミュレーションのデモは、以下の過去回で「鑑賞」させていただいております。
手習ひデジタル信号処理(186) Scilab、{Scilabデモ}、N重振り子
上記の過去回で、N重振り子について多少調べているので、今回はスルー。上記の過去回を掻い摘むと以下のようでした。
-
- 10重振り子のシミュレーション
- Mapleのソースから生成したFortranコードをコンパイルした計算用オブジェクトファイルをScilabから呼び出すことでシミュレーション実施
- カオス的な挙動が目立つ設定である。
- アニメーション表示は比較的ゆっくり動く。スローモーション的動作に見えるので観察しやすい(実時間には見えない。)
一方、今回のデモは以下のデモ選択ウインドウから選択できる
SUNDIALS、N-pendulum
こちらのデモは、
-
- 10重振り子のシミュレーション(過去回と同じ)
- ソースはScilab言語で記述(ソルバのみSUNDIALSをScilab内部から呼び出し)
- 前回同様、ソルバは lagrangian_DAE.sce ファイル内のScilab関数から呼び出し(微分代数方程式ソルバ。)
- トップファイルは、demo_npend.sce
- アニメーション表示はほぼほぼ実時間的な動き(流石処理が速い?)
- あまりカオス的な挙動は目立たない(エネルギーの散逸が大きく急速に振動が減衰する設定にみえる。)
シミュレーション結果
シミュレーション開始後0.9秒の様子が以下です。元気に振動してます。
1.5秒後が以下に。振動は続いてますが、急速に振動が減衰し、ダランとした小さな振動に落ち着いてしまいます。
その後も小振動が続きますが、20秒後にはほぼ停止。まあ、現物で実験してもこんな感じじゃなかろうか?