ブロックを積みながら(137) Scilab/XCOSの復活、まずは積分でリハビリ

Joseph Halfmoon

長らくNodeREDを練習してきましたが、NodeREDは別シリーズにお引越し。今回から本シリーズではScilab/XCOSを練習したいと思います。Scilab付属のツールXCOSはブロック線図などを描いてそれをシミュレーションできる「ビジュアルな」ツールです。「MATLABにおけるSimulinkみたいなもん」です。

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

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

Scilab 2024.0.0

別シリーズでは時々XCOSしていた

実を言えば、別シリーズで時々XCOSしていたのです。しかしながらこのところご無沙汰。老人の忘却力とて、使い方ほぼほぼ忘却。記憶をよみがえらせるために過去のXCOS使用記事を以下に列挙しておきます。

    • 以下の2つはちょうどコロナが流行り始めた時期に伝染病のSIRモデル(連立微分方程式)をシミュレーションしてみたものです。

忘却の微分方程式(1) 「コロナ 微分方程式」で検索
忘却の微分方程式(2) XcosのSIRモデルを手直し

    • 上記のシミュレーションをやっていたときに、XCOSには似たような部品がいくつもあるの?という疑問があり、それについて調べたのが以下回です。

忘却の微分方程式(3) Xcos、積分2つ、どっち?

    • 一方信号処理の別シリーズでもフィルタを作ってその特性を見るのにXCOSを使わせていただいておりました。以下は伝達関数のブロックダイアグラムからボード線図を描いたもの

手習ひデジタル信号処理(21) 残響生成器その1、櫛型フィルタ、Scilabで見る
手習ひデジタル信号処理(22) 残響生成器その2、全域通過フィルタ、Scilabで見る

    • またIIRフィルタで正弦波を生成するのにもXCOS使ってみてます。

手習ひデジタル信号処理(34) IIRフィルタによる正弦波発生器その1
手習ひデジタル信号処理(36) IIRフィルタ、直交する正弦波発生器その1

こんなにやっているのに忘れている。要リハビリであります。

先ずは積分から

今回はリハビリということで、微分方程式モデルでもブロックダイアグラムでも登場の積分から練習していきます。なお上記の過去記事でもとりあげたように積分を出来るブロックは積分記号使ったものと1/sみたいな表記のものと2系統あり、同様な処理をできるものの、設定など微妙に異なります。今回は積分記号が前面に出ているものを使っています。まずは実験のフロー。integFlow

上側の経路では、定数「1」を時間で積分してグラフ化してます。当然、まっすぐな一本線が得られるはず。一方、下側の経路では、上の結果で得られるはずのランプ関数を入力にとって、それを積分してます。多分結果は2次関数ね。

まずは、積分ブロックのセッティング、こんな感じ。INTEGRALsetting

続いて「CMスコープ」の設定。オシロみたいなもんか?CMSCOPEsetting

定数「1」の入力は簡単なので、ランプ関数の指定は以下で。RAMPsetting

そしてシミュレーションの時間経過?を支配する「お時計」様のセッティング。CLOCK_cSetting

これで終わりかといえばさにあらず、シミュレーション全体の設定をば。シミュレーションの設定は上部のプルダウンメニューからです。一番肝心なのは終了時間の設定。SIMsetting

さて実行

実行結果のグラフが以下に。上が定数1の積分、下がランプ関数の積分。integGraph

リハビリは予定通りに進んでいる?

ブロックを積みながら(136) Node-RED、PCをMQTT接続、マイコン接続の準備ね へ戻る

ブロックを積みながら(138) Scilab/XCOSの配線?クセが強いのう。 へ進む