文書の過去の版を表示しています。


状態監視保全

故障時間のデータしかなけば、寿命分布を推定し、時間取り替えやブロック取り替えを考えるしかない。 しかし、多くの製品に多くの時点での劣化状態を測定したデータが得られていれば、それに基づいて劣化状態の変化のモデルを作り、時間取り替えやブロック取り替え以外の保全方式も検討できるようになる。

  • National Bridge Inventoryは、アメリカ合衆国のすべての橋の棚卸しのデータである。毎年の春にすべての橋の状況が登録され、公開されている。橋の所在地、役割、種類、主な建材も記されているが、保全の研究者にとってはEXCELLENT, VERY GOOD, GOOD, SATISFACTORY, FAIR, POOR, SERIOUS, CRITICAL, “IMMINENT” FAILURE, FAILEDの10段階の状態のデータがとても興味深い。
  • Hard Drive Data and Statsは、アメリカにあるBlackblazeというオンラインバックアップサービスやクラウドストレージサービスを展開する会社が公開している、ハードディスクの信頼性試験のデータである。実際い運用しているデータセンターでの統計情報のみでなく、個別のデータまで公開されているところが、画期的と言える。

対象の状態を監視し、状態に応じて適切な保全を施すことを、状態監視保全という。 英語では状態監視がcondition monitoring、監視した状態に基づく保全がcondition based maintenanceとなる。状態監視保全は「状態に基づく保全と状態監視」という意味のcondition based maintenance and monitoring、condition based maintenance and condition monitoring、あるいはcondition monitoring and condition based maintenanceなどが使われるが、単にcondition based maintenanceと呼ばれることも多い。

状態が正常と故障(機能喪失、性能低下を含む)の2状態のみの場合の保全行動には、次の3種類しかない。

  1. 正常な状態の製品を正常な代替品で交換する予防取替
  2. 故障した状態の製品を正常な代替品で交換する事後取替
  3. 故障した状態の製品を正常な状態に戻す修理

取替は交換の言い換えで、修理は状態の回復を意味する。もし状態の種類が正常と故障の間をもっと細かく、例えば劣化しているが使える状態、という新たな状態も含めて3種類の観測ができるなら、状況はもっと複雑になる。上の3つの保全行動に加えて、次の4つが加わる。

  1. 故障した状態の製品を劣化している状態に戻す修理
  2. 劣化している製品を正常な状態に戻す予防修理
  3. 故障した状態の製品を劣化している製品で交換する事後取替
  4. 劣化している製品を正常な状態に戻す予防取替

更に複雑な製品や大規模な製品では、いきなり製品全体の取替と全体を使い続ける2択問題では自由度が低い。むしろ部分ごとに状態監視と修理や取替が可能となるように、コンポーネントと呼ばれる単位を定めて、システムとして製品全体を設計する。このとき状態も1次元ではなく、コンポーネントの数だけのベクトルになり、保全行動もコンポーネントごとに検討する。また一つを修理するついでに別のコンポーネントも修理するなど、保全行動の経済性も考慮するようになっていく。以下では、現実の問題よりは少し単純な状況を想定して、状態監視保全が有効な場合の保全行動の合理的な選択について考えてもらう。

劣化過程のマルコフ連鎖によるモデル化

マルコフ過程(以下では離散時間離散状態マルコフ過程, あるいはマルコフ連鎖を想定)は、未来の状態を予測するには現在の状態を知っていれば十分であり、過去の状態推移の履歴は必要ない、というマルコフ性を満たす。マルコフ性とは、時点tの状態X[t]の確率分布がt以前の過去の状態推移の履歴H[t-]={x[t-1], x[t-2], …}の条件付き確率分布F(X[t]|H[t-])で与えられているとして、その確率分布が直前の時点の状態x[t-1]のみに依存するF(X[t]|H[t-])=F(X[t]|X[t-1]=x[t-1])という性質である。

劣化データがあれば、保全の対象システムの劣化の進行がマルコフ性を満たしているかどうかを確認できる。マルコフ性を満たしていれば、マルコフ連鎖に基づく劣化の推移のモデル化が有効である。以下では定常マルコフ過程と呼ばれる、2時点間の状態推移を表す条件付き確率分布が時点によらず共通な場合のみを扱う。

修理も取替もせずに壊れるまで使用することと、システムの状態が1次元の数直線上の点で表せるとき、システムのマルコフ連鎖は次のような推移行列を持つ。

P[1,1]=現在の状態が1で、次の時点でも状態1に留まる確率P[1,2]=現在の状態が1で、次の時点で状態2に進行する確率P[1,N]=現在の状態が1で、次の時点で故障状態Nに到達する確率
P[2,1]=現在の状態が2で、次の時点で状態2に回復する確率P[2,2]=現在の状態が2で次の時点でも、状態2に留まる確率P[2,N]=現在の状態が2で次の時点で故障状態Nに到達する確率
P[N,1]=現在故障中で、次の時点で状態1に回復する確率P[N,2]=現在故障中で、次の時点で状態2に回復する確率P[N,N]=現在故障中で、次の時点も故障中のままとなる確率

システムの状態が3つに分類され、1が正常、2が劣化、3が故障とする。 次の遷移行列は、毎時点、90%の確率で同じ状態に留まり10%の確率で状態が悪化すること、 そして故障すると何も働きかけない限りその状態(3)に留まること、を表す。

P(劣化)[1→1]=9/10P(劣化)[1→2]=1/10P(劣化)[1→3]=0
P(劣化)[2→1]=0P(劣化)[2→2]=9/10P(劣化)[2→3]=1/10
P(劣化)[3→1]=0P(劣化)[3→2]=0P(劣化)[3→3]=1

これをRのコードで表すと

P.Dgr = matrix(c(
  9/10, 1/10, 0,
  0, 9/10, 1/10,
  0, 0, 1), nrow=3, ncol=3, byrow=TRUE)

保全行動のマルコフ連鎖による表現

上の推移行列は、劣化が徐々に進行することを表している。 これは、状態回復について何も働きかけない、という行動の下での遷移行列と言える。

取替という保全を行うと、どのような状態からでも正常な状態(1)に推移する。 これも遷移行列で表現できる。

P[1,1]=現在の状態が1で、取替によって次の時点の状態も1となる確率=1P[1,2]=現在の状態が1で、取り替えても次の時点で状態2である確率=0P[1,N]=現在の状態が1で、取り替えても次の時点が故障状態Nとなる確率=0
P[2,1]=現在の状態が2で、次の時点で状態2に回復する確率=1P[2,2]=現在の状態が2で次の時点でも、状態2に留まる確率=0P[2,N]=現在の状態が2で次の時点で故障状態Nに到達する確率=0
P[N,1]=現在故障中で、取替によって次の時点で状態1に回復する確率=1P[N,2]=現在故障中で、取り替えたのに次の時点の状態が2となる確率=0P[N,N]=現在故障中で、取り替えたのに次の時点も故障中のままとなる確率=0

システムの状態が3つに分類され、1が正常、2が劣化、3が故障とする。 次の遷移行列は、どの状態でも取替を実施すると必ず、次の時点では状態1になることを表す。

P(取替)[1→1]=1P(取替)[1→2]=0P(取替)[1→3]=0
P(取替)[2→1]=1P(取替)[2→2]=0P(取替)[2→3]=0
P(取替)[3→1]=1P(取替)[3→2]=0P(取替)[3→3]=0

これをRのコードで表すと

P.Rpl = matrix(c(
  1, 0, 0,
  1, 0, 0,
  1, 0, 0), nrow=3, ncol=3, byrow=TRUE)

となる。ただし、この遷移行列はただでは使えない。取替費用を投じて始めて、推移行列を最初のP.Kから、このP.Rplに替えることができる。

同様に、修理による状態の変化もマルコフ連鎖の遷移行列で表現できる。

P[1,1]=現在の状態が1で、修理によって次の時点の状態も1となる確率=1P[1,2]=現在の状態が1で、修理しても次の時点で状態2である確率=0P[1,N]=現在の状態が1で、修理しても次の時点が故障状態Nとなる確率=0
P[2,1]=現在の状態が2で、修理次の時点で状態1に回復する確率=1P[2,2]=現在の状態が2で、修理しても次の時点で状態2に留まる確率P[2,N]=現在の状態が2で修理によって次の時点で故障状態Nに到達する確率=0
P[N,1]=現在故障中で、修理によって次の時点で状態1に回復する確率P[N,2]=現在故障中で、修理によって次の時点の状態が2となる確率P[N,N]=現在故障中で、修理したのに次の時点も故障中のままとなる確率

システムの状態が3つに分類され、1が正常、2が劣化、3が故障とする。 次の遷移行列は、どの状態でも取替を実施すると必ず、次の時点では状態が1だけ回復することを表す。

P(修理)[1→1]=1P(修理)[1→2]=0P(修理)[1→3]=0
P(修理)[2→1]=1P(修理)[2→2]=0P(修理)[2→3]=0
P(修理)[3→1]=0P(修理)[3→2]=1P(修理)[3→3]=0

これをRのコードで表すと

P.Rpr = matrix(c(
  1, 0, 0,
  1, 0, 0,
  0, 1, 0), nrow=3, ncol=3, byrow=TRUE)

となる。ただし、この遷移行列はただでは使えない。修理費用を投じて始めて、推移行列を最初のP.Dgrから、このP.Rprに替えることができる。取替と比べて、修理は状態回復の幅が小さく、通常は費用が取替よりも安く済む。