手習ひデジタル信号処理(203) Scilab、{Scilabデモ}、地面の上で跳ねるボール

Joseph Halfmoon

信号処理素人老人がScilabの「信号処理のデモ」脱出。長らく続いたSUNDIALSのソルバによるシミュレーションの鑑賞でしたが今回で〆であります。今回は放物線を描くボールです。自由な運動に見えるので単なるODEかと思いきや、そうは問屋が卸しませぬ。地面に激突して跳ね返ります。そのためODEではなくDAEソルバね。

※「手習ひデジタル信号処理」投稿順 Indexはこちら

※Windows11上の    Scilab2024.0.0を使用させていただいております。(Scilabについては御本家 Scilab 様へ)

Springboardデモ

今回のデモのタイトルはSpringboardです。そのものズバリの意味で、体操競技で使われる踏切版の意味だと思います。バネでモノを跳ね上げる動きね。今回のデモに登場する地面に持たせている特性が「バネ」的な特性なのだと思います。

今回のデモは以下のデモ選択ウインドウから選択できる

SUNDIALS>Springboard

です。selectSpringBoard

デモのプログラムは、以下のファイルです。

springboard.dem.sce

上記デモでは、泣く子も黙るローレンスリバモア研ご謹製のSUNDIALSのソルバを使って微分代数方程式を解いています。まあ、単純な放物線運動であればODEソルバで良いのでしょうが、今回目玉は地面での反発なので、そこにDAEソルバ御登場の意味があります。過去回では、デモの本体プログラムからはソルバを直接呼び出さず、lagrangian_DAE.sceファイル内の関数を介して呼び出してました。しかし、今回はidaソルバをモロ直接呼び出してます。DAE(微分代数方程式)ソルバっす。

SUNDIALS differential-algebraic equation solver

デモの動作を素人老人が拙く説明すると以下のようかと。

    1. 横方向X軸と、縦方向Y軸からなる2次元のシミュレーション
    2. 重力加速度 g が作用している空間。物体はY軸下方向に「落ちる」
    3. 左端にある斜面(曲線)をボールが転がり落ち、斜面の先端に設けられた「ジャンプ台」によって斜め上に放たれる
    4. ボールは放物線を描いて飛行
    5. Y軸下側には平らな地面あり。落ちてきたボールが地面に接触すると跳ね返り、再び放物線を描いて飛ぶ
    6. なお、地面との接触により変化する乗数は、λ。 空中では0、地面からの反力は g * λで表される
シミュレーション結果

SUNDIALSの御利益あらたか、計算速いです。Scilab上でも実時間?でアニメーション表示が行われます。その一瞬を撮ったところが以下に。Springboard000

赤字、赤矢印はお惚け老人が書き加えた説明です。3秒分のシミュレーションですが、あっという間でボールは右端に達します。ボールの反発の感じがなんともいえず自然。流石だ。

手習ひデジタル信号処理(202) Scilab、{Scilabデモ}、たるみのあるチェイン へ戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です