図面 (/)
課題
解決手段
概要
背景
サーボモータによって負荷を制御する場合、制御部に実機モデルを有する制御を適用することによって振動や応答を改善する方法がよく用いられる。それらの制御手法の効果をあげるためには制御部のモデルの負荷イナーシャ値が実機と一致していることが望ましい。そのためには、実機の負荷イナーシャを正確に同定することが必要になる。ここで、もし、実機負荷イナーシャとモデル負荷イナーシャが大きな誤差を含む場合、その制御性能が劣化するだけでなく、逆に悪影響をおよぼしたり、制御系が不安定になり、発振する可能性がある。
このような問題に対し、従来では、モデル部の負荷イナーシャには設計計算値を使用するか、実機を実際に数回動作させることによって各種データをとり、そのデータから負荷イナーシャの真値を計算するという方法をとっていた。
図13は特開平8−140386号公報に開示された従来の負荷イナーシャの推定方法を説明するフローチャートである。以下に説明する。
図13において、はじめにサーボモータを定速駆動する(ステップS1)。この定速駆動は以下のステップS2とステップS3において摩擦分をキャンセルするためのトルクFと重力分をキャンセルするためのトルクGを求めるために行う。次に、負荷に重力がかからない状態で一定速度で運転し、そのトルクを測定し、摩擦キャンセル分のトルクFを求める(ステップS2)。次に、負荷に重力がかかる状態で一定速度で運転し、そのトルクを測定し、摩擦分をキャンセルするためのトルクFを差し引いて、重力分をキャンセルするためのトルクGを求める(ステップS3)。
次に、サーボモータを加速駆動する(ステップS4)。ここで、この加速駆動は、例えば、サーボモータに速度零の状態において、ある設定した速度値の速度指令を与え、速度が零から設定速度に達するまで駆動するものである。
この加速駆動において、サーボモータに印加されるトルクコマンドTcを求めることによって加速駆動に必要なトルクTの時間変化を求める(ステップS5)。また、同様の加速駆動において、サーボモータのフィードバック速度vを求めることによって加減速駆動における速度の時間的変化を求めることができ、さらにこの測定結果から、加速駆動における加速度の時間変化を求めることができる(ステップS6)。
次に、前記測定により得られる加速駆動に必要なトルクTの時間変化と加速駆動における速度の時間変化とから、加速駆動における速度vとトルクTとの関係を求める。また、前記加速駆動における加速度の時間変化から加速駆動における速度vと加速度Aとの関係を求める。速度vとトルクTとの関係は、サーボモータのイナーシャを加速するために必要なトルクTJを求めるためであり、また、速度vと加速度Aとの関係は、サーボモータのイナーシャを求めるための加速度を定めるためである(ステップS7)。
前記ステップS7において求めた加速駆動に必要なトルクTはイナーシャを加速するために必要なトルクTJと摩擦分をキャンセルするために必要なトルクFと、重力分をキャンセルするために必要なトルクGの和(T=TJ+F+G)であるため、イナーシャを加速するために必要なトルクTJはTJ=T−F−Gで求める(ステップS8)。
サーボモータのモータ及び機械系のイナーシャJは、イナーシャを加速するために必要なトルクTJと加速度Aとの比(J=TJ/A)によって求められる(ステップS9)。
これによって、サーボモータのイナーシャを加速するために必要なトルクと、摩擦分および重力分キャンセルするために必要なトルクからサーボモータや機械系のイナーシャを推定することができる。
概要
精度よくサーボモータの負荷イナーシャを推定する負荷イナーシャ推定システム、負荷イナーシャ推定プログラムを記録した媒体及びロボットの動作プログラムを記録した媒体を提供する。
サーボモータ7を使用して負荷8を駆動する装置を制御するシステムの負荷イナーシャの真値を推定する負荷イナーシャ推定システムにおいて、比例積分制御部1と、負荷に作用する外乱を推定するオブザーバ推定計算部2と、外乱推定値と実機の状態量を所定のサンプリング周期でメモリに保存するデータ記憶部3と、外乱推定値を実機の状態量を使用して解析する外乱推定値解析部4と、負荷イナーシャ設定値を補正するための補正値を計算する補正値計算部5と、補正値計算部の出力および予め設定しておいた負荷イナーシャ設定値から、負荷イナーシャの真値を計算する負荷イナーシヤ推定計算部6とを有する。
目的
上記従来技術の問題点に鑑み、本発明の目的は、精度よくサーボモータの負荷イナーシャを推定する負荷イナーシャ推定システム、負荷イナーシャ推定プログラムを記録した媒体及びロボットの動作プログラムを記録した媒体を提供することにある。
効果
実績
- 技術文献被引用数
- 0件
- 牽制数
- 2件
この技術が所属する分野
(分野番号表示ON)※整理標準化データをもとに当社作成
請求項1
サーボモータを使用して負荷を駆動する装置を制御するシステムの負荷イナーシャの真値を推定する負荷イナーシャ推定システムにおいて、比例積分制御部と、前記サーボモータと前記負荷の状態量を計算するオブザーバ推定計算部と、該オブザーバ推定計算部で計算された前記状態量の推定値と実機で観測できる前記状態量の値との差を計算する誤差計算部と、該誤差計算部からの前記状態量の差の出力値とオブザーバ推定計算で使用する負荷イナーシャ設定値とから負荷イナーシャの真値を求める負荷イナーシャ推定計算部とを有することを特徴とする負荷イナーシャ推定システム。
請求項2
請求項3
前記誤差計算部では、前記オブザーバ推定計算部で計算されたモータ位置の推定値と実機のモータ位置との誤差を計算する手段を有する請求項1に記載の負荷イナーシャ推定システム。
請求項4
前記誤差計算部では、前記オブザーバ推定計算部で計算されたモータ速度の推定値と実機のモータ速度との誤差を計算する手段を有する請求項1に記載の負荷イナーシャ推定システム。
請求項5
前記誤差計算部では、前記オブザーバ推定計算部で計算されたモータ加速度の推定値と実機のモータ加速度との誤差を計算する手段を有する請求項1に記載の負荷イナーシャ推定システム。
請求項6
負荷駆動装置制御中に、前記オブザーバ推定計算部と前記誤差計算部と前記負荷イナーシャ推定計算部とを作動させ、自動的に前記負荷イナーシャの真値を求めて、該真値をメモリに保存する手段を有する請求項1から請求項5の何れか1項に記載の負荷イナーシャ推定システム。
請求項7
請求項8
推定された前記負荷イナーシャの値をリアルタイムに前記オブザーバ推定計算で使用する手段を有する請求項1から請求項7の何れか1項に記載の負荷イナーシャ推定システム。
請求項9
前記比例積分制御部にフィードフォワード制御部を有し、該フィードフォワード制御部は、フィードフォワード制御の制御定数の計算に推定された前記負荷イナーシャの値を使用する請求項1から請求項8の何れか1項に記載の負荷イナーシャ推定システム。
請求項10
コンピュータによって、サーボモータを使用して負荷を駆動する装置を制御するシステムの負荷イナーシャの真値を推定するための負荷イナーシャ推定プログラムを記録した媒体であって、該推定プログラムは、コンピュータに比例積分制御させ、前記サーボモータと前記負荷の状態量を計算するオブザーバ推定計算させ、該オブザーバ推定計算で計算された前記状態量の推定値と実機で観測できる前記状態量の値との差を計算する誤差計算させ、該誤差計算からの前記状態量の差の出力値と前記オブザーバ推定計算で使用する負荷イナーシャ設定値とから負荷イナーシャの真値を求める負荷イナーシャ推定計算させることを特徴とする負荷イナーシャ推定プログラムを記録した媒体。
請求項11
前記誤差計算では、前記オブザーバ推定計算で計算されたモータ指令トルクの推定値と実機のモータ指令トルクとの誤差を計算する請求項10に記載の負荷イナーシャ推定プログラムを記録した媒体。
請求項12
前記誤差計算では、前記オブザーバ推定計算で計算されたモータ位置の推定値と実機のモータ位置との誤差を計算する請求項10に記載の負荷イナーシャ推定プログラムを記録した媒体。
請求項13
前記誤差計算では、前記オブザーバ推定計算で計算されたモータ速度の推定値と実機のモータ速度との誤差を計算する請求項10に記載の負荷イナーシャ推定プログラムを記録した媒体。
請求項14
前記誤差計算では、前記オブザーバ推定計算で計算されたモータ加速度の推定値と実機のモータ加速度との誤差を計算する請求項10に記載の負荷イナーシャ推定プログラムを記録した媒体。
請求項15
負荷駆動装置制御中に、前記オブザーバ推定計算と前記誤差計算と前記負荷イナーシャ推定計算とを実行させ、自動的に前記負荷イナーシャの真値を求めて、該真値をメモリに保存する請求項10から請求項14の何れか1項に記載の負荷イナーシャ推定プログラムを記録した媒体。
請求項16
前記オブザーバ推定計算のオブザーバモデルの構成に外乱推定項を含む請求項10から請求項15の何れか1項に記載の負荷イナーシャ推定プログラムを記録した媒体。
請求項17
推定された前記負荷イナーシャの値をリアルタイムに前記オブザーバ推定計算で使用する請求項10から請求項16の何れか1項に記載の負荷イナーシャ推定プログラムを記録した媒体。
請求項18
前記比例積分制御にフィードフォワード制御を有し、該フィードフォワード制御は、フィードフォワード制御の制御定数の計算に推定された前記負荷イナーシャの値を使用する請求項10から請求項17の何れか1項に記載の負荷イナーシャ推定プログラムを記録した媒体。
請求項19
サーボモータを使用して負荷を駆動する装置を制御するシステムの負荷イナーシャの真値を推定する負荷イナーシャ推定システムにおいて、比例積分制御部と、前記負荷に作用する外乱を推定するオブザーバ推定計算部と、該オブザーバ推定計算部からの出力である外乱推定値と実機の状態量を所定のサンプリング周期でメモリに保存するデータ記憶部と、該データ記憶部に保存された前記外乱推定値を前記実機の状態量を使用して解析する外乱推定値解析部と、該外乱推定値解析部からの出力値によって負荷イナーシャ設定値を補正するための負荷イナーシャ補正値を計算する補正値計算部と、該補正値計算部の出力および予め設定しておいた負荷イナーシャ設定値から、負荷イナーシャの真値を計算する負荷イナーシヤ推定計算部とを有することを特徴とする負荷イナーシャ推定システム。
請求項20
前記データ記憶部で保存し、前記外乱推定値解析部で解析する実機の状態量は、モータの速度である請求項19に記載の負荷イナーシャ推定システム。
請求項21
前記外乱推定値解析部では、実際のモータ速度と外乱推定値の波形を比較する手段を有する請求項20に記載の負荷イナーシャ推定システム。
請求項22
前記外乱推定値解析部では、実際のモータ速度と外乱推定値の加減速時のそれぞれのデータの傾きを比較する手段を有する請求項20に記載の負荷イナーシャ推定システム。
請求項23
前記比例積分制御部により負荷を駆動する装置を制御中に、前記オブザーバ推定計算部と前記データ記憶部と前記外乱推定値解析部と前記補正値計算部と前記負荷イナーシャ推定計算部とを作動させ、自動的に前記負荷イナーシャの真値を求めて、該負荷イナーシヤの真値をメモリに保存する手段を有する請求項19から請求項22の何れか1項に記載の負荷イナーシャ推定システム。
請求項24
推定された前記負荷イナーシャの値をリアルタイムに前記オブザーバ推定計算や、または、制御計算で使用する手段を有する請求項19ら請求項23の何れか1項に記載の負荷イナーシャ推定システム。
請求項25
推定された前記負荷イナーシャの値を負荷イナーシャ設定値として、オブザーバ推定計算で使用して求まった、外乱推定値を使用して、再び、前記負荷イナーシャ設定値を補正し、これを繰り返すことにより、負荷イナーシャ推定値の精度を向上させる手段を有する請求項19から請求項24の何れか1項に記載の負荷イナーシャ推定システム。
請求項26
コンピュータによって、サーボモータを使用して負荷を駆動する装置を制御するシステムの負荷イナーシャの真値を推定するための負荷イナーシャ推定プログラムを記録した媒体であって、該推定プログラムは、コンピュータに比例積分制御させ、前記負荷に作用する外乱を推定するオブザーバ推定計算をさせ、該オブザーバ推定計算で計算された前記外乱の推定値と実機の状態量を所定のサンプリング周期でメモリに保存しデータ記憶させ、該メモリの出力から、前記外乱推定値を前記実機の状態量を使用して解析させ、その結果から前記負荷イナーシャ補正値を計算させ、該負荷イナーシャ補正値と前記オブザーバ推定計算で使用する負荷イナーシャ設定値とから負荷イナーシャの真値を求める負荷イナーシャ推定計算をさせることを特徴とする負荷イナーシャ推定プログラムを記録した媒体。
請求項27
前記データ記憶し、前記外乱推定値の解析で使用する実機の状態量は、モータの速度である請求項26に記載の負荷イナーシャ推定プログラムを記録した媒体。
請求項28
前記外乱推定値の解析では、実際のモータ速度と外乱推定値の波形を比較する請求項27に記載の負荷イナーシャ推定プログラムを記録した媒体。
請求項29
前記外乱推定値の解析では、実際のモータ速度と外乱推定値の加速時の傾きを比較する請求項27に記載の負荷イナーシャ推定プログラムを記録した媒体。
請求項30
前記比例積分制御により負荷を駆動する装置を制御中に、前記オブザーバ推定計算と前記データ記憶と前記外乱推定値解析と前記補正値計算と前記負荷イナーシャ推定計算とを実行させ、自動的に前記負荷イナーシャの真値を求めて、該負荷イナーシャの真値をメモリに保存する請求項26から請求項29の何れか1項に記載の負荷イナーシャ推定プログラムを記録した媒体。
請求項31
推定された前記負荷イナーシャの値をリアルタイムに前記オブザーバ推定計算や、または、制御計算で使用する請求項26から請求項30の何れか1項に記載の負荷イナーシャ推定プログラムを記録した媒体。
請求項32
推定された前記負荷イナーシャの値を負荷イナーシャ設定値として、オブザーバ推定計算で使用して求まった、外乱推定値を使用して、再び、前記負荷イナーシャ設定値を補正し、これを繰り返すことにより、負荷イナーシャ推定値の精度を向上させる請求項26から請求項31の何れか1項に記載の負荷イナーシャ推定プログラムを記録した媒体。
請求項33
コンピュータによって、ロボットに動作を教示し、実行するためのロボットの動作プログラムを記録した媒体であって、前記動作プログラムは、コンピュータに、ロボットに動作を教示し、実行させ、請求項10から請求項18及び請求項26から請求項32の何れか1項に記載の負荷イナーシャ推定プログラムを記録した媒体に記録された負荷イナーシャ推定プログラムを実行させることを特徴とするロボットの動作プログラムを記録した媒体。
請求項34
技術分野
0001
本発明は、工作機械の送り軸やロボットのアーム等を駆動するサーボモータの負荷イナーシャ推定システム、負荷イナーシャ推定プログラムを記録した媒体及びロボットの動作プログラムを記録した媒体に関する。
背景技術
0002
サーボモータによって負荷を制御する場合、制御部に実機モデルを有する制御を適用することによって振動や応答を改善する方法がよく用いられる。それらの制御手法の効果をあげるためには制御部のモデルの負荷イナーシャ値が実機と一致していることが望ましい。そのためには、実機の負荷イナーシャを正確に同定することが必要になる。ここで、もし、実機負荷イナーシャとモデル負荷イナーシャが大きな誤差を含む場合、その制御性能が劣化するだけでなく、逆に悪影響をおよぼしたり、制御系が不安定になり、発振する可能性がある。
0003
このような問題に対し、従来では、モデル部の負荷イナーシャには設計計算値を使用するか、実機を実際に数回動作させることによって各種データをとり、そのデータから負荷イナーシャの真値を計算するという方法をとっていた。
0005
図13において、はじめにサーボモータを定速駆動する(ステップS1)。この定速駆動は以下のステップS2とステップS3において摩擦分をキャンセルするためのトルクFと重力分をキャンセルするためのトルクGを求めるために行う。次に、負荷に重力がかからない状態で一定速度で運転し、そのトルクを測定し、摩擦キャンセル分のトルクFを求める(ステップS2)。次に、負荷に重力がかかる状態で一定速度で運転し、そのトルクを測定し、摩擦分をキャンセルするためのトルクFを差し引いて、重力分をキャンセルするためのトルクGを求める(ステップS3)。
0006
次に、サーボモータを加速駆動する(ステップS4)。ここで、この加速駆動は、例えば、サーボモータに速度零の状態において、ある設定した速度値の速度指令を与え、速度が零から設定速度に達するまで駆動するものである。
0007
この加速駆動において、サーボモータに印加されるトルクコマンドTcを求めることによって加速駆動に必要なトルクTの時間変化を求める(ステップS5)。また、同様の加速駆動において、サーボモータのフィードバック速度vを求めることによって加減速駆動における速度の時間的変化を求めることができ、さらにこの測定結果から、加速駆動における加速度の時間変化を求めることができる(ステップS6)。
0008
次に、前記測定により得られる加速駆動に必要なトルクTの時間変化と加速駆動における速度の時間変化とから、加速駆動における速度vとトルクTとの関係を求める。また、前記加速駆動における加速度の時間変化から加速駆動における速度vと加速度Aとの関係を求める。速度vとトルクTとの関係は、サーボモータのイナーシャを加速するために必要なトルクTJを求めるためであり、また、速度vと加速度Aとの関係は、サーボモータのイナーシャを求めるための加速度を定めるためである(ステップS7)。
0009
前記ステップS7において求めた加速駆動に必要なトルクTはイナーシャを加速するために必要なトルクTJと摩擦分をキャンセルするために必要なトルクFと、重力分をキャンセルするために必要なトルクGの和(T=TJ+F+G)であるため、イナーシャを加速するために必要なトルクTJはTJ=T−F−Gで求める(ステップS8)。
0011
これによって、サーボモータのイナーシャを加速するために必要なトルクと、摩擦分および重力分キャンセルするために必要なトルクからサーボモータや機械系のイナーシャを推定することができる。
発明が解決しようとする課題
0012
上述した従来の技術は、以下の問題点があった。
0013
設計計算値を使用する従来の方法では計算誤差や、オペレータの入力ミスによる制御効果の劣化という問題があり、また、実機による数回の動作でのデータどりには多くの人手と時間が必要であるという問題があった。
0014
また、実機による数回の動作でのデータどりには多くの人手と時間が必要であるという問題があった。
0015
また、両者に共通して、アーム先端につく負荷が変わる度に複雑な計算または時間と人手のかかるデータ取りをやり直す必要があるという問題があった。
0016
また、たとえ、実機によるデータ取りを自動的に実機に動作をさせて、データを取得させ、その値を使用して自動的に負荷のイナーシャを推定計算させたとしても、実機は、特定の動作を少なくとも1回以上おこなう必要があり、実機に無駄な動作を行わせ、無駄な時間を消費するという問題があった。
0017
上記従来技術の問題点に鑑み、本発明の目的は、精度よくサーボモータの負荷イナーシャを推定する負荷イナーシャ推定システム、負荷イナーシャ推定プログラムを記録した媒体及びロボットの動作プログラムを記録した媒体を提供することにある。
課題を解決するための手段
0018
本発明の負荷イナーシャ推定システムは、サーボモータを使用して負荷を駆動する装置を制御するシステムの負荷イナーシャの真値を推定するための負荷イナーシャ推定システムにおいて、比例積分制御部と、サーボモータと負荷の状態量を計算するオブザーバ推定計算部と、オブザーバ推定計算部で計算された状態量の推定値と実機で観測できる状態量の値との差を計算する誤差計算部と、誤差計算部からの状態量の差の出力値とオブザーバ推定計算で使用する負荷イナーシャ設定値とから負荷イナーシャの真値を求める負荷イナーシャ推定計算部とを有する。
0019
また、誤差計算部では、オブザーバ推定計算部で計算されたモータ指令トルクの推定値と実機のモータ指令トルクとの誤差を計算する手段を有してもよい。
0020
また、誤差計算部では、オブザーバ推定計算部で計算されたモータ位置の推定値と実機のモータ位置との誤差を計算する手段を有してもよい。
0021
また、誤差計算部では、オブザーバ推定計算部で計算されたモータ速度の推定値と実機のモータ速度との誤差を計算する手段を有してもよい。
0022
また、誤差計算部では、オブザーバ推定計算部で計算されたモータ加速度の推定値と実機のモータ加速度との誤差を計算する手段を有してもよい。
0025
また、推定された負荷イナーシャの値をリアルタイムにオブザーバ推定計算で使用する手段を有してもよい。
0026
また、比例積分制御部にフィードフォワード制御部を有し、フィードフォワード制御部は、フィードフォワード制御の制御定数の計算に推定された負荷イナーシャの値を使用してもよい。
0027
本発明の負荷イナーシャ推定プログラムを記録した媒体は、コンピュータによって、サーボモータを使用して負荷を駆動する装置を制御するシステムの負荷イナーシャの真値を推定するための負荷イナーシャ推定プログラムを記録した媒体であって、推定プログラムは、コンピュータに比例積分制御させ、サーボモータと負荷の状態量を計算するオブザーバ推定計算させ、オブザーバ推定計算で計算された状態量の推定値と実機で観測できる状態量の値との差を計算する誤差計算させ、誤差計算からの状態量の差の出力値とオブザーバ推定計算で使用する負荷イナーシャ設定値とから負荷イナーシャの真値を求める負荷イナーシャ推定計算させる。
0028
また、誤差計算では、オブザーバ推定計算で計算されたモータ指令トルクの推定値と実機のモータ指令トルクとの誤差を計算してもよい。
0029
また、誤差計算では、オブザーバ推定計算で計算されたモータ位置の推定値と実機のモータ位置との誤差を計算してもよい。
0030
また、誤差計算では、オブザーバ推定計算で計算されたモータ速度の推定値と実機のモータ速度との誤差を計算してもよい。
0031
また、誤差計算では、オブザーバ推定計算で計算されたモータ加速度の推定値と実機のモータ加速度との誤差を計算してもよい。
0032
また、負荷駆動装置制御中に、オブザーバ推定計算と誤差計算と負荷イナーシャ推定計算とを実行させ、自動的に負荷イナーシャの真値を求めて、真値をメモリに保存してもよい。
0033
また、オブザーバ推定計算のオブザーバモデルの構成に外乱推定項を含んでもよい。
0034
また、推定された負荷イナーシャの値をリアルタイムにオブザーバ推定計算で使用してもよい。
0035
また、比例積分制御にフィードフォワード制御を有し、フィードフォワード制御は、フィードフォワード制御の制御定数の計算に推定された負荷イナーシャの値を使用してもよい。
0036
本発明の負荷イナーシャ推定システムは、サーボモータを使用して負荷を駆動する装置を制御するシステムの負荷イナーシャの真値を推定する負荷イナーシャ推定システムにおいて、比例積分制御部と、負荷に作用する外乱を推定するオブザーバ推定計算部と、オブザーバ推定計算部からの出力である外乱推定値と実機の状態量を所定のサンプリング周期でメモリに保存するデータ記憶部と、データ記憶部に保存された外乱推定値を実機の状態量を使用して解析する外乱推定値解析部と、外乱推定値解析部からの出力値によって負荷イナーシャ設定値を補正するための負荷イナーシャ補正値を計算する補正値計算部と、補正値計算部の出力および予め設定しておいた負荷イナーシャ設定値から、負荷イナーシャの真値を計算する負荷イナーシヤ推定計算部とを有する。
0037
また、データ記憶部で保存し、外乱推定値解析部で解析する実機の状態量は、モータの速度であってもよい。
0038
また、外乱推定値解析部では、実際のモータ速度と外乱推定値の波形を比較する手段を有してもよい。
0039
また、外乱推定値解析部では、実際のモータ速度と外乱推定値の加減速時のそれぞれのデータの傾きを比較する手段を有してもよい。
0040
また、比例積分制御部により負荷を駆動する装置を制御中に、オブザーバ推定計算部とデータ記憶部と外乱推定値解析部と補正値計算部と負荷イナーシャ推定計算部とを作動させ、自動的に負荷イナーシャの真値を求めて、負荷イナーシヤの真値をメモリに保存する手段を有してもよい。
0041
また、推定された負荷イナーシャの値をリアルタイムにオブザーバ推定計算や、または、制御計算で使用する手段を有してもよい。
0042
また、推定された負荷イナーシャの値を負荷イナーシャ設定値として、オブザーバ推定計算で使用し、負荷イナーシャ設定値を使用してオブザーバ推定計算により求まった、外乱推定値を使用して、再び、負荷イナーシャ設定値を補正し、これを繰り返すことにより、負荷イナーシャ推定値の精度を向上させる手段を有してもよい。
0043
本発明の負荷イナーシャ推定プログラムを記録した媒体は、コンピュータによって、サーボモータを使用して負荷を駆動する装置を制御するシステムの負荷イナーシャの真値を推定するための負荷イナーシャ推定プログラムを記録した媒体であって、推定プログラムは、コンピュータに比例積分制御させ、負荷に作用する外乱を推定するオブザーバ推定計算をさせ、オブザーバ推定計算で計算された外乱の推定値と実機の状態量を所定のサンプリング周期でメモリに保存しデータ記憶させ、メモリの出力から、外乱推定値を実機の状態量を使用して解析させ、その結果から負荷イナーシャ補正値を計算させ、負荷イナーシャ補正値とオブザーバ推定計算で使用する負荷イナーシャ設定値とから負荷イナーシャの真値を求める負荷イナーシャ推定計算をさせる。
0044
また、データ記憶し、外乱推定値の解析で使用する実機の状態量は、モータの速度であってもよい。
0045
また、外乱推定値の解析では、実際のモータ速度と外乱推定値の波形を比較してもよい。
0046
また、外乱推定値の解析では、実際のモータ速度と外乱推定値の加速時の傾きを比較してもよい。
0047
また、比例積分制御により負荷を駆動する装置を制御中に、オブザーバ推定計算とデータ記憶と外乱推定値解析と補正値計算と負荷イナーシャ推定計算とを実行させ、自動的に負荷イナーシャの真値を求めて、負荷イナーシャの真値をメモリに保存してもよい。
0048
また、推定された負荷イナーシャの値をリアルタイムにオブザーバ推定計算や、または、制御計算で使用してもよい。
0049
また、推定された負荷イナーシャの値を負荷イナーシャ設定値として、オブザーバ推定計算で使用し、負荷イナーシャ設定値を使用してオブザーバ推定計算により求まった、外乱推定値を使用して、再び、負荷イナーシャ設定値を補正し、これを繰り返すことにより、負荷イナーシャ推定値の精度を向上させてもよい。
0050
本発明のロボットの動作プログラムを記録した媒体は、コンピュータによって、ロボットに動作を教示し、実行するためのロボットの動作プログラムを記録した媒体であって、動作プログラムは、コンピュータに、ロボットに動作を教示し、実行させ、上述の負荷イナーシャ推定プログラムを記録した媒体に記録された負荷イナーシャ推定プログラムを実行させる。
0051
また、動作プログラムは、オペレータがロボット言語命令で記述することにより作成される、ロボットの教示プログラムを、コンピュータが解読することによって生成され、ロボット言語命令の一つとして、負荷イナーシャ推定計算をする命令を有してもよい。
0052
従って、オブザーバ推定値と実機観測値との誤差を使用し、ロボットの動作中に自動的に負荷イナーシャの真値を求めるため、又は、オブザーバ外乱推定値を実機状態量の波形を使用して解析し、ロボットの任意の動作中に自動的に負荷イナーシャの真値を求めるため、適当な負荷イナーシャ計算値を予め設定しておくだけで、後はデータ測定や複雑な計算に時間や人手を消費することなく、また、ロボットに無駄な動作を実行させることなく、かつ複雑な形状の負荷の場合、机上計算で負荷イナーシャを求めるより精度よくサーボモータの負荷イナーシャ真値を推定することができる。また、アーム先端の負荷が変わった場合も簡単に負荷イナーシヤの真値を推定することができる。
発明を実施するための最良の形態
0053
次に、本発明の実施の形態について図面を参照して説明する。
0054
(本発明の第1の実施の形態)図1は本発明の第1の実施の形態の負荷イナーシャの推定方法を説明するフローチャートである。
0056
次にSTEP2では、サーボモータを加速駆動する。
0057
この2つの作業だけで、負荷イナーシャ真値を求めることができる。
0058
以下に、STEP2でどのような計算を行っているかを説明する。
0059
図2は本発明の第1の実施の形態の制御ブロック線図である。図中、実線で囲った部分10が制御部、点線内20が実機に相当する。図中のKpは位置ループ比例ゲイン、Kvは速度ループ比例ゲイン、Kiは速度ループ積分ゲイン、Jmはモータイナーシャ、JLは負荷イナーシャ、Kは減速機バネ定数、Cは減速機減衰係数、Nは減速比を表す。また、Sはラプラス演算子を表す。
0060
1は比例積分制御部、2はオブザーバ推定計算部である。22は誤差計算部、6は負荷イナーシャ推定計算部、21は制御系への入力である指令作成部である。また、図中11と12は0次ホールドを行うサンプラーを表すものとする。
0061
1のオブザーバの入力にはモータ検出速度Vmとモータ指令トルクTrefを使う。以下にこの実施の形態で使用したオブザーバの構成を数式を用いて説明する。A11からA34およびB1、L1〜L4は各行列の要素を表す。式中Tsはオブザーバ計算の1計算周期であり、kは計算周期の回数を表す。すなわち(k+1)番目のデータは(k)番目のデータの1計算周期後のデータを表す。
0062
0063
A11=−C/(N2 ×Jm)×Ts+1
A12=−K/(N×Jm)×Ts
A13=C/(N×Jm)×Ts
A21=Ts/N
A23=−Ts
A31=C/(N×JL)×Ts
A32=K/JL×Ts
A33=−C/JL×Ts+1
A34=−Ts/JL
B1=Ts/Jm
式に示したように、状態変数は[Vmobs ・θsobs ・VLobs ・D2obs ]の4つであり、Vmobs はモータ速度推定値、θsobsはねじれ角推定値、VLobs は負荷速度推定値、D2obs は2次側外乱推定値を表す。
0064
この外乱推定項を含むことにより、外乱が加わっている場合もオブザーバの推定精度を上げることができ、従って、負荷イナーシャの推定精度を上げることができる。
0065
実機検出値であるモータ速度Vmとオブザーバで推定計算するモータ速度推定値Vmobs との差をL行列(L1〜L4)により補正する構成をとる。
0066
また、本発明の第1の実施の形態では、誤差計算部22でモータ指令トルクの推定値と実機のモータ指令トルク値を比較するため、オブザーバ推定計算部2で、モータ指令トルクの推定値Tobs を求める必要がある。以下に説明する。
0068
次に、モータ指令トルクTrefおよび負荷加速度AL、モータ加速度Amの推定値をそれぞれTobs 、ALobs 、Amobs とし、オブザーバ推定計算に使用する負荷イナーシャをJLobs とすると、以下の式が成り立つ。
0069
Tobs =Jm×Amobs +JLobs ×ALobs /N (3)
ここで、モータ速度推定値Vmobs と負荷速度推定値VLobs から微分近似として差分を使って、モータ加速度推定値Amobs と負荷加速度推定値ALobs を計算する式を示す。
0070
Amobs (k)={Vmobs (k)−Vmobs (k−1)}/Ts (4)
ALobs (k)={VLobs (k)−VLobs (k−1)}/Ts (5)
式(3)(4)(5)より、
Tobs =Jm×{Vmobs (k)−Vmobs (k−1)}/Ts
+JLobs ×{VLobs (k)−VLobs (k−1)}/Ts(6)
となり、図2中のオブザーバ推定計算部2でモータ指令トルク推定値Tobs を求めることができる。
0071
誤差計算部22では、実機モータ指令トルク値とオブザーバモータ指令トルク推定値との差DLTT を計算する。
0072
DLTT =Tref−Tobs (7)
負荷イナーシャ推定計算部6では、実機の負荷イナーシャの真値を推定する。内部の計算方法を以下に説明する。
0073
まず、式(2)(3)を式(7)に代入する。
0074
DLTT =JL×AL/N−JLobs ×ALobs /N
+Jm×Am−Jm×Amobs (8)
ここで、オブザーバの推定開始時に推定値が真値とずれていた場合でも、オブザーバの内部の式の補正の項により、オブザーバ推定値は、ただちに真値に収束し、推定値は真値とほぼ等しい値となるため、
Am=Amobs 、AL=ALobs (9)
とおく。
0075
式(9)を、式(8)に代入して整理すると、式(8)は次のように書き換えられる。
0076
DLTT =(JL−JLobs )×ALobs /N
=(JL−JLobs )×
[{VLobs (k)−VLobs (k−1)}/Ts]/N (10)
(10)式をJLについて解くと、
JL=DLTT ×N/[{VLobs (k)−VLobs (k−1)}/Ts]
+JLobs (11)
となる。
0077
この式(11)を負荷イナーシャ推定計算部6で計算することにより、精度の高い負荷イナーシャ推定値を得ることができる。
0078
また、負荷駆動装置制御中に、オブザーバ推定計算部2と誤差計算部22と負荷イナーシャ推定計算部6とを作動させ、自動的に負荷イナーシャの真値を求めて、真値をメモリに保存する機能を追加できる。従って、負荷駆動装置制御中に自動的に負荷イナーシャの真値を推定することができ、その真値をメモリに書込んで保存することにより、状態量入力の手間も省くことができる。
0079
また、推定された負荷イナーシャの値をリアルタイムにオブザーバ推定計算で使用することにより、負荷イナーシャの真値の推定精度を上げることができる。
0080
本発明の負荷イナーシャ推定プログラムは媒体に記録されており、コンピュータによって、サーボモータを使用して負荷を駆動する装置を制御するシステムの負荷イナーシャの真値を推定するためのものであり、コンピュータに比例積分制御させ、サーボモータと負荷の状態量を計算するオブザーバ推定計算させ、オブザーバ推定計算で計算された状態量の推定値と実機で観測できる状態量の値との差を計算する誤差計算させ、誤差計算からの状態量の差の出力値とオブザーバ推定計算で使用する負荷イナーシャ値とから負荷イナーシャの真値を求める負荷イナーシャ推定計算させるものである。
0081
また、ロボットに動作を教示し、実行させるためにはオペレータによって教示プログラムが作成される。教示プログラムは、特定のプログラム言語であるロボット言語によって記述されている。本発明は、そのロボット言語の命令の一つとして、上記負荷イナーシャ推定計算処理を実行させる命令を持っている。ロボットの教示プログラムを、コンピュータが解読することによって、ロボットの動作プログラムが生成される。オペレータが教示プログラムを実行するだけで、コンピュータは動作プログラムに解読し、その動作プログラムを実行するので、上記、定加速度動作ならびに負荷イナーシャ推定計算処理を自動的に実行するものである。本発明のロボットの動作プログラムは媒体に記録されている。
0082
以下に本発明を実施した時の効果を示す。
0083
図3はシミュレーションで使用した負荷イナーシャ推定計算部の制御ブロック図である。5は逆数を表す関数である。入力はDLTTモータ指令トルク誤差と式(5)で得られるALobs負荷加速度の2入力である。
0084
図4、図5にシミュレーション結果を示す。本発明の第1の実施の形態では、負荷の加速度の推定値を利用するため、サーボモータを加速駆動した時に負荷イナーシャを推定することができる。図4に、時間−モータ速度の波形を、図5にその時の負荷イナーシャ推定値の波形を示している。
0085
本シミュレーションの各状態量の値を説明する。
0086
JL=2133 (Kg・m2)
JLobs =3199.5(=JL×1.5)
K=2677500 (N・m/rad)
Kobs =3213000(=K×1.2)
N=167
C=7557 (N・m・sec/rad)
Kp=10 (1/sec)
Kv=3.25 (1/sec)
Ki=25 (1/sec)
Ts=0.001 (sec)
上記のように、オブザーバで推定計算に使用する負荷イナーシャJLobs は、実機負荷イナーシャの1.5倍に、また、オブザーバで推定計算に使用するバネ定数Kobs は、実機バネ定数Kの1.2倍に設定している。
0087
図5の波形を見ると分かるように、オブザーバ推定計算で使用する減速機のバネ定数Kobs が実機バネ定数とずれて設定してあっても、実機負荷イナーシャの真値を精度よく推定できている。
0088
また、本実施の形態では、モータ指令トルク値の誤差を使用したが、その他、モータ位置・モータ速度・モータ加速度を使用した方法でも同様の結果が得られる。
0089
また、比例積分制御部にフィードフォワード制御部(前向き補償部)を有し、フィードフォワード制御部は、フィードフォワード制御の制御定数の計算に推定された負荷イナーシャの値を使用することもできる。
0090
(本発明の第2の実施の形態)次に、本発明の第2の実施の形態について図面を参照して説明する。図6は本発明の第2の実施の形態の負荷イナーシャの推定操作を説明するフローチャートである。
0091
まず、STEP1では、オブザーバの推定計算で使用するための負荷イナーシャ設定値JLobs を設定しておく。この時、JLobs の値は正確である必要はなく設計計算値等、概算で求めておく。
0092
次に、STEP2では、サーボモータを任意の動作で駆動する。
0093
この2つのSTEPだけで、負荷イナーシャ真値を自動的に求めることができる。以上が実際にオペレータが行う操作である。
0094
以下に、STEP2でどのような計算を行っているかを説明する。
0095
図7は本発明の第2の実施の形態の構成を示すブロック図である。図8は図7を制御ブロック線図にしたものである。図8中のKpは位置ループ比例ゲイン、Kvは速度ループ比例ゲイン、Kiは速度ループ積分ゲイン、Jmはモータイナーシャ、JLは負荷イナーシャ、Kは減速機バネ定数、Cは減速機減衰係数を表す。また、Sはラプラス演算子を表す。
0096
21は制御系への入力である指令作成部である。また、図中31と32と33と34は0次ホールドを行うサンプラーを表すものとする。
0097
図7と図8に共通して、1は比例積分制御部であり、モータの位置と速度をフィードバック制御している。2はオブザーバ推定計算部である。3は実機状態量とオブザーバ外乱推定値をサンプリング周期Tでメモリに保存するデータ記憶部である。本実施の形態では、実機状態量として、モータ速度を使用している。4はデータ記憶部に保存された、外乱推定値とモータ速度の値から、外乱推定値を解析する、外乱推定値解析部である。5は外乱推定値解析部で解析した結果を基に、負荷イナーシャの補正値を計算する補正値計算部であり、6は補正値計算部の出力である補正値と負荷イナーシャ設定値から、負荷イナーシャ真値を計算する負荷イナーシャ推定計算部である。
0098
次に、オブザーバ推定計算部2の説明をする。2のオブザーバの入力にはモータ検出速度Vmとモータ指令トルクTrefを使う。以下にこの実施の形態で使用したオブザーバの構成を数式を用いて説明する。A11からA34およびB1、L1〜L4は各行列の要素を表す。式中Tsはオブザーバ計算の1計算周期であり、kは計算周期の回数を表す。すなわち(k+1)番目のデータは(k)番目のデータの1計算周期後のデータを表す。
0099
0100
A11=−C/Jm
A12=−K/Jm×Ts
A13=C/Jm×Ts
A21=Ts
A23=−Ts
A31=C/JL×Ts
A32=K/JL×Ts
A33=−C/JL×Ts+1
A34=−Ts/JL
B1=Ts/Jm
上式に示したように、推定する状態変数は[Vmobs・θsobs・VLobs・D2obs] の4つであり、Vmobsはモータ速度推定値、θsobsはねじれ角推定値、VLobs は負荷速度推定値、D2obs は2次側外乱推定値を表す。
0101
実機検出値であるモータ速度Vmとオブザーバで推定計算するモータ速度推定値Vmobsとの差をL行列(L1〜L4)により補正する構成をとる。
0102
次に、データ記憶部3の説明をする。
0104
それと同時に、その動作時のオブザーバ外乱推定値の値もサンプリング周期Tnで保存する。それをD2d(n)とする。
0105
(nはサンプリング回数:n=1,2,3...n)次に、外乱推定値解析部4の説明をする。
0106
外乱推定値解析部4では、まず最初に、外乱推定値をモータ速度と比較しやすいように補正する。
0107
外乱推定値には、主に、重力と摩擦が外乱として推定されている。ここで、本実施の形態では、重力がかからない軸について説明する。ただし、重力がかかる軸でも、予め負荷にかかる重力を計算して、減算しておけば、以下は同じ手順で負荷イナーシャ真値を推定することが出来る。
0108
動作中の摩擦には、大きく分けて、クーロン摩擦と、粘性摩擦がある。このうち、クーロン摩擦は速度に依存せず、速度の向きにのみ依存する値である。すなわち、動作中には常に、一定の大きさで作用する。それに対して、粘性摩擦は、速度に比例する値である。
0109
従って、クーロン摩擦分を外乱推定値から減算すると、外乱として速度に依存する粘性摩擦のみが抽出できる。図10に説明の波形を示す。
0111
図11のようになったところで、Vmd(n):モータ速度とD2d(n):外乱推定値の加速時の傾きを比較する。モータ速度の傾きをAvm、外乱推定値の傾きをAd2とすると、
Avm={Vmd(n)−Vmd(n−m)}/(Tn×m)
(13)
Ad2={D2d(n)一D2d(n−m)}/(Tn×m)
(14)
となる。
0113
次に、補正値計算部5の説明をする。
0114
補正値計算部5ではAvmとAd2の大きさの違いに応じて、補正値を決定する。
0115
以下に、本実施の形態での補正値の決定方法を説明する。
0116
AvmとAd2の比をPとする。
0117
P=Avm/Ad2 (15)
負荷イナーシヤ設定値JLobsとPから補正値Rを計算する。
0118
R=JLobs×P×C (16) (Cは設定定数)
また、負荷イナーシャの誤差によっては、図12に示すような外乱推定値になる場合がある。この場合は、外乱推定値の加速または、減速前の突起の大きさδを使用して、負荷イナーシャ補正値を計算することも可能である。
0119
次に、負荷イナーシヤ推定計算部の説明をする。
0120
負荷イナーシャ推定計算部6では、JLobs とRから、負荷イナーシャ真値JLrealを計算する。
0121
JLreal=JLobs +R (17)
この式(17)を計算することにより、精度の高い負荷イナーシャ推定値を得ることができる。また、比例積分制御によって負荷を駆動する装置を制御中に、前記オブザーバ推定計算部2と前記データ記憶部3と、前記外乱推定値解析部4と前記補償値計算部5と前記負荷イナーシャ推定計算部6とを作動させ、自動的に負荷イナーシャの真値を求めて、真値をメモリに保存する機能を追加できる。従って、負荷駆動装置制御中に自動的に負荷イナーシャの真値を推定することができ、その真値をメモリに書込んで保存することにより、状態量入力の手間を省くことができる。
0122
また、推定された負荷イナーシャの値をリアルタイムにオブザーバ推定計算や、その他の制御計算で使用することにより、負荷イナーシャの真値の推定精度を上げることができる。
0123
また、推定された負荷イナーシャの値を負荷イナーシャ設定値として、オブザーバ推定計算で使用し、今回の負荷イナーシャ設定値を使用してオブザーバ推定計算により求まった、外乱推定値を使用して、再び、負荷イナーシャ設定値を補正する。これを繰り返すことにより、負荷イナーシャ推定値の精度を向上させることができる。
0124
本発明の負荷イナーシャ推定プログラムは、媒体に記録されており、コンピュータによって、サーボモータを使用して負荷を駆動する装置を制御するシステムの負荷イナーシャの真値を推定するためのものである。即ち、負荷イナーシャ推定プログラムは、コンピュータに比例積分制御させ、負荷に作用する外乱を推定するオブザーバ推定計算をさせ、オブザーバ推定計算で計算された外乱の推定値と実機の状態量をあるサンプリング時間でメモリに保存させ、データ記憶部の出力から、外乱推定値を実機状態量を使用して解析し、その結果から負荷イナーシャ補正値を計算させ、その値とオブザーバ推定計算で使用する負荷イナーシャ設定値とから負荷イナーシャの真値を求める負荷イナーシャ推定計算をさせるものである。
0125
また、ロボットに動作を教示し、実行させるためにはオペレータによって教示プログラムが作成される。教示プログラムは、特定のプログラム言語であるロボット言語によって記述されている。本発明は、そのロボット言語の命令の一つとして、上記負荷イナーシャ推定計算処理を実行させる命令を持っている。ロボットの教示プログラムを、コンピュータが解読することによって、ロボットの動作プログラムが生成される。オペレータが教示プログラムを実行するだけで、コンピュータは動作プログラムに解読し、その動作プログラムを実行するので、上記、定加速度動作ならびに負荷イナーシャ推定計算処理を自動的に実行するものである。本発明のロボットの動作プログラムは媒体に記録されている。
発明の効果
0126
以上説明したように本発明は、オブザーバ推定値と実機観測値との誤差を使用し、ロボットの動作中に自動的に負荷イナーシャの真値を求めるため、又は、オブザーバ外乱推定値を実機状態量の波形を使用して解析し、ロボットの任意の動作中に自動的に負荷イナーシャの真値を求めるため、適当な負荷イナーシャ計算値を予め設定しておくだけで、後はデータ測定や複雑な計算に時間や人手を消費することなく、また、ロボットに無駄な動作を実行させることなく、かつ複雑な形状の負荷の場合、机上計算で負荷イナーシャを求めるより精度よくサーボモータの負荷イナーシャ真値を推定することができるという効果がある。また、アーム先端の負荷が変わった場合も簡単に負荷イナーシヤの真値を推定することができるという効果がある。
図面の簡単な説明
0127
図1本発明の第1の実施の形態の負荷イナーシャの推定方法を説明するフローチャートである。
図2本発明の第1の実施の形態の制御ブロック線図である。
図3本発明の第1の実施の形態の負荷イナーシャ推定計算部の制御ブロック図である。
図4本発明の第1の実施の形態のシミュレーション結果の時間−モータ速度の波形である。
図5本発明の第1の実施の形態のシミュレーション結果の時間−負荷イナーシャ推定値の波形である。
図6本発明の第2の実施の形態の負荷イナーシャの推定操作を説明するフローチャートである。
図7本発明の第2の実施の形態の構成を示すブロック図である。
図8本発明の第2の実施の形態を説明する、制御ブロック線図である。
図9加速−定速−減速時の速度波形を説明する図である。
図10外乱推定値の補正を説明する図である。
図11外乱推定値の解析を説明する図である。
図12負荷イナーシャの設定値が誤差を含むときの外乱推定値の波形を説明する図である。
図13従来の負荷イナーシャの推定方法を説明するフローチャートである。
--
0128
1比例積分制御部
2オブザーバ推定計算部
3データ記憶部
4外乱推定値解析部
5補正値計算部
6負荷イナーシャ推定計算部
7サーボモータ
8負荷
10 制御部
11、12、31、32、33、34 0次ホールドを行うサンプラー
20実機
21指令作成部
22誤差計算部
25逆数を表す関数
技術視点だけで見ていませんか?
この技術の活用可能性がある分野
分野別動向を把握したい方- 事業化視点で見る -
(分野番号表示ON)※整理標準化データをもとに当社作成