(57)【特許請求の範囲】
【請求項１】
動作中のモータのコイルに流れる電流のｄ軸成分及びｑ軸成分と前記モータの回転速度値とに基づき所定の温度での誘起電圧分を補正した補正電流を求める電流補正部と、
前記モータに印加される電圧の指示値と前記補正電流とを用いて、逐次最小二乗法により、前記モータのコイルの抵抗値を推定する抵抗値推定部と、
前記抵抗値推定部により推定された前記モータのコイルの抵抗値を所定の設定温度における前記モータのコイルの抵抗値と比較し、前記比較の結果に基づいて前記モータのコイルの温度を判別する温度判別部と、
を備えることを特徴とするサーボモータのコイル温度検出装置。
【請求項２】
前記抵抗値推定部として、前記モータのコイルの抵抗値を推定する複数の抵抗値推定部を備え、
前記複数の抵抗値推定部各々は、
前記複数の抵抗値推定部毎に異なる温度条件に基づいて、前記モータのコイルの抵抗値を推定し、
前記温度判別部は、前記複数の抵抗値推定部各々により推定された複数の抵抗値に基づき、前記モータのコイルの温度を判別する
ことを特徴とする請求項１に記載のサーボモータのコイル温度検出装置。
【請求項３】
前記温度判別部は、
前記複数の抵抗値推定部各々により推定された前記モータのコイルの複数の抵抗値に基づき、前記モータのコイルの温度を判別し、判別したコイルの温度が前記複数の抵抗値推定部毎に異なる温度条件に基づいて設定された温度以上の場合、前記抵抗値推定部の温度条件を変更し、
前記コイルの抵抗値の推定と前記コイルの温度の判別とを繰り返し行う
ことを特徴とする請求項２に記載のサーボモータのコイル温度検出装置。
【請求項４】
モータと、
前記モータの回転速度を制御する速度制御部と、
前記モータに印加される電流を制御する電流制御部と、
コイル温度検出装置と、
を備え、
前記コイル温度検出装置は、
動作中の前記モータのコイルに流れる電流のｄ軸成分及びｑ軸成分と前記モータの回転速度値とに基づき所定の温度での誘起電圧分を補正した補正電流を求める電流補正部と、
前記モータに印加される電圧の指示値と前記補正電流とを用いて、逐次最小二乗法により、前記モータのコイルの抵抗値を推定する抵抗値推定部と、
前記抵抗値推定部により推定された前記モータのコイルの抵抗値を所定の設定温度における前記モータのコイルの抵抗値と比較し、前記比較の結果に基づいて前記モータのコイルの温度を判別する温度判別部と、
を備えることを特徴とするサーボモータ。
【請求項５】
前記抵抗値推定部として、前記モータのコイルの抵抗値を推定する複数の抵抗値推定部を備え、
前記複数の抵抗値推定部各々は、
前記複数の抵抗値推定部毎に異なる温度条件に基づいて、前記モータのコイルの抵抗値を推定し、
前記温度判別部は、前記複数の抵抗値推定部各々により推定された複数の抵抗値に基づき、前記モータのコイルの温度を判別する
ことを特徴とする請求項４に記載のサーボモータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーボモータのコイル温度検出装置、およびサーボモータに関する。
【背景技術】
【０００２】
ロボット用サーボモータは、産機用サーボモータと違い定格範囲を決めた運転を行わないため、高負荷な運転が続きモータのコイルが発熱し、モータが焼損してしまう危険がある。このため、一般的に、モータの限界に対して大きなマージンを取られているため、モータ本来の力が引き出されていない。モータを有効に使用するために、温度センサを用いて直接的もしくは間接的にコイル温度を計測するか、または推測している。
【０００３】
例えば、特許文献１に記載の発明は、モータの温度モデルを事前に求めておき、流れた電流の加算により現在のモータコイルの温度を推定している。
また、特許文献２に記載の発明は、測定している相の電流が０［Ａ］のタイミングで抵抗推定用の電圧を印加し、そのときの電流を電流センサによって測定し、それらの値からコイルの抵抗値を推定している。そして、推定したコイルの抵抗値からコイルの温度を推定している。
また、特許文献３に記載の発明は、モータの直流電流、電圧を測定することで、コイルの抵抗値をもとめ、求めたコイルの抵抗値からコイル温度を推定している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１８７８５６号公報
【特許文献２】特開平１０−６２２６６号公報
【特許文献３】特公昭５８−１６４５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献２に記載の発明では、モータが停止している場合だけしか測定することができず、したがってモータの動作中における巻線温度の監視には不適当である。また、特許文献３に記載の発明では、モータの動作中に測定することができる反面、モータのコイルの抵抗を測定するために電圧計などのセンサが必要である。
また、特許文献１に記載の発明では、電圧計などのセンサが不要で、モータ動作時に測定できる。しかしながら、特許文献１に記載の発明では、電圧モータの放熱モデルを事前にもとめ、モータの電流総量よりコイル温度を推定している。この結果、特許文献１に記載の発明では、積算による推定方式のため、時間の経過と共にコイル温度の推定値の誤差が蓄積されてしまうという問題点があった。
【０００６】
本発明は、上記の問題点に鑑みてなされたものであって、モータ動作時にコイル温度の推定を正確に行えるサーボモータのコイル温度検出装置、およびサーボモータを提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明に係るサーボモータのコイル温度検出装置は、動作中のモータのコイルに流れる電流のｄ軸成分及びｑ軸成分と前記モータの回転速度値とに基づき所定の温度での誘起電圧分を補正した補正電流を求める電流補正部と、前記モータに印加される電圧の指示値と前記補正電流とを用いて、逐次最小二乗法により、前記モータのコイルの抵抗値を推定する抵抗値推定部と、前記抵抗値推定部により推定された前記モータのコイルの抵抗値を所定の設定温度における前記モータのコイルの抵抗値と比較し、前記比較の結果に基づいて前記モータのコイルの温度を判別する温度判別部と、を備えることを特徴している。
【０００８】
また、本発明に係るサーボモータのコイル温度検出装置において、前記抵抗値推定部として、前記モータのコイルの抵抗値を推定する複数の抵抗値推定部を備え、前記複数の抵抗値推定部各々は、前記複数の抵抗値推定部毎に異なる温度条件に基づいて、前記モータのコイルの抵抗値を推定し、前記温度判別部は、前記複数の抵抗値推定部各々により推定された複数の抵抗値に基づき、前記モータのコイルの温度を判別するようにしてもよい。
【０００９】
また、本発明に係るサーボモータのコイル温度検出装置において、前記温度判別部は、前記複数の抵抗値推定部各々により推定された前記モータのコイルの複数の抵抗値に基づき、前記モータのコイルの温度を判別し、判別したコイルの温度が前記複数の抵抗値推定部毎に異なる温度条件に基づいて設定された温度以上の場合、前記抵抗値推定部の温度条件を変更し、前記コイルの抵抗値の推定と前記コイルの温度の判別とを繰り返し行うようにしてもよい。
【００１０】
上記目的を達成するため、本発明に係るサーボモータは、モータと、前記モータの回転速度を制御する速度制御部と、前記モータに印加される電流を制御する電流制御部と、コイル温度検出装置と、を備え、前記コイル温度検出装置は、動作中の前記モータのコイルに流れる電流のｄ軸成分及びｑ軸成分と前記モータの回転速度値とに基づき所定の温度での誘起電圧分を補正した補正電流を求める電流補正部と、前記モータに印加される電圧の指示値と前記補正電流とを用いて、逐次最小二乗法により、前記モータのコイルの抵抗値を推定する抵抗値推定部と、前記抵抗値推定部により推定された前記モータのコイルの抵抗値を所定の設定温度における前記モータのコイルの抵抗値と比較し、前記比較の結果に基づいて前記モータのコイルの温度を判別する温度判別部と、を備えることを特徴としている。
【００１１】
また、本発明に係るサーボモータは、前記抵抗値推定部として、前記モータのコイルの抵抗値を推定する複数の抵抗値推定部を備え、前記複数の抵抗値推定部各々は、前記複数の抵抗値推定部毎に異なる温度条件に基づいて、前記モータのコイルの抵抗値を推定し、前記温度判別部は、前記複数の抵抗値推定部各々により推定された複数の抵抗値に基づき、前記モータのコイルの温度を判別するようにしてもよい。
【発明の効果】
【００１２】
本発明によれば、モータに流れる電流値を、モータに発生する誘起電圧に基づく回転速度値に基づき補正した電流補正値と、モータに印加される電圧の指示値とを用いて、逐次最小二乗法により、モータのコイルの抵抗値を推定する。そして、推定されたコイルの抵抗値に基づき、モータのコイルの温度を判別するようにしたので、時間の経過と共にコイル温度の推定値の誤差が生じないサーボモータのコイル温度検出装置、およびサーボモータを実現できる。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態に係るサーボモータのブロック図である。
【図２】同実施形態に係る逐次最小二乗演算部を並列利用する例を説明する図である。
【図３】同実施形態に係るコイル温度検出器３９が行う処理の手順を示すフローチャートである。
【図４】モータコイルの等価回路である。
【図５】同実施形態に係る電流補正関数の係数の算出手順を説明する図である。
【図６】同実施形態に係る電圧指示値、速度モニタ値、電流モニタ値の取得について説明する図である。
【図７】同実施形態に係る時間に対するコイルの温度とコイルの抵抗の推定値の変化を示す図である。
【図８】同実施形態に係る正弦波速度指示の振幅を変化させた場合の時間に対するコイルの抵抗の推定値の変化を示す図である。
【図９】第２実施形態に係るサーボモータのブロック図である。
【図１０】同実施形態に係る逐次最小二乗演算部を直列利用する例を説明する図（１）である。
【図１１】同実施形態に係る逐次最小二乗演算部を直列利用する別の例を説明する図（２）である。
【図１２】同実施形態に係る逐次最小二乗演算部を直列利用する例を説明する図（３）である。
【図１３】同実施形態に係るコイル温度検出器３９ａが行う処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を用いて本発明の実施形態について詳細に説明する。なお、本発明は係る実施形態に限定されず、その技術思想の範囲内で種々の変更が可能である。
【００１５】
［第１実施形態］
図１は、本実施形態に係るサーボモータ１のブロック図である。図１に示すように、サーボモータ１は、モータ１０、上位コントローラ２０、サーボドライバ３０を備えている。
サーボドライバ３０は、第１加算部３１、位置制御部３２、第２加算部３３、第１リミッタ３４、速度制御器３５、第３加算部３６、第２リミッタ３７、電流制御器３８、コイル温度検出器３９、電流センサ４０を備えている。
【００１６】
モータ１０は、モータのロータ位置および回転速度に応じた信号を検出するエンコーダと、コイルとを有している。モータ１０には、サーボドライバ３０の電流制御部３８からの制御信号である電圧指示値が入力される。エンコーダは、ロータ位置を検出し、検出したロータ位置に関する情報を、第１加算部３１に出力する。エンコーダは、モータの回転速度を検出し、検出したモータの回転速度に関する情報を速度モニタ値として、第２加算部３３、コイル温度検出器３９に出力する。
電流センサ４０は、コイルに流れる電流を検出し、検出した電流に基づく情報を電流モニタ値として、第３加算部３６、コイル温度検出器３９に出力する。
【００１７】
上位コントローラ２０は、コイル温度検出器３９が検出したコイルの温度に関する判別結果が入力される。上位コントローラ２０は、入力されたコイルの温度に関する判別結果に基づき、モータの制御値を生成して、生成した制御値を第１加算部３１に出力する。
【００１８】
サーボドライバ３０の第１加算部３１には、上位コントローラ２０からモータの制御値と、モータ１０のエンコーダが出力したロータ位置に関する情報とが入力される。第１加算部３１は、入力されたモータの制御値からロータ位置に関する情報に基づく値を減算して、減算した制御信号を位置制御部３２に出力する
位置制御部３２は、第１加算部３１から入力された制御信号に基づき、速度制御信号を生成する。位置制御部３２は、生成した速度制御信号を第２加算部３３に出力する。
第２加算部３３には、位置制御部３２が出力した速度制御信号と、モータ１０のエンコーダが出力した速度モニタ値とが入力される。第２加算部３３は、入力された速度制御信号から速度モニタ値を減算して、減算した信号を速度制御信号として第１リミッタ３４に出力する。
第１リミッタ３４には、第２加算部３３が出力した速度制御信号と、コイル温度検出器３９が出力した検出温度の判別結果を示す信号とが入力される。第１リミッタ３４は、入力された速度制御信号と検出温度の判別結果を示す信号とに基づき、速度制御信号に対して、例えば段階的にリミッタを掛けて出力を制限する。第１リミッタ３４は、リミッタを掛けて出力制限した速度制御信号を速度制御器３５に出力する。
速度制御器３５は、第１リミッタ３４から出力された速度制御信号に基づき、電流制御信号を生成し、生成した電流制御信号を第３加算部３６に出力する。
【００１９】
第３加算部３６には、速度制御器３５から出力された電流制御信号と、電流センサ４０が出力したから出力された電流モニタ値とが入力される。第３加算部３６は、入力された電流制御信号から電流モニタ値を減算して、減算した信号を電流制御信号として第２リミッタ３７に出力する。
第２リミッタ３７には、第３加算部３６が出力した電流制御信号と、コイル温度検出器３９が出力した検出温度の判別結果を示す信号とが入力される。第２リミッタ３７は、入力された電流制御信号と検出温度の判別結果を示す信号とに基づき、電流制御信号に対して、例えば段階的にリミッタを掛けて出力を制限する。第２リミッタ３７は、リミッタ後の電流制御信号を電流制御器３８に出力する。
電流制御器３８は、第２リミッタ３７から出力された電流制御信号に基づき、電圧制御信号（以下、電圧指示値という）を生成し、生成した電圧指示値をモータ１０に出力する。
コイル温度検出器３９（電流補正部、抵抗値推定部、温度判別部）には、電流制御器３８から出力された電圧指示値、モータ１０のエンコーダから出力された速度モニタ値およびサーボドライバ３０の電流センサ４０が出力した電流モニタ値が入力される。コイル温度検出器３９は、入力された電圧指示値、速度モニタ値、電流モニタ値に基づき、モータ１０のコイルの温度を判別し、判別結果を上位コントローラ２０、第１リミッタ３４、第２リミッタ３７に出力する。
【００２０】
次に、図１のサーボモータ１の動作の概要について説明する。
コイル温度検出器３９は、入力された電流モニタ値と速度モニタ値を用いて補正電流値（仮想電流値）を算出する。また、コイル温度検出器３９は、算出された補正電流値と、入力された電圧指示値とを用いて、逐次最小二乗法により、モータ１０のコイルの抵抗値を推定する。また、コイル温度検出器３９は、推定したコイルの抵抗値に基づき、コイルの温度を判別し、判別結果を上位コントローラ２０、第１リミッタ３４、第２リミッタ３７に出力する。
上位コントローラ２０は、コイル温度検出器３９から入力されたコイルの温度の判別結果に基づき、モータの制御値を制御する。第１リミッタ３４は、コイル温度検出器３９から入力されたコイルの温度の判別結果に基づき、速度制御器３５に出力する制御値を制御する。第２リミッタ３７は、コイル温度検出器３９から入力されたコイルの温度の判別結果に基づき、電流制御器３８に出力する制御値を制御する。
上述のように、サーボモータ１は、誘起電圧分を補正した補正電流と、電圧指示値とを用いて、逐次最小二乗法によりコイルの抵抗値を推定する。そして、サーボモータ１は、推定したコイルの抵抗値に基づき、コイルの温度を判別する。この結果、モータ動作中に、コイルに発生する電圧値を実測しなくても、リアルタイムでコイルの温度を判別できる。そして、上位コントローラ２０とサーボドライバ３０は、この判別された温度結果を用いて、モータ１０を制御することで、コイルの温度に応じてモータ１０を有効に動作させることが可能になる。
【００２１】
次に、コイル温度検出器３９の動作と構成について、図２を用いて説明する。図２は、本実施形態に係る逐次最小二乗演算部を並列利用する例を説明する図である。
図２に示すように、コイル温度検出器３９は、第１電流補正関数部１０１、第２電流補正関数部１０２、第３電流補正関数部１０３、第１逐次最小二乗法演算部１０４、第２逐次最小二乗法演算部１０５、第３逐次最小二乗法演算部１０６、温度判別部１０７を備えている。
【００２２】
第１電流補正関数部１０１（電流補正部）には、電流センサ４０から電流モニタ値とモータ１０のエンコーダから速度モニタ値とが入力される。第１電流補正関数部１０１は、入力された電流モニタ値と速度モニタ値とを用いて、後述する電流補正関数により仮想電流値を算出し、算出した仮想電流値を第１逐次最小二乗法演算部１０４に出力する。
なお、第１電流補正関数部１０１に入力される電流モニタ値は、電流センサ４０からの出力に対して、例えば遮断周波数が５０［Ｈｚ］のＬＰＦ（Ｌｏｗ−Ｐａｓｓ  Ｆｉｌｔｅｒ）を行ったものであってもよい。また、第１電流補正関数部１０１に入力される速度モニタ値は、モータ１０のエンコーダからの出力に対して、例えば遮断周波数が５０［Ｈｚ］のＬＰＦを行ったものであってもよい。
第２電流補正関数部１０２（電流補正部）には、電流センサ４０から電流モニタ値とモータ１０のエンコーダから速度モニタ値とが入力される。第２電流補正関数部１０２は、後述する電流補正関数により仮想電流値を算出し、算出した仮想電流値を第２逐次最小二乗法演算部１０５に出力する。
第３電流補正関数部１０３（電流補正部）には、電流センサ４０から電流モニタ値とモータ１０のエンコーダから速度モニタ値とが入力される。第３電流補正関数部１０３は、後述する電流補正関数により仮想電流値を算出し、算出した仮想電流値を第３逐次最小二乗法演算部１０６に出力する。
【００２３】
第１電流補正関数部１０１は、第１の所定の温度が設定されている。第１の所定の温度とは、例えば、６０［度］である。
第１逐次最小二乗法演算部１０４には、電流制御部３８が出力した電圧指示値と第１電流補正関数部１０１が出力した仮想電流値とが入力さる。第１逐次最小二乗法演算部１０４は、入力された電圧指示値と仮想電流値とを用いて、後述する逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗の推定値を温度判別部１０７に出力する。
第２電流補正関数部１０２は、第２の所定の温度が設定されている。第２の所定の温度とは、例えば、９０［度］である。
第２逐次最小二乗法演算部１０５には、電流制御部３８が出力した電圧指示値と第２電流補正関数部１０２が出力した仮想電流値とが入力される。
第２逐次最小二乗法演算部１０５は、入力された電圧指示値と仮想電流値とを用いて、後述する逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部１０７に出力する。
第３電流補正関数部１０３は、第３の所定の温度が設定されている。第３の所定の温度とは、例えば、１２０［度］である。
第３逐次最小二乗法演算部１０６には、電流制御部３８が出力した電圧指示値と第３電流補正関数部１０３が出力した仮想電流値とが入力される。第３逐次最小二乗法演算部１０６は、入力された電圧指示値と仮想電流値とを用いて、後述する逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部１０７に出力する。
なお、第１逐次最小二乗法演算部１０４〜第３逐次最小二乗法演算部１０６に入力される電圧指示値は、サーボドライバ３０の電流制御器３８からの出力に対して、例えば遮断周波数が５０［Ｈｚ］のＬＰＦを行ったものであってもよい。
【００２４】
温度判別部１０７（温度判別部）には、第１逐次最小二乗法演算部１０４〜第３逐次最小二乗法演算部１０６から、各設定温度におけるコイルの抵抗値が入力される。温度判別部１０７は、入力された各設定温度におけるコイルの抵抗値に基づき、コイルの温度の状態を判別する。コイルの温度の状態とは、第１の所定の温度未満であるか、第１の所定の温度〜第２の所定の温度の範囲内であるか、第２の所定の温度〜第３の所定の温度の範囲内であるか、第３の所定の温度以上であるか、である。
温度判別部１０７は、判別結果を上位コントローラ２０、第１リミッタ３４、第２リミッタ３７に出力する。
【００２５】
次に、温度検出の手順を、図３を用いて説明する。図３は、本実施形態に係るコイル温度検出器３９が行う処理の手順を示すフローチャートである。
第１電流補正関数部１０１は、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第１逐次最小二乗法演算部１０４に出力する（ステップＳ１）。
ステップＳ１と並行して、第２電流補正関数部１０２は、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第２逐次最小二乗法演算部１０５に出力する（ステップＳ２）。
ステップＳ１、Ｓ２と並行して、第３電流補正関数部１０３は、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第３逐次最小二乗法演算部１０６に出力する（ステップＳ３）。
【００２６】
次に、第１逐次最小二乗法演算部１０４は、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部１０７に出力する（ステップＳ４）。
ステップＳ４と並行して、第２逐次最小二乗法演算部１０５は、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部１０７に出力する（ステップＳ５）。
ステップＳ４、Ｓ５と並行して、第３逐次最小二乗法演算部１０６は、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部１０７に出力する（ステップＳ６）。
【００２７】
次に、温度判別部１０７は、入力されたコイルの抵抗値に基づき、コイルの温度を判別する（ステップＳ７）。具体的には、温度判別部１０７が、ステップＳ４〜Ｓ６で算出されたコイルの抵抗値に基づき、コイルの温度が、第１の所定の温度未満であるか、第１の所定の温度〜第２の所定の温度の範囲内か、第２の所定の温度〜第３の所定の温度の範囲内か、第３の所定の温度以上であるかを判別する。温度判別部１０７は、判別結果を上位コントローラ２０、第１リミッタ３４、第２リミッタ３７に出力する。
【００２８】
なお、本実施形態では、ステップＳ１〜ステップＳ３を並行して行う例を説明したが、例えば、ステップＳ１終了後にステップＳ２を行い、ステップＳ２終了後にステップＳ３を行うようにしてもよい。または、処理する順番はこれに限らず、ステップＳ２、あるいはステップＳ３をステップＳ１より先に行うようにしてもよい。同様に、ステップＳ３〜Ｓ４も並行して行わずに、所定の順番またはランダムに処理を行うようにしてもよい。
【００２９】
次に、コイルの温度を算出する方法について説明する。図４は、モータコイルの等価回路である。図４に示すように、モータコイルは、等価的にインダクタンスＬ、抵抗Ｒで表される。抵抗ＲとインダクタンスＬに流れる電流をＩとすると、電源の電圧Ｖは、次式（１）のように表される。
【００３０】
【数１】
0005852780.tif 000002
【００３１】
式（１）を伝達関数Ｇ（ｓ）で表すと、次式（２）のように表される。
【００３２】
【数２】
0005852780.tif 000003
【００３３】
式（２）を双一次変換すると、次式（３）のように表される。
【００３４】
【数３】
0005852780.tif 000004
【００３５】
式（３）において、Ｔｓはサンプリング周期［ｓ］である。
ｋ番目のサンプリング時の電圧をＶｋ、電流をＩｋと置くと、式（３）は、次式（４）のように置き換えられる。
【００３６】
【数４】
0005852780.tif 000005
【００３７】
αを次式（５）、βを次式（６）のように置くと、式（４）は、次式（７）のように置き換えられる。
【００３８】
【数５】
0005852780.tif 000006
【００３９】
【数６】
0005852780.tif 000007
【００４０】
【数７】
0005852780.tif 000008
【００４１】
式（５）と式（６）を用いて、次式（８）により抵抗Ｒの抵抗値を算出できる。
【００４２】
【数８】
0005852780.tif 000009
【００４３】
この抵抗値を算出するために、式（７）に対して逐次最小二乗法により、次式（９）の値を最小にするαとβを算出する。なお、忘却要素λは、１以下の正数である。
【００４４】
【数９】
0005852780.tif 000010
【００４５】
式（９）に最小二乗法を適用すると、次式（１０）の連立方程式のように表される。
【００４６】
【数１０】
0005852780.tif 000011
【００４７】
式（１０）の連立方程式を解き、逐次形式にすることで次式（１１）が得られる。
【００４８】
【数１１】
0005852780.tif 000012
【００４９】
式（１１）において、Ｐ（ｋ）は、次式（１２）のように表される。なお、式（１１）において、Ｐ（ｋ）−１は、２行×２列の正方行列であるため、容易に計算することが可能である。
【００５０】
【数１２】
0005852780.tif 000013
【００５１】
次に、サーボモータへの上述した逐次最小二乗法の適用について説明する。
まず、ｄｑ座標でのモータの電圧方程式は、次式（１３）のように表される。
【００５２】
【数１３】
0005852780.tif 000014
【００５３】
なお、式（１３）において、Ｖｄは電機子電圧のｄ軸成分、Ｖｑは電機子電圧のｑ軸成分、Ｌｄはｄ軸のインダクタンス、Ｌｑはｑ軸のインダクタンスである。また、ω〜は電気角速度、Ｒａは電機子巻線抵抗（コイル抵抗）、ｐ（＝ｄ／ｄｔ）は微分演算子、Φａ（＝√（３／２）Φｆ）は電機子鎖交磁束、Φｆは電機子鎖交磁束の最大値である。
Ｉｄ＝０とすると、式（１３）は次式（１４）のようになる。
【００５４】
【数１４】
0005852780.tif 000015
【００５５】
なお、式（１４）において、ωは機械角速度、Ｐは極対数、Ｋｅ＝ΦａＰである。
逐次最小二乗法を適用するために、誘起電圧の影響を排除する必要がある。このため、式（１４）の右辺の項Ｋｅωを左辺に移動させ、速度に応じて電圧を補正すると、次式（１５）のように表される。
【００５６】
【数１５】
0005852780.tif 000016
【００５７】
式（１５）において、Ｖｑ―Ｋｅωを電圧Ｖとする。
次に、速度に応じて電流を補正すると、次式（１６）のように表される。
【００５８】
【数１６】
0005852780.tif 000017
【００５９】
式（１６）において、Ｉｑ＋Ｋｅ／Ｒａωを電流Ｉとする。
次に、電圧指示値の非線形性を考慮し、Ｉｑ＋Ｋｅ／Ｒａωを、Ｉｑとωを変数とする３次関数（電流補正関数）ｆ（Ｉｑ，ω）に置き換えることで、式（１６）を次式（１７）に置き換えられる。
【００６０】
【数１７】
0005852780.tif 000018
【００６１】
なお、式（１７）において、電流補正関数ｆ（Ｉｑ，ω）は、次式（１８）である。
【００６２】
【数１８】
0005852780.tif 000019
【００６３】
式（１８）において、Ｃ１０、Ｃ０１、Ｃ３０、Ｃ２１、Ｃ１２、Ｃ０３は係数である。
なお、電流補正関数ｆ（Ｉｑ，ω）として、式（１８）のように３次の例を説明したが、電流補正関数の次数は３次に限らず、奇関数であれば、例えば５次以上であってもよい。
【００６４】
次に、式（１８）の係数の算出手順について、図５、図６を用いて説明する。
図５は、本実施形態に係る電流補正関数の係数の算出手順を説明する図である。まず、システム設計者が、目標温度（例えば、６０［度］、９０［度］、１２０［度］）において、電圧指令値、ｑ軸の電流モニタ値、速度モニタ値の各値を測定する。
次に、システム設計者は、目標温度で、モータにおけるコイルのインダクタンスＬ、抵抗値Ｒを測定する。
次に、システム設計者は、実測した電圧指示値、コイルのインダクタンスＬ、抵抗値Ｒ、および式（２）を用いて、仮想電流値Ｉを算出する。なお、仮想電流値Ｉの算出は、例えば、微分方程式に対して数値計算により行う。
次に、システム設計者は、実測したｑ軸の電流モニタ値、速度モニタ値、算出された仮想電流値Ｉを用いて、式（１８）に最小二乗法を用いて、係数Ｃ１０、Ｃ０１、Ｃ３０、Ｃ２１、Ｃ１２、Ｃ０３を算出する。このように算出された係数Ｃ１０、Ｃ０１、Ｃ３０、Ｃ２１、Ｃ１２、Ｃ０３は、第１電流補正関数部１０１〜第３電流補正関数部１０３に書き込んで記憶する。
なお、以上では、システム設計者が係数を算出する例を説明したが、サーボモータ１に不図示の係数演算部をさらに設け、この係数演算部が係数を算出するようにしてもよい。
【００６５】
図６は、本実施形態に係る電圧指示値、速度モニタ値、電流モニタ値の取得について説明する図である。
図６に示すように、測定対象となるモータ２０１は、取り付け台２１０に取り付けられている。モータ２０１には、治具２２２を介して負荷をかけるためのモータ（以下、負荷モータという）２２０が取り付けられている。また、モータ２０１には、モータ２０１のコイル温度を測定するための熱電対２３０が取り付けられている。なお、モータ２０１は、図１のサーボモータ１である。
【００６６】
サーボモータ１は、以下の手順で電圧指示値、速度モニタ値、電流モニタ値の取得を行う。
（I）上位コントローラ２０は、モータ２０１に回転速度が一定となるよう制御する。
（II）不図示の駆動部は、負荷モータ２２０に、例えば正弦波状の駆動信号を供給する。
（III）システム設計者は、熱電対２３０によりモータ２０１の温度を観測し、モータ２０１が予め定めておいた温度に達したときの電圧指示値、および速度モニタ値、電流モニタ値を読み取り記録する。なお、予め定めておいた温度とは、例えば、６０［度］、９０［度］、１２０［度］である。
（IV）上位コントローラ２０からの回転速度を変えて、（I）〜（III）を繰り返す。
システム設計者は、以上の手順で測定された電圧指示値、速度モニタ値、電流モニタ値から係数Ｃ１０、Ｃ０１、Ｃ３０、Ｃ２１、Ｃ１２、Ｃ０３を算出し、算出した係数を第１電流補正関数部１０１〜第３電流補正関数部１０３に書き込んで記憶させておく。
【００６７】
次に、本実施形態に係るサーボモータ１に対して、負荷を外部から掛けて動作を確認した結果について説明する。以下の実験例では、サーボモータ１は、温度が１２０［度］以上になったと判別された場合に、モータ１０に対して電圧指示値を制御するように設定した例である。
図７は、時間に対するコイル温度とコイルの抵抗の推定値の変化を示す図である。また、図７（ａ）は、時間に対するコイル温度変化の一例を示す図であり、図７（ｂ）は、時間に対するコイルの抵抗値の推定値の一例を示す図である。図７（ａ）において、横軸は時間、縦軸はモータ１０のコイルの温度（コイル温度）であり、曲線ｇ３０１は時間に対するコイル温度の変化である。図７（ｂ）において、横軸は時間、縦軸はコイルの推定抵抗値であり、曲線ｇ３０２は時間に対するコイルの推定抵抗値の変化である。なお、図７（ｂ）のコイルの温度は、熱電対による実測値である。
図７（ａ）に示すように、時刻０の時、上位コントローラ２０は、サーボドライバ３０に正弦波状の速度指示値を出力する。速度指示値は、振幅±５０００［ｒｐｍ］、周波数３［Hz］である。
【００６８】
時刻、約３秒の時、図６で説明したように、負荷モータに正弦波状の駆動電流を供給し始める。負荷モータに供給する正弦波状の駆動電流は、±２０［Ａｉｑ］（電流増幅度）、周波数３［Hz］である。この結果、時刻３秒〜時刻３３秒の期間、曲線ｇ３０１のように実測のコイルの温度は上昇する。また、時刻３秒〜時刻３３秒の期間、推定されたコイルの推定抵抗値は、曲線ｇ３０２のように増加する。
時刻、約３３秒の時、図７（ｂ）のように、コイルの推定抵抗値は、約０．４３［Ω］になる。モータ１０が１２０［度］の時の抵抗値は、予め測定により求めてあり、約０．４３［Ω］である。このため、温度判別部１０７は、モータ１０の抵抗値からコイルの温度が１２０［度］を超えていると判別し、上位コントローラ２０に判別結果を出力する。図７（ｂ）のように、上位コントローラ２０は、入力された判別結果に基づき、時刻３３秒〜時刻４７秒までの期間、サーボ状態をオフしている。この結果、図７（ａ）のように、コイルの温度は、サーボオフから少し遅れて、時刻３５秒〜時刻４７秒の期間、１２０［度］から徐々に下がっていく。
【００６９】
そして、時刻６２秒の時、温度判別部１０７は、コイルの抵抗値が約０．４３［Ω］に達したため、コイルの温度が１２０［度］以上になったと判別し、上位コントローラ２０に判別結果を出力する。
以上のように、本実施形態に係るサーボモータ１は、設定した１２０度と推定した時刻で制御が係っていることから、精度良くコイルの温度を判別できていることを表している。
サーボ状態をオフで温度推定を行わない理由を説明する。サーボ状態をオフした状態では、電圧指令が出ていないためである。このため、温度が一定値に達したらサーボ状態をオフするのではなく電流を絞るような制御をしてもよい。この場合、コイル温度の推定結果による電流の制御が可能となる。
【００７０】
図８は、正弦波速度指示の振幅を変化させた場合の時間に対するコイルの抵抗の推定値の変化を示す図である。図８において、上位コントローラ２０は、サーボドライバ３０に正弦波状の速度指示値を、回転速度が±１０００［ｒｐｍ］〜±５０００［ｒｐｍ］になるように変化させている。図８において、横軸はコイルの温度、縦軸はコイルの推定抵抗値である。図８において、曲線ｇ４０１〜ｇ４０５は、それぞれ回転数±１０００［ｒｐｍ］、±２０００［ｒｐｍ］、±３０００［ｒｐｍ］、±４０００［ｒｐｍ］、±５０００［ｒｐｍ］のコイルの温度に対するコイルの推定抵抗値である。
図８に示すように、コイルの推定抵抗値が約０．４３１［Ω］において、回転速度が異なってもコイルの温度がほぼ一致している。このように、モータ１０の特性により、温度判別部１０７は、回転速度毎にコイルの温度とコイルの推定抵抗値を記憶しておかなくても、１つの回転速度に共通の値のみを記憶しておくようにしてもよい。また、温度判別部１０７は、このように回転速度が変化しても、コイルの温度とコイルの推定抵抗値が一致するポイントｇ４１０のみの推定抵抗値により、コイルの温度を判別するようにしてもよい。
【００７１】
また、本実施形態では、温度判別部１０７が、コイルの温度とコイルの推定抵抗値の関係を記憶しておく例を説明したが、コイル温度検出器３９の内部、または外部に設けられている不図示の記憶部に記憶させておくようにしてもよい。
【００７２】
なお、本実施形態では、コイル温度検出器３９が、予め設定された温度に対して判別を行う例を説明したが、推定したコイルの抵抗値に基づいて、コイルの温度を推定するようにしてもよい。この場合、コイル温度検出器３９は、推定したコイルの温度を示す情報を、上位コントローラ２０等に出力するようにしてもよい。
【００７３】
以上のように、コイル温度検出器３９の第１電流補正関数部１０１〜第３電流補正関数部１０３は、入力された電流モニタ値と速度モニタ値を用いて補正電流値（仮想電流値）を算出する。また、第１逐次最小二乗法演算部１０４〜第３逐次最小二乗法演算部１０６は、算出された補正電流値と、入力された電圧指示値とを用いて、逐次最小二乗法により、モータ１０のコイルの抵抗値を推定する。また、温度判別部１０７は、推定したコイルの抵抗値に基づき、コイルの温度を判別し、判別結果を上位コントローラ２０、第１リミッタ３４、第２リミッタ３７に出力する。
上位コントローラ２０、第１リミッタ３４、第２リミッタ３７は、入力されたコイルの温度の判別結果に基づき、モータの制御値を制御する。この結果、リアルタイムにコイルの抵抗値を推定し、推定したコイルの抵抗値に基づいてコイルの温度を判別するようにしたので、モータ動作中に、モータのコイルの温度を正確に判別することができる。また、本実施形態に係るサーボモータは、従来技術のように予めモデルを作成しておき積算してコイルの温度を推定しないため、時間の経過と共にコイルの温度の推定値の誤差が生じない。そして、上位コントローラ２０とサーボドライバ３０は、この判別された結果を用いて、モータを制御することで、コイルの温度に応じてモータを有効に動作させることが可能になる効果がある。
【００７４】
［第２実施形態］
第１実施形態では、コイル温度検出器３９において、複数の逐次最小二乗法演算部を並列で用いる例を説明した。第２実施形態は、複数の逐次最小二乗法演算部を直列に用いる例について説明する。
図９は、本実施形態に係るサーボモータのブロック図である。図９に示すように、サーボモータ１ａは、モータ１０、上位コントローラ２０、サーボドライバ３０ａを備えている。サーボドライバ３０ａは、第１加算部３１、位置制御部３２、第２加算部３３、第１リミッタ３４、速度制御器３５、第３加算部３６、第２リミッタ３７、電流制御器３８、コイル温度検出器３９ａ、電流センサ４０を備えている。第１実施形態と同じ機能部は、同じ符号を用いて、説明を省略する。
【００７５】
図１０は、本実施形態に係る逐次最小二乗演算部を直列利用する別の例を説明する図（１）である。図１１は、本実施形態に係る逐次最小二乗演算部を直列利用する別の例を説明する図（２）である。図１２は、本実施形態に係る逐次最小二乗演算部を直列利用する別の例を説明する図（３）である。
【００７６】
図１０〜図１２に示すように、コイル温度検出器３９ａは、設定切替部１００ａ、第１電流補正関数部１０１ａ、第２電流補正関数部１０２ａ、第３電流補正関数部１０３ａ、第１逐次最小二乗法演算部１０４ａ、第２逐次最小二乗法演算部１０５ａ、第３逐次最小二乗法演算部１０６ａ、温度判別部１０７ａを備えている。
設定切替部１００ａ（温度判別部）には、電流制御器３８が出力する電圧指示値と、モータ１０のエンコーダが出力する速度モニタ値と、電流センサ４０が出力する電流モニタ値とが入力される。設定切替部１００ａは、入力された電圧指示値、速度モニタ値、電流モニタ値を、第１電流補正関数部１０１ａ〜第３電流補正関数部１０３ａ及び第１逐次最小二乗法演算部１０４ａ〜第３逐次最小二乗法演算部１０６ａの各々の出力先を切り替えて出力する。すなわち、図１０に示すように、設定切替部１００ａは、入力された電圧指示値を第１逐次最小二乗法演算部１０４ａに出力する様に切り替え、入力された速度モニタ値と電流モニタ値を第１電流補正関数部１０１ａに出力するように切り替える。次に、図１１に示すように、設定切替部１００ａは、入力された電圧指示値を第２逐次最小二乗法演算部１０５ａに出力する様に切り替え、入力された速度モニタ値と電流モニタ値を第２電流補正関数部１０２ａに出力するように切り替える。次に、図１２に示すように、設定切替部１００ａは、入力された電圧指示値を第３逐次最小二乗法演算部１０６ａに出力する様に切り替え、入力された速度モニタ値と電流モニタ値を第３電流補正関数部１０３ａに出力するように切り替える。
【００７７】
第１電流補正関数部１０１ａ（電流補正部）には、電流モニタ値と速度モニタ値とが入力される。第１電流補正関数部１０１ａは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を、第１逐次最小二乗法演算部１０４ａに出力する。第１電流補正関数部１０１ａは、第１の所定の温度が設定されている。第１の所定の温度とは、例えば、６０［度］である。
第１逐次最小二乗法演算部１０４ａには、設定切替部１００ａが出力した電圧指示値と第１電流補正関数部１０１ａが出力した仮想電流値とが入力さる。第１逐次最小二乗法演算部１０４ａは、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部１０７ａに出力する。
【００７８】
第２電流補正関数部１０２ａ（電流補正部）には、電流モニタ値と速度モニタ値とが入力される。第２電流補正関数部１０２ａは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を、第２逐次最小二乗法演算部１０５ａに出力する。第２電流補正関数部１０２ａは、第２の所定の温度が設定されている。第２の所定の温度とは、例えば、９０［度］である。
第２逐次最小二乗法演算部１０５ａには、設定切替部１００ａが出力した電圧指示値と第２電流補正関数部１０２ａが出力した仮想電流値とが入力される。第２逐次最小二乗法演算部１０５ａは、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部１０７ａに出力する。
【００７９】
第３電流補正関数部１０３ａ（電流補正部）には、電流モニタ値と速度モニタ値とが入力される。第３電流補正関数部１０３ａは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を、第３逐次最小二乗法演算部１０６ａに出力する。第３電流補正関数部１０３ａは、第３の所定の温度が設定されている。第３の所定の温度とは、例えば、１２０［度］である。
第３逐次最小二乗法演算部１０６ａには、設定切替部１００ａが出力した電圧指示値と第３電流補正関数部１０３ａが出力した仮想電流値とが入力される。第３逐次最小二乗法演算部１０６ａは、入力された電圧指示値と仮想電流値とを用いて、後述逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部１０７ａに出力する。
【００８０】
温度判別部１０７ａ（温度判別部）には、第１逐次最小二乗法演算部１０４ａ〜第３逐次最小二乗法演算部１０６ａから、順次、各設定温度におけるコイルの抵抗値が入力される。温度判別部１０７ａは、入力された各設定温度におけるコイルの抵抗値に基づき、コイルの温度の状態を判別する。コイルの温度の状態とは、第１の所定の温度以下であるか、第１の所定の温度〜第２の所定の温度であるか、第２の所定の温度〜第３の所定の温度であるか、第３の所定の温度以上であるか、である。
温度判別部１０７ａは、判別結果を上位コントローラ２０、第１リミッタ３４、第２リミッタ３７に出力する。
【００８１】
次に、温度検出の手順を、図１０〜図１３説明する。図１３は、本実施形態に係るコイル温度検出器３９ａが行う処理の手順を示すフローチャートである。
まず、図１０に示すように、設定切替部１００ａは、温度判別部１０７ａの指示により電圧指示値を第１逐次最小二乗法演算部１０４ａに出力するように切り替え、電流モニタ値と速度モニタ値を第１電流補正関数部１０１ａに出力するように設定を切り替える（ステップＳ１０１）。
次に、第１電流補正関数部１０１ａは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第１逐次最小二乗法演算部１０４ａに出力する（ステップＳ１０２）。
次に、第１逐次最小二乗法演算部１０４ａは、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部１０７ａに出力する（ステップＳ１０３）。
【００８２】
温度判別部１０７ａは、入力されたコイルの抵抗値に基づき、コイルの温度が所定の期間、第１の所定の温度以上であるか否かを判別する（ステップＳ１０４）。なお、所定の期間とは、例えば１秒間である。
コイルの温度が所定の期間、第１の所定の温度未満である場合（ステップＳ１０５；Ｎｏ）、温度判別部１０７ａは、コイルの温度が第１の所定の温度未満にあると判別する。温度判別部１０７ａは、判別結果を上位コントローラ２０、第１リミッタ３４、第２リミッタ３７に出力し、ステップＳ１１６に進む。
コイルの温度が所定の期間、第１の所定の温度以上である場合（ステップＳ１０５；Ｙｅｓ）、温度判別部１０７ａは、判別結果を上位コントローラ２０、第１リミッタ３４、第２リミッタ３７、設定切替部１００ａに出力し、ステップＳ１１６に進む。
【００８３】
次に、図１１に示すように、設定切替部１００ａは、温度判別部１０７ａの指示により、電流指示値を第２逐次最小二乗法演算部１０５ａに出力するように切り替え、電流モニタ値と速度モニタ値を第２電流補正関数部１０２ａに出力するように設定を切り替える指示を出力する（ステップＳ１０６）。
次に、第２電流補正関数部１０２ａは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第２逐次最小二乗法演算部１０５ａに出力する（ステップＳ１０７）。
次に、第２逐次最小二乗法演算部１０５ａは、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部１０７ａに出力する（ステップＳ１０８）。
【００８４】
温度判別部１０７ａは、入力されたコイルの抵抗値に基づき、コイルの温度が所定の期間、第２の所定の温度以上であるか否かを判別する（ステップＳ１０９）。
コイルの温度が所定の期間、第２の所定の温度未満である場合（ステップＳ１１０；Ｎｏ）、温度判別部１０７ａは、コイルの温度が第１の所定の温度〜第２の所定の温度の範囲にあると判別する。温度判別部１０７ａは、判別結果を上位コントローラ２０、第１リミッタ３４、第２リミッタ３７に出力し、ステップＳ１１６に進む。
コイルの温度が所定の期間、第２の所定の温度以上である場合（ステップＳ１１０；Ｙｅｓ）、温度判別部１０７ａは、判別結果を上位コントローラ２０、第１リミッタ３４、第２リミッタ３７、設定切替部１００ａに出力し、ステップＳ１１１に進む。
【００８５】
次に、図１２に示すように、設定切替部１００ａは、温度判別部１０７ａの指示により、電流指示値を第３逐次最小二乗法演算部１０６ａに出力するように切り替え、電流モニタ値と速度モニタ値を第３電流補正関数部１０３ａに出力するように設定を切り替える指示を出力する（ステップＳ１１１）。
次に、第３電流補正関数部１０３ａは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第３逐次最小二乗法演算部１０６ａに出力する（ステップＳ１１２）。
次に、第３逐次最小二乗法演算部１０６ａは、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部１０７ａに出力する（ステップＳ１１３）。
【００８６】
温度判別部１０７ａは、入力されたコイルの抵抗値に基づき、コイルの温度が所定の期間、第３の所定の温度以上であるか否かを判別する（ステップＳ１１４）。
コイルの温度が所定の期間、第３の所定の温度未満である場合（ステップＳ１１５；Ｎｏ）、温度判別部１０７ａは、コイルの温度が第２の所定の温度〜第３の所定の温度の範囲にあると判別する。温度判別部１０７ａは、判別結果を上位コントローラ２０、第１リミッタ３４、第２リミッタ３７に出力し、ステップＳ１１６に進む。
コイルの温度が所定の期間、第３の所定の温度以上である場合（ステップＳ１１５；Ｙｅｓ）、温度判別部１０７ａは、判別結果を上位コントローラ２０、第１リミッタ３４、第２リミッタ３７に出力し、ステップＳ１１６に進む。
【００８７】
温度判別部１０７ａは、ステップＳ１０５、Ｓ１１０、Ｓ１１５の判別結果に基づき、設定切替部１００ａの設定を切り替える（ステップＳ１１６）。すなわち、ステップＳ１０５でコイルの温度が所定の期間、第１の所定の温度未満である場合、温度判別部１０７ａは、ステップＳ１０１に戻る設定、処理を行う。ステップＳ１０９でコイルの温度が所定の期間、第１の所定の温度〜第２の所定の温度の範囲内である場合、温度判別部１０７ａは、ステップＳ１０１に戻る設定、処理を行う。ステップＳ１１５でコイルの温度が所定の期間、第２の所定の温度〜第３の所定の温度の範囲内である場合温度判定部１０７は、ステップＳ１０６に戻る設定を行う。または第３の所定の温度以上である場合、温度判別部１０７ａは、ステップＳ１１１に戻る設定、処理を行う。
【００８８】
なお、本実施形態では、３つの第１逐次最小二乗法演算部１０４ａ〜第３逐次最小二乗法演算部１０６ａを用いる例を説明したが、逐次最小二乗法演算部は１つでもよい。この場合、温度判別部１０７ａは、ステップＳ１０１で逐次最小二乗法演算部に第１の所定温度を設定し、ステップＳ１０６で逐次最小二乗法演算部に第２の所定温度を設定し、ステップＳ１１１で逐次最小二乗法演算部に第３の所定温度を設定することで、図１０〜図１２と同様の動作を行うことができる。
【００８９】
以上のように、異なる温度設定の電流補正関数部が算出した仮想電流と電圧指示値に基づき、逐次最小二乗法演算部がコイルの温度の推定を行う。そして、コイル温度判別部は、逐次最小二乗法演算部が推定したコイルの温度に基づき、順次、コイルの温度を判別するようにした。あるいは、コイル温度判別部は、１つの電流補正関数部に対して順次、温度設定を行い、逐次最小二乗法演算部が算出したコイルの温度の推定に基づき、順次、コイルの温度を判別するようにした。この結果、リアルタイムにコイルの抵抗値を推定し、推定したコイルの抵抗値に基づいてコイルの温度を判別するようにしたので、モータの動作中に、コイルの温度を正確に推定することができる。
このため、本実施形態に係るサーボモータは、従来技術のように予めモデルを作成しておき積算してコイルの温度を推定しないため時間の経過と共にコイルの温度の推定値の誤差が生じない。また、モータ動作中に、コイルに発生する電圧値を実測しなくても、リアルタイムでコイルの温度を推定できる。そして、上位コントローラ２０とサーボドライバ３０は、この推定された結果を用いて、モータを制御することで、コイルの温度に応じてモータを有効に動作させることが可能になる効果がある。
【００９０】
なお、実施形態の図１、図２、図９〜図１２の各部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ等の可搬媒体、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）  Ｉ／Ｆ（インタフェース）を介して接続されるＵＳＢメモリ、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、サーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【符号の説明】
【００９１】
１・・・サーボモータ  １０・・・モータ  １１・・・コイル
２０・・・上位コントローラ
３０・・・サーボドライバ  ３１・・・第１加算部  ３２・・・位置制御部  
３３・・・第２加算部  ３４・・・第１リミッタ  ３５・・・速度制御器  
３６・・・第３加算部  ３７・・・第２リミッタ  ３８・・・電流制御器  
３９、３９ａ・・・コイル温度検出器  １００ａ・・・設定切替部
１０１、１０１ａ・・・第１電流補正関数部
１０２、１０２ａ・・・第２電流補正関数部
１０３、１０３ａ・・・第３電流補正関数部
１０４、１０４ａ・・・第１逐次最小二乗法演算部
１０５、１０５ａ・・・第２逐次最小二乗法演算部  
１０６、１０６ａ・・・第３逐次最小二乗法演算部  １０７、１０７ａ・・・温度判別部
【図１】
0005852780.tif 000020
【図２】
0005852780.tif 000021
【図３】
0005852780.tif 000022
【図４】
0005852780.tif 000023
【図５】
0005852780.tif 000024
【図６】
0005852780.tif 000025
【図７】
0005852780.tif 000026
【図８】
0005852780.tif 000027
【図９】
0005852780.tif 000028
【図１０】
0005852780.tif 000029
【図１１】
0005852780.tif 000030
【図１２】
0005852780.tif 000031
【図１３】
0005852780.tif 000032