Posts Tagged with "PUD"

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

新方式によるPUDの導出 (2)

posted by sakurai on April 2, 2024 #767

論文に掲載したPUDのグラフ(前項に掲載)を描画するプログラムを貼付します。コメントを含めほとんど全てをChatGPTが作成しました。

import numpy as np
import matplotlib.pyplot as plt
from functools import lru_cache

plt.rcParams['font.family'] = 'serif'
plt.rcParams['mathtext.rm'] = 'Times New Roman'
plt.rcParams['mathtext.fontset'] = 'cm'

# パラメータ設定
lambdaVal = 0.1  # 故障率
tau = 2  # 点検期間
K = 0.5  # 修復率
epsilon = 0.00001  # 不連続点の直前を示すために使用する小さい値

def R(t):
    """信頼度関数"""
    return np.exp(-lambdaVal * t)

def F(t):
    """故障関数"""
    return 1 - R(t)

def f(t):
    """密度関数"""
    return lambdaVal * R(t)

@lru_cache(maxsize=None)
def Q_n(t, n):
    """Q_nの再帰関数。結果をキャッシュする。"""
    if n == 0:
        return F(t)
    else:
        tau_n = n * tau
        tau_n_minus_1 = (n - 1) * tau
        return 

@lru_cache(maxsize=None)
def q_n(t, n):
    """q_nの再帰関数。結果をキャッシュする。"""
    if n == 0:
        return f(t)
    else:
        tau_n = n * tau
        tau_n_minus_1 = (n - 1) * tau
        return 

def q_approx(t):
    """tにおけるq(t)の近似値を計算する関数"""
    u = t % tau
    return (1 - K) * f(t) + K * f(u)

# グラフ描画
fontsize_axes_label = 24 * 1.8
fontsize_ticks = 16 * 1.8
fontsize_legend = 24 * 1.8

plt.figure(figsize=(18, 11))
#軸(spines)の線幅を太くする
ax=plt.gca()#現在の軸を取得
spine_width=2#軸の線幅
for spine in ax.spines.values():
    spine.set_linewidth(spine_width)

# 凡例用のダミープロット
plt.plot([], [], '-', label=f'$q_{{\\text{{exact}},n}}(t)$ for $\\lambda = {lambdaVal}$', color='black')
plt.plot([], [], '--', label=f'$q_{{\\text{{approx}}}}(t)$ for $\\lambda = {lambdaVal}$', color='black')

# 不連続性を示すために各区間を個別にプロット
for i in range(10):
    start = i * tau
    end = (i + 1) * tau -epsilon # epsilonを削除
    t_range_segment = np.linspace(start, end, 500)  # endの計算からepsilonを除去
    q_exact_segment_values = [q_n(t, i) for t in t_range_segment]
    q_approx_segment_values = [q_approx(t) for t in t_range_segment]

    # グラフ描画
    plt.plot(t_range_segment, q_exact_segment_values, 'k-', lw=2.5)
    plt.plot(t_range_segment, q_approx_segment_values, 'k--', lw=2.5)
    plt.plot(end, q_n(end, i), 'o', mfc='white', mec='black', mew=2, markersize=8)  # q_nの終点
    plt.plot(end, q_approx(end), 'o', mfc='white', mec='black', mew=2, markersize=8)  # q_approxの終点
    if (i > 0):
        # 不連続点で白丸を追加
        plt.plot(start, q_n(start, i), 'o', mfc='white', mec='black', mew=2, markersize=8)  # 区間の開始点
        plt.plot(start, q_approx(start), 'o', mfc='white', mec='black', mew=2, markersize=8)  # q_approxの開始点

plt.xlabel('Time (t)', fontsize=fontsize_axes_label)
plt.ylabel('$q(t)$', fontsize=fontsize_axes_label)
plt.xticks(np.arange(0, 11*tau, tau), fontsize=fontsize_ticks)
plt.yticks(fontsize=fontsize_ticks)
legend = plt.legend(fontsize=fontsize_legend)
for handle in legend.legendHandles:
    handle.set_linewidth(2.5)  # ここで線の太さを指定
plt.grid(True, color='gray', linestyle='-', linewidth=1.4)
plt.xlim(0,10*tau)
plt.subplots_adjust(left=0.15, bottom=0.14) 
plt.show()

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


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

新方式によるPUDの導出

posted by sakurai on April 1, 2024 #766

過去記事のPUAのグラフの続きです。

過去記事において、新方式$\dagger$による正確なPUA(758.4)である$Q_{\text{exact},n}(t)$を導出しましたが、本稿では正確なPUDである$q_{\text{exact},n}(t)$を導出します。これは $$ q_{\text{exact},n}(t)=\frac{dQ_{\text{exact},n}(t)}{dt} $$ であるため、過去記事におけるPUA(758.4)を時間微分するだけです(ただし、微分不可能な時刻$t=i\tau, i=1, 2, 3...$を除く)。従って、正確なPUDは、 $$ q_{\text{exact},n}(t)=f(t)+\img[-1.35em]{/images/withinseminar.png},\\ t\notin \{i\tau; i=1, 2, 3,...,n\},\ n=\lfloor t/\tau\rfloor\ge1\tag{766.1} $$ 一方、近似PUDは、同様に近似PUA(759.2)である$Q_\text{approx}(t)$を時間微分して、 $$ q_\text{approx}(t)=\frac{dQ_\text{approx}(t)}{dt}=(1-K_\text{MPF})f(t)+K_\text{MPF}f(u),\\ \ u=t\bmod\tau,\ t\notin \{i\tau; i=1, 2, 3,...,n\},\ n=\lfloor t/\tau\rfloor\tag{766.2} $$

正確なPUD及び近似PUDのグラフの$\lambda=0.1$、$0.01$、$0.001$の3例をChatGPTに書かせてみます。

図%%.1
図766.1 $q_{\text{exact},n}(t)$と$q_\text{approx}(t), \lambda=0.1$のグラフ

図%%.2
図766.2 $q_{\text{exact},n}(t)$と$q_\text{approx}(t), \lambda=0.01$のグラフ

図%%.3
図766.3 $q_{\text{exact},n}(t)$と$q_\text{approx}(t), \lambda=0.001$のグラフ

PUDもPUAと同様に$\lambda$が小さければカーブは直線に近づき、誤差が少なくなります。

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


$\dagger$2nd SMのDCである$K_\text{MPF}$を条件付き確率と変更する方式


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

新方式によるPUAの導出 (4)

posted by sakurai on March 19, 2024 #757

ここまで見たように、PMHFの正確な議論のためには論文のロジックをPUA起点からPUD起点に組みかえる必要があります。 $$ M_\text{PMHF}=\frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}q(t)dt=\frac{1}{T_\text{lifetime}}Q(T_\text{lifetime}) $$

現在までの流れ:

  • Kパラメータは条件付き確率ではないと仮定する
  • PUA $Q(t)$を導出する。その前提は「周期間での修理量は常に$KF(\tau)$に等しい」⇒これより $$ Q(t)=(1-K)F(t)+KF(u), u=t\bmod\tau $$
  • PUD $q(t)$はPUA $Q(t)$を時間微分したもの
  • PMHFは平均PUD、すなわちPUA $Q(t)$を車両寿命で割ったものとして導出する

改訂版の流れ:

  • Kパラメータは条件付き確率と仮定(変更)する
  • Kパラメータから微分方程式PUD $q(t)$を導出する $$ q(t)dt=R(t)\lambda dt=f(t)dt $$
  • 「周期の最後で検出し修理する」のと「瞬間瞬間で検出し色付けしておき最後で修理する」のとが等価であることを示す
  • 修理すればそれは良品となるため、周期の最後では不良品のみがLFとして残ることを示す
  • PUDの積分方程式$\int q(t)$を解いて正確なPUA $Q(t)$を導出する $$ Q(t)=K_\text{MPF}R(n\tau)F(u) ,\ \ s.t.\ n=\lfloor \frac{t}{\tau}\rfloor, u=t\bmod\tau\tag{5} $$
  • $R(n\tau)\approx1$の議論を行い、近似PUA(現行のPUA)を導出⇒ここから現在までの流れに合流する
  • PMHFは平均PUD、すなわちPUA $Q(t)$を車両寿命で割ったものとして導出する

こうすることで今までの議論が全て成立することになります。

一例をあげると、 $$ \begin{eqnarray} \begin{cases} \lambda&=10FIT=1.0\times10^{-8}\\ n\tau&\approx T_\text{lifetime}=1.0\times10^{5} \end{cases} \end{eqnarray} $$ これらの数値を用いれば、 $$ R(n\tau)=0.999 $$ となり、ほぼ1であることからこの項は無視できることがわかります。逆に$\lambda$が513[FIT]未満であれば1とみなしても5%程度の誤差で収まります。

注意:
Kパラメータを条件付き確率と仮定することには特に問題は有りません。一方で本記事も、上記のこのマーカーの箇所が誤りのようです。上記は修理可能部分の不信頼度は累積されないとして計算しましたが、実際には不信頼度は累積され、区間の最後で修理されます。従って、不信頼度の累積は高い不稼働度に繋がり、本計算では実際より低く見積もることになります。

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


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

PUA関連論文Hokstad1997 (2)

posted by sakurai on March 12, 2024 #752

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

モデルDにおいては、 $$ I(t)=f(t-i\tau),\ t\in(i\tau, (i+1)\tau), i=0, 1, 2, ... $$ これは周期関数としては正しいですが、DC=100%として100%修理されていることに改善の余地があります本来は2nd SMによる検出可否に分解し、露出時間は検出可の部分は$\tau$とし、不可の部分は車両寿命とすべきです。検出可否を考慮に入れれば、 $$ q(t)=(1-K)f(t)+Kf(u), u=t\bmod \tau $$ となりPUDの一般式となります。

また、著者によるmean number of failure (cumulative intensity)は、 $$ \require{color} \definecolor{pink}{rgb}{1.0,0.8,1.0} M(t)=\colorbox{pink}{$i$}F(\tau)+F(t-i\tau),\ t\in(i\tau, (i+1)\tau), i=0, 1, 2, ... $$ となっており、初項の$iF(\tau)$に疑問があります。

初項の導出の理由を示す部分を見てみましょう。原文では$n$となっていますが$i$に変えたのは、我々は$n=\lfloor t/\tau\rfloor$として使用しているためです。

As a last feature of model D observe that the mean number of failures up to time $t$ equals
モデルDの最後の特徴として、時刻$t$までの平均故障数が次に等しいことがわかる $$ M(t) = n\cdot F(\tau)+F(t - n\cdot\tau),\ \text{for }n\tau \le t\lt(n + 1)\tau. $$ In each interval there is either one failure or no failure, and of course $M(\tau)=F(\tau)=1-R(\tau)$ equals the probability of having one failure in the interval. In particular $M(n\cdot\tau)=n\cdot F(\tau)$, which is the relation to be used for estimating $i_{\tau}$.
各区間には故障が1回あるかないかであり、当然$M( \tau)=F( \tau)=1-R( \tau)$ はその区間に故障が1回ある確率に等しい。特に、$M(n\cdot \tau)=n\cdot F(\tau)$は、$i_{\tau}$を推定するための関係式である。

一区間の故障確率は、$M(\tau)=F(\tau)$であるから、$i\tau$における故障確率は$M(i\tau)=iF(\tau)$だとこのとですが、論文の最後のせいか十分な検討無しに書いたように思われます。そもそも$M(t)$はunavailabilityであるため、1を超えることはないはずです。

検証のためにChatGPTにより$M(t)$をグラフ化すると、

図%%.1
図752.1 $M(t)=iF(\tau)+F(t-i\tau), i=\text{floor}(t/\tau)$

となり、明らかにおかしいです。$M(t)$は我々の記法によれば、PUAであり、 $$ Q(t)=(1-K)F(t)+KF(u), u=t\bmod \tau $$ と書くことができます。

本論文は、様々なモデルや関数の定義を与える良い論文ではあるものの、昔の論文のせいかグラフ図が手書きで不正確です。上記の誤りがあるだけでなく、PUAの一般式も求められていません。


$\dagger$ P. Hokstad, “The Failure Intensity Process and the Formulation of Reliability and Maintenance Models,” Rel. Eng. Syst. Safety, vol. 58, no. 1, pp 69–82, (Oct.) 1997.


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

$Q(t)$とChatGPT (13)

posted by sakurai on August 8, 2023 #640

人間:

ChatGPTはAIで機械であるのに、機械的な計算誤りをするのはなぜでしょうか?具体的には、 $$Q(t)=(1−K_\text{MPF})F(t)+K_\text{MPF} F(u)$$ を時間微分したら、 $$q(t)=\frac{dQ(t)}{dt}=(1−K_\text{MPF})f(t)−K_\text{MPF} f(u)$$ となると回答しました。これは単純な計算ミスですが、どうしてミスしたのでしょうか?

ChatGPT:

大変申し訳ございません。ChatGPTが数学的なミスを犯す理由は、その基本的な動作の仕組みに由来します。GPTは、大量のテキストデータから人間の言語を模倣する方法を学び、特定の入力に対する最も適切な出力を予測します。しかし、それは単に学習データ内のパターンを検出することでこれを達成しており、内部的には数学的な演算を理解しているわけではありません。

したがって、ユーザーが求めた微分の計算を行うとき、ChatGPTは実際に微分の計算を実行するわけではなく、訓練データ内で見たパターンに基づいて最も適切な答えを生成しようとします。そのため、訓練データに含まれるパターンが間違っていたり、パターンが不完全だったりすると、結果として間違った答えを出力することがあります。

また、微分などの数学的操作は、文脈によって適用されるべき正しい規則が異なることがしばしばあります。これに対応するためには、真の数学的理解が必要で、現行のAIモデルではこれを完全には達成できません。

以上の理由から、ChatGPTは時折、数学的な誤りを犯すことがあります。それらのミスは、現行のAI技術の制限を反映したものであり、人間が間違いを犯すのとは根本的に異なる形で発生します。


「内部的には数学的な演算を理解しているわけでは」無いとのことです。むしろ、単なるパターンマッチでこれほどの推論ができるものでしょうか。


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

$Q(t)$とChatGPT (12)

posted by sakurai on August 7, 2023 #639

人間:

説明が間違いです。$f(t)$は故障率ではなくPDFと呼ばれます。

ChatGPT:

ご指摘いただき、ありがとうございます。修正いたします。

確かに、$f(t)$ は確率密度関数(PDF: Probability Density Function)または故障率密度(PDT: Point Density of Failures)と呼ばれ、時間 $t $における故障の発生確率密度を表します。

同様に、$f(u)$ は時間 $u$ での故障の発生確率密度を表し、$K_\text{MPF}$ は検出率を表します。これは、時間$ t $と $u=t-n\tau$ における故障の一部が検出され修理されることを示しています。

したがって、$q(t)$ は以下のように表されます。

$$ q(t) = (1-K_\text{MPF})f(t) - K_\text{MPF} f(u) $$

ここで、$u=t-n\tau$ です。これは、故障が発生し、それが検出され修理されない確率と、前回の修理以降の故障が検出・修理される確率の差を表しています。

人間:

差ではなく和ではないですか?さらに最後の行ですが、$f(t)$は確率ではなく、確率密度です。

ChatGPT:

ご指摘いただき、ありがとうございます。その通りです。私の説明は誤っていました。

確かに、$f(t)$ は確率ではなく、確率密度関数(Probability Density Function、PDF)です。これは、時間 $t$ における故障の確率密度を表します。

同様に、$f(u)$ は時間 $u$ での故障の確率密度を表します。

したがって、PUD (Point Unavailable Density) の $q(t)$ は以下のように表されます:

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

これは、時間 $t$ における故障の確率密度とそれが未検出・未修理である確率、および前回の修理以降の故障が検出・修理される確率密度の和を表しています。


ChatGPTは機械にも関わらずよく計算間違いをします。機械なら機械的な計算くらいは間違えないで欲しいものです。ついでにミスの理由を聞いてみます。

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


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

$Q(t)$とChatGPT (11)

posted by sakurai on August 4, 2023 #638

人間:

$Q(t)$ (Point Unavailability)を時間微分したものが$q(t)$ (Point Unavailable Density; PUD)ですが、どのような式になりますか?

ChatGPT:

不稼働度 $Q(t)$ の時間微分は、その瞬間の不稼働確率密度 $q(t)$ を与えます。先ほどの $Q(t)$ の式から、以下のように $q(t)$ を得ることができます。

$$ q(t) = \frac{dQ(t)}{dt} $$

この微分を計算すると、次の結果が得られます。

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

ここで、$f(t)$ は時間 $t$ における故障率(PDT: Point Density of Failures)であり、 $f(u)$ は時間 $u$ における故障率です。また、 $K_\text{MPF}$ は検出率を表します。これは、時間 $t$ と $u=t-n\tau$ における故障の一部が検出され修理されることを示しています。


第2項の符号が誤っています。また、説明において、$f(t)$を誤って「故障率」と呼んでいるのは見過ごせません。

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


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

PMHF論文sae2020 (6)

posted by sakurai on August 17, 2020 #295

ISO 26262とPMHFのコンセプト(続き)

論文sae2020$\dagger$のISO 26262とPMHFのコンセプト(続き)です。

The PMHF and all the related failure rate calculations in a product development team are often handled by a reliability engineer and even though the standard uses the metrics reflecting the probability of failure (or unreliability in reliability engineer’s terms), some of the approaches and metrics used by ISO 26262 are not that of reliability engineering practice. Therefore, the objective of this paper is to explain some of the metrics and calculations suggested by the Functional Safety standard in reliability engineering terms in order to make their application easier.

製品開発チームにおける PMHF や関連するすべての故障率計算は信頼性技術者が担当することが多く、規格では故障の確率(信頼性技術者の用語では不信頼度)を反映したメトリクスを使用しているにもかかわらず、ISO 26262 で使用されているアプローチやメトリクスの中には、信頼性工学の実務とは異なるものもある。そこで、本稿の目的は、機能安全規格で提案されているメトリクスや計算の一部を信頼性工学の用語で説明し、その適用を容易にすることである。

「故障の確率(信頼性技術者の用語では不信頼度)」という表現は、ISO 26262的には誤りです。故障の確率や不信頼度(これらは修理を含まない)ではなく修理を考慮した不稼働度が正しい表現です。次の章で説明しますが、これについてはほとんどの論文が同じ誤りを犯しています。その理由は、規格に数学的な説明が無いためであり、これはPMHF式を自ら導出して初めて理解されることです。

PMHFと基本的な信頼性計算

In order to link the PMHF and reliability terminology, certain basics of reliability calculations need to be briefly covered here which can be found in multiple sources (see, for example, [3]). If the random failures in the field can be modeled by a statistical distribution with the probability density function (pdf) f(t), then the cumulative distribution function (CDF) F(t) representing the probability of failure at the time t or unreliability can be calculated as:

PMHF と信頼性の用語を結びつけるために、信頼性計算のある種の基礎をここで簡単に説明する必要があります。現場でのランダムな故障が確率密度関数(pdf) f(t)を持つ統計分布でモデル化できるならば、時刻 t での故障の確率または信頼性の低下を表す累積分布関数(CDF) F(t)は次のように計算できます。

故障だけを考えれば、PMHFは確率密度関数(PDF)あるいは、その累積分布関数である不信頼度(CDF)により表されるのですが、一方ISO 26262では2nd order SMによる周期的な故障検出と修理を仮定しています。従って、修理を考慮すると、不信頼度$F(t)$は不稼働度$Q(t)$に変更する必要があり、確率密度$f(t)$は不稼働密度(PUD)$q(t)$に変更する必要があります。


$\dagger$: Kleyner, A. and Knoell, R., “Calculating Probability Metric for Random Hardware Failures (PMHF) in the New Version of ISO 26262 Functional Safety - Methodology and Case Studies,” SAE Technical Paper 2018-01-0793, 2018


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

posted by sakurai on October 16, 2018 #66

ISO/TR 12489:2013(E)において、信頼性用語の定義がまとめてあるため、それを記載します。ただし、弊社の考えを交えており、そのまま引用しているわけではありません。以下に$X_\text{item}$をアイテム$item$の無故障運転継続時間(failure free operating time)とするとき、

信頼度(Reliability)

$$ R_\text{item}(t):=\Pr\lbrace\text{item not failed in }(0, t]\rbrace=\Pr\lbrace\mathrm{item\ up\ at\ }t\rbrace=\Pr\lbrace t\lt X_\text{item}\rbrace \tag{66.1} $$ 非修理系システムで、時刻$t$までに一度も故障していない確率。非修理系なので、一度でも故障すると故障しっぱなしになるため、一度も故障していない確率です。

不信頼度(Unreliability, Cumulative Distribution Function, CDF)

$$ F_\text{item}(t):=\Pr\lbrace\mathrm{item\ failed\ in\ }(0, t]\rbrace=\Pr\lbrace\mathrm{item\ down\ at\ }t\rbrace=\Pr\lbrace X_\text{item}\le t\rbrace \tag{66.2} $$ 非修理系システムで、時刻$t$までに故障する確率。

非修理系なので、一度でも故障すると故障しっぱなしになるため、時刻が0からtまでに故障したことがある確率です。等号は有っても無くても値は変わりません。

故障密度(Probability Density, Probability Density Function, PDF)

$$ f_\text{item}(t):=\lim_{dt \to 0}\frac{\Pr\lbrace\mathrm{item\ fails\ in\ }(t, t+dt]\cap\mathrm{item\ up\ at\ } t\rbrace}{dt}=\frac{dF_\text{item}(t)}{dt} \tag{66.3} $$ 又は、微小故障確率形式として、 $$ f_\text{item}(t)dt=\Pr\{\mathrm{item\ fails\ in\ }(t, t+dt]\cap\mathrm{item\ up\ at\ } t\}\\ =\Pr\lbrace t\lt X_\text{item}\le t+dt\rbrace\\ =\Pr\{X_\text{item}\in dt\} \tag{66.4} $$ 非修理系システムで、時刻$t$で、単位時間あたりに故障する確率。正確には、時刻$t$から$t+dt$までに故障する微小確率を$dt$で割り、単位時間あたりに直したもの。

【証明】 条件付き確率公式及び、確率の加法定理を用いて、 $$ f_\text{item}(t):=\lim_{dt \to 0}\frac{\Pr\lbrace t\lt X_\text{item}\le t+dt\rbrace}{dt} \\ =\lim_{dt \to 0}\frac{\Pr\lbrace t\le X_\text{item}\rbrace+\Pr\lbrace X_{item}\le t+dt\rbrace - \Pr\lbrace t\le X_\text{item} \cup X_\text{item}\le t+dt\rbrace}{dt} \\ =\lim_{dt \to 0}\frac{R(t)+F(t+dt)-1}{dt}=\lim_{dt \to 0}\frac{F(t+dt)-F(t)}{dt}=\frac{dF_\text{item}(t)}{dt} \tag{66.5} $$

(瞬間)故障率(Failure Rate)

$$ \lambda_\text{item}(t):=\lim_{dt \to 0}\frac{\Pr\lbrace\mathrm{item\ fails\ in\ }(t, t+dt]\ |\ \mathrm{item\ not\ failed\ at\ } t\rbrace}{dt}=\frac{f_\text{item}(t)}{R_\text{item}(t)} \tag{66.6} $$ 非修理系システムで、時刻$t$で稼働している条件において、単位時間あたりに故障する条件付き確率。正確には、時刻$t$から$t+dt$までに故障する条件付き確率を$dt$で割り、単位時間あたりとしたもの。ISO 26262の場合は、確率分布が指数分布のため、故障率は定数として扱います。

【証明】 条件付き確率の式及び、上記$f_\text{item}(t)$の式を用いて $$ \lambda_\text{item}(t):=\lim_{dt \to 0}\frac{\Pr\lbrace X_\text{item}\le t+dt \cap t \le X_\text{item}\rbrace}{dt}\frac{1}{\Pr\lbrace t \le X_\text{item}\rbrace}=\frac{f_\text{item}(t)}{R_\text{item}(t)} \tag{66.7} $$ 又は、微小故障条件付き確率形式として、 $$ \lambda_\text{item}(t)dt=\Pr\lbrace\mathrm{item\ fails\ in\ }(t, t+dt]\ |\ \mathrm{item\ not\ failed\ at\ } t\rbrace\\ =\Pr\{t\lt X_\text{item}\le t+dt\ |\ t\le X_\text{item}\}\\ =\Pr\{X_\text{item}\in dt\ |\ t\le X_\text{item}\} \tag{66.8} $$

稼働度((Point) Availavility)

$$ A_\text{item}(t):=\Pr\lbrace\mathrm{item\ up\ at\ }t\rbrace \tag{66.9} $$ 修理系システムで、時刻$t$で稼働している確率。

不稼働度((Pont) Unavailavility, PUA)

$$ Q_\text{item}(t):=\Pr\lbrace\mathrm{item\ down\ at\ }t\rbrace=1-A_\text{item}(t) \tag{66.10} $$ 修理系システムで、時刻$t$で不稼働な確率。

不稼働密度((Point) Unavailability Density, PUD)

$$ q_\text{item}(t):=\lim_{dt \to 0}\frac{\Pr\lbrace\mathrm{item\ down\ in\ }(t,t+dt]\cap\mathrm{item\ up\ at\ } t\rbrace}{dt} =\frac{dQ_\text{item}(t)}{dt} \tag{66.11} $$ 又は、微小不稼働確率形式として、 $$ q_\text{item}(t)dt=\Pr\lbrace\mathrm{item\ down\ in\ }(t,t+dt]\cap\mathrm{item\ up\ at\ } t\rbrace \tag{66.12} $$ 時刻$t$で単位時間あたりに不稼働になる確率。正確には、時刻$t$から$t+dt$までに不稼働になる微小確率を$dt$で割り、単位時間あたりに直したもの。failure frequency (故障頻度), unconditional failure intensity (UFI; 無条件故障強度), ROCOF(Rate of OCcurrence Of Failure)とも呼ばれる。

一方、PUDは修理系サブシステムが対象でかつ定期検査修理(PIR)が前提。

平均不稼働密度(Average PUD)

PUDの車両寿命間$T_\text{lifetime}$の平均値を求めると、平均不稼働密度(Average PUD)は、積分の平均値の定理より、 $$ \overline{q_\text{item}}=\frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}q_\text{item}(t)dt=\frac{1}{T_\text{lifetime}}Q_\text{item}(T_\text{lifetime}) \tag{66.13} $$ AROCOFも同様な定義だが、平均不稼働密度(Average PUD)は修理系サブシステムが対象でかつ定期検査修理(PIR)が前提。

PFH(Probability of Failure per Hour)

注意:Probablity of Failure per Hourは古い定義で現在はaverage failure frequency (平均故障頻度), average unconditional failure intensity (平均無条件故障強度)。

$$ PFH:=\overline{q_\text{item}}=\frac{1}{T_\text{lifetime}}\int_0^{T_\text{lifetime}}q_\text{item}(t)dt=\frac{1}{T_\text{lifetime}}Q_\text{item}(T_\text{lifetime})\\ =\frac{1}{T_\text{lifetime}}\Pr\lbrace\mathrm{item\ down\ at\ }T_\text{lifetime}\rbrace, \text{ただし}T_\text{lifetimeは車両寿命} \tag{66.14} $$ PMHFも同様の定義だが、平均不稼働密度(Average PUD)は修理系サブシステムが対象でかつ定期検査修理(PIR)が前提。

Vesely故障率(Vesely Failure Rate)

修理系システムで、時刻$t$で稼働している条件において、単位時間あたりに不稼働になる条件付き確率。conditional failure intensity (条件付き故障強度)とも呼ばれる。

$$ \lambda_\text{v,item}(t):=\lim_{dt \to 0}\frac{\Pr\lbrace\mathrm{item\ down\ in\ }(t, t+dt]\ |\ \mathrm{item\ up\ at\ } t\rbrace}{dt}=\frac{q_\text{item}(t)}{A_\text{item}(t)} \tag{66.15} $$


以下はISO/TR 12489にはない確率関数です。

修理度(Repairability)

修理系システムで、時刻$t$において不稼働度が修理されるその割合。修理時間は無視できるものとする。 $$ M(t):=\Pr\lbrace\text{repaired at }t\ |\ \text{failed at }t\rbrace\tag{66.16} $$


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

posted by sakurai on September 23, 2018 #62

主機能M及び安全機構SMのペアについて、マルコフ状態遷移図を書いていきます。 まず、Mはアンリペアラブルであることを前提とし、SMはリペアラブルであることを前提とします。 しかし、MがフォールトしてもSMがそれをVSG(安全目標侵害)抑止している場合には、次のSMのフォールトは直ちにSG侵害となるため、一旦Mがフォールトとなった時点でSMはアンリペアラブルとなります。

まず、時刻$t$において、$\lbrace \mathrm{OPR:\ M\ up\ at\ }t\cap \mathrm{SM\ up\ at\ }t\rbrace$, $\lbrace \mathrm{SPF:\ M\ down\ at\ }t\cap\mathrm{VSG\ of\ M\ not\ preventable}\cap\mathrm{SM\ up\ at\ }t\rbrace$, $\lbrace \mathrm{LAT1:\ M\ down\ at\ }t\cap\mathrm{VSG\ of\ M\ preventable}\cap\mathrm{SM\ up\ at\ }t\rbrace$, $\lbrace \mathrm{LAT2:\ M\ up\ at\ }t\cap\mathrm{SM\ down\ at\ }t\rbrace$, $\lbrace \mathrm{DPF:\ M\ down\ at\ }t\cap\mathrm{SM\ down\ at\ }t\rbrace$,の5状態があり、$t$から$t+dt$までの微小時間$dt$の間に遷移する微小確率PUDを求めます。

図のほうがわかりやすいので、以下にマルコフ状態遷移図を示します。

図%%.1
図62.1 M/SMモデルのマルコフ状態遷移図

マルコフ状態遷移図でのOPR→SPF

図より微小不稼働確率をPUDで表すと、 $$ q_{M,SPF}(t)dt=\Pr\{\mathrm{OPR\ at\ }t\cap\mathrm{M\ down\ in\ }(t, t+dt]\cap\mathrm{VSG\ of\ M\ not\ preventable}\} \\ =\Pr\{\mathrm{M\ up\ at\ }t\cap\text{SM up at }t\cap\mathrm{M\ down\ in\ }(t, t+dt]\cap\mathrm{VSG\ of\ M\ not\ preventable}\} \\ =\Pr\{\mathrm{VSG\ of\ M\ not\ preventable}\}\Pr\{\mathrm{M\ fails\ in}(t, t+dt]\ |\ \mathrm{M\ up\ at\ }t\}\Pr\{\mathrm{M\ up\ at\ }t\}\Pr\{\text{SM up at }t\}\\ =(1-K_{M,FMC,RF})A_{SM}(t)R_{M}(t)\lambda_{M}dt=(1-K_{M,FMC,RF})A_{SM}(t)f_{M}(t)dt\tag{62.1} $$

マルコフ状態遷移図でのLAT2→DPF

図より微小不稼働確率をPUDで表すと、 $$ q_{M,DPF}(t)dt=\Pr\{\mathrm{LAT2\ at\ }t\cap\mathrm{M\ down\ in\ }(t, t+dt]\}\\ =\Pr\{\mathrm{SM\ down\ at\ }t\cap\mathrm{M\ up\ at\ }t\cap\mathrm{M\ down\ in\ }(t, t+dt]\}\\ =\Pr\{\mathrm{SM\ down\ at\ }t\rbrace\Pr\{\mathrm{M\ fails\ in}(t, t+dt]\ |\ \mathrm{M\ up\ at\ }t\}\Pr\{\mathrm{M\ up\ at\ }t\}\\ =Q_{SM}(t)R_{M}(t)\lambda_{M}dt=Q_{SM}(t)f_{M}(t)dt\tag{62.2} $$

主機能フォールトによるVSG

以上から(62.1)と(62.2)を加えれば、MによりSPFもしくはDPFとなる場合の微小遷移確率が求められ、 $$ q_{M}(t)dt=q_{M,SPF}(t)dt+q_{M,DPF}(t)dt=\left[1-K_{M,FMC,RF}A_{SM}(t)\right]f_{M}(t)dt\\ =\img[-1.35em]{/images/withinseminar.png} ただしu\equiv t\bmod\tau_{SM}\tag{62.3}$$ となります。


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


ページ: