JP2014123188A - 分散制御装置及び分散制御方法 - Google Patents
分散制御装置及び分散制御方法 Download PDFInfo
- Publication number
- JP2014123188A JP2014123188A JP2012277994A JP2012277994A JP2014123188A JP 2014123188 A JP2014123188 A JP 2014123188A JP 2012277994 A JP2012277994 A JP 2012277994A JP 2012277994 A JP2012277994 A JP 2012277994A JP 2014123188 A JP2014123188 A JP 2014123188A
- Authority
- JP
- Japan
- Prior art keywords
- control
- command
- motor
- controller
- control command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Manipulator (AREA)
- Feedback Control In General (AREA)
- Control Of Multiple Motors (AREA)
Abstract
【課題】上位制御器から送信される制御指令に同期して、制御パラメータの整合性を保持しながら実行可能な分散制御装置及び分散制御方法を提供すること。
【解決手段】複数のモータ制御器102、103、104が上位制御器101からの制御指令に応じて複数のモータ105、106、107を制御する分散制御装置において、複数のモータ制御器102、103、104のそれぞれは、上位制御器101からの制御指令を記憶可能なメモリと、上位制御器101からの制御指令の受信間隔を計測可能なタイマと、上位制御器101からの制御指令を受信すると、制御指令を一旦メモリに記憶し、次の制御指令を受信すると、記憶した制御指令と次の制御指令との受信間隔を計測し、計測した受信間隔が所定の制御指令発信間隔と異なる場合には、制御指令の発信間隔に応じて制御パラメータを変更し、変更した制御パラメータを用いてモータ制御を実行する演算器と、を備えた。
【選択図】図1
【解決手段】複数のモータ制御器102、103、104が上位制御器101からの制御指令に応じて複数のモータ105、106、107を制御する分散制御装置において、複数のモータ制御器102、103、104のそれぞれは、上位制御器101からの制御指令を記憶可能なメモリと、上位制御器101からの制御指令の受信間隔を計測可能なタイマと、上位制御器101からの制御指令を受信すると、制御指令を一旦メモリに記憶し、次の制御指令を受信すると、記憶した制御指令と次の制御指令との受信間隔を計測し、計測した受信間隔が所定の制御指令発信間隔と異なる場合には、制御指令の発信間隔に応じて制御パラメータを変更し、変更した制御パラメータを用いてモータ制御を実行する演算器と、を備えた。
【選択図】図1
Description
本発明は、複数のモータを同期して制御する分散制御装置に関し、特にはマスタースレーブ型の分散制御装置及びその制御方法に関する。
従来、上位制御器に複数の下位制御器が通信線等で接続され、上位制御器から所定の周期で送信される制御指令に対して同期して下位制御器がモータ等の制御を行う分散制御装置が知られている。分散制御装置は、例えば、ロボットアームを駆動する複数のモータそれぞれに設けられた複数のモータ制御器(下位制御器)に対して、上位制御器から制御指令を定期的に送信することで各モータを制御し、ロボットアームを精度よく駆動させる際等に用いられる。
しかしながら、このような分散制御装置は、上位制御部の処理負荷や通信負荷等の影響により、上位制御部から送信される制御指令の周期(発信間隔)が変動する場合がある。制御指令の周期変動は、周期毎のパラメータを用いて行っている場合には、所定の周期に調整されたパラメータの不適合によるモータのトルク変動やロボットアームにおける位置精度の低下を発生させるおそれがあった。
これに対しては、上位制御器と、上位制御器の同期信号線を利用した下位制御器と、を用いることで、上位制御器と下位制御器との同期処理を行う分散制御装置が開示されている(特許文献1参照)。また、上位制御器から下位制御器へ同期時刻を送信することで下位制御器が内部タイマの時刻を変更し、下位制御で処理される制御周期を上位制御器の制御周期に合致させることで、同期処理を行う分散制御装置が開示されている(特許文献2参照)。
しかしながら、特許文献1に開示の分散制御装置は、同期信号を送信する専用線を使用して上位制御器と下位制御器との同期処理を行うため、配線数が増加する。また、上位制御器からの制御指令に応じて下位制御器でモータ制御を行う場合、上位制御器から下位制御器へ制御指令を送信する指令送信周期と同期信号周期の同期が保証されていない場合に制御指令周期と下位制御器の制御周期の同期ズレが発生するおそれがある。
また、特許文献2に開示の分散制御装置のように、上位制御器から同期時刻を送信し、送信された同期時刻に応じて下位制御器の制御タイマを変更して制御を行う場合には、制御タイマの時刻変更直後にモータ制御周期が変動する場合がある。これにより、規定制御周期で調整されたモータ制御パラメータで動作させることによるモータ制御における応答性能の低下等を招くおそれがある。
そこで、本発明は、上位制御器からの指令周期が変動した場合においても、モータ制御器で制御パラメータの整合性を保持しながらモータを制御可能な分散制御装置及び分散制御方法を提供することを目的とする。
本発明は、複数のモータを制御する複数のモータ制御器と、前記複数のモータ制御器のそれぞれに接続された上位制御器と、を有し、前記複数のモータ制御器のそれぞれが前記上位制御器からの制御指令に応じて前記複数のモータを制御する分散制御装置において、前記複数のモータ制御器のそれぞれは、前記上位制御器が発信する制御指令を記憶可能なメモリと、前記上位制御器からの制御指令の受信間隔を計測可能なタイマと、前記上位制御器からの制御指令を受信すると、制御指令をいったん前記メモリに記憶し、次の制御指令を受信すると、記憶した制御指令と次の制御指令との受信間隔を前記タイマで計測し、計測した受信間隔が所定の制御指令発信間隔と異なる場合には、前記制御指令の発信間隔に応じて前記複数のモータの出力値を設定するために予め設定された制御パラメータを、計測した受信間隔に応じた制御パラメータに変更し、変更した制御パラメータを用いてモータ制御を実行する制御部と、を備えたことを特徴とする。
また、本発明は、複数のモータを制御する複数のモータ制御器のそれぞれに接続された上位制御器からの制御指令に応じて、前記複数のモータ制御器のそれぞれが前記複数のモータを制御する分散制御方法において、前記モータ制御器のそれぞれの制御部が、前記上位制御器からの制御指令を受信すると、制御指令をメモリに記憶する制御指令記憶工程と、前記制御部が、次の制御指令を受信すると、受信間隔を計測可能なタイマで、前記メモリに記憶した制御指令と次の制御指令との受信間隔を計測する受信間隔計測工程と、前記制御部が、計測した受信間隔が所定の制御指令発信間隔と異なる場合に、前記制御指令の発信間隔に応じて前記複数のモータの出力値を設定するために予め設定された制御パラメータを、計測した受信間隔に応じた制御パラメータに変更するパラメータ変更工程と、前記制御部が、変更したパラメータでモータ制御を実行するモータ制御工程と、を備えた、ことを特徴とする。
本発明によれば、上位制御器からの指令周期が変動した場合においても、モータ制御器で制御パラメータの整合性を保持しながらモータを制御することができる。
以下、本発明の実施形態に係るロボット装置1について、図1から図7を参照しながら説明する。本発明に係るロボット装置1は、上位制御器と、上位制御器に接続された下位制御器としてのモータ制御器とを用いたマスタースレーブ型の分散制御装置を備えた多関節ロボットであり、例えば、多軸多関節のロボットアームの駆動制御等に用いられる。本実施形態においては、3軸3関節のロボットアーム2と、ロボットアーム2の軌道生成を行う上位制御器101及びロボットアームの各関節のモータを駆動するモータ制御器102〜104を有する分散制御装置3と、を備えたロボット装置1を用いて説明する。
まず、本実施形態に係るロボット装置1全体の概略構成について、図1を参照しながら説明する。図1は、本発明の実施形態に係るロボット装置1の構成図である。
図1に示すように、ロボット装置1は、3軸3関節のロボットアーム2(3軸アクチュエータ)と、分散制御装置3と、を備えている。分散制御装置3は、軌道生成を行う上位制御器101と、下位制御器としてのモータ制御器102、103、104と、を備えている。モータ制御器102,103,104は、ロボットアーム2の各関節に設けられる複数のモータ105,106,107に接続されている。上位制御器101とモータ制御器102〜104とは、制御指令及びモータ制御器102〜104の状態を通知するシリアル通信線111を介して接続されており、上位制御器101は、所定の制御指令発信間隔にて制御指令をモータ制御器102〜104へ送信する。なお、上位制御器101より送信される制御指令は、ロボットアーム2のモータ105〜107の目標回転角度等の指令値を送信する指令コマンドと指令実行コマンドとからなる。
上位制御器101は、予め指定した教示点データからロボットアーム2の軌道生成を行い、シリアル通信線111を介して接続されるモータ制御器102〜104へ送信するモータの回転目標角度指令値を逐次的に生成する。そして、生成したモータ回転目標角度指令値を含む指令コマンドを、シリアル通信線111を介してモータ制御器102〜104へ個別に送信した後、指令実行コマンドを予め設定された周期(間隔)でモータ制御器102〜104へブロードキャスト送信する。本実施形態においては、指令実行コマンドの送信周期を2ミリ秒に設定している。指令実行コマンドを所定周期(所定間隔)で送信することで、上位制御器101に接続されたモータ制御器102〜104が指令実行コマンド直前に送信された指令コマンドと同期して指令実行処理を行う。なお、上位制御器101には、不図示のユーザー操作盤が付属しており、ユーザー操作によりモータ駆動が開始されるように構成されている。
モータ制御器102〜104には、不図示の制御基板が配設されており、制御基板には電源回路、通信制御器、制御部としての演算器、記憶可能なメモリ及びモータドライバが実装されている。また、モータ制御器102〜104には、一つのモータ105〜107がモータドライバを介して接続されており、モータ105〜107には、モータの回転角度検出する回転位置検出器108,109,110がモータの回転軸に接続されている。なお、モータ制御器102〜104の演算器は、不図示のアナログ/デジタル変換器、揮発メモリ、不揮発メモリ、受信間隔等を計測可能なタイマ等を有している。
制御基板に実装される演算器の不揮発性メモリ内には、モータ制御に使用する制御パラメータの他に、コマンド実行遅延数と指令コマンド受信バッファサイズを指定するパラメータ値があらかじめ保存されている。そして、設定された指令コマンド受信バッファサイズで指定されるキュー構造のメモリ領域を演算器リセット後の処理内で確保し、指令コマンドキューとしている。本実施形態においては、指令コマンド実行遅延数を1、指令コマンドキューサイズを2に設定している。
また、分散制御装置3は、コンピュータ読み取り可能な記録媒体に記録された制御プログラムを読み取り可能な不図示の記録メディア読取装置を備えており、記録媒体に記録された分散制御プログラム等を読み取って実行することも可能となっている。
次に、本実施形態に係る分散制御装置3のモータ制御器102〜104で処理されるモータ制御について、図2を参照しながら説明する。なお、本実施形態においては、モータ制御器102で処理されるモータ制御を用いて説明する。図2は、本実施形態に係る分散制御装置3のモータ制御器102で処理されるモータ制御のブロック図である。
図2に示すように、本実施形態に係るモータ制御器102によるモータ制御は、位置フィードバック制御306と、速度フィードバック制御308と、電流フィードバック制御310と、をカスケード構成とした制御を用いている。以下、位置フィードバック制御306、速度フィードバック制御308及び電流フィードバック制御310について具体的に説明する。
位置フィードバック制御306は、上位制御器101からの指令実行コマンド301の受信に同期して実行される。なお、前回の指令実行コマンドを受信してから3ミリ秒以上の指令実行コマンドの受信がない場合は、前回の指令実行コマンドのモータ105の回転目標角度指令値にてモータ105の駆動処理がなされる。上位制御器101からの指令実行コマンドの受信より、モータ105の回転目標角度位置情報を含む指令コマンドをコマンドキュー302に保存すると共に、コマンドキュー302から実行する指令コマンドを取り出す。コマンドキュー302はFIFOバッファであり、バッファ保存順に読み出しが可能なメモリ構造となっている。
位置フィードバック制御306は、まず、モータ制御器102に接続されるモータ105の回転軸に接続された回転位置検出器108よりモータ105の回転角度を取得する。そして、回転目標角度指令値と回転角度(応答値としての回転角度応答値)との偏差により、比例制御、積分制御、微分制御にて出力値を決定する位置PID制御の演算307が実行される。例えば、位置フィードバック制御306で実行される位置PID制御の演算307は、次式で示される。
なお、上記数1式の位置PID制御の演算307における比例係数Kpp、積分係数Kip、微分係数Kdpは、上位制御器101より指令実行コマンドが送信される所定間隔の2ミリ秒で調整された値(制御パラメータ)が予め設定されている。
速度フィードバック制御308は、0.5ミリ秒間隔で処理がなされている。位置フィードバック制御306からの出力結果を速度指令値として、回転位置検出器108より取得したモータ105の回転速度と前回の速度フィードバック制御時に取得したモータ105の回転速度との差を現在のモータ回転速度(回転速度応答値)とする。そして、速度指令値と現在のモータ回転速度の偏差により比例制御、積分制御、微分制御にて出力値を決定する速度PID制御の演算309が実行される。例えば、速度フィードバック制御308で実行される速度PID制御の演算309は、次式で示される。
なお、上記数2式の速度PID制御の演算309で使用する比例係数Kpv、積分係数Kiv、微分係数Kdvは、速度フィードバック制御308が実行される周期である0.5ミリ秒で調整された値(制御パラメータ)が予め設定されている。
電流フィードバック制御310は、0.1ミリ秒間隔で処理がなされている。そして、モータ出力回路のモータ出力ラインに配置される電流検出素子より、モータ各相に流れる電流を電圧として計測してデジタル、アナログ変換器319、320によって量子化された数値データに変換される。例えば、電流フィードバック制御310で実行される電流PID制御の演算311は、次式で示される。
電流フィードバック制御310では、数3式で示される変換式により、取得した3相分のモータ電流(数3式中のiu、−iu−iw、iw)を、モータ105で発生するトルクに寄与する電流値と励磁電流に変換する処理314を実行する。その後、速度フィードバック制御308からの出力結果をトルク指令値として、トルク指令値とトルク値(トルク応答値)の偏差から比例制御、積分制御、微分制御にてモータ出力値を決定する数4式で示される電流PID制御の演算311が実行される。同様に、数5式で示される励磁電流をゼロに制御する電流PID制御の演算312が実行される。
なお、電流PID制御の演算311、312によるモータ105の出力値を決定する処理には、モータ105で発生する逆起電力の補正処理等を含んでもよい。また、上記数5式及び数6式で使用する比例係数Kpiq、Kpid、積分係数Kiiq、Kiid、微分係数Kdiq、Kdidは、電流フィードバック制御310の周期の0.1ミリ秒で調整された値(制御パラメータ)が予め設定されている。
モータ105の駆動は、電流フィードバック制御310の処理により決定されたモータ105の出力値vd、vqを数6式の変換式によりモータ各相の出力デューティー値U、V、Wに変換する処理313によって各相の出力デューティー値を決定する。そして、各相の出力デューティー値に応じてゲート回路のスイッチング素子をオンオフ制御する(PWM駆動制御)。
本実施形態では、指令実行コマンドの受信時間(受信間隔)に応じて制御パラメータの値の変更を行う処理は、レギュレータブロック305で実行されている。変更する制御パラメータは、位置PID制御の演算307で処理される数1式中のx及び速度フィードバック制御308の制御周期と速度フィードバック制御308にて処理される速度PID制御の演算309で処理される数2式中のyとした。
上位制御器101から指令実行コマンドを受信した受信時刻Tkと、前回の指令実行コマンドを受信した際に記憶した時刻Tk−1より上位制御器101からの指令実行コマンドの受信間隔ΔTkを算出する。
位置フィードバック制御においては、受信間隔ΔTkにより、位置フィードバック制御で処理される数1式の位置PID制御の演算307における調整係数をXk=Tpb/ΔTkに変更した後に、出力計算を実行する。ここで示すTpbは、位置フィードバック規定周期時間(2ミリ秒)を表す。
続いて、速度フィードバック制御周期時間の変更処理を行う。速度フィードバック制御周期の決定方法は、指令実行コマンド受信間隔ΔTkを速度フィードバック周期の規定時間0.5ミリ秒で分割する。ここで、速度フィードバック周期時間をTs1、Ts2、・・・、Tsm(ここで、mは速度フィードバック制御インデックス)とすると、Ts1〜Tsm−1までは、速度フィードバック周期の規定時間0.5ミリ秒とする。Tsmは、ΔTkを規定の速度フィードバック制御周期0.5ミリ秒で除算した剰余となる。
本実施形態では、ΔTk内で実行される速度フィードバック制御の最終速度フィードバック制御周期時間を変更する。ここで、決定される速度フィードバック制御周期は、Ts1、Ts2、・・・、Tsm−1は、規定の速度フィードバック制御周期Tsbで出力計算を実行する。m回目の速度フィードバック制御においては、速度フィードバック制御で処理される数2式のPID制御演算における調整係数yk=Tsb/Tsm−1に変更した後に、出力計算を実行する。ここで示すTsbは、速度フィードバック規定周期時間(0.5ミリ秒)を表す。
次に、モータ駆動開始時の上位制御器101とモータ制御器102〜104の処理シーケンス及び処理フローについて、図3〜図5を参照しながら説明する。図3は、本実施形態に係る分散制御装置3によるモータ制御指令を実行する際のタイムチャートである。図4は、上位制御器101とモータ制御器102〜104とのコマンド通信におけるシーケンス図である。図5は、コマンド受信後のモータ制御器102〜104のフローチャートである。
上位制御器101から送信された指令コマンドC1,nを受信すると、モータ制御器102に実装される通信制御器に具備される不図示の受信バッファに指令コマンドC1,nが保存される(制御指令記憶工程)。ここで、nは指令コマンド及び指令実行コマンドの受信順序を表すインデックスである。
続いて、上位制御器101より送信される指令実行コマンドEnを受信することによって、モータ制御器102の演算器にて、受信割り込みが発生して、指令コマンドC1,nの読み出しと指令コマンドキューへの保存及び指令コマンドが実行される。指令コマンドキューは、保存した順に読み出しが行えるFIFO構成のデータ構造を成している。初回の指令実行コマンドE1を受信した際、受信バッファに保存される指令コマンドC1,1を読み出してコマンドキューへ予め設定された実行遅延数分、指令実行コマンドE1受信割り込み処理401にて、同一データ(C1,1)を保存する。その後、コマンドキューより指令コマンドを読み出して404で指令コマンドCE1,1の実行を行う。
続いて、指令実行コマンドE2受信割り込み処理402にて、指令コマンドC1,2の読み出しと、指令コマンドキューへの保存及び指令コマンドキューから指令コマンドCE1,2を読み出す。また、指令実行コマンドE1とE2を受信した受信時刻T1、T2から受信間隔ΔT1,1を計測(受信間隔計測工程)して、前述の速度フィードバック制御周期時間の変更とX1及びY1の変更(パラメータ変更工程)を行う。その後に、405で指令コマンドCE1,2を実行する(モータ制御工程)。
ここで、405の処理にて、指令コマンドキューに保存される未実行の指令コマンドC1,2を指令コマンド予測値としてPID制御を行うフィードフォワード制御を組み合わせてモータ駆動制御を行ってもよい。403以降の処理は、402及び405と同一の処理を実行する。モータ制御器103、104においても同様の処理が実行されている。
次に、上位制御器101とモータ制御器102〜104とを各軸にそれぞれ配設した3軸アクチュエータで構成されるロボットアーム2の処理動作を、図4及び図5を参照しながら説明する。図4は、上位制御器101とモータ制御器102〜104とのコマンド通信におけるシーケンス図である。図5は、コマンド受信後のモータ制御器102〜104のフローチャートである。
ロボットアーム2(3軸アクチュエータ)の動作を開始する前に、上位制御器101は、接続されるモータ制御器102〜104へ初期動作指令コマンド及び指令実行コマンドを送信する。モータ制御器102〜104は、初期動作指令コマンド及び指令実行コマンドを受信して、演算器のレジスタ及び内部変数の初期化処理実行後に、あらかじめ設定された各アクチュエータ原点位置へモータ駆動により移動させる(S601)。
続いて、ユーザー操作盤を操作してロボットアーム2の動作を開始する。動作を開始すると、上位制御器101は、軌道生成計算を開始すると共に、S501のシーケンスにてモータ制御器102へモータ105の回転目標角度指令値R1,1を含む指令コマンドC1,1を送信する。同様に、上位制御器101は、モータ制御器103にモータ106の回転目標角度指令値R2,1を含む指令コマンドC2,1を送信し、モータ制御器104にモータ107の回転目標角度指令値R3,1を含む指令コマンドC3,1を送信する。指令コマンドC1,1、C2,1、C3,1を送信すると、上位制御器101は、モータ制御器102〜104へ指令実行コマンドE1をブロードキャスト送信する。
なお、ここで示す記号添字は、前段がモータ制御器インデックス(モータ制御器102が1、モータ制御器103が2、モータ制御器104が3)、後段が上位制御器101より送信された指令コマンドの順番を表している。
モータ制御器102〜104が指令コマンドC1,1、C2,1、C3,1を受信する(S602)と、指令コマンドと指令コマンドに付加された回転目標角度指令値R1,1、R2,1、R3,1を通信ドライバの受信バッファへ記憶する。
続いて、上位制御器101よりブロードキャスト送信された指令実行コマンドE1を受信(S603)したことによるブロードキャスト受信割り込みが、モータ制御器102〜104の演算器にて発生する。モータ制御器102〜104は、ブロードキャスト受信割り込み処理の中で、モータ制御器102〜104の演算器が内蔵するタイマにより計測した指令実行コマンドE1の受信時刻T1,1、T2,1、T3,1を演算器の揮発メモリ内に記憶する(S604)。
次に、モータ制御器102〜104に接続されたモータ軸に結合された回転位置検出器108〜110により取得したモータ回転角度等を含むモータ制御器のステータス情報S1,1、S2,1、S3,1を、上位制御器101へ返信する(S605)。ここで、モータ制御器102〜104は、受信バッファに記憶された指令コマンドC1,1、C2,1、C3,1及び回転目標角度指令値R1,1、R2,1,R3,1を読み出す(S606)。そして、読み出した回転目標角度指令値R1,1、R2,1、R3,1を指令コマンドキューに記憶する処理を、モータ制御器102〜104の不揮発メモリ内に設定されたコマンド実行遅延数と指令コマンドキューのデータ数が一致するまで繰り返す(S607)。
次に、モータ制御器102〜104は、指令コマンドCE1,1、CE2,1、CE3,1を取り出した後に、前回の指令実行コマンドと今回の指令実行コマンドの受信時刻の時刻差ΔT1,1、ΔT2,1、ΔT3,1をそれぞれ計算する(S608、S609)。なお、初回の指令コマンド実行のため規定指令実行コマンドの送信周期間隔(所定の制御指令発信間隔)としての時刻差ΔT1,1、ΔT2,1、ΔT3,1の値は、2ミリ秒としている。
続いて、モータ制御器102〜104は、モータ制御に使用する制御パラメータの値の変更処理(S610、S611、S612)を行った後に、コマンドキューより読み出した指令コマンドCE1,1、CE2,1、CE3,1を実行する(S613)。これにより、モータ制御器102〜104に接続されるモータの回転角度(応答値)P1,1、P2,1、P3,1がモータ回転軸に結合される回転位置検出器108〜110より取得される。また、モータ制御器102〜104への回転目標角度指令値R1,1、R2,1、R3,1が取得される。そして、回転目標角度指令値R1,1、R2,1、R3,1とモータ制御器102〜104に接続されるモータの回転角度P1,1、P2,1、P3,1との偏差(情報)に応じて、モータ105〜107への出力を決定してモータ駆動処理を実行する。
上位制御器101は、モータ制御器102〜104より送信されたステータス情報S1,1、S2,1、S3,1を確認後、モータ制御器102〜104に異常等がなければ、S502のシーケンスにて、次の指令コマンドC1,2、C2,2、C3,2を送信する。モータ制御器102〜104は、指令コマンドC1,2、C2,2、C3,2を受信し、指令コマンドと指令コマンドに付加される回転目標角度指令値R1,2、R2,2、R3,2を受信バッファへ記憶する。
続いて、上位制御器101は、モータ制御器102〜104へ指令実行コマンドE2をブロードキャスト送信する。上位制御器101よりブロードキャスト送信された指令実行コマンドE2をモータ制御器102〜104が受信すると、ブロードキャスト受信割り込みが、モータ制御器102〜104の演算器にて発生する。モータ制御器102〜104は、ブロードキャスト受信割り込み処理の中で、モータ制御器に内蔵するタイマにて指令実行コマンドE2の受信時刻T1,2、T2,2、T3,2を記憶する処理(S604)を実行する。S605の処理にて、モータ制御器102〜104に配設された回転位置検出器108〜110より取得したモータ回転角度等を含む、モータ制御器102〜104のステータス情報S1,2、S2,2、S3,2を上位制御器101へ返信する。
続いて、S606の処理にて、受信した指令コマンドC1,2、C2,2、C3,2をコマンドキューに記憶して、コマンド実行遅延数とコマンドキューデータ数Qの比較を行う。初回の指令コマンドC1,1、C2,1、C3,1、指令実行コマンドE1の受信処理にてコマンド実行遅延数分の指令コマンドは、コマンドキューに保存されている。そのため、以降は、指令実行コマンドが受信される度に、モータ制御器に送信された指令コマンドを指令コマンドキューに記憶した後に、指令コマンドキューより指令コマンドCE1,2、CE2,2、CE3,2を読み出し、読み出した指令コマンドを実行する。
ここで、指令コマンドキューより読み出される指令コマンドCE1,2、CE2,2、CE3,2は、C1,1、C2,1、C3,1になり、指令コマンドに付加される回転目標角度指令値はR1,1、R2,1、R3,1となる。
次に、S609の処理にて、前回の指令実行コマンドE1の受信時刻T1,1、T2,1、T3,1と今回の指令実行コマンドE2の受信時刻T1,2、T2,2、T3,2から指令実行コマンド受信間隔ΔT1,2、ΔT2,2、ΔT3,2を算出する。モータ制御器102〜104は、S610、S611、S612の処理でモータ制御に用いる制御パラメータの変更を行った後、コマンドキューより読み出した指令コマンドCE1,2、CE2,2、CE3,2を実行し、モータの駆動を開始するS613を実行する。S613の処理では、指令コマンドCE1,2、CE2,2、CE3,2に含まれるモータの回転目標角度指令値とモータの回転角度P1,2、P2,2、P3,2をモータ回転軸に結合され回転位置検出器108〜110より取得する。そして、モータの回転目標角度指令値とモータの回転角度P1,2、P2,2、P3,2の偏差に応じてモータ制御器102〜104に接続されるモータ105〜107への出力を決定してモータ駆動処理を実行する。
上位制御器101は、モータ制御器102〜104からのステータス情報S1,2、S2,2、S3,2を確認後、モータ制御器に異常等の発生がなければ、S503のシーケンスにて、次の指令コマンドC1,3、C2,3、C3,3を送信する。そして、モータ制御器102〜104は、指令コマンドC1,3、C2,3、C3,3を受信して、指令コマンドと指令コマンドに付加される回転目標角度指令値R1,3、R2,3、R3,3を受信バッファへ記憶する。
続いて、上位制御器101は、モータ制御器102〜104へ指令実行コマンドE3をブロードキャスト送信する。上位制御器101よりブロードキャスト送信された指令実行コマンドE3をモータ制御器102〜104が受信すると、ブロードキャスト受信割り込みが、モータ制御器102〜104の演算器にて発生する。モータ制御器102〜104は、ブロードキャスト受信割り込み処理の中で、各モータ制御器に内蔵するタイマにて指令実行コマンドE3の受信時刻T1,3、T2,3、T3,3を記憶する処理604を実行する。また、S605の処理にて、モータ制御器102〜104に接続されるモータ軸に結合された回転位置検出器108〜110より取得したモータ回転角度等を含む、モータ制御器102〜104のステータス情報を上位制御器101へ返信する。
続いて、S606の処理にて受信した指令コマンドC1,3、C2,3、C3,3をコマンドキューに記憶する。そして、指令コマンドキューより指令コマンドCE1,3、CE2,3、CE3,3を読み出し、読み出した指令コマンドを実行する処理となる。ここで、指令コマンドキューより読み出される指令コマンドCE1,3、CE2,3、CE3,3は、C1,2、C2,2、C3,2となり、指令コマンドに付加される回転目標角度指令値はR1,2、R2,2、R3,2となる。
次に、S609の処理にて、前回の指令実行コマンドE1の受信時刻T1,2、T2,2、T3,2と今回の指令実行コマンドE3の受信時刻T1,3、T2,3、T3,3から指令実行コマンド受信間隔ΔT1,3、ΔT2,3、ΔT3,3を算出する。モータ制御器102〜104は、S610、S611、S612の処理にてモータ制御に使用する制御パラメータの値の変更処理を行い、読み出した指令コマンドCE1,3、CE2,3、CE3,3を実行してモータの駆動を開始するS613の処理を実行する。
S613の処理では、まず、指令コマンドCE1,3、CE2,3、CE3,3に含まれるモータの回転目標角度指令値と、モータの回転角度P1,3、P2,3、P3,3をモータ回転軸に結合され回転位置検出器108〜110より取得する。そして、回転目標角度指令値と回転角度P1,3、P2,3、P3,3の偏差に応じて、モータ制御器102〜104に接続されるモータ105〜107への出力を決定してモータ駆動処理を実行する。以降、同様の処理を繰り返して、上位制御器101より送信された指令コマンドを実行してモータ駆動制御を実行する。
次に、モータ駆動を停止する際の処理内容について図6を参照しながら説明する。図6は、停止時のモータ制御器のフローチャートである。
モータの停止制御は、上位制御器101からの停止指令コマンドを受信することにより実行される。本実施形態においては、即時停止を実行するモータ停止方法と、コマンドキューに残存する指令コマンドを実行後にモータ停止を実行するモータ停止方法と、の2種類の停止方法を有している。
モータの即時停止は、非常停止等の緊急性を有する状況でのモータ停止であり、コマンドキューに残存するコマンドを実行せずにモータ駆動を停止する。一方、コマンドキューに残存する指令コマンドを実行後にモータ停止は、通常の制御シーケンスによるモータ停止方法となる。これらの停止方法の切り替えは、上位制御器101の判断により行われ、上位制御器101がシステムの状況によりモータの停止方法を選択して、モータ停止方法を選択するフラグ情報を含む停止指令コマンドを送信することによって実現される。
次に、モータ停止時の処理内容について説明する。上位制御器101よりモータ制御器に停止方法を選択するフラグ情報を含む停止指令コマンドSが送信されると、停止指令コマンドに付与されているIDによりモータ制御器が識別され、該当するモータ制御器は停止指令コマンドSを受信する。S701の処理にて、停止指令コマンドを受信したモータ制御器は、通信制御器に内蔵される不図示の受信バッファに記憶される。
続いて、上位制御器より指令実行コマンドEが送信され、S702の処理にて、指令実行コマンドE受信処理がなされる。そして、指令実行コマンドE受信処理の中で、上位制御器101へ該当モータ制御器のモータ回転角度情報を含むステータス情報を返信する処理がS703として実行される。次に停止指令コマンドSを読み出し、停止指令コマンドSに付加される停止モードパラメータの判定により緊急停止か通常停止の判別をS704の処理で実行される。S704の処理にて、緊急停止の場合はコマンドキュー内のデータをすべてクリアし(S713)、モータへのPWM出力停止をS712の処理にて行う。この際に、モータが負荷イナーシャの大きい物体を駆動している場合には、上位制御器にて減速停止させるモータ回転角度指令値を生成する。
ここで、生成したモータの回転目標角度指令値情報を含む指令コマンドを順次送信して減速停止させるか、モータ制御器内で減速停止する速度指令値を生成して、モータ制御器で実行されている速度制御にて減速停止制御を行ってもよい。
通常停止の場合には、S706の処理にて、現在のキューに残存する指令コマンド数を判定して、指令コマンドが残っている場合にはS707の処理にてモータ制御器内のタイマにより規定制御周期間隔で指令コマンドを取り出す。そして、S708の処理にて指令コマンドを実行する処理をキューが空になるまで続ける。キューに残るすべての指令コマンドを実行すると、S709の処理にて、モータに結合される位置検出器より現在位置情報を取得する。そして、前回の制御周期における位置情報との差分をモータ軸の回転速度として、予め設定された規定速度と比較することによりモータ出力を停止させるかを判定する。
現在のモータ軸回転速度が規定速度より超過している場合には、モータ制御器に配設されるモータドライバ回路及びモータが接続される機構部品の損傷を抑制するために速度制御による減速停止処理を実行する。
減速停止処理における減速加速度は、予め設定された加速度を用いて速度指令値をモータ制御器内の処理にて生成して、モータ軸の回転速度が規定速度以下になるまで速度制御を実行する処理がなされている。また、減速停止時の速度指令値生成方法は、予め設定された減速比率によって、現在速度に減速比率を乗ずる値を速度指令値として減速停止処理を速度制御によって行ってもよい。本実施形態においては、減速停止処理時に速度制御を実行する周期は0.5ミリ秒とした。
減速停止処理後、モータ軸の回転速度が規定速度以下となり次第、モータ出力の停止を行う。本実施形態においては、予め設定された減速停止時間により、減速停止時間を超過した場合にはモータ軸の回転速度が規定速度以下となっていない場合もS712の処理にてモータへのPWM出力を停止させる処理とし、減速停止時間は500ミリ秒に設定した。
上位制御器から指令コマンドに同期してモータ駆動制御を処理するモータ制御器において以上の方法を用いたモータ制御器によって等速回転にてモータ駆動を行った際のモータ回転速度及びモータトルクの計測結果を図7(b)に示す。一方、図7(a)は、上位制御器の計算負荷上昇により制御指令送信周期が変動した際のモータ回転速度とモータトルクの計測結果である。
図7(a)では、図7(b)と比較してモータ回転速度、モータトルクともに微小な振動が見られる。これは、モータ制御器の制御周期が変動することよって、予め規定制御周期にて調整された制御パラメータによりモータ駆動をことに起因する。モータ駆動を、目標値と応答値の偏差から比例制御、積分制御、微分制御を行うPID制御にてモータへの出力を決定する場合には、上位制御器からの制御指令が変動する。即ち制御周期が変動することによって、例えば、微分制御における微分時間が変化することになる。これにより、微分制御係数を固定値にてPID制御を行い、モータ出力値を決定する場合にモータ出力値が微分時間の変動に応じて微小に変動することになる。
モータ出力値に変動は、モータ巻線に流れる電流が変化してモータトルク及びモータ回転速度が変動する。これにより、モータ制御器を各軸に配したロボットアームに利用する場合には、モータ回転速度の変動によりロボットアームの位置再現性の低下を招くことになる。また、ハンド等にモータ制御器を利用する場合には、モータトルクの変動によって、把持動作時の把持力の変動を発生させることが懸念される。
図7(b)は、図7(a)と比較して、上位制御器からの指令実行コマンド受信周期が変動した際も、モータの回転速度モータトルクの変動が抑制されていることが確認できる。これにより、上位制御器から送信される指令コマンドの受信周期が変動しても、モータの回転速度やトルクの変動を低減でき、アクチュエータ等の駆動制御に用いる場合には、その位置精度等の改善を工業的に安価かつ容易に実現することができる。
なお、本発明は、指令実行コマンドの受信間隔が指定間隔(本実施形態においては2ミリ秒)以下である場合が好ましく、特に指定間隔の半分以下であることが好ましい。
1 ロボット装置
2 ロボットアーム
3 分散制御装置
101 上位制御器
102、103、104 モータ制御器
105、106、107 モータ
2 ロボットアーム
3 分散制御装置
101 上位制御器
102、103、104 モータ制御器
105、106、107 モータ
Claims (10)
- 複数のモータを制御する複数のモータ制御器と、前記複数のモータ制御器のそれぞれに接続された上位制御器と、を有し、前記複数のモータ制御器のそれぞれが前記上位制御器からの制御指令に応じて前記複数のモータを制御する分散制御装置において、
前記複数のモータ制御器のそれぞれは、
前記上位制御器が発信する制御指令を記憶可能なメモリと、
前記上位制御器からの制御指令の受信間隔を計測可能なタイマと、
前記上位制御器からの制御指令を受信すると、制御指令をいったん前記メモリに記憶し、次の制御指令を受信すると、記憶した制御指令と次の制御指令との受信間隔を前記タイマで計測し、計測した受信間隔が所定の制御指令発信間隔と異なる場合には、前記制御指令の発信間隔に応じて前記複数のモータの出力値を設定するために予め設定された制御パラメータを、計測した受信間隔に応じた制御パラメータに変更し、変更した制御パラメータを用いてモータ制御を実行する制御部と、を備えた、
ことを特徴とする分散制御装置。 - 前記モータ制御器で実行されるモータ制御が、指令値と応答値との偏差を算出して比例制御、積分制御及び微分制御を行うPID制御であり、前記制御パラメータが前記PID制御の演算における積分係数、微分係数である、
ことを特徴とする請求項1に記載の分散制御装置。 - 前記PID制御は、モータの回転目標角度指令値と回転角度応答値との偏差を算出して比例制御、積分制御及び微分制御を行う位置PID制御と、モータの速度指令値と回転速度応答値との偏差を算出して比例制御、積分制御及び微分制御を行う速度PID制御と、モータのトルクに寄与する電流値を変換したトルク指令値とトルク応答値との偏差を算出して比例制御、積分制御及び微分制御を行う電流PID制御と、を有する、
ことを特徴とする請求項2に記載の分散制御装置。 - 各関節に複数のモータが設けられた多軸多関節のロボットアームと、
前記上位制御器と、前記ロボットアームの前記複数のモータを制御する前記複数のモータ制御器と、を有する請求項1から3のいずれか1項に記載の分散制御装置と、を備えた、
ことを特徴とするロボット装置。 - 複数のモータを制御する複数のモータ制御器のそれぞれに接続された上位制御器からの制御指令に応じて、前記複数のモータ制御器のそれぞれが前記複数のモータを制御する分散制御方法において、
前記モータ制御器のそれぞれの制御部が、前記上位制御器からの制御指令を受信すると、制御指令をメモリに記憶する制御指令記憶工程と、
前記制御部が、次の制御指令を受信すると、受信間隔を計測可能なタイマで、前記メモリに記憶した制御指令と次の制御指令との受信間隔を計測する受信間隔計測工程と、
前記制御部が、計測した受信間隔が所定の制御指令発信間隔と異なる場合に、前記制御指令の発信間隔に応じて前記複数のモータの出力値を設定するために予め設定された制御パラメータを、計測した受信間隔に応じた制御パラメータに変更するパラメータ変更工程と、
前記制御部が、変更したパラメータでモータ制御を実行するモータ制御工程と、を備えた、
ことを特徴とする分散制御方法。 - 請求項5に記載の各工程をコンピュータに実行させるための分散制御プログラム。
- 請求項6に記載の分散制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
- 請求項5に記載の分散制御方法を用いて、前記モータ制御器のそれぞれの制御部が、多軸多関節のロボットアームの各軸に設けられた複数のモータを制御する、
ことを特徴とする多関節ロボットの分散制御方法。 - 請求項8に記載の各工程をコンピュータに実行させるための多関節ロボットの分散制御プログラム。
- 請求項9に記載の多関節ロボットの分散制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012277994A JP2014123188A (ja) | 2012-12-20 | 2012-12-20 | 分散制御装置及び分散制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012277994A JP2014123188A (ja) | 2012-12-20 | 2012-12-20 | 分散制御装置及び分散制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014123188A true JP2014123188A (ja) | 2014-07-03 |
Family
ID=51403636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012277994A Pending JP2014123188A (ja) | 2012-12-20 | 2012-12-20 | 分散制御装置及び分散制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014123188A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015159991A1 (en) * | 2014-04-15 | 2015-10-22 | Canon Kabushiki Kaisha | Carriage transport system and method of manufacturing article |
WO2016072308A1 (ja) * | 2014-11-06 | 2016-05-12 | Ntn株式会社 | インホイールモータ装置およびそのインホイールモータ制御装置 |
WO2018061552A1 (ja) * | 2016-09-29 | 2018-04-05 | 日本電産株式会社 | モータシステム、解析装置、および電気製品 |
JP2018055395A (ja) * | 2016-09-29 | 2018-04-05 | ブラザー工業株式会社 | 数値制御装置と制御方法 |
CN108089488A (zh) * | 2016-11-21 | 2018-05-29 | 精工爱普生株式会社 | 机器人及机器人系统 |
WO2020008924A1 (ja) * | 2018-07-06 | 2020-01-09 | パナソニックIpマネジメント株式会社 | モータ装置、コントローラ、モータシステム、ファンユニット、及び通信方法 |
CN118386253A (zh) * | 2024-06-26 | 2024-07-26 | 广东美的电气有限公司 | 扭矩关断模块、扭矩关断方法、安全控制模块及机器人 |
-
2012
- 2012-12-20 JP JP2012277994A patent/JP2014123188A/ja active Pending
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10669106B2 (en) | 2014-04-15 | 2020-06-02 | Canon Kabushiki Kaisha | Carriage transport system and method of manufacturing article |
JP2015202793A (ja) * | 2014-04-15 | 2015-11-16 | キヤノン株式会社 | 台車搬送システム |
WO2015159991A1 (en) * | 2014-04-15 | 2015-10-22 | Canon Kabushiki Kaisha | Carriage transport system and method of manufacturing article |
WO2016072308A1 (ja) * | 2014-11-06 | 2016-05-12 | Ntn株式会社 | インホイールモータ装置およびそのインホイールモータ制御装置 |
WO2018061552A1 (ja) * | 2016-09-29 | 2018-04-05 | 日本電産株式会社 | モータシステム、解析装置、および電気製品 |
JP2018055395A (ja) * | 2016-09-29 | 2018-04-05 | ブラザー工業株式会社 | 数値制御装置と制御方法 |
JPWO2018061552A1 (ja) * | 2016-09-29 | 2019-07-11 | 日本電産株式会社 | モータシステム、解析装置、および電気製品 |
CN108089488A (zh) * | 2016-11-21 | 2018-05-29 | 精工爱普生株式会社 | 机器人及机器人系统 |
JP2018083235A (ja) * | 2016-11-21 | 2018-05-31 | セイコーエプソン株式会社 | ロボット、及びロボットシステム |
WO2020008924A1 (ja) * | 2018-07-06 | 2020-01-09 | パナソニックIpマネジメント株式会社 | モータ装置、コントローラ、モータシステム、ファンユニット、及び通信方法 |
CN112368936A (zh) * | 2018-07-06 | 2021-02-12 | 松下知识产权经营株式会社 | 马达装置、控制器、马达系统、风扇单元和通信方法 |
US20210140441A1 (en) * | 2018-07-06 | 2021-05-13 | Panasonic Intellectual Property Management Co., Ltd. | Motor device, controller, motor system, fan unit, and communication method |
JPWO2020008924A1 (ja) * | 2018-07-06 | 2021-07-08 | パナソニックIpマネジメント株式会社 | モータ装置、コントローラ、モータシステム、ファンユニット、及び通信方法 |
JP7281680B2 (ja) | 2018-07-06 | 2023-05-26 | パナソニックIpマネジメント株式会社 | モータ装置、コントローラ、モータシステム、ファンユニット、及び通信方法 |
US11828291B2 (en) | 2018-07-06 | 2023-11-28 | Panasonic Intellectual Property Management Co., Ltd. | Motor device, controller, motor system, fan unit, and communication method |
CN112368936B (zh) * | 2018-07-06 | 2024-03-05 | 松下知识产权经营株式会社 | 马达装置、控制器、马达系统、风扇单元和通信方法 |
CN118386253A (zh) * | 2024-06-26 | 2024-07-26 | 广东美的电气有限公司 | 扭矩关断模块、扭矩关断方法、安全控制模块及机器人 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2014123188A (ja) | 分散制御装置及び分散制御方法 | |
CN106873506B (zh) | 校正装置、校正装置的控制方法、信息处理程序及记录介质 | |
CN101901281B (zh) | 消耗电力估计装置 | |
JP5650814B1 (ja) | フィードフォワード制御を備えたモータ制御装置 | |
JP3830475B2 (ja) | 制御装置 | |
CN106020124B (zh) | 伺服马达控制装置以及碰撞检测方法 | |
EP3023208B1 (en) | Control device for motor drive device, control device for multi-axial motor, and control method for motor drive device | |
JP4650062B2 (ja) | ロボット制御装置およびロボットの位置決め精度補正方法 | |
JP5698777B2 (ja) | モータの加速度に応じたプリロードトルク値を生成するモータ制御装置 | |
US9434075B2 (en) | Method for operating a multi-limb manipulator | |
WO2019106963A1 (ja) | 機械設備制御システム、機械設備制御装置、及び機械設備制御方法 | |
JP2007052505A (ja) | 数値制御装置 | |
CN110941242A (zh) | 电动机控制装置 | |
US20180262153A1 (en) | Motor control system | |
JPH09282020A (ja) | サーボモータ駆動装置 | |
JP5151994B2 (ja) | 慣性モーメント同定装置とその同定方法、ならびにその同定装置を備えたモータ制御装置 | |
JP3551328B2 (ja) | 同期制御装置 | |
US10474117B2 (en) | Control apparatus, control method for control apparatus, control program, and storage medium | |
JP7159945B2 (ja) | 処理装置 | |
WO2019239594A1 (ja) | 数値制御装置 | |
JP5460371B2 (ja) | 数値制御装置 | |
JP2016005296A (ja) | モータ駆動装置の制御方法、モータ駆動装置及びロボット装置 | |
JP2019068510A (ja) | パラメータ決定支援装置 | |
JP7460357B2 (ja) | 制御装置、及び制御システム | |
JP3805476B2 (ja) | モータ制御装置 |