(57)【特許請求の範囲】
【請求項１】
モータおよびエンコーダを含んで構成されるとともにロボットとしての動作を行なう各動作機構部を、前記各動作機構部のエンコーダ内で測定される前記エンコーダのエンコーダ温度に基づいて制御する制御装置において、
前記動作機構部内に設定される熱回路モデルと前記エンコーダ温度とを用いて、前記動作機構部内に仮想的に設定された位置での仮想位置温度を算出する温度算出部と、
前記温度算出部が算出した仮想位置温度に基づいて、前記動作機構部を制御する制御部と、
を備え、
前記温度算出部は、前記動作機構部の熱伝導率に関する情報を用いて設定された熱回路モデルである第１の熱回路モデルを用いて所定位置での前記仮想位置温度を算出するとともに、前記動作機構部内で発生するエネルギー損失に関する情報を用いて設定された熱回路モデルである第２の熱回路モデルを用いて前記所定位置での前記仮想位置温度を算出し、
前記制御部は、前記温度算出部が算出した２つの仮想位置温度に基づいて、前記動作機構部を制御することを特徴とする制御装置。
【請求項２】
前記第２の熱回路モデルに対応する仮想位置温度の温度変化特性を前記動作機構部の配置環境毎に記憶する記憶部をさらに備え、
前記温度算出部は、第２の熱回路モデルを用いて算出した仮想位置温度に対応する温度変化特性を前記記憶部から抽出し、抽出した温度変化特性を用いて、前記第１の熱回路モデルを用いて算出した仮想位置温度を補正することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記制御部は、前記動作機構部の動作効率特性に関する情報と、前記温度算出部が算出した仮想位置温度とに基づいて、前記仮想位置温度に対応する前記動作機構部の動作効率を算出し、算出した動作効率に基づいて前記動作機構部を制御することを特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記制御部は、前記仮想位置温度と前記動作機構部の熱膨張率とに基づいて、前記動作機構部の熱膨張に起因する前記動作機構部の移動目標位置の誤差を解消するよう前記動作機構部を制御することを特徴とする請求項１または２に記載の制御装置。
【請求項５】
前記温度算出部は、前記第２の熱回路モデルを用いて前記仮想位置温度を算出する際に、前記エネルギー損失と前記仮想位置温度とが対応づけられた情報を用いて前記仮想位置温度を算出することを特徴とする請求項１に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作を制御する制御装置に関するものである。
【背景技術】
【０００２】
産業用のロボットは、例えばアームを駆動させるモータの動作によって発熱し、実動作中にアームで内の各箇所で種々の温度変化が生じる。そして、アーム内で温度変化が生じると、この温度変化に応じてアーム内のモータや減速機などの動作特性が変化する。このため、ロボット内の温度を正確に検出し、検出した温度変化に応じたモータ等の動作制御を行なわなければ、ロボットに正確な動作を行なわせることはできない。
【０００３】
例えば、特許文献１に記載の産業用ロボットの制御装置は、温度センサが、ロボット制御装置と、ロボット機構部と、サーボモータの各軸と、に取り付けられている。そして、各温度センサで測定した温度に基づいて、モータの加速度や速度を制御している。
【０００４】
【特許文献１】特開平７−１３６９６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、エンコーダ通信線やモータの動力線などは、アームの軸毎に設置する必要があるので、軸数（アーム数）の多いロボットでは配線数が増加する。このため、上記従来の技術のように温度センサを各軸のモータやロボット機構部に多数設置して配線すると、アームの作業性を低下させてしまうという問題があった。また、アームの形状や軸数によっては、温度センサの設置スペースや配線スペースに限界があるので、多数の温度センサを設置することは困難である。
【０００６】
また、ロボット内に多数の温度センサを設置することにより、温度センサ、配線、入出力インターフェースなどのコストがかかるという問題があった。さらに、温度センサのみによって温度測定を行なう場合、温度センサは設置された場所の温度情報しか測定できないので、実際に測定したい箇所の温度と、温度センサによって測定した温度との間に差が生じるという問題があった。
【０００７】
本発明は、上記に鑑みてなされたものであって、簡易な構成で正確な温度を算出するとともに算出した正確な温度に基づいてロボットを制御する制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、モータおよびエンコーダを含んで構成されるとともにロボットとしての動作を行なう各動作機構部を、前記各動作機構部のエンコーダ内で測定される前記エンコーダのエンコーダ温度に基づいて制御する制御装置において、前記動作機構部内に設定される熱回路モデルと前記エンコーダ温度とを用いて、前記動作機構部内に仮想的に設定された位置での仮想位置温度を算出する温度算出部と、前記温度算出部が算出した仮想位置温度に基づいて、前記動作機構部を制御する制御部と、を備え、前記温度算出部は、前記動作機構部の熱伝導率に関する情報を用いて設定された熱回路モデルである第１の熱回路モデルを用いて所定位置での前記仮想位置温度を算出するとともに、前記動作機構部内で発生するエネルギー損失に関する情報を用いて設定された熱回路モデルである第２の熱回路モデルを用いて前記所定位置での前記仮想位置温度を算出し、前記制御部は、前記温度算出部が算出した２つの仮想位置温度に基づいて、前記動作機構部を制御することを特徴とする。
【発明の効果】
【０００９】
この発明によれば、動作機構部内に設定される熱回路モデルとエンコーダ温度とを用いて算出した動作機構部内の温度に基づいて動作機構部を制御するので、簡易な構成で正確な温度を算出するとともに算出した正確な温度に基づいてロボットを制御することが可能になるという効果を奏する。
【発明を実施するための最良の形態】
【００１０】
以下に、本発明に係る制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態１．
図１は、本発明の実施の形態１に係るロボットの構成を示す図である。ロボットは、ロボット制御装置１００と、機構部（動作機構部）Ｘとを含んで構成されている。ロボット制御装置１００は、位置速度指令装置２０とモータ制御装置１０を有している。
【００１２】
図１では、ロボット制御装置１００が機構部Ｘを制御する場合の構成について説明するが、ロボットは、後述するように機構部１〜４を有しているので、機構部Ｘは機構部１〜４に対応する。換言すると、ロボット制御装置１００は、機構部１〜４を制御する。したがって、ロボット制御装置１００は、機構部１〜４のそれぞれと接続されている。
【００１３】
位置速度指令装置２０は、制御部２１と記憶部２２を備えている。記憶部２２は、機構部Ｘを動作させるための制御プログラムなどを記憶するメモリなどである。制御部２１は、ＣＰＵ（Central  Processing  Unit）、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）などを備えて構成されており、機構部Ｘの位置や速度に関する制御を行なう。制御部２１は、記憶部２２内の制御プログラムや、モータ制御装置１０を介して機構部Ｘから送られてくるエンコーダＥｘの温度（後述の温度センサ値Ｓ）Ｔ２に基づいて、機構部Ｘ内に設定される複数箇所の温度をそれぞれ算出する。制御部２１は、算出した機構部Ｘ内の温度に基づいて、機構部Ｘの位置や速度を制御するための情報（以下、位置速度指示情報という）を生成する。制御部２１は、生成した位置速度指示情報をモータ制御装置１０に送信する。
【００１４】
モータ制御装置１０は、制御部１１とモータドライバ部１２を備えている。制御部１１は、ＣＰＵ、ＲＯＭ、ＲＡＭなどを備えて構成されており、機構部ＸのモータＭｘのパワーやトルクの制御を行なう。制御部１１は、位置速度指令装置２０から送られてくる位置速度指示情報に基づいて、機構部Ｘに与える電力（電流）等をモータドライバ部１２に指示する。また、制御部１１は、機構部Ｘから送られてくる温度センサ値（エンコーダ温度）Ｓ（℃）を位置速度指令装置２０に送る。モータドライバ部１２は、制御部１１からの指示に基づいて、機構部Ｘに電力（Ｕ、Ｖ、Ｗ）を送る。
【００１５】
機構部Ｘは、モータ制御装置１０からの指示に基づいて動作する。機構部Ｘは、例えばロボットのアームや土台であり、アーム内にはエンコーダＥｘ、モータＭｘ、減速機Ｄｘが配置されている。機構部Ｘでは、サーボモータに物理的に接続されたエンコーダＥｘ内に温度センサｓｘが配置されており、この温度センサｓｘがエンコーダＥｘ内の温度を測定する。温度センサｓｘによって測定された温度は、温度センサ値Ｓとしてモータ制御装置１０を介して位置速度指令装置２０に送られる。
【００１６】
モータＭｘは、モータドライバ部１２から供給される電力によってアーム等を駆動させる。エンコーダＥｘは、モータＭｘの回転数を検出し、検出結果（回転数Ｎ）をモータ制御装置１０に送る。減速機Ｄｘは、アームの動作を減速させるブレーキとしての機能を有している。
【００１７】
ロボット制御装置１００は、温度センサ値Ｓが所定値以上となった場合に、アラームを出力してもよいし、機構部Ｘの動作を停止させてもよい。本実施の形態のロボット制御装置１００は、温度センサ値Ｓに基づいて、機構部Ｘ内の各箇所の温度を算出する。そして、ロボット制御装置１００は、算出した温度に基づいて、温度に起因する機構部Ｘの動作誤差を補正しながら機構部Ｘを制御（フィードバック制御）する。
【００１８】
ロボット制御装置１００は、機構部Ｘの熱伝導率や形状などの情報を用いて、モータＭｘの温度Ｔ１（℃）、モータＭｘの周囲温度Ｔ３（℃）、減速機Ｄｘの温度Ｔ５（℃）、機構部Ｘの筐体の温度である機構部温度（モータＭｘの周囲温度）Ｔ４（℃）を算出する。ここでのロボットは、４つの機構部１〜４を有しているので、ロボット制御装置１００は、機構部毎にＴ１、Ｔ３、Ｔ５、Ｔ４を算出する。
【００１９】
つぎに、位置速度指令装置２０の詳細な構成について説明する。図２は、位置速度指令装置の構成を示す機能ブロック図である。位置速度指令装置２０は、制御部２１と記憶部２２を備えている。
【００２０】
制御部２１は、入力部２３、出力部２４、温度算出部２５、位置速度算出部２６を有し、記憶部２２は、熱回路モデル記憶部２７、動作特性記憶部２８、制御プログラム記憶部２９を有している。入力部２３は、各機構部１〜４の温度センサｓｘから送られてくる温度センサ値Ｓを入力し、温度算出部２５に送る。
【００２１】
熱回路モデル記憶部２７は、機構部毎の熱回路に関するモデル（熱回路モデル）を記憶する。熱回路モデルは、各機構部１〜４内の複数箇所（位置）に設定される熱回路に関する熱抵抗モデルであり、設定された各位置での温度を算出するための情報である。熱回路モデルは、各機構部１〜４を構成する部品の熱伝導率や形状などに基づいて設定される。熱回路モデルとしては、例えばモータＭｘの温度Ｔ１を算出するためのモデル、モータＭｘの周囲温度Ｔ３を算出するためのモデル、減速機Ｄｘの温度Ｔ５を算出するためのモデル、機構部温度Ｔ４（℃）を算出するためのモデルなどが設定される。
【００２２】
動作特性記憶部２８は、温度Ｔ１に対するモータＭｘの動作特性（効率特性）、温度Ｔ５に対する減速機Ｄｘの動作特性、温度Ｔ４に対する機構部Ｘの動作特性を記憶する。制御プログラム記憶部２９は、機構部Ｘを動作させるための制御プログラムを記憶する。
【００２３】
温度算出部２５は、熱回路モデル記憶部２７内の熱回路モデルと、入力部２３から送られてくる温度センサ値Ｓと、に基づいて、機構部１〜４内の各位置における温度を算出する。温度算出部２５は、算出した機構部１〜４内の各位置における温度を温度情報として位置速度算出部２６に送る。
【００２４】
位置速度算出部２６は、温度算出部２５から送られてくる温度情報と、制御プログラム記憶部２９が記憶する制御プログラムと、後述する機構部１〜４の効率特性と、に基づいて、位置速度指示情報を生成する。出力部２４は、位置速度算出部２６が生成した位置速度指示情報をモータ制御装置１０に出力する。なお、本実施の形態での位置速度算出部２６などが特許請求の範囲に記載の制御部に対応している。
【００２５】
つぎに、ロボットの動作部分である機構部１〜４の構成について説明する。図３は、ロボットの動作部分の構成の一例を示す図である。ロボットの動作部分は、機構部１〜４を備えて構成されており、モータ制御装置１０によって制御される。
【００２６】
機構部１は、モータＭ１とエンコーダＥ１を有し、機構部２は、モータＭ２とエンコーダＥ２を有している。また、機構部３は、モータＭ３とエンコーダＥ３を有し、機構部４は、モータＭ４とエンコーダＥ４を有している。
【００２７】
機構部１〜４は、例えばシャーシなどである。機構部１は、概略円柱状の土台であり、機構部２〜４は、アームである。機構部１は、モータＭ１を回転させることによって機構部２を回転させ、機構部２は、モータＭ２を回転させることによって機構部３を回転させる。また、機構部３は、モータＭ３を回転させることによって機構部４を回転させ、機構部４は、モータＭ４を回転させることによって機構部４の先端部を回転させる。
【００２８】
エンコーダＥ１〜Ｅ４、モータＭ１〜Ｍ４は、ぞれぞれ配線によってモータ制御装置１０に接続されている。また、本実施の形態では、エンコーダＥ１〜Ｅ４内に設置された温度センサ（図３では図示せず）が、ぞれぞれ配線によってモータ制御装置１０に接続されている。なお、図３では、モータ制御装置１０に接続される各配線をまとめて配線Ａとして図示している。
【００２９】
ここで、熱回路モデル記憶部２７が記憶しておく熱回路モデルについて説明する。図４は、機構部の熱回路モデルを説明するための図である。なお、機構部１〜４には、それぞれ同様の熱回路モデルが設定されるので、以下では熱回路モデルの一例として機構部３の熱回路モデルについて説明する。
【００３０】
機構部３では、温度センサｓ３によってエンコーダＥ３内の温度センサ値Ｓが測定される。本実施の形態では、この温度センサ値Ｓを用いてモータＭ３の温度Ｔ１、モータＭ３の周囲温度Ｔ３，Ｔ４、減速機Ｄ３の温度Ｔ５を算出する。この温度Ｔ１〜Ｔ４は、実際に測定される温度ではなく、機構部３内に配置される部品の熱伝導率や形状などに基づいて算出される。したがって、温度センサ値Ｓ（温度Ｓ＝Ｔ２）のみが実際の測定温度であり、温度Ｔ１，Ｔ３，〜Ｔ５は、仮想的に設定された位置での算出温度（仮想位置温度）である。
【００３１】
例えば、モータＭ３の温度Ｔ１は、温度センサｓ３の測定点から温度Ｔ１に対応する測定点まで（以下、測定点間という）の熱抵抗Ｒ１１を用いて算出される。測定点間に配置される部品の厚さをＬ（ｍｍ）、測定点間に配置される部品の材質の熱伝導率をｋ（Ｗ／（ｍ・ｋ））、測定点間に配置される部品の面積をＡ（ｃｍ2）とすると、熱抵抗Ｒ１１は、Ｒ１１＝Ｌ（ｋ×Ａ）によって算出することができる。さらに、測定点間の熱流をＱ１（Ｗ）とすると、温度Ｔ１は、Ｔ１＝Ｓ−（Ｑ１×Ｒ１１）によって算出することができる。
【００３２】
また、モータＭ３の周囲温度Ｔ３，Ｔ４、減速機Ｄ３の温度Ｔ５も、モータＭ３の温度Ｔ１と同様に、温度センサｓ３の測定点から温度Ｔ３，Ｔ５，Ｔ４の測定点までの熱抵抗Ｒ１２、Ｒ１３，Ｒ１４を用いて算出される。
【００３３】
つぎに、機構部３の詳細な構成について説明する。図５は、機構部の詳細な構成を示す図である。機構部３は、アルミニウムなどの素材を用いて作製された密閉筐体５内に、エンコーダＥ３、モータＭ３、減速機Ｄ３などを格納している。
【００３４】
エンコーダＥ３は、モータＭ３の回転に応じて回転する回転板３１を有しており、この回転板３１の回転数を検出することによってモータＭ３の回転数Ｎ（ｒｐｍ）を検出する。モータＭ３は、磁石３７、フレーム３６、コイル３５、軸受け３２などによって構成されている。また、モータＭ３は、鉄心３４を介して減速機Ｄ３に接合されている。減速機Ｄ３は、潤滑油を染み込ませたベアリング３３などを有している。
【００３５】
このように、機構部３は種々の部品によって構成されている。そして、機構部３を構成する部品は、部品毎に種々の形状、種々の熱伝導特性を有している。したがって、位置速度指令装置２０は、図３に示した熱回路モデルに限らず、種々の熱回路モデルを用いて機構部３内の種々の位置の温度を算出してもよい。例えば、図６に示す熱回路モデルを設定しておくことによって、位置速度指令装置２０は、図６に示す熱回路モデルを用いて各位置での温度を算出することが可能となる。図６に示す熱回路モデルを用いて温度を算出する場合、隣接する測定点の温度などを用いて各測定点の温度を算出する。例えば、算出対象の測定点を測定点ｂ１（図示せず）とし、この測定点ｂ１に隣接する測定点ｂ２（図示せず）の温度をＴｙとし、測定点ｂ１と測定点ｂ２との間の熱抵抗を熱抵抗Ｒｙとすると、測定点ｂ１の温度は、温度Ｔｙと熱抵抗をＲｙとを用いて算出することができる。このように、熱回路モデルを用いて温度を計算することによって、固定位置での温度検出に限らず柔軟な温度検出が可能となる。
【００３６】
つぎに、ロボットの動作手順について説明する。ロボットが動作を開始すると、位置速度指令装置２０の位置速度算出部２６は、制御プログラム記憶部２９から制御プログラムを読み出して、位置速度指示情報を生成する。この位置速度指示情報は、位置速度算出部２６から出力部２４を介してモータ制御装置１０に送られる。
【００３７】
モータ制御装置１０は、位置速度指令装置２０からの位置速度指示情報に基づいて、各機構部Ｘを動作させる。機構部Ｘは、温度センサｓｘによって温度を測定し、測定した温度を温度センサ値Ｓとしてモータ制御装置１０を介して位置速度指令装置２０に送る。
【００３８】
位置速度指令装置２０は、温度センサｓｘからの温度センサ値Ｓを入力部２３から入力する。この温度センサ値Ｓは、温度算出部２５に送られる。温度算出部２５は、熱回路モデル記憶部２７が記憶している熱回路モデル（例えば図３に示した熱回路モデル）と温度センサ値Ｓを用いて、モータＭｘの温度Ｔ１、モータＭｘの周囲温度Ｔ３，Ｔ４、減速機Ｄｘの温度Ｔ５などを算出する。
【００３９】
温度算出部２５は、算出した温度Ｔ１〜Ｔ５を位置速度算出部２６に送信する。位置速度算出部２６は、温度算出部２５からの温度Ｔ１〜Ｔ５を受信する。そして、位置速度算出部２６は、動作特性記憶部２８からモータＭｘ、減速機Ｄｘ、機構部Ｘの動作特性を読み出す。
【００４０】
図７〜図９は、それぞれモータ、減速機、機構部の効率特性の一例を示す図である。図７では、モータＭ３の動作特性として、モータＭ３の温度Ｔ１に応じた動作効率特性（供給電力に対する動作効率）を示している。
【００４１】
図７に示すように、モータＭ３の効率特性は、モータＭ３の回転数Ｎが２０００ｒｐｍの場合、１０００ｒｐｍの場合、５００ｒｐｍの場合の順番で悪くなる。また、モータＭ３の温度Ｔ１が高くなるに従って、モータＭ３の効率特性が良くなる。位置速度算出部２６は、図７に示すモータＭ３の効率特性と、モータＭ３の回転数Ｎと、算出されたモータＭ３の温度Ｔ１と、に基づいて、動作中のモータＭ３の動作効率を計算する。
【００４２】
また、図８では、減速機Ｄ３の動作特性として、減速機Ｄ３の温度Ｔ５に応じた効率特性を示している。図８に示すように、減速機Ｄ３の効率特性は、減速機Ｄ３の回転数Ｎが２０００ｒｐｍの場合、１０００ｒｐｍの場合、５００ｒｐｍの場合の順番で悪くなる。また、減速機Ｄ３の温度Ｔ５が高くなるに従って、減速機Ｄ３の効率特性が良くなる。位置速度算出部２６は、図８に示す減速機Ｄ３の効率特性と、減速機Ｄ３の回転数Ｎと、算出された減速機Ｄ３の温度Ｔ５と、に基づいて、動作中の減速機Ｄ３の動作効率を計算する。
【００４３】
また、図９では、機構部３の動作特性として、機構部３の温度Ｔ３（モータＭ３の周囲温度Ｔ３）に応じた効率特性を示している。図９に示すように、機構部３（アーム）の効率特性は、機構部３の動作条件が動作ａ３の場合、動作ａ２の場合、動作ａ１の場合の順番で悪くなる。また、機構部３の温度Ｔ３が高くなるに従って、機構部３の効率特性が良くなる。位置速度算出部２６は、図９に示す機構部３の効率特性と、機構部３の動作条件と、算出された機構部３の温度Ｔ３と、に基づいて、動作中の機構部３の動作効率を計算する。
【００４４】
位置速度算出部２６は、算出したモータＭ３の動作効率、減速機Ｄ３の動作効率、機構部３の動作効率に基づいて、位置速度指示情報を生成する。例えば、モータＭ３の動作効率が７０％である場合、モータＭ３は、供給された電力の７０％分しか動作していないことになる。この場合、位置速度算出部２６は、不足した３０％分の動作を補うことができる位置速度指示情報を生成する。位置速度算出部２６が生成した位置速度指示情報は、出力部２４を介してモータ制御装置１０に送られる。モータ制御装置１０では、位置速度指令装置２０からの位置速度指示情報に基づいて機構部３に電力を供給し機構部３を動作させる。
【００４５】
ロボットの動作中は、機構部３の動作（モータＭ３の回転など）や周辺の環境に従って、機構部３内の温度が変化し、温度センサｓｘが検出する温度も変化する。これにより、位置速度算出部２６が算出する温度Ｔ１，Ｔ３なども機構部３の動作や周辺の環境に従って変化し、位置速度算出部２６が生成する位置速度指示情報も変化する。そして、モータ制御装置１０は、機構部３の動作中に変化する位置速度指示情報に従って機構部３の動作制御を行なう。
【００４６】
換言すると、ロボットは、エンコーダＥ３内の温度のデータと、モータＭ３の制御データとを用いて、モータＭ３および減速機Ｄ３の温度特性パラメータをダイナミックに補正して機構部３の動作制御を行なっている。
【００４７】
機構部３の動作中に変化する位置速度指示情報は、機構部３の温度変化に従って変化する位置速度指示情報であり、機構部３は、この位置速度指示情報に基づいて制御されるので、ロボットでは機構部３の温度変化に応じた適切な動作制御が行なわれることととなる。
【００４８】
なお、本実施の形態では、ロボットの動作部分が図３に示した機構部１〜４である場合について説明したが、ロボットの動作部分は他の構成であってもよい。例えば、機構部は３つ以下であってもよいし、５つ以上であってもよい。
【００４９】
このように実施の形態１によれば、温度センサ値Ｓと、熱回路モデルとに基づいて機構部１〜４内の種々の位置での温度を算出するので、簡易な構成で機構部１〜４内の種々の位置での正確な温度を算出することが可能となる。また、算出した正確な温度に基づいて機構部１〜４を制御するので、ロボットを正確に動作させることが可能となる。
【００５０】
実施の形態２．
つぎに、図１０〜図１３を用いてこの発明の実施の形態２について説明する。実施の形態２では、機構部Ｘ内で発生するエネルギー損失を用いて機構部Ｘの位置（測定対象点）毎に温度を算出する。なお、本実施の形態でも、実施の形態１の場合と同様に機構部３を機構部Ｘの一例としてロボットの動作部分の説明を行なう。
【００５１】
図１０は、機構部でのエネルギー損失を説明するための図である。機構部３は、密閉筐体５Ａ内にエンコーダＥ３やモータＭ３などを格納し、密閉筐体５Ｂ内に減速機Ｄ３などを格納している。
【００５２】
モータ制御装置１０からモータＭ３に電流Ｉ（アンペア）が送られることによって、モータＭ３には入力パワーＰI（Ｗ）が供給される。これにより、モータＭ３は回転し、機構部３が動作する。機構部３が動作すると、モータＭ３の動作に起因する負荷損ＷC（Ｗ：ワット）と鉄損ＷI（Ｗ）、軸受け３２や減速機Ｄ３の動作に起因する機械損ＷM（ＷM1、ＷM2、ＷM3）（Ｗ）が発生する。
【００５３】
負荷損ＷCは、電気抵抗のある電気伝導体に流れる電流によって生じるジュール損であり、鉄損ＷIは、ヒステリシス損や過電流損である。ここでの機械損ＷMは、軸受け３２の摩擦損ＷM1、減速機Ｄ３の摩擦損ＷM2、減速機Ｄ３の風損ＷM3である。
【００５４】
モータＭ３の出力パワーＰOは、トルクをＴO（ニュートンメートル）とし、モータＭ３の回転数（回転速度）をＮ（ｒｐｍ）とすると、ＰO＝（２πＮ／６０）×ＴOによって算出することが可能となる。ここでのＴOは、トルク定数のＫTと電流Ｉを用いて、ＴO＝ＫT×Ｉによって算出できる。したがって、モータＭ３の出力パワーＰOは、ＰO＝（２πＮ／６０）×ＫT×Ｉとなる。
【００５５】
また、機構部３での全損失をＷTとすると、ＷT＝ＷC＋ＷI＋ＷMである。全損失のＷTは、ＷT＝ＰI−ＰOであるので、ＷT＝ＰI−（（２πＮ／６０）×ＫT×Ｉ）となる。なお、線間抵抗定数（温度依存性のある定数）をＲ（オーム）とすると、モータＭ３の負荷損ＷCはＷC＝（３／２）×Ｉ2Ｒである。また、ＷIやＷMは、モータＭ３や減速機Ｄ３の構造に基づいて求めることができる。
【００５６】
本実施の形態の温度算出部２５は、モータＭ３の発熱量と、温度センサｓ３によって測定される温度センサ値Ｓの値と、モータＭ３の発熱に関する熱回路モデルと、を用いて機構部３内の各位置における温度を算出する。
【００５７】
ここで、本実施の形態における熱回路モデルについて説明する。図１１は、実施の形態２のロボットが用いる熱回路モデルを説明するための図である。機構部３では、温度センサｓ３によってエンコーダＥ３内の温度センサ値Ｓが測定される。本実施の形態では、この温度センサ値Ｓ、所定の位置におけるエネルギー損失の値、測定点間の熱抵抗などを用いて、モータＭ３の温度Ｔ１、モータＭ３の周囲温度Ｔ３などを算出する。
【００５８】
例えば、温度Ｔ１，Ｔ３は、機構部３内のモータＭ３の中心位置（温度Ｔ０）でのエネルギー損失である発熱量（ＷC＋ＷI）、モータＭ３の表面部からモータＭ３の中心位置までの間（測定点間）の熱抵抗Ｒ１、モータＭ３の表面部からモータＭ３の周辺部までの間の熱抵抗Ｒ３を用いて算出される。
【００５９】
ここで、位置速度指令装置２０の温度算出部２５による機構部Ｘ内の温度算出方法の一例として、図１２に示した熱回路モデルを用いた温度算出方法について説明する。図１２の熱回路モデルでは、モータＭ３の中心位置を位置ｐ０（温度Ｔ０）とし、この位置ｐ０を基準にして各位置での温度が算出される。図１２の熱回路モデルでは、モータＭ３の回転軸方向の面積がＡ１（ｍ2）であり、モータＭ３の回転軸と垂直な方向の面積がＡ２（ｍ2）である場合を示している。モータＭ３が回転軸方向を柱軸方向とした円柱状である場合、円柱状の側面積がＡ１となり、上面または底面の面積がＡ２となる。
【００６０】
また、モータＭ３の回転軸方向の厚さ（位置ｐ０から上面までの距離）がＬ３（ｍ）であり、モータＭ３の回転軸と垂直な方向への厚さ（位置ｐ０から側面までの距離）がＬ１（ｍ）である場合を示している。モータＭ３が回転軸方向を柱軸方向とした円柱状である場合、円柱の高さが２×Ｌ３となり、上面または下面の半径がＬ１となる。
【００６１】
図１２の熱回路モデルにおいて、温度の算出対象となっているのは、モータＭ３の表面部である位置ｐ１、モータＭ３の周辺部である位置ｐ３，ｐ４である。以下、位置ｐ１での温度Ｔ１、位置ｐ３での温度Ｔ３、位置ｐ４での温度Ｔ４の算出方法について説明する。
【００６２】
ここでは、式（１）に示すように、エンコーダＥ３内部の温度センサｓｘによって測定した温度Ｔ２が温度センサ値のＳ（℃）である場合について説明する。
Ｔ２＝Ｓ・・・（１）
【００６３】
また、式（２）に示すように、モータＭ３から発熱した熱流Ｑ０（Ｗ）は、負荷損ＷCと鉄損ＷIの合計値であるとする。
Ｑ０＝ＷC＋ＷI・・・（２）
【００６４】
また、式（３）に示すように、位置ｐ０での熱流Ｑ０は、位置ｐ０から位置ｐ１への熱流Ｑ１（Ｗ）と、位置ｐ０から位置ｐ２（温度センサｓｘ）への熱流Ｑ２（Ｗ）の合計値であるとする。
Ｑ０＝Ｑ１＋Ｑ２・・・（３）
【００６５】
位置ｐ０と位置ｐ１との間の測定点間の熱抵抗Ｒ１（Ｋ／Ｗ）と、位置ｐ０と位置ｐ２との間の測定点間の熱抵抗Ｒ２（Ｋ／Ｗ）とは、それぞれ式（４）、式（５）に示すように、モータＭ３の形状（Ｌ１、Ｌ３、Ａ１、Ａ２）とモータＭ３の熱伝導率ｋ（Ｗ／（ｍ・Ｋ））を用いて算出される。例えば、モータＭ３が鉄によって作製されている場合、ｋ＝６７（Ｗ／（ｍ・Ｋ））である。
Ｒ１＝Ｌ１／（ｋ・Ａ１）・・・（４）
Ｒ２＝Ｌ２／（ｋ・Ａ２）・・・（５）
【００６６】
また、位置ｐ１と位置ｐ３との間の測定点間の熱抵抗Ｒ３（Ｋ／Ｗ）と、位置ｐ２と位置ｐ４との間の測定点間の熱抵抗Ｒ４（Ｋ／Ｗ）とは、それぞれ式（６）、式（７）に示すように、モータＭ３の表面積（Ａ１、Ａ２）と対流熱伝達率ｈ（Ｗ／（ｍ2・Ｋ））を用いて算出される。対流熱伝達率ｈは、モータＭ３と密閉筐体５との間の空間における対流熱伝達率であり、例えば、自然対流（空気）の場合ｈ＝５〜１０（Ｗ／（ｍ2・Ｋ））である。
Ｒ３＝１／（ｈ・Ａ１）・・・（６）
Ｒ４＝１／（ｈ・Ａ２）・・・（７）
【００６７】
また、Ｔ０、Ｔ３、Ｑ１の関係は熱容量Ｃ（Ｊ／Ｋ）を用いて式（８）によって表され、Ｔ０、Ｔ４、Ｑ２の関係は熱容量Ｃ（Ｊ／Ｋ）を用いて式（９）によって表される。
Ｔ０−Ｔ３＝Ｑ１・（Ｒ１＋Ｒ３（１−ｅ-t(R3・C)）・・・（８）
Ｔ０−Ｔ４＝Ｑ２・（Ｒ２＋Ｒ４（１−ｅ-t(R4・C)）・・・（９）
【００６８】
熱容量Ｃは、モータＭ３の重量をＧ（ｋｇ）とし、モータＭ３の比率をＣｐ（Ｊ／（ｋｇ・Ｋ））とした場合、Ｃ＝Ｇ・Ｃｐである。また、式（８）や式（９）でのＲ３・ＣやＲ４・Ｃは、熱時定数であり、ｔは時間（ｓｅｃ）である。式（８）と式（９）より、式（１０）と式（１１）を導き出すことができる。
Ｔ３＝Ｔ０−Ｑ１・（Ｒ１＋Ｒ３（１−ｅ-t(R3・C)）・・・（１０）
Ｔ４＝Ｔ０−Ｑ２・（Ｒ２＋Ｒ４（１−ｅ-t(R4・C)）・・・（１１）
【００６９】
モータＭ３の周辺温度が一定であり、位置ｐ３での温度Ｔ３と位置ｐ４での温度Ｔ４との関係が、Ｔ３≒Ｔ４であるとすると、式（１０）と式（１１）から式（１２）を導き出すことができる。
Ｔ０−Ｑ１・（Ｒ１＋Ｒ３（１−ｅ-t(R3・C)）＝Ｔ０−Ｑ２・（Ｒ２＋Ｒ４（１−ｅ-t(R4・C)）・・・（１２）
【００７０】
式（１２）を変形すると式（１３）となり、式（１３）を変形すると式（１４）となり、式（１４）は式（１６）を用いて式（１５）で表すことができる。
Ｑ１・（Ｒ１＋Ｒ３（１−ｅ-t(R3・C)）＝Ｑ２・（Ｒ２＋Ｒ４（１−ｅ-t(R4・C)）・・・（１３）
Ｑ１＝Ｑ２・（（Ｒ２＋Ｒ４（１−ｅ-t(R4・C)））／（（Ｒ１＋Ｒ３（１−ｅ-t(R3・C)））・・・（１４）
Ｑ１＝ｎ・Ｑ２・・・（１５）
ｎ＝（（Ｒ２＋Ｒ４（１−ｅ-t(R4・C)））／（（Ｒ１＋Ｒ３（１−ｅ-t(R3・C)））・・・（１６）
【００７１】
このように、モータＭ３の周囲温度が略一定であるとすると、熱流Ｑ１、Ｑ２の比率は熱等価回路式を用いて、モータＭ３の形状や材質などによって一意に決まる定数ｎで表すことができる。式（３）を用いて式（１５）を変形すると式（１７）となり、式（１７）を変形すると式（１８）となる。さらに、式（１８）を変形すると式（１９）となり、式（１９）を変形すると式（２０）となる。
Ｑ１＝ｎ・（Ｑ０−Ｑ１）・・・（１７）
Ｑ１＝ｎ・Ｑ０−ｎ・Ｑ１・・・（１８）
（１＋ｎ）Ｑ１＝ｎ・Ｑ０・・・（１９）
Ｑ１＝（ｎ・Ｑ０）／（１＋ｎ）・・・（２０）
【００７２】
さらに、式（２）を用いて式（２０）を変形すると式（２１）となる。また、式（３）を変形すると式（２２）となり、式（２２）を式（２）と式（２１）を用いて変形すると式（２３）となる。
Ｑ１＝（ｎ・（ＷC＋ＷI））／（１＋ｎ）・・・（２１）
Ｑ２＝Ｑ０−Ｑ１・・・（２２）
Ｑ２＝ＷC＋ＷI−（ｎ・（ＷC＋ＷI））／（１＋ｎ）・・・（２３）
【００７３】
また、Ｔ０とＴ２の間には熱等価回路の式として式（２４）の関係が成り立つ。式（２４）を式（１）、式（５）、式（２３）を用いて変形すると式（２５）となり、式（２５）を変形すると式（２６）となる。
Ｔ０−Ｔ２＝Ｑ２・Ｒ２・・・（２４）
Ｔ０−Ｓ＝（ＷC＋ＷI−（ｎ・（ＷC＋ＷI））／（１＋ｎ））×（Ｌ２／（ｋ・Ａ２））・・・（２５）
Ｔ０＝Ｓ＋（ＷC＋ＷI−（ｎ・（ＷC＋ＷI））／（１＋ｎ））×（Ｌ２／（ｋ・Ａ２））・・・（２６）
【００７４】
また、Ｔ０とＴ１の間には熱等価回路の式として式（２７）の関係が成り立つ。式（２７）を変形すると式（２８）となり、式（２８）を式（１）、式（４）、式（２１）を用いて変形すると式（２９）となる。
Ｔ０−Ｔ１＝Ｑ１・Ｒ１・・・（２７）
Ｔ１＝Ｔ０−Ｑ１・Ｒ１・・・（２８）
Ｔ１＝Ｓ＋（ＷC＋ＷI−（ｎ・（ＷC＋ＷI））／（１＋ｎ））×（Ｌ２／（ｋ・Ａ２）−（（ｎ・（ＷC＋ＷI））／（１＋ｎ））・（Ｌ１／（ｋ・Ａ１））・・・（２９）
【００７５】
また、Ｔ２とＴ４（Ｔ３）の間には熱等価回路の式として式（３０）の関係が成り立つ。式（３０）を変形すると式（３１）となり、式（３１）を式（１）、式（７）、式（２３）を用いて変形すると式（３２）となる。
Ｔ２−Ｔ４＝Ｑ２×Ｒ４（１−ｅ-t(R4・C)）・・・（３０）
Ｔ４＝Ｔ２−Ｑ２×Ｒ４（１−ｅ-t(R4・C)）・・・（３１）
Ｔ４＝Ｓ−（ＷC＋ＷI−（ｎ・（ＷC＋ＷI））／（１＋ｎ））×（１／（ｈ・Ａ２））・・・（３２）
【００７６】
以上のように、エンコーダＥ３の温度センサｓ３による温度センサ値Ｓ（Ｔ２）と、モータＭ３へ供給した電力に対応するモータＭ３の発熱量Ｑ０（ＷC＋ＷI）と、が分かれば、上述した式（２９）、式（３２）によってモータＭ３の表面温度Ｔ１、モータＭ３の周囲温度Ｔ３，Ｔ４を算出することが可能となる。
【００７７】
従来のロボットでは、温度センサによって機構部内の温度を測定し、この測定結果を用いて機構部の使用制限を行なっていた。例えば、モータやエンコーダに使用制限温度を設定しておき、温度センサがこの使用制限温度の範囲を超える温度を検出した場合には、ロボットの動作を停止させたりアラームを出力していた。具体的には、モータの表面温度に０〜１２５℃などの使用制限温度を設定し、エンコーダ内の温度に０〜９０℃などの使用制限温度を設定し、モータの周囲温度に０〜４０℃などの使用制限温度を設定していた。これにより、従来のロボットは動作する際の温度保証を行なっていた。
【００７８】
一方、本実施の形態のロボットは、熱等価回路を構成できる任意の位置（点）の温度を正確に算出できるので、ロボットを動作させる際の細かな動作制御を行なうことが可能となる。また、算出した正確な機構部内の温度を用いて、機構部（主にベアリング３３）から流出する潤滑油の流出限界温度の算出などの機構部Ｘの保守に関するデータ処理を行なうことが可能となる。
【００７９】
なお、本実施の形態では、温度Ｔ３と温度Ｔ４が同じであるとした場合の温度Ｔ１，Ｔ５，Ｔ３，Ｔ４を算出したが、温度Ｔ３と温度Ｔ４が異なる場合は、図１２に示した熱回路モデルとは異なる熱回路モデルを用いる。例えば、モータＭ３の装置サイズが非常に大きい場合には、モータＭ３の周囲温度が位置ｐ３と位置ｐ４によって異なる場合がある。このように、周囲温度に差が生じる場合は、例えば図１３に示す熱回路モデルを用いてモータＭ３の周囲温度を算出する。
【００８０】
図１３は、熱回路の基準点を設定した熱回路モデルを説明するための図である。熱回路モデルを設定するにあたり、所定の基準点Ｆ（℃）を設定するとともに、基準点Ｆから測定対象となる位置までの測定点間の熱抵抗を設定しておく。ここでは、モータＭ３の周囲温度に差が生じる場合の位置ｐ３とｐ４の温度算出を行なう必要があるので、基準点Ｆから位置ｐ３までの測定点間の熱抵抗Ｒ３３と、基準点Ｆから位置ｐ４までの測定点間の熱抵抗Ｒ３４と、を設定しておく。基準点Ｆは、測定点間に等価回路モデルを構成することができれば、モータＭ３やロボットが設置される場所の室温（１箇所）であってもよい。基準点Ｆは、例えば動作部分の外部に配置される室温測定器６０などによって測定する。
【００８１】
なお、図１３では、機構部１，２，４への熱抵抗は１つしか図示していないが、機構部１，２，４へも機構部３と同様に温度の算出対象となる位置毎に測定点間の熱抵抗を設定しておく。
【００８２】
また、本実施の形態では、図１２に示した熱回路モデルを用いて機構部３内の位置ｐ１、位置ｐ３、位置ｐ４での温度を算出する場合について説明したが、実施の形態１で説明した図６の熱回路モデルを用いて機構部３内の温度を算出してもよい。
【００８３】
このように実施の形態２によれば、温度センサ値Ｓと、モータＭ３の発熱量Ｑ０とに基づいて、機構部１〜４内の種々の位置での温度を算出するので、簡易な構成で機構部１〜４内の種々の位置での正確な温度を算出することが可能となる。
【００８４】
実施の形態３．
つぎに、図１４を用いてこの発明の実施の形態３について説明する。実施の形態３では、実施の形態１で説明した方法によって得た機構部Ｘ内の温度と、実施の形態２で説明した方法によって得た全損失ＷTとの両方をを用いて、機構部Ｘ内の温度を再算出する。なお、本実施の形態でも、実施の形態１，２の場合と同様に機構部３を機構部Ｘの一例としてロボットの動作部分の説明を行なう。
【００８５】
図１４は、機構部での全損失と機構部内の温度の関係を示す図である。機構部３では、放熱等によってエネルギー損失が発生している。機構部３での全損失ＷTは、実施の形態２で説明したように、所定の算出式によって算出することができる。例えば、図１４の（ａ）に示すように、モータＭ３の回転を開始してからの時間経過とともに徐々に全損失の値が大きくなっていき、所定の時間が過ぎると全損失の値がほぼ一定となる。このとき、温度Ｔ１，Ｔ３，Ｔ５もモータＭ３の回転を開始してからの時間経過とともに温度の値が大きくなっていき、所定の時間が過ぎると温度の上昇率が小さくなる。
【００８６】
図１４では、（ａ）の図が密閉筐体環境下での全損失ＷTと温度Ｔ１，Ｔ３，Ｔ５の特性を示しており、（ｂ）の図がオープン環境下での全損失ＷTと温度Ｔ１，Ｔ３，Ｔ５の特性を示している。ここでのオープン環境下とは、例えばモータＭ３が強制冷却される場合や機構部３Ｍを格納する筐体が体積の大きな広い筐体である場合などである。また、密閉筐体環境下とは、例えば機構部３Ｍを格納する筐体が体積の小さな狭い筐体である場合などである。
【００８７】
図１４の（ａ）と（ｂ）に示すように、モータＭ３がオープン環境下の場合は、密閉筐体環境下の場合よりも、全損失ＷTが小さく、温度Ｔ１，Ｔ３，Ｔ５の上昇率も低い。このように、モータＭ３の配置される環境によって全損失ＷTや温度Ｔ１，Ｔ３，Ｔ５の特性が異なるので、本実施の形態では、算出した全損失ＷTに基づいてモータＭ３の配置されている環境を推測する。そして、熱回路モデルを用いて算出した温度Ｔ１，Ｔ３，Ｔ５を、モータＭ３の配置されている環境に応じた特性データを用いて補正する。
【００８８】
位置速度指令装置２０の記憶部２２（例えば、熱回路モデル記憶部２７）では、予め図１４の（ａ）や（ｂ）に示す特性データに関する情報を記憶しておく。記憶部２２が記憶しておく特性データに関する情報は、（ａ）や（ｂ）に示す特性データの関係を示すデータテーブルであってもよいし、（ａ）や（ｂ）に示す特性データを導くことができる計算式であってもよい。
【００８９】
なお、ここではモータＭ３が連続的に動作する場合について説明したが、モータＭ３が断続的に動作する場合は全損失ＷTや温度Ｔ１，Ｔ３，Ｔ５は、図１４の（ｃ）に示すように変化する。すなわち、全損失ＷTや温度Ｔ１，Ｔ３，Ｔ５はモータＭ３が回転している間は値が増加し、モータＭ３の回転が停止している間は値が減少する。したがって、モータＭ３が断続的に動作する場合は、（ｃ）に示した特性データに関する情報を用いて温度Ｔ１，Ｔ３，Ｔ５を算出する。
【００９０】
モータＭ３の動作が開始すると、温度算出部２５は、実施の形態２で説明した方法により、機構部３での全損失ＷTを算出する。温度算出部２５は、全損失ＷTに対応するモータＭ３の特性データを記憶部２２から抽出する。例えば、モータＭ３が密閉環境下で使用される場合、温度算出部２５は、全損失ＷTに基づいて（ａ）の特性データを選択する。また、周囲温度一定環境下で使用される場合、温度算出部２５は、全損失ＷTに基づいて（ｂ）の特性データを選択する。さらに、温度算出部２５は、選択した特性データに基づいて、全損失ＷTに対応する温度Ｔ１，Ｔ３，Ｔ５を抽出する。この温度Ｔ１，Ｔ３，Ｔ５は、温度算出部２５から位置速度算出部２６に送られる。
【００９１】
また、温度算出部２５は、実施の形態１で説明した方法により、熱回路モデルを用いて温度Ｔ１，Ｔ３，Ｔ５を算出する。この温度Ｔ１，Ｔ３，Ｔ５は、温度算出部２５から位置速度算出部２６に送られる。
【００９２】
位置速度算出部２６は、全損失ＷTに対応する温度Ｔ１，Ｔ３，Ｔ５と、実施の形態１で説明した方法によって算出した温度Ｔ１，Ｔ３，Ｔ５と、を用いて、新たな温度Ｔ１，Ｔ３，Ｔ５を算出する。換言すると、位置速度算出部２６は、実施の形態１で説明した方法によって算出した温度Ｔ１，Ｔ３，Ｔ５を、全損失ＷTに対応する温度Ｔ１，Ｔ３，Ｔ５を用いて補正する。例えば、位置速度算出部２６は、全損失ＷTに対応する温度Ｔ１，Ｔ３，Ｔ５と、実施の形態１で説明した方法によって算出した温度Ｔ１，Ｔ３，Ｔ５と、の平均値を新たな温度Ｔ１，Ｔ３，Ｔ５とする。
【００９３】
この後、位置速度算出部２６は、算出した新たな温度Ｔ１，Ｔ３，Ｔ５と、図７〜図９で説明したモータＭ３の効率特性、減速機Ｄ３の効率特性、機構部３の効率特性に基づいて、位置速度指示情報を生成する。モータ制御装置１０では、位置速度指令装置２０からの位置速度指示情報に基づいて機構部３に電力を供給し機構部３を動作させる。
【００９４】
このように実施の形態３によれば、熱回路モデルを用いて算出した機構部内の温度と、算出した全損失ＷTに対応する機構部内の温度と、に基づいて機構部内の温度を再算出するので、簡易な構成で機構部１〜４内の種々の位置での正確な温度を算出することが可能となる。
【００９５】
実施の形態４．
つぎに、図１５および図１６を用いてこの発明の実施の形態４について説明する。実施の形態４では、実施の形態１〜３で説明した何れかの方法によって得た機構部内の温度と、機構部の熱膨張率を用いて、ロボットの動作部分の位置ずれを補正する。
【００９６】
図１５は、ロボットの動作部分の熱膨張を説明するための図であり、各機構部の断面構成を示している。図１５では、機構部１と機構部２の中心軸方向（長手方向）がｚ軸方向であり、機構部３がｘ軸方向から角度θ３だけ回転し、機構部４がｚ軸方向から角度θ４だけ回転している場合を示している。
【００９７】
機構部１〜４は、機構部１〜４の発熱などにより熱膨張する。このため、熱膨張したサイズに応じた距離だけアームなどの動作（軌跡精度や位置繰返し精度）に位置誤差が生じる。例えば、ロボットでは、機構部４の先端部の位置を正確に制御する必要がある。図１５に示す状態で機構部３や機構部４が熱膨張すると、機構部４の先端部の位置が所望の位置からずれることとなる。
【００９８】
例えば、機構部３，４の長手方向（軸方向）の長さがそれぞれＬ３，Ｌ４であり、機構部３，４の熱膨張率がα３，α４である場合、機構部３，４の温度上昇がΔＴ３，ΔＴ４であれば、機構部３が熱膨張によって長手方向に伸縮する距離ΔＬ３は、ΔＬ３＝α３×Ｌ３×ΔＴ３である。また、機構部４が熱膨張によって長手方向に伸縮する距離ΔＬ４は、ΔＬ４＝α４×Ｌ４×ΔＴ３である。この場合の機構部４の先端部のｘ軸方向の位置ずれ量Δｘは、Δｘ＝ｃｏｓθ３×（ΔＬ３）＋ｓｉｎθ４×（ΔＬ４）となる。
【００９９】
また、機構部４の先端部のｙ軸方向（紙面の上から下へ向かう方向）の位置ずれ量や機構部４の先端部のｚ軸方向の位置ずれ量も、機構部４の先端部のｘ軸方向の位置ずれ量と同様の方法によって算出することができる。
【０１００】
本実施の形態では、予め各機構部１〜４の長手方向の長さ、短手方向の長さ、厚さなどの各機構部１〜４の寸法に関する寸法情報、各機構部１〜４の熱膨張率α１〜α４などを位置速度指令装置２０の記憶部２２内に格納しておく。
【０１０１】
温度算出部２５は、実施の形態１〜３の何れかの方法によって各機構部１〜４の温度を算出するとともに、各機構部１〜４の温度変化量（初期値からの変化量）であるΔＴを算出する。位置速度算出部２６は、温度算出部２５が算出したΔＴ、記憶部２２内に格納されている各機構部１〜４の寸法情報、各機構部１〜４の熱膨張率α１〜α４に基づいて、機構部４の先端部の位置ずれ量を算出する。位置速度算出部２６は、機構部４の先端部の位置ずれ量としてｘ軸方向の位置ずれ量、ｙ軸方向の位置ずれ量、ｚ軸方向の位置ずれ量を算出する。
【０１０２】
位置速度算出部２６は、算出した機構部４の先端部の位置ずれ量に基づいて、機構部４の先端部の位置ずれ量を解消するよう位置速度指示情報を補正する。モータ制御装置１０では、補正された位置速度指示情報に基づいて機構部３に電力を供給し機構部３を動作させる。
【０１０３】
なお、ここでは、位置速度算出部２６が機構部４の先端部の位置ずれ量を算出する場合について説明したが、位置速度算出部２６は機構部１〜４毎に各機構部１〜４の位置ずれ量を算出してもよい。
【０１０４】
つぎに、機構部１〜４の熱膨張に起因する動作の位置ずれ量（移動目標位置の誤差）の補正処理手順について説明する。図１６は、機構部の熱膨張に起因する動作の位置ずれ量の補正処理手順を示すフローチャートである。ここでは、各機構部１〜４を機構部Ｘとしてロボットの動作を説明する。ロボットが動作を開始すると、モータ制御装置１０の制御部１１が、各機構部ＸのエンコーダＥｘに温度センサｓｘで測定した温度センサ値Ｓを要求する（ステップＳ１１０）。各エンコーダＥｘの温度センサｓｘは、温度センサ値Ｓを制御部１１へ応答する（ステップＳ１２０）。
【０１０５】
この温度センサ値Ｓは、モータ制御装置１０から位置速度指令装置２０へ送られる。位置速度指令装置２０は、モータ制御装置１０からの温度センサ値Ｓを入力部２３から入力する。この温度センサ値Ｓは、温度算出部２５に送られる。
【０１０６】
温度算出部２５は、温度センサ値Ｓの変化量（温度変化）が、初期値から１℃以上変化したか否かを確認する。温度変化と初期値との差が１℃未満である場合（ステップＳ１３０、Ｎｏ）、ロボットの位置速度指令装置２０はステップＳ１１０の処理に戻る。
【０１０７】
一方、温度変化が初期値よりも１℃以上大きい場合（ステップＳ１３０、Ｙｅｓ）、温度算出部２５は、温度センサ値Ｓと熱回路モデルを用いて機構部Ｘ内での温度Ｔ１〜Ｔ５を算出する（ステップＳ１４０）。このとき、温度算出部２５は、実施の形態１〜３で説明した何れかの方法によって温度の算出処理を行なう。さらに、温度算出部２５は、機構部Ｘの初期温度からの温度変化量としてΔＴ１〜ΔＴ５を算出する。
【０１０８】
温度算出部２５は、機構部Ｘの熱膨張に起因する動作の位置誤差を補正する必要があるか否かを判断する（ステップＳ１５０）。温度算出部２５は、算出した各温度ΔＴ１〜ΔＴ５が、それぞれ所定の閾値より大きいか否かに基づいて機構部Ｘの動作を補正するか否かを判断する。具体的には、温度算出部２５は、温度ΔＴ１に対する閾値Ａ（℃）と温度ΔＴ１を比較し、温度ΔＴ１が閾値Ａより大きいか否かを判断する。また、温度算出部２５は、温度ΔＴ３，ΔＴ４に対する閾値Ｂ（℃）と温度ΔＴ３，ΔＴ４を比較し、温度ΔＴ３，ΔＴ４が閾値Ｂより大きいか否かを判断する。さらに、温度算出部２５は、温度ΔＴ５に対する閾値Ｃ（℃）と温度ΔＴ５を比較し、温度ΔＴ５が閾値Ｃより大きいか否かを判断する。
【０１０９】
温度ΔＴ１〜ΔＴ５の全てが閾値より小さい場合（ステップＳ１５０、Ｎｏ）、ロボットの位置速度指令装置２０はステップＳ１１０の処理に戻る。温度ΔＴ１〜ΔＴ５の何れか１つでも閾値より大きい場合（ステップＳ１５０、Ｙｅｓ）、温度算出部２５は機構部Ｘの動作を補正すると判断する。そして、温度算出部２５は、算出した各温度ΔＴ１〜ΔＴ５を、位置速度算出部２６に送る。
【０１１０】
位置速度算出部２６は、温度算出部２５が算出したΔＴ１〜ΔＴ５、記憶部２２内に格納されている機構部Ｘの寸法情報、機構部Ｘの熱膨張率に基づいて、機構部Ｘの位置ずれ量（熱膨張誤差）を算出する（ステップＳ１６０）。
【０１１１】
位置速度算出部２６は、機構部Ｘの熱膨張誤差を算出するまでの間、温度Ｔ１〜Ｔ５と、制御プログラム記憶部２９が記憶する制御プログラムと、に基づいて、位置速度指示情報を生成している（ステップＳ２１０）。
【０１１２】
位置速度算出部２６は、機構部Ｘの熱膨張誤差を算出すると、機構部Ｘの熱膨張によって生じる位置誤差の補正処理を行なう。具体的には、位置速度算出部２６は、温度算出部２５から送られてくる温度ΔＴ１〜ΔＴ５を用いて位置速度指示情報を補正する。このとき、位置速度算出部２６は、機構部Ｘの動作の位置ずれ量を解消するよう位置速度指示情報を補正する（ステップＳ２２０）。
【０１１３】
モータ制御装置１０の制御部１１は、補正された位置速度指示情報に基づいて機構部３に供給する電力を算出する（ステップＳ２３０）。そして、モータ制御装置１０のモータドライバ部１２は、制御部１１が算出した電力（Ｕ、Ｖ、Ｗ）を機構部Ｘに送る。
【０１１４】
なお、ロボットでは、全ての機構部１〜４に対してステップＳ１１０〜Ｓ１６０の処理、ステップＳ２１０〜Ｓ２４０の処理を行なう。そして、ロボットでは、ステップＳ１１０〜Ｓ１６０の処理、ステップＳ２１０〜Ｓ２４０の処理を繰り返すことによって動作する。
【０１１５】
このように実施の形態４によれば、機構部１〜４の温度と熱膨張率に基づいて、ロボットの動作部分の位置ずれを補正するので、簡易な構成でロボットを正確に動作させることが可能となる。
【産業上の利用可能性】
【０１１６】
以上のように、本発明に係る制御装置は、ロボットの制御に適している。
【図面の簡単な説明】
【０１１７】
【図１】本発明の実施の形態１に係るロボットの構成を示す図である。
【図２】位置速度指令装置の構成を示す機能ブロック図である。
【図３】ロボットの動作部分の構成の一例を示す図である。
【図４】機構部の熱回路モデルを説明するための図である。
【図５】機構部の詳細な構成を示す図である。
【図６】熱回路モデルの他の例を示す図である。
【図７】モータの効率特性の一例を示す図である。
【図８】減速機の効率特性の一例を示す図である。
【図９】機構部の効率特性の一例を示す図である。
【図１０】機構部でのエネルギー損失を説明するための図である。
【図１１】実施の形態２のロボットが用いる熱回路モデルを説明するための図である。
【図１２】温度算出に用いる熱回路モデルを示す図である。
【図１３】熱回路の基準点を設定した熱回路モデルを説明するための図である。
【図１４】機構部での全損失と機構部内の温度の関係を示す図である。
【図１５】ロボットの動作部分の熱膨張を説明するための図である。
【図１６】機構部の熱膨張に起因する動作の位置ずれ量の補正処理手順を示すフローチャートである。
【符号の説明】
【０１１８】
１〜４，Ｘ  機構部
５，５Ａ，５Ｂ  密閉筐体
１０  モータ制御装置
１１，２１  制御部
１２  モータドライバ部
２０  位置速度指令装置
２２  記憶部
２３  入力部
２４  出力部
２５  温度算出部
２６  位置速度算出部
２７  熱回路モデル記憶部
２８  動作特性記憶部
２９  制御プログラム記憶部
１００  ロボット制御装置
Ｄ３，Ｄｘ  減速機
Ｅ１〜Ｅ４，Ｅｘ  エンコーダ
ｓｘ  温度センサ
Ｍ１〜Ｍ４，Ｍｘ  モータ
【図１】
0005264308.tif 000002
【図２】
0005264308.tif 000003
【図３】
0005264308.tif 000004
【図４】
0005264308.tif 000005
【図５】
0005264308.tif 000006
【図６】
0005264308.tif 000007
【図７】
0005264308.tif 000008
【図８】
0005264308.tif 000009
【図９】
0005264308.tif 000010
【図１０】
0005264308.tif 000011
【図１１】
0005264308.tif 000012
【図１２】
0005264308.tif 000013
【図１３】
0005264308.tif 000014
【図１４】
0005264308.tif 000015
【図１５】
0005264308.tif 000016
【図１６】
0005264308.tif 000017