(57)【特許請求の範囲】
【請求項１】
モータの速度を制御するＰＩ制御器と、
ツールの重量および前記ツールの重心位置の情報を含むスペック情報が入力される入力部と、
前記スペック情報に基づいて重力トルクを算出する演算部と、
前記演算部から出力される前記重力トルク、および、前記ＰＩ制御部から出力される積分値を記憶し、かつ、ブレーキ信号に応じて前記重力トルク及び前記積分値を出力する記憶部と、
前記記憶部から出力される前記積分値を前記入力部から入力される衝突感度に応じて前記ＰＩ制御器に設定する選択部と、
を備えたモータ制御装置。
【請求項２】
前記スペック情報が負荷情報を含み、
前記スペック情報の前記負荷情報に基づいて前記ツールが取り付けられていないと判断された場合、前記選択部は無負荷重力トルクを前記積分値として前記ＰＩ制御器に設定し、
前記スペック情報の前記負荷情報に基づいて前記ツールが取り付けられていると判断された場合、前記選択部は有負荷重力トルクを前記積分値として前記ＰＩ制御器に設定する、請求項１記載のモータ制御装置。
【請求項３】
前記スペック情報は任意に設定できる請求項１または２記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、モータ制御装置に関し、特に、停止後の再動作時のモータの重力トルクの補正に関する。
【背景技術】
【０００２】
従来、マニピュレータなどのロボットにおける重力軸を駆動するサーボモータの通電時に、重力軸の挙動を安定させ、重力軸の落下を防止するモータ制御装置が開発されている。【０００３】
図６および図７を用いて、従来のモータ制御装置９００について説明する。図６は、従来のモータ制御装置９００を示す図である。図７は、従来のモータ制御装置９００のＰＩ制御器９０１の詳細を示す図である。【０００４】
図６に示すように、従来のモータ制御装置９００は、ＰＩ制御器９０１と、電流制御部９０２と、インバータ回路９０３と、モータ９０４と、エンコーダ９０５と、変換部９０６と、記憶部９０７と、ブレーキ装置９０８とを有する。エンコーダ９０５は、モータ９０４のロータの位置を所定のサンプリング周期で検出し、検出した位置情報を変換部９０６に送信する。変換部９０６は、エンコーダ９０５から送信される位置情報に基づくロータの位置の変化からモータ９０４のロータの回転速度を求める。そして変換部９０６は算出したロータの回転速度をフィードバック速度ＶＦＢとしてＰＩ制御器９０１へ送信する。【０００５】
記憶部９０７は、ブレーキ装置９０８に入力されるブレーキ信号ＢＳＩＧとＰＩ制御器９０１から出力されるトルク指令値ＴＣＯＭが入力され、トルク指令値ＴＣＯＭを記憶する。また、記憶部９０７は、ブレーキ信号ＢＳＩＧがオンからオフに変化した時、その時のトルク指令値ＴＣＯＭをＰＩ制御器９０１に出力する。【０００６】
ＰＩ制御器９０１には、速度指令ＶＣＯＭとフィードバック速度ＶＦＢとが入力される。ＰＩ制御器９０１は演算を行って、トルク指令値ＴＣＯＭを電流制御部９０２に出力する。また、ＰＩ制御器９０１には、ブレーキ信号ＢＳＩＧがオンからオフに変化した時のトルク指令値ＴＣＯＭが記憶部９０７から入力される。【０００７】
電流制御部９０２は、トルク指令値ＴＣＯＭとモータ９０４に供給される電流のフィードバック電流ＩＦＢとが入力され、インバータ駆動指令を算出し、インバータ回路９０３に出力する。インバータ回路９０３は、入力されたインバータ駆動指令に基づいて、モータ９０４に電流を流し、モータ９０４の駆動を制御する。【０００８】
次に、図７を用いて、ＰＩ制御器９０１について、具体的に説明する。ＰＩ制御器９０１は、比例成分演算部９１１と積分成分演算部９１２とを有する。比例成分演算部９１１と積分成分演算部９１２には、速度指令ＶＣＯＭとフィードバック速度ＶＦＢとの差である誤差速度ｄＶが入力される。誤差速度ｄＶから比例成分演算部９１１によって算出された値と誤差速度ｄＶから積分成分演算部９１２によって算出された値とが加算されて、トルク指令値ＴＣＯＭが出力される。出力されたトルク指令値ＴＣＯＭは、記憶部９０７に記憶される。そして、上述したように、ブレーキ信号ＢＳＩＧがオンからオフに変化した時のトルク指令値ＴＣＯＭが、記憶部９０７からＰＩ制御器９０１の積分成分演算部９１２に出力される。【０００９】
これにより、ＰＩ制御器９０１は、ブレーキ信号ＢＳＩＧがオンからオフに変化した時のトルク指令値ＴＣＯＭを保持トルクとして利用することで、再度、ブレーキ信号ＢＳＩＧがオフからオンに変化する時（モータ９０４の通電開始時）の重力軸の落下が防止できていた（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１０−４５９１２号公報
【発明の概要】
【００１１】
本開示のモータ制御装置は、モータの速度を制御するＰＩ制御器と、ツールの重量およびツールの重心位置の情報を含むスペック情報が入力される入力部と、前記スペック情報に基づいて重力トルクを算出する演算部と、前記演算部から出力される前記重力トルク、および、前記ＰＩ制御部から出力される積分値を記憶し、かつ、ブレーキ信号に応じて前記重力トルク及び前記積分値を出力する記憶部と、前記記憶部から出力される前記積分値を前記入力部から入力される衝突感度に応じて前記ＰＩ制御器に設定する選択部と、を有する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態のモータ制御装置を示す図である。
【図２】図２は、実施の形態のモータ制御装置の選択部３２の動作を示すフローチャートである。
【図３】図３は、衝突検出部２００おける衝突検出結果の検出方法を説明する図である。
【図４】図４は、ロボットにおける衝突感度と衝突検出トルクとの関係を示す図である。
【図５】図５は、ロボットにおける衝突感度と設定保持トルクの関係を示す図である。
【図６】図６は、従来のモータ制御装置９００を示す図である。
【図７】図７は、従来のモータ制御装置９００のＰＩ制御器９０１の詳細を示す図である。
【発明を実施するための形態】
【００１３】
本開示の実施の形態の説明に先立ち、従来のモータ制御装置における問題点を簡単に説明する。
【００１４】
図６および図７を参照しながら説明した従来のモータ制御装置９００では、以下のような問題が発生する。従来のモータ制御装置では、モータ９０４が静止した状態でブレーキ信号ＢＳＩＧがオンからオフに変化した場合は、記憶部９０７に記憶されたトルク指令値ＴＣＯＭは、モータ９０４の保持トルクである。しかしながら、モータ９０４が急停止した場合、または、衝突によって停止した場合は、記憶部９０７に記憶されているブレーキ信号ＢＳＩＧがオンからオフに変化した時のトルク指令値ＴＣＯＭは、この時の適切なモータ９０４の保持トルクではない。よって、モータ９０４が急停止した場合、または、衝突によって停止した場合は、従来のモータ制御装置９００では、モータ９０４の通電開始時に重力軸の跳ね上がりや落下が発生し、アームが周辺装置やワークや作業者に衝突する危険性がある。
【００１５】
以下、本開示の実施の形態を図１〜図５を用いて説明する。
【００１６】
図１は本開示のモータ制御装置２１を示す図である。モータ２４がロボット１００に装着されている場合について説明する。
【００１７】
エンコーダ２５は、モータ２４のロータの位置を所定のサンプリング周期で検出し、検出したモータ２４の位置情報Ｄ１を変換部２６に送信する。変換部２６は、エンコーダ２５から送信される位置情報Ｄ１の時間変化からモータ２４のロータの回転速度を求める。変換部２６で算出された回転速度は、フィードバック速度ＶＦＢとしてＰＩ制御器２２へ送信される。また、変換部２６は演算部３１にフィードバック速度ＶＦＢと位置情報Ｄ１を送信する。
【００１８】
演算部３１には、ツールの重量およびツールの重心位置の情報を含むスペック情報Ｄ２と、モータ２４の位置情報Ｄ１と、フィードバック速度ＶＦＢが入力される。また、ロボット１００がモータ２４以外に、他のモータ（図示せず）を有する場合、他の制御ブロックから、他のモータの位置情報に基づくフィードバック速度ＶＦＢ＿２および他のモータの位置情報Ｄ１＿２も演算部３１に入力される。演算部３１では、モータ２４に働く重力トルクＴＧを算出し、重力トルクＴＧを記憶部２７へ送信する。
【００１９】
ＰＩ制御器２２は、比例成分演算部２９と積分成分演算部３０とを有する。比例成分演算部２９と積分成分演算部３０には、速度指令ＶＣＯＭとフィードバック速度ＶＦＢとの差である誤差速度ｄＶが入力される。誤差速度ｄＶに基づいて比例成分演算部２９で算出された値に、積分成分演算部３０で算出された積分値ＶＩが加算されて、ＰＩ制御器２２からトルク指令値ＴＣＯＭが電流制御部２３へ出力される。記憶部２７には、ブレーキ装置２８に入力されるブレーキ信号ＢＳＩＧと積分成分演算部３０から出力される積分値ＶＩ、演算部３１から出力される重力トルクＴＧが入力される。そして、記憶部２７は、積分成分演算部３０から出力される積分値ＶＩと重力トルクＴＧを記憶する。そして記憶部２７は、ブレーキ信号ＢＳＩＧがオンからオフに変化した時の積分値ＶＩと重力トルクＴＧを選択部３２へ送信する。
【００２０】
選択部３２には、記憶部２７より出力されるトルク指令値ＴＣＯＭの積分値ＶＩと重力トルクＴＧが入力され、選択部３２にて設定された値をＰＩ制御器２２の積分成分演算部３０へ送信する。
【００２１】
また、ＰＩ制御器２２の積分成分演算部３０には、ブレーキ信号ＢＳＩＧがオンからオフに変化した時に設定されている値が選択部３２から送信される。
【００２２】
電流制御部２３には、ＰＩ制御器２２からトルク指令値ＴＣＯＭが入力される。また、電流制御部２３には、モータ発生トルクＴＦＢが入力される。電流制御部２３は駆動指令値ＤＣＯＭを算出し、駆動指令値ＤＣＯＭに基づいて、モータ２４に電流を流す。このように電流制御部２３はモータ２４の駆動を制御する。
【００２３】
[衝突検出部２００の動作]
次に、衝突感度について図１および図３を参照しながら説明する。衝突検出機能は図３に示すように、モータ２４に本来働くトルクを、エンコーダ２５から取得できるモータ２４の位置情報Ｄ１と、速度、加速度の情報（ここではフィードバック速度ＶＦＢとする）と、ツールやロボット本体の質量などのスペック情報Ｄ２と、から、演算部３１で、あらかじ動力学トルクＴＤを演算しておく。そして、衝突検出部２００で、実際に電流制御部２３からの制御によりモータ２４に働いたモータ発生トルクＴＦＢと、動力学トルクＴＤとの差である衝突検出トルクＴＣを衝突検出閾値Ｖｔと比較する。なお、衝突検出閾値Ｖｔは、事前に設定されている衝突感度Ｘに応じて決まっている。衝突検出トルクＴＣが衝突検出閾値Ｖｔ以上であれば衝突したとする衝突検出結果Ｒとなる。また衝突感度Ｘは、ユーザーによって設定可能であり、感度に応じて閾値の幅を設け、衝突の誤検出を防ぎ正確な衝突検出を行っている。
【００２４】
次に、図４を参照しながら衝突検出部２００の動作について具体例を用いて説明する。図４に示す例では、衝突検出トルクＴＣ（最大トルク比）が２０％の時は、衝突感度Ｘが２０％、５０％、８０％に設定されていれば『衝突』として検出されない。一方、衝突感度Ｘが１００％に設定されていると『衝突』として検出される。つまり、衝突検出閾値Ｖｔは、８０％以上と１００％未満で設定されている。
【００２５】
衝突検出トルクＴＣ（最大トルク比）が３０％の時も、２０％の時と同様である。
【００２６】
衝突検出トルクＴＣ（最大トルク比）が４０％の時は、衝突検出閾値Ｖｔが、衝突感度Ｘが５０％以上８０％未満で設定されているため、例えば衝突感度Ｘが５０％に設定されていれば『衝突』として検出されないが、衝突感度Ｘが８０％に設定されていれば『衝突』として検出される。
【００２７】
衝突検出トルクＴＣ（最大トルク比）が５０％の時は、衝突検出閾値Ｖｔが、衝突感度Ｘが２０％以上５０％未満で設定されているため、例えば、衝突感度Ｘが２０％に設定されていれば『衝突』として検出されないが、衝突感度Ｘが５０％以上に設定されていれば『衝突』と検出される。
【００２８】
図４は、衝突感度Ｘと衝突検出トルクＴＣの関係を示す一例である。なお、衝突検出閾値Ｖｔの設定が異なれば、衝突検出トルクＴＣと衝突感度Ｘの関係は図４とは異なる。衝突感度を高く設定すれば、衝突が検出される頻度が上がり、衝突感度を低く設定すれば、衝突が検出される頻度が下がる。
【００２９】
例えば、衝突感度を高く設定すれば、小さな衝撃であっても、『衝突』とみなされる。逆に衝突感度を低く設定すれば、小さな衝撃があっただけでは『衝突』とはみなされない。
【００３０】
またモータ２４の通電開始時に衝突トルクを検出した場合には、設定されている衝突感度Ｘによって衝突検出閾値Ｖｔの大きさが決まる。よって、設定されている衝突感度Ｘは負荷情報の正確性を表しているといえる。なお、衝突感度Ｘは、スペック情報入力部３００に予めユーザーが任意に設定できる。
【００３１】
[選択部３２の動作説明]
次に、図１、図２を用いて、選択部３２の動作について、具体的に説明する。選択部３２はブレーキ信号ＢＳＩＧがオンからオフに変化した時（Ｓ１）、記憶部２７には、積分成分演算部３０から積分値ＶＩが入力され、演算部３１から重力トルクＴＧが入力される（Ｓ２）。次に、記憶部２７から選択部３２に、積分値ＶＩおよび重力トルクＴＧが入力される（Ｓ３）。選択部３２では入力された積分値ＶＩと重力トルクＴＧを比較する（Ｓ４）。積分値ＶＩと重力トルクＴＧの差が一定の値より大きければ（Ｓ４がＹＥＳ）、モータ９０４が急停止した、または、衝突によって停止した、と考えられる。この時、無負荷重力トルクＴａをＰＩ制御器２２の積分成分演算部３０へと出力する（Ｓ５）。
【００３２】
次に、積分値ＶＩと重力トルクＴＧの差が一定値以下であれば（Ｓ４がＮＯ）、スペック情報入力部３００から出力される衝突感度Ｘに応じた重力トルクを、選択部３２は積分成分演算部３０に出力する（Ｓ６〜Ｓ８）。
【００３３】
次に、Ｓ６〜Ｓ８について、図２および図５を用いて説明する。衝突感度Ｘが２０％未満のときには、無負荷重力トルクＴａを選択部３２よりＰＩ制御器２２の積分成分演算部３０に出力する（Ｓ６）。衝突感度Ｘが８０％より大きい時には、有負荷重力トルクＴｂを選択部３２よりＰＩ制御器２２の積分成分演算部３０に出力する（Ｓ７）。衝突感度Ｘが２０％以上かつ８０％以下である時には、図５に示すように、衝突感度Ｘが８０％時に有負荷重力トルクＴｂとし、衝突感度Ｘが２０％時に無負荷重力トルクＴａとする。そして、衝突感度Ｘが２０％以上かつ８０％以下である時は、Ａ点およびＢ点を通る直線上に沿って、設定した感度に応じた重力トルクを選択部３２よりＰＩ制御器２２の積分成分演算部３０へと出力する（Ｓ８）。
【００３４】
なお、ユーザーは、衝突感度Ｘを予めスペック情報入力部３００に任意に設定しておく。また、ユーザーは、負荷情報をスペック情報Ｄ２としてスペック情報入力部３００で設定しておく。そして上述した通り、衝突検出部２００の衝突検出結果Ｒに応じて、ユーザーはスペック情報Ｄ２を再設定することができる。
【００３５】
以上の通り、ＰＩ制御器２２は、衝突感度Ｘに応じて選択部３２から積分成分演算部３０に入力される値を保持トルクとして利用する。よって、モータ２４が急停止や衝突によって停止した場合であっても、再度、ブレーキ信号ＢＳＩＧがオフからオンに変化する時（モータの通電開始時）の重力軸の跳ね上がりおよび落下を防止することができる。
【００３６】
（まとめ）
本開示のモータ制御装置２１は、ＰＩ制御器２２と、スペック情報入力部３００と、演算部３１と、記憶部２７と、選択部３２と、を有する。
【００３７】
ＰＩ制御器２２はモータの速度を制御する。スペック情報入力部３００はツールの重量およびツールの重心位置の情報を含むスペック情報Ｄ２が入力される。演算部３１はスペック情報Ｄ２に基づいて重力トルクＴＧを算出する。記憶部２７は、演算部３１から出力される重力トルクＴＧ、および、ＰＩ制御器２２から出力される積分値ＶＩを記憶する。更に、記憶部２７はブレーキ信号ＢＳＩＧに応じて重力トルクＴＧ及び積分値ＶＩを出力する。選択部３２は記憶部２７から入力される積分値ＶＩをスペック情報入力部３００から入力される衝突感度Ｘに応じてＰＩ制御器２２に設定する。
【００３８】
また、本開示のモータ制御装置２１は、スペック情報Ｄ２が負荷情報を含み、スペック情報Ｄ２の負荷情報に基づいてツールが取り付けられていないと判断された場合、選択部３２は無負荷重力トルクを積分値ＶＩとしてＰＩ制御器２２に設定する。スペック情報Ｄ２の負荷情報に基づいてツールが取り付けられていると判断された場合、選択部３２は有負荷重力トルクを積分値ＶＩとしてＰＩ制御器２２に設定する。
【００３９】
なお、スペック情報Ｄ２はユーザーにより任意に設定できる。
【産業上の利用可能性】
【００４０】
本開示のモータ制御装置２１は、モータが急停止や衝突によって停止した場合であっても、モータの通電開始時に重力軸の跳ね上がりや落下を防止でき、産業上有用である。
【符号の説明】
【００４１】
２１  モータ制御装置
２２  ＰＩ制御器
２３  電流制御部
２４  モータ
２５  エンコーダ
２６  変換部
２７  記憶部
２８  ブレーキ装置
２９  比例成分演算部
３０  積分成分演算部
３１  演算部
３２  選択部
１００  ロボット
２００  衝突検出部
３００  スペック情報入力部
９００  モータ制御装置
９０１  ＰＩ制御器
９０２  電流制御部
９０３  インバータ回路
９０４  モータ
９０５  エンコーダ
９０６  変換部
９０７  記憶部
９０８  ブレーキ装置
９１１  比例成分演算部
９１２  積分成分演算部
ｄＶ  誤差速度
ＢＳＩＧ  ブレーキ信号
Ｄ１  位置情報
Ｄ２  スペック情報
ＤＣＯＭ  駆動指令値
Ｔａ  無負荷重力トルク
Ｔｂ  有負荷重力トルク
ＴＣ  衝突検出トルク
ＴＤ  動力学トルク
ＴＧ  重力トルク
ＴＦＢ  モータ発生トルク
ＴＣＯＭ  トルク指令値
Ｒ  衝突検出結果
ＶＣＯＭ  速度指令
ＶＦＢ  フィードバック速度
ＩＦＢ  フィードバック電流
Ｘ  衝突感度
Ｖｔ  衝突検出閾値
ＶＩ  積分値
【図１】
0006731583.tif 000002
【図２】
0006731583.tif 000003
【図３】
0006731583.tif 000004
【図４】
0006731583.tif 000005
【図５】
0006731583.tif 000006
【図６】
0006731583.tif 000007
【図７】
0006731583.tif 000008