Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Truth Table ブロックを使った室温調節

この例では、Truth Table ブロックを使用して室温調節システムをモデル化します。室温調節システムを導入せずに室内の気候を一定に保つことは難しいため、居住者は通常、自動化されたシステムを利用して望ましい気候を維持します。温度と湿度は動的であるため、望ましい状態を保つには、常に監視して調整する必要があります。望ましい気候を保つために、家屋の各種サブシステムがどのように有効化されるかをモデル化するために、このモデルでは Truth Table ブロックを使用して論理的意思決定を管理します。

真理値表の調査

この例では、ClimateController というラベルの付いた Truth Table ブロックによって、サブシステムの物理的な出力がすべて制御されます。このブロックは、望ましい温度 T_thresh、実際の室温 t、望ましい湿度 H_thresh、および実際の室内湿度 h の 4 つの入力を使用します。ブロックがどのように入力を使用して出力を生成するかを確認するには、ブロックをダブルクリックします。ClimateController ブロックには、条件テーブルとアクション テーブルの 2 つのテーブルが含まれます。

条件テーブルは入力の論理的な評価方法を示し、ブロックで行う 2 つの比較と、ブロックが取ることのできる 4 つのアクションを示します。最初のアクションを実行するには、2 つの条件が True でなければなりません。条件のいずれかが True でない場合、ブロックは次の判定列に示された条件をテストします。ここでは、最初の条件のみが True でなければなりません。この評価は、判定が得られるか、最後の判定列に達するまで左から右へと続行された後、実行されます。この例では、- のエントリは False 条件のように機能します。結果として、ブロックは、- 条件が False として明示的に定義されていた場合と同じように動作します。しかし、True 条件と False 条件のみを使用して自動生成されたコードでは、最適でないコード カバレッジが生成される可能性があります。この問題を回避するため、この例では - 条件を使用します。

最初の行で、ブロックは室温と望ましい温度を比較し、CoolOn アクションと HeatOn アクションを使用して、室内のクーラーとヒーターをそれぞれ制御します。t > T_thresh の場合、ブロックは CoolOn アクションを有効にします。この条件が True でない場合、ブロックは HeatOn アクションを有効にします。2 行目で、ブロックは室内湿度と望ましい湿度を比較し、HumidOn アクションを使用して加湿器を制御します。h < H_thresh の場合、ブロックは HumidOn アクションを有効にします。

アクション テーブルは、各論理的アクションに関連付けられているブロック出力を定義します。最初の行で、CoolOncooler の値を 1 に、heater の値を 0 に設定します。2 行目で、HeatOnheater の値を 1 に、cooler の値を 0 に設定します。既定では、ブロックで HumidOn が有効にされている場合を除き、加湿器は 0 です。

家屋のサブシステムの調査

モデル内の HumidifierCoolerHeater というラベルの付いた緑のブロックは、室内の気候を調整する物理的なサブシステムを表します。Humidifier サブシステムには、ClimateController ブロックの出力を受けて作動する Switch ブロックが含まれます。Humidifier サブシステムの入力が 1 の場合、このサブシステムは 1.5 を出力します。それ以外の場合、サブシステムは値 0 を出力します。

Heater サブシステムと Cooler サブシステムも同様の原理で動作します。それぞれに、2 つの Switch ブロックが含まれます。一方の Switch ブロックは温度に作用する値を出力し、Cooler では端子 "dt"Heater では端子 dt1 でそれぞれ出力されます。もう一方の Switch ブロックは湿度に作用する値を出力し、Cooler では端子 "dh"Heater では端子 "dh1" でそれぞれ出力されます。cooler = 1 の場合は Cooler サブシステムが有効になり、heater = 1 の場合は Heater サブシステムが有効になります。作動すると、Heater サブシステムは "dt1"1 を出力し、Cooler サブシステムは dt-1 を出力します。どちらのサブシステムも、作動すると dh および dh1-0.5 を出力します。

ClimateController ブロックの構成により、Cooler サブシステムと Heater サブシステムが同時に有効になることはありません。

外部のサブシステムの調査

外の熱や湿度も室内の気候に影響します。このモデルは、これらの条件による影響を熱と湿度の流量として表します。externalHeatFlow サブシステムは屋外の熱流量を、externalHumidityFlow サブシステムは屋外の湿気流量をそれぞれモデル化します。externalHeatFlow サブシステムは外気温と室温の差を取り、その差に係数を乗算します。

係数の値が高いほど熱流量が大きいことを表し、これは家屋の断熱性が良くない場合に発生します。externalHumidityFlow サブシステムは、externalHeatFlow サブシステムとは異なる物理的動作を表しますが、externalHumidityFlow サブシステムでは、ブロックと接続に同じ配置を使用します。externalHumidityFlow サブシステムは、屋外湿度と室内湿度の差を取り、その差に係数を乗算します。

モデルのシミュレーション

モデルを実行すると、2 つの Floating Scope ブロックが表示されます。temperatureScope というラベルの付いた Scope ブロックには、外気温 (ET) と室温 (temperature) が表示されます。

humidityScope というラベルの付いた Scope ブロックでは、屋外湿度 (EH) と室内湿度 (humidity) がプロットされます。

シミュレーションは無限に実行されるように設定されています。シミュレーションを停止するには、[停止] ボタンを押して手動で停止するか、シミュレーションの実行開始前に停止時間を調整します。

モデルの調査と変更

別の外気温信号を使用するか、信号の振幅を変更することにより、外気温を調整できます。Sine Wave ブロック externalTemp および externalHumid の振幅を調整して、モデルがどのように反応するかを観測してみてください。

断熱性が良くない家屋もあれば、より効果的な気候制御サブシステムのある家屋もあります。これらの物理的な差が、サブシステムの出力に影響します。Constant ブロックの値を変更して、Heater サブシステムまたは Cooler サブシステムの出力を調整してみてください。

参考

関連するトピック