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