以下に、本発明に係る制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、本発明の実施の形態1に係るロボットの構成を示す図である。ロボットは、ロボット制御装置100と、機構部(動作機構部)Xとを含んで構成されている。ロボット制御装置100は、位置速度指令装置20とモータ制御装置10を有している。
図1では、ロボット制御装置100が機構部Xを制御する場合の構成について説明するが、ロボットは、後述するように機構部1〜4を有しているので、機構部Xは機構部1〜4に対応する。換言すると、ロボット制御装置100は、機構部1〜4を制御する。したがって、ロボット制御装置100は、機構部1〜4のそれぞれと接続されている。
位置速度指令装置20は、制御部21と記憶部22を備えている。記憶部22は、機構部Xを動作させるための制御プログラムなどを記憶するメモリなどである。制御部21は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)などを備えて構成されており、機構部Xの位置や速度に関する制御を行なう。制御部21は、記憶部22内の制御プログラムや、モータ制御装置10を介して機構部Xから送られてくるエンコーダExの温度(後述の温度センサ値S)T2に基づいて、機構部X内に設定される複数箇所の温度をそれぞれ算出する。制御部21は、算出した機構部X内の温度に基づいて、機構部Xの位置や速度を制御するための情報(以下、位置速度指示情報という)を生成する。制御部21は、生成した位置速度指示情報をモータ制御装置10に送信する。
モータ制御装置10は、制御部11とモータドライバ部12を備えている。制御部11は、CPU、ROM、RAMなどを備えて構成されており、機構部XのモータMxのパワーやトルクの制御を行なう。制御部11は、位置速度指令装置20から送られてくる位置速度指示情報に基づいて、機構部Xに与える電力(電流)等をモータドライバ部12に指示する。また、制御部11は、機構部Xから送られてくる温度センサ値(エンコーダ温度)S(℃)を位置速度指令装置20に送る。モータドライバ部12は、制御部11からの指示に基づいて、機構部Xに電力(U、V、W)を送る。
機構部Xは、モータ制御装置10からの指示に基づいて動作する。機構部Xは、例えばロボットのアームや土台であり、アーム内にはエンコーダEx、モータMx、減速機Dxが配置されている。機構部Xでは、サーボモータに物理的に接続されたエンコーダEx内に温度センサsxが配置されており、この温度センサsxがエンコーダEx内の温度を測定する。温度センサsxによって測定された温度は、温度センサ値Sとしてモータ制御装置10を介して位置速度指令装置20に送られる。
モータMxは、モータドライバ部12から供給される電力によってアーム等を駆動させる。エンコーダExは、モータMxの回転数を検出し、検出結果(回転数N)をモータ制御装置10に送る。減速機Dxは、アームの動作を減速させるブレーキとしての機能を有している。
ロボット制御装置100は、温度センサ値Sが所定値以上となった場合に、アラームを出力してもよいし、機構部Xの動作を停止させてもよい。本実施の形態のロボット制御装置100は、温度センサ値Sに基づいて、機構部X内の各箇所の温度を算出する。そして、ロボット制御装置100は、算出した温度に基づいて、温度に起因する機構部Xの動作誤差を補正しながら機構部Xを制御(フィードバック制御)する。
ロボット制御装置100は、機構部Xの熱伝導率や形状などの情報を用いて、モータMxの温度T1(℃)、モータMxの周囲温度T3(℃)、減速機Dxの温度T5(℃)、機構部Xの筐体の温度である機構部温度(モータMxの周囲温度)T4(℃)を算出する。ここでのロボットは、4つの機構部1〜4を有しているので、ロボット制御装置100は、機構部毎にT1、T3、T5、T4を算出する。
つぎに、位置速度指令装置20の詳細な構成について説明する。図2は、位置速度指令装置の構成を示す機能ブロック図である。位置速度指令装置20は、制御部21と記憶部22を備えている。
制御部21は、入力部23、出力部24、温度算出部25、位置速度算出部26を有し、記憶部22は、熱回路モデル記憶部27、動作特性記憶部28、制御プログラム記憶部29を有している。入力部23は、各機構部1〜4の温度センサsxから送られてくる温度センサ値Sを入力し、温度算出部25に送る。
熱回路モデル記憶部27は、機構部毎の熱回路に関するモデル(熱回路モデル)を記憶する。熱回路モデルは、各機構部1〜4内の複数箇所(位置)に設定される熱回路に関する熱抵抗モデルであり、設定された各位置での温度を算出するための情報である。熱回路モデルは、各機構部1〜4を構成する部品の熱伝導率や形状などに基づいて設定される。熱回路モデルとしては、例えばモータMxの温度T1を算出するためのモデル、モータMxの周囲温度T3を算出するためのモデル、減速機Dxの温度T5を算出するためのモデル、機構部温度T4(℃)を算出するためのモデルなどが設定される。
動作特性記憶部28は、温度T1に対するモータMxの動作特性(効率特性)、温度T5に対する減速機Dxの動作特性、温度T4に対する機構部Xの動作特性を記憶する。制御プログラム記憶部29は、機構部Xを動作させるための制御プログラムを記憶する。
温度算出部25は、熱回路モデル記憶部27内の熱回路モデルと、入力部23から送られてくる温度センサ値Sと、に基づいて、機構部1〜4内の各位置における温度を算出する。温度算出部25は、算出した機構部1〜4内の各位置における温度を温度情報として位置速度算出部26に送る。
位置速度算出部26は、温度算出部25から送られてくる温度情報と、制御プログラム記憶部29が記憶する制御プログラムと、後述する機構部1〜4の効率特性と、に基づいて、位置速度指示情報を生成する。出力部24は、位置速度算出部26が生成した位置速度指示情報をモータ制御装置10に出力する。なお、本実施の形態での位置速度算出部26などが特許請求の範囲に記載の制御部に対応している。
つぎに、ロボットの動作部分である機構部1〜4の構成について説明する。図3は、ロボットの動作部分の構成の一例を示す図である。ロボットの動作部分は、機構部1〜4を備えて構成されており、モータ制御装置10によって制御される。
機構部1は、モータM1とエンコーダE1を有し、機構部2は、モータM2とエンコーダE2を有している。また、機構部3は、モータM3とエンコーダE3を有し、機構部4は、モータM4とエンコーダE4を有している。
機構部1〜4は、例えばシャーシなどである。機構部1は、概略円柱状の土台であり、機構部2〜4は、アームである。機構部1は、モータM1を回転させることによって機構部2を回転させ、機構部2は、モータM2を回転させることによって機構部3を回転させる。また、機構部3は、モータM3を回転させることによって機構部4を回転させ、機構部4は、モータM4を回転させることによって機構部4の先端部を回転させる。
エンコーダE1〜E4、モータM1〜M4は、ぞれぞれ配線によってモータ制御装置10に接続されている。また、本実施の形態では、エンコーダE1〜E4内に設置された温度センサ(図3では図示せず)が、ぞれぞれ配線によってモータ制御装置10に接続されている。なお、図3では、モータ制御装置10に接続される各配線をまとめて配線Aとして図示している。
ここで、熱回路モデル記憶部27が記憶しておく熱回路モデルについて説明する。図4は、機構部の熱回路モデルを説明するための図である。なお、機構部1〜4には、それぞれ同様の熱回路モデルが設定されるので、以下では熱回路モデルの一例として機構部3の熱回路モデルについて説明する。
機構部3では、温度センサs3によってエンコーダE3内の温度センサ値Sが測定される。本実施の形態では、この温度センサ値Sを用いてモータM3の温度T1、モータM3の周囲温度T3,T4、減速機D3の温度T5を算出する。この温度T1〜T4は、実際に測定される温度ではなく、機構部3内に配置される部品の熱伝導率や形状などに基づいて算出される。したがって、温度センサ値S(温度S=T2)のみが実際の測定温度であり、温度T1,T3,〜T5は、仮想的に設定された位置での算出温度(仮想位置温度)である。
例えば、モータM3の温度T1は、温度センサs3の測定点から温度T1に対応する測定点まで(以下、測定点間という)の熱抵抗R11を用いて算出される。測定点間に配置される部品の厚さをL(mm)、測定点間に配置される部品の材質の熱伝導率をk(W/(m・k))、測定点間に配置される部品の面積をA(cm2)とすると、熱抵抗R11は、R11=L(k×A)によって算出することができる。さらに、測定点間の熱流をQ1(W)とすると、温度T1は、T1=S−(Q1×R11)によって算出することができる。
また、モータM3の周囲温度T3,T4、減速機D3の温度T5も、モータM3の温度T1と同様に、温度センサs3の測定点から温度T3,T5,T4の測定点までの熱抵抗R12、R13,R14を用いて算出される。
つぎに、機構部3の詳細な構成について説明する。図5は、機構部の詳細な構成を示す図である。機構部3は、アルミニウムなどの素材を用いて作製された密閉筐体5内に、エンコーダE3、モータM3、減速機D3などを格納している。
エンコーダE3は、モータM3の回転に応じて回転する回転板31を有しており、この回転板31の回転数を検出することによってモータM3の回転数N(rpm)を検出する。モータM3は、磁石37、フレーム36、コイル35、軸受け32などによって構成されている。また、モータM3は、鉄心34を介して減速機D3に接合されている。減速機D3は、潤滑油を染み込ませたベアリング33などを有している。
このように、機構部3は種々の部品によって構成されている。そして、機構部3を構成する部品は、部品毎に種々の形状、種々の熱伝導特性を有している。したがって、位置速度指令装置20は、図3に示した熱回路モデルに限らず、種々の熱回路モデルを用いて機構部3内の種々の位置の温度を算出してもよい。例えば、図6に示す熱回路モデルを設定しておくことによって、位置速度指令装置20は、図6に示す熱回路モデルを用いて各位置での温度を算出することが可能となる。図6に示す熱回路モデルを用いて温度を算出する場合、隣接する測定点の温度などを用いて各測定点の温度を算出する。例えば、算出対象の測定点を測定点b1(図示せず)とし、この測定点b1に隣接する測定点b2(図示せず)の温度をTyとし、測定点b1と測定点b2との間の熱抵抗を熱抵抗Ryとすると、測定点b1の温度は、温度Tyと熱抵抗をRyとを用いて算出することができる。このように、熱回路モデルを用いて温度を計算することによって、固定位置での温度検出に限らず柔軟な温度検出が可能となる。
つぎに、ロボットの動作手順について説明する。ロボットが動作を開始すると、位置速度指令装置20の位置速度算出部26は、制御プログラム記憶部29から制御プログラムを読み出して、位置速度指示情報を生成する。この位置速度指示情報は、位置速度算出部26から出力部24を介してモータ制御装置10に送られる。
モータ制御装置10は、位置速度指令装置20からの位置速度指示情報に基づいて、各機構部Xを動作させる。機構部Xは、温度センサsxによって温度を測定し、測定した温度を温度センサ値Sとしてモータ制御装置10を介して位置速度指令装置20に送る。
位置速度指令装置20は、温度センサsxからの温度センサ値Sを入力部23から入力する。この温度センサ値Sは、温度算出部25に送られる。温度算出部25は、熱回路モデル記憶部27が記憶している熱回路モデル(例えば図3に示した熱回路モデル)と温度センサ値Sを用いて、モータMxの温度T1、モータMxの周囲温度T3,T4、減速機Dxの温度T5などを算出する。
温度算出部25は、算出した温度T1〜T5を位置速度算出部26に送信する。位置速度算出部26は、温度算出部25からの温度T1〜T5を受信する。そして、位置速度算出部26は、動作特性記憶部28からモータMx、減速機Dx、機構部Xの動作特性を読み出す。
図7〜図9は、それぞれモータ、減速機、機構部の効率特性の一例を示す図である。図7では、モータM3の動作特性として、モータM3の温度T1に応じた動作効率特性(供給電力に対する動作効率)を示している。
図7に示すように、モータM3の効率特性は、モータM3の回転数Nが2000rpmの場合、1000rpmの場合、500rpmの場合の順番で悪くなる。また、モータM3の温度T1が高くなるに従って、モータM3の効率特性が良くなる。位置速度算出部26は、図7に示すモータM3の効率特性と、モータM3の回転数Nと、算出されたモータM3の温度T1と、に基づいて、動作中のモータM3の動作効率を計算する。
また、図8では、減速機D3の動作特性として、減速機D3の温度T5に応じた効率特性を示している。図8に示すように、減速機D3の効率特性は、減速機D3の回転数Nが2000rpmの場合、1000rpmの場合、500rpmの場合の順番で悪くなる。また、減速機D3の温度T5が高くなるに従って、減速機D3の効率特性が良くなる。位置速度算出部26は、図8に示す減速機D3の効率特性と、減速機D3の回転数Nと、算出された減速機D3の温度T5と、に基づいて、動作中の減速機D3の動作効率を計算する。
また、図9では、機構部3の動作特性として、機構部3の温度T3(モータM3の周囲温度T3)に応じた効率特性を示している。図9に示すように、機構部3(アーム)の効率特性は、機構部3の動作条件が動作a3の場合、動作a2の場合、動作a1の場合の順番で悪くなる。また、機構部3の温度T3が高くなるに従って、機構部3の効率特性が良くなる。位置速度算出部26は、図9に示す機構部3の効率特性と、機構部3の動作条件と、算出された機構部3の温度T3と、に基づいて、動作中の機構部3の動作効率を計算する。
位置速度算出部26は、算出したモータM3の動作効率、減速機D3の動作効率、機構部3の動作効率に基づいて、位置速度指示情報を生成する。例えば、モータM3の動作効率が70%である場合、モータM3は、供給された電力の70%分しか動作していないことになる。この場合、位置速度算出部26は、不足した30%分の動作を補うことができる位置速度指示情報を生成する。位置速度算出部26が生成した位置速度指示情報は、出力部24を介してモータ制御装置10に送られる。モータ制御装置10では、位置速度指令装置20からの位置速度指示情報に基づいて機構部3に電力を供給し機構部3を動作させる。
ロボットの動作中は、機構部3の動作(モータM3の回転など)や周辺の環境に従って、機構部3内の温度が変化し、温度センサsxが検出する温度も変化する。これにより、位置速度算出部26が算出する温度T1,T3なども機構部3の動作や周辺の環境に従って変化し、位置速度算出部26が生成する位置速度指示情報も変化する。そして、モータ制御装置10は、機構部3の動作中に変化する位置速度指示情報に従って機構部3の動作制御を行なう。
換言すると、ロボットは、エンコーダE3内の温度のデータと、モータM3の制御データとを用いて、モータM3および減速機D3の温度特性パラメータをダイナミックに補正して機構部3の動作制御を行なっている。
機構部3の動作中に変化する位置速度指示情報は、機構部3の温度変化に従って変化する位置速度指示情報であり、機構部3は、この位置速度指示情報に基づいて制御されるので、ロボットでは機構部3の温度変化に応じた適切な動作制御が行なわれることととなる。
なお、本実施の形態では、ロボットの動作部分が図3に示した機構部1〜4である場合について説明したが、ロボットの動作部分は他の構成であってもよい。例えば、機構部は3つ以下であってもよいし、5つ以上であってもよい。
このように実施の形態1によれば、温度センサ値Sと、熱回路モデルとに基づいて機構部1〜4内の種々の位置での温度を算出するので、簡易な構成で機構部1〜4内の種々の位置での正確な温度を算出することが可能となる。また、算出した正確な温度に基づいて機構部1〜4を制御するので、ロボットを正確に動作させることが可能となる。
実施の形態2.
つぎに、図10〜図13を用いてこの発明の実施の形態2について説明する。実施の形態2では、機構部X内で発生するエネルギー損失を用いて機構部Xの位置(測定対象点)毎に温度を算出する。なお、本実施の形態でも、実施の形態1の場合と同様に機構部3を機構部Xの一例としてロボットの動作部分の説明を行なう。
図10は、機構部でのエネルギー損失を説明するための図である。機構部3は、密閉筐体5A内にエンコーダE3やモータM3などを格納し、密閉筐体5B内に減速機D3などを格納している。
モータ制御装置10からモータM3に電流I(アンペア)が送られることによって、モータM3には入力パワーPI(W)が供給される。これにより、モータM3は回転し、機構部3が動作する。機構部3が動作すると、モータM3の動作に起因する負荷損WC(W:ワット)と鉄損WI(W)、軸受け32や減速機D3の動作に起因する機械損WM(WM1、WM2、WM3)(W)が発生する。
負荷損WCは、電気抵抗のある電気伝導体に流れる電流によって生じるジュール損であり、鉄損WIは、ヒステリシス損や過電流損である。ここでの機械損WMは、軸受け32の摩擦損WM1、減速機D3の摩擦損WM2、減速機D3の風損WM3である。
モータM3の出力パワーPOは、トルクをTO(ニュートンメートル)とし、モータM3の回転数(回転速度)をN(rpm)とすると、PO=(2πN/60)×TOによって算出することが可能となる。ここでのTOは、トルク定数のKTと電流Iを用いて、TO=KT×Iによって算出できる。したがって、モータM3の出力パワーPOは、PO=(2πN/60)×KT×Iとなる。
また、機構部3での全損失をWTとすると、WT=WC+WI+WMである。全損失のWTは、WT=PI−POであるので、WT=PI−((2πN/60)×KT×I)となる。なお、線間抵抗定数(温度依存性のある定数)をR(オーム)とすると、モータM3の負荷損WCはWC=(3/2)×I2Rである。また、WIやWMは、モータM3や減速機D3の構造に基づいて求めることができる。
本実施の形態の温度算出部25は、モータM3の発熱量と、温度センサs3によって測定される温度センサ値Sの値と、モータM3の発熱に関する熱回路モデルと、を用いて機構部3内の各位置における温度を算出する。
ここで、本実施の形態における熱回路モデルについて説明する。図11は、実施の形態2のロボットが用いる熱回路モデルを説明するための図である。機構部3では、温度センサs3によってエンコーダE3内の温度センサ値Sが測定される。本実施の形態では、この温度センサ値S、所定の位置におけるエネルギー損失の値、測定点間の熱抵抗などを用いて、モータM3の温度T1、モータM3の周囲温度T3などを算出する。
例えば、温度T1,T3は、機構部3内のモータM3の中心位置(温度T0)でのエネルギー損失である発熱量(WC+WI)、モータM3の表面部からモータM3の中心位置までの間(測定点間)の熱抵抗R1、モータM3の表面部からモータM3の周辺部までの間の熱抵抗R3を用いて算出される。
ここで、位置速度指令装置20の温度算出部25による機構部X内の温度算出方法の一例として、図12に示した熱回路モデルを用いた温度算出方法について説明する。図12の熱回路モデルでは、モータM3の中心位置を位置p0(温度T0)とし、この位置p0を基準にして各位置での温度が算出される。図12の熱回路モデルでは、モータM3の回転軸方向の面積がA1(m2)であり、モータM3の回転軸と垂直な方向の面積がA2(m2)である場合を示している。モータM3が回転軸方向を柱軸方向とした円柱状である場合、円柱状の側面積がA1となり、上面または底面の面積がA2となる。
また、モータM3の回転軸方向の厚さ(位置p0から上面までの距離)がL3(m)であり、モータM3の回転軸と垂直な方向への厚さ(位置p0から側面までの距離)がL1(m)である場合を示している。モータM3が回転軸方向を柱軸方向とした円柱状である場合、円柱の高さが2×L3となり、上面または下面の半径がL1となる。
図12の熱回路モデルにおいて、温度の算出対象となっているのは、モータM3の表面部である位置p1、モータM3の周辺部である位置p3,p4である。以下、位置p1での温度T1、位置p3での温度T3、位置p4での温度T4の算出方法について説明する。
ここでは、式(1)に示すように、エンコーダE3内部の温度センサsxによって測定した温度T2が温度センサ値のS(℃)である場合について説明する。
T2=S・・・(1)
また、式(2)に示すように、モータM3から発熱した熱流Q0(W)は、負荷損WCと鉄損WIの合計値であるとする。
Q0=WC+WI・・・(2)
また、式(3)に示すように、位置p0での熱流Q0は、位置p0から位置p1への熱流Q1(W)と、位置p0から位置p2(温度センサsx)への熱流Q2(W)の合計値であるとする。
Q0=Q1+Q2・・・(3)
位置p0と位置p1との間の測定点間の熱抵抗R1(K/W)と、位置p0と位置p2との間の測定点間の熱抵抗R2(K/W)とは、それぞれ式(4)、式(5)に示すように、モータM3の形状(L1、L3、A1、A2)とモータM3の熱伝導率k(W/(m・K))を用いて算出される。例えば、モータM3が鉄によって作製されている場合、k=67(W/(m・K))である。
R1=L1/(k・A1)・・・(4)
R2=L2/(k・A2)・・・(5)
また、位置p1と位置p3との間の測定点間の熱抵抗R3(K/W)と、位置p2と位置p4との間の測定点間の熱抵抗R4(K/W)とは、それぞれ式(6)、式(7)に示すように、モータM3の表面積(A1、A2)と対流熱伝達率h(W/(m2・K))を用いて算出される。対流熱伝達率hは、モータM3と密閉筐体5との間の空間における対流熱伝達率であり、例えば、自然対流(空気)の場合h=5〜10(W/(m2・K))である。
R3=1/(h・A1)・・・(6)
R4=1/(h・A2)・・・(7)
また、T0、T3、Q1の関係は熱容量C(J/K)を用いて式(8)によって表され、T0、T4、Q2の関係は熱容量C(J/K)を用いて式(9)によって表される。
T0−T3=Q1・(R1+R3(1−e-t(R3・C))・・・(8)
T0−T4=Q2・(R2+R4(1−e-t(R4・C))・・・(9)
熱容量Cは、モータM3の重量をG(kg)とし、モータM3の比率をCp(J/(kg・K))とした場合、C=G・Cpである。また、式(8)や式(9)でのR3・CやR4・Cは、熱時定数であり、tは時間(sec)である。式(8)と式(9)より、式(10)と式(11)を導き出すことができる。
T3=T0−Q1・(R1+R3(1−e-t(R3・C))・・・(10)
T4=T0−Q2・(R2+R4(1−e-t(R4・C))・・・(11)
モータM3の周辺温度が一定であり、位置p3での温度T3と位置p4での温度T4との関係が、T3≒T4であるとすると、式(10)と式(11)から式(12)を導き出すことができる。
T0−Q1・(R1+R3(1−e-t(R3・C))=T0−Q2・(R2+R4(1−e-t(R4・C))・・・(12)
式(12)を変形すると式(13)となり、式(13)を変形すると式(14)となり、式(14)は式(16)を用いて式(15)で表すことができる。
Q1・(R1+R3(1−e-t(R3・C))=Q2・(R2+R4(1−e-t(R4・C))・・・(13)
Q1=Q2・((R2+R4(1−e-t(R4・C)))/((R1+R3(1−e-t(R3・C)))・・・(14)
Q1=n・Q2・・・(15)
n=((R2+R4(1−e-t(R4・C)))/((R1+R3(1−e-t(R3・C)))・・・(16)
このように、モータM3の周囲温度が略一定であるとすると、熱流Q1、Q2の比率は熱等価回路式を用いて、モータM3の形状や材質などによって一意に決まる定数nで表すことができる。式(3)を用いて式(15)を変形すると式(17)となり、式(17)を変形すると式(18)となる。さらに、式(18)を変形すると式(19)となり、式(19)を変形すると式(20)となる。
Q1=n・(Q0−Q1)・・・(17)
Q1=n・Q0−n・Q1・・・(18)
(1+n)Q1=n・Q0・・・(19)
Q1=(n・Q0)/(1+n)・・・(20)
さらに、式(2)を用いて式(20)を変形すると式(21)となる。また、式(3)を変形すると式(22)となり、式(22)を式(2)と式(21)を用いて変形すると式(23)となる。
Q1=(n・(WC+WI))/(1+n)・・・(21)
Q2=Q0−Q1・・・(22)
Q2=WC+WI−(n・(WC+WI))/(1+n)・・・(23)
また、T0とT2の間には熱等価回路の式として式(24)の関係が成り立つ。式(24)を式(1)、式(5)、式(23)を用いて変形すると式(25)となり、式(25)を変形すると式(26)となる。
T0−T2=Q2・R2・・・(24)
T0−S=(WC+WI−(n・(WC+WI))/(1+n))×(L2/(k・A2))・・・(25)
T0=S+(WC+WI−(n・(WC+WI))/(1+n))×(L2/(k・A2))・・・(26)
また、T0とT1の間には熱等価回路の式として式(27)の関係が成り立つ。式(27)を変形すると式(28)となり、式(28)を式(1)、式(4)、式(21)を用いて変形すると式(29)となる。
T0−T1=Q1・R1・・・(27)
T1=T0−Q1・R1・・・(28)
T1=S+(WC+WI−(n・(WC+WI))/(1+n))×(L2/(k・A2)−((n・(WC+WI))/(1+n))・(L1/(k・A1))・・・(29)
また、T2とT4(T3)の間には熱等価回路の式として式(30)の関係が成り立つ。式(30)を変形すると式(31)となり、式(31)を式(1)、式(7)、式(23)を用いて変形すると式(32)となる。
T2−T4=Q2×R4(1−e-t(R4・C))・・・(30)
T4=T2−Q2×R4(1−e-t(R4・C))・・・(31)
T4=S−(WC+WI−(n・(WC+WI))/(1+n))×(1/(h・A2))・・・(32)
以上のように、エンコーダE3の温度センサs3による温度センサ値S(T2)と、モータM3へ供給した電力に対応するモータM3の発熱量Q0(WC+WI)と、が分かれば、上述した式(29)、式(32)によってモータM3の表面温度T1、モータM3の周囲温度T3,T4を算出することが可能となる。
従来のロボットでは、温度センサによって機構部内の温度を測定し、この測定結果を用いて機構部の使用制限を行なっていた。例えば、モータやエンコーダに使用制限温度を設定しておき、温度センサがこの使用制限温度の範囲を超える温度を検出した場合には、ロボットの動作を停止させたりアラームを出力していた。具体的には、モータの表面温度に0〜125℃などの使用制限温度を設定し、エンコーダ内の温度に0〜90℃などの使用制限温度を設定し、モータの周囲温度に0〜40℃などの使用制限温度を設定していた。これにより、従来のロボットは動作する際の温度保証を行なっていた。
一方、本実施の形態のロボットは、熱等価回路を構成できる任意の位置(点)の温度を正確に算出できるので、ロボットを動作させる際の細かな動作制御を行なうことが可能となる。また、算出した正確な機構部内の温度を用いて、機構部(主にベアリング33)から流出する潤滑油の流出限界温度の算出などの機構部Xの保守に関するデータ処理を行なうことが可能となる。
なお、本実施の形態では、温度T3と温度T4が同じであるとした場合の温度T1,T5,T3,T4を算出したが、温度T3と温度T4が異なる場合は、図12に示した熱回路モデルとは異なる熱回路モデルを用いる。例えば、モータM3の装置サイズが非常に大きい場合には、モータM3の周囲温度が位置p3と位置p4によって異なる場合がある。このように、周囲温度に差が生じる場合は、例えば図13に示す熱回路モデルを用いてモータM3の周囲温度を算出する。
図13は、熱回路の基準点を設定した熱回路モデルを説明するための図である。熱回路モデルを設定するにあたり、所定の基準点F(℃)を設定するとともに、基準点Fから測定対象となる位置までの測定点間の熱抵抗を設定しておく。ここでは、モータM3の周囲温度に差が生じる場合の位置p3とp4の温度算出を行なう必要があるので、基準点Fから位置p3までの測定点間の熱抵抗R33と、基準点Fから位置p4までの測定点間の熱抵抗R34と、を設定しておく。基準点Fは、測定点間に等価回路モデルを構成することができれば、モータM3やロボットが設置される場所の室温(1箇所)であってもよい。基準点Fは、例えば動作部分の外部に配置される室温測定器60などによって測定する。
なお、図13では、機構部1,2,4への熱抵抗は1つしか図示していないが、機構部1,2,4へも機構部3と同様に温度の算出対象となる位置毎に測定点間の熱抵抗を設定しておく。
また、本実施の形態では、図12に示した熱回路モデルを用いて機構部3内の位置p1、位置p3、位置p4での温度を算出する場合について説明したが、実施の形態1で説明した図6の熱回路モデルを用いて機構部3内の温度を算出してもよい。
このように実施の形態2によれば、温度センサ値Sと、モータM3の発熱量Q0とに基づいて、機構部1〜4内の種々の位置での温度を算出するので、簡易な構成で機構部1〜4内の種々の位置での正確な温度を算出することが可能となる。
実施の形態3.
つぎに、図14を用いてこの発明の実施の形態3について説明する。実施の形態3では、実施の形態1で説明した方法によって得た機構部X内の温度と、実施の形態2で説明した方法によって得た全損失WTとの両方をを用いて、機構部X内の温度を再算出する。なお、本実施の形態でも、実施の形態1,2の場合と同様に機構部3を機構部Xの一例としてロボットの動作部分の説明を行なう。
図14は、機構部での全損失と機構部内の温度の関係を示す図である。機構部3では、放熱等によってエネルギー損失が発生している。機構部3での全損失WTは、実施の形態2で説明したように、所定の算出式によって算出することができる。例えば、図14の(a)に示すように、モータM3の回転を開始してからの時間経過とともに徐々に全損失の値が大きくなっていき、所定の時間が過ぎると全損失の値がほぼ一定となる。このとき、温度T1,T3,T5もモータM3の回転を開始してからの時間経過とともに温度の値が大きくなっていき、所定の時間が過ぎると温度の上昇率が小さくなる。
図14では、(a)の図が密閉筐体環境下での全損失WTと温度T1,T3,T5の特性を示しており、(b)の図がオープン環境下での全損失WTと温度T1,T3,T5の特性を示している。ここでのオープン環境下とは、例えばモータM3が強制冷却される場合や機構部3Mを格納する筐体が体積の大きな広い筐体である場合などである。また、密閉筐体環境下とは、例えば機構部3Mを格納する筐体が体積の小さな狭い筐体である場合などである。
図14の(a)と(b)に示すように、モータM3がオープン環境下の場合は、密閉筐体環境下の場合よりも、全損失WTが小さく、温度T1,T3,T5の上昇率も低い。このように、モータM3の配置される環境によって全損失WTや温度T1,T3,T5の特性が異なるので、本実施の形態では、算出した全損失WTに基づいてモータM3の配置されている環境を推測する。そして、熱回路モデルを用いて算出した温度T1,T3,T5を、モータM3の配置されている環境に応じた特性データを用いて補正する。
位置速度指令装置20の記憶部22(例えば、熱回路モデル記憶部27)では、予め図14の(a)や(b)に示す特性データに関する情報を記憶しておく。記憶部22が記憶しておく特性データに関する情報は、(a)や(b)に示す特性データの関係を示すデータテーブルであってもよいし、(a)や(b)に示す特性データを導くことができる計算式であってもよい。
なお、ここではモータM3が連続的に動作する場合について説明したが、モータM3が断続的に動作する場合は全損失WTや温度T1,T3,T5は、図14の(c)に示すように変化する。すなわち、全損失WTや温度T1,T3,T5はモータM3が回転している間は値が増加し、モータM3の回転が停止している間は値が減少する。したがって、モータM3が断続的に動作する場合は、(c)に示した特性データに関する情報を用いて温度T1,T3,T5を算出する。
モータM3の動作が開始すると、温度算出部25は、実施の形態2で説明した方法により、機構部3での全損失WTを算出する。温度算出部25は、全損失WTに対応するモータM3の特性データを記憶部22から抽出する。例えば、モータM3が密閉環境下で使用される場合、温度算出部25は、全損失WTに基づいて(a)の特性データを選択する。また、周囲温度一定環境下で使用される場合、温度算出部25は、全損失WTに基づいて(b)の特性データを選択する。さらに、温度算出部25は、選択した特性データに基づいて、全損失WTに対応する温度T1,T3,T5を抽出する。この温度T1,T3,T5は、温度算出部25から位置速度算出部26に送られる。
また、温度算出部25は、実施の形態1で説明した方法により、熱回路モデルを用いて温度T1,T3,T5を算出する。この温度T1,T3,T5は、温度算出部25から位置速度算出部26に送られる。
位置速度算出部26は、全損失WTに対応する温度T1,T3,T5と、実施の形態1で説明した方法によって算出した温度T1,T3,T5と、を用いて、新たな温度T1,T3,T5を算出する。換言すると、位置速度算出部26は、実施の形態1で説明した方法によって算出した温度T1,T3,T5を、全損失WTに対応する温度T1,T3,T5を用いて補正する。例えば、位置速度算出部26は、全損失WTに対応する温度T1,T3,T5と、実施の形態1で説明した方法によって算出した温度T1,T3,T5と、の平均値を新たな温度T1,T3,T5とする。
この後、位置速度算出部26は、算出した新たな温度T1,T3,T5と、図7〜図9で説明したモータM3の効率特性、減速機D3の効率特性、機構部3の効率特性に基づいて、位置速度指示情報を生成する。モータ制御装置10では、位置速度指令装置20からの位置速度指示情報に基づいて機構部3に電力を供給し機構部3を動作させる。
このように実施の形態3によれば、熱回路モデルを用いて算出した機構部内の温度と、算出した全損失WTに対応する機構部内の温度と、に基づいて機構部内の温度を再算出するので、簡易な構成で機構部1〜4内の種々の位置での正確な温度を算出することが可能となる。
実施の形態4.
つぎに、図15および図16を用いてこの発明の実施の形態4について説明する。実施の形態4では、実施の形態1〜3で説明した何れかの方法によって得た機構部内の温度と、機構部の熱膨張率を用いて、ロボットの動作部分の位置ずれを補正する。
図15は、ロボットの動作部分の熱膨張を説明するための図であり、各機構部の断面構成を示している。図15では、機構部1と機構部2の中心軸方向(長手方向)がz軸方向であり、機構部3がx軸方向から角度θ3だけ回転し、機構部4がz軸方向から角度θ4だけ回転している場合を示している。
機構部1〜4は、機構部1〜4の発熱などにより熱膨張する。このため、熱膨張したサイズに応じた距離だけアームなどの動作(軌跡精度や位置繰返し精度)に位置誤差が生じる。例えば、ロボットでは、機構部4の先端部の位置を正確に制御する必要がある。図15に示す状態で機構部3や機構部4が熱膨張すると、機構部4の先端部の位置が所望の位置からずれることとなる。
例えば、機構部3,4の長手方向(軸方向)の長さがそれぞれL3,L4であり、機構部3,4の熱膨張率がα3,α4である場合、機構部3,4の温度上昇がΔT3,ΔT4であれば、機構部3が熱膨張によって長手方向に伸縮する距離ΔL3は、ΔL3=α3×L3×ΔT3である。また、機構部4が熱膨張によって長手方向に伸縮する距離ΔL4は、ΔL4=α4×L4×ΔT3である。この場合の機構部4の先端部のx軸方向の位置ずれ量Δxは、Δx=cosθ3×(ΔL3)+sinθ4×(ΔL4)となる。
また、機構部4の先端部のy軸方向(紙面の上から下へ向かう方向)の位置ずれ量や機構部4の先端部のz軸方向の位置ずれ量も、機構部4の先端部のx軸方向の位置ずれ量と同様の方法によって算出することができる。
本実施の形態では、予め各機構部1〜4の長手方向の長さ、短手方向の長さ、厚さなどの各機構部1〜4の寸法に関する寸法情報、各機構部1〜4の熱膨張率α1〜α4などを位置速度指令装置20の記憶部22内に格納しておく。
温度算出部25は、実施の形態1〜3の何れかの方法によって各機構部1〜4の温度を算出するとともに、各機構部1〜4の温度変化量(初期値からの変化量)であるΔTを算出する。位置速度算出部26は、温度算出部25が算出したΔT、記憶部22内に格納されている各機構部1〜4の寸法情報、各機構部1〜4の熱膨張率α1〜α4に基づいて、機構部4の先端部の位置ずれ量を算出する。位置速度算出部26は、機構部4の先端部の位置ずれ量としてx軸方向の位置ずれ量、y軸方向の位置ずれ量、z軸方向の位置ずれ量を算出する。
位置速度算出部26は、算出した機構部4の先端部の位置ずれ量に基づいて、機構部4の先端部の位置ずれ量を解消するよう位置速度指示情報を補正する。モータ制御装置10では、補正された位置速度指示情報に基づいて機構部3に電力を供給し機構部3を動作させる。
なお、ここでは、位置速度算出部26が機構部4の先端部の位置ずれ量を算出する場合について説明したが、位置速度算出部26は機構部1〜4毎に各機構部1〜4の位置ずれ量を算出してもよい。
つぎに、機構部1〜4の熱膨張に起因する動作の位置ずれ量(移動目標位置の誤差)の補正処理手順について説明する。図16は、機構部の熱膨張に起因する動作の位置ずれ量の補正処理手順を示すフローチャートである。ここでは、各機構部1〜4を機構部Xとしてロボットの動作を説明する。ロボットが動作を開始すると、モータ制御装置10の制御部11が、各機構部XのエンコーダExに温度センサsxで測定した温度センサ値Sを要求する(ステップS110)。各エンコーダExの温度センサsxは、温度センサ値Sを制御部11へ応答する(ステップS120)。
この温度センサ値Sは、モータ制御装置10から位置速度指令装置20へ送られる。位置速度指令装置20は、モータ制御装置10からの温度センサ値Sを入力部23から入力する。この温度センサ値Sは、温度算出部25に送られる。
温度算出部25は、温度センサ値Sの変化量(温度変化)が、初期値から1℃以上変化したか否かを確認する。温度変化と初期値との差が1℃未満である場合(ステップS130、No)、ロボットの位置速度指令装置20はステップS110の処理に戻る。
一方、温度変化が初期値よりも1℃以上大きい場合(ステップS130、Yes)、温度算出部25は、温度センサ値Sと熱回路モデルを用いて機構部X内での温度T1〜T5を算出する(ステップS140)。このとき、温度算出部25は、実施の形態1〜3で説明した何れかの方法によって温度の算出処理を行なう。さらに、温度算出部25は、機構部Xの初期温度からの温度変化量としてΔT1〜ΔT5を算出する。
温度算出部25は、機構部Xの熱膨張に起因する動作の位置誤差を補正する必要があるか否かを判断する(ステップS150)。温度算出部25は、算出した各温度ΔT1〜ΔT5が、それぞれ所定の閾値より大きいか否かに基づいて機構部Xの動作を補正するか否かを判断する。具体的には、温度算出部25は、温度ΔT1に対する閾値A(℃)と温度ΔT1を比較し、温度ΔT1が閾値Aより大きいか否かを判断する。また、温度算出部25は、温度ΔT3,ΔT4に対する閾値B(℃)と温度ΔT3,ΔT4を比較し、温度ΔT3,ΔT4が閾値Bより大きいか否かを判断する。さらに、温度算出部25は、温度ΔT5に対する閾値C(℃)と温度ΔT5を比較し、温度ΔT5が閾値Cより大きいか否かを判断する。
温度ΔT1〜ΔT5の全てが閾値より小さい場合(ステップS150、No)、ロボットの位置速度指令装置20はステップS110の処理に戻る。温度ΔT1〜ΔT5の何れか1つでも閾値より大きい場合(ステップS150、Yes)、温度算出部25は機構部Xの動作を補正すると判断する。そして、温度算出部25は、算出した各温度ΔT1〜ΔT5を、位置速度算出部26に送る。
位置速度算出部26は、温度算出部25が算出したΔT1〜ΔT5、記憶部22内に格納されている機構部Xの寸法情報、機構部Xの熱膨張率に基づいて、機構部Xの位置ずれ量(熱膨張誤差)を算出する(ステップS160)。
位置速度算出部26は、機構部Xの熱膨張誤差を算出するまでの間、温度T1〜T5と、制御プログラム記憶部29が記憶する制御プログラムと、に基づいて、位置速度指示情報を生成している(ステップS210)。
位置速度算出部26は、機構部Xの熱膨張誤差を算出すると、機構部Xの熱膨張によって生じる位置誤差の補正処理を行なう。具体的には、位置速度算出部26は、温度算出部25から送られてくる温度ΔT1〜ΔT5を用いて位置速度指示情報を補正する。このとき、位置速度算出部26は、機構部Xの動作の位置ずれ量を解消するよう位置速度指示情報を補正する(ステップS220)。
モータ制御装置10の制御部11は、補正された位置速度指示情報に基づいて機構部3に供給する電力を算出する(ステップS230)。そして、モータ制御装置10のモータドライバ部12は、制御部11が算出した電力(U、V、W)を機構部Xに送る。
なお、ロボットでは、全ての機構部1〜4に対してステップS110〜S160の処理、ステップS210〜S240の処理を行なう。そして、ロボットでは、ステップS110〜S160の処理、ステップS210〜S240の処理を繰り返すことによって動作する。
このように実施の形態4によれば、機構部1〜4の温度と熱膨張率に基づいて、ロボットの動作部分の位置ずれを補正するので、簡易な構成でロボットを正確に動作させることが可能となる。