フェイルセーフ、リンプホーム、そして冗長性
「フェイルセーフ」(fail safe)と「リンプホーム」(limp home)は、装置あるいはシステムの故障対応に関する言葉です。「フェイルセーフ」は、装置あるいはシステムが故障した場合に、安全サイドに作動を移行させることを表します。
‘安全’は結果として得られるものですので、なるべく機能を維持することによって安全が得られる場合と、完全に機能停止することによって安全が得られる場合があります。さらに充分な安全は、現在の状態が安全であるのみだけでなく、危険な状態に移行するリスクも無いということも含みます。
故障の可能性を受け入れ、多重化などにより機能維持を行うことをフォールトトレランス(fault tolerance)と呼び、機能停止という手段により安全を図る場合のフェイルセーフと分ける場合があります。
さまざまな故障に対して、機能の多重化などにより機能維持能力を高めたシステムを、冗長性(redundancy)の高いシステムと呼びます。
一般の会話では、「冗長」という言葉は「冗漫」などとともに、「無駄が多い」というネガティブな意味で使われますが、制御システムでは「最低機能以外のバックアップ機能の追加により機能維持性を高めている」というポジティブな意味に使います。ただ‘過度の冗長性’や役に立たない、あるいは危険な‘不適切な冗長性’というように望ましからざる冗長設計もあります。
多重化の方法はいろいろある
多重化の例として二重化を考えてみましょう。
一つ故障しても、もう一つが代わりに機能するというものですが、システムコストを考え、完全な二重化に対して、別の選択肢として部分的な二重化もあります。
例えば、システムの構成として、センサー、コントロールユニットおよびアクチュエータがあった場合、センサーのみを二重化するという場合があります。さらにセンサーの二重化においても、センサーを二つ持つという場合と、センサーは一つで、その構成のある部分、例えばセンサーエレメントまでの配線を二重化するという場合があります。
最適な冗長性を目指すには、FMEAの考えと同様に、故障の頻度(弱さ、故障し易さ)と影響度を考慮して、どの部分のロバスト性(頑健性)を上げるか、すなわち冗長性を上げるかを考えます。
多重化は、ハードウェアでの対策ですが、ソフトウェアすなわち制御での故障対応も行われます。
例えば、センサーが故障した場合、そのセンサーがフィードバック制御を行うために使用しているのであれば、オープンループ制御に切り替えます。
あるいは他のセンサーで代用するという方法があります。
例えば、回転センサーが故障した時に代用となるのは、他のセンサーで、検出しているものが回転と同期して変化するものです。この場合には、本来の検出機能に加え、回転検出にもバックアップとして活用できます。
リンプホーム(limp home)機能の意味とその必要性
多重化や、いろいろな制御で完全に機能維持ができれば良いですが、次の機能維持レベルとしてめざすのは、最低限の機能維持です。
そのような機能を「リンプホーム機能」と呼びます。
例えば、車両の場合には維持する機能は走行ですので、最低限の機能維持のレベルとして、例えば‘修理工場まで移動できる’というレベルがあり、それを可能にするのがリンプホーム機能です。
’limp home’の英語の意味は、‘足をひきずって、よたよた家までもどる’、すなわち‘足を痛めても、最低限、家まではなんとかたどり着く’というということを表しています。
二重化を行わなければならない部分は、全体機能への影響が大きいところです。
したがって、その部分が故障してバックアップ機構や制御により完全な機能維持をしている状態というのは二重化をしていないのと同様の状態ですので、重大危険となる可能性のある状態です。
そのような場合には、一般的には警告表示などを行いますが、次の故障発生時のリスクが大きい場合には、完全機能維持ができる能力があっても、リスクを回避するために意図的にリンプホームモードに切り替えるという設定もあります。
システムの冗長性と複雑化の問題
システムが故障を引き起こす外乱負荷としては、例えば振動、熱、電磁ノイズなどがありますが、たとえ多重化がされていても同じ負荷で同様に故障や誤作動をするとしたらシステム冗長性があるとは言えません。
例えばセンサーを二重化する場合は、振動に強い非接触タイプと電磁ノイズに強い接触タイプを組み合わせるなど、同じ負荷で同時に故障や誤作動をしないように多様性をもたせた冗長設計にしなければなりません。
ただし、ソフトウェア、ハードウェアを含め、冗長性を上げていくとシステムは非常に複雑となります。
この場合には、故障の検知・診断を行う技術もより複雑となってしまいます。
機能ダウンを防ぐために複雑化して、その複雑化のために別の故障を生むというのは、本末転倒です。
いかにシンプルにして機能維持能力の高いシステムを設定するかという考慮をしなければなりません。
高い冗長性設計により機能維持を図ることができますが、一方、安全性確保はそれを上回る最重要事項です。
冗長制御によって、大きい安全上のリスクを伴う場合は、危険な状態に陥る前に’機能完全停止’へと制御しなければなりません。
ただし、停止自体にも危険が伴うケースもあり、この場合には制御継続上の危険度との比較を行う必要があります。
(日本アイアール株式会社 特許調査部 H・N)