手習ひデジタル信号処理(187) Scilab、{Scilabデモ}、車輪とバイク

Joseph Halfmoon

信号処理素人老人がScilabの「信号処理のデモ」を物色中だった筈が、いつの間にかカテゴリを脱出。今回「鑑賞」させていただくのは「シミュレーション」カテゴリの中の「車輪」と「バイク」という2種のシミュレーションです。機械系ね。アニメーション表示は手に汗握り(ホントか?)ますが、計算実体は触りズライっす。

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

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

前回は「N重振り子(実際は10重振り子)」のアニメーションでした。今回は「車輪」と「バイク」でやはりアニメーション表示です。今回も前回同様な計算構造。アニメーション表示に近い上位レイヤはScilabで書かれてますが、根っこのところが外側にあります。あまり触るところが無いので2種類を一度にやっつけ?ますです。

車輪シミュレーション

「車輪シミュレーション」は以下のデモ選択ウインドウから選択できます。selectWheel

ソースファイルなどは、以下のパスで見つかります。

scilabのインストールフォルダ\modules\differential_equations\demos\wheel

こちらは、前回の「N重振り子」のデモと同様な構造です。

    1. 計算実体はfortranで書かれてコンパイル済のプログラム
    2. fortranのソースはMapleのソースからの自動生成
    3. プログラムの起動と表示にかかわる上位層のみScilab

ということで何かデモを「改ざん」しようなどと悪だくみをするにはMapleの環境に遡る必要があります。とりあえずfortranコンパイラさえ、Scilabから見えるところにインストールしてあれば「自動生成のfortranソース」に手を入れて何かやる、ことも不可能ではないです。実際、今回はfortranコンパイラを呼び出してビルドしてScilab環境から呼び出すためのスクリプトも含まれています。

しかし、Mapleにお金をお支払いする気もなく、またfortran環境をインストールする気もないので「計算済の軌道を読み込む」オプション側のみ実施してみました。なお、「計算済の軌道」はx.wrtというデータファイルに格納されています。

アニメーション表示結果が以下に。wheelResult

平面(これがホロノミック拘束の実体?)の上で1個の車輪がゆらゆらと揺らぎながら走り回ります。

バイクシミュレーション

「バイクシミュレーション」は以下のデモ選択ウインドウから選択できます。「不安定な軌道」と「安定な軌道」の2種があります。

不安定なやつがこちらselectBike1

一方安定なやつは以下に。selectBike2

上記2つとも、ソースファイルなどは以下のパスで見つかります。

scilabのインストールフォルダ\modules\differential_equations\demos\bike

こちらは、Mapleやfortranのソースなどは見当たらりません。全てScilabで書かれていますが、プログラムの起動とアニメーション表示にかかわる「上位層」の部分のみに見えます。肝心のバイクの軌跡自体は、既に計算されたものがdataフォルダに格納されているので、これを呼び出してScilabで「デコレーション」してアニメ化する感じです。なお、データファイルの実体は、

    1. 「不安定な軌道」x1.dat
    2. 「安定な軌道」xdemo.dat

です。

まずは不安定な方。bikeResult1

なにやら道路らしきところを自転車がフラフラと走ってくるのですが、あ、危ないと思ったらスッテンころりんと倒れてしまいます。

一方安定な方。bikeResult2

平面の上を結構高速で八の字走行しまくります。大丈夫かとハラハラして見守りますが、転びもせず最後まで走り切ります。よかった。

まあ、こういうデモみるとScilab使ったアニメーションに誘っている感じがするけれども、ソースみるとメンド。

手習ひデジタル信号処理(186) Scilab、{Scilabデモ}、N重振り子 へ戻る

コメントを残す

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