Posts Tagged with "Commentary to the Standard 2nd Edition"

既に発行済みのブログであっても適宜修正・追加することがあります。
We may make changes and additions to blogs already published.

規格第2版のPMHF式の疑問 (7)

posted by sakurai on April 11, 2022 #471

「ISO 26262第2版解説書」(日本規格協会)のPMHF式の解読を行います。この記事の続きです。

パターン1

パターン1を規格に従って計算します。

  • Pattern 1: SM1⇒IFの順にフォールトが発生し、SM1のフォールトはSM2によって緩和されるが通知されない、または緩和されない。フォールトの暴露時間は、最悪の場合の暴露時間である車両寿命となる。

規格にはマルコフ図が記載されていないので推測すると、パターン1は、SM1のフォールトが2nd SM(SM2)で検出されないため、SM1のフォールト全体に対するパターン1の割合は$1-K_\text{SM,DPF}$となり、マルコフ図は以下のようになります。時刻パラメータ$t$が最初のSMのフォールトが起きた時刻、$t'$がVSGとなる2つ目のIFのフォールトが起きた時刻とします。

図%%.1
図471.1 2nd editionパターン1マルコフ図

規格によるPMHFの求め方は、
1. 後に起きるIFのフォールトの確率密度を$t$から$T_\text{lifetime}$まで$t'$について積分し$t$で表します。$t'$まではIFはフォールトしないことに注意します。
2, 先に起きるSMのフォールトの確率密度を0から$T_\text{lifetime}$まで$t$について積分します。

まず、IFの$LAT2S$での状態確率は、 $$ \Pr\{\text{IF in }LAT2S\}=\Pr\{\text{IF up at }t'\cap\text{VSG of IF prevented}\}=K_\text{IF,DPF}R_\text{IF}(t') \tag{471.1} $$ $LAT2S$から$DPF1$への微小時間での遷移確率は、IFがDPFする場合であり、 $$ \Pr\{\text{IF down in }(t', t'+dt']\ |\ \text{IF in }LAT2S\}\\ =\Pr\{\text{IF down in }(t', t'+dt']\ |\ \text{IF up at }t'\cap\text{VSG of IF prevented}\}\\ =\Pr\{\text{IF down in }(t', t'+dt']\ |\ \text{IF up at }t'\}=\lambda_\text{IF}dt' \tag{471.2} $$

規格のとおりIFの確率を求めるには、IFは時刻$0$から$t'$まではフォールトせず(解説書の$t$は誤り)、かつ、$t'$から$T_\text{lifetime}$までにフォールトする確率となります。

従って、(471.1)、(471.2)から、IFの後故障の確率を求めると $$ K_\text{IF,DPF}\int_t^{T_\text{lifetime}}R_\text{IF}(t')\lambda_\text{IF}dt'=K_\text{IF,DPF}\int_t^{T_\text{lifetime}}f_\text{IF}(t')dt'\\ =K_\text{IF,DPF}\left[F_\text{IF}(t')\right]^{T_\text{lifetime}}_t=K_\text{IF,DPF}\left[F_\text{IF}(T_\text{lifetime})-F_\text{IF}(t)\right]\\ \approx K_\text{IF,DPF}\lambda_\text{IF}(T_\text{lifetime}-t) \tag{471.3} $$ ところが、解説書パターン1では以下のようになっており、2か所の誤りが存在します。

図%%.2
図471.2 解説書パターン1のIFに関する計算部分

次にSMの$OPRS$での状態確率は、 $$ \Pr\{\text{SM in }OPRS\}=\Pr\{\text{SM is up at }t\}=R_\text{SM}(t) \tag{471.4} $$ $OPRS$から$LAT2S$への微小時間での遷移確率は、SMがフォールトする場合であり、 $$ \Pr\{\text{SM down in }(t, t+dt] | \text{SM is up at }t\}=(1-K_\text{SM,DPF})\lambda_\text{SM}dt \tag{471.5} $$

IFの項とSMの項を$0$から$T_\text{lifetime}$まで積分し時間平均すると、(471.3)~(471.5)を用いて、 $$ \require{cancel} M_\text{PMHF,P1}\approx\frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}(1-K_\text{SM,DPF})R_\text{SM}(t)\lambda_\text{SM}K_\text{IF,DPF}\lambda_\text{IF}(T_\text{lifetime}-t)dt\\\ \approx\frac{1}{\bcancel{T_\text{lifetime}}}(1-K_\text{SM,DPF})K_\text{IF,DPF}\lambda_\text{IF}\lambda_\text{SM}\left[T_\text{lifetime}\bcancel{t}-\frac{1}{2}t^\bcancel{2}\right]_0^{T_\text{lifetime}}\\ =\frac{1}{2}K_\text{IF,DPF}(1-K_\text{SM,DPF})\lambda_\text{IF}\lambda_\text{SM}T_\text{lifetime}\\ =\frac{1}{2}\lambda_\text{SM,DPF,lat}\lambda_\text{IF,DPF}T_\text{lifetime} \tag{471.6} $$

これは図104.2の初版PMHF式(パターン1, 2のみ)の、DPFにおけるパターン1に相当する部分と(IF⇒mと読み替えることにより)正確に一致します。

図%%.3
図471.3 1st edition規格第1式

なお、本稿はRAMS 2024に投稿予定のため一部を秘匿していますが、論文公開後の2024年2月頃に開示予定です。

ほぼ同様な議論ですが、記事#476に再掲します。


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

posted by sakurai on September 11, 2020 #314

「ISO 26262第2版解説書」(日本規格協会)のPMHF式の続きです。再度解説書の式を検討します。

パターン1

図314.1は、第1版にも存在した、パターン1=「安全機構、意図した機能の順でフォールトが発生する場合で安全機構のフォールトが検出されない場合」です。

図%%.1
図314.1 パターン1

この式において、一行目の中カッコの中のIFに関する確率は、 $$ \left(1-\int_0^t f_\text{IF}(t')dt'\right)\int_t^{T_\text{lifetime}}f_\text{IF,DPF}(t')dt'\\ =R_\text{IF}(t)\cdot\int_t^{T_\text{lifetime}}f_\text{IF,DPF}(t')dt' $$ と推測されます。この意味としては、IFについて、$0$から$t$までフォールトが起きておらず、かつ$t$から$T_\text{lifetime}$の間でフォールトが起きた場合の確率だと思われます。

前稿で指摘したように、IFどおしの確率の積をとっていますが、(結果としては一致するものの)本来条件付き確率としなければならない2項目が条件付き確率となっていない点が誤りです。

なお、本稿はRAMS 2024に投稿予定のため一部を秘匿していますが、論文公開後の2024年2月頃に開示予定です。


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

posted by sakurai on September 10, 2020 #313

「ISO 26262第2版解説書」(日本規格協会)のPMHF式の続きです。

パターン3, 4

IFとSMを入れ替えることで、同様にパターン3, 4を導き、パターン1から4までを加えれば、

$$ M_\text{PMHF}\approx\frac{1}{2}\lambda_\text{IF,DPF}\lambda_\text{SM,DPF,lat}T_\text{lifetime}\\ +\frac{1}{2}\lambda_\text{IF,DPF}\lambda_\text{SM,DPF,det}T_\text{service}\\ +\frac{1}{2}\lambda_\text{SM,DPF}\lambda_\text{IF,DPF,lat}T_\text{lifetime}\\ +\frac{1}{2}\lambda_\text{SM,DPF}\lambda_\text{IF,DPF,det}T_\text{service} \tag{313.1} $$ となりそうです。

規格の問題点

ところが、規格は最初のパターン分けから間違っているので、これは誤った式です。 なぜなら、IFがフォールトして、検出・修理される、次にSMがフォールトして、検出・修理されるというパターンやその逆パターンが、この4パターンには含まれていないためです。規格に従えば、一度フォールトしたエレメントは検出・修理を繰り返し、レイテント状態において相手のエレメントがフォールトする場合にのみDPFとして扱います。

規格のパターン分けは、パターン1,2とパターン3,4の組にはっきりと分かれており、

  • パターン1, 2: {SMがフォールトし検出・修理}が1以上の任意回、{IFのフォールト}
  • パターン3, 4: {IFがフォールトし、検出・修理}が1以上の任意回、{SMのフォールト}

という特殊例しか数え上げていないのです。リペアラビリティで表せば、

  • パターン1, 2: SMがリペアラブル、IFがアンリペアラブル⇒IFUモデル
  • パターン3, 4: IFがリペアラブル、SMがアンリペアラブル⇒SMUモデル

という状態を表しています。

図%%.1
図313.1 規格CTMC図

これをCTMCで示したものが図313.1です。パターン1,2ではIFがアンリペアラブル固定(検出・修理はされない)、パターン3,4ではSMがアンリペアラブル固定(検出・修理はされない)という、余分な制約がかかっています。

本来は、初期状態でIFとSMは共にリペアラブルであり、かつ相手がフォールト時には自分がアンリペアラブルとなるという、マルコフ図のような動作となります。

結果として規格に依れば、パターン1, 2ではIFのリペア、パターン3, 4ではSMのリペアの考慮が抜けているため、PMHFを過大評価することになります。故障確率の過大評価は過小評価よりは良いかもしれませんが、逆にEOTTIが厳しくなるという弊害が生じます。

なお、本稿はRAMS 2024に投稿予定のため一部を秘匿していますが、論文公開後の2024年2月頃に開示予定です。


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

posted by sakurai on September 9, 2020 #312

「ISO 26262第2版解説書」(日本規格協会)のPMHF式の続きです。

パターン2

次にパターン2=「安全機構、意図した機能の順でフォールトが発生する場合でかつ2nd SMにより検出可能となる場合」つまり修理可能部分です。解説書のパターン2を図312.1に示します。

図%%.1
図312.1 パターン2

(式変形の誤りのため削除)

「規格第2版のPMHF式の疑問(13)」に記載します。


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

posted by sakurai on September 8, 2020 #311

「ISO 26262第2版解説書」(日本規格協会)のPMHF式の続きです。

時刻パラメータ$t$が最初のSMのフォールトが起きた時刻、$t'$がVSGとなる2つ目のIFのフォールトが起きた時刻だと思われます。

正しい定式化

IFに関する$t'$の時の確率密度を$t$から$T_\text{lifetime}$まで積分し、$t$で表します。次に$t$について0から$T_\text{lifetime}$までVSGとなる確率密度を積分します。

(式変形の誤りのため削除)

「規格第2版のPMHF式の疑問(12)」に記載します。


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

posted by sakurai on September 7, 2020 #310

「ISO 26262第2版解説書」(日本規格協会)のPMHF式の続きです。

そもそもの(309.2)式ですが、意味を考えてみます。まずSMとIFのフォールトは独立なので、SMとIFの確率は積で表されるのは正しいです。一方で独立ではないIF同志の確率が積で表されるところが誤っています。具体的には、時刻$t$から$T_\text{lifetime}$までの、IFの故障確率は、遷移確率が故障率$\times dt$となるため、 $$ \int_t^{T_\text{lifetime}}d\!\Pr\{\text{IF fails in }(t', t'+dt]\ \cap\ \text{IF not failed till }t'\}\\ =\int_t^{T_\text{lifetime}}d\!\Pr\{\text{IF fails in }(t', t'+dt]\ | \text{IF not failed till }t'\}\cdot\Pr\{\text{IF not failed till }t'\}\\ =\int_t^{T_\text{lifetime}}\lambda_\text{IF}R_\text{IF}(t')dt'=\int_t^{T_\text{lifetime}}f_\text{IF}(t')dt' \tag{310.1} $$ となるはずです。(310.2)は独立ではない事象を確率の積をとり、 $$ \int_t^{T_\text{lifetime}}d\!\Pr\{\text{IF fails in }(t', t'+dt]\ \cap\ \text{IF not failed till }t'\}\\ =\int_t^{T_\text{lifetime}}d\!\Pr\{\text{IF fails in }(t', t'+dt]\}\cdot\Pr\{\text{IF not failed till }t'\}\}\ \ \ \ ※1\\ =\int_t^{T_\text{lifetime}}f_\text{IF}(t')R_\text{IF}(t')dt'\\ =\int_t^{T_\text{lifetime}}f_\text{IF}(t')R_\text{IF}(\color{red}{t})dt'\ \ \ \ ※2\tag{310.2} $$ ※1 独立で無い事象の積としている
※2 積分変数を勝手に変更している

としているところが疑問です(疑問2, 3)。

どうやら、勝手に積分変数を変更しているのではなくて以下のように、 $$ \int_t^{T_\text{lifetime}}d\!\Pr\{\text{IF fails in }(t', t'+dt]\}\cdot\Pr\{\text{IF not failed till }t\}\\ =\int_t^{T_\text{lifetime}}f_\text{IF}(t')dt'\cdot R_\text{IF}(t)\tag{310.3} $$ と推測します。この場合、時刻$t$から$t'$の間の確率が無視されているので、結局誤りです。

なお、本稿はRAMS 2024に投稿予定のため一部を秘匿していますが、論文公開後の2024年2月頃に開示予定です。


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

posted by sakurai on September 4, 2020 #309

第2版でのPMHF式の改訂

ISO 26262第2版になり、PMHF式が改訂されました。第1版にはなかったパターン3,4が加わった理由は、例えば冗長システムのように、IFのフォールトがレイテントになる場合を考慮したものだと認識していました。このたび「ISO 26262第2版解説書」(日本規格協会)を購入し、その背景等の情報が掲載されていたため、検討します。

さて、上記解説書によれば、パターン3, 4が加わった理由は、「フォールトトレラントが要求されるアイテムの場合では、それ以外の順序、状況も想定できる」とあります。それ、というのは第1版の前提の意味であり、「安全機構、意図した機能の順でフォールトが発生する場合」とあります。すなわち、それ以外というのは、意図機能(IF)、安全機構(SM)の順番でフォールトが発生する場合であり、IFのフォールトがレイテントとなる場合に他なりません。これは弊社論文で2017年に指摘していたとおり、初版のPMHF式は冗長システムに対応していなかったことを裏書きします。

解説書には、今まで謎だったPMHF式の導出過程が載っていたので、それを解析します。

パターン1

図309.1は、第1版にも存在した、パターン1=「安全機構、意図した機能の順でフォールトが発生する場合で安全機構のフォールトが検出されない場合」です。

図%%.1
図309.1 パターン1

パターン1の導出過程を、記法を弊社と合わせたものを示します。弊社では先に$T_\text{lifetime}$で割るため、 $$ \frac{1}{T_\text{lifetime}}F_\mathrm{DPF,SM_\text{latent}\rightarrow IF}=\frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}\left((1-K_\text{SM,MPF})f_\text{SM}(t)\\ \cdot\int_t^{T_\text{lifetime}}K_\text{IF,DPF}f_\text{IF}(t')dt'\cdot R_\text{IF}(t)\right)dt \tag{309.1} $$ そもそもこの式の成立に問題がありそうですが、それはさておき、式変形を辿ってみます。まず、(309.1)においてIFに関する演算を先に実行すれば、 $$ \require{cancel} \int_t^{T_\text{lifetime}}K_\text{IF,DPF}f_\text{IF}(t')dt'\cdot R_\text{IF}(t)\\ =K_\text{IF,DPF}\left(F_\text{IF}(T_\text{lifetime})-F_\text{IF}(t)\right) R_\text{IF}(t)\\ =K_\text{IF,DPF}\left((\bcancel{1}-e^{-\lambda_\text{IF}T_\text{lifetime}})-(\bcancel{1}-e^{-\lambda_\text{IF}t})\right)e^{-\lambda_\text{IF}t}\\ \approx\lambda_\text{IF,DPF}(T_\text{lifetime}-t)(1-\lambda_\text{IF}t) \tag{309.2} $$ (309.2)を(309.1)に代入して、 $$ \frac{1}{T_\text{lifetime}}F_\mathrm{DPF,SM_\text{latent}\rightarrow IF}\\ =\frac{1}{T_\text{lifetime}}(1-K_\text{SM,MPF})\int_0^{T_\text{lifetime}}f_\text{SM}(t)\lambda_\text{IF,DPF}(T_\text{lifetime}-t)(1-\lambda_\text{IF}t)dt \tag{309.3} $$ これと図309.1の2行目を比較すると、なぜか、 $$ \int_0^{T_\text{lifetime}}\color{red}{f_\text{SM}(t)}dt=\int_0^{T_\text{lifetime}}\color{red}{\lambda_\text{SM}}dt $$ と式変形しているようです(疑問1)。左辺の$f_\text{SM}(t)$に$R_\text{SM}(t)$をかければこうなりますが、$R_\text{SM}(t)$は式中に存在しないので、単純な計算ミスでしょうか?そうでなく、無理やり$R_\text{SM}(t)\approx1$を用いたと考えても、一方で$R_\text{IF}(t)$を計算しているのは片手落ちです。

【追記】 このようなことかもしれません。 $$ \int_0^{T_\text{lifetime}}f(t)dt=\left[F(t)\right]^{T_\text{lifetime}}_0=F(T_\text{lifetime})-F(0)=F(T_\text{lifetime})\\ =1-e^{-\lambda T_\text{lifetime}}\approx\lambda T_\text{lifetime}=\int_0^{T_\text{lifetime}}\lambda dt=\lambda\int_0^{T_\text{lifetime}}dt $$ $f(t)$の積分は$\lambda$として外に出せるという公式となります。上式の$R_\text{IF}(t)$にしても、式変形途中では$1-\lambda_\text{IF}t$としていますが、最終的に$R_\text{IF}(t)\approx1$としています。

なお、本稿はRAMS 2024に投稿予定のため一部を秘匿していますが、論文公開後の2024年2月頃に開示予定です。


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


ページ: