(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024017883
(43)【公開日】2024-02-08
(54)【発明の名称】動力学トルク補償に基づく制御方法及び制御装置
(51)【国際特許分類】
G05B 11/32 20060101AFI20240201BHJP
G05B 11/36 20060101ALI20240201BHJP
B25J 9/16 20060101ALI20240201BHJP
【FI】
G05B11/32 F
G05B11/36 F
G05B11/36 D
G05B11/36 507H
B25J9/16
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022120828
(22)【出願日】2022-07-28
(71)【出願人】
【識別番号】000002233
【氏名又は名称】ニデックインスツルメンツ株式会社
(74)【代理人】
【識別番号】100123788
【弁理士】
【氏名又は名称】宮崎 昭夫
(74)【代理人】
【識別番号】100127454
【弁理士】
【氏名又は名称】緒方 雅昭
(72)【発明者】
【氏名】桃澤 義秋
(72)【発明者】
【氏名】花岡 正志
【テーマコード(参考)】
3C707
5H004
【Fターム(参考)】
3C707KS21
3C707KS24
3C707KS35
3C707LW01
5H004GA13
5H004GA21
5H004GB16
5H004HA07
5H004HA09
5H004HA10
5H004HB07
5H004HB09
5H004HB10
5H004JA21
5H004KB02
5H004KB04
5H004KB06
5H004KB32
5H004KB33
5H004KC55
5H004KC56
(57)【要約】
【課題】動力学トルクフィードフォワード補償を行うときに、負荷外乱トルク補償値を算出する逆動力学計算を行う前に実行される軸ごとの負荷状態量の算出の演算負荷を低減する。
【解決手段】プラントが複数の軸を有するときに、軸ごとに、ノミナルな2慣性系を対象としたときのその軸の位置指令値から負荷側位置までの伝達関数を分母が4次、分子が0次である希望伝達関数で表現し、この希望伝達関数を使用してその軸の負荷状態量を予測する。プラントの複数の軸のそれぞれの予測された負荷状態量に基づいてプラントに関する逆動力学演算を実施し、各軸の負荷外乱トルク補償値を算出する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
複数の軸を有するプラントにおいて軸ごとの位置指令値に基づいて各軸のモータを制御する制御方法であって、
軸ごとの負荷外乱トルク補償値を算出するステップと、
軸ごとに、当該軸の前記負荷外乱トルク補償値を、前記プラントにおける負荷側外乱入力から負荷側速度までの応答を相殺するためのフィードフォワード補償値に変換するステップと、
軸ごとに、当該軸の前記フィードフォワード補償値を、制御系において前記位置指令値の入力位置から前記モータへの電流指令値を出力する位置までの区間にある加え合わせ点に入力するステップと、
を有し、
前記軸ごとの負荷外乱トルク補償値が、ノミナルな2慣性系を対象としたときの当該軸の前記位置指令値から負荷側位置までの伝達関数を分母が4次、分子が0次である希望伝達関数で表現し、前記希望伝達関数を使用して当該軸の負荷状態量を予測し、前記複数の軸について予測された前記負荷状態量に基づいて前記プラントに関する逆動力学演算を実施することによって算出される、制御方法。
【請求項2】
軸ごとに、前記位置指令値に対する前置補償を実行し、
前記前置補償の伝達関数は、前記希望伝達関数を、前記前置補償を行わないとしたときの当該軸の位置指令値から負荷側位置までの伝達関数によって除したものである、請求項1に記載の制御方法。
【請求項3】
軸ごとに、前記モータの位置偏差の算出の前に前記前置補償を実行する、請求項2に記載の制御方法。
【請求項4】
前記加え合わせ点は制御偏差の積分補償器より前段にある、請求項1乃至3のいずれか1項に記載の制御方法。
【請求項5】
前記位置指令値と前記モータの位置との差である位置偏差を算出し、前記位置偏差に基づく速度指令値と前記モータの速度との差である速度偏差を算出し、少なくとも前記速度偏差を用いて前記電流指令値を生成し、
前記フィードフォワード補償値は、前記速度指令値に対して補償を行う速度指令補償値である、請求項4に記載の制御方法。
【請求項6】
複数の軸を備えるプラントにおいて軸ごとの位置指令値に基づいて電流指令値を生成し、各軸のモータを制御する制御装置であって、
軸ごとの負荷外乱トルク補償値を算出する負荷外乱トルク補償値算出手段と、
軸ごとに設けられ、当該軸の前記負荷外乱トルク補償値を、前記プラントにおける負荷側外乱入力から負荷側速度までの応答を相殺するためのフィードフォワード補償値に変換する指令変換手段と、
を有し、
前記負荷外乱トルク補償値算出手段は、
軸ごとに設けられ、ノミナルな2慣性系を対象としたときの当該軸の前記位置指令値から負荷側位置までの伝達関数を分母が4次、分子が0次である希望伝達関数で表現して前記希望伝達関数を使用して当該軸の負荷状態量を予測する負荷状態算出手段と、
前記複数の軸について予測された前記負荷状態量に基づいて前記プラントに関する逆動力学演算を実施して各軸の前記負荷外乱トルク補償値を算出する逆動力学計算手段と、
を有し、
前記フィードフォワード補償値が、前記制御装置の入力から前記電流指令値を出力する位置までの区間にある加え合わせ点に入力される、制御装置。
【請求項7】
前記制御装置は、前記複数の軸に共通に設けられる全軸指令算出基板と、軸ごとに設けられるモータ駆動制御基板とを有し、
前記負荷外乱トルク補償値算出手段は前記全軸指令算出基板に設けられ、
前記指令変換手段は、対応する軸のモータ駆動制御基板に設けられている、請求項6に記載の制御装置。
【請求項8】
前記モータ駆動制御基板に設けられ、対応する軸の前記位置指令値に対する前置補償を実行する前置補償器をさらに備え、
前記前置補償の伝達関数は、前記希望伝達関数を、前記前置補償器が設けられないとしたときの当該軸の位置指令値から負荷側位置までの伝達関数によって除したものである、請求項7に記載の制御装置。
【請求項9】
前記位置指令値と前記モータの位置との差である位置偏差を算出する位置制御器を備え、
前記前置補償器は、前記位置制御器よりも前記位置指令値の入力位置の側に設けられている、請求項8に記載の制御装置。
【請求項10】
前記位置制御器の出力に基づく速度指令値と前記モータの速度との差である速度偏差を算出し、少なくとも前記速度偏差を用いて前記電流指令値を生成する速度制御器と、
制御偏差に対する積分動作を行う積分補償器と、
を有し、
前記フィードフォワード補償値は、前記速度指令値に対して補償を行う速度指令補償値であって、前記積分補償器の前段にある前記加え合わせ点に入力する、請求項9に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、産業用ロボット(以下、「ロボット」とも称する)などの動作制御などに用いられる、動力学トルク補償に基づく制御方法及び制御装置に関する。
【0002】
一般にロボットは複数の関節軸(以下、単に「軸」とも称する)を有し、各軸のリンクが直列に接続されてマニピュレータを構成している。関節軸に減速機を有するロボットを高速で動かした場合には、関節軸ねじれによりマニピュレータの先端が振動しやすく、軸間干渉力と関節軸ねじれとによってマニピュレータ先端の軌跡に誤差が生じる。マニピュレータ先端の軌跡誤差を低減するために、お互いの動きによらずに各関節軸モータの位置指令に対する各関節軸角度(すなわち負荷の位置)の応答性を同じにすることが必要である。特許文献1は、動力学トルクフィードフォーワード補償により、各軸の駆動トルクを自軸分のノミナルトルクに近付け、全ての軸について位置制御応答性を同じにすることを開示している。特許文献1に記載された制御装置では、モータの位置指令値から関節軸ねじれよりも負荷側の速度(関節角速度)までの伝達関数に基づいて、モータの位置指令値を入力として関節軸ねじれよりも負荷側の状態量(関節の角度、角速度及び角加速度)を算出する負荷状態算出部と、算出された状態量を入力として負荷側の外乱トルク補償値を算出する逆動力学計算部と、外乱トルク補償値を、負荷側の外乱トルクから負荷側速度までの応答を相殺するための電流指令補償値に変換する電流指令変換部と、が設けられ、制御装置における電流指令値に電流指令補償値が加算されている。ここでトルク補償値は、他軸からの干渉力と、姿勢変化に伴う自軸の慣性モーメントのノミナルトルクからの変化分であるトルク変動量との和で表される負荷外乱トルク補償値である。
【0003】
特許文献1などに示される、動力学トルクフィードフォワード補償を用いて電流指令値補償値を算出し、算出された電流指令値補償値を電流指令値に加算する制御方法では、ロボットが位置決めを繰り返したときなどに、演算精度が低下することにより位置制御性能が失われるおそれがある。動力学トルクフィードフォワード補償におけるこのような課題を解決するために、特許文献2は、負荷外乱トルク補償値を、プラントにおける負荷側外乱から負荷側速度までの応答を相殺するためのフィードフォワード補償値(例えば速度指令補償値)に変換し、そのフィードフォワード補償値を、制御系において外部からの指令の入力位置からモータへの電流指令値を生成するまでの区間であって制御偏差の積分補償器よりも前段にある加え合わせ点に入力することを開示している。
【0004】
ところで、ロボットなどのプラントに対する動作制御を行なうときに用いられる制御装置(コントローラ)は、プラントにおいて複数の軸が設けられているとして、上位装置からの動作指令に基づいて各軸のモータに対する位置指令値を生成し、軸ごとの位置指令値に基づいて当該軸のモータに対するサーボ制御を行なう。モータのサーボ制御を行なう部分には、モータを駆動するインバータ回路などの電力系の回路も含まれる。そこで制御装置の内部では、モータの軸ごとにそのモータのサーボ制御などに必要な回路を集積したモータ駆動制御基板と、上位装置からの動作指令などに基づいて軸ごとの位置指令値などを生成するために用いられる回路などを集積した全軸指令算出基板とを別個に配置し、モータ駆動制御基板と全軸指令算出基板の各々にマイクロプロセッサなどを設けて制御に必要な演算を行わせることが一般的である。特許文献3は、複数のリンクをベース側から順次接続させた型の機構を有するロボットを制御するコントローラにおいて、軸ごとに設けられるプロセッサにおいて軸ごとの干渉トルクを演算するときの演算負荷を平準化するために、ロボットのベース側に相対的に近いリンクを駆動する軸のうちの少なくとも1つの軸に関し、その軸に対する干渉トルク計算処理をその軸で駆動されるリンクよりもベース側から相対的に遠いリンクを駆動する軸に対応して設けられたプロセッサにおいて実行することを開示している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第4008207号公報
【特許文献2】特開2022-26069号公報
【特許文献3】特開平8-106312号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1,2に記載された技術は、いずれも、位置指令値から負荷側速度までの伝達関数に基づいて、位置指令値を入力として負荷状態量を算出する負荷状態算出部と、算出された負荷状態量を入力として負荷側のトルク補償値(負荷外乱トルク補償値)を軸ごとに算出する逆動力学計算部と、負荷側の外乱トルクから負荷側速度までの応答を相殺するために、逆動力学計算部で得られた負荷外乱トルク補償値を何らかのフィードフォワード補償値に変換する指令変換部を備え、得られたフィードフォワード補償値を対応する軸の対応する指令値に加算するものである。指令変換部での演算では他軸のフィードフォワード補償値を使用しないため、指令変換部を軸ごとのモータ駆動制御基板に設けることができる。これに対して逆動力学演算は全ての軸における指令値を必要とするため、逆動力学演算部は全軸指令算出基板に設けられる必要がある。負荷状態算出部は軸ごとに負荷状態量を算出するが、逆動力学演算部よりも前段に設けられる必要があるので、これも全軸指令算出基板に設けられる必要がある。なお、特許文献1,2に記載された技術では、位置指令値から負荷側速度までの伝達関数の代わりに位置指令値から負荷側位置までの伝達関数を用いてもよい。
【0007】
プラントの各軸は減速機を介してモータが負荷を駆動する構成であることが一般的であるので、一例として負荷状態算出部は、ノミナルな2慣性共振系を制御対象としたときの、各軸の位置制御系における位置指令値から負荷側位置までの伝達関数Wr(s)として設計される。積分補償器を1つ含む制御ループを2慣性共振系に組み込んで構成された位置速度制御系においては、状態オブザーバの状態推定精度が十分であって誤差を無視すると、伝達関数Wr(s)の分母の次数は最小で5次であり、分子の次数は最大で5次である。全軸指令算出基板ではこのような伝達関数Wr(s)の計算を関節軸の数だけ行う必要があるので、全軸指令算出基板における演算負荷が大きくなる。制御装置において全軸指令算出基板とモータ駆動制御基板とが構造的に別個のものとなっていないとしても、計算負荷の分散のために、全軸を対象とした制御の計算を行うプロセッサと軸ごとにモータのサーボ制御のための計算を行うプロセッサとが分離されていることが一般的であり、伝達関数Wr(s)の計算のために前者のプロセッサの演算負荷が大きくなることは同様である。
【0008】
本発明の目的は、動力学トルクフィードフォワード補償を行う制御方法及び制御装置であって、トルク補償値を算出する逆動力学計算を行う前に実行される軸ごとの負荷状態量の算出の演算負荷を低減できる制御方法及び制御装置を提供することにある。
【課題を解決するための手段】
【0009】
本発明の一態様によれば、複数の軸を有するプラントにおいて軸ごとの位置指令値に基づいて各軸のモータを制御する制御方法は、軸ごとの負荷外乱トルク補償値を算出するステップと、軸ごとその軸の負荷外乱トルク補償値を、プラントにおける負荷側外乱入力から負荷側速度までの応答を相殺するためのフィードフォワード補償値に変換するステップと、軸ごとに、その軸の前記フィードフォワード補償値を、制御系において位置指令値の入力位置からモータへの電流指令値を出力する位置までの区間にある加え合わせ点に入力するステップと、を有する。この制御方法では、軸ごとの負荷外乱トルク補償値は、ノミナルな2慣性系を対象としたときのその軸の前記位置指令値から負荷側位置までの伝達関数を分母が4次、分子が0次である希望伝達関数で表現し、希望伝達関数を使用してその軸の負荷状態量を予測し、複数の軸について予測された負荷状態量に基づいてプラントに関する逆動力学演算を実施することによって算出される。
【0010】
上記態様の制御方法では、動力学トルクフィードフォワード補償を行うときに必要となる負荷外乱トルク補償値の算出において、分母が4次、分子が0次である希望伝達関数を使用して負荷状態量を予測することにより、逆動力学計算を行う前に実行される軸ごとの負荷状態量の算出の演算負荷を低減できる。
【0011】
一態様の制御方法では、軸ごとに、位置指令値に対する前置補償を実行することが好ましい。前置補償で用いる伝達関数は、前置補償を行わないとしたときの位置指令値から負荷側位置までの伝達関数によって希望伝達関数を除したものとすることが好ましい。このような前置補償を行うことによって、位置指令値から負荷側位置までの実際の伝達関数と希望伝達関数との差異を吸収できる。前置補償を実行するときは、軸ごとに、モータの位置偏差の算出の前に前置補償を実行することが好ましい。位置偏差の算出の前に位置フィードフォワード補償として前置補償を行うことにより、制御の精度を高めつつ演算負荷の増加を抑えることができる。
【0012】
一態様の制御方法では、加え合わせ点は制御偏差の積分補償器より前段にあることが好ましい。このように構成することにより、フィードフォワード補償値に誤差が含まれることや、積分補償器の積分値が増大することが防がれ、負荷側外乱トルクの補償を行うときに、演算精度と位置制御性能とを維持できる。この場合、位置指令値とモータの位置との差である位置偏差を算出し、位置偏差に基づく速度指令値とモータの速度との差である速度偏差を算出し、少なくとも速度偏差を用いて電流指令値を生成することでき、このように電流指令値を生成するときは、速度指令値に対して補償を行う速度指令補償値をフィードフォワード補償値とすることができる。速度指令補償値をフィードフォワード補償値とすることにより、負荷側外乱トルクの補償のために位置指令値に対応するフィードフォワード補償値を求める場合に比べて計算に用いる伝達関数の次数を下げることができるので、演算負荷を低減できる。
【0013】
本発明の別の態様によれば、複数の軸を備えるプラントにおいて軸ごとの位置指令値に基づいて電流指令値を生成し、各軸のモータを制御する制御装置は、軸ごとの負荷外乱トルク補償値を算出する負荷外乱トルク補償値算出手段と、軸ごとに設けられ、その軸の負荷外乱トルク補償値を、プラントにおける負荷側外乱入力から負荷側速度までの応答を相殺するためのフィードフォワード補償値に変換する指令変換手段と、を有する。ここで負荷外乱トルク補償値算出手段は、軸ごとに設けられた、ノミナルな2慣性系を対象としたときのその軸の位置指令値から負荷側位置までの伝達関数を分母が4次、分子が0次である希望伝達関数で表現して希望伝達関数を使用してその軸の負荷状態量を予測する負荷状態算出手段と、複数の軸について予測された負荷状態量に基づいてプラントに関する逆動力学演算を実施して各軸の負荷外乱トルク補償値を算出する逆動力学計算手段と、を有し、フィードフォワード補償値は、制御装置の入力から電流指令値を出力する位置までの区間にある加え合わせ点に入力される。
【0014】
上記態様の制御装置では、動力学トルクフィードフォワード補償を行うときに必要となる負荷外乱トルク補償値を算出する負荷外乱トルク補償値算出手段において、分母が4次、分子が0次である希望伝達関数を使用して負荷状態量を予測することにより、逆動力学計算を行う前に実行される軸ごとの負荷状態量の算出の演算負荷を低減できる。
【0015】
一態様の制御装置では、制御装置が複数の軸に共通に設けられる全軸指令算出基板と、軸ごとに設けられるモータ駆動制御基板とを有するときに、負荷外乱トルク補償値算出手段を全軸指令算出基板に設け、指令変換手段を対応する軸のモータ駆動制御基板に設けることができる。このように構成することにより、一般に各モータ駆動制御基板に比べて演算負荷が大きい全軸指令算出基板において、負荷状態量の算出に要する演算負荷を低減することができる。
【0016】
一態様の制御装置では、対応する軸の位置指令値に対する前置補償を実行する前置補償器をモータ駆動制御基板に設けることが好ましく、その場合、前置補償器が設けられないとしたときの位置指令値から負荷側位置までの伝達関数によって希望伝達関数を除したものを前置補償の伝達関数とすることが好ましい。このように前置補償器を設けることにより、位置指令値から負荷側位置までの実際の伝達関数と希望伝達関数との差異を吸収できる。制御装置が位置指令値とモータの位置との差である位置偏差を算出する位置制御器を備えるときは、前置補償器は、位置制御器よりも位置指令値の入力位置の側に設けられることが好ましい。位置制御器の前段に前置補償器を設けることにより、制御の精度を高めつつ演算負荷の増加を抑えることができる。
【0017】
一態様の制御装置は、位置制御器の出力に基づく速度指令値とモータの速度との差である速度偏差を算出し、少なくとも速度偏差を用いて電流指令値を生成する速度制御器と、制御偏差に対する積分動作を行う積分補償器と、を備えていてもよく、その場合、フィードフォワード補償値は、速度指令値に対して補償を行う速度指令補償値であって、積分補償器の前段にある加え合わせ点に入力されることが好ましい。速度指令補償値をフィードフォワード補償値とすることにより、負荷側外乱トルクの補償のために位置指令値に対応するフィードフォワード補償値を求める場合に比べて計算に用いる伝達関数の次数を下げることができるので、演算負荷を低減できる。
【発明の効果】
【0018】
本発明によれば、動力学トルクフィードフォワード補償を行う際に分母が4次、分子が0次である希望伝達関数を用いて各軸の負荷状態量を予測するので、トルク補償値を算出する逆動力学計算を行う前に行う負荷状態量算出の演算負荷を低減することができる。
【図面の簡単な説明】
【0019】
【
図1】ロボットシステムのハードウェア構成を示す図である。
【
図2】プラントであるロボットを示すブロック線図である。
【
図3】従来の制御装置の構成の一例を示すブロック線図である。
【
図4】本発明の第1の実施形態の制御装置の構成を示すブロック線図である。
【
図5】本発明の原理を説明するブロック線図である。
【
図7】従来の制御装置の構成の別の例を示すブロック線図である。
【
図8】第2の実施形態の制御装置での1軸分の制御系を示すブロック線図である。
【発明を実施するための形態】
【0020】
次に、本発明の好ましい実施の形態について、図面を参照して説明する。以下では、制御対象であるプラントが多軸のロボットであり、このロボットを制御する制御装置(ロボットコントローラ)において動力学フィードフォワード補償を実行する場合を例に挙げて、本発明を実施するための各形態を説明する。まず、制御装置と制御対象であるロボットからなるロボットシステムについて説明する。
図1はロボットシステムのハードウェア構成の一例を示している。
【0021】
ロボット10は、3リンク構成のものであり、ベース(不図示)に対して関節1を介して第1リンクの一端が接続し、第1リンクの他端に対して関節2を介して第2リンクの一端が接続し、第2リンクの他端に対して関節3を介して手先の一端が接続しているものである。ロボット10において第1リンク、第2リンク及び手先からなる部分をマニピュレータ11と総称する。関節1~3の各々は、モータ12から減速機13を介して駆動される。各軸のモータ12には、そのモータ12の現在位置を検出するエンコーダ14が取り付けられている。軸ごとに、モータ12が出力するトルクが減速機13を介してその軸の関節に伝達される。以下の説明において、関節1に係る軸を第1軸、関節2に係る軸を第2軸のように呼ぶこととする。
【0022】
一方、制御装置15は、マニピュレータ11の手先位置などを指令する動作指令が上位装置から入力されて各軸のモータ12に対する位置指令値と各軸の負荷外乱トルク値とを算出する回路が設けられた全軸指令算出基板16と、ロボット10の軸ごとに対応して設けられたモータ駆動制御基板17とを備えている。各軸のモータ駆動制御基板17には、その軸のモータ12に接続するエンコーダ14からモータ位置検出値がフィードバックされている。各軸のモータ駆動制御基板17は、全軸指令算出基板16から受け取った位置指令値とフィードバックされたモータ位置検出値とに基づいてその軸のモータ12のサーボ制御を行なうものであるが、サーボ制御の演算を行うときに、全軸指令算出基板16から受け取った負荷外乱トルク補償値に基づいて、その軸についての負荷外乱トルクの補償も行う。さらに各軸のモータ駆動制御基板17には、サーボ制御のための演算結果に基づいてその軸のモータ12に対する駆動電流を生成するインバータ回路なども設けられている。
【0023】
図2は、プラントであるロボット10の力学系の構成を示すブロック線図である。
図2においてロボット10は、第1軸、第2軸などの軸ごとにモータ12と負荷28とから2慣性系として表されている。モータ12を駆動する電流の代わりに電流指令値がモータ12に入力されるものとしている。図では、伝達関数を構成する要素を表現するときに第i軸(i=1,2,…)の要素に対して添え字iを用いることによって、どの軸に対する要素であるかを明示しているが、ブロック線図上では各軸についての構成は同一であるので、以下では、添え字iを用いることなくすなわち軸の違いを明示せずに説明を行う。各軸において、減速比がR
gである減速機13が設けられており、減速機13のばね定数はK
sである。図においてJ
mとD
mは、それぞれ、モータ12の慣性モーメント及び粘性摩擦抵抗であり、J
LとD
Lは、それぞれ、負荷28の慣性モーメント及び粘性摩擦抵抗である。負荷28に対しては、負荷側外乱トルクも加わるものとする。負荷側外乱トルクには、他軸からの干渉と、姿勢変化に伴う自軸の慣性モーメントのノミナルトルクからの変化による寄与とが含まれる。
【0024】
図2に示すブロック線図によって説明すれば、制御装置15から出力された電流は、トルク定数K
tのゲイン要素21によりトルクに変換され、トルクは、減速機13に対応する減速要素32からの出力を減算要素22によって減じられてモータ12に加えられる。図においてモータ12の出力はモータ速度であり、それが積分要素24を介することによってモータ位置(すなわちモータ12の回転角度)に変換される。モータ12の出力は、減速機に対応する減速要素25と、減算要素26と、積分要素30と、ばね定数K
sに対応するゲイン要素31とを介し、加算要素27によって負荷側外乱トルクを加算されて負荷28に加わる。負荷28の出力である負荷側速度は、積分要素29を介することにより負荷側位置となる。ゲイン要素31の出力は、減速要素32にも入力される。減算要素26は、減速要素25の出力から負荷側速度を減算する。
【0025】
負荷28において、粘性摩擦抵抗DLに対応するゲイン要素36に対して負荷側速度が入力し、減算要素37によって負荷28への入力からゲイン要素36の出力を減算したものが、負荷側位置θLによって変化する慣性モーメントJLに対応するゲイン要素38に入力する。慣性モーメントJLに対応するゲイン要素38の出力が、関節角加速度である。この関節角加速度を積分要素39によって積分したものが、負荷28の出力である負荷側速度となる。負荷28における関節角加速度は、他軸への干渉トルクの原因となる。N個の軸を有するロボットにおいて、各軸の関節角加速度とこれらの関節角加速度から発生して各軸に作用する干渉トルクとの関係はN×N行列を含む式で表すことができるので、この式を図において逆動力学35として示している。逆動力学35は、各軸の関節角加速度が入力されて軸ごとにその軸に作用する干渉トルクを発生する。軸ごとの干渉トルクは負荷側外乱トルクとしてその軸の加算要素27に入力される。
【0026】
[第1の実施形態]
本発明の第1の実施形態の制御装置を説明する。まず、第1の実施形態の制御装置を説明する前に、従来の制御装置の構成について説明する。
図3は、特許文献2に記載される制御装置を用いて
図2に示すロボット10に対する動力学トルクフィードフォワード補償を行うときの構成を示している。特許文献2に記載される制御装置では、負荷外乱トルク補償値を、プラントにおける負荷側外乱から負荷側速度までの応答を相殺するためのフィードフォワード補償値に変換し、そのフィードフォワード補償値を、制御系において外部からの指令の入力位置からモータへの電流指令値を出力するまでの区間であって制御偏差の積分補償器よりも前段にある加え合わせ点に入力するが、ここでは、変換されるフィードフォワード補償値が速度指令を補償する速度指令補償値であるものとする。
【0027】
上述したように制御装置15は、ロボット10の複数の軸に共通に設けられる全軸指令算出基板16と、ロボット10の軸ごとに用意されるモータ駆動制御基板17とを備えている。全軸指令算出基板16は、上位装置から入力される動作指令に基づいて、軸ごとの位置指令値などを算出する回路を備えている。
図3に示す制御装置15では、全軸指令算出基板15は、ロボット10の軸ごとに設けられてその軸の負荷状態量を予測する負荷状態算出部41と、全ての負荷状態算出部41から負荷状態量の予測値(すなわち負荷状態予測値)が入力されてそれぞれの軸の負荷外乱トルク補償値を算出する逆動力学計算部42とをさらに備えている。逆動力学計算部42が出力する負荷外乱トルク補償値は、ロボット10の軸ごとに加わる負荷側外乱トルクに対応するものである。他軸からの干渉トルクがないと仮定して、前置補償器が設けられないときに軸ごとにその軸の位置指令値からロボット10におけるその軸の負荷側位置までの伝達関数をG(s)とすれば、軸ごとに設けられる負荷状態算出部41が負荷状態量を予測するときの伝達関数W
r(s)はG(s)と等しく設計される。具体的には負荷状態算出部41は、ロボット10において各軸の位置閉ループにおいて動力学補償がなされており、他軸からの干渉が完全に打ち消されているものとして、位置指令値を入力として、位置指令値から負荷側位置までの系の伝達関数W
r(s)に基づき、負荷28の状態、すなわち負荷の位置、速度及び加速度を算出する。逆動力学計算部42は、実際に動力学トルクフィードフォワード補償のための演算を行う部分であり、他軸からの干渉力と、姿勢変化に伴う自軸の慣性モーメントのノミナルトルクからの変化分であるトルク変動量とを計算し、他軸からの干渉力とトルク変動量の和として、負荷外乱トルク補償値を算出する。逆動力学計算部42で行う演算については、例えば特許文献1に記載されている。
【0028】
一方、軸ごとに設けられるモータ駆動制御基板17には、その軸の位置指令値が入力されるとともにモータ位置がフィードバックされる位置制御器51と、その軸に対する速度指令値が入力されるとともにモータ速度がフィードバックされて電流指令値を生成する速度制御器52と、速度指令補償値を出力する速度指令変換部53と、位置制御器の出力と速度指令補償値とを加算して速度指令値として速度制御器52に供給する加算要素54とを備えている。速度指令変換部53は、負荷側外乱トルクの入力から速度指令までの伝達関数V
tm(s)に基づいて、全軸指令算出基板16において算出されたその軸の負荷外乱トルク補償値を、負荷側外乱トルクによる負荷側速度の変化分を打ち消すために速度指令値に加えるべき速度指令補償値に変換する。伝達関数伝達関数V
tm(s)の詳細は、特許文献2に記載されている。
図3に示す制御系では、負荷状態算出部41、逆動力学計算部42及び速度指令変換部53によって動力学トルク補償値が算出される。なお、
図3及び
図4では、説明の都合上、速度制御器52の出力に基づいてモータ12への電流を発生する部分の詳細は描かれていない。
【0029】
ここで
図3に示した制御系における負荷状態算出部41の伝達関数W
r(s)について検討する。W
r(s)は、ノミナルな2慣性系を制御対象としたときに位置指令値θ
ref(s)から負荷側位置θ
L(s)までの伝達関数である。後述するように速度制御器52において状態オブザーバ77(
図6~
図8参照)を設ける場合には、状態オブザーバ77は、モータ速度を入力として、モータ速度と負荷速度と積分要素30とから出力される各ねじれ角の推定値を出力する。モータ速度は、通常、モータ角度の検出値の疑似微分によって算出される。負荷速度やねじれ角度を検出するセンサが設けられていて負荷速度やねじれ角度を直接検出できる場合には、状態オブザーバ77を使用せずに、モータ速度と負荷速度とねじれ角度とをゲイン78(
図6~
図8参照)に直接入力して、減算要素79(
図6~
図8参照)へ状態を直接フィードバックすることができる。このように状態の直接フィードバックを行う場合、W
r(s)の分母の次数は、プラントであるロボット10での電流指令値から負荷側位置までの積分要素(
図2における積分要素29,30,39とモータ12の伝達関数に含まれる積分要素)の数の4に、速度制御器52において比例積分制御を行なうための積分要素(例えば、
図6における積分要素74)の数である1を足した5次となる。このときの分母の次数の5次は、W
r(s)の分子の最大次数である。速度制御器52において状態オブザーバ77を用いてプラントの状態を推定するときは、状態オブザーバが通常、3次であるので、その分、W
r(s)の分母と分子の次数が大きくなる。負荷状態算出部41は軸の数だけ全軸指令算出基板16に設けられるので、W
r(s)の分母や分子の次数が大きいことは、全軸指令算出基板16における演算負荷を大きくする。
【0030】
図4は、
図3に示す従来の制御装置に改良を加えた本発明の第1の実施形態の制御装置を示している。第1の実施形態の制御装置15は、
図3に示した従来の制御装置15と比べ、モータ駆動制御基板17において位置制御器51の入力側に位置フィードフォワード補償を行う位置FF補償部56が設けられ、また、伝達関数がW
r(s)で表される負荷状態算出部41の代わりに伝達関数がW
rh(s)で表される負荷状態算出部43が設けられている点で異なっている。各軸の位置指令値は、前置補償器である位置FF補償部56を介して位置制御器51に入力される。負荷状態算出部43における伝達関数W
rh(s)は、式(1)に示すように、分母が4次、分子が0次である。
W
rh(s)=b
0/(a
4s
4+a
3s
3+a
2s
2+a
1s+a
0) (1)
式(1)において、a
0,a
1,a
2,a
3,a
4及びb
0は定数である。伝達関数W
rh(s)のことを希望伝達関数とも呼ぶ。本実施形態では、実際のプラントの状態を反映する伝達関数W
r(s)を用いる代わりに、このW
r(s)よりも次数の小さい希望伝達関数W
rh(s)によりW
r(s)を近似することによって、負荷状態量の演算負荷を低減させる。
【0031】
位置指令値から負荷側位置までの伝達関数を式(1)で示すWrh(s)とするために、位置FF補償部56を設けないとしたときの位置指令値から負荷側位置までの伝達関数をG(s)として、前置補償器である位置FF補償部56での伝達関数FFp(s)は、式(2)に示すように定められる。
FFp(s)=Wrh(s)/G(s) (2)
【0032】
全軸指令算出基板16に設けられる負荷状態算出部43で用いる伝達関数Wrh(s)は分母が4次であって分子が0次(すなわち定数)であるので、第1の実施形態の制御装置によれば、全軸指令算出基板16での演算負荷を大幅に低減させることができる。位置指令FF補償部56を設けたことによりモータ駆動制御基板17での演算負荷は増大するが、全軸指令算出基板16での演算負荷の低減分よりも各モータ駆動制御基板17の増加分は小さい。
【0033】
図5は本発明の原理を説明する図であり、位置指令値θ
cmd(s)から負荷側位置θ
L(s)までの伝達関数G(s)と、位置指令値θ
cmd(s)から算出される負荷状態予測値θ
est(s)との関係を示している。G(s)に直接与えられることとなる位置指令値を制御指令値θ
cmd(s)としている。
図5(a)は、
図3に示した従来の制御装置では、分母が5次以上、分子が分母次数以下の伝達関数W
r(s)(=G(s))である負荷状態算出部41によって負荷状態予測値θ
est(s)が算出されることを示している。このような
図5(a)に示す系において、負荷状態算出部41の前段と伝達関数G(s)の前段にいずれも伝達関数がFF
p(s)で表される位置FF補償部46,56をそれぞれ配置した状態を示したものが
図5(b)である。伝達関数FF
p(s)の選択により、位置FF補償部56と伝達関数G
s(s)とからなるブロック48の全体としての伝達関数の分母を4次、分子を0次とすることができる。そこで
図5(b)に示す構成において位置FF補償部46と負荷状態算出部41とをまとめて改めて負荷状態算出部43とすれば、
図5(c)に示すように、負荷状態算出部43の伝達関数W
rh(s)は、分母が4次であり、分子は0次となる。その結果、全軸指令算出基板16に設けられる負荷状態算出部43の演算量を大幅に小さくすることができる。
【0034】
図6は、
図4に示す制御装置15を備えたロボットシステムでの1軸分の制御系の構成を示している。
図6では軸を特定しないので、伝達関数を構成する要素の表示に関し、どの軸であるかを示す添え字は用いられていない。また
図6では、速度指令に速度指令補償値を加算する加算要素54は速度制御器52の内部に設けられるものとしている。以下、
図6を使用して、モータ駆動制御基板17に設けられる位置制御器51や速度制御器52の構成の一例を説明する。
【0035】
全軸指令算出基板16において生成された位置指令値は、モータ駆動制御基板17に送られ、上述した位置FF補償部56に入力される。位置制御器51には、位置FF補償部56において位置フィードフォワード補償がなされた位置指令値が入力するともにモータ位置がフィードバックしている。位置制御器51は、位置FF補償部56から出力される位置指令値からモータ位置を減算して位置偏差を算出する減算要素61と、減算要素61が出力する位置偏差に比例ゲインKppを乗じて位置偏差に基づく指令とするゲイン要素62とを備えている。
【0036】
速度制御器52には、モータ速度が入力するとともに位置制御器51から位置偏差に基づく指令が入力し、速度指令変換部53から速度指令補償値が入力する。速度制御器52は、位置制御器51からの速度指令値と速度指令補償値とを加算する上述した加算要素54と、加算要素54の出力からモータ速度を減算して速度偏差を出力する減算要素72と、速度偏差に対して速度ゲインKvを乗ずるゲイン要素73と、速度偏差が入力する積分要素74と、積分要素74の出力に積分ゲインKiを乗ずるゲイン要素75と、ゲイン要素73の出力とゲイン要素75の出力を加算する加算要素76とを備えている。加算要素54は、速度指令補償値を入力するための加え合わせ点である。さらに速度制御器52は、モータ速度が入力する状態オブザーバ77と、状態オブザーバ77の出力に設けられたゲイン78と、加算要素76の出力からゲイン78の出力とを減じて電流指令値とする減算要素79と、を備えている。ゲイン要素73,75と積分要素74とが設けられ、これらをまとめた伝達関数が(Kvs+Ki)/sと表されることから、速度制御器52はPI(比例積分)制御を行っていることになる。積分要素74とゲイン要素75とは、制御偏差である速度偏差に対する積分補償器を構成している。また速度制御器52は、状態オブザーバ77に基づいた状態フィードバックによる制御も行っており、減算要素79は、PI制御による制御量から状態フィードバックによる値を減算して電流指令値としている。電流指令値は、インバータ回路などを含む電流制御部80により、モータ12を駆動する電流に変換されてモータ12に出力される。一般的な制御理論から明らかなように、積分補償がないと、外乱によって位置指令値にモータ位置を一致させることはできないから、PI制御として位置偏差の算出から電流指令値の出力までの区間内に積分要素74あるいは積分補償器を設けることが必要となる。
【0037】
以上説明した第1の実施形態の制御装置では、負荷外乱トルク補償値の算出するために軸ごとの負荷状態量を算出する負荷状態算出部43で用いる伝達関数を分母が4次、分子が0次であるWrh(s)とすることにより、全軸指令算出基板16における演算負荷を低減できる。また、この実施形態では、負荷外乱トルク補償値から変換されたフィードフォーワード補償値を、制御系において制御偏差の積分補償器よりも前段にある加え合わせ点で入力することにより、フィードフォワード補償値に誤差が含まれることや、積分補償器の積分値が増大することが防がれ、負荷側外乱トルクの補償を行うときに、演算精度と位置制御性能とを維持できる。
【0038】
[第2の実施形態]
次に本発明の第2の実施形態について説明する。第1の実施形態の制御装置15は、特許文献2に記載された制御装置に対して本発明を適用したものであるが、特許文献1に記載された制御装置に対しても本発明を適用できる。第2の実施形態の制御装置を説明する前に、特許文献1に記載された制御装置を含むロボットシステムの構成について、
図7を用いて説明する。
図7は、特許文献1に記載された制御装置を含むロボットシステムでの1軸分の制御系の構成を示している。
図7に示す制御装置15は、
図3に示した制御装置15と同様にものであるが、軸ごとの負荷外乱トルク補償値を電流指令値に加算される電流指令補償値に変換するようにした点で、
図3に示した制御装置15とは異なっている。そのため、速度指令変換部53と加算要素54とが設けられておらず、その代わりにモータ駆動制御基板17に電流指令変換部57と加算要素58が設けられている。加算要素58の出力は、モータ駆動制御基板17においてロボット10側に電流指令値を出力する端子に接続している。位置制御器51や速度制御器52の構成は、
図6に示したものと同様である。電流指令変換部57は、負荷側外乱トルクの入力から電流指令値の入力までの伝達関数T
m(s)に基づいて、負荷外乱トルク補償値を、負荷側外乱トルクを打ち消すために電流指令値に加えるべき電流指令補償値に変換する。伝達関数T
m(s)の詳細は、特許文献1,2に記載されている。加算要素58は、速度制御器52とプラントであるロボット10との間に設けられた加え合わせ点であって、速度制御器52が出力する電流指令値に対し、電流指令変換部57が出力する電流指令補償値を加算する。加算要素58が出力する電流指令値は、インバータ回路などを含む電流制御部80により、モータ12を駆動する電流に変換されてモータ12に出力される。
図7に示す制御装置15においても、
図3に示すものと同様に、全軸指令算出基板16おいてモータ12の軸ごとに対応して設けられる負荷状態計算部41の伝達関数W
r(s)は、分母が5次以上、分子の次数が分母の次数以下であり、全軸指令算出基板16における演算負荷が大きい。
【0039】
図8は、第2の実施形態の制御装置15を備えるロボットシステムでの1軸分の制御系の構成を示している。
図8に示す第2の実施形態での制御系は、
図7に示す制御系に対して位置FF補償部56を付加して位置指令値が位置FF補償部56を介して位置制御器51に入力されるようにし、さらに、負荷状態算出部41の代わりに伝達関数がW
rh(s)で表される負荷状態算出部43を設けたものである。第2の実施形態で用いられる負荷状態算出部43及び位置FF補償部56は、第1の実施形態で用いられるものと同様のものである。伝達関数W
rh(s)は式(1)に示すように分母が4次であり分子が0次であり、位置FF補償部56を示す伝達関数FF
p(s)は式(2)で表される。伝達関数W
rh(s)の分母と分子の次数が小さいので、第2の実施形態の制御装置15においても全軸指令算出基板16における演算負荷を低減できる。
【符号の説明】
【0040】
10…ロボット;11…マニピュレータ;12…モータ;13…減速機;14…エンコーダ;15…制御装置;16…全軸指令算出基板;17…モータ駆動制御基板;41,43…負荷状態算出部;42…逆動力学計算部;51…位置制御器;52…速度制御器;53…速度指令変換部;56…位置FF補償部;57…電流指令変換部;80…電流制御部。