Loading [MathJax]/jax/element/mml/optable/MathOperators.js

Posts Tagged with "2nd Edition"

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

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

パターン3, 4

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

MPMHF12λIF,DPFλSM,DPF,latTlifetime+12λIF,DPFλSM,DPF,detTservice+12λSM,DPFλIF,DPF,latTlifetime+12λSM,DPFλIF,DPF,detTservice となりそうです。

規格の問題点

ところが、規格は最初のパターン分けから間違っているので、これは誤った式です。 なぜなら、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からTlifetimeまで積分し、tで表します。次にtについて0からTlifetimeまでVSGとなる確率密度を積分します。

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

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


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

posted by sakurai on September 7, 2020 #310

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

そもそもの(309.2)式ですが、意味を考えてみます。まずSMとIFのフォールトは独立なので、SMとIFの確率は積で表されるのは正しいです。一方で独立ではないIF同志の確率が積で表されるところが誤っています。具体的には、時刻tからTlifetimeまでの、IFの故障確率は、遷移確率が故障率×dtとなるため、 TlifetimetdPr{IF fails in (t,t+dt]  IF not failed till t}=TlifetimetdPr{IF fails in (t,t+dt] |IF not failed till t}Pr{IF not failed till t}=TlifetimetλIFRIF(t)dt=TlifetimetfIF(t)dt となるはずです。(310.2)は独立ではない事象を確率の積をとり、 TlifetimetdPr{IF fails in (t,t+dt]  IF not failed till t}=TlifetimetdPr{IF fails in (t,t+dt]}Pr{IF not failed till t}}    1=TlifetimetfIF(t)RIF(t)dt=TlifetimetfIF(t)RIF(t)dt    2 ※1 独立で無い事象の積としている
※2 積分変数を勝手に変更している

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

どうやら、勝手に積分変数を変更しているのではなくて以下のように、 TlifetimetdPr{IF fails in (t,t+dt]}Pr{IF not failed till t}=TlifetimetfIF(t)dtRIF(t) と推測します。この場合、時刻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の導出過程を、記法を弊社と合わせたものを示します。弊社では先にTlifetimeで割るため、 1TlifetimeFDPF,SMlatentIF=1TlifetimeTlifetime0((1KSM,MPF)fSM(t)TlifetimetKIF,DPFfIF(t)dtRIF(t))dt そもそもこの式の成立に問題がありそうですが、それはさておき、式変形を辿ってみます。まず、(309.1)においてIFに関する演算を先に実行すれば、 TlifetimetKIF,DPFfIF(t)dtRIF(t)=KIF,DPF(FIF(Tlifetime)FIF(t))RIF(t)=KIF,DPF((1eλIFTlifetime)(1eλIFt))eλIFtλIF,DPF(Tlifetimet)(1λIFt) (309.2)を(309.1)に代入して、 1TlifetimeFDPF,SMlatentIF=1Tlifetime(1KSM,MPF)Tlifetime0fSM(t)λIF,DPF(Tlifetimet)(1λIFt)dt これと図309.1の2行目を比較すると、なぜか、 Tlifetime0fSM(t)dt=Tlifetime0λSMdt式変形しているようです(疑問1)。左辺のfSM(t)RSM(t)をかければこうなりますが、RSM(t)は式中に存在しないので、単純な計算ミスでしょうか?そうでなく、無理やりRSM(t)1を用いたと考えても、一方でRIF(t)を計算しているのは片手落ちです。

【追記】 このようなことかもしれません。 Tlifetime0f(t)dt=[F(t)]Tlifetime0=F(Tlifetime)F(0)=F(Tlifetime)=1eλTlifetimeλTlifetime=Tlifetime0λdt=λTlifetime0dt f(t)の積分はλとして外に出せるという公式となります。上式のRIF(t)にしても、式変形途中では1λIFtとしていますが、最終的にRIF(t)1としています。

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


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

LFMの導出

posted by sakurai on July 4, 2019 #123

LFMの導出

LFM、MLFMに関する規格式を引用し、これを導出します。

図%%.1
図123.1 LFM規格式

前稿と同様な論証を行います。まずレイテントフォールト(LF)の故障率の計算式を見てみます。

故障分類フローで説明したように、レイテントフォールトとなるのは2とおり存在します。

  • 主機能のフォールトのSG侵害が1st SMにより抑止されている場合に、2nd SMで検出できない場合
  • SMのフォールト(これはSG侵害が起こらない)が2nd SMで検出できない場合

よって、安全関連に関する故障モードがn個ある場合に、i番目のLFの故障率λLF,iの定義式は、存在しないλiに対しては0を返すものとすれば、

λLF,i:=DCiλIF,i(1DC2i)+λSM,i(1DC2i)={DCiλIF,i+λSM,i}(1DC2i),i=1,2,...,n と表せます。このDC2iはKパラメータで書けば、 DC2i=KIF,FMC,MPF,i,KSM,FMC,MPF,i で、2nd SMがIFもしくはSMに対して、故障検出する割合を表します。(123.1)の両辺の総和を取れば、 ni=1λLF,i=ni=1(DCiλIF,i+λSM,i)(1DC2i)=ni=1(DCiλIF,i+λSM,i)ni=1(DCiλIF,i+λSM,i)DC2i よって、ni=1(DCiλIF,i+λSM,i)及びni=1(DCiλIF,i+λSM,i)DC2iを移項し、 ni=1(DCiλIF,i+λSM,i)DC2i=ni=1(DCiλIF,i+λSM,i)ni=1λLF,i ここで、DC2の、各々の故障率による加重平均を(123.4)のように定義し、(123.3)を(123.4)の分子に代入すれば、 ¯DC2:=ni=1(DCiλIF,i+λSM,i)DC2ini=1(DCiλIF,i+λSM,i)=ni=1(DCiλIF,i+λSM,i)ni=1λLF,ini=1(DCiλIF,i+λSM,i)=1ni=1λLF,ini=1(DCiλIF,i+λSM,i) ここで、DCiλIF,i=λIF,iλRF,iを代入すれば、(123.4)は (123.4)=1ni=1λLF,ini=1(λIF,iλRF,i+λSM,i)=1ni=1λLF,ini=1(λiλRF,i)

これと(C.8)を比較すれば、


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

SPFMとLFMの導出

posted by sakurai on July 2, 2019 #122

SPFMの導出

SPFM、MSPFMに関する規格式を引用し、これを導出します。

図%%.1
図122.1 SPFM規格式

まずレシデュアルフォールト(RF)の故障率の計算式を見てみます。ここでシングルポイントフォールト(SPF)を狭義に使えば、RFのうち、ダイアグノスティックカバレージ(DC)がゼロの時にSPFと等価であるため、SPFもRFも(広義の)RFとして表せることになります。つまり上式分子のλSPF+λRFは、DC=0の場合を含み、λRFと簡単化できます。

さて、安全関連に関する故障モードがn個ある場合に、i番目の(広義の)RFの故障率λRF,i式は、 λRF,i:=λIF,i(1DCi) と定義されます。このDCiはKパラメータで書けば、 DCi=KIF,FMC,RF,i となり、1st SMがIFに対して、IFがSG侵害を抑止する割合を表します。(122.1)の両辺の総和を取れば、 ni=1λRF,i=ni=1λIF,i(1DCi)=ni=1λIF,ini=1λIF,iDCi よって、 ni=1λIF,iDCi=ni=1λIF,ini=1λRF,i ここで、各々のSMにより防御される、IFの故障率によるDCの加重平均を次のように定義し、 ¯DC:=ni=1λIF,iDCini=1λi (122.3)を(122.4)の分子に代入すれば、 (122.4)=ni=1λIF,ini=1λRF,ini=1λIF,i=1ni=1λRF,ini=1λi これと(C.7)を比較すれば、 MSPFM=¯DC となるため、SPFMは


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

フォールトトレラントタイム

posted by sakurai on July 1, 2019 #121

車両寿命間のダウン確率は、次の式のようにPMHFに車両寿命をかけたものです。 M_\mathrm{PMHF}:=\frac{1}{T_\mathrm{lifetime}}\Pr\{\text{item down at }T_\mathrm{lifetime}\}\\ \therefore \Pr\{\text{item down at }T_\mathrm{lifetime}\}=M_\mathrm{PMHF}T_\mathrm{lifetime} \tag{121.1} バックアップ系(SM1)に切り替わった後で、EOTTI期間走行する間のダウン確率が(121.1)以下であればよいとすれば、 \Pr\{\text{backup down at }T_\mathrm{eotti}\}=\lambda_\mathrm{SM1, DPF}T_\mathrm{eotti}\le\Pr\{\text{item down at }T_\mathrm{lifetime}\}=M_\mathrm{PMHF}T_\mathrm{lifetime}\tag{121.2} となり、EOTTIの範囲は前稿の規格式(3)で表されます。しかしながら、恐らくワーストケース(最短EOTTI)を求めるための条件と思われますが、厳しすぎに見えます。t=0でIFのフォールトが起きた前提での、バックアップ系による走行条件の計算となっています。DPFの確率ではなく、SPFの確率となるため、何桁も厳しくなります。

次に規格式(2)ですが、誤ったPMHF式がベースであるため、以下の例では誤ったEOTTIが得られています。表121.1でケース2の「(2)式の結果」が、上記のワーストと思われる「(3)式の結果」を下回っている(より厳しくなっている)こともこれを裏付けます。

まず正しいEOTTI式を(121.3)に示します。これは、2nd Editionの条件(IF/SM1共にリペアラブル)を前提としてPMHF式を求め(69.1)、その暴露時間の最大値をEOTTIとし、EOTTIについて解いた式です。 T_\text{eotti}\le\frac{M_\text{PMHF}-\left[\lambda_\text{SPF}+\lambda_\text{RF}+\lambda_\text{IF,DPF}\lambda_\text{SM,DPF}(1-K_\text{MPF})T_\text{lifetime}\right]}{\lambda_\text{IF,DPF}\lambda_\text{SM,DPF}K_\text{MPF}}\\ =\frac{M_\text{PMHF}-\left[\lambda_\text{SPF}+\lambda_\text{RF}+\lambda_\text{IF,DPF}\lambda_\text{SM,DPF}(1-K_\text{IF,MPF})(1-K_\text{SM,MPF})T_\text{lifetime}\right]}{\lambda_\text{IF,DPF}\lambda_\text{SM,DPF}\left[1-(1-K_\text{IF,MPF})(1-K_\text{SM,MPF})\right]}\\ =\frac{M_\text{PMHF}-(\lambda_\text{SPF}+\lambda_\text{RF}+\lambda_\text{IF,DPF,lat}\lambda_\text{SM,DPF,lat}T_\text{lifetime})}{\lambda_\text{IF,DPF}\lambda_\text{SM,DPF}-\lambda_\text{IF,DPF,lat}\lambda_\text{SM,DPF,lat}} \tag{121.3} 次に規格中の例題を(121.3)で計算し直した結果、表121.1の最下段のようになります。

表121.1
EOTTI ケース1[H] ケース2[H]
(2)式の結果 772 31
(3)式の結果 167 167
(2)式の修正結果 2,312 965

規格の2例で総合的なK_\text{MPF}を求めると、ケース1, 2において0.99と変わりませんが、これを振ってみた、T_\text{eotti}に関するグラフを図121.3に示します。(121.3)が不等式であるため、解の存在領域は曲線の下側となります。

図%%.3
図121.3 ケース1とケース2でのK_\text{MPF}に対するT_\text{eotti}

ケース2では、本来965Hで良いのに31Hと厳しくなっているので、

規格によれば、ダウン率の過大評価に基づく、EOTTIの31.3倍の過小評価をしていると結論づけます。

まとめると、フォールトトレラントシステムのマルコフ連鎖を考えると、(3)は過小評価しすぎと考えます。その理由は、ワーストケースとはいえ、ダウン率の高いSM1(バックアップ系)のみでEOTTI時間動作することを想定していますが、実際にはダウン率の低い主機能との組み合わせで動作するためです。本来のPMHF式(68.1)(98.7)に示すT_\mathrm{service}T_\mathrm{eotti}に置き換えた式が正しいと考えます。

いずれにしろ、規格2nd Editionで(3)を使用しているのは、EOTTIを過小評価しすぎです、(2)は誤って過小評価しているためあまり目立たなくなっていますが、本来(2)の制約のみで良いと考えます。しかしながら(2)式が誤っているので、(68.1)や(98.7)を使用すべきです。

この結果はRAMS2020で発表しました。


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

8.3.1 マイコンの取り扱い他

posted by sakurai on June 28, 2019 #120

8.3.1 マイコンの取り扱い

1st EditionではPart 10が主にISO 26262を半導体に適用する場合のガイドラインであったため、マイコンの取り扱いはPart 10に存在しましたが、2nd Editionになって、Part 10は全般的なガイドラインとなり、Part 11としてISO 26262を半導体に適用する場合のガイドラインが新設されたため、ISO 26262をマイコンに適用する場合の話題がPart 11に移動しました。

8.3.2 PMHF式

PMHF式については説明が追加されました。しかしながら、導出過程や導出前提を明らかにしたものではありません。また、式自体にも疑義があります。弊社ではPMHFを1st Edition発効から8年間に渡って研究しており、その結果としてIEEE最優秀論文賞を得ることができました。この論文は1st Editionの式を対象としていますが、新たに2nd Editonで式が変更されたため、それに基づく論文をIEEEに投稿中です。

弊社ではPMHFに関する論文をRAMS 2020に投稿中であり、そのため、最新の研究#103~108を一旦非開示としました。⇒RAMS 2020においてPMHF式の論文発表が終了したため、本記事を開示します。

12 システム開発のガイダンス

1st Editionの思想から拡張されているフォールトトレランス(耐故障性)についてまとめられた節が新設されました。1st Editionの思想は、とにかくフォールトが発生した場合にはFTTI中にシステムを安全状態に持っていけば、それでハザードが回避できるため、OKでした。

ところが、例えば高速道路の追い越し車線を120Km/hで走行中にフォールトを検出し、いくら安全状態だからといって、その場(追い越し車線内)で車両を停止させてしまうと、これはかなり危険な状態であることが容易に想像できます。このような場合は可能な限り左端の路側帯に寄せて停車するか、もしくは次の出口や安全な場所まで走行したいはずです。

本節ではこのような要求に対して解答を与えるものとなっており、基本的なアーキテクチャはIFに対するSM1としてバックアップ系を想定しています。例えば、IFについてASIL-Dを割り当てている時に、当然その平均PUD(=PMHF)は10[FIT]未満となりますが、故障したときには安全状態で停止するのではなく、動作し続けることがフォールトトレラントのために必要です。しかしながら、その場合にもASIL-Dを要求するものではありません。例えば、バックアップ系の時速が一定速度より遅ければASIL-Bとすることができます。その場合、速度は遅くても修理工場まで走行することが可能です。

本節には2とおり例示されており、緊急動作時間(EOTTI)以内に修理するか、上記のようにバックアップ系に切り替われば良いことになります。問題はEOTTIがあまりにも短い場合(例えば1sec未満)は修理工場に行くことができないので、その計算が必要となります。それが12.3.1.1に示されています。

次の図120.1の(2)は前記事にも掲載されている、2nd EditionのPMHF式(図109.3)のT_\mathrm{service}T_\mathrm{eotti}と置き、T_\mathrm{eotti}について解いた式となっています。

図%%.1
図120.1 PMHF式に基づくEOTTIの導出

一方、次の図120.2の(3)は、ワースト時を想定しているようです。バックアップ系がEOTTI時間走行する状態での故障確率式です。

図%%.2
図120.2 車両寿命間の故障に基づくEOTTIの導出

いずれの式にも問題がありそうなので、次項で説明します。


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

posted by sakurai on June 27, 2019 #119

Part 10

ここまで2nd EditionのPart 5について変更点をご紹介してきました。Part 10は以下の相違があります。

  1. 4.4 FTTIの追加
  2. 8.3.1 マイコンの取り扱い⇒Part 11へ
  3. 8.3.2 PMHF式の導出及び変更 1st Editionの式導出も含めて詳細にご説明します。
  4. 12 システム開発のガイダンス
  5. 13 ソフトウエアツールの使用への信頼(対象外)
  6. 14 安全関連特別特性(対象外)
  7. Annex A マイクロコントローラの安全分析詳細⇒Part 11へ移動

4.4 FTTI

用語を列挙します。

  • FTTI(Fault Tolerant Time Interval): フォールトトレラント時間間隔
  • FDTI(Fault Detection Time Interval): フォールト検出時間間隔
  • FRTI(Fault Reaction Time Interval): フォールト反応時間間隔
  • EOTI(Emergency Operation Time Interval): 緊急動作時間間隔
  • EOTTI(Emergency Operation Tolerant Time Interval): 緊急動作トレラント時間間隔
  • DTTI(Diag Test Time Interval): ダイアグテスト時間間隔

基本的には、フォールトが発生してからフォールトに対処するまでの最大時間がFTTIであり、これを超えると危険状態になるため、フォールトが発生してからそれを検出し、検出したフォールトに対して反応して安全状態に持っていく時間がそれを超えないようにします。つまり、 T_{\mathrm{DTTI}}+T_{\mathrm{FDTI}}+T_{\mathrm{FRTI}}\lt T_{\mathrm{FTTI}} となることが要求されます。もしくは、T_{\mathrm{DTTI}}T_{\mathrm{FDTI}}に比べて小さいか、またはT_{\mathrm{FDTI}}の中にT_{\mathrm{DTTI}}を含めるものと定義すれば、 T_{\mathrm{FDTI}}+T_{\mathrm{FRTI}}\lt T_{\mathrm{FTTI}} でもOKです。

問題は安全状態に持っていくのがFTTIに間に合わなかった場合です。その場合は緊急動作状態に持っていくことが求められており、今度はFTTIではなく、EOTTIで制約を受けます。本来なら安全状態になるはずの時刻からさらにEOTTIまでに緊急動作が終了すればOKです。従って、 T_{\mathrm{EOTI}}\lt\img[-1.35em]{/images/withinseminar.png}


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


ページ: