特許第6396364号(P6396364)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ファナック株式会社の特許一覧

特許6396364モータ制御装置、モータ制御方法及びモータ制御プログラム
<>
  • 特許6396364-モータ制御装置、モータ制御方法及びモータ制御プログラム 図000002
  • 特許6396364-モータ制御装置、モータ制御方法及びモータ制御プログラム 図000003
  • 特許6396364-モータ制御装置、モータ制御方法及びモータ制御プログラム 図000004
  • 特許6396364-モータ制御装置、モータ制御方法及びモータ制御プログラム 図000005
  • 特許6396364-モータ制御装置、モータ制御方法及びモータ制御プログラム 図000006
  • 特許6396364-モータ制御装置、モータ制御方法及びモータ制御プログラム 図000007
  • 特許6396364-モータ制御装置、モータ制御方法及びモータ制御プログラム 図000008
  • 特許6396364-モータ制御装置、モータ制御方法及びモータ制御プログラム 図000009
  • 特許6396364-モータ制御装置、モータ制御方法及びモータ制御プログラム 図000010
  • 特許6396364-モータ制御装置、モータ制御方法及びモータ制御プログラム 図000011
  • 特許6396364-モータ制御装置、モータ制御方法及びモータ制御プログラム 図000012
  • 特許6396364-モータ制御装置、モータ制御方法及びモータ制御プログラム 図000013
  • 特許6396364-モータ制御装置、モータ制御方法及びモータ制御プログラム 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6396364
(24)【登録日】2018年9月7日
(45)【発行日】2018年9月26日
(54)【発明の名称】モータ制御装置、モータ制御方法及びモータ制御プログラム
(51)【国際特許分類】
   H02P 23/14 20060101AFI20180913BHJP
   G05B 19/404 20060101ALI20180913BHJP
【FI】
   H02P23/14
   G05B19/404 G
【請求項の数】16
【全頁数】30
(21)【出願番号】特願2016-104666(P2016-104666)
(22)【出願日】2016年5月25日
(65)【公開番号】特開2017-212812(P2017-212812A)
(43)【公開日】2017年11月30日
【審査請求日】2017年7月13日
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【弁理士】
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】橋本 章太郎
(72)【発明者】
【氏名】置田 肇
(72)【発明者】
【氏名】森田 有紀
【審査官】 ▲桑▼原 恭雄
(56)【参考文献】
【文献】 特開2003−048136(JP,A)
【文献】 国際公開第2014/141515(WO,A1)
【文献】 特開平09−016258(JP,A)
【文献】 特開平04−008451(JP,A)
【文献】 米国特許出願公開第2014/0366667(US,A1)
【文献】 特開昭62−057003(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H02P 23/14
G05B 19/404
(57)【特許請求の範囲】
【請求項1】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバック
ラッシを補正するモータ制御装置であって、
前記可動部の位置である第1位置を検出する第1位置検出部と、
前記被駆動部の位置である第2位置を検出する第2位置検出部と、
前記第1位置検出部が検出した第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置検出部が検出した第2位置検出値との間の偏差である位置誤差を計算する位置誤差計算部と、
位置指令を作成する位置指令作成部と、
前記位置指令の反転を検出する反転検出部と、
反転が検出されてからの前記位置誤差の変化量の絶対値を計算する位置誤差変化量計算部と、
前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定する判定部と、
前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するバックラッシ補正部と、
前記バックラッシ補正量が加算後の位置指令から、速度指令またはトルク指令を計算する制御部と、
前記速度指令または前記トルク指令にバックラッシ加速量を加算するバックラッシ加速部と、を備え、
前記バックラッシ補正部は、前記位置誤差の変化量の絶対値が予め指定した第1の基準値を超えたら前記バックラッシ補正量の加算を開始し、前記バックラッシ加速部は前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記バックラッシ加速量の加算を開始するモータ制御装置。
【請求項2】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御装置であって、
前記可動部の位置である第1位置を検出する第1位置検出部と、
前記被駆動部の位置である第2位置を検出する第2位置検出部と、
前記第1位置検出部が検出した第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置検出部が検出した第2位置検出値との間の偏差である位置誤差を計算する位置誤差計算部と、
位置指令を作成する位置指令作成部と、
前記位置指令の反転を検出する反転検出部と、
反転が検出されてからの前記位置誤差の変化量の絶対値を計算する位置誤差変化量計算部と、
反転が検出されてからの単位時間当たりの前記位置誤差の変化率の絶対値を計算する位置誤差変化率計算部と、
前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定する第1判定部と、
前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定する第2判定部と、
前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するバックラッシ補正部と、
前記バックラッシ補正量が加算後の位置指令から、速度指令またはトルク指令を計算する制御部と、
前記速度指令または前記トルク指令にバックラッシ加速量を加算するバックラッシ加速部と、を備え、
前記バックラッシ補正部は、前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記バックラッシ補正量の加算を開始し、前記バックラッシ加速部は前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記バックラッシ加速量の加算を開始するモータ制御装置。
【請求項3】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御装置であって、
前記可動部の位置である第1位置を検出する第1位置検出部と、
前記被駆動部の位置である第2位置を検出する第2位置検出部と、
前記第1位置検出部が検出した第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置検出部が検出した第2位置検出値との間の偏差である位置誤差を計算する位置誤差計算部と、
位置指令を作成する位置指令作成部と、
前記位置指令の反転を検出する反転検出部と、
反転が検出されてからの前記位置誤差の変化量の絶対値を計算する位置誤差変化量計算部と、
反転が検出されてからのモータ回転角単位変化量当たりの前記位置誤差の変化率の絶対値を計算する位置誤差変化率計算部と、
前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定する第1判定部と、
前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定する第2判定部と、
前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するバックラッシ補正部と、
前記バックラッシ補正量が加算後の位置指令から、速度指令またはトルク指令を計算する制御部と、
前記速度指令または前記トルク指令にバックラッシ加速量を加算するバックラッシ加速部と、を備え、
前記バックラッシ補正部は、前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記バックラッシ補正量の加算を開始し、前記バックラッシ加速部は前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記バックラッシ加速量の加算を開始するモータ制御装置。
【請求項4】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御装置であって、
前記可動部の位置である第1位置を検出する第1位置検出部と、
前記被駆動部の位置である第2位置を検出する第2位置検出部と、
前記第1位置検出部が検出した第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置検出部が検出した第2位置検出値との間の偏差である位置誤差を計算する位置誤差計算部と、
位置指令を作成する位置指令作成部と、
前記位置指令の反転を検出する反転検出部と、
反転が検出されてからの前記位置誤差の変化量の絶対値を計算する位置誤差変化量計算部と、
反転が検出されてからの前記位置指令の積算値の単位変化量当たりの前記位置誤差の変化率の絶対値を計算する位置誤差変化率計算部と、
前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定する第1判定部と、
前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定する第2判定部と、
前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するバックラッシ補正部と、
前記バックラッシ補正量が加算後の位置指令から、速度指令またはトルク指令を計算する制御部と、
前記速度指令または前記トルク指令にバックラッシ加速量を加算するバックラッシ加速部と、を備え、
前記バックラッシ補正部は、前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記バックラッシ補正量の加算を開始し、前記バックラッシ加速部は前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記バックラッシ加速量の加算を開始するモータ制御装置。
【請求項5】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御装置であって、
前記可動部の位置である第1位置を検出する第1位置検出部と、
前記被駆動部の位置である第2位置を検出する第2位置検出部と、
前記第1位置検出部が検出した第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置検出部が検出した第2位置検出値との間の偏差である位置誤差を計算する位置誤差計算部と、
位置指令を作成する位置指令作成部と、
前記位置指令の反転を検出する反転検出部と、
反転が検出されてからの単位時間当たりの前記位置誤差の変化率の絶対値を計算する位置誤差変化率計算部と、
前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定する判定部と、
前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するバックラッシ補正部と、
前記バックラッシ補正量が加算後の位置指令から、速度指令またはトルク指令を計算する制御部と、
前記速度指令または前記トルク指令にバックラッシ加速量を加算するバックラッシ加速部と、を備え、
前記バックラッシ補正部は、前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記バックラッシ補正量の加算を開始し、前記バックラッシ加速部は前記位置誤差の変化率の絶対値が、予め指定した第2の基準値を超えると同時に、第3の基準値未満になったら前記バックラッシ加速量の加算を開始するモータ制御装置。
【請求項6】
前記モータにより駆動される前記可動部と、該可動部により駆動される前記被駆動部とは、ギアとベルトとの組み合わせによって機械的に結合されている請求項1〜5のいずれか1項に記載のモータ制御装置。
【請求項7】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御方法であって、
前記可動部の位置である第1位置を検出するステップと、
前記被駆動部の位置である第2位置を検出するステップと、
前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、
位置指令を作成するステップと、
前記位置指令の反転を検出するステップと、
反転が検出されてからの前記位置誤差の変化量の絶対値を計算するステップと、
前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定するステップと、
前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、
前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、
前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータが実行し、
前記位置誤差の変化量の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対する前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記速度指令または前記トルク指令に対する前記バックラッシ加速量の加算を開始するモータ制御方法。
【請求項8】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御方法であって、
前記可動部の位置である第1位置を検出するステップと、
前記被駆動部の位置である第2位置を検出するステップと、
前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、
位置指令を作成するステップと、
前記位置指令の反転を検出するステップと、
反転が検出されてからの前記位置誤差の変化量の絶対値を計算するステップと、
反転が検出されてからの単位時間当たりの前記位置誤差の変化率の絶対値を計算するステップと、
前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定するステップと、
前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定するステップと、
前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、
前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、
前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータが実行し、
前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対する前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記速度指令または前記トルク指令に対する前記バックラッシ加速量の加算を開始するモータ制御方法。
【請求項9】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御方法であって、
前記可動部の位置である第1位置を検出するステップと、
前記被駆動部の位置である第2位置を検出するステップと、
前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、
位置指令を作成するステップと、
前記位置指令の反転を検出するステップと、
反転が検出されてからの前記位置誤差の変化量の絶対値を計算するステップと、
反転が検出されてからのモータ回転角単位変化量当たりの前記位置誤差の変化率の絶対値を計算するステップと、
前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定するステップと、
前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定するステップと、
前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、
前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、
前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータが実行し、
前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対する前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記速度指令または前記トルク指令に対する前記バックラッシ加速量の加算を開始するモータ制御方法。
【請求項10】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御方法であって、
前記可動部の位置である第1位置を検出するステップと、
前記被駆動部の位置である第2位置を検出するステップと、
前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、
位置指令を作成するステップと、
前記位置指令の反転を検出するステップと、
反転が検出されてからの前記位置誤差の変化量の絶対値を計算するステップと、
反転が検出されてからの前記位置指令の積算値の単位変化量当たりの前記位置誤差の変化率の絶対値を計算するステップと、
前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定するステップと、
前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定するステップと、
前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、
前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、
前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータが実行し、
前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対し前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記速度指令または前記トルク指令に対し前記バックラッシ加速量の加算を開始するモータ制御方法。
【請求項11】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御方法であって、
前記可動部の位置である第1位置を検出するステップと、
前記被駆動部の位置である第2位置を検出するステップと、
前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、
位置指令を作成するステップと、
前記位置指令の反転を検出するステップと、
反転が検出されてからの単位時間当たりの前記位置誤差の変化率の絶対値を計算するステップと、
前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定するステップと、
前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、
前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、
前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータが実行し、
前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対する前記バックラッシ補正量の加算を開始し、前記位置誤差の変化率の絶対値が、予め指定した第2の基準値を超えると同時に、第3の基準値未満になったら前記速度指令または前記トルク指令に対する前記バックラッシ加速量の加算を開始するモータ制御方法。
【請求項12】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するためのモータ制御プログラムであって、
前記可動部の位置である第1位置を検出するステップと、
前記被駆動部の位置である第2位置を検出するステップと、
前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、
位置指令を作成するステップと、
前記位置指令の反転を検出するステップと、
反転が検出されてからの前記位置誤差の変化量の絶対値を計算するステップと、
前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定するステップと、
前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、
前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、
前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータに実行させ、
前記位置誤差の変化量の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対する前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記速度指令または前記トルク指令に対する前記バックラッシ加速量の加算を開始するためのモータ制御プログラム。
【請求項13】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するためのモータ制御プログラムであって、
前記可動部の位置である第1位置を検出するステップと、
前記被駆動部の位置である第2位置を検出するステップと、
前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、
位置指令を作成するステップと、
前記位置指令の反転を検出するステップと、
反転が検出されてからの前記位置誤差の変化量の絶対値を計算するステップと、
反転が検出されてからの単位時間当たりの前記位置誤差の変化率の絶対値を計算するステップと、
前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定するステップと、
前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定するステップと、
前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、
前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、
前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータに実行させ、
前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対する前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記速度指令または前記トルク指令に対する前記バックラッシ加速量の加算を開始するためのモータ制御プログラム。
【請求項14】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するためのモータ制御プログラムであって、
前記可動部の位置である第1位置を検出するステップと、
前記被駆動部の位置である第2位置を検出するステップと、
前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、
位置指令を作成するステップと、
前記位置指令の反転を検出するステップと、
反転が検出されてからの前記位置誤差の変化量の絶対値を計算するステップと、
反転が検出されてからのモータ回転角単位変化量当たりの前記位置誤差の変化率の絶対値を計算するステップと、
前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定するステップと、
前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定するステップと、
前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、
前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、
前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータに実行させ、
前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対する前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記速度指令または前記トルク指令に対する前記バックラッシ加速量の加算を開始するためのモータ制御プログラム。
【請求項15】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するためのモータ制御プログラムであって、
前記可動部の位置である第1位置を検出するステップと、
前記被駆動部の位置である第2位置を検出するステップと、
前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、
位置指令を作成するステップと、
前記位置指令の反転を検出するステップと、
反転が検出されてからの前記位置誤差の変化量の絶対値を計算するステップと、
反転が検出されてからの前記位置指令の積算値の単位変化量当たりの前記位置誤差の変化率の絶対値を計算するステップと、
前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定するステップと、
前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定するステップと、
前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、
前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、
前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータに実行させ、
前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対し前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記速度指令または前記トルク指令に対し前記バックラッシ加速量の加算を開始するためのモータ制御プログラム。
【請求項16】
モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するためのモータ制御プログラムであって、
前記可動部の位置である第1位置を検出するステップと、
前記被駆動部の位置である第2位置を検出するステップと、
前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、
位置指令を作成するステップと、
前記位置指令の反転を検出するステップと、
反転が検出されてからの単位時間当たりの前記位置誤差の変化率の絶対値を計算するステップと、
前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定するステップと、
前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、
前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、
前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータに実行させ、
前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対する前記バックラッシ補正量の加算を開始し、前記位置誤差の変化率の絶対値が、予め指定した第2の基準値を超えると同時に、第3の基準値未満になったら前記速度指令または前記トルク指令に対する前記バックラッシ加速量の加算を開始するためのモータ制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モータ反転時に、位置指令にバックラッシ補正量を加算し、速度指令またはトルク指令にバックラッシ加速量を加算する手段を有するモータ制御装置、モータ制御方法及びモータ制御プログラムに関する。
【背景技術】
【0002】
従来より、物体の位置、方位、姿勢等を制御量とする制御系、例えば工作機械や産業機械の制御系において、サーボモータが用いられている。サーボモータのモータ軸の回転を他の主軸に伝えるために用いられる機械要素であって互いに係合する機械要素においては、当該機械要素間の抵触面に意図的に隙間が設けられている。この隙間が存在することにより、例えばねじやギア等の機械要素は、ある程度の範囲で自由に回転することができる。この隙間を「バックラッシ」(または「バックラッシュ」)と呼ぶ。
【0003】
例えば、モータと主軸等の被駆動軸がギアで結合されている場合、ギアのバックラッシが存在することにより、モータの反転時には、被駆動軸の反転がモータの反転に対して遅れてしまうこととなる。この被駆動軸の反転遅れを補正するために、モータへの位置指令にバックラッシ補正量を加算する方法が、従来より存在する。これを「バックラッシ補正」と呼ぶ。
【0004】
例えば特許文献1は、モータと該モータによって駆動される被駆動軸との間に何らかの減速機構を有する構成において、モータの反転時における被駆動軸の反転挙動を改善する手法として、モータが反転する瞬間に、減速機構が有する機械的バックラッシ分を早く移動させるための位置の補正を与える手法を開示している。
【0005】
しかしながら、特許文献1で開示される方法は、あくまで、位置指令またはモータの反転時に減速機構が有するバックラッシによる被駆動部の反転遅れが、即座に発生することを前提にしたバックラッシ補正方法である。
一方で、モータと被駆動軸との間の結合にギアとベルトとが同時に使用されている場合には、ベルトの弾性の影響により、モータの反転から遅れてギアのバックラッシによる被駆動軸の反転遅れが発生することがある。このような場合においては、モータの反転直後にバックラッシ補正量を加算すると、補正の効果が無いか、または後述のように、補正が被駆動軸の反転動作に悪影響を与えることがあった。
【0006】
そこで、出願人は、ギアが空間バックラッシ内を移動するタイミングでバックラッシ補正量を加算する発明を既に出願済みである(特願2016−080416号)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2014−54001号公報
【特許文献2】特開2015−211498号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
一方で、モータ・被駆動軸間の結合にベルトが使用されている場合、ベルトの弾性変形や、被駆動軸における静摩擦の影響により被駆動軸の反転がモータの反転に対して遅れてしまう。この被駆動軸の反転遅れを補正するために、モータ反転時に、位置指令ではなく、速度指令またはトルク指令に補正を加算する方法が、従来より存在する。これを「バックラッシ加速」と呼ぶ。
【0009】
この点、特許文献2は、速度指令またはトルク指令にバックラッシ加速量を加算する方法を開示している。しかし、特許文献2に係る発明も特許文献1に係る発明と同様に、位置指令反転時またはモータ反転時に反転遅れが即座に発生することを前提とするものであった。実際、特許文献2には、バックラッシ加速量の加算を終了する条件を設定する方法については記載されているものの、バックラッシ加速量の加算を開始する条件については、何ら記載されていなかった。
【0010】
本発明は、モータへの位置指令に対するバックラッシ補正量の加算、及び、モータへの速度指令またはトルク指令に対するバックラッシ加速量の加算を適切なタイミングで実施するモータ制御装置、モータ制御方法及びモータ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明に係る第1のモータ制御装置(例えば、後述のモータ制御装置10)は、モータにより駆動される可動部(例えば、後述のモータ軸30)と、該可動部により駆動される被駆動部(例えば、後述の主軸50)との間のバックラッシを補正するモータ制御装置であって、前記可動部の位置である第1位置を検出する第1位置検出部(例えば、後述の第1位置検出部101)と、前記被駆動部の位置である第2位置を検出する第2位置検出部(例えば、後述の第2位置検出部103)と、前記第1位置検出部が検出した第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置検出部が検出した第2位置検出値との間の偏差である位置誤差を計算する位置誤差計算部(例えば、後述の位置誤差計算部104)と、位置指令を作成する位置指令作成部(例えば、後述の位置指令作成部105)と、前記位置指令の反転を検出する反転検出部(例えば、後述の反転検出部106)と、反転が検出されてからの前記位置誤差の変化量の絶対値を計算する位置誤差変化量計算部(例えば、後述の位置誤差変化量計算部107)と、前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定する判定部(例えば、後述の判定部108)と、前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するバックラッシ補正部(例えば、後述のバックラッシ補正部109)と、バックラッシ補正量が加算された位置指令から、速度指令またはトルク指令を計算する制御部(例えば、後述の制御部111)と、前記速度指令または前記トルク指令にバックラッシ加速量を加算するバックラッシ加速部(例えば、後述のバックラッシ加速部112)と、を備え、前記バックラッシ補正部は、前記位置誤差の変化量の絶対値が予め指定した第1の基準値以上になったら前記バックラッシ補正量の加算を開始し、前記バックラッシ加速部は前記位置誤差の変化量の絶対値が予め指定した第2の基準値以上になったら前記バックラッシ加速量の加算を開始する。
【0012】
本発明に係る第2のモータ制御装置(例えば、後述のモータ制御装置10A)は、モータにより駆動される可動部(例えば、後述のモータ軸30)と、該可動部により駆動される被駆動部(例えば、後述の主軸50)との間のバックラッシを補正するモータ制御装置であって、前記可動部の位置である第1位置を検出する第1位置検出部(例えば、後述の第1位置検出部101)と、前記被駆動部の位置である第2位置を検出する第2位置検出部(例えば、後述の第2位置検出部103)と、前記第1位置検出部が検出した第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置検出部が検出した第2位置検出値との間の偏差である位置誤差を計算する位置誤差計算部(例えば、後述の位置誤差計算部104)と、位置指令を作成する位置指令作成部(例えば、後述の位置指令作成部105)と、前記位置指令の反転を検出する反転検出部(例えば、後述の反転検出部106)と、反転が検出されてからの前記位置誤差の変化量の絶対値を計算する位置誤差変化量計算部(例えば、後述の位置誤差変化量計算部107)と、反転が検出されてからの単位時間当たりの前記位置誤差の変化率の絶対値を計算する位置誤差変化率計算部(例えば、後述の位置誤差変化率計算部207)と、前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定する第1判定部(例えば、後述の第1判定部208A)と、前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定する第2判定部(例えば、後述の第2判定部208B)と、前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するバックラッシ補正部(例えば、後述のバックラッシ補正部109)と、バックラッシ補正量が加算された位置指令から、速度指令またはトルク指令を計算する制御部(例えば、後述の制御部111)と、前記速度指令または前記トルク指令にバックラッシ加速量を加算するバックラッシ加速部(例えば、後述のバックラッシ加速部112)と、を備え、前記バックラッシ補正部は、前記位置誤差の変化率の絶対値が予め指定した第1の基準値以上になったら前記バックラッシ補正量の加算を開始し、前記バックラッシ加速部は前記位置誤差の変化量の絶対値が予め指定した第2の基準値以上になったら前記バックラッシ加速量の加算を開始する。
【0013】
本発明に係る第3のモータ制御装置(例えば、後述のモータ制御装置10A)は、モータにより駆動される可動部(例えば、後述のモータ軸30)と、該可動部により駆動される被駆動部(例えば、後述の主軸50)との間のバックラッシを補正するモータ制御装置であって、前記可動部の位置である第1位置を検出する第1位置検出部(例えば、後述の第1位置検出部101)と、前記被駆動部の位置である第2位置を検出する第2位置検出部(例えば、後述の第2位置検出部103)と、前記第1位置検出部が検出した第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置検出部が検出した第2位置検出値との間の偏差である位置誤差を計算する位置誤差計算部(例えば、後述の位置誤差計算部104)と、位置指令を作成する位置指令作成部(例えば、後述の位置指令作成部105)と、前記位置指令の反転を検出する反転検出部(例えば、後述の反転検出部106)と、反転が検出されてからの前記位置誤差の変化量の絶対値を計算する位置誤差変化量計算部(例えば、後述の位置誤差変化量計算部107)と、反転が検出されてからのモータ回転角単位変化量当たりの前記位置誤差の変化率の絶対値を計算する位置誤差変化率計算部(例えば、後述の位置誤差変化率計算部207)と、前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定する第1判定部(例えば、後述の第1判定部208A)と、前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定する第2判定部(例えば、後述の第2判定部208B)と、前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するバックラッシ補正部(例えば、後述のバックラッシ補正部109)と、バックラッシ補正量が加算された位置指令から、速度指令またはトルク指令を計算する制御部(例えば、後述の制御部111)と、前記速度指令または前記トルク指令にバックラッシ加速量を加算するバックラッシ加速部(例えば、後述のバックラッシ加速部112)と、を備え、前記バックラッシ補正部は、前記位置誤差の変化率の絶対値が予め指定した第1の基準値以上になったら前記バックラッシ補正量の加算を開始し、前記バックラッシ加速部は前記位置誤差の変化量の絶対値が予め指定した第2の基準値以上になったら前記バックラッシ加速量の加算を開始する。
【0014】
本発明に係る第4のモータ制御装置(例えば、後述のモータ制御装置10A)は、モータにより駆動される可動部(例えば、後述のモータ軸30)と、該可動部により駆動される被駆動部(例えば、後述の主軸50)との間のバックラッシを補正するモータ制御装置であって、前記可動部の位置である第1位置を検出する第1位置検出部(例えば、後述の第1位置検出部101)と、前記被駆動部の位置である第2位置を検出する第2位置検出部(例えば、後述の第2位置検出部103)と、前記第1位置検出部が検出した第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置検出部が検出した第2位置検出値との間の偏差である位置誤差を計算する位置誤差計算部(例えば、後述の位置誤差計算部104)と、位置指令を作成する位置指令作成部(例えば、後述の位置指令作成部105)と、前記位置指令の反転を検出する反転検出部(例えば、後述の反転検出部106)と、反転が検出されてからの前記位置誤差の変化量の絶対値を計算する位置誤差変化量計算部(例えば、後述の位置誤差変化量計算部107)と、反転が検出されてからの前記位置指令の積算値の単位変化量当たりの前記位置誤差の変化率の絶対値を計算する位置誤差変化率計算部(例えば、後述の位置誤差変化率計算部207)と、前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定する第1判定部(例えば、後述の第1判定部208A)と、前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定する第2判定部(例えば、後述の第2判定部208B)と、前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するバックラッシ補正部(例えば、後述のバックラッシ補正部109)と、バックラッシ補正量が加算された位置指令から、速度指令またはトルク指令を計算する制御部(例えば、後述の制御部111)と、前記速度指令または前記トルク指令にバックラッシ加速量を加算するバックラッシ加速部(例えば、後述のバックラッシ加速部112)と、を備え、前記バックラッシ補正部は、前記位置誤差の変化率の絶対値が予め指定した第1の基準値以上になったら前記バックラッシ補正量の加算を開始し、前記バックラッシ加速部は前記位置誤差の変化量の絶対値が予め指定した第2の基準値以上になったら前記バックラッシ加速量の加算を開始する。
【0015】
本発明に係る第5のモータ制御装置(例えば、後述のモータ制御装置10B)は、モータにより駆動される可動部(例えば、後述のモータ軸30)と、該可動部により駆動される被駆動部(例えば、後述の主軸50)との間のバックラッシを補正するモータ制御装置であって、前記可動部の位置である第1位置を検出する第1位置検出部(例えば、後述の第1位置検出部101)と、前記被駆動部の位置である第2位置を検出する第2位置検出部(例えば、後述の第2位置検出部103)と、前記第1位置検出部が検出した第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置検出部が検出した第2位置検出値との間の偏差である位置誤差を計算する位置誤差計算部(例えば、後述の位置誤差計算部104)と、位置指令を作成する位置指令作成部(例えば、後述の位置指令作成部105)と、前記位置指令の反転を検出する反転検出部(例えば、後述の反転検出部106)と、反転が検出されてからの単位時間当たりの前記位置誤差の変化率の絶対値を計算する位置誤差変化率計算部(例えば、後述の位置誤差変化率計算部207)と、前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定する判定部(例えば、後述の判定部208C)と、前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するバックラッシ補正部(例えば、後述のバックラッシ補正部109)と、バックラッシ補正が加算された位置指令から、速度指令またはトルク指令を計算する制御部(例えば、後述の制御部111)と、前記速度指令または前記トルク指令にバックラッシ加速量を加算するバックラッシ加速部(例えば、後述のバックラッシ加速部112)と、を備え、前記バックラッシ補正部は、前記位置誤差の変化率の絶対値が予め指定した第1の基準値以上になったら前記バックラッシ補正量の加算を開始し、前記バックラッシ加速部は前記位置誤差の変化率の絶対値が予め指定した第2の基準値以上、第3の基準値以下になったら前記バックラッシ加速量の加算を開始する。
【0016】
前記モータにより駆動される前記可動部と、該可動部により駆動される前記被駆動部とは、ギアとベルトとの組み合わせによって機械的に結合されてもよい。
【0017】
本発明に係る第1のモータ制御方法は、モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御方法であって、前記可動部の位置である第1位置を検出するステップと、前記被駆動部の位置である第2位置を検出するステップと、前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいてが検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、位置指令を作成するステップと、前記位置指令の反転を検出するステップと、反転が検出されてからの前記位置誤差の変化量の絶対値を計算するステップと、前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定するステップと、前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータが実行し、前記位置誤差の変化量の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対する前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記速度指令または前記トルク指令に対する前記バックラッシ加速量の加算を開始する。
【0018】
本発明に係る第2のモータ制御方法は、モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御方法であって、前記可動部の位置である第1位置を検出するステップと、前記被駆動部の位置である第2位置を検出するステップと、前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、位置指令を作成するステップと、前記位置指令の反転を検出するステップと、反転が検出されてからの前記位置誤差の変化量の絶対値を計算するステップと、反転が検出されてからの単位時間当たりの前記位置誤差の変化率の絶対値を計算するステップと、前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定するステップと、前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定するステップと、前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータが実行し、前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対する前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記速度指令または前記トルク指令に対する前記バックラッシ加速量の加算を開始する。
【0019】
本発明に係る第3のモータ制御方法は、モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御方法であって、前記可動部の位置である第1位置を検出するステップと、前記被駆動部の位置である第2位置を検出するステップと、前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、位置指令を作成するステップと、前記位置指令の反転を検出するステップと、反転が検出されてからの前記位置誤差の変化量の絶対値を計算するステップと、反転が検出されてからのモータ回転角単位変化量当たりの前記位置誤差の変化率の絶対値を計算するステップと、前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定するステップと、前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定するステップと、前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータが実行し、前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記位置誤差に対する前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記速度指令または前記トルク指令に対する前記バックラッシ加速量の加算を開始する。
【0020】
本発明に係る第4のモータ制御方法は、モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御方法であって、前記可動部の位置である第1位置を検出するステップと、前記被駆動部の位置である第2位置を検出するステップと、前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、位置指令を作成するステップと、前記位置指令の反転を検出するステップと、反転が検出されてからの前記位置誤差の変化量の絶対値を計算するステップと、反転が検出されてからの前記位置指令の積算値の単位変化量当たりの前記位置誤差の変化率の絶対値を計算するステップと、前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定するステップと、前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定するステップと、前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータが実行し、前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対し前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記速度指令または前記トルク指令に対し前記バックラッシ加速量の加算を開始する。
【0021】
本発明に係る第5のモータ制御方法は、モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するモータ制御方法であって、前記可動部の位置である第1位置を検出するステップと、前記被駆動部の位置である第2位置を検出するステップと、前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、位置指令を作成するステップと、前記位置指令の反転を検出するステップと、反転が検出されてからの単位時間当たりの前記位置誤差の変化率の絶対値を計算するステップと、前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定するステップと、前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータが実行し、前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対する前記バックラッシ補正量の加算を開始し、前記位置誤差の変化率の絶対値が、予め指定した第2の基準値を超えると同時に、第3の基準値未満になったら前記速度指令または前記トルク指令に対する前記バックラッシ加速量の加算を開始する。
【0022】
本発明に係る第1のモータ制御プログラムは、モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するためのモータ制御プログラムであって、前記可動部の位置である第1位置を検出するステップと、前記被駆動部の位置である第2位置を検出するステップと、前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、位置指令を作成するステップと、前記位置指令の反転を検出するステップと、反転が検出されてからの前記位置誤差の変化量の絶対値を計算するステップと、前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定するステップと、前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータに実行させ、前記位置誤差の変化量の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対する前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記速度指令または前記トルク指令に対する前記バックラッシ加速量の加算を開始する。
【0023】
本発明に係る第2のモータ制御プログラムは、モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するためのモータ制御プログラムであって、前記可動部の位置である第1位置を検出するステップと、前記被駆動部の位置である第2位置を検出するステップと、前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、位置指令を作成するステップと、前記位置指令の反転を検出するステップと、反転が検出されてからの前記位置誤差の変化量の絶対値を計算するステップと、反転が検出されてからの単位時間当たりの前記位置誤差の変化率の絶対値を計算するステップと、前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定するステップと、前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定するステップと、前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータに実行させ、前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対する前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記速度指令または前記トルク指令に対する前記バックラッシ加速量の加算を開始する。
【0024】
本発明に係る第3のモータ制御プログラムは、モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するためのモータ制御プログラムであって、前記可動部の位置である第1位置を検出するステップと、前記被駆動部の位置である第2位置を検出するステップと、前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、位置指令を作成するステップと、前記位置指令の反転を検出するステップと、反転が検出されてからの前記位置誤差の変化量の絶対値を計算するステップと、反転が検出されてからのモータ回転角単位変化量当たりの前記位置誤差の変化率の絶対値を計算するステップと、前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定するステップと、前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定するステップと、前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータに実行させ、前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記位置誤差に対する前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記速度指令または前記トルク指令に対する前記バックラッシ加速量の加算を開始する。
【0025】
本発明に係る第4のモータ制御プログラムは、モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するためのモータ制御プログラムであって、前記可動部の位置である第1位置を検出するステップと、前記被駆動部の位置である第2位置を検出するステップと、前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、位置指令を作成するステップと、前記位置指令の反転を検出するステップと、反転が検出されてからの前記位置誤差の変化量の絶対値を計算するステップと、反転が検出されてからの前記位置指令の積算値の単位変化量当たりの前記位置誤差の変化率の絶対値を計算するステップと、前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定するステップと、前記位置誤差の変化量の絶対値が所定の基準値を超えたかどうかを判定するステップと、前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータに実行させ、前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対し前記バックラッシ補正量の加算を開始し、前記位置誤差の変化量の絶対値が予め指定した第2の基準値を超えたら前記速度指令または前記トルク指令に対し前記バックラッシ加速量の加算を開始する。
【0026】
本発明に係る第5のモータ制御プログラムは、モータにより駆動される可動部と、該可動部により駆動される被駆動部との間のバックラッシを補正するためのモータ制御プログラムであって、前記可動部の位置である第1位置を検出するステップと、前記被駆動部の位置である第2位置を検出するステップと、前記第1位置を検出するステップにおいて検出された第1位置検出値を前記可動部と前記被駆動部の間の回転比によって被駆動部の位置の値に換算した換算後第1位置検出値と、前記第2位置を検出するステップにおいて検出された第2位置検出値との間の偏差である位置誤差を計算するステップと、位置指令を作成するステップと、前記位置指令の反転を検出するステップと、反転が検出されてからの単位時間当たりの前記位置誤差の変化率の絶対値を計算するステップと、前記位置誤差の変化率の絶対値が所定の基準値を超えたかどうかを判定するステップと、前記位置指令に前記位置誤差に基づくバックラッシ補正量を加算するステップと、前記バックラッシ補正量を加算後の位置指令から、速度指令またはトルク指令を計算するステップと、前記速度指令または前記トルク指令にバックラッシ加速量を加算するステップと、をコンピュータに実行させ、前記位置誤差の変化率の絶対値が予め指定した第1の基準値を超えたら前記位置指令に対する前記バックラッシ補正量の加算を開始し、前記位置誤差の変化率の絶対値が、予め指定した第2の基準値を超えると同時に、第3の基準値未満になったら前記速度指令または前記トルク指令に対する前記バックラッシ加速量の加算を開始する。
【発明の効果】
【0027】
本発明によれば、モータへの速度指令またはトルク指令に対してバックラッシ加速量を適切なタイミングで加算することができる。
【図面の簡単な説明】
【0028】
図1-1】モータの反転時の各軸の挙動についての説明図である。
図1-2】モータの反転時の各軸の挙動についての説明図である。
図2】本発明の第1実施形態に係るモータ制御装置の構成を示す図である。
図3】本発明の第1実施形態に係るモータ制御装置における処理を示すフローチャートである。
図4】本発明の第1実施形態に係るモータ制御装置におけるバックラッシ補正とバックラッシ加速のタイミングを示す図である。
図5】本発明の第2〜第4実施形態に係るモータ制御装置の構成を示す図である。
図6】本発明の第2〜第4実施形態に係るモータ制御装置における処理を示すフローチャートである。
図7】本発明の第2実施形態に係るモータ制御装置におけるバックラッシ補正とバックラッシ加速のタイミングを示す図である。
図8】本発明の第3実施形態に係るモータ制御装置におけるバックラッシ補正とバックラッシ加速のタイミングを示す図である。
図9】本発明の第4実施形態に係るモータ制御装置におけるバックラッシ補正とバックラッシ加速のタイミングを示す図である。
図10】本発明の第5実施形態に係るモータ制御装置の構成を示す図である。
図11】本発明の第5実施形態に係るモータ制御装置における処理を示すフローチャートである。
図12】本発明の第5実施形態に係るモータ制御装置におけるバックラッシ補正とバックラッシ加速のタイミングを示す図である。
【発明を実施するための形態】
【0029】
以下、本発明の実施形態について図1−1〜図12を用いて説明する。
[発明の概要]
図1−1及び図1−2は本発明の概要についての説明図であり、具体的には、モータと被駆動軸(主軸)との間の減速機構がギア及びベルトから構成されているときの、モータの反転時の各軸の挙動について図示したものである。なお、図1−1及び図1−2に共通する説明をする場合に、「図1」ということがある。
【0030】
図1−1及び図1−2に示すように、可動部としてのモータ軸30には、モータ軸ギア35が固定されている。モータ軸30とは別に設けられる中間軸40には、中間軸ギア45が固定されている。また、モータ軸ギア35の歯351と中間軸ギア45の歯451とが噛み合うことにより、モータ軸30が時計回り方向に回転する場合には、中間軸40は反時計回り方向に回転し、一方、モータ軸30が反時計回り方向に回転する場合には、中間軸40は時計回り方向に回転する。更に、中間軸40における中間軸ギア45が設けられていない部分と、被駆動部としての主軸50との間には、弾性を有する無端状のベルト60が架け渡されている。
【0031】
これにより、中間軸40が時計回り方向に回転する場合には、それに伴って、主軸50は時計回り方向に回転し、一方、中間軸40が反時計回り方向に回転する場合には、それに伴って、主軸50は反時計回り方向に回転する。これにより、モータ軸30、中間軸40、及び主軸50の回転は連動する。具体的には、モータ軸30が時計回り方向に回転する場合には、主軸50は反時計回り方向に回転し、一方、モータ軸30が反時計回り方向に回転する場合には、主軸50は時計回り方向に回転する。つまり、モータ20により駆動されるモータ軸30と、モータ軸30により駆動される主軸50とは、ギア35,45とベルト60との組み合わせによって機械的に結合される。
【0032】
図1−1(A)は、モータ20の反転前のモータ軸ギア35及び中間軸ギア45の位置、及びベルト60に掛かる張力の様子を示す。ここでは仮に、モータ軸30が時計回りの方向に回転している場合を想定する。なお、本発明の実施形態はこれには限定されない。
【0033】
上記のように、モータ軸ギア35と中間軸ギア45とは噛み合っており、図1に示すモータ軸ギア35の歯351と、中間軸ギア45の歯451とは接触している。モータ軸30は時計回り方向に回転しているので、歯351は歯451を下方に押す状態となっている。それに伴って、中間軸ギア45、ひいては中間軸40は反時計回り方向に回転する。なお、モータ軸ギア35の複数の歯351に共通する説明をする際には、代表して「歯351」と表現することにする。
【0034】
次に、図1−1(B)は、モータ20が反時計回り方向に反転し始めた直後の、モータ軸ギア35及び中間軸ギア45の位置、及びベルト60に掛かる張力の様子を示す。
【0035】
モータ軸30の反時計回り方向への反転に伴って、モータ軸ギア35も反時計回り方向に回転するため、モータ軸ギア35の歯351は、中間軸ギア45の歯451を下方に押さなくなり、上方への移動を開始する。一方、中間軸40に掛け渡されるベルト60において、上記のように、図1において上側の非巻き付け部分の張力F1が下側の非巻き付け部分の張力F2よりも大きくなっていることに起因して、中間軸40は時計回り方向に回転し始める。これに伴って、主軸50も時計回り方向への回転を開始する。この際、中間軸ギア45の歯451は、モータ軸ギア35の歯351には押されない。また、中間軸ギア45の時計回り方向への回転に伴って、中間軸ギア45の歯451は、図1において上方に移動するため、モータ軸ギア35の歯351との接触を継続する。すなわち、この段階ではまだ、モータ軸ギア35の歯351と中間軸ギア45の歯451との間に隙間、すなわちバックラッシ(「バックラッシュ」とも呼ばれる)は発生していない。
【0036】
上記のように、ベルト60において上側の非巻き付け部分の張力F1が下側の非巻き付け部分の張力F2よりも大きいことに起因して、中間軸40及び主軸50は時計回り方向に回転する。そして、時計回り方向への回転を継続するに従って、2つの張力F1とF2との間の差は小さくなっていく。
【0037】
やがて、図1−1(C)に示すように、張力F1と張力F2とがほぼ等しくなった段階で、中間軸40、ひいては主軸50の回転は停止する。一方で、モータ軸30は、反時計回り方向への反転を継続するので、モータ軸ギア35の歯351と、中間軸ギア45の歯451との間に隙間、すなわちバックラッシが発生する。
【0038】
その後、図1−2(D)に示すように、中間軸40及び主軸50の回転が停止した状態のまま、すなわち、張力F1と張力F2とがほぼ等しい状態のまま、モータ軸30は反時計回り方向への回転を継続し、モータ軸ギア35の歯351は、モータ軸ギア35の歯351と中間軸ギア45の歯451との間のバックラッシを移動する。
【0039】
その後、図1−2(E)に示すように、モータ軸ギア35の歯のうち、上記の歯351の下側にある歯352は、上記のバックラッシ分を移動した後、中間軸の歯451に下側から接触する。これにより、中間軸40、ひいては主軸50は、再び時計回り方向への回転を始める。なお、図1−2(E)においては、図1−1(A)とは各軸の回転方向が反対となっている。
【0040】
具体的には、中間軸40と主軸50との間に存在するベルト60の2つの非巻き付け部分のうち、図1−2(E)において下側の非巻き付け部分が主軸50を時計回り方向に引っ張ることにより、主軸50は時計回りに回転する。すなわち、ベルト60の下側の非巻き付け部分が「張り側」となっており、上側の非巻き付け部分が「緩み側」となっている。ここで、ベルト60の上側の非巻き付け部分の張力をF1、ベルト60の下側の非巻き付け部分の張力をF2とした場合、F1<F2となっている。
【0041】
以上のことから、モータ20と主軸50との間の減速機構がギア35,45及びベルト60から構成されている場合には、言い換えると、モータ20により駆動されるモータ軸30と、モータ軸30により駆動される主軸50とが、ギア35,45とベルト60との組み合わせによって機械的に結合されている場合には、モータ20の反転直後には、すぐに主軸50が反転を開始するものの、しばらくすると一旦主軸50の回転が止まり、その後再び主軸50の反転動作が開始されるという動きになる。
【0042】
ここで、仮に、モータ20の反転直後に、モータ軸ギア35の歯351が上記のバックラッシ分を速く移動できるようにバックラッシ補正を行うと、ベルト60の張り側の張力に加えて、バックラッシ補正の力が加わり、中間軸40は急に反転してしまう。これに伴って、主軸50も急に反転してしまうため、主軸50の位置が位置指令によって指令された位置よりも先に進んでしまうこととなる。
【0043】
これを防ぐため、反転直後に補正を行うのではなく、一旦は中間軸ギア45に自発的に反転を行わせ、ベルト60の張り側の張力が緩んだところで、位置指令に対しバックラッシ補正を行う必要がある。
【0044】
それと共に、位置指令に対するバックラッシ補正量の加算を行った後、主軸50がベルト60に引っ張られることにより回転を開始するが、ベルト60の弾性変形、及び、主軸50が回転を始める際に発生する静摩擦力の影響で、主軸50の反転方向への回転が遅れてしまう。このような場合、ギア351がバックラッシ内を移動し終わり、ベルト60により主軸50が引っ張られ始めたタイミングで、速度指令またはトルク指令に対し、バックラッシ加速量を加算する必要がある。
【0045】
すなわち、指令反転後の位置誤差の変化量または変化率を測定し、その変化量が基準値を超えた場合、あるいは位置誤差の変化率が大きく変化した場合にバックラッシによる主軸の反転遅れが発生したとみなし、バックラッシ補正を適用する。同時に、反転検出後の位置誤差の変化量から、バックラッシ内の移動が終わるタイミングが分かるため、適切なタイミングでバックラッシ加速を適用する。あるいは、摩擦や弾性変形により反転遅れが生じているときの位置誤差の変化率は、バックラッシによる反転遅れが生じているときの位置誤差の変化率よりも緩やかな変化であるため、位置誤差の変化率を測定することにより、適切なタイミングでバックラッシ加速を適用する。
【0046】
上記のように、バックラッシ補正量の加算とバックラッシ加速量の加算を開始するタイミングを、位置誤差を監視することで判定し、バックラッシ補正量とバックラッシ加速量とそれぞれ適切なタイミングで加算するのが、本発明の基礎となる概念である。
【0047】
[第1実施形態]
図2は、第1実施形態に係るモータ制御装置10の構成を示す図である。
【0048】
モータ制御装置10は、主として、モータ20により駆動される可動部としてのモータ軸30の位置(「第1位置」または「モータ位置」ともいう)を検出する、エンコーダ等の第1位置検出部101と、上記の可動部(モータ軸30)により駆動される被駆動部である主軸50の位置(「第2位置」または「主軸位置」ともいう)を検出する第2位置検出部103と、上記の第1位置と第2位置との偏差(「位置誤差」ともいう)を計算する位置誤差計算部104と、を備える。なお、例えば、上記の「第1位置」または「モータ位置」はセミクローズドループを用いて取得された位置であり、「第2位置」または「主軸位置」はフルクローズドループを用いて取得された位置である。
【0049】
更に、モータ制御装置10は、位置指令作成部105と、反転検出部106と、位置誤差変化量計算部107と、判定部108と、バックラッシ補正部109と第1の加算器110と、制御部111と、バックラッシ加速部112と、第2の加算器113とを備える。位置指令作成部105は、上記のモータ20への位置指令を作成する。反転検出部106は、上記の位置指令の反転を検出する。位置誤差変化量計算部107は、反転が検出されてからの上記の位置誤差の変化量を計算する。判定部108は、上記の位置誤差の変化量が、第1の基準値または第2の基準値を超えたかどうかを判定する。バックラッシ補正部109は、上記の位置誤差の変化量が第1の基準値を超えた場合には、バックラッシ補正量を算出し、第1の加算器110を用いて、当該バックラッシ補正量を上記の位置指令に加算する。制御部111は、上記のバックラッシ補正を加算した後の位置指令に、速度指令またはトルク指令を付加する。バックラッシ加速部112は、上記の位置誤差の変化量が第2の基準値を超えた場合には、バックラッシ加速量を算出し、第2の加算器113を用いて、当該バックラッシ加速量を上記の速度指令またはトルク指令に加算する。
上記のバックラッシ補正量が加算された位置指令、及びバックラッシ加速量が加算された速度指令またはトルク指令は、第2の加算器113からモータ20に送信される。
【0050】
なお、上記の位置誤差計算部104は、上記の第1位置と第2位置の偏差を位置誤差として計算する。具体的には、上記の第1位置検出値に、変換係数102を乗算することにより、被駆動部の位置(主軸位置)の値に換算した換算後第1位置検出値を算出し、当該換算後第1位置検出値と、第2位置検出値との間の偏差を位置誤差として計算する。この変換係数102としては、例えば、可動部(モータ軸30)と被駆動部(主軸50)の間との回転比を用いることが可能である。
【0051】
また、上記のバックラッシ補正量及びバックラッシ加速量は、上記の第1位置及び第2位置のいずれかまたは双方、例えば、第1位置及び第2位置の相対的な位置関係や上記の位置誤差を用いて、周知の方法により算出することが可能である。一例として、特許文献1や特許文献2に記載の方法を用いて算出してもよい。
【0052】
次に、図3を用いて、一部繰り返しとなるが、上記のモータ制御装置10の動作フローについて説明する。
【0053】
まず、反転検出部106は、位置指令作成部105によって作成された位置指令の反転を監視する(S101)。反転が検出された場合(S101:YES)は、位置誤差変化量計算部107は、位置誤差の変化量を0に初期化する(S102)。そして、位置誤差変化量計算部107は、位置誤差の変化量の絶対値を計算する(S103)。一方、位置指令の反転が検出されない場合(S101:NO)には、改めてS102の初期化のステップを経ることなく、位置誤差変化量計算部107は、位置誤差の変化量の絶対値を計算する。
【0054】
次に、判定部108は、上記の位置誤差の変化量の絶対値を第1の基準値と比較する(S104)。当該絶対値が第1の基準値を超えた場合(S104:YES)には、バックラッシ補正部109はバックラッシ補正量を位置指令に加算する。すなわち、バックラッシ補正をONとする(S105)。上記の絶対値が第1の基準値を超えていない場合(S104:NO)には、バックラッシ補正部109はバックラッシ補正量を位置指令に加算しない。すなわち、バックラッシ補正をOFFとする(S106)。
【0055】
次に、判定部108は、上記の位置誤差の変化量の絶対値を第2の基準値と比較する(S107)。当該絶対値が第2の基準値を超えた場合(S107:YES)には、バックラッシ加速部112はバックラッシ加速量を速度指令またはトルク指令に加算する。すなわち、バックラッシ加速をONとする(S108)。上記の絶対値が第2の基準値を超えていない場合(S107:NO)には、バックラッシ加速部112はバックラッシ加速量を速度指令またはトルク指令に加算しない。すなわち、バックラッシ加速をOFFとする(S109)。
【0056】
図4は、判定部108が、位置誤差の変化量の絶対値を所定の基準値と比較する際の、位置誤差の変化量の絶対値の継時的な変化と、バックラッシ補正及びバックラッシ加速のタイミングとを示す図である。S101において反転を検出した場合、上記のように位置誤差の絶対値は0に初期化されるので、図4に示されるように、位置誤差の絶対値のグラフは時間軸に対して垂直下方の軌跡を描き、点Aに至る。その後、位置誤差の絶対値は増加していくが、第1の基準値を超えた段階、すなわち図4の点Bに対応するS105において、位置指令にバックラッシ補正量を加算する。その後、位置誤差の絶対値は更に増加していくが、第2の基準値を超えた段階、すなわち図4の点Cに対応するS108において、速度指令またはトルク指令にバックラッシ加速量を加算する。
【0057】
第1実施形態に係るモータ制御装置により、モータ20への位置指令に対してバックラッシ補正量を適切なタイミングで加算すること、及び、モータ20への速度指令またはトルク指令に対してバックラッシ加速量を適切なタイミングで加算することが可能となる。
【0058】
[第2実施形態]
図5は、第2実施形態に係るモータ制御装置10Aの構成を示す図である。なお、第1実施形態に係るモータ制御装置10と同一の構成要素については、同一の符号を用い、その具体的な説明は省略する。
【0059】
第2実施形態に係るモータ制御装置10Aは、第1実施形態に係るモータ制御装置10における位置誤差変化量計算部107に加えて、位置誤差変化率計算部207を備える点で異なる。また、第1実施形態に係るモータ制御装置10においては、判定部に関しては、判定部108のみが存在し、一つの判定部108が、位置誤差変化量計算部107と、バックラッシ補正部109及びバックラッシ加速部112とを媒介していた。一方で、第2実施形態に係るモータ制御装置10Aにおいて、位置誤差変化率計算部207とバックラッシ補正部109とを媒介する第1判定部208Aと、位置誤差変化量計算部107とバックラッシ加速部112とを媒介する第2判定部208Bとが存在する。更に、第1実施形態に係るモータ制御装置10は、位置誤差の変化量が所定の基準値を超えた場合に、バックラッシ補正をONとしていたが、第2実施形態に係るモータ制御装置10Aは、位置誤差の変化率が所定の基準値を超えた場合に、バックラッシ補正をONとする。
【0060】
次に、図6を用いて、一部繰り返しとなるが、上記のモータ制御装置10Aの動作フローについて説明する。
【0061】
まず、反転検出部106は、位置指令作成部105によって作成された位置指令の反転を監視する(S201)。反転が検出された場合(S201:YES)には、位置誤差変化量計算部107は、位置誤差の変化量を0に初期化する(S202)。また、位置誤差変化率計算部207は、位置誤差の単位時間当たりの変化率の監視を開始する(S203)。その後、位置誤差変化量計算部107は、位置誤差の変化量の絶対値を計算する(S204)。位置誤差変化率計算部207は、位置誤差の単位時間当たりの変化率の絶対値を計算する(S205)。一方、位置指令の反転が検出されない場合(S201:NO)には、改めてS202の初期化のステップ及びS203の監視開始のステップを経ることなく、位置誤差変化量計算部107は、位置誤差の変化量の絶対値を計算し、位置誤差変化率計算部207は、位置誤差の単位時間当たり変化率の絶対値を計算する。
【0062】
次に、第1判定部208Aは、上記の位置誤差の単位時間当たりの変化率の絶対値を第1の基準値と比較する(S206)。当該絶対値が第1の基準値を超えた場合(S206:YES)には、バックラッシ補正部109はバックラッシ補正量を位置指令に加算する。すなわち、バックラッシ補正をONとする(S207)。上記の絶対値が基準値を超えていない場合(S206:NO)には、バックラッシ補正部109はバックラッシ補正量を位置指令に加算しない。すなわち、バックラッシ補正をOFFとする(S208)。
【0063】
次に、第2判定部208Bは、上記の位置誤差の変化量の絶対値を第2の基準値と比較する(S209)。当該絶対値が第2の基準値を超えた場合(S209:YES)には、バックラッシ加速部112はバックラッシ加速量を速度指令またはトルク指令に加算する。すなわち、バックラッシ加速をONとする(S210)。上記の絶対値が基準値を超えていない場合(S209:NO)には、バックラッシ加速部112はバックラッシ加速量を位置指令に加算しない。すなわち、バックラッシ加速をOFFとする(S211)。
【0064】
図7(A)は、第1判定部208Aが、位置誤差の単位時間当たりの変化率の絶対値を第1の基準値と比較する際の、位置誤差の単位時間当たりの変化率の絶対値の継時的な変化と、バックラッシ補正のタイミングを示す図である。S201に対応する点Dにおいて反転を検出した後、変化率の絶対値は増加していくが、基準値を超えた段階、すなわち図7(A)の点Eに対応するS207において、バックラッシ補正部109は位置指令にバックラッシ補正量を加算する。
【0065】
図7(B)は、第2判定部208Bが、位置誤差の変化量の絶対値を第2の基準値と比較する際の、位置誤差の変化量の絶対値の継時的な変化と、バックラッシ加速のタイミングを示す図である。S207に対応する点Eにおいてバックラッシ補正を開始した後、変化量の絶対値は増加していくが、第2の基準値を超えた段階、すなわち図7(B)の点Fに対応するS210において、バックラッシ加速部112は速度指令またはトルク指令にバックラッシ加速量を加算する。
【0066】
第2実施形態に係るモータ制御装置においても、第1実施形態に係るモータ制御装置と同様に、モータ20への位置指令に対してバックラッシ補正量を適切なタイミングで加算すること、及び、モータ20への速度指令またはトルク指令に対してバックラッシ加速量を適切なタイミングで加算することが可能となる。
【0067】
[第3実施形態]
図8(A)は、第3実施形態に係るモータ制御装置において、第1判定部208Aが、位置誤差の変化率の絶対値を基準値と比較する際の、当該位置誤差の変化率の絶対値の変化と、バックラッシ補正のタイミングを示す図である。また、図8(B)は、第2判定部208Bが、位置誤差の変化量の絶対値を第2の基準値と比較する際の、位置誤差の変化量の絶対値の継時的な変化と、バックラッシ加速のタイミングを示す図である。なお、第3実施形態に係るモータ制御装置は、第2実施形態に係るモータ制御装置10Aと同一の構成であるため、その説明を省略する。また、第3実施形態に係るモータ制御装置の動作フローも、基本的には第2実施形態に係るモータ制御装置10Aと同一であるため、説明を省略する。
【0068】
第2実施形態においては、単位時間当たりの位置誤差の変化率の絶対値を所定の基準値と比較していたが、第3実施形態においては、モータの回転角の単位変化量当たりの位置誤差の変化率の絶対値を、第1の基準値と比較する。そのため、図8(A)の横軸は、モータ回転角になっている。
【0069】
図8(A)においても図7(A)と同様に、S201に対応する点Gにおいて反転を検出した後、変化率の絶対値は増加していくが、第1の基準値を超えた段階、すなわち図8の点Hに対応するS207において、バックラッシ補正部109は位置指令にバックラッシ補正量を加算する。
【0070】
第3実施形態に係るモータ制御装置においても、第1及び第2実施形態に係るモータ制御装置と同様に、モータ20への位置指令に対してバックラッシ補正量を適切なタイミングで加算すること、及び、モータ20への速度指令またはトルク指令に対してバックラッシ加速量を適切なタイミングで加算することが可能となる。
【0071】
[第4実施形態]
図9(A)は、第4実施形態に係るモータ制御装置において、第1判定部208Aが、位置誤差の変化率の絶対値を基準値と比較する際の、当該位置誤差の変化率の絶対値の変化と、バックラッシ補正のタイミングを示す図である。また、図9(B)は、第2判定部208Bが、位置誤差の変化量の絶対値を第2の基準値と比較する際の、位置誤差の変化量の絶対値の継時的な変化と、バックラッシ加速のタイミングを示す図である。なお、第4実施形態に係るモータ制御装置は、第2実施形態に係るモータ制御装置10A及び第3実施形態に係るモータ制御装置と同一の構成であるため、その説明を省略する。また、第4実施形態に係るモータ制御装置の動作フローも、基本的には第2実施形態に係るモータ制御装置10A及び第3実施形態に係るモータ制御装置と同一であるため、説明を省略する。
【0072】
第2実施形態においては、単位時間当たりの位置誤差の変化率の絶対値を所定の基準値と比較していた。また、第3実施形態においては、モータの回転角の単位変化量当たりの位置誤差の変化率の絶対値を、所定の基準値と比較していた。一方で、第4実施形態においては、位置指令の積算値の単位変化量当たりの位置誤差の変化率の絶対値を、所定の基準値と比較する。そのため、図9(A)の横軸は、位置指令積算値になっている。
【0073】
図9においても図7及び図8と同様に、S201に対応する点Jにおいて反転を検出した後、変化率の絶対値は増加していくが、第1の基準値を超えた段階、すなわち図9の点Kに対応するS207において、バックラッシ補正部109は位置指令にバックラッシ補正量を加算する。
【0074】
第4実施形態に係るモータ制御装置においても、第1〜第3実施形態に係るモータ制御装置10、10Aと同様に、モータ20への位置指令に対してバックラッシ補正量を適切なタイミングで加算すること、及び、モータ20への速度指令またはトルク指令に対してバックラッシ加速量を適切なタイミングで加算することが可能となる。
【0075】
[第5実施形態]
図10は、第5実施形態に係るモータ制御装置10Bの構成を示す図である。なお、第1実施形態に係るモータ制御装置10と同一の構成要素については、同一の符号を用い、その具体的な説明は省略する。
【0076】
第5実施形態に係るモータ制御装置10Bは、第1実施形態に係るモータ制御装置10における位置誤差変化量計算部107に代えて、位置誤差変化率計算部207を備える点で異なる。また、第1実施形態に係るモータ制御装置10においては、判定部108は、位置誤差変化量計算部107と、バックラッシ補正部109及びバックラッシ加速部112とを媒介していた。一方で、第5実施形態に係るモータ制御装置10Bにおいては、判定部208Cは位置誤差変化率計算部207とバックラッシ補正部109及びバックラッシ加速部112とを媒介する。更に、第1実施形態に係るモータ制御装置10は、位置誤差の変化量が第1の基準値を超えた場合に、バックラッシ補正をONとし、第2の基準値を超えた場合に、バックラッシ加速をONとしていた。一方、第5実施形態に係るモータ制御装置10Bは、位置誤差の変化率が第1の基準値を超えた場合に、バックラッシ補正をONとし、第2の基準値を超え第3の基準値に満たない際に、バックラッシ加速をONとする。
【0077】
次に、図11を用いて、一部繰り返しとなるが、上記のモータ制御装置10Bの動作フローについて説明する。
【0078】
まず、反転検出部106は、位置指令作成部105によって作成された位置指令の反転を監視する(S301)。反転が検出された場合(S301:YES)は、位置誤差変化率計算部207は、位置誤差の単位時間当たりの変化率の監視を開始する(S302)。そして、位置誤差変化率計算部207は、位置誤差の単位時間当たりの変化率の絶対値を計算する(S303)。一方、位置指令の反転が検出されない場合(S301:NO)には、改めてS302の監視開始のステップを経ることなく、位置誤差変化率計算部207は、位置誤差の変化率の絶対値を計算する。
【0079】
次に、判定部208Cは、上記の位置誤差の変化量の絶対値を第1の基準値と比較する(S304)。当該絶対値が第1の基準値を超えた場合(S304:YES)には、バックラッシ補正部109はバックラッシ補正量を位置指令に加算する。すなわち、バックラッシ補正をONとする(S305)。上記の絶対値が第1の基準値を超えていない場合(S304:NO)には、バックラッシ補正部109はバックラッシ補正量を位置指令に加算しない。すなわち、バックラッシ補正をOFFとする(S306)。
【0080】
次に、判定部208Cは、上記の位置誤差の変化率の絶対値を第2の基準値及び第3の基準値と比較する(S307)。当該絶対値が第2の基準値を超え、第3の基準値に満たない場合(S307:YES)には、バックラッシ加速部112はバックラッシ加速量を速度指令またはトルク指令に加算する。すなわち、バックラッシ加速をONとする(S308)。上記の絶対値が第2の基準値を超えていない場合、及び第3の基準値を超えている場合(S307:NO)には、バックラッシ加速部112はバックラッシ加速量を速度指令またはトルク指令に加算しない。すなわち、バックラッシ加速をOFFとする(S309)。
【0081】
図12は、判定部208Cが、位置誤差の変化率の絶対値を所定の基準値と比較する際の、位置誤差の変化率の絶対値の継時的な変化と、バックラッシ補正及びバックラッシ加速のタイミングとを示す図である。
S301に対応する点Mにおいて反転を検出した後、位置誤差の変化率の絶対値は増加していくが、第2の基準値を超えた段階、すなわち図12の点Nに対応するS308において、バックラッシ加速部112は速度指令またはトルク指令にバックラッシ加速量を加算する。その後、位置誤差の変化率の絶対値が第3の基準値と等しくなった段階、すなわち図12の点Oに対応するS309において、バックラッシ加速部112は速度指令またはトルク指令へのバックラッシ加速量の加算を終了する。
その後も、位置誤差の変化率の絶対値は増加していくが、第1の基準値を超えた段階、すなわち図12の点Pに対応するS305において、バックラッシ補正部109が位置指令へのバックラッシ補正量の加算を開始する。
その後、位置誤差の変化率の絶対値は減少に転じるが、第3の基準値を下回った段階、すなわち図12の点Qに対応するS308において、再びバックラッシ加速部112は速度指令またはトルク指令へのバックラッシ加速量の加算を開始する。その後、位置誤差の変化率の絶対値が、第2の基準値と等しくなった段階、すなわち図12の点Rに対応するS309において、バックラッシ加速部112は速度指令またはトルク指令へのバックラッシ加速量の加算を終了する。
【0082】
第5実施形態に係るモータ制御装置においても、第1〜第4実施形態に係るモータ制御装置と同様に、モータ20への位置指令に対してバックラッシ補正量を適切なタイミングで加算すること、及び、モータ20への速度指令またはトルク指令に対してバックラッシ加速量を適切なタイミングで加算することが可能となる。
【0083】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
【0084】
モータ制御装置10、10A、10Bによる制御方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、コンピュータ(モータ制御装置10、10A、10B)にインストールされる。また、これらのプログラムは、リムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。更に、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータ(モータ制御装置10、10A、10B)に提供されてもよい。
【符号の説明】
【0085】
10、10A、10B モータ制御装置
20 モータ
30 モータ軸(可動部)
35 モータ軸ギア
40 中間軸
45 中間軸ギア
50 主軸(被駆動部)
60 ベルト
101 第1位置検出部
102 変換係数
103 第2位置検出部
104 位置誤差計算部
105 位置指令作成部
106 反転検出部
107 位置誤差変化量計算部
108 判定部
109 バックラッシ補正部
110 加算器
111 制御部
112 バックラッシ加速部
113 加算器
207 位置誤差変化率計算部
208A 第1判定部
208B 第2判定部
208C 判定部
351 歯
352 歯
451 歯
図1-1】
図1-2】
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12