Atomic サブチャートを使用して冗長なセンサーの組み合わせをモデル化
このモデルは、冗長なセンサーの組み合わせをモデル化する方法を示します。Atomic サブチャートを使用すると、大きな Stateflow® チャートを、ライブラリ ファイルにある他のチャートと比較できます。
メイン チャート
次のモデルでは、チャート RedundantSensors に、2 つのリンクされた Atomic サブチャート (Sensor1
とSensor2
) とステート (Alarm
) があります。
シミュレーションの開始時には、サブチャートSensor1
はアクティブです。この Atomic サブチャートは入力u1
を読み取ります。入力値が 75 と -75 の間である場合、Sensor1
はこの値をy
の出力として渡します。それ以外の場合、センサーは失敗し、サブチャートSensor2
がアクティブになります。
同様に、Sensor2
は入力u2
を読み取り、値が 100 と -100 の間であることを確認します。Sensor2
はこの値をy
の出力値として渡します。それ以外の場合、センサーは失敗し、チャートはAlarm
ステートに遷移します。
ライブラリ チャート
Sensor1
とSensor2
の両方のロジックがライブラリ モデルで定義されます。このモデルでは、チャート SingleSensor は入力u
を受け入れ、フィルター処理されたセンサー出力y
を生成します。
このチャートはセンサー入力u
の範囲外エラーを検出します。初期状態では、センサーはステートOK
にあります。u
が範囲外になると、チャートはOK
からステートFailOnce
に遷移します。u
が範囲外にある時間が 1 秒を超えると、チャートはステートFail
に遷移します。この場合、センサーは定数値 0 を出力します。このパターンにより、センサーは読み取り時に過渡スパイクを無視できます。
入力、出力、およびパラメーターのマッピング
チャート RedundantSensors には 2 つの入力 (u1
とu2
) がありますが、Atomic サブチャートを定義するライブラリ チャートの入力は 1 つ (u
)のみです。原子サブチャートが別のチャート入力にアクセスできるようにするには、各サブチャートを右クリックして[サブチャートのマッピング]を選択します。プロパティ ダイアログ ボックスの[マッピング]タブでは、次のことができます。
サブチャートの各シンボルにメイン チャートのどのシンボルを対応させるかを指定する。
サブチャートで定義されたパラメーターに値を代入する。
たとえば、サブチャートSensor1
の場合、次のようになります。
サブチャートの入力
u
は、メイン チャートの入力u1
にマッピングされます。サブチャートの出力
u
は、メイン チャートの出力y
にマッピングされます。サブチャートのパラメーター
HIGH
およびLOW
には、値として 75 および -75 が代入されます。
サブチャートSensor2
の場合、次のようになります。
サブチャートの入力
u
は、メイン チャートの入力u2
にマッピングされます。サブチャートの出力
u
は、メイン チャートの出力y
にマッピングされます。サブチャートのパラメーター
HIGH
およびLOW
には、値として 100 および -100 が代入されます。
シミュレーション動作
最初は、チャートの両方の入力と両方の出力が 0 になっています。チャートの入力の値を変更するには、Gain ブロックをダブルクリックして、スライダーをドラッグします。
u1
の値が -75 と 75 の間であれば、出力値y
は入力値u1
を追跡します。u1
の値がこの範囲の外に出ると、y
の値は入力値u2
の追跡を始めます。u2
の値が -100 ~ 100 の範囲の外にある場合、y
は値として 0 を返し、Alarm
は値として 1 を返します。