以下に、本発明にかかるモータ制御装置の実施の形態を図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
実施の形態1.
本発明の実施の形態1に係るモータ制御装置100について図1から図3までを参照しながら説明する。図1は、この発明の実施の形態1に係るモータ制御装置100の構成を示すブロック図である。なお、以降では、各図中、同一符号は同一又は相当する部分を示す。
図1に示すように、本発明の実施の形態1に係るモータ制御装置100は、規範モデル部1と、フィードバック制御部2と、モデル入力加算器3から構成される。駆動する機械の位置や速度、もしくは機械を駆動するモータの位置や速度を表す検出器5により出力される制御対象4の制御出力y(i)に対する目標値r(i)が外部からモータ制御装置100へ入力され、モータ制御装置100は制御対象4の検出器5からの制御出力y(i)が目標値r(i)に追従するようにモータのトルクや電流などを表す制御入力u(i)を計算する。計算された制御入力u(i)は、モータ制御装置100から制御対象4へと出力される。なお、各記号に用いているiはステップ数を表している。
制御対象4は、機械負荷と機械負荷を駆動する回転型モータやリニアモータなどのモータから構成されている。制御対象4のモータに後述する制御入力u(i)を印加することにより、機械負荷に所望の動作を行わせる。
検出器5は、エンコーダやリニアスケールなどであり、制御対象4を構成する回転型モータやリニアモータの現在位置情報や速度情報、または機械負荷の現在位置情報や速度情報などを検出して、それを制御出力y(i)としてフィードバック制御部2に出力する。
制御対象4および検出器5をまとめてモータを含む制御対象とみなせば、当該制御対象への入力が制御入力u(i)であり、当該制御対象からの出力が制御出力y(i)になっている。
目標値r(i)を入力された規範モデル部1は、制御対象4の理想的な動作波形を表すモデル出力yM(i)をフィードバック制御部2に出力し、制御対象4に理想的な動作をさせるモデル入力uM(i)をモデル入力加算器3に出力する。また、目標値r(i)が入力される規範モデル部1は、所定の時間、目標値r(i)を記憶保持し、記憶保持している1つもしくは複数の過去の目標値を現在入力された目標値r(i)と共に目標値ベクトルrvec(i)として出力する目標値記憶部15を備える。
さらに、規範モデル部1は、モデル入力uM(i)を所定の時間記憶保持し、記憶している値を過去モデル入力uM’(i)として出力するモデル入力メモリ13と、モデル入力uM(i)を入力とし、モデル出力yM(i)と状態変数xM(i)を出力する、制御対象4の特性を模擬した数式モデル14を備える。さらに、規範モデル部1は、目標値記憶部15から出力された目標値ベクトルrvec(i)、数式モデル14から出力された状態変数xM(i)、モデル入力メモリ13から出力された過去モデル入力uM’(i)を入力とし、入力されたこれらの値に基づき、予め定めた複数のモデル制御器の候補から実際に使用するモデル制御器を決定するモデル制御器決定部11を備える。
さらに、規範モデル部1は、目標値ベクトルrvec(i)、状態変数xM(i)、過去モデル入力uM’(i)を入力とし、モデル制御器決定部11で決定されたモデル制御器を使用し、モデル出力yM(i)を目標値r(i)に追従させるモデル入力uM(i)を計算し、数式モデル14とモデル入力加算器3に出力するモデル制御器12を備える。ここで、状態変数xM(i)は数式モデル14の内部状態を表しており、n次(nは1以上)の数値ベクトルとする。モデル出力yM(i)はモータの位置や速度、あるいはこれらの両方など、実際に制御対象4から計測できる物理量に対応した数式モデル14の状態変数xM(i)の一部である。また、その次元をmと記述する。
次にフィードバック制御部2について説明する。フィードバック制御部2は規範モデル部1から出力されたモデル出力yM(i)、および検出器5から出力された制御出力y(i)を入力とし、制御出力y(i)がモデル出力yM(i)に追従するように、フィードバック制御入力uFB(i)を計算し、計算したフィードバック制御入力uFB(i)をモデル入力加算器3へと出力する。即ち、フィードバック制御部2は、モデル出力yM(i)と制御出力y(i)を入力とし、これらの値の差を計算し、計算結果を出力偏差e(i)として出力するモデル出力減算器21と、モデル出力減算器21から出力された出力偏差e(i)を入力とし、出力偏差e(i)が0となるように、つまり、制御出力y(i)がモデル出力yM(i)に追従するようにフィードバック入力uFB(i)を出力するフィードバック制御器22とから構成されている。
モデル入力加算器3は、フィードバック制御部2から出力されたフィードバック入力uFB(i)と規範モデル部1から出力されたモデル入力uM(i)を加算し、その和を制御入力u(i)として、制御対象4へ出力する。そして、制御入力u(i)により、制御対象4に付属しているモータを駆動し、制御対象4の制御出力y(i)と目標値r(i)を一致させる。これにより、制御対象4は目標値に追従し、所望の動作をすることになる。
これより、規範モデル部1の各構成要素の動作について詳細に説明する。まず、目標値記憶部15の動作について詳細に説明する。目標値記憶部15には、目標値r(i)が入力され、所定の時間、目標値r(i)を記憶保持し、記憶保持している1つもしくは複数の過去の目標値を現在入力された目標値r(i)と共に目標値ベクトルrvec(i)としてモデル制御器決定部11およびモデル制御器12に出力する。
また、目標値記憶部15は、1個乃至P個の目標値メモリ151(P>M)を具備しており、これらの目標値メモリ151に目標値記憶部15に入力された目標値r(i)を入力し、目標値メモリ151はそれぞれ1〜Mステップの間、目標値r(i)を記憶保持する。この場合、M×Ts時間の間入力された目標値を全て記憶保持する。ここで、Tsは1サンプリング時間である。つまり、現在の目標値をr(i)とすると、目標値メモリ151は、それぞれr(i)、r(i−1)・・・r(i−M−1)の値を1ステップの間記憶保持する。なおr(i−1)は1ステップ前(現在時刻より1サンプリング時間Ts前の時刻)の目標値、r(i−2)は2ステップ前の目標値を表している。また、1ステップ数はサンプリング時間Tsに相当し、目標値r(i)をMステップ記憶しておくことは、目標値r(i)をM×Ts時間だけ記憶保持しておくことに対応する。そして、目標値メモリ151から出力された過去の目標値r(i−1)・・・r(i−M)と現在の目標値r(i)を同時にまとめて目標値ベクトルrvec(i)を式(1)のように出力する。
以後、説明の簡略化のため、過去モデル入力uM’(i)として1ステップ前のモデル入力uM(i−1)を使用し、目標値メモリ151は2ステップ間目標値を記憶保持することが可能な個数(つまりM=2)備えられている場合について説明する。ただしこれは一例であり、過去モデル入力として1ステップ前のモデル入力のみを使用することや、目標値メモリ151が2ステップ間のみの目標値を記憶保持することが可能な個数備えられていることに限定されるものではない。
数式モデル14は、入力されたモデル入力uM(i)に基づき、次の式(2)の離散時間状態方程式により、次のステップの状態変数xM(i+1)とモデル出力yM(i)を計算する。
ここで、
は、それぞれ、iステップ目での数式モデル14の状態変数xM(i)、モデル入力uM(i)、モデル出力yM(i)を表す数値ベクトルであり、nは状態数、mは出力数である。また、
は、数式モデル14の特性を表す行列である。また、上記式(4)で示したA,B,C,Dは制御対象4の特性を表すように決定する。ただし、数式モデル14は制御対象4の特性をすべて表す必要はなく、制御出力y(i)が目標値r(i)に高速・高精度に追従するのに必要な特性だけを模擬すればよい。
数式モデル14の一例について説明する。図2は、本発明の実施の形態1に係るモータ制御装置100の数式モデル14の一例である2慣性系モデルを示す図である。
制御対象4が複数の共振・反共振を持つ特性であるとき、図2のようなモータがバネなどの弾性体を介して機械負荷を駆動する2慣性系モデルを数式モデル14とし、一番周波数が低い共振・反共振特性を模擬する場合を考える。本実施の形態におけるモータ制御装置100において、数式モデル14に2慣性系モデルのような共振・反共振を持つ振動的なモデルを用いることで、振動抑制効果が高く、高速・高精度なモータ制御装置を得ることが可能となる。ここでは、仮に検出器5を用いることで、制御対象4に付属するモータの位置、速度が計測できるとする。このように数式モデル14を振動的な機械系でモデル化することにより、振動を励起しないモデル入力の生成が可能となる。
図2の2慣性系モデルの連続系の状態方程式は以下の式(5)および式(6)で表現される。
ここで、pMはモータの位置(回転角度)、ωMはモータの回転速度、pLは機械負荷の位置、ωLは機械負荷の速度、JMはモータの慣性モーメント、JLは機械負荷の慣性モーメント、TMはモータトルク、kmはばね定数、cmは粘性係数、yMは連続系のモデル出力、そしてd/dtは時間に関する微分を表す。バネ定数kmは、以下の式(7)および式(8)で計算されるモデル共振周波数ωpおよびモデル反共振周波数ωzが、制御対象4の一番周波数が低い共振周波数・反共振周波数に一致するよう決定すればよい。このように決定することにより、2慣性系モデルが制御対象4の特性を模擬することができる。
実際には、数式モデル14は式(2)に表すように離散時間状態方程式であるため、式(5)および式(6)を離散化して、離散時間状態方程式を求め、数式モデル14とする。式(5)および式(6)のような線形連続時間状態方程式から式(2)のような線形離散時間状態方程式を計算する方式は、いくつか存在するが、その一つの方法として、以下に示す式(9)、式(10)、式(11)、式(12)を用いて計算する方式がある。
ここで、eAcTs、eAc(Ts−τ)はそれぞれAcTs、Ac(Ts−τ)の指数関数を表しており、Tsはサンプリング時間を表している。また、本実施の形態のように数式モデル14として式(5)、式(6)で表される2慣性系モデルを使用する場合は、図1に示した状態変数xM(i)は、以下の式(13)で示すように各ステップにおけるモータの位置pM(i)、モータの速度ωM(i)、機械負荷の位置pL(i)、機械負荷の速度ωL(i)となり、モデル入力uM(i)はモータトルクTM(i)となる。また、本実施の形態ではモータの位置pM(i)とモータの速度ωM(i)が計測できると仮定しているため、モデル出力yM(i)は式(13)のようにモータの位置pM(i)、モータの速度ωM(i)となる。
なお、ここで説明したものは、数式モデル14の一例であり、数式モデル14が式(9)、式(10)、式(11)、式(12)、状態変数xM(i)、モデル入力uM(i)とモデル出力yM(i)が式(13)に限定されるものではない。
次に、規範モデル部1におけるモデル制御器12の動作について詳細に説明する。動作説明に用いるモデル制御器12の構成例を図3に示す。
モデル制御器12は、モデルサブ制御器121およびモデル入力変化量加算器122を備える。モデル制御器決定部11により、目標値ベクトルrvec(i)、1ステップ前のモデル入力uM(i−1)、および数式モデル14からの状態変数xM(i)に基づいて、予め定めた複数の候補からモデル制御器が決定される。モデル制御器決定部11により決定されたモデル制御器はモデルサブ制御器121に入力される。モデルサブ制御器121は、モデル制御器決定部11により決定されたモデル制御器に基づき、目標値ベクトルrvec(i)に存在する目標値r(i)に、状態変数xM(i)に存在するモデル出力yM(i)が追従するように、モデル入力変化量ΔuM(i)を計算する。そして、計算したモデル入力変化量ΔuM(i)をモデル入力変化量加算器122に出力する。モデル入力変化量加算器122は、モデルサブ制御器121から出力されたモデル入力変化量ΔuM(i)と、1ステップ前のモデル入力uM(i−1)を加算し、その和をモデル入力uM(i)として、モデル入力メモリ13、数式モデル14、およびモデル入力加算器3に出力する。
次に、モデルサブ制御器121が状態フィードバックとオフセットの加算によりモデル入力変化量ΔuM(i)を計算する場合を例に取り説明する。モデルサブ制御器121が状態フィードバックとオフセットとの加算によりモデル入力変化量ΔuM(i)を計算する場合、モデルサブ制御器121は、目標値ベクトルrvec(i)、1ステップ前のモデル入力uM(i−1)および数式モデル14の状態変数xM(i)とモデルゲインKiとの乗算、モデルオフセットGiとの加算に基づきモデル入力変化量ΔuM(i)を計算する。この場合、モデルサブ制御器121の演算は以下の式(14)、(15)、(16)で表すことができる。
ここで、vr(i)は目標値速度、ar(i)は目標値加速度であり、それぞれ目標値r(i)の1階差分、2階差分に相当する値である。また、Kriは目標値モデルゲイン、Kvriは目標値速度モデルゲイン、Kariは目標値加速度モデルゲインである。モデルオフセットGiは必要としない場合もあるが、後述で利用するため導入しておく。モデルゲインKiとモデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariは、後述する方式により、それぞれ予め複数の候補が定められており、モデル制御器決定部11により、複数の候補の中から決定され、決定された値が式(14)に使用される。式(14)では、目標値r(i)に関する項を分離して表記しているが、実際には目標値r(i)と追従させる状態変数xM(i)との偏差からモデル入力変化量ΔuM(i)を生成すればよい。また、目標値r(i)と追従させる状態変数xM(i)との偏差からモデル入力変化量ΔuM(i)を生成する場合、目標値モデルゲインKriは、モデルゲインKiから自動的に決定されるものである。
モデル入力変化量加算器122は、モデルサブ制御器121からモデル入力変化量ΔuM(i)と1ステップ前モデル入力uM(i−1)とを以下の式(17)で表されるように加算して、その和をモデル入力uM(i)として、モデル入力メモリ13、数式モデル14、モデル入力加算器3に出力する。すなわち、モデル入力変化量ΔuM(i)を積算することでモデル入力uM(i)を計算する。
モデル制御器12は、上記のような計算をすることで、モデルサブ制御器121で一旦モデル入力変化量ΔuM(i)を計算し、モデル入力変化量加算器122の動作によりモデル入力変化量ΔuM(i)を積算してモデル入力uM(i)を出力している。これにより、モデル制御器決定部11やモデル制御器12はモデル入力uM(i)に加え、モデル入力変化量ΔuM(i)の値も知ることができ、モデル制御器決定部11は、モデル入力uM(i)やモデル入力変化量ΔuM(i)が所定の値を超えないように、複数の候補からモデルサブ制御器121を決定することが可能となる。つまり、モデル制御器決定部11が数式モデル14から出力されるモデル出力yM(i)を目標値r(i)に高速・高精度に追従させるため、もしくはモデル入力変化量ΔuM(i)が所定の値を越えないようにするために、モデルサブ制御121を別の候補に切換えても、モデル入力uM(i)が不連続にならずにモデル入力uM(i)を計算することができる。
前述のモデル入力変化量ΔuM(i)を新たな入力とみなし、数式モデル14にモデル入力変化量加算器122、モデル入力メモリ13を組み合わせた離散時間状態方程式は、以下の式(18)で表すことができる。ここで、Iは単位行列、0は零行列を表しており、その行および列の数は適切に決定する。
また、式(18)の離散時間状態方程式に加え、目標値記憶部15による目標値r(i)を記憶も考慮した離散時間状態方程式は、以下の式(19)で表すことが可能である。
式(19)における〜r(i+1)は1ステップ後の目標値予測値、〜vr(i+1)は1ステップ後の目標値速度予測値、〜ar(i+1)は1ステップ後の目標値加速度予測値である。また、式(19)におけるvr(i)は目標値速度、ar(i)は目標値加速度であり、式(15)、式(16)よりそれぞれ、目標値記憶部15により記憶されている1ステップ前目標値r(i−1)と、2ステップ前目標値r(i−2)を用いて計算可能である。なお、式(19)は後述する予め定める複数のモデル制御器12、もしくはモデルサブ制御器121の候補をモデル制御器決定部11が計算するために使用する。
式(19)の離散時間状態方程式を用いて計算したモデル出力yM(i)が目標値r(i)に追従するように、式(14)で用いるモデルサブ制御器121のモデルゲインKi、モデルオフセットGi、目標値モデルゲインKri、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariを設計することが可能である。
なお、モデル制御器12の具体的な計算方法は図3の構成で示されたものに限定されるものではなく、様々な構成で上記と等価な計算が可能である。すなわち、モデル制御器12は、目標値ベクトルrvec(i)、数式モデル14の状態変数xM(i)とともに、モデル入力メモリ13の出力である1ステップ前のモデル入力uM(i−1)に基づいた計算を行うことで、上記と等価な計算が可能であり、モデル入力変化量ΔuM(i)を考慮した演算が可能である。
次に、モデル制御器決定部11によるモデルゲインKi、モデルオフセットGi、目標値モデルゲインKri、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariの決定方法について詳細に説明する。
モデル制御器決定部11は、目標値ベクトルrvec(i)と、状態変数xM(i)と、1ステップ前のモデル入力uM(i−1)に基づき、モデルゲインKi、モデルオフセットGi、目標値モデルゲインKri、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariを予め定めた複数の候補から決定する。なお、目標値モデルゲインKriは、上記しているように、モデルゲインKiから自動的に決定されるものである。ここでは、目標値ベクトルrvec(i)と、状態変数xM(i)、1ステップ前のモデル入力uM(i−1)との間と、モデルゲインKi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariとの間の対応関係を記述するゲインマップと、目標値ベクトルrvec(i)と、状態変数xM(i)、1ステップ前のモデル入力uM(i−1)との間と、モデルオフセットGiとの対応関係を記述するオフセットマップを用いて、モデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariを決定する方法について説明する。
ゲインマップ、オフセットマップとして次のものが考えられる。まず、候補として制御出力y(i)を目標値r(i)に振動を励起させず、かつ制御出力y(i)が目標値r(i)に素早く追従する応答が得られるモデルゲインKa、モデルオフセットGa、目標値速度モデルゲインKvra、目標値加速度モデルゲインKaraと、制御出力y(i)を目標値r(i)に振動を励起させないが、制御出力y(i)が目標値r(i)に遅く追従する応答を得るモデルゲインKb、モデルオフセットGb、目標値速度モデルゲインKvrb、目標値加速度モデルゲインKarbを用意しておく。そして{Ka,Kvra,Kara,Kb,Kvrb,Karb}はゲインマップに、{Ga,Gb}はオフセットマップに保存されているとする。
産業用機械装置を駆動するモータ制御装置では、振動を励起させずに、制御出力y(i)を目標値r(i)に素早く追従させるには、大きな制御入力u(i)、もしくはモデルuM(i)、モデル入力変化量ΔuM(i)が必要となり、制御出力y(i)の目標値r(i)に対する追従を遅くすると小さい制御入力u(i)、もしくはモデル入力uM(i)、モデル入力変化量ΔuM(i)で済む。そのため、モデル制御器決定部11は通常、制御出力u(i)が目標値r(i)に早く追従するようにゲインマップから{Ka,Kvra,Kara}を、オフセットマップからGaを決定し、モデル制御器12へ出力する。もし、制御入力u(i)、もしくはモデル入力uM(i)、モデル入力変化量ΔuM(i)が所定の値を越えそうならば、モデル制御器決定部11はゲインマップから{Kb,Kvrb,Karb}を、オフセットマップからGbを決定しモデル制御器12へ出力する。
これにより、制御入力u(i)、モデル入力uM(i)、モデル入力変化量ΔuM(i)が所定の値を越えない場合は、制御出力y(i)が目標値r(i)に振動なく素早く追従する応答が、制御入力u(i)、モデル入力uM(i)、モデル入力変化量ΔuM(i)が所定の値を越えそうな場合、制御出力y(i)の目標値r(i)への追従は遅くなるが、振動なく、かつモデル入力uM(i)、モデル入力変化量ΔuM(i)が所定の値を越えない応答が得られる。各種のゲインとオフセットの候補{Ka,Ga,Kvra,Kara},{Kb,Gb,Kvrb,Karb}の決め方は、式(19)の離散時間状態方程式に対し、極配置法、ループ整形などの制御系設計法を用いることで設計可能であり、本実施の形態では特に限定しない。また、ゲインの組数も制御出力y(i)が目標値r(i)に素早く追従するゲインと制御出力y(i)が目標値r(i)に遅く追従するゲインの2組に限定するものではなく、3組以上あっても良い。
上記の参考例による設計では、モデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariの数や、各モデルゲイン{Ka,Kb}、モデルオフセット{Ga,Gb}、目標値速度モデルゲイン{Kvra,Kvrb}、目標値加速度モデルゲイン{Kara,Karb}の設計をある程度試行錯誤的に行う必要があり、またこれらのゲインを決定する方式の詳細は別途設計する必要がある。これに対し、以下のようにモデル予測制御の応用を行うことで、複数のモデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariの値や決定条件を体系的に決定することができる。
モデル予測制御では、オフラインの最適化計算によりゲインとオフセットを切換える制御器が設計されることが知られている(参考資料:F. Borrelli: Constrained Optimal Control of Linear and Hybrid Systems, Springer Verlag, LNCIS 290 (2003))。
上記の参考資料においては、モータ制御装置に限定しない制御方法としてモデル予測制御を利用しつつ区分的アフィンな状態フィードバック制御系を設計することにより、制約を満たしつつ、かつある評価関数を最小化する方式が提案されている。ここで、区分的アフィンな状態フィードバック制御系とは、制御する機械の状態と、ゲインとの乗算と、オフセットとの加算に基づき機械に印加する入力を計算し、かつこれらのゲインとオフセットは機械の状態に応じて切換える制御系である。ただし、上記の参考資料では、本実施の形態におけるフィードバック制御器22に相当する部分に区分的アフィンな状態フィードバック制御系を設計しているため、制御する機械の状態をすべての計測または推定する必要がある。そのため、多数のセンサが必要であるか、オブザーバを構築する必要があり、実用的ではない。
しかし、この手法をモデル制御器12の予め定める複数の候補を生成することに用いることにより、上記問題点は解決可能である。以下、モデル予測制御によるゲインマップとオフセットマップの生成について説明する。
モデル予測制御により制御器を設計する際には、予測モデル、制御制約、評価関数を定める必要がある。次にこれらについて説明する。
まず、制御器を設計する際に用いる予測モデルについて説明する。本実施の形態においては、モデル入力変化量ΔuM(i)を考慮するため、また、目標値記憶部15から出力される過去の目標値r(i−1),r(i−2)も考慮するため、式(19)で表される離散時間状態方程式を制御器を設計する際に用いる予測モデルとする。
次に、制御制約について説明する。本実施の形態では、各ステップにおいてモデル入力uM(i)とモデル入力変化量ΔuM(i)が所定の値を越えないことを制御制約とする。つまり、以下の式(20)で示される制御制約が課されているとする。
ここで、uMmaxはモデル入力uM(i)の絶対値の最大値を、ΔuMmaxはモデル入力変化量ΔuM(i)の絶対値の最大値を表している。
最後に評価関数について説明する。本実施の形態では、評価関数を以下の式(21)とする。
そして、式(21)の評価関数を最小化するモデル入力変化量ΔuM(i)を計算する最小化問題(以下の式(22))を考える。ここで、〜r(i)=r(i)、〜vr(i)=vr(i)、〜ar(i)=ar(i)とする。
ここで、dはノルムの次数であり、d=1、2、∞のどれかの値を取る。また、Nはホライゾンと呼ばれ、どの程度未来を予測するのかを決めるパラメータであり、一つの設計パラメータである。Q、R、PNは重みであり、設計パラメータである。なお、式(22)では状態変数の終端制約集合とモデル入力の終端制約集合を示してないが、これらを使用せずに本実施の形態の効果を得ることは可能である。また、状態変数の終端制約集合とモデル入力の終端制約集合を適切に設定することにより、式(22)の問題を解いて得られる入力により安定性が保証できることが、上記参考資料に示されている。したがって、状態変数の終端制約集合とモデル入力の終端制約集合を使用することにより、本実施の形態のモータ制御装置においてもモデル入力が発散し、動作が不安定になることを防止できる。
上記の評価関数を最小化する問題は、d=1、∞の場合は、適当な変換と補助変数の導入により、ある行列G、W、Eと、あるベクトルc、vを用いて、以下の式(23)のようなマルチパラメトリック線形計画問題に帰着可能であることが知られている。
ここで、xM(i)はiステップ目での状態変数、uM(i−1)は1ステップ前のモデル入力であり、vは入力列[ΔuM(i)、ΔuM(i+1)、・・・、ΔuM(i+N−1)]と補助変数から構成される。
式(23)の最小化問題を解くと、複数のモデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariの候補が求まり、これらのゲインは数式モデル14の状態変数xM(i)、1ステップ前のモデル入力uM(i−1)、目標値速度vr(i)、目標値加速度ar(i)に応じて、複数の候補の中から決定される。また、これと同時に複数の候補の中からモデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariを決定する決定条件Piも求まる。求まったモデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKari、決定条件Piを用いて、以下に示す式(24)、式(25)、式(26)を計算することにより、モデル入力uM(i)が計算できる。
つまり、モデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariの複数の候補と数式モデル14の状態変数xM(i)、1ステップ前のモデル入力uM(i−1)、目標値r(i)、目標値速度vr(i)、目標値加速度ar(i)とモデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariを対応づける決定条件Piが自動的に設計される。なお、決定条件PiはモデルゲインKi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariの複数の候補と決定条件を表すゲインマップと、モデルオフセットGiの複数の候補と決定条件を表すオフセットマップに分けることが可能である。
よって、モデル制御器決定部11は、式(22)、または式(23)の最小化問題を予め解いた結果得られるゲインマップとオフセットマップを持ち、各サンプリング時刻において数式モデル14の状態変数xM(i)と1ステップ前のモデル入力uM(i−1)、目標値ベクトルvrec(i)が入力され、状態変数xM(i)と1ステップ前のモデル入力uM(i−1)、目標値ベクトルrvec(i)から取得できる目標値r(i)、目標値速度vr(i)、目標値加速度ar(i)を決定条件Piに参照することにより、モデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariを決定する。さらに、決定したモデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariをモデル制御器12へ出力する。
そして、上記の通り、モデル制御器12は、式(24)および式(26)にしたがって、数式モデル14の状態変数xM(i)および1ステップ前のモデル入力uM(i−1)とモデルゲインKiとの積と、目標値r(i)と目標値モデルゲインKriとの積と、目標値速度vr(i)と目標値速度モデルゲインKvriとの積と、目標値加速度ar(i)と目標値加速度モデルゲインKariとの積を全て加算した値と、モデルオフセットGiとの和に基づきモデル入力uM(i)を計算する。
式(24)、式(25)、式(26)のモデル入力uM(i)とモデル入力変化量ΔuM(i)は式(22)、または式(23)の最小化問題の結果導出されるため、最小化問題の制御制約(20)を満たすモデル入力uM(i)とモデル入力変化量ΔuM(i)が導出される。つまり、モデル入力uM(i)とモデル入力変化量ΔuM(i)の絶対値が所定の値以上になる場合に、モデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariが切換える。また、モデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariの候補値とこれらの値を切換える条件を記述するゲインマップ、オフセットマップも自動的に計算される。モデル入力uM(i)が所定の値以上にならないことは、制御入力の制御制約が満たされることを意味しており、モデル入力変化量ΔuM(i)が、所定の値以上にならないことは、モデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariを決定条件Piから生成したゲインマップとオフセットマップに基づき変更してもモデル入力uM(i)が急激に変化しないことを意味している。
また、最小化問題である式(22)および式(23)を解いた結果、モデルオフセットGiが導出されるため、モデルゲインKi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariのみを使用する場合よりも、モデルオフセットGiを追加したほうが、式(21)の評価関数を小さくするという意味で高速・高精度な応答を得る制御系が実現できる。
次に、上述した実施の形態1によって得られる効果を以下に説明する。
本実施の形態に係るモータ制御装置100によれば、過去モデル入力uM’(i)を用いて予め定めた複数の候補からモデル制御器12を決定することにより、モデル入力変化量ΔuM(i)、または制御入力の変化を考慮してモデル制御器12を決定することができる。すなわち、過去モデル入力uM’(i)を用いて、モデル入力uM(i)を計算するためにモデル入力変化量ΔuM(i)を新たな入力とすることができる。その結果、モデル制御器決定部11がモデル制御器12の決定を適切に行うことにより、モデル入力uM(i)のみならず、モデル入力変化量ΔuM(i)が所定の値より大きくならず、かつ制御出力y(i)が目標値r(i)に早く、かつ振動せずに追従する制御系を実現することが可能になる。つまり、トルク飽和(電流飽和)やトルク変化率飽和、そしてトルク変化率飽和と密接な関係がある電圧飽和を防止しつつ、高速高精度なモータ制御装置を得ることが可能となる。また、制御性能向上のためにモデル制御器12を切換えても、モデル入力uM(i)が急激に変化することを防止することが可能である。即ち、モデル入力を所定の値より小さくなるようにモデル制御器の決定を行うことにより、トルク飽和の発生が防止でき、モデル入力の変化量が所定の値より小さくなるようにモデル制御器の決定を行うことにより、電圧飽和の発生が防止でき、かつモデル制御器を切換えたときのショックを低減することが可能となる。
さらに過去モデル入力uM’(i)をモデル制御器12へフィードバックすることで、モデル入力変化量ΔuM(i)を新たな入力とする式(18)、式(19)の離散時間状態方程式へ等価変換することができる。これにより、最小化問題(22)においてモデル入力変化量ΔuM(i)を考慮することが可能となる。
また、目標値記憶部15により、過去の目標値r(i−1)、r(i−2)・・・を記憶することで、目標値速度vr(i)、目標値加速度ar(i)もモデル入力変化量ΔuM(i)の計算時に考慮することが可能となり、これらの値を用いない場合よりも制御出力y(i)が目標値r(i)に早く追従する制御系が設計できる。即ち、現在の目標値だけでなく、過去の目標値も利用してモデル制御器を切換え、モデル入力を生成して制御を行うことで、現在の目標値のみを用いてモデル制御器を切換える場合よりも高応答なモータ制御装置を得ることが可能となる。
さらに、モデル制御器決定部11が過去モデル入力uM’(i)、数式モデル14の状態変数xM(i)、目標値ベクトルrvec(i)に応じて、モデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariを決定することにより、モデル入力uM(i)とモデル入力変化量ΔuM(i)が所定の値を越えず、かつ高速高精度な応答が得られるモータ制御装置が実現できる。即ち、モデルゲインに加え、オフセット量も用いることより高応答なモータ制御装置を得ることが可能となる。
ここで、目標値ベクトルrvec(i)を用いて、モデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariの各候補と決定条件を記載するゲインマップとオフセットマップは予めオフラインで求められている。オンラインでの計算はゲインマップ、オフセットマップの参照により目標値ベクトルrvec(i)を用いて、モデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvriの決定する式(25)の計算と、式(24)、式(26)によるモデル入力uM(i)の計算のみである。このように予めゲインマップとオフセットマップを規定しておくことにより、各ステップで式(22)の最小化問題を計算してモデル入力変化量ΔuM(i)の計算を行うオンライン型のモデル予測制御よりも計算時間が短くすることが可能である。よってオンラインでの計算量をかなり減らすことが可能となり、サンプリング時間をより早くでき、制御系の性能も向上させることが可能となる。
なお、実施の形態1では、上記でd=1、∞の場合について説明したが、d=2の場合も式(23)のマルチパラメトリック線形計画問題がマルチパラメトリック二次計画問題に換わるだけであり、最小化問題の最適解として数式モデル14の状態変数xM(i)、1ステップ前のモデル入力uM(i−1)、目標値ベクトルrvec(i)を用いて、モデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariを切換えるための各ゲインの候補値と決定条件を記述しているマップPiが出力される。
また、上記の説明では、モデル制御器決定部11がゲインマップを用いて、目標値モデルゲインKri、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariを切換える場合、もしくは、ゲインマップとオフセットマップを用いて、目標値モデルゲインKri、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariを決定する場合について説明したが、数式モデル14の状態変数xM(i)、目標値ベクトルrvec(i)、過去モデル入力uM’(i)を変数とする関数を用いてモデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariを決定しても良い。
また、上記の説明では、制御制約として式(20)を用いたが、制御制約としてこれに限るものではない。具体的には、数式モデル14の状態変数xM(i)、モデル入力uM(i)、モデル入力変化量ΔuM(i)に関する制御制約が凸制約であれば良い。例えば、数式モデル14の状態変数xM(i)に対しても制御制約を課しても良い。
また、モデルゲインKi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariもしくは、モデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariを決定する際には、数式モデル14の状態変数xM(i)、目標値ベクトルrvec(i)、過去モデル入力uM’(i)をすべて使用する必要はなく、これらの情報の一部分を使用するだけでも良い。
以上述べたように、モデル入力を所定の値より小さくなるようにモデルゲイン或いはモデルゲイン及びモデルオフセットの決定を行うことにより、トルク飽和の発生が防止でき、モデル入力の変化量が所定の値より小さくなるようにモデルゲイン或いはモデルゲイン及びモデルオフセットの決定を行うことにより、電圧飽和の発生が防止でき、かつモデル制御器を切換えたときのショックを低減することが可能となる。
また、上記の説明では、過去モデル入力uM’(i)として1ステップ前のモデル入力uM(i−1)を使用していたが、必ずしも1ステップ前に拘るものではなく、例えば複数ステップ前のモデル入力を利用して同様の効果を持たせることも容易であり、1ステップ前のモデル入力以外の過去のモデル入力を過去モデル入力として用いても本実施の形態と同様の効果が得られる。
また、上記の説明では目標値速度vr(i)、目標値加速度ar(i)を用いてモデル入力uM(i)を生成していたが、これらの値を用いずモデル入力uM(i)を生成してもよい。つまりモデルゲインKiと、それにより自動的に決定される目標値モデルゲインKriを、目標値ベクトルKvri、状態変数xM(i)及び1ステップ前のモデル入力uM(i−1)に応じて決定し、目標値速度モデルゲインKvriと、目標値加速度モデルゲインKariは常に0とおいて、式(14)、式(24)を計算してもよい。この方式でも、実施の形態1と同様の効果が得られる。
また、上記の説明では、モデル制御器12はモデルサブ制御器121を含み、モデル入力変化量ΔuM(i)を計算して、モデル入力変化量ΔuM(i)に1ステップ前のモデル入力uM(i−1)を加算することによりモデル入力uM(i)を計算していたが、モデル入力変化量の制御制約|ΔuM(i)|<=ΔuMmaxを考慮する必要がない場合は、モデル入力変化量ΔuM(i)を計算せずに直接モデル入力uM(i)を計算してもよい。つまり、以下に示す式(27)を用いてモデル入力uM(i)を計算してもよい。この場合、式(22)の最小化問題を以下に示す式(28)の最小化問題に変更することにより、式(27)のモデルゲインKi、モデルオフセットGi、目標値モデルゲインKri、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariの決定条件を記述するゲインマップ、オフセットマップが得られる。即ち、下記の評価関数を最小化するようにゲインマップ及びオフセットマップを生成することにより、適切なゲインマップ及びオフセットマップを自動的に得ることが可能となる。
以上説明したように実施の形態1においては、上記したようにモータ制御装置100を構成することにより、様々に変化する目標値に対して、少ない計算量で、モータのトルクといった制御対象4への制御入力を不連続にすることなく、制御器の特性を自動的に決定することができる。これにより、制御対象4への制御入力の絶対値や変化量を制約しつつ、高速・高精度に制御出力を目標値に追従させることが可能となる。
実施の形態2.
本発明の実施の形態2に係るモータ制御装置200について図4から図6までを参照しながら説明する。なお、本実施の形態においても、説明の簡略化のため、過去モデル入力uM’(i)として1ステップ前のモデル入力uM(i−1)を用いる場合について説明する。また、目標値メモリ151は2ステップ間目標値を記憶保持することが可能な個数(つまりM=2)備えられている場合について説明する。ただし、これは過去モデル入力として1ステップ前のモデル入力を使用することや、目標値メモリ151が2ステップ間のみの目標値を記憶保持することが可能な個数備えられていることに限定されるものではない。
図4に示すように、本実施の形態に係るモータ制御装置200には、駆動する機械の位置や速度を表す制御出力y(i)に対する目標値r(i)と、検出器5より検出されたモータの位置や速度を表す制御対象4の制御出力y(i)が入力される。そして、検出器5からの制御出力y(i)が目標値r(i)へ追従するように、モータ制御装置200は制御対象4へモータのトルクや電流などの制御入力u(i)を出力する。
図4に示すように、本実施の形態に係るモータ制御装置200は、規範モデル部1Aと、フィードバック制御部2とモデル入力加算器3から構成される。モータ制御装置200は、機械負荷と機械負荷を駆動する回転型モータやリニアモータなどのモータから構成される制御対象4と、エンコーダなどの検出器5に接続される。フィードバック制御部2、モデル入力加算器3、制御対象4及び検出器5は、上記した実施の形態1と同じ構成のため説明を省略する。
規範モデル部1Aには目標値r(i)が入力され、制御対象4の理想的な動作波形を示すモデル出力yM(i)をフィードバック制御部2へ出力する。さらに規範モデル部1Aは、検出器5から出力される制御出力y(i)が目標値r(i)に追従するように、制御対象4を駆動するモデル入力uM(i)をモデル入力加算器3へ出力する。
また、規範モデル部1Aは、所定の時間、目標値r(i)を記憶保持し、記憶保持している1つもしくは複数の過去の目標値を入力された現在の目標値r(i)と一緒に目標値ベクトルrvec(i)として出力する目標値記憶部15と、予め定められた複数の候補からモデル制御器を決定するモデル制御器決定部11Aと、モデル出力yM(i)を目標値r(i)に追従されるモデル制御器12と、モデル入力uM(i)を記憶するモデル入力メモリ13と、制御対象4の特性を模擬した数式モデル14とを有する。ここでモデル制御器12、モデル入力メモリ13と数式モデル14、目標値記憶部15の動作は、上記実施の形態1と同じであるため、説明を省略する。
本実施の形態にかかるモータ制御装置200においては、モデル制御器決定部11Aの動作が、実施の形態1にかかるモータ制御装置100のモデル制御器決定部11と異なる。即ち、本実施の形態においては極配置等で予め設計した複数の候補をモデル制御器決定部11Aにより決定する。
本実施の形態において、モデル制御器決定部11Aは目標値ベクトルrvec(i)、1ステップ前モデル入力uM(i−1)、数式モデル14の状態変数xM(i)を入力し、モデル入力uM(i)、モデル入力変化量ΔuM(i)の値が所定の値を超えないように、予め設計されている複数のモデルゲインKi、目標値モデルゲインKri、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariの中から一組を決定し、それらのゲインをモデル制御器12へ出力する。なお本実施の形態では、モデル制御器決定部11AはモデルオフセットGiを常に0に決定すると仮定する。予め複数のモデルゲインKi、目標値モデルゲインKri、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariの候補を定めておくことにより、オンラインでの計算量を低減することが可能となり、サンプリング時間も早くすることが可能となる。なお、本実施の形態においても、目標値r(i)と追従させる状態変数xM(i)との偏差からモデル入力変化量ΔuM(i)を生成する場合、目標値モデルゲインKriは、モデルゲインKiから自動的に決定されるものである。
次に、モデル制御器決定部11Aによる、モデルゲインKi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariの決定法について説明する。モデルゲインKi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariの決定には、最大出力許容集合O∞iを用いる。最大出力許容集合O∞iとは、制御系(閉ループ系)が制御制約を破らない条件を集めた集合であり、その計算方法は『平田、藤田、「外部入力を有する線形離散時間システムに対する拘束条件の解析」、電機学会C、118−3、384/390−、1998』に記載されている。本実施の形態では、制御制約として実施の形態1と同じく、式(20)で記述されるモデル入力uM(i)とモデル入力変化量ΔuM(i)が所定の値を超えない制約について考慮する。まず、この最大出力許容集合O∞iについて説明する。
本実施の形態においても、実施の形態1と同様に、モータ制御装置200は目標値記憶部15を備え、規範モデル部1Aに含まれるモデル制御器12は図3に示すように1ステップ前のモデル入力uM(i−1)をモデルサブ制御器121へフィードバックし、モデル入力変化量加算器122によりモデル入力変化量ΔuM(i)と1ステップ前のモデル入力uM(i−1)を加算して、モデル入力uM(i)を生成している。したがって、目標値記憶部15、モデル入力メモリ13と、数式モデル14と、モデル入力変化量加算器122を合わせて、式(19)で表される離散時間状態方程式を考える。
また、予め設計されているモデルゲインKi、目標値モデルゲインKri、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariの候補の一つをそれぞれK1、Kr1、Kvr1、Kar1で表す。これらのゲインを用いて、モデルサブ制御器121が式(27)を用いて、数式モデル14の状態変数xM(i)と1ステップ前のモデル入力uM(i−1)、目標値r(i)、目標値速度vr(i)、目標値加速度ar(i)から、モデル入力変化量ΔuM(i)を以下の式(29)のように計算することを考える。
ここで、本実施の形態では、モデル制御器決定部11AはモデルオフセットGiを常に0として決定するため、式(29)においてモデルオフセットGiの項は除かれている。
さらに、式(29)を式(19)に代入することで、以下に示す式(30)が得られる。
式(30)は規範モデル部1Aの閉ループ系を表している。iステップ時における数式モデル14の状態変数xM(i)が決定すれば、iステップ時以後の目標値予測値〜r(i+1)、〜r(i+2)・・・と目標値r(i+1)、r(i+2)・・・、目標値速度予測値〜vr(i+1)、〜vr(i+2)・・・と目標値速度vr(i+1)、vr(i+2)・・・、目標値加速度予測値〜ar(i+1)、〜ar(i+2)・・・と目標値加速度ar(i+1)、ar(i+2)・・・がそれぞれ等しい、つまり以下の式(31)が成り立つと仮定して、
式(30)を繰り返し計算することにより、iステップ以降における数式モデル14の状態変数xM(i+l)(l>0)、モデル入力uM(i+l)(l>0)、目標値r(i+l)(l>0)、目標値速度vr(i+l)(l>0)、目標値加速度ar(i+l)(l>0)が計算可能である。各ステップにおける数式モデル14の状態変数xM(i)、モデル入力uM(i)、目標値r(i)、目標値速度vr(i)、目標値加速度ar(i)が計算可能であるため、式(29)を用いることで、各ステップのモデル入力変化量ΔuM(i+l)、l>0も計算可能である。したがって、モデルゲインK1、目標値速度モデルゲインKvr1、目標値加速度モデルゲインKar1とiステップ時における数式モデル14の状態変数xM(i)、1ステップ前モデル入力uM(i−1)、目標値r(i)、目標値速度vr(i)、目標値加速度ar(i)が決まれば、式(20)の制御制約を満たすかどうかを計算することが事前に可能である。
したがって、逆に式(20)の制御制約、モデルゲインK1、目標値速度モデルゲインKvr1、目標値加速度モデルゲインKar1が与えられたときに制約条件を破らない数式モデル14の状態変数xM(i)、モデル入力uM(i)、目標値r(i)、目標値速度vr(i)、目標値加速度ar(i)を計算することも可能である。上述したように、この制御制約を破らない条件を最大出力許容集合O∞iと呼ぶ。
図5は、本発明の実施の形態2に係るモータ制御装置200の最大出力許容集合O∞iの例を示す図である。
図5では、縦軸は数式モデル14の状態変数xM(i)、横軸は目標値r(i)を表している。そして、多角形の内部が最大出力許容集合O∞iを表している。実際には、目標値速度vr(i)や目標値加速度ar(i)も最大出力許容集合O∞iを構成する要素であるため、図5の軸に加えるべきであるが、図5では説明を簡単にするため、省略している。また、点Aは数式モデル14のiステップ時の状態変数xM(i)と目標値r(i)が最大出力許容集合O∞iの内部にある状況を表しており、点Bはiステップ時の状態変数xM(i)、目標値r(i)が最大出力許容集合O∞iの外にある状況を表している。点Aのように、iステップの状態変数xM(i)が最大出力許容集合O∞iの内部にある場合、iステップ時以降も式(20)の制御制約を破らない。しかし、点Bのように、iステップ時の状態変数xM(i)が最大出力許容集合O∞iの外にある場合は、たとえiステップ時において式(20)の制御制約を満たしていても、iステップ時以降のいずれかの時点でかならず式(20)の制御制約を破る。
次に、モデル制御器決定部11Aによる最大出力許容集合O∞iを用いたモデルゲインKi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariの決定法について説明する。ここでは、図6を用いて3組のモデルゲイン、目標値モデルゲイン、目標値速度モデルゲイン、目標値加速度モデルゲインがある場合について説明する。図6は、本発明の実施の形態2に係るモータ制御装置200の動作例を示す図である。もちろん、本実施の形態により、3組のモデルゲイン、目標値モデルゲイン、目標値速度モデルゲイン、目標値加速度モデルゲインなどに限定されるものではない。
図6は、あらかじめ3組のモデルゲイン、目標値モデルゲイン、目標値速度モデルゲイン、目標値加速度モデルゲイン、{K1,Kr1,Kvr1,Kar1}、{K2,Kr2,Kvr2,Kar2}、{K3,Kr3,Kvr3,Kar3}が設計されており、各組のゲインを用いた場合における最大出力許容集合O∞1、O∞2、O∞3が計算されている状況を表している。図6において、縦軸は数式モデル14の状態変数xM(i)、横軸は目標値r(i)を表している。本実施の形態では、制御出力y(i)が目標値r(i)に一番早く追従するゲインを{K1,Kr1,Kvr1,Kar1}、一番遅く追従するゲインを{K3,Kr3,Kvr3,Kar3}とする。またゲイン{K2,Kr2,Kvr2,Kar2}はゲイン{K1,Kr1,Kvr1,Kar1}よりは遅く、{K3,Kr3,Kvr3,Kar3}よりは早く制御出力y(i)が目標値r(i)に追従するゲインとする。最大出力許容集合O∞iは、ゲイン{Ki,Kri,Kvri,Kavri}に依存するため、それぞれのゲインを用いた場合の最大出力許容集合O∞1、O∞2、O∞3は図6に示すように異なる。
例えば、数式モデル14の状態変数xM(i)、目標値r(i)が点Aにあるとする。点Aは最大出力許容集合O∞3の内部にあり、最大出力許容集合O∞1およびO∞2の外にあるため、ゲイン{K3,Kr3,Kvr3,Kar3}を用いた場合は式(20)の制御制約を破らないが、ゲイン{K2,Kr2,Kvr2,Kar2}、{K1,Kr1,Kvr1,Kar1}を用いるといつかは、式(20)の制御制約を破ってしまう。そのため、モデル制御器決定部11Aは式(20)の制約を破らないゲイン{K3,Kr3,Kvr3,Kar3}を決定し、モデル制御器12に選択したこれらのゲインを出力する。
次に、数式モデル14の状態変数xM(i)、目標値r(i)が点Bに遷移したとする。点Bは最大出力許容集合O∞3とO∞2の内部にあり、最大出力許容集合O∞1の外にあるため、ゲイン{K2,Kr2,Kvr2,Kar2}、{K3,Kr3,Kvr3,Kar3}を用いた場合は、式(20)の制御制約を破らず、ゲイン{K1,Kr1,Kvr1,Kar1}を用いた場合は、式(20)の制御制約をいつかは破る。このように、式(20)の制御制約を破らないゲインが複数存在する場合、モデル制御器決定部11Aは、最も早く制御出力y(i)が目標値r(i)に追従するゲインを決定する。つまり、この場合はゲイン{K2,Kr2,Kvr2,Kar2}のほうがゲイン{K3,Kr3,Kvr3,Kar3}よりも早く制御出力y(i)が目標値r(i)に追従するため、モデル制御器決定部11Aはゲイン{K2,Kr2,Kvr2,Kar2}を決定し、モデル制御器12へ出力する。
その後、数式モデル14の状態変数xM(i)、目標値r(i)が点Cに遷移したとする。点Cは最大出力許容集合O∞1、O∞2、O∞3の内部にあるため、ゲイン{K1,Kr1,Kvr1,Kar1}、{K2,Kr2,Kvr2,Kar2}、{K3,Kr3,Kvr3,Kar3}のいずれを用いたとしても、式(20)の制御制約を破らない。従って、モデル制御器決定部11Aは、そのなかで、制御出力y(i)が目標値r(i)に最も早く追従するゲイン{K1,Kr1,Kvr1,Kar1}を決定し、モデル制御器12へ出力する。
上記の動作をまとめると、モデル制御器決定部11Aは、次の三つの動作を行う。
1.あらかじめ設計されたモデルゲインKi、目標値モデルゲインKri、目標値速度モデルゲインKvri、目標値加速度モデルゲインKari(i=1,...,Z)に対して、最大出力許容集合O∞i(i=1,...,Z)を予め計算しておく。ここで、Zは設計されたゲインの数である。
2.目標値ベクトルrvec(i)、数式モデル14の状態変数xM(i)、1ステップ前のモデル入力uM(i−1)を取得し、現在の値が各ゲイン{Ki,Kri,Kvri,Kari}を用いて作成した最大出力許容集合O∞iの内にあるか外にあるかを判定する。つまり、各ゲイン{Ki,Kri,Kvri,Kari}を用いた場合に、制御制約を破らないかどうかを判定する。
3.そして、制御制約を破らないゲイン{Ki,Kri,Kvri,Kari}を決定し、モデル制御器12へ出力する。もし、制御制約を破らないゲイン{Ki,Kri,Kvri,Kari}が複数あるなら、その中で制御出力y(i)が目標値r(i)に最も早く追従するゲインを決定する。
そして、モデルサブ制御器121は、モデル制御器決定部11Aから出力されたモデルゲインKi、目標値モデルゲインKri、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariを用いて、式(14)によりモデル入力変化量ΔuM(i)を計算し、モデル入力変化量加算器122へ出力する。上述しているように本実施の形態では、式(14)において、モデルオフセットGiは0と仮定している。モデル入力変化量加算器122は、1ステップ前モデル入力uM(i−1)とモデル入力変化量ΔuM(i)を、式(17)を用いて加算し、その和をモデル入力uM(i)として、モデル入力メモリ13、数式モデル14とモデル入力加算器3に出力する。数式モデル14は、状態変数xM(i)とモデル入力uM(i)に対して式(2)を用いることで、モデル出力yM(i)と次ステップの状態変数xM(i+1)を計算し、次ステップの状態変数xM(i+1)をモデル制御器決定部11Aとモデル制御器12に、モデル出力yM(i)をフィードバック制御部2に出力する。また、モデル入力メモリ13は、モデル入力uM(i)を1ステップ間記憶しておく。
上記の動作を繰り返し行うことにより、規範モデル部1Aは、モデル出力yM(i)とモデル入力uM(i)を生成している。
次に、上述した本実施の形態2によって得られる効果を以下に説明する。
本実施の形態に係るモータ制御装置200によれば、上記の実施の形態1と同様に、1ステップ前のモデル入力M(i−1)を用いてモデル入力uM(i)を生成するため、モデル入力変化量ΔuM(i)を新たな入力とすることができる。その結果、モデル入力uM(i)のみならずモデル入力変化量ΔuM(i)がある所定の値より大きくならないモータ制御装置を容易に実現することが可能となる。つまり、トルク飽和やトルク変化量飽和、そしてトルク変化量飽和と密接な関係がある電圧飽和を防止しつつ、高速高精度なモータ制御装置を得ることが可能である。また、モデルゲイン、目標値モデルゲイン、目標値速度モデルゲイン、目標値加速度モデルゲインを切換えても、モデル入力uM(i)が急激に変化することを防止することが可能である。即ち、モデル入力を所定の値より小さくなるようにモデル制御器の決定を行うことにより、トルク飽和の発生が防止でき、モデル入力の変化量が所定の値より小さくなるようにモデル制御器の決定を行うことにより、電圧飽和の発生が防止でき、かつモデル制御器を切換えたときのショックを低減することが可能となる。
また、本実施の形態においても、モデル入力uM(i)の計算は、モデルゲインKi、目標値モデルゲインKri、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariの決定と、数式モデル14の状態変数xM(i)、目標値r(i)、目標値速度vr(i)、目標値加速度ar(i)と各ゲインとの乗算だけである。従って、計算時間が短くできるため、サンプリング時間も短くすることが可能である。
また、目標値記憶部15により、過去の目標値r(i−1)、r(i−2)・・・を記憶することで、目標値速度vr(i)、目標値加速度ar(i)もモデル入力変化量ΔuM(i)の計算時に考慮することが可能となり、これらの値を用いない場合よりも制御出力y(i)が目標値r(i)に早く追従する制御系が設計できる。
なお、本実施の形態においても、上記の実施の形態1と同様に、過去モデル入力として1ステップ前のモデル入力を使用したが、必ずしも1ステップ前のモデル入力に限るものではなく、例えば複数ステップ前のモデル入力を利用して同様の効果をも持たせることも容易であり、1ステップ前のモデル入力以外の過去のモデル入力を過去モデル入力として用いても本実施の形態と同様の効果が得られる。
実施の形態3.
本発明の実施の形態3に係るモータ制御装置300について図7から図10までを参照しながら説明する。なお、本実施の形態においても過去モデル入力uM’(i)として1ステップ前のモデル入力uM(i−1)を、目標値メモリ151は2ステップ間目標値を記憶保持することが可能な個数(つまりM=2)備えられている場合について説明する。ただし、これは過去モデル入力として1ステップ前のモデル入力を使用することや、目標値メモリ151が2ステップ間のみの目標値を記憶保持することが可能な個数備えられていることに限定されるものではない。
本実施の形態においては、実施の形態2と同様に最大出力許容集合O∞iを用いてモデル制御器の決定を行うが、実施の形態2との違いは、実施の形態2がモデルゲインKi、目標値モデルゲインKri、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariを切換えているのに対し、本実施の形態では制御器の構造そのものを切換える点にある。
本実施の形態に係るモータ制御装置300は、駆動する機械の位置や速度、またはモータの位置や速度を表わす検出器5より検出される制御出力y(i)に対する目標値r(i)、および制御出力y(i)を入力とし、制御出力y(i)が目標値r(i)へ追従するように制御対象4へモータのトルクや電流などの制御入力u(i)を出力する。
図7に示すように、本実施の形態に係るモータ制御装置300は、規範モデル部1Bと、フィードバック制御部2と、モデル入力加算器3とから構成され、機械負荷と機械負荷を駆動する回転型モータやリニアモータなどのモータから構成される制御対象4と、エンコーダなどの検出器5に接続される。目標値記憶部15、フィードバック制御部2、モデル入力加算器3、制御対象4及び検出器5は、上記実施の形態1、2と同じ構成のため説明を省略する。
規範モデル部1Bには、目標値r(i)が入力され、制御対象4の理想的な動作を表すモデル出力yM(i)をフィードバック制御部2へ出力し、検出器5から出力される制御出力y(i)が目標値r(i)に追従するよう、制御対象4を駆動するモデル入力uM(i)をモデル入力加算器3へ出力する。
規範モデル部1Bは、所定の時間、目標値r(i)を記憶保持し、記憶保持している1つもしくは複数の過去の目標値を入力された現在の目標値r(i)と一緒に目標値ベクトルrvec(i)として出力する目標値記憶部15と、予め定められた複数の候補からモデル制御器12を決定するモデル制御器決定部11Bと、モデル出力yM(i)を目標値ベクトルrvec(i)内に含まれる目標値r(i)に追従させるモデル制御器12と、モデル入力uM(i)を記憶するモデル入力メモリ13と、制御対象4の特性を模擬した数式モデル14とを有する。ここでモデル制御器12、モデル入力メモリ13と、数式モデル14、目標値記憶部15の動作は、上記実施の形態1、2と同じであるため、説明を省略する。
本実施の形態と実施の形態1および2のモータ制御装置100および200との差異は、モデル制御器決定部11Bの動作であり、本実施の形態では極配置等で予め設計した複数の候補をモデル制御器決定部11Bにより決定する方法を説明する。
以降、本実施の形態では説明を簡単にするため、目標値記憶部15、数式モデル14、モデル入力変化量加算器122とモデル入力メモリ13合わせて得られる式(19)で表される離散時間状態方程式を考える。また予め図8から図10まで表される3つのモデルサブ制御器121C、121D、121Eが設計されている場合について説明する。ただし、本実施の形態によりモデルサブ制御器としてモデルサブ制御器121C、121D、121Eの使用に限定されるものではない。
図8のモデルサブ制御器121Cは目標値r(i)、1ステップ前の目標値r(i−1)、2ステップ前の目標値r(i−2)、数式モデル14の状態変数xM(i)と1ステップ前のモデル入力uM(i−1)を入力し、モデル入力変化量ΔuM(i)をモデル入力変化量加算器122に出力する。
また、モデルサブ制御器121Cは、目標値r(i)と状態変数xM(i)を入力し、これらの差であるモデル偏差eM(i)を出力するモデル減算器1215Cと、モデル減算器1215Cから出力されたモデル偏差eM(i)とモデル偏差ゲインKeiとの積を計算し、加算器1218Cへ出力するモデル偏差ゲイン乗算部1211Cと、目標値r(i)と1ステップ前の目標値r(i−1)を入力し、式(15)を用いて目標値速度vr(i)を計算し、目標値速度モデルゲイン乗算器1212Cへ出力する目標値速度生成器1216Cと、目標値速度生成器1216Cから出力される目標値速度vr(i)を入力し、この値と目標値速度モデルゲインKvriを乗算し、その積を加算器1218Cへ出力する目標値速度モデルゲイン乗算部1212Cと、を備える。
さらに、モデルサブ制御器121Cは、目標値r(i)、1ステップ前の目標値r(i−1)と2ステップ前の目標値r(i−2)を入力し、式(16)を用いて目標値加速度ar(i)を計算し、目標値加速度モデルゲイン乗算器1213Cへ出力する目標値加速度生成器1217Cと、目標値加速度生成器1217Cから出力される目標値加速度ar(i)を入力し、この値と目標値加速度モデルゲインKariを乗算し、その積を加算器1218Cに出力する目標値加速度モデルゲイン乗算器1213Cと、1ステップ前のモデル入力uM(i−1)を入力し、入力された値と1ステップ前のモデル入力ゲインKuiとの積を計算し、計算結果を加算器1218Cへ出力する1ステップ前モデル入力ゲイン乗算器1214Cと、を備える。
そして、モデルサブ制御器121Cは、モデル偏差ゲイン乗算器1211Cの出力、目標値速度モデルゲイン乗算器1212Cの出力、目標値加速度モデルゲイン乗算器1213Cの出力、1ステップ前モデル入力ゲイン乗算器1214Cの出力をすべて加算し、その和をモデル入力変化量ΔuM(i)として出力する加算器1218Cを備えている。
図9のモデルサブ制御器121Dは目標値r(i)、1ステップ前の目標値r(i−1)、2ステップ前の目標値r(i−2)、数式モデル14の状態変数xM(i)と1ステップ前のモデル入力uM(i−1)を入力し、モデル入力変化量ΔuM(i)をモデル入力変化量加算器122に出力する。
図9のモデルサブ制御器121Dと図8のモデルサブ制御器121Cとの差異は積算値メモリ1212Dを用いることで、積算値xc(i)を記憶し、記憶した積算値xc(i−1)をモデル偏差eM(i)に加算することで積分動作を追加している点にある。モデルサブ制御器121Dには、モデルサブ制御器121Cにも用いられているモデル偏差ゲイン乗算器1211C、目標値速度モデルゲイン乗算器1212C、目標値加速度モデルゲイン乗算器1213C、1ステップ前モデル入力ゲイン乗算器1214C、モデル減算器1215C、目標値速度生成器1216C、目標値加速度生成器1217Cが用いられており、これらの説明は省略する。
これらの要素に付け加え、モデルサブ制御器121Dには、モデル偏差eM(i)と1ステップ前積算値xc(i−1)を加算し、その和を積算値xc(i)としてモデル偏差積分ゲイン乗算器1211Dと積分値メモリ1212Dへ出力する積算値加算器1213Dと、積算値xc(i)を入力し、1サンプリング時間記憶し、1サンプリング時間後に記憶している値を1ステップ前積算値xc(i−1)として積算値加算器1213Dへ出力する積算値メモリ1212Dと、積算値xc(i)にモデル偏差積分ゲインKxiiとモデル制御器121Dのサンプリング時間Tsを乗算し、それらの積を加算器1214Dへ出力するモデル偏差積分ゲイン乗算器1211Dと、モデル偏差ゲイン乗算器1211C、目標値速度モデルゲイン乗算器1212C、目標値加速度モデルゲイン乗算器1213C、1ステップ前モデル入力ゲイン乗算器1214C、モデル偏差積分ゲイン乗算器1211Dから出力された値をすべて加算し、その和をモデル入力変化量ΔuM(i)としてモデル入力変化量加算器122へ出力する加算器1214Dが追加された構成になっている。
図10のモデルサブ制御器121Eは目標値r(i)、1ステップ前の目標値r(i−1)、2ステップ前の目標値r(i−2)、数式モデル14の状態変数xM(i)と1ステップ前のモデル入力uM(i−1)を入力し、モデル入力変化量ΔuM(i)をモデル入力変化量加算器122に出力する。
図10のモデルサブ制御器121Eと、図8のモデルサブ制御器121Cおよび図9のモデルサブ制御器121Dとの差異は、状態変数メモリ1212Eを用いることでモデルサブ制御器121Eに微分動作を追加している点にある。モデルサブ制御器121Eは、モデルサブ制御器121Cにも用いられているモデル偏差ゲイン乗算器1211C、目標値速度モデルゲイン乗算器1212C、目標値加速度モデルゲイン乗算器1213C、1ステップ前モデル入力ゲイン乗算器1214C、モデル減算器1215C、目標値速度生成器1216C、目標値加速度生成器1217Cを備えている。また、モデル制御器121Dにも用いられているモデル偏差積分ゲイン乗算器1211D、積算値メモリ1212D、積算値加算器1213Dもさらに備えている。これらの要素に関する説明は上述したので省略する。
これらの要素に付け加え、モデルサブ制御器121Eは、状態変数xM(i)を入力し、入力された値を1サンプリング時間記憶し、1サンプリング時間後、記憶した値を1ステップ前の状態変数xM(i−1)として状態変数微分減算器1213Eに出力する状態変数メモリ1212Eと、状態変数メモリ1212Eから出力される1ステップ前の状態変数xM(i−1)と状態変数xM(i)を入力し、入力された値を状態変数xM(i)から減算し、その差を状態変数微分ゲイン乗算器1211Eに出力する状態変数微分減算器1213Eと、状態変数微分減算器1213Eから出力された値を1サンプリング時間Tsで除算、状態変数微分ゲインKxDiを乗算し、その計算結果を加算器1214Eへ出力する状態変数微分ゲイン乗算器1211Eと、モデル偏差ゲイン乗算器1211C、目標値速度モデルゲイン乗算器1212C、目標値加速度モデルゲイン乗算器1213C、1ステップ前モデル入力ゲイン乗算器1214C、モデル偏差積分ゲイン乗算器1211D、状態変数微分ゲイン乗算器1211Eから出力された値をすべて加算し、その和をモデル入力変化量ΔuM(i)としてモデル入力変化量加算器122へ出力する加算器1214Eをさらに備える。
本実施の形態では、実施の形態2とは異なり、積算値メモリ1212Dを用いることにより、モデルサブ制御器121Dに積分動作を、状態変数メモリ1212Eを用いることにより、モデルサブ制御器121Eに微分動作を追加しており、ゲインのみならず制御器の構成も切換えるようになっている。なお、本実施の形態では、表記を簡略にするため、図8乃至図10に示したモデルサブ制御器121C、121D、121Eにおいて、モデル偏差ゲインKei、目標値速度モデルゲインKvri、目標値加速度モデルゲインKari、1ステップ前モデル入力ゲインKuiを同じ記号で表しているが、これらの数値はモデルサブ制御器121C、121D、121E毎に異なっていても良い。また、モデルサブ制御器121D、121Eにおいて、モデル偏差積分ゲインKxiiも同じ記号で表しているが、これらの数値もモデルサブ制御器121Dおよび121Eで異なっていても良い。
次に、モデル制御器決定部11Bの動作について説明する。モデル制御器決定部11Bは、目標値ベクトルrvec(i)、数式モデル14の状態変数xM(i)、1ステップ前モデル入力uM(i−1)に基づき、モデル入力uM(i)やモデル入力変化量ΔuM(i)が所定の値を超えないように、予め設計されている複数の制御器候補の中から一つを決定する。予め複数の制御器の候補を定めておくことにより、オンラインでの計算量を減らすことが可能となり、サンプリング時間も早くすることが可能となる。
本実施の形態では実施の形態2と同様にモデル制御器決定部11Bは最大出力許容集合O∞iを用いてモデル制御器12の決定を行う。最大許容出力集合O∞iを計算するためには実施の形態2における式(30)のように規範モデル部1Bの閉ループ系を計算する必要がある。
まず図8のモデル制御器12Cを用いた場合の閉ループ系を計算する。図8のモデルサブ制御器121Cを用いた場合のモデル入力変化量ΔuM(i)は以下の式(32)のように計算される。
よって式(32)を式(19)に代入することにより、モデル制御器12Cを用いた場合の閉ループ系は、以下の式(33)で表される。
同様に図9と図10のモデル制御器12D、12Eを用いた場合の閉ループ系を計算する。図9のモデル制御器12Dを用いた場合、モデルサブ制御器121Dから出力されるモデル入力変化量ΔuM(i)は、以下の式(34)、(35)で計算される。
よって式(34)、(35)を式(19)に代入することにより、モデル制御器12Dを用いた場合の閉ループ系は、以下の式(36)で表される。
また、図10のモデル制御器12Eを用いた場合、モデルサブ制御器121Eから出力されるモデル入力変化量ΔuM(i)は、以下の式(37)で計算される。
よって式(35)、(37)を式(19)に代入することにより、モデル制御器12Eを用いた場合の閉ループ系は、以下の式(38)で表される。
式(33)、(36)、(38)はそれぞれ式(30)と同じ形式をしている式であるため、実施の形態2と同様の方法により、最大出力許容集合O∞iを計算することが可能である。最大出力許容集合O∞iを用いて、モデル制御器決定部11Bが制御制約である式(20)を破らず、かつ制御出力y(i)が目標値r(i)に最も早く追従する制御器を選択すれば、上記制御制約を破らず、かつ追従が早い制御系が得られる。最大出力許容集合O∞iを用いてモデル制御器決定部11Bによって予め定められた複数の候補からモデル制御器12を決定する方法は実施の形態2で説明した方法と同じであるため、ここでは説明を省略する。
本実施の形態に係るモータ制御装置300によれば、上記実施の形態1および2と同様に、1ステップ前のモデル入力uM(i−1)を用いてモデル入力uM(i)を生成するため、モデル入力変化量ΔuM(i)を新たな入力にすることができる。その結果、モデル入力uM(i)のみならず、モデル入力変化量ΔuM(i)がある所定の値より大きくならない制御系を容易に実現することが可能となる。つまり、トルク飽和やトルク変化量飽和、そしてトルク変化量飽和と密接な関係がある電圧飽和を防止しつつ、高速高精度なモータ制御装置を得ることが可能である。また、モデル制御器決定部が異なるモデル制御器を決定し、モデル入力uM(i)を計算しても、モデル入力uM(i)が急激に変化することを防止することが可能である。
また、本実施の形態においても、モデル入力uM(i)の計算は、モデル制御器の決定と、数式モデル14の状態変数xM(i)とモデル制御器の演算だけである。したがって、計算時間が短くできるため、サンプリング時間も短くすることが可能である。
また、本実施の形態においても、上記の実施の形態1および2と同様に、過去モデル入力として1ステップ前のモデル入力を使用したが、必ずしも1ステップ前に限るものではなく、例えば複数ステップ前のモデル入力を利用して同様の結果を持たせることも容易であり、1ステップ前のモデル入力以外の過去のモデル入力を過去モデル入力として用いても本実施の形態と同様の効果が得られる。
さらに、本願発明は上記実施の形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、上記実施の形態1乃至3それぞれに示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。更に、上記実施の形態1乃至3にわたる構成要件を適宜組み合わせてもよい。
次にフィードバック制御部2について説明する。フィードバック制御部2は規範モデル部1から出力されたモデル出力yM(i)、および検出器5から出力された制御出力y(i)を入力とし、制御出力y(i)がモデル出力yM(i)に追従するように、フィードバック制御入力uFB(i)を計算し、計算したフィードバック制御入力uFB(i)をモデル入力加算器3へと出力する。即ち、フィードバック制御部2は、モデル出力yM(i)と制御出力y(i)を入力とし、これらの値の差を計算し、計算結果を出力偏差e(i)として出力するモデル出力減算器21と、モデル出力減算器21から出力された出力偏差e(i)を入力とし、出力偏差e(i)が0となるように、つまり、制御出力y(i)がモデル出力yM(i)に追従するようにフィードバック制御入力uFB(i)を出力するフィードバック制御器22とから構成されている。
産業用機械装置を駆動するモータ制御装置では、振動を励起させずに、制御出力y(i)を目標値r(i)に素早く追従させるには、大きな制御入力u(i)、もしくはモデル入力uM(i)、モデル入力変化量ΔuM(i)が必要となり、制御出力y(i)の目標値r(i)に対する追従を遅くすると小さい制御入力u(i)、もしくはモデル入力uM(i)、モデル入力変化量ΔuM(i)で済む。そのため、モデル制御器決定部11は通常、制御出力u(i)が目標値r(i)に早く追従するようにゲインマップから{Ka,Kvra,Kara}を、オフセットマップからGaを決定し、モデル制御器12へ出力する。もし、制御入力u(i)、もしくはモデル入力uM(i)、モデル入力変化量ΔuM(i)が所定の値を越えそうならば、モデル制御器決定部11はゲインマップから{Kb,Kvrb,Karb}を、オフセットマップからGbを決定しモデル制御器12へ出力する。
よって、モデル制御器決定部11は、式(22)、または式(23)の最小化問題を予め解いた結果得られるゲインマップとオフセットマップを持ち、各サンプリング時刻において数式モデル14の状態変数xM(i)と1ステップ前のモデル入力uM(i−1)、目標値ベクトルrvec(i)が入力され、状態変数xM(i)と1ステップ前のモデル入力uM(i−1)、目標値ベクトルrvec(i)から取得できる目標値r(i)、目標値速度vr(i)、目標値加速度ar(i)を決定条件Piに参照することにより、モデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariを決定する。さらに、決定したモデルゲインKi、モデルオフセットGi、目標値速度モデルゲインKvri、目標値加速度モデルゲインKariをモデル制御器12へ出力する。
また、上記の説明では目標値速度vr(i)、目標値加速度ar(i)を用いてモデル入力uM(i)を生成していたが、これらの値を用いずモデル入力uM(i)を生成してもよい。つまりモデルゲインKiと、それにより自動的に決定される目標値モデルゲインKriを、目標値ベクトルrvec(i)、状態変数xM(i)及び1ステップ前のモデル入力uM(i−1)に応じて決定し、目標値速度モデルゲインKvriと、目標値加速度モデルゲインKariは常に0とおいて、式(14)、式(24)を計算してもよい。この方式でも、実施の形態1と同様の効果が得られる。
図6は、あらかじめ3組のモデルゲイン、目標値モデルゲイン、目標値速度モデルゲイン、目標値加速度モデルゲイン、{K1,Kr1,Kvr1,Kar1}、{K2,Kr2,Kvr2,Kar2}、{K3,Kr3,Kvr3,Kar3}が設計されており、各組のゲインを用いた場合における最大出力許容集合O∞1、O∞2、O∞3が計算されている状況を表している。図6において、縦軸は数式モデル14の状態変数xM(i)、横軸は目標値r(i)を表している。本実施の形態では、制御出力y(i)が目標値r(i)に一番早く追従するゲインを{K1,Kr1,Kvr1,Kar1}、一番遅く追従するゲインを{K3,Kr3,Kvr3,Kar3}とする。またゲイン{K2,Kr2,Kvr2,Kar2}はゲイン{K1,Kr1,Kvr1,Kar1}よりは遅く、{K3,Kr3,Kvr3,Kar3}よりは早く制御出力y(i)が目標値r(i)に追従するゲインとする。最大出力許容集合O∞iは、ゲイン{Ki,Kri,Kvri,Kari}に依存するため、それぞれのゲインを用いた場合の最大出力許容集合O∞1、O∞2、O∞3は図6に示すように異なる。
また、モデルサブ制御器121Cは、目標値r(i)と状態変数xM(i)を入力し、これらの差であるモデル偏差eM(i)を出力するモデル減算器1215Cと、モデル減算器1215Cから出力されたモデル偏差eM(i)とモデル偏差ゲインKeiとの積を計算し、加算器1218Cへ出力するモデル偏差ゲイン乗算器1211Cと、目標値r(i)と1ステップ前の目標値r(i−1)を入力し、式(15)を用いて目標値速度vr(i)を計算し、目標値速度モデルゲイン乗算器1212Cへ出力する目標値速度生成器1216Cと、目標値速度生成器1216Cから出力される目標値速度vr(i)を入力し、この値と目標値速度モデルゲインKvriを乗算し、その積を加算器1218Cへ出力する目標値速度モデルゲイン乗算器1212Cと、を備える。
これらの要素に付け加え、モデルサブ制御器121Dには、モデル偏差eM(i)と1ステップ前積算値xc(i−1)を加算し、その和を積算値xc(i)としてモデル偏差積分ゲイン乗算器1211Dと積算値メモリ1212Dへ出力する積算値加算器1213Dと、積算値xc(i)を入力し、1サンプリング時間記憶し、1サンプリング時間後に記憶している値を1ステップ前積算値xc(i−1)として積算値加算器1213Dへ出力する積算値メモリ1212Dと、積算値xc(i)にモデル偏差積分ゲインKxiiとモデルサブ制御器121Dのサンプリング時間Tsを乗算し、それらの積を加算器1214Dへ出力するモデル偏差積分ゲイン乗算器1211Dと、モデル偏差ゲイン乗算器1211C、目標値速度モデルゲイン乗算器1212C、目標値加速度モデルゲイン乗算器1213C、1ステップ前モデル入力ゲイン乗算器1214C、モデル偏差積分ゲイン乗算器1211Dから出力された値をすべて加算し、その和をモデル入力変化量ΔuM(i)としてモデル入力変化量加算器122へ出力する加算器1214Dが追加された構成になっている。
図10のモデルサブ制御器121Eと、図8のモデルサブ制御器121Cおよび図9のモデルサブ制御器121Dとの差異は、状態変数メモリ1212Eを用いることでモデルサブ制御器121Eに微分動作を追加している点にある。モデルサブ制御器121Eは、モデルサブ制御器121Cにも用いられているモデル偏差ゲイン乗算器1211C、目標値速度モデルゲイン乗算器1212C、目標値加速度モデルゲイン乗算器1213C、1ステップ前モデル入力ゲイン乗算器1214C、モデル減算器1215C、目標値速度生成器1216C、目標値加速度生成器1217Cを備えている。また、モデルサブ制御器121Dにも用いられているモデル偏差積分ゲイン乗算器1211D、積算値メモリ1212D、積算値加算器1213Dもさらに備えている。これらの要素に関する説明は上述したので省略する。
本実施の形態に係るモータ制御装置300によれば、上記実施の形態1および2と同様に、1ステップ前のモデル入力uM(i−1)を用いてモデル入力uM(i)を生成するため、モデル入力変化量ΔuM(i)を新たな入力にすることができる。その結果、モデル入力uM(i)のみならず、モデル入力変化量ΔuM(i)がある所定の値より大きくならない制御系を容易に実現することが可能となる。つまり、トルク飽和やトルク変化率飽和、そしてトルク変化率飽和と密接な関係がある電圧飽和を防止しつつ、高速高精度なモータ制御装置を得ることが可能である。また、モデル制御器決定部が異なるモデル制御器を決定し、モデル入力uM(i)を計算しても、モデル入力uM(i)が急激に変化することを防止することが可能である。