Posts Issued in April, 2019

posted by sakurai on April 28, 2019

PMHF式において、あるいはその前提となる故障分類フローにおいて、Kパラメータが2種存在します。 具体的には$K_{\mathrm{FMC,RF}}$と$K_{\mathrm{FMC,MPF}}$の2種類です。それぞれ、1st order SMのフォールト検出率及び2nd order SMのフォールト検出率を意味します。

ここで1st order SMとは、主機能IFのフォールトによるSG侵害を抑止する働きを持つSMであり、2nd order SMとは、(主機能やSM等の)エレメントのフォールトがレイテントフォールトとなることを阻止する働きを持つSMです。

さらに、Kパラメータは、主機能とSMにそれぞれ存在するため、IF-SM-2nd SMモデル全体では $$ K_{\mathrm{IF,FMC,RF}}\\ K_{\mathrm{IF,FMC,MPF}}\\ K_{\mathrm{SM,FMC,MPF}} $$ の3種類が存在します。一般的にはSMのフォールトはVSGとならないため、$K_{\mathrm{SM,FMC,RF}} $は存在しません。

さて、当初、例えばこの記事ではこのKパラメータは定数であり、条件付き確率であると認識していました。例えば、 $$ K_{\mathrm{IF,FMC,RF}}:=\Pr\{\mathrm{IF\ prevented}\ |\ \mathrm{IF\ failed}\}\tag{99.1}\\ K_{\mathrm{IF,FMC,MPF}}:=\Pr\{\mathrm{IF\ detected}\ |\ \mathrm{IF\ prevented}\}\\ K_{\mathrm{SM,FMC,MPF}}:=\Pr\{\mathrm{SM\ detected}\ |\ \mathrm{SM\ prevented}\}\\ $$ と定義されます。ただし上記は若干省略して書かれており、詳細に書けば、$\Pr\{\mathrm{IF\ prevented}\ |\ \mathrm{IF\ failed} \}$は$\Pr\{\mathrm{VSG\ of\ IF\ is\ prevented}\ |\ \mathrm{IF\ is\ failed} \}$であり、$\Pr\{\mathrm{IF\ detected}\ |\ \mathrm{IF\ prevented}\}$は、$\Pr\{\mathrm{The\ fault\ of\ IF\ is\ detected}\ |\ \mathrm{VSG\ of\ IF\ is\ prevented}\}$となります。いずれにしろ、Kパラメータが定数であることを前提として考えます。


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

2nd EditionにおけるPMHF式(3)

posted by sakurai on April 21, 2019

前記事の続きです。

弊社の考えるPMHF式について、再度DPFについて考察します。

2nd Editionから引用したシステムアーキテクチャ図を図98.1に示します。IFがVSGとなるのを抑止する(抑止確率$K_{\mathrm{IF,RF}}$)のと同時に、IFがレイテントとなるのを抑止する(抑止確率$K_{\mathrm{IF,MPF}}$)SM1が存在します。また、SM1がレイテントとなるのを抑止する(抑止確率$K_{\mathrm{SM1,MPF}}$)SM2が存在します。

図98.1
図98.1 System Architectural Design of the example

(1st Editionの)規格第1式のPMHF式のDPF項は以下の(98.1)のとおりです。規格第1式が合っていることは前記事で確認しています。ここで、第1式の条件は、最初のSM1のフォールトはリペアラブル、2番目のIFのフォールトはアンリペアラブルです。 $$ M_{PMHF,DPF}=\frac{1}{2}K_{\mathrm{IF,RF}}\lambda_{\mathrm{IF}}\lambda_{\mathrm{SM1}}[(1-K_{\mathrm{SM,MPF}})T_{lifetime}+K_{\mathrm{SM,MPF}}\tau_{\mathrm{SM1}}]\tag{98.1} $$ これをIFとSMのそれぞれに関係する部分に分解します。SM1のレイテント確率が平均 $$ \frac{1}{2}\lambda_{\mathrm{SM1}}[(1-K_{\mathrm{SM,MPF}})T_{lifetime}+K_{\mathrm{SM,MPF}}\tau_{\mathrm{SM1}}] $$ あるところに、IFの故障確率が $$ K_{\mathrm{IF,RF}}\lambda_{\mathrm{IF}}T_{lifetime} $$ であり、そのDPF確率積について、車両寿命$T_{lifetime}$で割ったものと解釈できます。

正規に求めれば、前記事のようにマルコフ遷移図をきちんと書いて、それぞれの場合に分けて求めることが王道ですが、ここでは簡略的な求め方を実施してみます。

システム全体(IFとSM1の合体)で考えると、IFの故障率が$K_{\mathrm{IF,RF}}\lambda_{\mathrm{IF}}$、SM1の故障率が$\lambda_{\mathrm{SM1}}$であるときに、合体システムの故障率は $$ \lambda_{合体}=K_{\mathrm{IF,RF}}\lambda_{\mathrm{IF}}+\lambda_{\mathrm{SM1}} $$ となります。ここで、IFの故障率を$\lambda_{\mathrm{IF}}$ではなく、$K_{\mathrm{IF,RF}}\lambda_{\mathrm{IF}}$としたのには理由があり、IFにとっての故障率は$\lambda_{\mathrm{IF}}$ですが、そのうち、SM1でVSG抑止できない部分の故障率を$(1-K_{\mathrm{IF,RF}})\lambda_{\mathrm{IF}}$、VSG抑止された部分の故障率を$K_{\mathrm{IF,RF}}\lambda_{\mathrm{IF}}$と分解したとき、DPFとなるのは後者の部分のみだからです。

話を戻して、合体システムのフォールトを考えると、1点フォールト目まではリペアラブルであり、合体システムのフォールトが検出されない場合は車両寿命まで、検出されても$\tau$以内の時間間隔ではレイテント状態となります。それが修理されてしまえば、最初に戻ります。が、フォールトが起きている状態で、引き続いて2点目のフォールトが起きるとDPFとなります。よって、合体システムの最初のフォールトはリペアラブル、2番目のフォールトはアンリペアラブルとなります。従って、(98.1)を参考にすれば、合体システムの最初のフォールトの平均レイテント確率が $$ \frac{1}{2}\lambda_{合体}[(1-K_{\mathrm{合体,MPF}})T_{lifetime}+K_{\mathrm{合体,MPF}}\tau]\tag{98.2} $$ となり、引き続くフォールト確率が $$ \lambda_{合体}T_{lifetime}\tag{98.3} $$ となることから、その確率積を車両寿命$T_{lifetime}$で割り、 $$ M_{\mathrm{PMHF,DPF}}=\frac{1}{2}(\lambda_{合体})^2[(1-K_{\mathrm{合体,MPF}})T_{lifetime}+K_{\mathrm{合体,MPF}}\tau]\tag{98.4} $$ となりそうです。ここで$K_{\mathrm{合体,MPF}}$をSM1もしくはSM2によるいずれかで検出する検出確率とします。すなわち、 $$ K_{\mathrm{合体,MPF}}=K_{\mathrm{IF,MPF}}+K_{\mathrm{SM1,MPF}}-K_{\mathrm{IF,MPF}}K_{\mathrm{SM1,MPF}} $$ ただ、これでは確率を多めに見て過ぎています。余分な確率が2例含まれています。というのは、合体システムが2度フォールトする時に、①IFに引き続いてIF、及び②SM1に引き続いてSM1となる、2つの場合はDPFとならないため、その確率を差し引く必要があります。

すると、①の確率積は、 $$ \frac{1}{2}K_{\mathrm{IF,RF}}\lambda_{\mathrm{IF}}[(1-K_{\mathrm{合体,MPF}})T_{lifetime}+K_{\mathrm{合体,MPF}}\tau]\cdot K_{\mathrm{IF,RF}}\lambda_{\mathrm{IF}}T_{lifetime}\cdot\frac{1}{T_{lifetime}}\\ =\frac{1}{2}K_{\mathrm{IF,RF}}^2\lambda_{\mathrm{IF}}^2[(1-K_{\mathrm{合体,MPF}})T_{lifetime}+K_{\mathrm{合体,MPF}}\tau]\tag{98.5} $$ また②の確率積は、 $$ \frac{1}{2}\lambda_{\mathrm{SM1}}[(1-K_{\mathrm{合体,MPF}})T_{lifetime}+K_{\mathrm{合体,MPF}}\tau]\cdot\lambda_{\mathrm{SM1}}T_{lifetime}\cdot\frac{1}{T_{lifetime}}\\ =\frac{1}{2}\lambda_{\mathrm{SM1}}^2[(1-K_{\mathrm{合体,MPF}})T_{lifetime}+K_{\mathrm{合体,MPF}}\tau]\tag{98.6} $$ 従って、PMHFのDPF部分は、(98.4)から(98.5)及び(98.6)を差し引いて、 $$ M_{\mathrm{PMHF,DPF}}=\frac{1}{2}[(\lambda_{合体})^2-(K_{\mathrm{IF,RF}}\lambda_{\mathrm{IF}})^2-\lambda_{\mathrm{SM1}}^2][(1-K_{\mathrm{合体,MPF}})T_{lifetime}+K_{\mathrm{合体,MPF}}\tau]\\ =\frac{1}{2}[(K_{\mathrm{IF,RF}}\lambda_{\mathrm{IF}}+\lambda_{\mathrm{SM1}})^2-(K_{\mathrm{IF,RF}}\lambda_{\mathrm{IF}})^2-\lambda_{\mathrm{SM1}}^2][(1-K_{\mathrm{合体,MPF}})T_{lifetime}+K_{\mathrm{合体,MPF}}\tau]\\ =\img[-1.35em]{/images/withinseminar.png} \tag{98.7} $$ これは前記事で求めた、PMHF値のDPF項と完全に一致します。このように、得られた方程式に対して、別の角度から整合性のある解釈ができることは、大変に面白いと思いますし、得られた方程式の妥当性を裏付けるものと考えます。


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

posted by sakurai on April 15, 2019

Bocktechという会社にオーダーしていたPCBが届きました。 このメーカーだと、PCB製造に2.66日、PCB実装に1.02日、配送(DHL)に2.00日と、ネットでの支払い完了から数えて、わずか5.68日しかかかっていません。

それなのに、値段は送料込みで54.83 USDと最安でした。PCB製造が1.00 USD、PCB実装に29.83 USD、配送(DHL)に24.00 USDという内訳です。

後は品質がどうかということなので、部品を実装して、動作チェックしてみましたが、特に問題無く動作しました。2層なので電源ノイズは小さくない(300~400mVp-p)ですが、これは会社の問題では無いです。

総じて価格は最安、納期は最短ということで、当面この会社のサービスを利用することになりそうです。

図97.1
図97.1 PCB

試作なのでPCBは5枚オーダーしました。

図97.2
図97.2 PCB基板表面

そのうちの2枚にSMDを実装しています。最低の実装数量が2枚となっているためです。

図97.3
図97.3 PCB基板裏面


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

PCBの完成

posted by sakurai on April 7, 2019

FusionPCBにオーダーしていたメインPCBが届きました。実装も依頼したので、基板だけよりは時間がかかります。受注から実装完成まで18.94日、DHLによる配送が0.95日でした。FusionPCBは若干高いようですが、DHLの配送料込みなので、他社と価格比較する際はトータルで見る必要があります。

コストを抑えるため、実装はSMD部品のみ依頼し、残りのスルーホール部品はマニュアルによるハンダ付けとしました。

図96.1
図96.1 完成したPCB

部品を実装したボードをUltra96ボード、PMOD-VGAボード、PMOD-I2S(サウンド)ボード、PMOD-JOY-SWボードと組み合わせて、Space Invadersが正常に動作することを確認しました。

基板図の表、裏の両面を示します。

図96.2
図96.2 ガーバーデータ表

図96.3
図96.3 ガーバーデータ裏

UltraZedボードでは電源ONでリセットがかかったのですが、プロトタイプボードを実装して電源を入れたところ、電源スイッチをONしなければならないことが分かりました。ところが、Ultra96ボードの電源スイッチがインタフェースボードで隠されて押しにくいことが分かったので、新たに電源スイッチとついでに敵の強さを設定するDIP SWを設けました。回路は他は基本的には変えていません。ソルダーレジスト色は黒にしてみました。

図96.4
図96.4 SketchUPによる3D化

図96.5
図96.5 IndigoRTによるレンダリング


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

FSMのダイレクトリターン

posted by sakurai on April 4, 2019

さて、非リーフFSMコールの後、リーフコールがある場合は、単純に前記シーケンスの組み合わせとなります。図で示すと図95.1のようになります。

図95.1
図95.1 非リーフコールからリーフコール

ここで結構見られるのが、リーフを呼んで戻った後、何もせずにさらにcallerに戻るパターンです。これを実現するより効率的な方法として、ダイレクトリターン手法があります。これを図95.2に示すと、リーフをコールする前にスタックから戻り番地を取り出しreturnに入れ、リーフへジャンプします。リーフからは知らずにリターンすると、ダイレクトリターンが行われます。

図95.2
図95.2 ダイレクトリターン

特殊な場合として、上記のようにパラメータ設定だけしてリーフにジャンプするような場合は、そもそもリーフであるため、以下の図のような呼び出しとなります。

図95.3
図95.3 ダイレクトリターン

例として、残機表示サブFSMは、(リーフである)copyAreaを呼び出すので、returnを破壊するため非リーフですが、その後のシーケンスでcopyAreaを呼び出しダイレクトリターンを行います。その際には図95.3のダイレクトリターン手法は取れないため、図95.2のダイレクトリターン手法を取っています。


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