Posts Tagged with "PMHF"

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

PMHFの計算法の例(3)

posted by sakurai on October 21, 2020 #327

こんどはYoutubeでおかしな表現を見つけました。図327.1に当該部分を引用します。

図%%.1
図327.1 あるYoutube動画中のPMHFの説明

  • SPFMの説明にはSPFをカバーすると書かれています。SPFは広義ではRFを含むこともあり、広義と教義があるので、広義だとすれば問題ありません。
  • LFMの説明にはなぜかLFMと書かれていません。説明はLFをカバーすると書かれており、OKです。カバレージの意味もあるのかもしれませんが。
  • PMHFの説明には、残余ハードウエアフォールトをカバーすると書かれています。通常はRFのことなので、ここにおいて最初のSPFの説明にRFが含まれなかった、つまり狭義のSPFだったことがわかります。

以上から、SPFMとPMHFの説明は誤りです。ただしくは、SPFMはSPF及びRFの両方のカバレージを意味します。さらに、PMHFはアイテムの車両寿命におけるダウン確率の時間平均を意味します。

この動画はあまり良くなく、FMEDAでSPFM/LFM/PMHFを計算すると言っています。原理的にFMEDAではPMHFを正しく計算するのは困難です。ワーストケースと思えば良いかもしれません。それにしても規格式を正しく実装しているかどうかが不明です。この動画は、自社のツールを使えば、ブラックボックスでアーキテクチャメトリクスが計算できると言っているにすぎません。

Youtubeで調べましたが、正しいPMHFの計算法を紹介している動画は見つかりませんでした。


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

PMHFの計算法の例(2)

posted by sakurai on October 20, 2020 #326

前稿の続きです。

PMHF式に誤りのある「平成26年度 電子部品信頼性調査研究委員会 研究成果報告書」は2015年3月発行です。著者に連絡を取ったところ、論文$\dagger$からの引用だとのことでした。これは2014年発行なので、この論文が元凶であり、ブログで取り上げたこの資料この資料に影響を与えたようです。IEEE発行の査読付き論文なのでそれなりに信用性があり、誤りが広まってしまうのかもしれませんが、非常に遺憾なことです。

図326.1に当該部分を引用します。良くみると、上記報告書が引用したといいながら、DPF部分はlatentのみとなっています。従って、上記報告書と論文$\dagger$では少々異なります。

図%%.1
図326.1 ある論文中のPMHF式

図326.1の説明には、ISO 26262にはPMHF式が出ていないため(実際はPart 10に書かれている)、IEC 61508から持ってきたと書かれていますが、そもそもIEC 61508にはPMHFはありません。近い概念としてはPFH(Probability of Failure per Hour)があります。Exidaの資料によればPFHは(326.1)式で表されます。 $$ PFH=\lambda_\text{DU}\tag{326.1} $$

ただし、これは1oo1の式だと思われます。少なくともDPFは、主機能と安全機構の双方がフォールトしたときの故障であるため、1oo2の式のほうがベターです。

しかしながら、ISO 26262はIEC 61508に基づいているといいながら、PMHF結果式はISO 26262独特のものであるため、1oo2としても式は一致しません。結果的にIEC 61508を過度に適用することは、このような誤りにつながります。あくまでISO 26262の上で考えなくてはなりません。


$\dagger$Y. Chang, L. Huang, H. Liu, C. Yang and C. Chiu, "Assessing automotive functional safety microprocessor with ISO 26262 hardware requirements," Technical Papers of 2014 International Symposium on VLSI Design, Automation and Test, Hsinchu, 2014, pp. 1-4, doi: 10.1109/VLSI-DAT.2014.6834876.


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

PMHFの計算法の例

posted by sakurai on October 16, 2020 #325

前稿の続きです。

この誤りはどこかで見たと思ったら、財団法人日本電子部品信頼性センター発行の「平成26年度 電子部品信頼性調査研究委員会 研究成果報告書」の33ページにも、同じような式が書かれていたので、図325.1に引用します。

図%%.1
図325.1 ある資料中のPMHF式

前稿のMPFはLF($=\lambda_\text{MPF,lat}$)のみを加えていましたが、この式ではMPF全体となっており、より悪化しています。これはtypoではなく、図325.1中にも「全体から安全フォールトを除いたもの」とあり、図324.1を参照すれば、SPF/RFに加えMPF全体と考えているようです。ところが、MPFにはlatentとdetected/percievedがあり、後者は安全と考えられるので、より誤り度合いが大きいのです。前稿でも述べたように、LFは単独ではVSGとならないので、他のフォールトとのDPFとして計算する必要があります。DPF確率は、SMのレイテント確率とIFのフォールト確率の積になります。

図%%.2
図325.2 ある資料中のPMHF計算

本来DPFは2つのフォールト確率から成る確率事象であるため、その確率は非常に小さくなるはずです。ところが、図325.2ではDPFが支配的になっており、一見して誤りと判定できます。


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

posted by sakurai on October 15, 2020 #324

昆虫採集よろしく、業界内での事例収集を実施中です。アーキテクチャメトリクス(SPFMとLFMの総称)及びPMHFについて、「自動車の機能安全と部品安全ーISO 26262の概要ー」の資料を見つけました。

その中での、上記メトリクスの計算方法を紹介します。

図%%.1
図324.1 ある資料のメトリクス算出例

この資料によれば、SPFMは、 $$ SPFM=1-\frac{\beta}{\alpha}=1-\frac{\sum\left(\lambda_\text{SPF}+\lambda_\text{RF}\right)}{\sum\lambda} \tag{324.1} $$ LFMは、 $$ LFM=1-\frac{\delta}{\alpha-\beta}=1-\frac{\sum\lambda_\text{DPF,lat}}{\sum\left(\lambda-\lambda_\text{SPF}-\lambda_\text{RF}\right)} \tag{324.2} $$ (324.1)を図122.1、(324.2)を図123.1、SPFM及びLFMの規格式とそれぞれ比較すれば、一致していることがわかります。ここまでは問題ありません。

一方、$M_\text{PMHF}$は、 $$ M_\text{PMHF}=\beta+\delta=\lambda_\text{SPF}+\lambda_\text{RF}+\lambda_\text{DPF,lat} \tag{324.3} $$ (324.3)は誤りです。LFは単一ではVSGを引き起こさないため、アイテムのVSG確率としては、他のフォールトとのDPFとして計算しなければなりません。DPF確率は、例えばSMのレイテント確率とIFのフォールト確率の積とする必要があります。

これは2015年の資料ですが、いったい(324.3)はどこから来たのでしょうか?


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

posted by sakurai on October 14, 2020 #323

弊社では、定量FTAを用いてPMHFを見積もる論文を、RAMS 2021に提出済みです。さて、PMHFが業界でどのように見積もられているかを調べたところ、この資料を見つけました。

図%%.1
図323.1 ある資料のFT構成法

図323.1は少々複雑なので、思想を曲げない範囲で簡略化します。まず、SPFはDC=0の時のRFであるため、SPF/RFをひとまとめにし、 $$ \lambda_\text{IF,RF}=(\lambda_\text{G}+\lambda_\text{K}+\lambda_\text{B}+\lambda_\text{F})(1-DC)=(1-DC)\lambda_\text{IF}\tag{323.1} $$ (323.1)はRFの式そのものであり、OKです。

次に、DPF1ですが、これはSM1の不信頼度がかかっていることから、SM1が先にLFとなり、続いてIFがフォールトしVSGとなるDPFだと考えられます。DPF1は、 $$ \lambda_\text{DPF1}=\lambda_\text{IF}\cdot DC\cdot\frac{1}{2}\lambda_\text{SM1}T=\frac{1}{2}DC\lambda_\text{IF}\lambda_\text{SM1}T, ただし、\lambda_\text{SM1}=\lambda_\text{C}+\lambda_\text{I}+\lambda_\text{M}\tag{323.2} $$ Fault Tree中は故障率で書かれているので、少々心配になりますが(このような誤りが多々あるので)、きちんと$T$をかけて単位を[1/H]としているので、(323.2)もOKです。

最後にDPF2は、IFの不信頼度がかかっていることから、IFが先にLFとなり、続いてSM1がフォールトしVSGとなるDPFだと考えられます。DPF2は、 $$ \lambda_\text{DPF2}=\lambda_\text{SM1}\cdot\frac{1}{2}\lambda_\text{IF}T=\frac{1}{2}\lambda_\text{IF}\lambda_\text{SM1}T\tag{323.3} $$ 残念ながら(323.3)は誤りです。以下に列挙すると、誤りは、

  1. まず、IFとSM1の両方がリペアラブルではないことです。もっともこれは規格式も誤っているので見逃します。

  2. 次に、$\lambda_\text{DPF2}$において、$\lambda_\text{IF}$に$DC$がかかっていないことが誤りです。なぜなら$\lambda_\text{IF}$のうち、$1-DC$分、つまり$(1-DC)\lambda_\text{IF}$がRFとなり、$DC$分、つまり$DC\lambda_\text{IF}$がLFとなるためです。従って、正しくは $$ \lambda_\text{DPF2}=\lambda_\text{SM1}\cdot\frac{1}{2}\lambda_\text{IF}DC T=\frac{1}{2}DC\lambda_\text{IF}\lambda_\text{SM1}T $$ ところが、$\lambda_\text{DPF1}$と比較すればわかるように$\lambda_\text{DPF1}\equiv\lambda_\text{DPF2}$なので、実は別のツリーとする必要はありません。

  3. さらに、2nd SMのカバレージであるDC2が全く考慮されていないことも問題です。ただし、DC2=0のワーストケースの評価であれば問題ありません。

従って、大きな誤りは2番目の項目となります。とはいえ、ほとんど全ての論文において定量FTAでDPFまで計算しているものが無いことから、本資料は良いほうだと言えます。

