(57)【要約】【課題】制御対象の位置の制振性および目標位置に対する追従性を向上させることができる制御装置を提供する。【解決手段】制御装置は、制御周期毎に、操作量と制御対象の位置との関係を示す動特性モデルを用いたモデル予測制御を行なうことにより、サーボドライバに出力する操作量を生成する制御手段を備える。動特性モデルは、操作量とサーボモータの位置との関係を示す第１動特性モデルと、サーボモータの位置と制御対象の位置との関係を示す第２動特性モデルとを含む。第２動特性モデルは、制御対象の振動波形から抽出された波形パラメータを用いて作成される。波形パラメータは振動周波数を含む。【選択図】図６
2020126481.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を移動させるためのサーボモータを駆動するサーボドライバに接続され、前記サーボドライバに操作量を出力して前記制御対象の位置制御を行なう制御装置であって、
制御周期毎に、前記操作量と前記制御対象の位置との関係を示す動特性モデルを用いたモデル予測制御を行なうことにより、前記サーボドライバに出力する操作量を生成する制御手段を備え、
前記動特性モデルは、前記操作量と前記サーボモータの位置との関係を示す第１動特性モデルと、前記サーボモータの位置と前記制御対象の位置との関係を示す第２動特性モデルとを含み、
前記第２動特性モデルは、前記制御対象の振動波形から抽出された波形パラメータを用いて作成され、
前記波形パラメータは振動周波数を含む、制御装置。
【請求項２】
前記波形パラメータは、前記振動波形において連続する２つの波の振幅比をさらに含む、請求項１に記載の制御装置。
【請求項３】
前記制御手段は、
今回の制御周期までに生成した操作量を前記第１動特性モデルに入力することにより前記サーボモータの予測位置を演算し、
前記サーボモータの予測位置を前記第２動特性モデルに入力することにより、前記今回の制御周期の終了時から前記動特性モデルに規定されるむだ時間だけ経過した未来の制御周期における前記制御対象の予測位置を演算し、
前記制御対象の予測位置と前記動特性モデルとを用いて、前記未来の制御周期以降の前記制御対象の位置と目標軌道との偏差が最小となるように、次回の制御周期において前記サーボドライバに出力する操作量を生成する、請求項１または２に記載の制御装置。
【請求項４】
前記制御手段は、前記サーボモータからのフィードバック値に基づいて、前記サーボモータの予測位置を補正する、請求項１または２に記載の制御装置。
【請求項５】
前記制御手段は、
前記第１動特性モデルを規定する特性パラメータを出力する出力手段と、
前記特性パラメータと前記波形パラメータとを受けて、前記サーボドライバに出力する前記操作量を生成する生成手段とを含む、請求項１または２に記載の制御装置。
【請求項６】
前記制御手段は、
前記波形パラメータを受けて、前記第１動特性モデルと前記第２動特性モデルとを組み合わせた前記動特性モデルを規定する特性パラメータを出力する出力手段と、
前記特性パラメータを受けて、前記サーボドライバに出力する前記操作量を生成する生成手段とを含む、請求項１または２に記載の制御装置。
【請求項７】
前記制御手段は、
前記第１動特性モデルを規定する特性パラメータを出力するとともに、前記制御対象の計測位置を受けて前記波形パラメータを出力する出力手段と、
前記特性パラメータと前記波形パラメータとを受けて、前記サーボドライバに出力する前記操作量を生成する生成手段とを含む、請求項１または２に記載の制御装置。
【請求項８】
前記制御装置は、ユーザプログラムを実行するプロセッサを含み、
前記出力手段および前記生成手段は、前記ユーザプログラムに規定されるファンクションブロックによって実現される、請求項５から７のいずれか１項に記載の制御装置。
【請求項９】
請求項１から８のいずれか１項に記載の前記制御装置が用いる前記第２動特性モデルを作成するモデル作成方法であって、
前記制御対象の振動波形を取得するステップと、
前記振動波形から波形パラメータを抽出するステップと、
前記波形パラメータを用いて前記第２動特性モデルを作成するステップとを備え、
前記波形パラメータは振動周波数を含む、モデル作成方法。
【請求項１０】
制御対象を移動させるためのサーボモータを駆動するサーボドライバに接続され、前記サーボドライバに操作量を出力して前記制御対象の位置制御を行なう制御装置において実行される制御プログラムであって、
前記制御プログラムは、前記制御装置に、
前記操作量と前記サーボモータの位置との関係を示す第１動特性モデルを作成するステップと、
前記制御対象の振動波形から抽出された波形パラメータを用いて、前記サーボモータの位置と前記制御対象の位置との関係を示す第２動特性モデルを作成するステップと、
制御周期毎に、前記第１動特性モデルと前記第２動特性モデルとを用いたモデル予測制御を行なうことにより、前記サーボドライバに出力する操作量を生成するステップとを実行させ、
前記波形パラメータは振動周波数を含む、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、制御装置、モデル作成方法および制御プログラムに関する。
【背景技術】
【０００２】
特開２０１７−１７５８９０号公報（特許文献１）は、被駆動部の位置を指令する位置指令部と、位置指令を補正する補正フィルタ部と、補正後位置指令に基づきサーボモータの移動を制御するサーボ制御部とを有するモータ制御装置を開示している。補正フィルタ部は、モータ位置から機械位置までの伝達特性の逆特性を近似する逆特性フィルタを含む。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１７５８９０号公報
【特許文献２】特開２０１８−１２０３２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示のモータ制御装置は、逆特性フィルタを用いることにより、機械位置が計測できない場合であっても、機械位置を目標位置に追従させるための位置指令を生成する。しかしながら、一般にサーボ制御部において応答遅れが生じるため、機械位置の制振性および目標位置に対する追従性が低下しやすくなる。特に、振動が生じやすい低剛性の機械では、サーボ制御部のゲインを高くできないため、サーボ制御部における応答遅れが大きくなりやすい。
【０００５】
本発明は、上記の問題に鑑みてなされたものであり、その目的は、制御対象の位置の制振性および目標軌道に対する追従性を向上させることができる制御装置および制御プログラムと、当該制御装置が用いるモデルを作成するモデル作成方法とを提供することである。
【課題を解決するための手段】
【０００６】
本開示の一例によれば、制御装置は、制御対象を移動させるためのサーボモータを駆動するサーボドライバに接続され、サーボドライバに操作量を出力して制御対象の位置制御を行なう。制御装置は、制御周期毎に、操作量と制御対象の位置との関係を示す動特性モデルを用いたモデル予測制御を行なうことにより、サーボドライバに出力する操作量を生成する制御手段を備える。動特性モデルは、操作量とサーボモータの位置との関係を示す第１動特性モデルと、サーボモータの位置と制御対象の位置との関係を示す第２動特性モデルとを含む。第２動特性モデルは、制御対象の振動波形から抽出された波形パラメータを用いて作成される。波形パラメータは振動周波数を含む。
【０００７】
この開示によれば、制御対象の振動波形を計測することにより、サーボモータの位置と制御対象の位置との関係を示す第２動特性モデルを作成することができる。また、第１動特性モデルは、サーボモータからのフィードバック値を用いて容易に作成される。そして、第１動特性モデルと第２動特性モデルとを組み合わせることにより、操作量と制御対象の位置との関係を示す動特性モデルを作成できる。作成された動特性モデルを用いたモデル予測制御を行なうことにより操作量を生成するため、制御対象の位置を目標軌道に追従させることができるとともに、制御対象の位置の制振性を向上させることができる。
【０００８】
上述の開示において、波形パラメータは、振動波形において連続する２つの波の振幅比をさらに含む。
【０００９】
この開示によれば、制御対象により近い第２動特性モデルを作成でき、制御対象の位置の予測精度が向上する。
【００１０】
上述の開示において、制御手段は、今回の制御周期までに生成した操作量を第１動特性モデルに入力することによりサーボモータの予測位置を演算する。制御手段は、サーボモータの予測位置を第２動特性モデルに入力することにより、現在の制御周期の終了時から動特性モデルに規定されるむだ時間だけ経過した未来の制御周期における制御対象の予測位置を演算する。制御手段は、制御対象の予測位置と動特性モデルとを用いて、上記の未来の制御周期以降の制御対象の位置と目標軌道との偏差が最小となるように、次の制御周期においてサーボドライバに出力する操作量を生成する。
【００１１】
この開示によれば、制御手段は、第１動特性モデルおよび第２動特性モデルを用いて、今回の制御周期までに生成した操作量から制御対象の予測位置を容易に演算できる。そして、モデル予測制御により、制御対象の位置を目標軌道に追従させることができる。
【００１２】
上述の開示において、制御手段は、サーボモータからのフィードバック値に基づいて、サーボモータの予測位置を補正してもよい。
【００１３】
この開示によれば、フィードバック値に基づいてサーボモータの予測位置が補正されるため、制御対象の予測位置の予測精度が向上する。
【００１４】
上述の開示において、制御手段は、第１動特性モデルを規定する特性パラメータを出力する出力手段と、特性パラメータと波形パラメータとを受けて、サーボドライバに出力する操作量を生成する生成手段とを含む。
【００１５】
もしくは、制御手段は、波形パラメータを受けて、第１動特性モデルと第２動特性モデルとを組み合わせた動特性モデルを規定する特性パラメータを出力する出力手段と、特性パラメータを受けて、サーボドライバに出力する操作量を生成する生成手段とを含んでもよい。
【００１６】
もしくは、制御手段は、第１動特性モデルを規定する特性パラメータを出力するとともに、制御対象の位置を受けて波形パラメータを出力する出力手段と、特性パラメータと波形パラメータとを受けて、サーボドライバに出力する操作量を生成する生成手段とを含んでもよい。
【００１７】
さらに、制御装置は、ユーザプログラムを実行するプロセッサを含む。出力手段および生成手段は、ユーザプログラムに規定されるファンクションブロックによって実現される。
【００１８】
この開示によれば、ファンクションブロックを用いて、出力手段および生成手段を容易に実現することができる。
【００１９】
本開示の一例によれば、上記の制御装置が用いる第２動特性モデルを生成するモデル生成方法は、制御対象の振動波形を取得するステップと、振動波形から波形パラメータを抽出するステップと、波形パラメータを用いて第２動特性モデルを生成するステップとを備える。波形パラメータは振動周波数を含む。
【００２０】
本開示の一例によれば、制御プログラムは、制御対象を移動させるためのサーボモータを駆動するサーボドライバに接続され、サーボドライバに操作量を出力して制御対象の位置制御を行なう制御装置において実行される。制御プログラムは、制御装置に、操作量とサーボモータの位置との関係を示す第１動特性モデルを生成するステップと、制御対象の振動波形から抽出された波形パラメータを用いて、サーボモータの位置と制御対象の位置との関係を示す第２動特性モデルを生成するステップと、制御周期毎に、第１動特性モデルと第２動特性モデルとを用いたモデル予測制御を行なうことにより、サーボドライバに出力する操作量を生成するステップとを実行させる。波形パラメータは振動周波数を含む。
【００２１】
これらの開示によっても、制御対象の位置の制振性および目標軌道に対する追従性を向上させることができる。
【発明の効果】
【００２２】
本発明によれば、制御対象の位置の制振性および目標軌道に対する追従性を向上させることができる。
【図面の簡単な説明】
【００２３】
【図１】本実施の形態に従う制御装置が適用される制御システムの構成例を示す模式図である。
【図２】本実施の形態に従う制御装置１００のハードウェア構成の一例を示す模式図である。
【図３】本実施の形態に係る制御装置の機能構成を示す模式図である。
【図４】第１動特性モデルを作成するために実行されるチューニングを説明する図である。
【図５】振動波形の一例を示す図である。
【図６】第１動特性モデルおよび第２動特性モデルを用いた負荷位置の演算方法の例を示す図である。
【図７】本実施の形態に従う制御システムによるモータ制御の処理手順を示すフローチャートである。
【図８】図７に示すステップＳ２のサブルーチンの流れを示すフローチャートである。
【図９】本実施の形態に従う制御装置で実行されるユーザプログラムの命令コードの一例を示す図である。
【図１０】モータ制御のシミュレーション結果の一例を示す図である。
【図１１】モータ制御のシミュレーション結果の別の例を示す図である。
【図１２】変形例に係る制御装置の機能構成を示す模式図である。
【発明を実施するための形態】
【００２４】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２５】
§１  適用例
まず、図１を参照して、本発明が適用される場面の一例について説明する。図１は、本実施の形態に従う制御装置が適用される制御システムの構成例を示す模式図である。図１に示す例の制御システム１は、制御対象２と、制御装置１００と、１または複数のサーボドライバと、１または複数のサーボモータとを含む。
【００２６】
図１に示す例の制御対象２は、ワークが置載されるワーキングプレート３を互いに直交する二方向にそれぞれ移動させることができるＸＹステージである。なお、制御対象２は、ＸＹステージに限定されるものではなく、指定された位置（停止位置）に位置決めされる装置であってもよい。
【００２７】
１または複数のサーボモータは、制御対象２のワーキングプレート３を移動させるためのモータであり、図１に示す例では、２つのサーボモータ３００Ｘ，３００Ｙ（以下、「サーボモータ３００」とも称する。）を含む。
【００２８】
制御対象２は、ワーキングプレート３の他に、第１ベースプレート４と、第２ベースプレート７とを有する。
【００２９】
第１ベースプレート４には、ワーキングプレート３をＸ方向に沿って任意に移動させるボールネジ６が配置されている。ボールネジ６は、ワーキングプレート３に含まれるナットと係合されている。ボールネジ６の一端に連結されたサーボモータ３００Ｘが回転駆動することで、ワーキングプレート３に含まれるナットとボールネジ６とが相対回転し、その結果、ワーキングプレート３がＸ方向に沿って移動することになる。
【００３０】
さらに、第２ベースプレート７は、ワーキングプレート３および第１ベースプレート４をＹ方向に沿って任意に移動させるボールネジ９が配置されている。ボールネジ９は、第１ベースプレート４に含まれるナットと係合されている。ボールネジ９の一端に連結されたサーボモータ３００Ｙが回転駆動することで、第１ベースプレート４に含まれるナットとボールネジ９とが相対回転し、その結果、ワーキングプレート３および第１ベースプレート４がＹ方向に沿って移動することになる。
【００３１】
１または複数のサーボドライバは、サーボモータを駆動する。図１に示す例では、２つのサーボドライバ２００Ｘ，２００Ｙ（以下、「サーボドライバ２００」とも称する。）は、サーボモータ３００Ｘ，３００Ｙをそれぞれ駆動する。
【００３２】
サーボドライバ２００は、制御装置１００からの指令値（指令位置または指令速度）と、対応するサーボモータ３００からのフィードバック値とに基づいて、対応するサーボモータ３００に対する駆動信号を生成する。サーボドライバ２００は、生成した動作信号をサーボモータ３００に出力することにより、サーボモータ３００を駆動する。
【００３３】
例えば、サーボドライバ２００は、対応するサーボモータ３００の回転軸に結合されたエンコーダからの出力信号をフィードバック値として受ける。フィードバック値により、サーボモータ３００の位置、回転位相、回転速度、累積回転数などを検出できる。
【００３４】
制御装置１００は、１または複数のサーボドライバ２００に接続され、１または複数のサーボドライバ２００に対してそれぞれ操作量を出力して、制御対象２のワーキングプレート３の位置制御を行なう。制御装置１００と１または複数のサーボドライバ２００との間では、操作量を含むデータの遣り取りが可能になっている。
【００３５】
図１には、制御装置１００と１または複数のサーボドライバ２００との間は、フィールドバス１０１を介して接続されている構成例を示す。但し、このような構成例に限らず、任意の通信手段を採用することができる。あるいは、制御装置１００とサーボドライバ２００との間を直接信号線で接続するようにしてもよい。さらに、制御装置１００とサーボドライバ２００とを一体化した構成を採用してもよい。以下に説明するような、アルゴリズムが実現されるものであれば、どのような実装形態を採用してもよい。
【００３６】
制御装置１００は、操作量と制御対象２の位置（以下、「負荷位置」とも称する。）との関係を示す動特性モデルを用いたモデル予測制御を行なうことにより、サーボドライバ２００に出力する操作量を生成する。制御装置１００は、生成した操作量を指令値（指令位置または指令速度）としてサーボドライバ２００に出力する。動特性モデルは、サーボドライバ２００、サーボモータ３００および制御対象２のモデルであり、入力値である操作量（すなわち指令値）と出力値である負荷位置との関係を表す伝達関数によって規定される。モデル予測制御とは、目標値とモデルを用いて予測された出力値との偏差が最小となるように入力値を決定する制御手法である。
【００３７】
ここで、負荷位置を連続かつ高精度に計測することにより得られる計測値を取得できれば、操作量と負荷位置との伝達関数を直接的に作成することができる。しかしながら、負荷位置を連続かつ高精度に計測するためにはコストがかかる。そのため、本実施の形態の制御装置１００は、操作量とサーボモータ３００の位置（以下、「モータ位置」と称する。）との関係を示す第１動特性モデルと、モータ位置と負荷位置との関係を示す第２動特性モデルとを用いてモデル予測制御を行なう。
【００３８】
第１動特性モデルは、サーボドライバ２００およびサーボモータ３００のモデルであり、入力値である操作量と出力値であるモータ位置との関係を表す伝達関数によって規定される。通常、サーボモータ３００にはエンコーダが設置され、エンコーダからのフィードバック値によりモータ位置が連続かつ高精度に計測される。そのため、モータ位置の計測値に基づいて第１動特性モデルが作成される。
【００３９】
第２動特性モデルは、制御対象２のモデルであり、入力値であるモータ位置と出力値である負荷位置との関係を表す伝達関数によって規定される。モータ位置と負荷位置との関係は、制御対象２の振動に依存する。そのため、第２動特性モデルは、制御対象２の振動波形から抽出された波形パラメータを用いて作成される。波形パラメータは、制御対象２の振動周波数（典型的には固有振動周波数）を含む。
【００４０】
制御対象２の振動波形は、簡易な計測装置を用いて計測可能である。図１に示す例では、制御対象２の振動波形は、レーザ変位計５，８を用いて計測される。レーザ変位計５は、ワーキングプレート３におけるＸ方向に直交する端面の変位を計測する。レーザ変位計５の計測結果から、ワーキングプレート３のＸ方向の振動波形を得ることができる。レーザ変位計８は、ワーキングプレート３におけるＹ方向に直交する端面の変位を計測する。レーザ変位計８の計測結果から、ワーキングプレート３のＹ方向の振動波形を得ることができる。なお、振動波形は、レーザ変位計以外のセンサを用いて計測されてもよい。
【００４１】
このように、簡易な計測装置を用いて制御対象２の振動波形を計測することにより、モータ位置と負荷位置との関係を示す第２動特性モデルを作成することができる。そして、第１動特性モデルと第２動特性モデルとを組み合わせることにより、操作量（すなわち指令値）と負荷位置との関係を示す動特性モデルを作成できる。作成された動特性モデルを用いたモデル予測制御を行なうことにより操作量を生成するため、負荷位置を目標軌道に追従させることができるとともに、負荷位置の制振性を向上させることができる。
【００４２】
§２  具体例
次に、本実施の形態に係る制御装置１００の具体例について説明する。
【００４３】
＜Ａ．制御装置のハードウェア構成例＞
本実施の形態に従う制御装置１００は、一例として、ＰＬＣ（プログラマブルコントローラ）を用いて実装されてもよい。制御装置１００は、予め格納された制御プログラム（後述するような、システムプログラムおよびユーザプログラムを含む）をプロセッサが実行することで、後述するような処理が実現されてもよい。
【００４４】
図２は、本実施の形態に従う制御装置１００のハードウェア構成の一例を示す模式図である。図２に示されるように、制御装置１００は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ１０２と、チップセット１０４と、メインメモリ１０６と、フラッシュメモリ１０８と、外部ネットワークコントローラ１１６と、メモリカードインターフェイス１１８と、内部バスコントローラ１２２と、フィールドバスコントローラ１２４と、外部ネットワークコントローラ１１６と、メモリカードインターフェイス１１８とを含む。
【００４５】
プロセッサ１０２は、フラッシュメモリ１０８に格納されたシステムプログラム１１０およびユーザプログラム１１２を読み出して、メインメモリ１０６に展開して実行することで、制御対象に対する任意の制御を実現する。プロセッサ１０２がシステムプログラム１１０およびユーザプログラム１１２を実行することで、後述するような、サーボドライバ２００への操作量の出力、フィールドバスを介したデータ通信に係る処理などを実行する。
【００４６】
システムプログラム１１０は、データの入出力処理や実行タイミング制御などの、制御装置１００の基本的な機能を提供するための命令コードを含む。システムプログラム１１０は、その一部として、モデル作成ライブラリ１１０Ａおよびモデル予測制御ライブラリ１１０Ｂを含む。これらのライブラリは、一種のプログラムモジュールであり、本実施の形態に従う処理および機能を実現するための命令コードを含む。ユーザプログラム１１２は、制御対象に応じて任意に設計され、シーケンス制御を実行するためのシーケンスプログラム１１２Ａおよびモーション制御を実行するためのモーションプログラム１１２Ｂとを含む。ユーザプログラム１１２において、モデル作成ライブラリ１１０Ａおよびモデル予測制御ライブラリ１１０Ｂをそれぞれ利用するモデル作成ファンクションブロックおよびモデル予測制御ファンクションブロックが定義されることで、本実施の形態に従う処理および機能が実現される。ファンクションブロックは、制御装置１００で実行されるプログラムのコンポーネントであり、複数回使用するプログラムエレメントをモジュール化したものを意味する。
【００４７】
チップセット１０４は、各コンポーネントを制御することで、制御装置１００全体としての処理を実現する。
【００４８】
内部バスコントローラ１２２は、制御装置１００と内部バスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、Ｉ／Ｏユニット１２６が接続されている。
【００４９】
フィールドバスコントローラ１２４は、制御装置１００とフィールドバスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、サーボドライバ２００が接続されている。
【００５０】
内部バスコントローラ１２２およびフィールドバスコントローラ１２４は、接続されているデバイスに対して任意の指令を与えることができるとともに、デバイスが管理している任意のデータ（測定値を含む）を取得することができる。また、内部バスコントローラ１２２および／またはフィールドバスコントローラ１２４は、サーボドライバ２００との間でデータを遣り取りするためのインターフェイスとしても機能する。
【００５１】
外部ネットワークコントローラ１１６は、各種の有線／無線ネットワークを通じたデータの遣り取りを制御する。メモリカードインターフェイス１１８は、メモリカード１２０を着脱可能に構成されており、メモリカード１２０に対してデータを書込み、メモリカード１２０からデータを読出すことが可能になっている。
【００５２】
＜Ｂ．サーボドライバ＞
本実施の形態に従う制御装置１００に接続されるサーボドライバ２００の動作について説明する。サーボドライバ２００は、制御装置１００から出力された操作量を指令値（指令位置または指令速度）として受けるとともに、サーボモータ３００に結合されたエンコーダからの出力信号をフィードバック値として受ける。サーボドライバ２００は、指令値およびフィードバック値を用いて、例えばモデル追従制御系の制御ループに従う制御演算を実行する。
【００５３】
サーボドライバ２００は、指令値として指令位置を受ける場合、位置制御ループおよび速度制御ループに従う制御演算を実行する。サーボドライバ２００は、指令値として指令速度を受ける場合、速度制御ループに従う制御演算を実行する。
【００５４】
サーボドライバ２００は、位置制御ループに従う制御演算を実行することにより、フィードバック値により得られるサーボモータ３００の計測位置と制御装置１００から与えられる指令位置との位置偏差に応じた指令速度を演算する。
【００５５】
サーボドライバ２００は、速度制御ループに従う制御演算を実行することにより、指令速度とフィードバック値から得られるサーボモータ３００の計測速度との速度偏差に応じたトルクを演算する。サーボドライバ２００は、演算されたトルクをサーボモータ３００に発生させるための電流指令を示す動作信号を出力する。
【００５６】
＜Ｃ．制御装置の機能構成例＞
図３は、本実施の形態に係る制御装置の機能構成を示す模式図である。図３に示されるように、制御装置１００は、モデル作成モジュール１３０と、軌道生成モジュール１４０と、モデル予測制御モジュール１５０とからなる制御ユニット１６０を備える。図中においては、モデル予測制御を「ＭＰＣ（Model Predictive Control）」とも記す。なお、制御装置１００は、サーボドライバ２００Ｘ，２００Ｙにそれぞれ対応する２つの制御ユニット１６０を備えている。ただし、図３には簡略化のため２つの制御ユニット１６０のうち一方のみが描かれている。
【００５７】
モデル作成モジュール１３０は、典型的には、ユーザプログラム１１２において、モデル作成ファンクションブロックが規定されることにより、モデル作成ライブラリ１１０Ａがコールされて実現される。すなわち、モデル作成モジュール１３０は、ユーザプログラム１１２に規定されるファンクションブロックによって機能化される。
【００５８】
モデル作成モジュール１３０は、サーボドライバ２００およびサーボモータ３００からなる第１モデル対象４００の動特性を示す第１動特性モデルを作成する。モデル作成モジュール１３０は、作成した第１動特性モデルを規定する特性パラメータをモデル予測制御モジュール１５０へ与える。
【００５９】
軌道生成モジュール１４０は、予め指定された目標軌道に沿って、制御対象２の目標位置の時系列データを生成し、各制御周期に対応する目標位置ＳＰを当該時系列データから順次読出し、モデル予測制御モジュール１５０へ入力する。具体的には、軌道生成モジュール１４０は、目標位置の時系列データから、現時刻から将来の一定期間である予測ホライズン終了までの複数の目標位置を抽出し、モデル予測制御モジュール１５０へ入力する。
【００６０】
なお、制御装置１００は、目標軌道を規定する目標位置の時系列データを予め記憶しておいてもよい。この場合には、軌道生成モジュール１４０は、予め記憶された目標位置の時系列データへアクセスする。このように、目標軌道を規定する制御周期毎の目標位置は、時系列データの形で予め格納されていてもよいし、予め定められた計算式に従って各制御周期についての目標位置を逐次計算するようにしてもよい。
【００６１】
モデル予測制御モジュール１５０は、典型的には、ユーザプログラム１１２において、モデル予測制御ファンクションブロックが規定されることにより、モデル予測制御ライブラリ１１０Ｂがコールされて実現される。すなわち、モデル予測制御モジュール１５０は、ユーザプログラム１１２に規定されるファンクションブロックによって機能化される。
【００６２】
モデル予測制御モジュール１５０は、負荷である制御対象２からなる第２モデル対象４０２の動特性を示す第２動特性モデルを作成する。モデル予測制御モジュール１５０は、制御周期毎に、第１動特性モデルおよび第２動特性モデルを用いたモデル予測制御を行なうことにより、サーボドライバ２００に出力する操作量ＭＶを生成する。モデル予測制御モジュール１５０は、生成した操作量ＭＶを指令値としてサーボドライバ２００に出力する。
【００６３】
＜Ｄ．第１動特性モデルの作成＞
次に、第１動特性モデルの作成手法について説明する。第１動特性モデルは、例えば特開２０１８−１２０３２７（特許文献２）に開示の手法を用いて作成される。第１動特性モデルは、モデル予測制御を実行する前のチューニングにより作成される。
【００６４】
図４は、第１動特性モデルを作成するために実行されるチューニングを説明する図である。図４に示されるように、制御装置１００のモデル作成モジュール１３０は、チューニング用に予め設定された複数の操作量（例えば指令位置）を順にサーボドライバ２００に出力し、サーボモータ３００の計測位置を取得する。サーボモータ３００の計測位置は、サーボモータ３００の回転軸に結合されたエンコーダから出力されるフィードバック値から特定される。モデル作成モジュール１３０は、操作量および計測位置をそれぞれ同定入力および同定出力とし、同定入力に対する同定出力の関係を用いてシステム同定手法を適用することで、第１動特性モデルを作成できる。
【００６５】
第１動特性モデルを示す関数は、例えば以下の関数ＰＣＭ（ｚ−１）で示される。関数ＰＣＭ（ｚ−１）は、むだ時間要素と、ｎ次遅れ要素とを組み合わせた離散時間伝達関数である。関数ＰＣＭ（ｚ−１）で示される第１動特性モデルにおいては、むだ時間要素のむだ時間ｄならびにｎ次遅れ要素の変数ａ１〜ａｎおよび変数ｂ１〜ｂｍが特性パラメータとして決定される。なお、次数ｎおよび次数ｍについても最適な値が決定されてもよい。
【００６６】
【数１】
2020126481.tif 000003
【００６７】
このような特性パラメータの作成処理（すなわち、システム同定）は、同定入力および同定出力を用いて、最小二乗法などにより実行されてもよい。
【００６８】
具体的には、ｙ＝ＰＣＭ（ｚ−１）*ｕの変数ｕに同定入力として選択された操作量を与えたときの出力ｙが、同定出力として選択された計測位置と一致するように（すなわち、誤差が最小になるように）、特性パラメータの各々の値が決定される。
【００６９】
このとき、むだ時間ｄを先に決定した上で、同定出力を当該決定したむだ時間ｄだけ進めた補正後の時間波形を生成し、その補正後の時間波形に基づいて、むだ時間要素を除いた残りの伝達関数の要素を決定してもよい。
【００７０】
次数ｎおよび次数ｍを異ならせて、複数の第１動特性モデルを算出するようにしてもよい。この場合、１または複数の評価基準に基づいて、最適な第１動特性モデルが作成される。評価基準としては、同定の信頼性を示す度合い（ＦＩＴ率）やむだ時間の妥当性などが含まれる。また、定位系モデルの場合には、評価基準として、定常ゲインの妥当性を採用してもよい。
【００７１】
ＦＩＴ率は、算出された特性パラメータによって規定される関数ＰＣＭ（ｚ−１）に対して、同定入力を与えたときに算出される出力と、実際に収集された同定出力との間の一致率を示す値である。このようなＦＩＴ率については、誤差を算出する公知の計算式を用いることができる。基本的には、ＦＩＴ率が最大（すなわち、一致率が最大／誤差が最小）であるものを選択すればよい。
【００７２】
また、第１動特性モデルの評価に際しては、特異的な挙動を示すものを除外するようにしてもよい。例えば、制御対象の本来の特性に含まれない特異な挙動を示す場合には、本来の制御対象の本来の特性を示すものではないと考えられるので、問題がある動特性モデルとして除外するようにしてもよい。
【００７３】
このように、第１動特性モデルの算出過程においては、特性パラメータを異ならせた複数の第１動特性モデルを算出するようにしてもよい。この場合、上記のＦＩＴ率を用いて、複数の第１動特性モデルのうち１つの第１動特性モデルが作成されるようにしてもよい。
【００７４】
＜Ｅ．第２動特性モデルの作成＞
次に、第２動特性モデルの作成手法について説明する。第２動特性モデルは、モデル予測制御を実行する前のチューニングにおいて取得された制御対象２の振動波形を用いて作成される。例えば、第１動特性モデルを作成するために実行されるチューニングにおいて、図１に示すレーザ変位計５，８は、サーボモータ３００の回転を停止した直後のワーキングプレート３の振動波形を計測する。
【００７５】
図５は、振動波形の一例を示す図である。図５には、横軸を時間とし、縦軸を制御対象２の位置（負荷位置）とするグラフが示される。サーボモータ３００の回転が停止したとしても、制御対象２のワーキングプレート３は振動する。ワーキングプレート３は、制御対象２に応じた振動周波数に従って振動する。そこで、制御装置１００のモデル作成モジュール１３０は、振動波形から振動周期Ｔ０’を抽出し、ｆ０＝１／Ｔ０’に従って振動周波数ｆ０を算出する。もしくは、モデル作成モジュール１３０は、減衰の影響を考慮して、以下の［数２］に従って振動周波数ｆ０を算出してもよい。ζは振動の減衰比を示す。
【００７６】
【数２】
2020126481.tif 000004
【００７７】
モデル予測制御モジュール１５０は、算出した振動周波数ｆ０を用いて第２動特性モデルを作成する。第２動特性モデルを示す関数は、例えば以下の［数３］の関数ＰＭＬ（ｓ）で示される。関数ＰＭＬ（ｓ）において、ω０は、制御対象２の振動角周波数であり、ω０＝２πｆ０で示される。モデル予測制御モジュール１５０は、算出した振動周波数ｆ０を用いて、関数ＰＭＬ（ｓ）で示される第２動特性モデルを作成できる。
【００７８】
【数３】
2020126481.tif 000005
【００７９】
第２動特性モデルを示す関数は、以下の［数４］または「数５］の関数ＰＭＬ（ｓ）で示されてもよい。
【００８０】
【数４】
2020126481.tif 000006
【００８１】
【数５】
2020126481.tif 000007
【００８２】
ζは、対数減衰率δを用いて、ζ＝δ／（δ２＋４π２）１／２で示される。対数減衰率δは、振動波形において連続する２つの波の振幅比Ａｄｒと自然対数ｌｎとを用いて、δ＝ｌｎ（１／Ａｄｒ）で示される。振幅比Ａｄｒは、図６に示す振動波形において連続する２つの波の振幅Ａｎ，Ａｎ＋１の比Ａｎ＋１／Ａｎで示される。そのため、モデル作成モジュール１３０は、振動波形から振幅比Ａｄｒおよび振動周波数ｆ０を抽出し、抽出した振幅比Ａｄｒおよび振動周波数ｆ０を用いて、［数４］または「数５］の関数ＰＭＬ（ｓ）で示される第２動特性モデルを作成できる。
【００８３】
なお、モデル予測制御モジュール１５０は、［数３］〜［数５］の関数ＰＭＬ（ｓ）を離散時間形式に変換（Ｚ変換）し、変換された関数ＰＭＬ（ｚ−１）を用いて演算を行なう。すなわち、モデル予測制御モジュール１５０は、ｙ’＝ ＰＭＬ（ｚ−１）*ｕ’の変数ｕ’に入力値を入力することにより、出力値ｙ’を演算する。
【００８４】
＜Ｆ．モデル予測制御の処理例＞
モデル予測制御の処理例を説明する前に、図６を参照して、第１動特性モデルＰＣＭおよび第２動特性モデルＰＭＬを用いた負荷位置の演算方法の例について説明する。図６は、第１動特性モデルＰＣＭおよび第２動特性モデルＰＭＬを用いた負荷位置の演算方法の例を示す図である。
【００８５】
図６に示されるように、モデル予測制御モジュール１５０は、操作量ＭＶを第１動特性モデルＰＣＭに入力することにより、当該操作量ＭＶに応じたサーボモータ３００の予測位置（以下、「予測モータ位置ＹＭ」と称する。）を演算できる。モデル予測制御モジュール１５０は、演算された予測モータ位置を第２動特性モデルＰＭＬに入力することにより、当該予測モータ位置に応じた負荷位置（以下、「予測負荷位置ＹＬ」と称する。）を演算できる。
【００８６】
図６に示す演算方法を用いて、モデル予測制御モジュール１５０は、例えば以下のような制御により、制御周期毎にサーボドライバ２００に出力する操作量ＭＶを生成する。
【００８７】
モデル予測制御モジュール１５０は、上記の［数１］の関数ＰＣＭ（ｚ−１）で示される第１動特性モデルＰＣＭに、今回の制御周期ｋまでに生成した操作量ＭＶｋ，・・・，ＭＶｋ−ｍ＋１を入力することにより、制御周期ｋ＋ｄ＋１における予測モータ位置ＹＭｋ＋ｄ＋１を演算する。ここで、ｍは、上記のように、第１動特性モデルＰＣＭで規定される次数である。また、制御周期ｋ＋ｄ＋１は、今回の制御周期ｋの終了時から動特性モデルに規定されるむだ時間ｄ＋１だけ経過した制御周期である。
【００８８】
モデル予測制御モジュール１５０は、予測モータ位置ＹＭｋ＋ｄ＋１を第２動特性モデルＰＭＬに入力することにより、制御周期ｋ＋ｄ＋１における予測負荷位置ＹＬｋ＋ｄ＋１を演算する。
【００８９】
上記のようにして求められた予測負荷位置ＹＬｋ＋ｄ＋１は、次回の制御周期における操作量ＭＶを生成するために使用される。このとき、次回の制御周期に備えて、演算されたデータが１制御周期分だけシフトされる。例えば、上記のようにして求められた予測負荷位置ＹＬｋ＋ｄ＋１は、次回の制御周期において予測負荷位置ＹＬｋ＋ｄとして使用される。言い換えると、今回の制御周期ｋでは、前回の制御周期において演算された予測負荷位置ＹＬｋ＋ｄ＋１が予測負荷位置ＹＬｋ＋ｄとして使用される。モデル予測制御モジュール１５０は、前回の制御周期で演算済みの当該予測負荷位置ＹＬｋ＋ｄと第１動特性モデルＰＣＭおよび第２動特性モデルＰＭＬとを用いたモデル予測制御により、サーボドライバ２００に出力する操作量ＭＶｋを生成する。
【００９０】
モデル予測制御としては公知の技術が採用され得る。例えば、モデル予測制御モジュール１５０は、以下のようなモデル予測制御に従って、操作量ＭＶｋを生成してもよい。
【００９１】
モデル予測制御モジュール１５０は、第１動特性モデルＰＣＭおよび第２動特性モデルＰＭＬを作成した後、ステップ応答計算とランプ応答計算とを行なう。
【００９２】
ステップ応答計算とは、出力が０である初期状態において最大の入力（ステップ入力）を継続したときの動特性モデル（第１動特性モデルＰＣＭおよび第２動特性モデルＰＭＬを組み合わせたモデル）の出力Ｙｓを求める計算である。以下の説明では、ステップ入力の入力開始からの経過時間ｉ（＞むだ時間ｄ）における出力ＹｓをＹｓ（ｉ）とする。
【００９３】
ランプ応答計算とは、出力が０である初期状態において制御周期毎に１段階ずつ増加させた入力（ランプ入力）を行なったときの動特性モデルの出力Ｙｒを求める計算である。以下の説明では、ランプ入力の入力開始からの経過時間ｉ（＞むだ時間ｄ）における出力ＹｒをＹｒ（ｉ）とする。
【００９４】
さらに、モデル予測制御モジュール１５０は、予測負荷位置ＹＬｋ＋ｄを指定状態とした自由応答計算を行なう。自由応答計算とは、制御周期ｋ＋ｄにおいて指定状態にある動特性モデルにおいて、今回の制御周期ｋ以降の入力を０としたときの、制御周期ｋ＋ｄより後の制御周期ｋ＋ｄ＋Ｈにおける動特性モデルの出力Ｙｆ（ｋ＋ｄ＋Ｈ）を求める計算である。
【００９５】
モデル予測制御モジュール１５０は、ステップ出力およびランプ出力の大きさをそれぞれｋｓおよびｋｒとして、制御周期ｋ＋ｄより後の制御周期ｋ＋ｄ＋Ｈにおける動特性モデルの出力ＭＨｋ＋ｄ＋Ｈを以下の式に従って演算する。
ＭＨｋ＋ｄ＋Ｈ＝ｋｓ*Ｙｓ（Ｈ）＋ｋｒ*Ｙｒ（Ｈ）＋Ｙｆ（ｋ＋ｄ＋Ｈ）
モデル予測制御モジュール１５０は、ＭＨｋ＋ｄ＋Ｈと予測負荷位置ＹＬｋ＋ｄとの差分ΔＭＨと、制御周期ｋ＋ｄ＋Ｈにおける参照軌道上の位置ＲＨｋ＋ｄ＋Ｈと予測負荷位置ＹＬｋ＋ｄとの差分ΔＰＨとが一致するように、ｋｓおよびｋｒを求める。参照軌道は、制御周期ｋ＋ｄ＋Ｈにおける目標位置ＳＰｋ＋ｄ＋Ｈと予め定められる参照軌道時定数Ｔｒとによって特定される。２つの変数ｋｓおよびｋｒを求めるため、Ｈとして２つの値が設定される。Ｈとして設定される２つの値は、制御対象２の振動周期よりも短い時間であり、例えば振動周期の１／８および振動周期の１／４である。そして、当該２つの値のそれぞれの式からなる連立方程式を解くことにより、変数ｋｓ，ｋｒが演算される。
【００９６】
モデル予測制御モジュール１５０は、上記のようにして求めたｋｓとステップ入力との積を、今回の制御周期ｋにおいてサーボドライバ２００に出力する操作量ＭＶｋとして生成すればよい。
【００９７】
＜Ｇ．処理手順＞
次に、本実施の形態に従う制御装置１００によるモータ制御の処理手順の概要について説明する。図７は、本実施の形態に従う制御システムによるモータ制御の処理手順を示すフローチャートである。図７に示すステップは、制御装置１００のプロセッサ１０２が制御プログラム（図２に示すシステムプログラム１１０およびユーザプログラム１１２を含む）を実行することで実現されてもよい。
【００９８】
まず、制御装置１００は、サーボドライバ２００に対してチューニングを実行させ、チューニングにより得られた同定入力および同定出力に基づいて、第１動特性モデルＰＣＭを作成する（ステップＳ１）。
【００９９】
次に、制御装置１００は、チューニングの際に得られた制御対象２の振動波形を用いて第２動特性モデルＰＭＬを作成する（ステップＳ２）。
【０１００】
制御装置１００は、ステップＳ１およびステップＳ２でそれぞれ作成された第１動特性モデルＰＣＭおよび第２動特性モデルＰＭＬを用いてモデル予測制御を実行して、サーボドライバ２００に出力する操作量ＭＶを制御周期毎に生成する（ステップＳ３）。
【０１０１】
続いて、制御装置１００は、目標軌道の終点に到達したか否かを判断する（ステップＳ４）。目標軌道の終点に到達していない場合（ステップＳ４においてＮＯの場合）には、ステップＳ３の処理が繰返される。
【０１０２】
目標軌道の終点に到達している場合（ステップＳ４においてＹＥＳの場合）には、モデル予測制御を終了する。以上のような処理手順によって、本実施の形態に従う制御装置１００の制御が実現される。なお、ステップＳ１〜Ｓ４の処理は、指定されたサーボドライバ２００の各々について実施される。そのため、複数のサーボドライバ２００のそれぞれについてのステップＳ１〜Ｓ４の処理が並列的に実行されることもある。
【０１０３】
図８は、図７に示すステップＳ２のサブルーチンの流れを示すフローチャートである。すなわち、図８には、第２動特性モデルを作成するモデル作成方法の処理手順の流れが示される。第２動特性モデルを作成するモデル作成方法は、制御対象２の振動波形を取得するステップＳ１１と、振動波形から波形パラメータを抽出するステップＳ１２と、波形パラメータを用いて第２動特性モデルを作成するステップＳ１３とを備える。
【０１０４】
＜Ｈ．プログラミング例＞
本実施の形態に従う制御装置１００のモータ制御は、制御装置１００で実行されるユーザプログラム１１２において命令を記述することで実行され得る。以下、本実施の形態に従う制御装置１００のプログラミングの一例について説明する。
【０１０５】
図９は、本実施の形態に従う制御装置１００で実行されるユーザプログラムの命令コードの一例を示す図である。図９に示すユーザプログラム１１２は、２つのファンクションブロック（以下、「ＦＢ（Function Block）」とも記す。）を含む。１つ目のファンクションブロックは、第１動特性モデルの作成の実行を規定するためのモデル自動作成ＦＢ１１３である。上記のモデル作成モジュール１３０は、モデル自動作成ＦＢ１１３によって実現される。２つ目のファンクションブロックは、第２動特性モデルの作成およびモデル予測制御の実行を規定するためのモデル予測制御ＦＢ１１５である。上記のモデル予測制御モジュール１５０は、モデル予測制御ＦＢ１１５によって実現される。
【０１０６】
説明の便宜上、モデル自動作成ＦＢ１１３およびモデル予測制御ＦＢ１１５を並べて記載するが、これらを個別に用いてもよい。
【０１０７】
モデル自動作成ＦＢ１１３は、入力項目として、開始指示１１３Ａと、サンプリング周期１１３Ｂと、同定出力１１３Ｃと、トルク１１３Ｄとを含む。モデル自動作成ＦＢ１１３は、出力項目として、ステータス１１３Ｅと、同定入力１１３Ｆと、特性パラメータ１１３Ｇとを含む。
【０１０８】
開始指示１１３Ａには、例えば、第１動特性モデルの作成を開始するための条件が設定される。図９に示す例では、開始条件１に対応する接点が関連付けられている。サンプリング周期１１３Ｂには、同定入力および同定出力を収集する周期が設定される。
【０１０９】
同定出力１１３Ｃには、同定出力として用いられる信号が設定される。図９に示す例では、同定出力として、サーボモータ３００の計測位置が設定されている。なお、ユーザプログラム１１２が変数プログラミングで記述される場合には、同定出力として用いるべき信号を示す変数名が設定される。
【０１１０】
トルク１１３Ｄには、同定出力の大きさを作成するためのフィードバック値としてのトルクを示す信号が設定される。トルク１１３Ｄから出力される信号は、トルク飽和が発生しない範囲で十分な大きさの同定出力が得られるような同定入力の大きさを決定するために使用される。
【０１１１】
ステータス１１３Ｅからは、モデル自動作成ＦＢ１１３による処理の実行状態を示す値が出力される。
【０１１２】
同定入力１１３Ｆには、同定入力として用いられる信号が設定される。図９に示す例では、同定入力として、サーボドライバ２００に出力される操作量（すなわち指令値）が設定されている。なお、ユーザプログラム１１２が変数プログラミングで記述される場合には、同定入力として用いるべき信号を示す変数名が設定される。
【０１１３】
特性パラメータ１１３Ｇからは、第１動特性モデルを規定する特性パラメータ（ｄ，ａ１〜ａｎ，ｂ１〜ｂｍ）が出力される。なお、ユーザプログラム１１２が変数プログラミングで記述される場合には、これらの特性パラメータを格納するための構造体を示す変数名が設定されてもよい。これらの特性パラメータは、モデル予測制御ＦＢ１１５にて使用されてもよい。
【０１１４】
一方、モデル予測制御ＦＢ１１５は、入力項目として、開始指示１１５Ａと、サンプリング周期１１５Ｂと、目標位置１１５Ｃと、特性パラメータ１１５Ｄと、振動周波数１１５Ｅと、振幅比１１５Ｆとを含む。モデル予測制御ＦＢ１１５は、出力項目として、ステータス１１５Ｇと、操作量１１５Ｈとを含む。
【０１１５】
開始指示１１５Ａには、例えば、モデル予測制御を開始するための条件が設定される。図９に示す例では、開始条件２に対応する接点が関連付けられている。
【０１１６】
サンプリング周期１１５Ｂには、モデル予測制御による演算を実行する制御周期が設定される。
【０１１７】
目標位置１１５Ｃには、予め定められた制御対象２の目標軌道を規定する複数の目標位置のデータ配列が設定される。
【０１１８】
特性パラメータ１１５Ｄには、モデル自動作成ＦＢ１１３の特性パラメータ１１３Ｇから出力される特性パラメータ（ｄ，ａ１〜ａｎ，ｂ１〜ｂｍ）が入力される。
【０１１９】
振動周波数１１５Ｅには、予め計測された制御対象２の振動波形から抽出された振動周波数ｆ０が入力される。振幅比１１５Ｆには、当該振動波形から抽出された振幅比Ａｄｒが入力される。
【０１２０】
また、ステータス１１５Ｇからは、モデル予測制御ＦＢ１１５による処理の実行状態を示す値が出力される。
【０１２１】
操作量１１５Ｈからは、第１動特性モデルおよび第２動特性モデルを用いたモデル予測制御の実行により生成された操作量ＭＶが出力される。第１動特性モデルは、特性パラメータ１１５Ｄに入力される特性パラメータによって規定される。第２動特性モデルは、振動周波数１１５Ｅに入力される振動周波数ｆ０および振幅比１１５Ｆに入力される振幅比Ａｄｒのうちの少なくとも振動周波数ｆ０によって規定される。サーボドライバ２００には、操作量１１５Ｈから出力される操作量ＭＶが与えられることになる。このようなモデル予測制御を採用することで、制御対象２の位置の軌道が目標軌道により近くなる。
【０１２２】
以上のように、本実施の形態に従う制御装置１００においては、２つのファンクションブロックを用いてユーザプログラムを記述するだけで、第１動特性モデルおよび第２動特性モデルの作成、および、作成された第１動特性モデルおよび第２動特性モデルを用いたモデル予測制御を実現できる。
【０１２３】
＜Ｉ．シミュレーション結果＞
本実施の形態に係る制御装置１００の効果を検証するためにシミュレーションを行なった。
【０１２４】
図１０は、モータ制御のシミュレーション結果の一例を示す図である。図１１は、モータ制御のシミュレーション結果の別の例を示す図である。図１０には、負荷となる制御対象の振動周波数が９．２Ｈｚであり、１００ｍｓで制御対象を５ｍｍ移動させるシミュレーションの結果が示される。図１１には、負荷となる制御対象の振動周波数が２．７５Ｈｚであり、３００ｍｓで制御対象を２０ｍｍ移動させるシミュレーションの結果が示される。
【０１２５】
図１０および図１１において、左列の（ａ）には、目標軌道から生成される指令値をサーボドライバに出力したときのシミュレーション結果が示される。中列の（ｂ）には、特許文献１に開示の逆特性フィルタを用いて指令値を補正し、補正後の指令値をサーボドライバに出力したときのシミュレーション結果が示される。右列の（ｃ）には、本実施の形態に係るモデル予測制御に従って生成された操作量ＭＶをサーボドライバに出力したときのシミュレーション結果が示される。なお、（ａ）〜（ｃ）におけるサーボドライバの位置制御方式は、モデル追従型２自由度制御方式であり、同一の制御パラメータを用いた。
【０１２６】
図１０および図１１において、（ａ）〜（ｃ）の各列の１段目には、目標位置の時間変化つまり目標軌道が示される。目標軌道は５次軌道である。２段目には、目標位置と制御対象２の位置（負荷位置）との時間変化が示される。３段目には、目標位置と負荷位置との偏差の時間変化が示される。４段目には、サーボモータに加えられるトルクの時間変化が示される。１段目から３段目までのグラフの横軸の目盛りは、４段目のグラフの横軸の目盛りと同じである。
【０１２７】
図１０および図１１に示されるように、逆特性フィルタを用いたときのシミュレーション結果は、目標軌道から生成される指令値を補正なしにサーボドライバに出力したときのシミュレーション結果と比較して、制御開始直後のトルクが大きくなるものの、数１０分の１の振動振幅を示した。本実施の形態に係るモデル予測制御を用いたシミュレーション結果は、逆特性フィルタを用いたときのシミュレーション結果と比較して、制御開始直後のトルクがさらに大きくなるものの、さらに小さい振動振幅を示した。このように、本実施の形態に係る制御装置１００によれば、より高い制振効果を奏することが確認された。
【０１２８】
また、３段目のグラフから理解されるように、本実施の形態に係るモデル予測制御を用いることにより、特許文献１に開示の逆特性フィルタを用いる場合と比較して、目標位置と負荷位置との偏差が小さくなった。このことから、目標軌道に対する追従性が高いことが確認された。
【０１２９】
＜Ｊ．利点＞
以上のように、本実施の形態に係る制御装置１００は、制御対象２を移動させるためのサーボモータ３００を駆動するサーボドライバ２００に接続され、サーボドライバ２００に操作量を出力して制御対象２の位置制御を行なう。制御装置１００は、操作量と制御対象２の位置との関係を示す動特性モデルを用いたモデル予測制御を行なうことにより、サーボドライバ２００に出力する操作量を生成する制御ユニット１６０を備える。動特性モデルは、操作量とサーボモータ３００の位置（モータ位置）との関係を示す第１動特性モデルと、モータ位置と制御対象２の位置（負荷位置）との関係を示す第２動特性モデルとを含む。第２動特性モデルは、制御対象２の振動波形から抽出された波形パラメータを用いて作成される。波形パラメータは振動周波数を含む。
【０１３０】
制御対象２の振動波形は、簡易な計測装置（例えばレーザ変位計５，８）を用いて計測可能である。簡易な計測装置を用いて制御対象２の振動波形を計測することにより、モータ位置と負荷位置との関係を示す第２動特性モデルを作成することができる。そして、第１動特性モデルと第２動特性モデルとを組み合わせることにより、操作量と負荷位置との関係を示す動特性モデルを作成できる。作成された動特性モデルを用いたモデル予測制御を行なうことにより操作量を生成するため、負荷位置を目標軌道に追従させることができるとともに、負荷位置の制振性を向上させることができる。
【０１３１】
波形パラメータは、振動波形において連続する２つの波の振幅比をさらに含むことが好ましい。これにより、上記の［数４］または［数５］の関数ＰＭＬ（ｓ）で示される第２動特性モデルを作成できる。その結果、予測負荷位置の予測精度が向上する。
【０１３２】
制御ユニット１６０のモデル予測制御モジュール１５０は、今回の制御周期ｋまでに生成した操作量ＭＶを第１動特性モデルに入力することにより、制御周期ｋの終了時からむだ時間ｄ＋１だけ経過した未来の制御周期ｋ＋ｄ＋１における予測モータ位置ＹＭｋ＋ｄ＋１を演算する。さらに、モデル予測制御モジュール１５０は、予測モータ位置ＹＭｋ＋ｄ＋１を第２動特性モデルに入力することにより、制御周期ｋ＋ｄ＋１における予測負荷位置ＹＬｋ＋ｄ＋１を演算する。モデル予測制御モジュール１５０は、当該予測負荷位置ＹＬｋ＋ｄ＋１と動特性モデル（第１動特性モデルおよび第２動特性モデル）とを用いて、制御周期ｋ＋ｄ＋１以降の負荷位置と目標軌道との偏差が最小となるように、次回の制御周期においてサーボドライバ２００に出力する操作量ＭＶを生成する。これにより、負荷位置を目標位置に追従させることができる。
【０１３３】
制御ユニット１６０は、第１動特性モデルを規定する特性パラメータを出力するモデル作成モジュール１３０と、特性パラメータと波形パラメータとを受けて、サーボドライバ２００に出力する操作量ＭＶを生成するモデル予測制御モジュール１５０とを含む。また、制御装置１００は、ユーザプログラム１１２を実行するプロセッサ１０２を含む。モデル作成モジュール１３０およびモデル予測制御モジュール１５０は、ユーザプログラム１１２に規定されるファンクションブロックによって実現される。これにより、ファンクションブロックを用いて、モデル作成モジュール１３０およびモデル予測制御モジュール１５０を容易に実現することができる。
【０１３４】
＜Ｋ．変形例＞
＜Ｋ−１．変形例１＞
モデル予測制御モジュールは、予測負荷位置ＹＬの予測精度を上げるために、サーボモータ３００からフィードバック値を受け、フィードバック値を用いて予測モータ位置ＹＭを補正してもよい。
【０１３５】
図１２は、変形例に係る制御装置の機能構成を示す模式図である。図１２に示されるように、変形例に係る制御装置１００Ａは、図３に示す制御装置１００と比較して、制御ユニット１６０の代わりに制御ユニット１６０Ａを備える点で相違する。制御ユニット１６０Ａは、制御ユニット１６０と比較して、モデル予測制御モジュール１５０の代わりにモデル予測制御モジュール１５０Ａを含む点で相違する。
【０１３６】
モデル予測制御モジュール１５０Ａは、モデル予測制御モジュール１５０と同様に、第１動特性モデルを用いて予測モータ位置ＹＭを演算し、第２動特性モデルを用いて予測負荷位置ＹＬを演算する。ただし、モデル予測制御モジュール１５０Ａは、モデル予測制御モジュール１５０と比較して、サーボモータ３００の計測位置ＰＶＭを用いて、予測モータ位置ＹＭを補正する点で相違する。サーボモータ３００の計測位置ＰＶＭは、サーボモータ３００からのフィードバック値から特定される。
【０１３７】
以下、予測モータ位置ＹＭの補正方法の具体例について説明する。以下の具体例は、［数６］の関数ＰＣＭ（ｚ−１）で示される第１動特性モデルが作成され、［数７］の関数ＰＭＬ（ｚ−１）で示される第２動特性モデルが作成された場合の例である。［数７］の関数ＰＭＬ（ｚ−１）は、例えば［数５］の関数ＰＭＬ（ｓ）を離散時間形式に変換することにより得られる。
【０１３８】
【数６】
2020126481.tif 000008
【０１３９】
【数７】
2020126481.tif 000009
【０１４０】
例えば、モデル予測制御モジュール１５０Ａは、今回の制御周期ｋにおける予測モータ位置ＹＭｋおよび計測位置ＰＶＭｋの差分値を補正量Ｃとして演算する。すなわち、補正量Ｃは、
Ｃ＝ＰＶＭｋ−ＹＭｋ
で表される。なお、［数６］の関数ＰＣＭ（ｚ−１）においてむだ時間ｄが設定されているため、今回の制御周期ｋにおける予測モータ位置ＹＭｋは、過去の制御周期ｋ−ｄ−１において演算されている。
【０１４１】
次に、モデル予測制御モジュール１５０Ａは、予測モータ位置ＹＭｋを計測位置ＰＶＭｋに補正するとともに、今回の制御周期ｋからむだ時間ｄだけ経過した制御周期ｋ＋ｄまでの予測モータ位置ＹＭｋ＋１〜ＹＭｋ＋ｄを補正量Ｃを用いて以下のように補正する。
ＹＭｋ＋１←ＹＭｋ＋１＋Ｃ
・・・
ＹＭｋ＋ｄ←ＹＭｋ＋ｄ＋Ｃ
なお、予測モータ位置ＹＭｋ＋１〜ＹＭｋ＋ｄは、過去の制御周期ｋ−ｄ〜制御周期ｋ−１においてそれぞれ演算されている。
【０１４２】
次に、モデル予測制御モジュール１５０Ａは、補正後の予測モータ位置ＹＭｋ＋ｄと今回の制御周期ｋにおいて生成された操作量ＭＶｋとを第１動特性モデルに入力することにより、制御周期ｋ＋ｄ＋１における予測モータ位置ＹＭｋ＋ｄ＋１を演算する。第１動特性モデルが［数６］の関数ＰＣＭ（ｚ−１）で示される場合、モデル予測制御モジュール１５０Ａは、以下の式に従って、制御周期ｋ＋ｄ＋１における予測モータ位置ＹＭｋ＋ｄ＋１を演算すればよい。
ＹＭｋ＋ｄ＋１＝−ａＣＭ１ＹＭｋ＋ｄ＋ｂＣＭ１ＭＶｋ
以上のようにして、モデル予測制御モジュール１５０Ａは、予測モータ位置ＹＭを補正する。なお、モデル予測制御モジュール１５０Ａによる予測モータ位置ＹＭの補正方法は、上記の補正方法に限定されず、他の演算方法を用いてもよい。
【０１４３】
モデル予測制御モジュール１５０Ａは、補正後の予測モータ位置ＹＭを用いて、予測負荷位置ＹＬを演算する。第２動特性モデルが［数７］の関数ＰＭＬ（ｚ−１）で示される場合、モデル予測制御モジュール１５０Ａは、以下の式に従って、制御周期ｋ＋ｄ＋１における予測負荷位置ＹＬｋ＋ｄ＋１を演算すればよい。
ＹＬｋ＋ｄ＋１＝−ａＭＬ１ＹＬｋ＋ｄ−ａＭＬ２ＹＬｋ＋ｄ−１
＋ｂＭＬ１ＹＭｋ＋ｄ＋１＋ｂＭＬ２ＹＭｋ＋ｄ
そして、モデル予測制御モジュール１５０Ａは、予測負荷位置ＹＬｋ＋ｄ＋１と動特性モデル（第１動特性モデルおよび第２動特性モデル）とを用いて、制御周期ｋ＋ｄ＋１以降の負荷位置と目標軌道との偏差が最小となるように、次回の制御周期においてサーボドライバ２００に出力する操作量ＭＶを生成すればよい。
【０１４４】
＜Ｋ−２．変形例２＞
上記の実施の形態では、制御対象２の振動周波数および振幅比は、チューニングの際に計測された振動波形から抽出されるものとした。しかしながら、制御対象２の振動周波数ｆ０および振幅比Ａｄｒは、予備実験等により予め計測され、制御装置１００に格納されていてもよい。この場合、モデル予測制御モジュール１５０は、予め記憶されたデータへアクセスすることにより、振動周波数ｆ０および振幅比Ａｄｒを読み出せばよい。
【０１４５】
＜Ｋ−３．変形例３＞
上記の実施の形態では、図９に示すモデル自動作成ＦＢ１１３およびモデル予測制御ＦＢ１１５を用いて、制御装置１００のプログラミングが実行される。しかしながら、ファンクションブロックは、図９に示す例に限定されない。
【０１４６】
例えば、モデル自動作成ＦＢ１１３は、入力項目として「振動周波数」および「振幅比」を含んでもよい。入力項目「振動周波数」には振動周波数ｆ０が入力される。入力項目「振幅比」には振幅比Ａｄｒが入力される。そして、モデル自動作成ＦＢ１１３の特性パラメータ１１３Ｇからは、第１動特性モデルＰＣＭと第２動特性モデルＰＭＬとを組み合わせた動特性モデルＰＣＭ＊ＰＭＬを規定する特性パラメータ（ｄ，ａ１〜ａｎ，ｂ１〜ｂｍ）が出力されてもよい。この場合、モデル予測制御ＦＢ１１５の特性パラメータ１１５Ｄには、特性パラメータ１１３Ｇから出力された特性パラメータ（ｄ，ａ１〜ａｎ，ｂ１〜ｂｍ）が入力される。そして、モデル予測制御ＦＢ１１５の操作量１１５Ｈからは、特性パラメータ（ｄ，ａ１〜ａｎ，ｂ１〜ｂｍ）で規定される動特性モデルＰＣＭ＊ＰＭＬを考慮して生成された操作量ＭＶが出力される。
【０１４７】
すなわち、モデル自動作成ＦＢ１１３によって実現されるモデル作成モジュール１３０は、波形パラメータ（振動周波数ｆ０および振幅比Ａｄｒ）を受けて、第１動特性モデルＰＣＭと第２動特性モデルＰＭＬとを組み合わせた動特性モデルＰＣＭ＊ＰＭＬを規定する特性パラメータを出力する。モデル予測制御ＦＢ１１５によって実現されるモデル予測制御モジュール１５０は、当該特性パラメータを受けて、当該特性パラメータによって規定される動特性モデルを用いたモデル予測制御を行なうことにより、サーボドライバ２００に出力する操作量を生成する。
【０１４８】
あるいは、モデル自動作成ＦＢ１１３は、入力項目として「負荷位置」を含み、出力項目として「振動周波数」および「振幅比」を含んでもよい。入力項目「負荷位置」には、図１に示すレーザ変位計５，８によって計測された制御対象２の計測位置が入力される。出力項目「振動周波数」からは、制御対象２の計測位置の時間変化つまり振動波形から抽出される振動周波数ｆ０が出力される。出力項目「振動周波数」からは、当該振動波形から抽出される振幅比Ａｄｒが出力される。出力項目「振動周波数」から出力された振動周波数ｆ０は、モデル予測制御ＦＢ１１５の振動周波数１１５Ｅに入力される。出力項目「振幅比」から出力された振幅比Ａｄｒは、モデル予測制御ＦＢ１１５の振幅比１１５Ｆに入力される。
【０１４９】
すなわち、モデル自動作成ＦＢ１１３によって実現されるモデル作成モジュール１３０は、第１動特性モデルを規定する特性パラメータを出力するとともに、制御対象２の計測位置を受けて波形パラメータ（振動周波数ｆ０および振幅比Ａｄｒ）を出力する。モデル予測制御ＦＢ１１５によって実現されるモデル予測制御モジュール１５０は、当該特性パラメータと波形パラメータとを受ける。モデル予測制御モジュール１５０は、当該特性パラメータによって規定される第１動特性モデルと当該波形パラメータを用いて作成される第２動特性モデルとを用いたモデル予測制御を行なうことにより、サーボドライバ２００に出力する操作量を生成する。
【０１５０】
＜Ｋ−４．変形例４＞
上記の実施の形態では、制御対象２が２慣性系であるとした。しかしながら、制御対象２は３慣性系以上であってもよい。３慣性系は、２つの振動によって表される。そのため、第２動特性モデルは、上記の数３〜数５のいずれかを２個直列に結合した形式で示される。例えば、第２動特性モデルＰＭＬは、以下の［数８］の関数ＰＭＬ（ｓ）を用いて作成される。
【０１５１】
【数８】
2020126481.tif 000010
【０１５２】
なお、［数８］の関数ＰＭＬ（ｓ）において、ω０１およびζ１は、２つの振動のうちの一方の振動周波数および減衰比をそれぞれ示す。ω０２およびζ２は、２つの振動のうちの他方の振動周波数および減衰比をそれぞれ示す。
【０１５３】
＜Ｌ．付記＞
以上のように、本実施の形態および変形例は以下のような開示を含む。
【０１５４】
（構成１）
制御対象（２）を移動させるためのサーボモータ（３００，３００Ａ，３００Ｂ）を駆動するサーボドライバ（２００，２００Ａ，２００Ｂ）に接続され、前記サーボドライバ（２００，２００Ａ，２００Ｂ）に操作量を出力して前記制御対象（２）の位置制御を行なう制御装置（１００，１００Ａ）であって、
制御周期毎に、前記操作量と前記制御対象（２）の位置との関係を示す動特性モデルを用いたモデル予測制御を行なうことにより、前記サーボドライバに出力する操作量を生成する制御手段（１６０，１６０Ａ）を備え、
前記動特性モデルは、前記操作量と前記サーボモータの位置との関係を示す第１動特性モデルと、前記サーボモータの位置と前記制御対象の位置との関係を示す第２動特性モデルとを含み、
前記第２動特性モデルは、前記制御対象の振動波形から抽出される波形パラメータを用いて作成され、
前記波形パラメータは振動周波数を含む、制御装置（１００，１００Ａ）。
【０１５５】
（構成２）
前記波形パラメータは、前記振動波形において連続する２つの波の振幅比をさらに含む、構成１に記載の制御装置（１００，１００Ａ）。
【０１５６】
（構成３）
前記制御手段（１６０）は、
今回の制御周期までに生成した操作量を前記第１動特性モデルに入力することにより前記サーボモータ（３００，３００Ａ，３００Ｂ）の予測位置を演算し、
前記サーボモータ（３００，３００Ａ，３００Ｂ）の予測位置を前記第２動特性モデルに入力することにより、前記今回の制御周期の終了時から前記動特性モデルに規定されるむだ時間だけ経過した未来の制御周期における前記制御対象の予測位置を演算し、
前記制御対象の予測位置と前記動特性モデルとを用いて、前記未来の制御周期以降の前記制御対象の位置と目標軌道との偏差が最小となるように、次回の制御周期において前記サーボドライバ（２００，２００Ａ，２００Ｂ）に出力する操作量を生成する、構成１または２に記載の制御装置（１００，１００Ａ）。
【０１５７】
（構成４）
前記制御手段（１６０Ａ）は、前記サーボモータからのフィードバック値に基づいて、前記サーボモータ（３００，３００Ａ，３００Ｂ）の予測位置を補正する、構成１または２に記載の制御装置（１００Ａ）。
【０１５８】
（構成５）
前記制御手段（１６０，１６０Ａ）は、
前記第１動特性モデルを規定する特性パラメータを出力する出力手段（１３０）と、
前記特性パラメータと前記波形パラメータとを受けて、前記サーボドライバに出力する前記操作量を生成する生成手段（１５０）とを含む、構成１または２に記載の制御装置（１００，１００Ａ）。
【０１５９】
（構成６）
前記制御手段（１６０，１６０Ａ）は、
前記波形パラメータを受けて、前記第１動特性モデルと前記第２動特性モデルとを組み合わせた前記動特性モデルを規定する特性パラメータを出力する出力手段（１３０）と、
前記特性パラメータを受けて、前記サーボドライバに出力する前記操作量を生成する生成手段（１５０）とを含む、構成１または２に記載の制御装置（１００，１００Ａ）。
【０１６０】
（構成７）
前記制御手段（１６０，１６０Ａ）は、
前記第１動特性モデルを規定する特性パラメータを出力するとともに、前記制御対象の位置を受けて前記波形パラメータを出力する出力手段（１３０）と、
前記特性パラメータと前記波形パラメータとを受けて、前記サーボドライバに出力する前記操作量を生成する生成手段（１５０）とを含む、構成１または２に記載の制御装置（１００，１００Ａ）。
【０１６１】
（構成８）
前記制御装置（１００，１００Ａ）は、ユーザプログラムを実行するプロセッサ（１０２）を含み、
前記出力手段（１３０）および前記生成手段（１５０）は、前記ユーザプログラムに規定されるファンクションブロック（１１３，１１５）によって実現される、構成５から７のいずれかに記載の制御装置（１００，１００Ａ）。
【０１６２】
（構成９）
構成１から８のいずれかに記載の前記制御装置（１００，１００Ａ）が用いる前記第２動特性モデルを作成するモデル作成方法であって、
前記制御対象の振動波形を取得するステップと、
前記振動波形から波形パラメータを抽出するステップと、
前記波形パラメータを用いて前記第２動特性モデルを作成するステップとを備え、
前記波形パラメータは振動周波数を含む、モデル作成方法。
【０１６３】
（構成１０）
制御対象（２）を移動させるためのサーボモータ（３００，３００Ａ，３００Ｂ）を駆動するサーボドライバ（２００，２００Ａ，２００Ｂ）に接続され、前記サーボドライバ（２００，２００Ａ，２００Ｂ）に操作量を出力して前記制御対象（２）の位置制御を行なう制御装置（１００，１００Ａ）において実行される制御プログラム（１１２）であって、
前記制御プログラム（１１２）は、前記制御装置（１００，１００Ａ）に、
前記操作量と前記サーボモータ（３００，３００Ａ，３００Ｂ）の位置との関係を示す第１動特性モデルを作成するステップと、
前記制御対象（２）の振動波形から抽出された波形パラメータを用いて、前記サーボモータ（３００，３００Ａ，３００Ｂ）の位置と前記制御対象（２）の位置との関係を示す第２動特性モデルを作成するステップと、
制御周期毎に、前記第１動特性モデルと前記第２動特性モデルとを用いたモデル予測制御を行なうことにより、前記サーボドライバ（２００，２００Ａ，２００Ｂ）に出力する操作量を生成するステップとを実行させ、
前記波形パラメータは振動周波数を含む、制御プログラム（１１２）。
【０１６４】
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１６５】
１  制御システム、２  制御対象、３  ワーキングプレート、４  第１ベースプレート、５，８  レーザ変位計、６，９  ボールネジ、７  第２ベースプレート、１００，１００Ａ  制御装置、１０１  フィールドバス、１０２  プロセッサ、１０４  チップセット、１０６  メインメモリ、１０８  フラッシュメモリ、１１０  システムプログラム、１１０Ａ  モデル作成ライブラリ、１１０Ｂ  モデル予測制御ライブラリ、１１２  ユーザプログラム、１１２Ａ  シーケンスプログラム、１１２Ｂ  モーションプログラム、１１３  モデル自動作成ＦＢ、１１３Ａ，１１５Ａ  開始指示、１１３Ｂ，１１５Ｂ  サンプリング周期、１１３Ｃ  同定出力、１１３Ｄ  トルク、１１３Ｅ，１１５Ｇ  ステータス、１１３Ｆ  同定入力、１１３Ｇ，１１５Ｄ  特性パラメータ、１１５  モデル予測制御ＦＢ
１１５Ｃ  目標位置、１１５Ｅ  振動周波数、１１５Ｆ  振幅比、１１５Ｈ  操作量、１１５Ｉ  予測誤差、１１６  外部ネットワークコントローラ、１１８  メモリカードインターフェイス、１２０  メモリカード、１２２  内部バスコントローラ、１２４  フィールドバスコントローラ、１２６  Ｉ／Ｏユニット、１３０  モデル作成モジュール、１４０  軌道生成モジュール、１５０，１５０Ａ  モデル予測制御モジュール、１６０，１６０Ａ  制御ユニット、２００，２００Ｘ，２００Ｙ  サーボドライバ、３００，３００Ｘ，３００Ｙ  サーボモータ、４００  第１モデル対象、４０２  第２モデル対象。
【図１】
2020126481.tif 000011
【図２】
2020126481.tif 000012
【図３】
2020126481.tif 000013
【図４】
2020126481.tif 000014
【図５】
2020126481.tif 000015
【図６】
2020126481.tif 000016
【図７】
2020126481.tif 000017
【図８】
2020126481.tif 000018
【図９】
2020126481.tif 000019
【図１０】
2020126481.tif 000020
【図１１】
2020126481.tif 000021
【図１２】
2020126481.tif 000022