サーボモータのコイル温度検出装置、およびサーボモータ
【課題】モータ動作時にコイル温度の推定値を正確に行えるサーボモータのコイル温度検出装置、およびサーボモータを提供することを目的としている。
【解決手段】モータに流れる電流値を、前記モータに発生する誘起電圧に基づく回転速度値に基づき補正する電流補正部(101〜103)と、前記モータに印加される電圧の指示値と、前記補正された電流値とを用いて、逐次最小二乗法により、前記モータのコイルの抵抗値を推定する抵抗値推定部(104〜106)と、前記推定された抵抗値に基づき、前記モータのコイルの温度を判別する温度判別部107とを備える。
【解決手段】モータに流れる電流値を、前記モータに発生する誘起電圧に基づく回転速度値に基づき補正する電流補正部(101〜103)と、前記モータに印加される電圧の指示値と、前記補正された電流値とを用いて、逐次最小二乗法により、前記モータのコイルの抵抗値を推定する抵抗値推定部(104〜106)と、前記推定された抵抗値に基づき、前記モータのコイルの温度を判別する温度判別部107とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーボモータのコイル温度検出装置、およびサーボモータに関する。
【背景技術】
【0002】
ロボット用サーボモータは、産機用サーボモータと違い定格範囲を決めた運転を行わないため、高負荷な運転が続きモータのコイルが発熱し、モータが焼損してしまう危険がある。このため、一般的に、モータの限界に対して大きなマージンを取られているため、モータ本来の力が引き出されていない。モータを有効に使用するために、温度センサを用いて直接的もしくは間接的にコイル温度を計測するか、または推測している。
【0003】
例えば、特許文献1に記載の発明は、モータの温度モデルを事前に求めておき、流れた電流の加算により現在のモータコイルの温度を推定している。
また、特許文献2に記載の発明は、測定している相の電流が0[A]のタイミングで抵抗推定用の電圧を印加し、そのときの電流を電流センサによって測定し、それらの値からコイルの抵抗値を推定している。そして、推定したコイルの抵抗値からコイルの温度を推定している。
また、特許文献3に記載の発明は、モータの直流電流、電圧を測定することで、コイルの抵抗値をもとめ、求めたコイルの抵抗値からコイル温度を推定している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−187856号公報
【特許文献2】特開平10−62266号公報
【特許文献3】特公昭58−16459号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献2に記載の発明では、モータが停止している場合だけしか測定することができず、したがってモータの動作中における巻線温度の監視には不適当である。また、特許文献3に記載の発明では、モータの動作中に測定することができる反面、モータのコイルの抵抗を測定するために電圧計などのセンサが必要である。
また、特許文献1に記載の発明では、電圧計などのセンサが不要で、モータ動作時に測定できる。しかしながら、特許文献1に記載の発明では、電圧モータの放熱モデルを事前にもとめ、モータの電流総量よりコイル温度を推定している。この結果、特許文献1に記載の発明では、積算による推定方式のため、時間の経過と共にコイル温度の推定値の誤差が蓄積されてしまうという問題点があった。
【0006】
本発明は、上記の問題点に鑑みてなされたものであって、モータ動作時にコイル温度の推定を正確に行えるサーボモータのコイル温度検出装置、およびサーボモータを提供することを目的としている。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明に係るサーボモータのコイル温度検出装置は、モータに流れる電流値を、前記モータに発生する誘起電圧に基づく回転速度値に基づき補正する電流補正部と、前記モータに印加される電圧の指示値と、前記補正された電流値とを用いて、逐次最小二乗法により、前記モータのコイルの抵抗値を推定する抵抗値推定部と、前記推定された抵抗値に基づき、前記モータのコイルの温度を判別する温度判別部と、を備えることを特徴としている。
【0008】
また、本発明に係るサーボモータのコイル温度検出装置において、前記抵抗値推定部は、予め設定された異なる温度条件に基づいて、前記モータのコイルの抵抗値を推定するようにしてもよい。
【0009】
また、本発明に係るサーボモータのコイル温度検出装置において、前記温度判別部は、前記推定された抵抗値に基づき、前記モータのコイルの温度を判別し、判別したコイルの温度が前記設定された温度以上の場合、前記抵抗値推定部の温度条件を変更し、前記コイルの抵抗値の推定と前記コイルの温度の判別とを繰り返し行うようにしてもよい。
【0010】
また、本発明に係るサーボモータのコイル温度検出装置において、複数の前記抵抗値推定部を備え、前記複数の抵抗値推定部各々は、前記複数の抵抗値推定部毎に異なる温度条件に基づいて、前記モータのコイルの抵抗値を推定し、前記温度判別部は、前記推定された複数の抵抗値に基づき、前記モータのコイルの温度を判別するようにしてもよい。
【0011】
上記目的を達成するため、本発明に係るサーボモータは、モータと、前記モータの回転速度を制御する速度制御部と、前記モータに印加される電流を制御する電流制御部と、コイル温度検出装置と、を備え、前記コイル温度検出装置は、モータに流れる電流値を、前記モータに発生する誘起電圧に基づく回転速度値に基づき補正する電流補正部と、前記モータに印加される電圧の指示値と、前記補正された電流値とを用いて、逐次最小二乗法により、前記モータのコイルの抵抗値を推定する抵抗値推定部と、前記推定された抵抗値に基づき、前記モータのコイルの温度を判別する温度判別部と、を備えることを特徴としている。
【発明の効果】
【0012】
本発明によれば、モータに流れる電流値を、モータに発生する誘起電圧に基づく回転速度値に基づき補正した電流補正値と、モータに印加される電圧の指示値とを用いて、逐次最小二乗法により、モータのコイルの抵抗値を推定する。そして、推定されたコイルの抵抗値に基づき、モータのコイルの温度を判別するようにしたので、時間の経過と共にコイル温度の推定値の誤差が生じないサーボモータのコイル温度検出装置、およびサーボモータを実現できる。
【図面の簡単な説明】
【0013】
【図1】第1実施形態に係るサーボモータのブロック図である。
【図2】同実施形態に係る逐次最小二乗演算部を並列利用する例を説明する図である。
【図3】同実施形態に係るコイル温度検出器39が行う処理の手順を示すフローチャートである。
【図4】モータコイルの等価回路である。
【図5】同実施形態に係る電流補正関数の係数の算出手順を説明する図である。
【図6】同実施形態に係る電圧指示値、速度モニタ値、電流モニタ値の取得について説明する図である。
【図7】同実施形態に係る時間に対するコイルの温度とコイルの抵抗の推定値の変化を示す図である。
【図8】同実施形態に係る正弦波速度指示の振幅を変化させた場合の時間に対するコイルの抵抗の推定値の変化を示す図である。
【図9】第2実施形態に係るサーボモータのブロック図である。
【図10】同実施形態に係る逐次最小二乗演算部を直列利用する例を説明する図(1)である。
【図11】同実施形態に係る逐次最小二乗演算部を直列利用する別の例を説明する図(2)である。
【図12】同実施形態に係る逐次最小二乗演算部を直列利用する例を説明する図(3)である。
【図13】同実施形態に係るコイル温度検出器39aが行う処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、図面を用いて本発明の実施形態について詳細に説明する。なお、本発明は係る実施形態に限定されず、その技術思想の範囲内で種々の変更が可能である。
【0015】
[第1実施形態]
図1は、本実施形態に係るサーボモータ1のブロック図である。図1に示すように、サーボモータ1は、モータ10、上位コントローラ20、サーボドライバ30を備えている。
サーボドライバ30は、第1加算部31、位置制御部32、第2加算部33、第1リミッタ34、速度制御器35、第3加算部36、第2リミッタ37、電流制御器38、コイル温度検出器39、電流センサ40を備えている。
【0016】
モータ10は、モータのロータ位置および回転速度に応じた信号を検出するエンコーダと、コイルとを有している。モータ10には、サーボドライバ30の電流制御部38からの制御信号である電圧指示値が入力される。エンコーダは、ロータ位置を検出し、検出したロータ位置に関する情報を、第1加算部31に出力する。エンコーダは、モータの回転速度を検出し、検出したモータの回転速度に関する情報を速度モニタ値として、第2加算部33、コイル温度検出器39に出力する。
電流センサ40は、コイルに流れる電流を検出し、検出した電流に基づく情報を電流モニタ値として、第3加算部36、コイル温度検出器39に出力する。
【0017】
上位コントローラ20は、コイル温度検出器39が検出したコイルの温度に関する判別結果が入力される。上位コントローラ20は、入力されたコイルの温度に関する判別結果に基づき、モータの制御値を生成して、生成した制御値を第1加算部31に出力する。
【0018】
サーボドライバ30の第1加算部31には、上位コントローラ20からモータの制御値と、モータ10のエンコーダが出力したロータ位置に関する情報とが入力される。第1加算部31は、入力されたモータの制御値からロータ位置に関する情報に基づく値を減算して、減算した制御信号を位置制御部32に出力する
位置制御部32は、第1加算部31から入力された制御信号に基づき、速度制御信号を生成する。位置制御部32は、生成した速度制御信号を第2加算部33に出力する。
第2加算部33には、位置制御部32が出力した速度制御信号と、モータ10のエンコーダが出力した速度モニタ値とが入力される。第2加算部33は、入力された速度制御信号から速度モニタ値を減算して、減算した信号を速度制御信号として第1リミッタ34に出力する。
第1リミッタ34には、第2加算部33が出力した速度制御信号と、コイル温度検出器39が出力した検出温度の判別結果を示す信号とが入力される。第1リミッタ34は、入力された速度制御信号と検出温度の判別結果を示す信号とに基づき、速度制御信号に対して、例えば段階的にリミッタを掛けて出力を制限する。第1リミッタ34は、リミッタを掛けて出力制限した速度制御信号を速度制御器35に出力する。
速度制御器35は、第1リミッタ34から出力された速度制御信号に基づき、電流制御信号を生成し、生成した電流制御信号を第3加算部36に出力する。
【0019】
第3加算部36には、速度制御器35から出力された電流制御信号と、電流センサ40が出力したから出力された電流モニタ値とが入力される。第3加算部36は、入力された電流制御信号から電流モニタ値を減算して、減算した信号を電流制御信号として第2リミッタ37に出力する。
第2リミッタ37には、第3加算部36が出力した電流制御信号と、コイル温度検出器39が出力した検出温度の判別結果を示す信号とが入力される。第2リミッタ37は、入力された電流制御信号と検出温度の判別結果を示す信号とに基づき、電流制御信号に対して、例えば段階的にリミッタを掛けて出力を制限する。第2リミッタ37は、リミッタ後の電流制御信号を電流制御器38に出力する。
電流制御器38は、第2リミッタ37から出力された電流制御信号に基づき、電圧制御信号(以下、電圧指示値という)を生成し、生成した電圧指示値をモータ10に出力する。
コイル温度検出器39(電流補正部、抵抗値推定部、温度判別部)には、電流制御器38から出力された電圧指示値、モータ10のエンコーダから出力された速度モニタ値およびサーボドライバ30の電流センサ40が出力した電流モニタ値が入力される。コイル温度検出器39は、入力された電圧指示値、速度モニタ値、電流モニタ値に基づき、モータ10のコイルの温度を判別し、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力する。
【0020】
次に、図1のサーボモータ1の動作の概要について説明する。
コイル温度検出器39は、入力された電流モニタ値と速度モニタ値を用いて補正電流値(仮想電流値)を算出する。また、コイル温度検出器39は、算出された補正電流値と、入力された電圧指示値とを用いて、逐次最小二乗法により、モータ10のコイルの抵抗値を推定する。また、コイル温度検出器39は、推定したコイルの抵抗値に基づき、コイルの温度を判別し、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力する。
上位コントローラ20は、コイル温度検出器39から入力されたコイルの温度の判別結果に基づき、モータの制御値を制御する。第1リミッタ34は、コイル温度検出器39から入力されたコイルの温度の判別結果に基づき、速度制御器35に出力する制御値を制御する。第2リミッタ37は、コイル温度検出器39から入力されたコイルの温度の判別結果に基づき、電流制御器38に出力する制御値を制御する。
上述のように、サーボモータ1は、誘起電圧分を補正した補正電流と、電圧指示値とを用いて、逐次最小二乗法によりコイルの抵抗値を推定する。そして、サーボモータ1は、推定したコイルの抵抗値に基づき、コイルの温度を判別する。この結果、モータ動作中に、コイルに発生する電圧値を実測しなくても、リアルタイムでコイルの温度を判別できる。そして、上位コントローラ20とサーボドライバ30は、この判別された温度結果を用いて、モータ10を制御することで、コイルの温度に応じてモータ10を有効に動作させることが可能になる。
【0021】
次に、コイル温度検出器39の動作と構成について、図2を用いて説明する。図2は、本実施形態に係る逐次最小二乗演算部を並列利用する例を説明する図である。
図2に示すように、コイル温度検出器39は、第1電流補正関数部101、第2電流補正関数部102、第3電流補正関数部103、第1逐次最小二乗法演算部104、第2逐次最小二乗法演算部105、第3逐次最小二乗法演算部106、温度判別部107を備えている。
【0022】
第1電流補正関数部101(電流補正部)には、電流センサ40から電流モニタ値とモータ10のエンコーダから速度モニタ値とが入力される。第1電流補正関数部101は、入力された電流モニタ値と速度モニタ値とを用いて、後述する電流補正関数により仮想電流値を算出し、算出した仮想電流値を第1逐次最小二乗法演算部104に出力する。
なお、第1電流補正関数部101に入力される電流モニタ値は、電流センサ40からの出力に対して、例えば遮断周波数が50[Hz]のLPF(Low−Pass Filter)を行ったものであってもよい。また、第1電流補正関数部101に入力される速度モニタ値は、モータ10のエンコーダからの出力に対して、例えば遮断周波数が50[Hz]のLPFを行ったものであってもよい。
第2電流補正関数部102(電流補正部)には、電流センサ40から電流モニタ値とモータ10のエンコーダから速度モニタ値とが入力される。第2電流補正関数部102は、後述する電流補正関数により仮想電流値を算出し、算出した仮想電流値を第2逐次最小二乗法演算部105に出力する。
第3電流補正関数部103(電流補正部)には、電流センサ40から電流モニタ値とモータ10のエンコーダから速度モニタ値とが入力される。第3電流補正関数部103は、後述する電流補正関数により仮想電流値を算出し、算出した仮想電流値を第3逐次最小二乗法演算部106に出力する。
【0023】
第1電流補正関数部101は、第1の所定の温度が設定されている。第1の所定の温度とは、例えば、60[度]である。
第1逐次最小二乗法演算部104には、電流制御部38が出力した電圧指示値と第1電流補正関数部101が出力した仮想電流値とが入力さる。第1逐次最小二乗法演算部104は、入力された電圧指示値と仮想電流値とを用いて、後述する逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗の推定値を温度判別部107に出力する。
第2電流補正関数部102は、第2の所定の温度が設定されている。第2の所定の温度とは、例えば、90[度]である。
第2逐次最小二乗法演算部105には、電流制御部38が出力した電圧指示値と第2電流補正関数部102が出力した仮想電流値とが入力される。
第2逐次最小二乗法演算部105は、入力された電圧指示値と仮想電流値とを用いて、後述する逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107に出力する。
第3電流補正関数部103は、第3の所定の温度が設定されている。第3の所定の温度とは、例えば、120[度]である。
第3逐次最小二乗法演算部106には、電流制御部38が出力した電圧指示値と第3電流補正関数部103が出力した仮想電流値とが入力される。第3逐次最小二乗法演算部106は、入力された電圧指示値と仮想電流値とを用いて、後述する逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107に出力する。
なお、第1逐次最小二乗法演算部104〜第3逐次最小二乗法演算部106に入力される電圧指示値は、サーボドライバ30の電流制御器38からの出力に対して、例えば遮断周波数が50[Hz]のLPFを行ったものであってもよい。
【0024】
温度判別部107(温度判別部)には、第1逐次最小二乗法演算部104〜第3逐次最小二乗法演算部106から、各設定温度におけるコイルの抵抗値が入力される。温度判別部107は、入力された各設定温度におけるコイルの抵抗値に基づき、コイルの温度の状態を判別する。コイルの温度の状態とは、第1の所定の温度未満であるか、第1の所定の温度〜第2の所定の温度の範囲内であるか、第2の所定の温度〜第3の所定の温度の範囲内であるか、第3の所定の温度以上であるか、である。
温度判別部107は、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力する。
【0025】
次に、温度検出の手順を、図3を用いて説明する。図3は、本実施形態に係るコイル温度検出器39が行う処理の手順を示すフローチャートである。
第1電流補正関数部101は、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第1逐次最小二乗法演算部104に出力する(ステップS1)。
ステップS1と並行して、第2電流補正関数部102は、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第2逐次最小二乗法演算部105に出力する(ステップS2)。
ステップS1、S2と並行して、第3電流補正関数部103は、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第3逐次最小二乗法演算部106に出力する(ステップS3)。
【0026】
次に、第1逐次最小二乗法演算部104は、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107に出力する(ステップS4)。
ステップS4と並行して、第2逐次最小二乗法演算部105は、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107に出力する(ステップS5)。
ステップS4、S5と並行して、第3逐次最小二乗法演算部106は、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107に出力する(ステップS6)。
【0027】
次に、温度判別部107は、入力されたコイルの抵抗値に基づき、コイルの温度を判別する(ステップS7)。具体的には、温度判別部107が、ステップS4〜S6で算出されたコイルの抵抗値に基づき、コイルの温度が、第1の所定の温度未満であるか、第1の所定の温度〜第2の所定の温度の範囲内か、第2の所定の温度〜第3の所定の温度の範囲内か、第3の所定の温度以上であるかを判別する。温度判別部107は、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力する。
【0028】
なお、本実施形態では、ステップS1〜ステップS3を並行して行う例を説明したが、例えば、ステップS1終了後にステップS2を行い、ステップS2終了後にステップS3を行うようにしてもよい。または、処理する順番はこれに限らず、ステップS2、あるいはステップS3をステップS1より先に行うようにしてもよい。同様に、ステップS3〜S4も並行して行わずに、所定の順番またはランダムに処理を行うようにしてもよい。
【0029】
次に、コイルの温度を算出する方法について説明する。図4は、モータコイルの等価回路である。図4に示すように、モータコイルは、等価的にインダクタンスL、抵抗Rで表される。抵抗RとインダクタンスLに流れる電流をIとすると、電源の電圧Vは、次式(1)のように表される。
【0030】
【数1】
【0031】
式(1)を伝達関数G(s)で表すと、次式(2)のように表される。
【0032】
【数2】
【0033】
式(2)を双一次変換すると、次式(3)のように表される。
【0034】
【数3】
【0035】
式(3)において、Tsはサンプリング周期[s]である。
k番目のサンプリング時の電圧をVk、電流をIkと置くと、式(3)は、次式(4)のように置き換えられる。
【0036】
【数4】
【0037】
αを次式(5)、βを次式(6)のように置くと、式(4)は、次式(7)のように置き換えられる。
【0038】
【数5】
【0039】
【数6】
【0040】
【数7】
【0041】
式(5)と式(6)を用いて、次式(8)により抵抗Rの抵抗値を算出できる。
【0042】
【数8】
【0043】
この抵抗値を算出するために、式(7)に対して逐次最小二乗法により、次式(9)の値を最小にするαとβを算出する。なお、忘却要素λは、1以下の正数である。
【0044】
【数9】
【0045】
式(9)に最小二乗法を適用すると、次式(10)の連立方程式のように表される。
【0046】
【数10】
【0047】
式(10)の連立方程式を解き、逐次形式にすることで次式(11)が得られる。
【0048】
【数11】
【0049】
式(11)において、P(k)は、次式(12)のように表される。なお、式(11)において、P(k)−1は、2行×2列の正方行列であるため、容易に計算することが可能である。
【0050】
【数12】
【0051】
次に、サーボモータへの上述した逐次最小二乗法の適用について説明する。
まず、dq座標でのモータの電圧方程式は、次式(13)のように表される。
【0052】
【数13】
【0053】
なお、式(13)において、Vdは電機子電圧のd軸成分、Vqは電機子電圧のq軸成分、Ldはd軸のインダクタンス、Lqはq軸のインダクタンスである。また、ω〜は電気角速度、Raは電機子巻線抵抗(コイル抵抗)、p(=d/dt)は微分演算子、Φa(=√(3/2)Φf)は電機子鎖交磁束、Φfは電機子鎖交磁束の最大値である。
Id=0とすると、式(13)は次式(14)のようになる。
【0054】
【数14】
【0055】
なお、式(14)において、ωは機械角速度、Pは極対数、Ke=ΦaPである。
逐次最小二乗法を適用するために、誘起電圧の影響を排除する必要がある。このため、式(14)の右辺の項Keωを左辺に移動させ、速度に応じて電圧を補正すると、次式(15)のように表される。
【0056】
【数15】
【0057】
式(15)において、Vq―Keωを電圧Vとする。
次に、速度に応じて電流を補正すると、次式(16)のように表される。
【0058】
【数16】
【0059】
式(16)において、Iq+Ke/Raωを電流Iとする。
次に、電圧指示値の非線形性を考慮し、Iq+Ke/Raωを、Iqとωを変数とする3次関数(電流補正関数)f(Iq,ω)に置き換えることで、式(16)を次式(17)に置き換えられる。
【0060】
【数17】
【0061】
なお、式(17)において、電流補正関数f(Iq,ω)は、次式(18)である。
【0062】
【数18】
【0063】
式(18)において、C10、C01、C30、C21、C12、C03は係数である。
なお、電流補正関数f(Iq,ω)として、式(18)のように3次の例を説明したが、電流補正関数の次数は3次に限らず、奇関数であれば、例えば5次以上であってもよい。
【0064】
次に、式(18)の係数の算出手順について、図5、図6を用いて説明する。
図5は、本実施形態に係る電流補正関数の係数の算出手順を説明する図である。まず、システム設計者が、目標温度(例えば、60[度]、90[度]、120[度])において、電圧指令値、q軸の電流モニタ値、速度モニタ値の各値を測定する。
次に、システム設計者は、目標温度で、モータにおけるコイルのインダクタンスL、抵抗値Rを測定する。
次に、システム設計者は、実測した電圧指示値、コイルのインダクタンスL、抵抗値R、および式(2)を用いて、仮想電流値Iを算出する。なお、仮想電流値Iの算出は、例えば、微分方程式に対して数値計算により行う。
次に、システム設計者は、実測したq軸の電流モニタ値、速度モニタ値、算出された仮想電流値Iを用いて、式(18)に最小二乗法を用いて、係数C10、C01、C30、C21、C12、C03を算出する。このように算出された係数C10、C01、C30、C21、C12、C03は、第1電流補正関数部101〜第3電流補正関数部103に書き込んで記憶する。
なお、以上では、システム設計者が係数を算出する例を説明したが、サーボモータ1に不図示の係数演算部をさらに設け、この係数演算部が係数を算出するようにしてもよい。
【0065】
図6は、本実施形態に係る電圧指示値、速度モニタ値、電流モニタ値の取得について説明する図である。
図6に示すように、測定対象となるモータ201は、取り付け台210に取り付けられている。モータ201には、治具222を介して負荷をかけるためのモータ(以下、負荷モータという)220が取り付けられている。また、モータ201には、モータ201のコイル温度を測定するための熱電対230が取り付けられている。なお、モータ201は、図1のサーボモータ1である。
【0066】
サーボモータ1は、以下の手順で電圧指示値、速度モニタ値、電流モニタ値の取得を行う。
(I)上位コントローラ20は、モータ201に回転速度が一定となるよう制御する。
(II)不図示の駆動部は、負荷モータ220に、例えば正弦波状の駆動信号を供給する。
(III)システム設計者は、熱電対230によりモータ201の温度を観測し、モータ201が予め定めておいた温度に達したときの電圧指示値、および速度モニタ値、電流モニタ値を読み取り記録する。なお、予め定めておいた温度とは、例えば、60[度]、90[度]、120[度]である。
(IV)上位コントローラ20からの回転速度を変えて、(I)〜(III)を繰り返す。
システム設計者は、以上の手順で測定された電圧指示値、速度モニタ値、電流モニタ値から係数C10、C01、C30、C21、C12、C03を算出し、算出した係数を第1電流補正関数部101〜第3電流補正関数部103に書き込んで記憶させておく。
【0067】
次に、本実施形態に係るサーボモータ1に対して、負荷を外部から掛けて動作を確認した結果について説明する。以下の実験例では、サーボモータ1は、温度が120[度]以上になったと判別された場合に、モータ10に対して電圧指示値を制御するように設定した例である。
図7は、時間に対するコイル温度とコイルの抵抗の推定値の変化を示す図である。また、図7(a)は、時間に対するコイル温度変化の一例を示す図であり、図7(b)は、時間に対するコイルの抵抗値の推定値の一例を示す図である。図7(a)において、横軸は時間、縦軸はモータ10のコイルの温度(コイル温度)であり、曲線g301は時間に対するコイル温度の変化である。図7(b)において、横軸は時間、縦軸はコイルの推定抵抗値であり、曲線g302は時間に対するコイルの推定抵抗値の変化である。なお、図7(b)のコイルの温度は、熱電対による実測値である。
図7(a)に示すように、時刻0の時、上位コントローラ20は、サーボドライバ30に正弦波状の速度指示値を出力する。速度指示値は、振幅±5000[rpm]、周波数3[Hz]である。
【0068】
時刻、約3秒の時、図6で説明したように、負荷モータに正弦波状の駆動電流を供給し始める。負荷モータに供給する正弦波状の駆動電流は、±20[Aiq](電流増幅度)、周波数3[Hz]である。この結果、時刻3秒〜時刻33秒の期間、曲線g301のように実測のコイルの温度は上昇する。また、時刻3秒〜時刻33秒の期間、推定されたコイルの推定抵抗値は、曲線g302のように増加する。
時刻、約33秒の時、図7(b)のように、コイルの推定抵抗値は、約0.43[Ω]になる。モータ10が120[度]の時の抵抗値は、予め測定により求めてあり、約0.43[Ω]である。このため、温度判別部107は、モータ10の抵抗値からコイルの温度が120[度]を超えていると判別し、上位コントローラ20に判別結果を出力する。図7(b)のように、上位コントローラ20は、入力された判別結果に基づき、時刻33秒〜時刻47秒までの期間、サーボ状態をオフしている。この結果、図7(a)のように、コイルの温度は、サーボオフから少し遅れて、時刻35秒〜時刻47秒の期間、120[度]から徐々に下がっていく。
【0069】
そして、時刻62秒の時、温度判別部107は、コイルの抵抗値が約0.43[Ω]に達したため、コイルの温度が120[度]以上になったと判別し、上位コントローラ20に判別結果を出力する。
以上のように、本実施形態に係るサーボモータ1は、設定した120度と推定した時刻で制御が係っていることから、精度良くコイルの温度を判別できていることを表している。
サーボ状態をオフで温度推定を行わない理由を説明する。サーボ状態をオフした状態では、電圧指令が出ていないためである。このため、温度が一定値に達したらサーボ状態をオフするのではなく電流を絞るような制御をしてもよい。この場合、コイル温度の推定結果による電流の制御が可能となる。
【0070】
図8は、正弦波速度指示の振幅を変化させた場合の時間に対するコイルの抵抗の推定値の変化を示す図である。図8において、上位コントローラ20は、サーボドライバ30に正弦波状の速度指示値を、回転速度が±1000[rpm]〜±5000[rpm]になるように変化させている。図8において、横軸はコイルの温度、縦軸はコイルの推定抵抗値である。図8において、曲線g401〜g405は、それぞれ回転数±1000[rpm]、±2000[rpm]、±3000[rpm]、±4000[rpm]、±5000[rpm]のコイルの温度に対するコイルの推定抵抗値である。
図8に示すように、コイルの推定抵抗値が約0.431[Ω]において、回転速度が異なってもコイルの温度がほぼ一致している。このように、モータ10の特性により、温度判別部107は、回転速度毎にコイルの温度とコイルの推定抵抗値を記憶しておかなくても、1つの回転速度に共通の値のみを記憶しておくようにしてもよい。また、温度判別部107は、このように回転速度が変化しても、コイルの温度とコイルの推定抵抗値が一致するポイントg410のみの推定抵抗値により、コイルの温度を判別するようにしてもよい。
【0071】
また、本実施形態では、温度判別部107が、コイルの温度とコイルの推定抵抗値の関係を記憶しておく例を説明したが、コイル温度検出器39の内部、または外部に設けられている不図示の記憶部に記憶させておくようにしてもよい。
【0072】
なお、本実施形態では、コイル温度検出器39が、予め設定された温度に対して判別を行う例を説明したが、推定したコイルの抵抗値に基づいて、コイルの温度を推定するようにしてもよい。この場合、コイル温度検出器39は、推定したコイルの温度を示す情報を、上位コントローラ20等に出力するようにしてもよい。
【0073】
以上のように、コイル温度検出器39の第1電流補正関数部101〜第3電流補正関数部103は、入力された電流モニタ値と速度モニタ値を用いて補正電流値(仮想電流値)を算出する。また、第1逐次最小二乗法演算部104〜第3逐次最小二乗法演算部106は、算出された補正電流値と、入力された電圧指示値とを用いて、逐次最小二乗法により、モータ10のコイルの抵抗値を推定する。また、温度判別部107は、推定したコイルの抵抗値に基づき、コイルの温度を判別し、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力する。
上位コントローラ20、第1リミッタ34、第2リミッタ37は、入力されたコイルの温度の判別結果に基づき、モータの制御値を制御する。この結果、リアルタイムにコイルの抵抗値を推定し、推定したコイルの抵抗値に基づいてコイルの温度を判別するようにしたので、モータ動作中に、モータのコイルの温度を正確に判別することができる。また、本実施形態に係るサーボモータは、従来技術のように予めモデルを作成しておき積算してコイルの温度を推定しないため、時間の経過と共にコイルの温度の推定値の誤差が生じない。そして、上位コントローラ20とサーボドライバ30は、この判別された結果を用いて、モータを制御することで、コイルの温度に応じてモータを有効に動作させることが可能になる効果がある。
【0074】
[第2実施形態]
第1実施形態では、コイル温度検出器39において、複数の逐次最小二乗法演算部を並列で用いる例を説明した。第2実施形態は、複数の逐次最小二乗法演算部を直列に用いる例について説明する。
図9は、本実施形態に係るサーボモータのブロック図である。図9に示すように、サーボモータ1aは、モータ10、上位コントローラ20、サーボドライバ30aを備えている。サーボドライバ30aは、第1加算部31、位置制御部32、第2加算部33、第1リミッタ34、速度制御器35、第3加算部36、第2リミッタ37、電流制御器38、コイル温度検出器39a、電流センサ40を備えている。第1実施形態と同じ機能部は、同じ符号を用いて、説明を省略する。
【0075】
図10は、本実施形態に係る逐次最小二乗演算部を直列利用する別の例を説明する図(1)である。図11は、本実施形態に係る逐次最小二乗演算部を直列利用する別の例を説明する図(2)である。図12は、本実施形態に係る逐次最小二乗演算部を直列利用する別の例を説明する図(3)である。
【0076】
図10〜図12に示すように、コイル温度検出器39aは、設定切替部100a、第1電流補正関数部101a、第2電流補正関数部102a、第3電流補正関数部103a、第1逐次最小二乗法演算部104a、第2逐次最小二乗法演算部105a、第3逐次最小二乗法演算部106a、温度判別部107aを備えている。
設定切替部100a(温度判別部)には、電流制御器38が出力する電圧指示値と、モータ10のエンコーダが出力する速度モニタ値と、電流センサ40が出力する電流モニタ値とが入力される。設定切替部100aは、入力された電圧指示値、速度モニタ値、電流モニタ値を、第1電流補正関数部101a〜第3電流補正関数部103a及び第1逐次最小二乗法演算部104a〜第3逐次最小二乗法演算部106aの各々の出力先を切り替えて出力する。すなわち、図10に示すように、設定切替部100aは、入力された電圧指示値を第1逐次最小二乗法演算部104aに出力する様に切り替え、入力された速度モニタ値と電流モニタ値を第1電流補正関数部101aに出力するように切り替える。次に、図11に示すように、設定切替部100aは、入力された電圧指示値を第2逐次最小二乗法演算部105aに出力する様に切り替え、入力された速度モニタ値と電流モニタ値を第2電流補正関数部102aに出力するように切り替える。次に、図12に示すように、設定切替部100aは、入力された電圧指示値を第3逐次最小二乗法演算部106aに出力する様に切り替え、入力された速度モニタ値と電流モニタ値を第3電流補正関数部103aに出力するように切り替える。
【0077】
第1電流補正関数部101a(電流補正部)には、電流モニタ値と速度モニタ値とが入力される。第1電流補正関数部101aは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を、第1逐次最小二乗法演算部104aに出力する。第1電流補正関数部101aは、第1の所定の温度が設定されている。第1の所定の温度とは、例えば、60[度]である。
第1逐次最小二乗法演算部104aには、設定切替部100aが出力した電圧指示値と第1電流補正関数部101aが出力した仮想電流値とが入力さる。第1逐次最小二乗法演算部104aは、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107aに出力する。
【0078】
第2電流補正関数部102a(電流補正部)には、電流モニタ値と速度モニタ値とが入力される。第2電流補正関数部102aは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を、第2逐次最小二乗法演算部105aに出力する。第2電流補正関数部102aは、第2の所定の温度が設定されている。第2の所定の温度とは、例えば、90[度]である。
第2逐次最小二乗法演算部105aには、設定切替部100aが出力した電圧指示値と第2電流補正関数部102aが出力した仮想電流値とが入力される。第2逐次最小二乗法演算部105aは、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107aに出力する。
【0079】
第3電流補正関数部103a(電流補正部)には、電流モニタ値と速度モニタ値とが入力される。第3電流補正関数部103aは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を、第3逐次最小二乗法演算部106aに出力する。第3電流補正関数部103aは、第3の所定の温度が設定されている。第3の所定の温度とは、例えば、120[度]である。
第3逐次最小二乗法演算部106aには、設定切替部100aが出力した電圧指示値と第3電流補正関数部103aが出力した仮想電流値とが入力される。第3逐次最小二乗法演算部106aは、入力された電圧指示値と仮想電流値とを用いて、後述逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107aに出力する。
【0080】
温度判別部107a(温度判別部)には、第1逐次最小二乗法演算部104a〜第3逐次最小二乗法演算部106aから、順次、各設定温度におけるコイルの抵抗値が入力される。温度判別部107aは、入力された各設定温度におけるコイルの抵抗値に基づき、コイルの温度の状態を判別する。コイルの温度の状態とは、第1の所定の温度以下であるか、第1の所定の温度〜第2の所定の温度であるか、第2の所定の温度〜第3の所定の温度であるか、第3の所定の温度以上であるか、である。
温度判別部107aは、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力する。
【0081】
次に、温度検出の手順を、図10〜図13説明する。図13は、本実施形態に係るコイル温度検出器39aが行う処理の手順を示すフローチャートである。
まず、図10に示すように、設定切替部100aは、温度判別部107aの指示により電圧指示値を第1逐次最小二乗法演算部104aに出力するように切り替え、電流モニタ値と速度モニタ値を第1電流補正関数部101aに出力するように設定を切り替える(ステップS101)。
次に、第1電流補正関数部101aは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第1逐次最小二乗法演算部104aに出力する(ステップS102)。
次に、第1逐次最小二乗法演算部104aは、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107aに出力する(ステップS103)。
【0082】
温度判別部107aは、入力されたコイルの抵抗値に基づき、コイルの温度が所定の期間、第1の所定の温度以上であるか否かを判別する(ステップS104)。なお、所定の期間とは、例えば1秒間である。
コイルの温度が所定の期間、第1の所定の温度未満である場合(ステップS105;No)、温度判別部107aは、コイルの温度が第1の所定の温度未満にあると判別する。温度判別部107aは、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力し、ステップS116に進む。
コイルの温度が所定の期間、第1の所定の温度以上である場合(ステップS105;Yes)、温度判別部107aは、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37、設定切替部100aに出力し、ステップS116に進む。
【0083】
次に、図11に示すように、設定切替部100aは、温度判別部107aの指示により、電流指示値を第2逐次最小二乗法演算部105aに出力するように切り替え、電流モニタ値と速度モニタ値を第2電流補正関数部102aに出力するように設定を切り替える指示を出力する(ステップS106)。
次に、第2電流補正関数部102aは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第2逐次最小二乗法演算部105aに出力する(ステップS107)。
次に、第2逐次最小二乗法演算部105aは、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107aに出力する(ステップS108)。
【0084】
温度判別部107aは、入力されたコイルの抵抗値に基づき、コイルの温度が所定の期間、第2の所定の温度以上であるか否かを判別する(ステップS109)。
コイルの温度が所定の期間、第2の所定の温度未満である場合(ステップS110;No)、温度判別部107aは、コイルの温度が第1の所定の温度〜第2の所定の温度の範囲にあると判別する。温度判別部107aは、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力し、ステップS116に進む。
コイルの温度が所定の期間、第2の所定の温度以上である場合(ステップS110;Yes)、温度判別部107aは、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37、設定切替部100aに出力し、ステップS111に進む。
【0085】
次に、図12に示すように、設定切替部100aは、温度判別部107aの指示により、電流指示値を第3逐次最小二乗法演算部106aに出力するように切り替え、電流モニタ値と速度モニタ値を第3電流補正関数部103aに出力するように設定を切り替える指示を出力する(ステップS111)。
次に、第3電流補正関数部103aは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第3逐次最小二乗法演算部106aに出力する(ステップS112)。
次に、第3逐次最小二乗法演算部106aは、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107aに出力する(ステップS113)。
【0086】
温度判別部107aは、入力されたコイルの抵抗値に基づき、コイルの温度が所定の期間、第3の所定の温度以上であるか否かを判別する(ステップS114)。
コイルの温度が所定の期間、第3の所定の温度未満である場合(ステップS115;No)、温度判別部107aは、コイルの温度が第2の所定の温度〜第3の所定の温度の範囲にあると判別する。温度判別部107aは、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力し、ステップS116に進む。
コイルの温度が所定の期間、第3の所定の温度以上である場合(ステップS115;Yes)、温度判別部107aは、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力し、ステップS116に進む。
【0087】
温度判別部107aは、ステップS105、S110、S115の判別結果に基づき、設定切替部100aの設定を切り替える(ステップS116)。すなわち、ステップS105でコイルの温度が所定の期間、第1の所定の温度未満である場合、温度判別部107aは、ステップS101に戻る設定、処理を行う。ステップS109でコイルの温度が所定の期間、第1の所定の温度〜第2の所定の温度の範囲内である場合、温度判別部107aは、ステップS101に戻る設定、処理を行う。ステップS115でコイルの温度が所定の期間、第2の所定の温度〜第3の所定の温度の範囲内である場合温度判定部107は、ステップS106に戻る設定を行う。または第3の所定の温度以上である場合、温度判別部107aは、ステップS111に戻る設定、処理を行う。
【0088】
なお、本実施形態では、3つの第1逐次最小二乗法演算部104a〜第3逐次最小二乗法演算部106aを用いる例を説明したが、逐次最小二乗法演算部は1つでもよい。この場合、温度判別部107aは、ステップS101で逐次最小二乗法演算部に第1の所定温度を設定し、ステップS106で逐次最小二乗法演算部に第2の所定温度を設定し、ステップS111で逐次最小二乗法演算部に第3の所定温度を設定することで、図10〜図12と同様の動作を行うことができる。
【0089】
以上のように、異なる温度設定の電流補正関数部が算出した仮想電流と電圧指示値に基づき、逐次最小二乗法演算部がコイルの温度の推定を行う。そして、コイル温度判別部は、逐次最小二乗法演算部が推定したコイルの温度に基づき、順次、コイルの温度を判別するようにした。あるいは、コイル温度判別部は、1つの電流補正関数部に対して順次、温度設定を行い、逐次最小二乗法演算部が算出したコイルの温度の推定に基づき、順次、コイルの温度を判別するようにした。この結果、リアルタイムにコイルの抵抗値を推定し、推定したコイルの抵抗値に基づいてコイルの温度を判別するようにしたので、モータの動作中に、コイルの温度を正確に推定することができる。
このため、本実施形態に係るサーボモータは、従来技術のように予めモデルを作成しておき積算してコイルの温度を推定しないため時間の経過と共にコイルの温度の推定値の誤差が生じない。また、モータ動作中に、コイルに発生する電圧値を実測しなくても、リアルタイムでコイルの温度を推定できる。そして、上位コントローラ20とサーボドライバ30は、この推定された結果を用いて、モータを制御することで、コイルの温度に応じてモータを有効に動作させることが可能になる効果がある。
【0090】
なお、実施形態の図1、図2、図9〜図12の各部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD−ROM等の可搬媒体、USB(Universal Serial Bus) I/F(インタフェース)を介して接続されるUSBメモリ、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、サーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【符号の説明】
【0091】
1・・・サーボモータ 10・・・モータ 11・・・コイル
20・・・上位コントローラ
30・・・サーボドライバ 31・・・第1加算部 32・・・位置制御部
33・・・第2加算部 34・・・第1リミッタ 35・・・速度制御器
36・・・第3加算部 37・・・第2リミッタ 38・・・電流制御器
39、39a・・・コイル温度検出器 100a・・・設定切替部
101、101a・・・第1電流補正関数部
102、102a・・・第2電流補正関数部
103、103a・・・第3電流補正関数部
104、104a・・・第1逐次最小二乗法演算部
105、105a・・・第2逐次最小二乗法演算部
106、106a・・・第3逐次最小二乗法演算部 107、107a・・・温度判別部
【技術分野】
【0001】
本発明は、サーボモータのコイル温度検出装置、およびサーボモータに関する。
【背景技術】
【0002】
ロボット用サーボモータは、産機用サーボモータと違い定格範囲を決めた運転を行わないため、高負荷な運転が続きモータのコイルが発熱し、モータが焼損してしまう危険がある。このため、一般的に、モータの限界に対して大きなマージンを取られているため、モータ本来の力が引き出されていない。モータを有効に使用するために、温度センサを用いて直接的もしくは間接的にコイル温度を計測するか、または推測している。
【0003】
例えば、特許文献1に記載の発明は、モータの温度モデルを事前に求めておき、流れた電流の加算により現在のモータコイルの温度を推定している。
また、特許文献2に記載の発明は、測定している相の電流が0[A]のタイミングで抵抗推定用の電圧を印加し、そのときの電流を電流センサによって測定し、それらの値からコイルの抵抗値を推定している。そして、推定したコイルの抵抗値からコイルの温度を推定している。
また、特許文献3に記載の発明は、モータの直流電流、電圧を測定することで、コイルの抵抗値をもとめ、求めたコイルの抵抗値からコイル温度を推定している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−187856号公報
【特許文献2】特開平10−62266号公報
【特許文献3】特公昭58−16459号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献2に記載の発明では、モータが停止している場合だけしか測定することができず、したがってモータの動作中における巻線温度の監視には不適当である。また、特許文献3に記載の発明では、モータの動作中に測定することができる反面、モータのコイルの抵抗を測定するために電圧計などのセンサが必要である。
また、特許文献1に記載の発明では、電圧計などのセンサが不要で、モータ動作時に測定できる。しかしながら、特許文献1に記載の発明では、電圧モータの放熱モデルを事前にもとめ、モータの電流総量よりコイル温度を推定している。この結果、特許文献1に記載の発明では、積算による推定方式のため、時間の経過と共にコイル温度の推定値の誤差が蓄積されてしまうという問題点があった。
【0006】
本発明は、上記の問題点に鑑みてなされたものであって、モータ動作時にコイル温度の推定を正確に行えるサーボモータのコイル温度検出装置、およびサーボモータを提供することを目的としている。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明に係るサーボモータのコイル温度検出装置は、モータに流れる電流値を、前記モータに発生する誘起電圧に基づく回転速度値に基づき補正する電流補正部と、前記モータに印加される電圧の指示値と、前記補正された電流値とを用いて、逐次最小二乗法により、前記モータのコイルの抵抗値を推定する抵抗値推定部と、前記推定された抵抗値に基づき、前記モータのコイルの温度を判別する温度判別部と、を備えることを特徴としている。
【0008】
また、本発明に係るサーボモータのコイル温度検出装置において、前記抵抗値推定部は、予め設定された異なる温度条件に基づいて、前記モータのコイルの抵抗値を推定するようにしてもよい。
【0009】
また、本発明に係るサーボモータのコイル温度検出装置において、前記温度判別部は、前記推定された抵抗値に基づき、前記モータのコイルの温度を判別し、判別したコイルの温度が前記設定された温度以上の場合、前記抵抗値推定部の温度条件を変更し、前記コイルの抵抗値の推定と前記コイルの温度の判別とを繰り返し行うようにしてもよい。
【0010】
また、本発明に係るサーボモータのコイル温度検出装置において、複数の前記抵抗値推定部を備え、前記複数の抵抗値推定部各々は、前記複数の抵抗値推定部毎に異なる温度条件に基づいて、前記モータのコイルの抵抗値を推定し、前記温度判別部は、前記推定された複数の抵抗値に基づき、前記モータのコイルの温度を判別するようにしてもよい。
【0011】
上記目的を達成するため、本発明に係るサーボモータは、モータと、前記モータの回転速度を制御する速度制御部と、前記モータに印加される電流を制御する電流制御部と、コイル温度検出装置と、を備え、前記コイル温度検出装置は、モータに流れる電流値を、前記モータに発生する誘起電圧に基づく回転速度値に基づき補正する電流補正部と、前記モータに印加される電圧の指示値と、前記補正された電流値とを用いて、逐次最小二乗法により、前記モータのコイルの抵抗値を推定する抵抗値推定部と、前記推定された抵抗値に基づき、前記モータのコイルの温度を判別する温度判別部と、を備えることを特徴としている。
【発明の効果】
【0012】
本発明によれば、モータに流れる電流値を、モータに発生する誘起電圧に基づく回転速度値に基づき補正した電流補正値と、モータに印加される電圧の指示値とを用いて、逐次最小二乗法により、モータのコイルの抵抗値を推定する。そして、推定されたコイルの抵抗値に基づき、モータのコイルの温度を判別するようにしたので、時間の経過と共にコイル温度の推定値の誤差が生じないサーボモータのコイル温度検出装置、およびサーボモータを実現できる。
【図面の簡単な説明】
【0013】
【図1】第1実施形態に係るサーボモータのブロック図である。
【図2】同実施形態に係る逐次最小二乗演算部を並列利用する例を説明する図である。
【図3】同実施形態に係るコイル温度検出器39が行う処理の手順を示すフローチャートである。
【図4】モータコイルの等価回路である。
【図5】同実施形態に係る電流補正関数の係数の算出手順を説明する図である。
【図6】同実施形態に係る電圧指示値、速度モニタ値、電流モニタ値の取得について説明する図である。
【図7】同実施形態に係る時間に対するコイルの温度とコイルの抵抗の推定値の変化を示す図である。
【図8】同実施形態に係る正弦波速度指示の振幅を変化させた場合の時間に対するコイルの抵抗の推定値の変化を示す図である。
【図9】第2実施形態に係るサーボモータのブロック図である。
【図10】同実施形態に係る逐次最小二乗演算部を直列利用する例を説明する図(1)である。
【図11】同実施形態に係る逐次最小二乗演算部を直列利用する別の例を説明する図(2)である。
【図12】同実施形態に係る逐次最小二乗演算部を直列利用する例を説明する図(3)である。
【図13】同実施形態に係るコイル温度検出器39aが行う処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、図面を用いて本発明の実施形態について詳細に説明する。なお、本発明は係る実施形態に限定されず、その技術思想の範囲内で種々の変更が可能である。
【0015】
[第1実施形態]
図1は、本実施形態に係るサーボモータ1のブロック図である。図1に示すように、サーボモータ1は、モータ10、上位コントローラ20、サーボドライバ30を備えている。
サーボドライバ30は、第1加算部31、位置制御部32、第2加算部33、第1リミッタ34、速度制御器35、第3加算部36、第2リミッタ37、電流制御器38、コイル温度検出器39、電流センサ40を備えている。
【0016】
モータ10は、モータのロータ位置および回転速度に応じた信号を検出するエンコーダと、コイルとを有している。モータ10には、サーボドライバ30の電流制御部38からの制御信号である電圧指示値が入力される。エンコーダは、ロータ位置を検出し、検出したロータ位置に関する情報を、第1加算部31に出力する。エンコーダは、モータの回転速度を検出し、検出したモータの回転速度に関する情報を速度モニタ値として、第2加算部33、コイル温度検出器39に出力する。
電流センサ40は、コイルに流れる電流を検出し、検出した電流に基づく情報を電流モニタ値として、第3加算部36、コイル温度検出器39に出力する。
【0017】
上位コントローラ20は、コイル温度検出器39が検出したコイルの温度に関する判別結果が入力される。上位コントローラ20は、入力されたコイルの温度に関する判別結果に基づき、モータの制御値を生成して、生成した制御値を第1加算部31に出力する。
【0018】
サーボドライバ30の第1加算部31には、上位コントローラ20からモータの制御値と、モータ10のエンコーダが出力したロータ位置に関する情報とが入力される。第1加算部31は、入力されたモータの制御値からロータ位置に関する情報に基づく値を減算して、減算した制御信号を位置制御部32に出力する
位置制御部32は、第1加算部31から入力された制御信号に基づき、速度制御信号を生成する。位置制御部32は、生成した速度制御信号を第2加算部33に出力する。
第2加算部33には、位置制御部32が出力した速度制御信号と、モータ10のエンコーダが出力した速度モニタ値とが入力される。第2加算部33は、入力された速度制御信号から速度モニタ値を減算して、減算した信号を速度制御信号として第1リミッタ34に出力する。
第1リミッタ34には、第2加算部33が出力した速度制御信号と、コイル温度検出器39が出力した検出温度の判別結果を示す信号とが入力される。第1リミッタ34は、入力された速度制御信号と検出温度の判別結果を示す信号とに基づき、速度制御信号に対して、例えば段階的にリミッタを掛けて出力を制限する。第1リミッタ34は、リミッタを掛けて出力制限した速度制御信号を速度制御器35に出力する。
速度制御器35は、第1リミッタ34から出力された速度制御信号に基づき、電流制御信号を生成し、生成した電流制御信号を第3加算部36に出力する。
【0019】
第3加算部36には、速度制御器35から出力された電流制御信号と、電流センサ40が出力したから出力された電流モニタ値とが入力される。第3加算部36は、入力された電流制御信号から電流モニタ値を減算して、減算した信号を電流制御信号として第2リミッタ37に出力する。
第2リミッタ37には、第3加算部36が出力した電流制御信号と、コイル温度検出器39が出力した検出温度の判別結果を示す信号とが入力される。第2リミッタ37は、入力された電流制御信号と検出温度の判別結果を示す信号とに基づき、電流制御信号に対して、例えば段階的にリミッタを掛けて出力を制限する。第2リミッタ37は、リミッタ後の電流制御信号を電流制御器38に出力する。
電流制御器38は、第2リミッタ37から出力された電流制御信号に基づき、電圧制御信号(以下、電圧指示値という)を生成し、生成した電圧指示値をモータ10に出力する。
コイル温度検出器39(電流補正部、抵抗値推定部、温度判別部)には、電流制御器38から出力された電圧指示値、モータ10のエンコーダから出力された速度モニタ値およびサーボドライバ30の電流センサ40が出力した電流モニタ値が入力される。コイル温度検出器39は、入力された電圧指示値、速度モニタ値、電流モニタ値に基づき、モータ10のコイルの温度を判別し、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力する。
【0020】
次に、図1のサーボモータ1の動作の概要について説明する。
コイル温度検出器39は、入力された電流モニタ値と速度モニタ値を用いて補正電流値(仮想電流値)を算出する。また、コイル温度検出器39は、算出された補正電流値と、入力された電圧指示値とを用いて、逐次最小二乗法により、モータ10のコイルの抵抗値を推定する。また、コイル温度検出器39は、推定したコイルの抵抗値に基づき、コイルの温度を判別し、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力する。
上位コントローラ20は、コイル温度検出器39から入力されたコイルの温度の判別結果に基づき、モータの制御値を制御する。第1リミッタ34は、コイル温度検出器39から入力されたコイルの温度の判別結果に基づき、速度制御器35に出力する制御値を制御する。第2リミッタ37は、コイル温度検出器39から入力されたコイルの温度の判別結果に基づき、電流制御器38に出力する制御値を制御する。
上述のように、サーボモータ1は、誘起電圧分を補正した補正電流と、電圧指示値とを用いて、逐次最小二乗法によりコイルの抵抗値を推定する。そして、サーボモータ1は、推定したコイルの抵抗値に基づき、コイルの温度を判別する。この結果、モータ動作中に、コイルに発生する電圧値を実測しなくても、リアルタイムでコイルの温度を判別できる。そして、上位コントローラ20とサーボドライバ30は、この判別された温度結果を用いて、モータ10を制御することで、コイルの温度に応じてモータ10を有効に動作させることが可能になる。
【0021】
次に、コイル温度検出器39の動作と構成について、図2を用いて説明する。図2は、本実施形態に係る逐次最小二乗演算部を並列利用する例を説明する図である。
図2に示すように、コイル温度検出器39は、第1電流補正関数部101、第2電流補正関数部102、第3電流補正関数部103、第1逐次最小二乗法演算部104、第2逐次最小二乗法演算部105、第3逐次最小二乗法演算部106、温度判別部107を備えている。
【0022】
第1電流補正関数部101(電流補正部)には、電流センサ40から電流モニタ値とモータ10のエンコーダから速度モニタ値とが入力される。第1電流補正関数部101は、入力された電流モニタ値と速度モニタ値とを用いて、後述する電流補正関数により仮想電流値を算出し、算出した仮想電流値を第1逐次最小二乗法演算部104に出力する。
なお、第1電流補正関数部101に入力される電流モニタ値は、電流センサ40からの出力に対して、例えば遮断周波数が50[Hz]のLPF(Low−Pass Filter)を行ったものであってもよい。また、第1電流補正関数部101に入力される速度モニタ値は、モータ10のエンコーダからの出力に対して、例えば遮断周波数が50[Hz]のLPFを行ったものであってもよい。
第2電流補正関数部102(電流補正部)には、電流センサ40から電流モニタ値とモータ10のエンコーダから速度モニタ値とが入力される。第2電流補正関数部102は、後述する電流補正関数により仮想電流値を算出し、算出した仮想電流値を第2逐次最小二乗法演算部105に出力する。
第3電流補正関数部103(電流補正部)には、電流センサ40から電流モニタ値とモータ10のエンコーダから速度モニタ値とが入力される。第3電流補正関数部103は、後述する電流補正関数により仮想電流値を算出し、算出した仮想電流値を第3逐次最小二乗法演算部106に出力する。
【0023】
第1電流補正関数部101は、第1の所定の温度が設定されている。第1の所定の温度とは、例えば、60[度]である。
第1逐次最小二乗法演算部104には、電流制御部38が出力した電圧指示値と第1電流補正関数部101が出力した仮想電流値とが入力さる。第1逐次最小二乗法演算部104は、入力された電圧指示値と仮想電流値とを用いて、後述する逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗の推定値を温度判別部107に出力する。
第2電流補正関数部102は、第2の所定の温度が設定されている。第2の所定の温度とは、例えば、90[度]である。
第2逐次最小二乗法演算部105には、電流制御部38が出力した電圧指示値と第2電流補正関数部102が出力した仮想電流値とが入力される。
第2逐次最小二乗法演算部105は、入力された電圧指示値と仮想電流値とを用いて、後述する逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107に出力する。
第3電流補正関数部103は、第3の所定の温度が設定されている。第3の所定の温度とは、例えば、120[度]である。
第3逐次最小二乗法演算部106には、電流制御部38が出力した電圧指示値と第3電流補正関数部103が出力した仮想電流値とが入力される。第3逐次最小二乗法演算部106は、入力された電圧指示値と仮想電流値とを用いて、後述する逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107に出力する。
なお、第1逐次最小二乗法演算部104〜第3逐次最小二乗法演算部106に入力される電圧指示値は、サーボドライバ30の電流制御器38からの出力に対して、例えば遮断周波数が50[Hz]のLPFを行ったものであってもよい。
【0024】
温度判別部107(温度判別部)には、第1逐次最小二乗法演算部104〜第3逐次最小二乗法演算部106から、各設定温度におけるコイルの抵抗値が入力される。温度判別部107は、入力された各設定温度におけるコイルの抵抗値に基づき、コイルの温度の状態を判別する。コイルの温度の状態とは、第1の所定の温度未満であるか、第1の所定の温度〜第2の所定の温度の範囲内であるか、第2の所定の温度〜第3の所定の温度の範囲内であるか、第3の所定の温度以上であるか、である。
温度判別部107は、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力する。
【0025】
次に、温度検出の手順を、図3を用いて説明する。図3は、本実施形態に係るコイル温度検出器39が行う処理の手順を示すフローチャートである。
第1電流補正関数部101は、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第1逐次最小二乗法演算部104に出力する(ステップS1)。
ステップS1と並行して、第2電流補正関数部102は、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第2逐次最小二乗法演算部105に出力する(ステップS2)。
ステップS1、S2と並行して、第3電流補正関数部103は、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第3逐次最小二乗法演算部106に出力する(ステップS3)。
【0026】
次に、第1逐次最小二乗法演算部104は、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107に出力する(ステップS4)。
ステップS4と並行して、第2逐次最小二乗法演算部105は、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107に出力する(ステップS5)。
ステップS4、S5と並行して、第3逐次最小二乗法演算部106は、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107に出力する(ステップS6)。
【0027】
次に、温度判別部107は、入力されたコイルの抵抗値に基づき、コイルの温度を判別する(ステップS7)。具体的には、温度判別部107が、ステップS4〜S6で算出されたコイルの抵抗値に基づき、コイルの温度が、第1の所定の温度未満であるか、第1の所定の温度〜第2の所定の温度の範囲内か、第2の所定の温度〜第3の所定の温度の範囲内か、第3の所定の温度以上であるかを判別する。温度判別部107は、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力する。
【0028】
なお、本実施形態では、ステップS1〜ステップS3を並行して行う例を説明したが、例えば、ステップS1終了後にステップS2を行い、ステップS2終了後にステップS3を行うようにしてもよい。または、処理する順番はこれに限らず、ステップS2、あるいはステップS3をステップS1より先に行うようにしてもよい。同様に、ステップS3〜S4も並行して行わずに、所定の順番またはランダムに処理を行うようにしてもよい。
【0029】
次に、コイルの温度を算出する方法について説明する。図4は、モータコイルの等価回路である。図4に示すように、モータコイルは、等価的にインダクタンスL、抵抗Rで表される。抵抗RとインダクタンスLに流れる電流をIとすると、電源の電圧Vは、次式(1)のように表される。
【0030】
【数1】
【0031】
式(1)を伝達関数G(s)で表すと、次式(2)のように表される。
【0032】
【数2】
【0033】
式(2)を双一次変換すると、次式(3)のように表される。
【0034】
【数3】
【0035】
式(3)において、Tsはサンプリング周期[s]である。
k番目のサンプリング時の電圧をVk、電流をIkと置くと、式(3)は、次式(4)のように置き換えられる。
【0036】
【数4】
【0037】
αを次式(5)、βを次式(6)のように置くと、式(4)は、次式(7)のように置き換えられる。
【0038】
【数5】
【0039】
【数6】
【0040】
【数7】
【0041】
式(5)と式(6)を用いて、次式(8)により抵抗Rの抵抗値を算出できる。
【0042】
【数8】
【0043】
この抵抗値を算出するために、式(7)に対して逐次最小二乗法により、次式(9)の値を最小にするαとβを算出する。なお、忘却要素λは、1以下の正数である。
【0044】
【数9】
【0045】
式(9)に最小二乗法を適用すると、次式(10)の連立方程式のように表される。
【0046】
【数10】
【0047】
式(10)の連立方程式を解き、逐次形式にすることで次式(11)が得られる。
【0048】
【数11】
【0049】
式(11)において、P(k)は、次式(12)のように表される。なお、式(11)において、P(k)−1は、2行×2列の正方行列であるため、容易に計算することが可能である。
【0050】
【数12】
【0051】
次に、サーボモータへの上述した逐次最小二乗法の適用について説明する。
まず、dq座標でのモータの電圧方程式は、次式(13)のように表される。
【0052】
【数13】
【0053】
なお、式(13)において、Vdは電機子電圧のd軸成分、Vqは電機子電圧のq軸成分、Ldはd軸のインダクタンス、Lqはq軸のインダクタンスである。また、ω〜は電気角速度、Raは電機子巻線抵抗(コイル抵抗)、p(=d/dt)は微分演算子、Φa(=√(3/2)Φf)は電機子鎖交磁束、Φfは電機子鎖交磁束の最大値である。
Id=0とすると、式(13)は次式(14)のようになる。
【0054】
【数14】
【0055】
なお、式(14)において、ωは機械角速度、Pは極対数、Ke=ΦaPである。
逐次最小二乗法を適用するために、誘起電圧の影響を排除する必要がある。このため、式(14)の右辺の項Keωを左辺に移動させ、速度に応じて電圧を補正すると、次式(15)のように表される。
【0056】
【数15】
【0057】
式(15)において、Vq―Keωを電圧Vとする。
次に、速度に応じて電流を補正すると、次式(16)のように表される。
【0058】
【数16】
【0059】
式(16)において、Iq+Ke/Raωを電流Iとする。
次に、電圧指示値の非線形性を考慮し、Iq+Ke/Raωを、Iqとωを変数とする3次関数(電流補正関数)f(Iq,ω)に置き換えることで、式(16)を次式(17)に置き換えられる。
【0060】
【数17】
【0061】
なお、式(17)において、電流補正関数f(Iq,ω)は、次式(18)である。
【0062】
【数18】
【0063】
式(18)において、C10、C01、C30、C21、C12、C03は係数である。
なお、電流補正関数f(Iq,ω)として、式(18)のように3次の例を説明したが、電流補正関数の次数は3次に限らず、奇関数であれば、例えば5次以上であってもよい。
【0064】
次に、式(18)の係数の算出手順について、図5、図6を用いて説明する。
図5は、本実施形態に係る電流補正関数の係数の算出手順を説明する図である。まず、システム設計者が、目標温度(例えば、60[度]、90[度]、120[度])において、電圧指令値、q軸の電流モニタ値、速度モニタ値の各値を測定する。
次に、システム設計者は、目標温度で、モータにおけるコイルのインダクタンスL、抵抗値Rを測定する。
次に、システム設計者は、実測した電圧指示値、コイルのインダクタンスL、抵抗値R、および式(2)を用いて、仮想電流値Iを算出する。なお、仮想電流値Iの算出は、例えば、微分方程式に対して数値計算により行う。
次に、システム設計者は、実測したq軸の電流モニタ値、速度モニタ値、算出された仮想電流値Iを用いて、式(18)に最小二乗法を用いて、係数C10、C01、C30、C21、C12、C03を算出する。このように算出された係数C10、C01、C30、C21、C12、C03は、第1電流補正関数部101〜第3電流補正関数部103に書き込んで記憶する。
なお、以上では、システム設計者が係数を算出する例を説明したが、サーボモータ1に不図示の係数演算部をさらに設け、この係数演算部が係数を算出するようにしてもよい。
【0065】
図6は、本実施形態に係る電圧指示値、速度モニタ値、電流モニタ値の取得について説明する図である。
図6に示すように、測定対象となるモータ201は、取り付け台210に取り付けられている。モータ201には、治具222を介して負荷をかけるためのモータ(以下、負荷モータという)220が取り付けられている。また、モータ201には、モータ201のコイル温度を測定するための熱電対230が取り付けられている。なお、モータ201は、図1のサーボモータ1である。
【0066】
サーボモータ1は、以下の手順で電圧指示値、速度モニタ値、電流モニタ値の取得を行う。
(I)上位コントローラ20は、モータ201に回転速度が一定となるよう制御する。
(II)不図示の駆動部は、負荷モータ220に、例えば正弦波状の駆動信号を供給する。
(III)システム設計者は、熱電対230によりモータ201の温度を観測し、モータ201が予め定めておいた温度に達したときの電圧指示値、および速度モニタ値、電流モニタ値を読み取り記録する。なお、予め定めておいた温度とは、例えば、60[度]、90[度]、120[度]である。
(IV)上位コントローラ20からの回転速度を変えて、(I)〜(III)を繰り返す。
システム設計者は、以上の手順で測定された電圧指示値、速度モニタ値、電流モニタ値から係数C10、C01、C30、C21、C12、C03を算出し、算出した係数を第1電流補正関数部101〜第3電流補正関数部103に書き込んで記憶させておく。
【0067】
次に、本実施形態に係るサーボモータ1に対して、負荷を外部から掛けて動作を確認した結果について説明する。以下の実験例では、サーボモータ1は、温度が120[度]以上になったと判別された場合に、モータ10に対して電圧指示値を制御するように設定した例である。
図7は、時間に対するコイル温度とコイルの抵抗の推定値の変化を示す図である。また、図7(a)は、時間に対するコイル温度変化の一例を示す図であり、図7(b)は、時間に対するコイルの抵抗値の推定値の一例を示す図である。図7(a)において、横軸は時間、縦軸はモータ10のコイルの温度(コイル温度)であり、曲線g301は時間に対するコイル温度の変化である。図7(b)において、横軸は時間、縦軸はコイルの推定抵抗値であり、曲線g302は時間に対するコイルの推定抵抗値の変化である。なお、図7(b)のコイルの温度は、熱電対による実測値である。
図7(a)に示すように、時刻0の時、上位コントローラ20は、サーボドライバ30に正弦波状の速度指示値を出力する。速度指示値は、振幅±5000[rpm]、周波数3[Hz]である。
【0068】
時刻、約3秒の時、図6で説明したように、負荷モータに正弦波状の駆動電流を供給し始める。負荷モータに供給する正弦波状の駆動電流は、±20[Aiq](電流増幅度)、周波数3[Hz]である。この結果、時刻3秒〜時刻33秒の期間、曲線g301のように実測のコイルの温度は上昇する。また、時刻3秒〜時刻33秒の期間、推定されたコイルの推定抵抗値は、曲線g302のように増加する。
時刻、約33秒の時、図7(b)のように、コイルの推定抵抗値は、約0.43[Ω]になる。モータ10が120[度]の時の抵抗値は、予め測定により求めてあり、約0.43[Ω]である。このため、温度判別部107は、モータ10の抵抗値からコイルの温度が120[度]を超えていると判別し、上位コントローラ20に判別結果を出力する。図7(b)のように、上位コントローラ20は、入力された判別結果に基づき、時刻33秒〜時刻47秒までの期間、サーボ状態をオフしている。この結果、図7(a)のように、コイルの温度は、サーボオフから少し遅れて、時刻35秒〜時刻47秒の期間、120[度]から徐々に下がっていく。
【0069】
そして、時刻62秒の時、温度判別部107は、コイルの抵抗値が約0.43[Ω]に達したため、コイルの温度が120[度]以上になったと判別し、上位コントローラ20に判別結果を出力する。
以上のように、本実施形態に係るサーボモータ1は、設定した120度と推定した時刻で制御が係っていることから、精度良くコイルの温度を判別できていることを表している。
サーボ状態をオフで温度推定を行わない理由を説明する。サーボ状態をオフした状態では、電圧指令が出ていないためである。このため、温度が一定値に達したらサーボ状態をオフするのではなく電流を絞るような制御をしてもよい。この場合、コイル温度の推定結果による電流の制御が可能となる。
【0070】
図8は、正弦波速度指示の振幅を変化させた場合の時間に対するコイルの抵抗の推定値の変化を示す図である。図8において、上位コントローラ20は、サーボドライバ30に正弦波状の速度指示値を、回転速度が±1000[rpm]〜±5000[rpm]になるように変化させている。図8において、横軸はコイルの温度、縦軸はコイルの推定抵抗値である。図8において、曲線g401〜g405は、それぞれ回転数±1000[rpm]、±2000[rpm]、±3000[rpm]、±4000[rpm]、±5000[rpm]のコイルの温度に対するコイルの推定抵抗値である。
図8に示すように、コイルの推定抵抗値が約0.431[Ω]において、回転速度が異なってもコイルの温度がほぼ一致している。このように、モータ10の特性により、温度判別部107は、回転速度毎にコイルの温度とコイルの推定抵抗値を記憶しておかなくても、1つの回転速度に共通の値のみを記憶しておくようにしてもよい。また、温度判別部107は、このように回転速度が変化しても、コイルの温度とコイルの推定抵抗値が一致するポイントg410のみの推定抵抗値により、コイルの温度を判別するようにしてもよい。
【0071】
また、本実施形態では、温度判別部107が、コイルの温度とコイルの推定抵抗値の関係を記憶しておく例を説明したが、コイル温度検出器39の内部、または外部に設けられている不図示の記憶部に記憶させておくようにしてもよい。
【0072】
なお、本実施形態では、コイル温度検出器39が、予め設定された温度に対して判別を行う例を説明したが、推定したコイルの抵抗値に基づいて、コイルの温度を推定するようにしてもよい。この場合、コイル温度検出器39は、推定したコイルの温度を示す情報を、上位コントローラ20等に出力するようにしてもよい。
【0073】
以上のように、コイル温度検出器39の第1電流補正関数部101〜第3電流補正関数部103は、入力された電流モニタ値と速度モニタ値を用いて補正電流値(仮想電流値)を算出する。また、第1逐次最小二乗法演算部104〜第3逐次最小二乗法演算部106は、算出された補正電流値と、入力された電圧指示値とを用いて、逐次最小二乗法により、モータ10のコイルの抵抗値を推定する。また、温度判別部107は、推定したコイルの抵抗値に基づき、コイルの温度を判別し、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力する。
上位コントローラ20、第1リミッタ34、第2リミッタ37は、入力されたコイルの温度の判別結果に基づき、モータの制御値を制御する。この結果、リアルタイムにコイルの抵抗値を推定し、推定したコイルの抵抗値に基づいてコイルの温度を判別するようにしたので、モータ動作中に、モータのコイルの温度を正確に判別することができる。また、本実施形態に係るサーボモータは、従来技術のように予めモデルを作成しておき積算してコイルの温度を推定しないため、時間の経過と共にコイルの温度の推定値の誤差が生じない。そして、上位コントローラ20とサーボドライバ30は、この判別された結果を用いて、モータを制御することで、コイルの温度に応じてモータを有効に動作させることが可能になる効果がある。
【0074】
[第2実施形態]
第1実施形態では、コイル温度検出器39において、複数の逐次最小二乗法演算部を並列で用いる例を説明した。第2実施形態は、複数の逐次最小二乗法演算部を直列に用いる例について説明する。
図9は、本実施形態に係るサーボモータのブロック図である。図9に示すように、サーボモータ1aは、モータ10、上位コントローラ20、サーボドライバ30aを備えている。サーボドライバ30aは、第1加算部31、位置制御部32、第2加算部33、第1リミッタ34、速度制御器35、第3加算部36、第2リミッタ37、電流制御器38、コイル温度検出器39a、電流センサ40を備えている。第1実施形態と同じ機能部は、同じ符号を用いて、説明を省略する。
【0075】
図10は、本実施形態に係る逐次最小二乗演算部を直列利用する別の例を説明する図(1)である。図11は、本実施形態に係る逐次最小二乗演算部を直列利用する別の例を説明する図(2)である。図12は、本実施形態に係る逐次最小二乗演算部を直列利用する別の例を説明する図(3)である。
【0076】
図10〜図12に示すように、コイル温度検出器39aは、設定切替部100a、第1電流補正関数部101a、第2電流補正関数部102a、第3電流補正関数部103a、第1逐次最小二乗法演算部104a、第2逐次最小二乗法演算部105a、第3逐次最小二乗法演算部106a、温度判別部107aを備えている。
設定切替部100a(温度判別部)には、電流制御器38が出力する電圧指示値と、モータ10のエンコーダが出力する速度モニタ値と、電流センサ40が出力する電流モニタ値とが入力される。設定切替部100aは、入力された電圧指示値、速度モニタ値、電流モニタ値を、第1電流補正関数部101a〜第3電流補正関数部103a及び第1逐次最小二乗法演算部104a〜第3逐次最小二乗法演算部106aの各々の出力先を切り替えて出力する。すなわち、図10に示すように、設定切替部100aは、入力された電圧指示値を第1逐次最小二乗法演算部104aに出力する様に切り替え、入力された速度モニタ値と電流モニタ値を第1電流補正関数部101aに出力するように切り替える。次に、図11に示すように、設定切替部100aは、入力された電圧指示値を第2逐次最小二乗法演算部105aに出力する様に切り替え、入力された速度モニタ値と電流モニタ値を第2電流補正関数部102aに出力するように切り替える。次に、図12に示すように、設定切替部100aは、入力された電圧指示値を第3逐次最小二乗法演算部106aに出力する様に切り替え、入力された速度モニタ値と電流モニタ値を第3電流補正関数部103aに出力するように切り替える。
【0077】
第1電流補正関数部101a(電流補正部)には、電流モニタ値と速度モニタ値とが入力される。第1電流補正関数部101aは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を、第1逐次最小二乗法演算部104aに出力する。第1電流補正関数部101aは、第1の所定の温度が設定されている。第1の所定の温度とは、例えば、60[度]である。
第1逐次最小二乗法演算部104aには、設定切替部100aが出力した電圧指示値と第1電流補正関数部101aが出力した仮想電流値とが入力さる。第1逐次最小二乗法演算部104aは、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107aに出力する。
【0078】
第2電流補正関数部102a(電流補正部)には、電流モニタ値と速度モニタ値とが入力される。第2電流補正関数部102aは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を、第2逐次最小二乗法演算部105aに出力する。第2電流補正関数部102aは、第2の所定の温度が設定されている。第2の所定の温度とは、例えば、90[度]である。
第2逐次最小二乗法演算部105aには、設定切替部100aが出力した電圧指示値と第2電流補正関数部102aが出力した仮想電流値とが入力される。第2逐次最小二乗法演算部105aは、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107aに出力する。
【0079】
第3電流補正関数部103a(電流補正部)には、電流モニタ値と速度モニタ値とが入力される。第3電流補正関数部103aは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を、第3逐次最小二乗法演算部106aに出力する。第3電流補正関数部103aは、第3の所定の温度が設定されている。第3の所定の温度とは、例えば、120[度]である。
第3逐次最小二乗法演算部106aには、設定切替部100aが出力した電圧指示値と第3電流補正関数部103aが出力した仮想電流値とが入力される。第3逐次最小二乗法演算部106aは、入力された電圧指示値と仮想電流値とを用いて、後述逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107aに出力する。
【0080】
温度判別部107a(温度判別部)には、第1逐次最小二乗法演算部104a〜第3逐次最小二乗法演算部106aから、順次、各設定温度におけるコイルの抵抗値が入力される。温度判別部107aは、入力された各設定温度におけるコイルの抵抗値に基づき、コイルの温度の状態を判別する。コイルの温度の状態とは、第1の所定の温度以下であるか、第1の所定の温度〜第2の所定の温度であるか、第2の所定の温度〜第3の所定の温度であるか、第3の所定の温度以上であるか、である。
温度判別部107aは、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力する。
【0081】
次に、温度検出の手順を、図10〜図13説明する。図13は、本実施形態に係るコイル温度検出器39aが行う処理の手順を示すフローチャートである。
まず、図10に示すように、設定切替部100aは、温度判別部107aの指示により電圧指示値を第1逐次最小二乗法演算部104aに出力するように切り替え、電流モニタ値と速度モニタ値を第1電流補正関数部101aに出力するように設定を切り替える(ステップS101)。
次に、第1電流補正関数部101aは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第1逐次最小二乗法演算部104aに出力する(ステップS102)。
次に、第1逐次最小二乗法演算部104aは、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107aに出力する(ステップS103)。
【0082】
温度判別部107aは、入力されたコイルの抵抗値に基づき、コイルの温度が所定の期間、第1の所定の温度以上であるか否かを判別する(ステップS104)。なお、所定の期間とは、例えば1秒間である。
コイルの温度が所定の期間、第1の所定の温度未満である場合(ステップS105;No)、温度判別部107aは、コイルの温度が第1の所定の温度未満にあると判別する。温度判別部107aは、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力し、ステップS116に進む。
コイルの温度が所定の期間、第1の所定の温度以上である場合(ステップS105;Yes)、温度判別部107aは、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37、設定切替部100aに出力し、ステップS116に進む。
【0083】
次に、図11に示すように、設定切替部100aは、温度判別部107aの指示により、電流指示値を第2逐次最小二乗法演算部105aに出力するように切り替え、電流モニタ値と速度モニタ値を第2電流補正関数部102aに出力するように設定を切り替える指示を出力する(ステップS106)。
次に、第2電流補正関数部102aは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第2逐次最小二乗法演算部105aに出力する(ステップS107)。
次に、第2逐次最小二乗法演算部105aは、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107aに出力する(ステップS108)。
【0084】
温度判別部107aは、入力されたコイルの抵抗値に基づき、コイルの温度が所定の期間、第2の所定の温度以上であるか否かを判別する(ステップS109)。
コイルの温度が所定の期間、第2の所定の温度未満である場合(ステップS110;No)、温度判別部107aは、コイルの温度が第1の所定の温度〜第2の所定の温度の範囲にあると判別する。温度判別部107aは、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力し、ステップS116に進む。
コイルの温度が所定の期間、第2の所定の温度以上である場合(ステップS110;Yes)、温度判別部107aは、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37、設定切替部100aに出力し、ステップS111に進む。
【0085】
次に、図12に示すように、設定切替部100aは、温度判別部107aの指示により、電流指示値を第3逐次最小二乗法演算部106aに出力するように切り替え、電流モニタ値と速度モニタ値を第3電流補正関数部103aに出力するように設定を切り替える指示を出力する(ステップS111)。
次に、第3電流補正関数部103aは、入力された電流モニタ値と速度モニタ値とを用いて、電流補正関数により仮想電流値を算出し、算出した仮想電流値を第3逐次最小二乗法演算部106aに出力する(ステップS112)。
次に、第3逐次最小二乗法演算部106aは、入力された電圧指示値と仮想電流値とを用いて、逐次最小二乗法によりコイルの抵抗値を算出し、算出したコイルの抵抗値を温度判別部107aに出力する(ステップS113)。
【0086】
温度判別部107aは、入力されたコイルの抵抗値に基づき、コイルの温度が所定の期間、第3の所定の温度以上であるか否かを判別する(ステップS114)。
コイルの温度が所定の期間、第3の所定の温度未満である場合(ステップS115;No)、温度判別部107aは、コイルの温度が第2の所定の温度〜第3の所定の温度の範囲にあると判別する。温度判別部107aは、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力し、ステップS116に進む。
コイルの温度が所定の期間、第3の所定の温度以上である場合(ステップS115;Yes)、温度判別部107aは、判別結果を上位コントローラ20、第1リミッタ34、第2リミッタ37に出力し、ステップS116に進む。
【0087】
温度判別部107aは、ステップS105、S110、S115の判別結果に基づき、設定切替部100aの設定を切り替える(ステップS116)。すなわち、ステップS105でコイルの温度が所定の期間、第1の所定の温度未満である場合、温度判別部107aは、ステップS101に戻る設定、処理を行う。ステップS109でコイルの温度が所定の期間、第1の所定の温度〜第2の所定の温度の範囲内である場合、温度判別部107aは、ステップS101に戻る設定、処理を行う。ステップS115でコイルの温度が所定の期間、第2の所定の温度〜第3の所定の温度の範囲内である場合温度判定部107は、ステップS106に戻る設定を行う。または第3の所定の温度以上である場合、温度判別部107aは、ステップS111に戻る設定、処理を行う。
【0088】
なお、本実施形態では、3つの第1逐次最小二乗法演算部104a〜第3逐次最小二乗法演算部106aを用いる例を説明したが、逐次最小二乗法演算部は1つでもよい。この場合、温度判別部107aは、ステップS101で逐次最小二乗法演算部に第1の所定温度を設定し、ステップS106で逐次最小二乗法演算部に第2の所定温度を設定し、ステップS111で逐次最小二乗法演算部に第3の所定温度を設定することで、図10〜図12と同様の動作を行うことができる。
【0089】
以上のように、異なる温度設定の電流補正関数部が算出した仮想電流と電圧指示値に基づき、逐次最小二乗法演算部がコイルの温度の推定を行う。そして、コイル温度判別部は、逐次最小二乗法演算部が推定したコイルの温度に基づき、順次、コイルの温度を判別するようにした。あるいは、コイル温度判別部は、1つの電流補正関数部に対して順次、温度設定を行い、逐次最小二乗法演算部が算出したコイルの温度の推定に基づき、順次、コイルの温度を判別するようにした。この結果、リアルタイムにコイルの抵抗値を推定し、推定したコイルの抵抗値に基づいてコイルの温度を判別するようにしたので、モータの動作中に、コイルの温度を正確に推定することができる。
このため、本実施形態に係るサーボモータは、従来技術のように予めモデルを作成しておき積算してコイルの温度を推定しないため時間の経過と共にコイルの温度の推定値の誤差が生じない。また、モータ動作中に、コイルに発生する電圧値を実測しなくても、リアルタイムでコイルの温度を推定できる。そして、上位コントローラ20とサーボドライバ30は、この推定された結果を用いて、モータを制御することで、コイルの温度に応じてモータを有効に動作させることが可能になる効果がある。
【0090】
なお、実施形態の図1、図2、図9〜図12の各部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD−ROM等の可搬媒体、USB(Universal Serial Bus) I/F(インタフェース)を介して接続されるUSBメモリ、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、サーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【符号の説明】
【0091】
1・・・サーボモータ 10・・・モータ 11・・・コイル
20・・・上位コントローラ
30・・・サーボドライバ 31・・・第1加算部 32・・・位置制御部
33・・・第2加算部 34・・・第1リミッタ 35・・・速度制御器
36・・・第3加算部 37・・・第2リミッタ 38・・・電流制御器
39、39a・・・コイル温度検出器 100a・・・設定切替部
101、101a・・・第1電流補正関数部
102、102a・・・第2電流補正関数部
103、103a・・・第3電流補正関数部
104、104a・・・第1逐次最小二乗法演算部
105、105a・・・第2逐次最小二乗法演算部
106、106a・・・第3逐次最小二乗法演算部 107、107a・・・温度判別部
【特許請求の範囲】
【請求項1】
モータに流れる電流値を、前記モータに発生する誘起電圧に基づく回転速度値に基づき補正する電流補正部と、
前記モータに印加される電圧の指示値と、前記補正された電流値とを用いて、逐次最小二乗法により、前記モータのコイルの抵抗値を推定する抵抗値推定部と、
前記推定された抵抗値に基づき、前記モータのコイルの温度を判別する温度判別部と、
を備えることを特徴とするサーボモータのコイル温度検出装置。
【請求項2】
前記抵抗値推定部は、
予め設定された異なる温度条件に基づいて、前記モータのコイルの抵抗値を推定する
ことを特徴とする請求項1に記載のサーボモータのコイル温度検出装置。
【請求項3】
前記温度判別部は、
前記推定された抵抗値に基づき、前記モータのコイルの温度を判別し、判別したコイルの温度が前記設定された温度以上の場合、前記抵抗値推定部の温度条件を変更し、
前記コイルの抵抗値の推定と前記コイルの温度の判別とを繰り返し行う
ことを特徴とする請求項2に記載のサーボモータのコイル温度検出装置。
【請求項4】
複数の前記抵抗値推定部を備え、
前記複数の抵抗値推定部各々は、
前記複数の抵抗値推定部毎に異なる温度条件に基づいて、前記モータのコイルの抵抗値を推定し、
前記温度判別部は、前記推定された複数の抵抗値に基づき、前記モータのコイルの温度を判別する
ことを特徴とする請求項1に記載のサーボモータのコイル温度検出装置。
【請求項5】
モータと、
前記モータの回転速度を制御する速度制御部と、
前記モータに印加される電流を制御する電流制御部と、
コイル温度検出装置と、
を備え、
前記コイル温度検出装置は、
モータに流れる電流値を、前記モータに発生する誘起電圧に基づく回転速度値に基づき補正する電流補正部と、
前記モータに印加される電圧の指示値と、前記補正された電流値とを用いて、逐次最小二乗法により、前記モータのコイルの抵抗値を推定する抵抗値推定部と、
前記推定された抵抗値に基づき、前記モータのコイルの温度を判別する温度判別部と、
を備えることを特徴とするサーボモータ。
【請求項1】
モータに流れる電流値を、前記モータに発生する誘起電圧に基づく回転速度値に基づき補正する電流補正部と、
前記モータに印加される電圧の指示値と、前記補正された電流値とを用いて、逐次最小二乗法により、前記モータのコイルの抵抗値を推定する抵抗値推定部と、
前記推定された抵抗値に基づき、前記モータのコイルの温度を判別する温度判別部と、
を備えることを特徴とするサーボモータのコイル温度検出装置。
【請求項2】
前記抵抗値推定部は、
予め設定された異なる温度条件に基づいて、前記モータのコイルの抵抗値を推定する
ことを特徴とする請求項1に記載のサーボモータのコイル温度検出装置。
【請求項3】
前記温度判別部は、
前記推定された抵抗値に基づき、前記モータのコイルの温度を判別し、判別したコイルの温度が前記設定された温度以上の場合、前記抵抗値推定部の温度条件を変更し、
前記コイルの抵抗値の推定と前記コイルの温度の判別とを繰り返し行う
ことを特徴とする請求項2に記載のサーボモータのコイル温度検出装置。
【請求項4】
複数の前記抵抗値推定部を備え、
前記複数の抵抗値推定部各々は、
前記複数の抵抗値推定部毎に異なる温度条件に基づいて、前記モータのコイルの抵抗値を推定し、
前記温度判別部は、前記推定された複数の抵抗値に基づき、前記モータのコイルの温度を判別する
ことを特徴とする請求項1に記載のサーボモータのコイル温度検出装置。
【請求項5】
モータと、
前記モータの回転速度を制御する速度制御部と、
前記モータに印加される電流を制御する電流制御部と、
コイル温度検出装置と、
を備え、
前記コイル温度検出装置は、
モータに流れる電流値を、前記モータに発生する誘起電圧に基づく回転速度値に基づき補正する電流補正部と、
前記モータに印加される電圧の指示値と、前記補正された電流値とを用いて、逐次最小二乗法により、前記モータのコイルの抵抗値を推定する抵抗値推定部と、
前記推定された抵抗値に基づき、前記モータのコイルの温度を判別する温度判別部と、
を備えることを特徴とするサーボモータ。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−130162(P2012−130162A)
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願番号】特願2010−279628(P2010−279628)
【出願日】平成22年12月15日(2010.12.15)
【出願人】(000144027)株式会社ミツバ (2,083)
【Fターム(参考)】
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願日】平成22年12月15日(2010.12.15)
【出願人】(000144027)株式会社ミツバ (2,083)
【Fターム(参考)】
[ Back to top ]