Posts Tagged with "ISO 26262"

既に発行済みのブログであっても適宜修正・追加することがあります。
We may make changes and additions to blogs already published.
posted by sakurai on October 22, 2019 #171
  • 箱(k)において、Part5のフローチャートでもあった、IFとSMの切り分けを行います。ただしいずれかの選択ではなく、割合を聞いています。SMを取り除いた場合に、どれだけの割合が直接VSGとなる可能性があるかという問いです。VSG可能性あり(potential)の場合は下に移動します。一方、VSG可能性無し(no potential)の場合は右に移動します。
  • 下の箱(l)では、VSG可能性の割合$F_{FMi,PVSG}$を掛けて、VSG可能性の有る故障率$\lambda_{FMi,PVSG}$とします。 $$ \lambda_{FMi,PVSG}=F_{FMi,PVSG}\lambda_{FMi,nS}\tag{l} $$

  • 右の箱(ae)では、VSG可能性の無い割合$1-F_{FMi,PVSG}$を掛けて、VSG可能性の無い故障率$\lambda_{FMi,MPF,primary}$とします。$\dagger$ $$ \lambda_{FMi,MPF,primary}=(1-F_{FMi,PVSG})\lambda_{FMi,nS}\tag{ae} $$

  • 次の菱形(m)ではSMの有無を判定します。これは有無の選択なので、SMが無い場合(no)は左に移動します。

  • 左の箱(n)ではSMが無い場合の故障率は$\lambda_{FMi,SPF}$と名付けられ、下に移動し、下の箱(o)でSingle Point Fault故障率として分類されます。 $$ \lambda_{FMi,SPF}=\lambda_{FMi,PVSG}\tag{n, o} $$

  • 一方、菱形(m)でSMが有る場合(Yes)には箱(p)に移動します。

図%%.1
図171.1 Part 10故障分類フローチャート

$\dagger$primary MPFもsecondary MPFも加え合わせるので、識別の必要は特にありませんが、SMのレイテントフォールト候補をprimary MPFと呼び、IFのレイテントフォールト候補をsecondary MPFと呼ぶようです。なぜここの箱の故障率がprimaryかと言えば、通常レイテントフォールト候補となる故障率はSMの故障だからだと推測します。


左矢前のブログ 次のブログ右矢

posted by sakurai on October 17, 2019 #170
  • 次の箱(g)はセーフフォルトの判定です。ここは菱形ではなく四角の箱であり、これは単純な選択ではなく、確率的に分類します。この場合だと、どれだけの割合が安全側かを聞いています。安全側(safe)と判断された故障率は左へ移動します。一方、非安全側(not safe)と判定された故障率は、右上の箱(i)に移動します。

  • 左の箱(h)において、安全側の割合($F_{FM,safe}$)を掛け、$\lambda_{FM,S}$と名付けられます。それがそのまま下に移動して、箱(i)でSafe fault故障率として分類されます。この故障率は分析に使用されます。 $$ \lambda_{FMi,S}=F_{FM,safe}\lambda_{FMi,SR}\tag{h, i} $$

  • 右上の箱(j)において、非安全側の割合($1-F_{FM,safe}$)を掛け、$\lambda_{FM,nS}$と名付けられます。 $$ \lambda_{FMi,nS}=(1-F_{FM,safe})\lambda_{FMi,SR}\tag{j} $$

図%%.1
図170.1 Part 10故障分類フローチャート

左矢前のブログ 次のブログ右矢

posted by sakurai on October 16, 2019 #169

Part 10の故障分類フローチャートもPart 5の故障分類フローチャートと同様、故障率データベースや信頼性試験で得られた要素故障率に基づき、故障率を分類していきます。Part 5のフローチャートでは故障率を入力しているものの、数式が無いため定量計算ができませんでしたが、Part 10のフローチャートでは、定量計算を実施します。

  • 左上のボックス(a)から、要素故障率$\lambda$を入力します。全ての部品の全ての故障モードに関する故障率を入力します。
  • 箱(b)において、故障率分配($D_{FMi}$)が掛けられ、故障モードの故障率$\lambda_{FMi}$となります。 $$ \lambda_{FMi}=D_{FMi}\lambda\tag{b} $$

