Posts Tagged with "ISO 26262"

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

ChatGPTにグラフを3本書いて貰います。区間差分をどのように取るかの違いで3種類考えられます。PIRの原則ではこの区間差分(検査区間内の累積分布)の$K_\text{MPF}$倍が修理度となります。

  • 区間内の累積分布=区間不稼働度の差分: $Q_\text{exact}(t)$においては$Q(i\tau)-Q((i-1)\tau)$
  • 区間内の累積分布=区間不信頼度が一定: $Q_\text{approx1}(t)$においては$-F(\tau)$
  • 区間内の累積分布=区間不信頼度の差分: $Q_\text{approx2}(t)$においては$F(i\tau)-F((i-1)\tau)$

$\dagger Q_\text{approx2}(t)$において区間不信頼度($K_\text{MPF}$倍する前の修理度)は、 $$ \require{cancel} F(i\tau)-F((i-1)\tau)=\bcancel{1}-e^{-i\tau}-\bcancel{1}+e^{-(i-1)\tau}\\ =e^{-i\tau}\left(e^{\tau}-1\right)=-F(\tau)e^{-i\tau}=-F(\tau)R(i\tau) $$ 修理度の絶対値が$R(i\tau)$だけ次第に小さくなりますが、それを無視し$R(i\tau)\approx1$とすれば$Q_\text{approx1}(t)$と同じになります。

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)

@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_approx1(t):
    """tにおけるQ(t)の近似値を計算する関数"""
    u = t % tau
    return (1 - K) * F(t) + K * F(u)

# 定義された Q_approx2(t) を追加して描画します。

def Q_approx2(t, n):
    """tにおけるQ_approx2の近似値を計算する関数"""
    return F(t) - n * K * (F(t) - F(t - tau))
    
# グラフ描画
fontsize_axes_label = 24 * 1.2
fontsize_ticks = 16 * 1.2
fontsize_legend = 24 * 1.2

# グラフ描画
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=r'$Q_{\mathrm{exact},n}(t)$ for $\lambda = 0.1$', color='black')
plt.plot([], [], '-', label=r'$Q_{\mathrm{approx1}}(t)$ for $\lambda = 0.1$', color='blue')
plt.plot([], [], '-', label=r'$Q_{\mathrm{approx2}}(t)$ for $\lambda = 0.1$', color='green')

# 不連続性を示すために各区間を個別にプロット
for i in range(10):
    start = i * tau
    end = (i + 1) * tau - epsilon
    t_vals = np.linspace(start, end, 200)
    Q_exact_vals = [Q_n(t, i) for t in t_vals[:-1]]  # 区間の最後の点を除外してプロット
    Q_approx1_vals = [Q_approx1(t) for t in t_vals[:-1]]
    Q_approx2_vals = [Q_approx2(t, i) for t in t_vals[:-1]]
    
    plt.plot(t_vals[:-1], Q_exact_vals, 'k-', lw=2.5)
    plt.plot(t_vals[:-1], Q_approx1_vals, 'b-', lw=2.5)
    plt.plot(t_vals[:-1], Q_approx2_vals, 'g-', lw=2.5)

    # 区間の終わりに白丸をプロット
    plt.plot(end, Q_n(end, i), 'o', mfc='white', mec='black', mew=2, markersize=8)
    plt.plot(end, Q_approx1(end), 'o', mfc='white', mec='black', mew=2, markersize=8)
    plt.plot(end, Q_approx2(end, i), 'o', mfc='white', mec='black', mew=2, markersize=8)

plt.xlabel('Time (t)', fontsize=fontsize_axes_label)
plt.ylabel(r'$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.ylim(bottom=0)
plt.xlim(0, 10 * tau)
plt.subplots_adjust(left=0.14, bottom=0.14)
plt.show()

図%%.1
図877.1 3つのグラフ

このように、$Q_\text{exact}(t)$が最も正確な不稼働度(PUA)であり、上記$\dagger$のように修理度を大と近似すると$Q_\text{approx1}(t)$で下界となり、修理度を小と近似すると$Q_\text{approx2,n}(t)$で上界となることが分かります。


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


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

posted by sakurai on September 26, 2024 #876

続きです。ChatGPTの出力を見やすく加工(キャンセル等)・修正しています。


次に、シグマの部分の式を解析的に簡約化し整理します。

$$ \require{cancel} \sum_{i=1}^{n} \left[ F(i\tau) - F\left( (i - 1)\tau \right) \right] \cdot R(t - i\tau) =\sum_{i=1}^{n} \left[ \bcancel{1}- R(i\tau) - \bcancel{1} +R\left( (i-1)\tau \right) \right] R(t - i\tau) $$

シグマ内の項を$R(t)$のメモリーレス性及び分配則を用いて展開します。

$$ R\left( (i-1)\tau \right) R(t - i\tau) - R(i\tau) R(t - i\tau)\\ = R\left((\bcancel{i}-1)\tau + t - \bcancel{i\tau} \right) - R\left(\bcancel{i\tau} + (t - \bcancel{i\tau}) \right)= R(t - \tau) - R(t) $$

シグマを展開すると、カッコ内は$i$には依存しないため$n$倍となります。

$$ \sum_{i=1}^{n} \left[ R\left( (i-1)\tau \right) - R(i\tau) \right] R(t - i\tau) = n R(t - \tau) - n R(t) $$

以上より、元のシグマの式は以下のように整理されます。

$$ A(t) = R(t) + K_{\text{MPF}}\sum_{i=1}^{n} \left[ F(i\tau) - F\left( (i - 1)\tau \right) \right] \cdot R(t - i\tau)= R(t) + nK_{\text{MPF}} \left[ R(t - \tau) - R(t) \right] $$

よって、$Q_\text{approx2}(t)$は、 $$ Q_\text{approx2}(t)= F(t) - n K_{\text{MPF}} \left[ F(t) - F(t - \tau) \right] $$

となります。

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


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

posted by sakurai on September 25, 2024 #875

ChatGPTがバージョンアップして推論が強化されたようなので、早速PUAの導出を試しました。


連続修理の場合:

稼働度 $ A(t) $ は以下の式で表されます:

$$ A(t) = R(t) + \displaystyle \int_{0}^{t} m(x) \cdot R(t - x) \, dx $$

ここで、$ R(t) $ は時刻 $ t $ での信頼度、$ m(x) $ は時刻 $ x $ でのリニューアル密度です。

周期 $ \tau $ の定期修理の場合:

修理が周期的に時刻 $ x = i \tau $($ i = 1, 2, \dots, n$)で行われるため、リニューアル密度 $ m(x) $ はこれらの時刻でのディラックのデルタ関数の和として表されます:

$$ m(x) = \sum_{i=1}^{n} m_i \delta(x - i\tau) $$

ここで、$ m_i $ は各修理時刻での修理量であり、$ \delta(x - i\tau) $ は時刻 $ x = i\tau $ でのディラックのデルタ関数です。

この場合、稼働度 $ A(t) $ は次のように変形されます:

$$ \begin{align} A(t) &= R(t) + \int_{0}^{t} \left( \sum_{i=1}^{n} m_i \delta(x - i\tau) \right) \cdot R(t - x) \, dx \\ &= R(t) + \sum_{i=1}^{n} m_i \cdot R(t - i\tau) \end{align} $$

修理量の計算:

各修理時刻 $ i\tau $ での修理量 $ m_i $ は、検査区間内の故障の累積に比例し、次のように表されます:

$$ m_i = \int_{(i-1)\tau}^{i\tau} m(x) \, dx = K_{\text{MPF}} \left[ F(i\tau) - F\left( (i - 1)\tau \right) \right] $$

ここで、

  • $ K_{\text{MPF}} $ は定数、
  • $ f(x) $ は故障密度関数、
  • $ F(x) = \int_{0}^{x} f(u) \, du $ は累積分布関数です。

したがって、周期 $ \tau $ の定期修理の場合の稼働度は:

$$ A(t) = R(t) + \sum_{i=1}^{n} K_{\text{MPF}} \left[ F(i\tau) - F\left( (i - 1)\tau \right) \right] \cdot R(t - i\tau) $$

これにより、連続修理の場合の方程式が、定期修理の場合には離散的な和を含む形に変化し、$ m(x) $ も適切に考慮されます。


今回ChatGPTは各検査区間内の累積した不稼働度を上記のように不信頼度として差し引いています。以前の新方式の記事ではこのように不稼働度を用いましたが、ChatGPTの提案の不信頼度を用いると、どの程度誤差が出るかを見てみます。

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


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

posted by sakurai on September 17, 2024 #869

RAMSポータルに例年どおりプログラム表が掲載されました。

表869.1 RAMS 2025プログラムマトリクス
図%%.1

会場となるヒルトンのボールルームの写真です。

図%%.2
図869.1 ヒルトンのボールルーム

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

posted by sakurai on September 16, 2024 #868

査読はポアソン分布との関係を記載するようにということだったので、指数分布の前にポアソン分布の記述を追加しAJEの査読も済み、RAMSに修正版を投稿しました。合わせて学会参加登録も完了しました。

過去記事のとおり、2項分布の極限を取るとポアソン分布となります。ポアソン分布は故障率一定の条件において、一定の時間間隔に何回故障等のイベントが起こるかの分布ですが、イベント間隔はその無記憶性から指数分布となります。

表868.1 RAMS 2025へのマイルストーン
期限 マイルストーン 状態
2024/5/3 アブストラクト投稿締め切り(システム入力) 投稿済
2024/6/10 アブストラクト採択結果 採択済
2024/7/15 論文、プレゼン投稿締め切り(名前、所属無し版) 投稿済
2024/9/1
2024/9/15
第1回論文、プレゼン資料査読コメント受領 投稿済
2024/10/4 学会出席登録締め切り 登録済
2024/10/4 最終論文、プレゼン投稿締め切り(名前、所属有り版)


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

posted by sakurai on September 10, 2024 #864

査読結果を受領しました。去年の査読は大変で何回も査読を受け、査読者が理解できるまで査読と修正を繰り返したと記憶しています。ところが今年は非常に簡単でした。原文を載せるのは差しさわりがあるので、査読コメントの訳文を掲載します。

  • レビュー#1
    定量的安全規格の説明がわかりやすい。これらのモデルの基礎となる指数故障時間/事象時間分布、または事象のポアソン過程を指摘してほしい。

  • レビュー#2
    著者各位、投稿に感謝する。論文はよく書かれており、PIRにおける不稼働度の考え方を明確に説明している。このよく書かれた論文とプレゼンテーションについて、提案や修正点はない。

特に査読者#2は激賞でした。また査読者#1のご指摘に沿い、ポアソン分布と指数分布の関係を説明した文章を論文の指数分布が出てくる直前に挿入しました。現在AJEという翻訳会社へネイティブチェックを依頼中です。

表864.1 RAMS 2025へのマイルストーン
期限 マイルストーン 状態
2024/5/3 アブストラクト投稿締め切り(システム入力) 投稿済
2024/6/10 アブストラクト採択結果 採択済
2024/7/15 論文、プレゼン投稿締め切り(名前、所属無し版) 投稿済
2024/9/1 第1回論文、プレゼン資料査読コメント受領 AJEに依頼中
2024/10/4 学会出席登録締め切り
2024/10/4 最終論文、プレゼン投稿締め切り(名前、所属有り版)


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

8月の検索結果

posted by sakurai on September 4, 2024 #862

弊社コンテンツの8月の検索結果です。

表862.1 上昇率上位のページ(前月との比較)
タイトル クリック数
AI Writer (3) +14
Arty A7-35ボードへのSpace Inavdersの移植 (2) +12
故障率 (6) +11

表862.2 パフォーマンス上位のページ
タイトル クリック数
機能安全用語集 178
1st Editionと2nd Editionとの相違点 (Part 10) 108
ASILデコンポジション 102

表862.3 上昇率上位のクエリ
クエリ クリック数
レイテント故障 +6
FTTI FHTI 違い +8
ランダムハードウェア故障 +5

表862.4 パフォーマンス上位のクエリ
クエリ クリック数
FTTI 37
PMHF 36
デコンポジション 17


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

IEC/TR 62380の扱いの矛盾 (7)

posted by sakurai on August 30, 2024 #861

ChatGPTの回答は少々怪しいので、必ず原規格に当たる等の裏取りが必要です。

他の規格はどうですか?


ChatGPT:
他の規格についても、SN 29500やIEC 61709と同様に、故障率を評価する際のスケーリングや補正の手法に違いがあります。それぞれの規格がどのように故障率を提供し、スケーリングを行うかを以下に示します。

1. MIL-HDBK-217(Military Handbook 217)

  • 概要: アメリカの軍事規格で、電子部品の故障率を評価するために広く使用されます。温度、電圧、湿度などの環境要因を考慮し、基礎故障率を計算します。
  • スケーリング方法: MIL-HDBK-217は、環境ストレス要因に応じた補正係数を用いて故障率を調整する手法を提供しています。これには、温度サイクルや動作時間などが含まれますが、計算式や手法はIEC 61709とは異なります。

2. FIDES(FIDES Guide 2009)

  • 概要: FIDESは、フランスで開発された信頼性評価のフレームワークで、航空宇宙や防衛産業向けに設計されています。
  • スケーリング方法: FIDESは、部品の基礎故障率を提供するとともに、特定の使用条件(温度、振動、湿度など)に基づいた故障率の補正方法を提供します。FIDESの特徴は、運用中のストレスだけでなく、製造プロセスや部品の品質に関する要因も考慮する点にあります。

3. RIAC-HDBK-217Plus

  • 概要: これはMIL-HDBK-217をベースに、民間産業向けに改良されたバージョンです。RIAC(Reliability Information Analysis Center)が発行しています。
  • スケーリング方法: RIAC-HDBK-217Plusは、MIL-HDBK-217の手法をさらに発展させ、現代の商用製品や環境に適応した補正係数を導入しています。環境ストレスに基づいて故障率を補正する方法を提供しますが、これもIEC 61709とは異なるアプローチを取っています。

4. FMD-2016(Failure Mode / Mechanism Distributions)

  • 概要: RIACが発行する、故障モードとその分布に関するデータベースです。
  • スケーリング方法: FMD-2016は直接スケーリング方法を提供するものではなく、部品ごとの故障モードの割合を示すため、他の故障率データベースと組み合わせて使用します。

5. UTE C80-811

  • 概要: フランスの規格で、主に電子部品の信頼性評価に関する指針を提供します。主に電力分野で使用されます。
  • スケーリング方法: 環境条件に基づく補正手法を提供し、故障率のスケーリングが可能です。ただし、IEC 61709やMIL-HDBK-217とは異なるアプローチを取ります。

結論

それぞれの規格やデータベースは、故障率を評価するための独自の手法や補正方法を提供しています。SN 29500やIEC 61709と同様に、他の規格も故障率の基礎データを提供し、それを環境条件に基づいて補正する手法を持っています。ただし、補正方法や使用条件が異なるため、特定の用途に最も適した規格を選択し、そのアプローチに基づいて評価を行うことが重要です。

ChatGPT の回答は必ずしも正しいとは限りません。重要な情報は確認するようにしてください。


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

IEC/TR 62380の扱いの矛盾 (6)

posted by sakurai on August 29, 2024 #860

「SN 29500: ドイツの規格で、部品の故障率を提供しますが、標準条件下での故障率データを提供し、それを特定の環境条件にスケーリングする手法は直接含まれていません」とのことだが、SN 29500の式には標準で基準温度から別の条件への変換式が含まれています。これならIEC 61709は不要では?


ChatGPT:
おっしゃる通り、SN 29500には、基準温度から別の条件への変換式が含まれています。これにより、部品の故障率を特定の使用環境に合わせてスケーリングすることが可能です。この点を考慮すると、SN 29500だけで環境条件に基づく故障率の補正が行えるため、IEC 61709が必ずしも必要ではない場合があります。

具体的な状況:

  • SN 29500の基準温度からの変換式を使用する場合、特定の温度条件に基づく故障率を直接計算できるため、IEC 61709で行うような追加のスケーリングが不要になることがあります。

  • IEC 61709は、より広範な環境ストレス要因(温度、湿度、動作時間など)を包括的に取り扱い、詳細な補正を行うためのガイドラインを提供しますが、SN 29500で十分な補正が可能な場合には、IEC 61709を使用しなくても合理的な故障率の評価が可能です。

結論:

もし、SN 29500の変換式が使用環境に適した結果を提供できる場合、そのままSN 29500を使用して故障率を計算することが可能です。この場合、IEC 61709は不要となる可能性があります。ただし、特定の条件や要件に応じて、より詳細な補正が必要な場合には、IEC 61709を併用することで、より精度の高い評価が得られるかもしれません。

ChatGPT の回答は必ずしも正しいとは限りません。重要な情報は確認するようにしてください。


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

IEC/TR 62380の扱いの矛盾 (5)

posted by sakurai on August 28, 2024 #859

IEC 61709はSN 29500で求めた故障率の環境に対するスケーリングだと思いますが?


ChatGPT:
おっしゃる通りです。IEC 61709は、電子部品の基礎故障率を特定の環境条件に応じてスケーリングするための標準的な手法を提供しています。この規格は、部品の標準的な基礎故障率(例えばSN 29500で得られるもの)を、実際の使用環境に適合させるために必要な補正を行うために使用されます。

具体的な役割:

  • SN 29500: 部品の標準的な基礎故障率を提供します。このデータは特定の標準条件(通常は25℃など)に基づいています。

  • IEC 61709: SN 29500などで得られた基礎故障率に対して、温度や湿度、動作時間などの環境ストレス要因を考慮し、故障率を補正するためのスケーリング手法を提供します。これにより、実際の使用条件に応じた信頼性評価が可能となります。

結論:

IEC 61709は、SN 29500で得られた基礎故障率を、実際の使用環境に適用するためのスケーリング手法を提供する規格です。この組み合わせにより、信頼性評価において、標準条件から実際の使用条件に至るまでの故障率の正確な予測が可能になります。

ChatGPT の回答は必ずしも正しいとは限りません。重要な情報は確認するようにしてください。


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


ページ: