JP7101091B2 - モータ制御装置のフィードフォワード制御器導出装置、モータ制御装置、制御装置、及びフィードフォワード制御器導出方法 - Google Patents

モータ制御装置のフィードフォワード制御器導出装置、モータ制御装置、制御装置、及びフィードフォワード制御器導出方法 Download PDF

Info

Publication number
JP7101091B2
JP7101091B2 JP2018175154A JP2018175154A JP7101091B2 JP 7101091 B2 JP7101091 B2 JP 7101091B2 JP 2018175154 A JP2018175154 A JP 2018175154A JP 2018175154 A JP2018175154 A JP 2018175154A JP 7101091 B2 JP7101091 B2 JP 7101091B2
Authority
JP
Japan
Prior art keywords
controller
control
feedforward
command
speed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018175154A
Other languages
English (en)
Other versions
JP2020046965A (ja
Inventor
亮太郎 恒木
聡史 猪飼
隆貴 下田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Fanuc Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fanuc Corp filed Critical Fanuc Corp
Priority to JP2018175154A priority Critical patent/JP7101091B2/ja
Publication of JP2020046965A publication Critical patent/JP2020046965A/ja
Application granted granted Critical
Publication of JP7101091B2 publication Critical patent/JP7101091B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Numerical Control (AREA)
  • Feedback Control In General (AREA)
  • Control Of Electric Motors In General (AREA)

Description

本発明は、モータ制御装置において、未知の制御対象の特性を同定し、それにより、速度フィードバック制御器に依存しない位置フィードフォワード制御器及び速度フィードフォワード制御器を導出するモータ制御装置のフィードフォワード制御器導出装置、モータ制御装置、制御装置、及びフィードフォワード制御器導出方法に関する。
フィードフォワード制御を用いたモータ制御装置は、例えば特許文献1、特許文献2に記載されている。
特許文献1には、位置指令値から速度指令のフィードフォワード項を計算して、位置制御器から出力される速度指令に加算する位置フィードフォワード制御器と、位置指令値からトルク指令のフィードフォワード項を計算して、速度制御器から出力されるトルク指令に加算する速度フィードフォワード制御器と、が記載されている。また特許文献1には、位置指令値とフィードバックされた位置検出値との差である位置偏差に基づいて位置フィードフォワード制御器のゲインを学習する学習制御器と、位置偏差又は、速度指令値とフィードバックされた速度検出値との差である速度偏差に基づいて速度フィードフォワード制御器のゲインを学習する学習制御器と、が記載されている。
特許文献2では、位置指令を微分し、位置のフィードフォワード制御量を求め、位置ループ制御で得られた制御量に上記フィードフォワード制御量を加算し速度指令とし、上記位置のフィードフォワード制御量を微分して得られる速度のフィードフォワード制御量を、速度ループ制御によって得られる値に加算して、トルク電流指令としている。その際、速度フィードフォワード係数α2は、J/kt(J:慣性モーメント、kt:トルク定数)に近い値として、位置フィードフォワード係数α1をモータの特性等に合わせて実験的に決められることが開示されている。
特開平2-085902号公報 特開平3-015911号公報
フィードフォワード制御を用いたモータ制御装置における位置フィードフォワード(FF)制御器、速度フィードフォワード(FF)制御器の調整に際して、理想的には(1)まず位置制御を無効にして、速度フィードフォワード(FF)制御器のみを速度偏差が0になるように調整した後に、(2)次に、位置偏差が0になるように位置フィードフォワード(FF)制御器のみを調整する、という順序で位置フィードフォワード(FF)制御器、速度フィードフォワード(FF)制御器を調整することが好ましい。しかしながら、(1)で仮に位置制御を無効にした場合、機械が危険な状態になるという問題があった。
このため、従来は、位置制御を有効にしながら同時に二つのフィードフォワード(FF)制御器を調整する必要があり、例えば、特許文献1においては、モータ制御装置は、位置フィードフォワード制御に対する学習を行う学習制御器と、速度フィードフォワード制御に対する学習を行う学習制御器とを用いて、位置フィードフォワード制御に対する学習と速度フィードフォワード制御に対する学習とを同時に行っている。また、特許文献2においても、位置フィードフォワード係数α1と速度フィードフォワード係数α2の調整を同時に行っている。
しかしながら、位置フィードフォワード制御に対する学習と速度フィードフォワード制御に対する学習とを同時に行うと、学習のための情報処理量が増大する。一方の学習制御器が位置偏差を低減すべく、位置偏差に基づいて速度指令に対するフィードフォワード項を変更しても、他方の学習制御器が位置偏差に基づいてトルク速度指令に対するフィードフォワード項を変更すると、その変更の影響を受けて位置偏差が変わる。このため、二つの学習制御器の学習が相互に干渉して、二つの学習制御器の学習のための情報処理量が増大する。
このように、従来は位置制御を有効にしながら同時に二つのフィードフォワード(FF)制御器を調整する必要があり、このため、調整には一定の試行錯誤を要するとともに、そのため高次の(パラメータの多い) フィードフォワード(FF)制御器を実現することも困難であった。
また、位置フィードフォワード(FF)制御器、速度フィードフォワード(FF)制御器は、フィードバック(FB)制御器に依存した形で調整されるので、例えば、フィードバック(FB)制御器のゲインを変えるとフィードフォワード(FF)制御器も再度調整しなければならないという問題があった。
本発明は、モータ制御装置において、未知の制御対象の特性を同定し、それにより、速度フィードバック制御器に依存しない位置フィードフォワード制御器及び速度フィードフォワード制御器を導出するモータ制御装置のフィードフォワード制御器導出装置、モータ制御装置、制御装置、及びフィードフォワード制御器導出方法を提供することを目的とする。
(1) 本発明に係るフィードフォワード制御器導出装置(例えば後述のフィードフォワード制御器導出装置200)は、工作機械、ロボット、産業機械のサーボモータ、スピンドルモータを制御するモータ制御装置(例えば後述のモータ制御装置100)のフィードフォワード制御器導出装置であって、前記モータ制御装置は、第1指令(例えば後述の位置指令値y)及び第1検出量(例えば後述の機械位置y)から第1制御量(例えば後述の速度指令値v)を作成する第1制御器(例えば後述の位置制御器103)と、前記第1指令から第1フィードフォワード制御量(例えば後述の位置フィードフォワード制御量)を作成する第1フィードフォワード制御器(例えば後述の位置フィードフォワード制御器109)と、前記第1指令から第2フィードフォワード制御量(例えば後述の速度フィードフォワード制御量)を作成する第2フィードフォワード制御器(例えば後述の速度フィードフォワード制御器110)と、前記第1制御量と前記第1フィードフォワード制御量とから作成される第2指令(例えば後述のフィードフォワード制御された速度指令値)に対して、前記第2指令及び第2検出量(例えば後述のモータ速度v)から第2制御量(例えば後述のトルク指令値T)を作成する第2制御器(例えば後述の速度制御器106)と、前記第2制御量及び前記第2フィードフォワード制御量から第3指令(フィードフォワード制御されたトルク指令値)を作成する第3加算部(例えば後述の加算器107)と、を備え、前記フィードフォワード制御器導出装置は、それぞれ異なる制御パラメータの適用された複数の前記第2制御器ごとに、前記第1指令と前記第1検出量の偏差に基づいて調整された、前記第2フィードフォワード制御器における制御パラメータを取得する第2制御パラメータ取得部(例えば後述の第2制御パラメータ取得部201)と、前記第2制御パラメータ取得部により取得した、複数の前記第2制御器ごとに調整された前記第2フィードフォワード制御器における制御パラメータに基づいて、制御対象の特性を同定する特性同定部(例えば後述の特性同定部202)と、前記特性同定部により同定された制御対象の特性に基づいて第1フィードフォワード制御器及び前記第2フィードフォワード制御器の制御パラメータを算出する制御パラメータ算出部(例えば後述の制御パラメータ算出部203)と、を備える。
(2) 本発明に係るフィードフォワード制御器導出装置(例えば後述のフィードフォワード制御器導出装置200A)は、工作機械、ロボット、産業機械のサーボモータ、スピンドルモータを制御するモータ制御装置(例えば後述のモータ制御装置100)のフィードフォワード制御器導出装置であって、前記モータ制御装置は、第1指令(例えば後述の位置指令値y)及び第1検出量(例えば後述の機械位置y)から第1制御量(例えば後述の速度指令値v)を作成する第1制御器(例えば後述の位置制御器103)と、前記第1指令から第1フィードフォワード制御量(例えば後述の位置フィードフォワード制御量)を作成する第1フィードフォワード制御器(例えば後述の位置フィードフォワード制御器109)と、前記第1指令から第2フィードフォワード制御量(例えば後述の速度フィードフォワード制御量)を作成する第2フィードフォワード制御器(例えば後述の速度フィードフォワード制御器110)と、前記第1制御量と前記第1フィードフォワード制御量とから作成される第2指令(例えば後述のフィードフォワード制御された速度指令値)に対して、前記第2指令及び第2検出量(例えば後述のモータ速度v)から第2制御量(例えば後述のトルク指令値T)を作成する第2制御器(例えば後述の速度制御器106)と、前記第2制御量及び前記第2フィードフォワード制御量から第3指令(フィードフォワード制御されたトルク指令値)を作成する第3加算部(例えば後述の加算器107)と、を備え、前記フィードフォワード制御器導出装置は、それぞれ異なる制御パラメータの適用された複数の前記第2制御器ごとに、前記第1指令と前記第1検出量の偏差に基づいて調整された、前記第1フィードフォワード制御器における制御パラメータを取得する第1制御パラメータ取得部(例えば後述の第1制御パラメータ取得部204)と、前記第1制御パラメータ取得部により取得した、複数の前記第2制御器ごとに調整された前記第1フィードフォワード制御器における制御パラメータに基づいて、制御対象の特性を同定する特性同定部(例えば後述の特性同定部202A)と、前記特性同定部により同定された制御対象の特性に基づいて第1フィードフォワード制御器及び前記第2フィードフォワード制御器の制御パラメータを算出する制御パラメータ算出部(例えば後述の制御パラメータ算出部203A)と、を備える。
(3) 上記(1)のフィードフォワード制御器導出装置において、前記第2制御パラメータ取得部は、さらに、機械学習器(例えば後述の機械学習器300)又は機械学習器と通信する通信部を備え、前記機械学習器は、それぞれ異なる制御パラメータの適用された複数の前記第2制御器ごとに、前記第1指令と前記第1検出量の偏差に基づいて調整された、前記第2フィードフォワード制御器における制御パラメータを学習するようにしてもよい。
(4) 上記(2)のフィードフォワード制御器導出装置において、前記第1制御パラメータ取得部は、さらに、機械学習器(例えば後述の機械学習装置300A)又は機械学習器と通信する通信部を備え、前記機械学習器は、それぞれ異なる制御パラメータの適用された複数の前記第2制御器ごとに、前記第1指令と前記第1検出量の偏差に基づいて調整された、前記第1フィードフォワード制御器における制御パラメータを学習してもよい。
(5) 上記(1)から(4)のいずれかのフィードフォワード制御器導出装置において、前記制御対象の特性は、サーボモータ、又はスピンドルモータの伝達特性(例えば後述の伝達関数P(s))と、工作機械、ロボット、又は産業機械の伝達特性(例えば後述の伝達関数P(s))と、を含み、前記第1指令は位置指令であり、前記第1検出量は、位置を検出する位置検出部(例えば後述の位置検出器154)により検出される位置であり、前記第2指令は速度指令であり、前記第2検出量は、速度を検出する速度検出部(例えば後述のロータリーエンコーダ151)により検出される速度であり、前記第3指令はトルク指令としてもよい。
(6) 本発明に係るモータ制御装置は、(1)から(5)の何れかのフィードフォワード制御器導出装置を備え、工作機械、ロボット、産業機械の軸を駆動するサーボモータ、スピンドルモータを制御するモータ制御装置である。
(7)本発明に係る制御装置(例えば後述の制御装置400)は、(1)から(5)の何れかのフィードフォワード制御器導出装置を備える制御装置である。
(8) 本発明に係るフィードフォワード制御器導出方法は、第1指令(例えば後述の位置指令値y)及び第1検出量(例えば後述の機械位置y)から第1制御量(例えば後述の速度指令値v)を作成する第1制御器(例えば後述の位置制御器103)と、前記第1指令から第1フィードフォワード制御量(例えば後述の位置フィードフォワード制御量)を作成する第1フィードフォワード制御器(例えば後述の位置フィードフォワード制御器109)と、前記第1指令から第2フィードフォワード制御量(例えば後述の速度フィードフォワード制御量)を作成する第2フィードフォワード制御器(例えば後述の速度フィードフォワード制御器110)と、前記第1制御量と前記第1フィードフォワード制御量とから作成される第2指令(例えば後述のフィードフォワード制御された速度指令値)に対して、前記第2指令及び第2検出量(例えば後述のモータ速度v)から第2制御量(例えば後述のトルク指令値T)を作成する第2制御器(例えば後述の速度制御器106)と、前記第2制御量及び前記第2フィードフォワード制御量から第3指令(フィードフォワード制御されたトルク指令値)を作成する第3加算部(例えば後述の加算器107)と、を備える、工作機械、ロボット、産業機械のサーボモータ、スピンドルモータを制御するモータ制御装置に対して、コンピュータによる前記モータ制御装置のフィードフォワード制御器導出方法であって、それぞれ異なる制御パラメータの適用された複数の前記第2制御器ごとに、前記第1指令と前記第1検出量の偏差に基づいて調整された、前記第2フィードフォワード制御器における制御パラメータを取得する第2制御パラメータ取得ステップと、前記第2制御パラメータ取得ステップにおいて取得した、複数の前記第2制御器ごとに調整された前記第2フィードフォワード制御器における制御パラメータに基づいて、制御対象の特性を同定する特性同定ステップと、前記特性同定ステップにおいて同定された制御対象の特性に基づいて第1フィードフォワード制御器(位置FF制御部)及び前記第2フィードフォワード制御器の制御パラメータを算出する制御パラメータ算出ステップと、を備える前記モータ制御装置のフィードフォワード制御器導出方法である。
(9) 本発明に係るフィードフォワード制御器導出方法は、第1指令(例えば後述の位置指令値y)及び第1検出量(例えば後述の機械位置y)から第1制御量(例えば後述の速度指令値v)を作成する第1制御器(例えば後述の位置制御器103)と、前記第1指令から第1フィードフォワード制御量(例えば後述の位置フィードフォワード制御量)を作成する第1フィードフォワード制御器(例えば後述の位置フィードフォワード制御器109)と、前記第1指令から第2フィードフォワード制御量(例えば後述の速度フィードフォワード制御量)を作成する第2フィードフォワード制御器(例えば後述の速度フィードフォワード制御器110)と、前記第1制御量と前記第1フィードフォワード制御量とから作成される第2指令(例えば後述のフィードフォワード制御された速度指令値)に対して、前記第2指令及び第2検出量(例えば後述のモータ速度v)から第2制御量(例えば後述のトルク指令値T)を作成する第2制御器(例えば後述の速度制御器106)と、前記第2制御量及び前記第2フィードフォワード制御量から第3指令(フィードフォワード制御されたトルク指令値)を作成する第3加算部(例えば後述の加算器107)と、を備える、工作機械、ロボット、産業機械のサーボモータ、スピンドルモータを制御するモータ制御装置に対して、コンピュータによる前記モータ制御装置のフィードフォワード制御器導出方法であって、それぞれ異なる制御パラメータの適用された複数の前記第2制御器ごとに、前記第1指令と前記第1検出量の偏差に基づいて調整された、前記第1フィードフォワード制御器における制御パラメータを取得する第1制御パラメータ取得ステップと、前記第1制御パラメータ取得ステップにおいて取得した、複数の前記第2制御器ごとに調整された前記第1フィードフォワード制御器における制御パラメータに基づいて、制御対象の特性を同定する特性同定ステップと、前記特性同定ステップにおいて同定された制御対象の特性に基づいて第1フィードフォワード制御器(位置FF制御部)及び前記第2フィードフォワード制御器の制御パラメータを算出する制御パラメータ算出ステップと、を備える前記モータ制御装置のフィードフォワード制御器導出方法である。
本発明によれば、モータ制御装置において、未知の制御対象の特性を同定し、それにより、速度フィードバック制御器に依存しない位置フィードフォワード制御器及び速度フィードフォワード制御器を導出するモータ制御装置のフィードフォワード制御器導出装置、モータ制御装置、制御装置、及びフィードフォワード制御器導出方法を提供することができる。
本発明の実施形態の制御システムの機能ブロック図である。 本発明の実施形態のモータ制御装置のフルクローズド制御モデルを示すブロック図である。 フルクローズド制御モデルを採用するモータ制御装置100の一例を示すブロック図である。 モータ制御装置のセミクローズ度制御モデルを示すブロック図である。 本発明の実施形態のフィードフォワード制御器導出装置200及び機械学習装置の機能ブロック図である。 本発明の実施形態の変形例における制御システムの機能ブロック図である。 本発明の実施形態のフィードフォワード制御器導出装置200A及び機械学習装置の機能ブロック図である。 本発明の実施形態の機械学習部300の機能ブロック図である。 本発明の実施形態の機械学習部300Aの機能ブロック図である。 本発明の実施形態のフィードフォワード制御器導出装置200の動作を説明するフローチャートである。 本発明の実施形態の変形例におけるフィードフォワード制御器導出装置200Aの動作を説明するフローチャートである。
<全体構成>
以下、本発明の実施形態について図面を用いて詳細に説明する。
図1は発明の第1の実施形態の制御システムを示すブロック図である。制御システム10は、図1に示すように、モータ制御装置100、フィードフォワード制御器導出装置200、機械学習装置3000、制御装置400を備えている。ここで制御装置400は、例えば、工作機械等を制御する数値制御装置やロボットを制御するロボット制御装置等の上位の制御装置である。以下、フィードフォワード制御器導出装置200を「FF制御器導出装置200」ともいう。
モータ制御装置100、FF制御器導出装置200、及び機械学習装置3000は1対1の組とされてそれぞれ通信可能に接続される。また、モータ制御装置100は制御装置400に接続される。モータ制御装置100、FF制御器導出装置200、及び機械学習装置3000は、例えば、接続インタフェースを介して直接接続されてもよい。また、ネットワーク(図示せず)を介して接続されてもよい。なお、ネットワークは、例えば、工場内に構築されたLAN(Local Area Network)や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワークにおける具体的な通信方式や、有線接続及び無線接続のいずれであるか等については、特に限定されない。
<モータ制御装置100>
図2は本発明の第1の実施形態のモータ制御装置100が採用するフルクローズド制御モデルを示すブロック図である。フルクローズド制御モデルを採用することでモータ制御装置100は、工作機械の位置を高精度に制御することができる。
図3は、フルクローズド制御モデルを採用するモータ制御装置100の一例を示すブロック図である。
モータ150は、モータ制御装置の制御対象となる、例えば工作機械,ロボット,産業機械等に含まれる。モータ制御装置100はモータ150とともに、工作機械、ロボット、産業機械等の一部として設けられてもよい。
モータ制御装置100は、例えば、モータ150で連結機構152を介してテーブル153を移動させることで、テーブル153の上に搭載された被加工物(ワーク)を加工する。連結機構152は、モータ150に連結されたカップリング1521と、カップリング1521に固定されるボールねじ1523とを有し、ボールねじ1523にナット1522が螺合されている。モータ150の回転駆動によって、ボールねじ1523に螺着されたナット1522がボールねじ1523の軸方向に移動する。ナット1522の移動によってテーブル153が移動する。
モータ150の回転変位量は、モータ150に関連付けられた、ロータリーエンコーダ151によって検出される。検出された信号に基づいて検出されるモータ速度vは速度フィードバックとして利用される。また、ボールねじ1523の端部に取り付けられ、ボールねじ1523の移動距離を検出する位置検出器154(リニアスケール154)の出力は位置フィードバックとして利用される。このようにフルクローズドモデルでは、位置検出器(リニアスケール154)により機械位置yを取得して制御を行う。そうすることで、制御したい機械位置yを制御することができる。
なお、フルクローズド制御に対して、セミクローズド制御と呼ばれる制御がある。これは、図4に示すように、ロータリーエンコーダ151によって検出された信号を積分器(図示せず)で積分することで得られるモータの回転角y及びモータ速度vのフィードバック情報に基づいてモータ位置の制御を行う。しかしながら、モータと機械の間には、前述したようにボールねじ1523、カップリング1521、ナット1522のような伝達機構が存在するため、モータ位置は機械位置yと同じ値とはならず、yを制御できても、機械位置yを制御できないことがある。セミクローズド制御モデルについては、後述の<補足説明3>で説明する。
図2を参照しながら、モータ制御装置100のフルクローズド制御方式について説明する。
モータ制御装置100は、減算器102、第1制御器としての位置制御器103、加算器104、減算器105、第2制御器としての速度制御器106、第3加算部としての加算器107、積分器108、第1フィードフォワード制御器としての位置フィードフォワード制御器109、及び第2フィードフォワード制御器としての速度フィードフォワード制御器110を備えている。
例えば、制御装置400は、モータ150を動作させるプログラムに基づいて位置指令値yを作成し、作成した位置指令値yをモータ制御装置100に入力する。より、具体的には、位置指令値yは、減算器102、位置フィードフォワード制御器109、速度フィードフォワード制御器110に出力する。減算器102は位置指令値yと位置フィードバックされた第1検出量としての機械位置yとの差を求め、その差を位置偏差として位置制御器103に出力する。
モータ150は、例えば工作機械に含まれる。工作機械において、被加工物(ワーク)を搭載するテーブルがX軸方向及びY軸方向に移動される場合には、X軸方向及びY軸方向に対してそれぞれ図1に示すモータ制御装置100及びモータ150が設けられる。テーブルを3軸以上の方向に移動させる場合には、それぞれの軸方向に対してモータ制御装置100及びモータ150が設けられる。
制御装置400は、加工プログラムにより指定される加工形状となるように、送り速度を設定して位置指令値yを作成する。
位置制御器103は、位置偏差にポジションゲインKpを乗じた値を、第1制御量としての速度指令値vとして加算器104に出力する。
位置フィードフォワード制御器109は、伝達関数FF(s)で示された位置フィードフォワード処理を行い、その処理結果を第1フィードフォワード制御量としての位置フィードフォワード制御量として、加算器104に出力する。数式1の係数c、d(i,j≧0)は位置フィードフォワード制御器109の制御パラメータとしての伝達関数の各係数である。
Figure 0007101091000001
(数式1)
ここで、位置制御を有効にするため、Kp>0かつFF(s)≠0とする。このように設定することで、機械が暴走する危険もなく、安全な位置制御がなされる。
加算器104は、速度指令値vと位置フィードフォワード制御器109の出力値(位置フィードフォワード制御量)とを加算して第2指令としてのフィードフォワード制御された速度指令値を作成し、減算器105に出力する。減算器105は加算器104の出力と速度フィードバックされた第2検出量としてのモータ速度vとの差を求め、その差を速度偏差として速度制御器106に出力する。
速度制御器106は、伝達関数C(s)で示された処理を行い、第2制御量としてのトルク指令値Tを第3加算部としての加算器107に出力する。伝達関数C(s)は、例えば、速度偏差に積分ゲインK1vを乗じて積分した値と、速度偏差に比例ゲインK2vを乗じた値とを加算する関数が例示される。
速度フィードフォワード制御器110は伝達関数VFF(s)で示される速度フィードフォワード処理を行い、その処理結果を第2フィードフォワード制御量としての速度フィードフォワード制御量として、加算器107に出力する。伝達関数VFF(s)は、数式2で定義される。ここで、数式2の係数a、b(i,j≧0)は速度フィードフォワード制御器110の制御パラメータとしての伝達関数の各係数である。
Figure 0007101091000002
(数式2)
加算器107は、トルク指令値Tと速度フィードフォワード制御器110の出力値(速度フィードフォワード制御量)とを加算して、第3指令としてのフィードフォワード制御されたトルク指令値としてモータ150に出力してモータ150を駆動する。
モータ150の回転変位量は、モータ150に関連付けられた、ロータリーエンコーダ151によって検出され、検出された信号に基づいて検出される速度検出値であるモータ速度vは速度フィードバックとして減算器105に入力される。ここで、伝達関数P(s)は、モータが発生するトルクT(入力)からモータ速度vまでのモータの伝達関数を表す。
積分器108は、ロータリーエンコーダ151によって検出された速度検出値であるモータ速度vを積分して、モータの回転角yを出力する。
また、前述したように、ボールねじ1523の端部に取り付けられ、ボールねじ1523の移動距離を検出する位置検出器(リニアスケール154)の出力である機械位置yは位置フィードバックとして減算器102に入力される。なお、伝達関数P(s)は、モータが発生するトルクTから機械速度(出力)までの機械の伝達関数を表す。
以上のように、フルクローズド制御モデルを採用するモータ制御装置100は構成される。
<フルクローズド制御モデルにおける伝達関数間で成立する関係式>
次に、FF制御器導出装置200の機能を説明する前に、フルクローズド制御モデルにおいて、位置指令値yに対して機械位置yが完全追従する場合(すなわち、y=yが成立する場合)における図2で示した伝達関数FF(s)、VFF(s)、P(s)、P(s)、C(s)の間で成り立つ関係式を説明する。
<位置指令値yに対して機械位置yが完全追従する場合の伝達関数の関係>
図2を参照して、位置指令値yに対して機械位置yが完全追従する場合に、伝達関数FF(s)、VFF(s)、P(s)、P(s)、及びC(s)の間で成り立つ関係式について説明する。以下、P(s)、C(s)、P(s)をそれぞれP、C、Pで表す。
位置指令値yに対して機械位置yが完全追従することから、位置指令値yと機械位置yが一致し、位置偏差は0となり、速度指令値vは0となる。これにより、以下の式が成り立つ。
=P・C・FF(s)・y+P・VFF(s)・y-P・C・v
上記の式を変形することで、vは(数式3)で表される。
Figure 0007101091000003
(数式3)
他方、yは、(数式4)で表されることから、(数式4)のvに(数式3)を代入することで、yは、(数式5)で表される。
Figure 0007101091000004
(数式4)
Figure 0007101091000005
(数式5)
ここで、y=yであることから、FF(s)、VFF(s)、P(s)、P(s)、及びC(s)の間で以下の関係式(数式6)がなりたつ。
Figure 0007101091000006
(数式6)
<速度制御器106に依存しない位置フィードフォワード制御器及び速度フィードフォワード制御器の導出>
次に、位置フィードフォワード制御器109の伝達関数FF(s)及び速度フィードフォワード制御器110の伝達関数VFF(s)が、それぞれ、速度制御器106の伝達関数C(s)に依存しない、伝達関数P(s)及びP(s)のみで設定できることについて説明する。
(数式6)の両辺に(1+P)を掛けることで、(数式7)が導出される。
Figure 0007101091000007
(数式7)
(数式7)をCでまとめると、(数式8)を得る。
Figure 0007101091000008
(数式8)
そうすると、FF(s)及びVFF(s)を(数式9)に示すように伝達関数P(s)及びP(s)に基づいて設定することで、速度制御器106の伝達関数C(s)に依存しない、位置フィードフォワード制御器109の伝達関数FF(s)及び速度フィードフォワード制御器110の伝達関数VFF(s)を得ることができる。
Figure 0007101091000009
(数式9)
以上のように、フルクローズド制御モデルにおいては、伝達関数P(s)及びP(s)に基づいて(数式9)で定義される、位置フィードフォワード制御器109(伝達関数FF(s))及び速度フィードフォワード制御器110(伝達関数VFF(s))を適用することで、位置制御器103及び速度制御器106の値に関わらず、位置指令値yに対して機械位置yが完全追従する(位置偏差を0にする)ことが可能となる。
<伝達関数P(s)及び伝達関数P(s)の算出>
フルクローズド制御モデルにおいて、FF制御器導出装置200は、(数式6)乃至(数式7)を用いることで、モータの伝達関数P(s)及び機械の伝達関数P(s)を以下の手順で算出することができる。
まず、FF制御器導出装置200は、位置制御を有効(Kp>0)にし、位置フィードフォワード制御器109の伝達関数FF(s)を固定(例えばFF(s)=s)し、二つの速度制御器106-1(伝達関数CV1(s))及び速度制御器106-2(伝達関数CV2(s))を用意して、速度制御器106-1及び速度制御器106-2ごとに、(例えば機械学習等により)位置偏差を0とするような、最適な速度フィードフォワード制御器110-1(伝達関数VFF1(s))及び速度フィードフォワード制御器110-2(VFF2(s))を求める。
そうすると、数式(6)又は数式(7)において、FF(s)=sを代入することで、P(s)、及びP(s)を未知の関数とする連立方程式(数式10)及び(数式11)を求めることができる。
Figure 0007101091000010
(数式10)
Figure 0007101091000011
(数式11)
、及びPを変数とする連立方程式((数式10)及び(数式11))を解くことで、モータの伝達関数P(s)及び機械の伝達関数P(s)が(数式12)及び数式(13)で表される。
これにより、FF制御器導出装置200は、モータの伝達関数P(s)及び機械の伝達関数P(s)をCV1、CV2、VFF1、VFF2により算出することができる。
Figure 0007101091000012
(数式12)
Figure 0007101091000013
(数式13)
<P(s)及びP(s)の導出手順>
参考のために、連立方程式(数式10)及び(数式11)から、P(s)及びP(s)を算出する手順について簡単に説明する。
まず、(数式10)の両辺にCVを掛け、(数式11)の両辺にCVを掛けて、両者の引き算をすることで、Pを消去することで、Pを(数式13)に示すように求めることができる。
次に、(数式10)から(数式11)の引き算をして、両辺に(CV1-CV2)を加算すると、
V1-CV2+VFF1-VFF2
=(CV1-CV2)+(CV1-CV2)(P(s)-P(s))/P(s))
となることから、
(CV1-CV2+VFF1-VFF2)P(s)=(CV1-CV2)P(s)
となる。
これに、(数式13)に示すP(s)を代入することで、P(s)が(数式12)に示すように求めることができる。
<速度制御器106に依存しない位置フィードフォワード制御器109及び速度フィードフォワード制御器110の算出>
FF制御器導出装置200は、(数式12)及び(数式13)により算出されるモータの伝達関数P(s)及び機械の伝達関数P(s)から(数式9)に基づいて、速度制御器106の伝達関数C(s)に依存しない、位置フィードフォワード制御器109の伝達関数FF(s)及び速度フィードフォワード制御器110の伝達関数VFF(s)を算出することができる。
以上のように、位置制御を有効(Kp>0)にし、位置フィードフォワード制御器109の伝達関数FF(s)を固定(例えばFF(s)=s)し、異なる伝達関数CV1(s)及びCV2(s)を用意して2つの異なる速度制御器106-1(伝達関数CV1(s))と速度制御器106-2(伝達関数CV2(s))ごとに、それぞれ、位置偏差が0とするように最適な速度フィードフォワード制御器110-1の伝達関数VFF1(s)及び速度フィードフォワード制御器110-2の伝達関数VFF2(s)を(例えば、機械学習等で)求めることで、モータの伝達関数P(s)及び機械の伝達関数P(s)を算出するとともに、位置制御器103及び速度制御器106に依存しない位置フィードフォワード制御器109(伝達関数FF(s))及び速度フィードフォワード制御器110(伝達関数VFF(s))を導出することができる。
このようにして、導出される位置フィードフォワード制御器109(伝達関数FF(s))及び速度フィードフォワード制御器110(伝達関数VFF(s))は、フィードバック制御器(速度制御器106)に依存しないことから、仮にフィードバック制御器(速度制御器106)を変更した場合であっても、再度調整する必要がないという格別顕著な効果を奏することができる。
<補足説明1>
上記説明において、位置フィードフォワード制御器109の伝達関数FF(s)=sと固定して、VFF1(s)及びVFF2(s)を調整しているが、FF(s)=sに固定することに限られない。FF(s)として、(0でない)任意の伝達関数を設定してもよい。この場合においても、(数式7)及び(数式8)から、VFF(s)が求められる。また、連立方程式(数式10)及び(数式11)と同様にして、連立方程式を解くことができる。
<補足説明2>
上記説明では、位置フィードフォワード制御器109の伝達関数FF(s)を固定して、速度制御器106の伝達関数CV1及びCV2を2つ用意して、位置偏差を0とするように、速度フィードフォワード制御器110の最適な伝達関数VFF1(s)及びVFF2(s)を調整したが、これに限られない。
逆に、速度フィードフォワード制御器110の伝達関数VFF(s)を固定(例えば、VFF(s)=s)して、速度制御器106の伝達関数CV1及びCV2を2つ用意して、伝達関数CV1により設定される速度制御器106-1及び伝達関数CV2により設定される速度制御器106-2ごとに、位置偏差を0とする、最適な位置フィードフォワード制御器109-1(伝達関数FF(s))及び位置フィードフォワード制御器109-2(FF(s))を求めるようにしてもよい。この場合においても、(数式7)乃至(数式8)から、FF(s)及びFF(s)が求められ、これから、連立方程式(数式10)及び(数式11)と同様の方法で、伝達関数P(s)及び伝達関数P(s)に係る連立方程式を導出することで、伝達関数P(s)及び伝達関数P(s)を算出することができる。
<補足説明3>
前述したように、図4に示すセミクローズド制御は、ロータリーエンコーダ151によって検出された信号を積分器(図示せず)で積分することで得られるモータの回転角y及びモータ速度vのフィードバック情報に基づいてモータ位置の制御を行う。しかしながら、モータと機械の間には、前述したようにボールねじ1523、カップリング1521、ナット1522のような伝達機構が存在するため、必ずしもモータ位置は機械位置yと同じ値とはならず、yを制御できても、機械位置yを制御できないことがある。
ただし、機械の剛性が高く、モータの伝達特性=機械の伝達特性(すなわち、P(s)=P(s))となる場合には、モータ位置と機械位置とが一致する。この場合は、P(s)=P(s)とすることで、フルクローズド制御モデルが適用可能となる。
次に、上述した伝達関数間に成り立つ関係式等を参照しながら、FF制御器導出装置200について説明する。
<FF制御器導出装置200>
図5は、本発明の実施形態のFF制御器導出装置200を示すブロック図である。フルクローズド制御モデルを採用するモータ制御装置100における未知の制御対象の特性(具体的には、モータの伝達関数P(s)及び機械の伝達関数P(s))を同定するとともに、フィードバック制御器(速度制御器106)に依存しない位置フィードフォワード制御器109及び速度フィードフォワード制御器110を導出するために、図5に示すように、FF制御器導出装置200は、第2制御パラメータ取得部201と、特性同定部202と、制御パラメータ算出部203と、を備える。
第2制御パラメータ取得部201は、それぞれ異なる制御パラメータ(すなわち、伝達関数CV1(s)及びCV2(s))の適用された複数の速度制御器106-1及び速度制御器106-2ごとに、位置指令値yと機械位置yの偏差の評価値が予め設定された閾値よりも小さな値になるように調整された、速度フィードフォワード制御器110における制御パラメータ(すなわち、伝達関数VFF1(s)及びVFF2(s))を取得する。
より具体的には、第2制御パラメータ取得部201は、位置フィードフォワード制御器109における制御パラメータ(すなわち、伝達関数FF(s))を固定して(例えば、FF(s)=s)、それぞれ異なる制御パラメータ(すなわち、伝達関数CV1(s)及びCV2(s))の適用された、速度制御器106-1(伝達関数CV1(s)に対応)及び速度制御器106-2(伝達関数CV2(s)に対応)ごとに、位置偏差が0となる(より具体的には、位置偏差の評価値が所定の閾値以下となる)、速度フィードフォワード制御器110-1の伝達関数VFF1(s)及び速度フィードフォワード制御器110-2の伝達関数VFF2(s)を取得する。
ここで、第2制御パラメータ取得部201は、モータ制御装置100に対して、位置フィードフォワード制御器109における固定される制御パラメータ(すなわち、伝達関数FF(s))の設定、並びに速度制御器106-1及び速度制御器106-2に対してそれぞれ異なる伝達関数CV1(s)及びCV2(s)の設定を行うようにしてもよい。
また、予め、モータ制御装置100が、位置フィードフォワード制御器109における固定される制御パラメータ(FF(s))、並びに異なる複数の異なる速度制御器106-1及び速度制御器106-2を備えるようにしてもよい。
第2制御パラメータ取得部201は、後述の機械学習装置3000(機械学習部300)に機械学習させることで、機械学習装置3000から機械学習結果としての(最適化された)速度フィードフォワード制御器110の伝達関数VFF1(s)及びVFF2(s)を取得してもよい。機械学習装置3000による学習については、後述する。
なお、第2制御パラメータ取得部201は、機械学習ではなく、例えば、熟練の経験者がパラメータを調整することで求めた最適な速度フィードフォワード制御器110の伝達関数VFF1(s)及びVFF2(s)を入力部(図示せず)を介して取得するようにしてもよい。
特性同定部202は、第2制御パラメータ取得部201により取得した、それぞれ異なる制御パラメータ(すなわち、伝達関数CV1(s)及びCV2(s))の適用された、速度制御器106-1(伝達関数CV1(s)に対応)及び速度制御器106-2(伝達関数CV2(s)に対応)ごとに調整された速度フィードフォワード制御器110の伝達関数VFF1(s)及びVFF2(s)に基づいて、上述した(数式12)及び(数式13)を実装した計算処理部(図示せず)により、モータの伝達関数P(s)及び機械の伝達関数P(s)を算出する。
特性同定部202は、算出した伝達関数P(s)及び伝達関数P(s)を記憶部(図示せず)に記憶するようにしてもよい。また、表示器(図示せず)に表示するようにしてもよい。
制御パラメータ算出部203は、特性同定部202により算出された伝達関数P(s)及び伝達関数P(s)に基づいて、(数式9)を実装した計算処理部(図示せず)により、速度制御器106の伝達関数C(s)に依存しない、位置フィードフォワード制御器109の伝達関数FF(s)及び速度フィードフォワード制御器110の伝達関数VFF(s)を算出する。制御パラメータ算出部203は、算出した伝達関数FF(s)及び伝達関数VFF(s)を記憶部(図示せず)に記憶するようにしてもよい。また、表示器(図示せず)に表示するようにしてもよい。
さらに、制御パラメータ算出部203は、算出した伝達関数FF(s)及び伝達関数VFF(s)をそれぞれ、モータ制御装置100に対して、位置フィードフォワード制御器109及び速度フィードフォワード制御器110に設定するように、送信(又は入力)してもよい。
以上により、FF制御器導出装置200は、モータ制御装置100において、制御対象の特性(モータの伝達特性、及び機械の伝達特性)を同定するとともに、速度制御器106に依存しない位置フィードフォワード制御器109及び速度フィードフォワード制御器110を、位置制御を無効にせず、安全に導出することができる。
<補足>
上記の説明では、FF制御器導出装置200(第2制御パラメータ取得部201)は、位置フィードフォワード制御器109における制御パラメータ(すなわち、伝達関数FF(s))を固定して(例えば、FF(s)=s)、それぞれ異なる制御パラメータ(すなわち、伝達関数CV1(s)及びCV2(s))がそれぞれ適用された、速度制御器106-1(伝達関数CV1(s)に対応)及び速度制御器106-2(伝達関数CV2(s)に対応)ごとに、位置偏差が0となる(より具体的には、位置偏差の評価値が所定の閾値以下となる)ように、速度フィードフォワード制御器110-1の伝達関数VFF1(s)及び速度フィードフォワード制御器110-2の伝達関数VFF2(s)を取得したが、これに限られない。
「補足説明2」で説明したように、FF制御器導出装置200Aは、位置フィードフォワード制御器109の伝達関数FF(s)に換えて、速度フィードフォワード制御器110の伝達関数VFF(s)を固定(例えば、VFF(s)=s)して、速度制御器106の伝達関数CV1及びCV2を2つ用意して、伝達関数CV1により設定される速度制御器106-1及び伝達関数CV2により設定される速度制御器106-2ごとに、位置偏差を0とする、最適な位置フィードフォワード制御器109-1(伝達関数FF(s))及び位置フィードフォワード制御器109-2(FF(s))を求めることで、伝達関数P(s)及び伝達関数P(s)を算出してもよい。図6Aは、本発明の実施形態の変形例であるFF制御器導出装置200Aを備える制御システム10Aを示すブロック図である。
また、図6Bは、本発明の実施形態の変形例であるFF制御器導出装置200Aを示すブロック図である。図6Bに示すように、FF制御器導出装置200Aは、特性同定部202Aと、制御パラメータ算出部203Aと、第1制御パラメータ取得部204と、を備える。
第1制御パラメータ取得部204は、速度フィードフォワード制御器110における制御パラメータ(すなわち、伝達関数VFF(s))を固定して(例えば、VFF(s)=s)、それぞれ異なる制御パラメータ(すなわち、伝達関数CV1(s)及びCV2(s))の適用された、速度制御器106-1(伝達関数CV1(s)に対応)及び速度制御器106-2(伝達関数CV2(s)に対応)ごとに、位置偏差が0となる(より具体的には、位置偏差の評価値が所定の閾値以下となる)、位置フィードフォワード制御器109-1の伝達関数FF(s)及び位置フィードフォワード制御器109-2の伝達関数FF(s)を取得する。
ここで、第1制御パラメータ取得部204は、第2制御パラメータ取得部201と同様に、後述の機械学習装置3000(機械学習部300A)に機械学習させることで、機械学習装置3000から機械学習結果としての(最適化された)位置フィードフォワード制御器109の伝達関数FF(s)及びFF(s)を取得してもよい。
また、第2制御パラメータ取得部201は、第2制御パラメータ取得部201と同様に、機械学習ではなく、例えば、熟練の経験者がパラメータを調整することで求めた、最適な位置フィードフォワード制御器109の伝達関数FF(s)及びFF(s)を入力部(図示せず)を介して取得するようにしてもよい。
そして、特性同定部202Aは、第1制御パラメータ取得部204により取得した、それぞれ異なる制御パラメータ(すなわち、伝達関数CV1(s)及びCV2(s))の適用された、速度制御器106-1(伝達関数CV1(s)に対応)及び速度制御器106-2(伝達関数CV2(s)に対応)ごとに調整された位置フィードフォワード制御器109の伝達関数FF(s)及びFF(s)に基づいて、モータの伝達関数P(s)及び機械の伝達関数P(s)を算出することができる。
それにより、制御パラメータ算出部203Aは、特性同定部202Aにより算出された伝達関数P(s)及び伝達関数P(s)に基づいて、(数式9)を実装した計算処理部(図示せず)により、速度制御器106の伝達関数C(s)に依存しない、位置フィードフォワード制御器109の伝達関数FF(s)及び速度フィードフォワード制御器110の伝達関数VFF(s)を算出することができる。
以上のように、FF制御器導出装置200Aは構成される。
<機械学習装置3000>
次に、上述した機械学習装置3000について説明する。図5に示すように、機械学習装置3000は、機械学習部300及び機械学習部300Aを備える。
機械学習部300は、位置フィードフォワード制御器109における制御パラメータ(すなわち、伝達関数FF(s))を固定して(例えば、FF(s)=s)、制御パラメータ(すなわち、伝達関数CV1(s)又はCV2(s))の適用された、速度制御器106-1又は速度制御器106-2に対して、位置偏差が0となる(より具体的には、位置偏差の評価値が所定の閾値以下となる)ように、速度フィードフォワード制御器110-1の伝達関数VFF1(s)又は速度フィードフォワード制御器110-2の伝達関数VFF2(s)を学習する。
他方、機械学習部300Aは、速度フィードフォワード制御器110における制御パラメータ(すなわち、伝達関数VFF(s))を固定して(例えば、VFF(s)=s)、制御パラメータ(すなわち、伝達関数CV1(s)又はCV2(s))の適用された、速度制御器106-1又は速度制御器106-2に対して、位置偏差が0となる(より具体的には、位置偏差の評価値が所定の閾値以下となる)ように、位置フィードフォワード制御器109-1の伝達関数FF(s)又は位置フィードフォワード制御器109-2の伝達関数FF(s)を学習する。
ここでは、機械学習部300について説明する。
<機械学習部300>
機械学習部300は、予め設定された加工プログラム(以下、「学習時の加工プログラム」ともいう)を実行することで、速度フィードフォワード制御器110-1のVFF1(s)又はVFF2(s)の係数を学習する。
ここで、学習時の加工プログラムにより指定される加工形状は、例えば、八角形、又は八角形の角が1つ置きに円弧に置き換えられた形等としてもよい。加工形状はこれに限られない。例えば、円、四角、及び角R付き四角等でもよい。
以下、機械学習部300について説明する。
以下の説明では機械学習部300が強化学習を行う場合について説明するが、機械学習部300が行う学習は特に強化学習に限定されず、例えば、教師あり学習を行う場合にも本発明は適用可能である。
機械学習部300に含まれる各機能ブロックの説明に先立って、まず強化学習の基本的な仕組みについて説明する。エージェント(本実施形態における機械学習部300に相当)は、環境の状態を観測し、ある行動を選択し、当該行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択(意思決定)を学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。このため、エージェントは、将来にわたっての報酬の合計を最大にするように行動を選択するように学習する。
このように、強化学習では、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶ。これは、本実施形態において、例えば、位置偏差を低減するための行動情報を選択するという、未来に影響をおよぼすような行動を獲得できることを表している。
ここで、強化学習としては、任意の学習方法を用いることができるが、以下の説明では、或る環境の状態Sの下で、行動Aを選択する価値Q(S,A)を学習する方法であるQ学習(Q-learning)を用いる場合を例にとって説明をする。
Q学習では、或る状態Sのとき、取り得る行動Aのなかから、価値Q(S,A)の最も高い行動Aを最適な行動として選択することを目的とする。
しかしながら、Q学習を最初に開始する時点では、状態Sと行動Aとの組合せについて、価値Q(S,A)の正しい値は全く分かっていない。そこで、エージェントは、或る状態Sの下で様々な行動Aを選択し、その時の行動Aに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Q(S,A)を学習していく。
また、将来にわたって得られる報酬の合計を最大化したいので、最終的にQ(S,A)=E[Σ(γ)r]となるようにすることを目指す。ここでE[]は期待値を表し、tは時刻、γは後述する割引率と呼ばれるパラメータ、rは時刻tにおける報酬、Σは時刻tによる合計である。この式における期待値は、最適な行動に従って状態変化した場合の期待値である。しかしQ学習の過程において最適な行動が何であるのかは不明であるので、様々な行動を行うことにより、探索しながら強化学習をする。このような価値Q(S,A)の更新式は、例えば、次の数式14(以下に数14として示す)により表すことができる。
Figure 0007101091000014
上記の数式14において、Sは、時刻tにおける環境の状態を表し、Aは、時刻tにおける行動を表す。行動Aにより、状態はSt+1に変化する。rt+1は、その状態の変化により得られる報酬を表している。また、maxの付いた項は、状態St+1の下で、その時に分かっている最もQ値の高い行動Aを選択した場合のQ値にγを乗じたものになる。ここで、γは、0<γ≦1のパラメータで、割引率と呼ばれる。また、αは、学習係数で、0<α≦1の範囲とする。
上述した数式14は、試行Aの結果、返ってきた報酬rt+1を元に、状態Sにおける行動Aの価値Q(S,A)を更新する方法を表している。
この更新式は、状態Sにおける行動Aの価値Q(S,A)よりも、行動Aによる次の状態St+1における最良の行動の価値max Q(St+1,A)の方が大きければ、Q(S,A)を大きくし、逆に小さければ、Q(S,A)を小さくすることを示している。つまり、或る状態における或る行動の価値を、それによる次の状態における最良の行動の価値に近づける。ただし、その差は、割引率γと報酬rt+1のあり方により変わってくるが、基本的には、ある状態における最良の行動の価値が、それに至る1つ前の状態における行動の価値に伝播していく仕組みになっている。
ここで、Q学習では、すべての状態行動ペア(S,A)についてのQ(S,A)のテーブルを作成して、学習を行う方法がある。しかし、すべての状態行動ペアのQ(S,A)の値を求めるには状態数が多すぎて、Q学習が収束するのに多くの時間を要してしまう場合がある。
そこで、公知のDQN(Deep Q-Network)と呼ばれる技術を利用するようにしてもよい。具体的には、価値関数Qを適当なニューラルネットワークを用いて構成し、ニューラルネットワークのパラメータを調整することにより、価値関数Qを適当なニューラルネットワークで近似することにより価値Q(S,A)の値を算出するようにしてもよい。DQNを利用することにより、Q学習が収束するのに要する時間を短くすることが可能となる。なお、DQNについては、例えば、以下の非特許文献に詳細な記載がある。
<非特許文献>
「Human-level control through deep reinforcement learning」、Volodymyr Mnih1著[online]、[平成29年1月17日検索]、インターネット〈URL:http://files.davidqiu.com/research/nature14236.pdf〉
以上説明をしたQ学習を機械学習部300が行う。具体的には、機械学習部300は、位置フィードフォワード制御器109における制御パラメータ(すなわち、伝達関数FF(s))を固定して(例えば、FF(s)=s)、制御パラメータ(すなわち、伝達関数CV1(s)又はCV2(s)の適用された、速度制御器106-1又は速度制御器106-2に対して、それぞれ、速度フィードフォワード制御器110-1の伝達関数VFF1(s)又は速度フィードフォワード制御器110-2の伝達関数VFF2(s)を学習する。
以下、伝達関数CV1(s)の適用された速度制御器106-1に対して、速度フィードフォワード制御器110-1の伝達関数VFF1(s)の学習について説明する。
機械学習部300は、モータ制御装置100における、速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、b(i,j≧0)の値、並びに学習時の加工プログラムを実行することで取得されるモータ制御装置100の位置偏差情報、及び位置指令を含む、指令及びフィードバック等のサーボ状態を状態Sとして、当該状態Sに係る、速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、bの値の調整を行動Aとして選択する価値Qを学習する。
機械学習部300は、速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、bに基づいて、学習時の加工プログラムを実行することで、モータ制御装置100の位置指令及び位置偏差情報を含む、指令及びフィードバック等のサーボ状態を含む状態情報Sを観測して、行動Aを決定する。機械学習部300は、行動Aをするたびに報酬が返ってくる。機械学習部300は、例えば、将来にわたっての報酬の合計が最大になるように最適な行動Aを試行錯誤的に探索する。そうすることで、機械学習部300は、速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、bに基づいて、学習時の加工プログラムを実行することで取得されるモータ制御装置100の位置指令及び位置偏差情報を含む指令、フィードバック等のサーボ状態を含む状態Sに対して、最適な行動A(すなわち、速度フィードフォワード制御器110-1の伝達関数VFF1(s)の最適な係数a、b)を選択することが可能となる。
すなわち、機械学習部300により学習された価値関数Qに基づいて、或る状態Sに係る速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、bに対して適用される行動Aのうち、Qの値が最大となるような行動Aを選択することで、学習時の加工プログラムを実行することで取得される位置偏差が最小になるような行動A(すなわち、速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、b)を選択することが可能となる。
図7Aは本発明の第1の実施形態の機械学習部300を示すブロック図である。
上述した強化学習を行うために、図7Aに示すように、機械学習部300は、状態情報取得部301、学習部302、行動情報出力部303、価値関数記憶部304、及び最適化行動情報出力部305を備える。学習部302は報酬出力部3021、価値関数更新部3022、及び行動情報生成部3023を備える。
状態情報取得部301は、モータ制御装置100における速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、bに基づいて、学習時の加工プログラムを実行することで取得されるモータ制御装置100の位置指令及び位置偏差情報を含む指令、フィードバック等のサーボ状態を含む状態Sを、モータ制御装置100から取得する。この状態情報Sは、Q学習における、環境状態Sに相当する。
状態情報取得部301は、取得した状態情報Sを学習部302に対して出力する。
なお、最初にQ学習を開始する時点での速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、bは、予めユーザが生成するようにする。本実施形態では、ユーザが作成した速度フィードフォワード制御器110-12の伝達関数VFF1(s)の各係数a、bの初期設定値を、強化学習により最適なものに調整する。速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、bは例えば、初期設定値として、数式2のa=1、a=0、a=0、ax=0、b=0、b=0、b=1、b=0とする。また、伝達関数VFF1(s)の各係数a、bの次元m、nを予め設定する。すなわち、aについては0≦i≦m bについては0≦j≦nとする。
なお、係数a、bは予め操作者が工作機械を調整している場合には、調整済の値を初期値として機械学習してもよい。
学習部302は、或る環境状態Sの下で、ある行動Aを選択する場合の価値Q(S,A)を学習する部分である。
報酬出力部3021は、或る状態Sの下で、行動Aを選択した場合の報酬を算出する部分である。ここで、状態Sにおける状態変数である位置偏差の集合(位置偏差集合)をPD(S)、行動情報A(速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、b(i,jは0及び正の整数を示す)の修正)により状態Sから変化した状態情報S´に係る状態変数である位置偏差集合をPD(S´)で示す。また、状態Sにおける位置偏差の値を、予め設定された評価関数f(PD(S))に基づいて算出される評価値とする。
評価関数fとしては、例えば、
位置偏差の絶対値の積算値を算出する関数
∫|e|dt
位置偏差の絶対値に時間の重み付けをして積算値を算出する関数
∫t|e|dt
位置偏差の絶対値の2n(nは自然数)乗の積算値を算出する関数
∫e2ndt(nは自然数)
位置偏差の絶対値の最大値を算出する関数
Max{|e|}
等を適用することができる。
このとき、行動情報Aにより修正された状態情報S´に係る修正後の速度フィードフォワード制御器110-1に基づいて動作したモータ制御装置100の位置偏差の値f(PD(S´))が、行動情報Aにより修正される前の状態情報Sに係る修正前の速度フィードフォワード制御器110-1に基づいて動作したモータ制御装置100の位置偏差の値f(PD(S))よりも大きくなった場合に、報酬出力部3021は、報酬の値を負の値とする。
一方で、行動情報Aにより修正された状態情報S´に係る修正後の速度フィードフォワード制御器110-1に基づいて動作したモータ制御装置100の位置偏差の値f(PD(S´))が、行動情報Aにより修正される前の状態情報Sに係る修正前の速度フィードフォワード制御器110-1に基づいて動作したモータ制御装置100の位置偏差の値f(PD(S))よりも小さくなった場合に、報酬出力部3021は、報酬の値を正の値とする。
なお、行動情報Aにより修正された状態情報S´に係る修正後の速度フィードフォワード制御器110-1に基づいて動作したモータ制御装置100の位置偏差の値f(PD(S´))が、行動情報Aにより修正される前の状態情報Sに係る修正前の速度フィードフォワード制御器110-1に基づいて動作したモータ制御装置100の位置偏差の値f(PD(S))と等しい場合は、報酬出力部3021は、報酬の値をゼロとする。
また、行動Aを実行後の状態S´の位置偏差の値f(PD(S´))が、前の状態Sにおける位置偏差の値f(PD(S))より大きくなった場合の負の値としては、比率に応じて負の値を大きくするようにしてもよい。つまり位置偏差の値が大きくなった度合いに応じて負の値が大きくなるようにするとよい。逆に、行動Aを実行後の状態S´の位置偏差の値f(PD(S´))が、前の状態Sにおける位置偏差の値f(PD(S))より小さくなった場合の正の値としては、比率に応じて正の値を大きくするようにしてもよい。つまり位置偏差の値が小さくなった度合いに応じて正の値が大きくなるようにするとよい。
価値関数更新部3022は、状態Sと、行動Aと、行動Aを状態Sに適用した場合の状態S´と、上記のようにして算出された報酬の値と、に基づいてQ学習を行うことにより、価値関数記憶部304が記憶する価値関数Qを更新する。
価値関数Qの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
オンライン学習とは、或る行動Aを現在の状態Sに適用することにより、状態Sが新たな状態S´に遷移する都度、即座に価値関数Qの更新を行うという学習方法である。また、バッチ学習とは、或る行動Aを現在の状態Sに適用することにより、状態Sが新たな状態S´に遷移することを繰り返すことにより、学習用のデータを収集し、収集した全ての学習用データを用いて、価値関数Qの更新を行うという学習方法である。さらに、ミニバッチ学習とは、オンライン学習と、バッチ学習の中間的な、ある程度学習用データが溜まるたびに価値関数Qの更新を行うという学習方法である。
行動情報生成部3023は、現在の状態Sに対して、Q学習の過程における行動Aを選択する。行動情報生成部3023は、Q学習の過程において、モータ制御装置100の速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、bを修正する動作(Q学習における行動Aに相当)を行わせるために、行動情報Aを生成して、生成した行動情報Aを行動情報出力部303に対して出力する。より具体的には、行動情報生成部3023は、例えば、状態Sに含まれる速度フィードフォワード制御器の各係数に対して行動Aに含まれる、速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、bをインクレメンタル(例えば0.01程度)に加算又は減算させる。
そして、行動情報生成部3023は、速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、bの増加又は減少を適用して、状態S´に遷移して、プラスの報酬(正の値の報酬)が返った場合、次の行動A´としては、速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、bに対して、前回のアクションと同様にインクレメンタルに加算又は減算させる等、位置偏差の値がより小さくなるような行動A´を選択する方策を取るようにしてもよい。
また、逆に、マイナスの報酬(負の値の報酬)が返った場合、行動情報生成部3023は、次の行動A´としては、例えば、速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、bに対して、前回のアクションとは逆にインクレメンタルに減算又は加算させる等、位置偏差が前回の値よりも小さくなるような行動A´を選択する方策を取るようにしてもよい。
また、行動情報生成部3023は、現在の推定される行動Aの価値の中で、最も価値Q(S,A)の高い行動A´を選択するグリーディ法や、ある小さな確率εでランダムに行動A´選択し、それ以外では最も価値Q(S,A)の高い行動A´を選択するεグリーディ法といった公知の方法により、行動A´を選択する方策を取るようにしてもよい。
行動情報出力部303は、学習部302から出力される行動情報Aをモータ制御装置100に対して送信する部分である。モータ制御装置100は上述したように、この行動情報に基づいて、現在の状態S、すなわち現在設定されている速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、bを微修正することで、次の状態S´(すなわち修正された、速度フィードフォワード制御器110-1の各係数)に遷移する。
価値関数記憶部304は、価値関数Qを記憶する記憶装置である。価値関数Qは、例えば状態S、行動Aごとにテーブル(以下、行動価値テーブルと呼ぶ)として格納してもよい。価値関数記憶部304に記憶された価値関数Qは、価値関数更新部3022により更新される。また、価値関数記憶部304に記憶された価値関数Qは、他の機械学習部300との間で共有されるようにしてもよい。価値関数Qを複数の機械学習部300で共有するようにすれば、各機械学習部300にて分散して強化学習を行うことが可能となるので、強化学習の効率を向上させることが可能となる。
最適化行動情報出力部305は、価値関数更新部3022がQ学習を行うことにより更新した価値関数Qに基づいて、価値Q(S,A)が最大となる動作を速度フィードフォワード制御器110-1に行わせるための行動情報A(以下、「最適化行動情報」と呼ぶ)を生成する。
より具体的には、最適化行動情報出力部305は、価値関数記憶部304が記憶している価値関数Qを取得する。この価値関数Qは、上述したように価値関数更新部302-12がQ学習を行うことにより更新したものである。そして、最適化行動情報出力部305は、価値関数Qに基づいて、行動情報を生成し、生成した行動情報をモータ制御装置100(速度フィードフォワード制御器110-1)に対して出力する。この最適化行動情報には、行動情報出力部303がQ学習の過程において出力する行動情報と同様に、速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、bを修正する情報が含まれる。
モータ制御装置100では、この行動情報に基づいて速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、bが修正される。
機械学習部300は、以上の動作で、速度フィードフォワード制御器110-1の伝達関数VFF1(s)の各係数a、bの最適化を行い、位置偏差の値を低減するように動作することができる。より具体的には、位置偏差の評価値が所定の閾値(0に近い値)よりも小さな値となるように学習する。
以上のように、本発明に係る機械学習部300を利用することで、モータ制御装置100の速度フィードフォワード制御器110-1のパラメータ調整を簡易化することができる。
なお、機械学習部300の上記説明において、伝達関数CV1(s)及び速度制御器106-1をそれぞれ、伝達関数CV2(s)及び速度制御器106-2に読み換え、伝達関数VFF1(s)及び速度フィードフォワード制御器110-1をそれぞれ伝達関数VFF2(s)及び速度フィードフォワード制御器110-2に読み換えることで、伝達関数CV2(s)の適用された速度制御器106-2に対する速度フィードフォワード制御器110-2の伝達関数VFF2(s)の学習は説明される。
<機械学習部300A>
機械学習部300Aは、前述したように、速度フィードフォワード制御器110における制御パラメータ(すなわち、伝達関数VFF(s))を固定して(例えば、VFF(s)=s)、制御パラメータ(すなわち、伝達関数CV1(s)又はCV2(s))の適用された速度制御器106-1又は速度制御器106-2に対して、位置偏差が0となる(より具体的には、位置偏差の評価値が所定の閾値以下となる)ように、位置フィードフォワード制御器109-1の伝達関数FF(s)又は位置フィードフォワード制御器109-2の伝達関数FF(s)を学習する。
このため、機械学習部300Aは、図7Bに示すように、状態情報取得部301A、学習部302A、行動情報出力部303A、価値関数記憶部304A、及び最適化行動情報出力部305Aを備える。また、学習部302Aは報酬出力部3021A、価値関数更新部3022A、及び行動情報生成部3023Aを備える。
ここで、機械学習部300Aの備える各機能部は、機械学習部300の説明において、「位置フィードフォワード制御器109における制御パラメータ(すなわち、伝達関数FF(s))を固定して」を「速度フィードフォワード制御器110における制御パラメータ(すなわち、伝達関数VFF(s))を固定(例えばVFF(s)=s)して」に読み換え、速度フィードフォワード制御器110-1、伝達関数VFF1(s)、及び伝達関数VFF1(s)の係数a、bをそれぞれ、位置フィードフォワード制御器109-1又は109-2、伝達関数FF(s)又はFF(s)、及び伝達関数FF(s)又はFF(s)の係数c、dに読み換え、各機能部の名称の末尾に「B」を付加することで、機械学習部300Aは説明される。
以上、機械学習装置3000に含まれる機能ブロックについて説明した。
なお、機械学習装置3000は、機械学習部300及び機械学習部300Aを含むものとして説明したが、これに限られない。機械学習部300を含む機械学習装置と、機械学習部300Aを含む機械学習装置と、を別の装置にしてもよい。
<FF制御器導出装置200の動作>
図8は、FF制御器導出装置200の動作の一例に係るフローチャートである。図8のフローチャートを参照して、FF制御器導出装置200によるモータの伝達関数P(s)及び機械の伝達関数P(s)の導出及びフィードバック制御器(速度制御器106)の値に限らず、位置偏差を0にすることができ、フィードバック制御器に依存しない位置フィードフォワード制御器109の制御パラメータ及び速度フィードフォワード制御器110の制御パラメータを算出する動作の一例について説明する。
なお、モータ制御装置100は、位置フィードフォワード制御器109における固定される制御パラメータ(FF(s))及び異なる複数の異なる速度制御器106-1及び速度制御器106-2を備えているものとする。
ステップST1において、第2制御パラメータ取得部201は、例えば、入力部(図示せず)を介してモータ制御装置100に対して、位置フィードフォワード制御器109における固定される制御パラメータ(FF(s))を指定する。
ステップST2において、第2制御パラメータ取得部201は、複数の異なる速度制御器のうち1つの速度制御器106-1を指定する。
ステップST3において、第2制御パラメータ取得部201は、機械学習装置3000(機械学習部300)に対して、速度フィードフォワード制御器110の伝達関数VFF1(s)の学習をさせる。
ステップST4において、第2制御パラメータ取得部201は、機械学習装置3000(機械学習部300)から、速度制御器106-1に対して、最適な速度フィードフォワード制御器110の高次の伝達関数VFF1(s)を取得する。
ステップST5において、第2制御パラメータ取得部201は、複数の異なる速度制御器のうちステップST2で指定した速度制御器106-1と異なる速度制御器106-2を指定する。
ステップST6において、第2制御パラメータ取得部201は、機械学習装置3000(機械学習部300)に対して、速度フィードフォワード制御器110の伝達関数VFF2(s)の学習をさせる。
ステップST7において、第2制御パラメータ取得部201は、機械学習装置3000(機械学習部300)から、速度制御器106-2に対して、最適な速度フィードフォワード制御器110の高次の伝達関数VFF2(s)を取得する。
ステップST8において、特性同定部202は、ステップST1において指定した位置フィードフォワード制御器109における制御パラメータ(伝達関数FF(s))、ステップST4で取得した高次の伝達関数VFF1(s)、及びステップST7で取得した高次の伝達関数VFF2(s)に基づいて、モータの伝達関数P(s)及び機械の伝達関数P(s)を算出する。
ステップST9において、制御パラメータ算出部203は、ステップST8において算出した伝達関数P(s)及び機械の伝達関数P(s)に基づいて、フィードバック制御器に依存しない位置フィードフォワード制御器109の伝達関数FF(s)及び速度フィードフォワード制御器110の伝達関数VFF(s)を算出する。
ステップST10において、制御パラメータ算出部203は、ステップST9において算出した位置フィードフォワード制御器109の制御パラメータ(FF(s))及び速度フィードフォワード制御器110の制御パラメータ(VFF(s))を、それぞれ、モータ制御装置100の位置フィードフォワード制御器109及び速度フィードフォワード制御器110に設定する。
<FF制御器導出装置200Aの動作>
図9に、FF制御器導出装置200Aの動作の一例に係るフローチャートを示す。図9のフローチャートを参照して、FF制御器導出装置200Aの動作の一例について説明する。
なお、モータ制御装置100は、速度フィードフォワード制御器110における固定される制御パラメータ(VFF(s))及び異なる複数の異なる速度制御器106-1及び速度制御器106-2を備えているものとする。
ステップST11において、第1制御パラメータ取得部204は、例えば、入力部(図示せず)を介してモータ制御装置100に対して、速度フィードフォワード制御器110における固定される制御パラメータ(VFF(s))を指定する。
ステップST12において、第1制御パラメータ取得部204は、複数の異なる速度制御器のうち1つの速度制御器106-1を指定する。
ステップST13において、第1制御パラメータ取得部204は、機械学習装置3000(機械学習部300A)に対して、位置フィードフォワード制御器109の伝達関数VFF1(s)の学習をさせる。
ステップST14において、第1制御パラメータ取得部204は、機械学習装置3000(機械学習部300A)から、速度制御器106-1に対して、最適な位置フィードフォワード制御器109の高次の伝達関数FF(s)を取得する。
ステップST15において、第1制御パラメータ取得部204は、複数の異なる速度制御器のうちステップST12で指定した速度制御器106-1と異なる速度制御器106-2を指定する。
ステップST16において、第1制御パラメータ取得部204は、機械学習装置3000(機械学習部300A)に対して、位置フィードフォワード制御器109の伝達関数VFF2(s)の学習をさせる。
ステップST17において、第1制御パラメータ取得部204は、機械学習装置3000(機械学習部300A)から、速度制御器106-2に対して、最適な位置フィードフォワード制御器109の高次の伝達関数FF(s)を取得する。
ステップST18において、特性同定部202Aは、ステップST11において指定した速度フィードフォワード制御器110における制御パラメータ(VFF(s))、ステップST14で取得した高次の伝達関数FF(s)、及びステップST17で取得した高次の伝達関数FF(s)に基づいて、モータの伝達関数P(s)及び機械の伝達関数P(s)を算出する。
ステップST19において、制御パラメータ算出部203Aは、ステップST18において算出した伝達関数P(s)及び機械の伝達関数P(s)に基づいて、フィードバック制御器に依存しない位置フィードフォワード制御器109の伝達関数FF(s)及び速度フィードフォワード制御器110の伝達関数VFF(s)を算出する。
ステップST20において、制御パラメータ算出部203Aは、ステップST19において算出した位置フィードフォワード制御器109の制御パラメータ(FF(s))及び速度フィードフォワード制御器110の制御パラメータ(VFF(s))を、それぞれ、モータ制御装置100の位置フィードフォワード制御器109及び速度フィードフォワード制御器110に設定する。
<本実施形態の効果>
(1)以上のように、本実施形態によれば、例えば、位置制御を有効(Kp>0)にし、位置フィードフォワード制御器109の伝達関数FF(s)を固定(例えばFF(s)=s)し、異なる伝達関数CV1(s)及びCV2(s)を用意して2つの異なる速度制御器106-1(伝達関数CV1(s))と速度制御器106-2(伝達関数CV2(s))ごとに、それぞれ、位置偏差が0となるように最適な速度フィードフォワード制御器110-1の伝達関数VFF1(s)及び速度フィードフォワード制御器110-2の伝達関数VFF2(s)を(例えば、機械学習等で)求めることで、モータの伝達関数P(s)及び機械の伝達関数P(s)を導出することができる。
そして、このようにして導出されたモータの伝達関数P(s)及び機械の伝達関数P(s)に基づいて、位置制御器103及び速度制御器106に依存しない位置フィードフォワード制御器109(伝達関数FF(s))及び速度フィードフォワード制御器110(伝達関数VFF(s))を算出することができる。
これにより、位置制御器103を無効にせず、安全に、高次の位置フィードフォワード制御器109のパラメータ(伝達関数FF(s))及び速度フィードフォワード制御器110のパラメータ(伝達関数VFF(s))を調整することができる。
さらに、位置フィードフォワード制御器109のパラメータ及び速度フィードフォワード制御器110のパラメータは、同定したモータの伝達関数P(s)及び機械の伝達関数P(s)から算出していることから、フィードバック制御器(速度制御器106)の値に限らず、位置偏差を0にすることができ、仮にフィードバック制御器(速度制御器106)を変更する場合であっても、位置フィードフォワード制御器109のパラメータ及び速度フィードフォワード制御器110のパラメータを再度調整する必要がない。
(2)また、本実施形態によれば、例えば、位置制御を有効(Kp>0)にし、速度フィードフォワード制御器110の伝達関数VFF(s)を固定(例えばVFF(s)=s)し、異なる伝達関数CV1(s)及びCV2(s)を用意して2つの異なる速度制御器106-1(伝達関数CV1(s))と速度制御器106-2(伝達関数CV2(s))ごとに、それぞれ、位置偏差が0とするように最適な位置フィードフォワード制御器109-1の伝達関数FF1(s)及び位置フィードフォワード制御器109-2の伝達関数FF2(s)を(例えば、機械学習等で)求めることで、モータの伝達関数P(s)及び機械の伝達関数P(s)を導出することができる。
そして、このようにして導出されたモータの伝達関数P(s)及び機械の伝達関数P(s)に基づいて、位置制御器103及び速度制御器106に依存しない位置フィードフォワード制御器109(伝達関数FF(s))及び速度フィードフォワード制御器110(伝達関数VFF(s))を算出することができる。
これにより、上記(1)と同様の効果を奏することができる。
上記のモータ制御装置100のサーボ制御部、FF制御器導出装置200又はFF制御器導出装置200Aに含まれる各構成部、及び機械学習装置3000に含まれる各構成部は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記のFF制御器導出装置200又はFF制御器導出装置200Aに含まれる各構成部のそれぞれの協働により行なわれるFF制御器導出方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(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)によってコンピュータに供給されてもよい。
上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
<FF制御器導出装置の構成に係る変形例>
上述した実施形態では、FF制御器導出装置200又はFF制御器導出装置200Aを、モータ制御装置100とは別体の装置により構成したが、FF制御器導出装置200又はFF制御器導出装置200Aの機能の一部又は全部をモータ制御装置100により実現するようにしてもよい。また、FF制御器導出装置200又はFF制御器導出装置200Aは別装置ではなく、FF制御器導出装置200又はFF制御器導出装置200Aを1つの装置としてもよい。
また、FF制御器導出装置200又はFF制御器導出装置200Aの機能の一部又は全部を上位の制御装置400により実現するようにしてもよい。
<機械学習装置の構成に係る変形例>
上述した実施形態では、機械学習器300又は機械学習器300Aを、FF制御器導出装置200又はFF制御器導出装置200Aとは別体の装置により構成したが、機械学習器300又は機械学習器300Aの機能の一部又は全部をFF制御器導出装置200又はFF制御器導出装置200Aにより実現するようにしてもよい。また、上述した実施形態では、機械学習装置3000が機械学習器300及び機械学習器300Aを含むようにしたが、機械学習器300又は機械学習器300Aを別の装置としてもよい。
また、機械学習器300又は機械学習器300Aの機能の一部又は全部をモータ制御装置100により実現するようにしてもよい。
また、機械学習器300又は機械学習器300Aの機能の一部又は全部を上位の制御装置400により実現するようにしてもよい。
<システム構成の自由度>
上述した実施形態では、FF制御器導出装置200又はFF制御器導出装置200Aと機械学習装置3000とモータ制御装置100とが1対1の組として通信可能に接続されているが、例えば1台のFF制御器導出装置200又はFF制御器導出装置200Aが複数のモータ制御装置100とネットワークを介して通信可能に接続され、各モータ制御装置100のFF制御器導出機能を実施するようにしてもよい。その際、FF制御器導出装置200又はFF制御器導出装置200Aの各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、FF制御器導出装置200又はFF制御器導出装置200Aの各機能を実現してもよい。
同様に、例えば1台の機械学習装置3000が複数のモータ制御装置100とネットワークを介して通信可能に接続され、各モータ制御装置100の機械学習機能を実施するようにしてもよい。
同様に、機械学習装置3000の機械学習部300及び機械学習部300Aを、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、機械学習装置3000の機能の一部又は全部を、適宜複数のサーバに分散するようにしてもよい。また、クラウド上で仮想サーバ機能等を利用して、FF制御器導出装置200又はFF制御器導出装置200Aの各機能を実現してもよい。
また、複数の同じ型名、同一仕様、又は同一シリーズのモータ制御装置100-1~100-nとそれぞれ対応する複数の機械学習装置3000-1~3000-nがあった場合に、各機械学習装置3000-1~3000-nにおける学習結果を共有するように構成するようにしてもよい。そうすることで、より最適なモデルを構築することが可能となる。
10 制御システム
100 モータ制御装置
102 減算器
103 位置制御器
104 加算器
105 減算器
106 速度制御器
107 加算器
108 積分器
109 位置フィードフォワード制御器
110 速度フィードフォワード制御器
150 モータ
151 ロータリーエンコーダ
152 連結機構
153 テーブル
154 位置検出器(リニアスケール)
3000 機械学習装置
300,300A 機械学習部
301,301A 状態情報取得部
302,302A 学習部
3021,3021A 報酬出力部
3022,3022A 価値関数更新部
3023,3023A 行動情報生成部
303,303A 行動情報出力部
304,304A 価値関数記憶部
305,305A 最適化行動情報出力部
400 制御装置

Claims (9)

  1. 工作機械、ロボット、産業機械のサーボモータ、スピンドルモータを制御するモータ制御装置のフィードフォワード制御器導出装置であって、
    前記モータ制御装置は、
    第1指令及び第1検出量から第1制御量を作成する第1制御器と、
    前記第1指令から第1フィードフォワード制御量を作成する第1フィードフォワード制御器と、
    前記第1指令から第2フィードフォワード制御量を作成する第2フィードフォワード制御器と、
    前記第1制御量と前記第1フィードフォワード制御量とから作成される第2指令に対して、前記第2指令及び第2検出量から第2制御量を作成する第2制御器と、
    前記第2制御量及び前記第2フィードフォワード制御量から第3指令を作成する第3加算部と、を備え、
    前記フィードフォワード制御器導出装置は、
    それぞれ異なる制御パラメータの適用された複数の前記第2制御器ごとに、前記第1指令と前記第1検出量の偏差に基づいて調整された、前記第2フィードフォワード制御器における制御パラメータを取得する第2制御パラメータ取得部と、
    前記第2制御パラメータ取得部により取得した、複数の前記第2制御器ごとに調整された前記第2フィードフォワード制御器における制御パラメータに基づいて、制御対象の特性を同定する特性同定部と、
    前記特性同定部により同定された制御対象の特性に基づいて第1フィードフォワード制御器(位置FF制御部)及び前記第2フィードフォワード制御器の制御パラメータを算出する制御パラメータ算出部と、
    を備える前記モータ制御装置のフィードフォワード制御器導出装置。
  2. 工作機械、ロボット、産業機械のサーボモータ、スピンドルモータを制御するモータ制御装置のフィードフォワード制御器導出装置であって、
    前記モータ制御装置は、
    第1指令及び第1検出量から第1制御量を作成する第1制御器と、
    前記第1指令から第1フィードフォワード制御量を作成する第1フィードフォワード制御器と、
    前記第1指令から第2フィードフォワード制御量を作成する第2フィードフォワード制御器と、
    前記第1制御量と前記第1フィードフォワード制御量とから作成される第2指令に対して、前記第2指令及び第2検出量から第2制御量を作成する第2制御器と、
    前記第2制御量及び前記第2フィードフォワード制御量から第3指令を作成する第3加算部と、を備え、
    前記フィードフォワード制御器導出装置は、
    それぞれ異なる制御パラメータの適用された複数の前記第2制御器ごとに、前記第1指令と前記第1検出量の偏差に基づいて調整された、前記第1フィードフォワード制御器における制御パラメータを取得する第1制御パラメータ取得部と、
    前記第1制御パラメータ取得部により取得した、複数の前記第2制御器ごとに調整された前記第1フィードフォワード制御器における制御パラメータに基づいて、制御対象の特性を同定する特性同定部と、
    前記特性同定部により同定された制御対象の特性に基づいて第1フィードフォワード制御器及び前記第2フィードフォワード制御器の制御パラメータを算出する制御パラメータ算出部と、
    を備える前記モータ制御装置のフィードフォワード制御器導出装置。
  3. 前記第2制御パラメータ取得部は、さらに
    機械学習器又は機械学習器と通信する通信部を備え、
    前記機械学習器は、
    それぞれ異なる制御パラメータの適用された複数の前記第2制御器ごとに、前記第1指令と前記第1検出量の偏差に基づいて調整された、前記第2フィードフォワード制御器における制御パラメータを学習する、請求項1に記載のフィードフォワード制御器導出装置。
  4. 前記第1制御パラメータ取得部は、さらに
    機械学習器又は機械学習器と通信する通信部を備え、
    前記機械学習器は、
    それぞれ異なる制御パラメータの適用された複数の前記第2制御器ごとに、前記第1指令と前記第1検出量の偏差に基づいて調整された、前記第1フィードフォワード制御器における制御パラメータを学習する、請求項2に記載のフィードフォワード制御器導出装置。
  5. 前記制御対象の特性は、サーボモータ、又はスピンドルモータの伝達特性と、工作機械、ロボット、又は産業機械の伝達特性と、を含み、
    前記第1指令は位置指令であり、
    前記第1検出量は、位置を検出する位置検出部により検出される位置であり、
    前記第2指令は速度指令であり、
    前記第2検出量は、速度を検出する速度検出部により検出される速度であり、
    前記第3指令はトルク指令である、請求項1から請求項4のいずれか1項に記載のフィードフォワード制御器導出装置。
  6. 請求項1から請求項5の何れか1項に記載のフィードフォワード制御器導出装置を備え、
    工作機械、ロボット、産業機械の軸を駆動するサーボモータ、スピンドルモータを制御するモータ制御装置。
  7. 請求項1から請求項5の何れか1項に記載のフィードフォワード制御器導出装置を備える制御装置。
  8. 第1指令及び第1検出量から第1制御量を作成する第1制御器と、
    前記第1指令から第1フィードフォワード制御量を作成する第1フィードフォワード制御器と、
    前記第1指令から第2フィードフォワード制御量を作成する第2フィードフォワード制御器と、
    前記第1制御量と前記第1フィードフォワード制御量とから作成される第2指令に対して、前記第2指令及び第2検出量から第2制御量を作成する第2制御器と、
    前記第2制御量及び前記第2フィードフォワード制御量から第3指令を作成する第3加算部と、を備える、工作機械、ロボット、産業機械のサーボモータ、スピンドルモータを制御するモータ制御装置に対して、
    コンピュータによる前記モータ制御装置のフィードフォワード制御器導出方法であって、
    それぞれ異なる制御パラメータの適用された複数の前記第2制御器ごとに、前記第1指令と前記第1検出量の偏差に基づいて調整された、前記第2フィードフォワード制御器における制御パラメータを取得する第2制御パラメータ取得ステップと、
    前記第2制御パラメータ取得ステップにおいて取得した、複数の前記第2制御器ごとに調整された前記第2フィードフォワード制御器における制御パラメータに基づいて、制御対象の特性を同定する特性同定ステップと、
    前記特性同定ステップにおいて同定された制御対象の特性に基づいて第1フィードフォワード制御器及び前記第2フィードフォワード制御器の制御パラメータを算出する制御パラメータ算出ステップと、
    を備える前記モータ制御装置のフィードフォワード制御器導出方法。
  9. 第1指令及び第1検出量から第1制御量を作成する第1制御器と、
    前記第1指令から第1フィードフォワード制御量を作成する第1フィードフォワード制御器と、
    前記第1指令から第2フィードフォワード制御量を作成する第2フィードフォワード制御器と、
    前記第1制御量と前記第1フィードフォワード制御量とから作成される第2指令に対して、前記第2指令及び第2検出量から第2制御量を作成する第2制御器と、
    前記第2制御量及び前記第2フィードフォワード制御量から第3指令を作成する第3加算部と、を備える、工作機械、ロボット、産業機械のサーボモータ、スピンドルモータを制御するモータ制御装置に対して、
    コンピュータによる前記モータ制御装置のフィードフォワード制御器導出方法であって、
    それぞれ異なる制御パラメータの適用された複数の前記第2制御器ごとに、前記第1指令と前記第1検出量の偏差に基づいて調整された、前記第1フィードフォワード制御器における制御パラメータを取得する第1制御パラメータ取得ステップと、
    前記第1制御パラメータ取得ステップにおいて取得した、複数の前記第2制御器ごとに調整された前記第1フィードフォワード制御器における制御パラメータに基づいて、制御対象の特性を同定する特性同定ステップと、
    前記特性同定ステップにおいて同定された制御対象の特性に基づいて第1フィードフォワード制御器及び前記第2フィードフォワード制御器の制御パラメータを算出する制御パラメータ算出ステップと、
    を備える前記モータ制御装置のフィードフォワード制御器導出方法。
JP2018175154A 2018-09-19 2018-09-19 モータ制御装置のフィードフォワード制御器導出装置、モータ制御装置、制御装置、及びフィードフォワード制御器導出方法 Active JP7101091B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018175154A JP7101091B2 (ja) 2018-09-19 2018-09-19 モータ制御装置のフィードフォワード制御器導出装置、モータ制御装置、制御装置、及びフィードフォワード制御器導出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018175154A JP7101091B2 (ja) 2018-09-19 2018-09-19 モータ制御装置のフィードフォワード制御器導出装置、モータ制御装置、制御装置、及びフィードフォワード制御器導出方法

Publications (2)

Publication Number Publication Date
JP2020046965A JP2020046965A (ja) 2020-03-26
JP7101091B2 true JP7101091B2 (ja) 2022-07-14

Family

ID=69901505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018175154A Active JP7101091B2 (ja) 2018-09-19 2018-09-19 モータ制御装置のフィードフォワード制御器導出装置、モータ制御装置、制御装置、及びフィードフォワード制御器導出方法

Country Status (1)

Country Link
JP (1) JP7101091B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7484382B2 (ja) 2020-04-24 2024-05-16 横河電機株式会社 制御装置、制御方法および制御プログラム
CN112083687B (zh) * 2020-09-11 2021-06-11 苏州浩智工业控制技术有限公司 基于现场总线的速度前馈的过象限补偿方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103853098A (zh) 2014-03-19 2014-06-11 南京埃斯顿自动控制技术有限公司 一种应用于雕铣机的伺服位置控制方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3274070B2 (ja) * 1996-08-08 2002-04-15 三菱電機株式会社 電動機制御方法及び電動機制御装置
JP5650814B1 (ja) * 2013-07-05 2015-01-07 ファナック株式会社 フィードフォワード制御を備えたモータ制御装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103853098A (zh) 2014-03-19 2014-06-11 南京埃斯顿自动控制技术有限公司 一种应用于雕铣机的伺服位置控制方法

Also Published As

Publication number Publication date
JP2020046965A (ja) 2020-03-26

Similar Documents

Publication Publication Date Title
CN108628355B (zh) 伺服控制装置及系统、机器学习装置及方法
JP6474449B2 (ja) 調整装置及び調整方法
US10824121B2 (en) Machine learning device, servo motor controller, servo motor control system, and machine learning method
JP6748135B2 (ja) 機械学習装置、サーボ制御装置、サーボ制御システム、及び機械学習方法
JP6740277B2 (ja) 機械学習装置、制御装置、及び機械学習方法
JP6784722B2 (ja) 出力装置、制御装置、及び評価関数値の出力方法
JP6474456B2 (ja) 機械学習装置、サーボ制御システム及び機械学習方法
US10481566B2 (en) Machine learning device, servo control device, servo control system and machine learning method
JP6740278B2 (ja) 機械学習装置、制御装置、及び機械学習方法
JP6849643B2 (ja) 出力装置、制御装置、及び評価関数と機械学習結果の出力方法
JP7010877B2 (ja) 機械学習装置、数値制御システム及び機械学習方法
JP6740279B2 (ja) 調整装置及び調整方法
JP7303065B2 (ja) 機械学習装置、制御システム及び機械学習方法
JP7101091B2 (ja) モータ制御装置のフィードフォワード制御器導出装置、モータ制御装置、制御装置、及びフィードフォワード制御器導出方法
JP6841801B2 (ja) 機械学習装置、制御システム及び機械学習方法
JP7405537B2 (ja) 機械学習装置、サーボ制御装置、サーボ制御システム及び機械学習方法
JP6806746B2 (ja) モータ制御装置
JP6860541B2 (ja) 出力装置、制御装置、及び評価関数値の出力方法
CN111552237A (zh) 机器学习装置、控制装置、以及机器学习的搜索范围的设定方法
JP6740263B2 (ja) 機械学習装置、サーボモータ制御装置、サーボモータ制御システム、及び機械学習方法
JP2020154989A (ja) 機械学習装置、制御システム及び機械学習方法
JP6740290B2 (ja) 機械学習装置、制御装置、及び機械学習方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220427

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220531

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220704

R150 Certificate of patent or registration of utility model

Ref document number: 7101091

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150