Stateflow

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

航空機用エレベーターの制御システムの故障検出制御ロジック

この例では、冗長アクチュエータをもつ 1 組の航空機用エレベーターの故障検出、分離、回復 (FDIR) アプリケーションを設計する方法を示します。このモデルで使用する故障検出制御ロジックは、「FlightGear インターフェイスをもつ NASA HL-20」というタイトルの Aerospace Blockset™ の例の Avionics サブシステムで使用される制御ロジックと同じです。

図 1:航空機用エレベーターの制御システムの最上位レベル

エレベーターの制御システムの説明

一般的な航空機では、2 機のエレベーターが水平尾翼に備え付けられています (機体の両側に 1 機ずつ)。航空機の安全性を高めるために、装置には冗長な部品が数多くあります。

図 2:エレベーター装置のコンポーネントがそれぞれ接続される様子を示す略図

図 2 に示されているように、次のようなコンポーネントがあります。

  • エレベーター 1 機につき 2 つの独立油圧アクチュエータ (合計 4 つ)

  • アクチュエータを駆動するための 3 つの個別の油圧回路

  • 2 つのプライマリ フライト コントロール ユニット (PFCU)

  • 1 つのアクチュエータごとに 2 つの制御モジュール :フル レンジの制御則と制限付きレンジまたは低減レンジの制御則

エレベーターの制御システムの故障検出制御ロジック

図 3:故障検出のアクチュエータのモード ロジック

外側のアクチュエータはそれぞれに専用の油圧回路があり、内側のアクチュエータには共有の油圧回路があります。各アクチュエータは、パッシブ、スタンバイ、アクティブ、オフ、分離の 5 つのモードのいずれかになります。既定の設定では、外側のアクチュエータはアクティブ モードで、内側のアクチュエータはスタンバイ モードです。外側のアクチュエータやこれらのアクチュエータに接続されている油圧回路で故障が検出されると、故障検出装置によって外側のアクチュエータがオフに、内側のアクチュエータがオンにされ、安定性が維持されます。

故障の定義

航空機が申し分のない高度で飛行していれば、アクチュエータの位置には一定の値が維持されます。アクチュエータの位置がゼロ ポイントから 10cm 上下する場合は、故障検出装置によってそのアクチュエータの故障が記録されます。また、故障検出装置は、アクチュエータの位置の変化が非常に速い場合も故障と記録します (0.01 秒で少なくとも 20 cm の位置変化がある場合など)。

同様に、圧力が範囲を外れていたり、急速に変化したりする場合も、故障検出装置によって油圧回路のいずれかが故障と記録されます。この例では、油圧回路の圧力が 500 kPA と 2 MPa の間であること、および圧力の変化が 0.01 秒内に 100 kPa を超えないことが、故障検出装置によって確認されます。

故障検出装置への故障の投入

図 4:装置への故障の投入に使用される GUI

油圧回路とアクチュエータの両方の故障を故障検出装置に投入するには、GUIDE で作成した個別の GUII (図 4) を使用します。GUI のボックスをオンまたはオフにして [更新] ボタンを押すと、カスタムの MATLAB コードが GUI と Simulink モデル間の媒介として実行されます。たとえば、[H1] ボックスをオンにし、[更新] ボタンを押して故障を油圧回路 1 に投入すると、次のカスタムな MATLAB コードが評価されます。

% Define H1_fail Constant block location and get current value

blockname=[mname '/Signal conditioning '...

'and failures /Hydraulic Pressures/Measured ',char(10),...

'Hydraulic system 1 ',...

'pressures/Hydraulic pressure/H1_fail'];

val=get(handles.H1,'Value');

% Change value of H1_fail Constant block from 0 to 1 or from 1 to 0.

if val

set_param(blockname,'value','1');

else

set_param(blockname,'value','0');

end

これにより、Signal 条件付きサブシステム内のスイッチが事実上オンになり、故障検出装置が油圧回路 1 を故障と記録します。

図 5:Constant ブロックの H1_fail の値が 0 ではない場合に故障を油圧回路 #1 に投入するスイッチ

故障への対応

油圧回路やアクチュエータで故障が発生すると、Stateflow は真理値表関数、イベント ブロードキャストおよび制御ロジックを使用して応答します。例として、故障検出装置が油圧回路 1 の故障を記録しても、それ以外の故障が発生していなければ、L_switch 真理値表関数によって Decision D1 が true と評価され、左外側のアクチュエータをオフにする Action 2 が実行されます。このイベントは、左外側のアクチュエータをオフにする LO ステートにブロードキャストされます。この後、左内側のアクチュエータがアクティブになるように、イベントが LO ステートから LI ステートにブロードキャストされます。次に、左内側のアクチュエータもアクティブになると、右内側のアクチュエータがアクティブになります。このようになると、イベントは RI ステートから RO ステートに送られて、右外側のアクチュエータがスタンバイ状態になります。つまり、故障検出装置によって油圧回路 1 での故障が検出されると、左外側のアクチュエータはオフに、右外側のアクチュエータはスタンバイ状態に、内側のアクチュエータはアクティブになります。

故障検出装置が故障を記録したときのアクチュエータの分離

故障検出装置によっていずれかのアクチュエータに故障が発生したことが記録されると、そのアクチュエータをそれ以降、アクティブにすることはできません。これを表すために、ステート チャート内には出力されない遷移を含んでいる分離ステートが追加されます。したがって、いったんアクチュエータが分離ステートになると、そのアクチュエータは分離ステートのままになります。

故障からの回復

故障した装置がオンラインに戻った場合に備えて、リカバリ機能も故障検出ロジック、故障分離ロジック、およびリカバリ制御ロジックに含まれています。たとえば、故障検出装置によってこれ以上油圧回路 1 の故障が検出されず、条件 !u.low_press[0] が true であれば、LO ステートは Off ステートからスタンバイ状態に遷移できます。このように、故障検出装置によって、左内側のアクチュエータなどの他の装置で故障が発生していると記録されると、左外側のアクチュエータがアクティブになります。

参照

Pieter J. Mosterman and Jason Ghidella, "Model Reuse for the Training of Fault Scenarios in Aerospace," in Proceedings of the AIAA Modeling and Simulation Technologies Conference, CD-ROM, paper 2004-4931, August 16 - 19, Rhode Island Convention Center, Providence, RI, 2004.

Jason R. Ghidella and Pieter J. Mosterman, "Applying Model-Based Design to a Fault Detection, Isolation, and Recovery System," in Military Embedded Systems, Summer, 2006.