ブロックを積みながら(177) Scilab/Xcos、剛体の回転、トルク波形を与える

Joseph Halfmoon

前回は剛体の回転運動の「単純モデル」。問題なく回転、まずは可。しかし不満なのは回転させるために与えるトルクの設定です。前回は単純な方形波でした。そんな単純な波形でトルクが与えられるわけないだろ~。今回はいかなる波形でも与えられるようにScilab側でトルク波形を変数として定義し、Xcosに輸出して計算させてみます。

※「ブロックを積みながら」投稿順 index はこちら

※動作確認にはWindows 11の パソコン(64bit)上にインストールしたScilabの以下バージョンを使用しています。

    Scilab 2024.0.0

今回使用のフロー

今回のフローは第175回のSuper Block内に表示のためのコマケー奴らを押し込めて多少見通しをよくしたものをベースに前回の剛体の回転モデルを組み合わせたものです。本質的に前回とかわりませぬがトルクを与える部分が変更になってます。フローが以下に。fromWS_flow

前回、方形波(振幅と周波数のみプログラム可能)で与えていたトルクを、上記のフローでは From workspace ブロックに変更してます。

From workspace ブロックは、Scilab本体のワークスペース内で定義された変数をXcos側に「輸入」できるブロックですが、変数については決まりがあります。

    • timeとvaluesという2つのフィールドがあること
    • 各フィールドに列ベクトルとして値を詰めておくこと

当然、Scilab上のプログラムで変数の内容を設定できます。今回は手動でベクトルを定義してます。こんな感じね。TorqueDefinition

時刻0秒から10秒まで、time値1秒おきにトルクの値values[N*m]を定義してみました。トビトビの値についてどう補間されるかはFrom workspaceブロックの設定で制御できるみたいです。TorqueSetting

上記のInterpolation methodのところに1を設定すると、トビトビの値の途中は線形に補間してくれるモードです。モードは複数あるので詳しいことはHelpファイルでも御覧くだされ。

シミュレーション

設定は以下のようにしました。SimulationSettings

入力にあわせ10秒間シミュレーション(積分)、実時間スケールは2xなので、2倍のスローモーションでアニメーションが画面上に表示されるハズ。

シミュレーション実行時のT(トルク)とω(角速度)のグラフが以下に。TorqueWaveForm

上記の波形で回転(2倍のスローモーション)する様子のアニメーション出力が以下に。

回ってはいるみたい。大丈夫か?

ブロックを積みながら(176) Scilab/Xcos、剛体の回転運動、単純モデル? へ戻る

ブロックを積みながら(178) Scilab/Xcos、剛体の回転、回転エネルギーも表示 へ進む