(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-17
(45)【発行日】2024-06-25
(54)【発明の名称】モータ制御装置
(51)【国際特許分類】
G05D 3/12 20060101AFI20240618BHJP
G05B 13/02 20060101ALI20240618BHJP
G05B 13/04 20060101ALI20240618BHJP
G05B 19/404 20060101ALI20240618BHJP
G05B 19/4155 20060101ALI20240618BHJP
【FI】
G05D3/12 305L
G05B13/02 L
G05B13/04
G05B19/404 G
G05B19/4155 V
(21)【出願番号】P 2020202880
(22)【出願日】2020-12-07
【審査請求日】2023-03-10
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(73)【特許権者】
【識別番号】301021533
【氏名又は名称】国立研究開発法人産業技術総合研究所
(74)【代理人】
【識別番号】100118762
【氏名又は名称】高村 順
(72)【発明者】
【氏名】河田 武之
(72)【発明者】
【氏名】木村 将哉
(72)【発明者】
【氏名】池田 英俊
(72)【発明者】
【氏名】増井 秀之
(72)【発明者】
【氏名】丸田 潤
(72)【発明者】
【氏名】中根 滉稀
(72)【発明者】
【氏名】藤井 夏樹
(72)【発明者】
【氏名】梶田 秀司
(72)【発明者】
【氏名】赤穂 昭太郎
(72)【発明者】
【氏名】麻生 英樹
【審査官】松本 泰典
(56)【参考文献】
【文献】特開2019-185742(JP,A)
【文献】国際公開第2014/122822(WO,A1)
【文献】特開平7-93158(JP,A)
【文献】特開2017-10436(JP,A)
【文献】国際公開第2020/213062(WO,A1)
【文献】特表2014-512529(JP,A)
【文献】特許第6695534(JP,B1)
【文献】特開2018-153901(JP,A)
【文献】特開2020-35159(JP,A)
【文献】特許第6664561(JP,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 13/02
G05B 19/4155
G05B 19/404
G05D 3/12
(57)【特許請求の範囲】
【請求項1】
位置指令に基づいてモータを駆動し、前記モータに機械的に接続された制御対象が移動する軌跡を制御する軌跡制御を繰り返し実行するモータ制御装置であって、
前記位置指令と前記モータの位置とに基づくフィードバック制御によって前記モータのトルクの指令である第1トルク指令を算出するフィードバック制御部と、
パラメータの個数が可変の摩擦モデルによって、摩擦を考慮した前記第1トルク指令に対する補正である摩擦補償トルクを出力として算出する摩擦補償トルク算出部と、
前記第1トルク指令と前記摩擦補償トルクとを加算して第2トルク指令を算出する加算器と、
前記第2トルク指令に追従するように前記モータに電流を与える電流制御部と、
前記摩擦補償トルクを用いた前記軌跡制御の実行中に
サンプリングした前記モータまたは前記制御対象の動作を含む状態に関するデータである対象状態データと、摩擦トルクを包含して観測されるデータである摩擦トルク包含データと、を含む軌跡制御データを保持するデータ保持部と、
前記軌跡制御の実行中にサンプリングした前記軌跡制御データに基づいて、
前記対象状態データと前記摩擦補償トルクとの関係を学習した結果であり、使用する学習データである前記軌跡制御データによってパラメータの数が変化する関数である前記摩擦モデルを更新し、前記摩擦モデルの
前記パラメータの数を決定する学習部と、
を備えることを特徴とするモータ制御装置。
【請求項2】
前記データ保持部は、前記軌跡制御データの分布および前記摩擦補償トルクの推定誤差のうち少なくとも一方に基づいて、前記軌跡制御データの取捨選択を行うことを特徴とする請求項1に記載のモータ制御装置。
【請求項3】
前記データ保持部は、保持されている複数の前記軌跡制御データを代表する補助入力データを生成し、保持されている複数の前記軌跡制御データを前記補助入力データで置き換えることを特徴とする請求項1に記載のモータ制御装置。
【請求項4】
前記学習部は、前記補助入力データおよび前記軌跡制御データのうち少なくともいずれか一方に基づいて前記摩擦モデルを更新することを特徴とする請求項3に記載のモータ制御装置。
【請求項5】
前記モータは、第1方向と、前記第1方向とは逆方向の第2方向と、の間で回転方向を切り替え可能であり、
前記データ保持部は、前記第1方向および前記第2方向の間で回転方向が切り替わる前と後とにおける前記軌跡制御データを保持することを特徴とする請求項1から4のいずれか1つに記載のモータ制御装置。
【請求項6】
前記摩擦補償トルク算出部は、前記摩擦モデルに基づき、前記対象状態データを入力として前記摩擦補償トルクを算出することを特徴とする請求項1から5のいずれか1つに記載のモータ制御装置。
【請求項7】
前記データ保持部は、前記モータの速度および前記位置指令に基づいた前記モータの速度の予測値であるモデル速度のいずれか一方を含む前記軌跡制御データを保持することを特徴とする請求項6に記載のモータ制御装置。
【請求項8】
前記摩擦モデルは、前記モータの速度および前記位置指令に基づいた前記モータの速度の予測値であるモデル速度のいずれか一方を入力として前記摩擦補償トルクを出力として算出することを特徴とする請求項6に記載のモータ制御装置。
【請求項9】
前記データ保持部は、前記モータの加速度を含む前記軌跡制御データを保持し、
前記摩擦モデルは、前記位置指令に基づいた前記モータの加速度の予測値であるモデル加速度を入力として前記摩擦補償トルクを出力として算出することを特徴とする請求項6に記載のモータ制御装置。
【請求項10】
前記データ保持部で保持される前記軌跡制御データおよび前記補助入力データの種類の選択を行う特徴量選択部をさらに備え、
前記学習部は、前記摩擦モデルの各入力の寄与率または出力の精度を示す評価値を前記特徴量選択部に出力し、
前記特徴量選択部は、前記評価値に応じて前記軌跡制御データおよび前記補助入力データの種類の選択を行うことを特徴とする請求項3または4に記載のモータ制御装置。
【請求項11】
前記摩擦モデルは、決定木またはガウス過程回帰によって表現されることを特徴とする請求項1から10のいずれか1つに記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御対象について軌跡制御を行うモータ制御装置に関する。
【背景技術】
【0002】
工作機械およびロボットをはじめとする機械を駆動するモータ制御装置では、機械を指令通りに駆動するために軌跡制御が行われる。軌跡制御を行う際には機械に加わる摩擦力の影響により生じる軌跡誤差をいかに補償するかが課題となる。そこで、機械に加わる摩擦力を模する摩擦モデルを用いて計算された、摩擦力と相殺するようなトルクを、モータのトルク指令に印加することで摩擦力の影響を低減する補償方法が知られている。
【0003】
このとき、摩擦モデルが精確であればあるほど摩擦力の影響を低減した高精度な軌跡制御が可能となる。最も単純な摩擦モデルは、モータ速度と摩擦とが比例関係となるような線形の摩擦モデルであるが、これでは摩擦力の高精度な模擬が困難な場合がある。例えば実機においては機械とモータとがボールねじまたは減速機といった機械要素部品を介して接続されている。これらの機械要素部品のもつ軸受および潤滑油の影響は、摩擦においてモータ速度に対する非線形な成分として表れる。このような非線形性を持つ摩擦をモデル化するために、複数のパラメータを持つ関数として摩擦モデルを定義し、これらのパラメータを実機のデータに基づいて同定する技術が知られている。
【0004】
例えば、特許文献1には、ストライベック効果をはじめとする非線形な摩擦を推定可能な摩擦モデルに対し、位置指令と位置フィードバックとの差分である位置偏差の最小化を目的とした最適化手法または機械学習手法を用いることで、摩擦モデルが持つパラメータを推定する技術が開示されている。すなわち、特許文献1では、ストライベック曲線を用いた非線形な摩擦モデルに基づいて摩擦補償が行われる。この摩擦モデルはパラメトリックな摩擦モデルとして定義されており、このパラメータを実機のデータに基づいて同定することで摩擦モデルが得られる。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1で摩擦補償に用いられる摩擦モデルは、いくつかの曲線式を組合せたパラメトリックモデルで定義される。つまり、これらの摩擦モデルによって表現できる摩擦の自由度は、予め定められたパラメータの数に限られることとなる。しかしながら、実機の摩擦の特性は機械の個体差にも依存して千差万別である。このため、予め定められたパラメータの数の自由度しか有していないような摩擦モデルでは、複雑な摩擦特性を表現することができず、機械ごとに異なる摩擦を高精度に表現することは難しい。このため、特許文献1に記載の技術を用いて摩擦補償を実施しても摩擦を相殺することができず軌跡誤差を生じてしまうという問題があった。
【0007】
また、特許文献1に記載の技術では、パラメトリックな非線形の摩擦モデルのパラメータを最適化計算によって同定する必要があるため、非線形最適化問題の求解を行う必要がある。このためには、実機データに基づいて数値的な繰り返し計算を行わざるを得ず、膨大な計算時間が要求され、摩擦モデルを効率的に得ることができない。つまり、従来の技術では、摩擦特性を高精度に模擬する摩擦モデルを効率的に得ることができない、すなわち軌跡制御を高精度化するための調整を効率良く行うことができないという問題があった。
【0008】
本開示は、上記に鑑みてなされたものであって、軌跡制御を高精度化するための摩擦補償の調整を従来に比して効率的に行うことができるモータ制御装置を得ることを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するために、本開示に係るモータ制御装置は、位置指令に基づいてモータを駆動し、モータに機械的に接続された制御対象が移動する軌跡を制御する軌跡制御を繰り返し実行するモータ制御装置であって、フィードバック制御部と、摩擦補償トルク算出部と、加算器と、電流制御部と、データ保持部と、学習部と、を備える。フィードバック制御部は、位置指令とモータの位置とに基づくフィードバック制御によってモータのトルクの指令である第1トルク指令を算出する。摩擦補償トルク算出部は、パラメータの個数が可変の摩擦モデルによって、摩擦を考慮した第1トルク指令に対する補正である摩擦補償トルクを出力として算出する。加算器は、第1トルク指令と摩擦補償トルクとを加算して第2トルク指令を算出する。電流制御部は、第2トルク指令に追従するようにモータに電流を与える。データ保持部は、摩擦補償トルクを用いた軌跡制御の実行中にサンプリングしたモータまたは制御対象の動作を含む状態に関するデータである対象状態データと、摩擦トルクを包含して観測されるデータである摩擦トルク包含データと、を含む軌跡制御データを保持する。学習部は、軌跡制御の実行中にサンプリングした軌跡制御データに基づいて、対象状態データと摩擦補償トルクとの関係を学習した結果であり、使用する学習データである軌跡制御データによってパラメータの数が変化する関数である摩擦モデルを更新し、摩擦モデルのパラメータの数を決定する。
【発明の効果】
【0010】
本開示によれば、軌跡制御を高精度化するための摩擦補償の調整を従来に比して効率的に行うことができるという効果を奏する。
【図面の簡単な説明】
【0011】
【
図1】実施の形態1によるモータ制御装置の構成の一例を模式的に示すブロック図
【
図2】実施の形態1によるモータ制御装置が制御するモータと駆動対象である対象機械の一例を模式的に示す斜視図
【
図3】決定木で表現された摩擦モデルの一例を示す図
【
図4】実施の形態1によるモータ制御装置の構成の他の例を模式的に示すブロック図
【
図5】実施の形態1によるモータ制御装置の特徴量学習部で軌跡制御データの次元圧縮に用いるオートエンコーダの一例を示す図
【
図6】実施の形態1によるモータ制御装置の構成の他の例を模式的に示すブロック図
【
図7】実施の形態2による学習部の出力として得られる、ガウス過程回帰で表現された摩擦モデルの一例を示す図
【
図8】実施の形態2によるモータ制御装置の構成の一例を模式的に示すブロック図
【
図9】k-means法で求めた代表点の一例を示す図
【発明を実施するための形態】
【0012】
以下に、本開示の実施の形態に係るモータ制御装置を図面に基づいて詳細に説明する。
【0013】
実施の形態1.
図1は、実施の形態1によるモータ制御装置の構成の一例を模式的に示すブロック図である。モータ制御装置10は、制御対象の機械である対象機械30を駆動するモータ20に接続され、モータ20を制御する。モータ20は、対象機械30に機械的に接続される。これによって、対象機械30は、モータ制御装置10によるモータ20の制御によって動作する。
【0014】
図2は、実施の形態1によるモータ制御装置が制御するモータと駆動対象である対象機械の一例を模式的に示す斜視図である。ここでは、対象機械30が、ボールねじ装置である場合を例に挙げる。ボールねじ装置は、ボールねじ31と、テーブル32と、カップリング33と、を有する。
【0015】
モータ20は、カップリング33を介してボールねじ31に接続される。ボールねじ31は、モータ20の回転運動を直動運動に変換する。ボールねじ31にはテーブル32が備え付けられており、テーブル32は、直動運動をする。モータ20は、第1方向と、第1方向とは逆方向の第2方向と、の間で回転方向を切り換え可能である。モータ20は、位置検出器21を有する。位置検出器21は、モータ20の位置を検出し、モータ20の位置をモータ制御装置10に出力する。以下では、モータ20の位置は、モータ位置と称される。
【0016】
実施の形態1では、対象機械30がボールねじ装置である場合を例示したが、これに限定されない。つまり、モータ制御装置10は、ガイド機構をはじめとする機械要素部品以外にも、モータ20によって駆動される対象機械30について広く適用される。対象機械30の例としては、さらに、垂直多関節ロボット、NC(Numerical Control)、工作機械、実装機などを挙げることができる。
【0017】
図1に戻り、モータ制御装置10は、モデル速度算出部1と、フィードバック制御部2と、摩擦補償トルク算出部3と、加算器4と、電流制御部5と、データ保持部6と、学習部7と、を備える。
【0018】
モデル速度算出部1は、位置指令を入力としてモデル速度を出力とする。位置指令は、コントローラ、NC装置などの指令値生成装置から入力される。モデル速度は、モータ20の目標速度を示す値として、位置指令を時間微分してフィルタを適用することで得られるものとする。この微分処理は、離散時間系においては差分処理に置き換えられ、現在のモータ指令と1サンプル前のモータ指令との差を制御処理周期で除した値が、近似的な微分値として使用される。また、位置指令はモータ20の回転位置の目標値とするが、単位換算をすることによってテーブル32の並進位置の目標値を位置指令としてもよい。
【0019】
フィードバック制御部2は、位置指令およびモータ位置を受け取り、第1トルク指令を出力する。モータ位置は、モータ20の位置検出器21から入力される。フィードバック制御部2は、位置指令とモータ位置との偏差である位置偏差を小さくするように、比例制御または積分制御の位置制御処理を行い、位置偏差を小さくするような第1トルク指令を出力する。ここで、モータ位置は、テーブル32の位置を直接リニアスケールなどのセンサで読み取った値であってもよい。なお、フィードバック制御部2は、モータ位置を位置指令に追従させるものであれば、どのようなものであってもよい。例えば、2自由度制御を行うような構成としてもよい。
【0020】
摩擦補償トルク算出部3は、モデル速度算出部1からモデル速度を受け取り、学習部7から摩擦モデルを受け取り、摩擦補償トルクを出力する。摩擦補償トルクは、モデル速度を入力として与えた際の摩擦モデルの出力値である。摩擦モデルは、関数のパラメータ個数が学習データによって変化するノンパラメトリックな関数である。すなわち、摩擦モデルは、パラメータの個数が可変である。摩擦補償トルクは、軌跡誤差の原因となる摩擦外乱の影響を小さくするように、摩擦トルクをフィードフォワードで補償する。なお、ここではモデル速度を入力としているが、モータ位置から得られるモータ速度を代表として、位置、速度または加速度に関する任意のデータを用いることができる。ただし、モデル速度を摩擦モデルの入力として用いることで、外乱に影響されにくくすることができる。このようなノンパラメトリックな関数として、例えば、決定木による表現が挙げられる。
【0021】
図3は、決定木で表現された摩擦モデルの一例を示す図である。決定木は、TrueまたはFalseで分岐する条件式で構成された階層的な木構造を学習しており、ある入力に対する出力の予測は、入力の値に基づいてノードをたどり、この入力が属する葉の中にある訓練データの平均値となる。
図3では、親ノードから分岐される2つの子ノードのうち、左側の子ノードがTrueである場合を示し、右側の子ノードがFalseである場合を示している。実際に、
図3に示される摩擦モデルでは、摩擦補償トルク算出部3は、モデル速度とパラメータである学習済みの閾値とを含む条件式によってノードをたどり、葉の中にある訓練データについて、この摩擦トルクの平均値を摩擦補償トルクとして出力する。なお、摩擦モデルにおけるそれぞれのノード分岐に用いる条件式で、
図3では入力がモデル速度とされているが、モデル速度に限定されるものではなく、後述の学習部7で摩擦モデルの学習時に用いたモータ速度を代表として、位置、速度または加速度に関する任意のデータを用いることができる。また、決定木を複数含むランダムフォレストまたは勾配ブースティング決定木をはじめとするアンサンブル法を摩擦モデルに用いる場合には、これらの決定木の結果を平均した値が摩擦補償トルクとして出力され、パラメータ数は木全てに含まれる閾値の数となる。
【0022】
図1に戻り、加算器4は、第1トルク指令と摩擦補償トルクとの和を計算し、計算した結果を第2トルク指令として出力する。
【0023】
電流制御部5は、モータトルクが第2トルク指令に追従するように、モータ20に電流を供給する。
【0024】
データ保持部6は、モータ20の位置検出器21で検出されたモータ位置とモータ20に供給される電流の値である電流値とを受け取り、軌跡制御データおよび補助入力データを出力する。この例では、軌跡制御データは、モータ位置を微分したモータ速度と、トルク情報である電流値と、を含むデータセットである。データ保持部6は、制御周期毎に取得されるモータ位置および電流値に対し、軌跡制御データのサンプリングと保持とを行う。データ保持部6は、モータ速度の正負の符号が切り替わる前と後とにおける軌跡制御データが含まれるように軌跡制御データをサンプリングする。すなわち、データ保持部6は、第1方向および第2方向の間で回転方向が切り替わる前と後とにおける軌跡制御データをサンプリングし、保持する。また、モータ速度の代わりにモデル速度を軌跡制御データとしてもよく、外乱の影響が無視できる環境では、摩擦補償トルク算出部3で算出される摩擦補償トルクの精度が改善する場合がある。
【0025】
補助入力データは、保持されている軌跡制御データを代表する部分データである。一例では、データ保持部6は、軌跡制御データをクラスタリングし、クラスタリングされた複数の軌跡制御データを代表する部分データを補助入力データとする。複数の軌跡制御データを補助入力データで置き換えることで、軌跡制御データの数を削減し、軌跡制御データを圧縮することができる。このように、複数の軌跡制御データを補助入力データに置き換えることにより、摩擦モデルの持つパラメータ数を低減し、摩擦補償トルクの学習と推論とが高速化され、摩擦補償の調整を効率化することができる。
【0026】
なお、軌跡制御データは、対象状態データと、摩擦トルク包含データと、を含むデータセットとすることができる。対象状態データは、モータ20または対象機械30である制御対象の動作を含む状態に関するデータである。対象状態データは、モータ20の動作を含む状態を予測するデータ、モータ20の動作の結果を含む状態を示すデータまたはモータ20によって駆動される対象機械30の動作の結果を含む状態を示すデータである。対象状態データの一例は、モータ速度、指令位置、モータ位置、モータ加速度、モデル速度、モデル加速度、センサから得られたテーブル位置、テーブル速度、テーブル加速度またはモータ温度であり、これらを1つ以上含むものである。ここで、モデル加速度は、位置指令に基づいたモータ20の加速度の予測値である。摩擦トルク包含データは、摩擦トルクを包含して観測されるデータである。摩擦トルク包含データの一例は、電流値、力またはトルクセンサから得られるトルクの値である。そのため、データ保持部6は、軌跡制御データとして、この例で使用されるモータ速度および電流値以外にも、上記した任意のデータをサンプリングおよび保持してもよい。そして、微分によって算出される軌跡制御データについては、微分処理の前または後にフィルタ処理を適用して得た値を用いてもよい。
【0027】
学習部7は、軌跡制御データおよび補助入力データの少なくとも一方を入力とし、摩擦トルクを教師あり学習でモデル化し、この結果を摩擦モデルとして出力する。ここで、摩擦トルクは、軌跡制御データの電流値を単位換算した実トルクから、モータ20に接続された負荷の慣性モーメントとモータ加速度との積で表される慣性トルクを減ずることで算出される。また、摩擦モデルの入力については、対象状態データとすることができる。つまり、摩擦モデルの入力については、軌跡制御データに含まれるモータ速度またはモデル速度を代表として、位置、速度または加速度に関する、データ保持部6で保持している任意の軌跡制御データまたは補助入力データの対象状態データを用いることができる。つまり、摩擦モデルは、対象状態データと摩擦補償トルクとの関係を表現したものである。そして、摩擦モデルの更新も任意のタイミングで行うことができる。また、学習部7は、軌跡制御データまたは補助入力データを用いた軌跡制御の実行中に、摩擦モデルを逐次更新することができる。学習部7は、摩擦モデルを更新することで、摩擦モデルのパラメータの数を決定する。このように摩擦モデルのパラメータおよびパラメータの数を動的に調整することができる。また、軌跡制御データを補助入力データに置き換えることにより、摩擦モデルの持つパラメータ数を低減し、摩擦補償トルクの学習と推論とを高速化することで、摩擦補償の調整を効率化することができる。
【0028】
学習部7は、決定木の学習において、次式(1)に示される目的関数IGを最大化するように、ノード分割を行う。
【0029】
【0030】
ここで、Dpは親データセットであり、fは特徴量数であり、Dleftは親ノードから見た左の子ノードであり、Drightは親ノードから見た右の子ノードである。また、Npは親ノードDpに含まれるデータ数であり、Nleftは左の子ノードDleftに含まれるデータ数であり、Nrightは右の子ノードDrightに含まれるデータ数であり、Iは不純度指標である。Iの不純度指標については、実施の形態1では摩擦トルクに対する回帰問題を扱うため、次式(2)に示される平均二乗誤差(Mean Squared Error)を用いることができる。
【0031】
【0032】
ここで、yiおよびyt(ハット)は、それぞれノードDtにおける各サンプルの値およびこれらの平均値であり、Ntは、ノードDtにおけるサンプル数である。すなわち、学習部7は、親ノードの分散から2つの子ノードの分散の和を引いた目的関数が最大となるように分岐を生成する。
【0033】
決定木は、使用する軌跡制御データまたは補助入力データの種類によって変化し、また使用する軌跡制御データまたは補助入力データによっても変化する。この結果、入力の判定に使用する閾値の数であるパラメータ数も変化することになる。
【0034】
なお、摩擦モデルには、決定木単体による表現のみならず、決定木を複数含むランダムフォレストまたは勾配ブースティング決定木をはじめとするアンサンブル法が用いられてもよい。また、学習部7は、構築過程で木の生成を早めに止める事前枝刈りと、木を構築後に情報の少ないノードを削除する事後枝刈りと、のどちらか、またはその両方を決定木に対して適用してもよい。
【0035】
以上のように、実施の形態1によるモータ制御装置10では、フィードバック制御部2は、位置指令とモータ位置とに基づくフィードバック制御によりモータ20のトルクの指令である第1トルク指令を算出する。摩擦補償トルク算出部3は、パラメータの個数が可変の摩擦モデルによって、摩擦を考慮した第1トルク指令に対する補正である摩擦補償トルクを出力として算出する。加算器4は、第1トルク指令と摩擦補償トルクとを加算して第2トルク指令を算出する。電流制御部5は、第2トルク指令に追従するようにモータ20に電流を与える。データ保持部6は、摩擦補償トルクを用いた軌跡制御の実行中におけるモータ速度またはモデル速度とトルク情報とを含む軌跡制御データを保持する。学習部7は、データ保持部6の軌跡制御データに基づいて、摩擦モデルを更新し、摩擦モデルのパラメータの数を決定する。
【0036】
これによって、摩擦補償トルクを用いた軌跡制御の実行中にサンプリングした軌跡制御データが摩擦モデルの構築に用いられる。この結果、位置指令の変更または経年劣化による制御対象の特性変化などに応じて、摩擦モデルのパラメータおよびパラメータ数を動的に調整することが可能となる。
【0037】
ボールねじ装置のような対象機械30にかかる摩擦は、一般的に、静止した物体の間にはたらくクーロン摩擦、および潤滑液が押し出される動きに対して働く粘性摩擦によって表される。クーロン摩擦と粘性摩擦とは、それぞれゼロ速度のモータ速度における一定閾値以下の駆動力との釣り合いと、モータ速度に対する比例関係と、で表現される。しかし、モータ速度の正負の符号が切り替わる前と後とにおいては、スティックスリップ現象に代表されるモータ速度以外の荷重条件などに依存する、非線形な摩擦が生ずることが知られている。
【0038】
そこで、対象機械30の軸の運動方向反転時に象限突起として生じる軌跡誤差について、摩擦トルクと相関を持つモータ加速度を軌跡制御データとして併用することで、摩擦外乱の影響を精度よく補償可能な摩擦モデルを学習することができる。ただし、モータ加速度は、摩擦トルクに対してゼロ速度近傍で多くの変曲点を持つ。このため、モータ速度とモータ加速度との2変数を入力に持つ多項式で摩擦モデルを表現しようとすると、式が複雑化して、摩擦モデルのパラメータ同定が困難なものとなる。しかし、実施の形態1では、摩擦モデルとして決定木を使用する。決定木では、これらモータ加速度を条件分岐式に用いることによって、容易に摩擦モデルの入力とすることが可能である。このように、摩擦モデルの入力としてモータ加速度を併用することで、より精度よく摩擦を補正することができる。
【0039】
上記した説明では、軌跡制御データの数、すなわちサンプル数については特に限定されていなかった。一例では、データ保持部6は、新たに取得された軌跡制御データと過去に取得されて保持されている軌跡制御データとの中から取捨選択をすることによって、保持される軌跡制御データの数を所定値に保つ機能を有していてもよい。ここで、軌跡制御データの数の取捨選択は、軌跡制御データの中から軌跡制御データの分布に基づいて行われてもよいし、学習部7で算出された摩擦トルクと摩擦補償トルクとの差である推定誤差に基づいて行われてもよい。このように、学習に使用する軌跡制御データを適切に選ぶことで、摩擦モデルの持つパラメータ数を低減し、摩擦補償トルクの学習と推論とを高速化することで、摩擦補償の調整が効率化できる。
【0040】
また、学習部7は、補助入力データを軌跡制御データと併用して、あるいは補助入力データのみを入力として、摩擦モデルを更新してもよい。そして、決定木では、データセットの分割前後で不純度指標の1つであるエントロピーの減少幅が最大となるように分割が行われる。このため、決定木では、親子ノード間のエントロピーの減少幅および決定木における根に近いノードの分岐条件式を参照することで、特徴量の重要度を算出することができるという特徴を備える。すなわち、軌跡制御データおよび補助入力データの種類のそれぞれに対して、摩擦補償トルクの推論精度に対する寄与率を算出することができる。この場合、補助入力データは、データ保持部6で保持されている軌跡制御データおよびこれらの寄与率を基に算出および選定される。参照された元の軌跡制御データをよりデータ数の少ない補助入力データで置き換えることで、摩擦モデルの持つパラメータ数を低減することができ、摩擦補償トルクの学習と推論とを高速化することができる。この結果、従来に比して、摩擦補償の調整の効率化が可能となる。
【0041】
ここで、補助入力データ生成時に参照される軌跡制御データについては、数および種類の組み合わせに限定はなく、位置、速度または加速度に関する任意の軌跡制御データを選択することができる。さらに、データ保持部6に保持されている軌跡制御データに既知のフィルタまたは関数を適用した出力を用いて、新たな補助入力データを生成してもよいし、あるいはARX(Auto-Regressive eXogenous input)モデルなどの自己回帰モデルの出力を用いて、新たな補助入力データを生成してもよい。この他に、主成分分析またはオートエンコーダをはじめとする特徴量を学習する学習器を用意しておき、学習器で得られた特徴量を新たな補助入力データの種類として利用することも有効である。
【0042】
図4は、実施の形態1によるモータ制御装置の構成の他の例を模式的に示すブロック図である。なお、
図1と同一の構成要素には同一の符号を付して、その説明を省略する。モータ制御装置10aは、
図1のモータ制御装置10の構成に、特徴量学習部8aをさらに備える。特徴量学習部8aは、軌跡制御データを入力とした教師なし学習を行い、データ保持部6における補助入力データを生成する。特徴量学習部8aは、生成した補助入力データをデータ保持部6に出力する。
【0043】
図5は、実施の形態1によるモータ制御装置の特徴量学習部で軌跡制御データの次元圧縮に用いるオートエンコーダの一例を示す図である。一例では、特徴量学習部8aは、軌跡制御データが多次元である場合に、軌跡制御データを圧縮して別の特徴量に次元を下げ、全部のサンプルについて変換する。具体的には、特徴量学習部8aは、
図5に示されるように、入力したデータの次元数を圧縮するエンコーダ210、およびそれらを復元して出力するデコーダ220を組み合わせたニューラルネットワーク200に対し、異なる種類の第1軌跡制御データおよび第2軌跡制御データを入出力の両方に設定して学習を行う。そして、エンコーダで生成された第3軌跡制御データからデコーダによって第1軌跡制御データおよび第2軌跡制御データを復元できる場合に、特徴量学習部8aは、第3軌跡制御データをデータ保持部6に補助入力データとして出力する。この場合、複数の種類の軌跡制御データが1つの補助入力データに置き換えられることになる。つまり、軌跡制御データの種類を削減することができる。
【0044】
一例では、特徴量学習部8aは、データ保持部6で保持される軌跡制御データの種類と異なる種類の軌跡制御データを補助入力データとしてデータ保持部6に出力する。特徴量学習部8aは、データ保持部6の軌跡制御データと補助入力データとを合わせて入力とした教師なし学習を行い、摩擦モデルの作成により有効な補助入力データを生成する。このとき、学習部7は、前回の摩擦モデルの推定で使用した軌跡制御データまたは補助入力データとは異なる軌跡制御データまたは補助入力データを使用して摩擦モデルを推定することもある。この結果、学習部7で生成される摩擦モデルは、前回の摩擦モデルとは異なる入力を有し、異なるパラメータ数を持つこともある。
【0045】
また、軌跡制御データの取捨選択について、寄与率の低い軌跡制御データをデータ保持部6から除外することによっても、摩擦モデルの持つパラメータ数を低減することができる。この場合には、摩擦補償トルクの推定精度を維持したまま、学習と推論とを高速化することが可能となる。したがって、学習時間が短時間化されることによって、従来に比して摩擦補償の調整が効率化される。
【0046】
データ保持部6から軌跡制御データを除外する際の基準については、除外候補の軌跡制御データそのものの寄与率だけでなく、その軌跡制御データが元となっている補助入力データの寄与率を用いてもよい。これによって、補助入力データの生成にも摩擦補償トルクの推定精度にも影響が小さい軌跡制御データのみを、効率的にデータ保持部6から削除することができる。
【0047】
図6は、実施の形態1によるモータ制御装置の構成の他の例を模式的に示すブロック図である。なお、
図1と同一の構成要素には同一の符号を付して、その説明を省略する。モータ制御装置10bは、
図1のモータ制御装置10の構成に、特徴量選択部8bをさらに備える。モータ制御装置10bの学習部7は、摩擦モデルの各入力の寄与率を示す評価値を特徴量選択部8bに出力する。特徴量選択部8bは、学習部7で算出された寄与率に応じて、データ保持部6における軌跡制御データおよび補助入力データの種類を取捨選択する。データ保持部6は、特徴量選択部8bでの取捨選択の結果にしたがって、軌跡制御データおよび補助入力データを学習部7に出力する。この評価値を学習部7で利用することで、摩擦モデルの学習に適切な軌跡制御データを選択することができる。
【0048】
一例として、第1軌跡制御データおよび第2軌跡制御データから、第1軌跡制御データおよび第2軌跡制御データを代表する第3軌跡制御データが出てきた場合で、第1軌跡制御データおよび第2軌跡制御データが摩擦の推定に寄与しない場合を考える。このような場合に、特徴量選択部8bは、第1軌跡制御データおよび第2軌跡制御データを削除し、第3軌跡制御データに対応する補助入力データを残すようにデータ保持部6に指示する。データ保持部6は、特徴量選択部8bからの指示に従って、第3軌跡制御データに対応する補助入力データを残し、第1軌跡制御データおよび第2軌跡制御データを削除する。これによって、データ保持部6が保持するデータ数を低減することができる。
【0049】
また、摩擦モデルの持つパラメータ数を低減するため、サンプリングする軌跡制御データを適切に選択することも重要である。そこで、対象機械30の繰り返し精度が高い場合には、既に保持されている軌跡制御データとの距離に応じたサンプリングをすることで、保持される軌跡制御データの数を所定値に保つことができる。さらに、特定の動作パターンで摩擦補償トルクの推定精度が要求される場合においては、その動作パターンに対応する軌跡制御データをより多く保持するように、予め軌跡制御データに応じたサンプリング確率を設定することが望ましい。すなわち、実施の形態1においては、モータ速度の正負の符号が切り替わる前と後とにおける軌跡制御データが多く含まれるようにサンプリングを行うことで、対象機械30の軸の運動方向反転時に象限突起として生じる軌跡誤差について、より精度よく補正することができる。また、ゼロ速度近傍の摩擦補償トルクの推定精度を保ちながら、摩擦モデルの学習および推論を高速化することが可能となる。したがって、学習時間が短時間化され、摩擦補償の調整が効率化される。
【0050】
また、前述の通り、摩擦モデルの更新は任意のタイミングで行ってよい。ただし、対象機械30の経年劣化による特性変化などを考慮すると、サーボ制御周期間隔で軌跡制御データのサンプリングを行い、逐次学習することが望ましい。決定木では、過学習を抑えるために、木の深さの制限をはじめとする事前枝刈りまたは決定木を複数用意するアンサンブル法を用いることが一般的である。実施の形態1の摩擦モデルの学習時においても、これらを適用することで学習データに対する依存度を減らし、位置指令または摩擦特性の変化に対する汎化が可能となる。逐次学習時においても、このような摩擦モデルに用いる木の数または木の深さといったハイパーパラメータを軌跡制御データおよび補助入力データの変更に合わせて調整してもよい。これによって、摩擦モデルの汎化性能を向上することができ、学習していない位置指令または突発的な摩擦特性の変化に対しても、推定精度の劣化を防ぐことが可能となる。
【0051】
このように、実施の形態1によるモータ制御装置10,10a,10bは、学習部7において、決定木により表現された高精度かつノンパラメトリックな摩擦モデルを学習し、摩擦補償トルク算出部3でこの摩擦モデルを用いて、摩擦補償トルクを算出する。この摩擦モデルの学習に用いる軌跡制御データは、データ保持部6において摩擦補償トルクを用いた軌跡制御の実行中にサンプリングされるため、位置指令または摩擦特性の変化に対して学習用の動作を別途行う必要がなく、摩擦モデルの調整にかかる時間を大幅に削減することができる。同様に、位置指令の変更または経年劣化による制御対象の特性変化などに応じて、軌跡制御データから摩擦モデルのパラメータおよびパラメータの数を動的に調整できるため、軌跡誤差が減少するように摩擦モデルを軌跡制御の実行中に逐次更新することが可能となる。したがって、実施の形態1によれば、軌跡制御を高精度化するための摩擦補償の調整を従来に比して効率的に行うことができるという効果が得られる。
【0052】
実施の形態2.
実施の形態1では、学習部7において、摩擦モデルが決定木により表現され、摩擦補償トルク算出部3において、摩擦モデルを用いて摩擦外乱のフィードフォワード補正を行うモータ制御装置10,10a,10bについての説明を行った。これに対して、実施の形態2によるモータ制御装置では、関数のパラメータの数が学習データによって変化するノンパラメトリックな摩擦モデルが、ガウス過程回帰によって表現される場合を示す。
【0053】
実施の形態2によるモータ制御装置は、実施の形態1の
図1と同様の構成を有するが、摩擦補償トルク算出部3および学習部7の機能が実施の形態1とは異なる。以下では、摩擦補償トルク算出部3および学習部7における実施の形態1との違いについて説明する。また、摩擦補償トルク算出部3および学習部7以外の構成については実施の形態1と同様であるので、説明を省略する。
【0054】
図7は、実施の形態2による学習部の出力として得られる、ガウス過程回帰で表現された摩擦モデルの一例を示す図である。
図7において、横軸は、速度を示し、縦軸は、摩擦を示している。実施の形態2の摩擦補償トルク算出部3において、ガウス過程回帰で表現された摩擦モデルは、データ保持部6で保持された軌跡制御データおよび補助入力データの少なくともいずれか一方に基づいて構成される関数である。このときガウス過程回帰で表現された摩擦モデルは、データ数と同数のパラメータを有するため、データ点数がパラメータ数となる。ガウス過程回帰で表現された摩擦モデルは、各データと入力のモータ速度との距離に応じて、摩擦補償トルクを出力する。
【0055】
このとき、摩擦補償トルクの予測分布についても、ガウス分布の分散として同時に算出される。ただし、ここで用いる距離はカーネル関数kによって算出され、具体的に、xnとxn’との2点間の距離は、一般的に次式(3)に示されるガウスカーネルを用いて表現される。なお、xnおよびxn’はベクトルである。
【0056】
【0057】
ここで、θ1およびθ2は学習部7で設定されるハイパーパラメータである。ただし、カーネル関数は、ガウスカーネルに限定されず、線形カーネル、指数カーネル、周期カーネル、またはMaternカーネルを用いてもよく、さらに、これらの和または積からなる組み合わせで構成されたカーネル関数を用いてもよい。同時に、観測された電流値および算出された摩擦トルクに観測ノイズが含まれているものと考え、観測ノイズの平均が0であり、分散がσ2である次式(4)に示されるガウス分布に従っているものとして、次式(5)に示されるようにカーネル関数kにノイズ項を追加したものを用いてもよい。
【0058】
【0059】
【0060】
ここで、デルタ関数δ(xn,xn’)は、同じ軌跡制御データおよび補助入力データの間で距離計算を行うn=n’のときに1を返し、それ以外は0を返す関数である。
【0061】
学習部7は、軌跡制御データおよび補助入力データの少なくともいずれか一方を入力とし、摩擦モデルのカーネル関数におけるハイパーパラメータを推定し、ハイパーパラメータ同定後の摩擦モデルを出力する。ここで、ハイパーパラメータは、軌跡制御データおよび補助入力データからなるXと、ハイパーパラメータをまとめたθ=(θ1,θ2,σ2)と、に対する摩擦トルクyの尤度関数p(y|X,θ)が最大となるように推定される。ここで、尤度関数が最大となるようなハイパーパラメータθの同定方法として、θ空間のグリッド探索もしくはMCMC(Markov Chain Monte Carlo methods)法を用いた探索手法、または最急降下法、共役勾配法もしくは準ニュートン法をはじめとする勾配法を用いることができる。なお、X,yおよびハイパーパラメータをまとめたθはベクトルである。
【0062】
このように、ガウス過程回帰を用いた摩擦モデルを用いることで、摩擦補償トルクの分散を同時に算出することができる。したがって、実施の形態1の
図5における摩擦モデルの入力の種類に対して算出される寄与率とは異なり、摩擦モデルの出力の精度を示す評価値である分散を基にデータ保持部6の軌跡制御データを取捨選択することによって、摩擦補償トルクの推定精度を維持したまま摩擦モデルの持つパラメータ数を低減し、学習および推論を高速化することが可能となる。つまり、学習時間が短時間化され、摩擦補償の調整が効率化される。
【0063】
図8は、実施の形態2によるモータ制御装置の構成の一例を模式的に示すブロック図である。なお、
図1および
図6と同一の構成要素には同一の符号を付して、その説明を省略する。実施の形態2のモータ制御装置10cでは、学習部7は、出力の精度を示す評価値である分散を特徴量選択部8cに出力する。また、特徴量選択部8cは、学習部7で算出された評価値である分散に応じて、データ保持部6における軌跡制御データおよび補助入力データの種類を取捨選択する。なお、特徴量選択部8cにおける軌跡制御データおよび補助入力データの種類の取捨選択の方法は、実施の形態1の
図6で説明したものと同様である。ただし、上記したように、寄与率ではなく、出力の分散を用いる点が
図6のモータ制御装置10bとは異なっている。この評価値を学習部7で利用することで、摩擦モデルの学習に適切な軌跡制御データを選択することができる。
【0064】
また、ガウス過程回帰を用いた摩擦モデルは、保持している軌跡制御データの構成する特徴量空間において、複数の軌跡制御データを代表する代表点を適切に配置することで、これらの代表点を補助入力データとして元の軌跡制御データを置き換えることができる。これによって、摩擦モデルのパラメータ数を低減でき、メモリ消費量と摩擦補償トルクの計算コストを低減することが可能となる。補助入力データとして、保持している軌跡制御データから無作為に一定割合を選び出した部分データを用いてもよく、その他には、k-means法をはじめとするクラスタリング手法で求めた代表点、または特徴量空間に格子点状に配置した代表点を用いてもよい。
【0065】
図9は、k-means法で求めた代表点の一例を示す図である。
図9において、横軸は、主成分分析で得られる特徴量である軌跡制御データの第1種類における規格化した値を示しており、縦軸は、主成分分析で得られる特徴量である軌跡制御データの第2種類における規格化した値を示している。
図9において、星印「*」が、軌跡制御データの第1種類および第2種類で表される座標上における軌跡制御データを示している。
図9には、k-means法でクラスタリングした結果が示されている。ここでは、軌跡制御データを6個のクラスタに分けることができ、それぞれのクラスタについて、クラスタに含まれる軌跡制御データを代表する点である補助入力データが丸印「○」で示されている。このように、各クラスタについて複数の軌跡制御データを1つの補助入力データで置き換えることができるので、データ数を削減することが可能となる。
【0066】
また、実施の形態1と同様に、データ保持部6において、すでに保持されている軌跡制御データとの距離などに応じたサンプリングをすることで、保持される軌跡制御データの数を所定値に保ち、学習部7における摩擦モデルの学習および推論を高速化することが可能となる。この結果、学習時間が短時間化され、摩擦補償の調整が効率化される。このとき、摩擦補償トルクの分散をサンプリングの基準として併用することで、摩擦補償トルクの推定精度向上に資する軌跡制御データをより効率的にサンプリングすることが可能となる。さらに、実施の形態1と同様に、摩擦モデルにおける入力は、モデル速度に限定されるものではなく、学習部7で摩擦モデルの学習時に用いたモータ速度を代表として、位置、速度または加速度に関する任意のデータを用いることができる。
【0067】
以上のように、実施の形態2によるモータ制御装置10cは、学習部7においてガウス過程回帰により表現された摩擦モデルを生成し、摩擦補償トルク算出部3においてガウス過程回帰により表現された摩擦モデルを用いて摩擦補償トルクを算出する。これによって、摩擦補償トルクの分散を利用したサンプリングの効率化、摩擦モデルの計算コストおよびメモリの削減を実現することができ、摩擦による軌跡誤差を高速かつ高精度に補償することができる。
【0068】
ここで、モータ制御装置10,10a,10b,10cのハードウェア構成について説明する。モータ制御装置10,10a,10b,10cの各部は回路により実現される。電流制御部5は、交流電力を直流電力に変換するコンバータ回路、または直流電力を所望の交流電力に変換するインバータ回路を備えることにより電流指令に追従するようにモータ20へ電流を供給する。モデル速度算出部1、フィードバック制御部2、摩擦補償トルク算出部3、データ保持部6、学習部7、特徴量学習部8aおよび特徴量選択部8b,8cは、処理回路により実現される。処理回路は、プロセッサを備える回路であってもよいし、専用ハードウェアであってもよい。
【0069】
処理回路がプロセッサを備える回路である場合、処理回路は例えプロセッサとメモリで構成される制御回路である。モデル速度算出部1、フィードバック制御部2、摩擦補償トルク算出部3、データ保持部6、学習部7、特徴量学習部8aおよび特徴量選択部8b,8cが制御回路によって実現される場合、プロセッサが、メモリに格納されたプログラムを読み出して実行することにより、これらが実現される。すなわち、モデル速度算出部1、フィードバック制御部2、摩擦補償トルク算出部3、データ保持部6、学習部7、特徴量学習部8aおよび特徴量選択部8b,8cが制御回路によって実現される場合、これらの機能は、ソフトウェアであるプログラムを用いて実現される。メモリはプロセッサの作業領域としても使用される。プロセッサは、CPU(Central Processing Unit)等である。メモリは、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等の不揮発性または揮発性の半導体メモリ、磁気ディスク等が該当する。
【0070】
モデル速度算出部1、フィードバック制御部2、摩擦補償トルク算出部3、データ保持部6、学習部7、特徴量学習部8aおよび特徴量選択部8b,8cが専用ハードウェアである場合、処理回路は、例えば、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)である。なお、モデル速度算出部1、フィードバック制御部2、摩擦補償トルク算出部3、データ保持部6、学習部7、特徴量学習部8aおよび特徴量選択部8b,8cは、プロセッサを備える処理回路および専用ハードウェアを組み合わせて実現されてもよい。モデル速度算出部1、フィードバック制御部2、摩擦補償トルク算出部3、データ保持部6、学習部7、特徴量学習部8aおよび特徴量選択部8b,8cは、複数の処理回路により実現されてもよい。
【0071】
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【0072】
1 モデル速度算出部、2 フィードバック制御部、3 摩擦補償トルク算出部、4 加算器、5 電流制御部、6 データ保持部、7 学習部、8a 特徴量学習部、8b,8c 特徴量選択部、10,10a,10b,10c モータ制御装置、20 モータ、21 位置検出器、30 対象機械、32 テーブル、33 カップリング。