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