ブロックを積みながら(143) Scilab/Xcos、信号のルーティング、まとめる、バラす

Joseph Halfmoon

前回、ベクトルを扱うために先走ってMUXブロックを使ってしまいました。今回からはMUXを含む信号の「ルーティング」用のパレットに含まれるブロックを練習してみたいと思います。スカラーをベクトルにまとめたり、ベクトルをスカラーに分解したり、あるいはベクトルの一部を取り出したりするものども。ついでにGOTOもね。

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

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

Scilab 2024.0.0

信号の配線パレット

Signal routing paletteの全貌が以下に。routingPalette

上記の「いろいろある」ものどもの中から、よく使いそうで、かつScilab素人の老人にも使い方が分かるものを、まずは5つばかり練習してみたいと思います。前回、先走って使ってしまったMUXもおさらいということで含んでおります。

今回練習のダイアグラム

今回練習するのは以下のブロックです。

    1. MUX
    2. DEMUX
    3. EXTRACTOR
    4. FROM
    5. GOTO

MUXはバラバラに入ってくるスカラー値をまとめてベクトルとして出力することができます。DEMUXはその逆、ベクトルを入力されるとそれを分解してスカラーにして出力することができるもの。Extractor は、入力されたベクトルの特定の要素を取り出すことができるもの。通常のプログラミング言語であるとGOTO文は存在してもプログラムが読みづらくなるからと「ちょっとヤマシイ」気がしたりするかもな要素ですが、Xcosにおいてはごちゃごちゃと配線が重なるよりかはGOTOで飛ばす方がよっぽど分かり易い?とび先はFROMからとりだし。

実験のダイアグラムは以下のとおり。routing1Flow

各ブロックの設定は以下のようです。まずはMUX。スカラー値3個を入力に受け取ってベクトル化する設定です。

MUXsetting
DEMUX。入力から入ってきたベクトルを3個のスカラ値に「バラす」設定です。DEMUXsetting

づついてExtractorの設定です。ベクトルの中でインデックス2の要素を取り出す設定。Indicesと複数形なので複数要素を取り出すこともできるみたいだけどもやってません。EXTRACTORsetting

なお、Scilabは添え字1始まりであります。2といったら2番目の要素っす。

そしてGOTOとFROMの設定。まずはGOTO。GOTOsetting

続いてFROM。FROMsetting

シミュレーション結果

上記のダイアグラムをシミュレーションした結果が以下に。のっぺりしたグラフばかりですが、スカラーだったり、ベクトルだったりの様子が分かるっと。

routingResults

これで配線できる?まだいろいろあるみたいだが。

ブロックを積みながら(142) Scilab/Xcos、数値計算パレットその2、ベクトル処理 へ戻る

ブロックを積みながら(144) Scilab/Xcos、信号のルーティング、切り替える へ進む