フレクトのクラウドblog re:newal

http://blog.flect.co.jp/cloud/からさらに引っ越しています

機械学習を活用した製造機器の予知保全技術の紹介

こんにちは。研究開発室の北村 蘭丸です。研究開発室では、Operations Research (OR) のビジネス活用について研究を進めています。本記事では、その一環として現在取り組んでいる機械学習による製造機器の予知保全についてご紹介いたします。

1. 製造機器のメンテナンスにおける課題

製造現場において、機器の突然の故障による予期せぬダウンタイムの発生は、生産ラインの停止や納期の遅延などの様々な損失を生みます*1。これを防ぐためには、メンテナンス (点検、修理、部品交換など) が欠かせません。問題は、いつ・どの機器をメンテナンスするかを決める必要があることです。これを決めるためのメンテナンス方式は一般に図1のように大別されます。

各メンテナンス方式の概念 (引用: Zhang et al., "A Survey of Predictive Maintenance: Systems, Purposes and Approaches", 2019)
図1. 各メンテナンス方式の概念 (引用: Tianwen et al., 2019)

  1. 事後保全 (Reactive Maintenance) 機器の故障が発生した後に交換や修理を行います。例えば、一般の家庭では照明の電球は切れてから交換すると思いますが、基本的にこれと同じ考え方です。 安価で交換が容易といったダウンタイムがそこまで損失を生まないような機器で採用する際には大きな問題にはらず、最もコストがかからない方式であることも珍しくありません。一方で、航空機のエンジンなど、高価で人命にも関わり、予期せぬダウンタイムを発生させたくない重要な機器で、この方式を採用することはできません。
  2. 予防保全 (Preventive Maintenance) 定期的に点検を行い、必要に応じて交換や修理を行います。例えば、車の定期点検やオイル交換がこれに相当します。実際に多くの製造現場ではこちらを採用しているのではないかと思われます。 この方式では、一般に同じ種類の機器について、故障に関する統計的な振る舞いをもとにメンテナンス間隔を設定します。このとき、メンテナンス間隔が小さすぎると十分な寿命が残っているために結果的に無駄なメンテナンスが増えてしまう一方で、大きすぎるとメンテナンスによって故障を防ぐことができなくなってしまいます。
  3. 予知保全 (Predictive Maintenance) 機器の状態を個別に監視することで機器の故障の予兆を事前に検知し、必要な時期に交換や修理を行います。例えば、普段からPCのHDDの稼働音を聞くようにしておき、カラカラと異音がするようになったら交換するというイメージです。 ここで問題となるのが、どのようにして機器を監視し予兆を検知してメンテナンスタイミングを決定するかという点です。これについては後述します。

各メンテナンス方式の違いについて大まかに理解したところで、次はそれぞれの方式によって生じるコストについて見ていきましょう。

Zhang et al., "A Survey of Predictive Maintenance: Systems, Purposes and Approaches", 2019
図2. メンテナンス頻度-メンテナンスコスト (引用: Tianwen et al., 2019)

図2より、予防コスト (Prevention Cost) と修理コスト (Repair Cost) は、一般にトレードオフの関係にあることがわかります。事後保全の場合、定期的な予防のためのメンテナンスは発生せず予防コストは低く抑えられますが、機器の修理のためのコストや、生産ラインの停止や納期の遅延によるコストはかさんでしまいます。

一方、予防保全の場合、事後保全とは逆に定期的なメンテナンスが行われることによるコストは増える一方で、先に挙げたようなダウンタイムの発生によるコストは低く抑えられます。

これらに対して、予知保全では、機器の予期せぬダウンタイムの発生を防ぎつつ、最適なメンテナンスタイミングを見極めることで総コストの最小化を目指します。以降ではこの予知保全に焦点を当てて説明します。

2. 予知保全の概要

予知保全とは、機器や設備に搭載されたセンサーを用いてデータを収集し、そのデータをもとに機器の状態を監視し故障の予兆を検知することで、機器の予期せぬダウンタイムの発生を事前に防ぐことです。そのため、基本的にInternet of Things (IoT) 技術による機器のモニタリングの仕組みは前提となります*2。例えば、機器の振動や消費電力などをセンサーで測定してデータベースへ保存し、ダッシュボードで可視化するシステムなどがあると、次のステップとして予知保全に繋げやすいのではないかと思います。

基本的に機器から得られた時系列データに対して各種手法を適用していくことになるのですが、一方で、手法さえ用意してやれば良いというわけではなく、現場のエキスパートと協力して機器に関する知識や経験則を取り入れることも重要です。

一般に、予知保全として取り組むことになる問題設定としては異常検知や寿命予測、また故障検知などが挙げられます*3。ここでは機器の寿命予測に絞って説明します。その他の問題設定については、Appendixや予知保全に関する文献などを参照してみてください。

