Main Content

チャートにおける分離と回復のための設計

エレベーターのアクチュエータのモード ロジック

この例では、モデル sf_aircraftMode Logic チャートを使用して、航空機用エレベーターの制御システムのシステム故障を検出し、故障モードから回復する仕組みを示します。このモデルの詳細については、航空機用エレベーターの制御システムの故障の検出を参照してください。モデルを開くには次のように入力します。

openExample("stateflow/FaultDetectionControlLogicInAnAircraftControlSystemExample")

システムには、それぞれ外部アクチュエータと内部アクチュエータをもつ 2 つのエレベーターがあります。Actuators のステートは、4 つのアクチュエータのそれぞれに対応するサブステートをもちます。アクチュエータには 5 つのモードがあり、それらは PassiveActiveStandbyOff および 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 に遷移します。これによって、外部アクチュエータと内部アクチュエータが対称的に機能するという要件が満たされます。