ブロックを積みながら(154) Scilab/Xcos、不連続パレット、連続の御供?

Joseph Halfmoon

前回まで「離散時間」パレットを練習してました。今回は「不連続」パレットです。そういえば「連続時間」パレットも練習したよな。忘却力の彼方かも知れん。さて「不連続」パレット内のブロックどもは、それだけでシステムを記述するというよりは「連続時間」システムの中にひそかに「不連続」を紛れ込ませるためのものどものようです。

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

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

Scilab 2024.0.0

不連続(Discontinuities)パレット

不連続パレットの様子が以下に。discontPalette

今回は、上記のパレットの中から「ありがちな」以下の3種類のブロックどもを練習してみたいと思います。

    • SATURATION
    • HYSTHERESIS
    • DEADBAND

サチュレーション(飽和)、ヒステリシス、デッドバンドなどと聞くと電子系ではお馴染みさんの概念じゃないかと思います。通常の「連続時間」パレットの「リニア」なブロックどもと比べると、こいつらは非線形。でも度々登場するよね。。。

今回練習のフロー

今回練習のフローが以下に。DISCON_FLOW

配置したブロックどものアイコンに見えるように、今回練習のブロックどもは「XYプロット」(オシロでリサージュ図形を描くときのモード)を使えば、アイコンそのままの波形が観察できる筈。

元波形は振幅1、オフセット0、周期2π[rad/s]の正弦波(今回はXYプロットなので「建前」振幅さえあれば、周期も波形もテキトーで良いけど)で、これをサチュレーション、ヒステリシス、デッドバンドの3ブロックを通してXYプロットしようとするものです。

なお、左肩に「DUMMY CLSS」を配置してあるのは、これを置かないと「連続量が見つからない」ワーニングが出るためです。これをみても「不連続」なものどもは「連続時間システム」の御供であることが期待されておると。

サチュレーションの設定が以下に。SaturationSetting

 

つづいてヒステリシスの設定。hystheresisSetting

最後がデッドバンドの設定。

deadbandSetting

シミュレーション結果

まずはサチュレーションの結果から。saturation

上下とも、設定どおり±0.5を超えると「サチって」ます。予定通りね。

続いてヒステリシスです。hystheresis

「行き」は0.5を上回ると、「帰り」は-0.5を下回るとON/OFF入れ替わる様子が見てとれます。シンプルな「ヒステリシス」なので実際にはこれに「味付け」することが必要かも知れませんな。

さて最後にデッドバンドです。最初、CLOCK_cのキザミを0.1にしたらこんな波形が観察できてしまいました。斜めっているところが気になったのでプロットポイントの読み取り機能で2点読み取った値が表示されております。deadbandTIP

-0.5から+0.5までデッドバンド(入力が何来ても出力は0)のつもりなのだけれども、その期間が斜めってないかい?

上記の理由は正弦波波形とCLOCKの時間キザミの「マジック」でした。要は正弦波波形(周期2π[rad/s])に、時間キザミ(0.1s)が粗すぎたための見掛けの「斜め」線であります。

CLOCK_cの設定を0.01sと細かく変更すれば、ほれこのように。deadband

予定どおりデッドバンド内は「平」になりました。XYだから時間関係ねーとかさっき書いたけど、関係あるじゃん!プロットするときは気をつけないと。

ブロックを積みながら(153) Scilab/Xcos、離散時間パレットその2 へ戻る

ブロックを積みながら(155) Scilab/Xcos、ルックアップ・テーブル・パレット へ進む