(57)【要約】  制御対象の制御出力を追従させるべき目標値に基づいて制御対象の所望の動作を表すモデル出力と所望の動作に制御対象を駆動するモデル入力とを生成する規範モデル部１と、制御出力をモデル出力に追従させるフィードバックを生成するフィードバック部２と、モデル入力及びフィードバックを加算して制御対象への制御入力を生成する加算器３を備えるモータ制御装置であって、規範モデル部は、目標値の現在および１つまたは複数の過去の値をベクトルとして保持する記憶部と、制御対象の特性を模擬しモデル入力に基づいてモデル出力及び状態変数を生成する数式モデルと、ベクトル及び状態変数に基づいてモデル入力を生成するモデル制御器と、ベクトル及び状態変数に基づいて予め定めた複数の候補からモデル制御器を決定する制御器決定部を含むモータ制御装置。
2013077007.tif 000002
【特許請求の範囲】
【請求項１】
モータを含む制御対象の制御出力を追従させるべき目標値に基づいて、前記制御対象の所望の動作を表すモデル出力と、前記所望の動作に前記制御対象を駆動するモデル入力とを生成する規範モデル部と、
前記制御出力と前記モデル出力を入力し、前記制御出力を前記モデル出力に追従させるフィードバック入力を生成するフィードバック制御部と、
前記モデル入力及び前記フィードバック入力を加算して前記制御対象への制御入力を生成するモデル入力加算器と、
を備えるモータ制御装置であって、
前記規範モデル部は、
前記目標値の現在の値および前記目標値の１つまたは複数の過去の値を目標値ベクトルとして保持する目標値記憶部と、
前記制御対象の特性を模擬し、前記モデル入力に基づいて前記モデル出力及び状態変数を生成する数式モデルと、
前記目標値ベクトル及び前記状態変数に基づいて、前記モデル入力を生成するモデル制御器と、
前記目標値ベクトル及び前記状態変数に基づいて、予め定めた複数のモデル制御器の候補から前記モデル制御器を決定するモデル制御器決定部と、
を含む、
ことを特徴とするモータ制御装置。
【請求項２】
前記規範モデル部は、
前記モデル入力の過去の値である過去モデル入力を保持するモデル入力メモリをさらに備え、
前記モデル制御器は、前記過去モデル入力にも基づいて、前記モデル入力を生成し、
前記モデル制御器決定部は、前記過去モデル入力にも基づいて、前記モデル制御器を決定する
ことを特徴とする請求項１に記載のモータ制御装置。
【請求項３】
前記モデル制御器は、前記目標値ベクトル、前記状態変数、及び前記過去モデル入力に基づいて前記モデル入力の変化量を計算し、前記過去モデル入力と前記変化量とを加算することにより前記モデル入力を生成する
ことを特徴とする請求項２に記載のモータ制御装置。
【請求項４】
前記モデル制御器決定部は、前記目標値ベクトル、前記状態変数、及び前記過去モデル入力に基づいて数値ベクトルであるモデルゲインを決定し、
前記モデル制御器は、前記目標値ベクトル、前記状態変数、及び前記過去モデル入力に前記モデルゲインを乗じて前記変化量を生成する
ことを特徴とする請求項３に記載のモータ制御装置。
【請求項５】
前記モデル制御器は、前記変化量にモデルオフセットを加算してから前記過去モデル入力と加算することにより、前記モデル入力を生成し、
前記モデル制御器決定部は、前記目標値ベクトル、前記状態変数、及び前記過去モデル入力に基づいて前記モデルオフセットを決定する
ことを特徴とする請求項４に記載のモータ制御装置。
【請求項６】
前記モデル制御器決定部は、前記モデル入力及び前記変化量のどちらか一方、あるいは両方とも所定の値より小さくなるように前記モデル制御器の決定を行う
ことを特徴とする請求項３に記載のモータ制御装置。
【請求項７】
前記モデル制御器決定部は、前記モデル入力及び前記変化量のどちらか一方、あるいは両方とも所定の値より小さくなるように前記モデルゲインを決定する
ことを特徴とする請求項４に記載のモータ制御装置。
【請求項８】
前記モデル制御器決定部は、前記モデル入力及び前記モデル入力の変化量のどちらか一方、あるいは両方とも所定の値より小さくなるように前記モデルゲイン及び前記モデルオフセットを決定する
ことを特徴とする請求項５に記載のモータ制御装置。
【請求項９】
前記モデル制御器決定部は、前記目標値ベクトル、前記状態変数、及び前記過去モデル入力に基づいて、予め定めた前記モデルゲインの候補を含んだゲインマップを用いて、前記モデルゲインを決定する
ことを特徴とする請求項４、５または７に記載のモータ制御装置。
【請求項１０】
前記モデル制御器決定部は、前記目標値ベクトル、前記状態変数、及び前記過去モデル入力に基づいて、予め定めた前記モデルゲインの候補を含んだゲインマップ及び予め定めた前記モデルオフセットの候補を含んだオフセットマップを用いて、前記モデルゲイン及びモデルオフセットを決定する
ことを特徴とする請求項５または８に記載のモータ制御装置。
【請求項１１】
前記モデル制御器決定部は、ｘＭ（ｉ）がｉステップ時の前記状態変数、ｕＭ（ｉ）がｉステップ時の前記モデル入力、ΔｕＭ（ｉ）がｉステップ時の前記変化量、Ｘが前記状態変数の制約集合、Ｕが前記モデル入力の制約集合、ΔＵが前記変化量の制約集合、Ｘｆが前記状態変数の終端制約集合、Ｕｆが前記モデル入力の終端制約集合、Ｑが状態重み、Ｒが入力重み、ＰＮが終端重み、Ｎがホライゾンであるとき、以下の評価関数を最小にするように
【数１】
2013077007.tif 000041
前記ゲインマップ及び前記オフセットマップを予め定める
ことを特徴とする請求項１０に記載のモータ制御装置。
【請求項１２】
前記数式モデルは、振動的な機械系をモデル化したものである
ことを特徴とする請求項１から１１のいずれか１項に記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業用機械装置を駆動するモータ制御装置に関する。
【背景技術】
【０００２】
モータ制御装置は、位置目標値や速度目標値などの目標値に対してモータ位置や速度を高速高精度に追従させることが望まれており、これを実現するためにフィードフォワード制御とフィードバック制御を組み合わせた２自由度制御が用いられている。また、より高速高精度化を行う手法として、現在の目標値だけではなく、未来の目標値も先読みして利用する制御手法が用いられることがある。さらに、高速高精度化と同時に、機械共振などに起因して発生する停止時の残留振動を抑制することも必要であり、産業用機械装置の振動周波数（共振周波数）における信号成分が小さくなるようにフィードフォワード制御系を設計する制振制御により、振動抑制を実現している。【０００３】
通常、モータをより目標値に対して高速高精度に追従させるためには、より大きなトルクを発生させる必要がある。また、停止時の残留振動を積極的に抑制するような制御を行うと、より大きなトルクが必要となり、またトルクの変化量が大きくなる。しかしながら、モータが発生できるトルク又はトルクを発生させるために必要なモータに印加する電流などの制御入力には制約がある。また、トルクの変化量は、モータ制御装置内で発生する電圧に密接に関係しており、トルクの変化量が大きくなると、電圧が高くなり、電圧飽和が発生する。また、トルクの変化量が大きくなると、機械系に与えるショックも大きくなる。よって、トルクの変化量などの制御入力の変化量にも制約がある。したがって、制御入力や変化量の制約を満たしながら、目標値に高速高精度に追従し、停止時の残留振動を抑制できる制御が望まれる。【０００４】
例えば、特許文献１においてはＭ（Ｍ＞４）ステップ先までの目標値が必要であった予測制御を、２ステップ、もしくは４ステップ先までの目標値を用いて予測制御を行う電動機制御装置が開示されている。この従来技術では、２ステップ、または４ステップ先までの目標値のみを利用することにより、制御演算を簡易にし、また、これらの値から速度フィードフォワードとトルクフィードフォワードとを計算し、制御に用いることにより、加減速時のオーバシュートを減らし、一定速度時の追従性を高めている。【０００５】
また、特許文献２に記載されたサーボ制御装置は、切換えスイッチを持ち、切換えスイッチがＯＮの場合は、予測制御器をフィードバック制御器として用いたフィードバック制御、もしくは２自由度制御を使用し、切換えスイッチがＯＦＦの場合は、位置比例制御のみのフィードバック制御を切換えることで、性能を向上させている。この従来技術においては、制御対象が高精度な追従性を要求しているとき、切換えスイッチをＯＮにし、目標指令増分値が変化しているときに切換えスイッチをＯＦＦにする。また、切換え前後の制御入力を連続にするために、フィルタ関数器により切換え前後の制御入力を線形補間している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１３０８５２号公報
【特許文献２】特開２００５−２８５０３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、特許文献１に記載された従来技術では、２ステップ先又は４ステップ先までの未来の目標値を用いることで、従来の予測制御よりも制御演算を簡易にし、かつ未来の目標値を利用しない従来技術よりも高速高精度を実現する技術が開示されているが、フィードフォワードゲインや予め計算する定数が固定である場合、様々な指令の変化に対して、制御入力の大きさやその変化量の制約の範囲でなるべく高速高精度な制御を実現するのが難しいという問題があった。【０００８】
また、特許文献２に記載された従来技術では、制御器を切換えて高速高精度な制御を実現する技術が開示されているが、制御対象が高精度を要求しているときに切換えスイッチをＯＮ、目標指令増分値が変化しているときに切換えスイッチをＯＦＦにするだけでは、トルクの飽和やその変化量の制限を考慮して制御器の切換えは行えず、高速高精度化が難しいという問題がある。また切換え時に制御入力が不連続になり、ショックを生じるという問題もある。また、フィルタ関数器で切換え前後の制御入力を補間する技術も開示されているが、補間中は制御対象の特性を考えていないため、高精度化は難しいという問題もある。【０００９】
本発明は、上記した問題点に鑑みてなされたものであって、現在の目標値のみならず、過去の目標値も利用し、任意の位置指令に対しても制御入力や制御入力の変化量の制約を満たしつつ、高速高精度にモータを目標値に追従させ、かつ停止時の振動を励起しないモータ制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明は、モータを含む制御対象の制御出力を追従させるべき目標値に基づいて、前記制御対象の所望の動作を表すモデル出力と、前記所望の動作に前記制御対象を駆動するモデル入力とを生成する規範モデル部と、前記制御出力と前記モデル出力を入力し、前記制御出力を前記モデル出力に追従させるフィードバック入力を生成するフィードバック制御部と、前記モデル入力及び前記フィードバック入力を加算して前記制御対象への制御入力を生成するモデル入力加算器と、を備えるモータ制御装置であって、前記規範モデル部は、前記目標値の現在の値および前記目標値の１つまたは複数の過去の値を目標値ベクトルとして保持する目標値記憶部と、前記制御対象の特性を模擬し、前記モデル入力に基づいて前記モデル出力及び状態変数を生成する数式モデルと、前記目標値ベクトル及び前記状態変数に基づいて、前記モデル入力を生成するモデル制御器と、前記目標値ベクトル及び前記状態変数に基づいて、予め定めた複数のモデル制御器の候補から前記モデル制御器を決定するモデル制御器決定部と、を含む、ことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、様々に変化する指令に対応して、現在の目標値のみならず、過去の目標値を利用し、モータ駆動中に制御器の特性を変化させることで、高速高精度にモータを目標値に追従させ、かつ停止時の振動を励起しないモータ制御装置を得ることができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、この発明の実施の形態１に係るモータ制御装置の構成を示すブロック図である。
【図２】図２は、この発明の実施の形態１に係るモータ制御装置の数式モデルの一例である２慣性系モデルを示す図である。
【図３】図３は、この発明の実施の形態１に係るモータ制御装置のモデル制御器の構成を示すブロック図である。
【図４】図４は、この発明の実施の形態２に係るモータ制御装置の構成を示すブロック図である。
【図５】図５は、この発明の実施の形態２に係るモータ制御装置の最大出力許容集合の例を示す図である。
【図６】図６は、この発明の実施の形態２に係るモータ制御装置の動作例を示す図である。
【図７】図７は、この発明の実施の形態３に係るモータ制御装置の構成を示すブロック図である。
【図８】図８は、この発明の実施の形態３に係るモータ制御装置のモデル制御器の候補の一例を示すブロック図である。
【図９】図９は、この発明の実施の形態３に係るモータ制御装置のモデル制御器の候補の一例を示すブロック図である。
【図１０】図１０は、この発明の実施の形態３に係るモータ制御装置のモデル制御器の候補の一例を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下に、本発明にかかるモータ制御装置の実施の形態を図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
【００１４】
実施の形態１．
本発明の実施の形態１に係るモータ制御装置１００について図１から図３までを参照しながら説明する。図１は、この発明の実施の形態１に係るモータ制御装置１００の構成を示すブロック図である。なお、以降では、各図中、同一符号は同一又は相当する部分を示す。
【００１５】
図１に示すように、本発明の実施の形態１に係るモータ制御装置１００は、規範モデル部１と、フィードバック制御部２と、モデル入力加算器３から構成される。駆動する機械の位置や速度、もしくは機械を駆動するモータの位置や速度を表す検出器５により出力される制御対象４の制御出力ｙ（ｉ）に対する目標値ｒ（ｉ）が外部からモータ制御装置１００へ入力され、モータ制御装置１００は制御対象４の検出器５からの制御出力ｙ（ｉ）が目標値ｒ（ｉ）に追従するようにモータのトルクや電流などを表す制御入力ｕ（ｉ）を計算する。計算された制御入力ｕ（ｉ）は、モータ制御装置１００から制御対象４へと出力される。なお、各記号に用いているｉはステップ数を表している。
【００１６】
制御対象４は、機械負荷と機械負荷を駆動する回転型モータやリニアモータなどのモータから構成されている。制御対象４のモータに後述する制御入力ｕ（ｉ）を印加することにより、機械負荷に所望の動作を行わせる。
【００１７】
検出器５は、エンコーダやリニアスケールなどであり、制御対象４を構成する回転型モータやリニアモータの現在位置情報や速度情報、または機械負荷の現在位置情報や速度情報などを検出して、それを制御出力ｙ（ｉ）としてフィードバック制御部２に出力する。
【００１８】
制御対象４および検出器５をまとめてモータを含む制御対象とみなせば、当該制御対象への入力が制御入力ｕ（ｉ）であり、当該制御対象からの出力が制御出力ｙ（ｉ）になっている。
【００１９】
目標値ｒ（ｉ）を入力された規範モデル部１は、制御対象４の理想的な動作波形を表すモデル出力ｙＭ（ｉ）をフィードバック制御部２に出力し、制御対象４に理想的な動作をさせるモデル入力ｕＭ（ｉ）をモデル入力加算器３に出力する。また、目標値ｒ（ｉ）が入力される規範モデル部１は、所定の時間、目標値ｒ（ｉ）を記憶保持し、記憶保持している１つもしくは複数の過去の目標値を現在入力された目標値ｒ（ｉ）と共に目標値ベクトルｒｖｅｃ（ｉ）として出力する目標値記憶部１５を備える。
【００２０】
さらに、規範モデル部１は、モデル入力ｕＭ（ｉ）を所定の時間記憶保持し、記憶している値を過去モデル入力ｕＭ’（ｉ）として出力するモデル入力メモリ１３と、モデル入力ｕＭ（ｉ）を入力とし、モデル出力ｙＭ（ｉ）と状態変数ｘＭ（ｉ）を出力する、制御対象４の特性を模擬した数式モデル１４を備える。さらに、規範モデル部１は、目標値記憶部１５から出力された目標値ベクトルｒｖｅｃ（ｉ）、数式モデル１４から出力された状態変数ｘＭ（ｉ）、モデル入力メモリ１３から出力された過去モデル入力ｕＭ’（ｉ）を入力とし、入力されたこれらの値に基づき、予め定めた複数のモデル制御器の候補から実際に使用するモデル制御器を決定するモデル制御器決定部１１を備える。
【００２１】
さらに、規範モデル部１は、目標値ベクトルｒｖｅｃ（ｉ）、状態変数ｘＭ（ｉ）、過去モデル入力ｕＭ’（ｉ）を入力とし、モデル制御器決定部１１で決定されたモデル制御器を使用し、モデル出力ｙＭ（ｉ）を目標値ｒ（ｉ）に追従させるモデル入力ｕＭ（ｉ）を計算し、数式モデル１４とモデル入力加算器３に出力するモデル制御器１２を備える。ここで、状態変数ｘＭ（ｉ）は数式モデル１４の内部状態を表しており、ｎ次（ｎは１以上）の数値ベクトルとする。モデル出力ｙＭ（ｉ）はモータの位置や速度、あるいはこれらの両方など、実際に制御対象４から計測できる物理量に対応した数式モデル１４の状態変数ｘＭ（ｉ）の一部である。また、その次元をｍと記述する。
【００２２】
次にフィードバック制御部２について説明する。フィードバック制御部２は規範モデル部１から出力されたモデル出力ｙＭ（ｉ）、および検出器５から出力された制御出力ｙ（ｉ）を入力とし、制御出力ｙ（ｉ）がモデル出力ｙＭ（ｉ）に追従するように、フィードバック制御入力ｕＦＢ（ｉ）を計算し、計算したフィードバック制御入力ｕＦＢ（ｉ）をモデル入力加算器３へと出力する。即ち、フィードバック制御部２は、モデル出力ｙＭ（ｉ）と制御出力ｙ（ｉ）を入力とし、これらの値の差を計算し、計算結果を出力偏差ｅ（ｉ）として出力するモデル出力減算器２１と、モデル出力減算器２１から出力された出力偏差ｅ（ｉ）を入力とし、出力偏差ｅ（ｉ）が０となるように、つまり、制御出力ｙ（ｉ）がモデル出力ｙＭ（ｉ）に追従するようにフィードバック入力ｕＦＢ（ｉ）を出力するフィードバック制御器２２とから構成されている。
【００２３】
モデル入力加算器３は、フィードバック制御部２から出力されたフィードバック入力ｕＦＢ（ｉ）と規範モデル部１から出力されたモデル入力ｕＭ（ｉ）を加算し、その和を制御入力ｕ（ｉ）として、制御対象４へ出力する。そして、制御入力ｕ（ｉ）により、制御対象４に付属しているモータを駆動し、制御対象４の制御出力ｙ（ｉ）と目標値ｒ（ｉ）を一致させる。これにより、制御対象４は目標値に追従し、所望の動作をすることになる。
【００２４】
これより、規範モデル部１の各構成要素の動作について詳細に説明する。まず、目標値記憶部１５の動作について詳細に説明する。目標値記憶部１５には、目標値ｒ（ｉ）が入力され、所定の時間、目標値ｒ（ｉ）を記憶保持し、記憶保持している１つもしくは複数の過去の目標値を現在入力された目標値ｒ（ｉ）と共に目標値ベクトルｒｖｅｃ（ｉ）としてモデル制御器決定部１１およびモデル制御器１２に出力する。
【００２５】
また、目標値記憶部１５は、１個乃至Ｐ個の目標値メモリ１５１（Ｐ＞Ｍ）を具備しており、これらの目標値メモリ１５１に目標値記憶部１５に入力された目標値ｒ（ｉ）を入力し、目標値メモリ１５１はそれぞれ１〜Ｍステップの間、目標値ｒ（ｉ）を記憶保持する。この場合、Ｍ×Ｔｓ時間の間入力された目標値を全て記憶保持する。ここで、Ｔｓは１サンプリング時間である。つまり、現在の目標値をｒ（ｉ）とすると、目標値メモリ１５１は、それぞれｒ（ｉ）、ｒ（ｉ−１）・・・ｒ（ｉ−Ｍ−１）の値を１ステップの間記憶保持する。なおｒ（ｉ−１）は１ステップ前（現在時刻より１サンプリング時間Ｔｓ前の時刻）の目標値、ｒ（ｉ−２）は２ステップ前の目標値を表している。また、１ステップ数はサンプリング時間Ｔｓに相当し、目標値ｒ（ｉ）をＭステップ記憶しておくことは、目標値ｒ（ｉ）をＭ×Ｔｓ時間だけ記憶保持しておくことに対応する。そして、目標値メモリ１５１から出力された過去の目標値ｒ（ｉ−１）・・・ｒ（ｉ−Ｍ）と現在の目標値ｒ（ｉ）を同時にまとめて目標値ベクトルｒｖｅｃ（ｉ）を式（１）のように出力する。
【００２６】
【数１】
2013077007.tif 000003
【００２７】
以後、説明の簡略化のため、過去モデル入力ｕＭ’（ｉ）として１ステップ前のモデル入力ｕＭ（ｉ−１）を使用し、目標値メモリ１５１は２ステップ間目標値を記憶保持することが可能な個数（つまりＭ＝２）備えられている場合について説明する。ただしこれは一例であり、過去モデル入力として１ステップ前のモデル入力のみを使用することや、目標値メモリ１５１が２ステップ間のみの目標値を記憶保持することが可能な個数備えられていることに限定されるものではない。
【００２８】
数式モデル１４は、入力されたモデル入力ｕＭ（ｉ）に基づき、次の式（２）の離散時間状態方程式により、次のステップの状態変数ｘＭ（ｉ＋１）とモデル出力ｙＭ（ｉ）を計算する。
【００２９】
【数２】
2013077007.tif 000004
【００３０】
ここで、
【００３１】
【数３】
2013077007.tif 000005
【００３２】
は、それぞれ、ｉステップ目での数式モデル１４の状態変数ｘＭ（ｉ）、モデル入力ｕＭ（ｉ）、モデル出力ｙＭ（ｉ）を表す数値ベクトルであり、ｎは状態数、ｍは出力数である。また、
【００３３】
【数４】
2013077007.tif 000006
【００３４】
は、数式モデル１４の特性を表す行列である。また、上記式（４）で示したＡ，Ｂ，Ｃ，Ｄは制御対象４の特性を表すように決定する。ただし、数式モデル１４は制御対象４の特性をすべて表す必要はなく、制御出力ｙ（ｉ）が目標値ｒ（ｉ）に高速・高精度に追従するのに必要な特性だけを模擬すればよい。
【００３５】
数式モデル１４の一例について説明する。図２は、本発明の実施の形態１に係るモータ制御装置１００の数式モデル１４の一例である２慣性系モデルを示す図である。
【００３６】
制御対象４が複数の共振・反共振を持つ特性であるとき、図２のようなモータがバネなどの弾性体を介して機械負荷を駆動する２慣性系モデルを数式モデル１４とし、一番周波数が低い共振・反共振特性を模擬する場合を考える。本実施の形態におけるモータ制御装置１００において、数式モデル１４に２慣性系モデルのような共振・反共振を持つ振動的なモデルを用いることで、振動抑制効果が高く、高速・高精度なモータ制御装置を得ることが可能となる。ここでは、仮に検出器５を用いることで、制御対象４に付属するモータの位置、速度が計測できるとする。このように数式モデル１４を振動的な機械系でモデル化することにより、振動を励起しないモデル入力の生成が可能となる。
【００３７】
図２の２慣性系モデルの連続系の状態方程式は以下の式（５）および式（６）で表現される。
【００３８】
【数５】
2013077007.tif 000007
【数６】
2013077007.tif 000008
【００３９】
ここで、ｐＭはモータの位置（回転角度）、ωＭはモータの回転速度、ｐＬは機械負荷の位置、ωＬは機械負荷の速度、ＪＭはモータの慣性モーメント、ＪＬは機械負荷の慣性モーメント、ＴＭはモータトルク、ｋｍはばね定数、ｃｍは粘性係数、ｙＭは連続系のモデル出力、そしてｄ／ｄｔは時間に関する微分を表す。バネ定数ｋｍは、以下の式（７）および式（８）で計算されるモデル共振周波数ωｐおよびモデル反共振周波数ωｚが、制御対象４の一番周波数が低い共振周波数・反共振周波数に一致するよう決定すればよい。このように決定することにより、２慣性系モデルが制御対象４の特性を模擬することができる。
【００４０】
【数７】
2013077007.tif 000009
【数８】
2013077007.tif 000010
【００４１】
実際には、数式モデル１４は式（２）に表すように離散時間状態方程式であるため、式（５）および式（６）を離散化して、離散時間状態方程式を求め、数式モデル１４とする。式（５）および式（６）のような線形連続時間状態方程式から式（２）のような線形離散時間状態方程式を計算する方式は、いくつか存在するが、その一つの方法として、以下に示す式（９）、式（１０）、式（１１）、式（１２）を用いて計算する方式がある。
【００４２】
【数９】
2013077007.tif 000011
【数１０】
2013077007.tif 000012
【数１１】
2013077007.tif 000013
【数１２】
2013077007.tif 000014
【００４３】
ここで、ｅＡｃＴｓ、ｅＡｃ（Ｔｓ−τ）はそれぞれＡｃＴｓ、Ａｃ（Ｔｓ−τ）の指数関数を表しており、Ｔｓはサンプリング時間を表している。また、本実施の形態のように数式モデル１４として式（５）、式（６）で表される２慣性系モデルを使用する場合は、図１に示した状態変数ｘＭ（ｉ）は、以下の式（１３）で示すように各ステップにおけるモータの位置ｐＭ（ｉ）、モータの速度ωＭ（ｉ）、機械負荷の位置ｐＬ（ｉ）、機械負荷の速度ωＬ（ｉ）となり、モデル入力ｕＭ（ｉ）はモータトルクＴＭ（ｉ）となる。また、本実施の形態ではモータの位置ｐＭ（ｉ）とモータの速度ωＭ（ｉ）が計測できると仮定しているため、モデル出力ｙＭ（ｉ）は式（１３）のようにモータの位置ｐＭ（ｉ）、モータの速度ωＭ（ｉ）となる。
【００４４】
【数１３】
2013077007.tif 000015
【００４５】
なお、ここで説明したものは、数式モデル１４の一例であり、数式モデル１４が式（９）、式（１０）、式（１１）、式（１２）、状態変数ｘＭ（ｉ）、モデル入力ｕＭ（ｉ）とモデル出力ｙＭ（ｉ）が式（１３）に限定されるものではない。
【００４６】
次に、規範モデル部１におけるモデル制御器１２の動作について詳細に説明する。動作説明に用いるモデル制御器１２の構成例を図３に示す。
【００４７】
モデル制御器１２は、モデルサブ制御器１２１およびモデル入力変化量加算器１２２を備える。モデル制御器決定部１１により、目標値ベクトルｒｖｅｃ（ｉ）、１ステップ前のモデル入力ｕＭ（ｉ−１）、および数式モデル１４からの状態変数ｘＭ（ｉ）に基づいて、予め定めた複数の候補からモデル制御器が決定される。モデル制御器決定部１１により決定されたモデル制御器はモデルサブ制御器１２１に入力される。モデルサブ制御器１２１は、モデル制御器決定部１１により決定されたモデル制御器に基づき、目標値ベクトルｒｖｅｃ（ｉ）に存在する目標値ｒ（ｉ）に、状態変数ｘＭ（ｉ）に存在するモデル出力ｙＭ（ｉ）が追従するように、モデル入力変化量ΔｕＭ（ｉ）を計算する。そして、計算したモデル入力変化量ΔｕＭ（ｉ）をモデル入力変化量加算器１２２に出力する。モデル入力変化量加算器１２２は、モデルサブ制御器１２１から出力されたモデル入力変化量ΔｕＭ（ｉ）と、１ステップ前のモデル入力ｕＭ（ｉ−１）を加算し、その和をモデル入力ｕＭ（ｉ）として、モデル入力メモリ１３、数式モデル１４、およびモデル入力加算器３に出力する。
【００４８】
次に、モデルサブ制御器１２１が状態フィードバックとオフセットの加算によりモデル入力変化量ΔｕＭ（ｉ）を計算する場合を例に取り説明する。モデルサブ制御器１２１が状態フィードバックとオフセットとの加算によりモデル入力変化量ΔｕＭ（ｉ）を計算する場合、モデルサブ制御器１２１は、目標値ベクトルｒｖｅｃ（ｉ）、１ステップ前のモデル入力ｕＭ（ｉ−１）および数式モデル１４の状態変数ｘＭ（ｉ）とモデルゲインＫｉとの乗算、モデルオフセットＧｉとの加算に基づきモデル入力変化量ΔｕＭ（ｉ）を計算する。この場合、モデルサブ制御器１２１の演算は以下の式（１４）、（１５）、（１６）で表すことができる。
【００４９】
【数１４】
2013077007.tif 000016
【数１５】
2013077007.tif 000017
【数１６】
2013077007.tif 000018
【００５０】
ここで、ｖｒ（ｉ）は目標値速度、ａｒ（ｉ）は目標値加速度であり、それぞれ目標値ｒ（ｉ）の１階差分、２階差分に相当する値である。また、Ｋｒｉは目標値モデルゲイン、Ｋｖｒｉは目標値速度モデルゲイン、Ｋａｒｉは目標値加速度モデルゲインである。モデルオフセットＧｉは必要としない場合もあるが、後述で利用するため導入しておく。モデルゲインＫｉとモデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉは、後述する方式により、それぞれ予め複数の候補が定められており、モデル制御器決定部１１により、複数の候補の中から決定され、決定された値が式（１４）に使用される。式（１４）では、目標値ｒ（ｉ）に関する項を分離して表記しているが、実際には目標値ｒ（ｉ）と追従させる状態変数ｘＭ（ｉ）との偏差からモデル入力変化量ΔｕＭ（ｉ）を生成すればよい。また、目標値ｒ（ｉ）と追従させる状態変数ｘＭ（ｉ）との偏差からモデル入力変化量ΔｕＭ（ｉ）を生成する場合、目標値モデルゲインＫｒｉは、モデルゲインＫｉから自動的に決定されるものである。
【００５１】
モデル入力変化量加算器１２２は、モデルサブ制御器１２１からモデル入力変化量ΔｕＭ（ｉ）と１ステップ前モデル入力ｕＭ（ｉ−１）とを以下の式（１７）で表されるように加算して、その和をモデル入力ｕＭ（ｉ）として、モデル入力メモリ１３、数式モデル１４、モデル入力加算器３に出力する。すなわち、モデル入力変化量ΔｕＭ（ｉ）を積算することでモデル入力ｕＭ（ｉ）を計算する。
【００５２】
【数１７】
2013077007.tif 000019
【００５３】
モデル制御器１２は、上記のような計算をすることで、モデルサブ制御器１２１で一旦モデル入力変化量ΔｕＭ（ｉ）を計算し、モデル入力変化量加算器１２２の動作によりモデル入力変化量ΔｕＭ（ｉ）を積算してモデル入力ｕＭ（ｉ）を出力している。これにより、モデル制御器決定部１１やモデル制御器１２はモデル入力ｕＭ（ｉ）に加え、モデル入力変化量ΔｕＭ（ｉ）の値も知ることができ、モデル制御器決定部１１は、モデル入力ｕＭ（ｉ）やモデル入力変化量ΔｕＭ（ｉ）が所定の値を超えないように、複数の候補からモデルサブ制御器１２１を決定することが可能となる。つまり、モデル制御器決定部１１が数式モデル１４から出力されるモデル出力ｙＭ（ｉ）を目標値ｒ（ｉ）に高速・高精度に追従させるため、もしくはモデル入力変化量ΔｕＭ（ｉ）が所定の値を越えないようにするために、モデルサブ制御１２１を別の候補に切換えても、モデル入力ｕＭ（ｉ）が不連続にならずにモデル入力ｕＭ（ｉ）を計算することができる。
【００５４】
前述のモデル入力変化量ΔｕＭ（ｉ）を新たな入力とみなし、数式モデル１４にモデル入力変化量加算器１２２、モデル入力メモリ１３を組み合わせた離散時間状態方程式は、以下の式（１８）で表すことができる。ここで、Ｉは単位行列、０は零行列を表しており、その行および列の数は適切に決定する。
【００５５】
【数１８】
2013077007.tif 000020
【００５６】
また、式（１８）の離散時間状態方程式に加え、目標値記憶部１５による目標値ｒ（ｉ）を記憶も考慮した離散時間状態方程式は、以下の式（１９）で表すことが可能である。
【００５７】
【数１９】
2013077007.tif 000021
【００５８】
式（１９）における〜ｒ（ｉ＋１）は１ステップ後の目標値予測値、〜ｖｒ（ｉ＋１）は１ステップ後の目標値速度予測値、〜ａｒ（ｉ＋１）は１ステップ後の目標値加速度予測値である。また、式（１９）におけるｖｒ（ｉ）は目標値速度、ａｒ（ｉ）は目標値加速度であり、式（１５）、式（１６）よりそれぞれ、目標値記憶部１５により記憶されている１ステップ前目標値ｒ（ｉ−１）と、２ステップ前目標値ｒ（ｉ−２）を用いて計算可能である。なお、式（１９）は後述する予め定める複数のモデル制御器１２、もしくはモデルサブ制御器１２１の候補をモデル制御器決定部１１が計算するために使用する。
【００５９】
式（１９）の離散時間状態方程式を用いて計算したモデル出力ｙＭ（ｉ）が目標値ｒ（ｉ）に追従するように、式（１４）で用いるモデルサブ制御器１２１のモデルゲインＫｉ、モデルオフセットＧｉ、目標値モデルゲインＫｒｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉを設計することが可能である。
【００６０】
なお、モデル制御器１２の具体的な計算方法は図３の構成で示されたものに限定されるものではなく、様々な構成で上記と等価な計算が可能である。すなわち、モデル制御器１２は、目標値ベクトルｒｖｅｃ（ｉ）、数式モデル１４の状態変数ｘＭ（ｉ）とともに、モデル入力メモリ１３の出力である１ステップ前のモデル入力ｕＭ（ｉ−１）に基づいた計算を行うことで、上記と等価な計算が可能であり、モデル入力変化量ΔｕＭ（ｉ）を考慮した演算が可能である。
【００６１】
次に、モデル制御器決定部１１によるモデルゲインＫｉ、モデルオフセットＧｉ、目標値モデルゲインＫｒｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉの決定方法について詳細に説明する。
【００６２】
モデル制御器決定部１１は、目標値ベクトルｒｖｅｃ（ｉ）と、状態変数ｘＭ（ｉ）と、１ステップ前のモデル入力ｕＭ（ｉ−１）に基づき、モデルゲインＫｉ、モデルオフセットＧｉ、目標値モデルゲインＫｒｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉを予め定めた複数の候補から決定する。なお、目標値モデルゲインＫｒｉは、上記しているように、モデルゲインＫｉから自動的に決定されるものである。ここでは、目標値ベクトルｒｖｅｃ（ｉ）と、状態変数ｘＭ（ｉ）、１ステップ前のモデル入力ｕＭ（ｉ−１）との間と、モデルゲインＫｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉとの間の対応関係を記述するゲインマップと、目標値ベクトルｒｖｅｃ（ｉ）と、状態変数ｘＭ（ｉ）、１ステップ前のモデル入力ｕＭ（ｉ−１）との間と、モデルオフセットＧｉとの対応関係を記述するオフセットマップを用いて、モデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉを決定する方法について説明する。
【００６３】
ゲインマップ、オフセットマップとして次のものが考えられる。まず、候補として制御出力ｙ（ｉ）を目標値ｒ（ｉ）に振動を励起させず、かつ制御出力ｙ（ｉ）が目標値ｒ（ｉ）に素早く追従する応答が得られるモデルゲインＫａ、モデルオフセットＧａ、目標値速度モデルゲインＫｖｒａ、目標値加速度モデルゲインＫａｒａと、制御出力ｙ（ｉ）を目標値ｒ（ｉ）に振動を励起させないが、制御出力ｙ（ｉ）が目標値ｒ（ｉ）に遅く追従する応答を得るモデルゲインＫｂ、モデルオフセットＧｂ、目標値速度モデルゲインＫｖｒｂ、目標値加速度モデルゲインＫａｒｂを用意しておく。そして｛Ｋａ，Ｋｖｒａ，Ｋａｒａ，Ｋｂ，Ｋｖｒｂ，Ｋａｒｂ｝はゲインマップに、｛Ｇａ，Ｇｂ｝はオフセットマップに保存されているとする。
【００６４】
産業用機械装置を駆動するモータ制御装置では、振動を励起させずに、制御出力ｙ（ｉ）を目標値ｒ（ｉ）に素早く追従させるには、大きな制御入力ｕ（ｉ）、もしくはモデルｕＭ（ｉ）、モデル入力変化量ΔｕＭ（ｉ）が必要となり、制御出力ｙ（ｉ）の目標値ｒ（ｉ）に対する追従を遅くすると小さい制御入力ｕ（ｉ）、もしくはモデル入力ｕＭ（ｉ）、モデル入力変化量ΔｕＭ（ｉ）で済む。そのため、モデル制御器決定部１１は通常、制御出力ｕ（ｉ）が目標値ｒ（ｉ）に早く追従するようにゲインマップから｛Ｋａ，Ｋｖｒａ，Ｋａｒａ｝を、オフセットマップからＧａを決定し、モデル制御器１２へ出力する。もし、制御入力ｕ（ｉ）、もしくはモデル入力ｕＭ（ｉ）、モデル入力変化量ΔｕＭ（ｉ）が所定の値を越えそうならば、モデル制御器決定部１１はゲインマップから｛Ｋｂ，Ｋｖｒｂ，Ｋａｒｂ｝を、オフセットマップからＧｂを決定しモデル制御器１２へ出力する。
【００６５】
これにより、制御入力ｕ（ｉ）、モデル入力ｕＭ（ｉ）、モデル入力変化量ΔｕＭ（ｉ）が所定の値を越えない場合は、制御出力ｙ（ｉ）が目標値ｒ（ｉ）に振動なく素早く追従する応答が、制御入力ｕ（ｉ）、モデル入力ｕＭ（ｉ）、モデル入力変化量ΔｕＭ（ｉ）が所定の値を越えそうな場合、制御出力ｙ（ｉ）の目標値ｒ（ｉ）への追従は遅くなるが、振動なく、かつモデル入力ｕＭ（ｉ）、モデル入力変化量ΔｕＭ（ｉ）が所定の値を越えない応答が得られる。各種のゲインとオフセットの候補｛Ｋａ，Ｇａ，Ｋｖｒａ，Ｋａｒａ｝，｛Ｋｂ，Ｇｂ，Ｋｖｒｂ，Ｋａｒｂ｝の決め方は、式（１９）の離散時間状態方程式に対し、極配置法、ループ整形などの制御系設計法を用いることで設計可能であり、本実施の形態では特に限定しない。また、ゲインの組数も制御出力ｙ（ｉ）が目標値ｒ（ｉ）に素早く追従するゲインと制御出力ｙ（ｉ）が目標値ｒ（ｉ）に遅く追従するゲインの２組に限定するものではなく、３組以上あっても良い。
【００６６】
上記の参考例による設計では、モデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉの数や、各モデルゲイン｛Ｋａ，Ｋｂ｝、モデルオフセット｛Ｇａ，Ｇｂ｝、目標値速度モデルゲイン｛Ｋｖｒａ，Ｋｖｒｂ｝、目標値加速度モデルゲイン｛Ｋａｒａ，Ｋａｒｂ｝の設計をある程度試行錯誤的に行う必要があり、またこれらのゲインを決定する方式の詳細は別途設計する必要がある。これに対し、以下のようにモデル予測制御の応用を行うことで、複数のモデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉの値や決定条件を体系的に決定することができる。
【００６７】
モデル予測制御では、オフラインの最適化計算によりゲインとオフセットを切換える制御器が設計されることが知られている（参考資料：F. Borrelli: Constrained Optimal Control of Linear and Hybrid Systems, Springer Verlag, LNCIS 290 (2003)）。
【００６８】
上記の参考資料においては、モータ制御装置に限定しない制御方法としてモデル予測制御を利用しつつ区分的アフィンな状態フィードバック制御系を設計することにより、制約を満たしつつ、かつある評価関数を最小化する方式が提案されている。ここで、区分的アフィンな状態フィードバック制御系とは、制御する機械の状態と、ゲインとの乗算と、オフセットとの加算に基づき機械に印加する入力を計算し、かつこれらのゲインとオフセットは機械の状態に応じて切換える制御系である。ただし、上記の参考資料では、本実施の形態におけるフィードバック制御器２２に相当する部分に区分的アフィンな状態フィードバック制御系を設計しているため、制御する機械の状態をすべての計測または推定する必要がある。そのため、多数のセンサが必要であるか、オブザーバを構築する必要があり、実用的ではない。
【００６９】
しかし、この手法をモデル制御器１２の予め定める複数の候補を生成することに用いることにより、上記問題点は解決可能である。以下、モデル予測制御によるゲインマップとオフセットマップの生成について説明する。
【００７０】
モデル予測制御により制御器を設計する際には、予測モデル、制御制約、評価関数を定める必要がある。次にこれらについて説明する。
【００７１】
まず、制御器を設計する際に用いる予測モデルについて説明する。本実施の形態においては、モデル入力変化量ΔｕＭ（ｉ）を考慮するため、また、目標値記憶部１５から出力される過去の目標値ｒ（ｉ−１），ｒ（ｉ−２）も考慮するため、式（１９）で表される離散時間状態方程式を制御器を設計する際に用いる予測モデルとする。
【００７２】
次に、制御制約について説明する。本実施の形態では、各ステップにおいてモデル入力ｕＭ（ｉ）とモデル入力変化量ΔｕＭ（ｉ）が所定の値を越えないことを制御制約とする。つまり、以下の式（２０）で示される制御制約が課されているとする。
【００７３】
【数２０】
2013077007.tif 000022
【００７４】
ここで、ｕＭｍａｘはモデル入力ｕＭ（ｉ）の絶対値の最大値を、ΔｕＭｍａｘはモデル入力変化量ΔｕＭ（ｉ）の絶対値の最大値を表している。
【００７５】
最後に評価関数について説明する。本実施の形態では、評価関数を以下の式（２１）とする。
【００７６】
【数２１】
2013077007.tif 000023
【００７７】
そして、式（２１）の評価関数を最小化するモデル入力変化量ΔｕＭ（ｉ）を計算する最小化問題（以下の式（２２））を考える。ここで、〜ｒ（ｉ）＝ｒ（ｉ）、〜ｖｒ（ｉ）＝ｖｒ（ｉ）、〜ａｒ（ｉ）＝ａｒ（ｉ）とする。
【００７８】
【数２２】
2013077007.tif 000024
【００７９】
ここで、ｄはノルムの次数であり、ｄ＝１、２、∞のどれかの値を取る。また、Ｎはホライゾンと呼ばれ、どの程度未来を予測するのかを決めるパラメータであり、一つの設計パラメータである。Ｑ、Ｒ、ＰＮは重みであり、設計パラメータである。なお、式（２２）では状態変数の終端制約集合とモデル入力の終端制約集合を示してないが、これらを使用せずに本実施の形態の効果を得ることは可能である。また、状態変数の終端制約集合とモデル入力の終端制約集合を適切に設定することにより、式（２２）の問題を解いて得られる入力により安定性が保証できることが、上記参考資料に示されている。したがって、状態変数の終端制約集合とモデル入力の終端制約集合を使用することにより、本実施の形態のモータ制御装置においてもモデル入力が発散し、動作が不安定になることを防止できる。
【００８０】
上記の評価関数を最小化する問題は、ｄ＝１、∞の場合は、適当な変換と補助変数の導入により、ある行列Ｇ、Ｗ、Ｅと、あるベクトルｃ、ｖを用いて、以下の式（２３）のようなマルチパラメトリック線形計画問題に帰着可能であることが知られている。
【００８１】
【数２３】
2013077007.tif 000025
【００８２】
ここで、ｘＭ（ｉ）はｉステップ目での状態変数、ｕＭ（ｉ−１）は１ステップ前のモデル入力であり、ｖは入力列［ΔｕＭ（ｉ）、ΔｕＭ（ｉ＋１）、・・・、ΔｕＭ（ｉ＋Ｎ−１）］と補助変数から構成される。
【００８３】
式（２３）の最小化問題を解くと、複数のモデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉの候補が求まり、これらのゲインは数式モデル１４の状態変数ｘＭ（ｉ）、１ステップ前のモデル入力ｕＭ（ｉ−１）、目標値速度ｖｒ（ｉ）、目標値加速度ａｒ（ｉ）に応じて、複数の候補の中から決定される。また、これと同時に複数の候補の中からモデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉを決定する決定条件Ｐｉも求まる。求まったモデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉ、決定条件Ｐｉを用いて、以下に示す式（２４）、式（２５）、式（２６）を計算することにより、モデル入力ｕＭ（ｉ）が計算できる。
【００８４】
【数２４】
2013077007.tif 000026
【数２５】
2013077007.tif 000027
【数２６】
2013077007.tif 000028
【００８５】
つまり、モデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉの複数の候補と数式モデル１４の状態変数ｘＭ（ｉ）、１ステップ前のモデル入力ｕＭ（ｉ−１）、目標値ｒ（ｉ）、目標値速度ｖｒ（ｉ）、目標値加速度ａｒ（ｉ）とモデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉを対応づける決定条件Ｐｉが自動的に設計される。なお、決定条件ＰｉはモデルゲインＫｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉの複数の候補と決定条件を表すゲインマップと、モデルオフセットＧｉの複数の候補と決定条件を表すオフセットマップに分けることが可能である。
【００８６】
よって、モデル制御器決定部１１は、式（２２）、または式（２３）の最小化問題を予め解いた結果得られるゲインマップとオフセットマップを持ち、各サンプリング時刻において数式モデル１４の状態変数ｘＭ（ｉ）と１ステップ前のモデル入力ｕＭ（ｉ−１）、目標値ベクトルｖｒｅｃ（ｉ）が入力され、状態変数ｘＭ（ｉ）と１ステップ前のモデル入力ｕＭ（ｉ−１）、目標値ベクトルｒｖｅｃ（ｉ）から取得できる目標値ｒ（ｉ）、目標値速度ｖｒ（ｉ）、目標値加速度ａｒ（ｉ）を決定条件Ｐｉに参照することにより、モデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉを決定する。さらに、決定したモデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉをモデル制御器１２へ出力する。
【００８７】
そして、上記の通り、モデル制御器１２は、式（２４）および式（２６）にしたがって、数式モデル１４の状態変数ｘＭ（ｉ）および１ステップ前のモデル入力ｕＭ（ｉ−１）とモデルゲインＫｉとの積と、目標値ｒ（ｉ）と目標値モデルゲインＫｒｉとの積と、目標値速度ｖｒ（ｉ）と目標値速度モデルゲインＫｖｒｉとの積と、目標値加速度ａｒ（ｉ）と目標値加速度モデルゲインＫａｒｉとの積を全て加算した値と、モデルオフセットＧｉとの和に基づきモデル入力ｕＭ（ｉ）を計算する。
【００８８】
式（２４）、式（２５）、式（２６）のモデル入力ｕＭ（ｉ）とモデル入力変化量ΔｕＭ（ｉ）は式（２２）、または式（２３）の最小化問題の結果導出されるため、最小化問題の制御制約（２０）を満たすモデル入力ｕＭ（ｉ）とモデル入力変化量ΔｕＭ（ｉ）が導出される。つまり、モデル入力ｕＭ（ｉ）とモデル入力変化量ΔｕＭ（ｉ）の絶対値が所定の値以上になる場合に、モデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉが切換える。また、モデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉの候補値とこれらの値を切換える条件を記述するゲインマップ、オフセットマップも自動的に計算される。モデル入力ｕＭ（ｉ）が所定の値以上にならないことは、制御入力の制御制約が満たされることを意味しており、モデル入力変化量ΔｕＭ（ｉ）が、所定の値以上にならないことは、モデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉを決定条件Ｐｉから生成したゲインマップとオフセットマップに基づき変更してもモデル入力ｕＭ（ｉ）が急激に変化しないことを意味している。
【００８９】
また、最小化問題である式（２２）および式（２３）を解いた結果、モデルオフセットＧｉが導出されるため、モデルゲインＫｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉのみを使用する場合よりも、モデルオフセットＧｉを追加したほうが、式（２１）の評価関数を小さくするという意味で高速・高精度な応答を得る制御系が実現できる。
【００９０】
次に、上述した実施の形態１によって得られる効果を以下に説明する。
【００９１】
本実施の形態に係るモータ制御装置１００によれば、過去モデル入力ｕＭ’（ｉ）を用いて予め定めた複数の候補からモデル制御器１２を決定することにより、モデル入力変化量ΔｕＭ（ｉ）、または制御入力の変化を考慮してモデル制御器１２を決定することができる。すなわち、過去モデル入力ｕＭ’（ｉ）を用いて、モデル入力ｕＭ（ｉ）を計算するためにモデル入力変化量ΔｕＭ（ｉ）を新たな入力とすることができる。その結果、モデル制御器決定部１１がモデル制御器１２の決定を適切に行うことにより、モデル入力ｕＭ（ｉ）のみならず、モデル入力変化量ΔｕＭ（ｉ）が所定の値より大きくならず、かつ制御出力ｙ（ｉ）が目標値ｒ（ｉ）に早く、かつ振動せずに追従する制御系を実現することが可能になる。つまり、トルク飽和（電流飽和）やトルク変化率飽和、そしてトルク変化率飽和と密接な関係がある電圧飽和を防止しつつ、高速高精度なモータ制御装置を得ることが可能となる。また、制御性能向上のためにモデル制御器１２を切換えても、モデル入力ｕＭ（ｉ）が急激に変化することを防止することが可能である。即ち、モデル入力を所定の値より小さくなるようにモデル制御器の決定を行うことにより、トルク飽和の発生が防止でき、モデル入力の変化量が所定の値より小さくなるようにモデル制御器の決定を行うことにより、電圧飽和の発生が防止でき、かつモデル制御器を切換えたときのショックを低減することが可能となる。
【００９２】
さらに過去モデル入力ｕＭ’（ｉ）をモデル制御器１２へフィードバックすることで、モデル入力変化量ΔｕＭ（ｉ）を新たな入力とする式（１８）、式（１９）の離散時間状態方程式へ等価変換することができる。これにより、最小化問題（２２）においてモデル入力変化量ΔｕＭ（ｉ）を考慮することが可能となる。
【００９３】
また、目標値記憶部１５により、過去の目標値ｒ（ｉ−１）、ｒ（ｉ−２）・・・を記憶することで、目標値速度ｖｒ（ｉ）、目標値加速度ａｒ（ｉ）もモデル入力変化量ΔｕＭ（ｉ）の計算時に考慮することが可能となり、これらの値を用いない場合よりも制御出力ｙ（ｉ）が目標値ｒ（ｉ）に早く追従する制御系が設計できる。即ち、現在の目標値だけでなく、過去の目標値も利用してモデル制御器を切換え、モデル入力を生成して制御を行うことで、現在の目標値のみを用いてモデル制御器を切換える場合よりも高応答なモータ制御装置を得ることが可能となる。
【００９４】
さらに、モデル制御器決定部１１が過去モデル入力ｕＭ’（ｉ）、数式モデル１４の状態変数ｘＭ（ｉ）、目標値ベクトルｒｖｅｃ（ｉ）に応じて、モデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉを決定することにより、モデル入力ｕＭ（ｉ）とモデル入力変化量ΔｕＭ（ｉ）が所定の値を越えず、かつ高速高精度な応答が得られるモータ制御装置が実現できる。即ち、モデルゲインに加え、オフセット量も用いることより高応答なモータ制御装置を得ることが可能となる。
【００９５】
ここで、目標値ベクトルｒｖｅｃ（ｉ）を用いて、モデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉの各候補と決定条件を記載するゲインマップとオフセットマップは予めオフラインで求められている。オンラインでの計算はゲインマップ、オフセットマップの参照により目標値ベクトルｒｖｅｃ（ｉ）を用いて、モデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉの決定する式（２５）の計算と、式（２４）、式（２６）によるモデル入力ｕＭ（ｉ）の計算のみである。このように予めゲインマップとオフセットマップを規定しておくことにより、各ステップで式（２２）の最小化問題を計算してモデル入力変化量ΔｕＭ（ｉ）の計算を行うオンライン型のモデル予測制御よりも計算時間が短くすることが可能である。よってオンラインでの計算量をかなり減らすことが可能となり、サンプリング時間をより早くでき、制御系の性能も向上させることが可能となる。
【００９６】
なお、実施の形態１では、上記でｄ＝１、∞の場合について説明したが、ｄ＝２の場合も式（２３）のマルチパラメトリック線形計画問題がマルチパラメトリック二次計画問題に換わるだけであり、最小化問題の最適解として数式モデル１４の状態変数ｘＭ（ｉ）、１ステップ前のモデル入力ｕＭ（ｉ−１）、目標値ベクトルｒｖｅｃ（ｉ）を用いて、モデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉを切換えるための各ゲインの候補値と決定条件を記述しているマップＰｉが出力される。
【００９７】
また、上記の説明では、モデル制御器決定部１１がゲインマップを用いて、目標値モデルゲインＫｒｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉを切換える場合、もしくは、ゲインマップとオフセットマップを用いて、目標値モデルゲインＫｒｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉを決定する場合について説明したが、数式モデル１４の状態変数ｘＭ（ｉ）、目標値ベクトルｒｖｅｃ（ｉ）、過去モデル入力ｕＭ’（ｉ）を変数とする関数を用いてモデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉを決定しても良い。
【００９８】
また、上記の説明では、制御制約として式（２０）を用いたが、制御制約としてこれに限るものではない。具体的には、数式モデル１４の状態変数ｘＭ（ｉ）、モデル入力ｕＭ（ｉ）、モデル入力変化量ΔｕＭ（ｉ）に関する制御制約が凸制約であれば良い。例えば、数式モデル１４の状態変数ｘＭ（ｉ）に対しても制御制約を課しても良い。
【００９９】
また、モデルゲインＫｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉもしくは、モデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉを決定する際には、数式モデル１４の状態変数ｘＭ（ｉ）、目標値ベクトルｒｖｅｃ（ｉ）、過去モデル入力ｕＭ’（ｉ）をすべて使用する必要はなく、これらの情報の一部分を使用するだけでも良い。
【０１００】
以上述べたように、モデル入力を所定の値より小さくなるようにモデルゲイン或いはモデルゲイン及びモデルオフセットの決定を行うことにより、トルク飽和の発生が防止でき、モデル入力の変化量が所定の値より小さくなるようにモデルゲイン或いはモデルゲイン及びモデルオフセットの決定を行うことにより、電圧飽和の発生が防止でき、かつモデル制御器を切換えたときのショックを低減することが可能となる。
【０１０１】
また、上記の説明では、過去モデル入力ｕＭ’（ｉ）として１ステップ前のモデル入力ｕＭ（ｉ−１）を使用していたが、必ずしも１ステップ前に拘るものではなく、例えば複数ステップ前のモデル入力を利用して同様の効果を持たせることも容易であり、１ステップ前のモデル入力以外の過去のモデル入力を過去モデル入力として用いても本実施の形態と同様の効果が得られる。
【０１０２】
また、上記の説明では目標値速度ｖｒ（ｉ）、目標値加速度ａｒ（ｉ）を用いてモデル入力ｕＭ（ｉ）を生成していたが、これらの値を用いずモデル入力ｕＭ（ｉ）を生成してもよい。つまりモデルゲインＫｉと、それにより自動的に決定される目標値モデルゲインＫｒｉを、目標値ベクトルＫｖｒｉ、状態変数ｘＭ（ｉ）及び１ステップ前のモデル入力ｕＭ（ｉ−１）に応じて決定し、目標値速度モデルゲインＫｖｒｉと、目標値加速度モデルゲインＫａｒｉは常に０とおいて、式（１４）、式（２４）を計算してもよい。この方式でも、実施の形態１と同様の効果が得られる。
【０１０３】
また、上記の説明では、モデル制御器１２はモデルサブ制御器１２１を含み、モデル入力変化量ΔｕＭ（ｉ）を計算して、モデル入力変化量ΔｕＭ（ｉ）に１ステップ前のモデル入力ｕＭ（ｉ−１）を加算することによりモデル入力ｕＭ（ｉ）を計算していたが、モデル入力変化量の制御制約｜ΔｕＭ（ｉ）｜＜＝ΔｕＭｍａｘを考慮する必要がない場合は、モデル入力変化量ΔｕＭ（ｉ）を計算せずに直接モデル入力ｕＭ（ｉ）を計算してもよい。つまり、以下に示す式（２７）を用いてモデル入力ｕＭ（ｉ）を計算してもよい。この場合、式（２２）の最小化問題を以下に示す式（２８）の最小化問題に変更することにより、式（２７）のモデルゲインＫｉ、モデルオフセットＧｉ、目標値モデルゲインＫｒｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉの決定条件を記述するゲインマップ、オフセットマップが得られる。即ち、下記の評価関数を最小化するようにゲインマップ及びオフセットマップを生成することにより、適切なゲインマップ及びオフセットマップを自動的に得ることが可能となる。
【０１０４】
【数２７】
2013077007.tif 000029
【数２８】
2013077007.tif 000030
【０１０５】
以上説明したように実施の形態１においては、上記したようにモータ制御装置１００を構成することにより、様々に変化する目標値に対して、少ない計算量で、モータのトルクといった制御対象４への制御入力を不連続にすることなく、制御器の特性を自動的に決定することができる。これにより、制御対象４への制御入力の絶対値や変化量を制約しつつ、高速・高精度に制御出力を目標値に追従させることが可能となる。
【０１０６】
実施の形態２．
本発明の実施の形態２に係るモータ制御装置２００について図４から図６までを参照しながら説明する。なお、本実施の形態においても、説明の簡略化のため、過去モデル入力ｕＭ’（ｉ）として１ステップ前のモデル入力ｕＭ（ｉ−１）を用いる場合について説明する。また、目標値メモリ１５１は２ステップ間目標値を記憶保持することが可能な個数（つまりＭ＝２）備えられている場合について説明する。ただし、これは過去モデル入力として１ステップ前のモデル入力を使用することや、目標値メモリ１５１が２ステップ間のみの目標値を記憶保持することが可能な個数備えられていることに限定されるものではない。
【０１０７】
図４に示すように、本実施の形態に係るモータ制御装置２００には、駆動する機械の位置や速度を表す制御出力ｙ（ｉ）に対する目標値ｒ（ｉ）と、検出器５より検出されたモータの位置や速度を表す制御対象４の制御出力ｙ（ｉ）が入力される。そして、検出器５からの制御出力ｙ（ｉ）が目標値ｒ（ｉ）へ追従するように、モータ制御装置２００は制御対象４へモータのトルクや電流などの制御入力ｕ（ｉ）を出力する。
【０１０８】
図４に示すように、本実施の形態に係るモータ制御装置２００は、規範モデル部１Ａと、フィードバック制御部２とモデル入力加算器３から構成される。モータ制御装置２００は、機械負荷と機械負荷を駆動する回転型モータやリニアモータなどのモータから構成される制御対象４と、エンコーダなどの検出器５に接続される。フィードバック制御部２、モデル入力加算器３、制御対象４及び検出器５は、上記した実施の形態１と同じ構成のため説明を省略する。
【０１０９】
規範モデル部１Ａには目標値ｒ（ｉ）が入力され、制御対象４の理想的な動作波形を示すモデル出力ｙＭ（ｉ）をフィードバック制御部２へ出力する。さらに規範モデル部１Ａは、検出器５から出力される制御出力ｙ（ｉ）が目標値ｒ（ｉ）に追従するように、制御対象４を駆動するモデル入力ｕＭ（ｉ）をモデル入力加算器３へ出力する。
【０１１０】
また、規範モデル部１Ａは、所定の時間、目標値ｒ（ｉ）を記憶保持し、記憶保持している１つもしくは複数の過去の目標値を入力された現在の目標値ｒ（ｉ）と一緒に目標値ベクトルｒｖｅｃ（ｉ）として出力する目標値記憶部１５と、予め定められた複数の候補からモデル制御器を決定するモデル制御器決定部１１Ａと、モデル出力ｙＭ（ｉ）を目標値ｒ（ｉ）に追従されるモデル制御器１２と、モデル入力ｕＭ（ｉ）を記憶するモデル入力メモリ１３と、制御対象４の特性を模擬した数式モデル１４とを有する。ここでモデル制御器１２、モデル入力メモリ１３と数式モデル１４、目標値記憶部１５の動作は、上記実施の形態１と同じであるため、説明を省略する。
【０１１１】
本実施の形態にかかるモータ制御装置２００においては、モデル制御器決定部１１Ａの動作が、実施の形態１にかかるモータ制御装置１００のモデル制御器決定部１１と異なる。即ち、本実施の形態においては極配置等で予め設計した複数の候補をモデル制御器決定部１１Ａにより決定する。
【０１１２】
本実施の形態において、モデル制御器決定部１１Ａは目標値ベクトルｒｖｅｃ（ｉ）、１ステップ前モデル入力ｕＭ（ｉ−１）、数式モデル１４の状態変数ｘＭ（ｉ）を入力し、モデル入力ｕＭ（ｉ）、モデル入力変化量ΔｕＭ（ｉ）の値が所定の値を超えないように、予め設計されている複数のモデルゲインＫｉ、目標値モデルゲインＫｒｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉの中から一組を決定し、それらのゲインをモデル制御器１２へ出力する。なお本実施の形態では、モデル制御器決定部１１ＡはモデルオフセットＧｉを常に０に決定すると仮定する。予め複数のモデルゲインＫｉ、目標値モデルゲインＫｒｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉの候補を定めておくことにより、オンラインでの計算量を低減することが可能となり、サンプリング時間も早くすることが可能となる。なお、本実施の形態においても、目標値ｒ（ｉ）と追従させる状態変数ｘＭ（ｉ）との偏差からモデル入力変化量ΔｕＭ（ｉ）を生成する場合、目標値モデルゲインＫｒｉは、モデルゲインＫｉから自動的に決定されるものである。
【０１１３】
次に、モデル制御器決定部１１Ａによる、モデルゲインＫｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉの決定法について説明する。モデルゲインＫｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉの決定には、最大出力許容集合O∞ｉを用いる。最大出力許容集合O∞ｉとは、制御系（閉ループ系）が制御制約を破らない条件を集めた集合であり、その計算方法は『平田、藤田、「外部入力を有する線形離散時間システムに対する拘束条件の解析」、電機学会C、１１８−３、３８４／３９０−、１９９８』に記載されている。本実施の形態では、制御制約として実施の形態１と同じく、式（２０）で記述されるモデル入力ｕＭ（ｉ）とモデル入力変化量ΔｕＭ（ｉ）が所定の値を超えない制約について考慮する。まず、この最大出力許容集合O∞ｉについて説明する。
【０１１４】
本実施の形態においても、実施の形態１と同様に、モータ制御装置２００は目標値記憶部１５を備え、規範モデル部１Ａに含まれるモデル制御器１２は図３に示すように１ステップ前のモデル入力ｕＭ（ｉ−１）をモデルサブ制御器１２１へフィードバックし、モデル入力変化量加算器１２２によりモデル入力変化量ΔｕＭ（ｉ）と１ステップ前のモデル入力ｕＭ（ｉ−１）を加算して、モデル入力ｕＭ（ｉ）を生成している。したがって、目標値記憶部１５、モデル入力メモリ１３と、数式モデル１４と、モデル入力変化量加算器１２２を合わせて、式（１９）で表される離散時間状態方程式を考える。
【０１１５】
また、予め設計されているモデルゲインＫｉ、目標値モデルゲインＫｒｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉの候補の一つをそれぞれＫ１、Ｋｒ１、Ｋｖｒ１、Ｋａｒ１で表す。これらのゲインを用いて、モデルサブ制御器１２１が式（２７）を用いて、数式モデル１４の状態変数ｘＭ（ｉ）と１ステップ前のモデル入力ｕＭ（ｉ−１）、目標値ｒ（ｉ）、目標値速度ｖｒ（ｉ）、目標値加速度ａｒ（ｉ）から、モデル入力変化量ΔｕＭ（ｉ）を以下の式（２９）のように計算することを考える。
【０１１６】
【数２９】
2013077007.tif 000031
【０１１７】
ここで、本実施の形態では、モデル制御器決定部１１ＡはモデルオフセットＧｉを常に０として決定するため、式（２９）においてモデルオフセットＧｉの項は除かれている。
【０１１８】
さらに、式（２９）を式（１９）に代入することで、以下に示す式（３０）が得られる。
【０１１９】
【数３０】
2013077007.tif 000032
【０１２０】
式（３０）は規範モデル部１Ａの閉ループ系を表している。ｉステップ時における数式モデル１４の状態変数ｘＭ（ｉ）が決定すれば、ｉステップ時以後の目標値予測値〜ｒ（ｉ＋１）、〜ｒ（ｉ＋２）・・・と目標値ｒ（ｉ＋１）、ｒ（ｉ＋２）・・・、目標値速度予測値〜ｖｒ（ｉ＋１）、〜ｖｒ（ｉ＋２）・・・と目標値速度ｖｒ（ｉ＋１）、ｖｒ（ｉ＋２）・・・、目標値加速度予測値〜ａｒ（ｉ＋１）、〜ａｒ（ｉ＋２）・・・と目標値加速度ａｒ（ｉ＋１）、ａｒ（ｉ＋２）・・・がそれぞれ等しい、つまり以下の式（３１）が成り立つと仮定して、
【０１２１】
【数３１】
2013077007.tif 000033
【０１２２】
式（３０）を繰り返し計算することにより、ｉステップ以降における数式モデル１４の状態変数ｘＭ（ｉ＋ｌ）（ｌ＞０）、モデル入力ｕＭ（ｉ＋ｌ）（ｌ＞０）、目標値ｒ（ｉ＋ｌ）（ｌ＞０）、目標値速度ｖｒ（ｉ＋ｌ）（ｌ＞０）、目標値加速度ａｒ（ｉ＋ｌ）（ｌ＞０）が計算可能である。各ステップにおける数式モデル１４の状態変数ｘＭ（ｉ）、モデル入力ｕＭ（ｉ）、目標値ｒ（ｉ）、目標値速度ｖｒ（ｉ）、目標値加速度ａｒ（ｉ）が計算可能であるため、式（２９）を用いることで、各ステップのモデル入力変化量ΔｕＭ（ｉ＋ｌ）、ｌ＞０も計算可能である。したがって、モデルゲインＫ１、目標値速度モデルゲインＫｖｒ１、目標値加速度モデルゲインＫａｒ１とｉステップ時における数式モデル１４の状態変数ｘＭ（ｉ）、１ステップ前モデル入力ｕＭ（ｉ−１）、目標値ｒ（ｉ）、目標値速度ｖｒ（ｉ）、目標値加速度ａｒ（ｉ）が決まれば、式（２０）の制御制約を満たすかどうかを計算することが事前に可能である。
【０１２３】
したがって、逆に式(２０)の制御制約、モデルゲインＫ１、目標値速度モデルゲインＫｖｒ１、目標値加速度モデルゲインＫａｒ１が与えられたときに制約条件を破らない数式モデル１４の状態変数ｘＭ（ｉ）、モデル入力ｕＭ（ｉ）、目標値ｒ（ｉ）、目標値速度ｖｒ（ｉ）、目標値加速度ａｒ（ｉ）を計算することも可能である。上述したように、この制御制約を破らない条件を最大出力許容集合O∞ｉと呼ぶ。
【０１２４】
図５は、本発明の実施の形態２に係るモータ制御装置２００の最大出力許容集合O∞ｉの例を示す図である。
【０１２５】
図５では、縦軸は数式モデル１４の状態変数ｘＭ（ｉ）、横軸は目標値ｒ（ｉ）を表している。そして、多角形の内部が最大出力許容集合O∞ｉを表している。実際には、目標値速度ｖｒ（ｉ）や目標値加速度ａｒ（ｉ）も最大出力許容集合O∞ｉを構成する要素であるため、図５の軸に加えるべきであるが、図５では説明を簡単にするため、省略している。また、点Ａは数式モデル１４のｉステップ時の状態変数ｘＭ（ｉ）と目標値ｒ（ｉ）が最大出力許容集合O∞ｉの内部にある状況を表しており、点Ｂはｉステップ時の状態変数ｘＭ（ｉ）、目標値ｒ（ｉ）が最大出力許容集合O∞ｉの外にある状況を表している。点Ａのように、ｉステップの状態変数ｘＭ（ｉ）が最大出力許容集合O∞ｉの内部にある場合、ｉステップ時以降も式（２０）の制御制約を破らない。しかし、点Ｂのように、ｉステップ時の状態変数ｘＭ（ｉ）が最大出力許容集合O∞ｉの外にある場合は、たとえｉステップ時において式（２０）の制御制約を満たしていても、ｉステップ時以降のいずれかの時点でかならず式（２０）の制御制約を破る。
【０１２６】
次に、モデル制御器決定部１１Ａによる最大出力許容集合O∞ｉを用いたモデルゲインＫｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉの決定法について説明する。ここでは、図６を用いて３組のモデルゲイン、目標値モデルゲイン、目標値速度モデルゲイン、目標値加速度モデルゲインがある場合について説明する。図６は、本発明の実施の形態２に係るモータ制御装置２００の動作例を示す図である。もちろん、本実施の形態により、３組のモデルゲイン、目標値モデルゲイン、目標値速度モデルゲイン、目標値加速度モデルゲインなどに限定されるものではない。
【０１２７】
図６は、あらかじめ３組のモデルゲイン、目標値モデルゲイン、目標値速度モデルゲイン、目標値加速度モデルゲイン、｛Ｋ１，Ｋｒ１，Ｋｖｒ１，Ｋａｒ１｝、｛Ｋ２，Ｋｒ２，Ｋｖｒ２，Ｋａｒ２｝、｛Ｋ３，Ｋｒ３，Ｋｖｒ３，Ｋａｒ３｝が設計されており、各組のゲインを用いた場合における最大出力許容集合O∞１、O∞２、O∞３が計算されている状況を表している。図６において、縦軸は数式モデル１４の状態変数ｘＭ（ｉ）、横軸は目標値ｒ（ｉ）を表している。本実施の形態では、制御出力ｙ（ｉ）が目標値ｒ（ｉ）に一番早く追従するゲインを｛Ｋ１，Ｋｒ１，Ｋｖｒ１，Ｋａｒ１｝、一番遅く追従するゲインを｛Ｋ３，Ｋｒ３，Ｋｖｒ３，Ｋａｒ３｝とする。またゲイン｛Ｋ２，Ｋｒ２，Ｋｖｒ２，Ｋａｒ２｝はゲイン｛Ｋ１，Ｋｒ１，Ｋｖｒ１，Ｋａｒ１｝よりは遅く、｛Ｋ３，Ｋｒ３，Ｋｖｒ３，Ｋａｒ３｝よりは早く制御出力ｙ（ｉ）が目標値ｒ（ｉ）に追従するゲインとする。最大出力許容集合O∞ｉは、ゲイン｛Ｋｉ，Ｋｒｉ，Ｋｖｒｉ，Ｋａｖｒｉ｝に依存するため、それぞれのゲインを用いた場合の最大出力許容集合O∞１、O∞２、O∞３は図６に示すように異なる。
【０１２８】
例えば、数式モデル１４の状態変数ｘＭ（ｉ）、目標値ｒ（ｉ）が点Ａにあるとする。点Ａは最大出力許容集合O∞３の内部にあり、最大出力許容集合O∞１およびO∞２の外にあるため、ゲイン｛Ｋ３，Ｋｒ３，Ｋｖｒ３，Ｋａｒ３｝を用いた場合は式（２０）の制御制約を破らないが、ゲイン｛Ｋ２，Ｋｒ２，Ｋｖｒ２，Ｋａｒ２｝、｛Ｋ１，Ｋｒ１，Ｋｖｒ１，Ｋａｒ１｝を用いるといつかは、式（２０）の制御制約を破ってしまう。そのため、モデル制御器決定部１１Ａは式（２０）の制約を破らないゲイン｛Ｋ３，Ｋｒ３，Ｋｖｒ３，Ｋａｒ３｝を決定し、モデル制御器１２に選択したこれらのゲインを出力する。
【０１２９】
次に、数式モデル１４の状態変数ｘＭ（ｉ）、目標値ｒ（ｉ）が点Ｂに遷移したとする。点Ｂは最大出力許容集合O∞３とO∞２の内部にあり、最大出力許容集合O∞１の外にあるため、ゲイン｛Ｋ２，Ｋｒ２，Ｋｖｒ２，Ｋａｒ２｝、｛Ｋ３，Ｋｒ３，Ｋｖｒ３，Ｋａｒ３｝を用いた場合は、式（２０）の制御制約を破らず、ゲイン｛Ｋ１，Ｋｒ１，Ｋｖｒ１，Ｋａｒ１｝を用いた場合は、式（２０）の制御制約をいつかは破る。このように、式（２０）の制御制約を破らないゲインが複数存在する場合、モデル制御器決定部１１Ａは、最も早く制御出力ｙ（ｉ）が目標値ｒ（ｉ）に追従するゲインを決定する。つまり、この場合はゲイン｛Ｋ２，Ｋｒ２，Ｋｖｒ２，Ｋａｒ２｝のほうがゲイン｛Ｋ３，Ｋｒ３，Ｋｖｒ３，Ｋａｒ３｝よりも早く制御出力ｙ（ｉ）が目標値ｒ（ｉ）に追従するため、モデル制御器決定部１１Ａはゲイン｛Ｋ２，Ｋｒ２，Ｋｖｒ２，Ｋａｒ２｝を決定し、モデル制御器１２へ出力する。
【０１３０】
その後、数式モデル１４の状態変数ｘＭ（ｉ）、目標値ｒ（ｉ）が点Ｃに遷移したとする。点Ｃは最大出力許容集合O∞１、O∞２、O∞３の内部にあるため、ゲイン｛Ｋ１，Ｋｒ１，Ｋｖｒ１，Ｋａｒ１｝、｛Ｋ２，Ｋｒ２，Ｋｖｒ２，Ｋａｒ２｝、｛Ｋ３，Ｋｒ３，Ｋｖｒ３，Ｋａｒ３｝のいずれを用いたとしても、式（２０）の制御制約を破らない。従って、モデル制御器決定部１１Ａは、そのなかで、制御出力ｙ（ｉ）が目標値ｒ（ｉ）に最も早く追従するゲイン｛Ｋ１，Ｋｒ１，Ｋｖｒ１，Ｋａｒ１｝を決定し、モデル制御器１２へ出力する。
【０１３１】
上記の動作をまとめると、モデル制御器決定部１１Ａは、次の三つの動作を行う。
【０１３２】
１．あらかじめ設計されたモデルゲインＫｉ、目標値モデルゲインＫｒｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉ（ｉ＝１，．．．，Ｚ）に対して、最大出力許容集合O∞ｉ（ｉ＝１，．．．，Z）を予め計算しておく。ここで、Ｚは設計されたゲインの数である。
【０１３３】
２．目標値ベクトルｒｖｅｃ（ｉ）、数式モデル１４の状態変数ｘＭ（ｉ）、１ステップ前のモデル入力ｕＭ（ｉ−１）を取得し、現在の値が各ゲイン｛Ｋｉ，Ｋｒｉ，Ｋｖｒｉ，Ｋａｒｉ｝を用いて作成した最大出力許容集合O∞ｉの内にあるか外にあるかを判定する。つまり、各ゲイン｛Ｋｉ，Ｋｒｉ，Ｋｖｒｉ，Ｋａｒｉ｝を用いた場合に、制御制約を破らないかどうかを判定する。
【０１３４】
３．そして、制御制約を破らないゲイン｛Ｋｉ，Ｋｒｉ，Ｋｖｒｉ，Ｋａｒｉ｝を決定し、モデル制御器１２へ出力する。もし、制御制約を破らないゲイン｛Ｋｉ，Ｋｒｉ，Ｋｖｒｉ，Ｋａｒｉ｝が複数あるなら、その中で制御出力ｙ（ｉ）が目標値ｒ（ｉ）に最も早く追従するゲインを決定する。
【０１３５】
そして、モデルサブ制御器１２１は、モデル制御器決定部１１Ａから出力されたモデルゲインＫｉ、目標値モデルゲインＫｒｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉを用いて、式（１４）によりモデル入力変化量ΔｕＭ（ｉ）を計算し、モデル入力変化量加算器１２２へ出力する。上述しているように本実施の形態では、式（１４）において、モデルオフセットＧｉは０と仮定している。モデル入力変化量加算器１２２は、１ステップ前モデル入力ｕＭ（ｉ−１）とモデル入力変化量ΔｕＭ（ｉ）を、式（１７）を用いて加算し、その和をモデル入力ｕＭ（ｉ）として、モデル入力メモリ１３、数式モデル１４とモデル入力加算器３に出力する。数式モデル１４は、状態変数ｘＭ（ｉ）とモデル入力ｕＭ（ｉ）に対して式（２）を用いることで、モデル出力ｙＭ（ｉ）と次ステップの状態変数ｘＭ（ｉ＋１）を計算し、次ステップの状態変数ｘＭ（ｉ＋１）をモデル制御器決定部１１Ａとモデル制御器１２に、モデル出力ｙＭ（ｉ）をフィードバック制御部２に出力する。また、モデル入力メモリ１３は、モデル入力ｕＭ（ｉ）を１ステップ間記憶しておく。
【０１３６】
上記の動作を繰り返し行うことにより、規範モデル部１Ａは、モデル出力ｙＭ（ｉ）とモデル入力ｕＭ（ｉ）を生成している。
【０１３７】
次に、上述した本実施の形態２によって得られる効果を以下に説明する。
【０１３８】
本実施の形態に係るモータ制御装置２００によれば、上記の実施の形態１と同様に、１ステップ前のモデル入力Ｍ（ｉ−１）を用いてモデル入力ｕＭ（ｉ）を生成するため、モデル入力変化量ΔｕＭ（ｉ）を新たな入力とすることができる。その結果、モデル入力ｕＭ（ｉ）のみならずモデル入力変化量ΔｕＭ（ｉ）がある所定の値より大きくならないモータ制御装置を容易に実現することが可能となる。つまり、トルク飽和やトルク変化量飽和、そしてトルク変化量飽和と密接な関係がある電圧飽和を防止しつつ、高速高精度なモータ制御装置を得ることが可能である。また、モデルゲイン、目標値モデルゲイン、目標値速度モデルゲイン、目標値加速度モデルゲインを切換えても、モデル入力ｕＭ（ｉ）が急激に変化することを防止することが可能である。即ち、モデル入力を所定の値より小さくなるようにモデル制御器の決定を行うことにより、トルク飽和の発生が防止でき、モデル入力の変化量が所定の値より小さくなるようにモデル制御器の決定を行うことにより、電圧飽和の発生が防止でき、かつモデル制御器を切換えたときのショックを低減することが可能となる。
【０１３９】
また、本実施の形態においても、モデル入力ｕＭ（ｉ）の計算は、モデルゲインＫｉ、目標値モデルゲインＫｒｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉの決定と、数式モデル１４の状態変数ｘＭ（ｉ）、目標値ｒ（ｉ）、目標値速度ｖｒ（ｉ）、目標値加速度ａｒ（ｉ）と各ゲインとの乗算だけである。従って、計算時間が短くできるため、サンプリング時間も短くすることが可能である。
【０１４０】
また、目標値記憶部１５により、過去の目標値ｒ（ｉ−１）、ｒ（ｉ−２）・・・を記憶することで、目標値速度ｖｒ（ｉ）、目標値加速度ａｒ（ｉ）もモデル入力変化量ΔｕＭ（ｉ）の計算時に考慮することが可能となり、これらの値を用いない場合よりも制御出力ｙ（ｉ）が目標値ｒ（ｉ）に早く追従する制御系が設計できる。
【０１４１】
なお、本実施の形態においても、上記の実施の形態１と同様に、過去モデル入力として１ステップ前のモデル入力を使用したが、必ずしも１ステップ前のモデル入力に限るものではなく、例えば複数ステップ前のモデル入力を利用して同様の効果をも持たせることも容易であり、１ステップ前のモデル入力以外の過去のモデル入力を過去モデル入力として用いても本実施の形態と同様の効果が得られる。
【０１４２】
実施の形態３．
本発明の実施の形態３に係るモータ制御装置３００について図７から図１０までを参照しながら説明する。なお、本実施の形態においても過去モデル入力ｕＭ’（ｉ）として１ステップ前のモデル入力ｕＭ（ｉ−１）を、目標値メモリ１５１は２ステップ間目標値を記憶保持することが可能な個数（つまりＭ＝２）備えられている場合について説明する。ただし、これは過去モデル入力として１ステップ前のモデル入力を使用することや、目標値メモリ１５１が２ステップ間のみの目標値を記憶保持することが可能な個数備えられていることに限定されるものではない。
【０１４３】
本実施の形態においては、実施の形態２と同様に最大出力許容集合O∞ｉを用いてモデル制御器の決定を行うが、実施の形態２との違いは、実施の形態２がモデルゲインＫｉ、目標値モデルゲインＫｒｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉを切換えているのに対し、本実施の形態では制御器の構造そのものを切換える点にある。
【０１４４】
本実施の形態に係るモータ制御装置３００は、駆動する機械の位置や速度、またはモータの位置や速度を表わす検出器５より検出される制御出力ｙ（ｉ）に対する目標値ｒ（ｉ）、および制御出力ｙ（ｉ）を入力とし、制御出力ｙ（ｉ）が目標値ｒ（ｉ）へ追従するように制御対象４へモータのトルクや電流などの制御入力ｕ（ｉ）を出力する。
【０１４５】
図７に示すように、本実施の形態に係るモータ制御装置３００は、規範モデル部１Ｂと、フィードバック制御部２と、モデル入力加算器３とから構成され、機械負荷と機械負荷を駆動する回転型モータやリニアモータなどのモータから構成される制御対象４と、エンコーダなどの検出器５に接続される。目標値記憶部１５、フィードバック制御部２、モデル入力加算器３、制御対象４及び検出器５は、上記実施の形態１、２と同じ構成のため説明を省略する。
【０１４６】
規範モデル部１Ｂには、目標値ｒ（ｉ）が入力され、制御対象４の理想的な動作を表すモデル出力ｙＭ（ｉ）をフィードバック制御部２へ出力し、検出器５から出力される制御出力ｙ（ｉ）が目標値ｒ（ｉ）に追従するよう、制御対象４を駆動するモデル入力ｕＭ（ｉ）をモデル入力加算器３へ出力する。
【０１４７】
規範モデル部１Ｂは、所定の時間、目標値ｒ（ｉ）を記憶保持し、記憶保持している１つもしくは複数の過去の目標値を入力された現在の目標値ｒ（ｉ）と一緒に目標値ベクトルｒｖｅｃ（ｉ）として出力する目標値記憶部１５と、予め定められた複数の候補からモデル制御器１２を決定するモデル制御器決定部１１Ｂと、モデル出力ｙＭ（ｉ）を目標値ベクトルｒｖｅｃ（ｉ）内に含まれる目標値ｒ（ｉ）に追従させるモデル制御器１２と、モデル入力ｕＭ（ｉ）を記憶するモデル入力メモリ１３と、制御対象４の特性を模擬した数式モデル１４とを有する。ここでモデル制御器１２、モデル入力メモリ１３と、数式モデル１４、目標値記憶部１５の動作は、上記実施の形態１、２と同じであるため、説明を省略する。
【０１４８】
本実施の形態と実施の形態１および２のモータ制御装置１００および２００との差異は、モデル制御器決定部１１Ｂの動作であり、本実施の形態では極配置等で予め設計した複数の候補をモデル制御器決定部１１Ｂにより決定する方法を説明する。
【０１４９】
以降、本実施の形態では説明を簡単にするため、目標値記憶部１５、数式モデル１４、モデル入力変化量加算器１２２とモデル入力メモリ１３合わせて得られる式（１９）で表される離散時間状態方程式を考える。また予め図８から図１０まで表される３つのモデルサブ制御器１２１Ｃ、１２１Ｄ、１２１Ｅが設計されている場合について説明する。ただし、本実施の形態によりモデルサブ制御器としてモデルサブ制御器１２１Ｃ、１２１Ｄ、１２１Ｅの使用に限定されるものではない。
【０１５０】
図８のモデルサブ制御器１２１Ｃは目標値ｒ（ｉ）、１ステップ前の目標値ｒ（ｉ−１）、２ステップ前の目標値ｒ（ｉ−２）、数式モデル１４の状態変数ｘＭ（ｉ）と１ステップ前のモデル入力ｕＭ（ｉ−１）を入力し、モデル入力変化量ΔｕＭ（ｉ）をモデル入力変化量加算器１２２に出力する。
【０１５１】
また、モデルサブ制御器１２１Ｃは、目標値ｒ（ｉ）と状態変数ｘＭ（ｉ）を入力し、これらの差であるモデル偏差ｅＭ（ｉ）を出力するモデル減算器１２１５Ｃと、モデル減算器１２１５Ｃから出力されたモデル偏差ｅＭ（ｉ）とモデル偏差ゲインＫｅｉとの積を計算し、加算器１２１８Ｃへ出力するモデル偏差ゲイン乗算部１２１１Ｃと、目標値ｒ（ｉ）と１ステップ前の目標値ｒ（ｉ−１）を入力し、式（１５）を用いて目標値速度ｖｒ（ｉ）を計算し、目標値速度モデルゲイン乗算器１２１２Ｃへ出力する目標値速度生成器１２１６Ｃと、目標値速度生成器１２１６Ｃから出力される目標値速度ｖｒ（ｉ）を入力し、この値と目標値速度モデルゲインＫｖｒｉを乗算し、その積を加算器１２１８Ｃへ出力する目標値速度モデルゲイン乗算部１２１２Ｃと、を備える。
【０１５２】
さらに、モデルサブ制御器１２１Ｃは、目標値ｒ（ｉ）、１ステップ前の目標値ｒ（ｉ−１）と２ステップ前の目標値ｒ（ｉ−２）を入力し、式（１６）を用いて目標値加速度ａｒ（ｉ）を計算し、目標値加速度モデルゲイン乗算器１２１３Ｃへ出力する目標値加速度生成器１２１７Ｃと、目標値加速度生成器１２１７Ｃから出力される目標値加速度ａｒ（ｉ）を入力し、この値と目標値加速度モデルゲインＫａｒｉを乗算し、その積を加算器１２１８Ｃに出力する目標値加速度モデルゲイン乗算器１２１３Ｃと、１ステップ前のモデル入力ｕＭ（ｉ−１）を入力し、入力された値と１ステップ前のモデル入力ゲインＫｕｉとの積を計算し、計算結果を加算器１２１８Ｃへ出力する１ステップ前モデル入力ゲイン乗算器１２１４Ｃと、を備える。
【０１５３】
そして、モデルサブ制御器１２１Ｃは、モデル偏差ゲイン乗算器１２１１Ｃの出力、目標値速度モデルゲイン乗算器１２１２Ｃの出力、目標値加速度モデルゲイン乗算器１２１３Ｃの出力、１ステップ前モデル入力ゲイン乗算器１２１４Ｃの出力をすべて加算し、その和をモデル入力変化量ΔｕＭ（ｉ）として出力する加算器１２１８Ｃを備えている。
【０１５４】
図９のモデルサブ制御器１２１Ｄは目標値ｒ（ｉ）、１ステップ前の目標値ｒ（ｉ−１）、２ステップ前の目標値ｒ（ｉ−２）、数式モデル１４の状態変数ｘＭ（ｉ）と１ステップ前のモデル入力ｕＭ（ｉ−１）を入力し、モデル入力変化量ΔｕＭ（ｉ）をモデル入力変化量加算器１２２に出力する。
【０１５５】
図９のモデルサブ制御器１２１Ｄと図８のモデルサブ制御器１２１Ｃとの差異は積算値メモリ１２１２Ｄを用いることで、積算値ｘｃ（ｉ）を記憶し、記憶した積算値ｘｃ（ｉ−１）をモデル偏差ｅＭ（ｉ）に加算することで積分動作を追加している点にある。モデルサブ制御器１２１Ｄには、モデルサブ制御器１２１Ｃにも用いられているモデル偏差ゲイン乗算器１２１１Ｃ、目標値速度モデルゲイン乗算器１２１２Ｃ、目標値加速度モデルゲイン乗算器１２１３Ｃ、１ステップ前モデル入力ゲイン乗算器１２１４Ｃ、モデル減算器１２１５Ｃ、目標値速度生成器１２１６Ｃ、目標値加速度生成器１２１７Ｃが用いられており、これらの説明は省略する。
【０１５６】
これらの要素に付け加え、モデルサブ制御器１２１Ｄには、モデル偏差ｅＭ（ｉ）と１ステップ前積算値ｘｃ（ｉ−１）を加算し、その和を積算値ｘｃ（ｉ）としてモデル偏差積分ゲイン乗算器１２１１Ｄと積分値メモリ１２１２Ｄへ出力する積算値加算器１２１３Ｄと、積算値ｘｃ（ｉ）を入力し、１サンプリング時間記憶し、１サンプリング時間後に記憶している値を１ステップ前積算値ｘｃ（ｉ−１）として積算値加算器１２１３Ｄへ出力する積算値メモリ１２１２Ｄと、積算値ｘｃ（ｉ）にモデル偏差積分ゲインＫｘｉｉとモデル制御器１２１Ｄのサンプリング時間Ｔｓを乗算し、それらの積を加算器１２１４Ｄへ出力するモデル偏差積分ゲイン乗算器１２１１Ｄと、モデル偏差ゲイン乗算器１２１１Ｃ、目標値速度モデルゲイン乗算器１２１２Ｃ、目標値加速度モデルゲイン乗算器１２１３Ｃ、１ステップ前モデル入力ゲイン乗算器１２１４Ｃ、モデル偏差積分ゲイン乗算器１２１１Ｄから出力された値をすべて加算し、その和をモデル入力変化量ΔｕＭ（ｉ）としてモデル入力変化量加算器１２２へ出力する加算器１２１４Ｄが追加された構成になっている。
【０１５７】
図１０のモデルサブ制御器１２１Ｅは目標値ｒ（ｉ）、１ステップ前の目標値ｒ（ｉ−１）、２ステップ前の目標値ｒ（ｉ−２）、数式モデル１４の状態変数ｘＭ（ｉ）と１ステップ前のモデル入力ｕＭ（ｉ−１）を入力し、モデル入力変化量ΔｕＭ（ｉ）をモデル入力変化量加算器１２２に出力する。
【０１５８】
図１０のモデルサブ制御器１２１Ｅと、図８のモデルサブ制御器１２１Ｃおよび図９のモデルサブ制御器１２１Ｄとの差異は、状態変数メモリ１２１２Ｅを用いることでモデルサブ制御器１２１Ｅに微分動作を追加している点にある。モデルサブ制御器１２１Ｅは、モデルサブ制御器１２１Ｃにも用いられているモデル偏差ゲイン乗算器１２１１Ｃ、目標値速度モデルゲイン乗算器１２１２Ｃ、目標値加速度モデルゲイン乗算器１２１３Ｃ、１ステップ前モデル入力ゲイン乗算器１２１４Ｃ、モデル減算器１２１５Ｃ、目標値速度生成器１２１６Ｃ、目標値加速度生成器１２１７Ｃを備えている。また、モデル制御器１２１Ｄにも用いられているモデル偏差積分ゲイン乗算器１２１１Ｄ、積算値メモリ１２１２Ｄ、積算値加算器１２１３Ｄもさらに備えている。これらの要素に関する説明は上述したので省略する。
【０１５９】
これらの要素に付け加え、モデルサブ制御器１２１Ｅは、状態変数ｘＭ（ｉ）を入力し、入力された値を１サンプリング時間記憶し、１サンプリング時間後、記憶した値を１ステップ前の状態変数ｘＭ（ｉ−１）として状態変数微分減算器１２１３Ｅに出力する状態変数メモリ１２１２Ｅと、状態変数メモリ１２１２Ｅから出力される１ステップ前の状態変数ｘＭ（ｉ−１）と状態変数ｘＭ（ｉ）を入力し、入力された値を状態変数ｘＭ（ｉ）から減算し、その差を状態変数微分ゲイン乗算器１２１１Ｅに出力する状態変数微分減算器１２１３Ｅと、状態変数微分減算器１２１３Ｅから出力された値を１サンプリング時間Ｔｓで除算、状態変数微分ゲインＫｘＤｉを乗算し、その計算結果を加算器１２１４Ｅへ出力する状態変数微分ゲイン乗算器１２１１Ｅと、モデル偏差ゲイン乗算器１２１１Ｃ、目標値速度モデルゲイン乗算器１２１２Ｃ、目標値加速度モデルゲイン乗算器１２１３Ｃ、１ステップ前モデル入力ゲイン乗算器１２１４Ｃ、モデル偏差積分ゲイン乗算器１２１１Ｄ、状態変数微分ゲイン乗算器１２１１Ｅから出力された値をすべて加算し、その和をモデル入力変化量ΔｕＭ（ｉ）としてモデル入力変化量加算器１２２へ出力する加算器１２１４Ｅをさらに備える。
【０１６０】
本実施の形態では、実施の形態２とは異なり、積算値メモリ１２１２Ｄを用いることにより、モデルサブ制御器１２１Ｄに積分動作を、状態変数メモリ１２１２Ｅを用いることにより、モデルサブ制御器１２１Ｅに微分動作を追加しており、ゲインのみならず制御器の構成も切換えるようになっている。なお、本実施の形態では、表記を簡略にするため、図８乃至図１０に示したモデルサブ制御器１２１Ｃ、１２１Ｄ、１２１Ｅにおいて、モデル偏差ゲインＫｅｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉ、１ステップ前モデル入力ゲインＫｕｉを同じ記号で表しているが、これらの数値はモデルサブ制御器１２１Ｃ、１２１Ｄ、１２１Ｅ毎に異なっていても良い。また、モデルサブ制御器１２１Ｄ、１２１Ｅにおいて、モデル偏差積分ゲインＫｘｉｉも同じ記号で表しているが、これらの数値もモデルサブ制御器１２１Ｄおよび１２１Ｅで異なっていても良い。
【０１６１】
次に、モデル制御器決定部１１Ｂの動作について説明する。モデル制御器決定部１１Ｂは、目標値ベクトルｒｖｅｃ（ｉ）、数式モデル１４の状態変数ｘＭ（ｉ）、１ステップ前モデル入力ｕＭ（ｉ−１）に基づき、モデル入力ｕＭ（ｉ）やモデル入力変化量ΔｕＭ（ｉ）が所定の値を超えないように、予め設計されている複数の制御器候補の中から一つを決定する。予め複数の制御器の候補を定めておくことにより、オンラインでの計算量を減らすことが可能となり、サンプリング時間も早くすることが可能となる。
【０１６２】
本実施の形態では実施の形態２と同様にモデル制御器決定部１１Ｂは最大出力許容集合O∞ｉを用いてモデル制御器１２の決定を行う。最大許容出力集合O∞ｉを計算するためには実施の形態２における式（３０）のように規範モデル部１Ｂの閉ループ系を計算する必要がある。
【０１６３】
まず図８のモデル制御器１２Ｃを用いた場合の閉ループ系を計算する。図８のモデルサブ制御器１２１Ｃを用いた場合のモデル入力変化量ΔｕＭ（ｉ）は以下の式（３２）のように計算される。
【０１６４】
【数３２】
2013077007.tif 000034
【０１６５】
よって式（３２）を式（１９）に代入することにより、モデル制御器１２Ｃを用いた場合の閉ループ系は、以下の式（３３）で表される。
【０１６６】
【数３３】
2013077007.tif 000035
【０１６７】
同様に図９と図１０のモデル制御器１２Ｄ、１２Ｅを用いた場合の閉ループ系を計算する。図９のモデル制御器１２Ｄを用いた場合、モデルサブ制御器１２１Ｄから出力されるモデル入力変化量ΔｕＭ（ｉ）は、以下の式（３４）、（３５）で計算される。
【０１６８】
【数３４】
2013077007.tif 000036
【数３５】
2013077007.tif 000037
【０１６９】
よって式（３４）、（３５）を式（１９）に代入することにより、モデル制御器１２Ｄを用いた場合の閉ループ系は、以下の式（３６）で表される。
【０１７０】
【数３６】
2013077007.tif 000038
【０１７１】
また、図１０のモデル制御器１２Ｅを用いた場合、モデルサブ制御器１２１Ｅから出力されるモデル入力変化量ΔｕＭ（ｉ）は、以下の式（３７）で計算される。
【０１７２】
【数３７】
2013077007.tif 000039
【０１７３】
よって式（３５）、(３７)を式（１９）に代入することにより、モデル制御器１２Ｅを用いた場合の閉ループ系は、以下の式（３８）で表される。
【０１７４】
【数３８】
2013077007.tif 000040
【０１７５】
式（３３）、（３６）、(３８)はそれぞれ式（３０）と同じ形式をしている式であるため、実施の形態２と同様の方法により、最大出力許容集合O∞ｉを計算することが可能である。最大出力許容集合O∞ｉを用いて、モデル制御器決定部１１Ｂが制御制約である式（２０）を破らず、かつ制御出力ｙ（ｉ）が目標値ｒ（ｉ）に最も早く追従する制御器を選択すれば、上記制御制約を破らず、かつ追従が早い制御系が得られる。最大出力許容集合O∞ｉを用いてモデル制御器決定部１１Ｂによって予め定められた複数の候補からモデル制御器１２を決定する方法は実施の形態２で説明した方法と同じであるため、ここでは説明を省略する。
【０１７６】
本実施の形態に係るモータ制御装置３００によれば、上記実施の形態１および２と同様に、１ステップ前のモデル入力ｕＭ（ｉ−１）を用いてモデル入力ｕＭ（ｉ）を生成するため、モデル入力変化量ΔｕＭ（ｉ）を新たな入力にすることができる。その結果、モデル入力ｕＭ（ｉ）のみならず、モデル入力変化量ΔｕＭ（ｉ）がある所定の値より大きくならない制御系を容易に実現することが可能となる。つまり、トルク飽和やトルク変化量飽和、そしてトルク変化量飽和と密接な関係がある電圧飽和を防止しつつ、高速高精度なモータ制御装置を得ることが可能である。また、モデル制御器決定部が異なるモデル制御器を決定し、モデル入力ｕＭ（ｉ）を計算しても、モデル入力ｕＭ（ｉ）が急激に変化することを防止することが可能である。
【０１７７】
また、本実施の形態においても、モデル入力ｕＭ（ｉ）の計算は、モデル制御器の決定と、数式モデル１４の状態変数ｘＭ（ｉ）とモデル制御器の演算だけである。したがって、計算時間が短くできるため、サンプリング時間も短くすることが可能である。
【０１７８】
また、本実施の形態においても、上記の実施の形態１および２と同様に、過去モデル入力として１ステップ前のモデル入力を使用したが、必ずしも１ステップ前に限るものではなく、例えば複数ステップ前のモデル入力を利用して同様の結果を持たせることも容易であり、１ステップ前のモデル入力以外の過去のモデル入力を過去モデル入力として用いても本実施の形態と同様の効果が得られる。
【０１７９】
さらに、本願発明は上記実施の形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、上記実施の形態１乃至３それぞれに示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。更に、上記実施の形態１乃至３にわたる構成要件を適宜組み合わせてもよい。
【産業上の利用可能性】
【０１８０】
以上のように、本発明にかかるモータ制御装置は、モータを含む制御対象の制御に有用であり、特に、産業用機械装置を駆動するモータ制御装置に適している。
【符号の説明】
【０１８１】
１、１Ａ、１Ｂ  規範モデル部
２  フィードバック制御部
３  モデル入力加算器
４  制御対象
５  検出器
１１、１１Ａ、１１Ｂ  モデル制御器決定部
１２、１２Ｃ、１２Ｄ、１２Ｅ  モデル制御器
１３  モデル入力メモリ
１４  数式モデル
１５  目標値記憶部
２１  モデル出力減算器
２２  フィードバック制御器
１００、２００、３００  モータ制御装置
１２１、１２１Ｃ、１２１Ｄ、１２１Ｅ  モデルサブ制御器
１２２  モデル入力変化量加算器
１５１  目標値メモリ
１２１１Ｃ  モデル偏差ゲイン乗算器
１２１２Ｃ  目標値速度モデルゲイン乗算器
１２１３Ｃ  目標値加速度モデルゲイン乗算器
１２１４Ｃ  １ステップ前モデル入力ゲイン乗算器
１２１５Ｃ  モデル減算器
１２１６Ｃ  目標値速度生成器
１２１７Ｃ  目標値加速度生成器
１２１８Ｃ、１２１４Ｄ、１２１４Ｅ  加算器
１２１１Ｄ  モデル偏差積分ゲイン乗算器
１２１２Ｄ  積算値メモリ
１２１３Ｄ  積算値加算器
１２１１Ｅ  状態変数微分ゲイン乗算器
１２１２Ｅ  状態変数メモリ
１２１３Ｅ  状態変数微分減算器
【図１】
2013077007.tif 000042
【図２】
2013077007.tif 000043
【図３】
2013077007.tif 000044
【図４】
2013077007.tif 000045
【図５】
2013077007.tif 000046
【図６】
2013077007.tif 000047
【図７】
2013077007.tif 000048
【図８】
2013077007.tif 000049
【図９】
2013077007.tif 000050
【図１０】
2013077007.tif 000051
【手続補正書】
【提出日】平成26年3月3日(2014.3.3)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
次にフィードバック制御部２について説明する。フィードバック制御部２は規範モデル部１から出力されたモデル出力ｙＭ（ｉ）、および検出器５から出力された制御出力ｙ（ｉ）を入力とし、制御出力ｙ（ｉ）がモデル出力ｙＭ（ｉ）に追従するように、フィードバック制御入力ｕＦＢ（ｉ）を計算し、計算したフィードバック制御入力ｕＦＢ（ｉ）をモデル入力加算器３へと出力する。即ち、フィードバック制御部２は、モデル出力ｙＭ（ｉ）と制御出力ｙ（ｉ）を入力とし、これらの値の差を計算し、計算結果を出力偏差ｅ（ｉ）として出力するモデル出力減算器２１と、モデル出力減算器２１から出力された出力偏差ｅ（ｉ）を入力とし、出力偏差ｅ（ｉ）が０となるように、つまり、制御出力ｙ（ｉ）がモデル出力ｙＭ（ｉ）に追従するようにフィードバック制御入力ｕＦＢ（ｉ）を出力するフィードバック制御器２２とから構成されている。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
モデル入力加算器３は、フィードバック制御部２から出力されたフィードバック制御入力ｕＦＢ（ｉ）と規範モデル部１から出力されたモデル入力ｕＭ（ｉ）を加算し、その和を制御入力ｕ（ｉ）として、制御対象４へ出力する。そして、制御入力ｕ（ｉ）により、制御対象４に付属しているモータを駆動し、制御対象４の制御出力ｙ（ｉ）と目標値ｒ（ｉ）を一致させる。これにより、制御対象４は目標値に追従し、所望の動作をすることになる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
産業用機械装置を駆動するモータ制御装置では、振動を励起させずに、制御出力ｙ（ｉ）を目標値ｒ（ｉ）に素早く追従させるには、大きな制御入力ｕ（ｉ）、もしくはモデル入力ｕＭ（ｉ）、モデル入力変化量ΔｕＭ（ｉ）が必要となり、制御出力ｙ（ｉ）の目標値ｒ（ｉ）に対する追従を遅くすると小さい制御入力ｕ（ｉ）、もしくはモデル入力ｕＭ（ｉ）、モデル入力変化量ΔｕＭ（ｉ）で済む。そのため、モデル制御器決定部１１は通常、制御出力ｕ（ｉ）が目標値ｒ（ｉ）に早く追従するようにゲインマップから｛Ｋａ，Ｋｖｒａ，Ｋａｒａ｝を、オフセットマップからＧａを決定し、モデル制御器１２へ出力する。もし、制御入力ｕ（ｉ）、もしくはモデル入力ｕＭ（ｉ）、モデル入力変化量ΔｕＭ（ｉ）が所定の値を越えそうならば、モデル制御器決定部１１はゲインマップから｛Ｋｂ，Ｋｖｒｂ，Ｋａｒｂ｝を、オフセットマップからＧｂを決定しモデル制御器１２へ出力する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００８６
【補正方法】変更
【補正の内容】
【００８６】
よって、モデル制御器決定部１１は、式（２２）、または式（２３）の最小化問題を予め解いた結果得られるゲインマップとオフセットマップを持ち、各サンプリング時刻において数式モデル１４の状態変数ｘＭ（ｉ）と１ステップ前のモデル入力ｕＭ（ｉ−１）、目標値ベクトルｒｖｅｃ（ｉ）が入力され、状態変数ｘＭ（ｉ）と１ステップ前のモデル入力ｕＭ（ｉ−１）、目標値ベクトルｒｖｅｃ（ｉ）から取得できる目標値ｒ（ｉ）、目標値速度ｖｒ（ｉ）、目標値加速度ａｒ（ｉ）を決定条件Ｐｉに参照することにより、モデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉを決定する。さらに、決定したモデルゲインＫｉ、モデルオフセットＧｉ、目標値速度モデルゲインＫｖｒｉ、目標値加速度モデルゲインＫａｒｉをモデル制御器１２へ出力する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１０２
【補正方法】変更
【補正の内容】
【０１０２】
また、上記の説明では目標値速度ｖｒ（ｉ）、目標値加速度ａｒ（ｉ）を用いてモデル入力ｕＭ（ｉ）を生成していたが、これらの値を用いずモデル入力ｕＭ（ｉ）を生成してもよい。つまりモデルゲインＫｉと、それにより自動的に決定される目標値モデルゲインＫｒｉを、目標値ベクトルｒｖｅｃ（ｉ）、状態変数ｘＭ（ｉ）及び１ステップ前のモデル入力ｕＭ（ｉ−１）に応じて決定し、目標値速度モデルゲインＫｖｒｉと、目標値加速度モデルゲインＫａｒｉは常に０とおいて、式（１４）、式（２４）を計算してもよい。この方式でも、実施の形態１と同様の効果が得られる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１２７
【補正方法】変更
【補正の内容】
【０１２７】
図６は、あらかじめ３組のモデルゲイン、目標値モデルゲイン、目標値速度モデルゲイン、目標値加速度モデルゲイン、｛Ｋ１，Ｋｒ１，Ｋｖｒ１，Ｋａｒ１｝、｛Ｋ２，Ｋｒ２，Ｋｖｒ２，Ｋａｒ２｝、｛Ｋ３，Ｋｒ３，Ｋｖｒ３，Ｋａｒ３｝が設計されており、各組のゲインを用いた場合における最大出力許容集合O∞１、O∞２、O∞３が計算されている状況を表している。図６において、縦軸は数式モデル１４の状態変数ｘＭ（ｉ）、横軸は目標値ｒ（ｉ）を表している。本実施の形態では、制御出力ｙ（ｉ）が目標値ｒ（ｉ）に一番早く追従するゲインを｛Ｋ１，Ｋｒ１，Ｋｖｒ１，Ｋａｒ１｝、一番遅く追従するゲインを｛Ｋ３，Ｋｒ３，Ｋｖｒ３，Ｋａｒ３｝とする。またゲイン｛Ｋ２，Ｋｒ２，Ｋｖｒ２，Ｋａｒ２｝はゲイン｛Ｋ１，Ｋｒ１，Ｋｖｒ１，Ｋａｒ１｝よりは遅く、｛Ｋ３，Ｋｒ３，Ｋｖｒ３，Ｋａｒ３｝よりは早く制御出力ｙ（ｉ）が目標値ｒ（ｉ）に追従するゲインとする。最大出力許容集合O∞ｉは、ゲイン｛Ｋｉ，Ｋｒｉ，Ｋｖｒｉ，Ｋａｒｉ｝に依存するため、それぞれのゲインを用いた場合の最大出力許容集合O∞１、O∞２、O∞３は図６に示すように異なる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１３８
【補正方法】変更
【補正の内容】
【０１３８】
本実施の形態に係るモータ制御装置２００によれば、上記の実施の形態１と同様に、１ステップ前のモデル入力ｕＭ（ｉ−１）を用いてモデル入力ｕＭ（ｉ）を生成するため、モデル入力変化量ΔｕＭ（ｉ）を新たな入力とすることができる。その結果、モデル入力ｕＭ（ｉ）のみならずモデル入力変化量ΔｕＭ（ｉ）がある所定の値より大きくならないモータ制御装置を容易に実現することが可能となる。つまり、トルク飽和やトルク変化率飽和、そしてトルク変化率飽和と密接な関係がある電圧飽和を防止しつつ、高速高精度なモータ制御装置を得ることが可能である。また、モデルゲイン、目標値モデルゲイン、目標値速度モデルゲイン、目標値加速度モデルゲインを切換えても、モデル入力ｕＭ（ｉ）が急激に変化することを防止することが可能である。即ち、モデル入力を所定の値より小さくなるようにモデル制御器の決定を行うことにより、トルク飽和の発生が防止でき、モデル入力の変化量が所定の値より小さくなるようにモデル制御器の決定を行うことにより、電圧飽和の発生が防止でき、かつモデル制御器を切換えたときのショックを低減することが可能となる。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１４２
【補正方法】変更
【補正の内容】
【０１４２】
実施の形態３．
本発明の実施の形態３に係るモータ制御装置３００について図７から図１０までを参照しながら説明する。なお、本実施の形態においても過去モデル入力ｕＭ’（ｉ）として１ステップ前のモデル入力ｕＭ（ｉ−１）を使用し、目標値メモリ１５１は２ステップ間目標値を記憶保持することが可能な個数（つまりＭ＝２）備えられている場合について説明する。ただし、これは過去モデル入力として１ステップ前のモデル入力を使用することや、目標値メモリ１５１が２ステップ間のみの目標値を記憶保持することが可能な個数備えられていることに限定されるものではない。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１５１
【補正方法】変更
【補正の内容】
【０１５１】
また、モデルサブ制御器１２１Ｃは、目標値ｒ（ｉ）と状態変数ｘＭ（ｉ）を入力し、これらの差であるモデル偏差ｅＭ（ｉ）を出力するモデル減算器１２１５Ｃと、モデル減算器１２１５Ｃから出力されたモデル偏差ｅＭ（ｉ）とモデル偏差ゲインＫｅｉとの積を計算し、加算器１２１８Ｃへ出力するモデル偏差ゲイン乗算器１２１１Ｃと、目標値ｒ（ｉ）と１ステップ前の目標値ｒ（ｉ−１）を入力し、式（１５）を用いて目標値速度ｖｒ（ｉ）を計算し、目標値速度モデルゲイン乗算器１２１２Ｃへ出力する目標値速度生成器１２１６Ｃと、目標値速度生成器１２１６Ｃから出力される目標値速度ｖｒ（ｉ）を入力し、この値と目標値速度モデルゲインＫｖｒｉを乗算し、その積を加算器１２１８Ｃへ出力する目標値速度モデルゲイン乗算器１２１２Ｃと、を備える。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１５６
【補正方法】変更
【補正の内容】
【０１５６】
これらの要素に付け加え、モデルサブ制御器１２１Ｄには、モデル偏差ｅＭ（ｉ）と１ステップ前積算値ｘｃ（ｉ−１）を加算し、その和を積算値ｘｃ（ｉ）としてモデル偏差積分ゲイン乗算器１２１１Ｄと積算値メモリ１２１２Ｄへ出力する積算値加算器１２１３Ｄと、積算値ｘｃ（ｉ）を入力し、１サンプリング時間記憶し、１サンプリング時間後に記憶している値を１ステップ前積算値ｘｃ（ｉ−１）として積算値加算器１２１３Ｄへ出力する積算値メモリ１２１２Ｄと、積算値ｘｃ（ｉ）にモデル偏差積分ゲインＫｘｉｉとモデルサブ制御器１２１Ｄのサンプリング時間Ｔｓを乗算し、それらの積を加算器１２１４Ｄへ出力するモデル偏差積分ゲイン乗算器１２１１Ｄと、モデル偏差ゲイン乗算器１２１１Ｃ、目標値速度モデルゲイン乗算器１２１２Ｃ、目標値加速度モデルゲイン乗算器１２１３Ｃ、１ステップ前モデル入力ゲイン乗算器１２１４Ｃ、モデル偏差積分ゲイン乗算器１２１１Ｄから出力された値をすべて加算し、その和をモデル入力変化量ΔｕＭ（ｉ）としてモデル入力変化量加算器１２２へ出力する加算器１２１４Ｄが追加された構成になっている。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】０１５８
【補正方法】変更
【補正の内容】
【０１５８】
図１０のモデルサブ制御器１２１Ｅと、図８のモデルサブ制御器１２１Ｃおよび図９のモデルサブ制御器１２１Ｄとの差異は、状態変数メモリ１２１２Ｅを用いることでモデルサブ制御器１２１Ｅに微分動作を追加している点にある。モデルサブ制御器１２１Ｅは、モデルサブ制御器１２１Ｃにも用いられているモデル偏差ゲイン乗算器１２１１Ｃ、目標値速度モデルゲイン乗算器１２１２Ｃ、目標値加速度モデルゲイン乗算器１２１３Ｃ、１ステップ前モデル入力ゲイン乗算器１２１４Ｃ、モデル減算器１２１５Ｃ、目標値速度生成器１２１６Ｃ、目標値加速度生成器１２１７Ｃを備えている。また、モデルサブ制御器１２１Ｄにも用いられているモデル偏差積分ゲイン乗算器１２１１Ｄ、積算値メモリ１２１２Ｄ、積算値加算器１２１３Ｄもさらに備えている。これらの要素に関する説明は上述したので省略する。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】０１７６
【補正方法】変更
【補正の内容】
【０１７６】
本実施の形態に係るモータ制御装置３００によれば、上記実施の形態１および２と同様に、１ステップ前のモデル入力ｕＭ（ｉ−１）を用いてモデル入力ｕＭ（ｉ）を生成するため、モデル入力変化量ΔｕＭ（ｉ）を新たな入力にすることができる。その結果、モデル入力ｕＭ（ｉ）のみならず、モデル入力変化量ΔｕＭ（ｉ）がある所定の値より大きくならない制御系を容易に実現することが可能となる。つまり、トルク飽和やトルク変化率飽和、そしてトルク変化率飽和と密接な関係がある電圧飽和を防止しつつ、高速高精度なモータ制御装置を得ることが可能である。また、モデル制御器決定部が異なるモデル制御器を決定し、モデル入力ｕＭ（ｉ）を計算しても、モデル入力ｕＭ（ｉ）が急激に変化することを防止することが可能である。
【手続補正１３】
【補正対象書類名】図面
【補正対象項目名】図５
【補正方法】変更
【補正の内容】
【図５】
2013077007.tif 000052
【手続補正１４】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】変更
【補正の内容】
【図６】
2013077007.tif 000053
【国際調査報告】
2013077007.tif 000054
2013077007.tif 000055