サーモスタットシミュレーションで遅延を実装する方法

2016年 6月 30日

サーモスタットは, 多くの家庭で暖房やエアコンを制御し, 快適な室内温度を維持するために使用されています. ヒーターを制御するシンプルなサーモスタットには, オンオフ の設定値があります. 以前のブログで紹介したように, COMSOL Multiphysics の イベント インターフェースを使えば, このような制御スキームを簡単に実装できます. 今日は, この手法を拡張し, サーモスタットのシミュレーションに, ヒーターのオンとオフの間の時間差である 遅延 を含めます.

サーモスタットが遅延を使用する理由

一般的な家庭用の暖房やヒーター用サーモスタット には, 2つの温度設定値があります:

  1. オン, 暖房が最大速度でオンになる
  2. オフ, 暖房がオフになる

実際には, これらの設定値のうち1つだけを直接制御し, もう1つの設定値は自動的に数度異なる値に設定されます. このような制御スキームは, 以前のサーモスタットに関するブログ で開発したアプローチでモデル化できます. 今日は, サーモスタットのシミュレーションに, ヒーターの状態を切り替える間の時間遅延を含めます.

遅延は様々な理由で実装できますが, 主な理由の一つはヒーターの ショートサイクル を防ぐことです. デバイスのオン/オフを繰り返すと, システムコンポーネントの過度な摩耗 につながり, 修理費用が発生する可能性があり, これは避けたいところです.

ショートサイクルを防ぐために使用できる様々な遅延スキームがあります. 一般的なアプローチの一つは, ヒーターをオンまたはオフの状態で, 定義済みの最小時間維持してから切り替えることです. COMSOL Multiphysicsでこの制御スキームがどのように実装されているかを見てみましょう.

COMSOL Multiphysics で遅延付きサーモスタットを実装する

住宅の熱モデル やその他のシステムがあり, 遅延付きサーモスタットを使用してヒーターを制御すると想定しましょう. このようなモデルでは, サーモスタットのモデリングに関する以前のブログ記事で説明したように, サーモスタットの温度センサーの位置として1つの点を選択できます. 前述のように, モデル内のヒーターのオン/オフ状態を制御するには, イベント インターフェースを使用します.

COMSOL Multiphysics における住宅の熱モデル.
住宅の熱モデル. サーモスタットはセンサーの温度を監視し, ヒーターのオン/オフ状態を制御します.

実装に入る前に, サーモスタットの動作を正確に記述しましょう. 上限と下限の設定値を持つサーモスタットがあり, ヒーターを現在の状態 (オンまたはオフ) に維持し, 指定された遅延時間だけ待機させます. これは, 2つの別々のステートメントとして記述できます:

  1. ヒーターがオフの状態が指定された遅延時間以上続き, 温度が下限設定値を下回っている場合, ヒーターをオンにします.
  2. ヒーターがオンの状態が指定された遅延時間以上続き, 温度が上限設定値を超えている場合, ヒーターをオフにします.

これらの2つのステートメントは, イベント インターフェース内に実装できます. サーモスタットが最後にオンになってから経過した時間を追跡する方法を導入するだけで済みます. 以下のスクリーンショットは, これらの条件を設定する方法を示しています.

離散状態インターフェースを使用して, ヒーターの状態を決定する2つの離散変数を定義します.
離散状態 インターフェースは, ヒーターの状態を決定する2つの離散変数を定義します.

イベント インターフェースには, 上記のスクリーンショットに示されている 離散状態 インターフェースをはじめ, いくつかの機能が含まれています. 2つの離散変数, HeaterStateTimeOfSwitch が定義されています. HeaterState 変数の初期値は 1 で, シミュレーション開始時にヒーターがオンになっていることを意味します. この変数は, 伝熱 (固体) インターフェース内で, 適用された熱負荷の乗数として使用されます. ヒーターをオフにするには, HeaterState 変数を 0 に設定します. TimeofSwitch 変数は, 最後のスイッチングイベントの時刻を格納します. この問題では, 初期値は 0 , t=0 でヒーターの状態が切り替えられたことを意味します.

これらの2つの 離散状態 変数は, イベントがトリガーされた場合にのみ変更されます. そのためには, 最後のスイッチングイベントからの経過時間を確認し, センサーの温度を上限および下限の設定値と比較する必要があります. これは, 以下のスクリーンショットに示すように, インディケーター状態 インターフェースを使用して行います.

インディケーター状態インターフェイスを使用して, イベントをトリガーする3つの異なるインジケーターを定義します.
インディケーター状態 インターフェースは, イベントをトリガーする3つの異なるインディケーターを定義します.

上記のスクリーンショットでは, シミュレーション中に3つの異なるインディケーター状態が追跡されていることがわかります. まず, TurnOn インディケーター状態は式 T_bot-T_s を評価します. この式は, ヒーターをオンにしたいときに負から正に変化します. ここで, T_botグローバルパラメーター です. 変数 T_s はセンサー温度で, 以前のサーモスタットに関するブログ で説明したように, ポイント積分カップリングと変数定義を使用して定義されます. 同様に, TurnOff インディケーター状態は式 T_s-T_top を評価し, ヒーターをオフにしたいときに負から正に変化します.

OkToSwitch インディケーター状態は t-TimeOfSwitch-Delay を評価し, ヒーターが指定された遅延時間よりも長くオンまたはオフの状態になった後に負から正に変化します. ここで, Delayグローバルパラメーター です. これらの離散状態とインディケーター状態状態は, 次のスクリーンショットに示すように, 2つの 暗示的イベント をトリガーするために使用されます.

ヒーターをオンにするために使用される最初の暗示的イベントのスクリーンショット.
最初の 暗示的イベント は, ヒーターがオンになるタイミングを制御します.

上記のスクリーンショットでは, 最初の 暗示的イベント はヒーターをオンにするために使用されています. イベント条件(OkToSwitch>0)&&(HeaterState==0)&&(TurnOn>0) です. この論理条件は, 次のように解釈できます. 最後のスイッチングイベントからの時間が指定された遅延時間よりも長く, ヒーターが現在オフで, センサー温度がターンオン設定値を下回っている場合, 暗示的スイッチングイベントをトリガーします. このイベントがトリガーされると, ソルバーが再起動され, HeaterState が 1 に再初期化され, ヒーターがオンになります. さらに, TimeOfSwitch は現在時刻 t に再初期化されます. これら2つの変数は, 別の暗示的イベントがトリガーされるまで変更されません.

電源オフイベントをトリガーする2番目の暗示的イベントのスクリーンショット.
2番目の 暗示的イベント は, ヒーターをオフにするタイミングを制御します.

上記の2番目の 暗示的イベント は, 最初のイベントとほぼ同じですが, ターンオフイベントをトリガーします. 条件 (OkToSwitch>0)&&(HeaterState==1)&&(TurnOff>0) が満たされると, このイベントは HeaterState をゼロに, TimeSinceSwitch を現在の時刻に再初期化します.

これらの2つの暗示的なイベントで, ヒーターをオンにする前にオフになっているかどうかを確認する (同様に, ヒーターをオフにする前にオンになっているかどうかを確認する) のはなぜか疑問に思うかもしれません. この追加のチェックは, イベントがトリガーされて TimeOfSwitch が頻繁に再初期化されるのを防ぐために行われます. システムは自然に (他の境界条件の何らかの変化や変動により), 加熱が行われていないのにセンサー温度が上限設定値を超える状態になることがあります. あるいは, ヒーターがオンになっているにもかかわらず, センサー温度が下限設定値を下回っている可能性があります. このようなケースでイベントがトリガーされることは望ましくないため, これらの追加チェックが行われます.

これらの機能により, スイッチング間に遅延のあるサーモスタットを実装しました. 解く前に, 離散状態 変数(HeaterState 変数と TimeOfSwitch 変数)の初期値が, ヒーターの初期状態と最後のスイッチングイベントに対して適切であることを確認してください. また, サーモスタットに関する以前のブログで説明したように, イベント許容値 を調整する必要がある場合があることにも留意してください.

それでは, いくつかの結果を見てみましょう.

サーモスタットの遅延動作を示すグラフ.
遅延のあるサーモスタットは, 5分ごとにしかスイッチングできません. 水平の破線はサーモスタットの設定値を表しています.

上のグラフでは, サーモスタットの遅延挙動が確認できます. センサー温度は当初, 両方の設定温度を下回っており, ヒーターは時刻 0 でオンになります. センサー温度が上限設定温度に達するまでシステムは約7分かかり, その時点でヒーターはオフになります. システムは急速に冷却を開始しますが, サーモスタットは5分経過するまでオンになりません. ヒーターが再びオンになる前に, サーモスタットの温度は下限設定温度を下回ります. ヒーターがオンになった後, システム温度は5分間のスイッチング遅延時間により上限設定温度を上回ります. このオーバーシュートとアンダーシュートの挙動が時間とともに繰り返されているのが確認できます.

サーモスタットシミュレーションに遅延を実装する方法についてのまとめ

ここで概説した手法により, スイッチングイベント間に遅延を設けたサーモスタットモデルを実装することができ, 多くの実際の制御スキームに当てはまります. サーモスタットのシミュレーションに遅延を実装する場合と, 遅延のないサーモスタットを実装する場合の主な違いは, サーモスタットの切り替え時間を追跡する追加の インディケーター状態 変数を導入することです.

もちろん, このアプローチは温度制御だけにとどまりません. COMSOL Multiphysics では, 過渡問題を解く際にいつでも イベント インターフェースを使用できます.

コメント (0)

コメントを残す
ログイン | 登録
Loading...
COMSOL ブログを探索