空気温度コントローラーのモデル化
この例では、パラレル構造を使用して施設内の空気温度を 120 度に保つ空気コントローラーをモデル化します。
最上位レベルで、Air Controller チャートには 2 つの排他的ステート PowerOff および PowerOn があります。コントローラーが同時にオンでありオフであることは不可能なため、チャートでは排他的 (OR) 構造が使用されます。

このコントローラーでは 2 台のファンが動作します。最初のファンは空気温度が 120 度を超えるとオンになります。2 台目のファンは空気温度が 150 度を超えると追加の冷却機能を提供します。チャートはこれらのファンを、最上位ステート PowerOn のパラレル サブステート FAN1 および FAN2 としてモデル化します。ファンは必要な冷却量に応じてオンまたはオフになる独立コンポーネントとして動作するため、PowerOn はパラレル (AND) 構造を使用して、コントローラーがオンのときに両方のサブステートが確実にアクティブになるようにします。
これらのファンは、2 つのファン動作モード On および Off を反映する、動作のしきい値以外は同一構成のサブステートと遷移をもつステートでモデル化されています。どちらのファンも同時にオンでありオフであることは不可能なため、FAN1 と FAN2 では排他的 (OR) 構造が使用されます。
PowerOn の SpeedValue という 3 番目のパラレル ステートは、各タイム ステップでスイッチがオンであったファンの数を計算する独立したサブシステムを表します。論理式 in(FAN1.On) の値は、FAN1 の On ステートがアクティブな場合は 1 です。そうでない場合、in(FAN1.On) は 0 になります。同様に、in(FAN2.On) の値は FAN2 のスイッチがオンとオフのどちらであるかを表します。これらの式の和は、各タイム ステップにおいてスイッチがオンであったファンの数を示します。
パラレル ステートの実行順序の指定
FAN1、FAN2、および SpeedValue が同時にアクティブであっても、シミュレーション時にはこれらのステートは順次実行されます。ステートの右上隅にある数字は実行順序を示します。この実行順序の根拠は次のとおりです。
FAN1はFAN2よりも低い温度でスイッチが入るため、最初に実行される。これは、FAN2がオンとオフのどちらかであるかに関係なくオンになることが可能です。FAN2はFAN1よりも高い温度でスイッチが入るため、2 番目に実行される。これは、FAN1が既にオンの場合にのみオンになることが可能です。SpeedValueはFAN1とFAN2の最新ステータスを観察できるように、最後に実行される。
既定では、パラレル ステートの実行順序はチャートへの追加順序に基づいて Stateflow により割り当てられます。パラレル ステートの実行順序を変更するには、ステートを右クリックして [実行順序] ドロップダウン リストから値を選択します。
施設のモデル化
この例には、Air Controller という Stateflow チャートと Physical Plant という Simulink® サブシステムが含まれています。

施設の空気温度に基づいて、チャートはファンをオンにし、稼動中のファンの数 airflow をサブシステムに出力します。この値は、次の規則に従って冷却活動係数
を決定します。
airflow= 0 — ファンは稼動していない。
であるため、空気温度は低下しない。airflow= 1 — 1 つのファンが稼動している。空気温度は冷却活動係数
に従って低下する。airflow= 2 — 2 つのファンが稼動している。空気温度は冷却活動係数
に従って低下する。
Physical Plant サブシステムにより、次の式に基づいて施設内の空気温度
が更新されます。


ここで、
は初期温度です。既定値は 70° です。
は周囲温度です。既定値は 160° です。
は施設の熱伝達係数です。既定値は 0.01 です。
は airflowに対応する冷却活動係数です。
新しい温度によって、シミュレーションの次のタイム ステップにおける冷却量が決まります。