(57)【特許請求の範囲】
【請求項１】
位置、速度またはトルクに係る指令値に基づき必要なトルクを発生し、モータの位置、速度またはトルクを制御するものであって、
上記モータが発生するトルクリプルに起因する上記モータの位置、速度またはトルクに係る出力におけるリプル成分を、上記指令値に所定の補正値を加算することにより抑制するようにしたモータ制御装置において、
上記位置、速度またはトルクに係る指令値入力から上記モータ発生トルクまでの伝達関数をＧ１、上記モータ発生トルクとトルクリプルとの和であるモータ出力トルクから上記位置、速度またはトルクに係る出力までの伝達関数をＧ２、上記補正値を加算しないときに上記位置、速度またはトルクに係る出力を周波数分析することによって上記モータの回転周波数のＭ倍（Ｍは自然数）の周波数成分として抽出されたリプル周波数成分をｄｄとしたとき、上記補正値ｈｄを下式により設定することを特徴とするモータ制御装置。
ｈｄ＝−ｄｄ／（Ｇ１・Ｇ２）
【請求項２】
請求項１に係るモータ制御装置において速度指令値に補正値を加算して速度出力リプル成分を抑制する場合の当該速度補正値を測定により求める方法において、
任意の第１の速度指令値を入力した状態での速度出力のリプル周波数成分ｙｄを求め、
速度指令値として上記第１の速度指令値と上記リプル周波数の任意の速度補正値ｈとを加算したものを入力した状態での速度出力のリプル周波数成分ｙｈｄを求め、
上記ｙｄ、ｈ、ｙｈｄから下式により伝達関数（Ｇ１・Ｇ２）を求め、
（Ｇ１・Ｇ２）＝（ｙｈｄ−ｙｄ）／ｈ
上記伝達関数（Ｇ１・Ｇ２）に基づき求めるべき速度補正値を算出するようにしたことを特徴とする補正値測定方法。
【請求項３】
請求項１に係るモータ制御装置においてトルク指令値に補正値を加算してトルク出力リプル成分を抑制する場合の当該トルク補正値を測定により求める方法において、
任意の第１のトルク指令値を入力した状態でのトルク出力のリプル周波数成分ｙｄ’を求め、
トルク指令値として上記第１のトルク指令値と上記リプル周波数の任意のトルク補正値ｈ’とを加算したものを入力した状態でのトルク出力のリプル周波数成分ｙｈｄ’を求め、
上記ｙｄ’、ｈ’、ｙｈｄ’から下式により伝達関数（Ｇ１’・Ｇ２’）を求め、
（Ｇ１’・Ｇ２’）＝（ｙｈｄ’−ｙｄ’）／ｈ’
上記伝達関数（Ｇ１’・Ｇ２’）に基づき求めるべきトルク補正値を算出するようにしたことを特徴とする補正値測定方法。
【請求項４】
請求項１に係るモータ制御装置であって速度制御系を有するものにおいてトルク指令値に補正値を加算してトルク出力リプル成分を抑制する場合の当該トルク補正値を測定により求める方法において、
任意の第１の速度指令値を入力した状態でのトルク出力のリプル周波数成分ｙｄ’を求め、
速度指令値として上記第１の速度指令値を入力しトルク指令値として上記リプル周波数の任意のトルク補正値ｈ’を入力した状態でのトルク出力のリプル周波数成分ｙｈｄ’を求め、
上記ｙｄ’、ｈ’、ｙｈｄ’から下式により伝達関数（Ｇ１’・Ｇ２’）を求め、
（Ｇ１’・Ｇ２’）＝（ｙｈｄ’−ｙｄ’）／ｈ’
上記伝達関数（Ｇ１’・Ｇ２’）に基づき求めるべきトルク補正値を算出するようにしたことを特徴とする補正値測定方法。
【請求項５】
請求項１に係るモータ制御装置であって速度制御系を有するものにおいてトルク指令値に補正値を加算してトルク出力リプル成分を抑制する場合の当該トルク補正値を測定により求める方法において、
トルク指令値入力からモータ発生トルクまでの応答が十分速く、かつ速度指令値にリプル周波数成分が含まれていない場合、
任意の第１の速度指令値を入力した状態でのトルク出力のリプル周波数成分ｙｄ’’を求め、
速度指令値として上記第１の速度指令値を入力しトルク指令値として上記リプル周波数の任意のトルク補正値ｈ’を入力した状態でのトルク出力のリプル周波数成分ｙｈｄ’’を求め、
上記ｙｄ’’、ｈ’、ｙｈｄ’’から下式により伝達関数（Ｇ１’・Ｇ２’）を求め、
（Ｇ１’・Ｇ２’）≒（Ｇ１’）＝（ｙｈｄ’’−ｙｄ’’）／ｈ’
上記伝達関数（Ｇ１’・Ｇ２’）に基づき求めるべきトルク補正値を算出するようにしたことを特徴とする補正値測定方法。
【請求項６】
請求項５において、トルク出力のリプル周波数成分ｙｄ’’およびｙｈｄ’’を、それぞれ下式により求めるようにしたことを特徴とする補正値測定方法。
ｙｄ’’＝（（ｄｙ／ｄｔ）／Ｊｍ）−ｕ’
ｙｈｄ’’＝（（ｄｙ／ｄｔ）／Ｊｍ）−（ｕ’＋ｈ’）
但し、ｙは速度出力、Ｊｍはモータの慣性モーメント、ｕ’は第１の速度指令値を入力したときのトルク指令値を示す。
【請求項７】
モータ回転数の変動範囲をカバーするように異なる複数の回転数を設定し、これら複数の設定回転数における補正値を測定し、上記設定回転数と異なる回転数における補正値は上記測定補正値から補間法により求めるようにしたことを特徴とする請求項２ないし６のいずれかに記載の補正値測定方法。
【請求項８】
モータ負荷量の変動範囲をカバーするように異なる複数の負荷量を設定し、これら複数の設定負荷量における補正値を測定し、上記設定負荷量と異なる負荷量における補正値は上記測定補正値から補間法により求めるようにしたことを特徴とする請求項２ないし７のいずれかに記載の補正値測定方法。
【請求項９】
モータが、そのリプル周波数が異なる複数のトルクリプルを発生する場合、補正値は各リプル周波数毎に測定するようにしたことを特徴とする請求項２ないし８のいずれかに記載の補正値測定方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、回転モータあるいはリニアモータの制御装置において、回転のトルクあるいは直動の推力の脈動を減少させるモータ制御装置に関するものである。
【０００２】
【従来の技術】
回転モータあるいはリニアモータにおいては、回転子あるいは可動子の位置によって、回転のトルクあるいは直動の推力が変動し、このため回転子の回転に伴ってトルクが脈動する、あるいは可動子の移動に伴って推力が脈動する現象が発生することが知られており、トルクリプルあるいは推力リプルと呼ばれる。トルクリプルあるいは推力リプルは、モータを使用している装置の動作に悪影響を与える場合がある。そのため、このトルクリプルあるいは推力リプルを測定し、この測定値を利用した制御によりトルクリプルあるいは推力リプルを減少させるようなモータの制御装置が提案されている。図１２〜図２２は例えば特開平１０−２３７７４号公報に示されたモータの回転制御装置を示すものである。
【０００３】
以下、本従来例を図面によって説明する。なお、例示した従来例の明細書では、トルクの脈動により発生する速度の脈動をトルクリップルと称しているが、以下の説明では正確に表現するために、トルクリプルはトルクの脈動を示し、速度リプルはトルクリプルにより生じる速度の脈動を示し、また回転角度振動はトルクリプルにより生じる回転角度の振動成分を示すこととする。
まず、モータのトルクリプルに起因した回転角度振動を測定する方法について、図１２のフローチャートに従って説明する。尚、この説明は図１３〜図１６を参照しながら行う。
【０００４】
図１２は、本従来例でのモータの回転角度振動の測定処理動作を示すフローチャートである。同図に示すように、ステップＳ１において、先ずモータが予め設定された所定の指令速度Ｎ（ｒｐｍ）で回転制御される。この時、速度指令データに基づくモータ指令回転角度と、エンコーダ等により測定されたモータ実回転角度がデータとして保存される。図１３（ａ）は速度指令データに基づくモータ指令回転角度と、モータが理想的に動作した場合の回転角度（モータ理想回転角度）との関係を示し、図１３（ｂ）はその実回転角度データとの関係を示したものである。モータが速度指令データ通りに回転した場合には、図１３（ａ）の理想データに示すように、モータ指令回転角度とモータ回転角度との関係は直線になる。しかし、モータは実際にはトルクリプル等により速度指令データ通りに回転せず、図１３（ｂ）の実回転データに示すように、回転角度に振動成分を生じる。
【０００５】
次に、ステップＳ２において、モータ１回転分の理想回転角度データ及び実回転角度データが、それぞれデータの起点がモータの回転角度にして例えば５／３度ずつずれた各４種類の第１〜第４データＤａ１〜Ｄａ４，Ｄｂ１〜Ｄｂ４として記憶される。ここでずらす角度を５／３度に設定しているのは、本従来例での実施例に用いられるモータが１回転に対してトルクリプルが３６回発生するモータであり、５／３度は回転角度振動の１周期分のモータ回転角の１／６に相当するからである。なお、このずらす角度が、回転角度振動のモータ回転角に対する位相を算出する際の分解能に相当する。
【０００６】
次に、ステップＳ３において、先に作成された第１〜第４理想回転角度データＤａ１〜Ｄａ４及び第１〜第４実回転角度データＤｂ１〜Ｄｂ４に、それぞれハニング窓関数が乗算される。図１４（ａ），（ｂ）は、乗算の結果得られた各ハニングデータを示すものである。続いて、ステップＳ４において、上記各ハニングデータを周波数成分に分解するために、各ハニングデータがＦＦＴ（高速フーリエ変換）処理される。ステップＳ５については、測定に直接関係がないため説明を省略する。
同時に、ステップＳ６において、対応する理想回転角度のＦＦＴデータと実回転角度のＦＦＴデータとに基づき、４種類の伝達関数が求められる。そして、ステップＳ７において、求められた各伝達関数に基づき、４種類のボード線図が作成される。図１５は作成されたボード線図の一例を示すものであるが、速度リプルの周波数である３６Ｈｚの周波数におけるゲインが大きくなっていることが判る。
【０００７】
次に、ステップＳ８において、４種類のボード線図から、速度リプルの周波数におけるゲインが最大のボード線図が選択され、そのゲインＧが記憶される。この最大のゲインＧを有するボード線図に対応するデータが、図１６においてサイン波Ｗで示された回転角度振動の波高値が最大のものに相当し、選択されたボード線図に対応するデータの起点はサイン波Ｗの起点と一致する。一方、速度リプルのサイン波の起点位置は、サイン波Ｗのマイナス側の最大波高値の位置に相当すると考えられる。
例えば、最大のゲインＧを有するボード線図に対応するデータがＤａ２，Ｄｂ２であった場合には、データＤａ２，Ｄｂ２の起点はモータ回転角の原点から５／３度ずれた位置なので、速度リプルが発生する基点の回転角度は、５／３度＋７．５度となる。ここで７．５度はずれが無い場合のサイン波Ｗのマイナス側の最大波高値の角度である。
【０００８】
次に、ステップＳ９において、速度リプルの周波数での理想回転角データの波高値Ｐが算出される。第１理想データＤａ１にハニング窓関数が乗算され、続いてＦＦＴ処理された後、下記の式（１）に従って、速度リプル周波数での波高値Ｐが算出される。
Ｐ＝２×√（Ｒｌ2＋Ｉｍ2）・・・（１）
ここで、Ｒｌは速度リプル周波数でのＦＦＴ結果の実軸データの大きさを表し、Ｉｍは虚軸データの大きさを表す。
【０００９】
次にステップＳ１０において、前記ステップＳ９で算出された理想回転角データの波高値Ｐと、前記ステップＳ８で選択された最大ゲインＧとに基づき、下記の式（２）に従って、速度リプル周波数での振れ量が算出される。
振れ量（ｄｅｇｒｅｅ）＝Ｐ×（１０(G/20)−１）・・・（２）
以上の様に、本従来例では上記の手順により、トルクリプルにより発生する回転角度振動の振幅と位相ずれ（モータ回転角の原点に対する）を求めることが出来る。
なお、前記の回転角度振動の振幅と位相ずれは、同じモータであっても回転速度Ｎ（ｒｐｍ）が変化するのに応じて変化する。そのため、回転角度振動の振幅と位相ずれのデータはモータを制御する各回転速度Ｎ毎に求めておく必要がある。
【００１０】
次に、上記測定結果に基づき、モータのトルクリプルに起因した回転角度振動を抑制する方法について、図１７〜図２０に従って説明する。
先ず図１７のステップＳ３１において、モータで発生する回転角度振動の振幅と位相ずれ量が、上記方法にてあらかじめ測定・算出され記憶されている。この振幅及び位相ずれ量は、前記のようにモータの回転速度Ｎ（ｒｐｍ）の各回転速度毎にそれぞれ算出されている。
【００１１】
次に、ステップＳ３２において、モータのトルクリプルに起因して発生する回転角度振動を表すサイン波が作成される。その波形ｆ（ｉ）は下記の式（３）で表すことができる。
ｆ（ｉ）＝１×ｓｉｎ（Ｂ・θｉ−Ｐｉ）  ・・・（３）
ここで、θｉはモータの回転角度を表し、Ｐｉは回転角度振動の位相ずれ量を表す。又、Ｂはモータが１回転中に発生するトルクリプルの回数を表す。
続いて、ステップＳ３３において、例えば図１８のようなモータ速度制御指令値データ（角度−速度データ）Ｈが時間で積分されて、図１９に示すような時間−角度データＩが作成される。
【００１２】
次にステップＳ３４において、積分の結果得られた時間−角度データＩに補正値が加えられて、図２０に示すような補正後の時間−角度データＪが作成される。つまり、この補正後の時間−角度データＪは、図１９に示す時間−角度データＩに対して、トルクリプルに起因して生じるモータの回転角度振動を打ち消すような値を補正値として加えたものになる。具体的には、図１９の時間−角度データＩ上において、ある時間ｔｉでのモータ回転角度をθｉとしたとき、その回転角度θｉでのモータ回転速度Ｎｉが図１８に示すモータ速度制御指令値データ（角度−速度データ）Ｈより求められる。そして、その求められた回転速度Ｎｉでの回転角度振動の振幅Ｓｉおよび位相ずれＰｉが得られ、前記式（３）に従い、モータの回転角度がθｉのときの値ｆ（ｉ）が求められる。このように図１９の時間−角度データＩ上における時間ｔｉを少しずつ変えながら、各時間ｔｉでの回転角度θｉにそれぞれ対応する値Ｓｉ，ｆ（ｉ）が求められる。そして、このようにして求められた値Ｓｉ，ｆ（ｉ）に基づき、下記の式（４）に従って図２０に示すような補正後の時間−角度データＪが作成される。
Ｊ＝Ｉ−ｆ（ｉ）×Ｓｉ  ・・・（４）
【００１３】
次に、ステップＳ３５において、補正後の時間−角度データＪが微分されて、図２１に示すような時間−速度データＫが作成される。続いて、ステップＳ３６において、図２０に示す補正後の時間−角度データＪと図２１に示す時間−速度データＫとに基づき、図２２に示すような補正後の主軸速度制御データ（角度−速度データ）Ｌが作成される。本従来例では、このデータをモータを回転制御するための指令値として使用すれば、モータに生じるトルクリプルが発生する回転角度振動をあらかじめ予想して指令値データを作成することにより、モータにトルクリプルに起因した回転角度振動が生じることなく制御する事が出来るとされている。
【００１４】
【発明が解決しようとする課題】
従来のトルクリプルを測定・抑制するモータの制御装置は以上のように構成されており、その方式の要点は、トルクリプルにより発生する回転角度あるいは回転速度の振動の振幅と位相を測定しておき、これらを回転角度指令あるいは回転速度指令に補正量として加えることである。ところがこの従来の方式では、制御対象の応答が考慮されていないためトルクリプルによる回転変動を完全に抑制することは出来ない。
【００１５】
以下、上記の問題点を図２３、２４のトルクリプルを発生するモータの速度フィードバック制御系のブロック線図を用いて説明する。図２３、２４において、１は速度指令値ｕとモータ回転速度ｙとの差である速度エラーからモータ発生トルクまでの伝達関数Ｇ１ａを表すブロック、２は前記モータ発生トルクとトルクリプルｄとの合計である出力トルクからモータ回転速度ｙまでの伝達関数Ｇ２ａを表すブロックである。
まず図２３に示すように、速度指令値ｕとして一定値ｕ０を入力した場合に、発生する速度リプルがΔｙであったとする。
【００１６】
従来の制御方式の場合、この速度リプルΔｙを補正値として速度指令値ｕから減じるのであるが、この補正値によって生じる速度リプルΔｙ’は図２５のブロック線図より（５）式で表されることが分かる。
Δｙ’＝Δｙ・Ｇ１ａ・Ｇ２ａ／（１＋Ｇ１ａ・Ｇ２ａ）・・・（５）
これより、補正後の速度リプルの合計は（６）式で表される。
Δｙｃ＝Δｙ−Δｙ’＝Δｙ／（１＋Ｇ１ａ・Ｇ２ａ）  ・・・（６）
このように、従来の制御方式では（６）式で示す速度リプルΔｙｃが残り、トルクリプルの影響を完全に除くことはできないという問題点があった。なお、上記の説明では補正値を速度指令値に加える場合について説明しているが、角度指令値およびトルク指令値に補正値を加える場合でも、同様の問題があることは明らかである。
【００１７】
この発明は上記のような問題点を解消するためになされたもので、トルク（推力）リプルを測定・抑制するモータの制御装置において、制御対象の応答を考慮してトルクリプルによる回転変動を完全に抑制することが出来るモータ制御装置およびトルクリプルを抑制するための補正値の測定方法を提供することを目的とするものである。
【００１８】
【課題を解決するための手段】
この発明の請求項１に係るモータ制御装置は、位置、速度またはトルクに係る指令値に基づき必要なトルクを発生し、モータの位置、速度またはトルクを制御するものであって、
上記モータが発生するトルクリプルに起因する上記モータの位置、速度またはトルクに係る出力におけるリプル成分を、上記指令値に所定の補正値を加算することにより抑制するようにしたモータ制御装置において、
上記位置、速度またはトルクに係る指令値入力から上記モータ発生トルクまでの伝達関数をＧ１、上記モータ発生トルクとトルクリプルとの和であるモータ出力トルクから上記位置、速度またはトルクに係る出力までの伝達関数をＧ２、上記補正値を加算しないときに上記位置、速度またはトルクに係る出力を周波数分析することによって上記モータの回転周波数のＭ倍（Ｍは自然数）の周波数成分として抽出されたリプル周波数成分をｄｄとしたとき、上記補正値ｈｄを下式により設定するものである。
ｈｄ＝−ｄｄ／（Ｇ１・Ｇ２）
【００１９】
また、この発明の請求項２に係る補正値測定方法は、請求項１に係るモータ制御装置において速度指令値に補正値を加算して速度出力リプル成分を抑制する場合の当該速度補正値を測定により求める方法において、
任意の第１の速度指令値を入力した状態での速度出力のリプル周波数成分ｙｄを求め、
速度指令値として上記第１の速度指令値と上記リプル周波数の任意の速度補正値ｈとを加算したものを入力した状態での速度出力のリプル周波数成分ｙｈｄを求め、
上記ｙｄ、ｈ、ｙｈｄから下式により伝達関数（Ｇ１・Ｇ２）を求め、
（Ｇ１・Ｇ２）＝（ｙｈｄ−ｙｄ）／ｈ
上記伝達関数（Ｇ１・Ｇ２）に基づき求めるべき速度補正値を算出するようにしたものである。
【００２０】
また、請求項３に係る補正値測定方法は、請求項１に係るモータ制御装置においてトルク指令値に補正値を加算してトルク出力リプル成分を抑制する場合の当該トルク補正値を測定により求める方法において、
任意の第１のトルク指令値を入力した状態でのトルク出力のリプル周波数成分ｙｄ’を求め、
トルク指令値として上記第１のトルク指令値と上記リプル周波数の任意のトルク補正値ｈ’とを加算したものを入力した状態でのトルク出力のリプル周波数成分ｙｈｄ’を求め、
上記ｙｄ’、ｈ’、ｙｈｄ’から下式により伝達関数（Ｇ１’・Ｇ２’）を求め、
（Ｇ１’・Ｇ２’）＝（ｙｈｄ’−ｙｄ’）／ｈ’
上記伝達関数（Ｇ１’・Ｇ２’）に基づき求めるべきトルク補正値を算出するようにしたものである。
【００２１】
また、請求項４に係る補正値測定方法は、請求項１に係るモータ制御装置であって速度制御系を有するものにおいてトルク指令値に補正値を加算してトルク出力リプル成分を抑制する場合の当該トルク補正値を測定により求める方法において、
任意の第１の速度指令値を入力した状態でのトルク出力のリプル周波数成分ｙｄ’を求め、
速度指令値として上記第１の速度指令値を入力しトルク指令値として上記リプル周波数の任意のトルク補正値ｈ’を入力した状態でのトルク出力のリプル周波数成分ｙｈｄ’を求め、
上記ｙｄ’、ｈ’、ｙｈｄ’から下式により伝達関数（Ｇ１’・Ｇ２’）を求め、
（Ｇ１’・Ｇ２’）＝（ｙｈｄ’−ｙｄ’）／ｈ’
上記伝達関数（Ｇ１’・Ｇ２’）に基づき求めるべきトルク補正値を算出するようにしたものである。
【００２２】
また、請求項５に係る補正値測定方法は、請求項１に係るモータ制御装置であって速度制御系を有するものにおいてトルク指令値に補正値を加算してトルク出力リプル成分を抑制する場合の当該トルク補正値を測定により求める方法において、
トルク指令値入力からモータ発生トルクまでの応答が十分速く、かつ速度指令値にリプル周波数成分が含まれていない場合、
任意の第１の速度指令値を入力した状態でのトルク出力のリプル周波数成分ｙｄ’’を求め、
速度指令値として上記第１の速度指令値を入力しトルク指令値として上記リプル周波数の任意のトルク補正値ｈ’を入力した状態でのトルク出力のリプル周波数成分ｙｈｄ’’を求め、
上記ｙｄ’’、ｈ’、ｙｈｄ’’から下式により伝達関数（Ｇ１’・Ｇ２’）を求め、
（Ｇ１’・Ｇ２’）≒（Ｇ１’）＝（ｙｈｄ’’−ｙｄ’’）／ｈ’
上記伝達関数（Ｇ１’・Ｇ２’）に基づき求めるべきトルク補正値を算出するようにしたものである。
【００２３】
また、請求項６に係る補正値測定方法は、請求項５において、トルク出力のリプル周波数成分ｙｄ’’およびｙｈｄ’’を、それぞれ下式により求めるようにしたものである。
ｙｄ’’＝（（ｄｙ／ｄｔ）／Ｊｍ）−ｕ’
ｙｈｄ’’＝（（ｄｙ／ｄｔ）／Ｊｍ）−（ｕ’＋ｈ’）
但し、ｙは速度出力、Ｊｍはモータの慣性モーメント、ｕ’は第１の速度指令値を入力したときのトルク指令値を示す。
【００２４】
また、請求項７に係る補正値測定方法は、モータ回転数の変動範囲をカバーするように異なる複数の回転数を設定し、これら複数の設定回転数における補正値を測定し、上記設定回転数と異なる回転数における補正値は上記測定補正値から補間法により求めるようにしたものである。
【００２５】
また、請求項８に係る補正値測定方法は、モータ負荷量の変動範囲をカバーするように異なる複数の負荷量を設定し、これら複数の設定負荷量における補正値を測定し、上記設定負荷量と異なる負荷量における補正値は上記測定補正値から補間法により求めるようにしたものである。
【００２６】
また、請求項９に係る補正値測定方法は、モータが、そのリプル周波数が異なる複数のトルクリプルを発生する場合、補正値は各リプル周波数毎に測定するようにしたものである。
【００２７】
【発明の実施の形態】
実施の形態１．
図１は、この発明を実施するための実施の形態１によるモータ制御装置の動作を説明するための図であり、トルクリプルが発生する回転（リニア）モータの速度制御系のブロック線図である。なお、本願発明は、回転のトルクを直動の推力、トルクリプルをこの推力のリプルと考えれば、回転モータだけでなくリニアモータにも全く同様に適用でき同等の効果を奏する。従って、以下では、主に回転モータを対象に説明するものとする。
図１において、１は速度指令値入力ｕからモータ発生トルクまでの伝達関数Ｇ１を表すブロック、２は上記モータ発生トルクとトルクリプルｄとの和であるモータ出力トルクからモータ回転速度ｙまでの伝達関数Ｇ２を表すブロックである。
なお、図１では速度フィードバックループが図示されていないが、速度フィードバックループを図示した先の図２３、２４との整合性を図るものとすると、
Ｇ１＝Ｇ１ａ
Ｇ２＝Ｇ２ａ／（１＋Ｇ１ａ・Ｇ２ａ）
と考えればよい。また、ｈは速度リプルを抑制する補正値である。
【００２８】
まず、実施の形態１によるモータ制御装置の原理について図１を用いて詳しく説明する。
はじめに、速度指令値ｕを与え、かつ補正値ｈを０とした状態で速度制御装置を動作させた状態の、回転速度出力ｙについて考えてみる。
ここで、トルクリプルｄがモータ回転角度θｍ（＝∫ｙｄｔ）に同期して発生し、モータ回転に対するトルクリプルの周期はあらかじめ明らかであるものとすれば、回転角度θｍからトルクリプルｄの周波数ωｄを知ることが出来る。速度指令値ｕに含まれるトルクリプルｄと同じ周波数ωｄの成分をｕｄとすれば、回転速度出力ｙに含まれている周波数ωｄの成分は、速度指令値の周波数ωｄ成分ｕｄとトルクリプルｄとにより回転速度出力ｙに生じる速度リプルｙｄであり、（７）式の伝達関数表現で表される。
ｙｄ＝Ｇ１・Ｇ２・ｕｄ＋Ｇ２・ｄ  ・・・（７）
なお、速度リプルｙｄを求めるには、回転速度出力ｙを周波数分析して、トルクリプル周波数ωｄの成分を抽出すれば良い。
また、以上の説明で、速度指令値ｕにトルクリプル周波数ωｄ成分ｕｄが含まれ得るとしているのは、例えば以下に示す場合が想定されるからである。即ち、図１では図示していないが、速度制御系の外側に例えば回転位置の制御系が存在し、その回転位置制御系のフィードバック量に上記ωｄ成分が含まれ、結果として、位置指令値と位置フィードバック量との差信号を入力として作成される速度指令値にωｄ成分が含まれる場合が想定されるからである。
【００２９】
次に、上記速度指令値ｕに、トルクリプル周波数ωｄの信号である補正値ｈを加えて速度制御系を動作させた場合の、回転速度出力ｙについて考えてみる。この場合は、回転速度出力ｙの中のトルクリプル周波数ωｄの成分には、速度指令値ｕｄとトルクリプルｄとが回転速度出力ｙに発生させる速度リプルｙｄの他に、補正値ｈが回転速度出力ｙに発生させる速度リプル分も含まれる。これより、この時の回転速度出力ｙに含まれるトルクリプル周波数ωｄの速度リプルｙｈｄは式（８）の伝達関数表現で表される。
ｙｈｄ＝Ｇ１・Ｇ２・（ｈ＋ｕｄ）＋Ｇ２・ｄ  ・・・（８）
式（８）に式（７）を代入して整理し、式（９）を得る。
Ｇ１・Ｇ２＝（ｙｈｄ−ｙｄ）／ｈ  ・・・（９）
【００３０】
式（９）より、補正値ｈ＝０の場合の測定結果から求めた速度リプルｙｄ、補正値ｈ≠０の場合の測定結果から求めた速度リプルｙｈｄ、および補正値ｈから、伝達関数Ｇ１・Ｇ２を求めることが可能なことが分かる。また式（９）より、補正値ｈ≠０の速度リプルｙｈｄを０にするような補正値ｈｄは式（１０）の伝達関数表現により求められる。
ｈｄ＝−ｙｄ／（Ｇ１・Ｇ２）  ・・・（１０）
以上の説明より、上記の手順で作成された補正値ｈｄを速度指令値ｕに加えることにより、速度リプルｙｄを０にすることが出来るのが分かる。
【００３１】
それでは次に、以上の原理を用いて回転モータのトルクリプルを抑制する制御を行う具体的な手順を、図２を用いて説明する。図２はこの発明を実施するための実施の形態１によるモータ制御装置の動作の手順を示すフローチャートである。なお図２において、Ｓ１〜Ｓ３は図４で後述する第一の速度脈動測定手段の動作であり、Ｓ４〜Ｓ６は第二の速度脈動測定手段の動作であり、Ｓ７は速度補正値算出手段の動作である。
【００３２】
まずＳ１では、モータの速度制御装置に適当な速度指令値ｕを入力して、この時の回転速度出力ｙをＳ２にて測定・記憶する。従って、後述するように、ここで入力された速度指令値に相当するモータ回転速度における補正値を求めることになる。
次にＳ３では、Ｓ２にて測定した回転速度出力ｙを周波数分析してトルクリプル周波数ωｄの成分を抽出して記憶する。この時、トルクリプルｄはモータ回転角度に同期して発生するので、回転速度出力ｙの周波数分析はモータ回転角度に対して行う必要がある。具体的には、モータ１回転に対してトルクリプルがＭ回発生するとすれば、モータ回転角度θｍに対してトルクリプル周波数ωｄは式（１１）で表される。
ωｄ＝Ｍ・ｄ（θｍ）／ｄｔ  ・・・（１１）
周波数分析には様々な計算方法があるが、回転速度出力ｙからこのトルクリプル周波数ωｄの成分である速度リプルｙｄを抽出してその振幅とモータ回転角度に対する位相を求めるには、例えば以下の計算を行えばよい。
【００３３】
まず、式（１２）、（１３）のａ、ｂを計算して、ある程度の時間（少なくとも一番周期の長い回転数変動の一周期より長い間）の平均値を求める。これにより、ｄ（Ｍ・θｍ）／ｄｔ＝ωｄ以外の周波数成分を持つ信号は平均すると０になる。
ａ＝ｙ・ｃｏｓ（Ｍ・θｍ）  ・・・（１２）
ｂ＝ｙ・ｓｉｎ（Ｍ・θｍ）  ・・・（１３）
速度リプルｙｄを式（１４）で表した時、速度リプルの振幅Ｒおよびθｍ＝０での位相φは、平均されたａ，ｂより式（１５）、（１６）で求められるので、これを記憶する。
ｙｄ＝Ｒ・ｓｉｎ（Ｍ・θｍ＋φ）  ・・・（１４）
Ｒ＝√（ａ2＋ｂ2）  ・・・（１５）
φ＝ｔａｎ-1（ａ／ｂ）  ・・・（１６）
【００３４】
次にＳ４では、Ｓ１で与えた速度指令値ｕにトルクリプル周波数ωｄの補正値ｈを加えた値を速度指令値として入力し、この時の回転速度出力をＳ５にて測定・記憶する。この場合の補正値ｈは、例えば式（１７）に示した値を用いる。
ｈ＝Ｈ・ｓｉｎ（Ｍ・θｍ）  ・・・（１７）
式（１７）においてＨは適当な補正値の振幅である。
次にＳ６では、Ｓ５で測定した回転速度出力をＳ３同様に処理して、速度変動ｙｈｄの振幅Ｒｈおよび位相φｈを求めて記憶する。この時、速度変動ｙｈｄは式（１８）で表すことが出来る。
ｙｈｄ＝Ｒｈ・ｓｉｎ（Ｍ・θｍ＋φｈ）  ・・・（１８）
【００３５】
そして次にＳ７において、速度リプルを０にするような補正値を算出してテーブルを作成する。式（１０）に基づけば、速度リプルを０にする補正値ｈｄは式（１９）の伝達関数表現で与えられる。
ｈｄ＝−ｈ・ｙｄ／（ｙｈｄ−ｙｄ）  ・・・（１９）
式（１９）は伝達関数表現であるため、それぞれが正弦波である式（１９）右辺の計算は、各正弦波を極座標表示して合成したものに相当する。ｈ、ｙｈｄ、ｙｄを式（２０）〜（２２）のように極座標表示して考える。
ｈ＝Ｈ・ｅj(M・θm)  ・・・（２０）
ｙｄ＝Ｒ・ｅj(M・θm+φ)  ・・・（２１）
ｙｈｄ＝Ｒｈ・ｅj(M・θm+φh)  ・・・（２２）
式（２０）〜（２２）を式（１９）に代入し、整理して式（２３）を得る。
ｈｄ＝−ｈ・１／（Ｒｈ／Ｒ・ｅj(φh-φ)−１）  ・・・（２３）
【００３６】
図３を用いて式（２３）の補正値ｈｄの計算方法を説明する。極座標ベクトルＡは振幅Ｒｈ／Ｒ、位相φｈ−φの正弦波を表し、極座標ベクトルＢはＡから１を減じたベクトルで、式（２３）右辺の分母に相当する。極座標ベクトルＣはベクトルＢの逆数であり、位相は正負が反転してベクトルの大きさは逆数となる。ｈは大きさＨ、位相０のＭ・θｍで回転するベクトルであるが、これとベクトルＣを合成して極座標ベクトルＤを得る。Ｄは位相がＣと同じであり、大きさはＨにＣの振幅を乗じたものとなる。
【００３７】
以上の手順により、大きさＨｄ、位相φｈｄの極座標ベクトルＤが得られた。このベクトルにより表される補正値ｈｄは、式（２４）で表される。
ｈｄ＝Ｈｄ・ｓｉｎ（Ｍ・θｍ＋φｈｄ）  ・・・（２４）
実際の制御に用いるには、制御に必要なデータの処理時間を短縮するため、式（２４）により計算される補正値ｈｄを適当なモータ回転角度毎に計算しておいて、あらかじめ補正テーブルを作成しておくほうが都合がよい場合が多い。
以上の作業により、モータ１回転に対してＭ回発生するトルクリプルに対する補正テーブルの作成が完了した。
【００３８】
実際に速度リプルを抑制する速度制御を行うには、速度指令値に対して、現在のモータ回転角度により作成した補正テーブルを用いて速度指令値の補正値を求め、この補正値を速度指令値に加えて速度制御装置に与えればよい。
なお、上記の実施の形態では補正データをあらかじめ計算して補正テーブルの形で保存しているが、高速な処理が可能な制御装置の場合、Ｓ６の各データの形で保存しておいて、実際に制御する際に図３および式（２４）の計算を行って補正値を算出することが可能であり、保存するデータ量が少なくてよいというメリットがある。
【００３９】
ところで、トルクリプルの発生要因としては、例えば、集中巻コイルを採用した同期機におけるスロット通過に基づくもの、極数によって発生するもの、各センサーのオフセット誤差に基づくもの等が考えられるが、対象とするトルクリプルが複数の周期で存在する場合は、１）既に作成した補正テーブルを使用してこれらの速度リプルを消去した状態で、Ｓ１〜Ｓ７の手順によりその他の周波数の速度リプルのデータ測定を行う方法、２）一つの速度リプルに対する補正テーブルを作成した後に、速度リプルの消去は行わずにその他の速度リプルのデータ測定を行う方法、３）Ｓ３において複数のトルクリプル周波数に対してＲ、φを求め、次にＳ４において複数の周波数成分を足しあわせたｈを用いて測定し、Ｓ６において複数のトルクリプル周波数に対してＲｈ、φｈを求め、Ｓ７にてこれらのデータより複数の速度リプルに対する補正テーブルを一度に作成する方法、が考えられる。要は、各リプル周波数毎に補正値を求めればよい。
【００４０】
また、補正値ｈｄのパラメータＨｄ、φｈｄはモータの回転速度によっても変化する。これは、以上に述べた測定方法では、Ｇ１・Ｇ２の特性を、最初に入力された速度指令値に相当するモータ回転速度における、トルクリプル周波数ωｄにおいてのみ測定している為である。そのため、モータ回転速度が変化する制御系に対して本発明の制御装置を適用するためには、使用するそれぞれのモータ回転速度について補正値ｈｄのパラメータを測定・用意する必要がある。ただし、モータ回転速度の変化に対するパラメータＨｄ、φｈｄの変化は比較的緩やかであるため、ある程度の回転速度の間隔で測定したデータにより途中の区間でのパラメータを補間して使用する方法でも十分実用的である。
【００４１】
それでは次に、以上の機能を持つモータ制御装置の具体的な構成について説明する。図４はモータ制御装置の具体的な構成について説明した図である。以下、図４の各部の働きを図２の動作手順を参照しながら説明する。なお、以下の例では第一の速度脈動測定手段と第二の速度脈動測定手段とを同一の装置により構成した場合について説明する。
まず図２のＳ１の速度制御は、適切な速度指令値が速度指令値発生手段３により発生され、その指令値に基づきモータの回転速度を制御するモータ回転速度制御手段４により行われる。モータ回転速度制御手段４は、エンコーダ等の回転センサを含んだモータ６と接続されて同モータ６の速度制御を行う装置であり、具体的には例えばサーボアンプであって、速度指令値発生手段３は、例えばサーボアンプのコントローラである。
【００４２】
次に図２のＳ２の回転速度の検出・記憶は、モータの回転がモータ回転角度・速度測定手段７により行われる。モータ回転角度・速度の検出は、モータ６に接続された回転の信号を用いても良いし、別の回転センサあるいは速度センサ（モータの回転部分表面の速度を測定する場合）を用いても良い。ただしこの場合でも、モータ６に接続された回転センサの信号と別の回転・速度センサの信号は、対応する信号が同時に測定される必要がある。モータ回転角度・速度測定手段７はこれらの信号を取り込み・保存する機能を有しており、具体的には回転センサとの信号インターフェースを持ったデータ処理装置などを含む。
【００４３】
次に図２のＳ３では、速度リプル算出手段８により式（１２）〜（１６）の計算を行い、保存されたモータ回転速度のデータからトルクリプル周波数成分の信号を抽出して速度リプルの振幅と位相を算出して、その結果がリプルデータ保存手段９に記憶される。速度リプル算出手段８およびリプルデータ保存手段９は、具体的にはデータ処理装置上のプログラムである。
次に図２のＳ４の補正値を含む速度制御では、補正指令値発生手段５により発生された適当な補正値が速度指令値発生手段３に送られ、これを加算した速度指令値によりモータ回転速度制御手段４がモータ６を制御する。速度指令値発生手段３は、例えばサーボアンプのコントローラ上のプログラムである。
【００４４】
次に図２のＳ４、５、６では、モータ回転角度・速度測定手段７、速度リプル算出手段８、リプルデータ保存手段９により、Ｓ２、Ｓ３と同様に速度リプルの振幅・位相が算出・保存される。
そこで、次のＳ７ではリプルデータ保存手段９に保存されたデータを用いて、式（２０）〜（２４）および図３にて説明された計算方法により補正指令値演算手段１０が速度リプルを０にするような補正指令値を算出し、補正指令値保存手段１１により保存される。補正指令値演算手段１０および補正指令値保存手段１１は、例えばデータ処理装置上のプログラムである。補正指令値は、例えばモータ回転角度とそれに対応する速度指令値補正値が各モータ角度について記憶された補正テーブルの形式で納められる。
以上で速度リプルを０にするような補正指令値が作成され、補正指令値保存手段１１上に保存された。速度リプルを０にする制御を行う際には、補正データを補正指令値発生手段５に移して、この補正速度指令値を速度指令値に加えてモータを制御する。
【００４５】
ここで、図４に示した装置構成は、速度指令値発生手段３、モータ回転速度制御手段４、補正指令値発生手段５からなる速度制御装置１２と、モータ回転角度・速度測定手段７、速度リプル算出手段８、リプルデータ保存手段９からなる速度脈動測定手段１３と、補正指令値演算手段１０、補正指令値保存手段１１からなる速度補正値算出手段１７、およびモータ６に分けることが出来る。この内、速度脈動測定手段１３および速度補正値算出手段１７は補正指令値を作成する際には必要であるが、補正指令値作成後にモータ制御を行う際には必要ではない。
【００４６】
ところで、モータが発生するトルクリプルはモータが無負荷の場合でも発生するコギングトルクと、負荷時に発生する通電リプルに大別される。図４に示したモータ制御装置の構成ではモータ６単体にて測定・制御を行っているため、この図の構成ではコギングトルクによる速度リプルは検出できるが、通電リプルは測定できない。通電リプルを含めたトルクリプルを測定、補償するには、モータ６に他のモータやブレーキなどの適当な負荷を与える必要がある。一般に通電リプルの特性は負荷の大きさにより変化するので、通電リプルを補償するような補正指令値を作成するには、使用するそれぞれの負荷状態に応じて補正テーブルを測定・用意する必要がある。ただし、負荷状態の変化に対する補正データの変化は比較的緩やかであるため、ある程度の負荷状態の間隔で測定したデータにより途中の区間でのパラメータを補間して使用する方法でも十分実用的である。
【００４７】
なお、以上では回転モータのトルクリプルに対する制御装置について説明したが、リニアモータの推力リプルに対する制御装置についても同様の装置が有効であることは言うまでもない。後述の実施の形態についても同様である。
即ち、本願明細書の請求項に記載したトルクは、リニアモータでの推力をも意味し、トルクリプルは推力リプルをも意味するものである。
【００４８】
実施の形態２．
実施の形態１においては速度指令値に補正値を加えたのに対して、以下に説明する実施の形態２では、モータ電流制御系のトルク（電流）指令値に補正値を加える方式について述べる。
図５は、この発明を実施するための実施の形態２によるモータ制御装置を説明するための図であり、トルクリプルが発生するモータの速度制御装置のブロック線図である。図５は速度フィードバックを含む速度制御系のブロック線図で、その意味で実施の形態１の図１と同等のものであり、更に、速度フィードバックを図示しているという点では、先の図２３、２４と同じものである。但し、この実施の形態２においては、トルクリプルを抑制するための補正値をトルク指令値に加えることを想定しているので、これを可能とするため、前掲の各図におけるブロック１を、図５では、速度指令値誤差からトルク指令値までの伝達関数Ｇ１ａ１を示すブロック、即ち、速度制御器１４と、トルク指令値からトルク出力までの伝達関数Ｇ１ａ２を示すブロック、即ち、トルク制御器１５とに分割して示している。従って、
Ｇ１ａ１・Ｇ１ａ２＝Ｇ１ａ
が成立する。
ブロック２は先の各図と同様のものである。また、ｈ’はトルクリプルを抑制する補正値であり、ｕ、ｙ、ｄは図１と同じ、ｕ’は速度制御器１４の出力するトルク指令値、ｙ’は出力トルクである。
【００４９】
まず、速度制御系の動作を含めたトルクの入出力関係について考えてみる。図実施の形態１と同じように速度指令値ｕに適当な信号を入力したとすると、本形態の場合は速度（速度フィードバック）制御のためにトルク指令値ｕ’にトルクリプルｄと同じ周波数の再現性のない成分が含まれる可能性があるが、その影響を検討する。
【００５０】
図５のブロック線図を等価変換して考えると、トルクリプル周波数ωｄの信号の入出力については図６への等価変換が可能である。ここで図６において点線で囲んだ部分を伝達関数Ｇ２ｂのブロック１６にまとめて考えれば、トルクリプル周波数ωｄの信号について図６のブロック線図は図７と同じものと考えることが出来る。
図７において、トルク指令ｕ’からトルク出力ｙ’までの部分を取り出してみると、図１において、Ｇ２＝１とした場合のブロック図と同じ形となる。ここで、トルク出力ｙ’を何らかの方法で検出することを考えると、このトルク出力ｙ’はその検出手段１８の応答性に関係するが、これを伝達関数Ｇ２’と表すものとし、かつ、図７のトルク制御器１５の伝達関数Ｇ１ａ２をＧ１’と表すものとすると、図７のうち、トルク制御に係る部分は図８に示す形に表現することができる。
これにより図８に示したトルクの入出力関係を用いれば、実施の形態１と同様に補正値ｈｄ’を求めることが出来ることが分かる。
【００５１】
それでは、実施の形態２によるモータ制御装置の原理について説明する。はじめに、適当な速度指令値ｕを与え（これによって、後述するように、速度制御器１４からトルク指令値ｕ’が出力される）、かつ補正値ｈ’を０とした状態で速度制御系を動作させた状態の、トルク指令値ｕ’およびトルク出力ｙ’に含まれている周波数ωｄの成分は、トルク指令値ｕｄ’およびトルクリプルｄが回転トルク出力ｙ’に生じるトルクリプルｙｄ’であり、式（２５）の伝達関数表現で表される。
ｙｄ’＝Ｇ１’・Ｇ２’・ｕｄ’＋Ｇ２’・ｄ  ・・・（２５）
【００５２】
次に、トルク指令値ｕ’に、トルクリプル周波数ωｄの信号である補正値ｈ’を加えて制御系を動作させた場合の、第二の測定結果である回転トルク出力ｙ’に含まれるトルクリプル周波数ωｄのトルクリプルｙｈｄ’は式（２６）の伝達関数表現で表される。
ｙｈｄ’＝Ｇ１’・Ｇ２’・（ｈ’＋ｕｄ’）＋Ｇ２’・ｄ  ・・・（２６）
式（２６）に式（２５）を代入して整理し、式（２７）を得る。
Ｇ１’・Ｇ２’＝（ｙｈｄ’−ｙｄ’）／ｈ’  ・・・（２７）
式（２７）より、補正値ｈ’＝０の場合のトルクリプルｙｄ’、補正値ｈ’≠０の場合のトルクリプルｙｈｄ’、および補正値ｈ’から、伝達関数Ｇ１’・Ｇ２’を求めることが可能なことが分かる。
また式（２７）より、補正値ｈ’≠０のトルクリプルｙｈｄ’を０にするような補正値ｈｄ’は式（２８）の伝達関数表現で与えられる。
ｈｄ’＝−ｙｄ’／（Ｇ１’・Ｇ２’）  ・・・（２８）
以上の説明より、上記の手順で作成された補正値ｈｄ’をトルク指令値ｕ’に加えることにより、トルクリプルｙｈｄ’を０にすることが出来るのが分かる。
【００５３】
それでは次に、以上の原理を用いて回転モータのトルクリプルを抑制する制御を行う具体的な手順を、図９を用いて説明する。図９はこの発明を実施するための実施の形態２によるモータ制御装置の動作の手順を示すフローチャートである。なお図９において、Ｓ１’〜Ｓ３’は第一のトルク脈動測定手段の動作であり、Ｓ４’〜Ｓ６’は第二のトルク脈動測定手段の動作であり、Ｓ７’はトルク補正値算出手段の動作である。
まずＳ１’では、モータの速度制御装置に適当な速度指令値ｕを入力し、この時のトルク出力をＳ２’にて測定・記憶する。トルク出力の測定には、トルクセンサをモータに接続して測定する、あるいはモータの回転速度変化からトルク出力を算出するオブザーバを用いるなどの方法が考えられる。
【００５４】
次にＳ３’では、Ｓ１’にて測定したトルク出力を周波数分析してトルクリプル周波数を持つ成分を抽出する。この時、トルクリプルはモータ回転角度に同期して発生するので、トルク出力の周波数分析はモータ回転角度に対して行う必要がある。実施の形態１において回転速度出力に対して行ったのと同様の処理を行うことにより、トルクリプルｙｄ’は式（２９）で表すことができる。
ｙｄ’＝Ｒ’・ｓｉｎ（Ｍ・θｍ＋φ’）  ・・・（２９）
次にＳ４’では、Ｓ１’での速度制御系が発生するトルク指令値ｕ’にトルクリプル周波数ωｄの補正値ｈ’を加えた値をトルク制御系のトルク指令値として入力し、この時のトルクリプルｙｈｄ’を測定・記憶する。この場合の補正値ｈ’は、例えば式（３０）に示した値を用いる。
ｈ’＝Ｈ’・ｓｉｎ（Ｍ・θｍ）  ・・・（３０）
式（３０）においてＨ’は適当な補正値の振幅である。
次にＳ５’では、Ｓ４’で測定したトルク出力をＳ２’同様に処理して、トルクリプルｙｈｄ’の振幅Ｒｈ’および位相φｈ’を求める。この時、トルクリプルｙｈｄ’は式（３１）で表すことが出来る。
ｙｈｄ’＝Ｒｈ’・ｓｉｎ（Ｍ・θｍ＋φｈ’）  ・・・（３１）
【００５５】
そして次にＳ６’において、出力トルクリプルを０にするような補正値を算出してテーブルを作成する。式（２８）に基づけば、出力トルクリプルを０にする補正値ｈｄ’は式（３２）の伝達関数表現で与えられる。
ｈｄ’＝−ｈ’・ｙｄ’／（ｙｈｄ’−ｙｄ’）  ・・・（３２）
式（３２）は伝達関数表現であるため、それぞれが正弦波である式（３２）右辺の計算は、各正弦波を極座標表示して合成したものに相当する。実施の形態１で示したのと同様の方法で計算することにより、補正値ｈｄ’は、式（３３）で表すことが出来る。
ｈｄ’＝Ｈｄ’・ｓｉｎ（Ｍ・θｍ＋φｈｄ’）  ・・・（３３）
以上の作業により、実施の形態１と同様にトルクリプルを０にするトルク指令補正値を得ることが出来る。トルクリプルの抑制制御を行う際には、上記の方法で求めたトルク指令補正値を本来のトルク指令値に加えてトルク制御装置に出力すればよい。
【００５６】
なお、複数の周期のトルクリプルに対する補正の方法、およびモータ回転数による補正値の変化、モータ負荷時に発生するトルクリプルの補正方法についても、実施の形態１と同様の対策を行うことが出来る。
【００５７】
なお、以上の例では速度フィードバックを行ったままトルク指令補正値を求める方法について説明したが、図５、６のブロック図に示したように速度フィードバックの有無は上記の制御方法には影響を与えない。このため、速度フィードバックの応答を遅くしてトルク指令値ｕ’にトルクリプル周波数の成分が含まれないようにする、あるいは速度フィードバックを行わない状態でも、上記の方法でトルク指令補正値を求めることが勿論可能である。
【００５８】
ここで、トルク制御器１５の応答Ｇ１’（図８）について検討してみる。トルク制御器はモータ電流をフィードバック制御しており、通常そのフィードバック制御自体の応答はトルクリプル周波数に対して十分高速である場合が多いが、サーボアンプのハードウェアにおいて速度制御器とトルク制御器とが別のマイコンにより構成されている場合は、信号伝送の遅れのためにトルク指令値が実際にトルク制御器に入力されるまでに無駄時間が生じる場合がある。この無駄時間は、上記の方法で計算されたトルク補正値においては位相の進み分となって現れるが、無駄時間が一定であればこの位相の進み量はトルクリプル周波数に比例する。
【００５９】
このため、トルク制御器の応答が単純な無駄時間と考えられるような制御装置においては、無駄時間により発生する補正値の位相進み量がトルクリプル周波数より予想できるので、モータ回転速度に応じて補正値の位相進み量を変化させることにより、それぞれのモータ回転速度に対応した補正値を測定・保存することなくトルクリプルを抑制するようなトルク指令補正値を得ることが出来る。
そのためには、少なくとも二つのモータ回転速度について上記の方法でトルク補正値を求め、この二つの条件での補正値の位相差からトルク制御器の無駄時間を算出すればよい。トルクリプル抑制制御を行う際には、あらかじめ求めた無駄時間が制御時のトルクリプル周波数において発生する位相ずれを計算し、トルク補正値の算出の際その分の位相進みを加算すればよいことが分かる。
【００６０】
実施の形態３．
以下に説明する実施の形態３では、実施の形態２においてトルク（電流）制御器の応答が十分速く、かつ速度指令値にトルクリプル周波数の信号が含まれていない場合の制御方式について述べる。
まず、トルク（電流）制御器の応答が十分速い場合の、速度制御系の動作を含めたトルクの入出力関係は図６のブロック線図において伝達関数Ｇ１ａ２＝１と考えれば良く、図１０のブロック線図で表すことが出来る。図１０における信号ａはトルク出力であり、信号−ｂは速度制御系が速度リプルに応答して発生するトルク指令値に相当するが、速度指令値にトルクリプル周波数の信号が含まれていない場合は、トルクリプル周波数の成分は信号−ｂのみとなる。即ち、信号ｃはトルク出力からトルク指令値を減じたものに等しいことが分かる。この信号ｃを以下では外乱出力と呼ぶ。
【００６１】
これより、モータ電流制御系の応答が十分速い場合には、外乱出力を出力信号と考えることにより、また、図８で説明した場合と同様、伝達関数Ｇ１ａ２をＧ１’と表すと、図１０のブロック図を図１１のように簡略化して考えることが出来る。図１１において、信号ｙ’’は、実際にトルクセンサ等で測定したトルク出力からトルク指令値を減じて求めても良いが、モータの回転速度変動からトルク出力を算出するオブザーバの出力からトルク指令値を減じたもの、即ちいわゆる外乱オブザーバの出力を用いても良い。
【００６２】
それでは以下に、実施の形態３によるモータ制御装置の原理について説明する。はじめに、トルクリプル周波数ωｄの成分が含まれない速度指令値を与え、かつ補正値ｈ’を０とした状態で速度制御系を動作させた状態での第一の測定結果である外乱出力ｙｄ’’はトルクリプルｄに等しい（式（３４））。
ｙｄ’’＝ｄ  ・・・（３４）
次に、トルク指令値ｕ’に、トルクリプル周波数ωｄの信号である補正値ｈ’を加えて制御系を動作させた場合の第二の測定結果である外乱出力ｙｈｄ’’は式（３５）の伝達関数表現で表される。
ｙｈｄ’’＝Ｇ１’・ｈ’＋ｄ  ・・・（３５）
なお、以上のｙｄ’’、ｙｈｄ’’は、上述したいわゆる外乱オブザーバの出力を用いて、式（３６）（３７）により求めることができる。
ｙｄ’’＝（（ｄｙ／ｄｔ）／Ｊｍ）−ｕ’  ・・・（３６）
ｙｈｄ’’＝（（ｄｙ／ｄｔ）／Ｊｍ）−（ｕ’＋ｈ’）  ・・・（３７）
但し、ｙは速度出力、Ｊｍはモータの慣性モーメント、ｕ’はトルク指令値である。
【００６３】
式（３４）（３５）より式（３８）を得る。
Ｇ１’＝（ｙｈｄ’’−ｙｄ’’）／ｈ’  ・・・（３８）
【００６４】
式（３８）より、補正値ｈ’＝０の場合の外乱出力ｙｄ’’、補正値ｈ≠０の場合の外乱出力ｙｈｄ’’、および補正値ｈ’から、伝達関数Ｇ１’を求めることが可能なことが分かる。
また式（３５）より、補正値ｈ’≠０の外乱出力ｙｈｄ’’を０にするような補正値ｈｄ’は式（３９）の伝達関数表現で与えられる。
ｈｄ’＝−ｙｄ’’／Ｇ１’  ・・・（３９）
【００６５】
以上の説明より、上記の手順で作成された補正値ｈｄ’をトルク指令値ｕ’に加えることにより、トルク変動を０にすることが出来るのが分かる。
なお、トルクリプルの測定や制御方法の具体的な手順等については、実施の形態２と同様であるので説明を省略する。
【００６６】
また、以上では、トルクリプルを抑制するための補正値を、速度指令値に加算する場合（実施の形態１）、トルク指令値に加算する場合（実施の形態２、３）について説明したが、全く同様の考え方を踏襲して、（回転）位置指令値に補正値を加算してトルクリプルによる影響を抑制することもできる。勿論、この場合の補正値の測定も上述した方法を同様に適用することにより可能である。
【００６７】
【発明の効果】
以上のように、この発明の請求項１に係るモータ制御装置は、位置、速度またはトルクに係る指令値に基づき必要なトルクを発生し、モータの位置、速度またはトルクを制御するものであって、
上記モータが発生するトルクリプルに起因する上記モータの位置、速度またはトルクに係る出力におけるリプル成分を、上記指令値に所定の補正値を加算することにより抑制するようにしたモータ制御装置において、
上記位置、速度またはトルクに係る指令値入力から上記モータ発生トルクまでの伝達関数をＧ１、上記モータ発生トルクとトルクリプルとの和であるモータ出力トルクから上記位置、速度またはトルクに係る出力までの伝達関数をＧ２、上記補正値を加算しないときに上記位置、速度またはトルクに係る出力を周波数分析することによって上記モータの回転周波数のＭ倍（Ｍは自然数）の周波数成分として抽出されたリプル周波数成分をｄｄとしたとき、上記補正値ｈｄを下式により設定するので、制御装置の応答を考慮した補正値が採用され、トルクリプルの抑制効果が確実に得られる。
ｈｄ＝−ｄｄ／（Ｇ１・Ｇ２）
【００６８】
また、この発明の請求項２に係る補正値測定方法は、請求項１に係るモータ制御装置において速度指令値に補正値を加算して速度出力リプル成分を抑制する場合の当該速度補正値を測定により求める方法において、
任意の第１の速度指令値を入力した状態での速度出力のリプル周波数成分ｙｄを求め、
速度指令値として上記第１の速度指令値と上記リプル周波数の任意の速度補正値ｈとを加算したものを入力した状態での速度出力のリプル周波数成分ｙｈｄを求め、
上記ｙｄ、ｈ、ｙｈｄから下式により伝達関数（Ｇ１・Ｇ２）を求め、
（Ｇ１・Ｇ２）＝（ｙｈｄ−ｙｄ）／ｈ
上記伝達関数（Ｇ１・Ｇ２）に基づき求めるべき速度補正値を算出するようにしたので、速度出力リプル成分を抑制するための速度補正値が簡便確実に得られる。
【００６９】
また、請求項３に係る補正値測定方法は、請求項１に係るモータ制御装置においてトルク指令値に補正値を加算してトルク出力リプル成分を抑制する場合の当該トルク補正値を測定により求める方法において、
任意の第１のトルク指令値を入力した状態でのトルク出力のリプル周波数成分ｙｄ’を求め、
トルク指令値として上記第１のトルク指令値と上記リプル周波数の任意のトルク補正値ｈ’とを加算したものを入力した状態でのトルク出力のリプル周波数成分ｙｈｄ’を求め、
上記ｙｄ’、ｈ’、ｙｈｄ’から下式により伝達関数（Ｇ１’・Ｇ２’）を求め、
（Ｇ１’・Ｇ２’）＝（ｙｈｄ’−ｙｄ’）／ｈ’
上記伝達関数（Ｇ１’・Ｇ２’）に基づき求めるべきトルク補正値を算出するようにしたので、トルクリプル成分を抑制するためのトルク補正値が簡便確実に得られる。
【００７０】
また、請求項４に係る補正値測定方法は、請求項１に係るモータ制御装置であって速度制御系を有するものにおいてトルク指令値に補正値を加算してトルク出力リプル成分を抑制する場合の当該トルク補正値を測定により求める方法において、
任意の第１の速度指令値を入力した状態でのトルク出力のリプル周波数成分ｙｄ’を求め、
速度指令値として上記第１の速度指令値を入力しトルク指令値として上記リプル周波数の任意のトルク補正値ｈ’を入力した状態でのトルク出力のリプル周波数成分ｙｈｄ’を求め、
上記ｙｄ’、ｈ’、ｙｈｄ’から下式により伝達関数（Ｇ１’・Ｇ２’）を求め、
（Ｇ１’・Ｇ２’）＝（ｙｈｄ’−ｙｄ’）／ｈ’
上記伝達関数（Ｇ１’・Ｇ２’）に基づき求めるべきトルク補正値を算出するようにしたので、トルクリプル成分を抑制するためのトルク補正値が簡便確実に得られる。
【００７１】
また、請求項５に係る補正値測定方法は、請求項１に係るモータ制御装置であって速度制御系を有するものにおいてトルク指令値に補正値を加算してトルク出力リプル成分を抑制する場合の当該トルク補正値を測定により求める方法において、
トルク指令値入力からモータ発生トルクまでの応答が十分速く、かつ速度指令値にリプル周波数成分が含まれていない場合、
任意の第１の速度指令値を入力した状態でのトルク出力のリプル周波数成分ｙｄ’’を求め、
速度指令値として上記第１の速度指令値を入力しトルク指令値として上記リプル周波数の任意のトルク補正値ｈ’を入力した状態でのトルク出力のリプル周波数成分ｙｈｄ’’を求め、
上記ｙｄ’’、ｈ’、ｙｈｄ’’から下式により伝達関数（Ｇ１’・Ｇ２’）を求め、
（Ｇ１’・Ｇ２’）≒（Ｇ１’）＝（ｙｈｄ’’−ｙｄ’’）／ｈ’
上記伝達関数（Ｇ１’・Ｇ２’）に基づき求めるべきトルク補正値を算出するようにしたので、トルクリプル成分を抑制するためのトルク補正値が簡便確実に得られる。
【００７２】
また、請求項６に係る補正値測定方法は、請求項５において、トルク出力のリプル周波数成分ｙｄ’’およびｙｈｄ’’を、それぞれ下式により求めるようにしたので、トルク出力リプル成分が、いわゆる外乱オブザーバの出力を用いて簡便に求めることができる。
ｙｄ’’＝（（ｄｙ／ｄｔ）／Ｊｍ）−ｕ’
ｙｈｄ’’＝（（ｄｙ／ｄｔ）／Ｊｍ）−（ｕ’＋ｈ’）
但し、ｙは速度出力、Ｊｍはモータの慣性モーメント、ｕ’は第１の速度指令値を入力したときのトルク指令値を示す。
【００７３】
また、請求項７に係る補正値測定方法は、モータ回転数の変動範囲をカバーするように異なる複数の回転数を設定し、これら複数の設定回転数における補正値を測定し、上記設定回転数と異なる回転数における補正値は上記測定補正値から補間法により求めるようにしたので、モータ回転数の変動範囲の全域にわたる補正値を簡便に得ることができる。
【００７４】
また、請求項８に係る補正値測定方法は、モータ負荷量の変動範囲をカバーするように異なる複数の負荷量を設定し、これら複数の設定負荷量における補正値を測定し、上記設定負荷量と異なる負荷量における補正値は上記測定補正値から補間法により求めるようにしたので、モータ負荷量の変動範囲の全域にわたる補正値を簡便に得ることができる。
【００７５】
また、請求項９に係る補正値測定方法は、モータが、そのリプル周波数が異なる複数のトルクリプルを発生する場合、補正値は各リプル周波数毎に測定するようにしたので、複数のトルクリプル現象についても、これらを確実に抑制するための補正値を得ることができる。
【図面の簡単な説明】
【図１】  この発明の実施の形態１におけるモータ制御装置の制御ブロックを示す構成図である。
【図２】  実施の形態１における補正値の測定方法を説明するためのフローチャートである。
【図３】  補正値を計算する過程における各量をベクトル表示した図である。
【図４】  この発明に係るモータ制御装置を示す構成図である。
【図５】  この発明の実施の形態２の前提となる制御ブロックを示す構成図である。
【図６】  図５を等価的に変換した制御ブロック図である。
【図７】  図６を等価的に変換した制御ブロック図である。
【図８】  実施の形態２におけるモータ制御装置の制御ブロックを示す構成図である。
【図９】  実施の形態２における補正値の測定方法を説明するためのフローチャートである。
【図１０】  この発明の実施の形態３の前提となる制御ブロックを示す構成図である。
【図１１】  実施の形態３におけるモータ制御装置の制御ブロックを示す構成図である。
【図１２】  従来のモータ制御装置における、測定処理動作を示すフローチャートである。
【図１３】  図１２のＳ２による、モータの回転角度の指令値と出力値との関係を示す図である。
【図１４】  図１２のＳ３による、ハニングデータを示す図である。
【図１５】  図１２のＳ７による、ボード線図である。
【図１６】  トルクリプルに起因する速度変動の波を説明する図である。
【図１７】  トルクリプル抑制動作を示すフローチャートである。
【図１８】  モータ速度制御指令（角度−速度データ）を示す図である。
【図１９】  図１７のＳ３３による、時間−角度データを示す図である。
【図２０】  図１７のＳ３４による、補正後の時間−角度データを示す図である。
【図２１】  図１７のＳ３５による、時間−速度データを示す図である。
【図２２】  図１７のＳ３６による、角度−速度データを示す図である。
【図２３】  従来の問題点を説明するための制御ブロック図である。
【図２４】  従来のトルクリプル抑制動作を説明するための制御ブロック図である。
【符号の説明】
１，２，１４〜１６，１８  それぞれ伝達関数で表されるブロック、
３  速度指令値発生手段、４  モータ回転速度制御手段、
５  補正指令値発生手段、６  モータ、７  モータ回転角度・速度測定手段、
８  速度リプル算出手段、９  リプルデータ保存手段、
１０  補正指令値演算手段、１１  補正指令値保存手段。
【図１】
0003816725.tif 000002
【図２】
0003816725.tif 000003
【図３】
0003816725.tif 000004
【図４】
0003816725.tif 000005
【図５】
0003816725.tif 000006
【図６】
0003816725.tif 000007
【図７】
0003816725.tif 000008
【図８】
0003816725.tif 000009
【図９】
0003816725.tif 000010
【図１０】
0003816725.tif 000011
【図１１】
0003816725.tif 000012
【図１２】
0003816725.tif 000013
【図１３】
0003816725.tif 000014
【図１４】
0003816725.tif 000015
【図１５】
0003816725.tif 000016
【図１６】
0003816725.tif 000017
【図１７】
0003816725.tif 000018
【図１８】
0003816725.tif 000019
【図１９】
0003816725.tif 000020
【図２０】
0003816725.tif 000021
【図２１】
0003816725.tif 000022
【図２２】
0003816725.tif 000023
【図２３】
0003816725.tif 000024
【図２４】
0003816725.tif 000025