(57)【要約】【課題】１個の可動部を複数のモータで駆動する機械において、機台振動やねじり振動が生じる可能性がある場合にもこれらの振動を抑制して高い同期精度を実現する。【解決手段】共通の外部位置指令に基づいて駆動される２個のモータ２，３により共同して１個のテーブル４といった可動部を可動させるモータ制御装置１は、可動部に対する振動の影響を抑制するように状態をフィードバックするモデル制御系であって外部位置指令からモデル位置指令を含むモデル指令を生成するモデル制御系１０，５０と、２個のモータ２，３と１対１対応で設けられてモデル指令に基づいて各々のモータをフィードバック制御する２個のフィードバック制御系３０，７０と、を有する。一方のフィードバック制御系３０は、そのモータ２を制御する際の制御誤差を、残りの他方のフィードバック制御系７０での制御誤差との差分により補償する。【選択図】  図１
2016149918.tif 000002
【特許請求の範囲】
【請求項１】
共通の外部位置指令に基づいて駆動されるＮ個（Ｎ：２以上の自然数）のモータにより共同して１個の可動部を可動させるモータ制御装置であって、
前記可動部に対する振動の影響を抑制するように状態をフィードバックするモデル制御系であって前記外部位置指令からモデル位置指令を含むモデル指令を生成するモデル制御系と、
Ｎ個の前記モータと１対１対応で設けられて前記モデル指令に基づいて各々の前記モータをフィードバック制御するＮ個のフィードバック制御系と、
を有し、
（Ｎ−１）個の前記フィードバック制御系は、各々の前記モータを制御する際の制御誤差を、残りの１個の前記フィードバック制御系での制御誤差との差分により補償する、
モータ制御装置。
【請求項２】
前記モデル制御系は、
前記モータで駆動される前記可動部の動きに対応している可動部モデルおよび前記モータおよび前記可動部が取り付けられる機台の動きに対応している機台モデルを含むとともに前記機台モデルの状態をフィードバックして前記機台の振動に起因する前記機台と前記可動部との間の振動を抑制するものであり、
前記可動部モデルの位置と前記機台モデルの位置とを加算した位置を、前記モデル位置指令として出力されるモデル位置として演算するモデル位置加算器を有する、
請求項１記載のモータ制御装置。
【請求項３】
前記モデル制御系は、
前記外部位置指令から、前記モデル位置加算器から出力されるモデル位置を減算してモデル位置誤差を演算するモデル位置誤差演算器を有し、
Ｎ個の前記フィードバック制御系の各々は、
前記モデル位置指令および各々の前記モータの位置を検出するセンサが検出した位置に基づいてこれらの位置誤差を示す制御位置誤差を生成する制御位置誤差生成器を有する、
請求項２記載のモータ制御装置。
【請求項４】
（Ｎ−１）個の前記フィードバック制御系の各々は、
各々の前記制御位置誤差と残りの１個の前記フィードバック制御系での前記制御位置誤差との差分を生成する同期位置誤差生成器を有し、
各々の前記モータを制御する際の前記制御位置誤差を、残りの１個の前記フィードバック制御系での前記制御位置誤差との差分により補償する、
請求項３記載のモータ制御装置。
【請求項５】
前記モデル制御系は、
前記モデル位置誤差からモデル速度を演算するモデル位置制御器と、
前記モデル位置加算器から出力される前記モデル位置から前記モデル指令の一つであるモデル速度指令としてのモデル検出速度を演算するモデル速度演算器と、
前記モデル速度から前記モデル検出速度を減算してモデル速度誤差を演算するモデル速度誤差演算器と、
前記モデル速度誤差からモデルトルクを演算するモデル速度制御器と、
前記モデルトルクから状態帰還量を減算して前記モデル指令の一つであるモデルトルク指令としての状態補償後の前記モデルトルクを演算するモデルトルク誤差演算器と、
状態補償後の前記モデルトルクをローパスフィルタ処理して前記可動部モデルおよび前記機台モデルへ出力するモデルローパスフィルタと、
前記機台モデルの状態に応じた前記状態帰還量を演算する状態帰還量演算器と、を有し、
Ｎ個の前記フィードバック制御系の各々は、
補償処理後の前記制御位置誤差から制御速度を生成する位置制御器と
各々の前記モータの位置を検出する前記センサが検出した位置から検出速度を生成する検出速度生成器と、
前記制御速度、前記検出速度、および前記モデル速度指令に基づいて前記制御速度と前記検出速度との速度誤差に対して前記モデル速度指令を加えた制御速度誤差を生成する制御速度誤差生成器と、
前記制御速度誤差から制御トルクを生成する速度制御器と、
前記制御トルクと前記モデルトルク指令とに基づいてこれらの合計を示す合計制御トルクを生成する制御トルク生成器と、
前記合計制御トルクをローパスフィルタ処理する制御ローパスフィルタと、
ローパスフィルタ処理後の前記合計制御トルクに基づいて各々の前記モータを制御するトルク制御器と、を有する、
請求項４記載のモータ制御装置。
【請求項６】
前記モデル制御系は、
前記モータから前記可動部までの機械系の動きに対応している多慣性モデルを含むとともに前記多慣性モデルの状態をフィードバックして前記機械系の振動に起因する前記可動部の振動を抑制するものであり、
前記多慣性モデルは、前記モデル位置指令として出力されるモデル位置を演算する、
請求項１記載のモータ制御装置。
【請求項７】
前記モデル制御系は、
前記外部位置指令から、前記多慣性モデルから出力される前記モデル位置を減算してモデル位置誤差を演算するモデル位置誤差演算器を有し、
Ｎ個の前記フィードバック制御系の各々は、
前記モデル位置指令および各々の前記モータの位置を検出するセンサが検出した位置に基づいてこれらの位置誤差を示す制御位置誤差を生成する制御位置誤差生成器を有する、
請求項６記載のモータ制御装置。
【請求項８】
（Ｎ−１）個の前記フィードバック制御系の各々は、
各々の前記制御位置誤差と残りの１個の前記フィードバック制御系での前記制御位置誤差との差分を生成する同期位置誤差生成器を有し、
各々の前記モータを制御する際の前記制御位置誤差を、残りの１個の前記フィードバック制御系での前記制御位置誤差との差分により補償する、
請求項７記載のモータ制御装置。
【請求項９】
前記モデル制御系は、
前記モデル位置誤差からモデル速度を演算するモデル位置制御器と、
前記モデル速度から、前記多慣性モデルで演算される速度に関する状態帰還量およびモデル速度を減算して状態補償後のモデル速度誤差を演算する状態補償モデル速度誤差演算器と、
状態補償後の前記モデル速度誤差からモデルトルクを演算するモデル速度制御器と、
前記モデルトルクから、前記多慣性モデルで演算される加速度に関する状態帰還量およびねじりトルクを減算して状態補償後のモデルトルク誤差を演算して前記多慣性モデルへ出力する状態補償モデルトルク誤差演算器と、を有し、
Ｎ個の前記フィードバック制御系の各々は、
補償処理後の前記制御位置誤差から制御速度を生成する位置制御器と
各々の前記モータの位置を検出する前記センサが検出した位置から検出速度を生成する検出速度生成器と、
前記制御速度、前記検出速度、および前記多慣性モデルにおいて前記モデル指令の一つとして演算されるモデル速度指令に基づいて前記制御速度と前記検出速度との速度誤差に対して前記モデル速度指令を加えた制御速度誤差を生成する制御速度誤差生成器と、
前記制御速度誤差から制御トルクを生成する速度制御器と、
前記制御トルクおよび前記多慣性モデルにおいて前記モデル指令の一つとして演算されるモデルトルク指令に基づいてこれらの合計を示す合計制御トルクを生成する制御トルク生成器と、
前記合計制御トルクに基づいて各々の前記モータを制御するトルク制御器と、を有する、
請求項８記載のモータ制御装置。
【請求項１０】
Ｎ個の前記フィードバック制御系には、前記モデル制御系から同じ前記モデル指令が同時に入力される、
請求項１から９のいずれか一項記載のモータ制御装置。
【請求項１１】
前記モデル制御系は、Ｎ個の前記フィードバック制御系と１対１に対応するＮ個で設けられ、
Ｎ個の前記モデル制御系は、同じフィードバックループの構成により共通の前記外部位置指令から同じ前記モデル指令を生成する、
請求項１から１０のいずれか一項記載のモータ制御装置。
【請求項１２】
前記フィードバック制御系は、２個であり、
２個の前記フィードバック制御系は、各々での前記モータを制御するための制御誤差を、他方の前記フィードバック制御系での制御誤差との差分により互いに補償する、
請求項１から１１のいずれか一項記載のモータ制御装置。
【請求項１３】
前記モデル制御系の状態方程式に対する特性方程式は重根を持つ、
請求項１から１２のいずれか一項記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数個のモータが共同して一個の可動部を駆動して可動部を高速高精度に位置決めできるモータ制御装置に関する。
【背景技術】
【０００２】
マウンタ装置などの部品実装機では、可動部をモータにより高速に駆動して高精度に位置決めすることにより単位時間当たりの部品実装数を増やすことができる。これにより、部品実装作業による製造コストを低減することができる。
そして、たとえば多数のプリント基板を同時に実装することができる大きな可動部を使用する大型のマウンタ装置では、該１個の可動部を複数個のモータで高速に駆動することが考えられる。
【０００３】
たとえば特許文献１のモータ制御装置は、１個の可動部を２個のモータで駆動している。２個のモータの各々はそれぞれに対応して設けられたモータ制御モデルおよびサーボコントローラにより制御される。サーボコントローラは、外部位置指令に基づいてモータの動きを実際に制御する。モータ制御モデルは、サーボコントローラの各要素に対応する要素モデルを有し、外部位置指令に基づいてモデルトルク、モデル速度、およびモデル位置を生成する。また、これらのモデル情報とサーボコントローラからフィードバックされる実際の制御での制御トルク、制御速度、制御位置との差分を演算し、その差分を一定の割合でサーボコントローラへ戻している。このようにモータ制御モデルにおいてサーボコントローラの制御誤差を演算し、その制御誤差をサーボコントローラへ戻すことにより、サーボコントローラはモータ制御モデルで生成されるモデルトルク、モデル速度、およびモデル位置に追従してモータの動きを制御し得る。
このように特許文献１のモータ制御装置は、モータ制御モデルとサーボコントローラとの誤差を外乱としてとらえてこれを位相補償することによりモデルとサーボコントローラの制御とのずれを抑えているので、複数個のモータの制御系に同じモデルを用いることで軸間のずれ（同期誤差）を抑えることができると考えられる。
また、特許文献１とは異なり１個の可動部を１個のモータで駆動する場合には可動部がモータの駆動方向に対して傾くようにヨーイングすることがあるが、特許文献１のように１個の可動部を２個のモータで駆動することによりこのヨーイングを抑えることも期待し得ると考えられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３４５４４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、実際の機械系では、たとえば複数個のモータに対して可動部を駆動するボールねじ等がねじり振動したり、複数個のモータおよび可動部が取り付けられる機台が振動したりすることにより、可動部が振動することがある。
そして、特許文献１の手法では、これらのねじり振動を抑制したり、機台振動を抑制したりする機能が搭載されていないため、たとえば機械系の剛性が低い場合にはこれらの振動を十分に抑制することができないという問題がある。
また、実際に機台振動やねじり振動が生じ得る場合には、それらの振動が生じないように制御する結果として個々の軸のサーボコントローラの制御応答を十分に高くすることができなくなる。個々の軸のサーボコントローラの制御応答が高くないと、モデルとサーボコントローラ間の誤差抑制が十分に行えなくなる。モデルとサーボコントローラ間の誤差抑制が十分に行えないと、軸間の同期精度を高めることができなくなる。
【０００６】
本発明はこのような課題を解消するためになされたものであり、その目的は、１個の可動部を複数個のモータで駆動する機械において、可動部に対する振動の影響を抑制して高い同期精度を実現し、その結果として高速高精度な位置決めを実現できるモータ制御装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明のモータ制御装置は、共通の外部位置指令に基づいて駆動されるＮ個（Ｎ：２以上の自然数）のモータにより共同して１個の可動部を可動させるモータ制御装置であって、可動部に対する振動の影響を抑制するように状態をフィードバックするモデル制御系であって外部位置指令からモデル位置指令を含むモデル指令を生成するモデル制御系と、Ｎ個のモータと１対１対応で設けられてモデル指令に基づいて各々のモータをフィードバック制御するＮ個のフィードバック制御系と、を有し、（Ｎ−１）個のフィードバック制御系は、各々のモータを制御する際の制御誤差を、残りの１個のフィードバック制御系での制御誤差との差分により補償する。
【発明の効果】
【０００８】
本発明では、Ｎ個のフィードバック制御系の各々は、外部位置指令ではなく、モデル位置を含むモデル指令に基づいて各々のモータをフィードバック制御する。しかも、外部位置指令からモデル位置指令を含むモデル指令を生成するモデル制御系は、可動部に対する振動の影響を抑制するように状態をフィードバックするので、Ｎ個のフィードバック制御系はモデルに追従して振動の影響を抑制したフィードバック制御を互いに独立して実行し、Ｎ個のモータは外部位置指令に対して同様に追従するように制御され得る。Ｎ個のフィードバック制御系は、共通の外部位置指令に基づいてＮ個のモータを互いに同期させるように制御することができる。たとえば可動部等が取り付けられる機台が振動したりまたはモータに対して可動部が振動したりする結果として可動部が振動の影響を受け得るような場合においてその影響を抑制して、Ｎ個のモータを互いに同期させることができる。
しかも、本発明では、（Ｎ−１）個のフィードバック制御系は、各々での制御誤差を、残りの１個のフィードバック制御系での制御誤差との差分により補償する。（Ｎ−１）個のフィードバック制御系は、各々の制御誤差が１個のフィードバック制御系の制御誤差に対してずれが生じないように同期させながら、各々のフィードバック制御を実行する。すなわち、Ｎ個のモータを互いに独立したフィードバック制御系により互いに独立して制御しながらも、１個のフィードバック制御系と（Ｎ−１）個のフィードバック制御系との間で生じ得る制御誤差のずれを補償することができる。これらＮ個のフィードバック制御系の間で生じ得る制御誤差のずれを１個のフィードバック制御系と（Ｎ−１）個のフィードバック制御系との間で補償することができる。
このように、本発明では、１個の可動部を共同して可動させる複数個のモータを共通の外部位置指令で、かつ、可動部に対する振動の影響を抑制するように状態をフィードバックする同じモデルでモデル追従制御を行う事により、フィードバック制御系に与えるトルク指令を全軸で同一にする事ができ、これにより、たとえば機台振動が生じたりモータに対して可動部が振動したりするような場合であっても、これらに起因した可動部に対する振動の影響を抑制して指令に対する追従性を向上させて複数個のフィードバック制御系の制御誤差の間でずれが発生し難いように制御を実行しつつ、さらに、それでも他の原因によりＮ個のフィードバック制御系の間で生じ得る微小な制御誤差のずれをＮ個のフィードバック制御系の間で補償している。よって、Ｎ個のモータの制御系は、可動部に対する振動の影響を抑制して同期ずれが発生し難い制御と同期ずれを抑える制御とが二重化された制御により１個の可動部を複数個のモータで制御する場合での複数のモータの同期精度を高めることができる。その結果として高速高精度な位置決めを実現できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明の第１実施形態に係るモータ制御装置のブロック図である。
【図２】図２は、本発明の第２実施形態に係るモータ制御装置のブロック図である。
【図３】図３は、本発明の第３実施形態に係るモータ制御装置のブロック図である。
【図４】図４は、本発明の第４実施形態に係るモータ制御装置のブロック図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態を、図面に基づいて説明する。
【００１１】
［第１実施形態］
図１は、本発明の第１実施形態に係るモータ制御装置１のブロック図である。
図１のモータ制御装置１は、第１モータ２と第２モータ３との２個のモータが共同して１個の可動部を駆動して可動部を高速高精度に位置決めできるものである。
【００１２】
図１のモータ制御装置１は、可動部としてのテーブル４の制御位置を示す外部位置指令が入力されて各種の第１モデル指令を生成する第１モデル制御系１０と、第１モータ２を含むフィードバックループを有して第１モデル指令に基づいて第１モータ２を実際に制御する第１フィードバック制御系３０と、第１モデル制御系１０と同じ外部位置指令が入力されて各種の第２モデル指令を供給する第２モデル制御系５０と、第２モータ３を含むフィードバックループを有して第２モデル指令に基づいて第２モータ３を実際に制御する第２フィードバック制御系７０と、を有する。
そして、本実施形態において、第１モデル指令は、第１モデル位置指令、第１モデル速度指令、第１モデルトルク指令である。また、第２モデル指令は、第２モデル位置指令、第２モデル速度指令、第２モデルトルク指令である。
【００１３】
第１フィードバック制御系３０は、第１制御位置誤差生成器３１、第１同期位置誤差生成器３２、第１位置同期補償器３３、第１同期補償位置誤差生成器３４、第１位置制御器３５、第１検出速度生成器３６、第１制御速度誤差生成器３７、第１速度制御器３８、第１制御トルク生成器３９、第１トルク指令ローパスフィルタ４０、第１トルク制御器４１、を有する。
そして、第１制御位置誤差生成器３１、第１同期補償位置誤差生成器３４、第１位置制御器３５、第１制御速度誤差生成器３７、第１速度制御器３８、第１制御トルク生成器３９、第１トルク指令ローパスフィルタ４０、第１トルク制御器４１、第１モータ２、および第１センサ４２は、第１モータ２を実際に制御するフィードバックループを構成する。
【００１４】
第１モータ２は、たとえば同期モータである。
第１センサ４２は、第１モータ２の回転位置を検出する。第１センサ４２は、たとえば第１モータ２の回転子軸に取り付けられたロータリエンコーダである。ロータリエンコーダは、モータの回転子軸の位置に応じたパルス信号を出力する。パルス信号は、第１モータ２の回転位置へ換算できる。
【００１５】
第１制御位置誤差生成器３１は、第１モデル制御系１０から供給される第１モデル位置指令と第１センサ４２から得られる第１モータ２の第１検出位置とに基づいて、これらの位置誤差を示す第１制御位置誤差を生成する。第１制御位置誤差は、たとえば第１モデル位置指令から第１検出位置を減算したものでよい。
第１同期位置誤差生成器３２は、自身の第１制御位置誤差と後述する第２制御位置誤差生成器７１により生成される第２制御位置誤差とに基づいて、これらの制御位置誤差の差分（同期誤差）を示す第１同期位置誤差を生成する。第１同期位置誤差は、たとえば自身の第１制御位置誤差から他の第２制御位置誤差を減算したものでよい。この場合、第２フィードバック制御系７０に対する第１フィードバック制御系３０の同期誤差が得られる。
第１位置同期補償器３３は、第１同期位置誤差から、第１位置同期誤差補償量を生成する。本実施形態において第１位置同期補償器３３には、たとえば比例制御器または比例積分制御器を用いるとよい。
第１同期補償位置誤差生成器３４は、第１フィードバック制御系３０での制御位置誤差である第１制御位置誤差と、２個のフィードバック制御系間の同期位置誤差である第１位置同期誤差補償量とに基づいて、同期補償処理後の第１制御位置誤差を生成する。同期補償処理後の第１制御位置誤差は、たとえば第１制御位置誤差と第１位置同期誤差補償量とを加算した合計値でよい。
第１位置制御器３５は、同期補償処理後の第１制御位置誤差から、第１制御速度を生成する。第１位置制御器３５は、第１フィードバック制御系３０での制御位置誤差と、第２フィードバック制御系７０を基準とした第１フィードバック制御系３０の同期位置誤差とに応じた第１制御速度を生成する。そして、第２フィードバック制御系７０の制御位置と比較して第１フィードバック制御系３０の制御位置が遅れると、第１制御速度は大きくなる。
【００１６】
第１検出速度生成器３６は、第１センサ４２が検出した回転位置から第１モータ２の第１検出速度を生成する。
第１制御速度誤差生成器３７は、第１制御速度、第１検出速度、および第１モデル速度指令に基づいて第１制御速度誤差を生成する。第１制御速度誤差は、たとえば第１制御速度から第１検出速度を減算して得られる制御速度誤差に対して、第１モデル速度指令を加算したものでよい。
第１速度制御器３８は、第１制御速度誤差から、第１制御トルクを生成する。第１速度制御器３８は、第１フィードバック制御系３０での制御速度誤差と、第１モデル速度指令とに応じた第１制御トルクを生成する。そして、制御速度誤差および第１モデル速度指令の少なくとも一方が大きくなると、第１制御トルクは大きくなる。
【００１７】
第１制御トルク生成器３９は、第１制御トルクと第１モデルトルク指令とに基づいて第１合計制御トルクを生成する。第１合計制御トルクは、たとえば第１制御トルクと第１モデルトルク指令とを加算したものでよい。
第１トルク指令ローパスフィルタ４０は、第１合計制御トルクをローパスフィルタ処理する。このローパスフィルタ処理により、第１合計制御トルクから高周波成分を除くことができる。このような高周波成分としては、たとえば第１センサ４２による位置の量子化リップル成分がある。
第１トルク制御器４１は、ローパスフィルタ処理後の第１合計制御トルクに基づいて第１モータ２を制御する。
【００１８】
このような第１フィードバック制御系３０でのフィードバック制御により、第１フィードバック制御系３０は、第１モデル制御系１０から出力される第１モデル位置指令、第１モデル速度指令および第１モデルトルク指令にしたがって第１モータ２を回転駆動する。第１モータ２の回転にしたがってテーブル４は駆動される。
そして、第１フィードバック制御系３０において制御位置または制御速度に誤差が生じると、または第２フィードバック制御系７０の制御位置に対して第１フィードバック制御系３０の制御位置がずれると、これらの誤差およびずれを抑制するように第１モータ２の駆動トルクが増減する。
これにより、第１モータ２は、第１モデルトルク指令および第１モデル速度指令にしたがう動きで第１モデル位置指令の位置まで制御される。
【００１９】
第１モデル制御系１０は、外部位置指令を入力とし、第１フィードバック制御系３０に対応するモデルを用いて第１フィードバック制御系３０の仮想的な動作を演算し、第１フィードバック制御系３０に与える第１モデル指令を生成する。
第１モデル位置指令は、第１モータ２の制御位置を示す指令である。
第１モデル速度指令は、駆動中の第１モータ２の制御速度を示す指令である。
第１モデルトルク指令は、駆動中の第１モータ２の制御トルクを示す指令である。
そして、本実施形態の第１モデル制御系１０は、第１フィードバック制御系３０の動作を演算するために、第１モデル位置誤差演算器１１、第１モデル位置制御器１２、第１モデル速度演算器１３、第１モデル速度誤差演算器１４、第１モデル速度制御器１５、第１モデルトルク誤差演算器１６、第１モデルトルク指令ローパスフィルタ１７、第１可動部モデル１８、第１機台モデル１９、第１モデル位置加算器２０、第１状態帰還量演算器２１、を有する。
また、第１状態帰還量演算器２１は、第１機台帰還量演算器２２、第１フィルタ帰還量演算器２３、第１合計帰還量演算器２４、を有する。これにより、第１状態帰還量演算器２１は、機台の振動に起因して機台上でテーブル４が振動する場合において機台に対するテーブル４の振動を抑制するための合計帰還量を演算する。
そして、第１モデル位置誤差演算器１１、第１モデル位置制御器１２、第１モデル速度誤差演算器１４、第１モデル速度制御器１５、第１モデルトルク誤差演算器１６、第１モデルトルク指令ローパスフィルタ１７、第１可動部モデル１８および第１機台モデル１９、第１モデル位置加算器２０は、第１モデル制御系１０のメインフィードバックループを構成する。この第１モデル制御系１０のメインフィードバックループは、第１フィードバック制御系３０のフィードバックループと対応する。
【００２０】
第１モデル位置誤差演算器１１は、第１制御位置誤差生成器３１に対応するモデルにより第１モデル位置誤差を演算する。第１モデル位置誤差演算器１１は、外部位置指令から、第１モデル位置加算器２０から出力される第１モデル位置を減算して第１モデル位置誤差を演算する。
第１モデル位置制御器１２は、第１位置制御器３５に対応するモデルにより第１モデル速度を演算する。第１モデル位置制御器１２は、第１モデル位置誤差から第１モデル速度を演算する。
第１モデル速度演算器１３は、第１検出速度生成器３６に対応するモデルにより第１モデル検出速度を演算する。第１モデル速度演算器１３は、第１モデル位置から第１モデル検出速度を演算する。第１モデル検出速度は、第１モデル速度指令として第１フィードバック制御系３０へ出力される。
第１モデル速度誤差演算器１４は、第１制御速度誤差生成器３７に対応するモデルにより第１モデル速度誤差を演算する。第１モデル速度誤差演算器１４は、第１モデル速度から第１モデル検出速度を減算して第１モデル速度誤差を演算する。
第１モデル速度制御器１５は、第１速度制御器３８に対応するモデルにより第１モデルトルクを演算する。第１モデル速度制御器１５は、第１モデル速度誤差から第１モデルトルクを演算する。
第１モデルトルク誤差演算器１６は、第１モデルトルクから、第１状態帰還量演算器２１により演算される合計帰還量を減算して状態フィードバック補償後の第１モデルトルクを演算する。状態フィードバック補償後の第１モデルトルクは、第１モデルトルク指令として第１フィードバック制御系３０へ出力される。
第１モデルトルク指令ローパスフィルタ１７は、第１トルク指令ローパスフィルタ４０に対応するモデルによりフィルタ演算を実施する。第１モデルトルク指令ローパスフィルタ１７は、状態フィードバック補償後の第１モデルトルクをローパスフィルタ処理する。
第１可動部モデル１８は、第１モータ２からテーブル４までの機械系の動きに対応している可動部のモデルにより可動部モデルの位置を演算する。ここでは、第１モータ２、第１ボールネジ５からテーブル４までの機械系に対応する可動部モデルとして、それらの間でずれが生じない剛体モデルを用いる。第１可動部モデル１８は、状態フィードバック補償処理およびローパスフィルタ処理後の第１モデルトルクから、第１可動部モデル１８の位置を演算する。
第１機台モデル１９は、第１モータ２やテーブル４が取り付けられる機台の動きに対応している機台のモデルにより機台モデルの位置を演算する。機台は、たとえばレベリングボルトにより床に載置される。そして、テーブル４を高速に動かした場合に機台が振動し、それにより機台上でのテーブル４の相対的な位置が機台を振動しないとした場合での位置からずれることがある。機台のモデルは、たとえばこの機台の振動をモデリングしたものでよい。第１機台モデル１９は、状態フィードバック補償処理およびローパスフィルタ処理後の第１モデルトルクから、第１機台モデル１９の位置を演算する。
第１モデル位置加算器２０は、第１可動部モデル１８の位置と第１機台モデル１９の位置とを加算して、第１モデル位置を演算する。第１モデル位置加算器２０が演算した第１モデル位置は、第１モデル位置指令として第１フィードバック制御系３０へ出力される。
第１機台帰還量演算器２２は、振動する位置についての帰還量を演算する。具体的にはたとえば、第１機台帰還量として、第１機台モデル１９の位置に、機台位置フィードバックゲインＫＰＢと、機台速度フィードバックゲインＫＶＢＳと、機台加速度フィードバックゲインＫＡＢＳ２とを加算した合算ゲイン（ＫＰＢ＋ＫＶＢＳ＋ＫＡＢＳ２）を乗算したものを演算する。ここで、Ｓは微分演算子を示す。
第１フィルタ帰還量演算器２３は、第１モデルトルク指令ローパスフィルタ１７のフィルタ処理についての帰還量を演算する。具体的にはたとえば、フィルタ処理帰還量として、状態フィードバック補償処理およびローパスフィルタ処理後の第１モデルトルクに、フィルタ処理フィードバックゲインＫＬＰを乗算したものを演算する。
第１合計帰還量演算器２４は、第１状態帰還量演算器２１で演算される各種の帰還量を加算する。ここでは、第１機台帰還量とフィルタ処理帰還量とを加算して合計帰還量を演算する。演算された合計帰還量は、第１モデルトルク誤差演算器１６へ出力される。
【００２１】
このような第１フィードバック制御系３０に対応するフィードバック制御により、第１モデル制御系１０は、機台とテーブル４との間の振動を抑制し得る第１モデル位置指令、第１モデル速度指令および第１モデルトルク指令を生成する。
また、第１モデル制御系１０の各要素には、テーブル４に対する制御が所望の位置決め制御となるように制御パラメータを設定すればよい。
たとえば、第１モデル制御系１０の状態方程式に対する特性方程式が５重根を持つようにパラメータを算出して設定する。５重根を持つパラメータを設定することにより、第１モデル制御系１０はテーブル４と機台との間に振動を生じないモデル指令を生成できる。そして、テーブル４と機台との間に振動を生じない第１モデル制御系１０からのモデル指令により第１フィードバック制御系３０を駆動することによって、第１フィードバック制御系３０により実際に駆動されるテーブル４も振動を生じずに駆動されることになる。
また、第１フィードバック制御系３０の安定性が許容できる範囲内で第１モデル制御系１０および第１フィードバック制御系３０のゲインを高めることにより、実際に駆動されるテーブル４と機台との間に振動を生じさせずに高速に駆動することができる。
【００２２】
第２フィードバック制御系７０は、第２制御位置誤差生成器７１、第２位置制御器７５、第２検出速度生成器７６、第２制御速度誤差生成器７７、第２速度制御器７８、第２制御トルク生成器７９、第２トルク指令ローパスフィルタ８０、第２トルク制御器８１、を有する。
そして、第２制御位置誤差生成器７１、第２位置制御器７５、第２制御速度誤差生成器７７、第２速度制御器７８、第２制御トルク生成器７９、第２トルク指令ローパスフィルタ８０、第２トルク制御器８１、第２モータ３、および第２センサ８２は、第２モータ３を実際に制御するフィードバックループを構成する。
これら第２フィードバック制御系７０の各構成要素は、第１フィードバック制御系３０において番号が異なる同名の構成要素と同一であり、その詳細な説明を省略する。
ただし、第２位置制御器７５は、第２制御位置誤差生成器７１が生成した第２制御位置誤差から、第２制御速度を生成する。つまり、第１フィードバック制御系３０とは異なり、同期補償処理をしていない第２制御位置誤差に基づいて第２制御速度を生成する。
【００２３】
第２モデル制御系５０は、第２フィードバック制御系７０の動作を演算するために、第２モデル位置誤差演算器５１、第２モデル位置制御器５２、第２モデル速度演算器５３、第２モデル速度誤差演算器５４、第２モデル速度制御器５５、第２モデルトルク誤差演算器５６、第２モデルトルク指令ローパスフィルタ５７、第２可動部モデル５８、第２機台モデル５９、第２モデル位置加算器６０、第２状態帰還量演算器６１、を有する。
また、第２状態帰還量演算器６１は、第２機台帰還量演算器６２、第２フィルタ帰還量演算器６３、第２合計帰還量演算器６４、を有する。これにより、第２状態帰還量演算器６１は、機台の振動に起因して機台上でテーブル４が振動する場合において機台に対するテーブル４の振動を抑制するための合計帰還量を演算する。
そして、第２モデル位置誤差演算器５１、第２モデル位置制御器５２、第２モデル速度誤差演算器５４、第２モデル速度制御器５５、第２モデルトルク誤差演算器５６、第２モデルトルク指令ローパスフィルタ５７、第２可動部モデル５８および第２機台モデル５９、第２モデル位置加算器６０は、第２モデル制御系５０のメインフィードバックループを構成する。この第２モデル制御系５０のメインフィードバックループは、第２フィードバック制御系７０のフィードバックループと対応する。
これら第２モデル制御系５０の各構成要素は、第１モデル制御系１０において番号が異なる同名の構成要素と同一であり、その詳細な説明を省略する。第２モデル制御系５０の各部のパラメータには、第１モデル制御系１０と同じ値が設定される。
そして、以下の説明において、第２フィードバック制御系７０および第２モデル制御系５０での各種の信号名には、対応する第１フィードバック制御系３０および第１モデル制御系１０での各種の信号名の番号を第１から第２へ変更したものを使用する。
このように軸１の制御系と軸２の制御系とで同じ値のパラメータを使用することにより、第１モデル制御系１０および第２モデル制御系５０からの指令は各軸同時に同じ値で出力される。これにより、軸間のトルク印加が同時になる。
【００２４】
なお、図１のモータ制御装置１において、第１センサ４２は、第１モータ２と一体に構成されてよい。そして、第１モータ２および第１センサ４２以外の第１フィードバック制御系３０の構成要素と第１モデル制御系１０とは、第１モータ２および第１センサ４２と第１ケーブルで接続される第１モータ制御装置中の第１コンピュータ装置に実現されてよい。この場合、第１フィードバック制御系３０の各構成要素は演算処理により各々の処理を実行することになり、第１モデル制御系１０の各部の演算処理と好適に対応し得る。
同様に、第２センサ８２は、第２モータ３と一体に構成されてよい。そして、第２モータ３および第２センサ８２以外の第２フィードバック制御系７０の構成要素と第２モデル制御系５０とは、第２モータ３および第２センサ８２と第２ケーブルで接続される第２モータ制御装置中の第２コンピュータ装置に実現されてよい。この場合、第２フィードバック制御系７０の各構成要素は演算処理により各々の処理を実行することになり、第２モデル制御系５０の各部の演算処理と好適に対応し得る。
また、このように第１モータ制御装置と第２モータ制御装置とを用いる場合、第１モータ制御装置と第２モータ制御装置とは通信ケーブルで連結され、第２モータ制御装置から第１モータ制御装置へ第２制御位置誤差を送信する必要がある。
この他にもたとえば、第１コンピュータ装置と第２コンピュータ装置は、単一のモータ制御装置内に設けられてもよい。
また、図１中の第１モータ２、第１センサ４２、第２モータ３および第２センサ８２以外の構成要素は、単一のモータ制御装置中の単一のコンピュータ装置に実現されてもよい。この場合、第２制御位置誤差は、たとえばプログラム間通信により送信し得る。
また、第１モデル制御系１０と第２モデル制御系５０とを１個のモデル制御系とし、この１個のモデル制御系から第１フィードバック制御系３０および第２フィードバック制御系７０へ共通のモデル指令を供給してもよい。
【００２５】
次に、図１のモータ制御装置１の動作について説明する。
【００２６】
テーブル４の位置を制御するために、第１モデル制御系１０および第２モデル制御系５０には、上位のコントローラから共通の外部位置指令が同時に供給される。
【００２７】
外部位置指令が供給された第１モデル制御系１０は、外部位置指令から第１モデル位置を減算し、第１モデル位置誤差から第１モデル速度を演算する。また、第１モデル位置から第１モデル検出速度を演算し、第１モデル速度から第１モデル検出速度を減算し、第１モデル速度誤差から第１モデルトルクを演算し、第１モデルトルクから合計帰還量を減算し、状態フィードバック補償後の第１モデルトルクをローパスフィルタ処理する。また、状態フィードバック補償処理およびローパスフィルタ処理後の第１モデルトルクから、第１可動部モデル１８の位置と第１機台モデル１９の位置とを演算し、これらを加算して第１モデル位置を演算する。また、振動する位置についての帰還量と、フィルタ処理についての帰還量とを演算し、これらを合計して合計帰還量を演算する。
この一連の演算処理により、第１モデル制御系１０は、第１モデル指令として第１モデル位置指令、第１モデル速度指令、第１モデルトルク指令を生成して第１フィードバック制御系３０へ出力する。
【００２８】
第１モデル指令が供給された第１フィードバック制御系３０は、第１モデル位置指令と第１センサ４２から得られる第１検出位置との位置誤差を示す第１制御位置誤差を生成する。
また、第１フィードバック制御系３０は、自身の第１制御位置誤差と第２制御位置誤差生成器７１により生成される第２制御位置誤差との位置誤差の差分（同期誤差）を示す第１同期位置誤差を生成し、第１位置同期誤差補償量を生成する。また、第１制御位置誤差と第１位置同期誤差補償量とから同期補償処理後の第１制御位置誤差を生成し、第１制御速度を生成する。
また、第１フィードバック制御系３０は、第１制御速度、第１検出速度、および第１モデル速度指令から第１制御速度誤差を生成し、第１制御トルクを生成する。
また、第１フィードバック制御系３０は、第１制御トルクおよび第１モデルトルク指令から第１合計制御トルクを生成し、ローパスフィルタ処理する。そして、第１トルク制御器４１は、ローパスフィルタ処理後の第１合計制御トルクに基づいて第１モータ２を制御する。第１センサ４２は、第１モータ２の回転位置を検出する。また、第１検出速度生成器３６は、第１センサ４２が検出した回転位置から第１検出速度を生成する。
【００２９】
また、第１モデル制御系１０と同時に同じ外部位置指令が供給される第２モデル制御系５０は、上述した第１モデル制御系１０と同じフィードバック制御を実行する。第２モデル制御系５０から第２モデル指令が供給される第２フィードバック制御系７０も、上述した第１フィードバック制御系３０と同じフィードバック制御を実行する。
ただし、第２フィードバック制御系７０は、第１フィードバック制御系３０の第１同期位置誤差生成器３２、第１位置同期補償器３３、および第１同期補償位置誤差生成器３４に対応する構成要素を備えていないので、第２位置制御器７５は、第２制御位置誤差生成器７１が生成した第２制御位置誤差から、第２制御速度を生成する。同期補償処理をしていない第２制御位置誤差に基づいて第２制御速度を生成する。
【００３０】
そして、本実施形態では、２個のフィードバック制御系の各々は、外部位置指令ではなく、モデル指令に基づいて各々のモータをフィードバック制御する。しかも、外部位置指令からモデル指令を生成する２個のモデル制御系は、２個のモータで駆動される可動部の動きに対応している可動部モデルおよびモータおよび可動部が取り付けられる機台の動きに対応している機台モデルを含むとともに、機台モデルの状態をフィードバックして機台の振動に起因した機台とテーブル４との間の振動を抑制することにより、機台とテーブル４との相対振動を抑制して安定化させる。これにより、２個のフィードバック制御系はモデルに追従して機台とテーブル４との相対振動を生じないように安定したフィードバック制御を互いに独立して実行し、２個のモータは外部位置指令に対して同様に追従するように制御され得る。２個のフィードバック制御系は、同時に入力される共通の外部位置指令に基づいて２個のモータを互いに同期させるように制御することができる。そして、テーブル４が取り付けられる機台が振動するような場合においてもテーブル４の振動を抑制して、２個のモータを互いに同期させることができる。
しかも、本実施形態では、第１フィードバック制御系３０は、第２フィードバック制御系７０の制御誤差との差分により、自身の制御誤差を補償する。第１フィードバック制御系３０は、その制御誤差が第２フィードバック制御系７０の制御誤差に対してずれが生じないように同期させながら、自身のフィードバック制御を実行する。すなわち、２個のモータを互いに独立したフィードバック制御系により互いに独立して制御しながらも、第１フィードバック制御系３０と第２フィードバック制御系７０との間で生じ得る制御誤差のずれを補償することができる。つまり、これら２個のフィードバック制御系の間で生じ得る制御誤差のずれを２個のフィードバック制御系において補償することができる。
このように、本実施形態では、１個の可動部を共同して可動させる２個のモータを共通の外部位置指令で、かつ、機台とテーブル４との間の振動を抑制するように状態をフィードバックする同じモデルでモデル追従制御を行うことにより、２個のフィードバック制御系に与えるトルク指令を全軸で同一にすることができる。これにより、機台振動が生じ得る場合であっても機台とテーブル４との間の振動を抑えて２個のフィードバック制御系の制御誤差の間でずれが発生し難いように制御を実行することができる。
しかも、それでも他の原因により２個のフィードバック制御系の間で生じ得る微小な制御誤差のずれを２個のフィードバック制御系の間で補償している。よって、２個のモータの制御系は、振動に起因する同期ずれが発生し難い制御と同期ずれを抑える制御とが二重化された制御により１個の可動部を２個のモータで制御する場合での２個のモータの同期精度を高めることができる。
その結果、本実施形態では、１個の可動部を２個のモータで駆動する機械において、機台振動が生じ得るような場合であってもこの機台とテーブル４との間の振動を抑制して指令に対する追従性を向上させることができ、さらに２個のモータの間での同期精度を確保でき、その結果として高速高精度な位置決めを実現できる。
【００３１】
なお、上記実施形態は、可動部を２個のモータで駆動するために、２組のモデル制御系およびフィードバック制御系を用いる例である。また、同期位置誤差生成器、位置同期補償器、および同期補償位置誤差生成器を、１個目のフィードバック制御系に適用した例である。
この他にも、同期位置誤差生成器、位置同期補償器、および同期補償位置誤差生成器は、２個目のフィードバック制御系に適用してもよい。
さらに他にも、可動部を３個以上のモータで駆動してもよい。この場合、モデル制御系およびフィードバック制御系は、基本的にモータと同数組で設ければよい。また、Ｎ（Ｎは２以上の自然数）個のモータを使用する場合、同期位置誤差生成器、位置同期補償器、および同期補償位置誤差生成器は、（Ｎ−１）個のフィードバック制御系に設ければよい。この（Ｎ−１）個のフィードバック制御系において（Ｎ−１）個の同期位置誤差生成器は、残りの１個のフィードバック制御系の制御位置誤差との間で位置同期誤差を生成すればよい。
【００３２】
［第２実施形態］
図２は、本発明の第２実施形態に係るモータ制御装置１のブロック図である。
図２のモータ制御装置１は、図１のものと比べて、第２フィードバック制御系７０が第２同期位置誤差生成器７２、第２位置同期補償器７３、および第２同期補償位置誤差生成器７４を有する点で異なる。
第２同期位置誤差生成器７２、第２位置同期補償器７３、および第２同期補償位置誤差生成器７４は、第１同期位置誤差生成器３２、第１位置同期補償器３３、および第１同期補償位置誤差生成器３４と対応する。
第２同期位置誤差生成器７２は、自身の第２制御位置誤差と第１制御位置誤差生成器３１により生成される第１制御位置誤差とに基づいて、これらの制御位置誤差の差分（同期誤差）を示す第２同期位置誤差を生成する。第２同期位置誤差は、たとえば自身の第２制御位置誤差から他の第１制御位置誤差を減算したものでよい。この場合、第１フィードバック制御系３０に対する第２フィードバック制御系７０の同期誤差が得られる。
第２位置同期補償器７３は、第２同期位置誤差から、第２位置同期誤差補償量を生成する。本実施形態では、第１フィードバック制御系３０と第２フィードバック制御系７０との間で相互に補償をかけているので、第１位置同期補償器３３および第２位置同期補償器７３には比例制御器を用いるとよい。
第２同期補償位置誤差生成器７４は、第２フィードバック制御系７０での制御位置誤差である第２制御位置誤差と、２個のフィードバック制御系間の同期位置誤差である第２位置同期誤差補償量とに基づいて、同期補償処理後の第２制御位置誤差を生成する。同期補償処理後の第２制御位置誤差は、たとえば第２制御位置誤差と第２位置同期誤差補償量とを加算した合計値でよい。
第２位置制御器７５は、同期補償処理後の第２制御位置誤差から、第２制御速度を生成する。第２位置制御器７５は、第２フィードバック制御系７０での制御位置誤差と、第１フィードバック制御系３０を基準とした第２フィードバック制御系７０の同期位置誤差とに応じた第２制御速度を生成する。そして、第１フィードバック制御系３０の制御位置と比較して第２フィードバック制御系７０の制御位置が遅れると、第２制御速度は大きくなる。
これ以外の図２のモータ制御装置１の構成および動作は、図１のもの同様であり、説明を省略する。
【００３３】
そして、本実施形態では、第１フィードバック制御系３０および第２フィードバック制御系７０は、２軸間の位置誤差をそれらの間で互いに補償できる。その結果、個々のフィードバック制御系の制御応答が高くなくても、軸間の位置誤差を小さくして同期精度を高めることができる。第１実施形態よりも更に高い同期精度を期待し得る。
このため、たとえば第１フィードバック制御系３０および第２フィードバック制御系７０を同じ振動モデルに追従させることにより同期誤差が発生し難いようにしつつも、さらにそれでも他の原因により発生する軸間の同期誤差を第１実施形態より効果的に抑制することができる。
このように本実施形態では、１個の可動部を複数個（ここでは２個）のモータで駆動する機械において同じモデルを用いて個々のモデル制御系を構成するとともに該モデルに追従させて実際のフィードバック制御系に制御を実行させることにより、機台振動が生じ得るような場合であってもこの機台とテーブル４との間の振動を抑制して２個のモータの間での同期精度を確保でき、その結果として高速高精度な位置決めを実現できる。
【００３４】
［第３実施形態］
図３は、本発明の第３実施形態に係るモータ制御装置１のブロック図である。
図３のモータ制御装置１は、第１モデル制御系１０、第１フィードバック制御系３０、第２モデル制御系５０、および第２フィードバック制御系７０を有し、図１のモータ制御装置１と同様に第１モータ２と第２モータ３との２個のモータが共同して１個の可動部を駆動して可動部を高速高精度に位置決めできるものである。
以下、図１のモータ制御装置１と相違点を中心に説明する。また、図１のモータ制御装置１と同様の構成要素については、図１と同様の符号を付してその説明を省略する。
【００３５】
第１フィードバック制御系３０は、第１制御位置誤差生成器３１、第１同期位置誤差生成器３２、第１位置同期補償器３３、第１同期補償位置誤差生成器３４、第１位置制御器３５、第１検出速度生成器３６、第１制御速度誤差生成器３７、第１速度制御器３８、第１制御トルク生成器３９、第１トルク制御器４１、を有する。
そして、第１制御位置誤差生成器３１、第１同期補償位置誤差生成器３４、第１位置制御器３５、第１制御速度誤差生成器３７、第１速度制御器３８、第１制御トルク生成器３９、第１トルク制御器４１、第１モータ２、および第１センサ４２は、第１モータ２を実際に制御するフィードバックループを構成する。
第１トルク制御器４１は、第１制御トルク生成器３９から出力される第１合計制御トルクに基づいて第１モータ２を制御する。
【００３６】
第１モデル制御系１０は、外部位置指令を入力とし、第１フィードバック制御系３０に対応するモデルを用いて第１フィードバック制御系３０の仮想的な動作を演算し、第１フィードバック制御系３０に与える第１モデル指令を生成する。
本実施形態の第１モデル制御系１０は、第１フィードバック制御系３０の動作を演算するために、第１モデル位置誤差演算器１１、第１モデル位置制御器１２、第１前段状態補償モデル速度誤差演算器９１、第１後段状態補償モデル速度誤差演算器９２、第１モデル速度制御器１５、第１前段状態補償モデルトルク誤差演算器９３、第１後段状態補償モデルトルク誤差演算器９４、第１二慣性モデル９５、第１トルク帰還量演算器１０６、第１速度帰還量演算器１０７、を有する。
そして、第１モデル位置誤差演算器１１、第１モデル位置制御器１２、第１前段状態補償モデル速度誤差演算器９１、第１後段状態補償モデル速度誤差演算器９２、第１モデル速度制御器１５、第１前段状態補償モデルトルク誤差演算器９３、第１後段状態補償モデルトルク誤差演算器９４、および第１二慣性モデル９５は、第１モデル制御系１０のメインフィードバックループを構成する。この第１モデル制御系１０のメインフィードバックループは、第１フィードバック制御系３０のフィードバックループと対応する。
【００３７】
第１二慣性モデル９５は、第１モータ２からテーブル４までの機械系の動作としてテーブル４が振動する動作を演算する。
二慣性モデルは、機械系を、第１モータ２側に相当するモータ側モデルと、テーブル４側に相当する負荷側モデルとの２個のモデルで表わし、それらの間のねじり振動成分を考慮したモデルである。
本実施形態の第１二慣性モデル９５は、第１モータ側モデル９６、第１前段モータ側積分器９７、第１後段モータ側積分器９８、第１ねじりトルク演算器９９、第１負荷側モデル１００、第１前段負荷側積分器１０１、第１後段負荷側積分器１０２、第１モデル内加速度誤差演算器１０３、第１モデル内速度誤差演算器１０４、第１モデル内位置誤差演算器１０５、を有する。
第１モータ側モデル９６は、第１二慣性モデル９５に入力される後述する状態補償後の第１モデルトルクに、モータ側イナーシャを考慮した１／ＪＭのゲインを乗算して第１モータ側モデル加速度を演算する。
第１前段モータ側積分器９７は、第１モータ側モデル加速度を積分して第１モータ側モデル速度を演算する。第１モータ側モデル速度は、第１二慣性モデル９５が生成するモデル速度として用いることができ、第１モデル速度指令として出力される。
第１後段モータ側積分器９８は、第１モータ側モデル速度を積分して第１モータ側モデル位置を演算する。第１モータ側モデル位置は、第１二慣性モデル９５が生成するモデル位置として用いることができ、第１モデル位置指令として出力される。
第１負荷側モデル１００は、第１ねじりトルク演算器９９が演算する第１ねじりトルクに、負荷側イナーシャを考慮した１／ＪＬのゲインを乗算して第１負荷側モデル加速度を演算する。
第１前段負荷側積分器１０１は、第１負荷側モデル加速度を積分して第１負荷側モデル速度を演算する。
第１後段負荷側積分器１０２は、第１負荷側モデル速度を積分して第１負荷側モデル位置を演算する。
第１モデル内加速度誤差演算器１０３は、第１モータ側モデル加速度から第１負荷側モデル加速度を減算して第１モデル内加速度誤差を演算する。
第１モデル内速度誤差演算器１０４は、第１モータ側モデル速度から第１負荷側モデル速度を減算して第１モデル内速度誤差を演算する。
第１モデル内位置誤差演算器１０５は、第１モータ側モデル位置から第１負荷側モデル位置を減算して第１モデル内位置誤差を演算する。
第１ねじりトルク演算器９９は、第１モデル内位置誤差にねじり剛性に対応するゲインＫＢを乗算して第１ねじりトルクを生成する。
このような振動モデルにより、二慣性モデルは、モータ側モデルと負荷側モデルとの間でねじり振動を生じる動作を演算することができる。
【００３８】
第１トルク帰還量演算器１０６および第１速度帰還量演算器１０７は、二慣性モデルの状態のフィードバック量である帰還量を演算する。
第１トルク帰還量演算器１０６は、第１モデル内加速度誤差に帰還ゲインＫＡＢを乗算して第１トルク帰還量を演算する。
第１速度帰還量演算器１０７は、第１モデル内速度誤差に帰還ゲインＫＶＢを乗算して第１速度帰還量を演算する。
【００３９】
第１前段状態補償モデル速度誤差演算器９１は、第１モデル位置制御器１２が演算した第１モデル速度から第１速度帰還量を減算する。
第１後段状態補償モデル速度誤差演算器９２は、第１前段状態補償モデル速度誤差演算器９１の演算結果から第１モータ側モデル速度を減算する。
これにより、第１モデル速度と第１モータ側モデル速度との第１モデル速度誤差から、第１二慣性モデル９５で演算される速度に関する状態帰還量を減算して補償した状態補償後の第１モデル速度誤差が得られる。第１モデル速度制御器１５は、状態補償後の第１モデル速度誤差から第１モデルトルクを演算する。
【００４０】
第１前段状態補償モデルトルク誤差演算器９３は、第１モデルトルクから第１トルク帰還量を減算する。
第１後段状態補償モデルトルク誤差演算器９４は、第１前段状態補償モデルトルク誤差演算器９３の演算結果から第１ねじりトルクを減算する。
これにより、第１モデルトルクと第１ねじりトルクとの第１モデルトルク誤差から、第１二慣性モデル９５で演算される加速度に関する状態帰還量を減算して補償した状態補償後の第１モデルトルク誤差が得られる。この状態補償後の第１モデルトルク誤差が、第１二慣性モデル９５の第１モータ側モデル９６へ出力される。また、状態補償後の第１モデルトルク誤差は、第１二慣性モデル９５に与えられるモデルトルクであり、第１モデルトルク指令として出力される。
【００４１】
このような第１フィードバック制御系３０に対応するフィードバック制御により、第１モデル制御系１０は、第１モデル位置指令、第１モデル速度指令および第１モデルトルク指令を生成する。
また、第１モデル制御系１０の各要素には、テーブル４に所望の位置決め制御を可能とするための制御パラメータを設定すればよい。
本実施形態のように二慣性系の機械モデルを用いてモータ側モデルと負荷側モデルとの間での加速度差（モデル内加速度誤差）と速度差（モデル内速度誤差）との状態フィードバックを行う場合、現代制御理論を適用することでテーブル４が振動を生じないように安定するパラメータを算出できる。モデル制御系の状態方程式に対する特性方程式が４重根を持つようにパラメータを算出して設定することにより、テーブル４は振動を生じないように安定する。
【００４２】
第２フィードバック制御系７０は、第２制御位置誤差生成器７１、第２位置制御器７５、第２検出速度生成器７６、第２制御速度誤差生成器７７、第２速度制御器７８、第２制御トルク生成器７９、第２トルク制御器８１、を有する。
そして、第２制御位置誤差生成器７１、第２位置制御器７５、第２検出速度生成器７６、第２制御速度誤差生成器７７、第２速度制御器７８、第２制御トルク生成器７９、第２トルク制御器８１、第２モータ３、および第２センサ８２は、第２モータ３を実際に制御するフィードバックループを構成する。
これら第２フィードバック制御系７０の各構成要素は、第１フィードバック制御系３０において番号が異なる同名の構成要素と同一であり、その詳細な説明を省略する。
ただし、第２位置制御器７５は、第２制御位置誤差生成器７１が生成した第２制御位置誤差から、第２制御速度を生成する。つまり、第１フィードバック制御系３０とは異なり、同期補償処理をしていない第２制御位置誤差に基づいて第２制御速度を生成する。
【００４３】
第２モデル制御系５０は、第２フィードバック制御系７０の動作を演算するために、第２モデル位置誤差演算器５１、第２モデル位置制御器５２、第２前段状態補償モデル速度誤差演算器１１１、第２後段状態補償モデル速度誤差演算器１１２、第２モデル速度制御器５５、第２前段状態補償モデルトルク誤差演算器１１３、第２後段状態補償モデルトルク誤差演算器１１４、第２二慣性モデル１１５、第２トルク帰還量演算器１２６、第２速度帰還量演算器１２７、を有する。
また、第２二慣性モデル１１５は、第２モータ側モデル１１６、第２前段モータ側積分器１１７、第２後段モータ側積分器１１８、第２ねじりトルク演算器１１９、第２負荷側モデル１２０、第２前段負荷側積分器１２１、第２後段負荷側積分器１２２、第２モデル内加速度誤差演算器１２３、第２モデル内速度誤差演算器１２４、第２モデル内位置誤差演算器１２５、を有する。
そして、第２モデル位置誤差演算器５１、第２モデル位置制御器５２、第２前段状態補償モデル速度誤差演算器１１１、第２後段状態補償モデル速度誤差演算器１１２、第２モデル速度制御器５５、第２前段状態補償モデルトルク誤差演算器１１３、第２後段状態補償モデルトルク誤差演算器１１４、および第２二慣性モデル１１５は、第２モデル制御系５０のメインフィードバックループを構成する。この第２モデル制御系５０のメインフィードバックループは、第２フィードバック制御系７０のフィードバックループと対応する。
これら第２モデル制御系５０の各構成要素は、第１モデル制御系１０において番号が異なる同名の構成要素と同一であり、その詳細な説明を省略する。第２モデル制御系５０の各部のパラメータには、第１モデル制御系１０と同じ値が設定される。
そして、以下の説明において、第２フィードバック制御系７０および第２モデル制御系５０での各種の信号名には、対応する第１フィードバック制御系３０および第１モデル制御系１０での各種の信号名の番号を第１から第２へ変更したものを使用する。
また、軸１の制御系と軸２の制御系とで同じ値のパラメータを使用することにより、第１モデル制御系１０および第２モデル制御系５０からの指令は各軸同時に同じ値で出力される。これにより、軸間のトルク印加が同時になる。
【００４４】
次に、図３のモータ制御装置１の動作について説明する。
【００４５】
テーブル４の位置を制御するために、第１モデル制御系１０および第２モデル制御系５０には、上位のコントローラから共通の外部位置指令が同時に供給される。
【００４６】
外部位置指令が供給された第１モデル制御系１０は、外部位置指令から第１モデル位置を減算し、第１モデル位置誤差から第１モデル速度を演算する。また、第１モデル速度から第１速度帰還量を減算し、さらに第１モータ側モデル速度を減算して、状態補償後の第１モデル速度誤差を演算する。また、状態補償後の第１モデル速度誤差から第１モデルトルクを演算し、第１モデルトルクから第１トルク帰還量を減算し、さらに第１ねじりトルクを減算して、状態補償後の第１モデルトルク誤差を演算する。
第１二慣性モデル９５では、まず、状態補償後の第１モデルトルク誤差から第１モータ側モデル加速度を演算し、さらに第１モータ側モデル速度と第１モータ側モデル位置とを演算する。また、第１ねじりトルクから第１負荷側モデル加速度を演算し、さらに第１負荷側モデル速度と第１負荷側モデル位置とを演算する。また、モータ側と負荷側との差分である第１モデル内加速度誤差、第１モデル内速度誤差および第１モデル内位置誤差を演算する。また、第１ねじりトルク、第１トルク帰還量、および第１速度帰還量を演算する。
この一連の演算処理により、第１モデル制御系１０は、第１モデル指令としての第１モデル位置指令、第１モデル速度指令、第１モデルトルク指令を生成して第１フィードバック制御系３０へ出力する。
【００４７】
第１モデル指令が供給された第１フィードバック制御系３０は、第１モデル位置指令と第１センサ４２から得られる第１検出位置との位置誤差を示す第１制御位置誤差を生成する。
また、第１フィードバック制御系３０は、自身の第１制御位置誤差と第２制御位置誤差生成器７１により生成される第２制御位置誤差との位置誤差の差分（同期誤差）を示す第１同期位置誤差を生成し、第１位置同期誤差補償量を生成する。また、第１制御位置誤差と第１位置同期誤差補償量とから同期補償処理後の第１制御位置誤差を生成し、第１制御速度を生成する。
また、第１フィードバック制御系３０は、第１制御速度、第１検出速度、および第１モデル速度指令から第１制御速度誤差を生成し、第１制御トルクを生成する。
また、第１フィードバック制御系３０は、第１制御トルクおよび第１モデルトルク指令から第１合計制御トルクを生成する。そして、第１トルク制御器４１は、第１合計制御トルクに基づいて第１モータ２を制御する。第１センサ４２は、第１モータ２の回転位置を検出する。また、第１検出速度生成器３６は、第１センサ４２が検出した回転位置から第１検出速度を生成する。
【００４８】
また、第１モデル制御系１０と同時に同じ外部位置指令が供給される第２モデル制御系５０は、上述した第１モデル制御系１０と同じフィードバック制御を実行する。第２モデル制御系５０から第２モデル指令が供給される第２フィードバック制御系７０も、上述した第１フィードバック制御系３０と同じフィードバック制御を実行する。
【００４９】
そして、本実施形態では、２個のフィードバック制御系の各々は、外部位置指令ではなく、モデル指令に基づいて各々のモータをフィードバック制御する。しかも、外部位置指令からモデル指令を生成する２個のモデル制御系は、２個のモータで可動部を駆動する際のモータから可動部までの機械系の動きに対応している二慣性モデルを含むとともに、二慣性モデルの状態をフィードバックしてモータから可動部までの機械系の振動に起因したテーブル４の振動を抑制することにより、テーブル４の振動を抑制して安定化させる。これにより、２個のフィードバック制御系はモデルに追従してテーブル４の振動を生じないように安定化させたフィードバック制御を互いに独立して実行し、２個のモータは外部位置指令に対して同様に追従するように制御され得る。２個のフィードバック制御系は、同時に入力される共通の外部位置指令に基づいて２個のモータを互いに同期させるように制御することができる。そして、モータから可動部までの機械系において振動を生ずるような場合においてもテーブル４の振動を抑制して、２個のモータを互いに同期させることができる。
しかも、本実施形態では、第１フィードバック制御系３０は、第２フィードバック制御系７０の制御誤差との差分により、自身の制御誤差を補償する。第１フィードバック制御系３０は、その制御誤差が第２フィードバック制御系７０の制御誤差に対してずれが生じないように同期させながら、自身のフィードバック制御を実行する。すなわち、２個のモータを互いに独立したフィードバック制御系により互いに独立して制御しながらも、第１フィードバック制御系３０と第２フィードバック制御系７０との間で生じ得る制御誤差のずれを補償することができる。これら２個のフィードバック制御系の間で生じ得る制御誤差のずれを２個のフィードバック制御系の間で補償することができる。
このように、本実施形態では、１個の可動部を共同して可動させる２個のモータを共通の外部位置指令で、かつ、モータからテーブル４までの機械系の振動を補償するように状態をフィードバックする同じ二慣性モデルでモデル追従制御を行うことにより、２個のフィードバック制御系に与えるトルク指令を全軸で同一にする事ができる。これにより、モータからテーブル４までの機械系に振動が生ずる場合であってもテーブル４の振動を抑えて２個のフィードバック制御系の制御誤差の間でずれが発生し難いように制御を実行することができる。
しかも、それでも他の原因により２個のフィードバック制御系の間で生じ得る微小な制御誤差のずれを２個のフィードバック制御系の間で補償している。よって、２個のモータの制御系は、振動に起因する同期ずれが発生し難い制御と同期ずれを抑える制御とが二重化された制御により１個の可動部を２個のモータで制御する場合での２個のモータの同期精度を高めることができる。
その結果、本実施形態では、１個の可動部を２個のモータで駆動する機械において、モータとテーブル４との間で振動が生じ得るような場合であっても、テーブル４の振動を抑制して指令に対する追従性を向上させることができ、さらに２個のモータの間での同期精度を確保でき、その結果として高速高精度な位置決めを実現できる。
【００５０】
なお、上記実施形態は、可動部を２個のモータで駆動するために、２組のモデル制御系およびフィードバック制御系を用いる例である。また、同期位置誤差生成器、位置同期補償器、および同期補償位置誤差生成器を、１個目のフィードバック制御系に適用した例である。
この他にも、同期位置誤差生成器、位置同期補償器、および同期補償位置誤差生成器は、２個目のフィードバック制御系に適用してもよい。
さらに他にも、可動部を３個以上のモータで駆動してもよい。この場合、モデル制御系およびフィードバック制御系は、基本的にモータと同数組で設ければよい。また、Ｎ（Ｎは２以上の自然数）個のモータを使用する場合、同期位置誤差生成器、位置同期補償器、および同期補償位置誤差生成器は、（Ｎ−１）個のフィードバック制御系に設ければよい。この（Ｎ−１）個のフィードバック制御系において（Ｎ−１）個の同期位置誤差生成器は、残りの１個のフィードバック制御系の制御位置誤差との間で位置同期誤差を生成すればよい。
【００５１】
［第４実施形態］
図４は、本発明の第４施形態に係るモータ制御装置１のブロック図である。
図４のモータ制御装置１は、図３のものと比べて、第２フィードバック制御系７０が第２同期位置誤差生成器７２、第２位置同期補償器７３、および第２同期補償位置誤差生成器７４を有する点で異なる。
第２同期位置誤差生成器７２、第２位置同期補償器７３、および第２同期補償位置誤差生成器７４は、第１同期位置誤差生成器３２、第１位置同期補償器３３、および第１同期補償位置誤差生成器３４と対応する。
第２同期位置誤差生成器７２は、自身の第２制御位置誤差と第１制御位置誤差生成器３１により生成される第１制御位置誤差とに基づいて、これらの制御位置誤差の差分（同期誤差）を示す第２同期位置誤差を生成する。第２同期位置誤差は、たとえば自身の第２制御位置誤差から他の第１制御位置誤差を減算したものでよい。この場合、第１フィードバック制御系３０に対する第２フィードバック制御系７０の同期誤差が得られる。
第２位置同期補償器７３は、第２同期位置誤差から、第２位置同期誤差補償量を生成する。本実施形態では、第１フィードバック制御系３０と第２フィードバック制御系７０との間で相互に補償をかけているので、第１位置同期補償器３３および第２位置同期補償器７３には比例制御器を用いるとよい。
第２同期補償位置誤差生成器７４は、第２フィードバック制御系７０での制御位置誤差である第２制御位置誤差と、２個のフィードバック制御系間の同期位置誤差である第２位置同期誤差補償量とに基づいて、同期補償処理後の第２制御位置誤差を生成する。同期補償処理後の第２制御位置誤差は、たとえば第２制御位置誤差と第２位置同期誤差補償量とを加算した合計値でよい。
第２位置制御器７５は、同期補償処理後の第２制御位置誤差から、第２制御速度を生成する。第２位置制御器７５は、第２フィードバック制御系７０での制御位置誤差と、第１フィードバック制御系３０を基準とした第２フィードバック制御系７０の同期位置誤差とに応じた第２制御速度を生成する。そして、第１フィードバック制御系３０の制御位置と比較して第２フィードバック制御系７０の制御位置が遅れると、第２制御速度は大きくなる。
これ以外の図４のモータ制御装置１の構成および動作は、図３のもの同様であり、説明を省略する。
【００５２】
そして、本実施形態では、第１フィードバック制御系３０および第２フィードバック制御系７０は、２軸間の位置誤差をそれらの間で互いに補償できる。その結果、個々のフィードバック制御系の制御応答が高くなくても、軸間の位置誤差を小さくして同期精度を高めることができる。第３実施形態よりも更に高い同期精度を期待し得る。
このため、たとえば第１フィードバック制御系３０および第２フィードバック制御系７０を同じ振動モデルに追従させることにより同期誤差が発生し難いようにしつつも、さらにそれでも他の原因により発生する軸間の同期誤差を第３実施形態より効果的に抑制することができる。
このように本実施形態では、１個の可動部を複数個（ここでは２個）のモータで駆動する機械において同じ二慣性モデルを用いて個々のモデル制御系を構成するとともに該モデルに追従させて実際のフィードバック制御系に制御を実行させることにより、モータとテーブル４との間で振動が生じ得るような場合であってもテーブル４の間の振動を抑制して２個のモータの間での同期精度を確保でき、その結果として高速高精度な位置決めを実現できる。
【符号の説明】
【００５３】
１  モータ制御装置
２  第１モータ
３  第２モータ
４  テーブル
５  第１ボールネジ
６  第２ボールネジ
１０  第１モデル制御系
１１  第１モデル位置誤差演算器
１２  第１モデル位置制御器
１３  第１モデル速度演算器
１４  第１モデル速度誤差演算器
１５  第１モデル速度制御器
１６  第１モデルトルク誤差演算器
１７  第１モデルトルク指令ローパスフィルタ（モデルローパスフィルタ）
１８  第１可動部モデル
１９  第１機台モデル
２０  第１モデル位置加算器
２１  第１状態帰還量演算器
２２  第１機台帰還量演算器
２３  第１フィルタ帰還量演算器
２４  第１合計帰還量演算器
３０  第１フィードバック制御系
３１  第１制御位置誤差生成器
３２  第１同期位置誤差生成器
３３  第１位置同期補償器
３４  第１同期補償位置誤差生成器
３５  第１位置制御器
３６  第１検出速度生成器
３７  第１制御速度誤差生成器
３８  第１速度制御器
３９  第１制御トルク生成器
４０  第１トルク指令ローパスフィルタ（制御ローパスフィルタ）
４１  第１トルク制御器
４２  第１センサ
５０  第２モデル制御系
５１  第２モデル位置誤差演算器
５２  第２モデル位置制御器
５３  第２モデル速度演算器
５４  第２モデル速度誤差演算器
５５  第２モデル速度制御器
５６  第２モデルトルク誤差演算器
５７  第２モデルトルク指令ローパスフィルタ（モデルローパスフィルタ）
５８  第２可動部モデル
５９  第２機台モデル
６０  第２モデル位置加算器
６１  第２状態帰還量演算器
６２  第２機台帰還量演算器
６３  第２フィルタ帰還量演算器
６４  第２合計帰還量演算器
７０  第２フィードバック制御系
７１  第２制御位置誤差生成器
７２  第２同期位置誤差生成器
７３  第２位置同期補償器
７４  第２同期補償位置誤差生成器
７５  第２位置制御器
７６  第２検出速度生成器
７７  第２制御速度誤差生成器
７８  第２速度制御器
７９  第２制御トルク生成器
８０  第２トルク指令ローパスフィルタ（制御ローパスフィルタ）
８１  第２トルク制御器
８２  第２センサ
９１  第１前段状態補償モデル速度誤差演算器
９２  第１後段状態補償モデル速度誤差演算器
９３  第１前段状態補償モデルトルク誤差演算器
９４  第１後段状態補償モデルトルク誤差演算器
９５  第１二慣性モデル（多慣性モデル）
９６  第１モータ側モデル
９７  第１前段モータ側積分器
９８  第１後段モータ側積分器
９９  第１ねじりトルク演算器
１００  第１負荷側モデル
１０１  第１前段負荷側積分器
１０２  第１後段負荷側積分器
１０３  第１モデル内加速度誤差演算器
１０４  第１モデル内速度誤差演算器
１０５  第１モデル内位置誤差演算器
１０６  第１トルク帰還量演算器
１０７  第１速度帰還量演算器
１１１  第２前段状態補償モデル速度誤差演算器
１１２  第２後段状態補償モデル速度誤差演算器
１１３  第２前段状態補償モデルトルク誤差演算器
１１４  第２後段状態補償モデルトルク誤差演算器
１１５  第２二慣性モデル（多慣性モデル）
１１６  第２モータ側モデル
１１７  第２前段モータ側積分器
１１８  第２後段モータ側積分器
１１９  第２ねじりトルク演算器
１２０  第２負荷側モデル
１２１  第２前段負荷側積分器
１２２  第２後段負荷側積分器
１２３  第２モデル内加速度誤差演算器
１２４  第２モデル内速度誤差演算器
１２５  第２モデル内位置誤差演算器
１２６  第２トルク帰還量演算器
１２７  第２速度帰還量演算器
【図１】
2016149918.tif 000003
【図２】
2016149918.tif 000004
【図３】
2016149918.tif 000005
【図４】
2016149918.tif 000006