(57)【特許請求の範囲】
【請求項１】
モータ及び振動可能要素を有する制御対象の動作を制御するモータ制御装置であって、
前記制御対象の動作を動作目標値に追従させるようにモデルトルクを生成するフィードフォワード制御部と、
前記モデルトルクに応じて前記モータに対するトルク指令を発生させる発生部と、
を備え、
前記フィードフォワード制御部は、
前記制御対象の振動関連情報に応じて、前記制御対象の振動特性を表す振動パラメータを生成する生成部と、
前記振動パラメータに応じて、前記制御対象の動特性を模擬した数式モデルを変更し、前記モデルトルクから前記変更された数式モデルにより、前記制御対象の動作状態を含むモデル変数を演算する第１の演算部と、
前記モデル変数が一定の追従特性で前記動作目標値に追従するように、前記モデル変数と前記動作目標値から前記振動パラメータに応じて特性を変化させた演算により前記モデルトルクを演算する第２の演算部と、
を有する
ことを特徴とするモータ制御装置。
【請求項２】
前記第２の演算部は、
前記動作目標値に対する前記モデル変数の追従特性が一定になるように、前記モデルトルクを演算するための仮想入力を生成する第３の演算部と、
前記仮想入力から前記モデル変数までの伝達特性が線形特性になるように前記数式モデルの非線形性を補償して、前記モデルトルクを演算する補償部と、
を有する
ことを特徴とする請求項１に記載のモータ制御装置。
【請求項３】
前記生成部は、前記振動関連情報の複数の値と前記振動パラメータの複数の値とが対応付けられたテーブルを有し、前記テーブルを参照することにより、入力された前記振動関連情報に対応する前記振動パラメータを生成する
ことを特徴とする請求項１又は２に記載のモータ制御装置。
【請求項４】
前記生成部は、前記振動関連情報の値と前記振動パラメータの値との関係を示す関数を有し、前記関数を参照することにより、入力された前記状態情報に対応する前記振動パラメータを生成する
ことを特徴とする請求項１又は２に記載のモータ制御装置。
【請求項５】
ｎを１より大きな整数とするとき、前記振動パラメータのｎ階微分もしくはｎ階差分を行うことにより第２の振動パラメータを演算する第２の生成部をさらに備え、
前記第１の演算部は、前記振動パラメータ及び前記第２の振動パラメータに応じて、前記数式モデルを変更し、
前記第２の演算部は、前記振動パラメータ及び前記第２の振動パラメータに応じて特性を変化させた演算により前記モデルトルクを演算する
ことを特徴とする請求項３又は４に記載のモータ制御装置。
【請求項６】
前記数式モデルは、前記制御対象の動特性が振動的な機械系でモデル化されたものである
ことを特徴とする請求項１から５のいずれか１項に記載のモータ制御装置。
【請求項７】
前記第３の演算部は、前記動作目標値に対する前記モデル変数の応答特性における極配置が一定になるように、前記仮想入力を生成する
ことを特徴とする請求項２に記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ制御装置に関する。
【背景技術】
【０００２】
剛性の低い産業用機械装置において、モータにより産業用機械装置の位置決め駆動が行われると、機械共振などに起因して停止時に残留振動が発生する場合がある。このような残留振動を抑制するために、モータを介して産業用機械装置を動作させるモータ制御装置は、動作目標値に応じて産業用機械装置の振動周波数（共振周波数）の信号成分が小さくなるように制御信号を演算し、産業用機械装置の制振制御を行う。モータ制御装置がこの制振制御を行うためには、産業用機械装置を含む制御系の振動周波数に応じた制振制御の制振パラメータが必要である。動作中に振動周波数が変化しない産業用機械装置に対しては、固定の制振パラメータをモータ制御装置に設定すれば、十分残留振動が抑制可能である。
【０００３】
一方、産業用機械装置の中には、直行ロボット、クレーンなどのように動作中に振動周波数が変化するものが存在する。このような産業用機械装置に対しては、固定の制振パラメータをモータ制御装置に設定しても、残留振動を抑制できない傾向にある。
【０００４】
それに対して、特許文献１には、ｘ軸用のモータによりアームをｘ軸方向に移動させるとともにｚ軸用のモータによりアーム先端の重量物をｚ軸方向に移動させることが可能な機械制御装置において、アーム及び重量物を含む制御対象の変化する振動周波数に応じて、パラメータ（ゲイン定数）を変更することが記載されている。具体的には、制御用データテーブルがスライド部からアーム先端の重量物までの距離についての位置情報を得て振動周波数の補正量に係る出力データを出力し、補正ブロックが制御用データテーブルの出力データから得られたパラメータ（ゲイン定数）を位置指令値の２階微分値に乗算して補正量を求めて加算器へ出力し、加算器がこの補正量を元の位置指令に加算する。これにより、特許文献１によれば、制御対象における移動する一部の構成部材の現在位置に応じた振動周波数等の変化を考慮して補正を行うので、所定位置まで移動させた制御対象を振動させずに停止させることができるとされている。
【０００５】
また、特許文献２には、機械の位置制御装置において、機械を電動機と機械端とからなる２慣性共振系として模擬して電動機と機械端との理論速度偏差を求め、その理論速度偏差から補償トルクを演算し、位置指令に応じたトルク成分から補償トルクを減算して理論トルクを求め、理論トルクを用いて実位置及び実速度がそれぞれ理論位置及び理論速度に追従するようにトルク指令を制御することが記載されている。そして、機械のＸ軸駆動を行う際に、他軸位置であるＹ軸位置に応じて機械端慣性、補償トルク比例係数、補償トルク積分係数を逐次変更し、機械端速度を演算する際に用いる負荷慣性を変更後の機械端慣性で書き換え、補償トルクを演算する際に用いる比例係数及び積分係数を変更後の補償トルク比例係数及び補償トルク積分係数で書き換えるとされている。これにより、特許文献２によれば、Ｙ軸位置の移動により機械系の特性が変化した場合でも、機械系の特性に合った最適な制御を得ることができるので、振動抑制性能が損なわれることなく高精度な位置制御を達成できるとされている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−３８３１１号公報
【特許文献２】特開２００４−７０７９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載された機械制御装置では、変化する機械の振動周波数に対応させながらパラメータ（ゲイン定数）を変化させて位置指令値の２階微分値に乗算することで、動作中に機械固有振動数が変化する制御対象に対しても振動を励起しないようにした指令生成法が実現されている。しかしながら、パラメータを変化する機械固有振動数に正確に対応させながら変化させるだけでは補正の精度が低く、振動抑制制御の精度が低い傾向にある。
【０００８】
特許文献２に記載された位置制御装置では、機械系の変化に合わせて、２慣性共振系モデルにおける負荷慣性とねじり位置制御の比例ゲイン・積分ゲインとを可変にしている。このように変更するゲインがねじり位置制御のゲインのみであるため、機械系の特性の変化に合わせて、位置指令から理論位置・理論速度・理論トルクまでの特性が変化してしまい、振動抑制制御における追従特性の指定が難しい。追従特性を指定できない場合、振動抑制制御の精度を向上することが困難になる。
【０００９】
本発明は、上記に鑑みてなされたものであって、動作中に振動特性が変化する制御対象に対する振動抑制制御の精度を向上できるモータ制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明の１つの側面にかかるモータ制御装置は、モータ及び振動可能要素を有する制御対象の動作を制御するモータ制御装置であって、前記制御対象の動作を動作目標値に追従させるようにモデルトルクを生成する制御部と、前記モデルトルクに応じて前記モータに対するトルク指令を発生させる発生部とを備え、前記制御部は、前記制御対象の振動関連情報に応じて、前記制御対象の振動特性を表す振動パラメータを生成する生成部と、前記振動パラメータに応じて、前記制御対象の動特性を模擬した数式モデルを変更し、前記モデルトルクから前記変更された数式モデルにより、前記制御対象の動作状態を含むモデル変数を演算する第１の演算部と、前記モデル変数が一定の追従特性で前記動作目標値に追従するように、前記モデルパラメータと前記動作目標値から前記振動パラメータに応じて特性を変化させた演算により前記モデルトルクを演算する第２の演算部とを有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、動作中に振動周波数が変化する制御対象に対して、動作目標値に対するモデルパラメータの追従特性が一定の特性になるように指定することができるので、容易に振動抑制制御の精度を向上できる。すなわち、動作中に振動特性が変化する制御対象に対する振動抑制制御の精度を向上できる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１にかかるモータ制御装置の構成を示す図である。
【図２】図２は、実施の形態１における制御対象を示す図である。
【図３】図３は、実施の形態１における制御対象を示す図である。
【図４】図４は、実施の形態１における制御対象を示す図である。
【図５】図５は、実施の形態１におけるモデル制御器の構成及び動作を示す図である。
【図６】図６は、実施の形態１における共振・反共振テーブルの構成を示す図である。
【図７】図７は、実施の形態１の変形例におけるモデル制御器の構成及び動作を示す図である。
【図８】図８は、実施の形態２にかかるモータ制御装置の構成を示す図である。
【図９】図９は、実施の形態２におけるモデル制御器の構成及び動作を示す図である。
【図１０】図１０は、実施の形態３にかかるモータ制御装置の構成及び動作を示す図である。
【図１１】図１１は、実施の形態３におけるモデル制御器の構成及び動作を示す図である。
【図１２】図１２は、実施の形態４におけるモデル制御器の構成及び動作を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本発明にかかるモータ制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１４】
実施の形態１．
実施の形態１にかかるモータ制御装置１００の構成について図１を用いて説明する。図１は、実施の形態１にかかるモータ制御装置１００の構成を示すブロック図である。
【００１５】
モータ制御装置１００は、駆動する制御対象１の位置目標値（動作目標値、位置指令）ｙｒｅｆを外部（例えば、図示しない上位コントローラ）から受けるとともに、検出器２（例えば、エンコーダ）により検出されたモータ１ａの位置（例えば、モータ１ａ内におけるロータの回転位置又は可動子の駆動位置）を表すモータ位置検出値ｐＭを検出器２から受ける。また、モータ制御装置１００は、制御対象１の振動特性に関連した制御対象１の状態を表すパラメータ変更信号（振動関連情報）ＭＬを検出器３から受ける。振動関連情報とは、例えば振動可能要素のバネ定数のように制御対象１を駆動した際に発生する振動の振動周波数に影響を与える値を示す。モータ制御装置１００は、パラメータ変更信号ＭＬに応じた動作を行うとともに、モータ位置検出値ｐＭが位置目標値ｙｒｅｆへ追従するようにトルク指令τＭを発生させて電流制御器４へ出力する。これにより、電流制御器４がトルク指令τＭに応じた電流Ｉ（に依存した電力）を制御対象１内部にあるモータ１ａへ供給するので、モータ１ａは、トルク指令τＭに応じたモータトルクを発生して制御対象１内部にあるバネなどの弾性体もしくは柔軟物（振動可能要素）１ｂ及び機械負荷１ｃを動作させる。
【００１６】
具体的には、モータ制御装置１００は、フィードフォワード制御部１１１、フィードバック制御部１１２、及びトルク加算器１１３を備える。フィードバック制御部１１２及びトルク加算器１１３はトルク指令τＭを発生させる発生部として機能する。
【００１７】
フィードフォワード制御部１１１は、位置目標値ｙｒｅｆを外部から受けるとともに、パラメータ変更信号ＭＬを検出器３から受ける。検出器３は、例えば、アーム長検出器であり、ｚ軸アーム１ｂ１（図３参照）の長さをパラメータ変更信号（振動関連情報）ＭＬとして検出する。あるいは、検出器３は、例えば、ロープ長検出器であり、ロープ１ｂ２（図４参照）の長さをパラメータ変更信号（振動関連情報）ＭＬとして検出する。フィードフォワード制御部１１１は、制御対象１の理想的な動作波形に対応したモデル位置ｐａ、モデル速度ｖａをフィードバック制御部１１２へ出力し、モデルトルクτａをトルク加算器１１３へ出力する。
【００１８】
フィードバック制御部１１２は、フィードフォワード制御部１１１から出力されたモデル位置ｐａ、モデル速度ｖａを受けるとともに、検出器２からフィードバックされた制御対象１（モータ１ａ）のモータ位置検出値ｐＭを受けて、トルク加算器１１３へフィードバックトルクτＢを出力する。
【００１９】
トルク加算器１１３は、フィードバックトルクτＢとモデルトルクτａとの和をトルク指令τＭとして発生させて電流制御器４へ出力する。電流制御器４は、トルク加算器１１３から出力されたトルク指令τＭを受けて、トルク指令τＭと一致するモータトルクを実現する実電流Ｉ（に依存した電力）をモータ１ａへ加える（供給する）。そして電流制御器４から出力された実電流Ｉをモータ１ａに流すことにより、制御対象１内のバネなどの弾性体もしくは柔軟物（振動可能要素）１ｂ及び機械負荷１ｃが駆動される。また、検出器２により、制御対象１内のモータ１ａのモータ位置検出値ｐＭが検出される。
【００２０】
次に、フィードフォワード制御部１１１の内部構成の概略について説明する。フィードフォワード制御部１１１は、制振パラメータ決定部（生成部）１２３、制振パラメータフィルタ（第２の生成部）１２４、数式モデル（第１の演算部）１２１、及びモデル制御器（第２の演算部）１２２を有する。
【００２１】
制振パラメータ決定部１２３は、パラメータ変更信号ＭＬを受けて制振パラメータ信号θを生成する。すなわち、制振パラメータ決定部１２３は、パラメータ変更信号ＭＬに基づき、制御対象１の現在の振動特性（例えば、共振周波数）を表す制振パラメータ信号（振動パラメータ）θを生成して制振パラメータフィルタ１２４、モデル制御器１２２、及び数式モデル１２１へ出力する。
【００２２】
制振パラメータフィルタ１２４は、制振パラメータ信号θからその時間変化量に応じた制振パラメータ変分信号θ’を生成する。すなわち、制振パラメータフィルタ１２４は、制振パラメータ信号θを受けて、制御対象１の振動特性変化を表す、すなわち制振パラメータ信号θの時間変化率に相当する制振パラメータ変分信号（第２の振動パラメータ）θ’を演算して、演算した結果をモデル制御器１２２及び数式モデル１２１へ出力する。
【００２３】
数式モデル１２１は、制御対象１の動特性を模擬した数式モデルを用いてモデル出力を演算する。すなわち、数式モデル１２１は、制振パラメータ信号θを制振パラメータ決定部１２３から受け、制振パラメータ変分信号θ’を制振パラメータフィルタ１２４から受け、モデルトルクτａをモデル制御器１２２から受ける。数式モデル１２１は、制御対象１の動特性を模擬した数式モデルを有しており（例えば、図２（ｂ）参照）、制振パラメータ信号θ及び制振パラメータ変分信号θ’に応じて数式モデルを変更する。数式モデル１２１は、モデルトルクτａから、変更後の数式モデルにより、モデル位置ｐａ、モデル速度ｖａ、内部変数ｘａ、モデル出力（モデル変数）ｙａを演算する。そして、数式モデル１２１は、モデル位置ｐａ及びモデル速度ｖａをモデル制御器１２２及びフィードバック制御部１１２へ供給し、内部変数ｘａ及びモデル出力ｙａをモデル制御器１２２へ供給する。ここで、内部状態ｘａは、例えばｎ次（ｎは１以上）の数値ベクトルである。また、モデル出力ｙａは、制御対象１の動特性を模擬した数式モデルにおいて、動作目標値に追従させたい信号を表す。例えば、動作目標値が位置指令の場合は、モデル出力もモータ回転位置、機械位置など位置情報に関する信号、動作目標値が速度指令の場合は、モデル出力もモータ回転速度、機械速度など速度情報に関する信号を表す。
【００２４】
モデル制御器１２２は、最終的にはモデル出力ｙａとモデル位置ｐａとを位置目標値ｙｒｅｆに追従させる。すなわち、モデル制御器１２２は、位置目標値ｙｒｅｆを外部から受け、制振パラメータ信号θを制振パラメータ決定部１２３から受け、制振パラメータ変分信号θ’を制振パラメータフィルタ１２４から受け、モデル位置ｐａ、モデル速度ｖａ、内部状態ｘａ、モデル出力ｙａを数式モデル１２１から受ける。モデル制御器１２２は、これらの入力の値を用いた状態フィードバックを行う。すなわち、モデル制御器１２２は、数式モデル１２１の各出力と、制振パラメータ信号θ及び制振パラメータ変分信号θ’に応じて変化するゲインとの乗算に基づき、数式モデル１２１のモデル位置ｐａが制御対象１に振動を励起させず、かつ定常的にはモデル出力ｙａ及びモデル位置ｐａが位置目標値ｙｒｅｆに一致するように、モデルトルクτａを計算して出力する。
【００２５】
次にフィードバック制御部１１２の内部構成について説明する。フィードバック制御部１１２は、位置制御器１３２、速度演算器１３３、及び速度制御器１３１を有する。
【００２６】
位置制御器１３２は、フィードフォワード制御部１１１から出力されたモデル位置ｐａを受けるとともに、検出器２からフィードバックされたモータ位置検出値ｐＭを受ける。位置制御器１３２は、モータ位置検出値ｐＭがモデル位置ｐａに追従するように速度指令ｖｕを計算する。位置制御器１３２は、計算した速度指令ｖｕを速度制御器１３１へ出力する。例えば、位置制御器１３２が比例制御の場合、位置比例ゲインをＫｐとして、式（１）の演算を行い、その結果を速度指令ｖｕとして出力する。
【００２７】
ｖｕ＝Ｋｐ（ｐａ−ｐＭ）・・・（１）
【００２８】
速度演算器１３３は、検出器２より検出されたモータ位置検出値ｐＭを受ける。速度演算器１３３は、受けたモータ位置検出値ｐＭに対して差分やフィルタ処理等を行い、モータ速度演算値ｖＭを計算する。速度演算器１３３は、計算したモータ速度演算値ｖＭを速度制御器１３１へ出力する。
【００２９】
速度制御器１３１は、フィードフォワード制御部１１１から出力されたモデル速度ｖａを受け、位置制御器１３２から出力された速度指令ｖｕを受け、速度演算器１３３から出力されたモータ速度演算値ｖＭを受ける。速度制御器１３１は、モータ速度演算値ｖＭをモデル速度ｖａに追従させるように、すなわちモータ速度演算値ｖMがモデル速度ｖａと速度指令ｖｕとの和に一致するように速度ＰＩ制御などの演算によりフィードバックトルクτＢを計算する。速度制御器１３１は、計算したフィードバックトルクτＢをトルク加算器１１３へ出力する。速度制御器１３１における計算処理の例として、式（２）のようにＰＩ制御とフィルタとの組み合わせがある。ここでｓはラプラス演算子、Ｋｖは速度比例ゲイン、Ｋｉは速度積分ゲインである。フィルタＨ（ｓ）は速度制御器１３１の速度比例ゲイン、速度積分ゲインで決まる制御帯域よりも高い周波数において所定の周波数成分を除去するもので、ローパスフィルタやノッチフィルタと呼ばれるものを用いる。
【００３０】
τＢ＝Ｈ（ｓ）×Ｋｖ×（（ｓ＋Ｋｉ）／ｓ）×（ｖｕ＋ｖａ−ｖＭ）
・・・（２）
【００３１】
これに応じて、トルク加算器１１３は、フィードバック制御部１１２で計算されたフィードバックトルクτＢとフィードフォワード制御部１１１で計算されたモデルトルクτaを加算し、トルク指令τＭを計算する。そして、トルク加算器１１３は、電流制御器４にトルク指令τＭを出力する。これにより、制御対象１にあるモータ１ａを駆動し、モータ位置検出値ｐＭを位置目標値ｙｒｅｆに追従させ、制御対象１に所望の動作を行わせることになる。
【００３２】
次に、フィードフォワード制御部１１１の動作について詳細に説明する。本実施の形態では、数式モデル１２１を、図２（ａ）に示すようにモータがバネを介して機械負荷を起動する２慣性系モデルで表すこととして説明する。また、本実施の形態では、バネのバネ係数が動作中に変化するとする。図２（ａ）に示す２慣性系モデルの運動方程式は、式（３）、（４）で表すことができる。
【００３３】
ＪＭ×ｖ（１）ａＭ＝−ｋｍ×（ｐａＭ−ｐａＬ）＋τａＭ・・・（３）
【００３４】
ＪＬ×ｖ（１）ａＬ＝ｋｍ×（ｐａＭ−ｐａＬ）・・・（４）
式（３）、（４）において、ｐａＭはモータ位置（例えば、モータ１ａ内におけるロータの回転位置又は可動子の駆動位置）、ｖａＭはモータ速度（例えば、モータ１ａ内におけるロータの回転速度又は可動子の駆動速度）、ｐａＬは機械位置（機械負荷１ｃの位置）、ｖａＬは機械速度（機械負荷１ｃの移動速度）、ＪＭはモータ１ａの慣性モーメント、ＪＬは機械負荷１ｃの慣性モーメント、τａＭはモータトルク（例えば、モータ１ａ内におけるロータ又は可動子に作用するトルク）、ｋｍはバネ定数を表す。このとき、式（５）、（６）に示す関係が成り立つ。
【００３５】
ｖａＭ＝ｐ（１）ａＭ・・・（５）
【００３６】
ｖａＬ＝ｐ（１）ａＬ・・・（６）
式（５）、（６）において、ｐ（１）ａＬはｐａＬの時間に関する１階微分を表している。以後各記号の右上にある（）内の数値は時間に関する微分の回数を表す。図２（ｂ）には、図２（ａ）に示す２慣性系モデルに対応した数式モデル１２１の内部構成をブロック線図で示している。図２における記号の図１における記号との対応関係を説明すると、モータ位置ｐａＭがモデル位置ｐａ、モータ速度ｖａＭがモデル速度ｖａ、モータトルクτａＭがモデルトルクτａ、機械位置ｐａＬがモデル出力ｙａ、機械速度ｖａＬが内部変数ｘａに相当する。また、本実施の形態では、ｋｍ（バネ定数）は固定値ではなく動作中に変化し、それに応じて式（７）、（８）で表される２慣性系モデルの共振周波数ωｐ、反共振周波数ωｚも動作中に変化する。
【００３７】
ωｐ＝√（ｋｍ×（１／ＪＬ＋１／ＪＭ））・・・（７）
【００３８】
ωｚ＝√（ｋｍ／ＪＬ）・・・（８）
なお、式（７）、（８）を用いて式（３）、（４）を書き直すと、次のようになる。
【００３９】
ｖ（１）ａＭ＝−ＪＬ／（ＪＬ＋ＪＭ）×ωｐ２×（ｐａＭ−ｐａＬ）
＋１／ＪＭ×τａＭ・・・（９）
【００４０】
ｖ（１）ａＬ＝ωｚ２×（ｐａＭ−ｐａＬ）・・・（１０）
【００４１】
つまり、数式モデル１２１は、後述する非線形補償器１４２からモータトルクτａＭを受け、制振パラメータ決定部１２３から制振パラメータ信号θに相当する共振周波数ωｐ及び反共振周波数ωｚを受ける。そして、数式モデル１２１は、式（５）、（６）、（９）、（１０）を用いて、モータ位置ｐａＭ、モータ速度ｖａＭ、機械位置ｐａＬ、機械速度ｖａＬを計算する。数式モデル１２１は、モータ位置ｐａＭ及びモータ速度ｖａをモデル制御器１２２及びフィードバック制御部１１２へ供給し、機械位置ｐａＬ及び機械速度ｖａＬをモデル制御器１２２へ供給する。
【００４２】
このようなバネ定数ｋｍが動作中に変化する２慣性系でモデル化ができる機械装置としては、例えば、図３（ａ）に示すようなｚ軸アーム１ｂ１のアーム長が変化する直交２軸（ｘ−ｙ）ロボットや、図４に示すようなロープ１ｂ２のロープ長が変化するクレーンなどが挙げられる。
【００４３】
図３（ａ）に示す直交２軸（ｘ−ｙ）ロボットでは、ｘ軸モータ１ａ１及びｚ軸モータ１ａ１１によりそれぞれ２つのアームすなわちｘ軸アーム１ｄ１及びｚ軸アーム１ｂ１が駆動される。ｘ軸アーム１ｄ１をｘ軸方向に駆動させると、ｚ軸アーム１ｂ１全体がｘ軸方向へ移動する。また、ｚ軸アーム１ｂ１を駆動させるとｚ軸方向に負荷１ｃ１が移動する構成になっている。このような直交２軸ロボットでは、ｘ軸方向に負荷１ｃ１を高速駆動させると振動が発生する。その振動特性を表したのが図３（ｂ）、（ｃ）のボード線図である。図３（ｂ）、（ｃ）のボード線図を見ると、ｚ軸アーム１ｂ１が短い場合と長い場合の両方において、ゲイン特性が山になっている共振特性と、ゲイン特性が谷になっている反共振特性とがあることがわかる。このような共振・反共振周波数の存在する機械の動特性は式（３）、（４）で表される２慣性系モデルを用いて表されることは既に良く知られている。なお、図３（ｂ）、（ｃ）のボード線図では、ｚ軸アーム１ｂ１の長さが短い場合のｘ軸方向のゲイン特性が破線で示され、ｚ軸アーム１ｂ１の長さが長い場合のｘ軸方向のゲイン特性が実線で示されている。
【００４４】
また、直交２軸ロボットの場合、図３（ｂ）、（ｃ）のボード線図に示されるように、負荷１ｃ１をｘ軸方向に駆動させたときの振動周波数が、ｚ軸方向のアーム長に依存する。図３（ｂ）、（ｃ）に示すような特性の場合、ｚ軸アーム１ｂ１のアーム長が長い場合は、ｘ軸方向に駆動させたときの負荷１ｃ１による振動周波数が低く、ｚ軸アーム１ｂ１のアーム長が短い場合は、ｘ軸方向に駆動させたときの負荷１ｃ１による振動周波数が高い。つまり、ｘ軸アーム１ｄ１及びｚ軸アーム１ｂ１の両方を同時に駆動させた場合、負荷１ｃ１による振動特性（共振、反共振特性）は時間により変化する。このように共振、反共振特性が時間により変化する場合、直交２軸ロボットの特性を、式（３）、（４）で表されるバネ定数ｋｍが時間変化する２慣性系モデルを用いて表すことが可能である。
【００４５】
図４で表されるロープ長が変化するクレーンの場合は、モータ１ａ２によりスライダ１ｄ２を駆動させることでロープ１ｂ２を介して負荷１ｃ２が水平方向に移動し、ロープ１ｂ２の巻き上げ、巻き下げにより負荷１ｃ２が垂直方向に移動する。この場合、スライダ１ｄ２による水平方向の駆動が上記の直交２軸ロボットにおけるｘ軸アーム１ｄ１の駆動に対応し、ロープ１ｂ２の巻き上げ及び巻き下げがｚ軸アーム１ｂ１の駆動に対応する。すなわち、ロープ１ｂ２の長さにより、スライダ１ｄ２を駆動させたときの負荷１ｃ２の振動周波数が異なる。このようにロープ１ｂ２の長さにより振動周波数が異なるが、この場合も、式（３）、（４）で表されるバネ定数ｋｍが時間変化する２慣性系モデルで表すことが可能である。
【００４６】
なお、ここで説明したものは数式モデル１２１の一例であり、数式モデル１２１の運動方程式又は動特性が式（３）、（４）または（５）、（６）、（９）、（１０）に限定されるものではない。
【００４７】
次に、本実施の形態におけるモデル制御器１２２について図５を用いて詳細に説明する。図５は、モデル制御器１２２の構成及び動作を表すブロック線図である。
【００４８】
モデル制御器１２２は、状態フィードバック制御器（第３の演算部）１４１及び非線形補償器（補償部）１４２を有する。状態フィードバック制御器１４１は、位置目標値ｙｒｅｆ、モータ位置ｐａM、モータ速度ｖａM、機械位置ｐａＬ、機械速度ｖａLを受けて、仮想入力ｕａMを生成して非線形補償器１４２へ供給する。非線形補償器１４２は、仮想入力ｕａM、モータ位置ｐａM、モータ速度ｖａM、機械位置ｐａＬ、機械速度ｖａLを受けて、モータトルクτaＭを演算して出力する。次にこれらの動作について詳細に説明する。
【００４９】
非線形補償器１４２は、仮想入力ｕａＭ、モータ位置ｐａM、モータ速度ｖａM、機械位置ｐａＬ、及び機械速度ｖａLを受けて、数式モデル１２１に存在する非線形特性を補償し、仮想入力ｕａＭから機械位置ｐａＬまでの伝達特性が線形特性となるように下記の式（１１）を用いて、モータトルクτａＭを演算する。ここで図示していないが、共振周波数ωｐ、反共振周波数ωｚは、制振パラメータ決定部１２３から入力させる制振パラメータθに相当し、共振周波数ωｐ、反共振周波数ωｚの１階微分ω(１)ｐ、ω(１)ｚと２階微分ω(2)ｐ、ω(2)ｚとは、制振パラメータフィルタ１２４から入力される制振パラメータ変分信号θ’に相当する。
【００５０】
τａＭ＝ＪＭ／ωｚ２×ｕａＭ
＋ＪＭ×｛ωｐ２−２×ω（２）ｐ／ωｐ−２×（ω（１）ｐ／ωｐ）２｝
×（ｐａＭ−ｐａＬ）
−４×ＪＭ×（ω（１）ｐ／ωｐ）×（ｖａＭ−ｖａＬ）・・・（１１）
【００５１】
状態フィードバック制御器１４１は、位置目標値ｙｒｅｆ及び機械位置ｐａＬを受けて、フィードフォワード制御部１１１が所定の特性となるように仮想入力ｕａＭを計算し、非線形補償器１４２へ出力する。本実施の形態においては、状態フィードバック制御器１４１が、下記の式（１２）に示される状態フィードバック制御則を用いて仮想入力ｕａＭを計算する。そして、状態フィードバック制御器１４１は、計算した仮想入力ｕａＭを非線形補償器１４２へ供給する。式（１２）において、Ｋ１、Ｋ２、Ｋ３、Ｋ４は状態フィードバックゲインであり、状態フィードバック制御器１４１は、これらの値を調整することによりフィードフォワード制御部１１１の追従特性を決定する。
【００５２】
ｕａＭ＝Ｋ１×Ｋ２×Ｋ３×Ｋ４×（ｙｒｅｆ−ｐａＬ）
−Ｋ２×Ｋ３×Ｋ４×ｐ（１）ａＬ
−Ｋ３×Ｋ４×ｐ（２）ａＬ
−Ｋ４×ｐ（３）ａＬ・・・（１２）
【００５３】
上記の説明に基づき、フィードフォワード制御部１１１全体の動作を説明すると以下の通りになる。
【００５４】
状態フィードバック制御器１４１は、位置目標値ｙｒｅｆと、機械位置ｐａＬの現在値（初期値）とを受けて、仮想入力ｕａＭを式（１２）により計算する。そして計算した仮想入力ｕａＭを非線形補償器１４２へ供給する。
【００５５】
非線形補償器１４２は、機械位置ｐａＬ、機械速度ｖａＬ、モータ位置ｐａＭ、モータ速度ｖａＭ、及び状態フィードバック制御器１４１で計算された仮想入力ｕａＭを受けて、式（１１）を用いてモータトルクτａＭを計算する。このとき、共振周波数ωｐ、反共振周波数ωｚとそれらの微分ω（１）ｐ、ω（１）ｚ、ω（２）ｐ、ω（２）ｚは、それぞれ制振パラメータ決定部１２３、制振パラメータフィルタ１２４から出力された値を用いる。これらの値が可変パラメータとなる。そして、非線形補償器１４２は、計算したモータトルクτａＭを数式モデル１２１へ出力する。
【００５６】
数式モデル１２１は、非線形補償器１４２で計算されたモータトルクτａＭと制振パラメータ決定部１２３から出力された共振周波数ωｐ、反共振周波数ωｚを受けて、２慣性系モデルの運動方程式（５）、（６）、（９）、（１０）に基づき、機械位置ｐａＬ、機械速度ｖａＬ、モータ位置ｐａＭ、モータ速度ｖａＭを計算する（例えば、図２（ｂ）参照）。このとき、共振周波数ωｐ、反共振周波数ωｚが可変パラメータとなる。数式モデル１２１は、モータ位置ｐａＭ、モータ速度ｖａＭをフィードバック制御部１１２へ供給し、機械位置ｐａＬを状態フィードバック制御器１４１へ供給し、機械位置ｐａＬ、機械速度ｖａＬ、モータ位置ｐａＭ、モータ速度ｖａＭを非線形補償器１４２へ供給する（図１、図５参照）。
【００５７】
次に、フィードフォワード制御部１１１の特性について説明する。
【００５８】
式（５）、（６）、（９）、（１０）で表される２慣性系モデルにおいて、式（１０）の２階微分に基づきモータトルクτａＭから機械位置ｐａＬまでの特性を計算すると
ｐ（４）ａＬ＝ωｚ２／ＪＭ
×［ＪＭ×｛−ωｐ２＋２×ω（２）ｐ／ωｐ＋２×（ω（１）ｐ／ωｐ）２｝
×（ｐａＭ−ｐａＬ）
＋４×ＪＭ×（ω（２）ｐ／ωｐ）×（ｖａＭ−ｖａＬ）
＋τａＭ］・・・（１３）
となる。つまり、共振周波数ωｐ、反共振周波数ωｚが変化する２慣性系モデルでは、その動特性が共振周波数ωｐ、反共振周波数ωｚだけでなく、それらの時間的な変化率ω（１）ｐ、ω（１）ｚ、ω（２）ｐ、ω（２）ｚにも影響される。
【００５９】
非線形補償器１４２は、この共振周波数ωｐ、反共振周波数ωｚの時間的な変化率ω（１）ｐ、ω（１）ｚ、ω（２）ｐ、ω（２）ｚに起因する非線形特性を補償する。実際に式（１１）を式（１３）に代入すると
【００６０】
ｐ（４）ａＬ＝ｕａＭ・・・（１４）
となり、機械位置ｐａＬがモデル出力ｙａに対応していることから仮想入力ｕａＭからモデル出力ｙａまでの伝達特性が４重積分の線形特性となる。つまり、非線形補償器１４２の入力である仮想入力ｕａＭからモデル出力ｙａである機械位置ｐａＬまでの伝達特性には、共振周波数ωｐ、反共振周波数ωｚの時間的な変化率ω（１）ｐ、ω（１）ｚ、ω（２）ｐ、ω（２）ｚが全く影響を与えない。
【００６１】
状態フィードバック制御器１４１は、仮想入力ｕａＭから機械位置ｐａＬまでの伝達特性が式（１４）で表されると考えて設計する。式（１４）を式（１２）に代入すると、位置目標値ｙｒｅｆから機械位置ｐａＬまでの特性は、ラプラス演算子ｓを用いて表すと
ｐａＬ（ｓ）＝（Ｋ１×Ｋ２×Ｋ３×Ｋ４）
×１／（ｓ４＋Ｋ４×ｓ３＋Ｋ３×Ｋ４×ｓ２
＋Ｋ２×Ｋ３×Ｋ４×ｓ＋Ｋ１×Ｋ２×Ｋ３×Ｋ４）
×ｙｒｅｆ（ｓ）・・・（１５）
となる。ここでｐａＬ（ｓ）、ｙｒｅｆ（ｓ）はそれぞれ機械位置ｐａＬ、位置目標値ｙｒｅｆのラプラス変換されたものを表す。つまり、状態フィードバックゲインＫ１、Ｋ２、Ｋ３、Ｋ４を決定することにより、位置目標値ｙｒｅｆに対する機械位置ｐａＬの追従特性（極配置）を決定することが可能となる。
【００６２】
機械位置ｐａＬの特性が決定されると、モデル位置ｐａに相当するモータ位置ｐａＭの特性は式（１０）より式（１６）と計算され、モデル速度ｖａに相当するモータ速度ｖａＭの特性は式（１６）の両辺を微分することにより式（１７）と表される。
【００６３】
ｐａＭ＝１／ωｚ２×ｐ（２）ａＬ＋ｐａＬ・・・（１６）
【００６４】
ｖａＭ＝１／ωｚ２×ｐ（３）ａＬ＋ｐ（１）ａＬ
−２×ω（１）ｚ／ωｚ３×ｐ（２）ａＬ・・・（１７）
【００６５】
式（１６）、式（１７）の特性で表されるモータ位置ｐａＭ、モータ速度ｖａＭがそれぞれモデル位置ｐａ、モデル速度ｖａとしてフィードバック制御部１１２に出力され、フィードバック制御部１１２は、モータ位置検出値ｐＭをモデル位置ｐａ、モータ速度演算値ｖＭがモデル速度ｖａに追従するようにフィードバックトルクτＢを演算して出力する。モータ位置検出値ｐＭがモデル位置ｐａに追従するとともにモータ速度演算値ｖＭがモデル速度ｖａに追従するようにフィードバックトルクτＢを演算することにより、制御対象１内にあり実際のモータに接続されている機械の位置の挙動を式（１５）で表される特性に一致させることができる。よって、状態フィードバックゲインＫ１、Ｋ２、Ｋ３、Ｋ４を振動が発生しないような（一定の）極配置になるように決定することで、制御対象１内の機械に振動を励起することなく、かつ所定の（一定の）追従特性で動作させることが可能となる。
【００６６】
次に、制振パラメータ決定部１２３及び制振パラメータフィルタ１２４の動作について詳細に説明する。
【００６７】
制振パラメータ決定部１２３は、パラメータ変更信号ＭＬを受け取り、制振パラメータフィルタ１２４へ制振パラメータθを出力する。パラメータ変更信号ＭＬは、制御対象１の現在の状態を表す信号である。パラメータ変更信号ＭＬは、例えば、図３に示すアーム長が変化する直交２軸（ｘ−ｙ）ロボットにおけるｚ軸モータ１ａ１１の回転位置に応じた（負荷の位置を決める）ｚ軸アーム１ｂ１の長さ（アーム長）を含む。あるいは、パラメータ変更信号ＭＬは、例えば、図４に示すクレーンにおけるロープ１ｂ２の長さ（ロープ長）を含む。制振パラメータ信号θは、制御対象１の振動特性を表す信号であり、例えば、共振周波数や反共振周波数、負荷慣性モーメント、バネ定数、ロープ長などである。
【００６８】
例えば、制振パラメータ決定部１２３は、図６に示すように、パラメータ変更信号ＭＬの複数の値と制振パラメータ信号θの複数の値とが対応付けられたテーブルを有していてもよい。すなわち、例えば、パラメータ変更信号ＭＬの複数の値と制振パラメータ信号θの複数の値との対応を予め実験的に求めておき、制振パラメータ決定部１２３に予め記憶しておいても良い。この場合、制振パラメータ決定部１２３は、図６に示すテーブルを逐次参照することにより、検出器３（図１参照）から受けたパラメータ変更信号ＭＬの値に対応する制振パラメータ信号θすなわち共振周波数ωｐや反共振周波数ωｚを決定して生成する。
【００６９】
あるいは、例えば、制振パラメータ決定部１２３は、図６に示すテーブルに代えて、パラメータ変更信号ＭＬの値と制振パラメータ信号θの値との関係を示す関数を有していても良い。すなわち、例えば、パラメータ変更信号ＭＬの値と制振パラメータ信号θの値との関係を示す関数を予め実験的に求めておき、制振パラメータ決定部１２３に予め記憶しておいても良い。この場合、制振パラメータ決定部１２３は、記憶された関数を逐次参照することにより、検出器３（図１参照）から受けたパラメータ変更信号ＭＬに対応する制振パラメータ信号θすなわち共振周波数ωｐや反共振周波数ωｚを決定して生成する。
【００７０】
制振パラメータフィルタ１２４は、制振パラメータ信号θを制振パラメータ決定部１２３から受け取り、制振パラメータ変分信号θ’を演算する。ここで、制振パラメータ変分信号θ’は制振パラメータ信号θの時間変化量に相当するように演算され、制御対象１の特性変化を表す。例えば、制振パラメータ変分信号θ’は、微分、差分、微分＋平均化フィルタ、ハイパスフィルタなどを用いて演算させる。また、制振パラメータ信号θがテーブルにより記憶されている場合は、予め制振パラメータ信号θの変分量を計算しておき、計算した変分量とパラメータ変更信号ＭＬの時間微分との積から制振パラメータ変分信号θ’を求めてもよい。
【００７１】
以上のように、実施の形態１では、数式モデル１２１が、制振パラメータθに応じて数式モデル１２１の特性を変更し、モデルトルクτａから変更後の数式モデルによりモデル位置ｐａやモデル出力ｙａを演算する。そして、モデル制御器１２２は、モデル位置ｐａやモデル出力ｙａが一定の追従特性で位置目標値ｙｒｅｆに追従するように、制振パラメータθに応じて特性を変化させた演算によりモデルトルクτａを演算する。これにより、動作中に振動周波数が変化する制御対象に対して、動作目標値（位置指令）に対するモデル位置（モータ位置）やモデル出力（機械負荷の位置）の追従特性が一定の特性になるように指定することができるので、容易に振動抑制制御の精度を向上できる。すなわち、動作中に振動特性が変化する制御対象に対する振動抑制制御の精度を向上できる。
【００７２】
また、実施の形態１では、フィードフォワード制御部１１１のモデル制御器１２２内を状態フィードバック制御器１４１と非線形補償器１４２とに分ける。非線形補償器１４２では、制御対象１の動特性を模擬している数式モデル１２１の可変パラメータに起因する非線形特性を補償するように、非線形補償器１４２の制御パラメータωｐ、ωｚ、ω（１）ｐ、ω（１）ｚ、ω（２）ｐ、ω（２）ｚを制振パラメータ決定部１２３、制振パラメータフィルタ１２４に応じて変更している。これにより、数式モデル１２１の可変パラメータに依存せず、非線形補償器１４２と数式モデル１２１との直列接続における伝達特性が線形特性となるように非線形補償器１４２を動作させることができ、数式モデル１２１と非線形補償器１４２とのパラメータが可変になっても、状態フィードバック制御器１４１で設定した式（１５）で表される所定の（一定の）追従特性を保つことが可能になっている。よって、動作中に振動周波数が変化する制御対象に対して、簡単に（一定の）追従特性が設定でき、かつ高い振動抑制効果が得られる。
【００７３】
また、実施の形態１では、制振パラメータ決定部１２３が、パラメータ変更信号ＭＬの複数の値と制振パラメータ信号θの複数の値とが対応付けられたテーブルを有し、そのテーブルを参照することにより、検出器３から受けたパラメータ変更信号ＭＬに対応する制振パラメータ信号θを生成する。これにより、各サンプリング時における計算負荷を低減することが可能となる。
【００７４】
あるいは、実施の形態１では、制振パラメータ決定部１２３が、パラメータ変更信号ＭＬの値と制振パラメータ信号θの値との関係を示す関数を有し、その関数を参照することにより、検出器３から受けたパラメータ変更信号ＭＬに対応する制振パラメータ信号θを生成する。これにより、サンプリング時における計算負荷を低減することが可能となる。
【００７５】
また、実施の形態１では、制御対象の特性変化に応じて、フィードフォワード制御部１１１の特性を変化させる制振パラメータ決定部１２３と制振パラメータフィルタ１２４とを設けている。制振パラメータフィルタ１２４は、ｎを１より大きな整数とするとき、制振パラメータ信号θのｎ階微分もしくはｎ階差分を行うことにより制振パラメータ変分信号θ’を演算する。数式モデル１２１は、制振パラメータ信号θ及び制振パラメータ変分信号θ’に応じて、演算に用いる数式モデルの特性を変更し、モデル制御器１２２は、制振パラメータ信号θ及び制振パラメータ変分信号θ’に応じて特性を変化させた演算によりモデルトルクτａを演算する。すなわち、動作中に特性が変化する制御対象では、その応答が振動特性（振動周波数）のみならず、その振動特性（振動周波数）の時間的な変化率にも影響を受けるが、制振パラメータフィルタ１２４により演算された振動特性の時間的な変化率も考慮してフィードフォワード制御を行うことにより、その影響も低減することが可能となる。これにより、動作中に特性が変化する制御対象に対しても高応答化・低振動化が実現できる。
【００７６】
また、実施の形態１では、数式モデル１２１が演算に用いる数式モデルは、制御対象１の動特性が振動的な機械系でモデル化されたものである。これにより、数式モデルを用いた振動抑制制御に対して、振動抑制効果を持たせることが可能となる。
【００７７】
また、実施の形態１では、制御対象１の現在の振動特性を表す制振パラメータθに応じて数式モデル１２１の特性を変更し、その際に、動作目標値から内部状態または、モデル出力の応答特性にかかる極配置を一定にするようフィードフォワード制御部１１１の特性を逐次変更する。これにより、動作中に振動周波数が変化する制御対象に対して、制御対象の位置を一定の追従特性で動作目標値（位置指令）に追従させることができる。
【００７８】
なお、実施の形態１では、状態フィードバック制御器１４１において機械位置ｐａＬの微分、２階微分、３階微分を用いて状態フィードバック制御則を実現しているが、実際には、図７に示すようにそれらと等価な値を演算してもよい。すなわち、モータ制御装置１００ｉのフィードフォワード制御部１１１ｉはモデル制御器１２２ｉを有し、モデル制御器１２２ｉは、状態フィードバック制御器１４１ｉを有する。状態フィードバック制御器１４１ｉは、モータ位置ｐａＭ、モータ速度ｖａＭ、機械位置ｐａＬ、機械速度ｖａＬから、下記の式（１８）、（１９）、（２０）を用いることより、実施の形態１で求めたものと等価な値を演算することができる。
【００７９】
ｐ（１）ａＬ＝ｖａＬ・・・（１８）
【００８０】
ｐ（２）ａＬ＝ωｚ２×（ｐａＭ−ｐａＬ）・・・（１９）
【００８１】
ｐ（３）ａＬ＝ωｚ２×（ｖａＭ−ｖａＬ）
＋２×ω（１）ｚ×ωｚ×（ｐａＭ−ｐａＬ）・・・（２０）
【００８２】
微分演算を複数回行うことは量子化誤差など増大するためあまり望ましくないが、式（１８）、（１９）、（２０）を用いることで微分演算の回数を減らすことが可能となり、数値的に安定なフィードフォワード制御部１１１ｉを得ることが可能となる。
【００８３】
実施の形態２．
次に、実施の形態２にかかるモータ制御装置２００について図８を用いて説明する。図８は、モータ制御装置２００の構成を示す図である。以下では、実施の形態１と異なる点を中心に説明する。
【００８４】
本実施の形態と実施の形態１のモータ制御装置の差異は、本実施の形態におけるモータ制御装置２００では、制振パラメータ変分信号θ’を使用しない点にある。
【００８５】
フィードフォワード制御部２１１は、数式モデル２２１及びモデル制御器２２２を有しており、制振パラメータフィルタ１２４（図１参照）を有していない。数式モデル２２１は、制振パラメータ信号θに応じて、演算に用いる数式モデルの特性を変更し、モデル制御器２２２は、制振パラメータ信号θに応じて特性を変化させた演算によりモデルトルクτａを演算する。
【００８６】
次に、フィードフォワード制御部２１１の動作について詳細に説明する。本実施の形態においても数式モデル２２１が演算に用いる数式モデルを図２のようにモータがバネを介して機械負荷を起動する２慣性系モデルで表すこととして説明する。つまり、数式モデル２２１は式（３）、（４）もしくは（９）、（１０）で表される運動方程式または、動特性を有し、後述する非線形補償器２４２からモータトルクτaＭを、制振パラメータ決定部１２３から共振周波数ωｐ、反共振周波数ωｚを入力し、モータ位置ｐａM、モータ速度ｖａM、機械位置ｐａL、機械速度ｖａLを式（３）、（４）もしくは（９）、（１０）から計算し、モータ位置ｐａMをモデル位置ｐａとして、モータ速度ｖａMをモデル速度ｖａとしてモデル制御器２２２とフィードバック制御部１１２へ出力し、機械位置ｐａLをモデル出力ｙａ、機械速度ｖａLを内部変数ｘａとしてモデル制御器２２２へ出力する。
【００８７】
なお、ここで説明したものは数式モデル２２１の一例であり、数式モデル２２１の運動方程式又は動特性が式（３）、（４）もしくは（９）、（１０）に限定されるものではない。
【００８８】
次に、本実施の形態におけるモデル制御器２２２について図９を用いて詳細に説明する。図９は、モデル制御器２２２の構成及び動作を表すブロック線図である。
【００８９】
モデル制御器２２２は、状態フィードバック制御器２４１及び非線形補償器２４２を有する。状態フィードバック制御器２４１は、位置目標値ｙｒｅｆ、モータ位置ｐａM、モータ速度ｖａM、機械位置ｐａＬ、機械速度ｖａLを受けて、仮想入力ｕａMを演算し、演算した仮想入力ｕａMを非線形補償器２４２へ供給する。非線形補償器２４２は、仮想入力ｕａM、モータ位置ｐａM、モータ速度ｖａM、機械位置ｐａＬ、機械速度ｖａLを受けて、モータトルクτaＭを演算し、演算したモータトルクτaＭを数式モデル２２１及びトルク加算器１１３へ供給する。次にこれらの動作について詳細に説明する。
【００９０】
非線形補償器２４２は、仮想入力ｕａＭ、モータ位置ｐａM、モータ速度ｖａM、機械位置ｐａＬ、機械速度ｖａLを受けて、数式モデル２２１に存在する非線形特性を補償し、仮想入力ｕａＭから機械位置ｐａＬまでの伝達特性がほぼ線形特性となるように式（２１）を用いて、モータトルクτａＭを演算する。そして、非線形補償器２４２は、演算したモータトルクτａＭを数式モデル２２１及びトルク加算器１１３へ供給する。式（２１）は式（１１）において共振周波数ωｐ、反共振周波数ωｚの微分と２階微分をそれぞれ０とした式である。なお、図示していないが、共振周波数ωｐ、反共振周波数ωｚは制振パラメータ決定部１２３から入力させる制振パラメータθに相当する。
【００９１】
τａＭ＝ＪＭ／ωｚ２×ｕａＭ
＋ＪＭ×ωｐ２×（ｐａＭ−ｐａＬ）・・・（２１）
【００９２】
状態フィードバック制御器２４１は、位置目標値ｙｒｅｆ、モータ位置ｐａM、モータ速度ｖａM、機械位置ｐａＬ、機械速度ｖａLを受けて、フィードフォワード制御部２１１の特性が所定の特性となるように仮想入力ｕａＭを計算し、非線形補償器２４２へ出力する。本実施の形態においては、下記の式（２２）に示される状態フィードバック制御則を用いて仮想入力ｕａＭを計算する。式（２２）は式（１２）に式（１８）、（１９）、（２０）を代入して得られる図９の制御則において、共振周波数ωｐ、反共振周波数ωｚの微分と２階微分をそれぞれ０としたものになっている。そして計算した仮想入力ｕａＭを非線形補償器２４２へ出力する。ここでＫ１、Ｋ２、Ｋ３、Ｋ４は状態フィードバックゲインであり、これらの値を調整することによりモータ制御装置２００の追従特性を決定する。なお、式（２２）は式（１２）とほぼ等価であり、状態フィードバックと同じ働きをする。つまり、Ｋ１、Ｋ２、Ｋ３、Ｋ４により位置目標値ｙｒｅｆから機械位置ｐａＬまでの特性（極配置）を決定することが可能となる。
【００９３】
ｕａＭ＝Ｋ１×Ｋ２×Ｋ３×Ｋ４×（ｙｒｅｆ−ｐａＬ）
−Ｋ２×Ｋ３×Ｋ４×ｖａＬ
−Ｋ３×Ｋ４／ωｚ２×（ｐａＭ−ｐａＬ）
−Ｋ４／ωｚ２×（ｖａＭ−ｖａＬ）・・・（２２）
【００９４】
ここで、産業用のモータに使用されるモータ制御装置を考えると、そのようなモータ制御装置は、低コスト化のために安価なメモリを使用することが多い。そのため各制振パラメータ信号を記憶するために十分なビット数が取れず、そのため制振パラメータ信号の分解能が粗くなる。分解能が粗い信号を微分、または変分すると量子化誤差を増大させてしまい、その結果実施の形態１におけるフィードフォワード制御部からの出力が必要以上に大きくなる場合や、理論どおりの特性が得られなくなる場合がある。
【００９５】
それに対し、実施の形態２にかかるモータ制御装置２００では、制振パラメータ信号の微分、変分に当たる制振パラメータ変分信号を使用しないことにより、量子化誤差の影響を防止できるとともに、安価なメモリで制御装置を実現でき、かつ簡単に追従特性の設定が可能となり、その計算時間も短縮することができる。
【００９６】
なお、実施の形態２では、状態フィードバック制御器２４１は式（２２）を用いて仮想入力ｕａＭを計算するが、式（１２）を用いて仮想入力ｕａＭを計算してもよい。
【００９７】
実施の形態３．
次に、実施の形態３にかかるモータ制御装置３００について図１０を用いて説明する。図１０は、モータ制御装置３００の構成を示す図である。以下では、実施の形態１と異なる点を中心に説明する。
【００９８】
本実施の形態と実施の形態１との差異は、実施の形態１がモータ位置検出値ｐＭを所定の位置目標値ｙｒｅｆに追従させる位置制御であるのに対し、本実施の形態はモータ速度演算値ｖＭを速度目標値（動作目標値）ｖｒｅｆに追従させる速度制御であることである。
【００９９】
モータ制御装置３００は、フィードフォワード制御部３１１及びフィードバック制御部３１２を有する。フィードフォワード制御部３１１は、速度目標値ｖｒｅｆを外部から受け、速度目標値ｖｒｅｆに応じた制御を行う。フィードバック制御部３１２は、検出器２からフィードバックされた制御対象１（モータ１ａ）のモータ位置検出値ｐＭを受けて、モータ位置検出値ｐＭに応じた速度制御を行う。
【０１００】
具体的には、フィードフォワード制御部３１１は、モデル制御器３２２を有する。モデル制御器３２２は、速度目標値ｖｒｅｆを外部から受け、モデル位置ｐａ、モデル速度ｖａ、内部状態ｘａ、モデル出力ｙａを数式モデル３２１から受け、制振パラメータ信号θを制振パラメータ決定部１２３から受け、制振パラメータ変分信号θ’を制振パラメータフィルタ１２４から受ける。モデル制御器３２２は、これらの入力の値を用いた状態フィードバックを行う。すなわち、モデル制御器３２２は、数式モデル３２１の各出力と、制振パラメータ信号θ及び制振パラメータ変分信号θ’に応じて変化するゲインとの乗算に基づき、最終的にはモデル出力ｙａとモデル速度ｖａとが速度目標値ｖｒｅｆに追従するように、モデルトルクτａを計算して数式モデル３２１及びトルク加算器１１３へ供給する。
【０１０１】
フィードバック制御部３１２は、速度制御器１３１、速度演算器１３３を有するが、位置制御器１３２（図１参照）を有さない。速度制御器１３１は、速度演算器１３３の出力であるモータ速度演算値ｖＭをモデル速度ｖａに追従させるようにフィードバックトルクτＢを計算する。そして計算したフィードバックトルクτＢをトルク加算器１１３へ出力する。
【０１０２】
次に、フィードフォワード制御部３１１の各構成における動作について詳細に説明する。
【０１０３】
本実施の形態においても数式モデル３２１を図２のようにモータがバネを介して機械負荷を起動する２慣性系モデルで表すこととして説明する。よって、数式モデル３２１は式式（３）、（４）もしくは（５）、（６）、（９）、（１０）で表される運動方程式または動特性を有し、モータトルクτaＭ、制振パラメータ信号θである共振周波数ωｐ、反共振周波数ωｚからモータ位置ｐａM、モータ速度ｖａM、機械位置ｐａL、機械速度ｖａLを式（３）、（４）もしくは（５）、（６）、（９）、（１０）から計算する。数式モデル３２１は、モータ位置ｐａMをモデル位置ｐａとして、モータ速度ｖａMをモデル速度ｖａとして、モデル制御器３２２及びフィードバック制御部３１２へ供給し、機械位置ｐａLを内部変数ｘａとして、機械速度ｖａLをモデル出力ｙａとして、モデル制御器３２２へ供給する。本実施の形態において、機械速度ｖａLをモデル出力ｙａとして供給するのは、本実施の形態におけるモータ制御装置３００が速度制御を行うためである。
【０１０４】
なお、ここで説明したものは数式モデル３２１の一例であり、本実施の形態の数式モデル３２１の運動方程式又は動特性が式（３）、（４）もしくは（９）、（１０）に限定されるものではない。
【０１０５】
次に、本実施の形態におけるモデル制御器３２２について図１１を用いて詳細に説明する。図１１は、モデル制御器３２２の構成及び動作を表すブロック線図である。
【０１０６】
モデル制御器３２２は、状態フィードバック制御器３４１を有する。状態フィードバック制御器３４１は、速度目標値ｖｒｅｆ及び機械速度ｖａＬを受けて、フィードフォワード制御部３１１の特性が所定の特性となるように仮想入力ｕａＭを計算し、非線形補償器１４２へ供給する。本実施の形態においては、状態フィードバック制御器３４１は、下記の式（２３）に示される状態フィードバック制御則を用いて仮想入力ｕａＭを計算する。そして、状態フィードバック制御器３４１は、計算した仮想入力ｕａＭを非線形補償器１４２へ出力する。ここでＫ２、Ｋ３、Ｋ４は状態フィードバックゲインであり、状態フィードバック制御器３４１は、これらの値を調整することによりモータ制御装置３００の追従特性を決定する。
【０１０７】
ｕａＭ＝Ｋ２×Ｋ３×Ｋ４×（ｖｒｅｆ−ｖａＬ）
−Ｋ３×Ｋ４×ｖ（１）ａＬ
−Ｋ４×ｖ（２）ａＬ・・・（２３）
【０１０８】
次に、フィードフォワード制御部３１１の特性について説明する。
【０１０９】
実施の形態１と同様に、本実施の形態においても仮想入力ｕａＭから機械位置ｐａＭまでの特性は式（１４）となる。式（１４）に式（２３）の状態フィードバック則を代入すると、速度目標値ｖｒｅｆから機械速度ｖａＬまでの特性は式（２４）となる。
【０１１０】
ｖａＬ（ｓ）＝（Ｋ２×Ｋ３×Ｋ４）
×１／（ｓ３＋Ｋ４×ｓ２＋Ｋ３×Ｋ４×ｓ＋Ｋ２×Ｋ３×Ｋ４）
×ｖｒｅｆ（ｓ）・・・（２４）
ここでｖａＬ（ｓ）は機械速度のラプラス変換されたもの、ｖｒｅｆ（ｓ）は速度目標値のラプラス変換されたものを表している。つまり、状態フィードバックゲインＫ２、Ｋ３、Ｋ４を決定することにより、速度目標値ｖｒｅｆから機械速度ｖａＬまでの特性（極配置）を決定することが可能となる。
【０１１１】
機械速度ｖａＬの特性が決定されると、モデル速度ｖａに相当するモータ速度ｖａＭの特性は式（１７）と同様に下記の式（２５）で表される。なお、式（２５）では、ｐ（１）ａＬ＝ｖａＬを代入し右辺をｖａＬのみで表現している。
【０１１２】
ｖａＭ＝１／ωｚ２×ｖ（２）ａＬ＋ｖａＬ
−２×ω（１）ｚ／ωｚ３×ｖ（１）ａＬ・・・（２５）
【０１１３】
式（２５）の特性で表されるモータ速度ｖａＭがモデル速度ｖａとしてフィードバック制御部３１２に出力され、フィードバック制御部３１２は、モータ速度演算値ｖＭがモデル速度ｖａに追従するようにフィードバックトルクτＢを出力する。モータ速度演算値ｖＭがモデル速度ｖａに追従するようにフィードバックトルクτＢを演算することにより、制御対象１内にあり実際のモータに接続されている機械の速度の挙動を式（２４）で表される特性に一致させることができる。よって、状態フィードバックゲインＫ２、Ｋ３、Ｋ４を振動が発生しないような（一定の）極配置になるように決定することで、制御対象１内の機械に振動を励起することなく、かつ所定の（一定の）追従特性で動作させることが可能となる。
【０１１４】
以上のように、実施の形態３にかかるモータ制御装置３００によれば、実施の形態１と同等の効果を速度制御においても得ることが可能となり、本発明のモータ制御装置の用途を広げることが可能となる。
【０１１５】
なお、実施の形態３では、エンコーダなどの検出器２によりモータ動作目標値ｐＭを検出し、それを速度演算器１３３によってモータ速度演算値ｖＭを計算しているが、レゾルバやタコジェネレータ、ホール素子等を用いて直接モータ速度演算値ｖＭを計測してもよい。
【０１１６】
また、式（２３）の演算において、式（２３）に式（１９）と（２０）を代入し、モータ速度の微分、２階微分を使用しない演算にしても良い。
【０１１７】
また、本実施の形態においても、実施の形態２と同様に、共振周波数、反共振周波数の微分、２階微分を０として、これらの値を微分もしくは変分により増大する量子化誤差の影響を小さくしても良い。
【０１１８】
実施の形態４．
次に、実施の形態４にかかるモータ制御装置４００について説明する。以下では、実施の形態２と異なる点を中心に説明する。
【０１１９】
本実施の形態と実施の形態２との差異はモデル制御器の構成である。
【０１２０】
実施の形態４にかかるモータ制御装置４００のフィードフォワード制御部４１１は、例えば、図１２に示すようなモデル制御器４２２を有する。図１２は、モデル制御器４２２の構成及び動作を表すブロック線図である。
【０１２１】
モデル制御器４２２は、図１２に示すように、そのゲイン変更方法が実施の形態２と異なる。すなわち、モデル制御器４２２は、下記の式（２６）を用いてモータトルクτａＭを演算する。式（２６）において、Ｋｐ１はモデル位置制御ゲイン、Ｋｖ１はモデル速度制御ゲイン、Ｋｃｐはねじり補償位置制御ゲイン、Ｋｃｖはねじり補償速度制御ゲインを表しており、モデル制御器４２２は、これらの値を制振パラメータ信号θ（共振周波数ωｐ、反共振周波数ωｚ）に応じて変更する。
【０１２２】
τａＭ＝Ｋｖ１×｛Ｋｐ１×（ｙｒｅｆ−ｐａＭ）−ｖａＭ｝
−Ｋｃｖ×（ｖａＭ−ｖａＬ）
−Ｋｃｐ×（ｐａＭ−ｐａＬ）・・・（２６）
【０１２３】
そして、モータトルクτａＭから機械位置ｐａＬまでの特性において共振周波数ωｐ、反共振周波数ωｚの微分が０であるとし、モータトルクτａＭから機械位置ｐａＬまでの特性を線形化すると式（２７）の伝達関数で表すことが可能である。
【０１２４】
ｐａＬ（ｓ）＝１／（ＪＭ×ｓ２）×ωｚ２／（ｓ２＋ωｐ２）
×τａＭ（ｓ）・・・（２７）
【０１２５】
式（２７）において、ｐａＬ（ｓ）は機械位置のラプラス変換されたもの、τａＭ（ｓ）はモータトルクτａＭのラプラス変換されたものを表している。よって、式（２７）に式（２６）代入することで、位置目標値ｙｒｅｆから機械位置ｐａＬまでの特性は下記の式（２８）の伝達関数で表すことが可能である。式（２８）においてｙｒｅｆ（ｓ）は動作目標値のラプラス変換されたものを表している。
【０１２６】
ｐａＬ（ｓ）＝ωｚ２／ＪＭ×Ｋｖ１×Ｋｐ１
×１／｛ｓ４＋（Ｋｖ１＋Ｋｃｖ）／ＪＭ×ｓ３
＋（ωｐ２＋（Ｋｖ１×Ｋｃｐ＋Ｋｃｖ）／ＪＭ）×ｓ２
＋ωｚ２／ＪＭ×（Ｋｖ１＋２×Ｋｃｖ）×ｓ
＋ωｚ２／ＪＭ×（Ｋｖ１×Ｋｐ１＋２×Ｋｃｐ）｝
×ｙｒｅｆ（ｓ）・・・（２８）
【０１２７】
次に所定の極を持つ特性多項式を下記の式（２９）で表す。
【０１２８】
ｓ４＋ａ３＊ｓ３＋ａ２＊ｓ２＋ａ１＊ｓ＋ａ０＊・・・（２９）
【０１２９】
式（２９）においてａ３＊、ａ２＊、ａ１＊、ａ０＊は式（２９）の特性多項式が所定の極を持つように決定する係数である。つまり、モデル制御器４２２は、式（２８）で表される位置目標値ｙｒｅｆから機械位置ｐａＬまでの伝達関数の分母多項式が常に式（２９）と一致するようにモデル位置制御ゲインＫｐ１、モデル速度制御ゲインＫｖ１、ねじり位置制御ゲインＫｃｐ、ねじり速度制御ゲインＫｃｖを変更すればよい。
【０１３０】
具体的には、モデル制御器４２２は、制振パラメータ決定部１２３から出力された共振周波数ωｐ、反共振周波数ωｚを用いて、モデル位置制御ゲインＫｐ１、モデル速度制御ゲインＫｖ１、ねじり位置制御ゲインＫｃｐ、ねじり速度制御ゲインＫｃｖを、式（３０）、（３１）、（３２）、（３３）のように変更すれば、式（２８）で表される伝達関数の分母多項式を常に、式（２９）に一致させることができる。従って、共振周波数ωｐ、反共振周波数ωｚが変化する制御対象に対しても、常に所定の（一定の）極配置が実現でき、所定の（一定の）追従特性で機械位置ｐａＬを位置目標値ｙｒｅｆに追従させることが可能となる。
【０１３１】
Ｋｐ１＝（２×ωｚ２ａ２＊−２×ωｐ２×ωｚ２−ａ０＊）
×１／（２×ωｚ２×ａ３＊−ａ１＊）・・・（３０）
【０１３２】
Ｋｖ１＝ＪＭ／ωｚ２×（２×ωｚ２×ａ３＊−ａ１＊）・・・（３１）
【０１３３】
Ｋｃｐ＝ＪＭ／ωｚ２×（ａ０＊＋ωｚ２×ωｐ２−ωｚ２×ａ２＊）
・・・（３２）
【０１３４】
Ｋｃｖ＝ＪＭ／ωｚ２×（ａ１＊−ωｚ２ａ３＊）・・・（３３）
【０１３５】
したがって、本実施の形態におけるモデル制御器４２２は、位置目標値ｙｒｅｆを外部から受け、モータ位置ｐａM、モータ速度ｖａM、機械位置ｐａＬ、機械速度ｖａLを数式モデル２２１から受ける。そして、モデル制御器４２２は、制振パラメータ決定部１２３から出力された共振周波数ωｐ、反共振周波数ωｚに基づき、式（３０）、（３１）、（３２）、（３３）を用いて、モデル位置制御ゲインＫｐ１、モデル速度制御ゲインＫｖ１、ねじり位置制御ゲインＫｃｐ、ねじり速度制御ゲインＫｃｖを決定し、これらの値と式（２６）とを用いてモデルトルクτａＭを演算し、演算したモデルトルクτａＭを数式モデル２２１へ出力する。これにより、機械位置ｐａＬを所定の（一定の）追従特性（極配置）により、位置目標値ｙｒｅｆに追従させることが可能となる。
【０１３６】
なお、本実施の形態では、実施の形態２と同様にモータ位置検出値ｐＭを所定の動作目標値ｐｒｅｆに追従させる位置制御について説明したが、モータ速度演算値ｖＭを速度目標値ｖｒｅｆに追従させる速度制御に適用しても良い。
【０１３７】
また、本実施の形態では、実施の形態２と同様に数式モデルをモータがバネを介して機械負荷を起動する２慣性系モデルであるものとしたが、必ずしも数式モデルが２慣性系モデルである必要はなく、別のモデルであってもよい。
【産業上の利用可能性】
【０１３８】
以上のように、本発明にかかるモータ制御装置は、産業用機械装置を駆動するモータの制御に有用である。
【符号の説明】
【０１３９】
１  制御対象
２  検出器
４  電流制御器
１００、１００ｉ、２００、３００、４００  モータ制御装置
１１１、１１１ｉ、２１１、３１１、４１１  フィードフォワード制御部
１１２、３１２  フィードバック制御部
１１３  トルク加算器
１２１、２２１、３２１  数式モデル
１２２、１２２ｉ、２２２、３２２、４２２  モデル制御器
１２３  制振パラメータ決定部
１２４  制振パラメータフィルタ
１３１  速度制御器
１３２  位置制御器
１３３  速度演算器
１４１、１４１ｉ、２４１、３４１  状態フィードバック制御器
１４２、２４２  非線形補償器
【図１】
0005441944.tif 000002
【図２】
0005441944.tif 000003
【図３】
0005441944.tif 000004
【図４】
0005441944.tif 000005
【図５】
0005441944.tif 000006
【図６】
0005441944.tif 000007
【図７】
0005441944.tif 000008
【図８】
0005441944.tif 000009
【図９】
0005441944.tif 000010
【図１０】
0005441944.tif 000011
【図１１】
0005441944.tif 000012
【図１２】
0005441944.tif 000013