図%%.1
図169.1 Part 10故障分類フローチャート
  • 菱形(c)の判定では、エレメントないし故障モードが安全関連かどうかを判定します。以前にも述べたように、例えばデバッグ回路のように運転中に動作しない場合に限り、非安全関連(No)と分類できます。他の回路は通常、安全関連(Yes)と分類されます。

  • 非安全関連(No)の場合は左下に移動し、箱(d)で$\lambda_{FMi,nSR}$となり、箱(e)で非安全関連フォールトnSR故障率と分類されます。この故障率は分析には使用されません。 $$ \lambda_{FMi,nSR}=\lambda_{FMi}\tag{d, e} $$

  • 一方、菱形(c)で安全関連(Yes)と判定された故障率は、右に移動し、箱(f)で新たに$\lambda_{FMi,SR}$と名付けられます。 $$ \lambda_{FMi,SR}=\lambda_{FMi}\tag{f} $$


左矢前のブログ 次のブログ右矢

posted by sakurai on October 15, 2019 #168

Part 5のフローチャートの次にPart 10 Figure 1を解説します。基本的な流れはPart 5のFigure B.2と同じです。

以下の図にPart 10の故障分類フローチャートの全体図を示します。Part 5の図と違う点は、

  • 個々のボックスに符号(アルファベット)が振ってあり、それによりどのボックスか明確に指示できる
  • 全てのボックスに数式やパラメータが明示されており、どの値をどのように計算するのかが定量的に書かれている

の2点です。

従って、Part 5の故障分類フローチャートは定性的に理解し、Part 10の故障分類フローチャートは定量的に理解することになります。FSマイクロでは、このPart 10の故障分類フローチャートをメインに考えて行きます。

図%%.1
図168.1 Part 10故障分類フローチャート

左矢前のブログ 次のブログ右矢

posted by sakurai on October 14, 2019 #167
  • 前稿で、IFとSMの判定の菱形と説明した判定において、VSGの可能性無し(no)の場合は右側に移動します。さらに、VSGの可能性が有るがSMでカバーされる部分の故障も、下方からここへ合流します。

  • 次の菱形はDPFの可能性が有るかどうかの判定です。ここに来る場合は単独でのVSGの可能性無しのSMの場合ですが、組み合わせてVSGにならない場合はISO 26262の範囲外(No)として右下に移動し、S (Safe Fault)と分類されます。一方、他のフォールト、通常はIFのフォールトとの組み合わせでVSGとなる場合(Yes)は下に移動します。

  • 次の菱形は、レイテントフォールト防止のSMがあるか、あるいはドライバーにより認識されるかどうかの判定であり、どちらかがYesであれば、レイテントフォールトとはなりません。両方共Noの場合、つまりレイテントフォールト防止SMが無く、かつドライバーに認識されなければ左下に移動し、レイテントフォールトMPF,L(LはLatentの意味)と判定されます。一方、どちらかがYesの場合は下に移動します。

  • 次の円形の判断においては、レイテントフォールト防止カバレージの値が問題になります。ここは定量的な質問であり、レイテントフォールトが防止される割合分の故障は下に移動し、MPF,DP(DPとはdetected or percievedの意味)と判定されます。逆に、レイテントフォールトが防止されない割合分の故障は左下に移動し、MPF,L(atent)と判定されます。

図%%.1
図167.1 Part 5故障分類フローチャート

左矢前のブログ 次のブログ右矢

posted by sakurai on October 10, 2019 #166
  • 前稿の菱形の続きです。安全機構(SM)を取り去った場合に安全目標侵害(VSG)を侵害するかどうかを判定する菱形と説明しました。VSGとなる場合(yes)は下に移動します。VSGとならない場合(No)は右横に移動します。言い換えると、ここでは主機能(IF)かSMかを判定しています。故障してVSGとなる可能性のある(yes)部品はIFです。可能性の無い(no)部品はSMです。

  • 下に来た場合(yes, IF)は、先ほど取り去ったSMを戻して、それに着目します。SMがあるかどうかを判定している菱形なので、SMがあれば(yes)下に移動します。SMが無い場合は(no)左下に行き、($\lambda_\text{SPF}$と書かれていますが、定性的に)SPFと判定されます。ここはこれで終了です。

  • その下の円形では、SMによってVSGを抑止しているかどうかを判定します。要はSMが安全目標侵害を防止している割合を聞いています。ここで注意するのはあくまで「抑止」$\dagger$であって「検出」ではないことです。原文に抑止が無いのでわかりにくいのですが、どのくらい抑止されるかのカバレージを聞いています。本来定量的にするべきですが、カバーされない分は下に移動し、その故障をRF(Residual Fault)と判定します。一方、カバーされる分は故障があるが発現していない状態であるので、レイテント故障の候補として、上に移動します。

図%%.1
図166.1 Part 5故障分類フローチャート

判定ボックスに菱形と円形とがありますが、菱形はYes/Noでいずれかを選択するのに比べて、円形は確率的な判断であり、Yesにx%、Noに1-x%となります。

$\dagger$ちなみに「抑止」は「検出」を含む広い概念です。逆に1st SMの機能を「検出」と言ってしまうと「検出ではない抑止」を含まないので誤りとなります。この誤りは、ある記事のように多く見られる誤りです。一般にはSMの機能は検出である場合が多いのですが、例えば冗長回路の場合は検出にはなりません。冗長回路は故障を全く検出しませんが、単一故障によるVSGを抑止します。


左矢前のブログ 次のブログ右矢

posted by sakurai on October 8, 2019 #165

まず、ECUのPCB上の部品を全てリストアップします。FMEAの考え方により、抜け漏れを防止するため、全ての部品を検討する必要があります。

  • ISO 26262の入り口は、他の規格、例えばIEC TR 62380やSN29500等の故障率データベース、ないしは信頼性試験から算出された、部品の要素故障率です。この故障率を$\lambda$とし、左上の入り口から入ります。ただし、Part 5のフローチャートは定量計算ができないので、以下は定性的に考えます。

図%%.1
図165.1 Part 5故障分類フローチャート
  • 最初の菱形の判断は、この部品が安全関連であるかどうかです。Noの場合は「非安全関連」に分類され、分析から除かれます。最初に全ての部品を検討する理由は、抜け漏れの防止となるためですが、一方、無関係な部品はここでふるい落とされます。ちなみに、無関係な部品は実務上はあまり存在せず、例えばデバッグ回路等のように運転中に全く動作しない回路が相当します。他はたいていの場合安全関連です。Yesの場合は右に行き、「安全関連」と分類されます。言葉として紛らわしいのは、安全関連=危険側、非安全関連=安全側ということです。従って、安全関連と分類された部品は危険側を意味します。

  • 次にこの部品に関して全ての故障モードを検討します。以下のフローは全ての故障モードに対して通ります。

  • 次の菱形の判断は、安全機構(SM)を取り去った場合に安全目標侵害(VSG)を侵害するかどうかです。SMが無い場合はもちろん取り去るSMはありません。なぜ仮定の話を考えるかというと、ある部品の故障がVSGにつながるかどうかを考えるのがFMEAですが、一般的にSMが入っているので、ほとんどの部品はVSGとならないと判定されてしまうためです。それでは意味がないので、まずSMを除いて考えるわけです。

左矢前のブログ 次のブログ右矢

posted by sakurai on October 4, 2019 #164

機能安全のハードウェア編の最初の山場が故障分類です。

