見出し画像

はじめての機能安全(その8)


8. 機能安全技術と設計原則

この章では、機能安全設計を進める上で有用な情報を提供します。安全性を高める技術、設計原則、安全関連系設計のため手法、障害対策手法、安全制御システム、機能安全で使用される検証と確認方法について説明します。

8.1 安全性を高める技術

機能安全に対応した製品やシステムの設計・開発プロセスにおいて、安全性を高める代表的な技術を紹介します。

  • 冗長化技術

冗長化技術は、同一機能を持つ複数の部品を設け、一部の部品が故障した場合でも、システム全体の機能を確保する技術です。代表的な冗長化技術には、冗長化構成や冗長化制御などがあります。常時冗長化1系、2系を稼働させ、どちらかが故障した場合もサービスを継続するのか、1系が故障した場合に短時間にバックアップの2系に切り替えるのかなどがあります。

  • セルフテスト技術

セルフテスト技術は、システム内部で自己診断を行う技術です。システムの故障率に応じてシステムの起動時またはシステム稼働時に自己診断を行います。システムの異常を検出することで、故障の早期発見や予防につながります。自己診断のための仕組みについても定期的にテストする必要があります。

  • フェイルセーフ技術

フェイルセーフ技術は、システムが故障した場合に、安全な状態に移行する技術です。自動車のフェイルセーフ機能の例としては、トレーラのエア圧力式ブレーキの圧力が低下した場合に自動的にブレーキをかける仕組みが挙げられます。

  • 信頼性工学技術

信頼性工学技術は、システムの信頼性を高める技術です。信頼性工学技術は、MTBF (Mean Time Between Failure) (注1)などの指標を用いてシステムの故障率を算出し、故障率を低減するために、部品選定や保守計画などの対策を講じます。

注1: MTBF は平均故障間隔の略です。 これは、システムまたはデバイスの信頼性の指標であり、起動 (または修理後の再起動) から次の障害までの平均動作時間を表します。 MTBF 値が大きいほど、システムの信頼性が高いことを示します。

  • 人間工学

人間工学は、人間の認知特性を考慮した設計を行うことで、人的ミスによる事故を減らすための技術です。例えば、操作パネルの配置や文字サイズ、色の選択などが人間工学による設計となります。

8.2 設計原則の概要

機能安全規格に基づいて製品を設計する際に留意すべき重要な概念を説明します。

  • 安全計画に基づく設計の実施:

設計プロセスは、製品用に作成された安全ライフサイクル計画または機能安全計画に基づいている必要があります。 主要機能系と安全関連系の設計を同期させ、設計変更や安全関連系の設計不備を防ぐことが重要です。

  • 明確な安全目標の確立:

製品またはシステムの安全目標を確立し、それらの目標に基づいて安全要件を明確に定義することが重要です。 たとえば、障害に関連する機能を停止するか、冗長化テクノロジを使用して機能を継続するか、機能を部分的に継続できるようにするか (縮退モード) が安全かどうかを判断することが重要です。

  • 安全性の確保:

安全性を確保するために、適切な安全性評価と設計検証を行う必要があります。 ハザードによるリスク軽減戦略の仕様、実装、テスト、検証、および安全関連系が SIL 要件を満たしているかどうかも含まれます。 また、主機能系と安全関連系の分離は、従属故障を回避するために不可欠です。

  • 文書化:

要件定義、分析報告書、設計仕様書、検証またはテスト計画 (仕様)、検証またはテスト報告書などの文書を作成し、作成者以外の者がレビューし、責任者の承認を得る必要があります。 レビューアの独立性は、多くの場合、機能安全規格で規定されています。

  • トレーサビリティの確保:

システムまたは製品の開発プロセス全体を通じて、トレーサビリティを維持する必要があります。 要件と設計をトレースすることにより、ハザードから安全要件を導き出し、それらを設計仕様に変換し、実装し、検証およびテストし、結果が存在することを確認できます。 トレーサビリティ情報は、製品が必要な安全要件を満たしていることを証明するのに役立つため、検証プロセスでも重要な役割を果たします。

8.3 安全関連系実現のための手法

安全関連系を設計する上で重要な考え方を説明します。

  • 冗長化(Redundancy):

単一障害点(Single Point of Failure)が発生しても、システム全体が停止しないようにするため、複数の冗長化されたコンポーネントや回路を使用します。冗長化構成としては、2重化や3重化などがあります。また、常時多数決を取ったり、故障したチャネルのバックアップを行ったりする冗長化制御も検討する必要があります。
例えば、センサーを2重化したり、異なる種類のブレーキ(油圧と電気ブレーキなど)を併用したり、多重CPUのロックステップ実行を行ったり、同一機能の回路を異なる構成の回路で実装したりすることがあります。また、通信路の多重化や通信路上のノードが故障した場合の迂回通信も冗長化の一例です。

  • エラー検出とエラー処理(Error Detection and Error Handling):

システムの異常状態を監視し、異常が発生した場合はエラーを報告し(Error Reporting)、制御システムが安全な状態に移行できるようにエラー回復(Error Recovery)する必要があります。パリティチェックやCRC(循環冗長検査)やECC(誤り訂正符号)を用いたエラー検出や訂正などがあります。

  • 安全関連系機能の可視化(Safety Function Visualization):

安全関連系の機能が常にオンであることを確認するため、ステータス表示や警告表示を実装する必要があります。これにより、システムが正しく動作していることを確認することができます。

  • 安全関連系機能のテスト性(Safety Function Testability):

安全関連系の機能が正しく動作していることを確認するため、検査や試験のためのポートやインタフェースを提供する必要があります。また、セキュアなインタフェースを提供するため、鍵を設けて限られたシステムまたは人物が検査や試験を行えるようにします。これにより、システムのテストや検査を容易に行うことができます。

8.4 障害対策手法

システムの障害対策方法をさらに詳しく説明します。

  • フェイルセーフ(fail-safe):

システム障害時に安全状態に移行するように設計されたシステムの性質を指します。既に説明していますが、フェイルセーフ機能を持った自動車のブレーキシステムがフェイルセーフである場合、制動システムに不具合が発生した場合でも、自動車が安全に停止するようになっています。

  • フェイルソフト(fail-soft):

フェイルセーフと同様に、システム障害が発生しても、安全状態に移行するように設計されたシステムの性質を指します。ただし、フェイルソフトでは、システム障害後に、障害がある部分を切り離して動作を継続することができます。たとえば、航空機のエンジンがフェイルソフトである場合、エンジンの不具合が発生しても、残りのエンジンを使って航空機は安全に着陸することができます。

  • フェイルオペレーション(fail-operational):

システムの障害が発生した場合でも、機能を継続するように設計されたシステムの性質を指します。たとえば、自動運転車がフェイルオペレーションである場合、自動運転システムの不具合が発生しても、車両は適切に運転を継続し、安全に路肩に停車するよう設計されています。

  • フェイルサイレント(fail-silent):

システムの障害が発生した場合でも、その障害が検出されず、正常に動作し続けるように設計されたシステムの性質を指します。たとえば、センサーの故障によって誤った情報が送信される場合がある自動車の自動運転システムがフェイルサイレントである場合、センサーの障害が発生しても、システム自体がその障害を検出せず、正常に動作を続ける可能性があります。

これらの方法は、機能安全においてシステムの障害に対する設計原則や要件に関する概念を表しています。それぞれの方法がどのような場合に適しているか検討することが必要です。

8.5 安全制御システムの構成要素

安全制御システムは、機械や装置、プロセスなどを安全に制御するためのシステムです。このシステムは、主に以下の3つの要素で構成されています。

  • センサー:

センサーは、物理量や状態などの入力信号を収集し、電気信号に変換する役割を持ちます。例えば、温度、圧力、速度、位置、角度、振動などを測定するセンサーがあります。センサーからの信号は、コントローラに送信され、検出された情報をもとにシステムの制御が行われます。機能安全の異常検知のために使用するセンサーは特に大事です。製品やシステムに付与されるSILに応じてセンサーの冗長化または複数のセンサーを用います。

  • コントローラ:

コントローラは、センサーからの信号を受け取り、プログラムされたロジックに従って制御信号を生成します。これにより、アクチュエータを制御し、システムの動作を調整します。また、コントローラは、システム内で発生したエラーや異常を検知し、安全な状態に戻すための手順を実行することもできます。

  • アクチュエータ:

アクチュエータは、コントローラからの信号に基づいて、電気、液体、気体などのエネルギーを変換して、機械や装置を制御します。例えば、モーターやバルブ、ピストン、ソレノイドなどがあります。機能安全では、これらに異常が発生ときに安全側に制御される必要があります。

  • ヒューマンインタフェース(HMI):

安全制御システムにHMIが存在する場合、オペレーターがシステムの状態を把握し、適切な操作を行うために重要な役割を果たします。

  • 通信インタフェース:

外部システムとの間に通信インタフェースが存在する場合、通信途絶時の対応を行う仕組みを持たせたり、通信誤り検知が可能なプロトコルを用いてデータの送受信を行います。また、通信チャネルを冗長化することで、システムの信頼性を向上させます。通信の安全性も、機能安全の観点から適切に対応する必要があります。より適切な対策については、システムの要件や環境に応じて決定されます。

これらの要素は、機能安全の観点から設計され、開発される必要があります。特に、安全性の高いセンサーやアクチュエータ、信頼性の高いコントローラの使用は、機能安全にとって非常に重要です。また、システム全体として、適切な安全性能を達成するために、それぞれの要素が互いに適切に組み合わされている必要があります。 

8.6  機能安全の検証と確認

機能安全の検証と確認は、システムや製品が意図した安全性を持っているかどうかを評価するために行われるプロセスです。検証は、安全性要件が満たされていることを確認することを目的とし、確認は、安全性レベルが満たされていることを証明することを目的とします。

検証の手法には、テスト、解析、シミュレーションなどがあります。テストは、システムや製品を実際に動作させて要件が満たされているかどうかを確認します。解析は、数学的に分析して要件が満たされているかどうかを確認します。シミュレーションは、仮想的に再現して要件が満たされているかどうかを確認します。

確認の手法には、審査、検査、証明などがあります。審査は、文書や仕様書を評価して要件が満たされているかどうかを確認します。検査は、部品や仕様書などを目視や測定などで評価して要件が満たされているかどうかを確認します。証明は、専門家が仕様や要件を評価し要件が満たされているかどうかを証明するものです。なお、審査、検査、証明の結果については、合格、不合格、条件付き合格なのか、アクションアイテムがある場合はいつまでに何を実施するのか、さらに再確認の必要性についても記録しておく必要があります。

検証と確認は、「計画・分析」「設計・開発」「統合・試験」の各段階で行われます。これは、システムや製品が実際の運用環境で正しく動作し、安全性が維持されることを確認するためです。

コラム:ChatGPTとの対話8

機能安全で作成した成果物について行うValidationの完全性について質問してみました。作者も実施した経験のあることが列挙されていました。

いいなと思ったら応援しよう!