二重化システムのMTBF 共通要因故障の有無の影響

fs-stop-pb

信頼性向上のためにシステムを二重化した場合、どのぐらい信頼性が上がるでしょうか。機能安全IEC-61508では、共通要因故障の存在のため、共通割合(βファクタ:0.01<β<0.1)の程度しか信頼度が上がらないと示しています。一方日本国内でのシステム二重化の評価では、二重化した場合のMTBFの計算式を用いることが多いです。

ここでは、機能安全で示している共通要因故障の存在の有無が、MTBFの値に与える影響を考えてゆきます。

MTBFとは

Mean Time Between Failure:平均故障間隔というもので、保守(故障したところを直したり交換したり)しながら運用するようなシステムにおいて、故障せずに稼働している時間を言います。故障したら稼働を停止して修理します。修理期間は稼働していません。この時間をMTTR(Mean Time To Repaire)平均修理時間といいます。

長期間運転するような社会インフラのシステムでは、MTBFがいくらなのかとても大切です。システムに寿命のある部品などが含まれれば、当然その交換周期で稼働を止める必要があります。どのぐらい止めずに動かし続けていられるのかの平均的な時間です。化学プラントや発電所、交通システムなどが5年や10年で使えなくなるのはとても困ります。数字の上では50年や100年のオーダのMTBFが必要になります。

注意が必要なことは、MTBFの時間は一切故障しないということではありません。あくまでも平均的な数値ですし、MTBFが100年でも明日故障する可能性はあります。信頼性という日本語を使えばひとくくりですが、MTBFは信頼性の概念の中でも、運用期間とか保守インターバルというイメージです。MTBFの数値を目安に、設備の更新計画を作ります。

一方機能安全ではリスクの大きさのレベルと、そのリスクを軽減するためのシステムに求められる信頼性をPFD(危険側不動作確率)という指標で表します。それはある想定したリスクが発現するような「イザ!という時に、ちゃんと動作しないかもしれない確率」というものです。これも日本語では信頼性という言葉でひとくくりですが、必要となるときに働くかどうかの確実さのイメージです。

MTBFとPFDは示す指標の意味が異なりますから、システムが担う役割や議論の観点によって適切な指標を用いることが必要です。『このシステムはMTBFが1万年だから信頼性が高い、だから高いリスクの場所に使える』と主張を聞かされたことがありますが、それはちょっと違いますね。

二重化したシステム

MTBFであれPFDであれ、システムに高い信頼性を求めたい場合はシステムを二重化します。三重化する場合もあるかもしれません。たとえばMTBFで考えれば、故障が発生したり保守期限が来たりしても、多重化していればシステム全体としては稼働を続けることができます。(もちろん、保守対象の部位の交換などで、稼働中の系に影響が与えられないことが条件です)このような場合は、システムとしては稼働を継続していますからMTBF的にはカウント継続となります。

PFDで考えれば、片方のシステムに潜在的な故障があり「今はちゃんと動作しない」という状態でも、もう一方が働くことに期待ができれば、システムとしての動作確率は高くなります。つまり不動作確率PFDは小さくなります。多重化することは、どちらの指標を用いるとしても大切な信頼性向上の対策です。

IEC-61508に学ぶこと

MTBFとPFDは異なった観点の指標だとお話ししました。しかしシステムの信頼性を考える際のベースになる考え方はそろえておく方がよいでしょう。前述のように二重化したシステムに対する考え方は特にそろえておいた方が良いように思えます。機能安全ではどのような考え方をしているでしょうか。

下の図を見てください。これはIEC-61508での多重化に対する考え方を示しています。

fs-pfd-ccf-blockdiagram-2

共通性には大きく分けて2つの分類があります。1つはシステマティック故障、もう1つはランダム故障に関係します。

システマティック故障は、設計間違いやプログラムのバグやマニュアルの間違いなど、構造に内在する間違いで条件が整えば確実に発生する故障です。こんな故障は両方で同時に起こる可能性が高いですよね。このため高いSILレベルが必要な装置では、CPUの型式を変えて多重化したり、ソフトウェアのコンパイラを変えたり、そもそものアルゴリズムを変えたりします。これを多様化といいます。

