Posts Tagged with "PUA"

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

論文$\dagger$の続きです。

筆者らの研究では、1st SMと2nd SMの間の区別が明確でないように見受けられ、SPF/RF/MPF,DP/MPF,Lを一緒に取り扱っています。本来は

  • SPF/RFに分類されるフォールトは単一故障事象の確率として扱う
  • MPF,DP/MPF,Lに分類されるフォールトは2点故障事象の確率として扱う

このように両者は区別して扱う必要があります。前者は1st SMにより抑止・検出されるフォールトであり、後者は2nd SMにより検出されるフォールトです。筆者はこれらの4つのフォールトをいずれも単一故障事象として加え合わせています(論文式15)。 $$ P_\text{MHF}=\frac{1}{2}\left[(\lambda_\text{SPF}+\lambda_\text{MPF,DP})+(\lambda_\text{RF}+\lambda_\text{MPF,L})\right] $$ 本来は2点故障(DPF)の事象の確率は二乗する必要があります。具体的にはIFの故障確率とSMの故障確率の乗算です。上の論文式(15)にはそれが漏れています。

次に、単一故障事象の修理可能性について、筆者らの解釈にはさらなる考察が必要かもしれません。

  • SPFに分類されるフォールトはτにおいて全て修理されると誤解している
  • RFに分類されるフォールトは一切故障修理されないと誤解している

正解から言えば、SPF/RFはいずれもシングルポイントフォールト(単一故障事象)に分類され、単一のフォールトによりVSGとなるため、修理する暇が無いため修理は全く関係ありません。ISO 26262においては修理は次ページで扱うLFのみに関係します。

SPF/RFの区分について、本来はDC(ダイアグカバレージ)が0の場合をSPFとし、DCが0でない場合をRFとしています。筆者らの区分がこの定義から逸脱している可能性があり、そのため以下の式 $$ F_\text{AVG,S}=\frac{1}{2}\tau\lambda_\text{SPF}+\frac{1}{2}T\lambda_\text{RF} $$ は誤りです。また、図742.1で示されるグラフ同じ誤りを持っています。誤りは上記のとおり

  • SPF/RFとも単一故障事象であるのに、修理を前提としている点、及び
  • SPF/RFの区分が本来SMの有無すなわちDCの値によるものを、修理の有無であると誤解している点です。

図%%.1
図742.1 2つの不信頼度SPF/RFのグラフ

さらにIFの故障率とSMの故障率の区別も改善の余地が有りそうですが、敢えて区別しておらず、エレメント一般の故障率として扱い、後で1oo2の一般解を導くためのようです。

正解を故障確率で表すなら、 $$ F_\text{AVG,S}=(\lambda_\text{SPF}+\lambda_\text{RF})T $$ となります。いずれもIFの故障率です。なぜならSMのフォールトは単一ではVSGとならないからです。ここで$T$は車両寿命とします。


$\dagger$J. Famfulik, M. Richtar et al, "Application of hardware reliability calculation procedures according to ISO 26262 standard," Qual. Rel. Eng. Int. 2020, pp. 1-15, doi: 10.1002/qre.2625


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

posted by sakurai on February 15, 2024 #741

PUAに関する論文が複数出ているので、その内容を確認します。

J. Famfulik, M. Richtar et al, "Application of hardware reliability calculation procedures according to ISO 26262 standard," Qual. Rel. Eng. Int. 2020, pp. 1-15, doi: 10.1002/qre.2625

以降翻訳はDeepLによるものです。まずアブストラクトを示します。

自動車産業における機能安全評価のための規格ISO 26262(2018年版)第2版では、ランダムハードウェア故障の確率的メトリック(PMHF)を使用したハードウェア評価が要求されている。この規格では、フォールトツリー解析(FTA)の活用を強く推奨しているが、具体的な計算例は示されていない。そこで、本稿では、電子システムのさまざまなハードウェア・アーキテクチャに対する数式の導出と説明を含む計算手順について説明する。記述されている数式は、多重故障の影響やelf-testの影響を考慮しているが、数式は比較的単純である。この単純さにより、ハードウェア設計の頻繁な変更が予想されるハードウェア開発の初期段階で使用することができる。したがって、ケーススタディを添付したこの論文は、科学者だけでなく、自動車産業における重要な安全関連電子システムの開発者を対象としている。

PMHFの数学的な定義を平均的な車両寿命間の不信頼度の時間平均とした論文の(3)式は

$$ P_\text{MHF}=\frac{F_\text{AVG}}{t} $$ と書かれています。改善点としては細かいことを言えば、PMHFの表記は規格Part 10に従えば$P_\text{MHF}$ではなく$M_\text{PMHF}$です。またPMHFは車両寿命間の時間平均故障確率であるため、分母は$t$ではなく、$T_\text{lifetime}$(論文中では大文字の$T$)です

従って論文の(3)式は正しくは $$ M_\text{PMHF}=\frac{F_\text{AVG}}{T} $$

とすべきです。ここで問題は$F_\text{AVG}$は不信頼度の平均です。ところがこれはおかしく、$T$で割っていることが車両寿命間の時間平均を表すので、分子は積分値であるべきです。そのため筆者の平均値の認識には改善点があると言うべきです。これは以下の式にも認めることができます。論文の(5)式は

$$ F(t)=\lambda t $$ これは不信頼度の式で、非修理系においては正しい式です。ところが問題は次の$F_\text{AVG}$で、論文の(6)式は

$$ F_\text{AVG}=\frac{1}{t}\int_0^t F(t)dt $$ つまり、(6)式においてF(t)を平均化した後さらに(3)式において$T$で割るという2重に平均を取ることを行っています。

本来は、我々の記法に従えば、 $$ M_\text{PMHF}=Q_\text{AVG}=\frac{Q(T)}{T} =\frac{1}{T}\int_0^T q(t)dt $$ とするのが正しい方法です。ここで$Q(t)$はPUA, $q(t)$はPUDです。

以降では本論文がPMHFをどのように導出するかを見ていきます。


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

posted by sakurai on February 11, 2024 #740

過去記事において不稼働度(Point Unavailability; PUA)を求めました。ここでは別の方式で不稼働度を求めてみます。

SMのフォールトが生起したとき、それがレイテントフォールトとなるかならないかは2nd SMの故障検出率で決定されます。これを$K_\text{SM,MPF}$とすると、従来は $$ K_\text{SM,MPF}=\Pr\{\text{detectable}\}\tag{740.1} $$ としてPUAである$Q(t)$を求めていました。

ここで新しく、 $$ K_\text{SM,MPF}=\Pr\{\text{detected }|\text{ failed at }t\}\tag{740.2} $$ この式(740.2)に基づいてPUAを導出します。これは、修理が完全に確率的に行われることを意味し、検出されるされないは故障の原因によらずにSMの能力のみに依存することになります。

不稼働度$Q(t)$の一般式

稼働度(Point Availability; PA)の公式から不稼働度は以下のように表せます。

$$ Q(t)=F(t)-\int_0^{T_\text{lifetime}}m(x)R(t-x)dx\\ =F(t)-\sum_{i=1}^nM(i\tau)R(t-i\tau)\tag{740.3} $$ 意味としては、フォールトが起きて累積していく分から故障が修理され、各修理分が現在まで生き残っている分を引いたものとなります。ここで$M(i\tau)$は定期修理点$i\tau$における修理率です。

Kパラメータの適用

さて、式(740.3)に式(740.1)を適用すれば、定期修理点$i\tau$における修理率$M(i\tau)$はその時点での不稼働確率$Q(i\tau)$に故障検出率を$K_\text{SM,MPF}$かけたものとなることから、

$$ Q(t)=F(t)-\sum_{i=1}^n K_\text{SM,MPF}Q(i\tau)R(t-i\tau)\tag{740.4} $$ このQ(t)は定期修理区間毎に変わるので、定期修理区間を$i=0,1,2,...$で表せば、

$$ \begin{eqnarray} \left\{ \begin{array}{l} Q_0(t)&=&0\quadただしt=0\\ Q_1(t)&=&F(t)\quadただしt\in(0, \tau]\\ Q_n(t)&=&F(t)-\sum_{i=1}^{n-1}K_\text{SM,MPF}Q_i(i\tau)R(t-i\tau)\quadただしt\ge\tau \tag{740.5} \end{array} \right. \end{eqnarray} $$

右辺に求めたい$Q(t)$を持つため、解析的に求めるのは困難であり、再帰的あるいは数値的に求めるしかありません。よってこれより次の$Q_2(t)$を求めれば、 この(740.4)式は誤りであり、再検討したこの記事に続きます。 $$ \begin{eqnarray} Q_2(t)&=&F(t)-K_\text{SM,MPF}Q_1(\tau)R(t-\tau)\\ &=&F(t)-K_\text{SM,MPF}F(\tau)R(t-\tau)\quadただしt\in(\tau, 2\tau] \tag{740.6} \end{eqnarray} $$

さらに次の$Q_3(t)$は、 $$ \begin{eqnarray} Q_3(t)&=&F(t)-K_\text{SM,MPF}Q_1(\tau)R(t-\tau)-K_\text{SM,MPF}Q_2(2\tau)R(t-2\tau)\\ &=&F(t)-K_\text{SM,MPF}\left[F(\tau)R(t-\tau)+\left(F(2\tau)-K_\text{SM,MPF}F(\tau)R(2\tau-\tau)\right)\right]R(t-2\tau)\\ &=&F(t)-K_\text{SM,MPF}\left[F(\tau)R(t-\tau)+\left(F(2\tau)-K_\text{SM,MPF}F(\tau)R(\tau)\right)R(t-2\tau)\right]\\ &&ただしt\in(2\tau, 3\tau] \tag{740.7} \end{eqnarray} $$ このようにかなり複雑な形になるため、実用的には数値計算することになります。


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

posted by sakurai on December 27, 2023 #725

次は(15)の導出です。

論文"Generic Equations for a Probabilistic Metric for Random Hardware Failures According to ISO 26262"において、以下の2か所の式変形過程が分からないが、どうして次の式(13), (15)が導出されるのか?

(13) 省略、前ページで解説
図%%.2

これは既に過去ブログでも記載済みなのでその箇所を返信しました。

Equation (103.6) in the following blog post is what you are looking for.
次のブログ記事の式(103.6)があなたが探しているものです。
https://fs-micro.com/post/show/id/103.html
Here's the trick: we transform it using $F(t)$ instead of $R(t)$. Because our integral formula
ここにトリックがあります。$R(t)$の代わりに$F(t)$を用います。なぜなら、我々の積分公式
https://fs-micro.com/post/show/id/60
can be used.
が使えるからです。

返信の際に$F(t)$に言及したのは、読者の方がご自分で変形し、$R(t)$の形式を導出した後行き詰っていたのでヒントを示しています。以下に記事の(103.6)を再掲します。


よって、(103.1)に(103.1.5)、(103.1.3)、$\Pr\{\overline{\text{VSG of IF preventable}}\}=1-K_\text{IF,RF}$(100.3)を用いた上で、故障率(66.6)及びPUA(59.8)を適用すれば、平均PUDは、 $$ \begin{eqnarray} \overline{q_\text{SPF,IFU}}&=&\frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}(1-K_\text{IF,RF})R_\text{IF}(t)A_\text{SM}(t)\lambda_\text{IF}dt\\ &=&\frac{1-K_\text{IF,RF}}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}\left[1-Q_\text{SM}(t)\right]f_\text{IF}(t)dt\\ &=&\frac{1-K_\text{IF,RF}}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}f_\text{IF}(t)dt-\frac{1-K_\text{IF,RF}}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}Q_\text{SM}(t)f_\text{IF}(t)dt\\ &=&\frac{1-K_\text{IF,RF}}{T_\text{lifetime}}F_\text{IF}(T_\text{lifetime})\\ & &-\frac{1-K_\text{IF,RF}}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}\left[(1-K_\text{SM,MPF})F_\text{SM}(t)+K_\text{SM,MPF}F_\text{SM}(u)\right]f_\text{IF}(t)dt,\\ & &\text{ただし、}u:=t\bmod\tau \tag{103.1.6} \end{eqnarray} $$ よって、$F_\text{IF}(t)=1-e^{-\lambda_\text{IF}t}\approx\lambda_\text{IF}t$と近似する0におけるTaylor展開(すなわちMaclaurin展開)及び弊社積分公式により、 $$ \overline{q_\text{SPF,IFU}}\approx(1-K_\text{IF,RF})\lambda_\text{IF}-\frac{1-K_\text{IF,RF}}{2}\lambda_\text{IF}\lambda_\text{SM}\left[(1-K_\text{SM,MPF})T_\text{lifetime}+K_\text{SM,MPF}\tau\right]\\ \tag{103.1.7} $$


1st editionでは定期修理期間を$\tau$で表していましたが、2nd editionでは表記が$T_\text{service}$に変わりました。従って、 $$ \overline{q_\text{SPF,IFU}}\approx(1-K_\text{IF,RF})\lambda_\text{IF}-\frac{1}{2}(1-K_\text{IF,RF})\lambda_\text{IF}\lambda_\text{SM}\left[(1-K_\text{SM,MPF})T_\text{lifetime}+K_\text{SM,MPF}T_\text{service}\right] $$ となり、(15)が成立します。


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

posted by sakurai on September 6, 2023 #658

定期検査・修理説明図

以下は過去記事#347に掲載した図です。

図347.1
図347.1 定期検査と時刻$t$の関係

ISO 26262の前提は定期検査・修理です。具体的には検査周期を$\tau$として、時刻$\tau_i=i\tau (i=1, 2, ..., n, n=\lfloor\frac{t}{\tau}\rfloor)$において検査・修理が行われます。

1. 定期修理

過去記事で分析したように、稼働度$A_\text{SM}(t)$の修理を含めた式に従えば、SMの不稼働度$Q_\text{SM}(t)$は、修理密度を$m(x)$として、(658.1)となります。 $$ \require{color} \definecolor{pink}{rgb}{1.0,0.8,1.0} \begin{eqnarray} Q_\text{SM}(t)&=&F_\text{SM}(t)-\int_0^t m(x)\colorbox{pink}{$R_\text{SM}(t-x)$}dx\\ &=&F_\text{SM}(t)-KF_\text{SM}(\tau)\sum_{i=1}^n R_\text{SM}(t-i\tau)\\ &=&F_\text{SM}(t)-K(1-R_\text{SM}(\tau))\sum_{i=1}^n R_\text{SM}(t-i\tau)\\ &=&F_\text{SM}(t)-K\sum_{i=1}^n R_\text{SM}(t-i\tau)+K\sum_{i=1}^n R_\text{SM}(t-(i-1)\tau)\\ &=&F_\text{SM}(t)-KR_\text{SM}(t-n\tau)+KR_\text{SM}(t)\\ &=&\img[-1.35em]{/images/withinseminar.png} \end{eqnarray} \tag{658.1} $$

ただし、$K$は各検査におけるフォールト検出率、$u:=t-n\tau$です。

(658.1)のピンクで示したように、例えば区間$[(i-1)i\tau, i\tau)$においてフォールトが発生し、その区間末で修理された場合、その後$t$までフォールトしないという前提の式となっています。これは、その後の区間$[(j-1)i\tau, j\tau), i<j$において再度フォールトする場合を含めると、次にその区間$[(j-1)i\tau, j\tau)$でのフォールトを考える場合にダブルカウントになるためです。

ここで(658.1)を書き直し以下の式を考えます。 $$ Q_\text{SM}(t)=F_\text{SM}(t)-K_\text{SM,MPF}\left[F_\text{SM}(t)-F_\text{SM}(u)\right] \tag{658.2} $$ 不稼働度は基本的には不信頼度から$t$までに検出(=修理)された分、すなわち$K_\text{SM,MPF}$がかかる項を引きます。さらに修理分のうち、$u:=t-n\tau$の期間のフォールトを引き戻し、その部分は修理されないことを表しています。

2. 1回修理

一方、本来は定期検査・修理が原則なのですが、1回修理としての考え方は、次の事実を利用します。

  • 最近の検査時刻による修理:
     ・ 検出可能フォールトの場合、$\tau_n$での検査時には、それまでの故障(もしあれば)が検出・修理されます。したがって、$\tau_n$以前の検査時刻での故障の有無は、時刻$t$における不稼働度に影響しません。
     ・ 検出不可フォールトの場合、修理は行われないため、修理回数は不稼働度に影響しません。

  • 次回検査までの期間: 時刻$t$における不稼働度を考える際、$\tau_n$以降、次回の検査$\tau_{n+1}$までの期間に生じる故障が関連します。この期間内での故障の有無、および$\tau_n$での検出の可否が、時刻$t$における不稼働度に影響します。

従って、細々と修理するのとまとめて一遍に修理するのでは効果が同じです。不稼働度の求め方は2種類考案したので、それらを以下に示します。

2.1 検査可否と検査前後のフォールト確率

過去記事で分析したように、検査の可否により、事象を分類します。

  • 検査可であるフォールトはどこで起きても、次の検査時点である$\tau_i$で全て修理されるため、$\tau_n$でも全て修理されています。従って$\tau_n$から$t$までのフォールトのみが問題となります。
  • 検査不可であるフォールトは、2nd SMが無いことと等価であるため、全期間である$0$から$t$までのフォールトが問題となります。

これにより(658.3)が得られます。

$$ \begin{eqnarray} Q_\text{SM}(t)&=& \Pr\{ (\text{fault detected at }\tau_n\ \cap\ \text{SM receives a fault in }(\tau_n, t]) \ \cup\\ &&\ \ \ \ (\overline{\text{fault detected at }\tau_n} \cap \text{SM receives a fault in }(0, t]) \}\\ &=&\img[-1.35em]{/images/withinseminar.png} \end{eqnarray} \tag{658.3} $$

2.2 検査検査前後のフォールト確率と検査可否の全ての組み合わせ

過去記事で分析したように、$\tau_n$での検出可否、$\tau_n$前と$\tau_n$後のフォールト生起有無の8通りの組み合わせを全て数え上げ、不稼働になる条件を洗い出します。

これにより(658.4)が得られます。

