このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
チャートにおける分離と回復のための設計
エレベーターのアクチュエータのモード ロジック
この例では、モデル sf_aircraft
が Mode Logic
チャートを使用して、航空機の昇降舵の制御システムのシステム故障を検出し、故障モードから回復する仕組みを示します。このモデルの詳細については、航空機の昇降舵の制御システムの故障の検出を参照してください。モデルを開くには次のように入力します。
openExample("stateflow/FaultDetectionControlLogicInAnAircraftControlSystemExample")
システムには、それぞれ外部アクチュエータと内部アクチュエータをもつ 2 つのエレベーターがあります。Actuators
のステートは、4 つのアクチュエータのそれぞれに対応するサブステートをもちます。アクチュエータには 5 つのモードがあり、それらは Passive
、Active
、Standby
、Off
および Isolated
です。既定では、外部アクチュエータがオンになっており、内部アクチュエータは待機状態にあります。外部アクチュエータで故障が検出された場合、システムは外部アクチュエータをオフにし、内部アクチュエータをアクティブにすることで安定性を維持するように対応します。
故障および分離のステート
各アクチュエータには、Off
ステートと Isolated
ステートが含まれています。いずれかの真理値表の故障検出ロジックにより故障が検出された場合、イベント go_off
または go_isolated
が故障したアクチュエータにブロードキャストされます。
go_off
イベントは、条件が解決されるまで Off
ステートに遷移するよう故障したアクチュエータに指示します。イベント go_isolated
によって、故障したアクチュエータは Isolated
に遷移します。Isolated
ステートへの遷移は、他のすべての動作モードを含むスーパーステート L1
から行われます。このステートは出力遷移をもないため、いったんアクチュエータが Isolated
ステートに入るとそのままになります。アクチュエータの故障が 5 回以上発生する断続的故障の場合も、Isolated
への遷移を引き起こします。変数 fails
は、遷移が Off
から発生するたびにインクリメントすることにより、アクチュエータの故障回数のログを作成します。
回復のための遷移
各アクチュエータのサブステートにおける遷移では、エレベーターシステムの回復要件が考慮されます。これらの要件は、次のようなエレベーターの対称性と安全性のルールから派生されます。
ある時点では、1 基のエレベーターに対し 1 つのアクチュエータのみアクティブでなければならない。
外部アクチュエータは内部アクチュエータより優先される。
アクチュエータのアクティビティは可能な限り対称でなければならない。
アクチュエータの切り替えは最小限に抑えなければならない。
たとえば、システムの要件の 1 つに、一方の外部アクチュエータが故障した場合、他方の外部アクチュエータは待機状態に移行し、内部アクチュエータが引き継がなければならないというものがあります。したがって、各 Active
ステートから Standby
への遷移と、その逆が存在することになります。
左内側のアクチュエータ (LI
) の場合、L1
スーパーステート内の Active
への遷移は [!LO_act()|RI_act()]
を基に条件付きで行われます。これにより、外部アクチュエータ (LO
) が故障するか、右内側のアクチュエータ (RI
) がオンになった場合、左内側のアクチュエータがオンになります。
LO
が故障して Active
から移行した場合のもう 1 つの結果は、右外側のアクチュエータ (RO
) での遷移の発生です。RO
ステートは、L1
スーパーステート内で Active
から Standby
に遷移します。これによって、外部アクチュエータと内部アクチュエータが対称的に機能するという要件が満たされます。