(57)【要約】【課題】摩擦モデルの係数を同定することができる制御装置及び制御方法を提供すること。【解決手段】機械の１以上の軸について、摩擦を考慮した位置制御を行う制御装置１は、少なくとも位置指令及び位置フィードバックを取得するデータ取得部７０と、前記位置指令と前記位置フィードバックの差分である位置偏差に基づいて、前記位置制御を行う際の摩擦モデルの係数を推定する補正トルク推定部８０と、を備える。【選択図】図２
2019185742.tif 000002
【特許請求の範囲】
【請求項１】
機械の１以上の軸について、摩擦を考慮した位置制御を行う制御装置であって、
少なくとも位置指令及び位置フィードバックを取得するデータ取得部と、
前記位置指令と前記位置フィードバックの差分である位置偏差に基づいて、前記位置制御を行う際の摩擦モデルの係数を推定する補正トルク推定部と、を備える
制御装置。
【請求項２】
前記補正トルク推定部は、前記位置偏差を最小化する最適化問題を解くことにより摩擦モデルの係数を推定する最適化部を有する
請求項１記載の制御装置。
【請求項３】
前記補正トルク推定部は、前記摩擦モデルの係数、位置指令及び位置フィードバック、並びに、速度指令又は速度フィードバックを含む状態変数を用いた機械学習を行い、学習モデルを生成する学習部を有する
請求項１記載の制御装置。
【請求項４】
前記学習部は、前記位置制御の結果を示す判定データに基づいて強化学習を行う
請求項３記載の制御装置。
【請求項５】
前記補正トルク推定部は、
前記摩擦モデルの係数、位置指令及び位置フィードバック、並びに、速度指令又は速度フィードバックを用いて機械学習した学習モデルを記憶する学習モデル記憶部と、
位置指令及び位置フィードバック、並びに、速度指令又は速度フィードバックに基づき、前記学習モデルを用いて、前記摩擦モデルの係数を推定する推定部を有する
請求項１記載の制御装置。
【請求項６】
前記データ取得部は、複数の前記機械からデータを取得する
請求項１記載の制御装置。
【請求項７】
前記摩擦モデルは、Ｌｕｇｒｅ  Ｍｏｄｅｌ，Ｓｅｖｅｎ  ｐａｒａｍｅｔｅｒ  ｍｏｄｅｌ，  Ｓｔａｔｅ  ｖａｒｉａｂｌｅ  ｍｏｄｅｌ，  Ｋａｒｎｏｐｐ  ｍｏｄｅｌ，ＬｕＧｒｅ  ｍｏｄｅｌ，  Ｍｏｄｉｆｉｅｄ  Ｄａｈｌ  ｍｏｄｅｌ，  Ｍ２  ｍｏｄｅｌのいずれかであることを特徴とする
請求項１記載の制御装置。
【請求項８】
機械の１以上の軸について、摩擦を考慮した位置制御を行う制御方法であって、
少なくとも位置指令及び位置フィードバックを取得するデータ取得ステップと、
前記位置指令と前記位置フィードバックの差分である位置偏差に基づいて、前記位置制御を行う際の摩擦モデルの係数を推定する補正トルク推定ステップと、を備える
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置及び制御方法に関し、特に摩擦モデルの係数を同定することができる制御装置及び制御方法に関する。
【背景技術】
【０００２】
工作機械、射出成形機、レーザ加工機、放電加工機、産業用ロボット等を含む産業用機械（以下、単に機械という）の制御においては、駆動機構に働く摩擦力を補償することにより、精密な制御性能を得ることができる。
【０００３】
図１１は、工作機械の駆動機構の一例である。サーボモータが駆動して、軸受により支持されたボールねじが回転することにより、ステージが移動する。このとき、例えば軸受とボールねじとの間、ボールねじとステージとの間には摩擦力が働く。つまりステージの挙動は摩擦力の影響を受ける。
【０００４】
図１２は、摩擦力と駆動機構の挙動との典型的な関係を示すグラフである。静止状態（速度＝０）から運動状態へ、又は運動状態から静止状態への移行時には、摩擦力の変化は非線形となる。これをストライベック効果という。ストライベック効果により、機械には位置決め時間が長くなったり、反転時の軌跡誤差（象限突起）が発生する。
【０００５】
このような非線形な摩擦の補償を考慮する際に有効な摩擦モデルとして、Ｌｕｇｒｅモデルが知られている。Ｌｕｇｒｅモデルにより、非線形な摩擦効果を抑えるための補正値（補正トルク）を求めることができる。図１３に示すように、上記補正値を電流指令に加算することによって非線形な摩擦力が補償され、制御対象を精密に制御することができる。この補正処理は公知のフィードバック制御のなかで実施することが可能である。機械の制御装置は、位置指令と位置フィードバックとの偏差、及び速度指令と速度フィードバックとの偏差に基づいて電流指令を決定する。このとき制御装置は、Ｌｕｇｒｅモデルにより求められる補正トルクを電流指令に加算する。
【０００６】
Ｌｕｇｒｅモデルを数１に示す。ＦはＬｕｇｒｅモデルの出力となる補正トルクである。ｖ，ｚは速度及び位置に関係する変数である。Ｆｃ，Ｆｓ，ｖ０，σ０，σ１，σ２は駆動機構に特有の係数である。
【０００７】
【数１】
2019185742.tif 000003
【０００８】
関連技術として、特許文献１には、摩擦モデルから補正データが得られることが開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−２３４３２７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、Ｌｕｇｒｅモデルをはじめとする摩擦モデルの係数は機械や使用環境等により個々に異なるため、制御対象毎に個別に係数を同定しなければならなかった。また同定すべき係数の数が多いため、係数の同定作業に多くの手数を要していた。よって摩擦モデルの係数を手間なく同定できる手段が求められている。
【００１１】
そこで、摩擦モデルの係数を同定することができる制御装置及び制御方法が望まれている。
【課題を解決するための手段】
【００１２】
本発明の一態様は、機械の１以上の軸について、摩擦を考慮した位置制御を行う制御装置であって、少なくとも位置指令及び位置フィードバックを取得するデータ取得部と、前記位置指令と前記位置フィードバックの差分である位置偏差に基づいて、前記位置制御を行う際の摩擦モデルの係数を推定する補正トルク推定部と、を備える制御装置である。
【００１３】
本発明の他の態様は、機械の１以上の軸について、摩擦を考慮した位置制御を行う制御方法であって、少なくとも位置指令及び位置フィードバックを取得するデータ取得ステップと、前記位置指令と前記位置フィードバックの差分である位置偏差に基づいて、前記位置制御を行う際の摩擦モデルの係数を推定する補正トルク推定ステップと、を備える制御方法である。
【発明の効果】
【００１４】
本発明により、摩擦モデルの係数を同定することができる制御装置及び制御方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態の制御装置１の概略的なハードウェア構成図である。
【図２】第１の実施形態の制御装置１の概略的な機能ブロック図である。
【図３】第２，３の実施形態の制御装置１の概略的なハードウェア構成図である。
【図４】第２の実施形態の制御装置１の概略的な機能ブロック図である。
【図５】第２の実施形態における学習部８３の機能ブロック図である。
【図６】強化学習の一形態を示すフローチャートである。
【図７Ａ】ニューロンを説明する図である。
【図７Ｂ】ニューラルネットワークを説明する図である。
【図８】第３の実施形態の制御装置１と機械学習装置１００の概略的な機能ブロック図である。
【図９】制御装置１を組み込んだシステムの一形態を示す概略的な機能ブロック図である。
【図１０】機械学習装置１２０（又は１００）を組み込んだシステムの他の形態を示す概略的な機能ブロック図である。
【図１１】工作機械の駆動機構の一例を示す図である。
【図１２】摩擦力と駆動機構の挙動との関係を示すグラフである。
【図１３】摩擦モデルを利用した非線形摩擦力の補正方法の一例を示す図である。
【図１４】摩擦モデルを利用した非線形摩擦力の補正方法の他の例を示す図である。
【図１５】摩擦モデルを利用した非線形摩擦力の補正方法の他の例を示す図である。
【発明を実施するための形態】
【００１６】
図１は、本発明の第１の実施形態による制御装置１と、制御装置１によって制御される産業用機械の要部とを示す概略的なハードウェア構成図である。制御装置１は、工作機械をはじめとする機械を制御する制御装置である。制御装置１は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４、インタフェース１８、バス２０、軸制御回路３０、サーボアンプ４０を有する。制御装置１には、サーボモータ５０、操作盤６０が接続される。
【００１７】
ＣＰＵ１１は、制御装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステム・プログラムをバス２０を介して読み出し、システム・プログラムに従って制御装置１全体を制御する。
【００１８】
ＲＯＭ１２は、機械の各種制御等を実行するためのシステム・プログラム（後述する機械学習装置１００とのやりとりを制御するための通信プログラムを含む）を予め格納している。
【００１９】
ＲＡＭ１３は、一時的な計算データや表示データ、後述する操作盤６０を介してオペレータが入力したデータ等を一時的に格納する。
【００２０】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされており、制御装置１の電源が遮断されても記憶状態を保持する。不揮発性メモリ１４は、操作盤６０から入力されるデータや、図示しないインタフェースを介して入力された機械の制御用のプログラムやデータ等を格納する。不揮発性メモリ１４に記憶されたプログラムやデータは、実行時及び利用時にはＲＡＭ１３に展開されても良い。
【００２１】
軸制御回路３０は、機械が備える動作軸を制御する。軸制御回路３０は、ＣＰＵ１１が出力する軸の移動指令量を受けて、軸の移動指令をサーボアンプ４０に出力する。このとき軸制御回路３０は、後述のフィードバック制御を行うほか、ＣＰＵ１１がＬｕｇｒｅモデル等に基づき出力する補正トルクにより非線形摩擦力の補正を行う。あるいは、軸制御回路３０がＬｕｇｒｅモデル等に基づき計算した補正トルクにより非線形摩擦力の補正を行っても良い。ＣＰＵ１１で補正を行うより、軸制御回路３０の中で補正を行う方が一般に高速である。
【００２２】
サーボアンプ４０は、軸制御回路３０が出力する軸の移動指令を受けて、サーボモータ５０を駆動する。
【００２３】
サーボモータ５０は、サーボアンプ４０により駆動されて機械が備える軸を移動させる。サーボモータ５０は、典型的には位置・速度検出器を内蔵する。あるいは内蔵せずに機械側に位置検出器を設ける場合もある。位置・速度検出器は位置・速度フィードバック信号を出力し、この信号が軸制御回路３０にフィードバックされることで、位置・速度のフィードバック制御が行われる。
【００２４】
なお、図１では軸制御回路３０、サーボアンプ４０、サーボモータ５０は１つずつしか示されていないが、実際には制御対象となる機械に備えられた軸の数だけ用意される。例えば、６軸を備えた機械を制御する場合、それぞれの軸に対応する軸制御回路３０、サーボアンプ４０、サーボモータ５０が合計６セット用意される。
【００２５】
操作盤６０は、ハードウェアキー等を備えたデータ入力装置である。その中には教示操作盤と呼ばれる、ディスプレイやハードウェアキー等を備えた手動データ入力装置もある。教示操作盤は、インタフェース１８を介してＣＰＵ１１から受けた情報をディスプレイに表示する。操作盤６０は、ハードウェアキー等から入力されたパルス、指令、データ等をインタフェース１８を介してＣＰＵ１１に渡す。
【００２６】
図２は、第１の実施形態における制御装置１の概略的な機能ブロック図である。図２に示した各機能ブロックは、図１に示した制御装置１が備えるＣＰＵ１１が、システム・プログラムを実行し、制御装置１の各部の動作を制御することにより実現される。
【００２７】
本実施形態の制御装置１は、データ取得部７０、及び補正トルク推定部８０を備える。補正トルク推定部８０は、最適化部８１及び補正トルク算出部８２を備える。また、不揮発性メモリ１４上には、データ取得部７０が取得したデータが記憶される取得データ記憶部７１が設けられている。
【００２８】
データ取得部７０は、ＣＰＵ１１、サーボモータ５０、及び機械等から各種データを取得する機能手段である。データ取得部７０は、例えば、位置指令、位置フィードバック、速度指令、及び速度フィードバックを取得し、取得データ記憶部７１に記憶する。
【００２９】
補正トルク推定部８０は、取得データ記憶部７１に記憶されているデータに基づいて、摩擦モデル（典型的にはＬｕｇｒｅモデル）における最適な係数（ＬｕｇｒｅモデルであればＦｃ，Ｆｓ，ｖ０，σ０，σ１，σ２）を推定する機能手段である。本実施の形態では、最適化部８１が、例えば位置指令と位置フィードバックとの偏差を最小化する最適化問題を解くことで、摩擦モデルの係数を推定する。典型的には、係数の組み合わせを網羅的に探索するグリッドサーチ、係数の組み合わせをランダムに試行するランダムサーチ、確率分布と獲得関数に基づいて最適な係数の組み合わせを探索するベイズ最適化等の手法により、位置指令と位置フィードバックとの偏差が最小となる係数の組み合わせを推定することができる。すなわち、最適化部８１は、係数の組み合わせを様々に変更しつつ機械を動作させ、位置指令と位置フィードバックとの偏差を評価するサイクルを繰り返すことで、偏差が最小となる係数の組み合わせを発見する。
【００３０】
補正トルク算出部８２は、最適化部８１が推定した結果（摩擦モデルの係数の最適な組み合わせ）を使用し、摩擦モデルに基づく補正トルクを算出、出力する。制御装置１は、補正トルク算出部８２が出力した補正トルクを電流指令に加算する。
【００３１】
本実施の形態によれば、最適化部８１が最適化問題を解くことによって摩擦モデルの係数を同定するので、様々な機械や使用環境等に応じた最適な係数も容易に求めることができるようになる。
【００３２】
図３は、第２及び第３の実施形態における、機械学習装置１００を備えた制御装置１の概略的なハードウェアブロック図である。本実施形態の制御装置１は、機械学習装置１００にかかる構成を備えている点を除いて第１の実施形態と同様の構成をしている。本実施形態の制御装置１が備えるＲＯＭ１２には、機械学習装置１００とのやりとりを制御するための通信プログラム等を含むシステム・プログラムが予め書き込まれている。
【００３３】
インタフェース２１は、制御装置１と機械学習装置１００とを接続するためのインタフェースである。機械学習装置１００は、プロセッサ１０１、ＲＯＭ１０２、ＲＡＭ１０３、不揮発性メモリ１０４を有する。
【００３４】
プロセッサ１０１は、機械学習装置１００全体を統御する。ＲＯＭ１０２は、システム・プログラム等を格納する。ＲＡＭ１０３は、機械学習に係る各処理における一時的な記憶を行う。不揮発性メモリ１０４は、学習モデル等を格納する。
【００３５】
機械学習装置１００は、制御装置１が取得可能な各種情報（位置指令、速度指令、位置フィードバック等）をインタフェース２１を介して観測する。機械学習装置１００は、サーボモータ５０を精密制御するための摩擦モデル（典型的にはＬｕｇｒｅモデル）の係数を機械学習により学習及び推定し、補正トルクをインタフェース２１を介して制御装置１に出力する。
【００３６】
図４は、第２の実施形態による制御装置１と機械学習装置１００の概略的な機能ブロック図である。図４に示される制御装置１は、機械学習装置１００が学習を行う場合に必要とされる構成を備えている（学習モード）。図４に示した各機能ブロックは、図３に示した制御装置１が備えるＣＰＵ１１、及び機械学習装置１００のプロセッサ１０１が、それぞれのシステム・プログラムを実行し、制御装置１及び機械学習装置１００の各部の動作を制御することにより実現される。
【００３７】
本実施形態の制御装置１は、データ取得部７０、及び機械学習装置１００上に構成された補正トルク推定部８０を備える。補正トルク推定部８０は、学習部８３を備える。また、不揮発性メモリ１４上には、データ取得部７０が取得したデータが記憶される取得データ記憶部７１が設けられており、機械学習装置１００の不揮発性メモリ１０４上には、学習部８３による機械学習により構築された学習モデルを記憶する学習モデル記憶部８４が設けられている。
【００３８】
本実施形態におけるデータ取得部７０の動作は、第１の実施形態と同様である。データ取得部７０は、例えば、位置指令、位置フィードバック、速度指令、及び速度フィードバックを取得し、取得データ記憶部７１に記憶する。また、データ取得部７０は、制御装置１が現在非線形摩擦の補正に使用しているＬｕｇｒｅモデルの係数のセット（Ｆｃ，Ｆｓ，ｖ０，σ０，σ１，σ２）を取得し、取得データ記憶部７１に記憶する。
【００３９】
前処理部９０は、データ取得部７０が取得したデータに基づいて、機械学習装置１００による機械学習に用いられる学習データを作成する。前処理部９０は、各データを機械学習装置１００において扱われる統一的な形式へと変換（数値化、サンプリング等）した学習データを作成する。前処理部９０は、機械学習装置１００が教師なし学習をする場合においては、該学習における所定の形式の状態データＳを学習データとして作成し、機械学習装置１００が教師あり学習をする場合においては、該学習における所定の形式の状態データＳ及びラベルデータＬの組を学習データとして作成し、機械学習装置１００が強化学習をする場合においては、該学習における所定の形式の状態データＳ及び判定データＤの組を学習データとして作成する。
【００４０】
学習部８３は、前処理部９０が作成した学習データを用いた機械学習を行う。学習部８３は、教師なし学習、教師あり学習、強化学習等の公知の機械学習の手法により学習モデルを生成し、生成した学習モデルを学習モデル記憶部８４に記憶する。学習部８３が行う教師なし学習の手法としては、例えばａｕｔｏｅｎｃｏｄｅｒ法、ｋ−ｍｅａｎｓ法等が、教師あり学習の手法としては、例えばｍｕｌｔｉｌａｙｅｒ  ｐｅｒｃｅｐｔｒｏｎ法、ｒｅｃｕｒｒｅｎｔ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ法、Ｌｏｎｇ  Ｓｈｏｒｔ−Ｔｅｒｍ  Ｍｅｍｏｒｙ法、ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ法等が、強化学習の手法としては、例えばＱ学習等が挙げられる。
【００４１】
図５は、学習手法の一例として強化学習を実行する学習部８３の内部機能構成を示す。強化学習は、学習対象が存在する環境の現在状態（つまり入力）を観測するとともに現在状態で所定の行動（つまり出力）を実行し、その行動に対し何らかの報酬を与えるというサイクルを試行錯誤的に反復して、報酬の総計が最大化されるような方策（本実施形態ではＬｕｇｒｅモデルの係数の設定）を最適解として学習する手法である。
【００４２】
学習部８３は、状態観測部８３１、判定データ取得部８３２、強化学習部８３３を有する。図５に示した各機能ブロックは、図３に示した制御装置１が備えるＣＰＵ１１、及び機械学習装置１００のプロセッサ１０１が、それぞれのシステム・プログラムを実行し、制御装置１及び機械学習装置１００の各部の動作を制御することにより実現される。
【００４３】
状態観測部８３１は、環境の現在状態を表す状態変数Ｓを観測する。状態変数Ｓは、例えば現在のＬｕｇｕｒｅモデルの係数Ｓ１、現在の位置指令Ｓ２、現在の速度指令Ｓ３、前サイクルにおける位置フィードバックＳ４を含む。
【００４４】
状態観測部８３１は、Ｌｕｇｒｅモデルの係数Ｓ１として、制御装置１が現在非線形摩擦の補正に使用しているＬｕｇｒｅモデルの係数のセット（Ｆｃ，Ｆｓ，ｖ０，σ０，σ１，σ２）を取得する。
【００４５】
状態観測部８３１は、現在の位置指令Ｓ２及び速度指令Ｓ３として、制御装置１が現在出力している位置指令及び速度指令を取得する。
【００４６】
状態観測部８３１は、位置フィードバックＳ４として、制御装置１が１サイクル前に取得した位置フィードバック（現在の位置指令及び速度指令を生成するためにフィードバック制御において使用されたもの）を取得する。
【００４７】
判定データ取得部８３２は、状態変数Ｓの下で機械の制御を行った場合における結果を示す指標である判定データＤを取得する。判定データＤは、位置フィードバックＤ１を含む。
【００４８】
判定データ取得部８３２は、位置フィードバックＤ１として、Ｌｕｇｒｅモデルの係数Ｓ１、位置指令Ｓ２及び速度指令Ｓ３に基づいて機械を制御した結果として得られる位置フィードバックを取得する。
【００４９】
強化学習部８３３は、状態変数Ｓと判定データＤとを用いて、Ｌｕｇｒｅモデルの係数Ｓ１と、位置指令Ｓ２、速度指令Ｓ３及び位置フィードバックＳ４との相関関係を学習する。すなわち強化学習部８３３は、状態変数Ｓの構成要素Ｓ１，Ｓ２，Ｓ３，Ｓ４の相関性を示すモデル構造を生成する。強化学習部８３３は、報酬計算部８３４、価値関数更新部８３５を有する。
【００５０】
報酬計算部８３４は、状態変数Ｓに基づいてＬｕｇｒｅモデルの係数が設定された場合における位置制御の結果（状態変数Ｓが取得された次の学習周期で用いられる判定データＤに相当）に関連する報酬Ｒを求める。
【００５１】
価値関数更新部８３５は、報酬Ｒを用いて、Ｌｕｇｒｅモデルの係数の価値を表す関数Ｑを更新する。価値関数更新部８３５が関数Ｑの更新を繰り返すことにより、強化学習部８３３は、Ｌｕｇｒｅモデルの係数Ｓ１と、位置指令Ｓ２、速度指令Ｓ３及び位置フィードバックＳ４と、の相関関係を学習する。
【００５２】
強化学習部８３３が実行する強化学習のアルゴリズムの一例を説明する。この例によるアルゴリズムは、Ｑ学習（Ｑ−ｌｅａｒｎｉｎｇ）として知られるものであって、行動主体の状態ｓと、その状態ｓで行動主体が選択し得る行動ａとを独立変数として、状態ｓで行動ａを選択した場合の行動の価値を表す関数Ｑ（ｓ，ａ）を学習する手法である。状態ｓで価値関数Ｑが最も高くなる行動ａを選択することが最適解となる。状態ｓと行動ａとの相関性が未知の状態でＱ学習を開始し、任意の状態ｓで種々の行動ａを選択する試行錯誤を繰り返すことで、価値関数Ｑを反復して更新し、最適解に近付ける。ここで、状態ｓで行動ａを選択した結果として環境（つまり状態ｓ）が変化したときに、その変化に応じた報酬（つまり行動ａの重み付け）ｒが得られるように構成し、より高い報酬ｒが得られる行動ａを選択するように学習を誘導することで、価値関数Ｑを比較的短時間で最適解に近付けることができる。
【００５３】
価値関数Ｑの更新式は、一般に下記の数２式のように表すことができる。数２式において、ｓt及びａtはそれぞれ時刻ｔにおける状態及び行動であり、行動ａtにより状態はｓt+1に変化する。ｒt+1は、状態がｓtからｓt+1に変化したことで得られる報酬である。ｍａｘＱの項は、時刻ｔ＋１で最大の価値Ｑになる（と時刻ｔで考えられている）行動ａを行ったときのＱを意味する。α及びγはそれぞれ学習係数及び割引率であり、０＜α≦１、０＜γ≦１で任意設定される。
【００５４】
【数２】
2019185742.tif 000004
【００５５】
強化学習部８３３がＱ学習を実行する場合、状態観測部８３１が観測した状態変数Ｓ及び判定データ取得部８３２が取得した判定データＤは、更新式の状態ｓに該当し、現在状態すなわち位置指令Ｓ２、速度指令Ｓ３及び位置フィードバックＳ４に対し、Ｌｕｇｒｅモデルの係数Ｓ１をどのように決定するべきかという行動は、更新式の行動ａに該当し、報酬計算部８３４が求める報酬Ｒは、更新式の報酬ｒに該当する。よって価値関数更新部８３５は、現在状態に対するＬｕｇｒｅモデルの係数の価値を表す関数Ｑを、報酬Ｒを用いたＱ学習により繰り返し更新する。
【００５６】
報酬計算部８３４は、例えば、決定したＬｕｇｒｅモデルの係数Ｓ１に基づく機械制御を行い、位置制御の結果が「適」と判定される場合に、報酬Ｒを正（プラス）の値とすることができる。一方、位置制御の結果が「否」と判定される場合に、報酬Ｒを負（マイナス）の値とすることができる。正負の報酬Ｒの絶対値は、互いに同一であっても良いし異なっていても良い。
【００５７】
位置制御の結果が「適」である場合とは、例えば位置フィードバックＤ１と位置指令Ｓ２との差が所定のしきい値以内である場合等である。位置制御の結果が「否」である場合とは、例えば位置フィードバックＤ１と位置指令Ｓ２との差が所定のしきい値を超える場合等である。すなわち位置指令Ｓ２に対し、位置制御が所定の基準以上に正確に実現されていれば「適」となり、そうでなければ「否」となる。
【００５８】
位置制御の結果を、「適」及び「否」の二通りだけでなく複数段階に設定することができる。例えば、報酬計算部８３４は、位置フィードバックＤ１と位置指令Ｓ２との差が小さくなるほど報酬が大きくなるよう、段階的な報酬を設定することができる。
【００５９】
価値関数更新部８３５は、状態変数Ｓと判定データＤと報酬Ｒとを、関数Ｑで表される行動価値（例えば数値）と関連付けて整理した行動価値テーブルを持つことができる。この場合、価値関数更新部８３５が関数Ｑを更新するという行為は、価値関数更新部８３５が行動価値テーブルを更新するという行為と同義である。Ｑ学習の開始時には、Ｌｕｇｒｅモデルの係数Ｓ１と、位置指令Ｓ２、速度指令Ｓ３及び位置フィードバックＳ４との相関関係は未知であるから、行動価値テーブルにおいては、種々の状態変数Ｓと判定データＤと報酬Ｒとが、無作為に定めた行動価値の値（関数Ｑ）と関連付けた形態で用意されている。報酬計算部８３４は、判定データＤが分かればこれ対応する報酬Ｒを直ちに算出でき、算出した値Ｒが行動価値テーブルに書き込まれる。
【００６０】
位置制御の結果に応じた報酬Ｒを用いてＱ学習を進めると、より高い報酬Ｒが得られる行動を選択する方向へ学習が誘導され、選択した行動を現在状態で実行した結果として変化する環境の状態（つまり状態変数Ｓ及び判定データＤ）に応じて、現在状態で行う行動についての行動価値の値（関数Ｑ）が書き換えられて行動価値テーブルが更新される。この更新を繰り返すことにより、行動価値テーブルに表示される行動価値の値（関数Ｑ）は、適正な行動ほど大きな値となるように書き換えられる。このようにして、未知であった環境の現在状態すなわち位置指令Ｓ２、速度指令Ｓ３及び位置フィードバックＳ４と、それに対する行動すなわち設定されるＬｕｇｒｅモデルの係数Ｓ１と、の相関性が徐々に明らかになる。つまり行動価値テーブルの更新により、Ｌｕｇｒｅモデルの係数Ｓ１と、位置指令Ｓ２、速度指令Ｓ３及び位置フィードバックＳ４と、の相関関係が徐々に最適解に近づけられる。
【００６１】
図６を参照して、強化学習部８３３が実行するＱ学習のフロー（つまり機械学習方法の一形態）をさらに説明する。
ステップＳＡ０１：価値関数更新部８３５は、その時点での行動価値テーブルを参照しながら、状態観測部８３１が観測した状態変数Ｓが示す現在状態で行う行動として、Ｌｕｇｒｅモデルの係数Ｓ１を無作為に選択する。
ステップＳＡ０２：価値関数更新部８３５は、状態観測部８３１が観測している現在状態の状態変数Ｓを取り込む。
ステップＳＡ０３：価値関数更新部８３５は、判定データ取得部８３２が取得している現在状態の判定データＤを取り込む。
ステップＳＡ０４：価値関数更新部８３５は、判定データＤに基づき、Ｌｕｇｒｅモデルの係数Ｓ１が適当であったか否かを判断する。適当であった場合、ステップＳＡ０５に遷移する。適当でなかった場合、ステップＳＡ０７に遷移する。
ステップＳＡ０５：価値関数更新部８３５は、報酬計算部８３４が求めた正の報酬Ｒを関数Ｑの更新式に適用する。
ステップＳＡ０６：価値関数更新部８３５は、現在状態における状態変数Ｓ及び判定データＤと報酬Ｒと行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。
ステップＳＡ０７：価値関数更新部８３５は、報酬計算部８３４が求めた負の報酬Ｒを関数Ｑの更新式に適用する。
【００６２】
強化学習部８３３は、ステップＳＡ０１乃至ＳＡ０７を繰り返すことで行動価値テーブルを反復して更新し、学習を進行させる。なお、ステップＳＡ０４からステップＳＡ０７までの報酬Ｒを求める処理及び価値関数の更新処理は、判定データＤに含まれるそれぞれのデータについて実行される。
【００６３】
強化学習を進める際に、例えばＱ学習の代わりに、ニューラルネットワークを用いることができる。図７Ａは、ニューロンのモデルを模式的に示す。図７Ｂは、図７Ａに示すニューロンを組み合わせて構成した三層のニューラルネットワークのモデルを模式的に示す。ニューラルネットワークは、例えば、ニューロンのモデルを模した演算装置や記憶装置等によって構成できる。
【００６４】
図７Ａに示すニューロンは、複数の入力ｘ（ここでは一例として、入力ｘ1〜入力ｘ3）に対する結果ｙを出力するものである。各入力ｘ1〜ｘ3には、この入力ｘに対応する重みｗ（ｗ1〜ｗ3）が掛けられる。これにより、ニューロンは、次の数３式により表現される出力ｙを出力する。なお、数３式において、入力ｘ、出力ｙ及び重みｗは、すべてベクトルである。また、θはバイアスであり、ｆkは活性化関数である。
【００６５】
【数３】
2019185742.tif 000005
【００６６】
図７Ｂに示す三層のニューラルネットワークは、左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。図示の例では、入力ｘ１、ｘ２、ｘ３のそれぞれに対応の重み（総称してＷ１で表す）が乗算されて、個々の入力ｘ１、ｘ２、ｘ３がいずれも３つのニューロンＮ１１、Ｎ１２、Ｎ１３に入力されている。
【００６７】
図７Ｂでは、ニューロンＮ１１〜Ｎ１３の各々の出力を、総称してｚ１で表す。ｚ１は、入カベクトルの特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ１のそれぞれに対応の重み（総称してＷ２で表す）が乗算されて、個々の特徴ベクトルｚ１がいずれも２つのニューロンＮ２１、Ｎ２２に入力されている。特徴ベクトルｚ１は、重みＷ１と重みＷ２との間の特徴を表す。
【００６８】
図７Ｂでは、ニューロンＮ２１〜Ｎ２２の各々の出力を、総称してｚ２で表す。ｚ２は、特徴ベクトルｚ１の特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ２のそれぞれに対応の重み（総称してＷ３で表す）が乗算されて、個々の特徴ベクトルｚ２がいずれも３つのニューロンＮ３１、Ｎ３２、Ｎ３３に入力されている。特徴ベクトルｚ２は、重みＷ２と重みＷ３との間の特徴を表す。最後にニューロンＮ３１〜Ｎ３３は、それぞれ結果ｙ１〜ｙ３を出力する。
なお、三層以上の層を為すニューラルネットワークを用いた、いわゆるディープラーニングの手法を用いることも可能である。
【００６９】
このような学習サイクルを繰り返すことにより、強化学習部８３３は、Ｌｕｇｒｅモデルの係数Ｓ１と、位置指令Ｓ２、速度指令Ｓ３及び位置フィードバックＳ４との相関関係を暗示する特徴を自動的に識別することができるようになる。学習アルゴリズムの開始時には、Ｌｕｇｒｅモデルの係数Ｓ１と、位置指令Ｓ２、速度指令Ｓ３及び位置フィードバックＳ４との相関関係は実質的に未知であるが、強化学習部８３３は学習を進めるに従い徐々に特徴を識別して相関性を解釈する。Ｌｕｇｒｅモデルの係数Ｓ１と、位置指令Ｓ２、速度指令Ｓ３及び位置フィードバックＳ４との相関関係がある程度信頼できる水準まで解釈されると、強化学習部８３３が反復出力する学習結果は、現在状態すなわち位置指令Ｓ２、速度指令Ｓ３及び位置フィードバックＳ４に対して、どのようなＬｕｇｒｅモデルの係数Ｓ１を設定すべきかという行動の選択（意思決定）を行うために使用できるものとなる。このようにして強化学習部８３３は、現在状態に対応する行動の最適解を出力できる学習モデルを生成する。
【００７０】
図８は、第３の実施形態による制御装置１と機械学習装置１００の概略的な機能ブロック図である。本実施形態の制御装置１は、機械学習装置１００が推定を行う場合に必要とされる構成を備えている（推定モード）。図８に示した各機能ブロックは、図３に示した制御装置１が備えるＣＰＵ１１、及び機械学習装置１００のプロセッサ１０１が、それぞれのシステム・プログラムを実行し、制御装置１及び機械学習装置１００の各部の動作を制御することにより実現される。
【００７１】
本実施形態の制御装置１は、第２の実施形態と同様に、データ取得部７０、及び機械学習装置１００上に構成された補正トルク推定部８０を備える。補正トルク推定部８０は、推定部８５、及び補正トルク算出部８２を備える。また、不揮発性メモリ１４上には、データ取得部７０が取得したデータが記憶される取得データ記憶部７１が設けられており、機械学習装置１００の不揮発性メモリ１０４上には、学習部８３による機械学習により構築された学習モデルを記憶する学習モデル記憶部８４が設けられている。
【００７２】
本実施形態によるデータ取得部７０、及び前処理部９０の動作は、第２の実施形態と同様である。データ取得部７０が取得したデータは、前処理部９０により、機械学習装置１００において扱われる統一的な形式へと変換（数値化、サンプリング等）されて、状態データＳが生成される。前処理部９０が作成した状態データＳは、機械学習装置１００による推定に用いられる。
【００７３】
推定部８５は、前処理部９０が作成した状態データＳに基づいて、学習モデル記憶部８４に記憶された学習モデルを用い、Ｌｕｇｒｅモデルの係数Ｓ１の推定を行う。本実施形態の推定部８５は、学習部８３により生成された（パラメータが決定された）学習モデルに対して、前処理部９０から入力された状態データＳを入力することで、Ｌｕｇｒｅモデルの係数Ｓ１を推定して出力する。
【００７４】
補正トルク算出部８２は、推定部８５が推定した結果（摩擦モデルの係数の組み合わせＳ１）を使用し、摩擦モデルに基づく補正トルクを算出、出力する。制御装置１は、補正トルク算出部８２が出力した補正トルクを電流指令に加算する。
【００７５】
実施の形態２及び３によれば、機械学習装置１００が、Ｌｕｇｒｅモデルの係数Ｓ１と、位置指令Ｓ２、速度指令Ｓ３及び位置フィードバックＳ４との相関関係を示す学習モデルを生成し、当該学習モデルを利用することにより摩擦モデルの係数を推定するので、様々な機械や使用環境等に応じた最適な係数も容易に求めることができるようになる。
【００７６】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【００７７】
例えば、上記した実施形態では制御装置１と機械学習装置１００が異なるＣＰＵ（プロセッサ）を有する装置として説明しているが、機械学習装置１００は制御装置１が備えるＣＰＵ１１と、ＲＯＭ１２に記憶されるシステム・プログラムにより実現するようにしても良い。
【００７８】
また、機械学習装置１００の変形例として、学習部８３は、同種の複数の機械のそれぞれについて得られた状態変数Ｓ及び判定データＤを用いて、それら機械に共通する適切なＬｕｇｒｅモデルの係数を学習することができる。この構成によれば、一定時間で得られる状態変数Ｓと判定データＤとを含むデータ集合の量を増加させ、より多様なデータ集合を入力できるので、学習の速度や信頼性を向上させることができる。また、こうして得られた学習モデルを初期値として使用し、機械ごとに追加学習を行なうことで、Ｌｕｇｒｅモデルを個々の機械にさらに最適化することもできる。
【００７９】
図９は、制御装置１に複数の機械を加えたシステム１７０を示す。システム１７０は、複数の機械１６０及び機械１６０’を有する。全ての機械１６０と機械１６０’は、有線又は無線のネットワーク１７２により互いに接続される。
【００８０】
機械１６０及び機械１６０’は同種の機構を有する。一方、機械１６０は制御装置１を備えるが、機械１６０’は制御装置１を備えない。
【００８１】
制御装置１を備えるほうの機械１６０では、推定部８５が、学習部８３の学習結果である学習モデルを用いて、位置指令Ｓ２、速度指令Ｓ３及び位置フィードバックＳ４に対応するＬｕｇｒｅモデルの係数Ｓ１を推定することができる。また、少なくとも１つの機械１６０の制御装置１が、他の複数の機械１６０及び機械１６０’のそれぞれについて得られた状態変数Ｓ及び判定データＤを利用し、全ての機械１６０及び機械１６０’に共通する位置制御を学習し、その学習結果を全ての機械１６０及び機械１６０’が共有するように構成できる。システム１７０によれば、より多様なデータ集合（状態変数Ｓ及び判定データＤを含む）を入力として、位置制御の学習の速度や信頼性を向上させることができる。
【００８２】
図１０は、複数の機械１６０’を備えたシステム１７０’を示す。システム１７０’は、同一の機械構成を有する複数の機械１６０’と、制御装置１から独立した機械学習装置１２０（又は制御装置１に含まれる機械学習装置１００）と、を有する。複数の機械１６０’と機械学習装置１２０（又は機械学習装置１００）とは、有線又は無線のネットワーク１７２により互いに接続される。
【００８３】
機械学習装置１２０（又は機械学習装置１００）は、複数の機械１６０’のそれぞれについて得られた状態変数Ｓ及び判定データＤに基づき、全ての機械１６０’に共通するＬｕｇｒｅモデルの係数Ｓ１を学習する。機械学習装置１２０（又は機械学習装置１００）は、その学習結果を用いて、位置指令Ｓ２、速度指令Ｓ３及び位置フィードバックＳ４に対応するＬｕｇｒｅモデルの係数Ｓ１を推定することができる。
【００８４】
この構成によれば、複数の機械１６０’のそれぞれが存在する場所や時期に関わらず、必要なときに必要な数の機械１６０’を機械学習装置１２０（又は機械学習装置１００）に接続することができる。
【００８５】
上記した実施形態では、制御装置１や機械学習装置１００（又は機械学習装置１２０）はローカルに設置された１つの情報処理装置であるものと想定しているが、本発明はこれに限定されるものではなく、例えば制御装置１や機械学習装置１００（又は機械学習装置１２０）は、クラウドコンピューティング、フォグコンピューティング、エッジコンピューティング等と称される情報処理環境に実装されても良い。
【００８６】
また、上述の実施の形態では摩擦モデルとして代表的なＬｕｇｒｅモデルにおいて係数を決定する手法を示したが、本発明はこれに限定されるものでなく、Ｓｅｖｅｎ  ｐａｒａｍｅｔｅｒ  ｍｏｄｅｌ，  Ｓｔａｔｅ  ｖａｒｉａｂｌｅ  ｍｏｄｅｌ，  Ｋａｒｎｏｐｐ  ｍｏｄｅｌ，ＬｕＧｒｅ  ｍｏｄｅｌ，  Ｍｏｄｉｆｉｅｄ  Ｄａｈｌ  ｍｏｄｅｌ，  Ｍ２  ｍｏｄｅｌ等の種々の摩擦モデルの係数の決定に適用することが可能である。
【００８７】
また、上述の実施の形態では、機械として主に加工機械を例示したが、本発明はこれに限定されるものでなく、摩擦が問題になるような駆動機構、典型的には位置決め機構を有する種々の機械（例えば医療ロボット、災害ロボット、建設ロボット等）に適用可能である。
【００８８】
また、上述の実施の形態は、図１３に示す制御系に基づいて摩擦モデルの係数を求めるものであったが、本発明はこれに限定されず、これを変形した種々の制御系にも適用可能である。例えば図１４に示すように、速度指令に代えて、位置指令の微分であるｓ＝速度指令相当が摩擦モデルに入力される制御系を用いても良い。この場合、機械学習装置１００の状態観測部８３１は、速度指令に代えて、速度指令相当のｓを観測する。この構成によれば、位置指令だけで補正トルクを計算できるので、制御装置１側だけで補正トルクの計算を完結できるという利点がある。
【００８９】
又は、図１５に示すように、位置指令及び速度指令の代わりに、位置フィードバック及び速度フィードバックを摩擦モデルに入力する制御系を用いても良い。この場合、機械学習装置１００の状態観測部８３１は、位置指令でなく位置フィードバックを、速度指令でなく速度フィードバックを観測する。この構成は軸制御回路３０側で実現しやすい。高速な処理が可能であり、フィードバックを使用するため実摩擦力を推定しやすい。
【符号の説明】
【００９０】
１  制御装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１８，１９，２１，２２  インタフェース
２０  バス
３０  軸制御回路
４０  サーボアンプ
５０  サーボモータ
６０  操作盤
７０  データ取得部
７１  取得データ記憶部
８０  補正トルク推定部
８１  最適化部
８２  補正トルク算出部
８３  学習部
８３１  状態観測部
８３２  判定データ取得部
８３３  強化学習部
８３４  報酬計算部
８３５  価値関数更新部
８４  学習モデル記憶部
８５  推定部
１００  機械学習装置（制御装置１に含まれる）
１０１  プロセッサ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  不揮発性メモリ
１２０  機械学習装置（制御装置１から独立）
１６０，１６０’  機械
１７０，１７０’  システム
１７２  ネットワーク
【図１】
2019185742.tif 000006
【図２】
2019185742.tif 000007
【図３】
2019185742.tif 000008
【図４】
2019185742.tif 000009
【図５】
2019185742.tif 000010
【図６】
2019185742.tif 000011
【図７Ａ】
2019185742.tif 000012
【図７Ｂ】
2019185742.tif 000013
【図８】
2019185742.tif 000014
【図９】
2019185742.tif 000015
【図１０】
2019185742.tif 000016
【図１１】
2019185742.tif 000017
【図１２】
2019185742.tif 000018
【図１３】
2019185742.tif 000019
【図１４】
2019185742.tif 000020
【図１５】
2019185742.tif 000021