$$ \begin{eqnarray} Q_\text{SM}(t)&=&\Pr\{(\text{fault detected at }\tau_n\ \cap\\ &&\ \ \ \ [\text{SM receives a fault in }(0, \tau_n]\cap\ \text{SM receives a fault in }(\tau_n, t]\ \cup\\ &&\ \ \ \ \overline{\text{SM receives a fault in }(0, \tau_n]}\cap\ \text{SM receives a fault in }(\tau_n, t]])\ \cup\\ &&(\overline{\text{fault detected at }\tau_n} \cap \\ &&\ \ \ \ [\text{SM receives a fault in }(0, \tau_n]\cap\ \text{SM receives a fault in }(\tau_n, t]\ \cup\\ &&\ \ \ \ \overline{\text{SM receives a fault in }(0, \tau_n]}\cap\ \text{SM receives a fault in }(\tau_n, t]\ \cup\\ &&\ \ \ \ \text{SM receives a fault in }(0, \tau_n]\cap\ \overline{\text{SM receives a fault in }(\tau_n, t]}])\}\\ &=&\img[-1.35em]{/images/withinseminar.png} \end{eqnarray} \tag{658.4} $$

3. 不稼働度$Q(t)$のメリット

規格第2版ではPMHF式を導出する際に、2nd SMがドライバーへの通知可否により場合分けを行っています。ところがこの不稼働度は$\img[-0.9em]{/images/withinseminar.png}$

なお、本稿はRAMS 2025に投稿予定のため一部を秘匿しています。


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

posted by sakurai on September 5, 2023 #657

人間:

間違いです。$F_\text{SM}(\tau_n)$は時刻$\tau_n$での修理によりゼロになります。ところがそれを代入すると、不稼働度は$F_\text{SM}(t)-0=F_\text{SM}(t)$となり、これは$\Pr\{\text{SM receives a fault in }(0,t)\}$となり不合理。本来は$\Pr\{\text{SM receives a fault in }(\tau_n,t)\}$となるはず。この矛盾を解消してください。

ChatGPT: (中略)

申し訳ありません、以前の説明で矛盾の解消に至らなかったことに気づきました。再度考察し、不稼働度を正しく表現しましょう。

検出不可の場合と検出可の場合を組み合わせて不稼働度を考える際、以下の確率を組み合わせる必要があります。

検出不可の場合

  • $ \Pr\{\text{fault not detected at } \tau_n\} = 1 - K $
  • $ \Pr\{\text{SM receives a fault in } (0, t]\} = F_{\text{SM}}(t) $

検出可の場合

  • $ \Pr\{\text{fault detected at } \tau_n\} = K $
  • $ \Pr\{\text{SM receives a fault in } (\tau_n, t]\} $

ここで、検出可の場合において、$ \tau_n $での故障は瞬時に修理されるため、$ F_{\text{SM}}(\tau_n) = 0 $ です。さらに、この時点での不信頼度がリセットされるため、$ \tau_n $から$ t $までの故障生起確率が重要となります。

この確率を表現するために、$ u = t - \tau_n $ と定義されていることを利用し、次のように表現します。

  • $ \Pr\{\text{SM receives a fault in } (\tau_n, t]\} = F_{\text{SM}}(u) $

したがって、不稼働度 $ Q_{\text{SM}}(t) $ は以下のようになります。

$$ Q_{\text{SM}}(t) =\img[-1.35em]{/images/withinseminar.png} $$

この式では、検出不可の場合と検出可の場合を適切に組み合わせ、不稼働度を正しく表現しています。検出可の場合において、$ \tau_n $での故障が瞬時に修理されること、およびその時点での不信頼度がリセットされることを反映しています。


今回は正解を与えずに矛盾を指摘して解消させましたが、うまく正解を導出できました。

なお、本稿はRAMS 2025に投稿予定のため一部を秘匿しています。


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

posted by sakurai on September 4, 2023 #656

人間:

$\tau_n$での検出可の確率を$\Pr\{\text{fault detected at }\tau_n\}=K (const.)$ 検出不可の確率を$\Pr\{\text{fault not detected at }\tau_n\}$、 時刻aからbまでにSMにフォールトが起きる確率を$\Pr\{\text{SM receives a fault in }(a, b]\}$ と表記してください。

ChatGPT: (中略)

指定された表記に基づいて、各確率を以下のように定義します。

  • $ \tau_n $での検出可の確率:$ \Pr\{\text{fault detected at } \tau_n\} = K $ (定数)
  • $ \tau_n $での検出不可の確率:$ \Pr\{\text{fault not detected at } \tau_n\} $
  • 時刻$ a $から$ b $までにSMにフォールトが起きる確率:$ \Pr\{\text{SM receives a fault in} (a, b]\} $

これらの確率を用いると、不稼働の条件を以下のように表現できます。

検出不可の場合

$$ \Pr\{\text{fault not detected at } \tau_n\} \cdot \Pr\{\text{SM receives a fault in } (0, t]\} $$

検出可の場合

$$ K \cdot \Pr\{\text{SM receives a fault in } (\tau_n, t]\} $$

上記の式は、検出の可・不可に基づいて、SMが不稼働になる確率を表現しています。

人間:

指数分布するフォールト事象について、以下のことが知られています。 $$\Pr\{\text{fault detected at }\tau_n\}=K (const.)$$ $$\Pr\{\text{SM receives a fault in }(a, b]\}=\int_a^b f_\text{SM}(x)dx = F_\text{SM}(b)-F_\text{SM}(a)$$ ただし、$f_\text{SM}(t)$はPDF, $F_\text{SM}(t)$はCDF tにおける不稼働度$Q_\text{SM}(t)$を、SMの不信頼度$F_\text{SM}(t)$を用いて表現してください。$u:=t-\tau_n$として$\tau$及び$\tau_n$を消去したうえで$t, u$で表現してください。exponential表現は使用しないこと。

ChatGPT:

指定された条件に基づいて、$ t $における不稼働度 $ Q_{\text{SM}}(t) $ を計算し、$ \tau $ 及び $ \tau_n $ を消去して $ t, u $ で表現します。変数 $ u $ は $ u = t - \tau_n $ と定義されています。

まず、前述の不稼働確率をSMの不信頼度 $ F_{\text{SM}}(t) $ として表現するために、以下の式を考えます。

検出不可の場合

$$ \begin{eqnarray} \Pr\{\text{fault not detected at } \tau_n\} \cdot \Pr\{\text{SM receives a fault in } (0, t]\} &=& (1 - K) \cdot (1 - e^{-\lambda t}) \\ &=& (1 - K) \cdot F_{\text{SM}}(t) \end{eqnarray} $$

検出可の場合

$$ \begin{eqnarray} K \cdot \Pr\{\text{SM receives a fault in } (\tau_n, t]\} &=& K \cdot (e^{-\lambda \tau_n} - e^{-\lambda t}) \\ &=& K \cdot (F_{\text{SM}}(\tau_n) - F_{\text{SM}}(t)) \end{eqnarray} $$

これらの式を合計すると、$ t $ における不稼働度 $ Q_{\text{SM}}(t) $ が得られます。

$$ \begin{eqnarray} Q_{\text{SM}}(t) &=& (1 - K) \cdot F_{\text{SM}}(t) + K \cdot (F_{\text{SM}}(\tau_n) - F_{\text{SM}}(t)) \\ &=& (1 - K) \cdot F_{\text{SM}}(t) + K \cdot F_{\text{SM}}(t - u) - K \cdot F_{\text{SM}}(t) \\ &=& F_{\text{SM}}(t) - K \cdot F_{\text{SM}}(t) + K \cdot F_{\text{SM}}(t - u) \end{eqnarray} $$

ここで、exponential表現を使用せず、$ \tau $ 及び $ \tau_n $ を消去して $ t, u $ で表現しました。この式が、指定された条件に基づく不稼働度の表現となります。


計算間違いがあるようです。さらに、単純に積分の式を当てはめても正解が出ません。


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

$Q(t)$とChatGPT (24)

posted by sakurai on August 31, 2023 #654

さらに、過去記事で8通りの事象の分類からの$Q_\text{SM}(t)$導出を実施しましたが、これをChatGPT-4に実行させてみます。

人間:

ISO 26262の範囲では故障率λは一定値をとると考える。従って、フォールトの分布は指数分布となります。

一般にはSM (Safety Mechanism)にフォールトが起きても直ちにVSG(Violation of a safety goal)とならないため、意図機能が動作している間に修理が可能であり、これをリペアラブルエレメントと言います。SMの故障率は$\lambda_\text{SM}$です。

定期検査修理スキームは以下のとおりです。2nd SMによるSMに対する定期検査が、周期$\tau$で行われます。 i番目の検査時刻は$\tau i, i=1,...,n$とするとき、最近の検査時刻を$τ_n$とすれば、$τ_n=nτ=\lfloor\frac{t}{\tau}\rfloor\tau$

定期検査により検出されたフォールトは全て、瞬時に修理されるものとします。ここで検査は確定的に実施されるため、区間$[(i-1)\tau, i\tau)$で生起した検出されるフォールトは全てiτにおいて修理されます。

SMのフォールト生起について、((0から$\tau_n$までの生起の有/無),($\tau_n$での検出の可/不可),($\tau_n$から$t$までの生起の有/無)) の8通りについて考え、$t$において不稼働の事象を洗い出してください。

なお、$\tau_n$での故障検出可とは、故障の有無を問わないものとします。一例として、故障が無いから検出できないとするのではなく、SMのうち検出可部分の故障が無いと読みます。この場合は故障の生起は無し、検出は有りとします。

ChatGPT: (中略)

指定されたシステムについて、フォールトの生起と検出に関連する8つの異なる事象を考えます。以下の条件を考慮して、不稼働の事象を洗い出します。

  1. $ 0 \leq t < \tau_n $: この区間では故障の検出は行われません。
  2. $ \tau_n \leq t < \tau_{n+1} $: この区間では故障が発生しても、次の検査時刻まで検出されません。

以下の8通りの事象を考えます。

  1. $ (0,\tau_n) $での故障生起なし、$ \tau_n $での検出不可、$ (\tau_n,t) $での故障生起なし
  2. $ (0,\tau_n) $での故障生起なし、$ \tau_n $での検出不可、$ (\tau_n,t) $での故障生起あり
  3. $ (0,\tau_n) $での故障生起なし、$ \tau_n $での検出可、$ (\tau_n,t) $での故障生起なし
  4. $ (0,\tau_n) $での故障生起なし、$ \tau_n $での検出可、$ (\tau_n,t) $での故障生起あり
  5. $ (0,\tau_n) $での故障生起あり、$ \tau_n $での検出不可、$ (\tau_n,t) $での故障生起なし
  6. $ (0,\tau_n) $での故障生起あり、$ \tau_n $での検出不可、$ (\tau_n,t) $での故障生起あり
  7. $ (0,\tau_n) $での故障生起あり、$ \tau_n $での検出可、$ (\tau_n,t) $での故障生起なし
  8. $ (0,\tau_n) $での故障生起あり、$ \tau_n $での検出可、$ (\tau_n,t) $での故障生起あり

したがって、不稼働の事象は以下の5つとなります。

  • 事象2: $ (0,\tau_n) $での故障が生起しないものの、$ (\tau_n,t) $で故障が生じ、そのまま不稼働となる。
  • 事象4: $ (0,\tau_n) $での故障が生起しないものの、$ (\tau_n,t) $で故障が生じる。この故障は$ \tau_n $で検出可能であったにも関わらず、次の検査まで検出されない。
  • 事象5: $ (0,\tau_n) $での故障が検出されず、$ \tau_n $での検出もなく、そのまま不稼働となる。
  • 事象6: $ (0,\tau_n) $での故障が検出されず、$ (\tau_n,t) $でさらに故障が生じ、不稼働となる。
  • 事象8: $ (0,\tau_n) $での故障生起あり、$ \tau_n $での検出可(瞬時に修理される)、$ (\tau_n,t) $での新たな故障生起あり(不稼働へ)

ご指摘いただいた内容を踏まえて、不稼働の事象は上記の5つとなります。再度ご確認いただけますでしょうか。

人間:

正解です。$t$においてSMが不稼働になる条件について、検出の可・不可にで大分類し、検出の可否とフォールトの生起区間の2つの事象の積にそれぞれ分解してください。 これはフォールトの生起と検出の可否が独立であるため可能です。 さらにフォールト生起区間を合成してください。合成とは、例えばフォールト生起区間$[t1, t2)$または$[t2, t3)$の事象を$[t1, t3)$とすることを意味します。

ChatGPT:

指定された条件に基づき、SMが不稼働になる条件を検出の可・不可によって大分類し、それぞれの事象を分解します。その後、フォールト生起区間を合成します。

検出不可の場合

検出不可の場合の不稼働事象は以下の3つでした。

  • 事象2: $ (0,\tau_n) $での故障生起なし、$ \tau_n $での検出不可、$ (\tau_n,t) $での故障生起あり
  • 事象5: $ (0,\tau_n) $での故障生起あり、$ \tau_n $での検出不可、$ (\tau_n,t) $での故障生起なし
  • 事象6: $ (0,\tau_n) $での故障生起あり、$ \tau_n $での検出不可、$ (\tau_n,t) $での故障生起あり
フォールト生起区間の合成
  • $ (0,\tau_n) $または$ (\tau_n,t) $の区間での故障生起

検出可の場合

検出可の場合の不稼働事象は以下の2つでした。

  • 事象4: $ (0,\tau_n) $での故障生起なし、$ \tau_n $での検出可、$ (\tau_n,t) $での故障生起あり
  • 事象8: $ (0,\tau_n) $での故障生起あり、$ \tau_n $での検出可(瞬時に修理)、$ (\tau_n,t) $での新たな故障生起あり
フォールト生起区間の合成
  • $ (\tau_n,t) $の区間での故障生起

結論

  • 検出不可の場合:フォールト生起区間が$ (0,\tau_n) $または$ (\tau_n,t) $であれば、SMが不稼働になる可能性がある。
  • 検出可の場合:フォールト生起区間が$ (\tau_n,t) $であれば、SMが不稼働になる可能性がある。

以上が、指定された条件に基づく不稼働の事象の分析です。

人間:

結論の時間区間を簡略化してください。

ChatGPT:

もちろんです。結論の時間区間を簡略化すると、以下のようになります。

  • 検出不可の場合:フォールト生起区間が $ (0,t) $ であれば、SMが不稼働になる可能性がある。
  • 検出可の場合:フォールト生起区間が $ (\tau_n,t) $ であれば、SMが不稼働になる可能性がある。

検出不可の場合では、検出が行われないため、全体の時間区間 $ (0,t) $ での故障生起が不稼働の条件となります。検出可の場合は、検出されれば修理されるため、$ \tau_n $ 以降の新たな故障生起が不稼働の条件となります。


うまく誘導した結果、正解の条件を導出しました。


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

$Q(t)$とChatGPT (23)

posted by sakurai on August 30, 2023 #653

人間:

$t, u$で表現してください。

ChatGPT:

指摘いただき、ありがとうございます。以下に修正した数式を示します。

検出可能な故障と検出不可能な故障の合計不稼働度 $ Q_\text{SM}(t) $ は、$ u = t - \tau_n $ として以下のように表されます。

$$ Q_\text{SM}(t) = Q_\text{SM}^{(1)}(t) + Q_\text{SM}^{(2)}(t) = F_\text{SM}(u) K + F_\text{SM}(t) (1 - K) $$

ここで、$ F_\text{SM}(u) $ は最後の検査以降の時間 $ u $ における不信頼度、$ F_\text{SM}(t) $ は全体の不信頼度を示します。また、$ K $ はフォールトの検出率を表しています。

定数を前置して、非検出の場合の項を前にしてください。

ご指摘いただき、ありがとうございます。指定通り、不稼働度 $ Q_\text{SM}(t) $ を再定義します。ここで、 $ u = t - \tau_n $ と置いています。

$$ Q_\text{SM}(t) = \img[-1.35em]{/images/withinseminar.png} $$

上記の式では、$ (1 - K) F_\text{SM}(t) $ 項が検出不可能な故障(検出されずに残る故障)を示し、$ K F_\text{SM}(u) $ 項が検出可能な故障(検出されて修理される故障)を示します。また、$ K $ はフォールトの検出率を表しています。


単純な計算ミス等が発生して少々もたつきましたが、正解を導き出しました。特に説明を求めていないにも関わらず、式の説明までしてくれるところが興味深いです。

なお、本稿はRAMS 2025に投稿予定のため一部を秘匿しています。


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

$Q(t)$とChatGPT (22)

posted by sakurai on August 29, 2023 #652

人間:

検出不可能な故障の説明が誤りです。いかなる検出周期でも検出できないのだから、$t$までに一度も修理がおきず、$t$における不稼働度は不信頼度に等しいわけです。

ChatGPT:

申し訳ありません、再度の間違いを訂正します。

検出不可能な故障:これはいかなる検査周期でも検出されない故障です。したがって、故障が発生した瞬間から、時刻 $ t $ まで一度も修理が行われず、その結果、不稼働度 $ Q_\text{SM}^{(2)}(t) $ はそのまま故障発生時から時刻 $ t $ までの不信頼度 $ F_\text{SM}(t) $ に等しくなります。

$$ Q_\text{SM}^{(2)}(t) = F_\text{SM}(t) $$

これを以前に計算した検出可能な故障についての不稼働度と合わせると、全体の不稼働度 $ Q_\text{SM}(t) $ は以下のようになります。

$$ Q_\text{SM}(t) = Q_\text{SM}^{(1)}(t) + Q_\text{SM}^{(2)}(t) = F_\text{SM}(t - \tau_n) K + F_\text{SM}(t) $$

これで、定期検査と修理を行うシステムにおける、時刻 $ t $ における不稼働度を表現したことになります。

$K$を見落としているようです。

おっしゃるとおり、私の最後の数式には$ K $が抜けていました。お詫び申し上げます。その修正は次のようになります。

検出可能な故障と検出不可能な故障の合計不稼働度 $ Q_\text{SM}(t) $ は以下のように表すことができます。

$$ Q_\text{SM}(t) = Q_\text{SM}^{(1)}(t) + Q_\text{SM}^{(2)}(t) = F_\text{SM}(t - \tau_n) K + F_\text{SM}(t) (1 - K) $$

この式で、$ K $はフォールト検出率を表しています。


かなり修正されて良くなってきました。あと一息です。


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


ページ: