(57)【要約】【課題】制御装置に１または複数のサーボドライバが接続される構成において、制御対象の特性に応じて各サーボドライバへ与える目標値を算出することで制御性能を高めるというソリューションを容易に実現できる技術が要望されている。【解決手段】制御装置は、サーボドライバとの間でデータを遣り取りするためのインターフェイスを含む。サーボドライバは、制御対象に応じて決定された制御パラメータに基づいて、サーボモータを駆動するための操作量を決定する制御演算を実行するように構成されている。制御装置は、サーボドライバの制御パラメータを取得して、制御対象の動特性を示す内部モデルを作成する作成手段と、目標軌跡に対応する目標値と、制御対象からのフィードバック値とに基づいて、サーボドライバへ与える補正目標値を算出する目標値算出手段とを含む。【選択図】図４
2018151899.tif 000002
【特許請求の範囲】
【請求項１】
サーボモータを駆動するサーボドライバに目標値を与えることで、前記サーボモータを含む制御対象を制御する制御装置であって、
前記サーボドライバとの間でデータを遣り取りするためのインターフェイスを備え、前記サーボドライバは、前記制御対象に応じて決定された制御パラメータに基づいて、前記サーボモータを駆動するための操作量を決定する制御演算を実行するように構成されており、
前記サーボドライバの前記制御パラメータを取得して、前記制御対象の動特性を示す内部モデルを作成する作成手段と、
目標軌跡に対応する目標値と、前記制御対象からのフィードバック値とに基づいて、前記サーボドライバへ与える補正目標値を算出する目標値算出手段とを備える、制御装置。
【請求項２】
前記目標値算出手段は、モデル予測制御に従って前記補正目標値を算出する、請求項１に記載の制御装置。
【請求項３】
前記制御装置は、複数の前記サーボドライバと接続されており、
前記作成手段および前記目標値算出手段は、前記複数のサーボドライバの各々に対応付けて構成される、請求項１または２に記載の制御装置。
【請求項４】
前記制御装置と前記サーボドライバとは通信接続されており、
前記作成手段は、所定の通信コマンドを前記サーボドライバへ発行することで、前記制御パラメータを取得する、請求項１〜３のいずれか１項に記載の制御装置。
【請求項５】
前記制御装置は、ユーザプログラムを実行するプロセッサを含み、
前記作成手段および前記目標値算出手段は、前記ユーザプログラムに規定されるファンクションブロックによって機能化される、請求項１〜４のいずれか１項に記載の制御装置。
【請求項６】
前記目標軌跡を規定する目標値の時系列データを格納する記憶手段をさらに備える、請求項１〜５のいずれか１項に記載の制御装置。
【請求項７】
前記サーボドライバは、モデル追従制御系の制御ループに従う制御演算を実行する、請求項１〜６のいずれか１項に記載の制御装置。
【請求項８】
前記サーボドライバは、単純適応制御系の制御ループに従う制御演算を実行する、請求項１〜６のいずれか１項に記載の制御装置。
【請求項９】
サーボモータを駆動するサーボドライバに目標値を与えることで、前記サーボモータを含む制御対象を制御する制御装置で実行される制御プログラムであって、前記サーボドライバは、前記制御対象に応じて決定された制御パラメータに基づいて、前記サーボモータを駆動するための操作量を決定する制御演算を実行するように構成されており、前記制御プログラムは前記制御装置に、
前記サーボドライバの前記制御パラメータを取得するステップと、
前記制御対象の動特性を示す内部モデルを作成するステップと、
目標軌跡に対応する目標値を取得するステップと、
前記制御対象からのフィードバック値とに基づいて、前記サーボドライバへ与える補正目標値を算出するステップとを実行させる、制御プログラム。
【請求項１０】
制御システムであって、
サーボモータを駆動するサーボドライバと、
前記サーボドライバに目標値を与えることで、前記サーボモータを含む制御対象を制御する制御装置とを備え、
前記サーボドライバは、前記制御対象に応じて決定された制御パラメータに基づいて、前記サーボモータを駆動するための操作量を決定する制御演算を実行するように構成されており、
前記制御装置は、
前記サーボドライバとの間でデータを遣り取りするためのインターフェイスと、
前記サーボドライバの前記制御パラメータを取得して、前記制御対象の動特性を示す内部モデルを作成する作成手段と、
目標軌跡に対応する目標値と、前記制御対象からのフィードバック値とに基づいて、前記サーボドライバへ与える補正目標値を算出する目標値算出手段とを備える、制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーボドライバを用いた制御システムに対する制御性能を高める技術に関する。
【背景技術】
【０００２】
サーボモータを駆動するサーボドライバに目標値を与えることで制御対象の位置制御や速度制御などを行なうための各種技術が知られている。位置制御や速度制御についての制御性能を高める手法の一つとして、サーボドライバおよび制御対象の特性を示すモデルを予め取得しておき、この取得したモデルに基づいて目標値に対する補正などを行なう手法が知られている。
【０００３】
例えば、国際公開第２０１１／１３６１６０号（特許文献１）は、任意の目標値に対して制御入力の飽和や変化率の飽和を発生させずに、高速高精度に制御対象を追従させることができるサーボ制御装置を開示する。このサーボ制御装置は、目標値を入力として、モデル出力およびモデル入力を生成する規範モデル部と、制御対象の制御出力がモデル出力に追従するようにフィードバック入力を生成するフィードバック制御部とを含む。
【０００４】
国際公開第２０１３／０７７００７号（特許文献２）は、現在の目標値のみならず、過去の目標値も利用し、任意の位置指令に対しても制御入力や制御入力の変化量の制約を満たしつつ、高速高精度にモータを目標値に追従させ、かつ停止時の振動を励起しないモータ制御装置を開示する。このモータ制御装置は、モータを含む制御対象の制御出力を追従させるべき目標値に基づいて、制御対象の所望の動作を表すモデル出力と、所望の動作に制御対象を駆動するモデル入力とを生成する規範モデル部と、制御出力とモデル出力を入力し、制御出力をモデル出力に追従させるフィードバック入力を生成するフィードバック制御部と、モデル入力およびフィードバック入力を加算して制御対象への制御入力を生成するモデル入力加算器とを含む。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１１／１３６１６０号
【特許文献２】国際公開第２０１３／０７７００７号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
実際のアプリケーションを想定すると、ＰＬＣ（プログラマブルコントローラ）などの制御装置が１または複数のサーボドライバの各々に対して目標値を与えるような構成が採用される場合が多い。このような構成においては、制御装置側にて、制御対象の特性に応じた目標値をそれぞれ生成して各サーボドライバへ与えることで、制御性能を高めるというソリューションが採用されることがある。
【０００７】
このようなソリューションを採用するにあたって、制御装置から見たサーボドライバおよび制御対象の特性をモデル化する必要がある。しかしながら、このようなモデル化は、ある程度の知識が必要であり、知識の乏しいユーザが現実に適用することは難しい。
【０００８】
上述の特許文献１および特許文献２においては、サーボドライバに相当する、サーボ制御装置およびモータ制御装置を開示するのみであり、制御装置とサーボドライバとの組み合わせについては何ら想定されていない。
【０００９】
制御装置に１または複数のサーボドライバが接続される構成において、制御対象の特性に応じて各サーボドライバへ与える目標値を算出することで制御性能を高めるというソリューションを容易に実現できる技術が要望されている。
【課題を解決するための手段】
【００１０】
本発明のある局面に従えば、サーボモータを駆動するサーボドライバに目標値を与えることで、サーボモータを含む制御対象を制御する制御装置が提供される。制御装置は、サーボドライバとの間でデータを遣り取りするためのインターフェイスを含む。サーボドライバは、制御対象に応じて決定された制御パラメータに基づいて、サーボモータを駆動するための操作量を決定する制御演算を実行するように構成されている。制御装置は、サーボドライバの制御パラメータを取得して、制御対象の動特性を示す内部モデルを作成する作成手段と、目標軌跡に対応する目標値と、制御対象からのフィードバック値とに基づいて、サーボドライバへ与える補正目標値を算出する目標値算出手段とを含む。
【００１１】
好ましくは、目標値算出手段は、モデル予測制御に従って補正目標値を算出する。
好ましくは、制御装置は、複数のサーボドライバと接続されており、作成手段および目標値算出手段は、複数のサーボドライバの各々に対応付けて構成される。
【００１２】
好ましくは、制御装置とサーボドライバとは通信接続されており、作成手段は、所定の通信コマンドをサーボドライバへ発行することで、制御パラメータを取得する。
【００１３】
好ましくは、制御装置は、ユーザプログラムを実行するプロセッサを含み、作成手段および目標値算出手段は、ユーザプログラムに規定されるファンクションブロックによって機能化される。
【００１４】
好ましくは、制御装置は、目標軌跡を規定する目標値の時系列データを格納する記憶手段をさらに含む。
【００１５】
好ましくは、サーボドライバは、モデル追従制御系の制御ループに従う制御演算を実行する。
【００１６】
好ましくは、サーボドライバは、単純適応制御系の制御ループに従う制御演算を実行する。
【００１７】
本発明の別の局面に従えば、サーボモータを駆動するサーボドライバに目標値を与えることで、サーボモータを含む制御対象を制御する制御装置で実行される制御プログラムが提供される。サーボドライバは、制御対象に応じて決定された制御パラメータに基づいて、サーボモータを駆動するための操作量を決定する制御演算を実行するように構成されている。制御プログラムは制御装置に、サーボドライバの制御パラメータを取得するステップと、制御対象の動特性を示す内部モデルを作成するステップと、目標軌跡に対応する目標値を取得するステップと、制御対象からのフィードバック値とに基づいて、サーボドライバへ与える補正目標値を算出するステップとを実行させる。
【００１８】
本発明のさらに別の局面に従う制御システムは、サーボモータを駆動するサーボドライバとサーボドライバに目標値を与えることで、サーボモータを含む制御対象を制御する制御装置とを含む。サーボドライバは、制御対象に応じて決定された制御パラメータに基づいて、サーボモータを駆動するための操作量を決定する制御演算を実行するように構成されている。制御装置は、サーボドライバとの間でデータを遣り取りするためのインターフェイスと、サーボドライバの制御パラメータを取得して、制御対象の動特性を示す内部モデルを作成する作成手段と、目標軌跡に対応する目標値と、制御対象からのフィードバック値とに基づいて、サーボドライバへ与える補正目標値を算出する目標値算出手段とを含む。
【発明の効果】
【００１９】
本発明のある実施の形態によれば、制御装置に１または複数のサーボドライバが接続される構成において、制御対象の特性に応じて各サーボドライバへ与える目標値を算出することで制御性能を高めるというソリューションを容易に実現できる。
【図面の簡単な説明】
【００２０】
【図１】本実施の形態に従う制御システムの構成例を示す模式図である。
【図２】本実施の形態に従う制御装置のハードウェア構成の一例を示す模式図である。
【図３】本実施の形態に従う制御装置に接続されるサーボドライバの機能構成の一例を示す模式図である。
【図４】本実施の形態に従う処理および機能の概要を説明するための模式図である。
【図５】本実施の形態に従う制御システムにおいて実行される処理手順を示すフローチャートである。
【図６】本実施の形態に従う制御装置において制御対象の内部モデルを作成するときの機能構成を示す模式図である。
【図７】本実施の形態に従う制御装置において制御対象の内部モデルを用いたモデル予測制御が実行されるときの機能構成を示す模式図である。
【図８】本実施の形態に従う制御装置においてモデル予測制御が実行されるときの機能構成を示す模式図である。
【図９】本実施の形態の変形例に従う制御装置において制御対象の内部モデルを作成するときの機能構成を示す模式図である。
【図１０】本実施の形態の変形例に従う制御装置において制御対象の内部モデルを用いたモデル予測制御が実行されるときの機能構成を示す模式図である。
【発明を実施するための形態】
【００２１】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２２】
＜Ａ．制御システムの構成例＞
まず、本実施の形態に従う制御システム１の構成例について説明する。図１は、本実施の形態に従う制御システム１の構成例を示す模式図である。図１には、制御システム１の制御対象としてＸＹステージ２を駆動させる例を示す。
【００２３】
制御システム１は、制御装置１００と、１または複数のサーボドライバとを含む。図１に示す構成においては、制御装置１００には、２つのサーボドライバ２００Ｘ，２００Ｙ（以下、「サーボドライバ２００」とも総称する。）が接続されている。サーボドライバ２００は、サーボモータを駆動する。
【００２４】
制御装置１００は、１または複数のサーボドライバ２００に対して、それぞれ目標値を与えることで、サーボモータを含む制御対象を制御する。制御装置１００と１または複数のサーボドライバ２００との間では、目標値を含むデータの遣り取りが可能になっている。
【００２５】
図１には、制御装置１００と１または複数のサーボドライバ２００との間は、フィールドバス１０１を介して接続されている構成例を示す。但し、このような構成例に限らず、任意の通信手段を採用することができる。あるいは、制御装置１００とサーボドライバ２００との間を直接信号線で接続するようにしてもよい。さらに、制御装置１００とサーボドライバ２００とを一体化した構成を採用してもよい。以下に説明するような、アルゴリズムが実現されるものであれば、どのような実装形態を採用してもよい。
【００２６】
ＸＹステージ２は、ワークが置載されるワーキングプレート３を互いに直交する二方向にそれぞれ移動させることができる機構である。
【００２７】
より具体的には、第１ベースプレート４には、ワーキングプレート３をＸ方向に沿って任意に移動させるボールネジ６が配置されている。ボールネジ６は、ワーキングプレート３に含まれるナットと係合されている。ボールネジ６の一端に連結されたサーボモータ３００Ｘが回転駆動することで、ワーキングプレート３に含まれるナットとボールネジ６とが相対回転し、その結果、ワーキングプレート３がＸ方向に沿って移動することになる。
【００２８】
さらに、第２ベースプレート７は、ワーキングプレート３および第１ベースプレート４をＹ方向に沿って任意に移動させるボールネジ９が配置されている。ボールネジ９は、第１ベースプレート４に含まれるナットと係合されている。ボールネジ９の一端に連結されたサーボモータ３００Ｙが回転駆動することで、第１ベースプレート４に含まれるナットとボールネジ９とが相対回転し、その結果、ワーキングプレート３および第１ベースプレート４がＹ方向に沿って移動することになる。
【００２９】
制御装置１００は、予め指定された目標軌跡に沿って、サーボドライバ２００Ｘに対してＸ方向の目標位置を目標値として与えるとともに、サーボドライバ２００Ｙに対してＹ方向の目標位置を目標値として与える。Ｘ方向およびＹ方向のそれぞれの目標位置を順次更新することで、ワーキングプレート３（および、ワーキングプレート３上に配置された図示しないワーク）の二次元平面上の軌跡（すなわち、各時間における座標位置）を任意に制御できる。
【００３０】
以下の説明においては、ＸＹステージ２を構成するサーボドライバ２００およびサーボドライバ２００により駆動される負荷（機械）を「機械系」と総称することもある。
【００３１】
サーボドライバ２００は、後述するような制御ループに係る演算を実行するためのコントローラ２０２と、コントローラ２０２での演算結果に基づいて、サーボモータ３００に対して動力信号を与えるドライブ回路２０４とを含む。後述するように、サーボドライバ２００には、ＸＹステージ２の状態（すなわち、位置などの制御量）を示すフィードバック値を受信するようになっている。
【００３２】
本実施の形態においては、一例として、サーボモータ３００の回転軸に結合されたエンコーダからの出力信号をフィードバック値とする構成例を示す。エンコーダからの出力信号により、サーボモータ３００の位置、回転位相、回転速度、累積回転数などを検出できる。なお、サーボモータ３００からのフィードバック値は、制御装置１００へ直接入力されてもよい。
【００３３】
＜Ｂ．制御システムに含まれる各装置の構成例＞
次に、制御システム１に含まれる制御装置１００およびサーボドライバ２００の構成例について説明する。
【００３４】
（ｂ１：制御装置１００）
本実施の形態に従う制御装置１００は、一例として、ＰＬＣ（プログラマブルコントローラ）を用いて実装されてもよい。制御装置１００は、予め格納された制御プログラム（後述するような、システムプログラムおよびユーザプログラムを含む）をプロセッサが実行することで、後述するような処理が実現されてもよい。
【００３５】
図２は、本実施の形態に従う制御装置１００のハードウェア構成の一例を示す模式図である。図２を参照して、制御装置１００は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ１０２と、チップセット１０４と、メインメモリ１０６と、フラッシュメモリ１０８と、外部ネットワークコントローラ１１６と、メモリカードインターフェイス１１８と、内部バスコントローラ１２２と、フィールドバスコントローラ１２４とを含む。
【００３６】
プロセッサ１０２は、フラッシュメモリ１０８に格納されたシステムプログラム１１０およびユーザプログラム１１２を読み出して、メインメモリ１０６に展開して実行することで、制御対象に対する任意の制御を実現する。プロセッサ１０２がシステムプログラム１１０およびユーザプログラム１１２を実行することで、後述するような、サーボドライバへの目標値の出力、サーボドライバからのフィードバック値の取得、フィールドバスを介したデータ通信に係る処理などを実行する。
【００３７】
システムプログラム１１０は、データの入出力処理や実行タイミング制御などの、制御装置１００の基本的な機能を提供するための命令コードを含む。システムプログラム１１０は、その一部として、モデル作成ライブラリ１１０Ａおよびモデル予測制御ライブラリ１１０Ｂを含む。これらのライブラリは、一種のプログラムモジュールであり、本実施の形態に従う処理および機能を実現するための命令コードを含む。ユーザプログラム１１２は、制御対象に応じて任意に設計され、シーケンス制御を実行するためのシーケンスプログラム１１２Ａおよびモーション制御を実行するためのモーションプログラム１１２Ｂとを含む。ユーザプログラム１１２において、モデル作成ライブラリ１１０Ａおよびモデル予測制御ライブラリ１１０Ｂをそれぞれ利用するモデル作成ファンクションブロックおよびモデル予測制御ファンクションブロックが定義されることで、本実施の形態に従う処理および機能が実現される。ファンクションブロックは、制御装置１００で実行されるプログラムのコンポーネントであり、複数回使用するプログラムエレメントをモジュール化したものを意味する。
【００３８】
チップセット１０４は、各コンポーネントを制御することで、制御装置１００全体としての処理を実現する。
【００３９】
内部バスコントローラ１２２は、制御装置１００と内部バスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、Ｉ／Ｏユニット１２６が接続されている。
【００４０】
フィールドバスコントローラ１２４は、制御装置１００とフィールドバスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、サーボドライバ２００が接続されている。
【００４１】
内部バスコントローラ１２２およびフィールドバスコントローラ１２４は、接続されているデバイスに対して任意の指令を与えることができるとともに、デバイスが管理している任意のデータ（測定値を含む）を取得することができる。また、内部バスコントローラ１２２および／またはフィールドバスコントローラ１２４は、サーボドライバ２００との間でデータを遣り取りするためのインターフェイスとしても機能する。
【００４２】
外部ネットワークコントローラ１１６は、各種の有線／無線ネットワークを通じたデータの遣り取りを制御する。メモリカードインターフェイス１１８は、メモリカード１２０を着脱可能に構成されており、メモリカード１２０に対してデータを書込み、メモリカード１２０からデータを読出すことが可能になっている。
【００４３】
（ｂ２：サーボドライバ２００）
本実施の形態に従う制御装置１００に接続されるサーボドライバ２００の機能構成について説明する。図３は、本実施の形態に従う制御装置１００に接続されるサーボドライバ２００の機能構成の一例を示す模式図である。
【００４４】
本実施の形態に従う制御システム１においては、制御装置１００からサーボドライバ２００に対して目標値として目標位置が与えられるとともに、サーボモータ３００に結合されたエンコーダ３０２からの出力信号がフィードバック値として与えられる。
【００４５】
本実施の形態に従う制御システム１に含まれるサーボドライバ２００は、エンコーダ３０２からのフィードバック値により得られる実位置が制御装置１００などから与えられる目標位置に追従するように、ドライブ回路２０４に対する操作量である電流指令を調整する。一例として、本実施の形態に従うサーボドライバ２００においては、モデル追従制御系の制御ループが構成される。すなわち、サーボドライバ２００では、モデル追従制御系の制御ループに従う制御演算が実行される。
【００４６】
これらの制御ループに設定される制御ゲインなどの制御パラメータは、制御対象に応じて予め最適化されることになる。すなわち、サーボドライバ２００は、制御対象に応じて決定された制御パラメータに基づいて、サーボモータ３００を駆動するための操作量を決定する制御演算を実行するように構成されている。具体的には、サーボドライバ２００のコントローラ２０２にて実行される制御演算は、メインループとしての位置制御ループに加えて、マイナーループとしての速度制御ループを含む。
【００４７】
より具体的には、サーボドライバ２００のコントローラ２０２は、機能構成として、差分演算部２１０，２１４と、位置制御部２１２と、速度制御部２１６と、加算部２１８と、トルク制御部２２０と、速度検出部２２２と、モデル追従制御部２３０とを含む。
【００４８】
位置制御部２１２は、位置についての制御ループを構成する制御演算部であり、差分演算部２１０からの位置偏差に応じた速度指令を操作量として出力する。差分演算部２１０は、モデル追従制御部２３０からの位置指令と実位置（フィードバック値）との偏差を算出する。
【００４９】
速度制御部２１６は、速度についての制御ループを構成する制御演算部であり、差分演算部２１４からの速度偏差に応じたトルク指令を操作量として出力する。差分演算部２１４は、位置制御部２１２からの操作量（速度指令）と実速度（フィードバック値）との偏差を算出する。
【００５０】
速度検出部２２２は、エンコーダ３０２からのフィードバック値（例えば、サーボモータ３００の回転数に比例した数のパルス）からサーボモータ３００の実速度（あるいは実回転速度）を検出する。
【００５１】
トルク制御部２２０は、トルクについての制御ループを構成する制御演算部であり、速度検出部２２２からの操作量（トルク指令）に応じた電流指令を操作量として出力する。
【００５２】
ドライブ回路２０４では、トルク制御部２２０からの操作量（電流指令）を実現できるように、サーボモータ３００へ供給される電流の大きさ、タイミング、波形などが調整される。
【００５３】
モデル追従制御部２３０は、チューニングにより、制御対象（サーボドライバ２００およびサーボドライバ２００により駆動される負荷（機械））の動特性を示す特性パラメータを予め取得している。モデル追従制御部２３０は、制御装置１００などから与えられる目標位置に対して、この特性パラメータに基づいて、位置制御ループにおける目標値となる位置指令と、速度制御ループに対する速度フィードフォワードと、トルク制御ループに対するトルクフィードフォワードとを算出する。
【００５４】
＜Ｃ．概要＞
次に、本実施の形態に従う処理および機能の概要について説明する。
【００５５】
図３に示すようなモデル追従制御系を用いて制御対象を適切に制御するためには、各制御部における制御ゲインを決定するためのチューニングが事前に実行される。すなわち、サーボドライバ２００は、制御ゲインなどの制御パラメータを決定するためのチューニングを実行する機能を有している。以下の説明では、サーボドライバ２００におけるモデル追従制御系の構成に必要な制御ゲインなどの制御パラメータを「サーボパラメータ」とも総称する。
【００５６】
サーボパラメータを決定するためのチューニングの手法としては、ステップ応答法や限界感度法といった公知の方法を採用することができる。
【００５７】
このようなチューニングによって得られたサーボパラメータは、制御対象（機械系およびサーボドライバ）の動特性を反映するものである。つまり、サーボドライバ２００が保持するサーボパラメータは、制御対象の動特性を示す情報であり、本実施の形態においては、このような情報を制御装置１００での制御にも利用する。
【００５８】
図４は、本実施の形態に従う処理および機能の概要を説明するための模式図である。図４を参照して、制御装置１００は、主たる機能構成として、モデル作成モジュール１５０と、モデル予測制御モジュール１７０とを含む。これらのモジュールは、典型的には、ユーザプログラム１１２において、モデル作成ファンクションブロックおよびモデル予測制御ファンクションブロックが規定されることにより、モデル作成ライブラリ１１０Ａおよびモデル予測制御ライブラリ１１０Ｂがそれぞれコールされて実現される。すなわち、モデル作成モジュール１５０およびモデル予測制御モジュール１７０は、ユーザプログラム１１２に規定されるファンクションブロックによって機能化される。
【００５９】
モデル作成モジュール１５０は、サーボドライバ２００の制御パラメータ（サーボパラメータ）を取得して、制御装置１００から見た、制御対象の動特性を示す内部モデル１６０を作成する。
【００６０】
そして、実際の制御対象に対する制御が実行される段階においては、作成された内部モデル１６０を用いてモデル予測制御が実施される。すなわち、モデル予測制御モジュール１７０は、目標軌跡に対応する目標値と、制御対象からの実位置（フィードバック値）とに基づいて、サーボドライバ２００へ与える補正目標位置（補正目標値）を算出する。すなわち、モデル予測制御モジュール１７０は、モデル予測制御に従って補正目標値を算出する。
【００６１】
より具体的には、モデル予測制御モジュール１７０は、制御対象を移動させるべき軌跡を示す目標軌跡から各時刻の目標位置を取得する。モデル予測制御モジュール１７０は、内部モデル１６０に基づいて、サーボドライバ２００から制御対象の動特性に応じた制御量が出力されるように、本来の目標位置を補正した上で、サーボドライバ２００へ目標値として補正目標位置を与える。モデル予測制御モジュール１７０において実行されるモデル予測制御では、内部モデルから算出した将来の操作量（実位置）が将来の目標値（指令値）と一致するように、目標位置を補正して、補正目標位置を算出する。このように、制御装置１００からサーボドライバ２００へ与える目標値を制御対象の動特性に応じて調整することで、より高い追従性をもつ制御系を実現できる。
【００６２】
また、制御装置１００でのモデル予測制御を実現するために必要な制御対象の動特性を示す内部モデルを、既知の情報から自動的に作成できるので、ユーザにモデル作成のための知識がなくとも、モデル予測制御を利用することができる。
【００６３】
＜Ｄ．処理手順＞
次に、本実施の形態に従う制御システム１において実行される処理手順の概要について説明する。図５は、本実施の形態に従う制御システム１において実行される処理手順を示すフローチャートである。図５に示すステップのうち制御装置１００が担当するステップについては、制御装置１００のプロセッサ１０２が制御プログラム（図２に示すシステムプログラム１１０およびユーザプログラム１１２を含む）を実行することで実現されてもよい。
【００６４】
図５を参照して、ユーザ操作を受けて、サーボドライバ２００がサーボパラメータを決定するためのチューニングを実行する（ステップＳ１００）。チューニングによって決定されたサーボパラメータはサーボドライバ２００へ格納される。
【００６５】
制御装置１００は、サーボドライバ２００へアクセスしてサーボパラメータを取得する（ステップＳ１０２）。そして、制御装置１００は、取得したサーボパラメータに基づいて制御対象の動特性を示す内部モデル１６０を作成する（ステップＳ１０４）。
【００６６】
制御装置１００は、予め指定された目標軌跡に基づいて、目標位置の時系列データを生成する（ステップＳ１０６）。すなわち、目標軌跡を規定する制御周期毎の目標位置を示す時系列データが生成される。なお、目標位置の時系列データ自体を予め格納しておいてもよい。つまり、制御装置１００は、目標軌跡を規定する目標値の時系列データを格納する。この場合には、ステップＳ１０６の処理は、予め格納された目標位置の時系列データへアクセスすることを意味する。
【００６７】
このように、目標軌跡を規定する制御周期毎の目標位置は、時系列データの形で予め格納されていてもよいし、予め定められた計算式に従って各制御周期についての目標値を逐次計算するようにしてもよい。
【００６８】
制御装置１００は、ステップＳ１０６において生成した目標位置の時系列データから、現制御周期に対応する目標位置および現制御周期からある一定期間の複数の目標位置を抽出する（ステップＳ１０８）。すなわち、制御装置１００は、目標軌跡に対応する目標値を取得する。
【００６９】
制御装置１００は、抽出した目標位置およびフィードバック値（実位置）を、ステップＳ１０４において作成された内部モデル１６０に適用して、現制御周期における補正目標位置を算出する（ステップＳ１１０）。すなわち、制御装置１００は、目標位置と制御対象からのフィードバック値とに基づいて、サーボドライバ２００へ与える補正目標値を算出する。最終的に、制御装置１００は、算出した補正目標位置をサーボドライバ２００へ出力する（ステップＳ１１２）。
【００７０】
続いて、制御装置１００は、目標軌跡の終点に到達したか否かを判断する（ステップＳ１１４）。目標軌跡の終点に到達していない場合（ステップＳ１１４においてＮＯの場合）には、ステップＳ１０８以下の処理が繰返される。
【００７１】
目標軌跡の終点に到達している場合（ステップＳ１１４においてＹＥＳの場合）には、モデル予測制御を終了する。
【００７２】
以上のような処理手順によって、本実施の形態に従うモデル予測制御が実現される。なお、ステップＳ１０８〜Ｓ１２０の処理は、指定されたサーボドライバ２００の各々について実施される。そのため、複数のサーボドライバ２００のそれぞれについてのステップＳ１０８〜Ｓ１２０の処理が並列的に実行されることもある。
【００７３】
＜Ｅ．機能構成＞
次に、本実施の形態に従うモデル予測制御を実現するための制御装置１００の機能構成について説明する。
【００７４】
図６は、本実施の形態に従う制御装置１００において制御対象の内部モデル１６０を作成するときの機能構成を示す模式図である。図７は、本実施の形態に従う制御装置１００において制御対象の内部モデル１６０を用いたモデル予測制御が実行されるときの機能構成を示す模式図である。
【００７５】
図６および図７には、制御装置１００がＸＹステージ２（図１参照）を駆動する例を示す。すなわち、制御装置１００には、Ｘ軸用およびＹ軸用の計２つのサーボドライバ２００Ｘ，２００Ｙが接続されている構成例を示す。そのため、本実施の形態に従う制御装置１００は、サーボドライバ２００Ｘ，２００Ｙのそれぞれに対応して同様の機能モジュールの組が２つ実装されている。図６および図７に示す構成は一例であり、サーボドライバ２００の数は１つでもよいし、３つ以上であってもよい。
【００７６】
図６および図７に示すように、制御装置１００に複数のサーボドライバ２００が接続されている場合には、モデル作成モジュール１５０およびモデル予測制御モジュール１７０は、当該複数のサーボドライバ２００の各々に対応付けて構成される。
【００７７】
図６および図７を参照して、より具体的には、制御装置１００は、主たる機能構成として、モデル作成モジュール１５０Ｘ，１５０Ｙと、モデル予測制御モジュール１７０Ｘ，１７０Ｙと、軌跡生成モジュール１８０Ｘ，１８０Ｙとを含む。図中においては、モデル予測制御を「ＭＰＣ（Model Predictive Control）」とも記す。
【００７８】
上述したように、モデル作成モジュール１５０Ｘ，１５０Ｙは、ユーザプログラム１１２において、Ｘ軸およびＹ軸に関連付けてモデル作成ファンクションブロックをそれぞれ規定することで実現される。同様に、モデル予測制御モジュール１７０Ｘ，１７０Ｙは、ユーザプログラム１１２において、Ｘ軸およびＹ軸に関連付けてモデル予測制御ファンクションブロックをそれぞれ規定することで実現される。
【００７９】
図６に示すように、制御対象の内部モデル１６０の作成処理においては、モデル作成モジュール１５０Ｘが対応するサーボドライバ２００Ｘからサーボパラメータを取得する。また、モデル作成モジュール１５０Ｙは対応するサーボドライバ２００Ｙからサーボパラメータを取得する。
【００８０】
モデル作成モジュール１５０Ｘは、取得されたサーボパラメータ（Ｘ軸）に基づいて、制御対象（機械系（Ｘ軸））の内部モデル（Ｘ軸）を作成する。そして、モデル作成モジュール１５０Ｘは、作成した内部モデル（Ｘ軸）を規定するＸ軸モデル係数およびモデル予測制御パラメータをモデル予測制御モジュール１７０Ｘへ与える。
【００８１】
同様に、モデル作成モジュール１５０Ｙは、取得されたサーボパラメータ（Ｙ軸）に基づいて、制御対象（機械系（Ｙ軸））の内部モデル（Ｙ軸）を作成する。そして、モデル作成モジュール１５０Ｙは、作成した内部モデル（Ｙ軸）を規定するＹ軸モデル係数およびモデル予測制御パラメータをモデル予測制御モジュール１７０Ｙへ与える。
【００８２】
モデル予測制御モジュール１７０Ｘ，１７０Ｙに対して、モデル係数およびモデル予測制御パラメータが設定されることで、それぞれの軸におけるモデル予測制御の実行が可能になる。
【００８３】
図７に示すように、Ｘ軸についてのモデル予測制御において、軌跡生成モジュール１８０Ｘは、予め指定された目標軌跡に沿って目標位置の時系列データを生成し、各制御周期に対応する目標位置Ｘを時系列データから順次読出し、モデル予測制御モジュール１７０Ｘへ入力する。モデル予測制御モジュール１７０Ｘは、軌跡生成モジュール１８０Ｘからの目標位置Ｘおよび機械系（Ｘ）の実位置Ｘを、予め作成されている内部モデル（Ｘ軸）に適用することで、補正目標位置Ｘを算出する。そして、モデル予測制御モジュール１７０Ｘは、算出した補正目標位置Ｘをサーボドライバ２００Ｘ（モデル追従制御部２３０Ｘ）へ与える。
【００８４】
同様に、Ｙ軸ついてのモデル予測制御において、軌跡生成モジュール１８０Ｙは、予め指定された目標軌跡に沿って目標位置の時系列データを生成し、各制御周期に対応する目標位置Ｙを時系列データから順次読出し、モデル予測制御モジュール１７０Ｙへ入力する。モデル予測制御モジュール１７０Ｙは、軌跡生成モジュール１８０Ｙからの目標位置Ｙと機械系（Ｙ）および実位置Ｙを、予め作成されている内部モデル（Ｙ軸）に適用することで、補正目標位置Ｙを算出する。そして、モデル予測制御モジュール１７０Ｙは、算出した補正目標位置Ｙをサーボドライバ２００Ｙ（モデル追従制御部２３０Ｙ）へ与える。
【００８５】
以上のような機能構成によって、制御装置１００によるモデル予測制御が実現される。
＜Ｆ．内部モデルの作成処理＞
次に、内部モデルの生成処理について詳細に説明する。以下に説明する処理の詳細は、図５のステップＳ１０４〜Ｓ１０６の処理、および、図６に示すモデル作成モジュール１５０の機能に対応する。
【００８６】
制御装置１００（モデル作成モジュール１５０）は、対象のサーボドライバ２００からサーボパラメータを取得する。制御装置１００とサーボドライバ２００とがフィールドバス１０１を介して通信接続されている場合には、所定の通信コマンドを対象のサーボドライバ２００へ発行することで、サーボドライバ２００（モデル追従制御部２３０）からサーボパラメータを取得するようにしてもよい。
【００８７】
生成される制御対象の内部モデルとしては、対象となる機械系の物理的な構造などに着目して、適切な伝達関数が採用されてもよい。一例として、制御対象の内部モデルとして、以下の式に示すような、二次遅れ系要素に一次遅れフィルタを乗じたものを採用してもよい。
【００８８】
【数１】
2018151899.tif 000003
【００８９】
上述した内部モデルはラプラス領域（時間連続）で規定された伝達関数である。実際の制御演算においては、制御装置１００は所定の制御周期で演算処理を繰返すので、サンプリングした形を用いることが好ましい。上述の式を、制御装置１００の制御周期で時間離散化すると、以下のような伝達関数Ｇ（ｚ）が導出できる。
【００９０】
【数２】
2018151899.tif 000004
【００９１】
このように導出される伝達関数を制御対象の内部モデルとして用いる。なお、モデル予測制御モジュール１７０では、上述の伝達関数を定義する、係数ｂ０，ｂ１，ｂ２，ｂ３，ａ１，ａ２，ａ３が保持される。
【００９２】
なお、図１に示すように、制御装置１００と１または複数のサーボドライバ２００との間がフィールドバス１０１を介して接続されている場合には、フィールドバス１０１を介した通信にむだ時間が発生するので、そのようなむだ時間も考慮した内部モデルを用いることが好ましい。
【００９３】
具体的には、制御装置１００と１または複数のサーボドライバ２００との間の通信遅れの時間（通常は、フィールドバスの通信周期）をｄとして、むだ時間要素として、上述の伝達関数に反映する。このむだ時間要素が反映された伝達関数Ｇ（ｚ）は以下のようになる。
【００９４】
【数３】
2018151899.tif 000005
【００９５】
上述したように、制御装置１００（モデル予測制御モジュール１７０）は、制御対象の内部モデルを示す伝達関数Ｇ（ｚ）を用いて、モデル予測制御を実行する。
【００９６】
なお、本実施の形態においては、作成した制御対象の内部モデルを用いて、モデル予測制御に用いる例を示すが、例えば、パーソナルコンピュータ上で、当該作成した内部モデルを用いた動作シミュレーションなどを実行するようにしてもよい。
【００９７】
＜Ｇ．モデル予測制御＞
次に、モデル予測制御について詳細に説明する。以下に説明する処理の詳細は、図５のステップＳ１０８〜Ｓ１２０の処理、ならびに、図７に示すモデル予測制御モジュール１７０Ｘ，１７０Ｙおよび軌跡生成モジュール１８０Ｘ，１８０Ｙの機能に対応する。
【００９８】
図８は、本実施の形態に従う制御装置１００においてモデル予測制御が実行されるときの機能構成を示す模式図である。図８を参照して、制御装置１００（軌跡生成モジュール１８０Ｘ，１８０Ｙ）は、制御対象（機械系（Ｘ軸）および機械系（Ｙ軸））を移動させるべき位置（目標位置）の時系列データ１８２を生成および保持する。目標位置の時系列データ１８２は、制御装置１００で実行されるプログラムがアクセス可能な配列変数に格納されるようにしてもよい。モデル予測制御モジュール１７０Ｘ，１７０Ｙは、配列変数を参照することなどによって、目標位置の時系列データ１８２にアクセスして、各制御周期における目標位置（現制御周期に対応する目標位置および現制御周期からある一定期間の複数の目標位置を含む）を取得する。モデル予測制御モジュール１７０Ｘ，１７０Ｙは、予測演算部１７２を含む。予測演算部１７２は、対応する目標位置と、対応するサーボドライバ２００Ｘ，２００Ｙから実位置Ｘ，Ｙとに基づいて、上述したような内部モデル式を適用して補正目標位置Ｘ，Ｙを算出する。
【００９９】
各軸についての補正目標位置は、制御周期毎に演算される。そして、演算により得られた補正目標位置は、対応するサーボドライバ２００へ出力される。サーボドライバ２００は、制御装置１００から与えられた補正目標位置に従って、サーボモータ３００を駆動することで、制御対象の位置制御を実現する。
【０１００】
このように、サーボドライバ２００へ与えられる補正目標位置は、予め指定された目標軌跡に従って、制御周期毎に更新されることになる。
【０１０１】
＜Ｈ．作成された内部モデルの検証＞
上述したような手順によって作成された内部モデルについて妥当性の検証を行なうようにしてもよい。例えば、対象のサーボドライバ２００でのチューニングが全く実施されていない場合、チューニングの実施後の制御対象に対する何らかの物理的な変更がなされた場合、チューニングの実施後に制御対象に経年変化が生じた場合などには、サーボドライバ２００に格納されるサーボパラメータ自体が妥当ではない場合が考えられる。その結果、制御装置１００において生成される制御対象の内部モデルについても妥当ではない可能性がある。このような場合、サーボドライバ２００での再度のチューニングなどが必要となる。以下のような処理手順によって内部モデルの妥当性を評価することができる。
【０１０２】
（ｈ１：モデル予測制御の実行開始前の段階）
まず、モデル予測制御の実行開始前の段階での内部モデルの検証方法について説明する。すなわち、内部モデルを作成した時点で、当該作成した内部モデルの妥当性を検証するようにしてもよい。
【０１０３】
具体的には、まず、モデル予測制御を行なわず、正弦波などのテストパターンをサーボドライバ２００へ目標位置として与えるとともに、そのときの実位置ｙｉを計測する。また、同一のテストパターンを作成した内部モデルに与えることで内部モデルの出力値ｙｍｉを演算する。そして、計測された実位置ｙｉと演算された出力値ｙｍｉとの間の乖離が大きい場合に、作成した内部モデルが妥当ではないと判断するようにしてもよい。
【０１０４】
このような乖離を評価する方法として、両時系列データの偏差二乗和の平均値を用いてもよい。例えば、以下に示すような偏差二乗和の平均値が予め定められたしきい値以上である場合には、作成した内部モデルが妥当ではないと判断してもよい。
【０１０５】
【数４】
2018151899.tif 000006
【０１０６】
両時系列データの乖離を評価する方法としては、どのような関数を用いてもよい。
（ｈ２：モデル予測制御の実行中）
次に、モデル予測制御の実行中においても、作成した内部モデルについての妥当性を監視するようにしてもよい。このような妥当性の監視方法の一例として、例えば、モデル予測制御に従って算出される補正目標位置と、軌跡生成モジュールから出力される本来の目標位置との乖離を評価するようにしてもよい。より具体的には、モデル予測制御に従って算出される補正目標位置と、軌跡生成モジュールから出力される本来の目標位置との差の絶対値が予め定められたしきい値以上であるか否かを各制御周期において、または、所定数の制御周期にわたって判断するようにしてもよい。
【０１０７】
別の監視方法として、算出される補正目標位置の時間的変化の大きさを評価するようにしてもよい。例えば、１つ前の制御周期において算出された補正目標位置と現制御周期において算出された補正目標位置との変化量が予め定められたしきい値以上であるか否かを判断するようにしてもよい。あるいは、補正目標位置と現制御周期において算出された補正目標位置との変化量のバラツキなどを評価するようにしてもよい。
【０１０８】
＜Ｉ．変形例＞
上述の実施の形態においては、モデル追従制御系の制御ループを実装したサーボドライバ２００を例示するが、それ以外の制御ループを実装した構成に対しても、本実施の形態に従う内部モデルの作成処理を適用できる。以下の変形例では、本願発明の技術的範囲に含まれる構成の別の一部として、単純適応制御系の制御ループを実装したサーボドライバを用いる構成について説明する。すなわち、実施の形態の変形例に従うサーボドライバでは、単純適応制御系の制御ループに従う制御演算が実行される。
【０１０９】
図９は、本実施の形態の変形例に従う制御装置１００において制御対象の内部モデル１６０を作成するときの機能構成を示す模式図である。図１０は、本実施の形態の変形例に従う制御装置１００において制御対象の内部モデル１６０を用いたモデル予測制御が実行されるときの機能構成を示す模式図である。
【０１１０】
図９および図１０を参照して、サーボドライバ２００＃Ｘ，２００＃Ｙは、単純適応制御系の制御ループとして、規範モデル２５０Ｘ，２５０Ｙと、適応制御ゲイン（Ｋｅ（ｔ），Ｋｘ（ｔ），Ｋｒ（ｔ））２６０Ｘ，２６０Ｙ，２６２Ｘ，２６２Ｙ，２６４Ｘ，２６４Ｙと、フィードフォワード補償器（ＰＦＣ）２６６Ｘ，２６６Ｙとを含む。図９および図１０において、Ｘ軸およびＹ軸を示す意図で、適応制御ゲインの各係数に「ｘ」または「ｙ」を付加している。
【０１１１】
図９および図１０に示す単純適応制御系を構成する規範モデル２５０Ｘ，２５０Ｙにおいて、２つの状態値ｘｍ（ｔ），ｙｍ（ｔ）を以下のように定義することができる。
【０１１２】
【数５】
2018151899.tif 000007
【０１１３】
なお、ｒ（ｔ）は、規範モデルに入力される目標値を示す。
このような規範モデルを採用した場合、単純適応制御系から出力される操作量ｕ（ｔ）は、以下のようになる。
【０１１４】
ｕ（ｔ）＝Ｋｅ（ｔ）・ｙｍ（ｔ）＋Ｋｘ（ｔ）・ｘｍ（ｔ）＋Ｋｒ（ｔ）・ｒ（ｔ）
また、適応制御ゲインは、制御対象からの制御量ｙ（ｔ）と、規範モデルの出力ｙｍ（ｔ）を用いて、以下に示すような、両者の偏差ｅ（ｔ）（＝ｙ（ｔ）−ｙｍ（ｔ））についての調整則に従って、決定することができる。
【０１１５】
【数６】
2018151899.tif 000008
【０１１６】
ここで、規範モデルの伝達関数Ｇ（ｓ）＝Ｋ／（ｓ＋ａ）であり、フィードフォワード補償器の伝達関数Ｇｆ（ｓ）＝δ／（ｓ＋α）である。
【０１１７】
上述したように、サーボドライバ２００のチューニングにおいては、上述したような調整則に従って適応制御ゲインの各々が決定される。制御装置１００＃は、規範モデルのパラメータを取得する。
【０１１８】
制御装置１００においては、上述したような単純適応制御系の制御ループに対応して、内部モデルが作成される。内部モデルが作成された後の処理は、上述の実施の形態と同様である。すなわち、図１０に示すように、Ｘ軸についてのモデル予測制御において、軌跡生成モジュール１８０＃Ｘは、各制御周期に対応する目標位置Ｘを時系列データから順次読出し、モデル予測制御モジュール１７０＃Ｘへ入力する。モデル予測制御モジュール１７０Ｘは、軌跡生成モジュール１８０Ｘからの目標位置Ｘと機械系（Ｘ）の実位置Ｘとの差分から、Ｘ軸についての位置偏差を算出し、予め作成されている内部モデル（Ｘ軸）を適用することで、補正目標位置Ｘを算出する。そして、モデル予測制御モジュール１７０＃Ｘは、算出した補正目標位置Ｘをサーボドライバ２００＃Ｘへ与える。
【０１１９】
同様に、Ｙ軸ついてのうモデル予測制御において、軌跡生成モジュール１８０＃Ｙは、各制御周期に対応する目標位置Ｙを時系列データから順次読出し、モデル予測制御モジュール１７０＃Ｙへ入力する。モデル予測制御モジュール１７０＃Ｙは、軌跡生成モジュール１８０＃Ｙからの目標位置Ｙと機械系（Ｙ）の実位置Ｙとの差分から、Ｙ軸についての位置偏差を算出し、予め作成されている内部モデル（Ｙ軸）を適用することで、補正目標位置Ｙを算出する。そして、モデル予測制御モジュール１７０＃Ｙは、算出した補正目標位置Ｙをサーボドライバ２００＃Ｙへ与える。
【０１２０】
以上のように、制御対象の動特性を反映した制御パラメータを有するサーボドライバであれば、どのような制御ループが実装されていても、本実施の形態に従う手法を採用することで、制御対象の動特性を示す内部モデルを容易に構築することができ、その構築したモデルに基づいて、モデル予測制御を容易に実装することができる。
【０１２１】
＜Ｊ．結論＞
サーボドライバに接続される制御装置において、モデル予測制御などのモデルベース制御を実行させる場合には、事前に制御対象の内部モデルを作成する必要がある。このような内部モデルの作成には、ある程度の知識および経験が必要であり、誰でも利用できるような制御手法ではなかった。
【０１２２】
これに対して、本実施の形態によれば、チューニングにより制御対象に応じた制御パラメータを決定するサーボドライバを利用することで、当該サーボドライバに内部設定されている内部モデル（すなわち、サーボパラメータ）を制御装置１００にて利用することで、制御装置１００から見た制御対象の動特性を示す内部モデルを容易に作成することができる。
【０１２３】
このような内部モデルの作成機能を利用することで、内部モデルの作成についての知識および経験がないユーザであっても、モデル予測制御などのモデルベース制御を容易に利用することができる。
【０１２４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２５】
１  制御システム、２  ＸＹステージ、３  ワーキングプレート、４  第１ベースプレート、６，９  ボールネジ、７  第２ベースプレート、１００  制御装置、１０１  フィールドバス、１０２  プロセッサ、１０４  チップセット、１０６  メインメモリ、１０８  フラッシュメモリ、１１０  システムプログラム、１１０Ａ  モデル作成ライブラリ、１１０Ｂ  モデル予測制御ライブラリ、１１２  ユーザプログラム、１１２Ａ  シーケンスプログラム、１１２Ｂ  モーションプログラム、１１６  外部ネットワークコントローラ、１１８  メモリカードインターフェイス、１２０  メモリカード、１２２  内部バスコントローラ、１２４  フィールドバスコントローラ、１２６  Ｉ／Ｏユニット、１５０，１５０Ｘ，１５０Ｙ  モデル作成モジュール、１６０，１６０Ｘ，１６０Ｙ  内部モデル、１７０，１７０Ｘ，１７０Ｙ  モデル予測制御モジュール、１７２  予測演算部、１８０，１８０Ｘ，１８０Ｙ  軌跡生成モジュール、１８２  時系列データ、１８２Ｘ，１８２Ｙ，２１０，２１４  差分演算部、２００，２００Ｘ，２００Ｙ  サーボドライバ、２１２  位置制御部、２１６  速度制御部、２１８  加算部、２２０  トルク制御部、２２２  速度検出部、２３０，２３０Ｘ，２３０Ｙ  自由度制御部、２５０Ｘ，２５０Ｙ  規範モデル、３００，３００Ｘ，３００Ｙ  サーボモータ、３０２  エンコーダ。
【図１】
2018151899.tif 000009
【図２】
2018151899.tif 000010
【図３】
2018151899.tif 000011
【図４】
2018151899.tif 000012
【図５】
2018151899.tif 000013
【図６】
2018151899.tif 000014
【図７】
2018151899.tif 000015
【図８】
2018151899.tif 000016
【図９】
2018151899.tif 000017
【図１０】
2018151899.tif 000018
【手続補正書】
【提出日】平成30年2月21日(2018.2.21)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
以上のような処理手順によって、本実施の形態に従うモデル予測制御が実現される。なお、ステップＳ１０８〜Ｓ１１４の処理は、指定されたサーボドライバ２００の各々について実施される。そのため、複数のサーボドライバ２００のそれぞれについてのステップＳ１０８〜Ｓ１１４の処理が並列的に実行されることもある。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００８４
【補正方法】変更
【補正の内容】
【００８４】
同様に、Ｙ軸ついてのモデル予測制御において、軌跡生成モジュール１８０Ｙは、予め指定された目標軌跡に沿って目標位置の時系列データを生成し、各制御周期に対応する目標位置Ｙを時系列データから順次読出し、モデル予測制御モジュール１７０Ｙへ入力する。モデル予測制御モジュール１７０Ｙは、軌跡生成モジュール１８０Ｙからの目標位置Ｙと機械系（Ｙ）の実位置Ｙを、予め作成されている内部モデル（Ｙ軸）に適用することで、補正目標位置Ｙを算出する。そして、モデル予測制御モジュール１７０Ｙは、算出した補正目標位置Ｙをサーボドライバ２００Ｙ（モデル追従制御部２３０Ｙ）へ与える。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００９７
【補正方法】変更
【補正の内容】
【００９７】
＜Ｇ．モデル予測制御＞
次に、モデル予測制御について詳細に説明する。以下に説明する処理の詳細は、図５のステップＳ１０８〜Ｓ１１４の処理、ならびに、図７に示すモデル予測制御モジュール１７０Ｘ，１７０Ｙおよび軌跡生成モジュール１８０Ｘ，１８０Ｙの機能に対応する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００９８
【補正方法】変更
【補正の内容】
【００９８】
図８は、本実施の形態に従う制御装置１００においてモデル予測制御が実行されるときの機能構成を示す模式図である。図８を参照して、制御装置１００（軌跡生成モジュール１８０Ｘ，１８０Ｙ）は、制御対象（機械系（Ｘ軸）および機械系（Ｙ軸））を移動させるべき位置（目標位置）の時系列データ１８２を生成および保持する。目標位置の時系列データ１８２は、制御装置１００で実行されるプログラムがアクセス可能な配列変数に格納されるようにしてもよい。モデル予測制御モジュール１７０Ｘ，１７０Ｙは、配列変数を参照することなどによって、目標位置の時系列データ１８２にアクセスして、各制御周期における目標位置（現制御周期に対応する目標位置および現制御周期からある一定期間の複数の目標位置を含む）を取得する。モデル予測制御モジュール１７０Ｘ，１７０Ｙは
、予測演算部１７２を含む。予測演算部１７２は、対応する目標位置と、対応するサーボドライバ２００Ｘ，２００Ｙから実位置Ｘ，Ｙとに基づいて、上述したような内部モデル式１６０Ｘ，１６０Ｙを適用して補正目標位置Ｘ，Ｙを算出する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１０９
【補正方法】変更
【補正の内容】
【０１０９】
図９は、本実施の形態の変形例に従う制御装置１００＃において制御対象の内部モデル１６０を作成するときの機能構成を示す模式図である。図１０は、本実施の形態の変形例に従う制御装置１００＃において制御対象の内部モデル１６０を用いたモデル予測制御が実行されるときの機能構成を示す模式図である。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１１８
【補正方法】変更
【補正の内容】
【０１１８】
制御装置１００においては、上述したような単純適応制御系の制御ループに対応して、内部モデルが作成される。内部モデルが作成された後の処理は、上述の実施の形態と同様である。すなわち、図１０に示すように、Ｘ軸についてのモデル予測制御において、軌跡生成モジュール１８０＃Ｘは、各制御周期に対応する目標位置Ｘを時系列データから順次読出し、モデル予測制御モジュール１７０＃Ｘへ入力する。モデル予測制御モジュール１７０＃Ｘは、軌跡生成モジュール１８０＃Ｘからの目標位置Ｘと機械系（Ｘ）の実位置Ｘとの差分から、Ｘ軸についての位置偏差を算出し、予め作成されている内部モデル（Ｘ軸）を適用することで、補正目標位置Ｘを算出する。そして、モデル予測制御モジュール１７０＃Ｘは、算出した補正目標位置Ｘをサーボドライバ２００＃Ｘへ与える。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１２５
【補正方法】変更
【補正の内容】
【０１２５】
１  制御システム、２  ＸＹステージ、３  ワーキングプレート、４  第１ベースプレート、６，９  ボールネジ、７  第２ベースプレート、１００  制御装置、１０１  フィールドバス、１０２  プロセッサ、１０４  チップセット、１０６  メインメモリ、１０８  フラッシュメモリ、１１０  システムプログラム、１１０Ａ  モデル作成ライブラリ、１１０Ｂ  モデル予測制御ライブラリ、１１２  ユーザプログラム、１１２Ａ  シーケンスプログラム、１１２Ｂ  モーションプログラム、１１６  外部ネットワークコントローラ、１１８  メモリカードインターフェイス、１２０  メモリカード、１２２  内部バスコントローラ、１２４  フィールドバスコントローラ、１２６  Ｉ／Ｏユニット、１５０，１５０Ｘ，１５０Ｙ  モデル作成モジュール、１６０，１６０Ｘ，１６０Ｙ  内部モデル、１７０，１７０Ｘ，１７０Ｙ  モデル予測制御モジュール、１７２  予測演算部、１８０Ｘ，１８０Ｙ，１８０＃Ｘ，１８０＃Ｙ  軌跡生成モジュール、１８２  時系列データ、２１０，２１４  差分演算部、２００，２００Ｘ，２００Ｙ  サーボドライバ、２１２  位置制御部、２１６  速度制御部、２１８  加算部、２２０  トルク制御部、２２２  速度検出部、２３０，２３０Ｘ，２３０Ｙ  モデル追従制御部、２５０Ｘ，２５０Ｙ  規範モデル、３００，３００Ｘ，３００Ｙ  サーボモータ、３０２  エンコーダ。
【手続補正８】
【補正対象書類名】図面
【補正対象項目名】図９
【補正方法】変更
【補正の内容】
【図９】
2018151899.tif 000019
【手続補正９】
【補正対象書類名】図面
【補正対象項目名】図１０
【補正方法】変更
【補正の内容】
【図１０】
2018151899.tif 000020