(57)【要約】【課題】部品が使用される状況を考慮した上で、部品の故障予測を行う。【解決手段】学習モデル構築装置が、所定の部品に対して与えられる振動を表す情報から前記振動の特徴を表す特徴量を抽出する特徴量抽出手段と、前記特徴量と、前記所定の部品が使用開始されてから故障するまでの時間の長さであるラベルとの組を教師データとして受け付け、該受け付けた教師データによる機械学習を行うことにより、前記所定の部品が使用開始されてから故障するまでの時間の長さを予測するための学習モデルを構築する学習手段と、を備える。【選択図】図２
2018072029.tif 000002
【特許請求の範囲】
【請求項１】
所定の部品に対して与えられる振動を表す情報から前記振動の特徴を表す特徴量を抽出する特徴量抽出手段と、
前記特徴量と、前記所定の部品が使用開始されてから故障するまでの時間の長さであるラベルとの組を教師データとして受け付け、該受け付けた教師データによる機械学習を行うことにより、前記所定の部品が使用開始されてから故障するまでの時間の長さを予測するための学習モデルを構築する学習手段と、
を備える学習モデル構築装置。
【請求項２】
前記故障とは、前記振動によって前記所定の部品が破損することにより生じる故障である請求項１に記載の学習モデル構築装置。
【請求項３】
前記所定の部品は半田付けによる接合部分を有しており、前記所定の部品の破損とは、前記半田付けによる接合部分の破損である請求項２に記載の学習モデル構築装置。
【請求項４】
前記学習手段は、前記特徴量及びラベルに加えて、前記所定の部品の周辺の温度情報を含む教師データを受け付け、該受け付けた温度情報を含む教師データによる機械学習を行うことにより前記学習モデルを構築する請求項１乃至３の何れか１項に記載の学習モデル構築装置。
【請求項５】
前記特徴量は、前記振動を測定装置で測定することにより得た波形データを、所定のサンプリング周期でサンプリングすることにより得たデータである請求項１乃至４の何れか１項に記載の学習モデル構築装置。
【請求項６】
前記振動は、工作機械の利用に関連して発生する振動である請求項１乃至５の何れか１項に記載の学習モデル構築装置。
【請求項７】
請求項１乃至６の何れか１項に記載の学習モデル構築装置と、故障予測装置と備える故障予測システムであって、
前記故障予測装置が、
故障予測の対象とする前記所定の部品に対して与えられる振動の特徴量と、前記学習モデル構築装置が構築した前記学習モデルとに基づいて、前記故障予測の対象とする前記所定の部品が故障するまでの時間の長さを予測する予測手段と、
を備える故障予測システム。
【請求項８】
前記故障予測装置を複数備えており、
前記複数の故障予測装置のそれぞれが、１つの前記学習モデル構築装置が構築した共通の学習モデルを取得し、
前記複数の故障予測装置の予測手段それぞれが、故障予測の対象とする前記所定の部品に対して与えられる振動の特徴量と、前記取得した共通の学習モデルとに基づいて、前記故障予測の対象とする前記所定の部品が故障するまでの時間の長さを予測する請求項７に記載の故障予測システム。
【請求項９】
所定の部品に対して与えられる振動を表す情報から前記振動の特徴を表す特徴量を抽出する特徴量抽出ステップと、
前記特徴量と、前記所定の部品が使用開始されてから故障するまでの時間の長さであるラベルとの組を教師データとして受け付け、該受け付けた教師データによる機械学習を行うことにより、前記所定の部品が使用開始されてから故障するまでの時間の長さを予測するための学習モデルを構築する学習ステップと、
を有する学習モデル構築方法。
【請求項１０】
学習モデル構築装置としてコンピュータを機能させるための学習モデル構築プログラムであって、
所定の部品に対して与えられる振動を表す情報から前記振動の特徴を表す特徴量を抽出する特徴量抽出手段と、
前記特徴量と、前記所定の部品が使用開始されてから故障するまでの時間の長さであるラベルとの組を教師データとして受け付け、該受け付けた教師データによる機械学習を行うことにより、前記所定の部品が使用開始されてから故障するまでの時間の長さを予測するための学習モデルを構築する学習手段と、
を備える学習モデル構築装置として前記コンピュータを機能させる学習モデル構築プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、故障予測用の学習モデルを構築するための、学習モデル構築装置、学習モデル構築方法及び学習モデル構築プログラム、並びに、構築された故障予測用の学習モデルにより故障予測を行うための故障予測システムに関する。
【背景技術】
【０００２】
プリント基板に半田付けによって電子部品を接合することが一般的に行われている。この場合に、半田付けが適切に行われているかについて品質の確認を行う必要がある。従来、このような品質の確認は、人間による目視検査により行われていた。
しかしながら、目視検査を行う個々人の能力は相違している。また、同じ人間であったとしても疲労等によりその能力は一定ではない。結果として、人間による目視検査では、精度の高い品質の確認は困難であった。
【０００３】
このような状況を鑑みて、コンピュータを用いて精度の高い品質確認を行うという技術が、例えば、特許文献１や特許文献２に記載されている。
具体的には、特許文献１には、回路基板パッド上の半田ブリックを光学的に計測して、その計測値に基づいて、半田の品質状態を判定する、という技術が開示されている。
また、特許文献２には、入力された波形を統計処理して理想的な波形を決定して採取しておき、この理想的な波形と、判定対象とする回路の波形とに基づいて、異常の発生の有無を検知する波形評価装置が記載されている。例えば、コンデンサの出力波形に基づいて、コンデンサが適切な種類のものでないという異常や、コンデンサが劣化して出力特性が変化しているという異常が発生していることを検知する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０９−０２６８０２号公報
【特許文献２】特開平０７−０１３９８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したように、特許文献１や特許文献２に開示の技術を利用することにより、プリント基板における半田付けの現在の品質状態等を判定することができる。
【０００６】
この点、プリント基板に半田付けされた電子部品等は、製造時に適切に半田付けがなされていたとしても、振動が与えられる環境下で利用されると、半田接合部が継続的な振動による疲労で、予兆なく破断してしまうことがある。
しかしながら、特許文献１や特許文献２に開示の技術はあくまで現時点の品質状態を判定するものに過ぎない。そのため、これらの技術を用いても、今後どの程度の期間が経過すると、上述したような破断等の故障が発生するのかといったことを予測することはできない。また、プリント基板等が実際にどのような環境で使用されるかも考慮されていない。
【０００７】
そこで、本発明は、部品が使用される環境を考慮した上で部品の故障予測を行うための、学習モデル構築装置、故障予測システム、学習モデル構築方法及び学習モデル構築プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の学習モデル構築装置（例えば、後述の学習モデル構築装置２００）は、所定の部品に対して与えられる振動を表す情報から前記振動の特徴を表す特徴量を抽出する特徴量抽出手段（例えば、後述の特徴量抽出部２１０）と、前記特徴量と、前記所定の部品が使用開始されてから故障するまでの時間の長さであるラベル（例えば、後述のラベル取得部２２０が取得するラベル）との組を教師データとして受け付け、該受け付けた教師データによる機械学習を行うことにより、前記所定の部品が使用開始されてから故障するまでの時間の長さを予測するための学習モデルを構築する学習手段（例えば、後述の学習部２３０）と、を備える学習モデル構築装置。
【０００９】
上記の本発明の学習モデル構築装置においては、前記故障とは、前記振動によって前記所定の部品が破損することにより生じる故障であるとしてもよい。
【００１０】
上記の本発明の学習モデル構築装置においては、前記所定の部品（例えば、後述のＢＧＡ部品）は半田付けによる接合部分を有しており、前記所定の部品の破損とは、前記半田付けによる接合部分の破損であるとしてもよい。
【００１１】
上記の本発明の学習モデル構築装置においては、前記学習手段は、前記特徴量及びラベルに加えて、前記所定の部品の周辺の温度情報を含む教師データを受け付け、該受け付けた温度情報を含む教師データによる機械学習を行うことにより前記学習モデルを構築することとしてもよい。
【００１２】
上記の本発明の学習モデル構築装置においては、前記特徴量は、前記振動を測定装置で測定することにより得た波形データを、所定のサンプリング周期でサンプリングすることにより得たデータであるとしてもよい。
【００１３】
上記の本発明の学習モデル構築装置においては、前記振動は、工作機械（例えば、後述の工作機械１５０）の利用に関連して発生する振動であるとしてもよい。
【００１４】
本発明の故障予測システム（例えば、後述の故障予測システム１０００）は、上記の本発明の学習モデル構築装置と、故障予測装置（例えば、後述の故障予測装置３００）と備える故障予測システムであって、前記故障予測装置が、故障予測の対象とする前記所定の部品に対して与えられる振動の特徴量と、前記学習モデル構築装置が構築した前記学習モデルとに基づいて、前記故障予測の対象とする前記所定の部品が故障するまでの時間の長さを予測する予測手段（例えば、後述の故障予測部３１０）と、を備える故障予測システムである。
【００１５】
上記の本発明の故障予測システムにおいては、前記故障予測装置を複数（例えば、後述の故障予測装置３００−１から故障予測装置３００−ｍまで）備えており、前記複数の故障予測装置のそれぞれが、１つの前記学習モデル構築装置が構築した共通の学習モデルを取得し、前記複数の故障予測装置の予測手段それぞれが、故障予測の対象とする前記所定の部品に対して与えられる振動の特徴量と、前記取得した共通の学習モデルとに基づいて、前記故障予測の対象とする前記所定の部品が故障するまでの時間の長さを予測するようにしてもよい。
【００１６】
本発明の学習モデル構築方法は、所定の部品に対して与えられる振動を表す情報から前記振動の特徴を表す特徴量を抽出する特徴量抽出ステップ（例えば、後述の特徴量抽出部２１０による処理）と、前記特徴量と、前記所定の部品が使用開始されてから故障するまでの時間の長さであるラベル（例えば、後述のラベル取得部２２０が取得するラベル）との組を教師データとして受け付け、該受け付けた教師データによる機械学習を行うことにより、前記所定の部品が使用開始されてから故障するまでの時間の長さを予測するための学習モデルを構築する学習ステップ（例えば、後述の学習部２３０による処理）と、を有する学習モデル構築方法である。
【００１７】
本発明の学習モデル構築プログラムは、学習モデル構築装置（例えば、後述の学習モデル構築装置２００）としてコンピュータを機能させるための学習モデル構築プログラムであって、所定の部品に対して与えられる振動を表す情報から前記振動の特徴を表す特徴量を抽出する特徴量抽出手段（例えば、後述の特徴量抽出部２１０）と、前記特徴量と、前記所定の部品が使用開始されてから故障するまでの時間の長さであるラベル（例えば、後述のラベル取得部２２０が取得するラベル）との組を教師データとして受け付け、該受け付けた教師データによる機械学習を行うことにより、前記所定の部品が使用開始されてから故障するまでの時間の長さを予測するための学習モデルを構築する学習手段（例えば、後述の学習部２３０）と、を備える学習モデル構築装置として前記コンピュータを機能させる学習モデル構築プログラムである。
【発明の効果】
【００１８】
本発明によれば、部品が使用される環境を考慮した上で部品の故障予測を行うことが可能となる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態全体の基本的構成を表すブロック図である。
【図２】本発明の実施形態における各装置に含まれる機能ブロックを表すブロック図である。
【図３】本発明の実施形態における機械学習に基づいた故障予測について示すイメージ図である。
【図４】本発明の実施形態における機械学習時の動作について示すフローチャートである。
【図５】本発明の実施形態において入力される波形データの一例を示す図である。
【図６】本発明の実施形態において入力される波形データから特徴量を抽出するための方法の一例を示す図である。
【図７】本発明の実施形態において構築する学習モデルの概要について示すイメージ図である。
【図８】本発明の実施形態における故障判定時の動作について示すフローチャートである。
【発明を実施するための形態】
【００２０】
まず、本発明の実施形態の概略を説明する。本実施形態は、工作機械を制御する数値制御装置（ＣＮＣ：Computer Numerical Control）に使用される所定の部品（例えば、ＢＧＡ(Ball grid array)部品）の故障予測を行う。
【００２１】
数値制御装置に使用されるＢＧＡ部品はプリント基板に半田付けされるが、この半田接合部が継続的な振動による疲労で破断することがある。この点、強い振動が長期間加われば破断に至るのであるが、この破断現象と振動波形との相関には、多種多様なケースがある。
そのため、１つのケースだけに基づいて、半田接合部が破断するのかを予測することは容易ではない。例えば、或る１つのケースだけに基づいて、数値制御装置の製品寿命内に、ＢＧＡ部品が破断するか否かを予測することは容易ではない。
【００２２】
そこで、本実施形態では、破断に至った装置の振動波形や、破断に至らず故障が発生しなかった装置の振動波形、といった多数のケースの振動波形を用いて機械学習を行う。そして、このような機械学習により構築された学習モデルと、故障判定の対象とする装置の振動波形とに基づいて、どの程度の期間が経過すると破断等の故障が発生するかについて精度良く予測する。
以上が本発明の実施形態の概略である。
【００２３】
次に、本実施形態である故障予測システム１０００の構成について図１を参照して説明をする。図１に示すように、故障予測システム１０００は、Ｎ台の数値制御装置１００、Ｎ台の工作機械１５０、学習モデル構築装置２００、Ｍ台の故障予測装置３００、及びネットワーク４００を備える。なお、Ｎ及びＭは任意の自然数である。
【００２４】
これらの装置間の接続について説明する。数値制御装置１００と工作機械１５０とは組とされて、通信可能に接続されている。これら数値制御装置１００と工作機械１５０の組は、例えば同じ工場に複数組設置されていてもよいし、それぞれ異なる工場に設置されていてもよい。
【００２５】
工作機械１５０と、学習モデル構築装置２００と、故障予測装置３００とは、それぞれネットワーク４００に接続されており、ネットワーク４００を介して相互に通信を行うことが可能である。ネットワーク４００は、例えば、工場内に構築されたＬＡＮ（Local Area Network）や、インターネットや、公衆電話網、あるいはこれらの組み合わせである。ネットワーク４００における具体的な通信方式や、有線接続及び無線接続の何れであるか等については特に限定されない。
【００２６】
次に、故障予測システム１０００に含まれるこれら装置の機能について図２を参照して説明をする。ここで、図２は、各装置に含まれる機能ブロックを表すブロック図である。なお、各数値制御装置１００はそれぞれ同等の機能を有しているため、図２では１台のみを図示する。同様に、各工作機械１５０や各故障予測装置３００もそれぞれ同等の機能を有しているため、図２では１台のみを図示する。また、各装置間に存在するネットワーク４００については図示を省略する。
【００２７】
工作機械１５０は、被加工品に対して、切断や研磨、折り曲げ等の加工をする一般的な工作機械である。工作機械１５０は、数値制御装置１００による制御に基づいてサーボモータやリニアモータを駆動して加工工具を動作させることにより加工を実行する。
かかる加工に伴い振動が発生するが、かかる振動は工作機械１５０に据え付けられていたり、あるいは工作機械１５０の近傍に設置されていたりする数値制御装置１００にも伝播する。そして、数値制御装置１００に伝播した振動は、上述したように、数値制御装置１００内部のＢＧＡ部品等の破損の原因となる。
【００２８】
数値制御装置１００は、工作機械１５０から伝播した振動を測定するための測定部１１０を備える。また、数値制御装置１００はそれ以外にも、工作機械１５０を制御するための機能ブロック、通信を行うための機能ブロック、ユーザからの操作を受け付けるための機能ブロック、といった一般的な機能ブロックを備える。ただし、これらの一般的な機能ブロックについては当業者によく知られているので図示及び説明を省略する。同様に、後述の、学習モデル構築装置２００や故障予測装置３００においても、通信を行うための機能ブロック、ユーザからの操作を受け付けるための機能ブロック、といった一般的な機能ブロックについては図示及び説明を省略する。
【００２９】
測定部１１０は、工作機械１５０から伝播する振動を測定するための振動センサである。測定部１１０は、例えば、それぞれ互いに直交する、Ｘ軸、Ｙ軸及びＺ軸の三軸方向の加速度を測定可能な三軸加速度センサにより実現することができる。測定部１１０が測定したＸ軸、Ｙ軸及びＺ軸の三軸方向の加速度は、図中に示すように、後述の特徴量抽出部２１０に対して「入力データ」として出力される。より詳細には、三軸加速度センサにより取得した、各軸の加速度に相当するアナログ振動波形信号を、アナログ−デジタル変換によりデジタル化したデータが後述の特徴量抽出部２１０に対して入力データとして出力される。
【００３０】
測定部１１０は、本実施形態のために数値制御装置１００に取り付けるようにしてもよい。ただし、数値制御装置のモデルによっては、このような三軸加速度センサが他の用途のために組み込まれている場合がある。このような場合には、その予め組み込まれている三軸加速度センサの測定値を本実施形態においても利用するようにすればよい。また、測定部１１０は一軸方向の加速度を測定する加速度センサの組み合わせにより実現するようにしてもよい。
【００３１】
また、数値制御装置１００はユーザからのラベルの入力を受け付ける。ここで、ラベルとは、機械学習において入力に対応すべき正しい出力である。本実施形態では、ラベルは、測定対象とした各数値制御装置１００が共通して備える所定の部品（例えば、或る種類のＢＧＡ部品）が使用開始されてから、故障するまでの時間の長さである。より具体的には、「使用開始から５年で故障した」、「使用開始から７年で故障した」といった情報や、「使用開始から２０年経過したが故障していない」といった情報である。受け付けたラベルは、図中に示すように、後述のラベル取得部２２０に対して「ラベル」として出力される。
【００３２】
学習モデル構築装置２００は、故障が発生した数値制御装置１００の振動波形や、故障が発生しなかった数値制御装置１００の振動波形、といった多数のケースの振動波形を用いて機械学習を行う装置である。そして、学習モデル構築装置２００は、このような機械学習により、故障予測を行うための学習モデルを構築する。
【００３３】
そのために、学習モデル構築装置２００は、特徴量抽出部２１０、ラベル取得部２２０、学習部２３０及び学習モデル記憶部２４０を備える。
【００３４】
特徴量抽出部２１０は、数値制御装置１００の測定部１１０から入力された入力データから特徴量を抽出する部分である。特徴量の抽出の具体的な内容については、図６及び図７を参照して後述する。
【００３５】
ラベル取得部２２０は、数値制御装置１００からラベル取得し、取得したラベルを学習部２３０に対して出力する部分である。なお、数値制御装置１００からラベルの取得をするのではなく、学習モデル構築装置２００の操作受付部（図示を省略する）によりユーザのラベルの入力操作を受け付け、これによりラベルを取得するようにしてもよい。
【００３６】
このようにして、測定対象とした数値制御装置１００の特徴量と、この測定対象とした数値制御装置１００のラベルとが組となり、学習部２３０に入力される。この特徴量とラベルの組は、機械学習における教師データに相当する。
【００３７】
ここで、機械学習を行うための教師データは、多数用意されることが望ましい。そこで、例えば顧客先で使用されている、三軸加速度センサが搭載されている数値制御装置１００のそれぞれについて、稼働中の何れかの日に特徴量を取得しておく。例えば、数値制御装置１００のメンテナンスに赴いた日に振動を測定して特徴量を取得しておく。そして後日、何れかの数値制御装置１００の所定の部品が故障したならば、その故障までの時間の長さと、その数値制御装置１００について取得しておいた特徴量を組にして新たな教師データを作成するようにするとよい。このようにすれば、顧客先等で通常通りに使用している数値制御装置１００により、多くの教師データを作成することができるのでよい。
また、例えば、実験室等にて教師データを作成するようにしてもよい。例えば、実験室で、意図的に振動を加えることにより通常の３倍の頻度で数値制御装置１００が振動するようにする。そして、この数値制御装置１００の所定の部品が１年で故障したならば、３年で故障したというラベルを組にして教師データを作成するようにするとよい。
【００３８】
学習部２３０は、このようにして入力された教師データに基づいて機械学習を行うことにより、学習モデルを構築する。学習部２３０による機械学習の詳細については、図７を参照して後述する。学習部２３０が構築した学習モデルは、学習モデル記憶部２４０及び後述の故障予測部３１０に対して出力される。
【００３９】
学習モデル記憶部２４０は、学習部２３０が構築して学習モデル記憶部２４０に対して出力した学習モデルを記憶する記憶部である。
【００４０】
故障予測装置３００は、本実施形態における故障予測を行う装置である。故障予測装置３００は、故障予測部３１０と故障予測結果出力部３２０とを備える。
【００４１】
故障予測部３１０は、学習部２３０から入力された学習モデルと、外部から入力された判定データとを用いて故障予測を行う。そして、故障予測部３１０は、これらのデータを用いて行った故障予測の結果を、図中に示すように、故障予測結果出力部３２０に対して「故障予測結果」として出力する。
【００４２】
ここで、学習部２３０から故障予測部３１０に入力される学習モデルは、上述のように学習部２３０により構築されたものである。
また、故障予測部３１０に入力される判定データは、学習部２３０に入力される特徴量と同等のデータであり、故障予測の対象とする数値制御装置１００の測定部１１０により取得したアナログ波形信号をデジタル化したデータから抽出した特徴量である。
判定データは、学習モデル構築装置２００の特徴量抽出部２１０から入力されるようにしてもよい。また他にも、故障予測装置３００内部に特徴量抽出部２１０と同等の機能ブロックを設けておき、数値制御装置１００が出力する入力データから、この特徴量抽出部２１０と同等の機能ブロックが特徴量を抽出するようにしてもよい。
【００４３】
故障予測結果出力部３２０は、故障予測部３１０から入力された故障予測結果を出力する部分である。出力は、例えば、故障予測結果の表示部への表示であってもよいし、故障予測結果の他の装置への送信であったり、故障予測結果を紙媒体に印刷することであったりしてもよい。
【００４４】
ユーザは、故障予測結果を参照することにより、今回故障予測の対象とした数値制御装置１００が備える所定の部品について予測される故障までの時間の長さを知ることができる。これにより、故障に先立って部品を交換するための、部品の交換時期を決定することが可能となる。また、他にも製品寿命（例えば、２０年）の間は部品が故障しない可能性が高いことなどを知ることが可能となる。故障予測結果の具体例については、図７を参照して後述する。
【００４５】
以上数値制御装置１００、学習モデル構築装置２００及び故障予測装置３００の機能ブロックについて説明した。次に、これらの機能ブロックの実現方法について説明をする。
これらの機能ブロックを実現するために、数値制御装置１００、学習モデル構築装置２００及び故障予測装置３００の何れも、ＣＰＵ（Central Processing Unit）等の演算処理装置を備える。また、数値制御装置１００、学習モデル構築装置２００及び故障予測装置３００の何れも、各種の制御用プログラムを格納したＨＤＤ（Hard Disk Drive）等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのＲＡＭ（Random Access Memory）といった主記憶装置を備える。
【００４６】
そして各装置において、演算処理装置が補助記憶装置からアプリケーションやＯＳを読み込み、読み込んだアプリケーションやＯＳを主記憶装置に展開させながら、これらのアプリケーションやＯＳに基づいた演算処理を行なう。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
【００４７】
具体例として、数値制御装置１００は、測定部１１０を備えた一般的な数値制御装置により実現できる。また、学習モデル構築装置２００や故障予測装置３００はそれぞれ、パーソナルコンピュータにより実現できる。
【００４８】
ただし、学習モデル構築装置２００については機械学習に伴う演算量が多いため、例えば、パーソナルコンピュータにＧＰＵ（Graphics Processing Units）を搭載し、ＧＰＧＰＵ（General-Purpose computing on Graphics Processing Units）と呼ばれる技術により、ＧＰＵを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。更には、より高速な処理を行うために、このようなＧＰＵを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
【００４９】
次に、本実施形態における機械学習に関しての基本的な考え方について図３を参照して説明をする。図３の上段には、機械学習時についてのイメージを示す。また、図３の下段には、故障予測時についてのイメージを示す。なお、図３は考え方を示すための図であり、説明を分かりやすくするために非常に模式化した図としている。
【００５０】
本実施形態に含まれる複数の数値制御装置１００は、それぞれ異なる工作機械１５０と接続されている。そして工作機械１５０はそれぞれ異なる加工を行うので、それぞれが異なる振動をする。そのため、図３の上段に示すように、各数値制御装置１００の測定部１１０が測定する振動は、それぞれ異なった波形となる。また、ラベルとなる故障までの時間の長さも、５年であったり、７年であったり、１０年以上正常であったり、とそれぞれことなるものとなる。
そして、上述したように、入力データである波形から抽出した特徴量と、ラベルとの組み合わせを教師データとして機械学習を行い、複数の教師データを用いて学習モデルを構築する。
【００５１】
このようにして学習モデルを構築すると、図３の下段に示すように、故障予測の対象とする数値制御装置１００の測定部１１０が測定した波形から抽出した特徴量を判定データとして、構築した学習モデルを利用した故障予測を行うことができる
以上が、本実施形態における機械学習に関しての基本的な考え方である。
【００５２】
次に、図４のフローチャートを参照して、機械学習時の学習モデル構築装置２００の動作について説明をする。
【００５３】
まず、学習モデル構築装置２００は何れかの数値制御装置１００から、入力データとラベルを取得する（ステップＳ１１）。これらのデータの具体的な内容は上述した通りである。
【００５４】
次に学習モデル構築装置２００は、ステップＳ１１で取得した入力データから特徴量を抽出する（ステップＳ１２）。この特徴量の抽出について図５及び図６を参照して説明をする。
まず、図５を参照して前提となる入力データについて説明をする。図５には、入力データとして、数値制御装置１００の測定部１１０が測定した、時系列に沿って変化する加速度の波形の例を示す。入力データとする波形は、一定期間測定したものであるが、本説明では、一定期間を一例として９：００〜２１：００とする。そして、数値制御装置１００は、毎日同じように継続して利用されることを想定する。例えば、数値制御装置１００は、毎朝同じような時間に電源が投入され、所定の周期で所定の加工が行われ、毎夕同じような時間に電源が遮断される、ということを繰り返すということを想定する。
なお、毎日同じように繰り返されるのであれば、例えば午前中は第１の加工方法での加工を行い、午後には第２の加工方法での加工を行うというような時間帯によって異なる利用のされかたであってもよい。
【００５５】
図５には、一定期間（一例として、９：００〜２１：００）のＸ軸方向の加速度を示すが、実際の入力データには、他にも、一定期間のＹ軸方向の加速度と一定期間のＺ軸方向の加速度が含まれる。
【００５６】
ここで、一定期間をこれよりも大幅に短くすることや、三つの軸の加速度を利用するのではなく一つの軸の加速度を利用することも考えられる。本実施形態はこのようにしても機能するが、今回は以下に説明する観点から、このようにはしていない。
【００５７】
上述したように、ＢＧＡ部品等の部品は、振動が原因となって破断するが、どのような種類の振動が破断の原因となるかをユーザが判断することは困難である。例えば、数値制御装置１００による加工時の振動ではなく、数値制御装置１００に被加工物を工作機械１５０にセットする際の、ユーザによる工作機械１５０の扉の開閉に伴う振動が破断の原因となるかもしれない。そこで、或る一つの加工の開始から終了までといった特定の短い時間を一定期間とするのではなく、例えば１２時間等の長い時間を一定期間として機械学習を行うこととしている。
つまり本例では、ユーザによる判断で入力データを選別することなく、なるべく多くの入力データを用いて機械学習を行うことが好ましいとの考えに基づいて、１２時間等の長い時間を一定期間として機械学習を行うこととしている。
【００５８】
また同様に、何れの軸の振動が破断の原因となるかをユーザが判断することは困難である。また、もしかすると、複数軸の振動の組み合わせが破断の原因かもしれないが、一つの軸の振動のみを考慮していると、このように複数軸の振動の組み合わせが破断の原因であることをユーザが判断することはできない。
そこで、上述の一定期間の長さの決定の仕方における考え方と同様に、ユーザが何れの軸の振動が重要であるか等を選別するのではなく、三軸全ての振動を利用して機械学習を行うこととしている。これにより、より適切な学習モデルを構築できることが期待できる。
【００５９】
次に、図６を参照して、図５に示した入力データからの特徴量の抽出について説明をする。
本実施形態では一例として図６に示すように、入力データに対して、分解能１６ｂｉｔ、サンプリング周期１ｍｓでサンプリングをすることにより特徴量の抽出をする。
この場合に抽出されるデータ量であるが、一定時間が１２時間であり，サンプリング周期１ｍｓであり，１６ｂｉｔ＝２ｂｙｔｅであるので、下記の［数式１］に示すように、約８２Ｍｂｙｔｅが１軸分のデータ量となる。
【００６０】
［数式１］
１０００［ｍｓ］×６０［ｓｅｃ］×６０［ｍｉｎ］×１２［ｈｏｕｒ］×２［ｂｙｔｅ］≒８２［Ｍｂｙｔｅ］
【００６１】
なお、特徴量は、Ｘ軸のみならず、Ｙ軸及びＺ軸についても抽出される
【００６２】
このようにして、特徴量が抽出されると、抽出された特徴量とラベルとの組が教師データとされ学習部２３０に対して出力される（ステップＳ１３）。
【００６３】
すると、学習部２３０は、入力された教師データを用いて機械学習を実行する（ステップＳ１４）。この教師データを用いた機械学習について、図７を参照して説明をする
【００６４】
図７に示すように、構築途中の学習モデルである学習モデル２５０は、ニューラルネットワーク２５１及び重み付け値２５２を含む。
本実施形態では、パーセプトロンを組み合わせて構成したニューラルネットワークにより、機械学習を行う。具体的には、教師データに含まれる特徴量とラベルの組をニューラルネットワークに与え、ニューラルネットワークの出力がラベルと同じとなるように、各パーセプトロンについての重み付けを変更しながら学習を繰り返す。このようにして、教師データの特徴を学習し、入力から結果を推定するための学習モデルを帰納的に獲得する。
【００６５】
より具体的には、図７に示すように、パーセプトロンを三層組み合わせる。そして、ニューラルネットワークの図中の左側から複数の入力Ｘを入力すると、図中の右側から複数の出力Ｙが出力される。
【００６６】
以下の説明では、ニューラルネットワーク２５１に含まれる各パーセプトロンを「添字を二文字添えたＰ」で示す。また、図７では、ニューラルネットワーク２５１に含まれる各パーセプトロンを「添字を二文字添えた丸付き文字のＰ」で示す。かかるＰの添字の一文字目はそのパーセプトロンの次元数を表し、添字の二文字目はそのパーセプトロンの層数を表す。例えば、Ｐ２１であれば、二次元目であって一層目のパーセプトロンであることを表す。
【００６７】
ここで、ニューラルネットワーク２５１の一番左側の層（以下、「入力層」と呼ぶ。）の次元数は「ｉ」である。ｉの値は、任意の自然数である。ただし、今回は、特徴量の抽出時の説明として上述したように、一定時間が１２時間であり，サンプリング周期１ｍｓであることから、サンプリングデータ数は、下記の［数式２］に示すように、４３２０００００個となる。従って、ｉの値も４３２０００００となる。なお、１回目のサンプリングをｔ１に行い、２回目のサンプリングをｔ２で行い、・・・ｉ回目のサンプリングをｔｉで行ったものとする。
【００６８】
［数式２］
１０００［ｍｓ］×６０［ｓｅｃ］×６０［ｍｉｎ］×１２［ｈｏｕｒ］＝４３２０００００［個］
【００６９】
また、ニューラルネットワーク２５１の中央の層（以下、「隠れ層」と呼ぶ。）の次元数は「ｊ」である。ｊの値は、任意の自然数である。また、ｊの値は、機械学習の過程において変更するようにしてもよい。
【００７０】
更に、ニューラルネットワーク２５１の一番右側の層（以下、「出力層」と呼ぶ。）の次元数は「ｋ」である。ｋは、任意の自然数であるが、今回は、ｋの値を２１とする。その理由について説明をする。本実施形態では一例として、工作機械１５０の製品寿命を２０年と想定する。そして、２０年以内のある年数で故障するか、それとも２０年以上経過してから故障するかを予測する。そのために、ラベルを、各数値制御装置１００が共通して備える所定の部品（例えば、或る種類のＢＧＡ部品）が、１年で故障、２年で故障、・・・、２０年で故障、２０年以上で故障、というように１年単位で作成する。そのため、ラベルの種類は２１となる。従って、上述したようにｋの値を２１とする。
【００７１】
ニューラルネットワーク２５１では、各パーセプトロンの出力は、次層のすべてのパーセプトロンへ対して出力される。例えば、出力層のＰ１１の出力は、隠れ層のすべてのパーセプトロンであるＰ２１・・・Ｐｊ２のそれぞれに対して出力される。同様に、出力層のＰ２１・・・Ｐｎ１のそれぞれの出力も、隠れ層のすべてのパーセプトロンであるＰ２１・・・Ｐｊ２のそれぞれに対して出力される。ただし、図中では、図の見やすさを考慮して、一部のパーセプトロンと、この一部のパーセプトロンへの出力については図示を省略する。
【００７２】
重み付け値２５２は、学習部２３０が行う機械学習で使用される重み付け値である。学習部２３０は、ニューラルネットワーク２５１に含まれる各パーセプトロンの出力する値に対して、出力したパーセプトロンに対応する重み付け値を乗算した上で、次層のすべてのパーセプトロンへ入力する。
つまり、隠れ層や出力層に含まれる各パーセプトロンの出力は、前の層の各パーセプトロンの出力に各パーセプトロンに対応する重み付け値を乗算した値の総和となる。
【００７３】
また、図示をしていないがバイアスを各パーセプトロンに入力するようにしてもよい。バイアスは、値「１」に機械学習の過程において修正した重み付け値を乗算した値である。
【００７４】
以下の説明及び図中では、重み付けの値を、「添字を二文字添えたＷ」で表す。また、入力層のパーセプトロンの入力を、「添字を二文字添えたＸ」で表し、出力層のパーセプトロンの出力を、「添字を二文字添えたＹ」で表す。
ここで、これら二文字の添字は、同じ二文字の添字が添えられたパーセプトロンに対応する値であることを意味する。例えばＷ１１は、Ｐ１１に対応する重み付けの値であることを表す。また、例えばＸ１１は、Ｐ１１に対応する入力であることを表す。更に、例えばＹ１３は、Ｐ１３に対応する入力であることを表す。
【００７５】
次に、機械学習の実行方法について説明する。まず、教師データとしてｉ個の特徴量と、ラベルとが学習部２３０に入力される。一例として、今回は、２０年以上で故障というラベルが入力されたものとする。
【００７６】
すると、ｉ個の特徴量の値が、入力層のｉ個のパーセプトロンにそれぞれ１つずつ入力される。そして、入力された特徴量の値に、入力層の各パーセプトロンに対応する重み付け値が乗算された値が、隠れ層の各パーセプトロンに対して入力される。
【００７７】
次に、隠れ層の各パーセプトロンは、自身に入力された値の総和を出力するので、この出力した値に、隠れ層の各パーセプトロンに対応する重み付け値が乗算された値が、出力層の各パーセプトロンに対して入力される。
【００７８】
更に、出力層の各パーセプトロンは、自身に入力された値の総和を出力する。この出力が図中のＹ１３、Ｙ２３・・・Ｙｋ３に相当する。これら出力は、１年で故障、２年で故障、・・・、２０年で故障、２０年以上で故障という分類に相当する。図の例であれば、Ｙ１３（１年で故障という分類に相当）の値が０．０３であり、Ｙ２３（２年で故障という分類に相当）の値が０．０５であるのに対して、Ｙｋ３（２０年以上で故障という分類に相当）の値が０．７０であり非常に高い値になっている。
そして、今回のラベルは、２０年以上で故障というラベルであることから、適切な出力がなされていることが分かる。
【００７９】
以上の動作はフォワードプロパゲーション（Forward-propagation）と呼ばれる。このようにフォワードプロパゲーションを行った後に、バックプロパゲーション（Back-propagation、誤差逆伝搬法とも呼ばれる。）という手法により各パーセプトロンの出力の誤差を小さくするように重み付け値を調整する。
具体的には、各出力Ｙとラベルとの誤差を算出し、算出した誤差を小さくするように、隠れ層と出力層との間の重み付け値を修正する。更に、隠れ層と出力層との間の重み付け値を修正量に基づいて、隠れ層と入力層との間の重み付け値を修正する。
【００８０】
このようにして、フォワードプロパゲーション及びバックプロパゲーションを行うと、学習部２３０は、機械学習を終了するか、それとも機械学習を繰り返すかを判定する（ステップＳ１５）。ここで、機械学習を終了させる条件は任意に定めることができる。例えば、各出力Ｙとラベルとの誤差の値が所定値以下となった場合に機械学習を終了させるようにするとよい。また他にも、予め定めておいた回数だけ機械学習を繰り返した場合に機械学習を終了させるようにするとよい。
【００８１】
何れにしても、条件が満たされておらず、機械学習を未だ終了させないのであれば（ステップＳ１５にてＮｏ）、ステップＳ１１に戻り、新たな教師データ又は同じ教師データを対象として、修正後の各重み付け値に基づいて、再度フォワードプロパゲーション及びバックプロパゲーションを行うことを繰り返す。
【００８２】
このように機械学習を繰り返す過程にて、機械学習を終了させる条件が満たされたならば（ステップＳ１５にてＹｅｓ）、機械学習を終了し、その時点までの機械学習により構築した学習モデルを送信する（ステップＳ１６）。例えば、学習モデルを、ネットワーク４００を介して各故障予測装置３００に対して送信する。
【００８３】
また、他にも、学習モデルを学習モデル記憶部２４０に出力して記憶させる。これのように学習モデル記憶部２４０に記憶させておけば、新たに設置された故障予測装置３００から学習モデルを要求された場合に、学習モデルを送信することができる。また、新たな教師データを取得した場合に、学習モデルに対して更なる機械学習を行うことができる。
【００８４】
以上、学習部２３０による学習モデルの構築について説明をした。次に、このようにして構築された学習モデルを用いた故障予測について図８のフローチャートを参照して説明をする。
【００８５】
故障予測装置３００の故障予測部３１０は、学習モデル構築装置２００が送信した学習モデルを受信することにより学習モデルを取得する（ステップＳ２１）。また、特徴量抽出部２１０や数値制御装置１００から判定データを取得する（ステップＳ２２）。判定データの取得方法の詳細は、図２を参照した故障予測部３１０の説明時に上述した通りである。
【００８６】
次に、故障予測部３１０は、取得した学習モデル及び取得した判定データにより故障予測を行う（ステップＳ２３）。具体的には、取得した判定データに含まれるｉ個の特徴量の値を、取得した学習モデルのｉ個のパーセプトロンにそれぞれ１つずつ入力する。これは、図４や図７を参照して説明した機械学習での入力と同様である。
【００８７】
その後これも機械学習と同様に、機械学習にて修正された重み付け値が乗算されながら隠れ層及び出力層へと出力され、最終的に各出力層から出力Ｙ（Ｙ１３、Ｙ２３・・・Ｙｋ３）がなされる。かかる出力Ｙが、故障予測結果である。
【００８８】
次に、故障予測部３１０は故障予測結果を故障予測結果出力部３２０に対して出力する。そして、故障予測結果出力部３２０は入力された故障予測結果を出力する（ステップＳ２４）。出力方法は、図２を参照した故障予測結果出力部３２０の説明時に上述した通りであり、例えば画面への表示等により行われる。なおこの際に、故障予測結果である出力Ｙ（Ｙ１３、Ｙ２３・・・Ｙｋ３）の全てを出力するようにしてもよい。ただし、これら、Ｙ１３、Ｙ２３・・・Ｙｋ３の内の一部を出力してもよい。例えば、図７に示すようにしてＹ１３、Ｙ２３・・・Ｙｋ３が出力されたならば、もっとも値が大きいＹｋ３を故障予測結果として出力するようにすればよい。この場合に、Ｙｋ３に対応する「２０年以上で故障」といったメッセージを出力するようにするとよい。
【００８９】
以上説明した本実施形態では、ユーザは、このようにして出力された故障予測結果を参照することにより、故障予測の対象とした数値制御装置１００が備える所定の部品（例えば、或る種類のＢＧＡ部品）が使用開始されてから故障するまでの時間の長さを予測結果として知ることができる、という効果を奏する。
【００９０】
また、数値制御装置１００が工作機械１５０と接続された状態で測定した振動により予測結果を知ることができるので、数値制御装置１００に備えられた所定の部品が実際に利用される環境を考慮した予測結果を知ることができる、という効果も奏する。
【００９１】
また、一定期間（一例として、９：００〜２１：００）の振動を測定するのみで、予測結果を知ることができる、という効果も奏する。
【００９２】
＜変形例＞
上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【００９３】
例えば、上述した実施形態では、数値制御装置１００により測定した振動の波形から、特徴量を抽出していた。そして、この振動の特徴量とラベルとで教師データを作成していた。
【００９４】
これに加えて、数値制御装置１００が備える所定の部品（例えば、或る種類のＢＧＡ部品）が故障する要因となる他の測定値を教師データに含ませるようにしてもよい。例えば、数値制御装置１００の内部に温度センサを設置する。そして、この温度センサにより測定した数値制御装置１００が備える所定の部品の温度又は所定の部品の周辺の温度を特徴量の一つとして教師データに含ませるようにしてもよい。
【００９５】
この点、温度は振動のように極短時間で大きく変動するものではない。そのため、サンプリング周期１ｍｓとするのではなく、例えば、一定期間（一例として、９：００〜２１：００）においてサンプリング周期１ｈｏｕｒとして、サンプリングした温度の値を特徴量とする。する。また、サンプリング周期１ｈｏｕｒでサンプリングした温度の平均値を特徴量とする。
【００９６】
そして、温度に基づいた特徴量の数だけ入力層のパーセプトロンの数を増加させ、この増加した入力層のパーセプトロンに、温度に基づいた特徴量を入力する。これにより、温度も考慮した故障予測を行うことが可能となる。
【００９７】
また、温度以外の他の測定値を特徴量に更に含ませるようにしてもよい。例えば、測定した湿度の値を特徴量に更に含ませるようにしてもよい。
【００９８】
また他の変形例として、図７を参照して説明したニューラルネットワークは三層であったが、これ以上にさらに層を増やすようにしてもよい。すなわち、いわゆるディープラーニング（深層学習とも呼ばれる。）により学習及び故障予測を行うようにしてもよい。また他の変形例として、自己符号化器（Auto encoder）を利用するようにしてもよい。
【００９９】
更に他の変形例について説明する。特徴量としては、上述のように、三軸加速度センサにより取得した、各軸の加速度に相当するアナログ振動波形信号を、アナログ−デジタル変換によりデジタル化したデータを図６に示すようにしてサンプリングしたものを用いていた。しかし、これ以外の方法を取るようにしてもよい。例えば図６に示すようにしてサンプリングしたデータに対してフーリエ変換を行い、フーリエ変換により得られる周波数スペクトルを特徴量とするようにしてもよい。
【０１００】
更に他の変形例として、学習モデル構築装置２００と故障予測装置３００が一体の装置として実現されるようにしてもよい。
あるいは、学習モデル構築装置２００と数値制御装置１００が一体の装置として実現されるようにしてもよい。
【０１０１】
なお、上記の故障予測システムに含まれる各装置は、ハードウェア、ソフトウェア又はこれらの組み合わせによりそれぞれ実現することができる。また、上記の故障予測システムに含まれる各装置により行なわれる故障予測方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【０１０２】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ(Read Only Memory)、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ(Programmable ROM)、ＥＰＲＯＭ(Erasable PROM)、フラッシュＲＯＭ、ＲＡＭ(random access memory）)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【０１０３】
１００  数値制御装置
１１０  測定部
１５０  工作機械
２００  学習モデル構築装置
２１０  特徴量抽出部
２２０  ラベル取得部
２３０  学習部
２４０  学習モデル記憶部
２５０  学習モデル
２５１  ニューラルネットワーク
２５２  重み付け値
３００  故障予測装置
３１０  故障予測部
３２０  故障予測結果出力部
１０００  故障予測システム
【図１】
2018072029.tif 000003
【図２】
2018072029.tif 000004
【図３】
2018072029.tif 000005
【図４】
2018072029.tif 000006
【図５】
2018072029.tif 000007
【図６】
2018072029.tif 000008
【図７】
2018072029.tif 000009
【図８】
2018072029.tif 000010