特に、故障分類フローチャートは大変重要なトピックスです。規格では、Part 5のFigure B.2に簡略化された故障分類フローが掲載されています。さらにPart10のFigure 10では重要なKパラメータである$K_\text{FMC,RF}$と、$K_\text{FMC,MPF}$、加えてそれらの計算式が掲載されています。従って、簡略化されたPart 5 Figure B.2を解説し、概要を述べた後にPart 10のFigure 10を解説します。さらに、本ブログでは、分かりにくいと思われている理由を挙げ、理解するノウハウを解説します。

以下はPart 5の簡略化された故障分類フローチャートです。

図%%.1
図164.1 Part 5故障分類フローチャート

左矢前のブログ 次のブログ右矢

2nd EditionのPMHF方程式

posted by sakurai on July 17, 2019 #130

2nd EditionのPMHF方程式は前稿のように、

図109.3
図109.3 2nd Editionの規格式

となっており、Pattern 2及び4に関して、0.5がどこにいったかが謎でした。

ところが、2018年にヨーロッパで実施された機能安全ワークショップでのインテルの資料(恐らくDr. Riccard Marianiの資料)に

図%%.1
図130.1 Intelによる2nd Editionの規格式

という式が出ており、無くなったことが謎だった0.5が戻っています。どちらかと言えば、こちらのほうが(少しだけ)正しい式です。

結論としては両者とも誤っているのには違いないのですが、謎の部分が無くなったことで、規格式の誤りが明確になりました。誤りの原因は、初期状態において、IFまたはSMのいずれかがアンリペアラブルと固定している点です。実際にこの条件で計算すると、図130.1の式と一致します。

本来は初期状態においてIF、SMの両方ともリペアラブルとしなければなりません。つまり、図109.3の2nd Editionの規格式の誤りは以下の2か所あると思われます。

  • パターン2, 4で0.5が消えている件
  • こちらのほうが重大ですが、$\img[-1.35em]{/images/withinseminar.png}$

左矢前のブログ 次のブログ右矢

posted by sakurai on July 9, 2019 #126

さて、前稿平均PUD計算は簡易的に、冗長システムの確率の1/2として求めましたが、厳密には、

例えば全ての部品を二重化しておき、片方が壊れてももう片方がそれを引き継ぐことができる

という、スタンバイシステムについて平均PUD計算する必要があります。常に両方が稼働する冗長(2重化)と異なり、主系がフォールトしたときに初めて従系が稼働するものです。

IF、SM1からなるサブシステムがあり、IF、SM1の両方ともアンリペアラブルだとします。それぞれの故障率は、$\lambda_\text{IF}$及び$\lambda_\text{SM}$とします。上記のように、IFもSM1も$t=0$から同時に動作している冗長系ではなく、時刻$t$において主系であるIFがダウンし、即座にスタンバイ系であるSM1が引き続いて動作するものとします。

すると、車両寿命$T_\text{lifetime}$における稼働度(Availability)は、IFが$T_\text{lifetime}$までにダウンしないか、あるいは、途中の時刻$t$でダウンしたとしても、そこからSM1が$T_\text{lifetime}$までダウンせずに稼働する確率なので、

$$ A_\text{subsystem}(T_\text{lifetime})=\Pr\{\text{IF not failed at }T_\text{lifetime}\}\\ +\int_0^{T_\text{lifetime}}\Pr\{\text{IF fails in }(t + dt]\cap\text{IF not failed at }t\cap\text{SM not failed in }(T_\text{lifetime}-t]\}\\ =R_\text{IF}(T_\text{lifetime})+\int_0^{T_\text{lifetime}}R_\text{SM}(T_\text{lifetime}-t)F_\text{IF}(t)dt\\ =R_\text{IF}(T_\text{lifetime})+\int_0^{T_\text{lifetime}}e^{-\lambda_\text{SM}(T_\text{lifetime}-t)}\lambda_\text{IF}e^{-\lambda_\text{IF}t}dt\\ =R_\text{IF}(T_\text{lifetime})+\lambda_\text{IF}e^{-\lambda_\text{SM}T_\text{lifetime}}\int_0^{T_\text{lifetime}}e^{-(\lambda_\text{IF}-\lambda_\text{SM})t} dt\\ =R_\text{IF}(T_\text{lifetime})+\lambda_\text{IF}e^{-\lambda_\text{SM}T_\text{lifetime}}\left[\frac{e^{-(\lambda_\text{IF}-\lambda_\text{SM})t}}{-(\lambda_\text{IF}-\lambda_\text{SM})}\right]_0^{T_\text{lifetime}}\\ =R_\text{IF}(T_\text{lifetime})+\lambda_\text{IF}e^{-\lambda_\text{SM}T_\text{lifetime}}\left[\frac{1-e^{-(\lambda_\text{IF}-\lambda_\text{SM})T_\text{lifetime}}}{\lambda_\text{IF}-\lambda_\text{SM}}\right]\\ =R_\text{IF}(T_\text{lifetime})+\frac{\lambda_\text{IF}}{\lambda_\text{IF}-\lambda_\text{SM}}(e^{-\lambda_\text{SM}T_\text{lifetime}}-e^{-\lambda_\text{IF}T_\text{lifetime}})\\ =\img[-1.35em]{/images/withinseminar.png}, \text{ただし、}\lambda_\text{IF}\neq\lambda_\text{SM} \tag{126.1} $$

平均PUDを求めるには不稼働度(Unavailability)の時間平均が知りたいので、$\lambda t\ll 1$の前提で$R(t)=e^{-\lambda t}\approx1-\lambda t+\frac{1}{2}\lambda^2 t^2$と、2次項までMaclaurin展開し、平均PUDを求めると、 $$ \require{cancel} \overline{PUD}=\frac{1}{T_\text{lifetime}}Q_\text{subsystem}(T_\text{lifetime})=\frac{1}{T_\text{lifetime}}\left[1-A_\text{subsystem}(T_\text{lifetime})\right]\\ \approx\frac{1}{\bcancel{T_\text{lifetime}}}\left[\bcancel{1}-(\bcancel{1}-\lambda_\text{IF}\bcancel{T_\text{lifetime}}+\frac{1}{2}{\lambda_\text{IF}}^2 {T_\text{lifetime}}^\bcancel{2})\right]\\ -\frac{1}{\bcancel{T_\text{lifetime}}}\frac{\lambda_\text{IF}}{\lambda_\text{IF}-\lambda_\text{SM}}\left[ (\bcancel{1}-\lambda_\text{SM}\bcancel{T_\text{lifetime}}+\frac{1}{2}{\lambda_\text{SM}}^2 {T_\text{lifetime}}^\bcancel{2})\\ -(\bcancel{1}-\lambda_\text{IF}\bcancel{T_\text{lifetime}}+\frac{1}{2}{\lambda_\text{IF}}^2 {T_\text{lifetime}}^\bcancel{2})\right]\\ =(\lambda_\text{IF}-\frac{1}{2}{\lambda_\text{IF}}^2 T_\text{lifetime})-\frac{\lambda_\text{IF}}{\bcancel{\lambda_\text{IF}-\lambda_\text{SM}}}\left[(\bcancel{\lambda_\text{IF}-\lambda_\text{SM}})-\frac{1}{2}T_\text{lifetime}(\bcancel{\lambda_\text{IF}-\lambda_\text{SM}})(\lambda_\text{IF}+\lambda_\text{SM})\right]\\ =(\bcancel{\lambda_\text{IF}}-\bcancel{\frac{1}{2}{\lambda_\text{IF}}^2 T_\text{lifetime}})-\lambda_\text{IF}\left[\bcancel{1}-\frac{1}{2}T_\text{lifetime}(\bcancel{\lambda_\text{IF}}+\lambda_\text{SM})\right]\\ =\img[-1.35em]{/images/withinseminar.png} \tag{126.2} $$ 以上から、前稿の2重化での簡易計算と完全一致します。


左矢前のブログ 次のブログ右矢


ページ: