Posts Tagged with "PUA"

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

RAMS 2025へのマイルストーン (6)

posted by sakurai on July 17, 2024 #835

締め切りは7/15だったため、初版の論文及びプレゼン資料(名前、所属無し版)を作成し、RAMSサイトに登録しました。初版で査読を受け9/1までに査読結果を受領予定です。

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


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

RAMS 2025へのマイルストーン (5)

posted by sakurai on July 2, 2024 #829

論文及びプレゼン資料の名前、所属無し版を作成し、RAMSサイトに登録しました。締め切りは7/15であるため、ブラッシュアップしたものを再登録する予定です。

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


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

posted by sakurai on June 6, 2024 #811

昨日RAMS委員会からアブストラクトの採択の連絡がありました。ほぼ論文は完成してはいるものの、これから論文のブラッシュアップ及びプレゼンテーション原稿の作成を開始します。

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


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

RAMS 2025へのマイルストーン (3)

posted by sakurai on May 13, 2024 #795

RAMS 2025の締め切りが先週末5/10まで延長され、最終アブストラクトを投稿しました。

  • 題名:
    Point Unavailability Processes with Periodic Inspections in ISO 26262
    ISO26262における定期検査を伴う点不稼働度過程

  • 抄録概要:
    A study of the derivation and approximation of the exact point availability (PUA) and its derivative, the point unavailability density (PUD) processes, in deriving the probabilistic metric for random hardware failures (PMHF) formula under ISO 26262, aiming to refine automotive system design reliability by simplifying fault-tolerant subsystem development.
    耐故障サブシステム開発の簡素化による自動車システム設計の信頼性向上を目的とする、ISO26262に基づくランダムハードウェア故障の確率的指標(PMHF)式の導出における、厳密な点不稼働度(PUA)とその導関数である点不稼働度密度(PUD)過程の導出と近似に関する研究。

題名は本来「Point Unavailability and its Density Processes with Periodic Inspections in ISO 26262(ISO 26262における定期検査を伴う点不稼働度過程とその点不稼働度密度過程)」ですが、長すぎてシステムに入力できないため短くしました。これは査読により変更の可能性が十分にあります。後は6月初旬の採択通知を待つのみです。

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

本研究はブログ記事から始まったものですが、2020年の論文から導出し使用してきた不稼働度(PUA)の式が実は近似式であったということ、正確な式の導出及び誤差の評価を行ったものです。


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

新方式による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の導出 (8)

posted by sakurai on March 26, 2024 #762

ChatGPTにより $Q_{\text{exact},n}(t)$と$Q_\text{approx}(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:
            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_vals = np.linspace(start, end, 200)
        Q_exact_vals = [Q_n(t, i) for t in t_vals[:-1]]  # 区間の最後の点を除外してプロット
        Q_approx_vals = [Q_approx(t) for t in t_vals[:-1]]
        
        plt.plot(t_vals[:-1], Q_exact_vals, 'k-', lw=2.5)
        plt.plot(t_vals[:-1], Q_approx_vals, 'k--', lw=2.5)
    
        # 区間の終わりに白丸をプロット
        plt.plot(end, Q_n(end, i), 'o', mfc='white', mec='black', mew=2, markersize=8)
        plt.plot(end, Q_approx(end), 'o', mfc='white', mec='black', mew=2, markersize=8)
    
    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.ylim(bottom=0)
    plt.xlim(0,10*tau)
    plt.subplots_adjust(left=0.14, bottom=0.14) 
    plt.show()

図762.1に実行結果を示します。これは論文に掲載したグラフの一部です。

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

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

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

なお、

に掲載しています。さらに、

に続きます。

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


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

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

posted by sakurai on March 25, 2024 #761

前項までで、正確な$Q_{\text{exact},n}(t)$と近似の$Q_\text{approx}(t)$が求められたので、誤差評価を行います。パラメータは$\lambda=100FIT$、$T_\text{lifetime}=$10万時間、$K=0.5$、$\tau=$1か月とします。すると、$T_\text{lifetime}=1.0\times10^5[H]$、$\tau=730[H]$であり、 $$ Q_n(t)=F(t)-\img[-1.35em]{/images/withinseminar.png}\ n=\lfloor t/\tau\rfloor\ge1\tag{761.1} $$ これより、正確な車両寿命での不稼働確率は、 $$ Q_{\text{exact},136}(T_\text{lifetime})=0.005023250473883639 $$

一方近似式では、 $$ Q_\text{approx}(t)=(1-K_\text{MPF})F(t)+K_\text{MPF}F(u),\ u=\bmod\tau\tag{761.2} $$ これより、 $$ Q_\text{approx}(T_\text{lifetime})=0.005011081829447039 $$

両方の値から誤差は車両寿命において相対誤差は、 $$ \frac{Q_{\text{exact},136}(T_\text{lifetime})-Q_\text{approx}(T_\text{lifetime})}{Q_\text{approx}(T_\text{lifetime})}=\frac{0.005023250473883639-0.005011081829447039}{0.005023250473883639}\\=\img[-1.35em]{/images/withinseminar.png}[\%] $$ と計算され、PMHFの計算上では問題にならないレベルだと判明しました。

ちなみに、前項のChatGPTの作成したグラフ描画ソフトのパラメータを上記のパラメータに置き換え、グラフを車両寿命まで作成しました。次にChatGPTにプログラムを渡して、グラフは不要だからPUAの車両寿命における値を$Q_\text{exact}$と$Q_\text{approx}$の2つを求めて、誤差評価をしてと依頼したところ、修正されたプログラムにより上記の値が算出できました。

ChatGPTにプログラムを書いてもらうのはかなり実施して来ましたが、プログラムを渡してこんな風に改造してというのは新しい試みです。なぜなら、他人のプログラムの改造は人間は嫌がるからです。機械は嫌がらずに素直に実行すると言うのは新しい経験でした。

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


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

posted by sakurai on March 22, 2024 #760

論文のアブストラクトをAJEに提出しましたが、「全体感が見たいので全体を出してくれ」とのご要望で、原稿全体を提出しました。前回までは冠詞の誤り等の文法ミスの修正が中心で、せいぜいが「意味が同じか確認してくれ」というメッセージ付きで文章を修正してきたことはありました。

ところが今回はVIPコースを選択したためか「この間に話題を繋げるような短い段落があると良い」「パラメータを選択した理由があると理解しやすい」「結論はまとめではないから、新規性のあることを書くべきである」等の内容に踏み込んだ示唆を貰い、大変にありがたく感じています。

図%%.1
図760.1 一旦完成した論文6ページの原稿

原稿全体は修正中ですが、一旦アブストラクトを投稿し、No.9のIDを受領しました。後は6月初旬の採択通知を待つのみです。

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


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

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

posted by sakurai on March 21, 2024 #759

前項までで、正確な$Q_{\text{exact},n}(t)$(758.4)を以下のように求めることができました(再掲)。 $$ Q_{\text{exact},n}(t)=F(t)-\img[-1.35em]{/images/withinseminar.png}\ n=\lfloor t/\tau\rfloor\ge1\tag{759.1} $$ 一方で、近似式は、 $$ Q_\text{approx}(t)=(1-K_\text{MPF})F(t)+K_\text{MPF}F(u),\ u=t\bmod\tau\tag{759.2} $$ でした。この2種類の関数が$\lambda$の変化でどのように変わるかを見てみます。図759.1はそれぞれ2つのグラフが$\lambda=0.1$(パープル)及び$\lambda=0.01$((ブルー)の2種類を描いたものです。

図%%.1
図759.1 正確な$Q_{\text{exact},n}(t)$と近似式$Q_\text{approx}(t)$のグラフ

図759.1のブルーに示すように、$\lambda$が小さければカーブは直線に近づき、誤差が少なくなります。

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


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


ページ: