(57)【要約】【課題】複数の周波数成分を含む高調波トルクリップルの補正が可能であり、また、トルク指令からコギング等のトルクリップルを正確に求めることができるモータ制御装置及びそのトルクリップル補正方法を提供する。【解決手段】  設定したサンプリング条件に従って、サンプリング部１０へサンプリング実行指令を出力するサンプリング判定部９と、複数箇所でのモータ位置Ｐｍでサンプリングした補正後トルク指令Ｔｒ＊を使って求めた複数のフーリエ係数ａｎ，ｂｎから、平均化処理した平均値フーリエ係数ａｎ＊，ｂｎ＊を算出する平均化処理部１３とを備え、補正値演算部１２は、設定した繰り返し回数Ｋだけ更新するフーリエ係数ａｎ，ｂｎまたは平均値フーリエ係数ａｎ＊，ｂｎ＊を使ってトルクリップル補正値Ｔｈを算出する。【選択図】図１
2010063343.tif 000002
【特許請求の範囲】
【請求項１】
モータ位置Ｐｍ及びモータ速度Ｖｍを演算する位置・速度演算部（６）と、モータ位相θを演算する位相演算部（７）と、位置指令及び／または速度指令と前記モータ位置Ｐｍ及び／または前記モータ速度Ｖｍからトルク指令Ｔｒを出力する位置・速度制御部（４）と、
前記モータ位相θに対する補正後トルク指令Ｔｒ＊をサンプリングするサンプリング部（１０）と、サンプリングした前記補正後トルク指令Ｔｒ＊をＦＦＴ（高速フーリエ変換）演算して、フーリエ係数（ａｎ，ｂｎ）を算出するＦＦＴ演算部（１１）と、算出した前記フーリエ係数（ａｎ，ｂｎ）から前記モータ位相θに対するトルクリップル補正値Ｔｈを算出する補正値演算部（１２）とを備え、
前記トルク指令Ｔｒと前記トルクリップル補正値Ｔｈを加算して前記補正後トルク指令Ｔｒ＊を求める加算器（２６）と、前記補正後トルク指令Ｔｒ＊に基づいてモータ（２）を駆動する電流制御部（５）とを備えたモータ制御装置において、
設定したサンプリング条件に従って、前記サンプリング部（１０）へサンプリング実行指令を出力するサンプリング判定部（９）と、複数箇所での前記モータ位置Ｐｍでサンプリングした前記補正後トルク指令Ｔｒ＊を使って求めた複数の前記フーリエ係数（ａｎ，ｂｎ）から、平均化処理した平均値フーリエ係数（ａｎ＊，ｂｎ＊）を算出する平均化処理部（１３）とを備え、
前記補正値演算部（１２）は、設定した繰り返し回数だけ更新する前記フーリエ係数（ａｎ，ｂｎ）または前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を使って前記トルクリップル補正値Ｔｈを算出することを特徴とするモータ制御装置。
【請求項２】
前記ＦＦＴ演算部（１１）は、複数の次数までの前記フーリエ係数（ａｎ，ｂｎ）を算出することを特徴とする請求項１に記載のモータ制御装置。
【請求項３】
前記サンプリング条件は、前記トルクリップル補正値Ｔｈから前記補正後トルク指令Ｔｒ＊までの周波数特性のゲインが１以下となる動作速度であって、かつ一定速度区間を持つ動作指令によって前記モータを動作させた場合に、前記モータが一定速度動作中の場合にのみ、前記サンプリング実行指令を出力することを特徴とする請求項１に記載のモータ制御装置。
【請求項４】
前記繰り返し回数は、前記モータ位置Ｐｍによるトルクリップルのバラツキを平均化するために複数箇所での前記モータ位置Ｐｍにおいて補正区間分のサンプリングを実行可能な回数と、サンプリングを実行するときのサーボゲインに基づいて決定することを特徴とする請求項１に記載のモータ制御装置。
【請求項５】
前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）または前記繰り返し回数の更新が完了した前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を不揮発性のメモリ（１４）に記憶し、該記憶以降の前記モータの駆動動作時においては、前記補正値演算部（１２）は、前記メモリ（１４）に記憶された前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を使って前記トルクリップル補正値Ｔｈを算出することを特徴とする請求項１に記載のモータ制御装置。
【請求項６】
モータ位置Ｐｍ及びモータ速度Ｖｍを演算する位置・速度演算部（６）と、モータ位相θを演算する位相演算部（７）と、位置指令及び／または速度指令と前記モータ位置Ｐｍ及び／または前記モータ速度Ｖｍからトルク指令Ｔｒを出力する位置・速度制御部（４）と、
前記モータ位相θに対する補正後トルク指令Ｔｒ＊をサンプリングするサンプリング部（１０）と、サンプリングした前記補正後トルク指令Ｔｒ＊をＦＦＴ（高速フーリエ変換）演算して、フーリエ係数（ａｎ，ｂｎ）を算出するＦＦＴ演算部（１１）と、算出した前記フーリエ係数（ａｎ，ｂｎ）から前記モータ位相θに対するトルクリップル補正値Ｔｈを算出する補正値演算部（１２）とを備え、
前記トルク指令Ｔｒと前記トルクリップル補正値Ｔｈを加算して前記補正後トルク指令Ｔｒ＊を求める加算器（２６）と、前記補正後トルク指令Ｔｒ＊に基づいてモータ（２）を駆動する電流制御部（５）とを備えたモータ制御装置のトルクリップル補正方法において、
設定したサンプリング条件に従って、前記サンプリング部（１０）へサンプリング実行を指令するステップと、
複数箇所での前記モータ位置Ｐｍでサンプリングした前記補正後トルク指令Ｔｒ＊を使って求めた複数の前記フーリエ係数（ａｎ，ｂｎ）から、平均化処理した平均値フーリエ係数（ａｎ＊，ｂｎ＊）を算出するステップと、
前記補正値演算部（１２）は、設定した繰り返し回数だけ更新する前記フーリエ係数（ａｎ，ｂｎ）または前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を使って前記トルクリップル補正値Ｔｈを算出するステップと、を備えることを特徴とするモータ制御装置のトルクリップル補正方法。
【請求項７】
前記ＦＦＴ演算部（１１）は、複数の次数までの前記フーリエ係数（ａｎ，ｂｎ）を算出することを特徴とする請求項６に記載のモータ制御装置のトルクリップル補正方法。
【請求項８】
前記サンプリング条件は、前記トルクリップル補正値Ｔｈから前記補正後トルク指令Ｔｒ＊までの周波数特性のゲインが１以下となる動作速度であって、かつ一定速度区間を持つ動作指令によって前記モータを動作させた場合に、前記モータが一定速度動作中の場合にのみ、前記サンプリング実行指令を出力することを特徴とする請求項６に記載のモータ制御装置のトルクリップル補正方法。
【請求項９】
前記繰り返し回数は、前記モータ位置Ｐｍによるトルクリップルのバラツキを平均化するために複数箇所での前記モータ位置Ｐｍにおいて補正区間分のサンプリングを実行可能な回数と、サンプリングを実行するときのサーボゲインに基づいて決定することを特徴とする請求項６に記載のモータ制御装置のトルクリップル補正方法。
【請求項１０】
前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）または前記繰り返し回数の更新が完了した前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を不揮発性のメモリ（１４）に記憶し、該記憶以降の前記モータの駆動動作時においては、前記補正値演算部（１２）は、前記メモリ（１４）に記憶された前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を使って前記トルクリップル補正値Ｔｈを算出することを特徴とする請求項６に記載のモータ制御装置のトルクリップル補正方法。
【請求項１１】
モータ位置Ｐｍ及びモータ速度Ｖｍを演算する位置・速度演算部（６）と、モータ位相θを演算する位相演算部（７）と、位置指令及び／または速度指令と前記モータ位置Ｐｍ及び／または前記モータ速度Ｖｍからトルク指令Ｔｒを出力する位置・速度制御部（４）と、フーリエ係数（ａｎ，ｂｎ）または平均化処理した平均値フーリエ係数（ａｎ＊，ｂｎ＊）から前記モータ位相θに対するトルクリップル補正値Ｔｈを算出する補正値演算部（１２）と、前記トルク指令Ｔｒと前記トルクリップル補正値Ｔｈを加算して補正後トルク指令Ｔｒ＊を求める加算器（２６）と、前記補正後トルク指令Ｔｒ＊に基づいてモータ（２）を駆動する電流制御部（５）と、を備えたモータ制御装置（１ａ）と、
設定したサンプリング条件に従って、サンプリング実行指令を出力するサンプリング判定部（９）と、前記モータ位相θに対する前記補正後トルク指令Ｔｒ＊をサンプリングするサンプリング部（１０）と、サンプリングした前記補正後トルク指令Ｔｒ＊をＦＦＴ（高速フーリエ変換）演算して、前記フーリエ係数（ａｎ，ｂｎ）を算出するＦＦＴ演算部（１１）と、複数箇所での前記モータ位置Ｐｍでサンプリングした前記補正後トルク指令Ｔｒ＊を使って求めた複数の前記フーリエ係数（ａｎ，ｂｎ）から、平均化処理した平均値フーリエ係数（ａｎ＊，ｂｎ＊）を算出する平均化処理部（１３）と、で構成されたトルクリップル補正係数演算部（１６）を備えた外部装置（１５）と、
から成るモータ制御システムであって、
前記外部装置（１５）から前記モータ制御装置（１ａ）へ設定した繰り返し回数だけ更新される前記フーリエ係数（ａｎ，ｂｎ）または前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を与えて、前記補正値演算部（１２）が前記トルクリップル補正値Ｔｈを算出することを特徴とするモータ制御システム。
【請求項１２】
前記ＦＦＴ演算部（１１）は、複数の次数までの前記フーリエ係数（ａｎ，ｂｎ）を算出することを特徴とする請求項１１に記載のモータ制御システム。
【請求項１３】
前記サンプリング条件は、前記トルクリップル補正値Ｔｈから前記補正後トルク指令Ｔｒ＊までの周波数特性のゲインが１以下となる動作速度であって、かつ一定速度区間を持つ動作指令によって前記モータを動作させた場合に、前記モータが一定速度動作中の場合にのみ、前記サンプリング実行指令を出力することを特徴とする請求項１１に記載のモータ制御システム。
【請求項１４】
前記繰り返し回数は、前記モータ位置Ｐｍによるトルクリップルのバラツキを平均化するために複数箇所での前記モータ位置Ｐｍにおいて補正区間分のサンプリングを実行可能な回数と、サンプリングを実行するときのサーボゲインに基づいて決定することを特徴とする請求項１１に記載のモータ制御システム。
【請求項１５】
前記モータ制御装置（１ａ）は、前記外部装置（１５）から与えられた前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）または前記繰り返し回数の更新が完了した前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を不揮発性のメモリ（１４）に記憶し、該記憶以降の前記モータの駆動動作時においては、前記補正値演算部（１２）が、前記メモリ（１４）に記憶された前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を使って前記トルクリップル補正値Ｔｈを算出することを特徴とする請求項１１に記載のモータ制御システム。
【請求項１６】
モータ位置Ｐｍ及びモータ速度Ｖｍを演算する位置・速度演算部（６）と、モータ位相θを演算する位相演算部（７）と、位置指令及び／または速度指令と前記モータ位置Ｐｍ及び／または前記モータ速度Ｖｍからトルク指令Ｔｒを出力する位置・速度制御部（４）と、
前記モータ位置Ｐｍに対応した複数箇所のトルク指令補正区間ｘ（ｘ＝１，２，・・・ｎ）のモータ位相θ(ｘ)に対する補正後トルク指令Ｔｒ＊(ｘ)をサンプリングするサンプリング部（１０ｃ）と、サンプリングした前記補正後トルク指令Ｔｒ＊(ｘ)をＦＦＴ（高速フーリエ変換）演算して、フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出するＦＦＴ演算部（１１）と、算出した前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］から前記モータ位相θ(ｘ)に対するトルクリップル補正値Ｔｈ(ｘ)を算出する補正値演算部（１２ｃ）と、
前記トルク指令Ｔｒと前記トルクリップル補正値Ｔｈ(ｘ)を加算して前記補正後トルク指令Ｔｒ＊(ｘ)を求める加算器（２６）と、前記補正後トルク指令Ｔｒ＊(ｘ)に基づいてモータ（２）を駆動する電流制御部（５）と、
設定したサンプリング条件に従って、前記サンプリング部（１０ｃ）へサンプリング実行指令を出力するサンプリング判定部（９）と、
を備えたモータ制御装置において、
前記サンプリング部（１０ｃ）は、前記モータ（２）の動作範囲に渡って設定された繰り返し回数だけ前記トルク指令補正区間ｘを通過する毎に、前記モータ位相θ(ｘ)と前記補正後トルク指令Ｔｒ＊(ｘ)をサンプリングし、前記ＦＦＴ演算部（１１）は、サンプリングされた前記モータ位相θ(ｘ)と前記補正後トルク指令Ｔｒ＊(ｘ)から、前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出し、かつ前回の算出値を更新し、前記補正値演算部（１２ｃ）は、前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を前記トルク指令補正区間ｘ毎に対応付けて選択しながら、前記モータ位置Ｐｍに対応したトルクリップル補正値Ｔｈ(ｘ)を算出することを特徴とするモータ制御装置。
【請求項１７】
前記ＦＦＴ演算部（１１）は、複数の次数までの前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出することを特徴とする請求項１６に記載のモータ制御装置。
【請求項１８】
前記サンプリング条件は、前記トルクリップル補正値Ｔｈ(ｘ)から前記補正後トルク指令Ｔｒ＊(ｘ)までの周波数特性のゲインが１以下となる動作速度であって、かつ一定速度区間を持つ動作指令によって前記モータを動作させた場合に、前記モータが一定速度動作中の場合にのみ、前記サンプリング実行指令を出力することを特徴とする請求項１６に記載のモータ制御装置。
【請求項１９】
前記繰り返し回数は、サンプリングを実行するときのサーボゲインに基づいて決定することを特徴とする請求項１６に記載のモータ制御装置。
【請求項２０】
前記繰り返し回数の更新が完了した前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を不揮発性のメモリ（１４）に記憶し、該記憶以降の前記モータの駆動動作時においては、前記補正値演算部（１２ｃ）は、前記メモリ（１４）に記憶された前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を使って前記トルクリップル補正値Ｔｈ(ｘ)を算出することを特徴とする請求項１６に記載のモータ制御装置。
【請求項２１】
モータ位置Ｐｍ及びモータ速度Ｖｍを演算する位置・速度演算部（６）と、モータ位相θを演算する位相演算部（７）と、位置指令及び／または速度指令と前記モータ位置Ｐｍ及び／または前記モータ速度Ｖｍからトルク指令Ｔｒを出力する位置・速度制御部（４）と、
前記モータ位置Ｐｍに対応した複数箇所のトルク指令補正区間ｘ（ｘ＝１，２，・・・ｎ）のモータ位相θ(ｘ)に対する補正後トルク指令Ｔｒ＊(ｘ)をサンプリングするサンプリング部（１０ｃ）と、サンプリングした前記補正後トルク指令Ｔｒ＊(ｘ)をＦＦＴ（高速フーリエ変換）演算して、フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出するＦＦＴ演算部（１１）と、算出した前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］から前記モータ位相θ(ｘ)に対するトルクリップル補正値Ｔｈ(ｘ)を算出する補正値演算部（１２ｃ）と、
前記トルク指令Ｔｒと前記トルクリップル補正値Ｔｈ(ｘ)を加算して前記補正後トルク指令Ｔｒ＊(ｘ)を求める加算器（２６）と、前記補正後トルク指令Ｔｒ＊(ｘ)に基づいてモータ（２）を駆動する電流制御部（５）と、
を備えたモータ制御装置のトルクリップル補正方法において、
設定したサンプリング条件に従って、前記サンプリング部（１０ｃ）へサンプリング実行を指令するステップと、
該サンプリング実行指令を受けて、前記モータ（２）の動作範囲に渡って設定された繰り返し回数だけ前記トルク指令補正区間ｘを通過する毎に、前記モータ位相θ(ｘ)と前記補正後トルク指令Ｔｒ＊(ｘ)をサンプリングするステップと、
サンプリングされた前記モータ位相θ(ｘ)と前記補正後トルク指令Ｔｒ＊(ｘ)から、前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出し、かつ前回の算出値を更新するステップと、
前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を前記トルク指令補正区間ｘ毎に対応付けて選択しながら、前記モータ位置Ｐｍに対応したトルクリップル補正値Ｔｈ(ｘ)を算出するステップと、
を備えることを特徴とするモータ制御装置のトルクリップル補正方法。
【請求項２２】
前記ＦＦＴ演算部（１１）は、複数の次数までの前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出することを特徴とする請求項２１に記載のモータ制御装置のトルクリップル補正方法。
【請求項２３】
前記サンプリング条件は、前記トルクリップル補正値Ｔｈ(ｘ)から前記補正後トルク指令Ｔｒ＊(ｘ)までの周波数特性のゲインが１以下となる動作速度であって、かつ一定速度区間を持つ動作指令によって前記モータを動作させた場合に、前記モータが一定速度動作中の場合にのみ、前記サンプリング実行指令を出力することを特徴とする請求項２１に記載のモータ制御装置のトルクリップル補正方法。
【請求項２４】
前記繰り返し回数は、サンプリングを実行するときのサーボゲインに基づいて決定することを特徴とする請求項２１に記載のモータ制御装置のトルクリップル補正方法。
【請求項２５】
前記繰り返し回数の更新が完了した前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を不揮発性のメモリ（１４）に記憶し、該記憶以降の前記モータの駆動動作時においては、前記補正値演算部（１２ｃ）は、前記メモリ（１４）に記憶された前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を使って前記トルクリップル補正値Ｔｈ(ｘ)を算出することを特徴とする請求項２１に記載のモータ制御装置のトルクリップル補正方法。
【請求項２６】
モータ位置Ｐｍ及びモータ速度Ｖｍを演算する位置・速度演算部（６）と、モータ位相θを演算する位相演算部（７）と、位置指令及び／または速度指令と前記モータ位置Ｐｍ及び／または前記モータ速度Ｖｍからトルク指令Ｔｒを出力する位置・速度制御部（４）と、前記モータ位置Ｐｍに対応した複数箇所のトルク指令補正区間ｘ（ｘ＝１，２，・・・ｎ）のモータ位相θ(ｘ)に対するトルクリップル補正値Ｔｈ(ｘ)を算出する補正値演算部（１２ｃ）と、前記トルク指令Ｔｒと前記トルクリップル補正値Ｔｈ(ｘ)を加算して補正後トルク指令Ｔｒ＊(ｘ)を求める加算器（２６）と、前記補正後トルク指令Ｔｒ＊(ｘ)に基づいてモータ（２）を駆動する電流制御部（５）と、を備えたモータ制御装置（１ｄ）と、
設定したサンプリング条件に従って、サンプリング実行指令を出力するサンプリング判定部（９）と、前記モータ位相θ(ｘ)に対する前記補正後トルク指令Ｔｒ＊(ｘ)をサンプリングするサンプリング部（１０ｃ）と、サンプリングした前記補正後トルク指令Ｔｒ＊(ｘ)をＦＦＴ（高速フーリエ変換）演算して、フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出するＦＦＴ演算部（１１）と、で構成されたトルクリップル補正係数演算部（１６ａ）を備えた外部装置（１５ａ）と、
から成るモータ制御システムであって、
前記外部装置（１５ａ）の前記サンプリング部（１０ｃ）は、前記モータ（２）の動作範囲に渡って設定された繰り返し回数だけ前記トルク指令補正区間ｘを通過する毎に、前記モータ位相θ(ｘ)と前記補正後トルク指令Ｔｒ＊(ｘ)をサンプリングし、前記外部装置（１５ａ）の前記ＦＦＴ演算部（１１）は、サンプリングされた前記モータ位相θ(ｘ)と前記補正後トルク指令Ｔｒ＊(ｘ)から、前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出し、かつ前回の算出値を更新し、
前記モータ制御装置（１ｄ）の前記補正値演算部（１２ｃ）は、前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を前記トルク指令補正区間ｘ毎に対応付けて選択しながら、前記モータ位置Ｐｍに対応したトルクリップル補正値Ｔｈ(ｘ)を算出することを特徴とするモータ制御システム。
【請求項２７】
前記ＦＦＴ演算部（１１）は、複数の次数までの前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出することを特徴とする請求項２６に記載のモータ制御システム。
【請求項２８】
前記サンプリング条件は、前記トルクリップル補正値Ｔｈから前記補正後トルク指令Ｔｒ＊までの周波数特性のゲインが１以下となる動作速度であって、かつ一定速度区間を持つ動作指令によって前記モータを動作させた場合に、前記モータが一定速度動作中の場合にのみ、前記サンプリング実行指令を出力することを特徴とする請求項２６に記載のモータ制御システム。
【請求項２９】
前記繰り返し回数は、サンプリングを実行するときのサーボゲインに基づいて決定することを特徴とする請求項２６に記載のモータ制御システム。
【請求項３０】
前記モータ制御装置（１ｄ）は、前記繰り返し回数の更新が完了した前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を不揮発性のメモリ（１４）に記憶し、該記憶以降の前記モータの駆動動作時においては、前記補正値演算部（１２ｃ）は、前記メモリ（１４）に記憶された前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を使って前記トルクリップル補正値Ｔｈ(ｘ)を算出することを特徴とする請求項２６に記載のモータ制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ制御装置及びそのトルクリップル補正方法に係わり、特に、モータに起因するトルクリップルを低減するモータ制御装置及びそのトルクリップル補正方法に関する。
【背景技術】
【０００２】
従来のトルクリップル低減機能を有するモータ制御装置の例としては、例えば特許文献１に開示されているものがある。
図１２は、特許文献１に開示されているリニアモータを備えた搬送装置用のモータ制御装置の制御構成を示す図である。図１２において、１ｂはモータ制御装置、２ａは搬送手段であるリニアモータ、３ａは検出手段であるロータリーエンコーダ、２０は搬送制御手段、５ａは駆動手段、２１は制御部、２２は速度制御部、２３は電流制御部、２４はインバータ、２５は電流検出器、６ａは位置・速度検出部、８ａ（８ｂ，８ｃ）はＦＦＴ演算・補正部、１４はメモリである。
【０００３】
図１２で示すように、モータ制御装置１ｂの制御系は、制御部２１である上位システムから指令される速度指令Ｖｒと、検出手段であるロータリーエンコーダ３ａからの位置信号を位置・速度検出部６ａで時間微分して搬送手段であるリニアモータ２ａの搬送速度に変換した速度Ｖｍを差分して求めた速度偏差に基づいてＰＩＤ(比例積分微分)制御演算を行う速度制御部２２と、速度制御部２２からリニアモータ２ａの駆動トルクであるトルク指令Ｔｒを駆動手段５ａに出力し、駆動手段５ａはリニアモータ２ａにトルク指令Ｔｒに応じた電流を供給する。
駆動手段５ａは、電流制御部２３、インバータ２４、電流検出器２５から構成され、電流制御部２３は電流検出器２５で検出されたリニアモータ２ａの駆動電流Ｉｍと速度制御部２２からのトルク指令Ｔｒに基づいて演算した電流が一致するようにフィードバック制御する構成になっており、インバータ２４はトルク指令Ｔｒに基づいたＰＷＭ制御信号に基づいてリニアモータ２ａの電磁コイルに対し駆動用電流を出力し、電流検出器２５はインバータ２４が出力する駆動用電流Ｉｍを検出する。
また、搬送制御手段２０には、位置・速度検出部６ａからのリニアモータ２ａの可動子に対する位置Ｐｍと速度制御部２２から出力されるトルク指令Ｔｒを入力とし、該トルク指令の補正値Ｔｈを出力するＦＦＴ演算・補正部８ａを備える。
【０００４】
次に、ＦＦＴ演算・補正部８ａについて、図１３（ａ）を参照して説明する。
ＦＦＴ演算・補正部８ａは、内部にサンプリング部１０ａ、ＦＦＴ演算部１１ａ、補正値演算部１２ａを備え、速度制御部２２からのトルク指令Ｔｒと補正値演算部１２ａから出力される補正値Ｔｈを加算し、サンプリング部１０ａへ出力する。サンプリング部１０ａは、トルク指令Ｔｒと補正値Ｔｈの加算値を、位置・速度検出部６ａの位置情報Ｐｍに基づいて所定のサンプリング位置周期Ｌｓ毎にサンプリングする。ＦＦＴ演算部１１ａは、サンプリングされた情報をＦＦＴ(高速フーリエ変換)演算して、補正を行う所望の位置周期Ｌでの振幅情報と位相情報を出力する。補正値演算部１２ａは、振幅情報と位相情報に基づいて、式（１）で算出される搬送手段の位置に応じた補正値Ｔｈを出力する。
【０００５】
【数１】
2010063343.tif 000003
【０００６】
また、ＦＦＴ演算・補正部８ａは、制御部２１の指示によりリニアモータ２ａが等速搬送を行う場合において、図１３（ｃ）に示す構成により、位置情報Ｐｍによる位置周期でのサンプリングとＦＦＴ演算処理の代わりに、計時手段による所定の時間周期でのサンプリングとＦＦＴ演算を行う構成のＦＦＴ演算・補正部８ｃであっても良い。この場合は、等速搬送における所定の時間周期でのサンプリングであるため、上述の位置周期と同等の効果が得られる。
【０００７】
次に、モータ制御装置１ｂにより行われる具体的な処理のフローチャートを図１４に示して説明する。
まず、ユーザ等からの目標速度や目標位置の指定による搬送指示により、現在の可動子の位置や速度の状態の取得や原点センサに可動子を移動させて停止する等の初期化処理を行う（ステップＳ１１）。次に、ユーザ等の指示により制御部２１からの搬送指示と検出手段による可動子の状態を検出した情報とを元に、目標速度又は目標位置へ可動子を搬送するためのフィードバック制御演算が開始され（ステップＳ１２）、ＦＦＴ演算・補正部８ａにおいて、所定の位置周期でサンプリングされて（ステップＳ１３）、ＦＦＴ演算処理により位置周期における補正量の振幅と位相が算出され（ステップＳ１４）、測定位置における補正値Ｔｈが作成される（ステップＳ１５）。ステップＳ１５の後、作成された補正値Ｔｈに基づいてトルク指令Ｔｒが補正され（ステップＳ１６）、目標位置への到達などの終了条件に達したか否かが判定され（ステップＳ１７）、終了条件にないと判定された場合はステップＳ１２へ戻る（ステップＳ１７：ＮＯ）。
【０００８】
また、補正は、補正を行う所望の位置周期Ｌで補正値を算出後の次の位置周期Ｌから補正を行っても良いし、初回の往復搬送時の搬送区間から補正値を求め、次回の往復搬送時に前回までの補正値により補正を行っても良い。
【０００９】
以上のように、モータ制御装置１ｂは、搬送制御を位置周期によるＦＦＴ演算で補正されたトルク指令を参照して行う構成であるため、搬送状態に応じた高精度な搬送制御を行うことができるのである。
【００１０】
次に、変形例として、図１３（ｂ）に示すように平均化処理部１３ａを加えたＦＦＴ演算・補正部８ｂについて説明する。
図１３（ｂ）において平均化処理部１３ａは、ＦＦＴ演算部１１ａで演算された振幅と位相を平均化して補正値演算部１２ａへ出力する。平均化処理部１３ａの例としては、例えば、入力値と前回の出力値をそれぞれ１／２倍して加算したものを出力値とする構成があり、その他にも、ローパスフィルタ、バンドパスフィルタ、帯域除去フィルタ等の様々なＩＩＲ（Infinite Impulse Response）型デジタルフィルタを適用することができる。なお、デジタルフィルタの遅延量としては、１往復毎でもよいし、補正を行う所望の位置周期毎でもよい。
【００１１】
ＦＦＴ演算・補正部８ｂによる構成の場合に、モータ制御装置１ｂにより行われる具体的な処理のフローチャートを図１５に示す。図１５において、ステップＳ２１からステップＳ２４及びステップＳ２８からステップＳ３０は、前述の図１４で説明したステップＳ１１からステップＳ１７の処理と同一であるため説明を省略し、ステップＳ２５からステップＳ２７までの処理について説明する。
ステップＳ２４の後、算出された補正量の振幅と位相とが前回に平均化処理した値に対して所定の幅を持った範囲内であるかが判断される（ステップＳ２５）。この処理により、補正量の変動が突発的なものであるか否かが判定される。そして、ステップＳ２５において補正量に突発的な変動がないと判定された場合は、前述の平均化処理が平均化処理部１３ａで行われる（ステップＳ２６）。また、突発的な変動であると判定された場合は、そのデータを削除して平均化処理を行わないのと同時に前回の平均化処理により得られたデータが補正量として代わりに代入される（ステップＳ２７）。
【００１２】
以上のように、モータ制御装置１ｂは、ＦＦＴ演算・補正部８ｂの内部で平均化処理やフィルタ処理を行う平均化処理部１３ａを備えることにより、搬送回数を重ねるごとに誤差の影響を平均化により小さくして、より平滑で高精度な搬送制御を行うことができる。また、突発的な誤差による影響を防止する構成を含むため、さらに平滑で高精度な搬送制御を実現できるのである。
【特許文献１】特開２００６−１３７５４５号公報（第７−１１頁、図３）
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、上述した従来例は、複数の周波数成分を含む高調波トルクリップルに対する補正については記載されておらず、複数の周波数を含むリップルを補正することができないという問題があった。また、トルク指令からコギング等のトルクリップルを正確に求めるためには、加減速動作中に現れる制御系の固有周波数等を含まずにサンプリングすることが必要で、一定速度で動作中のみのトルク指令をサンプリングしてＦＦＴ演算を行う必要がある。また、サンプリングに適した動作速度も存在する。さらに、トルクリップルを正確に求めるためには、補正を繰り返すことが必要であるが、トルクリップルが正確に求まるまでに必要な補正の繰り返し回数はサーボゲインによって異なっており、低いサーボゲイン程、補正を繰り返す必要がある。従来例においては、これらのことについて記載されておらず、トルクリップルを正確に求めることができない場合があるという問題があった。
【００１４】
本発明はこのような問題点に鑑みてなされたものであり、複数の周波数成分を含む高調波トルクリップルの補正が可能であり、また、トルク指令からコギング等のトルクリップルを正確に求めることができるモータ制御装置及びそのトルクリップル補正方法を提供することを目的とする。また、モータ制御装置からＦＦＴ演算等の演算処理負担を軽減するモータ制御システムを提供することを目的とするものである。
【課題を解決するための手段】
【００１５】
上記問題を解決するため、本発明は、次のような構成及び方法としたものである。
請求項１に記載の発明は、モータ位置Ｐｍ及びモータ速度Ｖｍを演算する位置・速度演算部（６）と、モータ位相θを演算する位相演算部（７）と、位置指令及び／または速度指令と前記モータ位置Ｐｍ及び／または前記モータ速度Ｖｍからトルク指令Ｔｒを出力する位置・速度制御部（４）と、前記モータ位相θに対する補正後トルク指令Ｔｒ＊をサンプリングするサンプリング部（１０）と、サンプリングした前記補正後トルク指令Ｔｒ＊をＦＦＴ（高速フーリエ変換）演算して、フーリエ係数（ａｎ，ｂｎ）を算出するＦＦＴ演算部（１１）と、算出した前記フーリエ係数（ａｎ，ｂｎ）から前記モータ位相θに対するトルクリップル補正値Ｔｈを算出する補正値演算部（１２）とを備え、前記トルク指令Ｔｒと前記トルクリップル補正値Ｔｈを加算して前記補正後トルク指令Ｔｒ＊を求める加算器（２６）と、前記補正後トルク指令Ｔｒ＊に基づいてモータ（２）を駆動する電流制御部（５）とを備えたモータ制御装置において、
設定したサンプリング条件に従って、前記サンプリング部（１０）へサンプリング実行指令を出力するサンプリング判定部（９）と、複数箇所での前記モータ位置Ｐｍでサンプリングした前記補正後トルク指令Ｔｒ＊を使って求めた複数の前記フーリエ係数（ａｎ，ｂｎ）から、平均化処理した平均値フーリエ係数（ａｎ＊，ｂｎ＊）を算出する平均化処理部（１３）とを備え、
前記補正値演算部（１２）が、設定した繰り返し回数だけ更新する前記フーリエ係数（ａｎ，ｂｎ）または前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を使って前記トルクリップル補正値Ｔｈを算出するものである。
【００１６】
請求項２に記載の発明は、請求項１に記載のモータ制御装置において、前記ＦＦＴ演算部（１１）が、複数の次数までの前記フーリエ係数（ａｎ，ｂｎ）を算出するものである。
請求項３に記載の発明は、請求項１に記載のモータ制御装置において、前記サンプリング条件が、前記トルクリップル補正値Ｔｈから前記補正後トルク指令Ｔｒ＊までの周波数特性のゲインが１以下となる動作速度であって、かつ一定速度区間を持つ動作指令によって前記モータを動作させた場合に、前記モータが一定速度動作中の場合にのみ、前記サンプリング実行指令を出力するものである。
請求項４に記載の発明は、請求項１に記載のモータ制御装置において、前記繰り返し回数が、前記モータ位置Ｐｍによるトルクリップルのバラツキを平均化するために複数箇所での前記モータ位置Ｐｍにおいて補正区間分のサンプリングを実行可能な回数と、サンプリングを実行するときのサーボゲインに基づいて決定するものである。
請求項５に記載の発明は、請求項１に記載のモータ制御装置において、前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）または前記繰り返し回数の更新が完了した前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を不揮発性のメモリ（１４）に記憶し、該記憶以降の前記モータの駆動動作時においては、前記補正値演算部（１２）は、前記メモリ（１４）に記憶された前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を使って前記トルクリップル補正値Ｔｈを算出するものである。
【００１７】
請求項６に記載の発明は、モータ位置Ｐｍ及びモータ速度Ｖｍを演算する位置・速度演算部（６）と、モータ位相θを演算する位相演算部（７）と、位置指令及び／または速度指令と前記モータ位置Ｐｍ及び／または前記モータ速度Ｖｍからトルク指令Ｔｒを出力する位置・速度制御部（４）と、前記モータ位相θに対する補正後トルク指令Ｔｒ＊をサンプリングするサンプリング部（１０）と、サンプリングした前記補正後トルク指令Ｔｒ＊をＦＦＴ（高速フーリエ変換）演算して、フーリエ係数（ａｎ，ｂｎ）を算出するＦＦＴ演算部（１１）と、算出した前記フーリエ係数（ａｎ，ｂｎ）から前記モータ位相θに対するトルクリップル補正値Ｔｈを算出する補正値演算部（１２）とを備え、前記トルク指令Ｔｒと前記トルクリップル補正値Ｔｈを加算して前記補正後トルク指令Ｔｒ＊を求める加算器（２６）と、前記補正後トルク指令Ｔｒ＊に基づいてモータ（２）を駆動する電流制御部（５）とを備えたモータ制御装置のトルクリップル補正方法において、
設定したサンプリング条件に従って、前記サンプリング部（１０）へサンプリング実行を指令するステップと、複数箇所での前記モータ位置Ｐｍでサンプリングした前記補正後トルク指令Ｔｒ＊を使って求めた複数の前記フーリエ係数（ａｎ，ｂｎ）から、平均化処理した平均値フーリエ係数（ａｎ＊，ｂｎ＊）を算出するステップと、前記補正値演算部（１２）が、設定した繰り返し回数だけ更新する前記フーリエ係数（ａｎ，ｂｎ）または前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を使って前記トルクリップル補正値Ｔｈを算出するステップと、を備えるものである。
請求項７に記載の発明は、請求項６に記載のモータ制御装置のトルクリップル補正方法において、前記ＦＦＴ演算部（１１）が、複数の次数までの前記フーリエ係数（ａｎ，ｂｎ）を算出するものである。
【００１８】
請求項８に記載の発明は、請求項６に記載のモータ制御装置のトルクリップル補正方法において、前記サンプリング条件が、前記トルクリップル補正値Ｔｈから前記補正後トルク指令Ｔｒ＊までの周波数特性のゲインが１以下となる動作速度であって、かつ一定速度区間を持つ動作指令によって前記モータを動作させた場合に、前記モータが一定速度動作中の場合にのみ、前記サンプリング実行指令を出力するものである。
請求項９に記載の発明は、請求項６に記載のモータ制御装置のトルクリップル補正方法において、前記繰り返し回数が、前記モータ位置Ｐｍによるトルクリップルのバラツキを平均化するために複数箇所での前記モータ位置Ｐｍにおいて補正区間分のサンプリングを実行可能な回数と、サンプリングを実行するときのサーボゲインに基づいて決定するものである。
請求項１０に記載の発明は、請求項６に記載のモータ制御装置のトルクリップル補正方法において、前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）または前記繰り返し回数の更新が完了した前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を不揮発性のメモリ（１４）に記憶し、該記憶以降の前記モータの駆動動作時においては、前記補正値演算部（１２）は、前記メモリ（１４）に記憶された前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を使って前記トルクリップル補正値Ｔｈを算出するものである。
【００１９】
請求項１１に記載の発明は、モータ位置Ｐｍ及びモータ速度Ｖｍを演算する位置・速度演算部（６）と、モータ位相θを演算する位相演算部（７）と、位置指令及び／または速度指令と前記モータ位置Ｐｍ及び／または前記モータ速度Ｖｍからトルク指令Ｔｒを出力する位置・速度制御部（４）と、フーリエ係数（ａｎ，ｂｎ）または平均化処理した平均値フーリエ係数（ａｎ＊，ｂｎ＊）から前記モータ位相θに対するトルクリップル補正値Ｔｈを算出する補正値演算部（１２）と、前記トルク指令Ｔｒと前記トルクリップル補正値Ｔｈを加算して補正後トルク指令Ｔｒ＊を求める加算器（２６）と、前記補正後トルク指令Ｔｒ＊に基づいてモータ（２）を駆動する電流制御部（５）と、を備えたモータ制御装置（１ａ）と、
設定したサンプリング条件に従って、サンプリング実行指令を出力するサンプリング判定部（９）と、前記モータ位相θに対する前記補正後トルク指令Ｔｒ＊をサンプリングするサンプリング部（１０）と、サンプリングした前記補正後トルク指令Ｔｒ＊をＦＦＴ（高速フーリエ変換）演算して、前記フーリエ係数（ａｎ，ｂｎ）を算出するＦＦＴ演算部（１１）と、複数箇所での前記モータ位置Ｐｍでサンプリングした前記補正後トルク指令Ｔｒ＊を使って求めた複数の前記フーリエ係数（ａｎ，ｂｎ）から、平均化処理した平均値フーリエ係数（ａｎ＊，ｂｎ＊）を算出する平均化処理部（１３）と、で構成されたトルクリップル補正係数演算部（１６）を備えた外部装置（１５）と、から成るモータ制御システムであって、
前記外部装置（１５）から前記モータ制御装置（１ａ）へ設定した繰り返し回数だけ更新される前記フーリエ係数（ａｎ，ｂｎ）または前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を与えて、前記補正値演算部（１２）が前記トルクリップル補正値Ｔｈを算出するものである。
【００２０】
請求項１２に記載の発明は、請求項１１に記載のモータ制御システムにおいて、前記ＦＦＴ演算部（１１）が、複数の次数までの前記フーリエ係数（ａｎ，ｂｎ）を算出するものである。
請求項１３に記載の発明は、請求項１１に記載のモータ制御システムにおいて、前記サンプリング条件が、前記トルクリップル補正値Ｔｈから前記補正後トルク指令Ｔｒ＊までの周波数特性のゲインが１以下となる動作速度であって、かつ一定速度区間を持つ動作指令によって前記モータを動作させた場合に、前記モータが一定速度動作中の場合にのみ、前記サンプリング実行指令を出力するものである。
請求項１４に記載の発明は、請求項１１に記載のモータ制御システムにおいて、前記繰り返し回数が、前記モータ位置Ｐｍによるトルクリップルのバラツキを平均化するために複数箇所での前記モータ位置Ｐｍにおいて補正区間分のサンプリングを実行可能な回数と、サンプリングを実行するときのサーボゲインに基づいて決定するものである。
請求項１５に記載の発明は、請求項１１に記載のモータ制御システムにおいて、前記モータ制御装置（１ａ）が、前記外部装置（１５）から与えられた前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）または前記繰り返し回数の更新が完了した前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を不揮発性のメモリ（１４）に記憶し、該記憶以降の前記モータの駆動動作時においては、前記補正値演算部（１２）が、前記メモリ（１４）に記憶された前記平均値フーリエ係数（ａｎ＊，ｂｎ＊）を使って前記トルクリップル補正値Ｔｈを算出するものである。
【００２１】
請求項１６に記載の発明は、モータ位置Ｐｍ及びモータ速度Ｖｍを演算する位置・速度演算部（６）と、モータ位相θを演算する位相演算部（７）と、位置指令及び／または速度指令と前記モータ位置Ｐｍ及び／または前記モータ速度Ｖｍからトルク指令Ｔｒを出力する位置・速度制御部（４）と、前記モータ位置Ｐｍに対応した複数箇所のトルク指令補正区間ｘ（ｘ＝１，２，・・・ｎ）のモータ位相θ(ｘ)に対する補正後トルク指令Ｔｒ＊(ｘ)をサンプリングするサンプリング部（１０ｃ）と、サンプリングした前記補正後トルク指令Ｔｒ＊(ｘ)をＦＦＴ（高速フーリエ変換）演算して、フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出するＦＦＴ演算部（１１）と、算出した前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］から前記モータ位相θ(ｘ)に対するトルクリップル補正値Ｔｈ(ｘ)を算出する補正値演算部（１２ｃ）と、前記トルク指令Ｔｒと前記トルクリップル補正値Ｔｈ(ｘ)を加算して前記補正後トルク指令Ｔｒ＊(ｘ)を求める加算器（２６）と、前記補正後トルク指令Ｔｒ＊(ｘ)に基づいてモータ（２）を駆動する電流制御部（５）と、設定したサンプリング条件に従って、前記サンプリング部（１０ｃ）へサンプリング実行指令を出力するサンプリング判定部（９）と、を備えたモータ制御装置において、
前記サンプリング部（１０ｃ）が、前記モータ（２）の動作範囲に渡って設定された繰り返し回数だけ前記トルク指令補正区間ｘを通過する毎に、前記モータ位相θ(ｘ)と前記補正後トルク指令Ｔｒ＊(ｘ)をサンプリングし、前記ＦＦＴ演算部（１１）が、サンプリングされた前記モータ位相θ(ｘ)と前記補正後トルク指令Ｔｒ＊(ｘ)から、前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出し、かつ前回の算出値を更新し、前記補正値演算部（１２ｃ）が、前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を前記トルク指令補正区間ｘ毎に対応付けて選択しながら、前記モータ位置Ｐｍに対応したトルクリップル補正値Ｔｈ(ｘ)を算出するものである。
【００２２】
請求項１７に記載の発明は、請求項１６に記載のモータ制御装置において、前記ＦＦＴ演算部（１１）が、複数の次数までの前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出するものである。
請求項１８に記載の発明は、請求項１６に記載のモータ制御装置において、前記サンプリング条件が、前記トルクリップル補正値Ｔｈ(ｘ)から前記補正後トルク指令Ｔｒ＊(ｘ)までの周波数特性のゲインが１以下となる動作速度であって、かつ一定速度区間を持つ動作指令によって前記モータを動作させた場合に、前記モータが一定速度動作中の場合にのみ、前記サンプリング実行指令を出力するものである。
請求項１９に記載の発明は、請求項１６に記載のモータ制御装置において、前記繰り返し回数が、サンプリングを実行するときのサーボゲインに基づいて決定するものである。
請求項２０に記載の発明は、請求項１６に記載のモータ制御装置において、前記繰り返し回数の更新が完了した前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を不揮発性のメモリ（１４）に記憶し、該記憶以降の前記モータの駆動動作時においては、前記補正値演算部（１２ｃ）が、前記メモリ（１４）に記憶された前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を使って前記トルクリップル補正値Ｔｈ(ｘ)を算出するものである。
【００２３】
請求項２１に記載の発明は、モータ位置Ｐｍ及びモータ速度Ｖｍを演算する位置・速度演算部（６）と、モータ位相θを演算する位相演算部（７）と、位置指令及び／または速度指令と前記モータ位置Ｐｍ及び／または前記モータ速度Ｖｍからトルク指令Ｔｒを出力する位置・速度制御部（４）と、前記モータ位置Ｐｍに対応した複数箇所のトルク指令補正区間ｘ（ｘ＝１，２，・・・ｎ）のモータ位相θ(ｘ)に対する補正後トルク指令Ｔｒ＊(ｘ)をサンプリングするサンプリング部（１０ｃ）と、サンプリングした前記補正後トルク指令Ｔｒ＊(ｘ)をＦＦＴ（高速フーリエ変換）演算して、フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出するＦＦＴ演算部（１１）と、算出した前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］から前記モータ位相θ(ｘ)に対するトルクリップル補正値Ｔｈ(ｘ)を算出する補正値演算部（１２ｃ）と、前記トルク指令Ｔｒと前記トルクリップル補正値Ｔｈ(ｘ)を加算して前記補正後トルク指令Ｔｒ＊(ｘ)を求める加算器（２６）と、前記補正後トルク指令Ｔｒ＊(ｘ)に基づいてモータ（２）を駆動する電流制御部（５）と、を備えたモータ制御装置のトルクリップル補正方法において、
設定したサンプリング条件に従って、前記サンプリング部（１０ｃ）へサンプリング実行を指令するステップと、該サンプリング実行指令を受けて、前記モータ（２）の動作範囲に渡って設定された繰り返し回数だけ前記トルク指令補正区間ｘを通過する毎に、前記モータ位相θ(ｘ)と前記補正後トルク指令Ｔｒ＊(ｘ)をサンプリングするステップと、サンプリングされた前記モータ位相θ(ｘ)と前記補正後トルク指令Ｔｒ＊(ｘ)から、前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出し、かつ前回の算出値を更新するステップと、前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を前記トルク指令補正区間ｘ毎に対応付けて選択しながら、前記モータ位置Ｐｍに対応したトルクリップル補正値Ｔｈ(ｘ)を算出するステップと、を備えるものである。
請求項２２に記載の発明は、請求項２１に記載のモータ制御装置のトルクリップル補正方法において、前記ＦＦＴ演算部（１１）が、複数の次数までの前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出するものである。
【００２４】
請求項２３に記載の発明は、請求項２１に記載のモータ制御装置のトルクリップル補正方法において、前記サンプリング条件が、前記トルクリップル補正値Ｔｈ(ｘ)から前記補正後トルク指令Ｔｒ＊(ｘ)までの周波数特性のゲインが１以下となる動作速度であって、かつ一定速度区間を持つ動作指令によって前記モータを動作させた場合に、前記モータが一定速度動作中の場合にのみ、前記サンプリング実行指令を出力するものである。
請求項２４に記載の発明は、請求項２１に記載のモータ制御装置のトルクリップル補正方法において、前記繰り返し回数が、サンプリングを実行するときのサーボゲインに基づいて決定するものである。
請求項２５に記載の発明は、請求項２１に記載のモータ制御装置のトルクリップル補正方法において、前記繰り返し回数の更新が完了した前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を不揮発性のメモリ（１４）に記憶し、該記憶以降の前記モータの駆動動作時においては、前記補正値演算部（１２ｃ）が、前記メモリ（１４）に記憶された前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を使って前記トルクリップル補正値Ｔｈ(ｘ)を算出するものである。
【００２５】
請求項２６に記載の発明は、モータ位置Ｐｍ及びモータ速度Ｖｍを演算する位置・速度演算部（６）と、モータ位相θを演算する位相演算部（７）と、位置指令及び／または速度指令と前記モータ位置Ｐｍ及び／または前記モータ速度Ｖｍからトルク指令Ｔｒを出力する位置・速度制御部（４）と、前記モータ位置Ｐｍに対応した複数箇所のトルク指令補正区間ｘ（ｘ＝１，２，・・・ｎ）のモータ位相θ(ｘ)に対するトルクリップル補正値Ｔｈ(ｘ)を算出する補正値演算部（１２ｃ）と、前記トルク指令Ｔｒと前記トルクリップル補正値Ｔｈ(ｘ)を加算して補正後トルク指令Ｔｒ＊(ｘ)を求める加算器（２６）と、前記補正後トルク指令Ｔｒ＊(ｘ)に基づいてモータ（２）を駆動する電流制御部（５）と、を備えたモータ制御装置（１ｄ）と、設定したサンプリング条件に従って、サンプリング実行指令を出力するサンプリング判定部（９）と、前記モータ位相θ(ｘ)に対する前記補正後トルク指令Ｔｒ＊(ｘ)をサンプリングするサンプリング部（１０ｃ）と、サンプリングした前記補正後トルク指令Ｔｒ＊(ｘ)をＦＦＴ（高速フーリエ変換）演算して、フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出するＦＦＴ演算部（１１）と、で構成されたトルクリップル補正係数演算部（１６ａ）を備えた外部装置（１５ａ）と、から成るモータ制御システムであって、
前記外部装置（１５ａ）の前記サンプリング部（１０ｃ）が、前記モータ（２）の動作範囲に渡って設定された繰り返し回数だけ前記トルク指令補正区間ｘを通過する毎に、前記モータ位相θ(ｘ)と前記補正後トルク指令Ｔｒ＊(ｘ)をサンプリングし、前記外部装置（１５ａ）の前記ＦＦＴ演算部（１１）が、サンプリングされた前記モータ位相θ(ｘ)と前記補正後トルク指令Ｔｒ＊(ｘ)から、前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出し、かつ前回の算出値を更新し、
前記モータ制御装置（１ｄ）の前記補正値演算部（１２ｃ）が、前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を前記トルク指令補正区間ｘ毎に対応付けて選択しながら、前記モータ位置Ｐｍに対応したトルクリップル補正値Ｔｈ(ｘ)を算出するものである。
【００２６】
請求項２７に記載の発明は、請求項２６に記載のモータ制御システムにおいて、前記ＦＦＴ演算部（１１）が、複数の次数までの前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を算出するものである。
請求項２８に記載の発明は、請求項２６に記載のモータ制御システムにおいて、前記サンプリング条件が、前記トルクリップル補正値Ｔｈから前記補正後トルク指令Ｔｒ＊までの周波数特性のゲインが１以下となる動作速度であって、かつ一定速度区間を持つ動作指令によって前記モータを動作させた場合に、前記モータが一定速度動作中の場合にのみ、前記サンプリング実行指令を出力するものである。
請求項２９に記載の発明は、請求項２６に記載のモータ制御システムにおいて、前記繰り返し回数が、サンプリングを実行するときのサーボゲインに基づいて決定するものである。
請求項３０に記載の発明は、請求項２６に記載のモータ制御システムにおいて、前記モータ制御装置（１ｄ）が、前記繰り返し回数の更新が完了した前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を不揮発性のメモリ（１４）に記憶し、該記憶以降の前記モータの駆動動作時においては、前記補正値演算部（１２ｃ）は、前記メモリ（１４）に記憶された前記フーリエ係数［ａｎ(ｘ)，ｂｎ(ｘ)］を使って前記トルクリップル補正値Ｔｈ(ｘ)を算出するものである。
【発明の効果】
【００２７】
請求項１，６，１１に記載の発明によると、設定したサンプリング条件によって一定速度動作中のみのトルク指令をサンプリングすることができ、また、複数箇所でのモータ位置で求めたフーリエ係数を平均化し、設定した繰り返し回数のフーリエ係数の更新を行い補正するため、コギング等のトルクリップルを正確に求めることができ、モータの回転角度または移動距離における動作範囲でのトルクリップルの低減が必要な動作区間において平均的にトルクリップルを低減できる。
請求項１６，２１，２６に記載の発明によると、動作範囲に渡るモータ位置において複数箇所分のフーリエ係数を持っているため、モータ位置によるトルクリップルのばらつきに対応でき、より一層トルクリップルを低減できる。
請求項２，７，１２に記載の発明によると、複数の周波数成分を含む高調波トルクリップルを補正し低減できる。
請求項３，８，１３に記載の発明によると、繰り返し補正する上で繰り返し制御系が安定な動作速度で、かつ、一定速度動作中のみのトルク指令をサンプリングすることができるため、コギング等のトルクリップルを正確に求めることができる。
請求項４，９，１４に記載の発明によると、コギング等のトルクリップルを正確に求めることができ、モータの回転角度または移動距離における動作範囲でのトルクリップルの低減が必要な動作区間において平均的にトルクリップルを低減できる。
請求項１９，２４，２９に記載の発明によると、コギング等のトルクリップルを正確に求めることができる。
請求項５，１０，１５に記載の発明によると、一度、求めて記憶した平均値フーリエ係数を使用するため、常に再現性のあるトルクリップル補正を実現できる。
請求項２０，２５，３０に記載の発明によると、一度、求めて記憶した複数箇所分のフーリエ係数を使用するため、常に再現性のあるトルクリップル補正を実現できる。
さらに、請求項１１〜１４及び請求項２６〜２９に記載の発明によると、モータ制御装置の演算処理負担を軽減できると共に、外部装置にサンプリングデータを取り込むため、そのデータを使った補正効果の解析等を行うツールとして外部装置を利用することも可能である。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態について図１〜図１１を参照して説明する。実際のモータ制御装置には様々な機能や手段が内蔵されているが、図面には本発明に関係する機能や手段のみを記載し説明することとする。また、同一名称には同一符号を付け重複説明を省略する。
【実施例１】
【００２９】
図１は、本発明の第１実施例におけるモータ制御装置の構成を示す図である。図１において、１はモータ制御装置、２はモータで、回転形モータ及びリニアモータを含む（以降、単に、「モータ」と呼ぶ）。３はモータ２の位置を検出する位置検出器、４は位置・速度制御部、５は電流制御部、６は位置・速度演算部、７は位相演算部、８はトルクリップル補正値演算部、９はサンプリング判定部、１０はサンプリング部、１１はＦＦＴ演算部、１２は補正値演算部、１３は平均化処理部、１４は不揮発性のメモリである。
【００３０】
モータ制御装置１は、位置・速度制御部４と電流制御部５と位置・速度演算部６と位相演算部７とトルクリップル補正値演算部８とで構成されており、位置・速度制御部４においてモータ回転子の回転位置またはリニアモータ可動子の位置（以降、単に、「モータ位置Ｐｍ」と呼ぶ）、及び／またはモータ回転子の回転速度またはリニアモータ可動子の移動速度（以降、単に、「モータ速度Ｖｍ」と呼ぶ）のフィードバック制御を実行し、位置・速度制御部４から出力されるトルク指令Ｔｒと、トルクリップル補正値演算部８において算出されるトルクリップル補正値Ｔｈとを加算して得られる補正後トルク指令Ｔｒ＊に基づいてモータ２を駆動する構成である。
【００３１】
位置・速度制御部４は、位置指令Ｐｒや速度指令Ｖｒと位置・速度演算部６からのフィードバック情報であるモータ位置Ｐｍやモータ速度Ｖｍからトルク指令Ｔｒを演算するもので、位置指令Ｐｒにモータ位置Ｐｍが追従するように制御し、速度指令Ｖｒを出力する位置制御演算器(図示せず)や、速度指令Ｖｒにモータ速度Ｖｍが一致するように制御し、トルク指令Ｔｒを出力する速度制御演算器(図示せず)等で構成されている。
電流制御部５は、入力された補正後トルク指令Ｔｒ＊に基づいてモータ２を駆動するものであり、図示していないが、トルク指令に応じたモータ電流を制御するための電流制御ループを構成しており、ここでは、電力変換部（図示せず）も含めたものとする。
位置・速度演算部６は、位置検出器３のモータ位置検出信号からモータ位置Ｐｍとモータ速度Ｖｍを算出するものであり、その情報を位置・速度制御部４へ出力する。
位相演算部７は、モータ２のポールセンサ信号に基づいてモータに流す電流位相θ（以降、単に「モータ位相θ」と呼ぶ）を算出するものであり、その情報を電流制御部５とトルクリップル補正値演算部８へ出力する。
【００３２】
トルクリップル補正値演算部８は、補正後トルク指令Ｔｒ＊とモータ位相θとモータ速度Ｖｍから、モータ位相θに対するトルクリップル補正値Ｔｈを算出するものであり、サンプリング判定部９とサンプリング部１０とＦＦＴ演算部１１と補正値演算部１２と平均化処理部１３とメモリ１４とで構成されている。
【００３３】
サンプリング判定部９は、パラメータとしてメモリ１４に記憶されたサンプリング条件の内容とモータ速度Ｖｍやタイマ値等からサンプリング部１０へサンプリング実行の可否Ｃｓを指令するものである。後述の平均値としてのフーリエ係数ａｎ*，ｂｎ*を算出していない場合に機能し、モータが一定速度で動作している時にサンプリングの実行を指令する。
サンプリング部１０は、ＦＦＴ演算部１１でＦＦＴ(高速フーリエ変換)演算するためのデータを採取するものであり、位相演算部７からのモータ位相θと電流制御部５へ出力する補正後トルク指令Ｔｒ＊を所望の間隔でサンプリングし、この採取したデータθ，Ｔｒ＊をＦＦＴ演算部１１へ出力する。
ＦＦＴ演算部１１は、サンプリング部１０で採取したモータ位相θと補正後トルク指令Ｔｒ＊に基づいて、式（２）、（３）、（４）の演算を実施し、フーリエ係数ａｎ，ｂｎ（ｎ＝１，２，・・・，Ｎ）を求めるものである。また、式（５）のように、ａｎ，ｂｎから振幅Ｃｎと位相ψｎを求めるものでもよい。ｎは、補正区間でのリップル成分の次数であり、モータの種類にもよるが、１０次前後まで求めると十分な補正が可能である。また、式（２）、（３）、（４）の中のＪは、補正区間のサンプリング数であり、十分な点数とする。例えば、１０次までのリップル成分を求める場合ではモータ位相θの１周期で２５０点程度あれば、１０次成分に対しても２５点のデータが得られるため精度良いＦＦＴ演算が可能である。またサンプリングは、ＦＦＴ演算する上で十分な点数であれば、所定のモータ位相間隔で実施しても良いし、所定の時間間隔で実施しても良い。
【００３４】
【数２】
2010063343.tif 000004
【００３５】
【数３】
2010063343.tif 000005
【００３６】
【数４】
2010063343.tif 000006
【００３７】
【数５】
2010063343.tif 000007
【００３８】
補正値演算部１２は、求められたフーリエ係数ａｎ，ｂｎから、式（６）の演算で、モータ位相θに対する補正値Ｔｈを求めるものである。また、式（７）のように、振幅Ｃｎと位相ψｎから補正値Ｔｈを求めてもよい。
【００３９】
【数６】
2010063343.tif 000008
【００４０】
【数７】
2010063343.tif 000009
【００４１】
平均化処理部１３は、複数箇所でのモータ位置Ｐｍでサンプリングした補正後トルク指令Ｔｒ＊を使って求めた複数のフーリエ係数ａｎ，ｂｎからその平均値を求めるものである。例えば、補正区間をモータ位相θの１周期分(３６０度)として、リニアモータの動作範囲に渡り複数回のＦＦＴ演算を行って求めた各フーリエ係数ａｎ，ｂｎの値は、コア配置の不均一性や着磁の乱れ、端効果等により、位置によって多少異なっている。そこで、平均化処理部１３でその平均値を求め、リニアモータの動作範囲における平均値としてのフーリエ係数ａｎ*，ｂｎ*（以降、平均値フーリエ係数ａｎ*，ｂｎ*と呼ぶ）を求めるのである。平均値フーリエ係数ａｎ*，ｂｎ*は、平均化処理のための繰り返し回数をＫとすると、式（８）、（９）のように平均値として求めればよい。また、繰り返し回数Ｋは、サーボゲインが低い程、トルクリップルの抽出精度を向上するために大きくする必要がある。その理由はサーボゲインが低い場合、実際のトルクリップルとトルク指令に現れるリップル分との差異が大きくなり、採取したデータのバラツキが増大するためである。そして、求めた平均値フーリエ係数ａｎ*，ｂｎ*は、補正値演算部１２での式（６）の演算で使用すると共に最終的なフーリエ係数としてメモリ１４に記憶する。また同様に、式（７）のように振幅Ｃｎと位相ψｎから補正値Ｔｈを求める場合には、平均値フーリエ係数ａｎ*，ｂｎ*を使った式（５）の演算で、平均値としての振幅Ｃｎ＊と位相ψｎ＊を求めて補正値Ｔｈを算出してもよい。最後に、平均化処理部１３は最終的なフーリエ係数を求め終えたという情報Ｓｅをメモリ１４へ記憶する。
【００４２】
【数８】
2010063343.tif 000010
【００４３】
【数９】
2010063343.tif 000011
【００４４】
本発明が特許文献１と異なる点は、サンプリング判定部９を備えている点とＦＦＴ演算部１１の演算内容と平均化処理部１３の処理内容が異なる点である。
特許文献１の発明は、サンプリング判定部９を備えていないため、一定速度動作中以外でもサンプリングを実行する可能性がある。また、そのＦＦＴ演算の内容は、１つの周波数成分のトルクリップルのみを対象としている。また、最終的な補正値Ｔｈを決めるに必要な繰り返し回数Ｋの考え方については触れてない。本発明によれば、サンプリング判定部９を備えており、一定速度動作中のみのサンプリングデータでＦＦＴ演算を実施でき、最終的な補正値Ｔｈを決定するための平均化処理部１３を備えているため、精度よくトルク外乱としてのトルクリップルを再現することができるという効果がある。また、複数の周波数成分を対象としたＦＦＴ演算を実施しているため、高次の周波数成分を含むトルクリップルを再現できるという効果がある。
【００４５】
次に、トルクリップル補正値演算部８の具体的な処理のフローチャートを図２に基づいて説明する。
まず、サンプリング判定部９は最終的な平均値フーリエ係数ａｎ*，ｂｎ*が算出済みかをメモリ１４の情報Ｓｅで確認する（ステップＳ０１）。算出済みの場合は（ステップＳ０１：ＹＥＳ）、補正値演算部１２でその最終的な平均値フーリエ係数ａｎ*，ｂｎ*を使ってモータ位相θに対するトルクリップル補正値Ｔｈを算出し（ステップＳ０２）、以降、演算周期毎にこのステップＳ０２を繰り返す。一方、算出済みではない場合は（ステップＳ０１：ＮＯ）、ユーザが、初期設定としてサンプリング条件やフーリエ係数ａｎ，ｂｎの演算更新の繰り返し回数Ｋをパラメータとしてメモリ１４に設定し、所定の一定速度運転を開始する（ステップＳ０３）。運転を開始すると、まず、補正値演算部１２では、現在のフーリエ係数ａｎ，ｂｎを使ってモータ位相θに対するトルクリップル補正値Ｔｈを求める（ステップＳ０４）。次に、サンプリング判定部９では、設定されたサンプリング条件からサンプリング実行の可否Ｃｓを判定し（ステップＳ０５）、サンプリングを行う場合は（ステップＳ０５：ＹＥＳ）、サンプリング部１０でモータ位相θと補正後トルク指令Ｔｒ＊をサンプリングする（ステップＳ０６）。ステップＳ０５でサンプリングを実行しない場合は（ステップＳ０５：ＮＯ）、ステップＳ０４へ戻る。次に、サンプリング部１０で、ＦＦＴ演算するために必要な所定の回数Ｊのサンプリングを終了したかを判断する（ステップＳ０７）。所定の回数Ｊのサンプリングを終了した場合は（ステップＳ０７：ＹＥＳ）、ＦＦＴ演算部１１でＦＦＴ演算を行い、補正値演算部１２のフーリエ係数ａｎ，ｂｎを算出し更新する（ステップＳ０８）。ステップＳ０７で所定の回数Ｊのサンプリングを終えていない場合は（ステップＳ０７：ＮＯ）、ステップＳ０４へ戻る。次に、ＦＦＴ演算によるフーリエ係数ａｎ，ｂｎの演算更新回数がステップＳ０３で設定された繰り返し回数Ｋに達したかを判断する（ステップＳ０９）。ステップＳ０９で繰り返し回数Ｋに達している場合は（ステップＳ０９：ＹＥＳ）、平均化処理部１３で平均値フーリエ係数ａｎ*，ｂｎ*を、繰り返し回数Ｋの平均値として求め、補正値演算部１２のフーリエ係数ａｎ，ｂｎをａｎ*，ｂｎ*で更新し、不揮発性のメモリ１４へ算出完了情報Ｓｅと共に保存する（ステップＳ１０）。以降、演算周期毎に補正値演算部１２でその平均値フーリエ係数ａｎ*，ｂｎ*を使ってモータ位相θに対するトルクリップル補正値Ｔｈを算出する処理（ステップＳ０２）を繰り返す。ステップＳ０９で繰り返し回数Ｋに達していない場合は（ステップＳ０９：ＮＯ）、ステップＳ０４へ戻る。
【００４６】
ここで、ステップＳ０５のサンプリング実行の可否Ｃｓについて説明する。
図３はリニアモータに対するサンプリング条件の例を示したものである。図３に示すように、動作指令は、リニアモータ動作範囲に対してなるべく一定速度区間を持つ速度線図の指令とし、この指令に対し、基準速度Ｖb，待ち時間Ｔｗ，サンプリング実行時間Ｔｓの３つのサンプリング条件をパラメータとして設定する。
次に、サンプリング判定部９が上記サンプリング条件に対して実施する手順を図４に示す。まず、モータ速度Ｖｍが基準速度Ｖbよりも小さいかを判断し（ステップＳ０５１）、基準速度Ｖbよりも小さい場合は（ステップＳ０５１：ＹＥＳ）、タイマ１及びタイマ２の値をクリアしサンプリングを実行しない（ステップＳ０５２，Ｓ０５７）。ステップＳ０５１でモータ速度Ｖｍが基準速度Ｖbよりも大きい場合は（ステップＳ０５１：ＮＯ）、タイマ１が待ち時間Ｔｗよりも小さいかを判断し（ステップＳ０５３）、待ち時間Ｔｗよりも小さい場合は（ステップＳ０５３：ＹＥＳ）、タイマ１をカウントしてタイマ２の値をクリアし、サンプリングを実行しない（ステップＳ０５４，Ｓ０５７）。ステップＳ０５３でタイマ１が待ち時間Ｔｗよりも大きい場合は（ステップＳ０５３：ＮＯ）、タイマ２がサンプリング実行時間Ｔｓよりも小さいかを判断し（ステップＳ０５５）、サンプリング実行時間Ｔｓよりも小さい場合は（ステップＳ０５５：ＹＥＳ）、タイマ２をカウントしてサンプリングを実行する（ステップＳ０５６）。ステップＳ０５５でタイマ２がサンプリング実行時間Ｔｓよりも大きい場合は（ステップＳ０５５：ＮＯ）、サンプリングを実行しない（ステップＳ０５７）。
このように、モータ速度Ｖｍと２つのタイマを監視して、サンプリング実行時間Ｔｓの一定速度区間でサンプリングを実行する決定を行うのである。
【００４７】
ここで、サンプリングを実行するために適する動作速度について説明する。
図５は、図１において速度制御ゲインが４０Ｈｚの場合のトルクリップル補正値Ｔｈから補正後トルク指令Ｔｒ＊までの周波数特性のシミュレーション結果である。なお、図１の外乱トルクＴｄは、コギングのように外部からモータへ加わる力をトルク指令と同じ次元で簡易的に示したものである。また、図５中の各プロットは周波数と動作速度の対応の一例で、ポールピッチが３６ｍｍ/３６０度のリニアモータを対象として動作速度がそれぞれ ５００ｍｍ/ｓ, １０００ｍｍ/ｓの場合の、２次成分(１次成分の周期をモータ位相θの１周期とする)の推力リップルに対応する周波数を示したものである。同図より、Ｔｒ＊/Ｔｈのゲインは、２８．７５Ｈｚ以下では１以下となるが、２８．７５Ｈｚ以上になると１を超えるようになる。入出力のゲインが１を超えた閉ループ系は不安定系となるので、Ｔｒ＊/Ｔｈのゲインが１を超えた状態で、補正後トルク指令Ｔｒ＊から求めたトルクリップル補正値Ｔｈを繰り返し補正すると、振動し不安定になる。よって、サンプリングを実行するために適する動作速度は、Ｔｒ＊/Ｔｈのゲインが１以下となる動作速度である。
Ｔｒ＊/Ｔｈのゲインが１以下となる周波数の上限値をｆ、モータ位相θの１周期分の回転角度または移動距離をｐ、補正区間をモータ位相θのｍ周期分としてｎ次成分までのトルクリップルを再現する場合に適当な動作速度Ｖｘは、式（１０）となる。
【００４８】
【数１０】
2010063343.tif 000012
【００４９】
次に、図２に示すステップＳ０９の繰り返し回数Ｋについて説明する。
図６は、図３のリニアモータに対する動作指令で、補正区間をモータ位相θの１周期分(３６０度)として図２の処理を実行した場合の、ステップＳ０６のサンプリング区間とステップＳ０８のＦＦＴ演算区間を示した説明図である。図６において上の図（Ａ）が往路、下の図（Ｂ）が復路の動作を示す。このように、サンプリング区間とＦＦＴ演算区間は交互に実行され、この例では、往復動作で１０回のサンプリングとＦＦＴ演算を行う場合を示している。すなわち、繰り返し回数Ｋを１０回に設定すると、往復動作でリニアモータの動作範囲に渡る１０箇所の区間でのフーリエ係数ａｎ，ｂｎが求められ、図２に示すステップＳ１０で動作範囲に渡る平均値フーリエ係数ａｎ*，ｂｎ*が算出される。
また、サーボゲインが低く１０回の補正では正確にトルクリップルを求められない場合は、繰り返し回数Ｋを１０の倍数とすることで動作範囲に渡る平均値フーリエ係数ａｎ*，ｂｎ*を算出できるのである。通常、速度ループゲインが１０Ｈｚの場合では１０回の補正により、トルクリップルを正確に求めることができる。
この平均化処理による平均値フーリエ係数ａｎ*，ｂｎ*を算出せずに、従来例のように、逐次算出されるフーリエ係数ａｎ，ｂｎを使って補正する場合の効果は、フーリエ係数ａｎ，ｂｎの算出に使用した補正区間でのトルクリップルと補正を実行する補正区間でのトルクリップルが類似している場合には効果があるが、類似していない場合には効果が低いことは明らかである。
【００５０】
また、上記方法では、サンプリング実行時間Ｔｓ内でサンプリングとＦＦＴ演算を交互に繰り返して、補正値演算部１２のフーリエ係数ａｎ，ｂｎを逐次更新したが、補正値演算部１２のフーリエ係数ａｎ，ｂｎの更新を、次のように片方向動作完了毎に行っても良い。
まず、図３の往路の動作指令を与え、サンプリング実行時間Ｔｓ内ではサンプリングのみを実行し、動作範囲に渡る複数の補正区間でモータ位相θと補正後トルク指令Ｔｒ＊のサンプリングを行う。次に、各補正区間のモータ位相θと補正後トルク指令Ｔｒ＊を使ったＦＦＴ演算により、各補正区間のフーリエ係数ａｎ，ｂｎを算出する。そして、これらの各補正区間のフーリエ係数ａｎ，ｂｎから平均値フーリエ係数ａｎ*，ｂｎ*を算出し、補正値演算部１２のフーリエ係数へ反映させる。補正値演算部１２のフーリエ係数が更新した時点で、次の復路の動作指令を与え、同様の処理を繰り返す。以上のようにして、補正値演算部１２のフーリエ係数を更新し、更新回数が繰り返し回数と等しくなった時点のフーリエ係数を、最終的な平均値フーリエ係数ａｎ*，ｂｎ*としてメモリに記憶する。なお、この更新回数である繰り返し回数Ｋは、サーボゲインによってのみ決定され、通常、速度ループゲインが１０Ｈｚの場合では１０回の更新があれば十分である。
【００５１】
このようなトルクリップル補正方法を具備したモータ制御装置によってリニアモータを一定速度で動作させた場合の推力指令に含まれるリップルと速度リップルの低減状況を図７に示す。図７において、（ａ）は補正なしの場合で、（ｂ）は補正区間をモータ位相θの１周期分とし、１往復動作中に実行したＦＦＴ演算によって平均値フーリエ係数を算出し、２次、４次、６次の推力リップルに対して補正した結果である。（ｂ）の補正ありでは、（ａ）の補正なしに比べて推力指令及び速度のリップルが半分以下に低減されていることがわかる。
【００５２】
以上のように、本発明の第１実施例では、サンプリング判定部によって一定速度動作中のみのトルク指令データをサンプリングし、平均化処理部によってサーボゲインとモータの回転角度または移動距離における動作範囲を考慮した繰り返し回数による平均化処理を実施しているので、コギング等のトルクリップルを正確に求めることができ、モータの動作範囲に渡って平均的にトルクリップルを低減することができる。また、複数の周波数成分を対象としたＦＦＴ演算を実施しているため、高次の周波数成分を含むトルクリップルを再現し補正することができる。
【実施例２】
【００５３】
図８は、本発明の第２実施例におけるモータ制御システムの構成を示す図である。
図１の第１実施例と異なる点は、サンプリング判定部９とサンプリング部１０とＦＦＴ演算部１１と平均化処理部１３が外部装置１５に存在し、トルクリップル補正係数演算部１６を構成している点である。これら各構成要素は、第１実施例と同じ内容であり、詳細な説明は省略する。トルクリップル補正係数演算部１６は、最終的な平均値フーリエ係数ａｎ*，ｂｎ*が算出されていない場合に使用するもので、モータ制御装置１ａから与えられたモータ位相θと補正後トルク指令Ｔｒ＊とモータ速度Ｖｍとから、フーリエ係数ａｎ，ｂｎ及び平均値フーリエ係数ａｎ*，ｂｎ*を算出し、モータ制御装置１ａへ出力するものである。出力されたフーリエ係数ａｎ，ｂｎまたは平均値フーリエ係数ａｎ＊，ｂｎ＊は、補正値演算部１２のフーリエ係数を更新し、繰り返し回数Ｋの更新が完了した最終的な平均値フーリエ係数ａｎ*，ｂｎ*の算出が完了すると、算出完了情報Ｓｅと共にメモリ１４へ記憶される。
この外部装置１５としては、例えば、モータ制御装置１ａとの間でリアルタイムなデータ入出力が可能なパソコン等でよく、図８は一例として、モータ制御装置１ａのサポートツールの一つとしてトルクリップル補正係数演算部１６と指令生成部１７が構成されている場合を示したものである。
【００５４】
以上のように、本発明の第２実施例では、トルクリップル補正係数演算部１６を外部装置１５に配置することで、モータ制御装置１ａの処理負担を軽減したモータ制御システムを提供できるのである。また、外部装置１５にサンプリングデータを取り込むため、例えば、そのサンプリングデータを使って補正効果の解析等を行うツールとして外部装置１５を利用することも可能である。
【実施例３】
【００５５】
図９は、本発明の第３実施例におけるモータ制御装置の構成を示す図である。
図１の第１実施例と異なる点は、サンプリング部１０ｃと補正値演算部１２ｃがモータ位置Ｐｍを認識しながら処理する点と平均化処理部１３を備えていない点である。第１実施例では、動作範囲に渡る複数の補正区間において求めたフーリエ係数ａｎ，ｂｎを平均化処理して平均値フーリエ係数ａｎ*，ｂｎ*を求め、これを最終的なフーリエ係数としたが、第３実施例では、動作範囲に渡る複数の補正区間のフーリエ係数を平均化処理せずに、実際の駆動系の位置情報と対応させた補正値を個別に持つものである。
次に、その動作について説明する。
まず、図３の往路の動作指令を与え、サンプリング部１０ｃでは、サンプリング実行時間Ｔｓ内にサンプリングのみを実行し、動作範囲に渡る複数の補正区間でモータ位置Ｐｍを認識しながらモータ位相θと補正後トルク指令Ｔｒ＊のサンプリングを行う。往路動作のサンプリングが終了すると、ＦＦＴ演算部１１は、各補正区間のモータ位相θ(ｘ)と補正後トルク指令Ｔｒ＊(ｘ)を使ったＦＦＴ演算により、各補正区間のフーリエ係数ａｎ(ｘ)，ｂｎ(ｘ)を算出する。ここで、ｘはどの補正区間であるかを示す番号であり、例えば、図１０に示すように動作範囲のサンプリング実行時間Ｔｓ内に７個の補正区間がある場合は、ｘ＝１，２，・・・７となり、その数値はモータ位置Ｐｍとの対応から容易に判断できる。次に復路の動作指令を与え、補正値演算部１２ｃでは、前述の往路のサンプリングから算出した各補正区間のフーリエ係数ａｎ(ｘ)，ｂｎ(ｘ)をモータ位置Ｐｍに応じて切り換えながら、モータ位置Ｐｍに対応したトルクリップル補正値Ｔｈ(ｘ)を算出する。これと同時に、サンプリング部１０ｃでは、往路動作と同様に、複数の補正区間でモータ位相θと補正後トルク指令Ｔｒ＊のサンプリングを行い、復路動作のサンプリングが終了すると、ＦＦＴ演算部１１は、各補正区間のフーリエ係数ａｎ(ｘ)，ｂｎ(ｘ)を算出する。そして、再び往路の動作指令を与え、復路動作と同様の処理を繰り返す。以上のようにして、各補正区間のフーリエ係数ａｎ(ｘ)，ｂｎ(ｘ)を更新し、更新回数が繰り返し回数と等しくなった時点のフーリエ係数を、最終的なフーリエ係数としてメモリに記憶する。なお、この更新回数である繰り返し回数Ｋは、サーボゲインによってのみ決定され、通常、速度ループゲインが１０Ｈｚの場合では１０回の更新があれば十分である。
【００５６】
また、図１１のように、サンプリング判定部９とサンプリング部１０ｃとＦＦＴ演算部１１で構成されたトルクリップル補正係数演算部１６ａを外部装置１５ａに配置させることで、モータ制御装置１ｄの処理負担を軽減したモータ制御システムも提供できる。
【００５７】
以上のように、本発明の第３実施例では、動作範囲に渡る複数の補正区間のフーリエ係数を実際の駆動系の位置情報と対応させて個別に持つことで、モータ位置によるトルクリップルのばらつきに対して個別のフーリエ係数で対応できるため、より一層のトルクリップルの低減が可能である。
【産業上の利用可能性】
【００５８】
本発明のモータ制御装置は、モータに起因するトルクリップルを高次周波数まで低減できるので、ＮＣやロボット等のモーションコントロールシステムにおいて産業上幅広く利用可能である。例えば、工作機械や搬送装置などへの適用には有効である。
【図面の簡単な説明】
【００５９】
【図１】本発明の第１実施例におけるモータ制御装置の構成を示す図
【図２】本発明の第１実施例におけるモータ制御装置の処理手順を示すフローチャート
【図３】本発明の第１実施例におけるモータ制御装置のサンプリング条件の一例を示す図
【図４】本発明の第１実施例におけるモータ制御装置のサンプリング判定部の処理手順を示すフローチャート
【図５】本発明の第１実施例におけるモータ制御装置のトルクリップル補正値から補正後トルク指令までの周波数特性のシミュレーション結果を示す図
【図６】本発明の第１実施例におけるモータ制御装置のサンプリング繰り返し回数を示す図
【図７】本発明の第１実施例のモータ制御装置をリニアモータ駆動に適用した場合の推力指令及び速度リップルの低減状況を示す図
【図８】本発明の第２実施例におけるモータ制御システムの構成を示す図
【図９】本発明の第３実施例におけるモータ制御装置の構成を示す図
【図１０】本発明の第３実施例における複数の補正区間の番号を示す図
【図１１】本発明の第３実施例をモータ制御システムへ展開した場合の構成を示す図
【図１２】従来例のモータ制御装置の構成を示す図
【図１３】従来例のモータ制御装置のＦＦＴ演算・補正部の構成を示す図
【図１４】従来例のモータ制御装置の処理手順を示すフローチャート
【図１５】従来例のモータ制御装置の処理手順の変形例を示すフローチャート
【符号の説明】
【００６０】
１，１ａ，１ｂ，１ｃ，１ｄ  モータ制御装置
２，２ａ  モータ
３  位置検出器
３ａ  ロータリーエンコーダ
４  位置・速度制御部
５  電流制御部
５ａ  駆動手段
６  位置・速度演算部
６ａ  位置・速度検出部
７  位相演算部
８，８ｄ  トルクリップル補正値演算部
８ａ，８ｂ，８ｃ  ＦＦＴ演算・補正部
９  サンプリング判定部
１０，１０ａ，１０ｂ，１０ｃ  サンプリング部
１１，１１ａ，１１ｂ  ＦＦＴ演算部
１２，１２ａ，１２ｂ，１２ｃ  補正値演算部
１３，１３ａ  平均化処理部
１４  メモリ
１５，１５ａ  外部装置
１６，１６ａ  トルクリップル補正係数演算部
１７  指令生成部
２０  搬送制御手段
２１  制御部
２２  速度制御部
２３  電流制御部
２４  インバータ
２５  電流検出器
２６  加算器
【図１】
2010063343.tif 000013
【図２】
2010063343.tif 000014
【図３】
2010063343.tif 000015
【図４】
2010063343.tif 000016
【図５】
2010063343.tif 000017
【図６】
2010063343.tif 000018
【図７】
2010063343.tif 000019
【図８】
2010063343.tif 000020
【図９】
2010063343.tif 000021
【図１０】
2010063343.tif 000022
【図１１】
2010063343.tif 000023
【図１２】
2010063343.tif 000024
【図１３】
2010063343.tif 000025
【図１４】
2010063343.tif 000026
【図１５】
2010063343.tif 000027