【文献】
1 インダストリー4.0は怖くない >>>ロボット編,日経ものづくり 第732号,日本,日経BP社 Nikkei Business Publications,Inc.
(58)【調査した分野】(Int.Cl.,DB名)
前記報酬計算部が、前記電力供給量と予め定められる電力供給量との差、前記温度と予め定められる温度との差、前記負荷と予め定められる負荷との差、および前記振動と予め定められる振動との差に基づいて、前記報酬を計算するように構成される、請求項2に記載の機械学習装置。
前記学習部が、複数の電動機に対して作成される訓練データセットに従って、前記動作指令を学習するように構成される、請求項1から4のいずれか1項に記載の機械学習装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、前述した公知技術によれば、特定の条件に応じて所定の補正処理が実行されるので、高い加工精度を常時実現することは困難であった。そこで、オペレータの補正操作を必要とすることなく、高い加工精度を常時実現できるように工作機械を制御することが求められている。
【課題を解決するための手段】
【0006】
本願の1番目の発明によれば、
工作機械で使用される電動機に対する動作指令を学習する機械学習装置であって、
前記電動機に対する電力供給量、前記電動機の温度、前記電動機の負荷、および前記電動機の振動を状態変数として観測する状態観測部と、前記状態変数
と、前記状態変数に基づき、前記工作機械に異常が発生したか否かを判定した結果とに従って、前記電動機に対する
前記動作指令
が補正を必要とするか否かを学習する学習部と、を備える機械学習装置が提供される。
本願の2番目の発明によれば、1番目の発明に係る機械学習装置において、前記学習部が、前記電力供給量、前記温度、前記負荷および前記振動に応じて報酬を計算する報酬計算部と、前記報酬に基づいて、前記動作指令を決定するための関数を更新する関数更新部と、を備える。
本願の3番目の発明によれば、2番目の発明に係る機械学習装置において、前記報酬計算部が、前記電力供給量と予め定められる電力供給量との差、前記温度と予め定められる温度との差、前記負荷と予め定められる負荷との差、および前記振動と予め定められる振動との差に基づいて、前記報酬を計算するように構成される。
本願の4番目の発明によれば、2番目または3番目の発明に係る機械学習装置において、前記関数更新部が、前記報酬に基づいて行動価値テーブルを更新するように構成される。
本願の5番目の発明によれば、1番目から4番目のいずれかの発明に係る機械学習装置において、前記学習部が、複数の電動機に対して作成される訓練データセットに従って、前記動作指令を学習するように構成される。
本願の6番目の発明によれば、1番目から5番目のいずれかの発明に係る機械学習装置と、少なくとも1つの第1の電動機によって駆動される移動軸または回転軸と、少なくとも1つの第2の電動機によって駆動される主軸と、を備えた工作機械であって、前記機械学習装置は、前記学習部が学習した結果に基づいて、送り速度補正、主軸回転数補正、加減速時定数補正および位置補正のうちの少なくともいずれか1つを実行する意思決定部をさらに備えており、前記工作機械は、前記意思決定部によって補正された動作指令に従って前記第1の電動機および前記第2の電動機を制御するように構成される、工作機械が提供される。
本願の7番目の発明によれば、6番目の発明に係る工作機械において、前記状態観測部が、主軸頭の温度および振動を追加の状態変数として観測するように構成されており、前記報酬計算部が、前記主軸頭の温度と予め定められる温度との差、および前記主軸頭の振動と予め定められる振動との差に基づいて、前記報酬を計算するように構成される。
本願の8番目の発明によれば、
工作機械で使用される電動機に対する動作指令を学習する機械学習方法であって、
前記電動機に対する電力供給量、前記電動機の温度、前記電動機の負荷、および前記電動機の振動を状態変数として観測し、前記状態変数
と、前記状態変数に基づき、前記工作機械に異常が発生したか否かを判定した結果とに従って、前記電動機に対する
前記動作指令
が補正を必要とするか否かを学習すること、を含む、機械学習方法が提供される。
【0007】
これら並びに他の本発明の目的、特徴および利点は、添付図面に示される本発明の例示的な実施形態に係る詳細な説明を参照することによって、より明らかになるであろう。
【発明の効果】
【0008】
本発明に係る機械学習装置および機械学習方法によれば、状態変数に基づいて作成される訓練データセットに従って、電動機に対する動作指令を学習する。それにより、オペレータによる補正操作を必要とすることなく、状況に応じて電動機を適切に制御できる。また、本発明に係る工作機械によれば、主軸および移動軸を駆動する電動機が、状況に応じて適切に制御されるので、高い加工精度を常時実現できるようになる。
【発明を実施するための形態】
【0010】
以下、添付図面を参照して本発明の実施形態を説明する。
図1は、一実施形態に係る工作機械の構成例を示すブロック図である。工作機械1は、電動機2と、電動機2を制御する制御装置3と、電動機2に対する動作指令を学習する機械学習装置4と、を備えている。
【0011】
電動機2は、工作機械1の軸に対応してそれぞれ設けられる。電動機2は、工具が取付けられる主軸頭5を駆動するために使用される。また、電動機2は、作業空間に固定された座標系の各軸方向において、主軸頭5を移動させるための移動軸または回転させるための回転軸を駆動するために使用されてもよい。或いは、電動機2は、ワークが載置されたテーブルを作業空間において移動させるための移動軸または回転させるための回転軸を駆動するために使用されてもよい。本明細書において使用される「電動機」の用語は、工作機械1において使用される複数の電動機2、すなわち主軸用電動機および送り軸用電動機の両方を含んでいる。
【0012】
制御装置3は、CPUと、メモリと、インタフェイスと、を備えている。CPUは、制御装置3の種々の機能を実行するための演算処理を実行する。メモリは、ROM、RAMおよび不揮発性メモリを備えている。ROMには、制御装置3の機能を制御するシステムプログラムが格納されている。RAMは、種々のセンサの出力値およびCPUの演算結果などが一時的に記憶するために使用される。不揮発性メモリには、電動機2に対する指令を作成するための制御プログラムおよび種々のパラメータなどが格納されている。
【0013】
図1に示されるように、制御装置3は、温度測定部31と、振動測定部32と、負荷測定部33と、電力測定部34と、判定部35と、指令作成部36と、を備えている。
【0014】
温度測定部31は、電動機2の温度を測定する。温度測定部31は、電動機2の温度変化を検出できる任意の位置、例えば電動機2の筐体に設けられた温度センサ(図示せず)の出力値に基づいて、電動機2の温度を測定する。一実施形態において、温度測定部31は、別個設けられる温度センサによって、主軸頭5の温度をさらに測定するように構成されていてもよい。
【0015】
振動測定部32は、任意の振動センサの出力値に基づいて、電動機2の振動を測定する。一実施形態において、振動測定部32は、別個設けられる振動センサによって、主軸頭5の振動をさらに測定するように構成されていてもよい。
【0016】
負荷測定部33は、電動機2の負荷を測定する。例えば、負荷測定部33は、電動機2が所定の動作をする際に電動機2に供給される電流量から負荷を計算することができる。
【0017】
電力測定部34は、制御装置3のアンプ(図示せず)から電動機2に対する電力供給量を測定する。
【0018】
判定部35は、制御装置3によって取得される複数の測定値と、各々の測定値に対応する比較値との差を計算し、判定データとして出力する。判定される測定値には、温度測定部31によって測定される電動機2の温度と、振動測定部32によって測定される電動機2の振動と、負荷測定部33によって測定される電動機2の負荷と、電力測定部34によって測定される電力と、が含まれる。
【0019】
電動機2の温度に対応する比較値は、電動機2がオーバーヒートしたとみなせる温度を表すように設定される。電動機2の振動に対応する比較値は、ビビリ振動が発生したとみなせる振動を表すように設定される。電動機2の負荷に対応する比較値は、電動機2が過負荷の状態にあるとみなせる負荷を表すように設定される。電動機2に対する電力供給量に対応する比較値は、電力供給容量の限界に対応する電力を表すように設定される。
【0020】
このように、判定部35によって作成される判定データは、電動機2のオーバーヒート、過負荷、電力供給容量オーバーおよびビビリ振動の発生の有無を判定可能なデータである。
【0021】
温度測定部31が主軸頭5の温度を測定するように構成された実施形態の場合、判定部35は、主軸頭5の温度と、それに対応する温度との差を計算するようにさらに構成される。温度測定部31が主軸頭5の振動を測定するように構成された実施形態の場合、判定部35は、主軸頭5の振動と、それに対応する値との差を計算するようにさらに構成される。
【0022】
指令作成部36は、電動機2に対する動作指令を作成する。指令作成部36は、不揮発性メモリに記憶されている動作プログラムおよびパラメータに従って作成される。指令作成部36によって作成される動作指令は、後述する機械学習装置4の意思決定部46によって決定される補正処理に応じて補正されることがある。
【0023】
機械学習装置4は、工作機械1の状態に応じて電動機2に対する動作指令を学習するために使用される。
図1に示されるように、機械学習装置4は、状態観測部41と、判定データ取得部42と、学習部43と、意思決定部46、を備えている。
【0024】
状態観測部41は、電動機2に対する電力供給量、電動機2の温度、電動機2の負荷、および電動機2の振動を状態変数として観測する。一実施形態において、状態観測部41は、主軸頭5の温度および振動を追加の状態変数として観測するように構成されてもよい。
【0025】
判定データ取得部42は、判定部35から、状態観測部41によって観測される状態変数(各測定値)に対応する判定データを取得する。
【0026】
学習部43は、状態変数に基づいて作成される訓練データセットに従って、電動機2に対する動作指令を学習する。
【0027】
意思決定部46は、学習部43の学習結果に基づいて、電動機2に対する動作指令を補正する。意思決定部46は、送り速度補正、主軸回転数補正、加減速時定数補正および位置補正のうちの少なくともいずれか1つを実行するように構成される。
【0028】
機械学習装置4は、制御装置3とは別個のデジタルコンピュータであってもよいし、または制御装置3に内蔵されていてもよい。後者の場合、機械学習装置4は、制御装置3のCPUおよびメモリを使用して機械学習を実行する。
【0029】
一実施形態において、機械学習装置4は、電動機2および制御装置3から離隔された場所に設けられていてもよい。その場合、機械学習装置4は、ネットワークを介して制御装置3に接続される。或いは、機械学習装置4は、クラウドサーバに存在していてもよい。
【0030】
図1に示されるように、学習部43は、報酬計算部44と、関数更新部45と、を備えている。
【0031】
報酬計算部44は、判定データ取得部42によって取得される各測定値の判定データに基づいて、報酬を計算する。
【0032】
関数更新部45は、報酬計算部44によって計算される報酬に基づいて、電動機2に対する動作指令を決定するための関数を更新する。一実施形態において、関数更新部44は、前述した報酬に基づいて、行動価値テーブを更新するように構成されていてもよい。行動価値テーブルは、参照テーブルの形態を有していて、状態変数と、それに対応する行動価値とを関連付けたデータである。
【0033】
図2を参照して、一実施形態に係る機械学習装置4によって実行される機械学習方法について説明する。
【0034】
ステップS201では、行動価値テーブルを更新する。ステップS201が初めて実行される場合、行動価値テーブルには、任意の初期値が入力される。ステップS202では、意思決定部46が、状態変数に応じて動作指令の補正量を決定する。機械学習の初期段階では、意思決定部46が、ランダムに動作指令の補正量を決定してもよい。
【0035】
ステップS203では、工作機械1において異常が発生したか否かを判定する。ここで、工作機械1における「異常」とは、電動機2に対する電力供給量が許容値を超えたとき、電動機2に対する負荷が過度に大きいとき、電動機の温度が過度に高いとき、工作機械1においてビビリ振動が発生しているとき、および主軸頭5の温度が過度に高いとき、のうちの少なくとも1つに該当している状態を意味する。なお、ステップS203での判定は、制御装置3の判定部35によって作成される判定データに基づいて実行される。
【0036】
異常が発生していない場合(ステップS203での判定結果が否定の場合)、ステップS204に進み、報酬計算部44が、当該行動(動作指令に対する補正処理)に対する報酬を増大させる。他方、異常が発生している場合(ステップS203での判定結果が肯定の場合)、ステップS205に進み、報酬計算部44が、当該行動に対する報酬を減少させる。
【0037】
ステップS204またはS205における報酬計算の後、ステップS201に戻り、行動価値テーブルを更新する。ステップS201からS205までの処理は、機械学習による学習効果が十分に得られるまで繰返し実行される。
【0038】
ここで、機械学習装置4について詳細に説明する。機械学習装置4は、装置に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力するとともに、知識の学習を行う機能を有する。その手法は様々であるが、大別すれば「教師あり学習」、「教師なし学習」、「強化学習」に分けられる。さらに、これらの手法を実現するうえで、特徴量そのものの抽出を学習する、「深層学習」と呼ばれる手法がある。
【0039】
「教師あり学習」とは、ある入力と結果(ラベル)のデータの組を大量に学習装置に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル、即ち、その関係性を帰納的に獲得することができる。本実施形態においては、電動機に対する電力供給量、電動機の温度、負荷および振動などから電動機に対する指令を補正する部分などに用いることができる。後述のニューラルネットワークなどのアルゴリズムを用いて実現することができる。
【0040】
「教師なし学習」とは、入力データのみを大量に学習装置に与えることで、入力データがどのような分布をしているか学習し、対応する教師出力データを与えなくても、入力データに対して圧縮、分類、整形などを行う装置を学習する手法である。それらのデータセットにある特徴を似た者どうしにクラスタリングすることなどができる。この結果を使って、何らかの基準を設けてそれを最適にするような出力の割り当てを行うことで、出力の予測を実現することできる。また「教師なし学習」と「教師あり学習」との中間的な問題設定として、「半教師あり学習」と呼ばれるものもあり、これは一部のみ入力と出力のデータの組が存在し、それ以外は入力のみのデータである場合がこれに当たる。本実施形態においては、実際に電動機2を動作させなくても取得することができるデータを教師なし学習で利用し、学習を効率的に行うことができる。
【0041】
強化学習の問題を以下のように設定する。
・電動機2の制御装置3は、環境の状態を観測し、行動を決定する。
・環境は何らかの規則に従って変化し、さらに自分の行動が、環境に変化を与えることもある。
・行動するたびに報酬信号が帰ってくる。
・最大化したいのは将来にわたっての(割引)報酬の合計である。
・行動が引き起こす結果を全く知らない、または不完全にしか知らない状態から学習はスタートする。制御装置3は、電動機2が実際に動作して初めて、その結果をデータとして得ることができる。つまり、試行錯誤しながら最適な行動を探索する必要がある。
・人間の動作を真似るように事前学習(前述の教師あり学習や、逆強化学習といった手法)した状態を初期状態として、良いスタート地点から学習をスタートさせることもできる。
【0042】
「強化学習」とは、判定や分類だけではなく、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、即ち、将来的に得られる報酬を最大にするための学習する方法である。このことは、本実施形態において、未来に影響を及ぼすような行動を獲得できることを表している。例えばQ学習の場合で説明を続けるが、それに限るものではない。
【0043】
Q学習は、或る環境状態sの下で、行動aを選択する価値Q(s,a)を学習する方法である。つまり、或る状態sのとき、価値Q(s,a)の最も高い行動aを最適な行動として選択すればよい。しかし、最初は状態sと行動aとの組合せについて、価値Q(s,a)の正しい値は全く分かっていない。そこで、エージェント(行動主体)は、或る状態sの下で様々な行動aを選択し、その時の行動aに対して報酬が与えられる。それにより、エージェントはより良い行動の選択、すなわち正しい価値Q(s,a)を学習していく。
【0044】
行動の結果、将来にわたって得られる報酬の合計を最大化したいので、最終的にQ(s,a)=E[Σγ
tr
t]となるようにすることを目指す(期待値は最適な行動に従って状態変化したときについてとる。もちろん、それは分かっていないので、探索しながら学習しなければならない)。そのような価値Q(s,a)の更新式は、例えば次式により表すことができる。
【0046】
ここで、s
tは時刻tにおける環境の状態を表し、a
tは時刻tにおける行動を表す。行動a
tにより、状態はs
t+1に変化する。r
t+1は、その状態の変化により貰える報酬を表している。また、maxの付いた項は、状態s
t+1の下で、その時に分かっている最もQ値の高い行動aを選択した場合のQ値にγを乗じたものになる。γは、0<γ≦1のパラメータで、割引率と呼ばれる。αは学習係数で、0<α≦1の範囲とする。
【0047】
この式は、試行a
tの結果帰ってきた報酬r
t+1を元に、状態s
tにおける行動a
tの評価値Q(s
t,a
t)を更新する方法を表している。状態sにおける行動aの評価値Q(s
t,a
t)よりも、報酬r
t+1+行動aによる次の状態における最良の行動max aの評価値Q(s
t+1,max a
t+1)の方が大きければ、Q(s
t,a
t)を大きくするし、反対に小さければ、Q(s
t,a
t)も小さくする事を示している。つまり、或る状態における或る行動の価値を、結果として即時帰ってくる報酬と、その行動による次の状態における最良の行動の価値に近付けるようにしている。
【0048】
Q(s,a)の計算機上での表現方法は、すべての状態行動ペア(s,a)に対して、その値をテーブル(行動価値テーブル)として保持しておく方法と、Q(s,a)を近似するような関数を用意する方法がある。後者の方法では、前述の更新式は、確率勾配降下法などの手法で近似関数のパラメータを調整していくことで実現することができる。近似関数としては、後述のニューラルネットワークを用いることができる。
【0049】
教師あり学習、教師なし学習、及び強化学習での価値関数の近似アルゴリズムとして、ニューラルネットワークを用いることができる。ニューラルネットワークは、たとえば
図3に示すようなニューロンのモデルを模したニューラルネットワークを実現する演算装置及びメモリ等で構成される。
図3は、ニューロンのモデルを示す模式図である。
【0050】
図3に示すように、ニューロンは、複数の入力x(ここでは一例として、入力x
1〜入力x
3)に対する出力yを出力するものである。各入力x
1〜x
3には、この入力xに対応する重みw(w
1〜w
3)が掛けられる。これにより、ニューロンは、次の式により表現される出力yを出力する。なお、入力x、出力y及び重みwは、すべてベクトルである。
【数2】
ここで、θはバイアスであり、f
kは活性化関数である。
【0051】
次に、上述したニューロンを組み合わせた3層の重みを有するニューラルネットワークについて、
図4を参照して説明する。
図4は、D1〜D3の3層の重みを有するニューラルネットワークを示す模式図である。
【0052】
図4に示すように、ニューラルネットワークの左側から複数の入力x(ここでは一例として、入力x1〜入力x3)が入力され、右側から結果y(ここでは一例として、結果y1〜結果y3)が出力される。
【0053】
具体的には、入力x1〜入力x3は、3つのニューロンN11〜N13の各々に対して対応する重みが掛けられて入力される。これらの入力に掛けられる重みはまとめてw1と標記されている。
【0054】
ニューロンN11〜N13は、それぞれ、z11〜z13を出力する。これらのz11〜z13はまとめて特徴ベクトルz1と標記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルz1は、重みw1と重みw2との間の特徴ベクトルである。
【0055】
z11〜z13は、2つのニューロンN21、N22の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてw2と標記されている。
【0056】
ニューロンN21、N22は、それぞれ、z21、z22を出力する。これらは、まとめて特徴ベクトルz2と標記されている。この特徴ベクトルz2は、重みw2と重みw3との間の特徴ベクトルである。
【0057】
特徴ベクトルz21、z22は、3つのニューロンN31〜N33の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてw3と標記されている。
【0058】
最後に、ニューロンN31〜N33は、それぞれ、結果y1〜結果y3を出力する。
【0059】
ニューラルネットワークの動作には、学習モードと価値予測モードとがあり、学習モードにおいて学習データセットを用いて重みwを学習し、そのパラメータを用いて予測モードにおいて電動機に対する指令の補正を行う(便宜上、予測と書いたが、検出、分類、推論など多様なタスクが可能である)。
【0060】
予測モードで実際に電動機を動かして得られたデータを即時学習し、次の行動に反映させる(オンライン学習)ことも、あらかじめ収集しておいたデータ群を用いてまとめた学習を行い、以降はずっとそのパラメータで検知モードを行う(バッチ学習)こともできる。その中間的な、ある程度データが溜まるたびに学習モードを挟むということも可能である。
【0061】
重みw1〜w3は、誤差逆伝搬法(バックプロパゲーション)により学習可能なものである。誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力xが入力されたときの出力yと真の出力y(教師)との差分を小さくするように、それぞれの重みを調整(学習)する手法である。
【0062】
このようなニューラルネットワークは、3層以上にさらに層を増やすことも可能である(深層学習と称される)。入力の特徴抽出を段階的に行い、結果を回帰する演算装置を、教師データのみから自動的に獲得することが可能である。
【0063】
そこで、本実施形態の機械学習装置4は、上述のQ学習を実施すべく、
図1に示されるように状態観測部41、学習部43、および意思決定部46を備えている。ただし、本発明に適用される機械学習方法は、Q学習に限定されるものではない。たとえば教師あり学習を適用する場合、価値関数は学習モデル、報酬は誤差に対応する。
【0064】
本実施形態において観測される複数の状態変数の間には、複雑な相関関係が存在する。例えば、工作機械の送り速度が増大すれば、電動機2の負荷が増大し、ビビリ振動が発生しやすくなる。電動機2の振動が増大すれば、主軸頭5の位置決め精度が低下する。さらに、主軸頭5の温度が増大すれば、熱変位の影響で位置決め精度が低下する。このように、状態変数は、互いに複雑に影響しあって加工精度の低下を引き起こしうる。
【0065】
それに対し、前述した実施形態に係る機械学習装置および機械学習方法によれば、機械学習装置4が、状態変数に応じて、電動機2に対する適切な動作指令を学習することができるので、任意の状況下で適切な補正処理をすることができる。このように、本実施形態によれば、オペレータによる補正操作を実行する必要がなくなり、適切な補正処理が自動的に実行されるようになるので、高い加工精度を常時実現できるようになる。
【0066】
一実施形態において、学習部が、複数の電動機に対して作成される訓練データセットに従って、動作指令を学習するように構成されてもよい。学習部は、同一の現場で使用される複数の工作機械から訓練データセットを取得してもよいし、或いは、異なる現場で独立して稼働する複数の工作機械から収集される訓練データセットを利用して、電動機に対する動作指令を学習してもよい。
【0067】
強化学習及びニューラルネットワークを利用して機械学習する実施形態について説明したものの、他の公知の方法、例えば遺伝的プログラミング、機能論理プログラミング、サポートベクターマシンなどに従って機械学習を実行してもよい。
【0068】
以上、本発明の種々の実施形態について説明したが、当業者であれば、他の実施形態によっても本発明の意図する作用効果を実現できることを認識するであろう。特に、本発明の範囲を逸脱することなく、前述した実施形態の構成要素を削除または置換することができるし、或いは公知の手段をさらに付加することができる。また、本明細書において明示的または暗示的に開示される複数の実施形態の特徴を任意に組合せることによっても本発明を実施できることは当業者に自明である。
【解決手段】機械学習装置4は、電動機2に対する動作指令を学習するように構成される。機械学習装置4は、電動機2に対する電力供給量、電動機2の温度、電動機2の負荷、および電動機2の振動を状態変数として観測する状態観測部41と、状態変数に基づいて作成される訓練データセットに従って、電動機2に対する動作指令を学習する学習部43と、を備えている。