(57)【要約】【課題】煩雑な調整を回避しつつ、簡便に外乱を抑制する。【解決手段】外乱が抑制された状態でサーボ制御装置の制御対象を駆動する電流指令をラベルとして取得するラベル取得手段２２０と、外乱が抑制された状態で電流指令に基づいて駆動した制御対象の速度を入力データとして取得する入力データ取得手段２１０と、ラベルと前記入力データとの組を教師データとして教師あり学習を行うことにより、制御対象の速度から前記制御対象を駆動する電流を推定するための学習モデルを構築する学習手段２３０と、を備える機械学習装置。【選択図】図４
2018173777.tif 000002
【特許請求の範囲】
【請求項１】
外乱が抑制された状態でサーボ制御装置の制御対象を駆動する電流指令をラベルとして取得するラベル取得手段と、
前記外乱が抑制された状態で前記電流指令に基づいて駆動した制御対象の速度を入力データとして取得する入力データ取得手段と、
前記ラベルと前記入力データとの組を教師データとして教師あり学習を行うことにより、前記制御対象の速度から前記制御対象を駆動する電流を推定するための学習モデルを構築する学習手段と、
を備える機械学習装置。
【請求項２】
前記制御対象は、モータと該モータによって移動する負荷とを備え、前記入力データ取得手段により取得される前記速度は、前記モータの回転速度と前記負荷の速度とである請求項１に記載の機械学習装置。
【請求項３】
前記学習手段により構築された前記学習モデルに基づいて、前記制御対象の速度から前記制御対象を駆動する電流を推定するための関数を生成して前記サーボ制御装置に対して出力する関数出力手段を更に備えた請求項１又は２に記載の機械学習装置。
【請求項４】
前記サーボ制御装置は、電流フィードバックループを構成する電流制御部とアンプとを備え、前記制御対象を駆動する電流指令は前記電流制御部と前記アンプを介して前記制御対象に加えられ、
前記ラベル取得手段に入力する前記電流指令は、前記アンプの出力である請求項１から３のいずれか１項に記載の機械学習装置。
【請求項５】
請求項３に記載の機械学習装置と、該機械学習装置に対して前記電流指令及び前記制御対象の速度を出力する前記サーボ制御装置とを備え、
前記サーボ制御装置は、前記関数出力手段から出力された前記関数に基づいて前記制御対象の速度から前記制御対象を駆動する電流を推定する推定電流生成手段、前記電流指令と前記推定電流生成手段で推定された推定電流との差を求める減算手段、及び前記差に基づいて外乱を補償するための補正電流を生成する外乱補償手段を有する、サーボ制御システム。
【請求項６】
前記サーボ制御装置は、電流フィードバックループを構成する電流制御部とアンプとを備え、前記制御対象を駆動する電流指令は前記電流制御部と前記アンプを介して前記制御対象に加えられ、
前記ラベル取得手段に入力する前記電流指令は、前記アンプの出力である請求項５に記載のサーボ制御システム。
【請求項７】
請求項３に記載の機械学習装置と、
前記関数出力手段から出力された前記関数に基づいて前記制御対象の速度から前記制御対象を駆動する電流を推定する推定電流生成手段と、
前記電流指令と前記推定電流生成手段で推定された推定電流との差を求める減算手段と、
前記差に基づいて外乱を補償するための補正電流を生成する外乱補償手段と、
を備えるサーボ制御装置。
【請求項８】
電流フィードバックループを構成する電流制御部とアンプとを備え、前記制御対象を駆動する電流指令は前記電流制御部と前記アンプを介して前記制御対象に加えられ、
前記ラベル取得手段に入力する前記電流指令は、前記アンプの出力である請求項７に記載のサーボ制御装置。
【請求項９】
外乱が抑制された状態でサーボ制御装置の制御対象を駆動する電流指令をラベルとして取得し、
前記外乱が抑制された状態で前記電流指令に基づいて駆動した制御対象の速度を入力データとして取得し、
前記ラベルと前記入力データとの組を教師データとして教師あり学習を行うことにより、前記制御対象の速度から前記制御対象を駆動する電流を推定するための学習モデルを構築する、機械学習装置の機械学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外乱を抑制するための機械学習装置、サーボ制御装置、サーボ制御システム、及び機械学習方法に関する。
【背景技術】
【０００２】
工作機械、産業機械におけるサーボ制御装置において、特許文献１は、制御対象の非線形性や外乱、環境経時変化に対応できる高精度な位置決めが可能な構成を開示している。具体的には、特許文献１は、制御対象の制御出力を目標値に一致させるように目標値と制御出力との制御偏差をフィードバック制御する制御器を有するサーボ制御装置において、制御器の出力を入力信号とするニューラルネットワークモデルと、制御器の出力を入力信号とする線形モデルと、ニューラルネットワークの出力を制御対象の入力信号とし、制御対象の出力と線形モデルの出力が等しくなるようにニューラルネットワークの各層間の重みを変化させる学習手段とを含むサーボ制御装置を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０７−２１０２０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した特許文献１に開示の構成は、線形モデルを規範モデルとして、この線形モデルの特性に一致するように、規範型適応制御を行うという構成であるので、ユーザが線形モデルを逐一用意する必要がある。
しかしながら、線形モデルを逐一用意することは、ユーザにとっては煩雑であり、より簡便に外乱等を抑制するサーボ制御装置が望まれる。
【０００５】
本発明は、煩雑な調整を回避しつつ、簡便に外乱を抑制する機械学習装置、サーボ制御装置、サーボ制御システム、及び機械学習方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
（１）  本発明に係る機械学習装置（例えば、後述の機械学習装置２００、２００−１〜２００−ｎ、２０１、２０２）は、外乱が抑制された状態でサーボ制御装置の制御対象（例えば、後述の制御対象４００）を駆動する電流指令をラベルとして取得するラベル取得手段（例えば、後述のラベル取得部２２０）と、
前記外乱が抑制された状態で前記電流指令に基づいて駆動した制御対象の速度を入力データとして取得する入力データ取得手段（例えば、後述の入力データ取得部２１０）と、
前記ラベルと前記入力データとの組を教師データとして教師あり学習を行うことにより、前記制御対象の速度から前記制御対象を駆動する電流を推定するための学習モデルを構築する学習手段（例えば、後述の学習部２３０）と、
を備える機械学習装置である。
【０００７】
（２）  上記（１）の機械学習装置において、前記制御対象は、モータ（例えば、後述のサーボモータ４０１）と該モータによって移動する負荷（例えば、後述の負荷４０２）とを備え、前記入力データ取得手段により取得される前記速度は、前記モータの回転速度と前記負荷の速度とであってもよい。
【０００８】
（３）  上記（１）又は（２）の機械学習装置において、前記学習手段により構築された前記学習モデルに基づいて、前記制御対象の速度から前記制御対象を駆動する電流を推定するための関数を生成して前記サーボ制御装置に対して出力する関数出力手段（例えば、後述の推定電流生成関数出力部２５０）を更に備えてもよい。
【０００９】
（４）  上記（１）から（３）のいずれかの機械学習装置において、前記サーボ制御装置は、電流フィードバックループを構成する電流制御部（例えば、後述の電流制御部１８０）とアンプ（例えば、後述のアンプ１９０）とを備え、前記制御対象を駆動する電流指令は前記電流制御部と前記アンプを介して前記制御対象に加えられ、
前記ラベル取得手段に入力する前記電流指令は、前記アンプの出力であってもよい。
【００１０】
（５）  本発明に係るサーボ制御システムは、上記（３）の機械学習装置（例えば、後述の機械学習装置２００、２００−１〜２００−ｎ、２０１、２０２）と、該機械学習装置に対して前記電流指令及び前記制御対象の速度を出力する前記サーボ制御装置（例えば、後述のサーボ制御装置１００、１００−１〜１００−ｎ、１０１、１０２）とを備え、
前記サーボ制御装置は、前記関数出力手段から出力された前記関数に基づいて前記制御対象の速度から前記制御対象を駆動する電流を推定する推定電流生成手段（例えば、後述の推定電流生成部１５０）、前記電流指令と前記推定電流生成手段で推定された推定電流との差を求める減算手段（例えば、後述の減算器１４０）、及び前記差に基づいて外乱を補償するための補正電流を生成する外乱補償手段（例えば、後述の外乱補償器１６０）を有する、サーボ制御システムである。
【００１１】
（６）  上記（５）のサーボ制御システムにおいて、前記サーボ制御装置は、電流フィードバックループを構成する電流制御部（例えば、後述の電流制御部１８０）とアンプ（例えば、後述のアンプ１９０）とを備え、前記制御対象を駆動する電流指令は前記電流制御部と前記アンプを介して前記制御対象に加えられ、
前記ラベル取得手段に入力する前記電流指令は、前記アンプの出力であってもよい。
【００１２】
（７）  本発明に係るサーボ制御装置は、上記（３）の機械学習装置（例えば、後述の機械学習装置２００、２００−１〜２００−ｎ、２０１、２０２）と、
前記関数出力手段から出力された前記関数に基づいて前記制御対象の速度から前記制御対象を駆動する電流を推定する推定電流生成手段（例えば、後述の推定電流生成部１５０）と、
前記電流指令と前記推定電流生成手段で推定された推定電流との差を求める減算手段（例えば、後述の減算器１４０）と、
前記差に基づいて外乱を補償するための補正電流を生成する外乱補償手段（例えば、後述の外乱補償器１６０）と、
を備えるサーボ制御装置である。
【００１３】
（８）  上記（７）のサーボ制御装置において、電流フィードバックループを構成する電流制御部（例えば、後述の電流制御部１８０）とアンプ（例えば、後述のアンプ１９０）とを備え、前記制御対象を駆動する電流指令は前記電流制御部と前記アンプを介して前記制御対象に加えられ、
前記ラベル取得手段に入力する前記電流指令は、前記アンプの出力である請求項７に記載のサーボ制御装置。
【００１４】
（９）  本発明に係る機械学習装置の機械学習方法は、外乱が抑制された状態でサーボ制御装置の制御対象を駆動する電流指令をラベルとして取得し、
前記外乱が抑制された状態で前記電流指令に基づいて駆動した制御対象の速度を入力データとして取得し、
前記ラベルと前記入力データとの組を教師データとして教師あり学習を行うことにより、前記制御対象の速度から前記制御対象を駆動する電流を推定するための学習モデルを構築する、機械学習装置の機械学習方法である。
【発明の効果】
【００１５】
本発明によれば、煩雑な調整を回避しつつ、簡便に外乱を抑制することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施形態のサーボ制御システムを示すブロック図である。
【図２】本発明の第１の実施形態のサーボ制御システムのサーボ制御装置の構成を示すブロック図である。
【図３】本発明の第１の実施形態のサーボ制御システムの加工時のサーボ制御装置の構成を示すブロック図である。
【図４】本発明の第１の実施形態のサーボ制御システムの機械学習装置の構成を示すブロック図である。
【図５】本実施形態における機械学習装置２００の動作を示すフローチャートである。
【図６】本発明の第２の実施形態のサーボ制御システムにおけるサーボ制御装置と機械学習装置の一構成例を示すブロック図である。
【図７】本発明の第２の実施形態のサーボ制御システムの加工時のサーボ制御装置の構成を示すブロック図である。
【図８】本発明の第２の実施形態のサーボ制御システムの機械学習装置の構成を示すブロック図である。
【図９】本発明の第３の実施形態のサーボ制御システムにおけるサーボ制御装置と機械学習装置の一構成例を示すブロック図である。
【図１０】本発明の第３の実施形態のサーボ制御システムの加工時のサーボ制御装置の構成を示すブロック図である。
【図１１】本発明の第３の実施形態のサーボ制御システムの機械学習装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について図面を用いて詳細に説明する。なお、以下では、３つの実施形態について説明をするが、その前提となる全体構成は、各実施形態で共通であるので、この各実施形態に共通の全体構成についてまず説明をする。
【００１８】
＜各実施形態に共通の全体構成＞
図１は本発明の第１の実施形態のサーボ制御システムを示すブロック図である。サーボ制御システム１０は、図１に示すように、ｎ台のサーボ制御装置１００−１〜１００−ｎ、ｎ台の機械学習装置２００−１〜２００−ｎ、及びネットワーク３００を備えている。なお、ｎは任意の自然数である。
【００１９】
ここで、サーボ制御装置１００−１と機械学習装置２００−１とは１対１の組とされて、通信可能に接続されている。サーボ制御装置１００−２〜１００−ｎと機械学習装置２００−２〜１００−ｎについてもサーボ制御装置１００−１と機械学習装置２００−１と同様に接続される。図１では、サーボ制御装置１００−１〜１００−ｎと機械学習装置２００−１〜２００−ｎとのｎ個の組は、ネットワーク３００を介して接続されているが、サーボ制御装置１００−１〜１００−ｎと機械学習装置２００−１〜２００−ｎとのｎ個の組は、それぞれの組のサーボ制御装置と機械学習装置とが接続インタフェースを介して直接接続されてもよい。サーボ制御装置１００−１〜１００−ｎと機械学習装置２００−１〜２００−ｎとのｎ個の組は、例えば同じ工場に複数組設置されていてもよく、それぞれ異なる工場に設置されていてもよい。
【００２０】
ネットワーク３００は、例えば、工場内に構築されたＬＡＮ（Local Area Network）や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワーク３００における具体的な通信方式や、有線接続および無線接続のいずれであるか等については、特に限定されない。
【００２１】
（第１の実施形態）
図２は本発明の第１の実施形態のサーボ制御システムにおける一組のサーボ制御装置と機械学習装置の一構成例を示すブロック図である。図２に示すサーボ制御装置１００と、機械学習装置２００は例えば、図１に示すサーボ制御装置１００−１と機械学習装置２００−１とに対応している。図２において、各装置間に存在するネットワーク３００については、その図示を省略する。
【００２２】
図２に示すように、サーボ制御装置１００は、減算器１１０、速度制御部１２０、加算器１３０、減算器１４０、推定電流生成部１５０、外乱補償器１６０、及びローパスフィルタ１７０を備えている。機械学習装置２００は、加算器１３０から電流指令値、制御対象４００から速度検出値が入力され、電流指令値をラベルとし、速度検出値を入力データとする教師データに基づいて機械学習である教師あり学習を行い、推定電流生成部１５０に推定電流生成関数を出力する。
【００２３】
サーボ制御装置１００によりサーボ制御される制御対象４００は例えばサーボモータ、サーボモータを含む工作機械、ロボット、産業機械等である。サーボ制御装置１００は工作機械、ロボット、産業機械等の一部として設けられてもよい。以下の説明では、制御対象４００がサーボモータを含む工作機械である場合について説明する。
【００２４】
本実施形態では、機械学習時には、外乱が生じない状態、具体的にはワークを加工しない状態で、サーボ制御装置１００は制御対象４００を駆動し、外乱を補償する制御は行わない。そのため、図２では、減算器１４０、推定電流生成部１５０、外乱補償器１６０、及びローパスフィルタ１７０を介して加算器１３０に至る経路は機能しないという意味で、この経路は破線で表されている。この経路を機能させないようにするには、例えば、外乱補償器１６０から出力信号が出力されないように制御すればよい。
【００２５】
機械学習時において、工作機械で実際に加工するワークの加工プログラムを用いて制御対象４００を駆動させ、機械学習を行ってもよいが、一般的に加工プログラムは時間が長いので、実際の加工プログラムとは別に機械学習のための評価用プログラムを用いることが望ましい。評価用プログラムは、機械学習時の加工形状により軸方向の移動距離、送り速度等を指定する。機械学習時の加工形状は、例えば、円、四角、及び角Ｒ付き四角（a square with quarter arc）等である。このような加工形状により、サーボモータの回転方向を反転させたり、回転状態から停止させたりすることができる。
【００２６】
次に、本実施形態における機械学習時の信号の流れについて図２を参照して説明をする。まず、サーボ制御装置１００に対して、図示を省略した上位装置から制御対象４００の駆動を制御するための速度指令が入力される。減算器１１０は、サーボ制御装置１００に入力される速度指令と制御対象４００から速度フィードバックされる速度検出値との差である速度偏差を求めて、速度制御部１２０に出力する。
【００２７】
速度制御部１２０は、速度偏差に積分ゲインＫ１ｖを乗じて積分した値と、速度偏差に比例ゲインＫ２ｖを乗じた値とを加算して、その加算値を電流指令値として加算器１３０を介して制御対象４００及び機械学習装置２００に出力する。加算器１３０は実際の加工時には、電流指令値とローパスフィルタ１７０の出力との差を求めて、その差を制御対象４００に出力するが、機械学習時には電流指令値をそのまま制御対象４００及び機械学習装置２００に出力する。
【００２８】
制御対象４００に含まれるサーボモータは、電流指令値に基づいて駆動され、制御対象４００のサーボモータの回転角度位置は、サーボモータに関連付けられた、位置検出部となるロータリーエンコーダによって検出され、検出された信号は速度フィードバックされる速度検出値として利用される。また、速度検出値は機械学習装置２００に入力される。
【００２９】
機械学習装置２００は、ロータリーエンコーダから出力される速度検出値を教師データ、電流指令値をラベルとして用いた、機械学習である教師あり学習を行うことにより学習モデルを構築し、制御対象４００の伝達関数１／Ｊｓの逆関数Ｊｓを推定電流生成関数として推定電流生成部１５０に出力する。機械学習装置２００における教師あり学習の詳細については後述する。
【００３０】
機械学習装置２００により、推定電流生成部１５０に逆関数Ｊｓが設定されると、図３に示すように、学習後の実際の加工プログラムによりワークの加工を行っているときに、外乱が生じても次の動作により外乱により生じた速度変化を補正するように補正電流を生成することができる。図３は本発明の第１の実施形態のサーボ制御システムの加工時のサーボ制御装置の構成を示すブロック図である。実際の加工時には、機械学習は行われず、そのため機械学習装置２００との接続は図３において図示されていない。
【００３１】
図３に示すように、学習後の実際の加工プログラムに基づく速度指令値が減算器１１０に入力される。減算器１１０は、入力された速度指令と制御対象４００から速度フィードバックされる速度検出値との差である速度偏差を求めて、速度制御部１２０に出力する。
速度制御部１２０は、速度偏差に積分ゲインＫ１ｖを乗じて積分した値と、速度偏差に比例ゲインＫ２ｖを乗じた値とを加算して、その加算値を電流指令値として加算器１３に出力する。加算器１３０は電流指令値とローパスフィルタ１７０との出力との差を求めて、その差を制御対象４００及び減算器１４０に出力する。
【００３２】
ワークの加工により外乱が生じて制御対象となるサーボモータの速度が変化した場合に、外乱による速度変動成分を含む速度検出値が推定電流生成部１５０に入力される。推定電流生成部１５０は、伝達関数が制御対象４００の逆関数に設定されているので、外乱による速度変動成分を含む速度検出値が入力されると、外乱による影響により加えられた電流成分を含む推定電流値を減算器１４０に出力する。
【００３３】
減算器１４０は電流指令値と外乱による電流成分を含む推定電流値との差を取り、外乱による電流成分のみを外乱補償器１６０に入力する。外乱補償器１６０は補正電流値を生成し、補正電流値を、ローパスフィルタ１７０を介して加算器１３０に入力する。加算器１３０は電流指令値に外乱による補正電流値を加えて出力する。こうして、外乱による制御対象４００のサーボモータの速度変化を抑制するように電流指令値が補正され、サーボモータは補正された電流指令に基づいて駆動される。ローパスフィルタ１７０は外乱が加えられて補正電流値により外乱による影響を抑制するまでの時間よりも短い周波数成分を除去するために設けられる。
【００３４】
次に、図４を用いて、機械学習装置２００の構成及び動作について説明する。図４は本発明の第１の実施形態のサーボ制御システムの機械学習装置の構成を示すブロック図である。
図４に示すように、機械学習装置２００は、入力データ取得部２１０、ラベル取得部２２０、学習部２３０、学習モデル記憶部２４０、及び推定電流生成関数出力部２５０を備えている。
【００３５】
入力データ取得部２１０は、速度指令に基づいて駆動したサーボモータの速度検出値を入力データ（特徴量とも呼ぶ。）として取得し、取得した入力データを学習部２３０に対して出力する。
ラベル取得部２２０は、加算器１３０から出力された電流指令をラベルとして取得し、取得したラベルを学習部２３０に対して出力する。
【００３６】
このようにして、入力データである速度検出値と、ラベルである電流指令とが組となり、学習部２３０に入力される。この入力データとラベルの組は、機械学習における教師データに相当する。
【００３７】
学習部２３０は、このようにして入力された教師データに基づいて教師あり学習と呼ばれる機械学習を行うことにより、学習モデルを構築する。ここで、教師あり学習自体は当業者にとってよく知られているので詳細な説明を省略して、その概略を説明する。
【００３８】
教師あり学習は、例えば、パーセプトロンを組み合わせて構成したニューラルネットワークにより行う。具体的には、教師データに含まれる入力データとラベルの組をニューラルネットワークに与え、ニューラルネットワークの出力がラベルと同じとなるように、各パーセプトロンについての重み付けを変更しながら学習を繰り返す。
例えば、フォワードプロパゲーション（Ｆｏｒｗａｒｄ−ｐｒｏｐａｇａｔｉｏｎ）を行った後に、バックプロパゲーション（Ｂａｃｋ−ｐｒｏｐａｇａｔｉｏｎ、誤差逆伝搬法とも呼ばれる。）という処理を行うことを繰り返すことにより各パーセプトロンの出力の誤差を小さくするように重み付け値を調整する。
このようにして、教師データの特徴を学習し、入力から結果を推定するための学習モデルを帰納的に獲得する。
【００３９】
ここで、教師あり学習は、上述したように重み付けの値を異ならせながら、ラベルと出力データとの誤差がなくなるようにするものである。そして、本実施形態のラベルは、制御対象４００に対する電流指令であり、入力は制御対象４００の出力となる検出速度値である。そのため、学習部２３０が学習を繰り返すことにより構築された学習モデルは、理想的には、制御対象４００に対する電流指令と、入力データとなる速度検出値に対する出力データとを同等の値とするための逆関数に相当することとなる。
【００４０】
なお、学習部２３０が学習に用いるニューラルネットワークは三層であってもよいが、これ以上に更に層を増やすようにしてもよい。いわゆるディープラーニング（深層学習とも呼ばれる。）により学習を行うようにしてもよい。
学習部２３０が構築した学習モデルは、学習モデル記憶部２４０に対して出力される。
【００４１】
学習モデル記憶部２４０は、学習部２３０が構築して学習モデル記憶部２４０に対して出力した学習モデルを記憶する記憶部である。
推定電流生成関数出力部２５０は、実際の加工前に、学習モデル記憶部２０４から学習モデルを取得する。そして、推定電流生成関数出力部２５０は、取得した学習モデルに基づいて算出される関数である推定電流生成関数を推定電流生成部１５０に対して出力する。この推定電流生成関数は、実際の加工プログラムにより外乱が生じた場合に、推定電流生成部１５０において外乱による電流成分を含む推定電流値を生成するために用いられる。
【００４２】
以上、機械学習装置２００の機能ブロックについて説明した。これらの機能ブロックを実現するために、機械学習装置２００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の演算処理装置を備える。また、機械学習装置２００は、各種の制御用プログラムを格納したＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）といった主記憶装置を備える。
【００４３】
そして、機械学習装置２００では、演算処理装置が補助記憶装置からアプリケーションやＯＳを読み込み、読み込んだアプリケーションやＯＳを主記憶装置に展開させながら、これらのアプリケーションやＯＳに基づいた演算処理を行う。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、本実施形態における機械学習装置２００の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
【００４４】
具体例として、機械学習装置２００は、パーソナルコンピュータやサーバ装置あるいは数値制御装置（ＣＮＣ：Ｃｏｍｐｕｔｅｒｉｚｅｄ  Ｎｕｍｅｒｉｃａｌ  Ｃｏｎｔｒｏｌ）の一部等により実現できる。
ただし、機械学習装置２００については機械学習に伴う演算量が多いため、例えば、パーソナルコンピュータにＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔｓ）を搭載し、ＧＰＧＰＵ（Ｇｅｎｅｒａｌ−Ｐｕｒｐｏｓｅ  ｃｏｍｐｕｔｉｎｇ  ｏｎ  Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔｓ）と呼ばれる技術により、ＧＰＵを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。更には、より高速な処理を行うために、このようなＧＰＵを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
なお、後述の第２の実施形態における機械学習装置２０１及び第３の実施形態における機械学習装置２０２についても、本実施形態の機械学習装置２００と同じようにして実現することができる。
【００４５】
次に、本実施形態における機械学習装置２００の機械学習に係る動作について図５のフローチャートを参照して説明を行う。
ステップＳ１１において、機械学習装置２００は、機械学習が終了したか否かを判断する。
【００４６】
ここで、機械学習が終了した場合には、ステップＳ１１においてＹｅｓと判定され、処理はステップＳ１６に進む。機械学習が終了していない場合には、ステップＳ１１においてＮｏと判定され、処理はステップＳ１２に進む。
ステップＳ１２及びステップＳ１３において、機械学習装置２００の入力データ取得部２１０及びラベル取得部２２０は入力データとラベルを取得する。これらのデータの具体的な内容は上述した通りである。
【００４７】
ステップＳ１４において、機械学習装置２００の学習部２３０は、入力された教師データを用いて機械学習を実行する。この教師データを用いた機械学習の具体的な内容も上述した通りである。
【００４８】
ステップＳ１５において、学習部２３０は、構築した学習モデルを学習モデル記憶部２４０に対して出力することにより、学習モデルを更新する。その後、処理は再度ステップＳ１１に進む。
【００４９】
このようにステップＳ１１からステップＳ１５の処理を繰り返すことにより、学習が継続されていく。そして、機械学習が終了した場合には、ステップＳ１６に進む。なお、機械学習の終了は、例えば、ユーザからの指示により行われてもよいし、学習モデルの出力とラベルとの誤差の値が所定値以下となった場合に行われてもよいし、予め定めておいた回数だけ機械学習を繰り返した場合に行われてもよい。
【００５０】
ステップＳ１６において、推定電流生成関数出力部２５０が、学習モデル記憶部２４０が記憶している学習モデルを取得する。
【００５１】
ステップＳ１７において、推定電流生成関数出力部２５０は、取得した学習モデルに基づいて算出される関数である推定電流生成関数を推定電流生成部１５０に対して出力する。
このようにすることで、サーボ制御装置１００における外乱補償機能が有効となる。
【００５２】
＜第２の実施形態＞
次に、第２の実施形態の構成について図６、図７、及び図８を参照して説明をする。なお、第２の実施形態の機能及び構成は、上述した第１の実施形態と共通する機能及び構成は図６〜図８において、同一符号を付して重複する説明は省略し、第１の実施形態と第２の実施形態にて相違する点について詳細に説明をする。
【００５３】
図６は本発明の第２の実施形態のサーボ制御システムにおけるサーボ制御装置と機械学習装置の一構成例を示すブロック図である。図７は本発明の第２の実施形態のサーボ制御システムの加工時のサーボ制御装置の構成を示すブロック図である。図８は本発明の第２の実施形態のサーボ制御システムの機械学習装置の構成を示すブロック図である。
【００５４】
図６及び図７に示すように、本実施形態のサーボ制御システムと図２及び図３図４に示した第１実施形態のサーボ制御システムとの違いは、制御対象がサーボモータ４０１と負荷４０２で構成されており、サーボモータ４０１のロータリーエンコーダから出力される速度検出値と負荷４０２の速度を検出するリニアスケールから出力される負荷側の速度検出値とが、推定電流生成部１５０及び機械学習装置２０１に入力される点である。
【００５５】
機械学習装置２０１と機械学習装置２００との違いは、図８に示すように、入力データ取得部２１０に負荷側の速度検出値とサーボモータ４０１側の速度検出値との両方が入力データとして入力され、学習部２３０がこれら２つの速度検出値を入力データとし、電流指令値をラベルとする教師データに基づいて教師あり学習と呼ばれる機械学習を行うことにより、学習モデルを構築する点にある。
【００５６】
サーボモータ４０１に接続される負荷４０２は、工作機械の場合には例えば、加工するワークを載せるテーブルが該当する。サーボモータ４０１とテーブルとは連結機構により接続されており、連結機構は図６及び図７に示すように機械的な等価回路としてダンパーとバネにより示される。連結機構は、サーボモータ４０１に連結されたカップリングと、カップリングに固定されるボールねじと、ボールねじに螺合され、テーブルに接続されるナットとを備えている。このような連結機能によりサーボモータ４０１の回転運動がテーブルの直線運動に変換される。負荷４０２の速度はボールねじ３０３３の端部にリニアスケールを取り付けることで測定することができる。
【００５７】
第２の実施形態においても、第１の実施形態と同様に、機械学習時には、外乱を補償する制御は行わない。そのため、図６では、減算器１４０、推定電流生成部１５０、外乱補償器１６０、及びローパスフィルタ１７０を介して加算器１３０に至る経路は機能しないという意味で、この経路は破線で表されている。この経路を機能させないようにするには、例えば、外乱補償器１６０から出力信号が出力されないように制御すればよい。一方で、実際の加工時には、機械学習は行われず、そのため機械学習装置２０１との接続は図７において図示されていない。
【００５８】
第２実施形態においては、ワークの加工により外乱が生じて、サーボモータ４０１の回転速度が変化した場合にかぎらず、外乱によって負荷４０２の速度が変化した場合もその速度変化を抑制するように電流指令値を補正することができる。
【００５９】
＜第３の実施形態＞
次に、第３の実施形態の構成について図９、図１０、及び図１１を参照して説明をする。なお、第３の実施形態の機能及び構成は、上述した第１の実施形態と共通する機能及び構成は図９〜図１１において、同一符号を付して重複する説明は省略し、第１の実施形態と第３の実施形態にて相違する点について詳細に説明をする。
【００６０】
図９は本発明の第３の実施形態のサーボ制御システムにおけるサーボ制御装置と機械学習装置の一構成例を示すブロック図である。図１０は本発明の第３の実施形態のサーボ制御システムの加工時のサーボ制御装置の構成を示すブロック図である。図１１は本発明の第３の実施形態のサーボ制御システムの機械学習装置の構成を示すブロック図である。
【００６１】
図９及び図１０に示すように、本実施形態のサーボ制御システムと図２及び図３に示した第１実施形態のサーボ制御システムとの違いは、加算器１３０の出力側に電流制御部１８０とアンプ１９０とが加えられて、電流フィードバックループが形成されている点である。電流制御部１８０からはアンプ１９０に電圧指令が送られ、アンプ１９０で制御された電流が制御対象４００に与えられる。また、制御対象４００に与えられる電流は電流制御部１８０にフィードバックされるとともに、減算器１４０及び機械学習装置２０２に与えられる。電流制御部１８０は電流指令と電流フィードバックとの差をアンプ１９０に出力する。
【００６２】
機械学習装置２０２と機械学習装置２００との違いは、図１１に示すように、ラベル取得部２２０にアンプ１９０の出力が入力され、学習部２３０がアンプ１９０の出力をラベルとして教師あり学習と呼ばれる機械学習を行うことにより、学習モデルを構築する点にある。
【００６３】
以上、本発明の３つの実施形態について説明をした。上述した各実施形態は、本発明の好適な実施形態ではあるが、上述した各実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。例えば、以下に記載するような変更を施した形態での実施が可能である。
【００６４】
＜サーボ制御装置が機械学習装置を備える変形例＞
上述した実施形態では、機械学習装置２００〜２０２を、サーボ制御装置１００〜１０２とは別体の装置により構成したが、機械学習装置２００〜２０２の機能の一部又は全部をサーボ制御装置１００〜１０２により実現するようにしてもよい。
【００６５】
＜システム構成の自由度＞
上述した実施形態では、サーボ制御装置１００〜１０２と機械学習装置２００〜１０２とが１対１の組として通信可能に接続されているが、各実施形態の構成はかかる構成に限定されない。例えばサーボ制御装置１００と機械学習装置２００を例にとって説明すると、１台の機械学習装置２００と複数のサーボ制御装置１００とが、直接又はネットワークを介して通信可能に接続され、各サーボ制御装置１００の機械学習を実施するようにしてもよい。
その際、機械学習装置２００の各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、機械学習装置２００の各機能を実現してもよい。
【００６６】
また、複数の同じ型名、同一仕様、又は同一シリーズの複数のサーボ制御装置１００とそれぞれ対応する複数の制御対象４００があった場合に、各サーボ制御装置１００における学習結果を共有するように構成するようにしてもよい。そうすることで、より最適なモデルを構築することが可能となる。
【００６７】
＜オンライン学習、バッチ学習及びミニバッチ学習＞
上述した学習部２３０における教師あり学習は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
オンライン学習とは、制御対象４００が駆動し、教師データが作成される都度、即座に教師あり学習を行うという学習方法である。また、バッチ学習とは、制御対象４００が駆動し、教師データが作成されることが繰り返される間に、繰り返しに応じた複数の教師データを収集し、収集した全ての教師データを用いて、教師あり学習を行うという学習方法である。更に、ミニバッチ学習とは、オンライン学習と、バッチ学習の中間的な、ある程度教師データが溜まるたびに教師あり学習を行うという学習方法である。
【００６８】
また、以上説明した各実施形態は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。ハードウェアで構成する場合、各実施形態の一部又は全部を、例えば、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ)、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ゲートアレイ、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の集積回路（ＩＣ）で構成することができる。
【００６９】
また、各実施形態の一部又は全部をソフトウェアとハードウェアの組み合わせで構成する場合、フローチャートで示されるサーボ制御装置の動作の全部又は一部を記述したプログラムを記憶した、ハードディスク、ＲＯＭ等の記憶部、演算に必要なデータを記憶するＤＲＡＭ、ＣＰＵ、及び各部を接続するバスで構成されたコンピュータにおいて、演算に必要な情報をＤＲＡＭに記憶し、ＣＰＵで当該プログラムを動作させることで実現することができる。
【００７０】
プログラムは、様々なタイプのコンピュータ可読媒体（ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。コンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。コンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））を含む。
【符号の説明】
【００７１】
１０  サーボ制御システム
１００、１００−１〜１００−ｎ  サーボ制御装置
１１０  減算器
１２０  速度制御部
１３０  加算器
１４０  減算器
１５０  推定電流生成部
１６０  外乱補償器
１７０  ローパスフィルタ
２００、２００−１〜２００−ｎ  機械学習装置
２１０  入力データ取得部
２２０  ラベル取得部
２３０  学習部
２４０  学習モデル記憶部
２５０  推定電流生成関数出力部
３００  ネットワーク
４００  制御対象
【図１】
2018173777.tif 000003
【図２】
2018173777.tif 000004
【図３】
2018173777.tif 000005
【図４】
2018173777.tif 000006
【図５】
2018173777.tif 000007
【図６】
2018173777.tif 000008
【図７】
2018173777.tif 000009
【図８】
2018173777.tif 000010
【図９】
2018173777.tif 000011
【図１０】
2018173777.tif 000012
【図１１】
2018173777.tif 000013