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