ブロックを積みながら(192) Scilab/Xcos、Xcosデモ、温度制御器

Joseph Halfmoon

制御素人老人がScilab/Xcosのデモを動かして学んでます(何を学んでいるのやら。)今回は温度制御器です。あれれ、過去回でも温度制御やった気がするのだけれども。でも過去回よりモデルはかなり「細かく」複雑になっている感じ。でもちょいと引いてみたらば過去回のバンバン制御と基本線は変っていない気もする。どうなんだ?

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

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

    Scilab 2024.0.0

過去回での温度制御

温度制御のデモを実習した過去回は以下です。

ブロックを積みながら(185) Scilab/Xcos、Xcosデモに学ぶ? バンバン制御

過去回はタイトルどおり、みんな大好きバンバン制御(オンオフ制御)でした。折角なのでその時のフローが以下に。thermostat01a

上部にあるゼロクロス検出回路で制御範囲から外れたことを知ったら、中央のセレクタで「上げる」「下げる」の定数を選択して値を調整するものでした。外乱としては乱数。

今回の温度制御デモのフロー

今回のデモは、以下のデモ選択画面から選択するものです。selectTempController

そのフローが以下に。色付の枠はこちらで描き加えたものです。TempControllerFlowEC

まず、右上の緑枠のところ、過去回と同様、定数でゲタを履かせた(上下に幅をもたせた)ゼロクロス回路2つによって、左の黄色枠内の定数を選択するようになっています。ここで注目すべきは黄色枠内の選択後に「1次遅れ」要素の伝達関数がおかれていることです。過去回ではON、OFFの値が即座に適用されとりましたが、よく考えてみたらばそんなことはありえへん、と。ちゃんと遅延があったのちに適用されとるみたいです。なお定数的には、プラス0.3という値はこのフローでは「ファンを回す」的な操作で、冷却装置ON的な意味みたいです。一方そうでないときは0。何もしないってか。ほおっておいたらだんだん熱くなるの?

外乱も巧妙?になってます。右下のピンク枠は、制御対象に直接加わる熱衝撃的なものみたい。ドアの開け閉め的な?一方、左の青枠内には、時間をかけてダラダラ変化するトランド値的な変化が加えられてます。モデルっぽいっちゃモデルっぽいっす。でたとこの乱数は今回排除ね。

熱を蓄える実体(熱容量的な)は赤枠で、これまたダラダラと積分されつづけ、それに外乱が加わった赤矢印のところが制御対象の温度みたいです。

あちこち精緻にはなっている。けど過去回のバンバン制御と基本的な発想は変らんように思われます。ホントか?

左の「トレンド」的な変化のカーブが以下に。curve1

右の「ドアの開け閉め」的な突発変化のカーブが以下に。

curve2シミュレーション結果

フロー図の右端の波形が以下に。上の黒色が「多分」温度で、下の緑色が「冷却」を示すらしい信号Cの波形です。Win2

一方、フロー図の中央下のグラフが以下に。Win1

黒が「ドア」の開け閉め的なガツンとした温度変化で、青が熱容量と冷却の遅延を加味した波形だと思います。

上の2つの波形を重ねるとガツンとした温度変化の影響がよくわかります。こんな感じ。win_1_2

一方、トレンド的な緩やかな変化の対応は以下のような感じ。coolingWave

緑の波形は「一次遅れ」、イクスポーネンシャル・カーブっす。そこで冷却されると温度が下がっているのが観察できます。

分かったような、分からぬような。何かひとこと説明が欲しかったけど、フローみて察せよ、ということ?

ブロックを積みながら(191) Scilab/Xcos、Xcosデモ、ハイブリッドオブザーバ へ戻る