結論として、上記2.の修正を行えば、「故障順序によらないPMHF式」(105.6)と一致します。ここで(105.6)を再掲すれば、 $$ M_{\mathrm{PMHF}}= (1-K_{\mathrm{IF,RF}})\lambda_{\mathrm{IF}}+ K_{\mathrm{IF,RF}}\lambda_{\mathrm{IF}}\lambda_{\mathrm{SM}}(1-K_{\mathrm{SM,MPF}})T_\text{lifetime}\\ \tag{105.6} $$ 次に、2nd SMが不在というワーストケースを仮定して$K_{\mathrm{SM,MPF}}=0$とし、$K_{\mathrm{IF,RF}}=DC$と置きなおせば、 $$ M_{\mathrm{PMHF}}=(1-K_{\mathrm{IF,RF}})\lambda_{\mathrm{IF}}+ K_{\mathrm{IF,RF}}\lambda_{\mathrm{IF}}\lambda_{\mathrm{SM}}T_\text{lifetime}\\ =(1-DC)\lambda_{\mathrm{IF}}+ DC\lambda_{\mathrm{IF}}\lambda_{\mathrm{SM}}T_\text{lifetime}\\ \tag{323.4} $$ (323.1)~(323.3)を全て加えると、(323.4)と一致することがわかります。


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

posted by sakurai on September 11, 2020 #314

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

パターン1

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

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

この式において、中カッコの中の意味を考えてみると、

$$ \left(1-\int_0^t f_\text{IF}(t')dt'\right)\int_t^{T_\text{lifetime}}f_\text{IF,DPF}(t')dt' $$ のようで、意味としては、$0$から$t$までフォールトが起きていない、かつ$t$から$T_\text{lifetime}$の間でフォールトが起きた場合のようです。しかしながら、事象が独立な場合しか確率の積がとれないのに、両者は独立事象ではないため、誤りです。


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

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がアンリペアラブル
  • パターン3, 4: IFがリペアラブル、SMがアンリペアラブル

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

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

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


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

posted by sakurai on September 9, 2020 #312

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

パターン2

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

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

前稿に倣えば、正しくは、 $$ \frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}K_\text{IF,DPF}f_\text{IF}(t)\left(\int_0^u K_\text{SM,MPF}f_\text{SM}(t')dt'\right)dt\\ =\frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}K_\text{IF,DPF}f_\text{IF}(t)K_\text{SM,MPF}F_\text{SM}(u)dt\\ \approx K_\text{IF,DPF}K_\text{SM,MPF}\cdot\frac{1}{2}\lambda_\text{IF}\lambda_\text{SM}T_\text{service}\\ =\frac{1}{2}\lambda_\text{IF,DPF}\lambda_\text{SM,DPF,det}T_\text{service} \tag{312.1} $$ これは図312.2の初版PMHF式(パターン1, 2のみ)の、DPFにおけるパターン2に相当する部分と(IF⇒m, $T_\text{service}$⇒$\tau_\text{SM}$と読み替えることにより)正確に一致します。

図%%.2
図312.2 1st edition規格第1式

なおISO規格では、数値の小数点を,(カンマ)で表すフランス式の記法で書かれていることに注意します。以下はWikipediaより。

小数点表記の、国家や言語による差異は重大な誤解が危惧されるので、国際標準を策定するISOやIECなどは、英語を含む全ての言語表記でフランス式を統一的に用いると定めている。


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

posted by sakurai on September 8, 2020 #311

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

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

正しい定式化

VSGとなるIFに関する$t'$の時の確率密度を$t$から$T_\text{lifetime}$まで積分し、$t$で表します。次に$t$について0から$T_\text{lifetime}$までSMに関する確率密度を積分します。 $$ \frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}K_\text{IF,DPF}f_\text{IF}(t)\left(\int_0^t(1-K_\text{SM,MPF})f_\text{SM}(t')dt'\right)dt\\ =\frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}K_\text{IF,DPF}f_\text{IF}(t)(1-K_\text{SM,MPF})F_\text{SM}(t)dt\\ \approx K_\text{IF,DPF}(1-K_\text{SM,MPF})\cdot\frac{1}{2}\lambda_\text{IF}\lambda_\text{SM}T_\text{lifetime}\\ =\frac{1}{2}\lambda_\text{IF,DPF}\lambda_\text{SM,DPF,lat}T_\text{lifetime} \tag{311.1} $$ これは図104.2の初版PMHF式(パターン1, 2のみ)の、DPFにおけるパターン1に相当する部分と(IF⇒mと読み替えることにより)正確に一致します。

図%%.1
図311.1 1st edition規格第1式

なおISO規格では、数値の小数点を,(カンマ)で表すフランス式の記法で書かれていることに注意します。以下はWikipediaより。

小数点表記の、国家や言語による差異は重大な誤解が危惧されるので、国際標準を策定するISOやIECなどは、英語を含む全ての言語表記でフランス式を統一的に用いると定めている。


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

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}}\Pr\{\text{IF fails in }(t', t'+dt]\ \cap\ \text{IF not failed till }t'\}\\ =\int_t^{T_\text{lifetime}}\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}}\Pr\{\text{IF fails in }(t', t'+dt]\ \cap\ \text{IF not failed till }t'\}\\ =\int_t^{T_\text{lifetime}}\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)。


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


ページ: