IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ファナック株式会社の特許一覧

特許7509866機械学習装置、制御装置及び機械学習方法
<>
  • 特許-機械学習装置、制御装置及び機械学習方法 図1
  • 特許-機械学習装置、制御装置及び機械学習方法 図2
  • 特許-機械学習装置、制御装置及び機械学習方法 図3
  • 特許-機械学習装置、制御装置及び機械学習方法 図4
  • 特許-機械学習装置、制御装置及び機械学習方法 図5
  • 特許-機械学習装置、制御装置及び機械学習方法 図6
  • 特許-機械学習装置、制御装置及び機械学習方法 図7
  • 特許-機械学習装置、制御装置及び機械学習方法 図8
  • 特許-機械学習装置、制御装置及び機械学習方法 図9
  • 特許-機械学習装置、制御装置及び機械学習方法 図10
  • 特許-機械学習装置、制御装置及び機械学習方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-24
(45)【発行日】2024-07-02
(54)【発明の名称】機械学習装置、制御装置及び機械学習方法
(51)【国際特許分類】
   G05B 13/02 20060101AFI20240625BHJP
   H02P 29/00 20160101ALI20240625BHJP
【FI】
G05B13/02 L
H02P29/00
【請求項の数】 10
(21)【出願番号】P 2022515338
(86)(22)【出願日】2021-04-08
(86)【国際出願番号】 JP2021014870
(87)【国際公開番号】W WO2021210483
(87)【国際公開日】2021-10-21
【審査請求日】2022-11-21
(31)【優先権主張番号】P 2020072174
(32)【優先日】2020-04-14
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【弁理士】
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】恒木 亮太郎
(72)【発明者】
【氏名】猪飼 聡史
【審査官】稲垣 浩司
(56)【参考文献】
【文献】特開2020-57211(JP,A)
【文献】特開平9-50303(JP,A)
【文献】特開2017-34852(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 13/02
H02P 29/00
(57)【特許請求の範囲】
【請求項1】
モータを制御するサーボ制御装置に設けられた、少なくとも1つのフィルタの係数とフィードバックゲインとの少なくとも一方を最適化する機械学習を行う機械学習装置であって、
前記フィルタの係数と前記フィードバックゲインとの少なくとも一方、及び前記サーボ制御装置の入出力ゲインと入出力の位相遅れを含む状態情報を取得する状態情報取得部と、
前記状態情報に含まれる前記係数及び前記フィードバックゲインの少なくとも一方の調整情報を含む行動情報を出力する行動情報出力部と、
複素平面上の(-1,0)を内側に含み、所定のゲイン余裕及び位相余裕を通る閉曲線の内側を、前記入出力ゲインと前記入出力の位相遅れとから算出したナイキスト軌跡が通るかどうかに基づいて報酬を求めて出力する報酬出力部と、
前記報酬出力部により出力される報酬の値と、前記状態情報と、前記行動情報とに基づいて価値関数を更新する価値関数更新部と、
を備えた機械学習装置。
【請求項2】
前記報酬出力部は、前記閉曲線と前記ナイキスト軌跡との間の距離に基づいて報酬を求めて出力する、請求項1に記載の機械学習装置。
【請求項3】
前記閉曲線は円である、請求項1又は2に記載の機械学習装置。
【請求項4】
前記報酬出力部は、前記報酬にカットオフ周波数に基づいて計算される報酬を加えた合計の報酬を出力する、請求項1から3のいずれか1項に記載の機械学習装置。
【請求項5】
前記報酬出力部は、前記報酬に閉ループ特性に基づいて計算される報酬を加えた合計の報酬を出力する、請求項1から3のいずれか1項に記載の機械学習装置。
【請求項6】
前記報酬出力部は、前記報酬に、前記入出力ゲインと予め計算された規範となるゲインとの比較により計算される報酬を加えた合計の報酬を出力する、請求項1から3のいずれか1項に記載の機械学習装置。
【請求項7】
前記入出力ゲインと前記入出力の位相遅れとは、周波数特性算出装置によって算出され、
前記周波数特性算出装置は、周波数が変わる正弦波の入力信号と、前記サーボ制御装置の速度フィードバック情報とを用いて、前記入出力ゲインと前記入出力の位相遅れとを算出する、請求項1から6のいずれか1項に記載の機械学習装置。
【請求項8】
前記価値関数更新部により更新された価値関数に基づいて、前記係数及び前記フィードバックゲインの少なくとも一方の調整情報を出力する最適化行動情報出力部を備えた、請求項1から7のいずれか1項に記載の機械学習装置。
【請求項9】
請求項1から請求項8のいずれか1項に記載の機械学習装置と、
少なくとも1つのフィルタ、及びフィードバックゲインを設定する制御部を有する、モータを制御するサーボ制御装置と、
前記サーボ制御装置における、前記サーボ制御装置の入出力ゲインと入出力の位相遅れとを算出する周波数特性算出装置と、
を備えた制御装置。
【請求項10】
モータを制御するサーボ制御装置に設けられた、少なくとも1つのフィルタの係数とフィードバックゲインとの少なくとも一方を最適化する機械学習を行う機械学習装置の機械学習方法であって、
前記フィルタの係数と前記フィードバックゲインとの少なくとも一方、及び前記サーボ制御装置の入出力ゲインと入出力の位相遅れを含む状態情報を取得し、
前記状態情報に含まれる前記係数及び前記フィードバックゲインの少なくとも一方の調整情報を含む行動情報を出力し、
複素平面上の(-1,0)を内側に含み、所定のゲイン余裕及び位相余裕を通る閉曲線の内側を、前記入出力ゲインと前記入出力の位相遅れとから算出したナイキスト軌跡が通るかどうかに基づいて報酬を求めて出力し、
前記報酬の値と、前記状態情報と、前記行動情報とに基づいて価値関数を更新する、機械学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モータを制御するサーボ制御装置に設けられた少なくとも1つのフィルタの係数とフィードバックゲインとの少なくとも一方を最適化する機械学習を行う機械学習装置、この機械学習装置を含む制御装置、及び機械学習方法に関する。
【背景技術】
【0002】
位置偏差等に基づいてフィルタの係数及び速度制御部のゲインを機械学習する機械学習装置が、例えば特許文献1に記載されている。
具体的には、特許文献1には、サーボモータを制御する制御部のパラメータと、位置指令とトルク指令の少なくとも一方の補正値とを変更する変更部を備えるサーボモータ制御装置に対して、機械学習を行う機械学習装置であって、所定のプログラムをサーボモータ制御装置に実行させることにより、位置指令と、位置偏差を含むサーボ状態と、パラメータと補正値の組み合わせと、を含む状態情報を取得する状態情報取得手段と、状態情報に含まれるパラメータと補正値との組み合わせの調整情報を含む行動情報を出力する行動情報出力手段と、状態情報に含まれる前記位置偏差に基づく、強化学習における報酬の値を出力する報酬出力手段と、報酬出力手段により出力される報酬の値と、状態情報と、行動情報とに基づいて価値関数を更新する価値関数更新手段と、を備える機械学習装置が記載されている。
更に特許文献1には、サーボモータ制御装置の制御部は、位置指令に基づいて速度指令を生成する位置制御部と、位置制御部から出力される速度指令に基づいてトルク指令を生成する速度制御部と、速度制御部から出力されるトルク指令の所定周波数範囲の周波数の信号を減衰させるフィルタとを備え、変更部は、行動情報に基づいて位置制御部と速度制御部との少なくとも一方のゲイン、フィルタのフィルタ係数、及び位置指令又はトルク指令に加えるトルクオフセット値と摩擦補正値との少なくとも一方を変更することが記載されている。
【0003】
また、フィルタ部の出力信号のノイズ成分、ノイズ量及び入力信号に対する応答性の少なくとも1つに基づいて、フィルタ部に関連付けられる条件を学習する機械学習装置が、例えば特許文献2に記載されている。
具体的には、特許文献2には、アナログの入力信号をフィルタするフィルタ部に関連付けられる条件を学習する機械学習装置であって、フィルタ部の出力信号のノイズ成分、ノイズ量及び入力信号に対する応答性のうちの少なくとも1つから構成される状態変数を観測する状態観測部と、状態変数によって構成される訓練データセットに従って、フィルタ部に関連付けられる条件を学習する学習部と、を備えることを特徴とする機械学習装置が記載されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2019-128830号公報
【文献】特開2017-34852号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
速度ゲイン又はフィルタを調整する際、安定余裕の目安として位相余裕及びゲイン余裕で評価することが行われている。しかし、位相余裕とゲイン余裕とを別々に評価するとそれぞれの評価は“点”での評価になるため、これらの指標を機械学習の評価関数に導入しても、測定の揺らぎなどの影響を受けやすい。
よって、位相余裕とゲイン余裕との両方を考慮して速度ゲイン及びフィルタの少なくとも一方を調整することが望まれている。
【課題を解決するための手段】
【0006】
(1) 本開示の一態様は、モータを制御するサーボ制御装置に設けられた、少なくとも1つのフィルタの係数とフィードバックゲインとの少なくとも一方を最適化する機械学習を行う機械学習装置であって、
前記フィルタの係数と前記フィードバックゲインとの少なくとも一方、及び前記サーボ制御装置の入出力ゲインと入出力の位相遅れを含む状態情報を取得する状態情報取得部と、
前記状態情報に含まれる前記係数及び前記フィードバックゲインの少なくとも一方の調整情報を含む行動情報を出力する行動情報出力部と、
複素平面上の(-1,0)を内側に含み、所定のゲイン余裕及び位相余裕を通る閉曲線の内側を、前記入出力ゲインと前記入出力の位相遅れとから算出したナイキスト軌跡が通るかどうかに基づいて報酬を求めて出力する報酬出力部と、
前記報酬出力部により出力される報酬の値と、前記状態情報と、前記行動情報とに基づいて価値関数を更新する価値関数更新部と、
を備えた機械学習装置である。
【0007】
(2) 本開示の他の態様は、上記(1)の機械学習装置と、
少なくとも1つのフィルタ、及びフィードバックゲインを設定する制御部を有する、モータを制御するサーボ制御装置と、
前記サーボ制御装置における、前記サーボ制御装置の入出力ゲインと入出力の位相遅れとを算出する周波数特性算出装置と、
を備えた制御装置である。
【0008】
(3) 本開示の更に他の態様は、モータを制御するサーボ制御装置に設けられた、少なくとも1つのフィルタの係数とフィードバックゲインとの少なくとも一方を最適化する機械学習を行う機械学習装置の機械学習方法であって、
前記フィルタの係数と前記フィードバックゲインとの少なくとも一方、及び前記サーボ制御装置の入出力ゲインと入出力の位相遅れを含む状態情報を取得し、
前記状態情報に含まれる前記係数及び前記フィードバックゲインの少なくとも一方の調整情報を含む行動情報を出力し、
複素平面上の(-1,0)を内側に含み、所定のゲイン余裕及び位相余裕を通る閉曲線の内側を、前記入出力ゲインと前記入出力の位相遅れとから算出したナイキスト軌跡が通るかどうかに基づいて報酬を求めて出力し、
前記報酬の値と、前記状態情報と、前記行動情報とに基づいて価値関数を更新する、機械学習方法である。
【発明の効果】
【0009】
本開示の各態様によれば、位相余裕とゲイン余裕との両方を考慮してフィードバックゲイン及びフィルタの係数の少なくとも一方を調整することができ、測定の揺らぎなどの影響を受けることなく、サーボ系の安定性を確保しつつ、応答性を高くすることができる。
【図面の簡単な説明】
【0010】
図1】本開示の一実施形態の機械学習装置を含む制御装置を示すブロック図である。
図2】本開示の一実施形態の機械学習部を示すブロック図である。
図3】複素平面上にナイキスト軌跡、単位円、及びゲイン余裕と位相余裕を通る円を示す図である。
図4】ゲイン余裕と位相余裕、及びゲイン余裕と位相余裕を通る円の説明図である。
図5】閉ループのボーデ線図である。
図6】閉ループの規範モデルを示すブロック線図である。
図7】規範モデルのサーボ制御部と、学習前及び学習後のサーボ制御部との入出力ゲインの周波数特性を示す特性図である。
図8】本実施形態におけるQ学習時の機械学習部の動作を示すフローチャートである。
図9】本発明の一実施形態の機械学習部の最適化行動情報出力部の動作を説明するフローチャートである。
図10】複数のフィルタを直接接続してフィルタを構成した例を示すブロック図である。
図11】制御装置の他の構成例を示すブロック図である。
【発明を実施するための形態】
【0011】
以下、本開示の実施形態について図面を用いて詳細に説明する。
【0012】
図1は本開示の一実施形態の機械学習装置を含む制御装置を示すブロック図である。
制御装置10は、サーボ制御部100、周波数生成部200、周波数特性算出部300及び機械学習部400を備えている。サーボ制御部100はサーボ制御装置に対応し、周波数特性算出部300は周波数特性算出装置に対応し、機械学習部400は機械学習装置に対応する。
なお、周波数生成部200、周波数特性算出部300及び機械学習部400のうちの一つ又は複数は、サーボ制御部100の内に設けてもよい。周波数特性算出部300は、機械学習部400内に設けられてもよい。
【0013】
サーボ制御部100は、減算器110、速度制御部120、フィルタ130、電流制御部140、及びモータ150を備えている。減算器110、速度制御部120、フィルタ130、電流制御部140、及びモータ150は、閉ループとなる速度フィードバックループのサーボ系を構成する。モータ150は、直線運動をするリニアモータ、回転軸を有するモータ等を用いることができる。モータ150によって駆動される対象は、例えば、工作機械、ロボット、産業機械の機構部である。モータ150は、工作機械、ロボット、産業機械等の一部として設けられてもよい。制御装置10は、工作機械、ロボット、産業機械等の一部として設けられてもよい。
【0014】
減算器110は、入力された速度指令と速度フィードバックされた検出速度との差を求め、その差を速度偏差として速度制御部120に出力する。
【0015】
速度制御部120は、速度偏差に積分ゲインK1vを乗じて積分した値と、速度偏差に比例ゲインK2vを乗じた値とを加算して、トルク指令としてフィルタ130に出力する。速度制御部120はフィードバックゲインを設定する制御部となる。
【0016】
フィルタ130は、特定の周波数成分を減衰させるフィルタで、例えばノッチフィルタ、ローパスフィルタ又はバンドストップフィルタが用いられる。モータ150で駆動される機構部を有する工作機械等の機械では共振点が存在し、サーボ制御部100で共振が増大する場合がある。ノッチフィルタ等のフィルタは、共振を低減することができる。フィルタ130の出力は、トルク指令として電流制御部140に出力される。
数式1(以下に数1として示す)は、フィルタ130としてのノッチフィルタの伝達関数F(s)を示す。パラメータは係数ω、τ、δを示す。
数式1の係数δは、減衰係数、係数ωは中心角周波数、係数τは比帯域である。中心周波数をfc、帯域幅をfwとすると、係数ωはω=2πfc、係数τはτ=fw/fcで表される。
【数1】
【0017】
電流制御部140は、トルク指令に基づいてモータ150を駆動するための電流指令を生成し、その電流指令をモータ150に出力する。
モータ150がリニアモータの場合、可動部の位置は、モータ150に設けられたリニアスケール(図示せず)によって検出され、位置検出値を微分することで速度検出値を求め、求められた速度検出値は速度フィードバックとして減算器110に入力される。
モータ150が回転軸を有するモータの場合、回転角度位置は、モータ150に設けられたロータリーエンコーダ(図示せず)によって検出され、速度検出値は速度フィードバックとして減算器110に入力される。
以上のようにサーボ制御部100は構成されるが、速度制御部120のゲインの最適なゲイン、及びフィルタ130の最適なパラメータの少なくとも1つを機械学習するために、制御装置10は、周波数生成部200、周波数特性算出部300及び機械学習部400を更に備える。
【0018】
周波数生成部200は、周波数を変化させながら正弦波信号を速度指令として、サーボ制御部100の減算器110及び周波数特性算出部300に出力する。
【0019】
周波数特性算出部300は、周波数生成部200で生成された、入力信号となる速度指令(正弦波)と、ロータリーエンコーダ(図示せず)から出力された出力信号となる検出速度(正弦波)又はリニアスケールから出力される出力信号となる検出位置の積分(正弦波)とを用いて、速度指令により規定される各周波数ごとに、入力信号と出力信号との振幅比(入出力ゲイン)と位相遅れとを求める。
【0020】
機械学習部400は、周波数特性算出部300から出力される入出力ゲイン(振幅比)及び位相遅れを用いて、速度制御部120の積分ゲインK1v及び比例ゲインK2vのうちの1つ又は両方のゲイン、及びフィルタ130の伝達関数の係数ω、τ、δの少なくとも一方を機械学習(以下、学習という)する。機械学習部400による学習は出荷前に行われるが、出荷後に再学習を行ってもよい。
以下、機械学習部400の構成及び動作の詳細について更に説明する。以下の説明ではモータ150によって工作機械の機構部が駆動される場合を例にとって説明する。
【0021】
<機械学習部400>
以下の説明では、機械学習部400が強化学習を行う場合について説明するが、機械学習部400が行う学習は特に強化学習に限定されず、例えば、教師あり学習を行う場合にも本発明は適用可能である。
【0022】
機械学習部400に含まれる各機能ブロックの説明に先立って、まず強化学習の基本的な仕組みについて説明する。エージェント(本実施形態における機械学習部400に相当)は、環境の状態を観測し、ある行動を選択し、当該行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択(意思決定)を学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。このため、エージェントは、将来にわたっての報酬の合計を最大にするように行動を選択するように学習する。
【0023】
このように、強化学習では、エージェントは、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶ。これは、本実施形態において、エージェントが、例えば、機械端の振動を抑制するための行動情報を選択するという、未来に影響をおよぼすような行動を獲得できることを表している。
【0024】
ここで、強化学習としては、任意の学習方法を用いることができるが、以下の説明では、或る環境の状態Sの下で、行動Aを選択する価値Q(S,A)を学習する方法であるQ学習(Q-learning)を用いる場合を例にとって説明をする。
Q学習では、或る状態Sのとき、取り得る行動Aのなかから、価値Q(S,A)の最も高い行動Aを最適な行動として選択することを目的とする。
【0025】
しかしながら、エージェントは、Q学習を最初に開始する時点では、状態Sと行動Aとの組合せについて、価値Q(S,A)の正しい値は全く分かっていない。そこで、エージェントは、或る状態Sの下で様々な行動Aを選択し、その時の行動Aに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Q(S,A)を学習していく。
【0026】
また、エージェントは、将来にわたって得られる報酬の合計を最大化したいので、最終的にQ(S,A)=E[Σ(γ)r]となるようにすることを目指す。ここでE[]は期待値を表し、tは時刻、γは後述する割引率と呼ばれるパラメータ、rは時刻tにおける報酬、Σは時刻tによる合計である。この式における期待値は、最適な行動に従って状態変化した場合の期待値である。しかしQ学習の過程において最適な行動が何であるのかは不明であるので、エージェントは、様々な行動を行うことにより、探索しながら強化学習をする。このような価値Q(S,A)の更新式は、例えば、次の数式2(以下に数2として示す)により表すことができる。
【0027】
【数2】
【0028】
上記の数式2において、Sは、時刻tにおける環境の状態を表し、Aは、時刻tにおける行動を表す。行動Aにより、状態はSt+1に変化する。rt+1は、その状態の変化により得られる報酬を表している。また、maxの付いた項は、状態St+1の下で、その時に分かっている最もQ値の高い行動Aを選択した場合のQ値にγを乗じたものになる。ここで、γは、0<γ≦1のパラメータで、割引率と呼ばれる。また、αは、学習係数で、0<α≦1の範囲とする。
【0029】
上述した数式2は、試行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のあり方により変わってくるが、基本的には、ある状態における最良の行動の価値が、それに至る一つ前の状態における行動の価値に伝播していく仕組みになっている。
【0030】
ここで、Q学習では、すべての状態行動ペア(S,A)についてのQ(S,A)のテーブルを作成して、学習を行う方法がある。しかし、この学習方法を用いると、すべての状態行動ペアのQ(S,A)の値を求めるには状態数が多すぎて、Q学習が収束するのに多くの時間を要してしまう場合がある。
【0031】
そこで、公知のDQN(Deep Q-Network)と呼ばれる技術を利用するようにしてもよい。具体的には、DQNを利用して、価値関数Qを適当なニューラルネットワークを用いて構成し、ニューラルネットワークのパラメータを調整することにより、価値関数Qを適当なニューラルネットワークで近似することにより価値Q(S,A)の値を算出するようにしてもよい。DQNを利用することにより、Q学習が収束するのに要する時間を短くすることが可能となる。なお、DQNについては、例えば、以下の非特許文献に詳細な記載がある。
【0032】
<非特許文献>
「Human-level control through deep reinforcement learning」、Volodymyr Mnih1著[online]、[平成29年1月17日検索]、インターネット〈URL:http://files.davidqiu.com/research/nature14236.pdf〉
【0033】
以上説明をしたQ学習を機械学習部400が行う。具体的には、機械学習部400は、速度制御部120の積分ゲインK1vと比例ゲインK2v、フィルタ130の伝達関数の各係数ω、τ、δの値、及び周波数特性算出部300から出力された入出力ゲイン(振幅比)と位相遅れを状態Sとして、当該状態Sに係る、速度制御部120の積分ゲインK1vと比例ゲインK2v、及びフィルタ130の伝達関数の各係数ω、τ、δの値の調整を行動Aとして選択する価値Qを学習する。
【0034】
機械学習部400は、速度制御部120の積分ゲインK1vと比例ゲインK2v、及びフィルタ130の伝達関数の各係数ω、τ、δに基づいて、前述した周波数が変化する正弦波である速度指令を用いてサーボ制御部100を駆動することで周波数特性算出部300から得られた、各周波数ごとの入出力ゲインと位相遅れとを含む状態情報Sを観測して、行動Aを決定する。機械学習部400は、行動Aをするたびに報酬が返ってくる。
機械学習部400は、例えば、将来にわたっての報酬の合計が最大になるように最適な行動Aを試行錯誤的に探索する。そうすることで、機械学習部400は、速度制御部120の積分ゲインK1vと比例ゲインK2v、及びフィルタ130の伝達関数の各係数ω、τ、δに基づいて、周波数が変化する正弦波である速度指令を用いてサーボ制御部100を駆動することで周波数特性算出部300から得られた、各周波数ごとの入出力ゲインと位相遅れとを含む状態Sに対して、最適な行動A(すなわち、速度制御部120の積分ゲインK1vと比例ゲインK2v、及びフィルタ130の伝達関数の最適な係数ω、τ、δ)を選択することが可能となる。
【0035】
すなわち、機械学習部400は、学習された価値関数Qに基づいて、或る状態Sに係る速度制御部120の積分ゲインK1vと比例ゲインK2v、及びフィルタ130の伝達関数の各係数ω、τ、δに対して適用される行動Aのうち、Qの値が最大となるような行動Aを選択する。そして、機械学習部400は、Qの値が最大となるような行動Aを選択することで、周波数が変化する正弦波信号を生成するプログラムを実行することで生ずるサーボ制御部100の安定余裕が所定の値以上となるような行動A(すなわち、速度制御部120の積分ゲインK1vと比例ゲインK2v、及び/又はフィルタ130の伝達関数の各係数ω、τ、δ)を選択することが可能となる。
【0036】
図2は本開示の一実施形態の機械学習部400を示すブロック図である。
上述した強化学習を行うために、図2に示すように、機械学習部400は、状態情報取得部401、学習部402、行動情報出力部403、価値関数記憶部404、及び最適化行動情報出力部405を備える。学習部402は報酬出力部4021、価値関数更新部4022、及び行動情報生成部4023を備える。
【0037】
状態情報取得部401は、速度制御部120の積分ゲインK1vと比例ゲインK2v、及びフィルタ130の伝達関数の各係数ω、τ、δに基づいて、速度指令(正弦波)を用いてサーボ制御部100を駆動することで得られた、入出力ゲイン(振幅比)と位相遅れとを含む状態Sを周波数特性算出部300から取得する。この状態情報Sは、Q学習における、環境状態Sに相当する。
状態情報取得部401は、取得した状態情報Sを学習部402に対して出力する。
【0038】
なお、最初にQ学習を開始する時点での速度制御部120の積分ゲインK1vと比例ゲインK2v、及びフィルタ130の伝達関数の各係数ω、τ、δは、予めユーザが生成する。本実施形態では、機械学習部400が、ユーザが作成した、速度制御部120の積分ゲインK1vと比例ゲインK2v、及び/又はフィルタ130の伝達関数の各係数ω、τ、δの初期設定値を、強化学習により最適なものに調整する。
なお、積分ゲインK1v、比例ゲインK2v、及び係数ω、τ、δは予め操作者が工作機械を調整している場合には、調整済の値を初期値として機械学習してもよい。
【0039】
学習部402は、或る環境状態Sの下で、ある行動Aを選択する場合の価値Q(S,A)を学習する部分である。
【0040】
まず、学習部402の報酬出力部4021について説明する。
報酬出力部4021は、或る状態Sの下で、行動Aを選択した場合の報酬を求める部分である。
【0041】
速度フィードバックループは、減算器110と、伝達関数Hの開ループの回路とから構成される。開ループの回路は、図1に示した、速度制御部120、フィルタ130、電流制御部140、及びモータ150によって構成される。ある周波数ωのときの速度フィードバックループの入出力ゲインをc、位相遅れをθとしたとき、閉ループ周波数特性G(jω)はc・ejθとなる。閉ループ周波数特性G(jω)は、開ループ周波数特性H(jω)を用いて、G(jω)=H(jω)/(1+H(jω))と示される。よって、ある周波数ωのときの開ループ周波数特性H(jω)は、H(jω)=G(jω)/(1-G(jω))=c・ejθ/(1-c・ejθ)で求めることができる。
【0042】
報酬出力部4021は、積分ゲインK1vと比例ゲインK2v、及び係数ω、τ、δに基づいて、周波数が変化する速度指令(正弦波)を用いてサーボ制御部100を駆動することで得られた入出力ゲインと位相遅れを状態情報取得部401から得る。変化する周波数をωとしたとき、開ループ周波数特性H(jω)は、上述したように、関係式H(jω)=G(jω)/(1-G(jω))で求めることができる。報酬出力部4021は、状態情報取得部401から得られた入出力ゲインと位相遅れとを用い、開ループ周波数特性H(jω)を複素平面に描画することでナイキスト軌跡を作成する。
初期状態のナイキスト軌跡は、ユーザが設定した積分ゲインK1vと比例ゲインK2v、及び係数ω、τ、δに基づいて、速度指令(正弦波)を用いてサーボ制御部100を駆動することで得られる。Q学習の過程におけるナイキスト軌跡は、積分ゲインK1vと比例ゲインK2v、及び/又は係数ω、τ、δを修正し、速度指令(正弦波)を用いてサーボ制御部100を駆動することで得られる。図3は複素平面上にナイキスト軌跡、単位円、及びゲイン余裕と位相余裕を通る円を示す図である。図3は、初期状態のナイキスト軌跡(点線)及び比例ゲインと積分ゲインをそれぞれ1.5倍したときのナイキスト軌跡(実線)を示している。図4はゲイン余裕と位相余裕、及びゲイン余裕と位相余裕を通る円の説明図である。
【0043】
ユーザは、予め開ループの回路100Aのゲイン余裕と位相余裕の値を設定する。図3及び図4に示すように、複素平面上に(-1,0)を通る単位円を描くと、実軸上にユーザが設定したゲイン余裕を示し、単位円上にユーザが設定した位相余裕を示すことができる。
【0044】
報酬出力部4021は、複素平面上に、(-1,0)を内側に含み、実軸上のゲイン余裕と単位円上の位相余裕を通る閉曲線を作成する。
以下の説明では、図3及び図4に示すように、閉曲線を円とし、円の半径を半径r、円とナイキスト軌跡との最短距離を最短距離dとして説明する。ここでは最短距離dは、円の中心(図4の黒点)とナイキスト軌跡との最短距離とするが、これに限定されず、例えば円の外周とナイキスト軌跡との最短距離としてもよい。
なお、閉曲線は、円に限定されず、円以外の閉曲線、例えば菱形、四角形、又は楕円等であってもよい。
【0045】
報酬出力部4021は、最短距離dが半径rより小さく(d<r)、ナイキスト軌跡が閉曲線の内側を通る場合は負の値の報酬を与える。一方、報酬出力部4021は、最短距離dが半径rと等しいか又は大きく(d≧r)、ナイキスト軌跡が円の内側を通らない場合はゼロ又は正の値の報酬を与える。
【0046】
機械学習部400は、上記のように報酬を与えることで、円の内側をナイキスト軌跡が通らず、ゲイン余裕及び位相余裕をユーザの設定した値以上となる、速度制御部120の積分ゲインK1vと比例ゲインK2v、及びフィルタ130の伝達関数の係数ω、τ、δを試行錯誤的に探索する。
【0047】
以上説明した例では、ナイキスト軌跡が閉曲線となる円の内側を通るかどうかを、円とナイキスト軌跡との最短距離に基づいて決めているが、この方法に限定されず他の方法を用いてもよく、例えば、ナイキスト軌跡が閉曲線となる円の外周と接する又は円と交わるか否かによって判断してもよい。
【0048】
(応答速度を考慮した例)
円上(d=r)、又は円の外側(d>r)をナイキスト軌跡が通る場合に、ナイキスト軌跡が円から離れるほどゲイン余裕と位相余裕は大きくなりサーボ系の安定度は増すが、フィードバックゲインが低下し応答速度は低下する。
そこで、報酬出力部4021は、ユーザが決めたゲイン余裕と位相余裕以上で、フィードバックゲインをできる限り大きくなるように報酬を与えることが望ましい。以下、報酬出力部4021が、ユーザが決めたゲイン余裕と位相余裕以上で、フィードバックゲインをできる限り大きくするように報酬を決める方法の3つの例について説明する。
【0049】
(1)カットオフ周波数に基づいて報酬を決める方法
報酬出力部4021は、積分ゲインK1vと比例ゲインK2v、及び係数ω、τ、δに基づいて、速度指令(正弦波)を用いてサーボ制御部100を駆動することで得られた、閉ループの入出力ゲイン(振幅比)と位相遅れからボーデ線図を作成する。図5は、閉ループのボーデ線図の一例を示す。
カットオフ周波数は、例えば、ボーデ線図のゲイン特性が-3dBとなる周波数、又は位相特性が-180度となる周波数である。図5ではゲイン特性が-3dBとなる周波数をカットオフ周波数として示している。
【0050】
報酬出力部4021は、カットオフ周波数が大きくなるように報酬を決める。
具体的には、報酬出力部4021は、積分ゲインK1vと比例ゲインK2v、及び/又は係数ω、τ、δを修正し、修正前の状態Sから状態S´となった場合にカットオフ周波数fcutが大きくなるか、同じか又は小さくなるかで報酬を決める。以下の説明において、状態Sのときのカットオフ周波数fcutをfcut(S)、状態S´のときのカットオフ周波数fcutをfcut(S´)と記載する。
【0051】
状態Sから状態S´となった場合に、カットオフ周波数fcutが大きくなったとき、報酬出力部4021は、カットオフ周波数fcut(S´)>カットオフ周波数fcut(S)として、正の値の報酬を与える。
状態Sから状態S´となった場合に、カットオフ周波数fcutが変わらないとき、報酬出力部4021は、カットオフ周波数fcut(S´)=カットオフ周波数fcut(S)として、ゼロの値の報酬を与える。
状態Sから状態S´となった場合に、カットオフ周波数fcutが小さくなったとき、報酬出力部4021は、カットオフ周波数fcut(S´)<カットオフ周波数fcut(S)として、負の値の報酬を与える。
【0052】
以上のように報酬を決めることで、機械学習部400は、ナイキスト軌跡が円上又は円の外側を通る場合に、カットオフ周波数fcutが大きくなるように速度制御部120の積分ゲインK1vと比例ゲインK2v、及び/又はフィルタ130の伝達関数の係数ω、τ、δを試行錯誤的に探索する。
カットオフ周波数fcutが大きくなることで、フィードバックゲインが増大し応答速度は速くなる。
【0053】
(2)閉ループ特性に基づいて報酬を決める方法
報酬出力部4021は、積分ゲインK1vと比例ゲインK2v、及び係数ω、τ、δに基づいて、速度指令(正弦波)を用いてサーボ制御部100を駆動することで得られた、閉ループの入出力ゲイン(振幅比)と位相遅れから、閉ループの伝達関数G(jω)を求める。報酬出力部4021は、予め設定された周波数領域での評価関数fとして、f=Σ|1-G(jω)|を適用することができる。
報酬出力部4021は、評価関数fの値が小さくなるように報酬を決める。
具体的には、報酬出力部4021は、積分ゲインK1vと比例ゲインK2v、及び/又は係数ω、τ、δを修正し、修正前の状態Sから状態S´となった場合に、評価関数fの値が小さくなるか、同じか又は大きくなるかで報酬を決める。以下の説明において、状態Sのときの評価関数fの値をf(S)、状態S´のときの評価関数fの値をf(S´)と記載する。
評価関数fの値が小さくなれば、図5に示す閉ループのボーデ線図のカット周波数が大きくなる。
【0054】
状態Sから状態S´となった場合に、評価関数fの値が小さくなったとき、報酬出力部4021は、評価関数の値f(S´)<評価関数の値f(S)として、正の値の報酬を与える。
状態Sから状態S´となった場合に、評価関数fの値が変わらないとき、報酬出力部4021は、評価関数の値f(S´)=評価関数の値f(S)として、ゼロの値の報酬を与える。
状態Sから状態S´となった場合に、評価関数fの値が大きくなったとき、報酬出力部4021は、評価関数の値f(S´)>評価関数の値f(S)として、負の値の報酬を与える。
【0055】
以上のように報酬を決めることで、機械学習部400は、ナイキスト軌跡が円上又は円の外側を通る場合に、評価関数fの値が小さくなるように速度制御部120の積分ゲインK1vと比例ゲインK2v、及びフィルタ130の伝達関数の係数ω、τ、δを試行錯誤的に探索する。
評価関数fの値が小さくなることで、フィードバックゲインが増大し応答速度は速くなる。
【0056】
(3)最短距離dが半径rに近づくように報酬を決める方法
円上(d=r)、又は円の外側(d>r)をナイキスト軌跡が通る場合に、ナイキスト軌跡が閉曲線に近づくように報酬を決める。
具体的には、報酬出力部4021は、積分ゲインK1vと比例ゲインK2v、及び/又は係数ω、τ、δを修正し、修正前の状態Sから状態S´となった場合に、円の中心とナイキスト軌跡との最短距離dが小さくなるか、同じか、又は大きくなるかで報酬を決める。以下の説明において、状態Sのときの最短距離dをd(s)、状態S´のときの最短距離dをd(s´)と記載する。
【0057】
状態Sから状態S´となった場合に、最短距離dが小さくなったとき、報酬出力部4021は、最短距離d(S´)<最短距離d(S)として、正の値の報酬を与える。
状態Sから状態S´となった場合に、最短距離dが変わらないとき、報酬出力部4021は、最短距離d(S´)=最短距離d(S)として、ゼロの値の報酬を与える。
状態Sから状態S´となった場合に、最短距離dが大きくなったとき、報酬出力部4021は、最短距離d(S´)>最短距離d(S)として、負の値の報酬を与える。
【0058】
以上のように報酬を決めることで、機械学習部400は、ナイキスト軌跡が円上を通る又は円の外周に近づくように速度制御部120の積分ゲインK1vと比例ゲインK2v、及び/又はフィルタ130の伝達関数の係数ω、τ、δを試行錯誤的に探索する。
ナイキスト軌跡が円上を通る又は円の外周に近づくことで、フィードバックゲインが増大し応答速度は速くなる。
最短距離dの情報に基づいて報酬を決める方法は上記の方法に限定されず、他の方法を適用することができる。
【0059】
(共振を考慮した例)
円上(d=r)、又は円の外側(d>r)をナイキスト軌跡が通る場合でも、制御対象となる機械の機械端の共振により入出力ゲインが増大する場合がある。
そこで、報酬出力部4021は、ユーザが決めたゲイン余裕と位相余裕以上で、共振を抑制するように報酬を決めることが望ましい。以下、開ループ特性と規範モデルとの比較により報酬を決める方法について説明する。
【0060】
以下、報酬出力部4021が、作成した周波数特性における各周波数ごとの入出力ゲインが規範モデルの入出力ゲインよりも大きい場合に、負の報酬を与える動作について図6及び図7を用いて説明する。
【0061】
報酬出力部4021は、入出力ゲインの規範モデルを保存している。規範モデルは、共振のない理想的な特性を有するサーボ制御部のモデルである。規範モデルは、例えば、図6に示すモデルのイナーシャJa、トルク定数K、比例ゲインK、積分ゲインK、微分ゲインKから計算で求めることができる。イナーシャJaはモータイナーシャと機械イナーシャとの加算値である。
【0062】
図7は、規範モデルのサーボ制御部と、学習前及び学習後のサーボ制御部100との入出力ゲインの周波数特性を示す特性図である。図7の特性図に示すように、規範モデルは、一定の入出力ゲイン以上、例えば、-20dB以上での理想的な入出力ゲインとなる周波数領域である領域FAと、一定の入出力ゲイン未満となる周波数領域である領域FBとを備えている。図7の領域FAにおいて、規範モデルの理想的な入出力ゲインを曲線MC(太線)で示す。図7の領域FBにおいて、規範モデルの理想的な仮想入出力ゲインを曲線MC11(破線の太線)で示し、規範モデルの入出力ゲインを一定値として直線MC12(太線)で示す。図7の領域FA及びFBにおいて、学習前及び学習後のサーボ制御部との入出力ゲインの曲線を、それぞれ曲線RC、RCで示す。
【0063】
報酬出力部4021は、領域FAでは、作成した周波数特性における各周波数ごとの入出力ゲインの学習前の曲線RCが規範モデルの理想的な入出力ゲインの曲線MCを超えた場合は、負の報酬を与える。
入出力ゲインが十分小さくなる周波数を超える領域FBでは、学習前の入出力ゲインの曲線RCが規範モデルの理想的な仮想入出力ゲインの曲線MC11を超えたとしても安定性への影響が小さくなる。そのため領域FBでは、上述したように、規範モデルの入出力ゲインは、理想的なゲイン特性の曲線MC11ではなく、一定値の入出力ゲイン(例えば、-20dB)の直線MC12を用いる。しかし、学習前の測定した入出力ゲインの曲線RCが一定値の入出力ゲインの直線MC12を超えた場合には、不安定になる可能性があるため、報酬出力部4021は、報酬として負の値を与える。
【0064】
なお、入出力ゲインのゲインを調整する場合、行動情報出力部403は、速度制御部120の積分ゲインK1vと比例ゲインK2v、及び/又はフィルタ130の伝達関数の係数ω、τ、δを調整する。フィルタ130の特性は、フィルタ130の帯域幅fwによって、ゲイン及び位相が変わり、フィルタ130の減衰係数kによって、ゲイン及び位相が変わる。よって、行動情報出力部403は、フィルタ130の係数を調整することで入出力ゲインのゲインを調整することができる。
【0065】
報酬出力部4021は、最短距離dが半径rより小さく(d<r)、ナイキスト軌跡が閉曲線の内側を通る場合で負の値の報酬を与えた場合は、この負の値の報酬を価値関数更新部4022に出力する。報酬出力部4021は、最短距離dが半径rと等しいか又は大きく(d≧r)、ナイキスト軌跡が円の内側を通らない場合で正の値の報酬を与えた場合は、この正の値の報酬を価値関数更新部4022に出力する。
報酬出力部4021は、応答速度を考慮した3つの例又は共振を考慮した例で報酬を与えた場合は、この報酬に、ナイキスト軌跡が円の内側を通らない場合に与えられる正の値の報酬を加えた合計の報酬を価値関数更新部4022に出力する。
【0066】
なお、報酬を加算する場合、報酬に重みを与えてもよい。例えば、サーボ系の安定性を重視する場合は、ナイキスト軌跡が円の内側を通らない場合に与えられる正の値の報酬は、応答速度を考慮した3つの例又は共振を考慮した例で与える報酬よりも重要度を高くするような重みを与えることができる。
以上、報酬出力部4021について説明した。
【0067】
価値関数更新部4022は、状態Sと、行動Aと、行動Aを状態Sに適用した場合の状態S´と、上記のようにして求めた報酬と、に基づいてQ学習を行うことにより、価値関数記憶部404が記憶する価値関数Qを更新する。
価値関数Qの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
オンライン学習は、或る行動Aを現在の状態Sに適用することにより、状態Sが新たな状態S´に遷移する都度、即座に価値関数Qの更新を行う学習方法である。また、バッチ学習は、或る行動Aを現在の状態Sに適用することにより、状態Sが新たな状態S´に遷移することを繰り返すことにより、学習用のデータを収集し、収集した全ての学習用データを用いて、価値関数Qの更新を行う学習方法である。更に、ミニバッチ学習は、オンライン学習と、バッチ学習の中間的な、ある程度学習用データが溜まるたびに価値関数Qの更新を行う学習方法である。
【0068】
行動情報生成部4023は、現在の状態Sに対して、Q学習の過程における行動Aを選択する。行動情報生成部4023は、Q学習の過程において、速度制御部120の積分ゲインK1vと比例ゲインK2v、及び/又はフィルタ130の伝達関数の各係数ω、τ、δを修正する動作(Q学習における行動Aに相当)を行わせるために、行動情報Aを生成して、生成した行動情報Aを行動情報出力部403に対して出力する。
より具体的には、行動情報生成部4023は、例えば、状態Sに含まれる、速度制御部120の積分ゲインK1vと比例ゲインK2v、及び/又はフィルタ130の伝達関数の各係数ω、τ、δに対して行動Aに含まれる、速度制御部120の積分ゲインK1vと比例ゲインK2v、及びフィルタ130の伝達関数の各係数ω、τ、δをインクレメンタルに加算又は減算する。
【0069】
なお、行動情報生成部4023は、速度制御部120の積分ゲインK1vと比例ゲインK2v、及びフィルタ130の各係数ω、τ、δは全てを修正するように行動情報Aを生成してもよいが、一部の係数を修正するように行動情報Aを生成してもよい。フィルタ130の各係数ω、τ、δを修正する場合、例えば、共振を生ずる中心周波数fcは見つけやすく、中心周波数fcは特定しやすい。そこで、行動情報生成部4023は、中心周波数fcを仮に固定して、帯域幅fw及び減衰係数δを修正、すなわち、係数ω(=2πfc)を固定し、係数τ(=fw/fc)と及び減衰係数δを修正する動作を行わせるために、行動情報Aを生成して、生成した行動情報Aを行動情報出力部403に対して出力してもよい。
【0070】
また、行動情報生成部4023は、現在の推定される行動Aの価値の中で、最も価値Q(S,A)の高い行動A´を選択するグリーディ法や、ある小さな確率εでランダムに行動A´選択し、それ以外では最も価値Q(S,A)の高い行動A´を選択するεグリーディ法といった公知の方法により、行動A´を選択する方策を取るようにしてもよい。
【0071】
行動情報出力部403は、学習部402から出力される行動情報Aを速度制御部120及びフィルタ130に対して送信する部分である。上述したように、この行動情報に基づいて、現在の状態S、すなわち現在設定されている、速度制御部120の積分ゲインK1vと比例ゲインK2v、及び/又は各係数ω、τ、δを微修正することで、現在の状態Sは、次の状態S´(すなわち修正された、速度制御部120の積分ゲインK1vと比例ゲインK2v、及び/又はフィルタ130の各係数)に遷移する。
【0072】
価値関数記憶部404は、価値関数Qを記憶する記憶装置である。価値関数Qは、例えば状態S、行動A毎にテーブル(以下、行動価値テーブルと呼ぶ)として格納されてもよい。価値関数記憶部404に記憶された価値関数Qは、価値関数更新部4022により更新される。また、価値関数記憶部404に記憶された価値関数Qは、他の機械学習部400との間で共有されるようにしてもよい。価値関数Qを複数の機械学習部400で共有するようにすれば、各機械学習部400は、分散して強化学習を行うことが可能となるので、強化学習の効率を向上させることが可能となる。
【0073】
最適化行動情報出力部405は、価値関数更新部4022がQ学習を行うことにより更新した価値関数Qに基づいて、価値Q(S,A)が最大となる動作を速度制御部120及びフィルタ130に行わせるための行動情報A(以下、「最適化行動情報」と呼ぶ)を生成する。
より具体的には、最適化行動情報出力部405は、価値関数記憶部404が記憶している価値関数Qを取得する。この価値関数Qは、上述したように価値関数更新部4022がQ学習を行うことにより更新したものである。そして、最適化行動情報出力部405は、価値関数Qに基づいて、行動情報を生成し、生成した行動情報を速度制御部120及び/又はフィルタ130に対して出力する。この最適化行動情報には、行動情報出力部403がQ学習の過程において出力する行動情報と同様に、速度制御部120の積分ゲインK1vと比例ゲインK2v、及び/又はフィルタ130の伝達関数の各係数ω、τ、δを修正する情報が含まれる。
【0074】
速度制御部120では、この行動情報に基づいて積分ゲインK1vと比例ゲインK2vが修正され、フィルタ130では、この行動情報に基づいて伝達関数の各係数ω、τ、δが修正される。
機械学習部400は、以上の動作で、速度制御部120の積分ゲインK1vと比例ゲインK2v及び/又はフィルタ130の伝達関数の各係数ω、τ、δの最適化を行い、サーボ制御部100の安定余裕が所定の値以上となるように動作させることができる。
また、機械学習部400は、以上の動作で、速度制御部120の積分ゲインK1vと比例ゲインK2v及び/又はフィルタ130の伝達関数の各係数ω、τ、δの最適化を行い、サーボ制御部100の安定余裕が所定の値以上とするとともに、フィードバックゲインを大きくして応答速度を高める、及び/又は共振を抑制するように動作させることができる。
以上のように、本開示の機械学習部400を利用することで、速度制御部120のゲイン及びフィルタ130のパラメータ調整を簡易化することができる。
【0075】
以上、制御装置10に含まれる機能ブロックについて説明した。
これらの機能ブロックを実現するために、制御装置10は、CPU(Central Processing Unit)等の演算処理装置を備える。また、制御装置10は、アプリケーションソフトウェアやOS(Operating System)等の各種の制御用プログラムを格納したHDD(Hard Disk Drive)等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった主記憶装置も備える。
【0076】
そして、制御装置10において、演算処理装置が補助記憶装置からアプリケーションソフトウェアやOSを読み込み、読み込んだアプリケーションソフトウェアやOSを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやOSに基づいた演算処理を行なう。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
【0077】
機械学習部400については機械学習に伴う演算量が多いため、例えば、パーソナルコンピュータがGPU(Graphics Processing Units)を搭載し、GPGPU(General-Purpose computing on Graphics Processing Units)と呼ばれる技術により、GPUを機械学習に伴う演算処理に利用するようにすると高速処理できるようになる。更には、より高速な処理を行うために、このようなGPUを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
【0078】
次に、図8のフローチャートを参照して本実施形態におけるQ学習時の機械学習部400の動作について説明をする。以下に説明するフローチャートは、サーボ系の安定性を高めるために、機械学習部400が、ナイキスト軌跡が閉曲線の内側を通るか否かにより報酬を与えた後に、応答速度を高めるためにカットオフ周波数に基づいて報酬を与えるように学習を行う動作について説明する。
【0079】
ステップS11において、状態情報取得部401が、サーボ制御部100及び周波数生成部200から最初の状態情報Sを取得する。取得した状態情報は、価値関数更新部4022や行動情報生成部4023に対して出力される。上述したように、この状態情報Sは、Q学習における状態に相当する情報である。
【0080】
最初にQ学習を開始する時点での状態Sにおける、入出力ゲイン(振幅比)Gs(S)、及び位相遅れΘs(S)は、周波数が変化する正弦波である速度指令を用いてサーボ制御部100を駆動することで、周波数特性算出部300から得られる。速度指令と検出速度は周波数特性算出部300に入力され、周波数特性算出部300から出力される、入出力ゲイン(振幅比)Gs(S)、及び位相遅れΘs(S)が、順次、状態情報取得部401に最初の状態情報として入力される。速度制御部120の積分ゲインK1vと比例ゲインK2v、及びフィルタ130の伝達関数の各係数ω、τ、δの初期値は予めユーザが生成し、状態情報取得部401に対して積分ゲインK1vと比例ゲインK2v、及び係数ω、τ、δの初期値が最初の状態情報として送られる。
【0081】
ステップS12において、行動情報生成部4023は新たな行動情報Aを生成し、生成した新たな行動情報Aを、行動情報出力部403を介して速度制御部120及び/又はフィルタ130に対して出力する。行動情報生成部4023は前述した方策に基づいて、新たな行動情報Aを出力する。なお、行動情報Aを受信したサーボ制御部100は、受信した行動情報に基づいて現在の状態Sに係る、速度制御部120の積分ゲインK1vと比例ゲインK2v、及び/又はフィルタ130の伝達関数の各係数ω、τ、δを修正した状態S´により、周波数が変化する正弦波である速度指令を用いてモータ150を駆動する。上述したように、この行動情報は、Q学習における行動Aに相当するものである。
【0082】
ステップS13において、状態情報取得部401は、新たな状態S´における、入出力ゲイン(振幅比)Gs(S´)と位相遅れΘs(S´)、速度制御部120の積分ゲインK1vと比例ゲインK2v、及びフィルタ130から伝達関数の各係数ω、τ、δを新たな状態情報として取得する。取得した新たな状態情報は、報酬出力部4021に対して出力される。
【0083】
ステップS14において、報酬出力部4021は、報酬出力部4021は、周波数特性算出部300から出力された入出力ゲイン(振幅比)と位相遅れのデータに基づいて、開ループ周波数特性H(jω)を求める。そして、報酬出力部4021は、開ループ周波数特性H(jω)を複素平面に描画することでナイキスト軌跡を作成する。報酬出力部4021は、複素平面上に、(-1,0)を内側に含み、実軸上のゲイン余裕と単位円上の位相余裕を通る閉曲線を作成し、最短距離dが半径rより小さいか(d<r)否か(d≧r)を判断する。
【0084】
ステップS14において、報酬出力部4021が、最短距離dが半径rより小さいと判断した場合は(d<r)、ステップS15において、報酬出力部4021は、報酬を負の値とし、ステップS12に戻る。
ステップS14において、報酬出力部4021が、最短距離dが半径rと等しいか大きいと判断した場合は(d≧r)、ステップS16において、報酬出力部4021は、報酬をゼロの値とし、ステップS17に移る。
【0085】
ステップS17において、報酬出力部4021は、カットオフ周波数fcutの大小関係、すなわち、カットオフ周波数fcutが大きくなるか、同じか、又は小さくなるかを判断する。なお、状態Sのときのカットオフ周波数fcutをfcut(S)、状態S´のときのカットオフ周波数fcutをfcut(S´)と記載する。
【0086】
ステップS17で、報酬出力部4021が、カットオフ周波数fcut(S´)>カットオフ周波数fcut(S)と判断したときは、ステップS18において、報酬出力部4021は正の値の報酬を与える。
ステップS17で、報酬出力部4021がカットオフ周波数fcut(S´)=カットオフ周波数fcut(S)と判断したときは、ステップS19において、報酬出力部4021はゼロの値の報酬を与える。
ステップS17で、報酬出力部4021がカットオフ周波数fcut(S´)<カットオフ周波数fcut(S)と判断したときは、ステップS20において、報酬出力部4021は負の値の報酬を与える。
【0087】
ステップS18、ステップS19及びステップS20の何れかが終了すると、ステップS21において、報酬出力部4021は、ステップS16で与えられた報酬とステップS18、ステップS19及びステップS20のいずれかにて与えられた報酬を加算する。
【0088】
次に、ステップS22において、ステップS21にて算出された合計の報酬の値に基づいて、価値関数更新部4022が、価値関数記憶部404に記憶している価値関数Qを更新する。そして、再度ステップS12に戻り、上述した処理を繰り返すことにより、価値関数Qは適切な値に収束していく。なお、上述した処理を、所定回数繰り返したことや、所定時間繰り返したことを条件として処理を終了するようにしてもよい。
なお、ステップS22はオンライン更新を例示しているが、オンライン更新に替えてバッチ更新又はミニバッチ更新に置き換えてもよい。
【0089】
以上、図8を参照して説明した動作により、本実施形態では、機械学習部400を利用することで、速度制御部120の積分ゲインK1vと比例ゲインK2v、及び/又はフィルタ130の伝達関数の各係数ω、τ、δの調整のための、適切な価値関数を得ることができ、速度制御部120の積分ゲインK1vと比例ゲインK2v、及び/又はフィルタ130の伝達関数の各係数ω、τ、δの最適化を簡易化することができる、という効果を奏する。
次に、図9のフローチャートを参照して、最適化行動情報出力部405による最適化行動情報の生成時の動作について説明をする。
まず、ステップS23において、最適化行動情報出力部405は、価値関数記憶部404に記憶している価値関数Qを取得する。価値関数Qは、上述したように価値関数更新部4022がQ学習を行うことにより更新したものである。
【0090】
ステップS24において、最適化行動情報出力部405は、この価値関数Qに基づいて、最適化行動情報を生成し、生成した最適化行動情報を速度制御部120及び/又はフィルタ130に対して出力する。
【0091】
また、図9を参照して説明した動作により、本実施形態では、機械学習部400により学習することにより求められる価値関数Qに基づいて、最適化行動情報を生成し、この最適化行動情報に基づいて、現在設定されている、速度制御部120の積分ゲインK1vと比例ゲインK2v、及び/又はフィルタ130の伝達関数の各係数ω、τ、δの調整を簡易化するとともに、サーボ制御部100の安定を図るとともに、応答速度を上げることができる。
【0092】
なお、上述した図8及び図9を用いて説明した動作は、サーボ系の安定性を高めるために、ナイキスト軌跡が閉曲線の内側を通るか否かにより報酬を与えた後に、応答速度を高める上述した方法(1)によりカットオフ周波数に基づいて報酬を与える動作であったが、本実施形態では、応答速度を高めるために、閉ループ特性に基づいて報酬を決める方法(2)又は最短距離dが半径rに近づくように報酬を決める方法(3)を用いてもよい。
【0093】
また、本実施形態では、サーボ系の安定性を高めるために、ナイキスト軌跡が閉曲線の内側を通るか否かにより報酬を与えた後に、上述した、共振を考慮した例で説明したように、共振を抑制するために開ループ特性と規範モデルとの比較により報酬を決める方法を用いてもよい。
【0094】
上記の制御装置に含まれる各構成部は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記の制御装置に含まれる各構成部のそれぞれの協働により行なわれるサーボ制御方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【0095】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(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)によってコンピュータに供給されてもよい。
【0096】
上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【0097】
上述した実施形態では、1つのフィルタを設けた場合について説明したが、フィルタ130はそれぞれ異なる周波数帯域に対応する複数個のフィルタを直列に接続することで構成してもよい。図10は複数のフィルタを直接接続してフィルタを構成した例を示すブロック図である。図10において、m個(mは2以上の自然数)の共振点がある場合に、フィルタ130は、m個のフィルタ130-1~130-mを直列接続して構成する。m個のフィルタ130-1~130-mのそれぞれの係数ω、τ、δについて、最適値を機械学習により求めていく。
【0098】
また、制御装置の構成は図1の構成以外にも以下の構成がある。
<機械学習部がサーボ制御部の外部に設けられた変形例>
図11は制御装置の他の構成例を示すブロック図である。図11に示す制御装置10Aが、図1に示した制御装置10と異なる点は、n(nは2以上の自然数)個のサーボ制御部100-1~100-nが、ネットワーク500を介してn個の機械学習部400-1~400-nに接続されていること、及びサーボ制御部100-1~100-nが、それぞれ周波数生成部200と周波数特性算出部300を備えていることである。機械学習部400-1~400-nは図2に示した機械学習部400と同じ構成を有している。サーボ制御部100-1~100-nはそれぞれサーボ制御装置に対応しており、また機械学習部400-1~400-nはそれぞれ機械学習装置に対応している。なお、周波数生成部200と周波数特性算出部300の一方又は両方をサーボ制御部100-1~100-nの外に設けてもよいことは勿論である。
【0099】
ここで、サーボ制御部100-1と、機械学習部400-1とは1対1の組とされて、通信可能に接続されている。サーボ制御部100-2~100-nと、機械学習部400-2~400-nとについても、サーボ制御部100-1と機械学習部400-1と同様に接続される。図11では、サーボ制御部100-1~100-nと、機械学習部400-1~400-nとのn個の組は、ネットワーク500を介して接続されているが、サーボ制御部100-1~100-nと、機械学習部400-1~400-nとのn個の組は、それぞれの組のサーボ制御部と機械学習部とが接続インタフェースを介して直接接続されてもよい。これらサーボ制御部100-1~100-nと機械学習部400-1~400-nとのn個の組は、例えば同じ工場に複数組設置されていてもよく、それぞれ異なる工場に設置されていてもよい。
【0100】
なお、ネットワーク500は、例えば、工場内に構築されたLAN(Local Area Network)、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワーク500における具体的な通信方式又は、有線接続および無線接続のいずれであるか等については、特に限定されない。
【0101】
<システム構成の自由度>
上述した実施形態では、サーボ制御部100-1~100-nと、機械学習部400-1~400-nとはそれぞれ1対1の組とされて通信可能に接続されているが、例えば1台の機械学習部が複数のサーボ制御部とネットワーク500を介して通信可能に接続され、各サーボ制御部の機械学習を実施するようにしてもよい。
その際、1台の機械学習部の各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、1台の機械学習部の各機能を実現してもよい。
【0102】
また、n台の同じ型名、同一仕様、又は同一シリーズのサーボ制御部100-1~100-nとそれぞれ対応するn個の機械学習部400-1~400-nがあった場合に、制御装置10Aは、各機械学習部400-1~400-nにおける学習結果を共有するように構成されてもよい。そうすることで、より最適なモデルを構築することが可能となる。
【0103】
本開示による機械学習装置、制御装置及び機械学習方法は、上述した実施形態を含め、次のような構成を有する各種各様の実施形態を取ることができる。
(1) モータ(例えば、モータ150)を制御するサーボ制御装置(例えば、サーボ制御部100)に設けられた、少なくとも1つのフィルタ(例えば、フィルタ130)の係数とフィードバックゲインとの少なくとも一方を最適化する機械学習を行う機械学習装置(例えば、機械学習部400)であって、
前記フィルタの係数と前記フィードバックゲインとの少なくとも一方、及び前記サーボ制御装置の入出力ゲインと入出力の位相遅れを含む状態情報を取得する状態情報取得部(例えば、状態情報取得部401)と、
前記状態情報に含まれる前記係数及び前記フィードバックゲインの少なくとも一方の調整情報を含む行動情報を出力する行動情報出力部(例えば、行動情報出力部403)と、
複素平面上の(-1,0)を内側に含み、所定のゲイン余裕及び位相余裕を通る閉曲線の内側を、前記入出力ゲインと前記入出力の位相遅れとから算出したナイキスト軌跡が通るかどうかに基づいて報酬を求めて出力する報酬出力部(例えば、報酬出力部4021)と、
前記報酬出力部により出力される報酬の値と、前記状態情報と、前記行動情報とに基づいて価値関数を更新する価値関数更新部(価値関数更新部4022)と、
を備えた機械学習装置。
この機械学習装置によれば、位相余裕とゲイン余裕との両方を考慮してフィードバックゲイン及びフィルタの係数の少なくとも一方を調整することができ、サーボ系の安定度を高めることができる。
【0104】
(2) 前記報酬出力部は、前記閉曲線と前記ナイキスト軌跡との間の距離に基づいて報酬を求めて出力する、上記(1)に記載の機械学習装置。
【0105】
(3) 前記閉曲線は円である、上記(1)又は(2)に記載の機械学習装置。
【0106】
(4) 前記報酬出力部は、前記報酬にカットオフ周波数に基づいて計算される報酬を加えた合計の報酬を出力する、上記(1)から(3)のいずれかに記載の機械学習装置。
この機械学習装置によれば、フィードバックゲインを大きくして応答速度を高めることが可能となる。
【0107】
(5) 前記報酬出力部は、前記報酬に閉ループ特性に基づいて計算される報酬を加えた合計の報酬を出力する、上記(1)から(3)のいずれかに記載の機械学習装置。
この機械学習装置によれば、フィードバックゲインを大きくして応答速度を高めることが可能となる。
【0108】
(6) 前記報酬出力部は、前記報酬に、前記入出力ゲインと予め計算された規範となるゲインとの比較により計算される報酬を加えた合計の報酬を出力する、上記(1)から(3)のいずれかに記載の機械学習装置。
この機械学習装置によれば、共振を抑制することが可能となる。
【0109】
(7) 前記入出力ゲインと前記入出力の位相遅れとは、周波数特性算出装置(例えば、周波数特性算出部300)によって算出され、
前記周波数特性算出装置は、周波数が変わる正弦波の入力信号と、前記サーボ制御装置の速度フィードバック情報とを用いて、前記入出力ゲインと前記入出力の位相遅れとを算出する、上記(1)から(6)のいずれかに記載の機械学習装置。
【0110】
(8) 前記価値関数更新部により更新された価値関数に基づいて、前記係数及び前記フィードバックゲインの少なくとも一方の調整情報を出力する最適化行動情報出力部(例えば、最適化行動情報出力部405)を備えた上記(1)から(7)のいずれかに記載の機械学習装置。
【0111】
(9) 上記(1)から(8)のいずれかに記載の機械学習装置(機械学習部400)と、
少なくとも1つのフィルタ、及びフィードバックゲインを設定する制御部(例えば、速度制御部120)を有する、モータを制御するサーボ制御装置(例えば、サーボ制御部100)と、
前記サーボ制御装置における、前記サーボ制御装置の入出力ゲインと入出力の位相遅れとを算出する周波数特性算出装置(例えば、周波数特性算出部300)と、
を備えた制御装置。
この制御装置によれば、位相余裕とゲイン余裕との両方を考慮してフィードバックゲイン及びフィルタの係数の少なくとも一方を調整することができ、サーボ系の安定度を高めることができる。
【0112】
(10) モータ(例えば、モータ150)を制御するサーボ制御装置(例えば、サーボ制御部100)に設けられた、少なくとも1つのフィルタ(例えば、フィルタ130)の係数とフィードバックゲインとの少なくとも一方を最適化する機械学習を行う機械学習装置(例えば、機械学習部400)の機械学習方法であって、
前記フィルタの係数と前記フィードバックゲインとの少なくとも一方、及び前記サーボ制御装置の入出力ゲインと入出力の位相遅れを含む状態情報を取得し、
前記状態情報に含まれる前記係数及び前記フィードバックゲインの少なくとも一方の調整情報を含む行動情報を出力し、
複素平面上の(-1,0)を内側に含み、所定のゲイン余裕及び位相余裕を通る閉曲線の内側を、前記入出力ゲインと前記入出力の位相遅れとから算出したナイキスト軌跡が通るかどうかに基づいて報酬を求めて出力し、
前記報酬の値と、前記状態情報と、前記行動情報とに基づいて価値関数を更新する、機械学習方法。
この機械学習方法によれば、位相余裕とゲイン余裕との両方を考慮してフィードバックゲイン及びフィルタの係数の少なくとも一方を調整することができ、サーボ系の安定度を高めることができる。
【符号の説明】
【0113】
10、10A 制御装置
100、100-1~100-n サーボ制御部
110 減算器
120 速度制御部
130 フィルタ
140 電流制御部
150 モータ
200 周波数生成部
300 周波数特性算出部
400、400-1~400-n 機械学習部
401 状態情報取得部
402 学習部
403 行動情報出力部
404 価値関数記憶部
405 最適化行動情報出力部
500 ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11