(57)【特許請求の範囲】
【請求項１】
目標軌道から制御周期ごとに生成された指令値に制御対象の制御量を追従させるフィードバック制御系が受け付ける当該指令値を補正する補正装置であって、
Ｎを２以上の整数として、Ｎ−１番目以前の制御周期の補正後の指令値に従って制御された前記制御対象の制御量を、Ｎ番目の制御周期において取得する制御量取得部と、
前記制御量取得部が前記Ｎ番目の制御周期において取得した前記制御量を用いて、前記フィードバック制御系が受け付ける前記Ｎ番目の制御周期の指令値を補正する指令値補正部と、を備えることを特徴とする補正装置。
【請求項２】
前記指令値補正部は、前記フィードバック制御系と前記制御対象とのモデルを用いたモデル予測制御によって、前記Ｎ番目の制御周期において取得した前記制御量を用いた前記Ｎ番目の制御周期の指令値の補正を行うことを特徴とする請求項１に記載の補正装置。
【請求項３】
前記フィードバック制御系は、サーボモータを制御対象とするサーボドライバであることを特徴とする請求項１または２に記載の補正装置。
【請求項４】
前記制御量取得部は、さらに、前記目標軌道に対応する前記制御対象の制御量を取得し、
Ｍを１以上の整数として、前記制御量取得部が取得したＭ回目の前記目標軌道の全体に対応する前記制御対象の制御量を用いて、前記Ｍ回目の前記目標軌道と同様の、Ｍ＋１回目の前記目標軌道から制御周期ごとに生成される指令値の全体に対する補正量を出力する学習制御部をさらに備えることを特徴とする請求項１から３のいずれか１項に記載の補正装置。
【請求項５】
前記制御量取得部は、複数のフィードバック制御系の各々の、前記Ｎ−１番目以前の制御周期の補正後の指令値に従って制御された制御対象の制御量を、前記Ｎ番目の制御周期において取得し、
前記指令値補正部は、前記制御量取得部が前記Ｎ番目の制御周期において取得した、前記複数のフィードバック制御系の各々の制御対象の制御量を用いて、前記複数のフィードバック制御系の各々が受け付ける、前記Ｎ番目の制御周期の指令値を補正することを特徴とする請求項１から４のいずれか１項に記載の補正装置。
【請求項６】
目標軌道から制御周期ごとに生成された指令値に制御対象の制御量を追従させるフィードバック制御系が受け付ける当該指令値を補正する補正装置の制御方法であって、
Ｎを２以上の整数として、Ｎ−１番目以前の制御周期の補正後の指令値に従って制御された前記制御対象の制御量を、Ｎ番目の制御周期において取得する制御量取得ステップと、
前記制御量取得ステップにて前記Ｎ番目の制御周期において取得した前記制御量を用いて、前記フィードバック制御系が受け付ける前記Ｎ番目の制御周期の指令値を補正する指令値補正ステップと、を含むことを特徴とする補正装置の制御方法。
【請求項７】
請求項１から５のいずれか一項に記載の補正装置としてコンピュータを機能させるための情報処理プログラムであって、前記各部としてコンピュータを機能させるための情報処理プログラム。
【請求項８】
請求項７に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーボドライバ等のフィードバック制御系に与える指令値を補正する補正装置等に関する。
【背景技術】
【０００２】
目標値（目標軌道）から制御周期ごとに生成された指令値をサーボドライバ等のフィードバック制御系に与えることにより、当該フィードバック制御系が、制御対象であるサーボモータ等の出力である制御量を当該指令値に追従するようにフィードバック制御を行う制御システムが知られている。このような制御システムにおける前記目標値への追従性能を向上させるための方法として、従来、次の２つの方法が知られている。第１に、前記フィードバック制御系が受け付ける指令値の情報と、前記フィードバック制御系の制御ゲインの情報とを利用するフィードフォワード制御を用いて、指令値を補正する方法である。第２に、前記フィードバック制御系と前記制御対象とのトータルの特性モデルの逆関数を利用して、指令値を補正する方法である。
【０００３】
例えば、下掲の特許文献１には、サーボ制御部（フィードバック制御系）に与える指令値について、モータ（制御対象）および機械系（負荷機械）のモデルを用いたフィードフォワード制御により制御する方法が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２４７４号公報（２０１４年１月９日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前記第１の方法は、フィードバック制御系が受け付ける指令値の情報と、前記フィードバック制御系の制御ゲインの情報とを利用するフィードフォワード制御を用いた簡易な構成で指令値を補正するものであり、目標値への追従性能を十分に向上させるものとはいえない。
【０００６】
また、前記第２の方法は、前記フィードバック制御系と前記制御対象とのトータルの特性モデルの精度が良ければ、前記第１の方法よりも高い追従性能を実現することができる。しかしながら、前記第２の方法は前記特性モデルのモデル誤差の影響が追従性能の悪化に直結する。その結果、前記第２の方法は、前記特性モデルの精度が悪い場合、かえって、目標値への追従性能が低くなる場合もある。
【０００７】
したがって、従来用いられてきた前記第１の方法および前記第２の方法は、制御システム、特にフィードバック制御の、目標値への追従性能を十分に向上させることができないという問題がある。
【０００８】
本発明は、前記の問題点に鑑みてなされたものであり、その目的は、制御システム、特にフィードバック制御の、目標値への追従性能の向上を実現することにある。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明の一態様に係る補正装置は、目標軌道から制御周期ごとに生成された指令値に制御対象の制御量を追従させるフィードバック制御系が受け付ける当該指令値を補正する補正装置であって、前記制御対象の、今回の制御周期における制御量を取得する制御量取得部と、前記制御量取得部が取得した前記今回の制御周期における制御量を用いて、前記フィードバック制御系が受け付ける今回の制御周期の指令値を補正する指令値補正部と、を備えることを特徴としている。
【００１０】
前記の構成によれば、前記補正装置は、前記フィードバック制御系に与える、今回の制御周期における指令値を、前記今回の制御周期における制御量を用いて補正する。したがって、前記補正装置は、前記補正後の指令値を前記フィードバック制御系に与えることができるため、前記補正装置を含む制御システムの、特に前記フィードバック制御系の、前記目標軌道への追従性能の更なる向上を実現することができるという効果を奏する。
【００１１】
好ましくは、前記指令値補正部は、前記フィードバック制御系と前記制御対象とのモデルを用いたモデル予測制御によって、前記今回の制御周期における制御量を用いた前記今回の制御周期の指令値の補正を行う。
【００１２】
前記の構成によれば、前記指令値補正部は、前記今回の制御周期における制御量を入力として利用した、前記フィードバック制御系と前記制御対象とのモデルを用いたモデル予測制御によって、前記今回の制御周期の指令値を補正する。したがって、前記補正装置は、前記モデルを用いてモデル予測制御により前記今回の制御周期の指令値の補正を行うことができる。これにより、前記フィードバック制御系の制御ループと比較して相対的に遅れの大きい前記指令値補正部による制御ループを構成することで生じる、制御安定性への悪影響を軽減することができるという効果を奏する。
【００１３】
好ましくは、前記フィードバック制御系は、サーボモータを制御対象とするサーボドライバである。
【００１４】
前記の構成によれば、前記補正装置は、前記サーボモータに与える、今回の制御周期における指令値を、前記今回の制御周期における制御量を用いて補正する。したがって、前記補正装置は、前記補正後の指令値を前記サーボモータに与えることができるため、前記補正装置を含む制御システムの前記目標軌道への追従性能の更なる向上を実現することができるという効果を奏する。
【００１５】
好ましくは、前記制御量取得部は、さらに、前記目標軌道に対応する前記制御対象の制御量を取得し、前記制御量取得部が取得した前記目標軌道に対応する前記制御対象の制御量を用いて、前記目標軌道と同様の次回の目標軌道から制御周期ごとに生成される指令値の補正量を出力する学習制御部をさらに備える。
【００１６】
前記の構成によれば、前記補正装置は、前記学習制御部により、前記目標軌道に対応する前記制御量を用いて、前記目標軌道と同様の次回の目標軌道から生成される前記指令値の補正量を出力する。したがって、前記補正装置は、指令値補正部および前記学習制御部の各々により補正された指令値を前記フィードバック制御系に与えることができるため、前記補正装置を含む制御システムの前記目標軌道への追従性能の更なる向上を実現することができるという効果を奏する。
【００１７】
好ましくは、前記制御量取得部は、複数のフィードバック制御系の各々の制御対象の、今回の制御周期における制御量を取得し、前記指令値補正部は、前記複数のフィードバック制御系の各々の制御対象の、今回の制御周期における制御量を用いて、前記複数のフィードバック制御系の各々が受け付ける、今回の制御周期の指令値を補正する。
【００１８】
前記の構成によれば、前記補正装置は、前記複数のフィードバック制御系の各々に与える、今回の制御周期における指令値を、前記今回の制御周期における制御量を用いて補正する。したがって、前記補正装置は、前記補正後の指令値を前記複数のフィードバック制御系の各々に与えることができるため、前記補正装置および前記複数のフィードバック制御系の各々を含む制御システムの前記目標軌道への追従性能の更なる向上を実現することができるという効果を奏する。
【００１９】
また、上記の課題を解決するために、本発明の一態様に係る補正装置の制御方法は、目標軌道から制御周期ごとに生成された指令値に制御対象の制御量を追従させるフィードバック制御系が受け付ける当該指令値を補正する補正装置の制御方法であって、前記制御対象の、今回の制御周期における制御量を取得する制御量取得ステップと、前記制御量取得ステップにて取得した前記今回の制御周期における制御量を用いて、前記フィードバック制御系が受け付ける今回の制御周期の指令値を補正する指令値補正ステップと、を含んでいる。
【００２０】
前記の構成によれば、前記補正装置の制御方法は、前記フィードバック制御系に与える、今回の制御周期における指令値を、前記今回の制御周期における制御量を用いて補正する。したがって、前記補正装置の制御方法は、前記補正後の指令値を前記フィードバック制御系に与えることができるため、前記フィードバック制御系の、前記目標軌道への追従性能の更なる向上を実現することができるという効果を奏する。
【発明の効果】
【００２１】
本発明は、制御システムの、特に前記フィードバック制御系の、目標値への追従性能の向上を実現することができるという効果を奏する。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態１に係る指令値補正装置の要部構成を示すブロック図である。
【図２】図１の指令値補正装置を含む制御システムの概要を示す図である。
【図３】図１の指令値補正装置を含む、図２とは別の制御システムの概要を示す図である。
【図４】図１の指令値補正装置を含む、図２および図３とは別の制御システムの概要を示す図である。
【図５】本発明の実施形態２に係る指令値補正装置の要部構成を示すブロック図である。
【図６】図５の指令値補正装置を含む制御システムの概要を示す図である。
【図７】モデル予測制御のアルゴリズムの基本概念を説明するための図である。
【図８】図５の指令値補正装置を用いて補正する指令値の基となる軌道の一例を示す図である。
【図９】図５の指令値補正装置を用いて補正する指令値、フィードフォワード制御を用いて補正した指令値、および補正を行わない指令値の各々についての、直交する２軸で構成したときの、一方の軸の指令値、位置偏差、トルクの軌跡を示す図である。
【図１０】図９に示した軌跡の拡大図である。
【発明を実施するための形態】
【００２３】
〔実施形態１〕
以下、本発明の実施形態１について、図１から図４に基づいて詳細に説明する。図中同一または相当部分には同一符号を付してその説明は繰返さない。本発明の一態様に係る指令値補正装置１（フィードバック制御系が受け付ける指令値を補正する補正装置）についての理解を容易にするため、先ず、指令値補正装置１を含む制御システム１０００の概要を、図２（特に図２の（ａ））を用いて説明する。
【００２４】
（制御システムの概要）
図２は、指令値補正装置１を含む制御システム１０００および制御システム１１００の概要を示す図である。図２の（ａ）は、フィードバック制御部２を含む下位コントローラ２００（例えばサーボドライバ）と、下位コントローラ２００に指令値を与える上位コントローラ１００（例えばプログラマブルコントローラ（ＰＬＣ、Programmable Logic Controller））と、制御対象３（マシン、例えばサーボモータおよび当該サーボモータによって駆動される機械要素）と、を含む制御システム１０００の概要を示す図である。制御システム１０００において、指令値補正装置１は、上位コントローラ１００に含まれている。
【００２５】
上位コントローラ１００は、制御対象３の駆動制御（例えば、「軌道追従制御」および「加工機における軌道制御」など）のための指令値（制御信号）を下位コントローラ２００に送信し、下位コントローラ２００の制御を行う。上位コントローラ１００は、目標軌道生成部４と、指令値補正装置１と、を含んでいる。目標軌道生成部４は、外部（例えばユーザ）から目標軌道データ（目標軌道）を受け付け、受け付けた目標軌道データから制御周期ごとに基準制御指令値を生成する。指令値補正装置１は、目標軌道生成部４が生成した基準制御指令値を、制御対象３の出力である制御量をフィードバック情報として用いて補正し、補正後の指令値（補正後指令値）を出力する。すなわち、上位コントローラ１００は、目標軌道データ（目標軌道）から制御周期ごとに生成された基準指令値を指令値補正装置１が制御対象３の制御量を用いて補正した値である補正後指令値を、下位コントローラ２００に送信する。
【００２６】
下位コントローラ２００は、上位コントローラ１００から指令値（制御信号）、特に指令値補正装置１が制御対象３の制御量を用いて補正した補正後指令値を受信し、受信した補正後指令値に基づいて、制御対象３を制御する。例えば、制御対象３がサーボモータである場合、下位コントローラ２００は、前記補正後指令値に基づいて、制御対象３であるサーボモータが所定の回転速度で所定量回転するように、制御対象３であるサーボモータを駆動させる。下位コントローラ２００は、制御対象３についてフィードバック制御を行うフィードバック制御部２を含んでいる。
【００２７】
フィードバック制御部２は、上位コントローラ１００から取得する指令値（特に、指令値補正装置１によって補正された補正後の指令値）に制御対象３の出力である制御量が追従するように、制御対象３に与える操作量を制御する。フィードバック制御部２は、制御対象３の制御量をフィードバック情報として取得し、取得したフィードバック情報（制御対象３の制御量）と、前記指令値との差（偏差）に基づいて前記操作量を制御する。
【００２８】
制御対象３は、下位コントローラ２００から与えられる操作量に従って駆動する。制御対象３の出力である制御量は、フィードバック情報として、上位コントローラ１００（特に指令値補正装置１）および下位コントローラ２００（特にフィードバック制御部２）に与えられる。
【００２９】
下位コントローラ２００は、上位コントローラ１００および制御対象３の各々と通信可能に接続されており、その接続方式は、任意の有線接続方式または無線接続方式である。例えば、上位コントローラ１００と下位コントローラ２００とは、任意の通信ケーブルによって接続されており、代表的には、EtherIP、EtherCAT（登録商標）により通信接続されていてもよい。また、下位コントローラ２００と制御対象３（例えばサーボモータ）とは、例えば、専用ケーブルによって接続されていてもよい。
【００３０】
指令値補正装置１は、下位コントローラ２００（特にフィードバック制御部２）が利用しているフィードバック情報（制御対象３の制御量）を用いて、下位コントローラ２００（特にフィードバック制御部２）に与える指令値を補正する。指令値補正装置１は、フィードバック制御部２（フィードバック制御系）が利用しているフィードバック情報を用いて、フィードバック制御部２に与える指令値を補正することにより、目標軌道への高精度の追従性能を実現する。
【００３１】
ここで、従来、下位コントローラ２００（特にフィードバック制御部２）に与える指令値を補正する方法としては、次の２つの方法が知られている。第１に、フィードバック制御部２に与える（フィードバック制御部２が受け付ける）指令値の情報と、フィードバック制御部２（下位フィードバック制御系）の制御ゲインの情報とを利用するフィードフォワード制御を用いて、指令値を補正する方法である。第２に、フィードバック制御部２（下位フィードバック制御系）と制御対象３（マシン、例えばサーボモータおよび当該サーボモータによって駆動される機械要素）とのトータルの特性モデルの逆関数を利用して、指令値を補正する方法である。
【００３２】
前記第２の方法は、フィードバック制御部２（下位フィードバック制御系）と制御対象３（マシン）とのトータルの特性モデルの精度が良ければ、前記第１の方法よりも高い追従性能を実現することができる。しかしながら、前記第２の方法は、前記特性モデルのモデル誤差の影響が追従性能の悪化に直結する。すなわち、前記第２の方法は、前記特性モデルの精度が悪い場合、かえって、追従性能が低くなる場合もある。
【００３３】
これに対して、フィードバック制御部２（下位フィードバック制御系）が利用するフィードバック情報を用いてフィードバック制御部２（下位フィードバック制御系）に与える（フィードバック制御部２が受け付ける）指令値を補正する指令値補正装置１は、前記第１の方法および前記第２の方法に比べて、以下の特異な効果を奏する。すなわち、指令値補正装置１は、フィードバック制御部２（下位フィードバック制御系）と制御対象３（マシン）とのトータルの特性モデルを利用する場合であっても、当該特性モデルのモデル誤差の影響を吸収できる効果を有する。したがって、指令値補正装置１は、モデル誤差の影響を緩和して従来の方法と比較して高い追従性能を実現することができる。
【００３４】
これまで図２の（ａ）を用いて説明してきた制御システム１０００において、制御対象３の出力である制御量は、制御対象３に付属の制御量検出装置（例えばモータエンコーダ）によって検出され、当該制御量検出装置から、フィードバック情報として指令値補正装置１およびフィードバック制御部２に与えられる。ただし、制御対象３の制御量は、例えば外部スケールによって検出され、当該外部スケールから、フィードバック情報として指令値補正装置１およびフィードバック制御部２に与えられてもよい。また、フィードバック制御部２は付属制御量検出装置（例えばモータエンコーダ）から取得した制御対象３の制御量をフィードバック情報として使用し、指令値補正装置１は外部スケールから取得した制御対象３の制御量をフィードバック情報として使用するとしてもよい。すなわち、指令値補正装置１およびフィードバック制御部２の各々がフィードバック情報として利用する制御対象３の制御量の検出装置、取得元として、制御対象３に付属の制御量検出装置と外部スケールとを組み合わせてもよい。
【００３５】
同様に、図２の（ｂ）、図３、および図４を用いて後述する制御システム１１００、１２００、１３００、および１４００においても、指令値補正装置１およびフィードバック制御部２がフィードバック情報として利用する制御対象３の制御量は、付属制御量検出装置（例えばモータエンコーダ）から取得する情報であっても、または外部スケールから取得する情報であってもよい。また、フィードバック制御部２は付属制御量検出装置から取得した制御対象３の制御量をフィードバック情報として使用し、指令値補正装置１は外部スケールから取得した制御対象３の制御量をフィードバック情報として使用するとしてもよい。
【００３６】
（指令値補正装置の概要）
図２の（ａ）を用いてこれまで説明してきた制御システム１０００に含まれる指令値補正装置１は、目標軌道データから制御周期ごとに生成する基準指令値（制御指令値）に対して、目標軌道データへの追従性能を向上させるために、フィードバック情報（制御対象３の制御量）を利用して補正した指令値（補正後指令値）を、フィードバック制御部２に与える。指令値補正装置１の理解を容易にするために、指令値補正装置１の概要を説明しておけば、以下の通りである。すなわち、指令値補正装置１（補正装置）は、目標軌道から制御周期ごとに生成された指令値に制御対象３の制御量を追従させるフィードバック制御部２（フィードバック制御系）が受け付ける当該指令値を補正する補正装置であって、制御対象３の、今回の制御周期における制御量を取得する制御量取得部１２と、制御量取得部１２が取得した前記今回の制御周期における制御量を用いて、フィードバック制御部２が受け付ける今回の制御周期の指令値を補正する指令値補正部１３と、を備えている。
【００３７】
前記の構成によれば、指令値補正装置１は、フィードバック制御部２に与える、今回の制御周期における指令値を、前記今回の制御周期における制御量を用いて補正する。したがって、指令値補正装置１は、前記補正後の指令値（補正後指令値）をフィードバック制御部２に与えることができるため、指令値補正装置１を含む制御システム（例えば、制御システム１０００、１１００、１２００、１３００、１４００、および１５００）の、特にフィードバック制御部２の、前記目標軌道への追従性能の更なる向上を実現することができるという効果を奏する。
【００３８】
（指令値補正装置の詳細）
以上に概要を説明した指令値補正装置１について、次に、図１を用いて、その詳細を説明していく。
【００３９】
図１は、本発明の実施形態１に係る指令値補正装置１の要部構成を示すブロック図である。図１に示すように、指令値補正装置１は、基準指令値取得部１１と、制御量取得部１２と、指令値補正部１３と、補正後指令値出力部１４と、を備えている。
【００４０】
基準指令値取得部１１は、目標軌道データ（目標軌道）から目標軌道生成部４が制御周期ごとに生成した基準制御指令値を取得する。制御量取得部１２は、制御対象３の出力である制御量を、フィードバック情報として、取得する。指令値補正部１３は、基準指令値取得部１１が目標軌道生成部４から取得した基準制御指令値を、制御量取得部１２の取得した制御量をフィードバック情報として用いて補正する。補正後指令値出力部１４は、指令値補正部１３によって補正された指令値（補正後指令値）を、下位コントローラ２００（フィードバック制御部２）に出力（送信）する。
【００４１】
ここで、指令値補正装置１についての理解を容易にするため、以下の事例を用いて、指令値補正装置１が実行する指令値の補正処理を説明する。なお、以下の事例はあくまでも理解を容易にするための一例にすぎない。指令値補正装置１について、１つの目標軌道から複数の指令値が生成されていることは必須ではなく、また、１つの目標軌道から生成される複数の指令値の各々の制御周期が同一であることも必須ではない。例えば、１つの目標軌道から、各々の制御周期が４ミリ秒〜８ミリ秒である、複数の指令値が生成されてもよい。
【００４２】
（指令値の補正処理の例）
例えば、１サイクルが１秒である目標軌道から生成された、１制御周期が５ミリ秒である指令値（基準指令値）を基準指令値取得部１１が取得するものとする。すなわち、基準指令値取得部１１は、連続する２００個の指令値を取得することになる。
【００４３】
指令値補正装置１の補正後指令値出力部１４が、連続する２００個の指令値のうちｎ番目（例えば１００番目）の指令値（つまり、第ｎ番目制御周期の指令値）を下位コントローラ２００（フィードバック制御部２）に出力すると、以下の処理が実行される。すなわち、下位コントローラ２００は、第ｎ番目制御周期の指令値に従って制御対象３の駆動を制御する。
【００４４】
ここで、第ｎ番目の補正後指令値によって制御された制御対象の出力である制御量は、第ｎ＋１番目の制御量として、第ｎ＋１番目の指令値の補正に使用される。つまり、第ｎ番目の基準指令値と第ｎ番目の制御量とから第ｎ番目の補正後指令値を計算して出力するが、このときの第ｎ番目の制御量は、それ以前の（つまり第ｎ−１番目以前の）補正後指令値によって駆動された制御対象３（マシン）の状態から決定される。
【００４５】
つまり、第ｎ−１番目以前の制御周期の補正後指令値に従って制御された制御対象３の出力である「第ｎ番目制御周期の制御量」を、指令値補正装置１の制御量取得部１２（およびフィードバック制御部２）は、「第ｎ番目制御周期のフィードバック情報」として取得する。以上のように、指令値補正装置１は、１制御周期毎に、制御対象３の制御量を取得して、取得した制御量に基づいて基準指令値を補正し、フィードバック制御部２（下位コントローラ２００）に出力する。
【００４６】
（指令値補正装置を含む制御システムの例示）
これまでに説明してきた指令値補正装置１は、図２の（ａ）に例示したように、フィードバック制御部２を含む下位コントローラ２００とは別の、上位コントローラ１００に含まれるものであった。しかしながら、指令値補正装置１を含む制御システムが、図２の（ａ）に例示した制御システム１０００のような構成であることは必須ではない。以下に、指令値補正装置１を含む制御システムの例として、制御システム１０００以外のものを、図２の（ｂ）、図３、および図４を用いて説明する。指令値補正装置１を含む制御システムにおいては、指令値補正装置１が、フィードバック制御部２よりも上位にあり、フィードバック制御部２より駆動を制御される制御対象３の制御量をフィードバック情報として取得できればよい。
【００４７】
図２の（ｂ）は、指令値補正装置１と、フィードバック制御部２と、目標軌道生成部４と、を含むコントローラ１１０が、制御対象３の駆動を制御する制御システム１１００の概要を示す図である。制御システム１１００における、指令値補正装置１と、フィードバック制御部２と、目標軌道生成部４と、の各々は、図２の（ａ）の制御システム１０００における、指令値補正装置１と、フィードバック制御部２と、目標軌道生成部４と、の各々と同様である。制御システム１１００は、１つのコントローラ（つまり、コントローラ１１０）の内部ですべての制御処理を（つまり、指令値補正装置１によるフィードバック情報を用いた補正値の補正と、フィードバック制御部２によるフィードバック処理と、を）実行する構成である。
【００４８】
図３は、指令値補正装置１を含む制御システム１２００および制御システム１３００の概要を示す図である。図３の（ａ）は、フィードバック制御系である位置−速度制御部２１を含む下位コントローラであるサーボドライバ２２０と、サーボドライバ２２０に指令値を与える上位コントローラであるコントローラ１２０（例えばプログラマブルコントローラ（ＰＬＣ、Programmable Logic Controller））と、制御対象３（マシン、例えば、サーボモータおよび当該サーボモータによって駆動される機械要素）と、を含む制御システム１２００の概要を示す図である。
【００４９】
コントローラ１２０は、上位コントローラ１００と同様に、制御対象３の駆動制御のための指令値（指令位置）をサーボドライバ２２０に送信し、サーボドライバ２２０の制御を行う。コントローラ１２０は、目標軌道生成部４と、指令値補正装置１と、を含んでいる。コントローラ１２０における目標軌道生成部４と、指令値補正装置１と、の各々は、上位コントローラ１００における指令値補正装置１と、目標軌道生成部４と、の各々と同様である。すなわち、指令値補正装置１は、目標軌道生成部４が生成した基準制御指令値である指令位置（基準指令位置）を、制御対象３の出力である制御量（検出位置、すなわちフィードバック位置）をフィードバック情報として用いて補正し、補正後の指令値（補正後指令位置）を出力する。
【００５０】
サーボドライバ２２０は、コントローラ１２０から指令値（指令位置）、特に指令値補正装置１が制御対象３の制御量を用いて補正した補正後指令位置を受信し、受信した補正後指令位置に基づいて、制御対象３を制御する。サーボドライバ２２０は、制御対象３についてフィードバック制御を行う位置−速度制御部２１を含んでいる。
【００５１】
位置−速度制御部２１はＰ−ＰＩ制御を行うフィードバック制御系であり、コントローラ１２０（指令値補正装置１）から取得する補正後の指令値（補正後指令位置）に制御対象３の出力である制御量である検出位置（フィードバック位置）が追従するように、制御対象３に与える操作量を制御する。位置−速度制御部２１は、制御対象３の検出位置および検出速度をフィードバック情報（フィードバック位置およびフィードバック速度）として取得する。位置−速度制御部２１は、取得したフィードバック位置およびフィードバック速度（制御対象３の検出位置および検出速度）と、前記補正後指令位置との差（偏差）に基づいて前記操作量を制御する。
【００５２】
以上に説明したように、制御システム１２００において、指令値補正装置１によって補正された補正後の指令値（補正後指令位置）を受け付けるフィードバック制御系は、制御対象３（例えば、サーボモータおよび当該サーボモータによって駆動される機械要素）を制御対象とするサーボドライバ２２０である。
【００５３】
前記の構成によれば、指令値補正装置１（補正装置）は、サーボドライバ２２０に与える、今回の制御周期における指令値を、前記今回の制御周期における制御量を用いて補正する。したがって、指令値補正装置１は、前記補正後の指令値をサーボドライバ２２０に与えることができるため、指令値補正装置１を含む制御システム１２００の前記目標軌道への追従性能の更なる向上を実現することができるという効果を奏する。
【００５４】
図３の（ｂ）は、フィードバック制御系である位置−速度制御部２１を含むサーボドライバ２３０と、サーボドライバ２３０に指令値を与えるコントローラ１３０（例えばプログラマブルコントローラ（ＰＬＣ、Programmable Logic Controller））と、制御対象３（マシン、例えば、サーボモータおよび当該サーボモータによって駆動される機械要素）と、を含む制御システム１３００の概要を示す図である。制御システム１３００のサーボドライバ２３０は、制御システム１２００のサーボドライバ２２０と同様であるため、詳細は略記する。
【００５５】
コントローラ１３０は、制御システム１２００のコントローラ１２０の構成に加えてさらに、学習制御部５を備えている。学習制御部５以外のコントローラ１３０の備える構成は、コントローラ１２０の備える構成と同様であるから、詳細は略記する。
【００５６】
学習制御部５は、前回制御結果（フィードバック情報）に基づいて算出される偏差データから、次回制御用に、指令値に対する補正量を計算する。
【００５７】
なお、一般的には、前記偏差データは、基準指令値と、フィードバック情報である制御量との差として、コントローラ１３０にて計算する。つまり、コントローラ１３０は、前記偏差データを直接的にフィードバック情報として取得する訳ではない。
【００５８】
また、学習制御部５は、所定の回数の学習を実行したら、当該所定の回数で学習を止め、以降は、当該所定の回数までに求めた補正量を使用する。つまり、図３の（ｂ）に示すように、学習制御部５の前にはスイッチが設けられ、学習制御部５は、前記所定の回数以降は、前回制御結果（フィードバック情報）を取得しない。
【００５９】
ここで、学習制御部５は、（フィードバック情報）を使用するが、次回制御のために使用するものであり、リアルタイムには使用しない。
【００６０】
例えば、１サイクルが１秒である目標軌道から生成された、１制御周期が５ミリ秒である指令値（基準指令値）を基準指令値取得部１１が取得するものとする。すなわち、基準指令値取得部１１は、連続する２００個の指令値を取得することになる。
【００６１】
指令値補正装置１が、前記連続する２００個の指令値のセット（１サイクルが１秒である目標軌道）を下位コントローラ２００（フィードバック制御部２）に出力すると、以下の処理が実行される。すなわち、下位コントローラ２００は、前記連続する２００個の指令値のセットに従って制御対象３の駆動を制御する。そして、前記連続する２００個の指令値のセットに従って制御された制御対象３の出力である「１サイクル分の制御量（つまり、前記目標軌道に対応する制御対象３の制御量）」を、指令値補正装置１の制御量取得部１２は取得する。
【００６２】
学習制御部５は、制御量取得部１２の取得した前記目標軌道に対応する「１サイクル分の（つまり、連続する２００個の指令値のセットに対応する）制御量」を用いて、前記目標軌道と同一内容の次回の目標軌道から生成される指令値のセットを補正する。つまり、学習制御部５は、「今回の目標軌道」全体に対応する制御対象３の制御量全体（１サイクル分の制御量）を用いて、「今回の目標軌道」と同一内容の次回の目標軌道について生成される指令値のセット（１サイクル分の、つまり連続する２００個の、指令値のセット）を補正する。
【００６３】
例えば、学習制御部５は、２００個の補正量の計算を、制御開始前に一括で実行する。ただし、上位コントローラであるコントローラ１３０が、前記２００個のデータを１セットとして、下位コントローラ２００へ一括転送することは必須ではない。また、前記２００個の制御量を一括して上位コントローラであるコントローラ１３０が取得することも必須ではない。一般的には、学習制御部５を含まない場合と同様に、上位コントローラであるコントローラ１３０は、コントローラ１３０の制御周期毎に、補正後指令値を出力し（つまり、予め計算しておいた前記２００個の補正量から、１個ずつ補正量を取り出して、基準指令値に加算して出力し）、かつ、制御量を取得する（つまり、次回用の補正量計算のために、前記２００個を記憶する）。
【００６４】
なお、図３の（ｂ）に示す学習制御部５は、例えば、指令値の補正自体は実行せずに、指令値の補正に用いる補正量の算出を行うものとする。学習制御部５によって算出された補正量は、補正量の加算器など（不図示）によって、指令値補正装置１による指令値の補正に用いられる。
【００６５】
すなわち、制御システム１３００のコントローラ１３０（指令値補正装置１）において、制御量取得部１２は、さらに、前記目標軌道に対応する制御対象３の制御量を取得し、コントローラ１３０（指令値補正装置１）は、制御量取得部１２が取得した前記目標軌道に対応する制御対象３の制御量を用いて、前記目標軌道と同様の次回の目標軌道から制御周期ごとに生成される指令値の補正量を出力する学習制御部５をさらに備えている。
【００６６】
前記の構成によれば、コントローラ１３０（指令値補正装置１）は、学習制御部５により、前記目標軌道に対応する前記制御量を用いて、前記目標軌道と同様の次回の目標軌道から生成される前記指令値の補正量を出力する。したがって、コントローラ１３０（指令値補正装置１）は、指令値補正部１３および学習制御部５の各々により補正された指令値をフィードバック制御部２に与えることができるため、指令値補正装置１を含む制御システム１３００の前記目標軌道への追従性能の更なる向上を実現することができるという効果を奏する。
【００６７】
図４は、指令値補正装置１を含む制御システム１４００の概要を示す図である。制御システム１４００は、制御システム１０００の上位コントローラ１００と同様の構成である上位コントローラ１４０と、複数の下位コントローラ２００（１）〜２００（ｎ）と、複数の下位コントローラ２００（１）〜２００（ｎ）の各々により駆動を制御される複数の制御対象３（１）〜３（ｎ）と、を含んでいる。なお、図４は、「ｎ＝３」である場合の例を示している。複数の下位コントローラ２００（１）〜２００（ｎ）の各々は、制御システム１０００の下位コントローラ２００と同様の構成であり、複数の制御対象３（１）〜３（ｎ）の各々は、制御システム１０００の制御対象３と同様の構成であるため、詳細は略記する。
【００６８】
図４に例示する制御システム１４００において、上位コントローラ１４０の制御量取得部１２は、複数の下位コントローラ２００（１）〜２００（ｎ）（つまり、複数のフィードバック制御系）の各々の制御対象である制御対象３（１）〜３（ｎ）の、今回の制御周期における制御量を取得し、指令値補正部１３は、制御対象３（１）〜３（ｎ）の各々の、今回の制御周期における制御量を用いて、複数の下位コントローラ２００（１）〜２００（ｎ）の各々が受け付ける、今回の制御周期の指令値を補正する。
【００６９】
前記の構成によれば、指令値補正装置１は、複数の下位コントローラ２００（１）〜２００（ｎ）の各々に与える、今回の制御周期における指令値を、制御対象３（１）〜３（ｎ）の各々の、前記今回の制御周期における制御量を用いて補正する。したがって、指令値補正装置１は、前記補正後の指令値を複数の下位コントローラ２００（１）〜２００（ｎ）の各々に与えることができるため、指令値補正装置１および複数の下位コントローラ２００（１）〜２００（ｎ）の各々を含む制御システム１４００の前記目標軌道への追従性能の更なる向上を実現することができるという効果を奏する。
【００７０】
なお、制御対象３（ｋ）の制御量を、ｋ番目のループの指令値の補正にのみ使用することは必須ではない。例えば、複数の制御ループの間で干渉が存在するような場合（例えば、ｋ番目のループとｋ＋１番目のループとの間で干渉が存在する場合）、指令値補正装置１は、制御対象３（ｋ）の制御量を、他のループの（例えば、ｋ＋１番目のループの）補正にも使用することで、補正の効果をさらに向上させることが期待できる。
【００７１】
（本発明の一態様に係る指令値補正装置が実行する処理）
以上に構成の詳細等を説明してきた指令値補正装置１について、指令値補正装置１が実行する処理の流れは以下のように整理することができる。すなわち、指令値補正装置１（補正装置）の制御方法は、目標軌道から制御周期ごとに生成された指令値に制御対象３の制御量を追従させるフィードバック制御系（フィードバック制御部２、位置−速度制御部２１）が受け付ける当該指令値を補正する補正装置の制御方法であって、制御対象３の、今回の制御周期における制御量を取得する制御量取得ステップと、前記制御量取得ステップにて取得した前記今回の制御周期における制御量を用いて、前記フィードバック制御系が受け付ける今回の制御周期の指令値を補正する指令値補正ステップと、を含んでいる。
【００７２】
前記の構成によれば、指令値補正装置１の制御方法は、前記フィードバック制御系に与える、今回の制御周期における指令値を、前記今回の制御周期における制御量を用いて補正する。したがって、指令値補正装置１の制御方法は、前記補正後の指令値を前記フィードバック制御系に与えることができるため、前記フィードバック制御系の、前記目標軌道への追従性能の更なる向上を実現することができるという効果を奏する。
【００７３】
（指令値補正装置が実行する処理についての補足）
一般に、上位コントローラ（例えば、上位コントローラ１００、コントローラ１２０、コントローラ１３０、および、上位コントローラ１４０。特に、指令値補正装置１）の制御周期は、下位コントローラ（例えば、下位コントローラ２００、サーボドライバ２２０、サーボドライバ２３０、および、複数の下位コントローラ２００（１）〜２００（ｎ））の制御周期より長い。また、前記上位コントローラの制御ループ内に通信などが追加になるために、前記上位コントローラの制御動作は、前記下位コントローラの制御動作に比べて相対的に遅れる。
【００７４】
具体的には、指令値補正装置１の制御周期（指令値の演算周期の時間間隔を示すもの）は、前記下位コントローラ（つまり、フィードバック制御部２および位置−速度制御部２１）の制御周期に比べて長い。指令値補正装置１の制御動作は、前記下位コントローラの制御動作に比べて相対的に遅れる。
【００７５】
したがって、指令値補正装置１による制御方法（指令値の補正方法）は、モデル予測制御のような予測機構を備える制御方式が望ましい。後述する本発明の実施形態２においては、本発明の一態様に係る指令値補正装置による制御方法（指令値の補正方法）として、モデル予測制御のような予測機構を備える制御方式を説明する。
【００７６】
ただし、指令値補正装置１による制御方法は、これに限定されるものではない。指令値補正装置１による制御方法は、例えば、状態フィードバック制御、内部モデル制御など、他の制御方式でもよい。
【００７７】
なお、指令値補正装置１による制御方法について、（モデル予測制御などの）モデルベース制御を利用して、下位のフィードバック制御の指令値を補正する方法は、モデルベース制御を利用して操作量を直接計算する方法に比べて、以下の点において優位である。
【００７８】
すなわち、モデルベースの制御は、ＰＩＤ制御などと比較すると演算負荷が大きいため、制御周期の高速化とはトレードオフの関係がある。ここで、制御周期が低速になれば、外乱への対応が遅れるなどのデメリットが生じる。
【００７９】
一方、従来型のシンプルな制御方式（ＰＩＤ制御など）で高速制御周期のフィードバック制御ループを、例えば下位の構成として、維持したまま、低速制御周期のモデルベースのフィードバック制御を上位に配して、下位のフィードバック制御ループの受け付ける指令値の補正に利用することにより、制御精度を確保する、という組み合わせは有効である。具体的には、従来型の、制御周期が高速でシンプルな制御方式のフィードバック制御系であるフィードバック制御部２および位置−速度制御部２１の制御ループを維持したまま、低速制御周期のモデルベースのフィードバック制御を行う指令値補正装置１を、フィードバック制御部２および位置−速度制御部２１の上位に配する。指令値補正装置１は、フィードバック制御部２および位置−速度制御部２１の受け付ける指令値を、低速制御周期のモデルベースのフィードバック制御により補正することにより、目標軌道への追従性を向上させ、制御精度を確保することができる。
【００８０】
〔実施形態２〕
本発明の他の実施形態について、図５から図１０に基づいて説明すれば、以下のとおりである。なお記載の簡潔性を担保するため、実施形態１とは異なる構成（処理の手順及び処理の内容）のみについて説明する。すなわち、実施形態１で記載された構成等は、本実施形態にもすべて含まれ得る。また、実施形態１で記載した用語の定義も同じである。
【００８１】
本発明の一態様に係る指令値補正装置７（フィードバック制御系が受け付ける指令値を補正する補正装置）についての理解を容易にするため、先ず、指令値補正装置７を含む制御システム１５００の概要を、図６を用いて説明する。
【００８２】
図６は、指令値補正装置７を含む制御システム１５００の概要を示す図である。図６に例示した制御システム１５００は、図３の（ａ）に例示した制御システム１２００とほぼ同様である。すなわち、制御システム１５００は、フィードバック制御系である位置−速度制御部２１を含む下位コントローラであるサーボドライバ２５０と、サーボドライバ２５０に指令値を与える上位コントローラであるコントローラ１５０（例えばプログラマブルコントローラ（ＰＬＣ、Programmable Logic Controller））と、制御対象３（マシン、例えば、サーボモータおよび当該サーボモータによって駆動される機械要素）と、を含んでいる。制御システム１５００のサーボドライバ２５０および制御対象３の各々は、制御システム１２００のサーボドライバ２２０および制御対象３の各々と同様であるため、詳細は略記する。
【００８３】
コントローラ１５０は、制御システム１２００のコントローラ１２０と同様に目標軌道生成部４を備えており、また、コントローラ１２０の指令値補正装置１に代えて、指令値補正装置７を含んでいる。
【００８４】
（実施形態２に係る指令値補正装置の概要）
ここで、本発明の実施形態２に係る指令値補正装置７（補正装置）の概要を予め説明しておけば以下の通りである。すなわち、指令値補正装置７の指令値補正部１３は、フィードバック制御部２と制御対象３とのモデルを用いたモデル予測制御によって、今回の制御周期における制御量を用いて今回の制御周期の指令値の補正を行う。
【００８５】
前記の構成によれば、指令値補正装置７の指令値補正部１３は、フィードバック制御系であるサーボドライバ２５０と制御対象３とのモデルを用いたモデル予測制御と、前記今回の制御周期における制御量とを利用して、前記今回の制御周期の指令値を補正する。したがって、指令値補正装置７は、前記モデルを用いてモデル予測制御により前記今回の制御周期の指令値の補正を行うことができる。その結果、上位コントローラに配するフィードバック制御ループに起因して生じる遅れの影響を、モデル予測制御により抑制して、追従性能を向上できるという効果を奏する。
【００８６】
指令値補正部１３は、前記今回の制御周期における制御量を入力として利用した、前記フィードバック制御系（サーボドライバ２５０）と制御対象３とのモデルを用いたモデル予測制御によって、前記今回の制御周期の指令値を補正する。したがって、指令値補正装置７（補正装置）は、前記モデルを用いてモデル予測制御により前記今回の制御周期の指令値の補正を行うことができる。これにより、前記フィードバック制御系の制御ループと比較して相対的に遅れの大きい指令値補正部１３による制御ループを構成することで生じる、制御安定性への悪影響を軽減することができるという効果を奏する。
【００８７】
（指令値補正装置の詳細）
以上に概要を説明した指令値補正装置７について、次に、図５を用いて、その詳細を説明していく。
【００８８】
図５は、指令値補正装置７の要部構成を示すブロック図である。図５に示すように、指令値補正装置７は、指令値補正装置１と同様に、基準指令値取得部１１と、制御量取得部１２と、指令値補正部１３と、補正後指令値出力部１４と、を備え、さらに、指令値補正部１３はモデル予測制御部１３１を含んでいる。モデル予測制御部１３１は、モデル予測制御（ＭＰＣ：Model Predictive Control）によって、制御対象３の、今回の制御周期における制御量をフィードバック情報として用いて、フィードバック制御部２が受け付ける今回の制御周期の指令値を補正（制御）する。
【００８９】
ここで、ＭＰＣは、制御対象の内部モデルに基づいて、未来の出力の変化、つまり制御対象３の出力（＝制御量）の変化を予測し、出力と目標値ができるだけ近づくように入力を決定するものである。すなわち、ＭＰＣは、制御対象の挙動をモデル化した内部モデルを用いて未来の状態を予測し、できる限り目標値に近づけるように操作量を決定するものである。以下、モデル予測制御部１３１の処理の詳細を、図７〜図１０を用いて説明する。
【００９０】
（モデル予測制御の詳細）
図７は、モデル予測制御のアルゴリズムの基本概念を説明するための図である。
【００９１】
モデル予測制御部１３１は、サーボドライバ２５０（下位フィードバック制御部）と制御対象３（マシン、例えばサーボモータおよび当該サーボモータによって駆動される機械要素）とのトータルの特性モデル（内部）を利用する。ここで、モデル予測制御部１３１の利用する「サーボドライバ２５０と制御対象３とのトータルの特性」は、以下に示す離散時間伝達関数で表すことができる。
【００９２】
【数１】
0006519457.tif 000002
【００９３】
なお、上記モデルを、パルス伝達関数とも呼ぶ。
【００９４】
モデル予測制御部１３１は、図７に示すように、現時刻ｎにおいて制御量ＰＶ（ｎ）を測定し、現時刻の制御量ＰＶ（ｎ）を始点として設定値ＳＰに徐々に近づく破線で示す参照軌道を計算する。ここでは、簡単のために、制御ホライズンＨｕは１とする。
【００９５】
次に内部モデルを用いて、予測ホライズンＨ後の制御量ＰＶの予測値ＰＶ（ｎ＋Ｈ）が参照軌道に一致するように、現在の時刻ｎの操作量ＭＶ（ｎ）を決定する。
【００９６】
得られた操作量ＭＶ（ｎ）を実際に下位コントローラのフィードバック制御系（本実施形態ではサーボドライバ２５０）に加え、次の制御周期（サンプリング時刻）ｎ＋１まではその値を保持する。
【００９７】
時刻ｎ＋１において制御量ＰＶ（ｎ＋１）が測定されれば、改めて時刻ｔ＋１を現時刻とみなし、未来の予測値と参照軌道とが、予測ホライズンＨ後に一致するように操作量を決定し、次の制御周期（サンプリング時刻）までその操作量を下位コントローラのフィードバック制御系（本実施形態ではサーボドライバ２５０）に加える。以下、この手順を繰り返す。
【００９８】
次に、本実施の形態におけるモデル予測制御部１３１における予測制御について、詳細に説明する。
【００９９】
モデル予測制御部１３１は、上述のように内部モデルを用いて予測制御を行なうものであり、本実施の形態では、内部モデルは、制御周期（サンプリング時間）で離散化した次式で表されるＮ次のＡＲＸモデルとしている。なお、制御対象のモデルがＡＲＸモデルであることは必須ではなく、制御対象のモデルとして、ステップ応答モデル、およびその他のモデルを用いてもよい。
【０１００】
【数２】
0006519457.tif 000003
【０１０１】
なお、むだ時間を上記モデルに含ませることもできるが、本実施の形態においては、むだ時間は、内部モデルから切り離して、後述のように別に扱うようにしている。
【０１０２】
このＡＲＸモデルの決定は、例えば、下位コントローラのフィードバック制御系（本実施形態ではサーボドライバ２５０）および制御対象３に対する入出力の時系列データ、すなわち、操作量ＭＶおよび制御量ＰＶの時系列データを予め計測し、最小二乗法等を用いて行われる。
【０１０３】
本実施の形態においては、図７の破線で示される参照軌道として、現時刻ｎでの偏差を、時定数Ｔｒで指数関数的に０に近づける軌道を用いている。
【０１０４】
すなわち、予測ホライズンＨ後の参照軌道上の目標値Ｒ（ｎ＋Ｈ）は、次式で求めることができる。
Ｒ（ｎ＋Ｈ）＝ＳＰ（ｎ＋Ｈ）−λＨ＊｛ＳＰ（ｎ）−ＰＶ（ｎ）｝,
λ＝exp（−Ｔｃ／Ｔｒ）
ここで、
ＰＶ（ｎ）：時刻ｎの制御量
ＳＰ（ｎ）,ＳＰ（ｎ＋Ｈ）：時刻ｎ,ｎ＋Ｈの目標値
Ｒ（ｎ＋Ｈ）：予測ホライズンＨ先の参照軌道上の目標値
Ｔｃ：制御周期（サンプリング時間）
である。
【０１０５】
したがって、現時刻ｎにおける制御量ＰＶ（ｎ）からの増分、すなわち、予測ホライズンＨ後に、制御量ＰＶを、参照軌道上の目標値Ｒ（ｎ＋Ｈ）に一致させるために必要な制御量ＰＶの増分（偏差）ΔＰ（ｎ＋Ｈ）は、
ΔＰ（ｎ＋Ｈ）＝ＳＰ（ｎ＋Ｈ）−λＨ＊{ＳＰ（ｎ）−ＰＶ（ｎ）}−ＰＶ（ｎ）
＝（１−λＨ）{ＳＰ（ｎ）−ＰＶ（ｎ）}＋ＳＰ（ｎ＋Ｈ）−ＳＰ（ｎ）
となる。
【０１０６】
次に、操作量ＭＶの計算について説明する。
【０１０７】
線形の制御対象の場合、モデル出力の挙動は、次の２つの加算により求めることができる。
（１）自由応答
現在の状態を初期値として、未来の操作量ＭＶとして０が継続する場合の、予測ホライズンＨ後のモデル出力Ｙｆ（ｎ＋Ｈ）を、上述のＡＲＸモデルの式から繰り返し計算により求める。
【０１０８】
【数３】
0006519457.tif 000004
【０１０９】
（２）ステップ応答
初期状態を０として、ＭＶ＝１（１００％）のステップ応答における、時刻Ｈのモデル出力Ｓ（Ｈ）を求める。
【０１１０】
【数４】
0006519457.tif 000005
【０１１１】
ＭＶ＝１（１００％）ではなく、一般にＭＶ（ｎ）とすると、時刻Ｈのステップ応答出力はＭＶ（ｎ）＊Ｓ（Ｈ）となる。
【０１１２】
ここで、
ＭＶ（ｎ）：時刻ｎの操作量
Ｙｆ（ｎ＋Ｈ）：予測ホライズンＨ後のモデルの自由応答出力
Ｓ（Ｈ）：時刻Ｈのモデルのステップ応答出力
である。
【０１１３】
前項より、時刻ｎ以降、操作量ＭＶ（ｎ）を継続した場合、時刻ｎ＋Ｈ時点のモデル出力（制御量の予測値）は次式となる。
Ｙ（ｎ＋Ｈ）＝Ｙｆ（ｎ＋Ｈ）＋ＭＶ（ｎ）＊Ｓ（Ｈ）
Ｙ（ｎ）からの増分、すなわち、予測ホライズンＨ後に期待されるモデル出力の増分ΔＭ（ｎ＋Ｈ）は、
ΔＭ（ｎ＋Ｈ）＝Ｙｆ（ｎ＋Ｈ）＋ＭＶ（ｎ）＊Ｓ（Ｈ）−Ｙ（ｎ）
となる。
【０１１４】
予測ホライズンＨ後に期待されるモデル出力の増分ΔＭ（ｎ＋Ｈ）が、制御量ＰＶを予測ホライズンＨ後に参照軌道上の目標値とするための上述の制御量ＰＶの増分ΔＰ（ｎ＋Ｈ）と等しくなるように操作量ＭＶを求めればよい。
【０１１５】
すなわち、ΔＭ（ｎ＋Ｈ）＝ΔＰ（ｎ＋Ｈ）となる操作量ＭＶを求めればよい。
【０１１６】
ΔＭ（ｎ＋Ｈ）＝ΔＰ（ｎ＋Ｈ）より、
Ｙｆ（ｎ＋Ｈ）＋ＭＶ（ｎ）＊Ｓ（Ｈ）−Ｙ（ｎ）＝（１−λＨ）{ＳＰ（ｎ）−ＰＶ（ｎ）}＋ＳＰ（ｎ＋Ｈ）−ＳＰ（ｎ）
ＭＶ（ｎ）について解くと、
ＭＶ（ｎ）＝[（１−λＨ）{ＳＰ（ｎ）−ＰＶ（ｎ）}＋ＳＰ（ｎ＋Ｈ）−ＳＰ（ｎ）−Ｙｆ（ｎ＋Ｈ）＋Ｙ（ｎ）]/Ｓ（Ｈ）
本実施の形態においては、上述のように、むだ時間を内部モデルに含めていないので、前項のＭＶの算出式を、むだ時間ｄを考慮したものに修正する必要がある。
【０１１７】
そこで、本実施の形態においては、実際のプロセスデータについて、時刻ｎの代わりに時刻ｎ＋ｄのデータを使用するようにしている。
ＭＶ（ｎ）＝［（１−λＨ）｛ＳＰ（ｎ＋ｄ）−ＰＶ（ｎ＋ｄ）｝＋ＳＰ（ｎ＋Ｈ＋ｄ）−ＳＰ（ｎ＋ｄ）−Ｙｆ（ｎ＋Ｈ）＋Ｙ（ｎ）]/Ｓ（Ｈ）
ここで、ＰＶ（ｎ＋ｄ）の予測値が必要となり、合理的な近似として通常は次の計算式で求める。
ＰＶ（ｎ＋ｄ）＝ＰＶ（ｎ）＋Ｙ（ｎ）−Ｙ（ｎ−ｄ）
なお、時刻ｎの操作量ＭＶ（ｎ）を計算後、次回計算のために、次のモデル出力Ｙ（ｎ＋１）を求めておく。
【０１１８】
【数５】
0006519457.tif 000006
【０１１９】
ただし、ＭＶ（ｎ）は操作量リミット処理後の値を使用する。
【０１２０】
なお、上述までに示した制御アルゴリズムは、モデル予測制御の理解を容易にし、説明を簡易にするため、目標値（＝指令値）の変化がステップ状の場合のみを想定したものとしている。図８〜図１０を用いて後述する追従性能の比較では、指令値のランプ状変化も含んでおり、モデル予測制御部１３１がランプ状変化にも対応できる制御アルゴリズムを用いた場合の制御結果である。また、追従性を高めるため、モデル予測制御部１３１は参照軌道は使用していない（参照軌道時定数Ｔｒ＝０の意味）。
【０１２１】
（モデル予測制御の一例）
以上に詳細を説明したモデル予測制御を実行するモデル予測制御部１３１の効果を、図８〜図１０を用いて説明する。なお、図８〜図１０に示す例においては、モデル予測制御部１３１の利用するモデル（サーボドライバ２５０と制御対象３とのトータルの特性を示すモデル）として、４次の伝達関数モデルを使用した。一般に、モデル予測制御部１３１による指令値の補正の効果（追従性能の向上率）は、モデル予測制御部１３１の利用するモデルのモデル精度に依存し、一般にある程度の次数まではモデル次数が高い方が精度が上がる。
【０１２２】
図８は、指令値補正装置７を用いて補正する指令値の基となる目標軌道の一例を示す図である。すなわち、以下では、ＸＹテーブルで図８に示すような、ひし形軌道（目標軌道）への追従制御を行う場合のＸ軸制御について、指令値補正装置７と従来技術（フィードフォワード制御を用いて指令値を補正する場合、および指令値の補正を行わない場合）との追従性能を比較する。図８に示す目標軌道は、座標（０，０）から時計回りに１周する軌道であって、直線と円弧との組み合わせからなる軌道である。
【０１２３】
図９は、指令値補正装置７を用いて補正する指令値、フィードフォワード制御を用いて補正した指令値、および補正を行わない指令値の各々についての、位置偏差およびトルクの軌跡を示す図である。図９において、実線は指令位置を示しており、つまり基準指令値である基準指令位置を示している。また、点線はＦＢ位置（フィードバック位置）を示している。さらに、一点鎖線は、サーボへの指令位置、つまり、サーボドライバ２５０に与える指令位置を示している。図９には、紙面左側から、補正値の指令を行わない場合、フィードフォワード制御を用いて指令値を補正する場合、指令値補正装置７を用いて指令値を補正する場合の各々について、計測された各種の軌跡が示されている。前記計測された各種の軌跡は、紙面上側から、指令位置（基準指令位置、ＦＢ位置、および、サーボへの指令位置）、位置偏差、トルクを示している。
【０１２４】
図９に示されている位置偏差について、補正値の指令を行わない場合は位置偏差が「０」から大きく乖離しているのに対し、フィードフォワード制御を用いて指令値を補正する場合は位置偏差の「０」からの乖離が小さくなったことが示されている。そして、指令値補正装置７を用いて指令値を補正する場合、位置偏差は「０」になっている。
【０１２５】
図９に示されているトルクについて、補正値の指令を行わない場合に比べて、フィードフォワード制御を用いて指令値を補正する場合は、トルクの変動が大きい。指令値補正装置７を用いて指令値を補正する場合は、補正値の指令を行わない場合と同様の、トルクの変動となっていることが示されている。
【０１２６】
図９において、指令値が下降から上昇に転じるタイミングでトルクを増加させている。ここで、図９に示されているように、補正値の指令を行わない場合、フィードフォワード制御を用いて指令値を補正する場合、指令値補正装置７を用いて指令値を補正する場合の順に、トルクが増加するタイミングが早くなっている。これは、補正後指令値が下降から上昇に転じるタイミングが早くなっていることに対応している。すなわち、指令値補正装置７は予測機構であるモデル予測制御部１３１を備えるため、指令値補正装置７は、補正後指令値について下降から上昇に転じるタイミングを適切に決定することができ、そのため、トルクを増加させるタイミングを適切に決定することができる。
【０１２７】
図１０は、図９に示した軌跡の拡大図である。図１０に示されている位置偏差について、補正値の指令を行わない場合、フィードフォワード制御を用いて指令値を補正する場合、指令値補正装置７を用いて指令値を補正する場合の順に、位置偏差の「０」からの乖離が小さくなっていることが示されている。また、図１０に示されているトルクについて、補正値の指令を行わない場合に比べて、フィードフォワード制御を用いて指令値を補正する場合は、トルクの変動が大きく、指令値補正装置７を用いて指令値を補正する場合は、補正値の指令を行わない場合と同様の、トルクの変動となっていることが示されている。
【０１２８】
ここで、フィードフォワード制御を用いた補正は、指令値の微分値（つまり、変化率）に基づいて補正を行っている。したがって、フィードフォワード制御を用いた補正は、指令値が直線的に変化する区間ではスムーズな制御を実現することができるが、下降から上昇に転じる場面では、急激に補正量を修正する形になり、そのためトルク波形が少し振動的になっている。
【０１２９】
これに対し、ＭＰＣによる補正（指令値補正装置７を用いた補正）は、内部モデルと少し将来の指令値とを利用して将来の制御量を予測している。したがって、指令値補正装置７を用いた補正は、急激に補正量を修正することがなく、つまり、無駄な動きがなく、補正することができている。
【０１３０】
〔ソフトウェアによる実現例〕
指令値補正装置１および指令値補正装置７の制御ブロック（特に、基準指令値取得部１１、制御量取得部１２、指令値補正部１３、補正後指令値出力部１４、およびモデル予測制御部１３１）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【０１３１】
後者の場合、指令値補正装置１および指令値補正装置７は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、上記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１３２】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【０１３３】
１  指令値補正装置（補正装置）
２  フィードバック制御部（フィードバック制御系）
３  制御対象
５  学習制御部
７  指令値補正装置（補正装置）
１２  制御量取得部
１３  指令値補正部
２１  位置−速度制御部（フィードバック制御系）
１３０  コントローラ（補正装置）
１３１  モデル予測制御部
１０００、１１００、１２００、１３００、１４００、１５００  制御システム
【図１】
0006519457.tif 000007
【図２】
0006519457.tif 000008
【図３】
0006519457.tif 000009
【図４】
0006519457.tif 000010
【図５】
0006519457.tif 000011
【図６】
0006519457.tif 000012
【図７】
0006519457.tif 000013
【図８】
0006519457.tif 000014
【図９】
0006519457.tif 000015
【図１０】
0006519457.tif 000016