(57)【要約】【課題】推定する外乱の誤差を低減することが可能な外乱オブザーバ、制御装置、工作機械及び外乱推定方法を提供する。【解決手段】外乱オブザーバは、指令に基づいてモータをフィードバック制御するサーボ回路にフィードバックされるモータの位置情報及び電流情報を取得してモータに作用する外乱を推定する。モータの温度情報を取得し、取得した温度情報が示す温度に基づいてモータのトルク定数を算出する定数算出部と、定数算出部が算出したトルク定数を、取得した電流情報が示す電流に乗じてモータのトルクを算出するトルク算出部と、取得した位置情報が示す位置及びモータが駆動する負荷機械に係る定数に基づいてモータのトルクを推定するトルク推定部とを備え、トルク算出部が算出したトルクからトルク推定部が推定したトルクを減じて外乱を推定する。【選択図】図３
2020035394.tif 000002
【特許請求の範囲】
【請求項１】
指令に基づいてモータをフィードバック制御するサーボ回路にフィードバックされる前記モータの位置情報及び電流情報を取得して前記モータに作用する外乱を推定する外乱オブザーバであって、
前記モータの温度情報を取得し、取得した温度情報が示す温度に基づいて前記モータのトルク定数を算出する定数算出部と、
該定数算出部が算出したトルク定数を、取得した電流情報が示す電流に乗じて前記モータのトルクを算出するトルク算出部と、
取得した位置情報が示す位置及び前記モータが駆動する負荷機械に係る定数に基づいて前記モータのトルクを推定するトルク推定部と
を備え、
前記トルク算出部が算出したトルクから前記トルク推定部が推定したトルクを減じて前記外乱を推定するようにしてある
ことを特徴とする外乱オブザーバ。
【請求項２】
前記指令は、位置指令及び／又は速度指令であり、
前記サーボ回路は、前記モータに流れる電流を制御する
ことを特徴とする請求項１に記載の外乱オブザーバ。
【請求項３】
前記トルク推定部は、取得した位置情報が示す位置を１回微分した回転速度及び前記負荷機械に係る慣性モーメントの積と、前記回転速度を更に１回微分した加速度及び前記負荷機械に係る粘性抵抗の積と、前記負荷機械の移動方向に応じたクーロン摩擦力との和に基づいてトルクを推定することを特徴とする請求項１又は請求項２に記載の外乱オブザーバ。
【請求項４】
前記定数算出部は、予め実測した前記モータの温度及びトルクの関係に基づくｎ次（ｎは１以上の整数）の多項式又は区分多項式を用いてトルク定数を近似することを特徴とする請求項１から請求項３の何れか１項に記載の外乱オブザーバ。
【請求項５】
前記モータの電流及び回転速度と、前記モータのトルク定数との対応関係を記憶するテーブルを更に備え、
前記定数算出部は、取得した電流情報が示す電流及び取得した位置情報が示す位置を１回微分した回転速度に対応して前記テーブルに記憶してある内容と、前記多項式又は区分多項式とに基づいてトルク定数を算出する
ことを特徴とする請求項４に記載の外乱オブザーバ。
【請求項６】
前記モータの電流及び温度と、前記モータのトルク定数との対応関係を記憶するテーブルを更に備え、
前記定数算出部は、取得した電流情報が示す電流及び取得した温度情報が示す温度に対応して前記テーブルに記憶してある内容に基づいてトルク定数を算出する
ことを特徴とする請求項１から請求項３の何れか１項に記載の外乱オブザーバ。
【請求項７】
前記モータの電流、温度及び回転速度と、前記モータのトルク定数との対応関係を記憶するテーブルを更に備え、
前記定数算出部は、取得した電流情報が示す電流、取得した温度情報が示す温度及び取得した位置情報が示す位置を１回微分した回転速度に対応して前記テーブルに記憶してある内容に基づいてトルク定数を算出する
ことを特徴とする請求項１から請求項３の何れか１項に記載の外乱オブザーバ。
【請求項８】
請求項１から請求項７の何れか１項に記載の外乱オブザーバと、前記指令を発令する制御部とを含むことを特徴とする制御装置。
【請求項９】
請求項８に記載の制御装置と、前記サーボ回路と、前記モータと、前記負荷機械とを含む工作機械であって、
前記モータの位置を検出し、検出した位置を示す位置情報を前記サーボ回路にフィードバックする位置検出部と、
前記モータの電流を検出し、検出した電流を示す電流情報を前記サーボ回路にフィードバックする電流検出部と、
前記モータの温度を検出し、検出した温度を示す温度情報を生成する温度検出部と
を備え、
前記外乱オブザーバは、前記温度検出部から温度情報を取得するようにしてある
ことを特徴とする工作機械。
【請求項１０】
指令に基づいてモータをフィードバック制御するサーボ回路にフィードバックされる前記モータの位置情報及び電流情報を取得して前記モータに作用する外乱を推定する方法であって、
前記モータの温度情報を取得し、取得した温度情報が示す温度に基づいて前記モータのトルク定数を算出するステップと、
算出したトルク定数を、取得した電流情報が示す電流に乗じて前記モータのトルクを算出するステップと、
取得した位置情報が示す位置及び前記モータが駆動する負荷機械に係る定数に基づいて前記モータのトルクを推定するステップと、
算出したトルクから推定したトルクを減じて前記外乱を推定するステップと
を含むことを特徴とする外乱推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フィードバック制御系の外乱オブザーバ、制御装置、工作機械及び外乱推定方法に関する。
【背景技術】
【０００２】
従来、システムに影響する外乱を制御対象の状態の一部として推定する外乱オブザーバを利用している。モータのフィードバック制御装置に用いる外乱オブザーバでは、モータに流れる電流値からモータの出力トルクを算出するのに用いるトルク定数を、温度に依存しない一定の値として扱うことがある。
【０００３】
例えば、特許文献１は、サーボ回路の速度ループに組み込んだ外乱オブザーバによって推定する外乱トルクの大きさが設定値以上になったときに、被駆動体の衝突を検出してモータを停止する技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０３−１９６３１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１が開示する技術によれば、実際には温度によって変化するトルク定数Ｋｔを一定値としているため、モータの温度が上昇した場合、推定した外乱トルクの誤差が増大する。このため、モータの温度によっては、実際よりも高い駆動負荷でモータが被駆動体を駆動していると誤検出したり、被駆動体が衝突していないにも関わらず、衝突を誤検出したりする虞があった。
【０００６】
本発明は斯かる事情に鑑みてなされたものであり、その目的とするところは、推定する外乱の誤差を低減することが可能な外乱オブザーバ、制御装置、工作機械及び外乱推定方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明に係る外乱オブザーバは、指令に基づいてモータをフィードバック制御するサーボ回路にフィードバックされる前記モータの位置情報及び電流情報を取得して前記モータに作用する外乱を推定する外乱オブザーバであって、前記モータの温度情報を取得し、取得した温度情報が示す温度に基づいて前記モータのトルク定数を算出する定数算出部と、該定数算出部が算出したトルク定数を、取得した電流情報が示す電流に乗じて前記モータのトルクを算出するトルク算出部と、取得した位置情報が示す位置及び前記モータが駆動する負荷機械に係る定数に基づいて前記モータのトルクを推定するトルク推定部とを備え、前記トルク算出部が算出したトルクから前記トルク推定部が推定したトルクを減じて前記外乱を推定するようにしてあることを特徴とする。
【０００８】
本発明に係る外乱オブザーバは、前記指令は、位置指令及び／又は速度指令であり、前記サーボ回路は、前記モータに流れる電流を制御することを特徴とする。
【０００９】
本発明に係る外乱オブザーバは、前記トルク推定部は、取得した位置情報が示す位置を１回微分した回転速度及び前記負荷機械に係る粘性抵抗の積と、前記回転速度を更に１回微分した加速度及び前記負荷機械に係る慣性モーメントの積と、前記負荷機械の移動方向に応じたクーロン摩擦力との和に基づいてトルクを推定することを特徴とする。
【００１０】
本発明に係る外乱オブザーバは、前記定数算出部は、予め実測した前記モータの温度及びトルクの関係に基づくｎ次（ｎは１以上の整数）の多項式又は区分多項式を用いてトルク定数を近似することを特徴とする。
【００１１】
本発明に係る外乱オブザーバは、前記モータの電流及び回転速度と、前記モータのトルク定数との対応関係を記憶するテーブルを更に備え、前記定数算出部は、取得した電流情報が示す電流及び取得した位置情報が示す位置を１回微分した回転速度に対応して前記テーブルに記憶してある内容と、前記多項式又は区分多項式とに基づいてトルク定数を算出することを特徴とする。
【００１２】
本発明に係る外乱オブザーバは、前記モータの電流及び温度と、前記モータのトルク定数との対応関係を記憶するテーブルを更に備え、前記定数算出部は、取得した電流情報が示す電流及び取得した温度情報が示す温度に対応して前記テーブルに記憶してある内容に基づいてトルク定数を算出することを特徴とする。
【００１３】
本発明に係る外乱オブザーバは、前記モータの電流、温度及び回転速度と、前記モータのトルク定数との対応関係を記憶するテーブルを更に備え、前記定数算出部は、取得した電流情報が示す電流、取得した温度情報が示す温度及び取得した位置情報が示す位置を１回微分した回転速度に対応して前記テーブルに記憶してある内容に基づいてトルク定数を算出することを特徴とする。
【００１４】
本発明に係る制御装置は、上述の外乱オブザーバと、前記指令を発令する制御部とを含むことを特徴とする。
【００１５】
本発明に係る工作機械は、上述の制御装置と、前記サーボ回路と、前記モータと、前記負荷機械とを含む工作機械であって、前記モータの位置を検出し、検出した位置を示す位置情報を前記サーボ回路にフィードバックする位置検出部と、前記モータの電流を検出し、検出した電流を示す電流情報を前記サーボ回路にフィードバックする電流検出部と、前記モータの温度を検出し、検出した温度を示す温度情報を生成する温度検出部とを備え、前記外乱オブザーバは、前記温度検出部から温度情報を取得するようにしてあることを特徴とする。
【００１６】
本発明に係る外乱推定方法は、指令に基づいてモータをフィードバック制御するサーボ回路にフィードバックされる前記モータの位置情報及び電流情報を取得して前記モータに作用する外乱を推定する方法であって、前記モータの温度情報を取得し、取得した温度情報が示す温度に基づいて前記モータのトルク定数を算出するステップと、算出したトルク定数を、取得した電流情報が示す電流に乗じて前記モータのトルクを算出するステップと、取得した位置情報が示す位置及び前記モータが駆動する負荷機械に係る定数に基づいて前記モータのトルクを推定するステップと、算出したトルクから推定したトルクを減じて前記外乱を推定するステップとを含むことを特徴とする。
【００１７】
本発明においては、モータの温度に基づいてモータのトルク定数を算出し、算出したトルク定数をモータの電流に乗じてモータのトルクを算出し、モータの位置及びモータが駆動する負荷機械に係る定数に基づいてモータのトルクを推定し、算出したモータのトルクから推定したモータのトルクを減じてモータに作用する外乱を推定する。これにより、モータの温度に応じてトルク定数を補正するため、外乱に抗するトルクを含めた実際のモータのトルクが精度よく算出でき、外乱の算出精度が向上する。
【００１８】
本発明においては、発令された位置指令及び速度指令の何れか又は両方に応じてモータに流れる電流を制御する。これにより、モータのトルクを生み出すモータの電流を指令内容に応じてフィードバック制御するため、モータの位置及び／又は速度が、指令された目標に収束する。
【００１９】
本発明においては、モータの位置を１回微分した回転速度に負荷機械に係る粘性抵抗を乗じて算出した粘性トルクと、回転速度を更に１回微分した加速度に負荷機械に係る慣性モーメントを乗じて算出した慣性トルクと、負荷機械の移動方向に応じて符号がプラス／マイナスに変化するクーロン摩擦力とを加算してトルクを推定する。これにより、モータを含めた負荷機械の慣性モーメント、粘性抵抗及びクーロン摩擦を組み合わせてモータのトルクを推定するため、外乱を除いたモータのトルクが精度良く推定できる。
【００２０】
本発明においては、モータの温度及びトルクの関係を予め実測してｎ次の多項式又は区分多項式を立て、この式に検出したモータの温度を適用してトルク定数を近似する。これにより、実測結果が示す曲線の曲率、変曲点及び実測点数を考慮して、全区間又は個々の区間に適用する多項式を定めることができ、多項式の次数又は区分多項式の区間数に応じてトルク常数の近似精度が向上する。
【００２１】
本発明においては、上述の多項式又は区分多項式を予め定めておく他に、モータの電流及び回転速度と、モータのトルク定数との対応関係を予め実測してテーブルに記憶しておく。実行時にトルク定数を算出する場合は、モータの電流及びモータの回転速度に対応してテーブルに記憶してある内容に基づいて算出したトルク定数を上述の多項式若しくは区分多項式に基づいて補正するか、又は上述の多項式若しくは区分多項式に検出した温度を適用して算出したトルク定数をテーブルの記憶内容に基づいて補正する。これにより、トルク常数の算出精度がより高くなると共に、算出負荷が低減できる。
【００２２】
本発明においては、モータの電流及び温度と、モータのトルク定数との対応関係を予め実測してテーブルに記憶しておき、モータの電流及びモータの温度に対応してテーブルに記憶してある内容を、必要に応じて補間してトルク定数を近似する。これにより、トルク常数の算出精度が向上すると共に、算出負荷が低減できる。
【００２３】
本発明においては、モータの電流、温度及び回転速度と、モータのトルク定数との対応関係を予め実測してテーブルに記憶しておき、モータの電流、温度及び回転速度に対応してテーブルに記憶してある内容を読み出し、必要に応じて補間してトルク定数を近似する。これにより、トルク常数の算出精度がより高くなると共に、算出負荷が低減できる。
【００２４】
本発明においては、外乱を高精度に推定する外乱オブザーバを、負荷機械を制御する制御装置に適用することができる。
【００２５】
本発明においては、制御装置の制御部がサーボ回路に指令を発令し、指令を受けたサーボ回路が負荷機械を駆動するモータをフィードバック制御する。制御装置の外乱オブザーバは、位置検出部及び電流検出部夫々からサーボ回路にフィードバックされるモータの位置情報及び電流情報と、温度検出部からの温度情報とを取得して外乱を推定する。これにより、負荷機械を介してモータに作用する外乱が高精度に推定できる。
【発明の効果】
【００２６】
本発明によれば、推定する外乱の誤差を低減することが可能となる。
【図面の簡単な説明】
【００２７】
【図１】実施の形態１の工作機械を示す斜視図である。
【図２】制御装置を示すブロック図である。
【図３】制御装置及びＸ軸モータの内外で授受される情報を示すブロック図である。
【図４】サーボ回路の機能構成を示すブロック図である。
【図５】外乱オブザーバの機能構成を示すブロック図である。
【図６】実施の形態１の外乱オブザーバで外乱力を推定するＣＰＵの処理手順を示すフローチャートである。
【図７】モータについて回転方向を検出し、回転速度及び加速度を算出するＣＰＵの処理手順を示すフローチャートである。
【図８】モータの電流、温度及び回転速度と、トルク定数との対応関係を記憶するテーブルの内容を示す図表である。
【図９】実施の形態２の外乱オブザーバで外乱力を推定するＣＰＵの処理手順を示すフローチャートである。
【図１０】モータの電流及び回転速度と、トルク定数との対応関係を記憶するテーブルの内容を示す図表である。
【図１１】実施の形態３の外乱オブザーバでトルク定数を算出するＣＰＵの処理手順を示すフローチャートである。
【図１２】モータの温度モデルを模式的に示す説明図である。
【図１３】モータにおける各部の温度変化のシミュレーション結果を示すグラフである。
【発明を実施するための形態】
【００２８】
以下、本発明をその実施形態を示す図面に基づいて詳述する。
（実施の形態１）
図１は、実施の形態１の工作機械１００を示す斜視図である。以下の説明では図中矢印で示す上下、左右、前後を使用する。図１に示す如く、工作機械１００は、前後に延びた矩形の基台１を備える。ワーク保持部３は、基台１上部の前側に設ける。ワーク保持部３は、左右に延びたＡ軸と上下に延びたＣ軸回りに回転可能である。支持台２は、基台１上部の後側に設けてあり、立柱４を支持する。
【００２９】
Ｙ軸方向移動機構１０（負荷機械に相当）は、支持台２上部に設けてあり、移動板１６を前後方向に移動する。Ｙ軸方向移動機構１０は、前後に延びた二つの軌道１１、Ｙ軸螺子軸１２、Ｙ軸モータ１３及び軸受１４を備える。軌道１１は、支持台２上部の左と右に設ける。Ｙ軸螺子軸１２は前後に延びており、二つの軌道１１の間に設ける。軸受１４は、Ｙ軸螺子軸１２の前端部と中途部（図示略）に設ける。Ｙ軸モータ１３は、Ｙ軸螺子軸１２後端部に連結する。ナット（図示略）は、Ｙ軸螺子軸１２に転動体（図示略）を介して螺合する。転動体は例えばボールである。複数の摺動子１５は、各軌道１１に摺動可能に設ける。移動板１６は、水平方向に延びており、ナットと摺動子１５上部に連結する。Ｙ軸螺子軸１２はＹ軸モータ１３の回転で回転し、ナットは前後方向に移動し、移動板１６は前後方向に移動する。
【００３０】
Ｘ軸方向移動機構２０（負荷機械に相当）は、移動板１６上面に設けてあり、立柱４を左右方向に移動する。Ｘ軸方向移動機構２０は、左右に延びた二つの軌道２１、Ｘ軸螺子軸２２、Ｘ軸モータ２３（図２参照）及び軸受２４を備える。軌道２１は、移動板１６上面の前と後に設ける。Ｘ軸螺子軸２２は左右に延びており、二つの軌道２１の間に設ける。軸受２４は、Ｘ軸螺子軸２２の左端部と中途部（図示略）に設ける。Ｘ軸モータ２３は、Ｘ軸螺子軸２２の右端部に連結する。ナット（図示略）は、Ｘ軸螺子軸２２に転動体（図示略）を介して螺合する。複数の摺動子２６は、各軌道２１に摺動可能に設ける。立柱４は、ナットと摺動子２６上部に連結する。Ｘ軸螺子軸２２はＸ軸モータ２３の回転で回転し、ナットは左右方向に移動し、立柱４は左右方向に移動する。
【００３１】
Ｚ軸方向移動機構３０（負荷機械に相当）は、立柱４の前面に設けてあり、主軸ヘッド５を上下方向に移動する。Ｚ軸方向移動機構３０は、上下に延びた二つの軌道３１、Ｚ軸螺子軸３２、Ｚ軸モータ３３及び軸受３４を備える。軌道３１は、立柱４前面の左と右に設ける。Ｚ軸螺子軸３２は上下に延びており、二つの軌道３１の間に設ける。軸受３４は、Ｚ軸螺子軸３２の下端部と中途部(図示略)に設ける。Ｚ軸モータ３３は、Ｚ軸螺子軸３２上端部に連結する。ナット（図示略）は、Ｚ軸螺子軸３２に転動体（図示略）を介して螺合する。複数の摺動子３５は、各軌道３１に摺動可能に設ける。主軸ヘッド５は、ナットと摺動子３５の前部に連結する。Ｚ軸螺子軸３２はＺ軸モータ３３の回転で回転し、ナットは上下方向に移動し、主軸ヘッド５は上下方向に移動する。
【００３２】
上下に延びた主軸５１（負荷機械に相当）は主軸ヘッド５内に設ける。主軸５１は軸回りに回転する。主軸モータ６は、主軸ヘッド５上端部に設ける。主軸５１下端部は工具を装着する。主軸５１は主軸モータ６の回転で回転し、工具は回転する。回転した工具は、ワーク保持部３で保持したワークを加工する。
【００３３】
図２は制御装置６０を示すブロック図である。工作機械１００は、主軸モータ６、Ｙ軸モータ１３、Ｘ軸モータ２３、Ｚ軸モータ３３、ワーク保持部３等の駆動を制御する制御装置６０を備える。図２に示す如く、制御装置６０は、ＣＰＵ６１、ＲＯＭ６２、ＲＡＭ６３、ＥＥＰＲＯＭ等の不揮発性の記憶装置６４、入力インタフェース６５、入出力インタフェース６６等を有する。記憶装置６４は、ワークを加工する為の加工プログラムを格納する。加工プログラムは、複数の行（命令）を備える。ＣＰＵ６１は、行を順に読み込み、命令を実行して各部を駆動するための指令を発令する。
【００３４】
工作機械１００は、受付部６７（設定部）、Ｚ軸センサ６８及び主軸センサ６９を更に備える。受付部６７は、例えばキーボード、タッチパネル、表示画面等を備え、使用者の操作を受け付ける。使用者は、受付部６７を介して例えば特定の処理の実行を記憶装置６４に設定する。Ｚ軸センサ６８は、主軸５１の上下位置、換言すれば主軸５１の軸方向位置を検出する。主軸センサ６９は、主軸５１の周方向の位置を検出する。制御装置６０は、入力インタフェース６５を介して受付部６７から設定を入力し、Ｚ軸センサ６８から軸方向位置を入力し、主軸センサ６９から回転速度を入力する。制御装置６０は、入出力インタフェース６６を介して主軸モータ６、Ｘ軸モータ２３、Ｙ軸モータ１３及びＺ軸モータ３３に位置指令又は速度指令を発令する。制御装置６０は、また、入出力インタフェース６６を介して主軸モータ６、Ｘ軸モータ２３、Ｙ軸モータ１３及びＺ軸モータ３３夫々の位置情報と電流情報を取得する。Ｚ軸モータ３３及び主軸モータ６夫々の位置情報は、後述する図３に示すエンコーダ２３ｂに相当するものとしてＺ軸センサ６８及び主軸センサ６９の代わりにＺ軸モータ３３及び主軸モータ６夫々に設けたエンコーダを用いて検出してもよい。
【００３５】
ＣＰＵ６１が加工処理を実行する場合、ＣＰＵ６１は、主軸モータ６、Ｘ軸モータ２３、Ｙ軸モータ１３及びＺ軸モータ３３に指令を発令して、主軸５１の回転と、Ｘ軸方向移動機構２０、Ｙ軸方向移動機構１０及びＺ軸方向移動機構３０の移動とを制御する。これにより、ＣＰＵ６１は、主軸５１に装着した工具を用いてワークを加工する。
【００３６】
次に、例としてＸ軸モータ２３及び制御装置６０の間の情報の流れについて説明する。Ｙ軸モータ１３及び制御装置６０の間の情報の流れ、Ｚ軸モータ３３及び制御装置６０の間の情報の流れ、並びに主軸モータ６及び制御装置６０の間の情報の流れについても同様である。図３は、制御装置６０及びＸ軸モータ２３の内外で授受される情報を示すブロック図である。制御装置６０が含む制御部６００及び外乱オブザーバ６１０夫々は、図２に示すＣＰＵ６１を有する制御装置６０によって実現する機能ブロックの１つである。Ｘ軸モータ２３は、Ｘ軸螺子軸２２を駆動するモータ２３ａと、制御部６００からの位置指令及び速度指令の何れか又は両方に基づいてモータ２３ａに流れる電流をフィードバック制御するサーボ回路２３０とを有する。モータ２３ａに流れる電流は電流検出部２３７が検出し、電流検出部２３７は検出した電流を示す電流情報をサーボ回路２３０にフィードバックする。
【００３７】
モータ２３ａは、例えばロータにマグネットを有するＡＣサーボモータである。モータ２３ａの回転位置はエンコーダ２３ｂ（位置検出部に相当）が検出し、エンコーダ２３ｂは検出した回転位置を示す位置情報をパルス信号としてサーボ回路２３０にフィードバックする。モータ２３ａの温度は、温度検出部２３ｃが検出し、検出した温度を示す温度情報を外乱オブザーバ６１０に与える。温度検出部２３ｃは、ロータのマグネットの温度（以下、マグネット温度という）を検出することが好ましい。
【００３８】
マグネット温度を直接的に検出することが困難である場合は、モータ２３ａの電流及びモータ２３ａの外気温を検出してマグネット温度を推定してもよい（後述のシミュレーション参照）。また、マグネット温度の代用として、モータ２３ａのケース温度、エンコーダ２３ｂの温度等のマグネットとは異なる部位の温度を用いてもよい。
【００３９】
外乱オブザーバ６１０は、サーボ回路２３０にフィードバックされる位置情報及び電流情報と、温度検出部２３ｃからの温度情報とを取得して、モータ２３ａに作用する外乱、即ち外乱トルクとしての外乱力を推定する。外乱オブザーバ６１０が、サーボ回路２３０を介さずに位置情報及び電流情報を取得するようにしてもよい。制御部６００は、例えば外乱オブザーバ６１０が推定した外乱力が所定の閾値を超過した場合に、所定の警報を発令したり、モータ２３ａを停止させる指令を発令したりすることができる。
【００４０】
次に、例として制御部６００から位置指令を受けたサーボ回路２３０の動作について説明する。図４は、サーボ回路２３０の機能構成を示すブロック図である。Ｙ軸モータ１３、Ｚ軸モータ３３及び主軸モータ６のサーボ回路についても同様である。図中２３１、２３３及び２３５の夫々は、増幅度が位置比例ゲイン、速度比例ゲイン及び速度積分ゲインである増幅器を表す。サーボ回路２３０は、位置指令が含む目標の位置と、エンコーダ２３ｂがフィードバックする位置情報が示す位置との差分である位置誤差を増幅して速度指令を生成する増幅器２３１を有する。サーボ回路２３０は、また、位置情報が示す位置を１回微分してモータ２３ａの回転速度を生成する微分器２３２と、増幅器２３１が生成した速度指令及び微分器２３２が生成した回転速度の差分である速度誤差を増幅する増幅器２３３と、該速度誤差を積分して増幅する積分器２３４及び増幅器２３５とを有する。
【００４１】
図４に示す例では、増幅器２３３が増幅した速度誤差に比例する量に、増幅器２３５が増幅した速度誤差の積分結果に比例する量を加算したものを電流指令とする。これにより、いわゆるＰＩ制御を行う。サーボ回路２３０は、更に、上記の電流指令に基づいてモータ２３ａに流れる電流をフィードバック制御する電流制御器２３６を有する。電流検出部２３７は、検出した電流を示す電流情報を電流制御器２３６にフィードバックしており、電流制御器２３６は、電流指令に応じた電流がモータ２３ａに流れるように制御する。
【００４２】
なお、図４では、制御部６００が位置指令を発令した場合についてサーボ回路２３０の動作を説明したが、制御部６００が速度指令を発令した場合は、増幅器２３１が生成する速度指令に代えて、制御部６００からの速度指令を用いればよい。制御部６００が位置指令及び速度指令を同時的に発令した場合については、夫々を単独で発令した場合の動作を重ね合わせればよい。
【００４３】
次に、外乱オブザーバ６１０の動作について説明する。図５は、外乱オブザーバ６１０の機能構成を示すブロック図である。Ｙ軸モータ１３、Ｚ軸モータ３３及び主軸モータ６の外乱オブザーバについても同様である。外乱オブザーバ６１０は、温度検出部２３ｃからの温度情報を取得し、取得した温度情報が示す温度に基づいてトルク定数を算出する定数算出部６１１と、該定数算出部６１１が算出したトルク定数を、取得した電流情報が示す電流に乗じてモータ２３ａのトルクを算出するトルク算出部６１２とを有する。トルク算出部６１２が算出するトルクは、外乱に抗するトルクを含んでいる。外乱オブザーバ６１０は、また、取得した位置情報が示す位置及びＸ軸方向移動機構２０に関する定数に基づいてモータ２３ａのトルクを推定するトルク推定部６１３を有する。
【００４４】
定数算出部６１１は、取得した温度情報が示す温度Ｔをｎ次（ｎは１以上の整数）の多項式又は区分多項式に適用してトルク定数Ｋｔを近似する。ここでの多項式は、予めモータ２３ａの温度を変えながら実測して定めた、以下の式（１）のような温度Ｔの一次式、式（２）のような温度Ｔの二次式、又は式（３）のような温度Ｔのｎ次式である。一般的には、モータ２３ａの温度が上昇するほどモータ２３ａのロータのマグネット温度が高くなり、マグネットの磁束密度が低下するため、トルク定数が小さくなる。モータ２３ａの温度及びトルクの関係を予め実測することにより、実測結果が示す曲線の曲率、変曲点及び実測点数を考慮して、温度及びトルクの関係を最もよく表す式が立てることができる。
【００４５】
Ｋｔ＝ａ−ｂＴ・・・・・・・・・・・・・・・・・・・・・・・・・・・・（１）
Ｋｔ＝ａ−ｂ（Ｔ−ｃ）2 ・・・・・・・・・・・・・・・・・・・・・・・（２）
Ｋｔ＝ａ０＋ａ１Ｔ＋ａ２Ｔ2 ＋・・・＋ａｎＴn ・・・・・・・・・・・・（３）
但し、ａ、ｂ、ｃ、ａ０、ａ１、ａ２、・・・ａｎは一定の定数又は係数
【００４６】
上記の式（１）から（３）に代えて、例えば区間［Ｔｊ，Ｔｊ＋１］（ｊ＝０、１、２・・・）でスプライン補間するための以下の式（４）のような関数Ｓｊ（Ｔ）を、予め実測によって定めておいてもよい。この場合、定数算出部６１１は、取得した温度情報が示す温度Ｔを含む区間［Ｔｊ，Ｔｊ＋１］で定義された関数Ｓｊ（Ｔ）の値を、当該温度Ｔにおけるトルク定数Ｋｔとする。
【００４７】
Ｓｊ（Ｔ）＝ａｊ（Ｔ−Ｔｊ）3 ＋ｂｊ（Ｔ−Ｔｊ）2 ＋ｃｊ（Ｔ−Ｔｊ）＋ｄｊ
・・・・・・・・・・・・・・・・・・・・・・・（４）
但し、ａｊ、ｂｊ、ｃｊ、ｄｊは一定の係数又は定数
【００４８】
トルク推定部６１３は、取得した位置情報に基づいてモータ２３ａの回転方向、即ちＸ軸方向移動機構２０の移動方向を検出する方向検出器６１４と、取得した位置情報が示す位置を１回微分して回転速度を生成する微分器６１５と、該微分器６１５が生成した回転速度を１回微分して加速度を生成する微分器６１６とを含む。図５中のトルク推定部６１３が更に含む６１７は、モータ２３ａを含むＸ軸方向移動機構２０に作用するプラス又はマイナスのクーロン摩擦力を出力する出力部である。図５中の６１８及び６１９夫々は、モータ２３ａを含むＸ軸方向移動機構２０の粘性抵抗及び慣性モーメントを乗算する乗算器を表す。
【００４９】
方向検出器６１４は、例えば位置情報の前回値と今回値の差分を計算し、差分の符号を出力すればよい。方向検出器６１４は、公知のハードウェア回路を用いてモータ２３ａの回転方向を検出してもよい。出力部６１７は、方向検出器６１４の検出結果に応じて、プラス及びマイナスの摩擦トルクを出力する。
【００５０】
微分器６１５は、例えば位置情報の前回値と今回値の差分を計算し、位置情報の取得間隔時間で除することで回転速度を算出する。微分器６１６は、例えば微分器６１５が算出した回転速度の前回値と今回値の差分を計算し、位置情報の取得間隔時間で除することで加速度を算出する。
【００５１】
乗算器６１８は、微分器６１５が生成した回転速度に粘性抵抗を乗じて粘性トルクを出力する。乗算器６１９は、微分器６１６が生成した加速度に慣性モーメントを乗じて慣性トルクを出力する。これらの摩擦トルク、粘性トルク及び慣性トルクを加算したものが、トルク推定部６１３が推定するトルクである。外乱オブザーバ６１０は、トルク算出部６１２が算出したトルク、即ち外乱に抗するトルクを含んで算出したトルクから、トルク推定部６１３が推定したトルクを減じて外乱力を推定する。粘性抵抗は、複数の回転速度について、モータ２３ａを一定速度で回転中のトルク値を測定し、速度とトルク値の比例関係より算出する。慣性モーメントは、複数の加速度について、モータ２３ａを一定加速度で回転中のトルク値を測定し、加速度とトルク値の比例関係より算出する。慣性モーメントは、負荷機械の設計図面より算出した値を用いてもよい。
【００５２】
以下では、上述した外乱オブザーバ６１０の動作を、フローチャートを用いて説明する。Ｙ軸モータ１３、Ｚ軸モータ３３及び主軸モータ６についても同様である。図６は、実施の形態１の外乱オブザーバ６１０で外乱力を推定するＣＰＵ６１の処理手順を示すフローチャートである。図７は、モータ２３ａについて回転方向を検出し、回転速度及び加速度を算出するＣＰＵ６１の処理手順を示すフローチャートである。図６に示す処理は、一定の周期（例えば１ｍｓ毎）で起動される。
【００５３】
図６の処理が起動された場合、ＣＰＵ６１は、モータ２３ａの温度情報を温度検出部２３ｃから取得し（Ｓ１１）、取得した温度情報が示す温度Ｔを式（１）から（３）の何れかの多項式又は式（４）の区分多項式に適用してトルク定数Ｋｔを算出する（Ｓ１２：定数算出部６１１に相当）。次いで、ＣＰＵ６１は、後述する図７の処理結果であるモータ２３ａの回転方向、回転速度及び加速度に基づき、上述のトルク推定部６１３によってモータ２３ａのトルクを推定する（Ｓ１３：トルク推定部６１３に相当）。
【００５４】
その後、ＣＰＵ６１は、電流検出部２３７からの電流情報をサーボ回路２３０を介して、又は直接的に取得し（Ｓ１４）、取得した電流情報が示す電流に、ステップＳ１２で算出したトルク定数を乗じてモータ２３ａのトルクを算出する（Ｓ１５：トルク算出部６１２に相当）。そして、ＣＰＵ６１は、算出したトルクから、ステップＳ１３で推定したトルクを減じて外乱トルクとしての外乱力を推定し（Ｓ１６）、図６の処理を終了する。
【００５５】
次に、図７の処理が起動された場合、ＣＰＵ６１は、例えば上述したようにエンコーダ２３ｂからの相異なる位相のパルス信号に基づいてモータ２３ａの回転方向を検出する（Ｓ２１：方向検出器６１４に相当）。ここで方向検出器６１４が検出する回転方向に応じて、図５に示す出力部６１７がプラス又はマイナスの摩擦力を出力する。次いで、ＣＰＵ６１は、例えば位置情報の取得間隔の逆数に比例する数値としてモータ２３ａの回転速度を算出する（Ｓ２２：微分器６１５に相当）。次いで、ＣＰＵ６１は、モータ２３ａの回転速度の時間変化率に比例する数値としてモータ２３ａの加速度を算出し（Ｓ２３：微分器６１６に相当）、図７の処理を終了する。
【００５６】
なお、本実施の形態１にあっては、トルク定数がモータ２３ａの回転速度に依存しないことを前提として説明したが、いわゆる弱め磁界制御を行う場合は、弱め磁界制御を行わない場合と比較してトルク定数が小さくなる。この場合は、予めモータ２３ａの温度及び電流を変えて実測した結果に基づいて、式（１）から（３）の何れかの多項式又は式（４）の区分多項式を複数定めてもよい。定数算出部６１１は、検出したモータ２３ａの電流に対応する多項式又は区分多項式を用いてトルク定数を算出すればよい。
【００５７】
トルク定数は、モータ２３ａが力行の状態にあるか、回生の状態にあるかによっても異なる。回生を考慮する場合は、予めモータ２３ａの温度及び力行／回生の状態を変えて実測した結果に基づいて、式（１）から（３）の何れかの多項式又は式（４）の区分多項式を複数定めてもよい。定数算出部６１１は、モータ２３ａの力行及び回生の状態を検知し、検知した状態に対応する多項式又は区分多項式を用いてトルク定数を算出すればよい。
【００５８】
以上のように本実施の形態１によれば、モータ２３ａの温度に基づいてモータ２３ａのトルク定数を算出し、算出したトルク定数をモータ２３ａの電流に乗じてモータ２３ａのトルクを算出し、モータ２３ａの位置及びモータ２３ａが駆動するＸ軸方向移動機構２０に係る定数に基づいてモータ２３ａのトルクを推定し、算出したモータ２３ａのトルクから推定したモータ２３ａのトルクを減じてモータ２３ａに作用する外乱トルクとしての外乱力を推定する。これにより、モータ２３ａの温度に応じてトルク定数を補正するため、外乱に抗するトルクを含めた実際のモータ２３ａのトルクが精度よく算出でき、外乱の算出精度が向上する。従って、推定する外乱の誤差を低減することが可能となる。
【００５９】
また、実施の形態１によれば、発令された位置指令及び速度指令の何れか又は両方に応じてモータ２３ａに流れる電流を制御する。従って、モータ２３ａのトルクを生み出すモータの電流を指令内容に応じてフィードバック制御するため、モータ２３ａの位置及び／又は速度が、指令された目標に収束する。
【００６０】
更に、実施の形態１によれば、モータ２３ａの位置を１回微分した回転速度に負荷機械に係る慣性モーメントを乗じて算出した慣性トルクと、回転速度を更に１回微分した加速度にＸ軸方向移動機構２０に係る粘性抵抗を乗じて算出した粘性トルクと、Ｘ軸方向移動機構２０の移動方向に応じて符号がプラス／マイナスに変化するクーロン摩擦力とを加算してトルクを推定する。従って、モータ２３ａを含めたＸ軸方向移動機構２０の慣性モーメント、粘性抵抗及びクーロン摩擦を組み合わせてモータ２３ａのトルクを推定するため、外乱を除いたモータ２３ａのトルクが精度良く推定できる。
【００６１】
更に、実施の形態１によれば、モータ２３ａの温度及びトルクの関係を予め実測してｎ次の多項式又は区分多項式を立て、この式に検出したモータ２３ａの温度を適用してトルク定数を近似する。従って、実測結果が示す曲線の曲率、変曲点及び実測点数を考慮して、全区間又は個々の区間に適用する多項式を定めることができ、多項式の次数又は区分多項式の区間数に応じてトルク常数の近似精度が向上する。
【００６２】
更に、実施の形態１によれば、外乱を高精度に推定する外乱オブザーバ６１０を、Ｘ軸方向移動機構２０を制御する制御装置６０に適用することができる。
【００６３】
更に、実施の形態１によれば、制御装置６０の制御部６００がサーボ回路２３０に例えば位置指令を発令し、位置指令を受けたサーボ回路２３０がＸ軸方向移動機構２０を駆動するモータ２３ａをフィードバック制御する。制御装置６０の外乱オブザーバ６１０は、エンコーダ２３ｂ及び電流検出部２３７夫々からサーボ回路２３０にフィードバックされるモータ２３ａの位置情報及び電流情報と、温度検出部２３ｃからの温度情報とを取得して外乱を推定する。従って、Ｘ軸方向移動機構２０を介してモータ２３ａに作用する外乱を高精度に推定できる。
【００６４】
（実施の形態２）
実施の形態１は、定数算出部６１１が温度の多項式又は区分多項式を用いてトルク定数を算出する形態であるのに対し、実施の形態２は、定数算出部６１１がテーブルに記憶した内容を読み出してトルク定数を算出する形態である。ここでは、温度を含めたより多くの変数とトルク定数との関係をテーブルに記憶する。なお、本実施の形態２及び後述する実施の形態３では、Ｘ軸モータ２３が有するモータ２３ａについて説明するが、Ｙ軸モータ１３及びＺ軸モータ３３夫々が有する他のモータについても同様である。
【００６５】
図８は、モータ２３ａの電流、温度及び回転速度と、トルク定数との対応関係を記憶するテーブル６４１，６４２，６４３の内容を示す図表である。これらのテーブルは記憶装置６４に記録してあるが、ＲＯＭ６２に記録してもよい。テーブル６４１，６４２，６４３は、モータ２３ａの回転速度が夫々０ｒｐｍ，５０００ｒｐｍ，１００００ｒｐｍの場合について、モータ２３ａの電流及び温度と、トルク定数との関係を記憶してある。テーブル６４１，６４２，６４３のうち、基本となるのは、モータ２３ａの回転速度が０ｒｐｍの場合に対応するテーブル６４１である。また、各テーブルのうち、基本となるのは、温度が０℃で電流が５０Ａの場合であり、この場合よりも温度が高くなるか、又は電流が大きくなるほどトルク定数が小さくなる。
【００６６】
例えば、テーブル６４１で電流が５０Ａの場合、温度が０℃，１０℃，２０℃，３０℃夫々のときのトルク定数は、１，０．９９，０．９８，０．９７と記憶してある。これは、ＡＣサーボモータで一般的に用いるネオジム磁石の磁束密度が、１℃の温度上昇に対して０．１％程度低下することに対応している。テーブル６４１は、温度が同一の場合、電流が５０Ａよりも大きくなるとモータのトルク定数が低下することを示している。このような傾向は、テーブル６４２及び６４３の場合も同様である。一方、テーブル６４２においては、モータ２３ａの回転速度が大きくなったため弱め界磁制御により１０Ａの電流が流れている状態を想定しており、テーブル６４１に対してトルク定数が低下している。テーブル６４３においては、弱め界磁電流が２０Ａ流れる場合を想定しており、トルク定数はさらに低下する。
【００６７】
次に、図８に示すテーブルに記憶した内容に基づいてトルク定数を算出する方法について、フローチャートを用いて説明する。図９は、実施の形態２の外乱オブザーバ６１０で外乱力を推定するＣＰＵ６１の処理手順を示すフローチャートである。図９に示す処理は、一定の周期（例えば１ｍｓ毎）で起動される。図中の回転速度及び加速度は、実施の形態１の図７に示す処理でＣＰＵ６１が算出したモータ２３ａの回転速度及び加速度である。
【００６８】
図９の処理が起動された場合、ＣＰＵ６１は、電流検出部２３７からの電流情報をサーボ回路２３０を介して、又は直接的に取得し（Ｓ３１）、更にモータ２３ａの温度情報を温度検出部２３ｃから取得する（Ｓ３２）。次いで、ＣＰＵ６１は、取得した電流情報が示す電流、取得した温度情報が示す温度及びモータ２３ａの回転速度に対応してテーブル６４１，６４２，６４３の何れかに記憶した内容を読み出す（Ｓ３３）。具体的に、ＣＰＵ６１は、算出した回転速度に近い２つのテーブルを選択し、夫々のテーブルから、取得した電流及び温度に近い４つのセルの内容を読み出す。より具体的に、例えば回転速度が５００ｒｐｍ、取得した電流が３５Ａ、取得した温度が５℃の場合、ＣＰＵ６１は、テーブル６４１から１，０．９９，１，０．９９を読み出し、テーブル６４２から０．６７，０．６６，０．６，０．５９を読み出す。
【００６９】
その後、ＣＰＵ６１は、ステップＳ３３で読み出した８つのトルク定数に基づいて、例えば直線補間により１つのトルク定数を算出する（Ｓ３４：定数算出部６１１に相当）。次いで、ＣＰＵ６１は、モータ２３ａの回転方向、回転速度及び加速度に基づき、前述のトルク推定部６１３によってモータ２３ａのトルクを推定する（Ｓ３５：トルク推定部６１３に相当）。ＣＰＵ６１は、更に、ステップＳ３１で取得した電流情報が示す電流に、ステップＳ３４で算出したトルク定数を乗じてモータ２３ａのトルクを算出する（Ｓ３６：トルク算出部６１２に相当）。そして、ＣＰＵ６１は、算出したトルクから、ステップＳ３５で推定したトルクを減じて外乱トルクとしての外乱力を推定し（Ｓ３７）、図９の処理を終了する。
【００７０】
なお、トルク定数は、モータ２３ａが力行の状態にあるか、回生の状態にあるかによっても異なる。これを考慮する場合は、力行の状態と回生の状態とで図８に示すテーブルを別々に準備すればよい。ここで、力行とはモータ２３ａが外部に対して仕事をしている状態を表し、具体的にはモータ２３ａの回転速度とトルクの符号が同じ場合である。ここで、回生とは、モータ２３ａが外部から仕事をされている状態を表し、具体的にはモータ２３ａの回転速度とトルクの符号が異なる場合である。
【００７１】
本実施の形態２にあっては、モータ２３ａの回転速度によって細分化したテーブル６４１，６４２，６４３を用いたが、これに限定されるものではなく、テーブルの記述方法を変更して１つのテーブルにしてもよい。また、モータ２３ａの回転速度の違いを考慮しない場合は、テーブル６４１のみを準備してトルク定数を算出すればよい。
【００７２】
以上のように本実施の形態２によれば、モータ２３ａの電流及び温度と、モータ２３ａのトルク定数との対応関係を予め実測してテーブル６４１に記憶しておき、モータ２３ａの電流及びモータ２３ａの温度に対応してテーブル６４１に記憶してある内容を、必要に応じて補間してトルク定数を近似する。従って、トルク常数の算出精度が向上すると共に、算出負荷を低減することができる。
【００７３】
また、実施の形態２によれば、モータ２３ａの電流、温度及び回転速度と、モータ２３ａのトルク定数との対応関係を予め実測してテーブル６４１，６４２，６４３に記憶しておき、モータ２３ａの電流、温度及び回転速度に対応してテーブル６４１，６４２，６４３に記憶してある内容を読み出し、必要に応じて補間してトルク定数を近似する。従って、トルク常数の算出精度がより高くなると共に、算出負荷を低減することができる。
【００７４】
（実施の形態３）
実施の形態１は、定数算出部６１１が温度の多項式又は区分多項式を用いてトルク定数を算出する形態であり、実施の形態２は、定数算出部６１１がテーブルに記憶してある内容を読み出してトルク定数を算出する形態であった。これに対し、実施の形態３は、定数算出部６１１が、温度の多項式若しくは区分多項式を用いて算出したトルク定数をテーブルに記憶してある内容に基づいて補正するか、又はテーブルに記憶してある内容を読み出して算出したトルク定数を温度の多項式若しくは区分多項式を用いて補正する形態である。ここで用いるテーブルは、実施の形態２で用いたテーブル６４１，６４２，６４３の一部である。
【００７５】
図１０は、モータ２３ａの電流及び回転速度と、トルク定数との対応関係を記憶するテーブル６４４の内容を示す図表である。このテーブルは記憶装置６４に記録してあるが、ＲＯＭ６２に記録してもよい。テーブル６４４には、モータ２３ａの電流が１００Ａ，７５Ａ，５０Ａ，２５Ａの場合と、モータ２３ａの回転速度が０ｒｐｍ，５０００ｒｐｍ，１００００ｒｐｍの場合との組み合わせによる１２の場合についてトルク定数を記憶してある。これらのトルク定数は、テーブル６４１，６４２，６４３に記憶してあるトルク定数のうち、温度が０℃の場合のトルク定数と同一である。例えば、電流が７５Ａで回転速度が５０００ｒｐｍの場合のトルク定数（０．８１）は、回転速度が５０００ｒｐｍの場合に対応するテーブル６４２に記憶してあるトルク定数のうち、電流が７５Ａで温度が０℃の場合のトルク定数と同一である。
【００７６】
本実施の形態３では、モータ２３ａの温度とトルク定数との関係を式（１）から（４）の何れかに表してあり、モータ２３ａの電流及び回転速度とトルク定数との関係をテーブル６４４に表してある。先に式（１）から（４）の何れかを用いて仮のトルク定数Ａを算出した場合は、テーブル６４４を用いてトルク定数Ａを補正し、目的のトルク定数を算出する。一方、先にテーブル６４４を用いて仮のトルク定数Ａを算出した場合は、式（１）から（４）の何れかを用いてトルク定数Ａを補正し、目的のトルク定数を算出する。仮のトルク定数Ａを算出するのに、先に式（１）から（４）の何れかを用いるか、又はテーブル６４４を用いるかは、設定によって変更してもよいし、固定的に決めてあってもよい。
【００７７】
以下では、式（１）から（４）の何れかとテーブル６４４とを用いてトルク定数を算出する方法について、フローチャートを用いて説明する。図１１は、実施の形態３の外乱オブザーバ６１０でトルク定数を算出するＣＰＵ６１の処理手順を示すフローチャートである。図１１に示す処理は、外乱力を推定する処理の一部としてＣＰＵ６１が実行する。図中の回転速度は、実施の形態１の図７に示す処理でＣＰＵ６１が算出したモータ２３ａの回転速度である。
【００７８】
図１１の処理が起動された場合、ＣＰＵ６１は、モータ２３ａの温度情報を温度検出部２３ｃから取得し（Ｓ４１）、更に電流検出部２３７からの電流情報を取得する（Ｓ４２）。ここで、ＣＰＵ６１は、先に式（１）から（３）の何れかの多項式又は式（４）の区分多項式を用いるか否かを判定する（Ｓ４３）。上述したように、この判定を省略して次のステップＳ４４又はＳ５１の何れかに固定的に処理を移すようにしてもよい。
【００７９】
先に多項式又は区分多項式を用いる場合（Ｓ４３：ＹＥＳ）、ＣＰＵ６１は、取得した温度情報が示す温度Ｔを式（１）から（３）の何れかの多項式又は式（４）の区分多項式に適用して、仮のトルク定数Ａを算出する（Ｓ４４）。次いで、ＣＰＵ６１は、取得した電流情報が示す電流及びモータ２３ａの回転速度に対応してテーブル６４４に記憶した内容を読み出し（Ｓ４５）、直線補間して仮のトルク定数Ｂを算出する（Ｓ４６）。
【００８０】
ＣＰＵ６１は、更に、電流が４Ａで回転速度が０ｒｐｍの場合の仮のトルク定数Ｃをテーブル６４４から読み出し（Ｓ４７）、トルク定数Ｃに対するトルク定数Ｂの比率Ｄを算出する（Ｓ４８）。そして、ＣＰＵ６１は、仮のトルク定数Ａに比率Ｄを乗じて目的のトルク定数を算出し（Ｓ４９：定数算出部６１１に相当）、図１１の処理を終了する。
【００８１】
一方、ステップＳ４３で、先に多項式又は区分多項式を用いない場合（Ｓ４３：ＮＯ）、ＣＰＵ６１は、取得した電流情報が示す電流及びモータ２３ａの回転速度に対応してテーブル６４４に記憶した内容を読み出し（Ｓ５１）、直線補間して仮のトルク定数Ａを算出する（Ｓ５２）。次いで、ＣＰＵ６１は、取得した温度情報が示す温度Ｔを式（１）から（３）の何れかの多項式又は式（４）の区分多項式に適用して、仮のトルク定数Ｂを算出する（Ｓ５３）。ＣＰＵ６１は、更に、上記の多項式又は区分多項式を用いて温度Ｔが０℃の場合の仮のトルク定数Ｃを算出し（Ｓ５４）、目的のトルク定数を算出するためにステップＳ４８に処理を移す。
【００８２】
なお、本実施の形態３にあっては、テーブル６４１，６４２，６４３に記憶してあるトルク定数のうち、温度が０℃の場合のトルク定数をテーブル６４４に記憶したが、これに限定されるものではない。温度が１０℃，２０℃，３０℃の何れの場合のトルク定数をテーブル６４４に記憶しても同様の結果が得られる。
【００８３】
以上のように本実施の形態３によれば、上述の多項式又は区分多項式を予め定めておく他に、モータ２３ａの電流及び回転速度と、モータ２３ａのトルク定数との対応関係を予め実測してテーブル６４４に記憶しておく。実行時にトルク定数を算出する場合は、モータ２３ａの電流及びモータの回転速度に対応してテーブル６４４に記憶してある内容に基づいて算出した仮のトルク定数Ａを上述の多項式若しくは区分多項式に基づいて補正するか、又は上述の多項式若しくは区分多項式に検出した温度を適用して算出した仮のトルク定数Ａをテーブル６４４の記憶内容に基づいて補正する。従って、トルク常数の算出精度がより高くなると共に、算出負荷を低減することができる。
【００８４】
（シミュレーション）
以下では、モータ２３ａの各部の温度変化をモデル化してシミュレーションした結果について説明する。図１２は、モータ２３ａの温度モデルを模式的に示す説明図である。図１２の温度モデルにて、巻線とモータ内空気の間、巻線と外気の間、モータ内空気とマグネットの間、及びモータ内空気と外気の間で熱の移動が起きるものとする。巻線に供給する熱量Ｑｃ［Ｊ］は、モータ電流Ｉｍ［Ａ］と巻線抵抗Ｒｃ［Ω］より、以下の式（５）で表せる。
【００８５】
Ｑｃ＝Ｒｃ×Ｉｍ2 ・・・・・・・・・・・・・・・・・・・・・・・・・・（５）
【００８６】
巻線からモータ内空気へ移動する熱量Ｑｃａは、巻線温度Ｔｃ［℃］、モータ内空気温度Ｔａ［℃］及び熱抵抗Ｔｒｃａ［ｓＫ／Ｊ］より、以下の式（６）で表せる。また、巻線から外気へ移動する熱量Ｑｃａｔは、巻線温度Ｔｃ、外気温度Ｔａｔ及び熱抵抗Ｔｒｃａｔより、以下の式（７）で表せる。
【００８７】
Ｑｃａ＝（Ｔｃ−Ｔａ）／Ｔｒｃａ・・・・・・・・・・・・・・・・・・・（６）
Ｑｃａｔ＝（Ｔｃ−Ｔａｔ）／Ｔｒｃａｔ・・・・・・・・・・・・・・・・（７）
【００８８】
モータ内空気からマグネットに移動する熱量Ｑａｍは、モータ内空気温度Ｔａ、マグネット温度Ｔｍ及び熱抵抗Ｔｒａｍより、以下の式（８）で表せる。また、モータ内空気から外気に移動する熱量Ｑａａｔは、モータ内空気温度Ｔａ、外気温度Ｔａｔ及び熱抵抗Ｔｒａａｔより、以下の式（９）で表せる。
【００８９】
Ｑａｍ＝（Ｔａ／Ｔｍ）／Ｔｒａｍ・・・・・・・・・・・・・・・・・・・（８）
Ｑａａｔ＝（Ｔａ−Ｔａｔ）／Ｔｒａａｔ・・・・・・・・・・・・・・・・（９）
【００９０】
巻線の熱容量をＨｃ［Ｊ／Ｋ］、モータ内空気の熱容量をＨａ、マグネットの熱容量をＨｍとすると、巻線、モータ内空気、マグネット夫々の１秒当たりの温度変化ΔＴｃ、ΔＴａ、ΔＴｍは、以下の式（１０）、（１１）、（１２）で表せる。
【００９１】
ΔＴｃ＝（Ｑｃ−Ｑｃａ−Ｑｃａｔ）／Ｈｃ・・・・・・・・・・・・・・・（１０）
ΔＴａ＝（Ｑｃａ−Ｑａｍ−Ｑａａｔ）／Ｈａ・・・・・・・・・・・・・・（１１）
ΔＴｍ＝（Ｑａｍ）／Ｈｍ・・・・・・・・・・・・・・・・・・・・・・・（１２）
【００９２】
以上のモデル化による式（１０）から（１２）を用いて、以下の条件でシミュレーションを行った。
【００９３】
Ｔｃ，Ｔａ，Ｔｍ，Ｔａｔの初期値：２０
Ｒｃ＝０．１
Ｔｒｃａ＝Ｔｒａｍ＝０．０５
Ｔｒａａｔ＝Ｔｒｃａｔ＝０．１
Ｈｃ＝２０００、Ｈａ＝１００、Ｈｍ＝２０００
【００９４】
図１３は、モータ２３ａにおける各部の温度変化のシミュレーション結果を示すグラフである。図の横軸は時間（秒）を表し、縦軸は温度（℃）を表す。図中の実線、破線及び一点鎖線の夫々は、マグネット温度Ｔｍ、巻線温度Ｔｃ及びモータ内空気温度Ｔａを示すものである。なお、モータ電流Ｉｍは、時間０から１５００秒間だけ１００［Ａ］とし、その後０とした。
【００９５】
以上のシミュレーション結果によれば、モータ２３ａの巻線温度Ｔｃの上昇に少し遅れてモータ内空気温度Ｔａが上昇し、さらに少し遅れてマグネット温度Ｔｍが上昇することが分かる。また、巻線温度Ｔｃは１５００秒経過後に８０℃付近に漸近し、モータ内空気温度Ｔａはそれよりも低い６０℃付近に漸近する。マグネット温度Ｔｍはモータ内空気との間でのみ熱の移動を行うため、モータ内空気温度Ｔａと同一の温度に漸近する。本シミュレーションと同じ演算をリアルタイムに実行することで、モータ電流Ｉｍと外気温度Ｔａｔより、マグネット温度Ｔｍを求めることができる。外気温度Ｔａｔは、温度センサによって直接測定するほかに、たとえばモータ２３ａのエンコーダ２３ｂの温度センサや制御盤内の温度センサの値を外気温の代替値として用いてもよいし、これらから近似値を算出して外気温として用いてもよい。
【００９６】
今回開示された実施形態は、全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。また、実施形態で記載されている技術的特徴は、お互いに組み合わせることが可能である。
【符号の説明】
【００９７】
１０  Ｙ軸方向移動機構
１３  Ｙ軸モータ
２０  Ｘ軸方向移動機構
２３  Ｘ軸モータ
２３ａ  モータ
２３ｂ  エンコーダ
２３ｃ  温度検出部
２３０  サーボ回路
２３７  電流検出部
３０  Ｚ軸方向移動機構
３３  Ｚ軸モータ
５１  主軸
６  主軸モータ
６０  制御装置
６００  制御部
６１０  外乱オブザーバ
６１１  定数算出部
６１２  トルク算出部
６１３  トルク推定部
６１  ＣＰＵ
６２  ＲＯＭ
６３  ＲＡＭ
６４  記憶装置
６４１、６４２、６４３、６４４  テーブル
６６  入出力インタフェース
６７  受付部
６８  Ｚ軸センサ
６９  主軸センサ
１００  工作機械
【図１】
2020035394.tif 000003
【図２】
2020035394.tif 000004
【図３】
2020035394.tif 000005
【図４】
2020035394.tif 000006
【図５】
2020035394.tif 000007
【図６】
2020035394.tif 000008
【図７】
2020035394.tif 000009
【図８】
2020035394.tif 000010
【図９】
2020035394.tif 000011
【図１０】
2020035394.tif 000012
【図１１】
2020035394.tif 000013
【図１２】
2020035394.tif 000014
【図１３】
2020035394.tif 000015