IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ブラザー工業株式会社の特許一覧

特許7298119外乱オブザーバ、制御装置、工作機械及び外乱推定方法
<>
  • 特許-外乱オブザーバ、制御装置、工作機械及び外乱推定方法 図1
  • 特許-外乱オブザーバ、制御装置、工作機械及び外乱推定方法 図2
  • 特許-外乱オブザーバ、制御装置、工作機械及び外乱推定方法 図3
  • 特許-外乱オブザーバ、制御装置、工作機械及び外乱推定方法 図4
  • 特許-外乱オブザーバ、制御装置、工作機械及び外乱推定方法 図5
  • 特許-外乱オブザーバ、制御装置、工作機械及び外乱推定方法 図6
  • 特許-外乱オブザーバ、制御装置、工作機械及び外乱推定方法 図7
  • 特許-外乱オブザーバ、制御装置、工作機械及び外乱推定方法 図8
  • 特許-外乱オブザーバ、制御装置、工作機械及び外乱推定方法 図9
  • 特許-外乱オブザーバ、制御装置、工作機械及び外乱推定方法 図10
  • 特許-外乱オブザーバ、制御装置、工作機械及び外乱推定方法 図11
  • 特許-外乱オブザーバ、制御装置、工作機械及び外乱推定方法 図12
  • 特許-外乱オブザーバ、制御装置、工作機械及び外乱推定方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-19
(45)【発行日】2023-06-27
(54)【発明の名称】外乱オブザーバ、制御装置、工作機械及び外乱推定方法
(51)【国際特許分類】
   G05B 13/02 20060101AFI20230620BHJP
   G05B 19/19 20060101ALI20230620BHJP
【FI】
G05B13/02 C
G05B19/19 K
【請求項の数】 7
(21)【出願番号】P 2018163803
(22)【出願日】2018-08-31
(65)【公開番号】P2020035394
(43)【公開日】2020-03-05
【審査請求日】2021-02-16
【前置審査】
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】寺田 弦
【審査官】今井 貞雄
(56)【参考文献】
【文献】国際公開第2017/213182(WO,A1)
【文献】特開2013-085330(JP,A)
【文献】特開平07-014325(JP,A)
【文献】特開2003-170854(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 13/02
G05B 19/19
(57)【特許請求の範囲】
【請求項1】
指令に基づいてモータをフィードバック制御するサーボ回路にフィードバックされる前記モータの位置情報及び電流情報を取得して前記モータに作用する外乱を推定する外乱オブザーバであって、
前記モータの温度情報を取得し、取得した温度情報が示す温度に基づいて前記モータのトルク定数を算出する定数算出部と、
該定数算出部が算出したトルク定数を、取得した電流情報が示す電流に乗じて前記モータのトルクを算出するトルク算出部と、
取得した位置情報が示す位置及び前記モータが駆動する負荷機械に係る定数に基づいて前記モータのトルクを推定するトルク推定部と
を備え、
前記トルク算出部が算出したトルクから前記トルク推定部が推定したトルクを減じて前記外乱を推定するようにしてあり、
前記定数算出部は、前記モータの温度及びトルクの関係に基づくn次(nは1以上の整数)の多項式を用いてトルク定数を近似し、
前記多項式は、前記モータの温度及び、力行又は回生の状態を変えて複数定められており、
前記定数算出部は、前記モータが力行の状態にあるか又は回生の状態にあるかを検知し、検知した状態に対応する多項式を用い、
前記多項式は、下記の3つの式のいずれか1つである
ことを特徴とする外乱オブザーバ。
Kt=a-bT
Kt=a-b(T-c)2
Kt=a0+a1T+a2T2 +・・・+anTn
但し、
Kt:トルク定数
T:前記温度情報が示す温度
a、b、c、a0、a1、a2、・・・an:一定の定数又は係数
【請求項2】
前記モータの電流及び回転速度と、前記モータのトルク定数との対応関係を記憶するテーブルを更に備え、
前記定数算出部は、取得した電流情報が示す電流及び取得した位置情報が示す位置を1回微分した回転速度に対応して前記テーブルに記憶してある内容と、前記多項式に基づいてトルク定数を算出する
ことを特徴とする請求項1に記載の外乱オブザーバ。
【請求項3】
前記指令は、位置指令及び/又は速度指令であり、
前記サーボ回路は、前記モータに流れる電流を制御する
ことを特徴とする請求項1又は請求項2に記載の外乱オブザーバ。
【請求項4】
前記トルク推定部は、取得した位置情報が示す位置を1回微分した回転速度及び前記負荷機械に係る粘性抵抗の積と、前記回転速度を更に1回微分した加速度及び前記負荷機械に係る慣性モーメントの積と、前記負荷機械の移動方向に応じたクーロン摩擦力との和に基づいてトルクを推定することを特徴とする請求項1から請求項3の何れか1項に記載の外乱オブザーバ。
【請求項5】
請求項1から請求項4の何れか1項に記載の外乱オブザーバと、前記指令を発令する制御部とを含むことを特徴とする制御装置。
【請求項6】
請求項5に記載の制御装置と、前記サーボ回路と、前記モータと、前記負荷機械とを含む工作機械であって、
前記モータの位置を検出し、検出した位置を示す位置情報を前記サーボ回路にフィードバックする位置検出部と、
前記モータの電流を検出し、検出した電流を示す電流情報を前記サーボ回路にフィードバックする電流検出部と、
前記モータの温度を検出し、検出した温度を示す温度情報を生成する温度検出部と
を備え、
前記外乱オブザーバは、前記温度検出部から温度情報を取得するようにしてある
ことを特徴とする工作機械。
【請求項7】
指令に基づいてモータをフィードバック制御するサーボ回路にフィードバックされる前記モータの位置情報及び電流情報を取得して前記モータに作用する外乱を推定する方法であって、
前記モータの温度情報を取得し、取得した温度情報が示す温度に基づいて前記モータのトルク定数を算出するステップと、
算出したトルク定数を、取得した電流情報が示す電流に乗じて前記モータのトルクを算出するステップと、
取得した位置情報が示す位置及び前記モータが駆動する負荷機械に係る定数に基づいて前記モータのトルクを推定するステップと、
算出したトルクから推定したトルクを減じて前記外乱を推定するステップと
を含み、
前記トルク定数を算出するステップでは、前記モータの温度及びトルクの関係に基づくn次(nは1以上の整数)の多項式を用いてトルク定数を近似し、
前記多項式は、前記モータの温度及び、力行又は回生の状態を変えて複数定められており、
前記モータのトルク定数を算出するステップは、前記モータが力行の状態にあるか又は回生の状態にあるかを検知し、検知した状態に対応する多項式を用い、
前記多項式は、下記の3つの式のいずれか1つである
ことを特徴とする外乱推定方法。
Kt=a-bT
Kt=a-b(T-c)2
Kt=a0+a1T+a2T2 +・・・+anTn
但し、
Kt:トルク定数
T:前記温度情報が示す温度
a、b、c、a0、a1、a2、・・・an:一定の定数又は係数
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フィードバック制御系の外乱オブザーバ、制御装置、工作機械及び外乱推定方法に関する。
【背景技術】
【0002】
従来、システムに影響する外乱を制御対象の状態の一部として推定する外乱オブザーバを利用している。モータのフィードバック制御装置に用いる外乱オブザーバでは、モータに流れる電流値からモータの出力トルクを算出するのに用いるトルク定数を、温度に依存しない一定の値として扱うことがある。
【0003】
例えば、特許文献1は、サーボ回路の速度ループに組み込んだ外乱オブザーバによって推定する外乱トルクの大きさが設定値以上になったときに、被駆動体の衝突を検出してモータを停止する技術を開示している。
【先行技術文献】
【特許文献】
【0004】
【文献】特開平03-196313号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1が開示する技術によれば、実際には温度によって変化するトルク定数Ktを一定値としているため、モータの温度が上昇した場合、推定した外乱トルクの誤差が増大する。このため、モータの温度によっては、実際よりも高い駆動負荷でモータが被駆動体を駆動していると誤検出したり、被駆動体が衝突していないにも関わらず、衝突を誤検出したりする虞があった。
【0006】
本発明は斯かる事情に鑑みてなされたものであり、その目的とするところは、推定する外乱の誤差を低減することが可能な外乱オブザーバ、制御装置、工作機械及び外乱推定方法を提供することにある。
【課題を解決するための手段】
【0007】
本発明に係る外乱オブザーバは、指令に基づいてモータをフィードバック制御するサーボ回路にフィードバックされる前記モータの位置情報及び電流情報を取得して前記モータに作用する外乱を推定する外乱オブザーバであって、前記モータの温度情報を取得し、取得した温度情報が示す温度に基づいて前記モータのトルク定数を算出する定数算出部と、該定数算出部が算出したトルク定数を、取得した電流情報が示す電流に乗じて前記モータのトルクを算出するトルク算出部と、取得した位置情報が示す位置及び前記モータが駆動する負荷機械に係る定数に基づいて前記モータのトルクを推定するトルク推定部とを備え、前記トルク算出部が算出したトルクから前記トルク推定部が推定したトルクを減じて前記外乱を推定するようにしてあり、前記定数算出部は、前記モータの温度及びトルクの関係に基づくn次(nは1以上の整数)の多項式を用いてトルク定数を近似することを特徴とする。
本発明に係る外乱オブザーバは、前記多項式は、下記の3つの式のいずれか1つであることを特徴とする。
Kt=a-bT
Kt=a-b(T-c) 2
Kt=a0+a1T+a2T 2 +・・・+anT n
但し、
Kt:トルク定数
T:前記温度情報が示す温度
a、b、c、a0、a1、a2、・・・an:一定の定数又は係数
本発明に係る外乱オブザーバは、前記モータの電流及び回転速度と、前記モータのトルク定数との対応関係を記憶するテーブルを更に備え、前記定数算出部は、取得した電流情報が示す電流及び取得した位置情報が示す位置を1回微分した回転速度に対応して前記テーブルに記憶してある内容と、前記多項式に基づいてトルク定数を算出することを特徴とする。
本発明に係る外乱オブザーバは、指令に基づいてモータをフィードバック制御するサーボ回路にフィードバックされる前記モータの位置情報及び電流情報を取得して前記モータに作用する外乱を推定する外乱オブザーバであって、前記モータの温度情報を取得し、取得した温度情報が示す温度に基づいて前記モータのトルク定数を算出する定数算出部と、該定数算出部が算出したトルク定数を、取得した電流情報が示す電流に乗じて前記モータのトルクを算出するトルク算出部と、取得した位置情報が示す位置及び前記モータが駆動する負荷機械に係る定数に基づいて前記モータのトルクを推定するトルク推定部とを備え、前記トルク算出部が算出したトルクから前記トルク推定部が推定したトルクを減じて前記外乱を推定するようにしてあり、前記定数算出部は、前記温度情報が示す温度を含む区間で定義された区分多項式を用いてトルク定数を近似することを特徴とする。
本発明に係る外乱オブザーバは、前記モータの電流及び回転速度と、前記モータのトルク定数との対応関係を記憶するテーブルを更に備え、前記定数算出部は、取得した電流情報が示す電流及び取得した位置情報が示す位置を1回微分した回転速度に対応して前記テーブルに記憶してある内容と、前記区分多項式に基づいてトルク定数を算出することを特徴とする。
【0008】
本発明に係る外乱オブザーバは、前記指令は、位置指令及び/又は速度指令であり、前記サーボ回路は、前記モータに流れる電流を制御することを特徴とする。
【0009】
本発明に係る外乱オブザーバは、前記トルク推定部は、取得した位置情報が示す位置を1回微分した回転速度及び前記負荷機械に係る粘性抵抗の積と、前記回転速度を更に1回微分した加速度及び前記負荷機械に係る慣性モーメントの積と、前記負荷機械の移動方向に応じたクーロン摩擦力との和に基づいてトルクを推定することを特徴とする。
【0014】
本発明に係る制御装置は、上述の外乱オブザーバと、前記指令を発令する制御部とを含むことを特徴とする。
【0015】
本発明に係る工作機械は、上述の制御装置と、前記サーボ回路と、前記モータと、前記負荷機械とを含む工作機械であって、前記モータの位置を検出し、検出した位置を示す位置情報を前記サーボ回路にフィードバックする位置検出部と、前記モータの電流を検出し、検出した電流を示す電流情報を前記サーボ回路にフィードバックする電流検出部と、前記モータの温度を検出し、検出した温度を示す温度情報を生成する温度検出部とを備え、前記外乱オブザーバは、前記温度検出部から温度情報を取得するようにしてあることを特徴とする。
【0016】
本発明に係る外乱推定方法は、指令に基づいてモータをフィードバック制御するサーボ回路にフィードバックされる前記モータの位置情報及び電流情報を取得して前記モータに作用する外乱を推定する方法であって、前記モータの温度情報を取得し、取得した温度情報が示す温度に基づいて前記モータのトルク定数を算出するステップと、算出したトルク定数を、取得した電流情報が示す電流に乗じて前記モータのトルクを算出するステップと、取得した位置情報が示す位置及び前記モータが駆動する負荷機械に係る定数に基づいて前記モータのトルクを推定するステップと、算出したトルクから推定したトルクを減じて前記外乱を推定するステップとを含み、前記トルク定数を算出するステップでは、前記モータの温度及びトルクの関係に基づくn次(nは1以上の整数)の多項式を用いてトルク定数を近似することを特徴とする。
本発明に係る外乱推定方法は、指令に基づいてモータをフィードバック制御するサーボ回路にフィードバックされる前記モータの位置情報及び電流情報を取得して前記モータに作用する外乱を推定する方法であって、前記モータの温度情報を取得し、取得した温度情報が示す温度に基づいて前記モータのトルク定数を算出するステップと、算出したトルク定数を、取得した電流情報が示す電流に乗じて前記モータのトルクを算出するステップと、取得した位置情報が示す位置及び前記モータが駆動する負荷機械に係る定数に基づいて前記モータのトルクを推定するステップと、算出したトルクから推定したトルクを減じて前記外乱を推定するステップとを含み、前記トルク定数を算出するステップでは、前記温度情報が示す温度を含む区間で定義された区分多項式を用いてトルク定数を近似することを特徴とする。
【0017】
本発明においては、モータの温度に基づいてモータのトルク定数を算出し、算出したトルク定数をモータの電流に乗じてモータのトルクを算出し、モータの位置及びモータが駆動する負荷機械に係る定数に基づいてモータのトルクを推定し、算出したモータのトルクから推定したモータのトルクを減じてモータに作用する外乱を推定する。これにより、モータの温度に応じてトルク定数を補正するため、外乱に抗するトルクを含めた実際のモータのトルクが精度よく算出でき、外乱の算出精度が向上する。また、モータの温度及びトルクの関係を予め実測してn次の多項式を立て、この式に検出したモータの温度を適用してトルク定数を近似する。これにより、実測結果が示す曲線の曲率、変曲点及び実測点数を考慮して、全区間又は個々の区間に適用する多項式を定めることができ、多項式の次数に応じてトルク定数の近似精度が向上する。
本発明においては、多項式は上述した3つの式のいずれか1つである。
本発明においては、上述の多項式を予め定めておく他に、モータの電流及び回転速度と、モータのトルク定数との対応関係を予め実測してテーブルに記憶しておく。実行時にトルク定数を算出する場合は、モータの電流及びモータの回転速度に対応してテーブルに記憶してある内容に基づいて算出したトルク定数を上述の多項式に基づいて補正するか、又は上述の多項式に検出した温度を適用して算出したトルク定数をテーブルの記憶内容に基づいて補正する。これにより、トルク定数の算出精度がより高くなると共に、算出負荷が低減できる。
本発明においては、モータの温度に基づいてモータのトルク定数を算出し、算出したトルク定数をモータの電流に乗じてモータのトルクを算出し、モータの位置及びモータが駆動する負荷機械に係る定数に基づいてモータのトルクを推定し、算出したモータのトルクから推定したモータのトルクを減じてモータに作用する外乱を推定する。これにより、モータの温度に応じてトルク定数を補正するため、外乱に抗するトルクを含めた実際のモータのトルクが精度よく算出でき、外乱の算出精度が向上する。また、モータの温度及びトルクの関係を予め実測して区分多項式を立て、この式に検出したモータの温度を適用してトルク定数を近似する。これにより、実測結果が示す曲線の曲率、変曲点及び実測点数を考慮して、全区間又は個々の区間に適用する多項式を定めることができ、区分多項式の区間数に応じてトルク定数の近似精度が向上する。
本発明においては、上述の区分多項式を予め定めておく他に、モータの電流及び回転速度と、モータのトルク定数との対応関係を予め実測してテーブルに記憶しておく。実行時にトルク定数を算出する場合は、モータの電流及びモータの回転速度に対応してテーブルに記憶してある内容に基づいて算出したトルク定数を上述の区分多項式に基づいて補正するか、又は上述の区分多項式に検出した温度を適用して算出したトルク定数をテーブルの記憶内容に基づいて補正する。これにより、トルク定数の算出精度がより高くなると共に、算出負荷が低減できる。
【0018】
本発明においては、発令された位置指令及び速度指令の何れか又は両方に応じてモータに流れる電流を制御する。これにより、モータのトルクを生み出すモータの電流を指令内容に応じてフィードバック制御するため、モータの位置及び/又は速度が、指令された目標に収束する。
【0019】
本発明においては、モータの位置を1回微分した回転速度に負荷機械に係る粘性抵抗を乗じて算出した粘性トルクと、回転速度を更に1回微分した加速度に負荷機械に係る慣性モーメントを乗じて算出した慣性トルクと、負荷機械の移動方向に応じて符号がプラス/マイナスに変化するクーロン摩擦力とを加算してトルクを推定する。これにより、モータを含めた負荷機械の慣性モーメント、粘性抵抗及びクーロン摩擦を組み合わせてモータのトルクを推定するため、外乱を除いたモータのトルクが精度良く推定できる。
【0024】
本発明においては、外乱を高精度に推定する外乱オブザーバを、負荷機械を制御する制御装置に適用することができる。
【0025】
本発明においては、制御装置の制御部がサーボ回路に指令を発令し、指令を受けたサーボ回路が負荷機械を駆動するモータをフィードバック制御する。制御装置の外乱オブザーバは、位置検出部及び電流検出部夫々からサーボ回路にフィードバックされるモータの位置情報及び電流情報と、温度検出部からの温度情報とを取得して外乱を推定する。これにより、負荷機械を介してモータに作用する外乱が高精度に推定できる。
【発明の効果】
【0026】
本発明によれば、推定する外乱の誤差を低減することが可能となる。
【図面の簡単な説明】
【0027】
図1】実施の形態1の工作機械を示す斜視図である。
図2】制御装置を示すブロック図である。
図3】制御装置及びX軸モータの内外で授受される情報を示すブロック図である。
図4】サーボ回路の機能構成を示すブロック図である。
図5】外乱オブザーバの機能構成を示すブロック図である。
図6】実施の形態1の外乱オブザーバで外乱力を推定するCPUの処理手順を示すフローチャートである。
図7】モータについて回転方向を検出し、回転速度及び加速度を算出するCPUの処理手順を示すフローチャートである。
図8】モータの電流、温度及び回転速度と、トルク定数との対応関係を記憶するテーブルの内容を示す図表である。
図9】実施の形態2の外乱オブザーバで外乱力を推定するCPUの処理手順を示すフローチャートである。
図10】モータの電流及び回転速度と、トルク定数との対応関係を記憶するテーブルの内容を示す図表である。
図11】実施の形態3の外乱オブザーバでトルク定数を算出するCPUの処理手順を示すフローチャートである。
図12】モータの温度モデルを模式的に示す説明図である。
図13】モータにおける各部の温度変化のシミュレーション結果を示すグラフである。
【発明を実施するための形態】
【0028】
以下、本発明をその実施形態を示す図面に基づいて詳述する。
(実施の形態1)
図1は、実施の形態1の工作機械100を示す斜視図である。以下の説明では図中矢印で示す上下、左右、前後を使用する。図1に示す如く、工作機械100は、前後に延びた矩形の基台1を備える。ワーク保持部3は、基台1上部の前側に設ける。ワーク保持部3は、左右に延びたA軸と上下に延びたC軸回りに回転可能である。支持台2は、基台1上部の後側に設けてあり、立柱4を支持する。
【0029】
Y軸方向移動機構10(負荷機械に相当)は、支持台2上部に設けてあり、移動板16を前後方向に移動する。Y軸方向移動機構10は、前後に延びた二つの軌道11、Y軸螺子軸12、Y軸モータ13及び軸受14を備える。軌道11は、支持台2上部の左と右に設ける。Y軸螺子軸12は前後に延びており、二つの軌道11の間に設ける。軸受14は、Y軸螺子軸12の前端部と中途部(図示略)に設ける。Y軸モータ13は、Y軸螺子軸12後端部に連結する。ナット(図示略)は、Y軸螺子軸12に転動体(図示略)を介して螺合する。転動体は例えばボールである。複数の摺動子15は、各軌道11に摺動可能に設ける。移動板16は、水平方向に延びており、ナットと摺動子15上部に連結する。Y軸螺子軸12はY軸モータ13の回転で回転し、ナットは前後方向に移動し、移動板16は前後方向に移動する。
【0030】
X軸方向移動機構20(負荷機械に相当)は、移動板16上面に設けてあり、立柱4を左右方向に移動する。X軸方向移動機構20は、左右に延びた二つの軌道21、X軸螺子軸22、X軸モータ23(図2参照)及び軸受24を備える。軌道21は、移動板16上面の前と後に設ける。X軸螺子軸22は左右に延びており、二つの軌道21の間に設ける。軸受24は、X軸螺子軸22の左端部と中途部(図示略)に設ける。X軸モータ23は、X軸螺子軸22の右端部に連結する。ナット(図示略)は、X軸螺子軸22に転動体(図示略)を介して螺合する。複数の摺動子26は、各軌道21に摺動可能に設ける。立柱4は、ナットと摺動子26上部に連結する。X軸螺子軸22はX軸モータ23の回転で回転し、ナットは左右方向に移動し、立柱4は左右方向に移動する。
【0031】
Z軸方向移動機構30(負荷機械に相当)は、立柱4の前面に設けてあり、主軸ヘッド5を上下方向に移動する。Z軸方向移動機構30は、上下に延びた二つの軌道31、Z軸螺子軸32、Z軸モータ33及び軸受34を備える。軌道31は、立柱4前面の左と右に設ける。Z軸螺子軸32は上下に延びており、二つの軌道31の間に設ける。軸受34は、Z軸螺子軸32の下端部と中途部(図示略)に設ける。Z軸モータ33は、Z軸螺子軸32上端部に連結する。ナット(図示略)は、Z軸螺子軸32に転動体(図示略)を介して螺合する。複数の摺動子35は、各軌道31に摺動可能に設ける。主軸ヘッド5は、ナットと摺動子35の前部に連結する。Z軸螺子軸32はZ軸モータ33の回転で回転し、ナットは上下方向に移動し、主軸ヘッド5は上下方向に移動する。
【0032】
上下に延びた主軸51(負荷機械に相当)は主軸ヘッド5内に設ける。主軸51は軸回りに回転する。主軸モータ6は、主軸ヘッド5上端部に設ける。主軸51下端部は工具を装着する。主軸51は主軸モータ6の回転で回転し、工具は回転する。回転した工具は、ワーク保持部3で保持したワークを加工する。
【0033】
図2は制御装置60を示すブロック図である。工作機械100は、主軸モータ6、Y軸モータ13、X軸モータ23、Z軸モータ33、ワーク保持部3等の駆動を制御する制御装置60を備える。図2に示す如く、制御装置60は、CPU61、ROM62、RAM63、EEPROM等の不揮発性の記憶装置64、入力インタフェース65、入出力インタフェース66等を有する。記憶装置64は、ワークを加工する為の加工プログラムを格納する。加工プログラムは、複数の行(命令)を備える。CPU61は、行を順に読み込み、命令を実行して各部を駆動するための指令を発令する。
【0034】
工作機械100は、受付部67(設定部)、Z軸センサ68及び主軸センサ69を更に備える。受付部67は、例えばキーボード、タッチパネル、表示画面等を備え、使用者の操作を受け付ける。使用者は、受付部67を介して例えば特定の処理の実行を記憶装置64に設定する。Z軸センサ68は、主軸51の上下位置、換言すれば主軸51の軸方向位置を検出する。主軸センサ69は、主軸51の周方向の位置を検出する。制御装置60は、入力インタフェース65を介して受付部67から設定を入力し、Z軸センサ68から軸方向位置を入力し、主軸センサ69から回転速度を入力する。制御装置60は、入出力インタフェース66を介して主軸モータ6、X軸モータ23、Y軸モータ13及びZ軸モータ33に位置指令又は速度指令を発令する。制御装置60は、また、入出力インタフェース66を介して主軸モータ6、X軸モータ23、Y軸モータ13及びZ軸モータ33夫々の位置情報と電流情報を取得する。Z軸モータ33及び主軸モータ6夫々の位置情報は、後述する図3に示すエンコーダ23bに相当するものとしてZ軸センサ68及び主軸センサ69の代わりにZ軸モータ33及び主軸モータ6夫々に設けたエンコーダを用いて検出してもよい。
【0035】
CPU61が加工処理を実行する場合、CPU61は、主軸モータ6、X軸モータ23、Y軸モータ13及びZ軸モータ33に指令を発令して、主軸51の回転と、X軸方向移動機構20、Y軸方向移動機構10及びZ軸方向移動機構30の移動とを制御する。これにより、CPU61は、主軸51に装着した工具を用いてワークを加工する。
【0036】
次に、例としてX軸モータ23及び制御装置60の間の情報の流れについて説明する。Y軸モータ13及び制御装置60の間の情報の流れ、Z軸モータ33及び制御装置60の間の情報の流れ、並びに主軸モータ6及び制御装置60の間の情報の流れについても同様である。図3は、制御装置60及びX軸モータ23の内外で授受される情報を示すブロック図である。制御装置60が含む制御部600及び外乱オブザーバ610夫々は、図2に示すCPU61を有する制御装置60によって実現する機能ブロックの1つである。X軸モータ23は、X軸螺子軸22を駆動するモータ23aと、制御部600からの位置指令及び速度指令の何れか又は両方に基づいてモータ23aに流れる電流をフィードバック制御するサーボ回路230とを有する。モータ23aに流れる電流は電流検出部237が検出し、電流検出部237は検出した電流を示す電流情報をサーボ回路230にフィードバックする。
【0037】
モータ23aは、例えばロータにマグネットを有するACサーボモータである。モータ23aの回転位置はエンコーダ23b(位置検出部に相当)が検出し、エンコーダ23bは検出した回転位置を示す位置情報をパルス信号としてサーボ回路230にフィードバックする。モータ23aの温度は、温度検出部23cが検出し、検出した温度を示す温度情報を外乱オブザーバ610に与える。温度検出部23cは、ロータのマグネットの温度(以下、マグネット温度という)を検出することが好ましい。
【0038】
マグネット温度を直接的に検出することが困難である場合は、モータ23aの電流及びモータ23aの外気温を検出してマグネット温度を推定してもよい(後述のシミュレーション参照)。また、マグネット温度の代用として、モータ23aのケース温度、エンコーダ23bの温度等のマグネットとは異なる部位の温度を用いてもよい。
【0039】
外乱オブザーバ610は、サーボ回路230にフィードバックされる位置情報及び電流情報と、温度検出部23cからの温度情報とを取得して、モータ23aに作用する外乱、即ち外乱トルクとしての外乱力を推定する。外乱オブザーバ610が、サーボ回路230を介さずに位置情報及び電流情報を取得するようにしてもよい。制御部600は、例えば外乱オブザーバ610が推定した外乱力が所定の閾値を超過した場合に、所定の警報を発令したり、モータ23aを停止させる指令を発令したりすることができる。
【0040】
次に、例として制御部600から位置指令を受けたサーボ回路230の動作について説明する。図4は、サーボ回路230の機能構成を示すブロック図である。Y軸モータ13、Z軸モータ33及び主軸モータ6のサーボ回路についても同様である。図中231、233及び235の夫々は、増幅度が位置比例ゲイン、速度比例ゲイン及び速度積分ゲインである増幅器を表す。サーボ回路230は、位置指令が含む目標の位置と、エンコーダ23bがフィードバックする位置情報が示す位置との差分である位置誤差を増幅して速度指令を生成する増幅器231を有する。サーボ回路230は、また、位置情報が示す位置を1回微分してモータ23aの回転速度を生成する微分器232と、増幅器231が生成した速度指令及び微分器232が生成した回転速度の差分である速度誤差を増幅する増幅器233と、該速度誤差を積分して増幅する積分器234及び増幅器235とを有する。
【0041】
図4に示す例では、増幅器233が増幅した速度誤差に比例する量に、増幅器235が増幅した速度誤差の積分結果に比例する量を加算したものを電流指令とする。これにより、いわゆるPI制御を行う。サーボ回路230は、更に、上記の電流指令に基づいてモータ23aに流れる電流をフィードバック制御する電流制御器236を有する。電流検出部237は、検出した電流を示す電流情報を電流制御器236にフィードバックしており、電流制御器236は、電流指令に応じた電流がモータ23aに流れるように制御する。
【0042】
なお、図4では、制御部600が位置指令を発令した場合についてサーボ回路230の動作を説明したが、制御部600が速度指令を発令した場合は、増幅器231が生成する速度指令に代えて、制御部600からの速度指令を用いればよい。制御部600が位置指令及び速度指令を同時的に発令した場合については、夫々を単独で発令した場合の動作を重ね合わせればよい。
【0043】
次に、外乱オブザーバ610の動作について説明する。図5は、外乱オブザーバ610の機能構成を示すブロック図である。Y軸モータ13、Z軸モータ33及び主軸モータ6の外乱オブザーバについても同様である。外乱オブザーバ610は、温度検出部23cからの温度情報を取得し、取得した温度情報が示す温度に基づいてトルク定数を算出する定数算出部611と、該定数算出部611が算出したトルク定数を、取得した電流情報が示す電流に乗じてモータ23aのトルクを算出するトルク算出部612とを有する。トルク算出部612が算出するトルクは、外乱に抗するトルクを含んでいる。外乱オブザーバ610は、また、取得した位置情報が示す位置及びX軸方向移動機構20に関する定数に基づいてモータ23aのトルクを推定するトルク推定部613を有する。
【0044】
定数算出部611は、取得した温度情報が示す温度Tをn次(nは1以上の整数)の多項式又は区分多項式に適用してトルク定数Ktを近似する。ここでの多項式は、予めモータ23aの温度を変えながら実測して定めた、以下の式(1)のような温度Tの一次式、式(2)のような温度Tの二次式、又は式(3)のような温度Tのn次式である。一般的には、モータ23aの温度が上昇するほどモータ23aのロータのマグネット温度が高くなり、マグネットの磁束密度が低下するため、トルク定数が小さくなる。モータ23aの温度及びトルクの関係を予め実測することにより、実測結果が示す曲線の曲率、変曲点及び実測点数を考慮して、温度及びトルクの関係を最もよく表す式が立てることができる。
【0045】
Kt=a-bT・・・・・・・・・・・・・・・・・・・・・・・・・・・・(1)
Kt=a-b(T-c)2 ・・・・・・・・・・・・・・・・・・・・・・・(2)
Kt=a0+a1T+a2T2 +・・・+anTn ・・・・・・・・・・・・(3)
但し、a、b、c、a0、a1、a2、・・・anは一定の定数又は係数
【0046】
上記の式(1)から(3)に代えて、例えば区間[Tj,Tj+1](j=0、1、2・・・)でスプライン補間するための以下の式(4)のような関数Sj(T)を、予め実測によって定めておいてもよい。この場合、定数算出部611は、取得した温度情報が示す温度Tを含む区間[Tj,Tj+1]で定義された関数Sj(T)の値を、当該温度Tにおけるトルク定数Ktとする。
【0047】
Sj(T)=aj(T-Tj)3 +bj(T-Tj)2 +cj(T-Tj)+dj
・・・・・・・・・・・・・・・・・・・・・・・(4)
但し、aj、bj、cj、djは一定の係数又は定数
【0048】
トルク推定部613は、取得した位置情報に基づいてモータ23aの回転方向、即ちX軸方向移動機構20の移動方向を検出する方向検出器614と、取得した位置情報が示す位置を1回微分して回転速度を生成する微分器615と、該微分器615が生成した回転速度を1回微分して加速度を生成する微分器616とを含む。図5中のトルク推定部613が更に含む617は、モータ23aを含むX軸方向移動機構20に作用するプラス又はマイナスのクーロン摩擦力を出力する出力部である。図5中の618及び619夫々は、モータ23aを含むX軸方向移動機構20の粘性抵抗及び慣性モーメントを乗算する乗算器を表す。
【0049】
方向検出器614は、例えば位置情報の前回値と今回値の差分を計算し、差分の符号を出力すればよい。方向検出器614は、公知のハードウェア回路を用いてモータ23aの回転方向を検出してもよい。出力部617は、方向検出器614の検出結果に応じて、プラス及びマイナスの摩擦トルクを出力する。
【0050】
微分器615は、例えば位置情報の前回値と今回値の差分を計算し、位置情報の取得間隔時間で除することで回転速度を算出する。微分器616は、例えば微分器615が算出した回転速度の前回値と今回値の差分を計算し、位置情報の取得間隔時間で除することで加速度を算出する。
【0051】
乗算器618は、微分器615が生成した回転速度に粘性抵抗を乗じて粘性トルクを出力する。乗算器619は、微分器616が生成した加速度に慣性モーメントを乗じて慣性トルクを出力する。これらの摩擦トルク、粘性トルク及び慣性トルクを加算したものが、トルク推定部613が推定するトルクである。外乱オブザーバ610は、トルク算出部612が算出したトルク、即ち外乱に抗するトルクを含んで算出したトルクから、トルク推定部613が推定したトルクを減じて外乱力を推定する。粘性抵抗は、複数の回転速度について、モータ23aを一定速度で回転中のトルク値を測定し、速度とトルク値の比例関係より算出する。慣性モーメントは、複数の加速度について、モータ23aを一定加速度で回転中のトルク値を測定し、加速度とトルク値の比例関係より算出する。慣性モーメントは、負荷機械の設計図面より算出した値を用いてもよい。
【0052】
以下では、上述した外乱オブザーバ610の動作を、フローチャートを用いて説明する。Y軸モータ13、Z軸モータ33及び主軸モータ6についても同様である。図6は、実施の形態1の外乱オブザーバ610で外乱力を推定するCPU61の処理手順を示すフローチャートである。図7は、モータ23aについて回転方向を検出し、回転速度及び加速度を算出するCPU61の処理手順を示すフローチャートである。図6に示す処理は、一定の周期(例えば1ms毎)で起動される。
【0053】
図6の処理が起動された場合、CPU61は、モータ23aの温度情報を温度検出部23cから取得し(S11)、取得した温度情報が示す温度Tを式(1)から(3)の何れかの多項式又は式(4)の区分多項式に適用してトルク定数Ktを算出する(S12:定数算出部611に相当)。次いで、CPU61は、後述する図7の処理結果であるモータ23aの回転方向、回転速度及び加速度に基づき、上述のトルク推定部613によってモータ23aのトルクを推定する(S13:トルク推定部613に相当)。
【0054】
その後、CPU61は、電流検出部237からの電流情報をサーボ回路230を介して、又は直接的に取得し(S14)、取得した電流情報が示す電流に、ステップS12で算出したトルク定数を乗じてモータ23aのトルクを算出する(S15:トルク算出部612に相当)。そして、CPU61は、算出したトルクから、ステップS13で推定したトルクを減じて外乱トルクとしての外乱力を推定し(S16)、図6の処理を終了する。
【0055】
次に、図7の処理が起動された場合、CPU61は、例えば上述したようにエンコーダ23bからの相異なる位相のパルス信号に基づいてモータ23aの回転方向を検出する(S21:方向検出器614に相当)。ここで方向検出器614が検出する回転方向に応じて、図5に示す出力部617がプラス又はマイナスの摩擦力を出力する。次いで、CPU61は、例えば位置情報の取得間隔の逆数に比例する数値としてモータ23aの回転速度を算出する(S22:微分器615に相当)。次いで、CPU61は、モータ23aの回転速度の時間変化率に比例する数値としてモータ23aの加速度を算出し(S23:微分器616に相当)、図7の処理を終了する。
【0056】
なお、本実施の形態1にあっては、トルク定数がモータ23aの回転速度に依存しないことを前提として説明したが、いわゆる弱め磁界制御を行う場合は、弱め磁界制御を行わない場合と比較してトルク定数が小さくなる。この場合は、予めモータ23aの温度及び電流を変えて実測した結果に基づいて、式(1)から(3)の何れかの多項式又は式(4)の区分多項式を複数定めてもよい。定数算出部611は、検出したモータ23aの電流に対応する多項式又は区分多項式を用いてトルク定数を算出すればよい。
【0057】
トルク定数は、モータ23aが力行の状態にあるか、回生の状態にあるかによっても異なる。回生を考慮する場合は、予めモータ23aの温度及び力行/回生の状態を変えて実測した結果に基づいて、式(1)から(3)の何れかの多項式又は式(4)の区分多項式を複数定めてもよい。定数算出部611は、モータ23aの力行及び回生の状態を検知し、検知した状態に対応する多項式又は区分多項式を用いてトルク定数を算出すればよい。
【0058】
以上のように本実施の形態1によれば、モータ23aの温度に基づいてモータ23aのトルク定数を算出し、算出したトルク定数をモータ23aの電流に乗じてモータ23aのトルクを算出し、モータ23aの位置及びモータ23aが駆動するX軸方向移動機構20に係る定数に基づいてモータ23aのトルクを推定し、算出したモータ23aのトルクから推定したモータ23aのトルクを減じてモータ23aに作用する外乱トルクとしての外乱力を推定する。これにより、モータ23aの温度に応じてトルク定数を補正するため、外乱に抗するトルクを含めた実際のモータ23aのトルクが精度よく算出でき、外乱の算出精度が向上する。従って、推定する外乱の誤差を低減することが可能となる。
【0059】
また、実施の形態1によれば、発令された位置指令及び速度指令の何れか又は両方に応じてモータ23aに流れる電流を制御する。従って、モータ23aのトルクを生み出すモータの電流を指令内容に応じてフィードバック制御するため、モータ23aの位置及び/又は速度が、指令された目標に収束する。
【0060】
更に、実施の形態1によれば、モータ23aの位置を1回微分した回転速度に負荷機械に係る慣性モーメントを乗じて算出した慣性トルクと、回転速度を更に1回微分した加速度にX軸方向移動機構20に係る粘性抵抗を乗じて算出した粘性トルクと、X軸方向移動機構20の移動方向に応じて符号がプラス/マイナスに変化するクーロン摩擦力とを加算してトルクを推定する。従って、モータ23aを含めたX軸方向移動機構20の慣性モーメント、粘性抵抗及びクーロン摩擦を組み合わせてモータ23aのトルクを推定するため、外乱を除いたモータ23aのトルクが精度良く推定できる。
【0061】
更に、実施の形態1によれば、モータ23aの温度及びトルクの関係を予め実測してn次の多項式又は区分多項式を立て、この式に検出したモータ23aの温度を適用してトルク定数を近似する。従って、実測結果が示す曲線の曲率、変曲点及び実測点数を考慮して、全区間又は個々の区間に適用する多項式を定めることができ、多項式の次数又は区分多項式の区間数に応じてトルク定数の近似精度が向上する。
【0062】
更に、実施の形態1によれば、外乱を高精度に推定する外乱オブザーバ610を、X軸方向移動機構20を制御する制御装置60に適用することができる。
【0063】
更に、実施の形態1によれば、制御装置60の制御部600がサーボ回路230に例えば位置指令を発令し、位置指令を受けたサーボ回路230がX軸方向移動機構20を駆動するモータ23aをフィードバック制御する。制御装置60の外乱オブザーバ610は、エンコーダ23b及び電流検出部237夫々からサーボ回路230にフィードバックされるモータ23aの位置情報及び電流情報と、温度検出部23cからの温度情報とを取得して外乱を推定する。従って、X軸方向移動機構20を介してモータ23aに作用する外乱を高精度に推定できる。
【0064】
(実施の形態2)
実施の形態1は、定数算出部611が温度の多項式又は区分多項式を用いてトルク定数を算出する形態であるのに対し、実施の形態2は、定数算出部611がテーブルに記憶した内容を読み出してトルク定数を算出する形態である。ここでは、温度を含めたより多くの変数とトルク定数との関係をテーブルに記憶する。なお、本実施の形態2及び後述する実施の形態3では、X軸モータ23が有するモータ23aについて説明するが、Y軸モータ13及びZ軸モータ33夫々が有する他のモータについても同様である。
【0065】
図8は、モータ23aの電流、温度及び回転速度と、トルク定数との対応関係を記憶するテーブル641,642,643の内容を示す図表である。これらのテーブルは記憶装置64に記録してあるが、ROM62に記録してもよい。テーブル641,642,643は、モータ23aの回転速度が夫々0rpm,5000rpm,10000rpmの場合について、モータ23aの電流及び温度と、トルク定数との関係を記憶してある。テーブル641,642,643のうち、基本となるのは、モータ23aの回転速度が0rpmの場合に対応するテーブル641である。また、各テーブルのうち、基本となるのは、温度が0℃で電流が50Aの場合であり、この場合よりも温度が高くなるか、又は電流が大きくなるほどトルク定数が小さくなる。
【0066】
例えば、テーブル641で電流が50Aの場合、温度が0℃,10℃,20℃,30℃夫々のときのトルク定数は、1,0.99,0.98,0.97と記憶してある。これは、ACサーボモータで一般的に用いるネオジム磁石の磁束密度が、1℃の温度上昇に対して0.1%程度低下することに対応している。テーブル641は、温度が同一の場合、電流が50Aよりも大きくなるとモータのトルク定数が低下することを示している。このような傾向は、テーブル642及び643の場合も同様である。一方、テーブル642においては、モータ23aの回転速度が大きくなったため弱め界磁制御により10Aの電流が流れている状態を想定しており、テーブル641に対してトルク定数が低下している。テーブル643においては、弱め界磁電流が20A流れる場合を想定しており、トルク定数はさらに低下する。
【0067】
次に、図8に示すテーブルに記憶した内容に基づいてトルク定数を算出する方法について、フローチャートを用いて説明する。図9は、実施の形態2の外乱オブザーバ610で外乱力を推定するCPU61の処理手順を示すフローチャートである。図9に示す処理は、一定の周期(例えば1ms毎)で起動される。図中の回転速度及び加速度は、実施の形態1の図7に示す処理でCPU61が算出したモータ23aの回転速度及び加速度である。
【0068】
図9の処理が起動された場合、CPU61は、電流検出部237からの電流情報をサーボ回路230を介して、又は直接的に取得し(S31)、更にモータ23aの温度情報を温度検出部23cから取得する(S32)。次いで、CPU61は、取得した電流情報が示す電流、取得した温度情報が示す温度及びモータ23aの回転速度に対応してテーブル641,642,643の何れかに記憶した内容を読み出す(S33)。具体的に、CPU61は、算出した回転速度に近い2つのテーブルを選択し、夫々のテーブルから、取得した電流及び温度に近い4つのセルの内容を読み出す。より具体的に、例えば回転速度が500rpm、取得した電流が35A、取得した温度が5℃の場合、CPU61は、テーブル641から1,0.99,1,0.99を読み出し、テーブル642から0.67,0.66,0.6,0.59を読み出す。
【0069】
その後、CPU61は、ステップS33で読み出した8つのトルク定数に基づいて、例えば直線補間により1つのトルク定数を算出する(S34:定数算出部611に相当)。次いで、CPU61は、モータ23aの回転方向、回転速度及び加速度に基づき、前述のトルク推定部613によってモータ23aのトルクを推定する(S35:トルク推定部613に相当)。CPU61は、更に、ステップS31で取得した電流情報が示す電流に、ステップS34で算出したトルク定数を乗じてモータ23aのトルクを算出する(S36:トルク算出部612に相当)。そして、CPU61は、算出したトルクから、ステップS35で推定したトルクを減じて外乱トルクとしての外乱力を推定し(S37)、図9の処理を終了する。
【0070】
なお、トルク定数は、モータ23aが力行の状態にあるか、回生の状態にあるかによっても異なる。これを考慮する場合は、力行の状態と回生の状態とで図8に示すテーブルを別々に準備すればよい。ここで、力行とはモータ23aが外部に対して仕事をしている状態を表し、具体的にはモータ23aの回転速度とトルクの符号が同じ場合である。ここで、回生とは、モータ23aが外部から仕事をされている状態を表し、具体的にはモータ23aの回転速度とトルクの符号が異なる場合である。
【0071】
本実施の形態2にあっては、モータ23aの回転速度によって細分化したテーブル641,642,643を用いたが、これに限定されるものではなく、テーブルの記述方法を変更して1つのテーブルにしてもよい。また、モータ23aの回転速度の違いを考慮しない場合は、テーブル641のみを準備してトルク定数を算出すればよい。
【0072】
以上のように本実施の形態2によれば、モータ23aの電流及び温度と、モータ23aのトルク定数との対応関係を予め実測してテーブル641に記憶しておき、モータ23aの電流及びモータ23aの温度に対応してテーブル641に記憶してある内容を、必要に応じて補間してトルク定数を近似する。従って、トルク定数の算出精度が向上すると共に、算出負荷を低減することができる。
【0073】
また、実施の形態2によれば、モータ23aの電流、温度及び回転速度と、モータ23aのトルク定数との対応関係を予め実測してテーブル641,642,643に記憶しておき、モータ23aの電流、温度及び回転速度に対応してテーブル641,642,643に記憶してある内容を読み出し、必要に応じて補間してトルク定数を近似する。従って、トルク定数の算出精度がより高くなると共に、算出負荷を低減することができる。
【0074】
(実施の形態3)
実施の形態1は、定数算出部611が温度の多項式又は区分多項式を用いてトルク定数を算出する形態であり、実施の形態2は、定数算出部611がテーブルに記憶してある内容を読み出してトルク定数を算出する形態であった。これに対し、実施の形態3は、定数算出部611が、温度の多項式若しくは区分多項式を用いて算出したトルク定数をテーブルに記憶してある内容に基づいて補正するか、又はテーブルに記憶してある内容を読み出して算出したトルク定数を温度の多項式若しくは区分多項式を用いて補正する形態である。ここで用いるテーブルは、実施の形態2で用いたテーブル641,642,643の一部である。
【0075】
図10は、モータ23aの電流及び回転速度と、トルク定数との対応関係を記憶するテーブル644の内容を示す図表である。このテーブルは記憶装置64に記録してあるが、ROM62に記録してもよい。テーブル644には、モータ23aの電流が100A,75A,50A,25Aの場合と、モータ23aの回転速度が0rpm,5000rpm,10000rpmの場合との組み合わせによる12の場合についてトルク定数を記憶してある。これらのトルク定数は、テーブル641,642,643に記憶してあるトルク定数のうち、温度が0℃の場合のトルク定数と同一である。例えば、電流が75Aで回転速度が5000rpmの場合のトルク定数(0.81)は、回転速度が5000rpmの場合に対応するテーブル642に記憶してあるトルク定数のうち、電流が75Aで温度が0℃の場合のトルク定数と同一である。
【0076】
本実施の形態3では、モータ23aの温度とトルク定数との関係を式(1)から(4)の何れかに表してあり、モータ23aの電流及び回転速度とトルク定数との関係をテーブル644に表してある。先に式(1)から(4)の何れかを用いて仮のトルク定数Aを算出した場合は、テーブル644を用いてトルク定数Aを補正し、目的のトルク定数を算出する。一方、先にテーブル644を用いて仮のトルク定数Aを算出した場合は、式(1)から(4)の何れかを用いてトルク定数Aを補正し、目的のトルク定数を算出する。仮のトルク定数Aを算出するのに、先に式(1)から(4)の何れかを用いるか、又はテーブル644を用いるかは、設定によって変更してもよいし、固定的に決めてあってもよい。
【0077】
以下では、式(1)から(4)の何れかとテーブル644とを用いてトルク定数を算出する方法について、フローチャートを用いて説明する。図11は、実施の形態3の外乱オブザーバ610でトルク定数を算出するCPU61の処理手順を示すフローチャートである。図11に示す処理は、外乱力を推定する処理の一部としてCPU61が実行する。図中の回転速度は、実施の形態1の図7に示す処理でCPU61が算出したモータ23aの回転速度である。
【0078】
図11の処理が起動された場合、CPU61は、モータ23aの温度情報を温度検出部23cから取得し(S41)、更に電流検出部237からの電流情報を取得する(S42)。ここで、CPU61は、先に式(1)から(3)の何れかの多項式又は式(4)の区分多項式を用いるか否かを判定する(S43)。上述したように、この判定を省略して次のステップS44又はS51の何れかに固定的に処理を移すようにしてもよい。
【0079】
先に多項式又は区分多項式を用いる場合(S43:YES)、CPU61は、取得した温度情報が示す温度Tを式(1)から(3)の何れかの多項式又は式(4)の区分多項式に適用して、仮のトルク定数Aを算出する(S44)。次いで、CPU61は、取得した電流情報が示す電流及びモータ23aの回転速度に対応してテーブル644に記憶した内容を読み出し(S45)、直線補間して仮のトルク定数Bを算出する(S46)。
【0080】
CPU61は、更に、電流が4Aで回転速度が0rpmの場合の仮のトルク定数Cをテーブル644から読み出し(S47)、トルク定数Cに対するトルク定数Bの比率Dを算出する(S48)。そして、CPU61は、仮のトルク定数Aに比率Dを乗じて目的のトルク定数を算出し(S49:定数算出部611に相当)、図11の処理を終了する。
【0081】
一方、ステップS43で、先に多項式又は区分多項式を用いない場合(S43:NO)、CPU61は、取得した電流情報が示す電流及びモータ23aの回転速度に対応してテーブル644に記憶した内容を読み出し(S51)、直線補間して仮のトルク定数Aを算出する(S52)。次いで、CPU61は、取得した温度情報が示す温度Tを式(1)から(3)の何れかの多項式又は式(4)の区分多項式に適用して、仮のトルク定数Bを算出する(S53)。CPU61は、更に、上記の多項式又は区分多項式を用いて温度Tが0℃の場合の仮のトルク定数Cを算出し(S54)、目的のトルク定数を算出するためにステップS48に処理を移す。
【0082】
なお、本実施の形態3にあっては、テーブル641,642,643に記憶してあるトルク定数のうち、温度が0℃の場合のトルク定数をテーブル644に記憶したが、これに限定されるものではない。温度が10℃,20℃,30℃の何れの場合のトルク定数をテーブル644に記憶しても同様の結果が得られる。
【0083】
以上のように本実施の形態3によれば、上述の多項式又は区分多項式を予め定めておく他に、モータ23aの電流及び回転速度と、モータ23aのトルク定数との対応関係を予め実測してテーブル644に記憶しておく。実行時にトルク定数を算出する場合は、モータ23aの電流及びモータの回転速度に対応してテーブル644に記憶してある内容に基づいて算出した仮のトルク定数Aを上述の多項式若しくは区分多項式に基づいて補正するか、又は上述の多項式若しくは区分多項式に検出した温度を適用して算出した仮のトルク定数Aをテーブル644の記憶内容に基づいて補正する。従って、トルク定数の算出精度がより高くなると共に、算出負荷を低減することができる。
【0084】
(シミュレーション)
以下では、モータ23aの各部の温度変化をモデル化してシミュレーションした結果について説明する。図12は、モータ23aの温度モデルを模式的に示す説明図である。図12の温度モデルにて、巻線とモータ内空気の間、巻線と外気の間、モータ内空気とマグネットの間、及びモータ内空気と外気の間で熱の移動が起きるものとする。巻線に供給する熱量Qc[J]は、モータ電流Im[A]と巻線抵抗Rc[Ω]より、以下の式(5)で表せる。
【0085】
Qc=Rc×Im2 ・・・・・・・・・・・・・・・・・・・・・・・・・・(5)
【0086】
巻線からモータ内空気へ移動する熱量Qcaは、巻線温度Tc[℃]、モータ内空気温度Ta[℃]及び熱抵抗Trca[sK/J]より、以下の式(6)で表せる。また、巻線から外気へ移動する熱量Qcatは、巻線温度Tc、外気温度Tat及び熱抵抗Trcatより、以下の式(7)で表せる。
【0087】
Qca=(Tc-Ta)/Trca・・・・・・・・・・・・・・・・・・・(6)
Qcat=(Tc-Tat)/Trcat・・・・・・・・・・・・・・・・(7)
【0088】
モータ内空気からマグネットに移動する熱量Qamは、モータ内空気温度Ta、マグネット温度Tm及び熱抵抗Tramより、以下の式(8)で表せる。また、モータ内空気から外気に移動する熱量Qaatは、モータ内空気温度Ta、外気温度Tat及び熱抵抗Traatより、以下の式(9)で表せる。
【0089】
Qam=(Ta/Tm)/Tram・・・・・・・・・・・・・・・・・・・(8)
Qaat=(Ta-Tat)/Traat・・・・・・・・・・・・・・・・(9)
【0090】
巻線の熱容量をHc[J/K]、モータ内空気の熱容量をHa、マグネットの熱容量をHmとすると、巻線、モータ内空気、マグネット夫々の1秒当たりの温度変化ΔTc、ΔTa、ΔTmは、以下の式(10)、(11)、(12)で表せる。
【0091】
ΔTc=(Qc-Qca-Qcat)/Hc・・・・・・・・・・・・・・・(10)
ΔTa=(Qca-Qam-Qaat)/Ha・・・・・・・・・・・・・・(11)
ΔTm=(Qam)/Hm・・・・・・・・・・・・・・・・・・・・・・・(12)
【0092】
以上のモデル化による式(10)から(12)を用いて、以下の条件でシミュレーションを行った。
【0093】
Tc,Ta,Tm,Tatの初期値:20
Rc=0.1
Trca=Tram=0.05
Traat=Trcat=0.1
Hc=2000、Ha=100、Hm=2000
【0094】
図13は、モータ23aにおける各部の温度変化のシミュレーション結果を示すグラフである。図の横軸は時間(秒)を表し、縦軸は温度(℃)を表す。図中の実線、破線及び一点鎖線の夫々は、マグネット温度Tm、巻線温度Tc及びモータ内空気温度Taを示すものである。なお、モータ電流Imは、時間0から1500秒間だけ100[A]とし、その後0とした。
【0095】
以上のシミュレーション結果によれば、モータ23aの巻線温度Tcの上昇に少し遅れてモータ内空気温度Taが上昇し、さらに少し遅れてマグネット温度Tmが上昇することが分かる。また、巻線温度Tcは1500秒経過後に80℃付近に漸近し、モータ内空気温度Taはそれよりも低い60℃付近に漸近する。マグネット温度Tmはモータ内空気との間でのみ熱の移動を行うため、モータ内空気温度Taと同一の温度に漸近する。本シミュレーションと同じ演算をリアルタイムに実行することで、モータ電流Imと外気温度Tatより、マグネット温度Tmを求めることができる。外気温度Tatは、温度センサによって直接測定するほかに、たとえばモータ23aのエンコーダ23bの温度センサや制御盤内の温度センサの値を外気温の代替値として用いてもよいし、これらから近似値を算出して外気温として用いてもよい。
【0096】
今回開示された実施形態は、全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。また、実施形態で記載されている技術的特徴は、お互いに組み合わせることが可能である。
【符号の説明】
【0097】
10 Y軸方向移動機構
13 Y軸モータ
20 X軸方向移動機構
23 X軸モータ
23a モータ
23b エンコーダ
23c 温度検出部
230 サーボ回路
237 電流検出部
30 Z軸方向移動機構
33 Z軸モータ
51 主軸
6 主軸モータ
60 制御装置
600 制御部
610 外乱オブザーバ
611 定数算出部
612 トルク算出部
613 トルク推定部
61 CPU
62 ROM
63 RAM
64 記憶装置
641、642、643、644 テーブル
66 入出力インタフェース
67 受付部
68 Z軸センサ
69 主軸センサ
100 工作機械
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13