ランダム故障とは、偶発的な部品劣化のような故障です。宇宙から来た中性子がメモリ素子の原子に衝突して記録している値に変化が出るというのは典型的なランダム故障です。通常ランダム故障は多重化で十分に対策なると考えられます。2つの異なるシステムの同じメモリ番地に同じタイミングで同じ反応を引き起こす中性子が衝突することは考えられないからです。ただしこれは多重化システムが、安定的で十分に異なる環境に置かれている場合を想定しています。

 システムが同じ電源ラインを使用している場合、雷のサージは両方のシステムに同時にやってきて両方のシステムの電源装置を破壊するかもしれません。腐食性のガスが充満している場所では、電子部品の劣化も早まるため、両方の部品が同じ時期に不良になることもあり得ます。携帯電話などの電磁波の影響も、また高温高湿度などのストレスも両者に共通にかかるならば、その結果の劣化や特性の変化は共通に、また同時期に発生する可能性があります。

特に今後、ドローンや介護ロボット、IOTやIndustrial4.0など、機械や現場にコンピュータが設置される時代になれば、エアコンの効いたコンピュータルームではなく様々なストレスがシステムに掛かるでしょう。そのような場合には、環境から来るストレスが引き起こす共通要因故障は無視できなくなると言えます。

このような共通性を係数βで示すことにより明示的に示します。多重化したことによって単純にPFD(失敗確率)が二乗となってしまうと、机上の信頼性計算の結果が現実と乖離してしまいます。このことを防ぐことが目的です。そしてかなりの多様化をしたとしても、この係数βは0.01程度つまり1%程度は共通性が残ってしまうと考えます。機能安全IEC-61508の多重化の考え方において、もっとも特徴的な観点です。また、これからの時代大切になってくる観点ではないでしょうか。

MTBFの考え方

MTBFにおける多重化の算出では、次のようなモデルが有名です。信頼性の教科書には修復系という項目で必ず出てきます。この図をMarkovモデルと呼びます。状態遷移を表し、故障や修理の出入りを変数で表します。それぞれの状態に存在する確率を関数で表すと、必ず連立微分方程式となり解くことができます。

fs-markov-duprex

ここでP2からP1への戻りが×(存在しない)になっているのは、両方が異常になった時点でシステム全体(設備)は稼働を停止ししなくてはなりませんから運用が停止します。つまりMTBFのカウントが止まるためP2は行き止まりであることを示しています。このモデルを微分方程式で書くと下記のようになります。 

(1)   \begin{equation*}\frac { d }{ dt } { P }_{ 0 }(t)&=&-2\lambda { P }_{ 0 }(t)+\mu { P }_{ 1 }(t)\end{equation*}

(2)   \begin{equation*}\frac { d }{ dt } { P }_{ 1 }(t)&=&2\lambda { P }_{ 0 }(t)-\mu { P }_{ 1 }(t)-\lambda { P }_{ 1 }(t)\end{equation*}

(3)   \begin{equation*}\frac { d }{ dt } { P }_{ 2 }(t)=\lambda { P }_{ 1 }(t)\end{equation*}

(4)   \begin{equation*}{ P }_{ 0 }(0)=1,\quad { P }_{ 1 }(0)={ P }_{ 2 }(0)=0\end{equation*}

これを解いて

(5)   \begin{equation*}MTBF=\int _{ 0 }^{ \infty }{ R(t)dt=\int _{ 0 }^{ \infty } \left( { P }_{ 0 }(t)+{ P }_{ 1 }(t) \right) { dt } } \end{equation*}

を計算することで、MTBFが求まります。信頼性の教科書にはいきなり下記の答えが書いてありますが、実際に解いてみると確かに下記の結果になります。計算プロセスは別な機会に掲載したいと思います。

(6)   \begin{equation*}MTBF=\frac { \mu +3\lambda }{ 2{ \lambda }^{ 2 } } \end{equation*}

この式を見る限り、λつまり片方のシステムの故障率が二乗で効いてきています。このために実際のシステムで計算すると、MTBFが10,000年という場合も出てきます。

共通要因故障を考えてみる

MTBFの有名なMarkovモデルに、IEC-61508にある共通要因故障の考え方を当てはめた場合にはどのようになるのか、というのが今回のテーマです。上記の式(6)のように分母にある故障率が二乗で効いてくると、結果はとても大きな数字になります。即ち信頼性がよくなります。しかし共通要因故障を考えた場合、どうもこれほどの好結果になるとは思えません。

そこで共通要因故障を考慮したMarkovを作り、同じ方式で微分方程式を解き結果を見てみたいと思います。

fs-markov-duprex-with-ccf-1

(7)   \begin{equation*}\frac { d }{ dt } { P }_{ 0 }(t)=-\left( 2\lambda +{ \lambda }_{ c } \right) { P }_{ 0 }(t)+\mu { P }_{ 1 }(t)\end{equation*}

(8)   \begin{equation*}\frac { d }{ dt } { P }_{ 1 }(t)=2\lambda { P }_{ 0 }(t)-\mu { P }_{ 1 }(t)-\lambda { P }_{ 1 }(t)\end{equation*}

(9)   \begin{equation*}\frac { d }{ dt } { p }_{ 2 }(t)={ \lambda }_{ c }{ P }_{ 0 }(t)+\lambda { P }_{ 1 }(t)\end{equation*}

(10)   \begin{equation*}{ P }_{ 0 }(0)=1,\quad { P }_{ 1 }(0)={ P }_{ 2 }(0)=0\end{equation*}

これを解いて

(11)   \begin{equation*}MTBF=\int _{ 0 }^{ \infty }{ R(t)dt=\int _{ 0 }^{ \infty } \left( { P }_{ 0 }(t)+{ P }_{ 1 }(t) \right) { dt } } \end{equation*}

を同様に計算することでMTBFが求まります。これを確認するために、前述のモデルを実際に解いたわけです。なおIEC-61508に出てくるλと上記モデルのλとは異なります。元の片システムの故障率をλ0とします。これがIEC-61508にでてくるλに相当します。上記のλは(1-β)λ0、λCはβλ0となります。まずは上記の連立微分方程式を解いてみます。下記の式(12)のようになりました。

(12)   \begin{equation*}MTBF=\frac { \mu +3\lambda }{ 2{ \lambda }^{ 2 }+\mu { \lambda }_{ c }+\lambda { \lambda }_{ c } } \end{equation*}

分母に故障率の二乗の項とμ×λCという項が並びました。回復率μはそれほど小さな値ではありません。0.1~0.01といったところでしょう。μが一定の値だとすればその逆数\frac { 1 }{ \mu  } はMTTRつまり修理にかかる時間を示しますが、8時間とか24時間というのがインフラのシステムの修理時間のオーダだからです。

このようにIEC-61508で示されている共通要因故障を考慮したMarkovモデルから導けば、二重化したシステムのMTBFも、片方のシステムの故障率λの二乗で効いてくるものではなく、せいぜいλよりも0.1~0.01程度改善したものにしかならないことが判ります。

二重化したシステムに対して、IEC-61508のPFD算出と同じ観点に立つ場合、そのシステムのMTBFは共通要因故障を考慮した式(12)を使用するべきでしょう。そのうえで、両システムの共通性について議論する(つまりβをいくつにするのか議論する)必要があります。MTBFの議論でも、共通性の係数βは考慮されるべきだからです。

 

蛇足

PFDで示すと十分な信頼性があるとは示せないような多重化のシステムに対して、式(6)を用いたMTBFで大きな年数を算出し、あたかも十分な信頼性があるかのような説明をすることは問題がありそうです。もちろん冒頭にお話しした通り、MTBFとPFDでは示す信頼性の意味が異なりますから、式(12)を用いても論理の展開には無理がありますが。