機能安全編

印刷用表示 | テキストサイズ 小 | 中 | 大 |


clubZ_info_renewal.jpg

| HOME | 機能安全 | 第3回 | P3 |

更新日 2016-01-20 | 作成日 2007-12-03


☑機能安全 ~上流で設計すべきもうひとつの品質

第3回:設計指標が示す構想設計の重要性

株式会社制御システム研究所 森本 賢一

2010.09.30
※記事執筆時は、三菱重工業株式会社 原動機事業本部に在籍

(多重化した場合の全体PFD[不動作確率]の算出)
システムがシングル構成の場合は、前述のような計算を経てPFDを算出しますが、では、多重化した場合はどのようになるのでしょうか。

前述のシングル構成のシステムが、2つ並列にならび、どちらかが故障しても、他方がちゃんと動くことで、危険な状態にならないようにしているものとします。(故障した側が他方に影響なく修理できるものとします。)

safe_100930_5.JPG

IEC-61508 Part6AnnexB 「B.3.2.2章」に次のような考え方が記載されています。ここには機能安全を考える上で、ハードウェアにおいても、またソフトウェアにおいても、非常に重要で特徴的な考え方の1つ、Common Cause Failure(共通原因による故障)が登場します。

safe_100930_6.JPG

たとえば、これがCPUの基板だったとしましょう。2つを並列にしていても、次のような要因では、「両方がイッパツで同時に故障する」ことがわかります。

  • 例1) 両方のCPUに1台の電源装置から電源を供給していた場合の、電源装置故障
  • 例2) 両方のCPUが同じチップを使っていた場合の、CPUチップの設計ミス
  • 例3) 両方のCPUが同じソフトウェアで動作している場合の、プログラムのバグ
  • 例4) 両方のCPU回路の設計者が同じ人物だった場合の、回路設計ミス

このように程度の問題はありますが、「同じ理由で同時に故障する」という状況は、様々な要因が想定されます。それは上記の例1のように、具体的に見える部位かもしれませんが、例4のように、同じ人物がしでかした「勘違い」という見えない要因かもしれません。いずれにせよ、この仮想的なCommon Cause Failureというものを、機能安全では重要視して取り扱います。

さて、この仮想的な「共通故障」の発生率をλ CCF としましょう。ではλ CCF の値はどのように決めればいいでしょうか。IEC-61508では、この値は、もととなるサブシステムの故障率λ D を用いて、次のように考えます。

safe_100930_7.JPG

危険側故障λ D は、実際にはλ DU とλ DD に分かれますから、IEC-61508では、λ DU 側を「β」とし、
λ DD 側を「β D 」と分けて書いています。ここでは面倒なので、両方ともβとして上記のブロック図のように考えてください。βは当然、0.1とか0.01などの、1より小さい係数です。

早い話、ある係数「β」の分だけ、元の故障率からさっ引き、仮想的な共通部位の故障率として「蹴り出し」て考えよう、ということです。

これを元にして、次のような計算式を提示しています。

safe_100930_8.JPG


もう式を見ているだけでクラクラしてくる方も多いと思います。式の意味としては、後半が、仮想的な共通要因部位のPDFの値です。この部分は前述のシングル構成のものと同じです。前半LinkIconはもう少し複雑です

全体を見ると、興味深い形になっていますね。前半はλが二乗されていますから、たとえば、片方のシステムの故障確率が0.0001(10 -4 )ならば、前半部分は0.00000001(10 -8 )というとても小さな値になります。しかし、後半部分はλにβを掛けただけですし、βの値は、最小でも0.5%すなわちオーダ的には、0.01(10 -2 )と決められていますから、二重化しても一つあたりの故障確率を1/100する程度の効果しかない、ということになります。

SILのレベルを左右するのは、後半部分のオーダ(10の何乗なのか)であるといえます。このβをいかに小さくできるか(小さく出来ても所詮1/100のオーダですが、それでも、1よりはまし)というところが、とても重要になることがわかると思います。