(58)【調査した分野】(Int.Cl.,DB名)
前記学習手段は、前記特徴量及びラベルに加えて、前記所定の部品の周辺の温度情報を含む教師データを受け付け、該受け付けた温度情報を含む教師データによる機械学習を行うことにより前記学習モデルを構築する請求項1乃至4の何れか1項に記載の学習モデル構築装置。
【発明を実施するための形態】
【0020】
まず、本発明の実施形態の概略を説明する。本実施形態は、工作機械を制御する数値制御装置(CNC:Computer Numerical Control)に使用される所定の部品(例えば、BGA(Ball grid array)部品)の故障予測を行う。
【0021】
数値制御装置に使用されるBGA部品はプリント基板に半田付けされるが、この半田接合部が継続的な振動による疲労で破断することがある。この点、強い振動が長期間加われば破断に至るのであるが、この破断現象と振動波形との相関には、多種多様なケースがある。
そのため、1つのケースだけに基づいて、半田接合部が破断するのかを予測することは容易ではない。例えば、或る1つのケースだけに基づいて、数値制御装置の製品寿命内に、BGA部品が破断するか否かを予測することは容易ではない。
【0022】
そこで、本実施形態では、破断に至った装置の振動波形や、破断に至らず故障が発生しなかった装置の振動波形、といった多数のケースの振動波形を用いて機械学習を行う。そして、このような機械学習により構築された学習モデルと、故障判定の対象とする装置の振動波形とに基づいて、どの程度の期間が経過すると破断等の故障が発生するかについて精度良く予測する。
以上が本発明の実施形態の概略である。
【0023】
次に、本実施形態である故障予測システム1000の構成について
図1を参照して説明をする。
図1に示すように、故障予測システム1000は、N台の数値制御装置100、N台の工作機械150、学習モデル構築装置200、M台の故障予測装置300、及びネットワーク400を備える。なお、N及びMは任意の自然数である。
【0024】
これらの装置間の接続について説明する。数値制御装置100と工作機械150とは組とされて、通信可能に接続されている。これら数値制御装置100と工作機械150の組は、例えば同じ工場に複数組設置されていてもよいし、それぞれ異なる工場に設置されていてもよい。
【0025】
工作機械150と、学習モデル構築装置200と、故障予測装置300とは、それぞれネットワーク400に接続されており、ネットワーク400を介して相互に通信を行うことが可能である。ネットワーク400は、例えば、工場内に構築されたLAN(Local Area Network)や、インターネットや、公衆電話網、あるいはこれらの組み合わせである。ネットワーク400における具体的な通信方式や、有線接続及び無線接続の何れであるか等については特に限定されない。
【0026】
次に、故障予測システム1000に含まれるこれら装置の機能について
図2を参照して説明をする。ここで、
図2は、各装置に含まれる機能ブロックを表すブロック図である。なお、各数値制御装置100はそれぞれ同等の機能を有しているため、
図2では1台のみを図示する。同様に、各工作機械150や各故障予測装置300もそれぞれ同等の機能を有しているため、
図2では1台のみを図示する。また、各装置間に存在するネットワーク400については図示を省略する。
【0027】
工作機械150は、被加工品に対して、切断や研磨、折り曲げ等の加工をする一般的な工作機械である。工作機械150は、数値制御装置100による制御に基づいてサーボモータやリニアモータを駆動して加工工具を動作させることにより加工を実行する。
かかる加工に伴い振動が発生するが、かかる振動は工作機械150に据え付けられていたり、あるいは工作機械150の近傍に設置されていたりする数値制御装置100にも伝播する。そして、数値制御装置100に伝播した振動は、上述したように、数値制御装置100内部のBGA部品等の破損の原因となる。
【0028】
数値制御装置100は、工作機械150から伝播した振動を測定するための測定部110を備える。また、数値制御装置100はそれ以外にも、工作機械150を制御するための機能ブロック、通信を行うための機能ブロック、ユーザからの操作を受け付けるための機能ブロック、といった一般的な機能ブロックを備える。ただし、これらの一般的な機能ブロックについては当業者によく知られているので図示及び説明を省略する。同様に、後述の、学習モデル構築装置200や故障予測装置300においても、通信を行うための機能ブロック、ユーザからの操作を受け付けるための機能ブロック、といった一般的な機能ブロックについては図示及び説明を省略する。
【0029】
測定部110は、工作機械150から伝播する振動を測定するための振動センサである。測定部110は、例えば、それぞれ互いに直交する、X軸、Y軸及びZ軸の三軸方向の加速度を測定可能な三軸加速度センサにより実現することができる。測定部110が測定したX軸、Y軸及びZ軸の三軸方向の加速度は、図中に示すように、後述の特徴量抽出部210に対して「入力データ」として出力される。より詳細には、三軸加速度センサにより取得した、各軸の加速度に相当するアナログ振動波形信号を、アナログ−デジタル変換によりデジタル化したデータが後述の特徴量抽出部210に対して入力データとして出力される。
【0030】
測定部110は、本実施形態のために数値制御装置100に取り付けるようにしてもよい。ただし、数値制御装置のモデルによっては、このような三軸加速度センサが他の用途のために組み込まれている場合がある。このような場合には、その予め組み込まれている三軸加速度センサの測定値を本実施形態においても利用するようにすればよい。また、測定部110は一軸方向の加速度を測定する加速度センサの組み合わせにより実現するようにしてもよい。
【0031】
また、数値制御装置100はユーザからのラベルの入力を受け付ける。ここで、ラベルとは、機械学習において入力に対応すべき正しい出力である。本実施形態では、ラベルは、測定対象とした各数値制御装置100が共通して備える所定の部品(例えば、或る種類のBGA部品)が使用開始されてから、故障するまでの時間の長さである。より具体的には、「使用開始から5年で故障した」、「使用開始から7年で故障した」といった情報や、「使用開始から20年経過したが故障していない」といった情報である。受け付けたラベルは、図中に示すように、後述のラベル取得部220に対して「ラベル」として出力される。
【0032】
学習モデル構築装置200は、故障が発生した数値制御装置100の振動波形や、故障が発生しなかった数値制御装置100の振動波形、といった多数のケースの振動波形を用いて機械学習を行う装置である。そして、学習モデル構築装置200は、このような機械学習により、故障予測を行うための学習モデルを構築する。
【0033】
そのために、学習モデル構築装置200は、特徴量抽出部210、ラベル取得部220、学習部230及び学習モデル記憶部240を備える。
【0034】
特徴量抽出部210は、数値制御装置100の測定部110から入力された入力データから特徴量を抽出する部分である。特徴量の抽出の具体的な内容については、
図6及び
図7を参照して後述する。
【0035】
ラベル取得部220は、数値制御装置100からラベル取得し、取得したラベルを学習部230に対して出力する部分である。なお、数値制御装置100からラベルの取得をするのではなく、学習モデル構築装置200の操作受付部(図示を省略する)によりユーザのラベルの入力操作を受け付け、これによりラベルを取得するようにしてもよい。
【0036】
このようにして、測定対象とした数値制御装置100の特徴量と、この測定対象とした数値制御装置100のラベルとが組となり、学習部230に入力される。この特徴量とラベルの組は、機械学習における教師データに相当する。
【0037】
ここで、機械学習を行うための教師データは、多数用意されることが望ましい。そこで、例えば顧客先で使用されている、三軸加速度センサが搭載されている数値制御装置100のそれぞれについて、稼働中の何れかの日に特徴量を取得しておく。例えば、数値制御装置100のメンテナンスに赴いた日に振動を測定して特徴量を取得しておく。そして後日、何れかの数値制御装置100の所定の部品が故障したならば、その故障までの時間の長さと、その数値制御装置100について取得しておいた特徴量を組にして新たな教師データを作成するようにするとよい。このようにすれば、顧客先等で通常通りに使用している数値制御装置100により、多くの教師データを作成することができるのでよい。
また、例えば、実験室等にて教師データを作成するようにしてもよい。例えば、実験室で、意図的に振動を加えることにより通常の3倍の頻度で数値制御装置100が振動するようにする。そして、この数値制御装置100の所定の部品が1年で故障したならば、3年で故障したというラベルを組にして教師データを作成するようにするとよい。
【0038】
学習部230は、このようにして入力された教師データに基づいて機械学習を行うことにより、学習モデルを構築する。学習部230による機械学習の詳細については、
図7を参照して後述する。学習部230が構築した学習モデルは、学習モデル記憶部240及び後述の故障予測部310に対して出力される。
【0039】
学習モデル記憶部240は、学習部230が構築して学習モデル記憶部240に対して出力した学習モデルを記憶する記憶部である。
【0040】
故障予測装置300は、本実施形態における故障予測を行う装置である。故障予測装置300は、故障予測部310と故障予測結果出力部320とを備える。
【0041】
故障予測部310は、学習部230から入力された学習モデルと、外部から入力された判定データとを用いて故障予測を行う。そして、故障予測部310は、これらのデータを用いて行った故障予測の結果を、図中に示すように、故障予測結果出力部320に対して「故障予測結果」として出力する。
【0042】
ここで、学習部230から故障予測部310に入力される学習モデルは、上述のように学習部230により構築されたものである。
また、故障予測部310に入力される判定データは、学習部230に入力される特徴量と同等のデータであり、故障予測の対象とする数値制御装置100の測定部110により取得したアナログ波形信号をデジタル化したデータから抽出した特徴量である。
判定データは、学習モデル構築装置200の特徴量抽出部210から入力されるようにしてもよい。また他にも、故障予測装置300内部に特徴量抽出部210と同等の機能ブロックを設けておき、数値制御装置100が出力する入力データから、この特徴量抽出部210と同等の機能ブロックが特徴量を抽出するようにしてもよい。
【0043】
故障予測結果出力部320は、故障予測部310から入力された故障予測結果を出力する部分である。出力は、例えば、故障予測結果の表示部への表示であってもよいし、故障予測結果の他の装置への送信であったり、故障予測結果を紙媒体に印刷することであったりしてもよい。
【0044】
ユーザは、故障予測結果を参照することにより、今回故障予測の対象とした数値制御装置100が備える所定の部品について予測される故障までの時間の長さを知ることができる。これにより、故障に先立って部品を交換するための、部品の交換時期を決定することが可能となる。また、他にも製品寿命(例えば、20年)の間は部品が故障しない可能性が高いことなどを知ることが可能となる。故障予測結果の具体例については、
図7を参照して後述する。
【0045】
以上数値制御装置100、学習モデル構築装置200及び故障予測装置300の機能ブロックについて説明した。次に、これらの機能ブロックの実現方法について説明をする。
これらの機能ブロックを実現するために、数値制御装置100、学習モデル構築装置200及び故障予測装置300の何れも、CPU(Central Processing Unit)等の演算処理装置を備える。また、数値制御装置100、学習モデル構築装置200及び故障予測装置300の何れも、各種の制御用プログラムを格納したHDD(Hard Disk Drive)等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった主記憶装置を備える。
【0046】
そして各装置において、演算処理装置が補助記憶装置からアプリケーションやOSを読み込み、読み込んだアプリケーションやOSを主記憶装置に展開させながら、これらのアプリケーションやOSに基づいた演算処理を行なう。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
【0047】
具体例として、数値制御装置100は、測定部110を備えた一般的な数値制御装置により実現できる。また、学習モデル構築装置200や故障予測装置300はそれぞれ、パーソナルコンピュータにより実現できる。
【0048】
ただし、学習モデル構築装置200については機械学習に伴う演算量が多いため、例えば、パーソナルコンピュータにGPU(Graphics Processing Units)を搭載し、GPGPU(General-Purpose computing on Graphics Processing Units)と呼ばれる技術により、GPUを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。更には、より高速な処理を行うために、このようなGPUを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
【0049】
次に、本実施形態における機械学習に関しての基本的な考え方について
図3を参照して説明をする。
図3の上段には、機械学習時についてのイメージを示す。また、
図3の下段には、故障予測時についてのイメージを示す。なお、
図3は考え方を示すための図であり、説明を分かりやすくするために非常に模式化した図としている。
【0050】
本実施形態に含まれる複数の数値制御装置100は、それぞれ異なる工作機械150と接続されている。そして工作機械150はそれぞれ異なる加工を行うので、それぞれが異なる振動をする。そのため、
図3の上段に示すように、各数値制御装置100の測定部110が測定する振動は、それぞれ異なった波形となる。また、ラベルとなる故障までの時間の長さも、5年であったり、7年であったり、10年以上正常であったり、とそれぞれことなるものとなる。
そして、上述したように、入力データである波形から抽出した特徴量と、ラベルとの組み合わせを教師データとして機械学習を行い、複数の教師データを用いて学習モデルを構築する。
【0051】
このようにして学習モデルを構築すると、
図3の下段に示すように、故障予測の対象とする数値制御装置100の測定部110が測定した波形から抽出した特徴量を判定データとして、構築した学習モデルを利用した故障予測を行うことができる
以上が、本実施形態における機械学習に関しての基本的な考え方である。
【0052】
次に、
図4のフローチャートを参照して、機械学習時の学習モデル構築装置200の動作について説明をする。
【0053】
まず、学習モデル構築装置200は何れかの数値制御装置100から、入力データとラベルを取得する(ステップS11)。これらのデータの具体的な内容は上述した通りである。
【0054】
次に学習モデル構築装置200は、ステップS11で取得した入力データから特徴量を抽出する(ステップS12)。この特徴量の抽出について
図5及び
図6を参照して説明をする。
まず、
図5を参照して前提となる入力データについて説明をする。
図5には、入力データとして、数値制御装置100の測定部110が測定した、時系列に沿って変化する加速度の波形の例を示す。入力データとする波形は、一定期間測定したものであるが、本説明では、一定期間を一例として9:00〜21:00とする。そして、数値制御装置100は、毎日同じように継続して利用されることを想定する。例えば、数値制御装置100は、毎朝同じような時間に電源が投入され、所定の周期で所定の加工が行われ、毎夕同じような時間に電源が遮断される、ということを繰り返すということを想定する。
なお、毎日同じように繰り返されるのであれば、例えば午前中は第1の加工方法での加工を行い、午後には第2の加工方法での加工を行うというような時間帯によって異なる利用のされかたであってもよい。
【0055】
図5には、一定期間(一例として、9:00〜21:00)のX軸方向の加速度を示すが、実際の入力データには、他にも、一定期間のY軸方向の加速度と一定期間のZ軸方向の加速度が含まれる。
【0056】
ここで、一定期間をこれよりも大幅に短くすることや、三つの軸の加速度を利用するのではなく一つの軸の加速度を利用することも考えられる。本実施形態はこのようにしても機能するが、今回は以下に説明する観点から、このようにはしていない。
【0057】
上述したように、BGA部品等の部品は、振動が原因となって破断するが、どのような種類の振動が破断の原因となるかをユーザが判断することは困難である。例えば、数値制御装置100による加工時の振動ではなく、数値制御装置100に被加工物を工作機械150にセットする際の、ユーザによる工作機械150の扉の開閉に伴う振動が破断の原因となるかもしれない。そこで、或る一つの加工の開始から終了までといった特定の短い時間を一定期間とするのではなく、例えば12時間等の長い時間を一定期間として機械学習を行うこととしている。
つまり本例では、ユーザによる判断で入力データを選別することなく、なるべく多くの入力データを用いて機械学習を行うことが好ましいとの考えに基づいて、12時間等の長い時間を一定期間として機械学習を行うこととしている。
【0058】
また同様に、何れの軸の振動が破断の原因となるかをユーザが判断することは困難である。また、もしかすると、複数軸の振動の組み合わせが破断の原因かもしれないが、一つの軸の振動のみを考慮していると、このように複数軸の振動の組み合わせが破断の原因であることをユーザが判断することはできない。
そこで、上述の一定期間の長さの決定の仕方における考え方と同様に、ユーザが何れの軸の振動が重要であるか等を選別するのではなく、三軸全ての振動を利用して機械学習を行うこととしている。これにより、より適切な学習モデルを構築できることが期待できる。
【0059】
次に、
図6を参照して、
図5に示した入力データからの特徴量の抽出について説明をする。
本実施形態では一例として
図6に示すように、入力データに対して、分解能16bit、サンプリング周期1msでサンプリングをすることにより特徴量の抽出をする。
この場合に抽出されるデータ量であるが、一定時間が12時間であり,サンプリング周期1msであり,16bit=2byteであるので、下記の[数式1]に示すように、約82Mbyteが1軸分のデータ量となる。
【0060】
[数式1]
1000[ms]×60[sec]×60[min]×12[hour]×2[byte]≒82[Mbyte]
【0061】
なお、特徴量は、X軸のみならず、Y軸及びZ軸についても抽出される
【0062】
このようにして、特徴量が抽出されると、抽出された特徴量とラベルとの組が教師データとされ学習部230に対して出力される(ステップS13)。
【0063】
すると、学習部230は、入力された教師データを用いて機械学習を実行する(ステップS14)。この教師データを用いた機械学習について、
図7を参照して説明をする
【0064】
図7に示すように、構築途中の学習モデルである学習モデル250は、ニューラルネットワーク251及び重み付け値252を含む。
本実施形態では、パーセプトロンを組み合わせて構成したニューラルネットワークにより、機械学習を行う。具体的には、教師データに含まれる特徴量とラベルの組をニューラルネットワークに与え、ニューラルネットワークの出力がラベルと同じとなるように、各パーセプトロンについての重み付けを変更しながら学習を繰り返す。このようにして、教師データの特徴を学習し、入力から結果を推定するための学習モデルを帰納的に獲得する。
【0065】
より具体的には、
図7に示すように、パーセプトロンを三層組み合わせる。そして、ニューラルネットワークの図中の左側から複数の入力Xを入力すると、図中の右側から複数の出力Yが出力される。
【0066】
以下の説明では、ニューラルネットワーク251に含まれる各パーセプトロンを「添字を二文字添えたP」で示す。また、
図7では、ニューラルネットワーク251に含まれる各パーセプトロンを「添字を二文字添えた丸付き文字のP」で示す。かかるPの添字の一文字目はそのパーセプトロンの次元数を表し、添字の二文字目はそのパーセプトロンの層数を表す。例えば、P
21であれば、二次元目であって一層目のパーセプトロンであることを表す。
【0067】
ここで、ニューラルネットワーク251の一番左側の層(以下、「入力層」と呼ぶ。)の次元数は「i」である。iの値は、任意の自然数である。ただし、今回は、特徴量の抽出時の説明として上述したように、一定時間が12時間であり,サンプリング周期1msであることから、サンプリングデータ数は、下記の[数式2]に示すように、43200000個となる。従って、iの値も43200000となる。なお、1回目のサンプリングをt1に行い、2回目のサンプリングをt2で行い、・・・i回目のサンプリングをtiで行ったものとする。
【0068】
[数式2]
1000[ms]×60[sec]×60[min]×12[hour]=43200000[個]
【0069】
また、ニューラルネットワーク251の中央の層(以下、「隠れ層」と呼ぶ。)の次元数は「j」である。jの値は、任意の自然数である。また、jの値は、機械学習の過程において変更するようにしてもよい。
【0070】
更に、ニューラルネットワーク251の一番右側の層(以下、「出力層」と呼ぶ。)の次元数は「k」である。kは、任意の自然数であるが、今回は、kの値を21とする。その理由について説明をする。本実施形態では一例として、工作機械150の製品寿命を20年と想定する。そして、20年以内のある年数で故障するか、それとも20年以上経過してから故障するかを予測する。そのために、ラベルを、各数値制御装置100が共通して備える所定の部品(例えば、或る種類のBGA部品)が、1年で故障、2年で故障、・・・、20年で故障、20年以上で故障、というように1年単位で作成する。そのため、ラベルの種類は21となる。従って、上述したようにkの値を21とする。
【0071】
ニューラルネットワーク251では、各パーセプトロンの出力は、次層のすべてのパーセプトロンへ対して出力される。例えば、出力層のP
11の出力は、隠れ層のすべてのパーセプトロンであるP
21・・・P
j2のそれぞれに対して出力される。同様に、出力層のP
21・・・P
n1のそれぞれの出力も、隠れ層のすべてのパーセプトロンであるP
21・・・P
j2のそれぞれに対して出力される。ただし、図中では、図の見やすさを考慮して、一部のパーセプトロンと、この一部のパーセプトロンへの出力については図示を省略する。
【0072】
重み付け値252は、学習部230が行う機械学習で使用される重み付け値である。学習部230は、ニューラルネットワーク251に含まれる各パーセプトロンの出力する値に対して、出力したパーセプトロンに対応する重み付け値を乗算した上で、次層のすべてのパーセプトロンへ入力する。
つまり、隠れ層や出力層に含まれる各パーセプトロンの出力は、前の層の各パーセプトロンの出力に各パーセプトロンに対応する重み付け値を乗算した値の総和となる。
【0073】
また、図示をしていないがバイアスを各パーセプトロンに入力するようにしてもよい。バイアスは、値「1」に機械学習の過程において修正した重み付け値を乗算した値である。
【0074】
以下の説明及び図中では、重み付けの値を、「添字を二文字添えたW」で表す。また、入力層のパーセプトロンの入力を、「添字を二文字添えたX」で表し、出力層のパーセプトロンの出力を、「添字を二文字添えたY」で表す。
ここで、これら二文字の添字は、同じ二文字の添字が添えられたパーセプトロンに対応する値であることを意味する。例えばW
11は、P
11に対応する重み付けの値であることを表す。また、例えばX
11は、P
11に対応する入力であることを表す。更に、例えばY
13は、P
13に対応する入力であることを表す。
【0075】
次に、機械学習の実行方法について説明する。まず、教師データとしてi個の特徴量と、ラベルとが学習部230に入力される。一例として、今回は、20年以上で故障というラベルが入力されたものとする。
【0076】
すると、i個の特徴量の値が、入力層のi個のパーセプトロンにそれぞれ1つずつ入力される。そして、入力された特徴量の値に、入力層の各パーセプトロンに対応する重み付け値が乗算された値が、隠れ層の各パーセプトロンに対して入力される。
【0077】
次に、隠れ層の各パーセプトロンは、自身に入力された値の総和を出力するので、この出力した値に、隠れ層の各パーセプトロンに対応する重み付け値が乗算された値が、出力層の各パーセプトロンに対して入力される。
【0078】
更に、出力層の各パーセプトロンは、自身に入力された値の総和を出力する。この出力が図中のY
13、Y
23・・・Y
k3に相当する。これら出力は、1年で故障、2年で故障、・・・、20年で故障、20年以上で故障という分類に相当する。図の例であれば、Y
13(1年で故障という分類に相当)の値が0.03であり、Y
23(2年で故障という分類に相当)の値が0.05であるのに対して、Y
k3(20年以上で故障という分類に相当)の値が0.70であり非常に高い値になっている。
そして、今回のラベルは、20年以上で故障というラベルであることから、適切な出力がなされていることが分かる。
【0079】
以上の動作はフォワードプロパゲーション(Forward-propagation)と呼ばれる。このようにフォワードプロパゲーションを行った後に、バックプロパゲーション(Back-propagation、誤差逆伝搬法とも呼ばれる。)という手法により各パーセプトロンの出力の誤差を小さくするように重み付け値を調整する。
具体的には、各出力Yとラベルとの誤差を算出し、算出した誤差を小さくするように、隠れ層と出力層との間の重み付け値を修正する。更に、隠れ層と出力層との間の重み付け値を修正量に基づいて、隠れ層と入力層との間の重み付け値を修正する。
【0080】
このようにして、フォワードプロパゲーション及びバックプロパゲーションを行うと、学習部230は、機械学習を終了するか、それとも機械学習を繰り返すかを判定する(ステップS15)。ここで、機械学習を終了させる条件は任意に定めることができる。例えば、各出力Yとラベルとの誤差の値が所定値以下となった場合に機械学習を終了させるようにするとよい。また他にも、予め定めておいた回数だけ機械学習を繰り返した場合に機械学習を終了させるようにするとよい。
【0081】
何れにしても、条件が満たされておらず、機械学習を未だ終了させないのであれば(ステップS15にてNo)、ステップS11に戻り、新たな教師データ又は同じ教師データを対象として、修正後の各重み付け値に基づいて、再度フォワードプロパゲーション及びバックプロパゲーションを行うことを繰り返す。
【0082】
このように機械学習を繰り返す過程にて、機械学習を終了させる条件が満たされたならば(ステップS15にてYes)、機械学習を終了し、その時点までの機械学習により構築した学習モデルを送信する(ステップS16)。例えば、学習モデルを、ネットワーク400を介して各故障予測装置300に対して送信する。
【0083】
また、他にも、学習モデルを学習モデル記憶部240に出力して記憶させる。これのように学習モデル記憶部240に記憶させておけば、新たに設置された故障予測装置300から学習モデルを要求された場合に、学習モデルを送信することができる。また、新たな教師データを取得した場合に、学習モデルに対して更なる機械学習を行うことができる。
【0084】
以上、学習部230による学習モデルの構築について説明をした。次に、このようにして構築された学習モデルを用いた故障予測について
図8のフローチャートを参照して説明をする。
【0085】
故障予測装置300の故障予測部310は、学習モデル構築装置200が送信した学習モデルを受信することにより学習モデルを取得する(ステップS21)。また、特徴量抽出部210や数値制御装置100から判定データを取得する(ステップS22)。判定データの取得方法の詳細は、
図2を参照した故障予測部310の説明時に上述した通りである。
【0086】
次に、故障予測部310は、取得した学習モデル及び取得した判定データにより故障予測を行う(ステップS23)。具体的には、取得した判定データに含まれるi個の特徴量の値を、取得した学習モデルのi個のパーセプトロンにそれぞれ1つずつ入力する。これは、
図4や
図7を参照して説明した機械学習での入力と同様である。
【0087】
その後これも機械学習と同様に、機械学習にて修正された重み付け値が乗算されながら隠れ層及び出力層へと出力され、最終的に各出力層から出力Y(Y
13、Y
23・・・Y
k3)がなされる。かかる出力Yが、故障予測結果である。
【0088】
次に、故障予測部310は故障予測結果を故障予測結果出力部320に対して出力する。そして、故障予測結果出力部320は入力された故障予測結果を出力する(ステップS24)。出力方法は、
図2を参照した故障予測結果出力部320の説明時に上述した通りであり、例えば画面への表示等により行われる。なおこの際に、故障予測結果である出力Y(Y
13、Y
23・・・Y
k3)の全てを出力するようにしてもよい。ただし、これら、Y
13、Y
23・・・Y
k3の内の一部を出力してもよい。例えば、
図7に示すようにしてY
13、Y
23・・・Y
k3が出力されたならば、もっとも値が大きいY
k3を故障予測結果として出力するようにすればよい。この場合に、Y
k3に対応する「20年以上で故障」といったメッセージを出力するようにするとよい。
【0089】
以上説明した本実施形態では、ユーザは、このようにして出力された故障予測結果を参照することにより、故障予測の対象とした数値制御装置100が備える所定の部品(例えば、或る種類のBGA部品)が使用開始されてから故障するまでの時間の長さを予測結果として知ることができる、という効果を奏する。
【0090】
また、数値制御装置100が工作機械150と接続された状態で測定した振動により予測結果を知ることができるので、数値制御装置100に備えられた所定の部品が実際に利用される環境を考慮した予測結果を知ることができる、という効果も奏する。
【0091】
また、一定期間(一例として、9:00〜21:00)の振動を測定するのみで、予測結果を知ることができる、という効果も奏する。
【0092】
<変形例>
上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【0093】
例えば、上述した実施形態では、数値制御装置100により測定した振動の波形から、特徴量を抽出していた。そして、この振動の特徴量とラベルとで教師データを作成していた。
【0094】
これに加えて、数値制御装置100が備える所定の部品(例えば、或る種類のBGA部品)が故障する要因となる他の測定値を教師データに含ませるようにしてもよい。例えば、数値制御装置100の内部に温度センサを設置する。そして、この温度センサにより測定した数値制御装置100が備える所定の部品の温度又は所定の部品の周辺の温度を特徴量の一つとして教師データに含ませるようにしてもよい。
【0095】
この点、温度は振動のように極短時間で大きく変動するものではない。そのため、サンプリング周期1msとするのではなく、例えば、一定期間(一例として、9:00〜21:00)においてサンプリング周期1hourとして、サンプリングした温度の値を特徴量とする。する。また、サンプリング周期1hourでサンプリングした温度の平均値を特徴量とする。
【0096】
そして、温度に基づいた特徴量の数だけ入力層のパーセプトロンの数を増加させ、この増加した入力層のパーセプトロンに、温度に基づいた特徴量を入力する。これにより、温度も考慮した故障予測を行うことが可能となる。
【0097】
また、温度以外の他の測定値を特徴量に更に含ませるようにしてもよい。例えば、測定した湿度の値を特徴量に更に含ませるようにしてもよい。
【0098】
また他の変形例として、
図7を参照して説明したニューラルネットワークは三層であったが、これ以上にさらに層を増やすようにしてもよい。すなわち、いわゆるディープラーニング(深層学習とも呼ばれる。)により学習及び故障予測を行うようにしてもよい。また他の変形例として、自己符号化器(Auto encoder)を利用するようにしてもよい。
【0099】
更に他の変形例について説明する。特徴量としては、上述のように、三軸加速度センサにより取得した、各軸の加速度に相当するアナログ振動波形信号を、アナログ−デジタル変換によりデジタル化したデータを
図6に示すようにしてサンプリングしたものを用いていた。しかし、これ以外の方法を取るようにしてもよい。例えば
図6に示すようにしてサンプリングしたデータに対してフーリエ変換を行い、フーリエ変換により得られる周波数スペクトルを特徴量とするようにしてもよい。
【0100】
更に他の変形例として、学習モデル構築装置200と故障予測装置300が一体の装置として実現されるようにしてもよい。
あるいは、学習モデル構築装置200と数値制御装置100が一体の装置として実現されるようにしてもよい。
【0101】
なお、上記の故障予測システムに含まれる各装置は、ハードウェア、ソフトウェア又はこれらの組み合わせによりそれぞれ実現することができる。また、上記の故障予測システムに含まれる各装置により行なわれる故障予測方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【0102】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。