2.1. 寿命予測

寿命予測の例
図3. 寿命予測の例

RUL予測の例
図4. RUL予測の例

寿命予測では、対象の機器はどれだけの期間使えるのか (寿命) を予測します。得られるデータによって2通りのアプローチがあり、図3のような機器の寿命データ (Life Data) のみを用いて機器の寿命を予測するものと、機器の稼働履歴データ (History Data) から図4のような機器の残り稼働時間である残存耐用期間 (Remaining Useful Life) を予測するものがあります*4

寿命データのみを用いて機器の寿命を予測する場合と、稼働履歴データからRULを予測する場合の大きな違いは、それぞれの機器を個別に扱うかどうかです。寿命データのみを用いる場合は、統計的な手法により同じ種類の機器を統一的に扱うことで寿命を予測します。一方で、稼働履歴データからRULを予測する場合は、個別の機器の稼働状態に応じたRULを予測することができます。

また、RUL予測においても得られる履歴データの種類によって更に2通りのアプローチがあり、稼働開始から故障に至るまでの (Run-to-Failure) 履歴データを用いてRULを直接予測するものと、故障までの履歴データの用意が難しい場合に健康指標 (Health Indicator) を算出し、間接的にRULを予測するものとがあります。このHIの算出に異常検知の手法を用いることもあります。これについては後述します。

基本的にRUL予測においては、Run-to-Failure履歴データが得られることが機器を個別に扱えるという点で理想的です。また、後述の機械学習とも相性が良いため、まずはそのようなデータが得られないか検討すべきです。

この他にも、多種多様な寿命予測の手法が存在しており、データの種類や特徴、目的、問題設定によって使い分ける必要があります。

RUL予測のための手法選択フローチャート
図5. 寿命予測のための手法選択フローチャート*5 (引用: MATLAB, 2024)

ここまで述べてきたようなデータを用いたData-Drivenなアプローチとは別に、寿命予測のための機器の物理モデルを作成し、周波数解析したり、シミュレーションしたりすることで寿命を予測するModel-Basedなアプローチもあります (Scheffer G. 2004)。ただし、物理モデルを構築するには機器と物理モデリングのエキスパートの存在が不可欠であり、Data-Drivenなアプローチに比べるとまた別の難しさがあります。

3. 機械学習による機器の寿命予測

近年、予知保全の領域でも機械学習が大きく注目を集めており、様々な予測タスクで機械学習を用いることも珍しくなくなってきています。機械学習のようなData-Drivenアプローチの利点として、データさえ揃えることができれば、非常に複雑な機器や製造プロセスでも、詳細な物理モデルを構築せずに予測モデルを作成できる点が挙げられます*6。そのような背景もあり、機械学習を予知保全のための予測モデルとして採用する取り組みは増加しつつあります。

3.1. RULの予測

機械学習モデルを使ってRULをRun-to-Failure履歴データから予測するタスクは回帰問題です。ラベルとなるRULはある時刻における残り寿命ですので、例えば、故障時点の稼働cycle数からその時刻のcycle数を単に引いたものと定義し、これを正解値として教師あり学習を行います*7

3.2. HIの算出

Run-to-Failure履歴データが得られないが、打ち切り履歴データなら得られるようなときには、機器の健康状態を表すHIを算出することで予知保全を行うと述べました。そのような手法としてVariational Autoencoder (VAE) によるHIの算出が挙げられます。

VAEとはニューラルネットワークモデルの一種で、データを一度小さな潜在空間に圧縮した後に、元のデータを再構成するという仕組みのモデルです。VAEを正常なデータのみで学習させることで、学習時には見られなかった特徴を持つデータ、つまり異常データや故障の兆候を示すデータに対しては、適切な再構成が困難になります。この再構成誤差を機器のHIとして予知保全に活用します。

3.3. 具体例

ここでは具体例としてニューラルネットワークによるRUL予測を取り上げます。最も基本的な全層結合層のみを用いたMLPモデルで、ベアリングのRULを予測するという研究です (M.A. Herzoga et al., 2007) 。

ここでは私が論文を参考にしてオープンデータセットFEMTO Bearing (P. Nectoux et al., 2012) に適用してみたものを示します。これはベアリングのRun-to-Failure履歴のデータセットで、2つの軸方向の加速度が時系列データとして与えられています*8。これを元に抽出された特徴量をMLPモデルへの入力として各時刻におけるRULを予測します。学習後の予測結果を以下に示します。

MLPによるベアリングのRUL予測の例
図6. MLPによるベアリングのRUL予測の例

図6の横軸はデータの測定タイミングを表すCycleで、縦軸は機器の残りの稼働時間であるRULです*9。定性的ではありますが、なかなか上手く予測できているように思います。

3.4. IoT×機械学習による予知保全システムの全体像

ここまで、IoTによる機器のリアルタイム監視と、機械学習による予知保全のための予測手法について説明してきました。ここで改めて予知保全システムの全体像を示します。

IoTと機械学習による予知保全システムの全体像
図7. IoTと機械学習による予知保全システムの全体像

機械学習モデルの訓練のためには、様々なデータの加工が必要になります。IoTによるデータの取得後、結合処理や欠損値処理などのクレンジング処理を行い、また何らかの特徴量へ変換することで、機械学習モデルへ入力できる形となります。

また、機械学習システム開発ではモデルを作って終わりではなく、運用と継続的な改善が重要です。モデルを継続的に監視し、必要に応じて再学習を行うなどの対応が求められます。詳しく知りたい方はMLOpsに関する書籍などを参照してみてください。

4. Flectでの予知保全に関する取り組み

現在Flectでは、予知保全システム開発におけるデータ分析フローには再利用可能な要素があると考え、Databricks上でのテンプレート化を試みています。これにより、例えばPoC段階でのデータ分析フローの構築を効率化し、迅速なプロトタイピングを可能にすることを目指しています。詳しくは、先日公開されたDatabricksを活用した機械学習プロジェクトの PoC フェーズの高速化に向けた取り組みの紹介AWSを使用したDatabricksの環境構築をご覧ください。

ORによるメンテナンス計画の立案
図8. IoTと機械学習による予知保全システムとORによるメンテナンス計画の最適化

更にFlectでは、予知保全におけるメンテナンス計画の立案の自動化/省力化に向けて、機械学習モデルの予測結果をもとに最適なメンテナンス計画を立案するためのOR技術の活用、特に数理最適化を用いたアプローチにも取り組んでいきたいと考えています。

5. まとめ

最後までお読みいただきありがとうございます。Flect では今後もお客様にとって付加価値となるような新たな分野や技術に関して開拓を行っていきます。今後も新たな技術の情報や取り組みの進展がありましたら、引き続き記事などで紹介していく予定ですので、その際は是非ご覧いただければと思います。今回ご紹介したような取り組み以外にも、Flectでは業務上の意思決定に関したその他のAIやORの研究を行っております。ご興味がありましたら是非ご相談ください。

Appendix

A.1. 異常検知

異常検知の例
図i. 異常検知の例

異常検知 (Anomaly Detection) では、機器から得られたセンサーデータの異常を検知します。予知保全の文脈ではデータの異常は機器の異常の表れであるという考え方に基づいています。具体的には、図iのように、正常データ集合の分布を定義し、その分布からの外れ度合いを異常度として閾値を設定し、その外側に位置するデータポイントを異常と判定します。

つまり、機器データの異常は潜在的な問題の兆候であると考えてメンテナンスの計画を立てるのです。特に、近年の異常検知モデルは、人間にはわからないレベルの異常でもデータ分析を通して検知することができるため、早期に機器のメンテナンス計画に繋げることができます。

A.2. 故障診断

故障診断の例
図ii. 故障診断の例

故障診断 (Fault Diagnosis) では、機器の故障を検出します。故障検出や故障分類など、いくつかの枠組みがあります。ここで、「予知保全とは"故障"を事前に検知することが目的であり、これは故障が生じてしまってからの取り組みではないか?」と疑問に思われるかも知れませんが、それは少し違っており、予知保全はあくまでも予期せぬ機器のダウンタイムを防ぐことを目的としています。例えば、複数のコンポーネントからなる冗長構成の機器があり、あるコンポーネントが故障したからといって機器の全体がダウンするわけではない、といった場合には故障診断も予知保全の文脈に乗ることになります。

故障診断は前述の2つと比べると、要件に応じた故障データ準備の難しさなどの要因により、難易度が高い問題設定と言えます。そのため、もしこれから予知保全を始められるのであれば、まずは異常検知や寿命予測を足掛けとして取り組むことをお勧めします。

*1:ここでは「ダウンタイム」=「使用できない期間」とします。時刻ではありません。

*2:特に産業におけるIoT技術はIndustrial IoT (IIoT) などと呼ばれます。

*3:ただし、どのように用語を定義するかは文献によって異なり、同じ用語でも微妙に意味が違うこともあるため注意が必要です。

*4:ここでいう稼働履歴データとは、各センサー値の時系列データがセットになったものです。

*5:MATLABでは寿命予測とRUL予測を同列に扱っていることに注意が必要です。

*6:もちろん精度を高めるには様々な工夫や取り組みが必要です。

*7:他にも単位時間換算した値にしたり、対数をとったりとRULの形式にはある程度の任意性があります。

*8:一部データには温度センサーの値も含まれています。

*9:ここでは正解値となるRULは対数をとっていることに注意してください。