ブロックを積みながら(181) Scilab/Xcos、摩擦力計算をSuper Block化

Joseph Halfmoon

前回は回転モデルと摩擦力モデルを合体させました。1枚のシート上に両方のフローを載せ、つなぐべきところを接続する作業でした。こういうケースでは1階層の方が分かり易いです。しかし、出来た合体モデルのブロックの数がちと多過ぎ。さらに新機能を追加しようとすると老眼の年寄は目を回しそうです。そこで合体したモデルの一部を階層化と。

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

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

    Scilab 2024.0.0

前回フローの再掲

前回フローの上に階層化してトップレベルから「追い出したい」部分を赤線で囲ったものを示します。Rotation_Friction_FlowMOD

上記フローの下半分は、ほぼほぼ前々回の摩擦力モデルなので、一体化するときに階層化もやっておけや、という感じではあります。しかし、同じシートに並べておいて、どこをどう接続しようとか考えたかったのであります。忘却力の年寄りは最初から階層化すると行ったり来たりする信号共を管理しきれん、と。

一たびフローが出来た後は、機械的に階層化はバッチリだろうと。ほんとうか?

摩擦力計算ブロック

上記の赤枠部分をスーパーブロック化したフローが以下であります。

FrictionBLK

入力1番ポートから「額面の駆動力」を入力し、摩擦力を差っ引いて、差し引きの実質駆動力を出力1番ポートに送り出すブロックであります。他に入力は2番に角速度ω、3番に質量をとります。また表示用に摩擦力自体も出力2番に送ります。

変更後のトップフロー

変更後のトップフローが以下です。上記の「摩擦力計算ブロック」が左端近くの1個のブロックにまとめられたので、結構見通し良くなったんでないかと。RotationMainFlow

モデルの実体はほぼほぼ一直線であるのに、表示系ブロックが結構五月蠅い感じです。まあ、いいか。機能の追加の方が先か。

ブロックを積みながら(180) Scilab/Xcos、剛体の回転に摩擦力を追加 へ戻る