Posts Tagged with "ISO 26262"

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

図%%.1

2024年10月29日、FSマイクロ株式会社※1は、代表取締役桜井厚による論文が、IEEE※2 信頼性部会主催の国際学会RAMS※3 において採択されたことをお知らせします。

桜井厚の論文がRAMSに採択されるのは今回で6年連続となります。本論文は2025年1月28日に米国フロリダ州で開催されるRAMS 2025にて発表予定です。

図%%.2

本論文はISO 26262※4 のPMHF※5 公式に関する研究です。ISO 26262において、PMHFは車載システムの安全性を評価する重要な指標として位置づけられていますが、その導出過程は十分に説明されていません。桜井厚は2011年からこの課題に取り組み、RAMS 2020においてPMHFのより精度の高い式を提案しました。

本論文では、定期検査下での2つの確率関数であるPUA※6およびPUD※7の挙動を詳細に分析し、その厳密な公式を導出しています。さらに、厳密式と既提案の近似式を比較検証し、近似式が実際のPMHF計算においても有効であることを示しました。

提案するPMHF式はより精度が高い式でありながら、設計制約の改善が見込めます。そのため、本研究を通じて、提案するPMHF式が自動車の信頼性向上に大きく貢献することが期待されます。

図%%.3

【注釈】
※1:FSマイクロ株式会社 (本社:名古屋市、代表取締役:桜井厚)は車載システムの機能安全(様々な安全方策を実施することにより、機器が正しく動作することを担保する方法論)に関するコンサルティングを提供する会社です。
※2:IEEEはInstitute of Electrical and Electronics Engineers(電気電子技術者協会)の略称で、技術の進歩を推進する世界最大の専門技術組織です。詳しくはhttps://ieee.org/
※3:RAMS(the Reliability and Maintainability Symposium)は信頼性・保守性シンポジウムの略称で、IEEE信頼性部会が毎年主催する信頼性工学に関する国際会議です。第71回の会議は2025年に開催されます。詳しくはhttps://rams.org/
※4:ISO 26262は車載電気電子システムの機能安全に関する国際規格で、システムの故障により車両の運転中に危険な事象が発生するリスクを許容できる水準まで低減することを目的としています。
※5:PMHFはProbabilistic Metric for Random Hardware Failures(ハードウェアのランダム故障に対する確率的指標)です。これはISO 26262におけるハードウェアの設計目標値の一つで、車両寿命間のシステム故障の時間平均確率を表します。
※6:PUAはPoint Unavailability(点不稼働度)の略で、PMHFを定義する確率過程の一つです。特定の時点でシステムが故障状態にある確率です。
※7:PUDはPoint Unavailability Density(点不稼働度密度)の略で、PMHFを定義する確率過程の一つです。点不稼働度の確率密度を示します。


【お問い合わせ先】
会社名     FSマイクロ株式会社
代表者     桜井 厚
設立年月日   2013年8月21日
資本金     3,200万円(資本準備金を含む)
事業内容    ISO 26262車載電子機器の機能安全のコンサルティング及びセミナー
本店所在地   〒460-0011
        愛知県名古屋市中区大須4-1-57
電話      052-263-3099
メールアドレス info@fs-micro.com
URL      https://fs-micro.com/


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

posted by sakurai on October 28, 2024 #882

前記事#875のChatGPTの話す内容が数学的に若干おかしかったので、手動で修正しました。以下はChatGPTの出力を適宜修正したものです。

連続修理の場合:

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

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

ここで、$R(t)$は時刻$t$での信頼度、$m(x)$は時刻$x$でのリニューアル密度です。$R(t-x)$は時刻$x$でリニューアルしたものが時刻$t$まで一度も故障しない確率です。

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

周期$\tau$のPIR(Periodic inspection and repair)戦略下では、修理が周期的に時刻$x=i\tau^-$($i=1,2,\dots,n$)で行われるため、この方程式は離散系となり次の式で表されます。

$$ A(t)=R(t)+\sum_{i=1}^{n}M(i\tau^-)\cdot R(t-i\tau^-) $$

ここで、$M(t^-)$は時刻$t$の直前における区間修理量です。

修理量は:

DC(Diagnostic coverage)を$K_\text{MPF}$で表せば、区間修理量$M(i\tau^-)$は区間累積故障の$K_\text{MPF}$倍となるため、区間修理量$M(i\tau^-)$は以下のようになります:

$$ M(i\tau^-)= K_{\text{MPF}}\int_{(i-1)\tau^+}^{i\tau^-}q(x) \, dx = K_{\text{MPF}} \left[ Q(i\tau^-) - Q\left( (i - 1)\tau^+ \right) \right] $$

ここで、

  • $K_\text{MPF}$はDCであり定数、
  • $q(t)$は不稼働密度関数(PUD)、
  • $Q(t)=\int_{0}^{t}q(x)\,dx$は不稼働度関数(PUA)です。

不稼働度は:

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

これにより、PIR戦略下の不稼働度PUAが陰関数形式で表されます。また、$Q(i\tau^+)$に関する一検査周期内の関係式を示します。

$$ \begin{eqnarray} Q(i\tau^+)&=&Q\left((i-1)\tau^+\right)+K_\text{MPF}\left[Q(i\tau^-)-Q\left((i-1)\tau^+\right)\right]\\ &=&(1-K_\text{MPF})Q((i-1)\tau^+)+K_\text{MPF}Q(i\tau^-) \end{eqnarray} $$

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


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

posted by sakurai on October 17, 2024 #878

RAMS論文委員会の査読に対するレビューが完了し、指摘事項は無く、最終版(名前、所属有り)を10/17までに登録するようにという指示が来たので、早速登録しました。

これにより後は採択通知を待つのみです。

表878.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
2024/10/17
最終論文、プレゼン投稿締め切り(名前、所属有り版) 登録済


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

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


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


ページ: