(57)【要約】【課題】モータへの位置指令に対してバックラッシ補正量を加算する際に、過補正となることを防止するモータ制御装置を提供する。【解決手段】可動部３０の位置である第１位置の検出値を、可動部３０と被駆動部５０との間の回転比によって換算した換算後第１位置検出値と、被駆動部５０の位置である第２位置の検出値との間の偏差である位置誤差を計算する位置誤差計算部１０４と、位置指令と第２位置の検出値との差である位置偏差を計算する位置偏差計算部１０９とを備え、位置誤差の変化量が第１の基準値を超えたとき、バックラッシ補正部１１１がバックラッシ補正量の加算を開始し、位置誤差の変化量が第２の基準値を超えたとき、バックラッシ補正量の加算を終了し、補正中に位置偏差が第３の基準値以下になったとき、バックラッシ補正量の加算を中断する。【選択図】図１
2018060328.tif 000002
【特許請求の範囲】
【請求項１】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御装置であって、
前記可動部の位置である第１位置を検出する第１位置検出部と、
前記被駆動部の位置である第２位置を検出する第２位置検出部と、
前記第１位置検出部が検出した第１位置検出値を前記可動部と前記被駆動部との間の回転比によって被駆動部の位置の値に換算した換算後第１位置検出値と、前記第２位置検出部が検出した第２位置検出値との間の偏差である位置誤差を計算する位置誤差計算部と、
位置指令を作成する位置指令作成部と、
前記位置指令の反転を検出する反転検出部と、
反転が検出されてからの前記位置誤差の変化量を計算する位置誤差変化量計算部と、
前記位置誤差の変化量が所定の第１の基準値、又は所定の第２の基準値を超えたか否かを判定する第１判定部と、
前記位置指令と前記第２位置検出値との差である位置偏差を計算する位置偏差計算部と、
前記位置偏差が所定の第３の基準値以下になったか否かを判定する第２判定部と、
前記位置指令にバックラッシ補正量を加算するバックラッシ補正部とを備え、
前記位置誤差の変化量が前記第１の基準値を超えたとき、前記バックラッシ補正部が前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量が前記第２の基準値を超えたとき、前記バックラッシ補正部が前記バックラッシ補正量の加算を終了し、補正中に前記位置偏差が前記第３の基準値以下になったとき、前記バックラッシ補正部が前記バックラッシ補正量の加算を中断するモータ制御装置。
【請求項２】
前記第３の基準値が、補正開始時の位置偏差である、請求項１に記載のモータ制御装置。
【請求項３】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御装置であって、
前記可動部の位置である第１位置を検出する第１位置検出部と、
前記被駆動部の位置である第２位置を検出する第２位置検出部と、
前記第１位置検出部が検出した第１位置検出値を前記可動部と前記被駆動部との間の回転比によって被駆動部の位置の値に換算した換算後第１位置検出値と、前記第２位置検出部が検出した第２位置検出値との間の偏差である位置誤差を計算する位置誤差計算部と、
位置指令を作成する位置指令作成部と、
前記位置指令の反転を検出する反転検出部と、
反転が検出されてからの前記位置誤差の変化量を計算する位置誤差変化量計算部と、
前記位置誤差の変化量が所定の第１の基準値、又は所定の第２の基準値を超えたか否かを判定する第１判定部と、
前記位置指令と前記第２位置検出値との差である位置偏差を計算する位置偏差計算部と、
前記位置偏差が所定の第３の基準値以下になったか否かを判定する第２判定部と、
前記位置指令にバックラッシ補正量を加算するバックラッシ補正部とを備え、
前記位置誤差の変化量が前記第１の基準値を超えたとき、前記バックラッシ補正部が前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量が前記第２の基準値を超えたとき、前記バックラッシ補正部が前記バックラッシ補正量の加算を終了し、補正中に前記位置偏差が前記第３の基準値以下になったとき、前記バックラッシ補正部が、加算する補正量を漸次小さくするモータ制御装置。
【請求項４】
前記バックラッシ補正部が、反転後に前記位置誤差が到達するべき目標値である基準位置誤差を計算する基準位置誤差計算部と、前記基準位置誤差と前記位置誤差との偏差に、予め設定される補正ゲインを乗算したものを前記バックラッシ補正量とする乗算器とを備え、
前記位置偏差が前記第３の基準値以下になったら、前記バックラッシ補正部が、前記補正ゲインを時間経過に伴って単調に減少させていき、前記位置偏差が補正開始時の位置偏差に到達したら、前記バックラッシ補正部が、前記補正ゲインをゼロとする、請求項３に記載のモータ制御装置。
【請求項５】
前記モータにより駆動される前記可動部と、該可動部により駆動される前記被駆動部とは、ギアとベルトの組み合わせによって機械的に結合されている請求項１〜４のいずれか１項に記載のモータ制御装置。
【請求項６】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御方法であって、
前記可動部の位置である第１位置を検出するステップと、
前記被駆動部の位置である第２位置を検出するステップと、
前記第１位置の検出値を前記可動部と前記被駆動部との間の回転比によって被駆動部の位置の値に換算した換算後第１位置検出値と、前記第２位置の検出値との間の偏差である位置誤差を計算するステップと、
位置指令を作成するステップと、
前記位置指令の反転を検出するステップと、
反転が検出されてからの前記位置誤差の変化量を計算するステップと、
前記位置誤差の変化量が所定の第１の基準値、又は所定の第２の基準値を超えたか否かを判定するステップと、
前記位置指令と前記第２位置の検出値との差である位置偏差を計算するステップと、
前記位置偏差が所定の第３の基準値以下になったか否かを判定するステップと、
前記位置指令にバックラッシ補正量を加算するステップと、をコンピュータが実行し、
前記位置誤差の変化量が前記第１の基準値を超えたとき、前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量が前記第２の基準値を超えたとき、前記バックラッシ補正量の加算を終了し、補正中に前記位置偏差が前記第３の基準値以下になったとき、前記バックラッシ補正量の加算を中断するモータ制御方法。
【請求項７】
前記第３の基準値が、補正開始時の位置偏差である、請求項６に記載のモータ制御方法。
【請求項８】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御方法であって、
前記可動部の位置である第１位置を検出するステップと、
前記被駆動部の位置である第２位置を検出するステップと、
前記第１位置の検出値を前記可動部と前記被駆動部との間の回転比によって被駆動部の位置の値に換算した換算後第１位置検出値と、前記第２位置の検出値との間の偏差である位置誤差を計算するステップと、
位置指令を作成するステップと、
前記位置指令の反転を検出するステップと、
反転が検出されてからの前記位置誤差の変化量を計算するステップと、
前記位置誤差の変化量が所定の第１の基準値、又は所定の第２の基準値を超えたか否かを判定するステップと、
前記位置指令と前記第２位置の検出値との差である位置偏差を計算するステップと、
前記位置偏差が所定の第３の基準値以下になったか否かを判定するステップと、
前記位置指令にバックラッシ補正量を加算するステップと、をコンピュータが実行し、
前記位置誤差の変化量が前記第１の基準値を超えたとき、前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量が前記第２の基準値を超えたとき、前記バックラッシ補正量の加算を終了し、補正中に前記位置偏差が前記第３の基準値以下になったとき、加算する補正量を漸次小さくするモータ制御方法。
【請求項９】
前記位置指令にバックラッシ補正量を加算するステップは、反転後に前記位置誤差が到達するべき目標値である基準位置誤差を計算するサブステップと、前記基準位置誤差と前記位置誤差との偏差に、予め設定される補正ゲインを乗算したものを前記バックラッシ補正量とするサブステップとを有し、
前記位置偏差が前記第３の基準値以下になったら、前記補正ゲインを時間経過に伴って単調に減少させていき、前記位置偏差が補正開始時の位置偏差に到達したら、前記補正ゲインをゼロとする、請求項８に記載のモータ制御方法。
【請求項１０】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するためのモータ制御プログラムであって、
前記可動部の位置である第１位置を検出するステップと、
前記被駆動部の位置である第２位置を検出するステップと、
前記第１位置の検出値を前記可動部と前記被駆動部との間の回転比によって被駆動部の位置の値に換算した換算後第１位置検出値と、前記第２位置の検出値との間の偏差である位置誤差を計算するステップと、
位置指令を作成するステップと、
前記位置指令の反転を検出するステップと、
反転が検出されてからの前記位置誤差の変化量を計算するステップと、
前記位置誤差の変化量が所定の第１の基準値、又は所定の第２の基準値を超えたか否かを判定するステップと、
前記位置指令と前記第２位置の検出値との差である位置偏差を計算するステップと、
前記位置偏差が所定の第３の基準値以下になったか否かを判定するステップと、
前記位置指令にバックラッシ補正量を加算するステップと、をコンピュータに実行させ、
前記位置誤差の変化量が前記第１の基準値を超えたとき、前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量が前記第２の基準値を超えたとき、前記バックラッシ補正量の加算を終了し、補正中に前記位置偏差が前記第３の基準値以下になったとき、前記バックラッシ補正量の加算を中断するためのモータ制御プログラム。
【請求項１１】
前記第３の基準値が、補正開始時の位置偏差である、請求項１０に記載のモータ制御プログラム。
【請求項１２】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するためのモータ制御プログラムであって、
前記可動部の位置である第１位置を検出するステップと、
前記被駆動部の位置である第２位置を検出するステップと、
前記第１位置の検出値を前記可動部と前記被駆動部との間の回転比によって被駆動部の位置の値に換算した換算後第１位置検出値と、前記第２位置の検出値との間の偏差である位置誤差を計算するステップと、
位置指令を作成するステップと、
前記位置指令の反転を検出するステップと、
反転が検出されてからの前記位置誤差の変化量を計算するステップと、
前記位置誤差の変化量が所定の第１の基準値、又は所定の第２の基準値を超えたか否かを判定するステップと、
前記位置指令と前記第２位置の検出値との差である位置偏差を計算するステップと、
前記位置偏差が所定の第３の基準値以下になったか否かを判定するステップと、
前記位置指令にバックラッシ補正量を加算するステップと、をコンピュータに実行させ、
前記位置誤差の変化量が前記第１の基準値を超えたとき、前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量が前記第２の基準値を超えたとき、前記バックラッシ補正量の加算を終了し、補正中に前記位置偏差が前記第３の基準値以下になったとき、加算する補正量を漸次小さくするためのモータ制御プログラム。
【請求項１３】
前記位置指令にバックラッシ補正量を加算するステップは、反転後に前記位置誤差が到達するべき目標値である基準位置誤差を計算するサブステップと、前記基準位置誤差と前記位置誤差との偏差に、予め設定される補正ゲインを乗算したものを前記バックラッシ補正量とするサブステップとを有し、
前記位置偏差が前記第３の基準値以下になったら、前記補正ゲインを時間経過に伴って単調に減少させていき、前記位置偏差が補正開始時の位置偏差に到達したら、前記補正ゲインをゼロとするための、請求項１２に記載のモータ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バックラッシを補正する手段を有するモータ制御装置、モータ制御方法及びモータ制御プログラムに関する。
【背景技術】
【０００２】
従来より、物体の位置、方位、姿勢などを制御量とする制御系、例えば工作機械や産業機械の制御系において、サーボモータが用いられている。サーボモータのモータ軸の回転を他の主軸に伝えるために用いられる機械要素であって互いに係合する機械要素においては、当該機械要素間の抵触面に意図的に隙間が設けられている。この隙間が存在することにより、例えばねじやギア等の機械要素は、ある程度の範囲で自由に回転することができる。この隙間を「バックラッシ」（又は「バックラッシュ」）と呼ぶ。
【０００３】
例えば、モータと主軸等の被駆動軸がギアで結合されている場合、ギアのバックラッシが存在することにより、モータの反転時には、被駆動軸の反転がモータの反転に対して遅れてしまうこととなる。この被駆動軸の反転遅れを補正するために、モータへの位置指令にバックラッシ補正量を加算する方法が、従来より知られている。
【０００４】
モータと主軸等の被駆動軸の結合に、ギアだけではなくベルトも同時に使用されている場合、ベルトの弾性の影響により、モータの反転から遅れてギアのバックラッシによる被駆動軸反転遅れが発生することがある。この場合、モータの反転直後に、モータへの位置指令にバックラッシ補正量を加算すると、補正の効果が無いか、又は補正が被駆動軸の反転動作に悪影響を与える場合がある。
【０００５】
本発明の出願人は、この問題を解決するため、ギアがバックラッシ内を移動するタイミングを、モータの位置と被駆動軸の位置との差である位置誤差を監視することで判定し、適切なタイミングで、モータへの位置指令に対するバックラッシ補正量の加算を開始する特許を既に出願している（特願２０１６−０８０４１６号）。
【０００６】
上記の特許では、バックラッシ補正の開始の判定を、位置誤差の変化量、又は変化率を監視することで行っている。一方、バックラッシ補正の終了のタイミングについては、特に記載されていないが、基本的には、ギアがバックラッシ内の移動を終えるまでは、モータへの位置指令にバックラッシ補正量が加算され続けることを想定している。例えば、特許文献１では、位置誤差に基づいて測定したバックラッシ長を、モータ端が移動し終わるまで、バックラッシ補正量が加算され続ける。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第５５９６０９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、モータ軸と被駆動軸との間を結合するベルトの特性や動作条件によっては、バックラッシ補正をしている途中で、モータ軸の位置に対する被駆動軸の位置の遅れが解消され、被駆動軸の位置が位置指令を追い越してしまう場合がある。被駆動軸の位置が位置指令に係る位置を追い越しても、モータへの位置指令にバックラッシ補正量が加算され続けると、補正により被駆動軸が反転方向に動きすぎてしまい、被駆動軸位置が位置指令を追い越し、過補正となってしまう場合があった。
【０００９】
本発明は、モータへの位置指令に対してバックラッシ補正量を加算する際に、過補正となることを防止するモータ制御装置、モータ制御方法及びモータ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る第１のモータ制御装置（例えば、後述のモータ制御装置１０）は、モータにより駆動される可動部（例えば、後述のモータ軸３０）と、該可動部により駆動される被駆動部（例えば、後述の主軸５０）との間のバックラッシを補正するモータ制御装置であって、前記可動部の位置である第１位置を検出する第１位置検出部（例えば、後述の第１位置検出部１０１）と、前記被駆動部の位置である第２位置を検出する第２位置検出部（例えば、後述の第２位置検出部１０３）と、前記第１位置検出部が検出した第１位置検出値を前記可動部と前記被駆動部との間の回転比によって被駆動部の位置の値に換算した換算後第１位置検出値と、前記第２位置検出部が検出した第２位置検出値との間の偏差である位置誤差を計算する位置誤差計算部（例えば、後述の位置誤差計算部１０４）と、位置指令を作成する位置指令作成部（例えば、後述の位置指令作成部１０５）と、前記位置指令の反転を検出する反転検出部（例えば、後述の反転検出部１０６）と、反転が検出されてからの前記位置誤差の変化量を計算する位置誤差変化量計算部（例えば、後述の位置誤差変化量計算部１０７）と、前記位置誤差の変化量が所定の第１の基準値、又は所定の第２の基準値を超えたか否かを判定する第１判定部（例えば、後述の第１判定部１０８）と、前記位置指令と前記第２位置検出値との差である位置偏差を計算する位置偏差計算部（例えば、後述の位置偏差計算部１０９）と、前記位置偏差が所定の第３の基準値以下になったか否かを判定する第２判定部（例えば、後述の第２判定部１１０）と、前記位置指令にバックラッシ補正量を加算するバックラッシ補正部（例えば、後述のバックラッシ補正部１１１）とを備え、前記位置誤差の変化量が前記第１の基準値を超えたとき、前記バックラッシ補正部が前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量が前記第２の基準値を超えたとき、前記バックラッシ補正部が前記バックラッシ補正量の加算を終了し、補正中に前記位置偏差が前記第３の基準値以下になったとき、前記バックラッシ補正部が前記バックラッシ補正量の加算を中断する。
【００１１】
前記第３の基準値が、補正開始時の位置偏差であってもよい。
【００１２】
本発明に係る第２のモータ制御装置（例えば、後述のモータ制御装置１０Ａ）は、モータにより駆動される可動部（例えば、後述のモータ軸３０）と、該可動部により駆動される被駆動部（例えば、後述の主軸５０）との間のバックラッシを補正するモータ制御装置であって、前記可動部の位置である第１位置を検出する第１位置検出部（例えば、後述の第１位置検出部１０１）と、前記被駆動部の位置である第２位置を検出する第２位置検出部（例えば、後述の第２位置検出部１０３）と、前記第１位置検出部が検出した第１位置検出値を前記可動部と前記被駆動部との間の回転比によって被駆動部の位置の値に換算した換算後第１位置検出値と、前記第２位置検出部が検出した第２位置検出値との間の偏差である位置誤差を計算する位置誤差計算部（例えば、後述の位置誤差計算部１０４）と、位置指令を作成する位置指令作成部（例えば、後述の位置指令作成部１０５）と、前記位置指令の反転を検出する反転検出部（例えば、後述の反転検出部１０６）と、反転が検出されてからの前記位置誤差の変化量を計算する位置誤差変化量計算部（例えば、後述の位置誤差変化量計算部１０７）と、前記位置誤差の変化量が所定の第１の基準値、又は所定の第２の基準値を超えたか否かを判定する第１判定部（例えば、後述の第１判定部１０８）と、前記位置指令と前記第２位置検出値との差である位置偏差を計算する位置偏差計算部（例えば、後述の位置偏差計算部１０９）と、前記位置偏差が所定の第３の基準値以下になったか否かを判定する第２判定部（例えば、後述の第２判定部１１０）と、前記位置指令にバックラッシ補正量を加算するバックラッシ補正部（例えば、後述のバックラッシ補正部２１１）とを備え、前記位置誤差の変化量が前記第１の基準値を超えたとき、前記バックラッシ補正部が前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量が前記第２の基準値を超えたとき、前記バックラッシ補正部が前記バックラッシ補正量の加算を終了し、補正中に前記位置偏差が前記第３の基準値以下になったとき、前記バックラッシ補正部が、加算する補正量を漸次小さくする。
【００１３】
前記バックラッシ補正部（例えば、後述のバックラッシ補正部３１１）が、反転後に前記位置誤差が到達するべき目標値である基準位置誤差を計算する基準位置誤差計算部（例えば、後述の基準位置誤差計算部３２０）と、前記基準位置誤差と前記位置誤差との偏差に、予め設定される補正ゲインを乗算したものを前記バックラッシ補正量とする乗算器（例えば、後述の補正ゲイン乗算器３２２）とを備え、前記位置偏差が前記第３の基準値以下になったら、前記バックラッシ補正部が、前記補正ゲインを時間経過に伴って単調に減少させていき、前記位置偏差が補正開始時の位置偏差に到達したら、前記バックラッシ補正部が、前記補正ゲインをゼロとしてもよい。
【００１４】
前記モータにより駆動される前記可動部と、該可動部により駆動される前記被駆動部とは、ギアとベルトの組み合わせによって機械的に結合されていてもよい。
【００１５】
本発明に係る第１のモータ制御方法は、モータにより駆動される可動部（例えば、後述のモータ軸３０）と、該可動部により駆動される被駆動部（例えば、後述の主軸５０）との間のバックラッシを補正するモータ制御方法であって、前記可動部の位置である第１位置を検出するステップと、前記被駆動部の位置である第２位置を検出するステップと、前記第１位置の検出値を前記可動部と前記被駆動部との間の回転比によって被駆動部の位置の値に換算した換算後第１位置検出値と、前記第２位置の検出値との間の偏差である位置誤差を計算するステップと、位置指令を作成するステップと、前記位置指令の反転を検出するステップと、反転が検出されてからの前記位置誤差の変化量を計算するステップと、前記位置誤差の変化量が所定の第１の基準値、又は所定の第２の基準値を超えたか否かを判定するステップと、前記位置指令と前記第２位置の検出値との差である位置偏差を計算するステップと、前記位置偏差が所定の第３の基準値以下になったか否かを判定するステップと、前記位置指令にバックラッシ補正量を加算するステップと、をコンピュータが実行し、前記位置誤差の変化量が前記第１の基準値を超えたとき、前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量が前記第２の基準値を超えたとき、前記バックラッシ補正量の加算を終了し、補正中に前記位置偏差が前記第３の基準値以下になったとき、前記バックラッシ補正量の加算を中断する。
【００１６】
前記第３の基準値が、補正開始時の位置偏差であってもよい。
【００１７】
本発明に係る第２のモータ制御方法は、モータにより駆動される可動部（例えば、後述のモータ軸３０）と、該可動部により駆動される被駆動部（例えば、後述の主軸５０）との間のバックラッシを補正するモータ制御方法であって、前記可動部の位置である第１位置を検出するステップと、前記被駆動部の位置である第２位置を検出するステップと、前記第１位置の検出値を前記可動部と前記被駆動部との間の回転比によって被駆動部の位置の値に換算した換算後第１位置検出値と、前記第２位置の検出値との間の偏差である位置誤差を計算するステップと、位置指令を作成するステップと、前記位置指令の反転を検出するステップと、反転が検出されてからの前記位置誤差の変化量を計算するステップと、前記位置誤差の変化量が所定の第１の基準値、又は所定の第２の基準値を超えたか否かを判定するステップと、前記位置指令と前記第２位置の検出値との差である位置偏差を計算するステップと、前記位置偏差が所定の第３の基準値以下になったか否かを判定するステップと、前記位置指令にバックラッシ補正量を加算するステップと、をコンピュータが実行し、前記位置誤差の変化量が前記第１の基準値を超えたとき、前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量が前記第２の基準値を超えたとき、前記バックラッシ補正量の加算を終了し、補正中に前記位置偏差が前記第３の基準値以下になったとき、加算する補正量を漸次小さくする。
【００１８】
前記位置指令にバックラッシ補正量を加算するステップは、反転後に前記位置誤差が到達するべき目標値である基準位置誤差を計算するサブステップと、前記基準位置誤差と前記位置誤差との偏差に、予め設定される補正ゲインを乗算したものを前記バックラッシ補正量とするサブステップとを有し、前記位置偏差が前記第３の基準値以下になったら、前記補正ゲインを時間経過に伴って単調に減少させていき、前記位置偏差が補正開始時の位置偏差に到達したら、前記補正ゲインをゼロとしてもよい。
【００１９】
本発明に係る第１のモータ制御プログラムは、モータにより駆動される可動部（例えば、後述のモータ軸３０）と、該可動部により駆動される被駆動部（例えば、後述の主軸５０）との間のバックラッシを補正するためのモータ制御プログラムであって、前記可動部の位置である第１位置を検出するステップと、前記被駆動部の位置である第２位置を検出するステップと、前記第１位置の検出値を前記可動部と前記被駆動部との間の回転比によって被駆動部の位置の値に換算した換算後第１位置検出値と、前記第２位置の検出値との間の偏差である位置誤差を計算するステップと、位置指令を作成するステップと、前記位置指令の反転を検出するステップと、反転が検出されてからの前記位置誤差の変化量を計算するステップと、前記位置誤差の変化量が所定の第１の基準値、又は所定の第２の基準値を超えたか否かを判定するステップと、前記位置指令と前記第２位置の検出値との差である位置偏差を計算するステップと、前記位置偏差が所定の第３の基準値以下になったか否かを判定するステップと、前記位置指令にバックラッシ補正量を加算するステップと、をコンピュータに実行させ、前記位置誤差の変化量が前記第１の基準値を超えたとき、前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量が前記第２の基準値を超えたとき、前記バックラッシ補正量の加算を終了し、補正中に前記位置偏差が前記第３の基準値以下になったとき、前記バックラッシ補正量の加算を中断するためのものである。
【００２０】
前記第３の基準値が、補正開始時の位置偏差であってもよい。
【００２１】
本発明に係る第２のモータ制御プログラムは、モータにより駆動される可動部（例えば、後述のモータ軸３０）と、該可動部により駆動される被駆動部（例えば、後述の主軸５０）との間のバックラッシを補正するためのモータ制御プログラムであって、前記可動部の位置である第１位置を検出するステップと、前記被駆動部の位置である第２位置を検出するステップと、前記第１位置の検出値を前記可動部と前記被駆動部との間の回転比によって被駆動部の位置の値に換算した換算後第１位置検出値と、前記第２位置の検出値との間の偏差である位置誤差を計算するステップと、位置指令を作成するステップと、前記位置指令の反転を検出するステップと、反転が検出されてからの前記位置誤差の変化量を計算するステップと、前記位置誤差の変化量が所定の第１の基準値、又は所定の第２の基準値を超えたか否かを判定するステップと、前記位置指令と前記第２位置の検出値との差である位置偏差を計算するステップと、前記位置偏差が所定の第３の基準値以下になったか否かを判定するステップと、前記位置指令にバックラッシ補正量を加算するステップと、をコンピュータに実行させ、前記位置誤差の変化量が前記第１の基準値を超えたとき、前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量が前記第２の基準値を超えたとき、前記バックラッシ補正量の加算を終了し、補正中に前記位置偏差が前記第３の基準値以下になったとき、加算する補正量を漸次小さくするためのものである。
【００２２】
前記位置指令にバックラッシ補正量を加算するステップは、反転後に前記位置誤差が到達するべき目標値である基準位置誤差を計算するサブステップと、前記基準位置誤差と前記位置誤差との偏差に、予め設定される補正ゲインを乗算したものを前記バックラッシ補正量とするサブステップとを有し、前記位置偏差が前記第３の基準値以下になったら、前記補正ゲインを時間経過に伴って単調に減少させていき、前記位置偏差が補正開始時の位置偏差に到達したら、前記補正ゲインをゼロとしてもよい。
【発明の効果】
【００２３】
本発明によれば、モータへの位置指令に対してバックラッシ補正量を加算する際に、過補正となることを防止することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１実施形態に係るモータ制御装置の構成を示す図である。
【図２】本発明の第１実施形態に係るモータ制御装置における処理を示すフローチャートである。
【図３】本発明の第２実施形態に係るモータ制御装置の構成を示す図である。
【図４】本発明の第２実施形態に係るモータ制御装置における処理を示すフローチャートである。
【図５】本発明の変形例に係るモータ制御装置に備わるバックラッシ補正部の構成を示す図である。
【図６Ａ】モータの反転時の各軸の挙動についての説明図である。
【図６Ｂ】モータの反転時の各軸の挙動についての説明図である。
【図７Ａ】バックラッシ補正をしなかった場合の位置誤差の変化量と被駆動軸の位置偏差の経時変化を示す図である。
【図７Ｂ】バックラッシ補正をしなかった場合の位置誤差の変化量と被駆動軸の位置偏差の経時変化を示す図である。
【図８Ａ】バックラッシ補正をしなかった場合の、モータの反転時の各軸の挙動についての説明図である。
【図８Ｂ】バックラッシ補正をしなかった場合の、モータの反転時の各軸の挙動についての説明図である。
【図９】バックラッシ補正をした場合の位置誤差の変化量、被駆動軸の位置偏差、及びバックラッシ補正量の経時変化を示す図である。
【図１０】バックラッシ補正中に補正を中断した場合の位置誤差の変化量、被駆動軸の位置偏差、及びバックラッシ補正量の経時変化を示す図である。
【発明を実施するための形態】
【００２５】
以下、本発明の実施形態について、図１〜図９を用いて説明する。
【００２６】
図６Ａ及び図６Ｂは、従来のバックラッシ補正方法を用いた場合の、モータの反転時の各軸の挙動について示した図である。具体的には、モータと被駆動軸（主軸）との間の減速機構がギア及びベルトから構成されているときの、モータの反転時の各軸の挙動について図示したものである。
【００２７】
図６Ａに示すように、可動部としてのモータ軸３０には、モータ軸ギア３５が固定されている。モータ軸３０とは別に設けられる中間軸４０には、中間軸ギア４５が固定されている。また、モータ軸ギア３５の歯３５１と中間軸ギア４５の歯４５１とが噛み合うことにより、モータ軸３０が時計回り方向に回転する場合には、中間軸４０は反時計回り方向に回転し、一方、モータ軸３０が反時計回り方向に回転する場合には、中間軸４０は時計回り方向に回転する。更に、中間軸４０における中間軸ギア４５が設けられていない部分と、被駆動部としての主軸５０との間には、弾性を有する無端状のベルト６０が架け渡されている。
【００２８】
これにより、中間軸４０が時計回り方向に回転する場合には、それに伴って、主軸５０は時計回り方向に回転し、一方、中間軸４０が反時計回り方向に回転する場合には、それに伴って、主軸５０は反時計回り方向に回転する。これにより、モータ軸３０、中間軸４０、及び主軸５０の回転は連動する。具体的には、モータ軸３０が時計回り方向に回転する場合には、主軸５０は反時計回り方向に回転し、一方、モータ軸３０が反時計回り方向に回転する場合には、主軸５０は時計回り方向に回転する。つまり、モータ２０により駆動されるモータ軸３０と、モータ軸３０により駆動される主軸５０とは、ギア３５、４５とベルト６０との組み合わせによって機械的に結合される。
【００２９】
図６Ａ（ａ）は、モータ２０の反転前のモータ軸ギア３５及び中間軸ギア４５の位置、及びベルト６０に掛かる張力の様子を示す。ここでは仮に、モータ軸３０が時計回りの方向に回転している場合を想定する。なお、本発明の実施形態はこれには限定されない。
【００３０】
上記のように、モータ軸ギア３５と中間軸ギア４５とは噛み合っており、図６Ａ（ａ）に示すモータ軸ギア３５の歯３５１と、中間軸ギア４５の歯４５１とは接触している。モータ軸３０は時計回り方向に回転しているので、歯３５１は歯４５１を下方に押す状態となっている。それに伴って、中間軸ギア４５、ひいては中間軸４０は反時計回り方向に回転する。なお、モータ軸ギア３５の複数の歯３５１に共通する説明をする際には、代表して「歯３５１」と表現することにする。
【００３１】
中間軸４０と主軸５０との間には、無端状のベルト６０が架け渡されているため、中間軸４０の反時計回り方向の回転に伴って、主軸５０も同様に、反時計回り方向に回転する。中間軸４０と主軸５０との間には、両軸の外周から延びる２本の外接線に沿うように、ベルト６０は、２つの非巻き付け部分を有する。図６Ａ（ａ）において上側の非巻き付け部分が主軸５０を反時計回り方向に引っ張ることにより、主軸５０は反時計回りに回転する。すなわち、上側の非巻き付け部分が「張り側」となっており、下側の非巻き付け部分が「緩み側」となっている。ここで、上側の非巻き付け部分の張力をＦ１、下側の非巻き付け部分の張力をＦ２とした場合、Ｆ１＞Ｆ２となる。
【００３２】
次に、図６Ａ（ｂ）は、モータ２０が反時計回り方向に反転し始めた直後の、モータ軸ギア３５及び中間軸ギア４５の位置、及びベルト６０に掛かる張力の様子を示す。
【００３３】
モータ軸３０の反時計回り方向への反転に伴って、モータ軸ギア３５も反時計回り方向に回転するため、モータ軸ギア３５の歯３５１は、中間軸ギア４５の歯４５１を下方に押さなくなり、上方への移動を開始する。一方、中間軸４０に掛け渡されるベルト６０において、上記のように、図６Ａ（ａ）において上側の非巻き付け部分の張力Ｆ１が下側の非巻き付け部分の張力Ｆ２よりも大きくなっていることに起因して、中間軸４０は時計回り方向に回転し始める。これに伴って、主軸５０も時計回り方向への回転を開始する。この際、中間軸ギア４５の歯４５１は、モータ軸ギア３５の歯３５１には押されない。また、中間軸ギア４５の時計回り方向への回転に伴って、中間軸ギア４５の歯４５１は、図１において上方に移動するため、モータ軸ギア３５の歯３５１との接触を継続する。すなわち、この段階ではまだ、モータ軸ギア３５の歯３５１と中間軸ギア４５の歯４５１との間に隙間、すなわちバックラッシ（「バックラッシュ」とも呼ばれる）は発生していない。
【００３４】
上記のように、ベルト６０において上側の非巻き付け部分の張力Ｆ１が下側の非巻き付け部分の張力Ｆ２よりも大きいことに起因して、中間軸４０及び主軸５０は時計回り方向に回転する。そして、時計回り方向への回転を継続するに従って、２つの張力Ｆ１とＦ２との間の差は小さくなっていく。すなわち、ベルト６０の張り側張力が緩んでいき、中間軸４０が反転する力が弱まっていく。モータ軸３０への速度指令が、中間軸４０の反転速度を超えたところで、図６Ａ（ｃ）に示すように、モータ軸ギア３５の歯３５１が、中間軸ギア４５の歯４５１と歯４５２との間のバックラッシ内を移動し始める。このタイミングで、モータ軸３０への位置指令にバックラッシ補正量を加算する。被駆動軸である主軸５０は、ベルト６０の張力と慣性力により回転を続けるが、この回転量が大きいと、モータ２０への位置指令に対する、被駆動軸である主軸５０の位置の遅れは、比較的小さくなる。更に、モータ軸３０の動きに被駆動軸である主軸５０の動きがついていく度合いが高いため、モータ軸ギア３５の歯３５１が、バックラッシ内を移動しているにも関わらず、モータ軸３０の位置と被駆動軸である主軸５０の位置との間の差分である位置誤差の変化量は、さほど大きくならない。
【００３５】
やがて、図６Ｂ（ｄ）に示すように、モータ軸ギア３５の歯３５１が、バックラッシ内の移動を終え、中間軸ギア４５の歯４５２と接触する。上記のように、歯３５１がバックラッシ内を移動する間の、被駆動軸である主軸５０の回転量が大きいと、位置誤差の変化量が、バックラッシ補正の終了条件となる値に達していないため、モータ２０への位置指令にバックラッシ補正量が加算され続けてしまう。しかし、既にモータ軸ギア３５の歯３５１は、中間軸ギア４５の歯４５２に接触していると共に、位置指令と被駆動軸である主軸５０の位置との間の偏差である被駆動軸の位置偏差も小さくなっているため、引き続きバックラッシ補正量が加算されると、主軸５０の位置が位置指令を通り越してしまい、過補正となってしまう。
【００３６】
また、モータ軸ギア３５の歯３５１が、中間軸ギア４５の歯４５２と接触した直後は、図６Ｂ（ｄ）に示すように、ベルト６０の２つの非巻き付け部分の内、上側の非巻き付け部分が「張り側」となっており、下側の非巻き付け部分が「緩み側」となっている。すなわち、上側の非巻き付け部分の張力をＦ１、下側の非巻き付け部分の張力をＦ２とした場合、Ｆ１＞Ｆ２となっている。この上側の非巻き付け部分の張力Ｆ１が、下側の非巻き付け部分の張力Ｆ２よりも大きいことにより、ベルト６０は弾性変形すると共に、被駆動軸である主軸５０は中間軸４０の回転についていかなくなる。これにより、歯３５１と歯４５２との接触後、被駆動軸である主軸５０の位置は、モータ軸３０の位置に比べて遅れ始める。
【００３７】
やがて、下側の非巻き付け部分の張力Ｆ２が、上側の非巻き付け部分の張力Ｆ１に比較して十分大きくなった段階で、被駆動軸である主軸５０の位置が、モータ軸３０の位置に対して遅れることのない状態で、主軸５０は回転を始める。
【００３８】
図７Ａ及び図７Ｂは、バックラッシ補正をしなかった場合の、モータ軸３０の位置と主軸５０の位置との偏差である位置誤差の変化量と、モータ２０への位置指令と主軸５０の位置との間の偏差である被駆動軸の位置偏差の経時変化を示すグラフである。また、図８Ａ及び図８Ｂは、バックラッシ補正をしなかった場合の、モータの反転時の各軸の挙動を示す図である。図８Ａの（ｃ）に示す各軸の挙動は、図７Ａにおける時刻（ｃ）の領域における挙動であり、図８Ａの（ｄ）に示す各軸の挙動は、図７Ａにおける時刻（ｄ）の時点における挙動である。同様に、図８Ｂの（ｃ）に示す各軸の挙動は、図７Ｂにおける時刻（ｃ）の領域における挙動であり、図８Ｂの（ｄ）に示す各軸の挙動は、図７Ｂにおける時刻（ｄ）の時点における挙動である。
また、図９は、バックラッシ補正が過補正となった場合の、位置誤差の変化量と被駆動軸の位置偏差の経時変化を示すグラフである。なお、位置誤差の変化量を実線で、被駆動軸の位置偏差を一点鎖線で、バックラッシ補正量を二点鎖線で示す。
【００３９】
まず、図７Ａ及び図８Ａを用いて、バックラッシ補正をしなかった場合の、位置誤差の変化量と被駆動軸の位置偏差の経時変化について説明する。なお、以下の説明中では、適宜、図６Ａ及び図６Ｂ内に示される各構成要素、およびその符号を流用する。
【００４０】
グラフ中、時刻が（ａ）の領域にある間は、モータ軸３０は、反転する前の段階にある。この領域においては、図６Ａ（ａ）と同様に、モータ２０により駆動されるモータ軸３０と、モータ軸３０により駆動される主軸５０とは、ギア３５、４５とベルト６０との組み合わせによって機械的に結合されているため、モータ軸３０の回転と、主軸５０の回転とは、ほぼ連動する。従って、位置誤差も被駆動軸の位置偏差も、特に大きく変化しない。
【００４１】
やがて、時刻が（ｂ）の領域に入ると同時に、モータ軸３０は反転するが、モータ軸３０が反時計回り方向に反転するとした場合、中間軸４０に掛け渡されるベルト６０において、上側の非巻き付け部分の張力が下側の非巻き付け部分の張力よりも大きくなっていることに起因して、中間軸４０は時計回り方向に回転し始める。これに伴って、主軸５０も時計回り方向への回転を開始する。このため、モータ軸ギア３５の歯３５１と、中間軸ギア４５の歯４５１とは接触を継続し、バックラッシは発生しない。
【００４２】
その後、時刻が（ｃ）の領域に入ると、ベルト６０の張り側張力が緩んでいき、中間軸４０が反転する力が弱まっていく。モータ軸３０への速度指令が、中間軸４０の反転速度を超えることにより、モータ軸ギア３５の歯３５１と、中間軸ギア４５の歯４５１との間に隙間が発生し、モータ軸ギア３５の歯３５１はバックラッシ内を移動する。また、上記のように、モータ軸３０の回転速度は、中間軸４０、ひいては主軸５０の回転速度よりも速いため、位置誤差は増加する。同様に、モータ２０への位置指令に比較した主軸５０の位置の遅れも増加するため、被駆動軸の位置偏差も増加する。
【００４３】
モータ軸ギア３５の歯３５１がバックラッシ内を移動しているとき、図８Ａ（ｃ）に示すように、中間軸４０と主軸５０は停止せずに、ベルト張力または慣性力によりある程度回転し続ける。動作条件によっては主軸５０の回転量が大きくなる場合があり、主軸５０がある程度位置指令に追従する場合がある。このとき、位置誤差の変化量は小さくなると共に、位置偏差の増加量も比較的小さくなる。さらに中間軸４０の回転に伴って主軸５０も回転するため、反転前のベルトの張り側張力も解消されない。すなわち、ベルト弾性変形の余地が大きく残ることになる。このような場合、時刻が（ｄ）の時点において、図８Ａ（ｄ）に示すように、モータ軸ギア３５の歯３５１がバックラッシ端部である中間軸ギア４５の歯４５２に到達した後は、ベルト弾性変形による主軸５０の回転遅れにより位置誤差が増加していく。
【００４４】
一方、他の動作条件における、位置誤差の変化量と被駆動軸の位置偏差の経時変化を図７Ｂに、モータ反転時の各軸の挙動を図８Ｂに示す。他の動作条件においては、図８Ｂ（ｃ）に示すように、モータ軸ギア３５の歯３５１がバックラッシ内を移動しているときの主軸５０がほぼ停止する場合がある。このとき、図７Ｂにおいて、時刻が（ｃ）の領域にある間のグラフに示されるように、バックラッシ内の移動に加えて、ベルト６０が弾性変形する。これにより、バックラッシ内移動中の位置誤差の変化量は大きくなる。また、位置指令に対する主軸の遅れも大きくなり、位置偏差の増加量が比較的大きくなる。更に、中間軸４０が回転するのに対し、主軸５０は停止しているので、反転前のベルトの張り側張力は解消される。このような場合は、図７Ｂの時刻が（ｄ）の時点において、図８Ｂ（ｄ）に示すように、モータ軸ギア３５がバックラッシ端部である中間軸ギア４５の歯４５２に到達後、ベルト弾性変形による主軸５０の回転遅れは小さくなる。
【００４５】
図７Ａに戻ると、時刻が（ｄ）の時点において、モータ軸ギア３５の歯３５１がバックラッシの端部である、中間軸ギア４５の歯４５１の隣りの歯４５２に接すると、被駆動軸の位置偏差は減少していき、当初の被駆動軸の位置偏差と、ほぼ同じ値となる。
【００４６】
時刻が（ｅ）の領域に入ると、当初は、ベルト６０が弾性変形すると共に、主軸５０の回転速度が遅くなるのに従い、再び被駆動軸の位置偏差は増加する。その後、ベルト６０の弾性変形が解消され、モータ２０への位置指令に対する主軸５０の位置の遅れが減少するのに伴い、被駆動軸の位置偏差は再度減少する。
【００４７】
図９は、バックラッシ補正が過補正となった場合の、位置誤差の変化量、被駆動軸の位置偏差、及びバックラッシ補正量の経時変化を示すグラフである。
【００４８】
時刻が（ａ）及び（ｂ）の領域にある間の、位置誤差の変化量と被駆動軸の位置偏差の経時変化は、図７Ａ及び図７Ｂに示すグラフと基本的に同一である。やがて、時刻が（ｃ）の領域に入り、バックラッシが発生すると共に、バックラッシ補正を開始する。バックラッシ補正をしている分、図７Ａ及び図７Ｂのグラフに比較すると、被駆動軸の位置偏差のグラフの傾きは緩やかとなっている。
【００４９】
時刻（ｄ）において、モータ軸ギア３５の歯３５１がバックラッシの端部である、中間軸ギア４５の歯４５２に接した時点において、バックラッシが消失すると共に、被駆動軸の位置偏差は最大となる。その後、時刻が（ｅ）の領域に入り、被駆動軸の位置偏差がゼロとなっても、バックラッシ補正は継続されるため、主軸５０の位置が位置指令を通り越してしまう。すなわち、被駆動軸の位置偏差の正負が逆転し、過補正となってしまう。
【００５０】
その後、図６Ｂを参照して説明したように、ベルト６０が弾性変形することにより、主軸５０が中間軸４０の回転についていかなくなり、主軸５０の位置は、モータ軸３０の位置に比べて遅れ始める。ひいては、主軸５０の位置は、モータ２０に対する位置指令よりも遅れることにより、被駆動軸の位置偏差は再び増加する。やがて、主軸５０は、モータ２０への位置指令に対して遅れることのない回転を始め、被駆動軸の位置偏差は再び減少する。
【００５１】
そこで、上記のような過補正を防止するため、バックラッシ補正中は被駆動軸位置を監視しておき、被駆動軸の位置偏差が基準値よりも小さくなったら補正を中断するか、又は補正を弱め、被駆動軸の位置偏差が基準値を再び超えたら、補正を再開するのが、本発明の基礎となる概念である。
【００５２】
［第１実施形態］
図１は、第１実施形態に係るモータ制御装置１０の構成を示す図である。
【００５３】
モータ制御装置１０は、主として、モータ２０により駆動される可動部としてのモータ軸３０の位置（「第１位置」又は「モータ位置」ともいう）を検出する、エンコーダ等の第１位置検出部１０１と、上記の可動部（モータ軸３０）により駆動される被駆動部である主軸５０の位置（「第２位置」又は「主軸位置」ともいう）を検出する第２位置検出部１０３と、上記の第１位置と第２位置との偏差である「位置誤差」を計算する位置誤差計算部１０４と、を備える。なお、例えば、上記の「第１位置」又は「モータ位置」はセミクローズドループを用いて取得された位置であり、「第２位置」又は「主軸位置」はフルクローズドループを用いて取得された位置である。
【００５４】
更に、モータ制御装置１０は、位置指令作成部１０５と、反転検出部１０６と、位置誤差変化量計算部１０７と、第１判定部１０８と、位置偏差計算部１０９と、第２判定部１１０と、バックラッシ補正部１１１と、加算器１１２とを備える。位置指令作成部１０５は、上記のモータ２０への位置指令を作成する。反転検出部１０６は、上記の位置指令の反転を検出する。位置誤差変化量計算部１０７は、反転が検出されてからの上記の位置誤差の変化量を計算する。第１判定部１０８は、上記の位置誤差の変化量が所定の第１の基準値、又は所定の第２の基準値を超えたかどうかを判定する。位置偏差計算部１０９は、位置指令と第２位置検出値との間の偏差である位置偏差を計算する。第２判定部１１０は、位置偏差が所定の第３の基準値以下になったか否かを判定する。バックラッシ補正部１１１は、上記の位置誤差の変化量が第１の基準値を超え、第２の基準値以下の場合には、バックラッシ補正量を算出し、加算器１１２を用いて、当該バックラッシ補正量を上記の位置指令に加算する。また、バックラッシ補正部１１１は、上記の位置誤差の変化量が第２の基準値を超えた場合には、バックラッシ補正量の上記の位置指令への加算を終了する。更に、バックラッシ補正部１１１は、補正中に上記の位置偏差が第３の基準値以下になった場合には、バックラッシ補正量の上記の位置指令への加算を中断する。
上記のバックラッシ補正量が加算された位置指令は、制御部１１３によりモータ２０に送信される。
【００５５】
なお、上記の位置誤差計算部１０４は、上記の第１位置と第２位置の偏差を位置誤差として計算する。具体的には、上記の第１位置検出値に、変換係数１０２を乗算することにより、被駆動部の位置（主軸位置）の値に換算した換算後第１位置検出値を算出し、当該換算後第１位置検出値と、第２位置検出値との間の偏差を位置誤差として計算する。この変換係数１０２としては、例えば、可動部（モータ軸３０）と被駆動部（主軸５０）の間との回転比を用いることが可能である。
【００５６】
また、上記のバックラッシ補正量は、上記の第１位置及び第２位置のいずれか又は双方、例えば、第１位置及び第２位置の相対的な位置関係や上記の位置誤差を用いて、周知の方法により算出することが可能である。
【００５７】
次に、図２を用いて、一部繰り返しとなるが、上記のモータ制御装置１０の動作フローについて説明する。
【００５８】
まず、反転検出部１０６は、位置指令作成部１０５によって作成された位置指令の反転を監視する（Ｓ１１）。反転が検出された場合（Ｓ１１：ＹＥＳ）は、位置誤差変化量計算部１０７は、位置誤差の変化量を０に初期化する（Ｓ１２）。そして、位置誤差変化量計算部１０７は、位置誤差の変化量の絶対値を計算する（Ｓ１３）。一方、位置指令の反転が検出されない場合（Ｓ１１：ＮＯ）には、改めてＳ１２の初期化のステップを経ることなく、位置誤差変化量計算部１０７は、位置誤差の変化量の絶対値を計算する。
【００５９】
次に、第１判定部１０８は、上記の位置誤差の変化量の絶対値を所定の第１の基準値及び所定の第２の基準値と比較する（Ｓ１４）。当該絶対値が、第１の基準値を超え、第２の基準値以下の場合（Ｓ１４：ＹＥＳ）には、バックラッシ補正部１１１はバックラッシ補正量を位置指令に加算する。すなわち、バックラッシ補正をＯＮとする（Ｓ１５）。上記の絶対値が第１の基準値以下の場合、及び第２の基準値を超えている場合（Ｓ１４：ＮＯ）には、バックラッシ補正部１１１はバックラッシ補正量を位置指令に加算しない。すなわち、バックラッシ補正をＯＦＦとする（Ｓ１６）。
【００６０】
次に、第２判定部１１０は、上記の位置偏差を所定の第３の基準値と比較する（Ｓ１７）。当該位置偏差が、第３の基準値以下である場合（Ｓ１７：ＹＥＳ）には、バックラッシ補正部１１１はバックラッシ補正量の位置指令への加算を中断する（Ｓ１８）。当該位置偏差が、第３の基準値を超えている場合（Ｓ１７：ＮＯ）は、バックラッシ補正量の加算の中断は実施しない。
【００６１】
図１０は、第１実施形態に係るモータ制御装置１０を用いてバックラッシ補正を制御した場合の、位置誤差の変化量、被駆動軸の位置偏差、及びバックラッシ補正量の経時変化を示す図である。なお、位置誤差の変化量を実線で、被駆動軸の位置偏差を一点鎖線で、バックラッシ補正量を二点鎖線で示す。
【００６２】
時刻が（ａ）及び（ｂ）の領域にいる間の位置誤差の変化量と被駆動軸の位置偏差の径時変化は、図７Ａ、図７Ｂ、及び図９のグラフと基本的に同一である。やがて、時刻が（ｃ）の領域に入り、バックラッシが発生すると共に、バックラッシ補正を開始する。
【００６３】
時刻（ｄ）において、モータ軸ギアの歯がバックラッシ端部に到達し、被駆動軸の位置偏差が最大となる。その後、被駆動軸の位置偏差は減少に転じるが、時刻（ｅ）において、第２判定部１１０は、被駆動軸の位置偏差が、基準値３以下となったと判定する。すなわち、被駆動軸である主軸５０の位置と、モータ２０への位置指令に係る位置とが、基準値３以下の距離となったと判定する。これに基づき、第２判定部１１０は、バックラッシ補正部１１１に対し、バックラッシ補正の中断を指示する。これに伴い、バックラッシ補正量はゼロとなる。
【００６４】
バックラッシ補正の中断に伴い、被駆動軸の位置偏差の量は再び上昇する。やがて、時刻（ｆ）において、被駆動軸の位置偏差が基準値３を超える。これに基づき、第２判定部１１０は、バックラッシ補正部１１１に対し、バックラッシ補正の再開を指示する。
【００６５】
上記の第１実施形態に係るモータ制御装置１０により、被駆動軸の位置偏差の正負が逆転することがなくなり、バックラッシ補正が過補正となることを防止することが可能となる。
【００６６】
更に、図７Ａ及び図７Ｂを参照して述べたように、同じ機械であっても動作条件によって位置誤差の変化量に対するバックラッシ到達タイミングが異なる場合がある。このような場合でも、バックラッシ補正量は反転から位置誤差が変化しきった所（例えば、図９の補正終了時点）まで加算され続ける。動作条件が変わった際に、バックラッシ補正量加算中に何らかの原因でモータ軸ギアがバックラッシ端に到達してしまう状況が起こったとしても、本実施形態の機能により補正を中断させることで、適切に反転補正を行うことが可能となる。
【００６７】
［第２実施形態］
図３は、第２実施形態に係るモータ制御装置１０Ａの構成を示す図である。なお、第１実施形態に係るモータ制御装置１０と同一の構成要素については、同一の符号を用い、その具体的な説明は省略する。
【００６８】
第２実施形態におけるモータ制御装置１０Ａは、第１実施形態に係るモータ制御装置１０におけるバックラッシ補正部１１１の代わりに、バックラッシ補正部２１１を備える。バックラッシ補正部２１１は、位置偏差計算部１０９から被駆動部の位置偏差を受信し、この位置偏差と第２判定部１１０からの指示に基づき、バックラッシ補正中にバックラッシ補正量を減少させる。
【００６９】
次に、図４を用いて、一部繰り返しとなるが、上記のモータ制御装置１０Ａの動作フローについて説明する。
【００７０】
まず、反転検出部１０６は、位置指令作成部１０５によって作成された位置指令の反転を監視する（Ｓ２１）。反転が検出された場合（Ｓ２１：ＹＥＳ）は、位置誤差変化量計算部１０７は、位置誤差の変化量を０に初期化する（Ｓ２２）。そして、位置誤差変化量計算部１０７は、位置誤差の変化量の絶対値を計算する（Ｓ２３）。一方、位置指令の反転が検出されない場合（Ｓ２１：ＮＯ）には、改めてＳ２２の初期化のステップを経ることなく、位置誤差変化量計算部１０７は、位置誤差の変化量の絶対値を計算する。
【００７１】
次に、第１判定部１０８は、上記の位置誤差の変化量の絶対値を所定の第１の基準値及び所定の第２の基準値と比較する（Ｓ２４）。当該絶対値が、第１の基準値を超え、第２の基準値以下の場合（Ｓ２４：ＹＥＳ）には、バックラッシ補正部２１１はバックラッシ補正量を位置指令に加算する。すなわち、バックラッシ補正をＯＮとする（Ｓ２５）。上記の絶対値が第１の基準値以下の場合、及び第２の基準値を超えている場合（Ｓ２４：ＮＯ）には、バックラッシ補正部２１１はバックラッシ補正量を位置指令に加算しない。すなわち、バックラッシ補正をＯＦＦとする（Ｓ２６）。
【００７２】
次に、第２判定部１１０は、上記の位置偏差を所定の第３の基準値と比較する（Ｓ２７）。上記の位置偏差が、第３の基準値以下である場合（Ｓ２７：ＹＥＳ）には、バックラッシ補正部２１１は位置指令に加算するバックラッシ補正量を漸次減少させる（Ｓ２８）。上記の位置偏差が、第３の基準値を超えている場合（Ｓ２７：ＮＯ）は、バックラッシ補正量の減少は実施しない。
【００７３】
上記の第２実施形態に係るモータ制御装置１０Ａにより、第１実施形態に係るモータ制御装置１０と同様に、被駆動軸の位置偏差の正負が逆転することがなくなり、バックラッシ補正が過補正となることを防止することが可能となる。また、動作条件が変わった際に、バックラッシ補正量加算中に何らかの原因でモータ軸ギアがバックラッシ端に到達してしまう状況が起こったとしても、本実施形態の機能により補正量を減少させることで、適切に反転補正を行うことが可能となる。
【００７４】
［変形例］
上記の第２実施形態に係るモータ制御装置１０Ａは、バックラッシ補正部２１１の代わりに、図５に示すバックラッシ補正部３１１を備えてもよい。図５に示すバックラッシ補正部は、基準位置誤差計算部３２０と、偏差算出器３２１と、補正ゲイン乗算器３２２とを備える。基準位置誤差計算部３２０は、モータ２０の反転後に位置誤差が到達するべき目標値である基準位置誤差を計算する。偏差算出器３２１は、この基準位置誤差と、位置誤差計算部１０４から第２判定部１１０を経由して受信する、実際の位置誤差との間の偏差を算出する。補正ゲイン乗算器３２２は、この偏差に、予め設定される補正ゲインを乗算することにより、バックラッシ補正量を算出する。それと共に、補正ゲイン乗算器３２２は、第２判定部１１０から、被駆動軸の位置偏差が第３の基準値以下となったか否かの判定結果を受信し、位置偏差が第３の基準値以下となっている場合には、補正ゲインを時間経過に従って単調減少させる。更に、位置偏差が補正開始時の位置偏差に到達したら、補正ゲイン乗算器３２２は、補正ゲインをゼロとする。
【００７５】
この変形例においても、上記の第２実施形態に係るモータ制御装置１０Ａと同様に、被駆動軸の位置偏差が負の値を取ることがなくなり、バックラッシ補正が過補正となることを防止することが可能となる。また、動作条件が変わった際に、バックラッシ補正量加算中に何らかの原因でモータ軸ギアがバックラッシ端に到達してしまう状況が起こったとしても、本実施形態の機能により補正を中断させることで、適切に反転補正を行うことが可能となる。
【００７６】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
【００７７】
モータ制御装置１０、１０Ａによる制御方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、コンピュータ（モータ制御装置１０、１０Ａ）にインストールされる。また、これらのプログラムは、リムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したＷｅｂサービスとしてユーザのコンピュータ（モータ制御装置１０、１０Ａ）に提供されてもよい。
【符号の説明】
【００７８】
１０、１０Ａ  モータ制御装置
２０  モータ
３０  モータ軸（可動部）
３５  モータ軸ギア
４０  中間軸
４５  中間軸ギア
５０  主軸（被駆動部）
６０  ベルト
１０１  第１位置検出部
１０２  変換係数
１０３  第２位置検出部
１０４  位置誤差計算部
１０５  位置指令作成部
１０６  反転検出部
１０７  位置誤差変化量計算部
１０８  第１判定部
１０９  位置偏差計算部
１１０  第２判定部
１１１  ２１１  ３１１  バックラッシ補正部
１１２  加算器
１１３  制御部
３２０  基準位置誤差計算部
３２１  偏差算出器
３２２  補正ゲイン乗算器
３５１  ３５２  ４５１  ４５２  歯
【図１】
2018060328.tif 000003
【図２】
2018060328.tif 000004
【図３】
2018060328.tif 000005
【図４】
2018060328.tif 000006
【図５】
2018060328.tif 000007
【図６Ａ】
2018060328.tif 000008
【図６Ｂ】
2018060328.tif 000009
【図７Ａ】
2018060328.tif 000010
【図７Ｂ】
2018060328.tif 000011
【図８Ａ】
2018060328.tif 000012
【図８Ｂ】
2018060328.tif 000013
【図９】
2018060328.tif 000014
【図１０】
2018060328.tif 000015