JP2013169063A - モータ制御装置、ロボット装置及びモータ制御方法 - Google Patents
モータ制御装置、ロボット装置及びモータ制御方法 Download PDFInfo
- Publication number
- JP2013169063A JP2013169063A JP2012030559A JP2012030559A JP2013169063A JP 2013169063 A JP2013169063 A JP 2013169063A JP 2012030559 A JP2012030559 A JP 2012030559A JP 2012030559 A JP2012030559 A JP 2012030559A JP 2013169063 A JP2013169063 A JP 2013169063A
- Authority
- JP
- Japan
- Prior art keywords
- command
- synchronization
- motor
- motor control
- time
- 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
- Control Of Electric Motors In General (AREA)
- Control Of Multiple Motors (AREA)
Abstract
【課題】同期処理を行う際に、駆動指令の変動により制御の連続性が損なわれ、回転モータの出力トルク等の変動を招いていた。
【解決手段】各モータ制御装置M1〜M6は、回転モータ121〜126の回転位置が位置指令に追従するようモータ駆動部109に出力する駆動指令を、予め設定された時間間隔で周期的に演算するモータ制御処理を行う演算部111を備える。この演算部111は、外部から同期指令を受信したときに、駆動指令の演算の開始時刻を同期指令に同期させる同期処理を行う。この同期処理として、演算部111は、同期指令を受信したときに演算する駆動指令の演算開始時刻と同期指令の受信時刻との時間差を求める。次いで、演算部111は、時間差を所定数に分割して複数の調整時間を求める。次いで、演算部111は、同期指令を受信してからの所定数の周期の各時間間隔に、各調整時間をそれぞれ加算する補正を行う。
【選択図】図2
【解決手段】各モータ制御装置M1〜M6は、回転モータ121〜126の回転位置が位置指令に追従するようモータ駆動部109に出力する駆動指令を、予め設定された時間間隔で周期的に演算するモータ制御処理を行う演算部111を備える。この演算部111は、外部から同期指令を受信したときに、駆動指令の演算の開始時刻を同期指令に同期させる同期処理を行う。この同期処理として、演算部111は、同期指令を受信したときに演算する駆動指令の演算開始時刻と同期指令の受信時刻との時間差を求める。次いで、演算部111は、時間差を所定数に分割して複数の調整時間を求める。次いで、演算部111は、同期指令を受信してからの所定数の周期の各時間間隔に、各調整時間をそれぞれ加算する補正を行う。
【選択図】図2
Description
本発明は、回転モータを制御するモータ制御装置、複数のモータ制御装置を備えて回転モータを分散制御するロボット装置、モータ制御方法に関する。
一般に、産業用ロボットにおけるロボットアーム等のロボット本体に複数の回転モータ及びモータ制御装置を配設し、上位制御装置により各モータ制御装置に各回転モータの位置指令を送信し、各モータ制御装置に各回転モータを制御させる分散制御を行っている。各モータ制御装置は、駆動指令に従って回転モータを駆動するモータ駆動部と、このモータ駆動部に出力する駆動指令を周期的に演算する演算部とを有している。この分散制御において、モータ制御装置間でモータ制御処理、即ち駆動指令の演算のタイミングが非同期に行われている場合には、産業用ロボットの位置精度や繰り返し位置精度の低下を招いていた。そこで、従来、分散制御において各モータ制御装置間の演算のタイミングの同期が図られている。
この同期方法として、通信ライン等の共有信号線を使用することや同期指令を発行してモータ制御時間を調整することで、各モータ制御装置間のモータ制御処理周期の同期を図ることが特許文献1に開示されている。また、各モータ制御装置間で共有する信号線へ上位制御装置から同期信号を送信することによって、モータ制御装置間での同期を図ることが特許文献2に開示されている。
しかしながら、上述したモータ制御処理において、モータ制御処理の周期の急変は制御が不連続となり、回転モータのトルク変動が発生する。つまり、モータ制御装置が同期指令を受信した時刻に、モータ制御処理の開始時刻を変更して即時合致させると、同期指令の受信前後にて駆動指令が急激に変動することがある。特に変更時間が大きい場合には、同期指令の受信前後にて駆動指令が変動大となる。
例えばモータ制御処理における電流制御の場合には、各モータ制御装置の処理内で周期的に電流を検出して、回転モータに流れる電流が電流指令となるように制御される。しかしながら、同期指令の受信時刻に同期するように電流制御のための周期タイマの時間調整が行わるので、モータ電流検出周期が不定期となり、モータ電流制御への入力となる電流指令と回転モータの電流との差分が増大する。モータ電流制御における電流指令と回転モータの電流との差分の増大はモータトルクの変動を発生させ、産業用ロボットの位置精度やハンドロボット等の物品を把持する場合にはその把持力等に影響を与える。
そこで、本発明は、同期処理を実行した際に、回転モータのトルク変動を抑制することが可能なモータ制御装置、複数の回転モータを分散制御するロボット装置、モータ制御方法を提供することを目的とする。
本発明のモータ制御装置は、入力を受けた駆動指令に従って回転モータを駆動するモータ駆動部と、前記回転モータの回転位置が外部から受信した位置指令に追従するよう前記モータ駆動部に出力する前記駆動指令を、予め設定された時間間隔で周期的に演算するモータ制御処理を行うと共に、外部から同期指令を受信したときに、前記駆動指令の演算の開始時刻を前記同期指令に同期させる同期処理を行う演算部と、を備え、前記演算部は、前記同期処理として、前記同期指令を受信したときに演算対象となっている前記駆動指令の演算開始時刻と前記同期指令の受信時刻との時間差を求め、前記時間差を所定数に分割して複数の調整時間を求め、前記同期指令を受信してからの前記所定数の周期の前記各時間間隔に、前記各調整時間をそれぞれ加算する補正を行う、ことを特徴とする。
本発明によれば、回転モータのトルク変動が生じるのを抑制しながらも、駆動指令の演算開始時刻を同期させることができる。
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。以下に図を用いて本発明の実施形態について詳細に説明するが、本発明の分散制御を利用した産業用ロボットの構成及びモータ制御の同期処理方法はこれにより何ら限定されるものではない。
[第1実施形態]
図1は、本発明の第1実施形態に係るロボット装置の概略構成を示す斜視図である。ロボット装置1は、産業用ロボットであり、ロボットコントローラ100と、ロボット本体としての多軸(6軸)のロボットアーム300と、ロボットアーム300に設けられ、コントローラ100に接続された複数(6つ)のモータ制御装置M1〜M6とを備える。また、ロボット装置1は、ロボットアーム300の先端に設けられたロボットハンド400を備える。
図1は、本発明の第1実施形態に係るロボット装置の概略構成を示す斜視図である。ロボット装置1は、産業用ロボットであり、ロボットコントローラ100と、ロボット本体としての多軸(6軸)のロボットアーム300と、ロボットアーム300に設けられ、コントローラ100に接続された複数(6つ)のモータ制御装置M1〜M6とを備える。また、ロボット装置1は、ロボットアーム300の先端に設けられたロボットハンド400を備える。
ロボットアーム300は、アームリンクを連結してなる複数(6つ)の関節J1〜J6と、各関節に設けられ、各関節を駆動する複数(6つ)の回転モータ121〜126と、を有している。各モータ制御装置M1〜M6は、各回転モータ121〜126に接続されており、本実施形態では各回転モータ121〜126に隣接して設けられている。各回転モータ121〜126は、例えばブラシレスDCモータ等の回転電機である。
ロボットコントローラ100は、各モータ制御装置M1〜M6に接続された、上位制御装置101及び電源装置102を備えている。上位制御装置101は、各モータ制御装置M1〜M6に指令を送信することで各回転モータ121〜126に各回転モータ121〜126を制御させる分散制御を行う。上位制御装置101は、教示による動作を実現するためにロボットアーム300の軌道を計算する。上位制御装置101は、各モータ制御装置M1〜M6に、軌道計算の結果に基づく各回転モータの動作を指示する動作指令(具体的には、位置指令)、動作指令に基づく動作の実行の開始を指示する動作実行開始指令、同期指令等、各種指令を送信する。電源装置102は、各モータ制御装置M1〜M6、及び各モータ制御装置M1〜M6を介して各回転モータ121〜126に電力を供給する。
図2は、ロボット装置1のシステム構成を示すブロック図である。各モータ制御装置M1〜M6は、共通の通信線であるシリアル通信線130で上位制御装置101に接続されている。上位制御装置101は、モータ制御装置M1〜M6へシリアル通信線130を介してシリアル通信によりCAN等の通信プロトコルにて各種指令を信号として送信する。また、上位制御装置101と各モータ制御装置M1〜M6との間では、シリアル通信線130を介してステータス通知等の送受信が行われている。
各モータ制御装置M1〜M6は、同一の構成であり、以下、1つのモータ制御装置M1について説明し、他のモータ制御装置M2〜M6については、同一符号を付して説明を省略する。
モータ制御装置M1は、上位制御装置101から各種指令を示す信号を受信する通信ドライバ103と、電源装置102により印加された電圧を所定の直流電圧に変換するDC電圧変換器104と、を備えている。またモータ制御装置M1は、マイクロコンピュータで構成された制御器105と、複数のスイッチング素子を有し、回転モータ121に交流電流を供給するインバータ106と、を備えている。
制御器105は、演算部111と、通信制御部112と、メモリ113と、クロック生成部114と、タイマ115と、PWM波形生成部116と、AD変換部117と、カウンタ118と、を有している。本実施形態では、PWM波形生成部116とインバータ106とでモータ駆動部109が構成されている。
また、モータ制御装置M1は、インバータ106から回転モータ121(具体的には回転モータ121の巻線)に流れる電流を検出する電流検出部107を備えている。電流検出部107は、電流検出結果を示す電流値を、電圧として出力する。つまり、電流検出部107は、電流値に比例又は対応する電圧値の電圧を出力する。
また、モータ制御装置M1は、カウンタ118と共に、回転モータ121の回転位置、具体的には回転モータ121のロータの回転位置(換言すると回転角度)を検出する位置検出部110を構成する位置センサ108を備えている。位置センサ108は、例えばロータリエンコーダであり、ロータの回転によりパルスを出力する。カウンタ118は、位置センサ108が出力したパルスの数をカウントする。そして、カウンタ118は、カウント結果を回転モータ121の回転位置情報(以下、単に位置情報という)として演算部111に出力する。このように、カウンタ118が位置センサ108のパルス数をカウントすることで回転モータ121の回転位置を検出している。
制御器105の通信制御部112は、通信ドライバ103からの入力を受けた各種指令のデータをメモリ113に記憶させる制御を行う。
メモリ113は、RAM等の記憶部であり、通信制御部112の制御の下、受信した各種指令のデータを記憶する。
クロック生成部114は、例えば水晶発振器であり、固有の発振周波数でクロック信号を生成し出力する。タイマ115は、クロック生成部114が生成したクロック信号に基づいて計時を行い、その計時結果を演算部111に出力する。
演算部111は、例えばCPUであり、上位制御装置101からの各種指令、電流検出結果を示す電流情報、位置検出結果を示す位置情報に基づき、不図示の不揮発メモリに記憶された処理プログラムに従って演算処理を行う。演算部111は、演算処理の一つとして、モータ駆動部109を構成するPWM波形生成部116に出力する駆動指令を演算する。そして、演算部111は、この駆動指令の演算が終了した時点で駆動指令をPWM波形生成部116に出力する。
PWM波形生成部116は、演算部111からの駆動指令の入力を受け、インバータ106の各スイッチング素子のゲート端子(ベース端子)に出力するPWM信号を生成する。インバータ106は、PWM信号によるスイッチング素子のスイッチング動作により、供給された直流電圧をパルス幅変調して回転モータ121に出力する。これにより、回転モータ121には、交流電流、例えば3相の交流電流が出力される。以上のPWM波形生成部116及びインバータ106の動作により、モータ駆動部109は、入力を受けた駆動指令に従って回転モータ121を駆動する。つまり、モータ駆動部109は、入力を受けた駆動指令に応じて回転モータ121に電流を供給する。
AD変換部117は、電流検出部107からの電流値を示す出力電圧(アナログ信号)を、演算部111で認識可能なデジタル信号に変換し、この電流情報を演算部111に出力する。
演算部111は、ロボットアーム300の挙動、つまり回転モータ121の回転位置及び電流をモニタし、上位制御装置101から受信した指令に基づいて、フィードバック制御を行い、回転モータ121の駆動を制御する。具体的には演算部111は、電流検出部107からの電流情報と位置検出部110により取得した位置情報とに基づいて、位置、速度、電流制御処理にてモータの位置、速度、電流(トルク)を制御する駆動指令を演算する演算処理を実行する。
図3に、各モータ制御装置M1〜M6の演算部111で処理される制御ブロック図を示す。上位制御装置101からの指令(コマンド)を受信する処理は、指令を受信した際に割り込み処理(コマンド受信割り込み)を発生させ、割り込み処理内にて以下の処理を実行する。コマンド受信割り込みは、タイマ、ハードウェア等の他の割り込み発生時に処理が優先されるように優先度の設定がなされている。
まず、演算部111は、上位制御装置101からの指令(コマンド)の入力を受けた場合、この指令(コマンド)を解析するコマンド解析処理201を実行する。そして、演算部111は、解析した指令(コマンド)に応じたプログラムを読み出すコマンド分岐処理202を実行する。具体的には、演算部111は、このコマンド分岐処理202で指令が動作指令、つまり位置指令の場合は、モータ制御処理203のプログラムを読み出す。そして、演算部111は、読み出したプログラムによりモータ制御処理203を実行する。また、演算部111は、コマンド分岐処理202で指令が同期指令の場合は、同期処理204のプログラムを読み出す。そして、演算部111は、読み出したプログラムにより同期処理204を実行する。また、演算部111は、コマンド分岐処理202で指令がエラーを示すエラー指令の場合は、エラー処理205のプログラムを読み出す。そして、演算部111は、読み出したプログラムによりエラー処理205を実行する。
演算部111は、モータ制御処理203のプログラムをタイマ割り込み処理内で呼び出し実行する。このモータ制御処理203では、位置情報及び電流値情報に基づいたフィードバック制御が演算部111により行われる。
図4は、演算部111によるモータ制御処理203のフィードバック制御動作を説明するための制御ブロック図である。
上位制御装置101は、モータ制御装置M1に回転モータ121の回転位置の指令を示す位置指令θrefを送信する。演算部111は、上位制御装置101から通信線130を介して入力を受けた位置指令θrefと、位置検出部110から取得した回転モータ121の回転位置を示す位置情報θとの差分eaを演算する処理211を行う。
演算部111は、差分eaに基づき、検出される位置情報θが位置指令θrefに追従するように、即ち差分eaを補償するように、回転モータ121のロータの回転速度の指令を示す速度指令Wrefを演算する位置制御処理212を行う。この位置制御処理212では、PID制御により速度指令Wrefを演算する。
演算部111は、定周期に位置検出部110から取得した位置情報θに基づき、回転モータ121のロータの回転速度(以下、単に速度という)Wを求める処理213を行う。そして、演算部111は、速度指令Wrefと速度Wとの差分ebを演算する処理214を行う。
演算部111は、差分ebに基づき、速度情報Wが速度指令Wrefに追従するように、即ち差分ebを補償するように、回転モータ121の巻線に流す電流値の指令を示す電流(トルク)指令Irefを演算する速度制御処理215を行う。この速度制御処理215では、PID制御により電流指令Irefを演算する。
演算部111は、電流指令Irefと、AD変換部117を介して電流検出部107から取得したモータ各相の電流情報Iuvwとの差分ecを演算する処理216を行う。また、演算部111は、位置検出部110から取得した位置情報θをモータ電気角θeへ変換する電気角変換処理217を行う。
演算部111は、モータ電気角θeによりモータ各相の位相を決定すると共に、差分ecに基づき、電流情報Iuvwが電流指令Irefに追従するように、即ち差分ecを補償するように、駆動指令xを演算する電流制御処理218を行う。この電流制御処理218では、PID制御により駆動指令xを演算する。
この駆動指令xは、モータ駆動部109のPWM波形生成部116からPWM信号を出力させる指令である。PWM波形生成部116は、駆動指令xに従ってPWM信号を生成し、インバータ106に出力する。インバータ106は、PWM信号に従って直流電圧をパルス幅変調して回転モータ121の各相の巻線に印加することで、各相の巻線に交流電流を供給する。
本実施形態では、各モータ制御装置M1〜M6は、共有する制御同期信号線を有しておらず、演算部111における各処理211〜218は、クロック生成部114にて生成されるクロック信号に同期してなされている。
モータ制御処理203は制御器105のタイマ割り込み処理内で呼び出しがなされており、各処理212,215,218は予め設定された時間間隔毎に周期的に実行される。タイマ115は、クロック信号に基づき各時間間隔をカウントしている。
演算部111は、外部、即ち上位制御装置101から指令実行開始指令を受信することにより位置制御処理212を実行する。上位制御装置101は、予め設定された第1時間間隔(例えば2ms間隔)で指令実行開始指令を送信するので、各モータ制御装置M1〜M6は、タイマ115で計時した第1時間間隔で位置制御処理212を実行する。この位置制御処理212では、位置制御処理開始のタイミングで取得した位置情報を用いて、速度指令Wrefの演算を行う。速度制御処理215では、タイマ115で計時した第2時間間隔(例えば500μs)で取得した速度情報Wと、演算により求めた速度指令Wrefとの差分に基づき、第2時間間隔で電流指令Irefを演算する。電流制御処理218では、時間間隔Tbでありタイマ115で計時した第3時間間隔(例えば100μs)で取得した電流情報Iuvwと、演算により求めた電流指令Irefとの差分に基づき、第3時間間隔で駆動指令xを演算する。
つまり、演算部111は、モータ制御処理203として、回転モータの回転位置が外部、即ち上位制御装置101から受信した位置指令θrefに追従するようモータ駆動部109に出力する駆動指令xを、予め設定された時間間隔Tbで周期的に演算する。具体的には、演算部111は、モータ制御処理203の電流制御処理218として、回転モータに供給されている電流が電流指令Irefに追従するようモータ駆動部109に出力する駆動指令xを、予め設定された時間間隔Tbで周期的に演算する。電流指令Irefは、回転モータの回転位置が位置指令θrefに追従するよう演算される値である。
図5は、上位制御装置101と各モータ制御装置M1〜M6の処理シーケンス図である。上位制御装置101は、教示データに基づく軌道生成の計算の結果、動作指令、即ち位置指令を各モータ制御装置M1〜M6にそれぞれシリアル通信線130を介して送信する。そして、上位制御装置101は、動作指令の送信後に動作指令の実行を開始する指令(指令実行開始指令)を各モータ制御装置M1〜M6にシリアル通信線130を介して同時に送信する。この指令実行開始指令はブロードキャストコマンドであり、各モータ制御装置M1〜M6に第1時間間隔で一斉送信される。この指令実行開始指令を受信した各モータ制御装置M1〜M6は位置指令に応じた動作を実行する。
本実施形態では、上位制御装置101は、同期指令を送信する際には、同期指令を指令実行開始指令に含めて送信する。具体的には、上位制御装置101は、指令実行開始指令のパケットに同期指令を示す情報を付加して送信する。したがって、上位制御装置101は、各モータ制御装置M1〜M6に同時に同期指令を送信することとなる。
各モータ制御装置M1〜M6の演算部111は、外部、即ち上位制御装置101から同期指令を受信したときに、駆動指令の演算の開始時刻を同期指令に同期させる同期処理204を行う。
図6は本第1実施形態のモータ制御装置M1,M2によるモータ制御周期の同期処理を示すタイムチャートであり、図7は、本第1実施形態の各モータ制御装置M1〜M6における演算部111の同期処理を示すフローチャートである。以下、図7に示すフローチャートに沿って、図6を参照しながら説明する。
ここで、モータ制御周期時間、即ち駆動指令を周期的に演算開始する時間間隔をTbとする。この時間間隔Tbは、予め設定された値であり、例えば100マイクロ秒である。この時間間隔Tbは、回転モータに流れる電流の値を取得する時間間隔でもある。つまり、駆動指令の演算開始時刻は、電流の値を取得する時刻でもある。
また、Nは、2以上の整数値である所定数、nは、1,2,…,Nの値を取る整数値である。Tm1,n、Tm2,nは、各モータ制御装置M1,M2における駆動指令の演算開始時刻、Tsは同期指令の受信時刻である。本実施形態では、演算部111は、駆動指令の演算開始時刻Tm1,n、Tm2,nで電流検出部107から電流情報を取得し、電流制御処理218にて駆動指令xを演算する。
まず、各モータ制御装置M1〜M6の演算部111は、指令(コマンド)の解析を行い(S1)、指令(コマンド)をセットする(S2)。次に、演算部111は、指令が同期指令であるか否かを判断する(S3)。ここで、同期指令は、第1時間間隔、例えば約2ミリ秒毎に送信されるいずれかの指令実行開始指令に含めて送信されるものである。
演算部111は、指令が同期指令である場合(S3:Yes)、同期処理を行うが、その同期処理として、同期指令を受信したときに演算対象となっている駆動指令の演算開始時刻Tmと同期指令の受信時刻Tsとの時間差ΔTを求める(S4)。
例えば、図6に示すように、モータ制御装置M1の演算部111は、駆動指令を演算するモータ制御処理を行うが、同期指令を受信したとき、同期指令の受信時刻Tsと、そのときに演算している駆動指令の演算開始時刻Tm1,1との時間差ΔT1を求める。同様に、モータ制御装置M2の演算部111は、同期指令の受信時刻Tsと、そのときに演算している駆動指令の演算開始時刻Tm2,1との時間差ΔT2を求める。なお、図6では、同期指令が駆動指令の演算中に受信された場合について図示しているが、駆動指令の演算終了後に同期指令が受信される場合もある。
次に、演算部111は、時間差ΔTを所定数Nに分割して複数の調整時間T1,T2,…,TNを求める(S5)。例えば、図6に示すように、モータ制御装置M1の演算部111は、時間差ΔT1を所定数Nに分割して複数の調整時間T1,1,T1,2,…,T1,Nを求める。モータ制御装置M1の演算部111は、時間差ΔT2を所定数Nに分割して複数の調整時間T2,1,T2,2,…,T2,Nを求める。
本実施形態では、各モータ制御装置M1〜M6の演算部111は、同じ値である所定数Nで時間差ΔTを分割する。なお、各調整時間の時間幅は任意に設定することができるが、本実施形態では演算を容易にするために、各モータ制御装置M1〜M6の演算部111は、時間差ΔTを所定数Nで等分割し、各調整時間をTn=ΔT/Nとする。
次に、演算部111は、同期指令を受信してからのn周期目の時間間隔Tbに、調整時間Tnを加算する補正を行い(S6)、モータ制御処理(具体的には電流制御処理218)を実行する(S7)。演算部111は、ステップS6,S7の処理を、n=1からn=Nまで繰り返し行う。つまり、演算部111は、同期指令を受信してからの所定数Nの周期(N周期)の各時間間隔Tbに、各調整時間T1〜TNをそれぞれ加算する補正を行う。例えば、図6に示すように、モータ制御装置M1の演算部111は、同期指令を受信したときからN周期の各時間間隔Tbに各調整時間T1,1〜T1,Nを加算する補正を行う。モータ制御装置M2の演算部111は、同期指令を受信したときからN周期の各時間間隔Tbに各調整時間T2,1〜T2,Nを加算する補正を行う。このとき、各モータ制御装置M1〜M6のタイマ115では、演算部111の加算補正により、電流制御処理を行う周期のカウント時間が調整時間の分延長するよう調整される。
なお、演算部111は、指令が同期指令を含まない指令実行開始指令の場合(S3:No)、同期処理を行わなくてもよいが、本実施形態では、時間差ΔTを0にリセットし(S8)、ステップS5の処理に移行する。これにより、同期処理と同一の演算を行うものの、各時間間隔Tbの補正量が0となり、実質的に補正を行っていないこととなる。
以上、同期指令を受信してからN周期後には、各モータ制御装置M1〜M6におけるモータ制御処理のタイミング(駆動指令の演算開始時刻)がそれぞれ時間差ΔT1、ΔT2…の分、変更されることとなる。つまり、N周期後には、各モータ制御装置M1〜M6における駆動指令の演算開始時刻が、同期信号に同期することとなる。
したがって、N周期で段階的に駆動指令の演算開始時刻が調整されるので、回転モータ121〜126の位置精度の低下やトルク変動が生じるのを抑制しながらも、駆動指令の演算開始時刻を同期指令に同期させることができる。
つまり、ロボット装置1において、モータ制御処理の周期毎に駆動指令の演算開始時刻が調整時間で変更され、同期指令に段階的に合致して、複数のモータ制御装置M1〜M6間のモータ制御処理(具体的には電流制御処理)が同期される。したがって、各モータ制御装置M1〜M6間で同期信号線を有することなく、モータ制御の同期処理中のトルク変動を抑制することができ、モータ制御装置間でモータ制御処理の同期を容易に実現することができる。
ここで、時間差ΔT1、ΔT2を等分割したとしても、誤差により調整時間の積算値Tsum1=T1,1+…+T1,N−1+T1,N、Tsum2=T2,1+…+T2,N−1+T2,NがΔT1、ΔT2以上となる場合がある。この場合、最終タイマ時刻調整時間T1,N、T2,Nを、ΔT1,N=ΔT1−Tsum1、ΔT2,N=ΔT2−Tsum2にて、時刻調整を行う。これにより、駆動指令の演算開始時刻をより精度よく同期信号に同期させることができる。
[第2実施形態]
次に、本発明の第2実施形態に係るモータ制御装置の同期動作について説明する。図8は、本発明の第2実施形態に係るモータ制御装置M1によるモータ制御周期の同期処理を示すタイムチャートである。
次に、本発明の第2実施形態に係るモータ制御装置の同期動作について説明する。図8は、本発明の第2実施形態に係るモータ制御装置M1によるモータ制御周期の同期処理を示すタイムチャートである。
上記第1実施形態では、時間差ΔT1を所定数Nで等分割した場合について説明したが、本第2実施形態では、時間差ΔT1を所定数NでN分割する際に、後の周期になるに連れて漸次大きくなるように分割する。具体的には、演算部111は、各調整時間がT1,1≦T1,2≦…≦T1,N−1≦T1,Nの関係となるように、時間差ΔT1をN分割する。
ここで、駆動指令の演算開始時刻をN周期で同期させる場合、初期の調整時間をT1,1=ΔT1/Nとし、T1,n=A×T1,n−1として調整時間を段階的に増大させた値とするのがよい。係数Aは1≦Aとなる値である。このように係数Aを予め設定しておくことで、調整時間の演算が容易となる。なお、モータ制御装置M1について説明したが各モータ制御装置M2〜M6についても同様である。
また、上位制御装置101からの各モータ制御装置M1〜M6への位置指令θref、上位制御装置101からの同期指令受信時に位置検出部110から読み取った現在位置θとする。また、上位制御装置101からの位置指令θrefと位置検出部110から読み取った現在位置θとの差分をe=θref−θとする。位置指令θrefとモータ制御処理を実行する、即ち駆動指令を周期的に演算する演算開始時刻毎に位置検出部110から読み取った現在位置θnとの差分をen=θref−θnとする。このように定義した場合、各調整時間を演算部111によりTn=K・ΔT・(e−en)/e(ただし、e=0の場合はT1=ΔT)の演算式にて決定してもよい。差分enはPID制御により漸次小さくなるので、調整時間Tnは漸次大きくなる。ここで、係数Kは各モータ制御装置M1〜M6間にて同期完了時間、位置センサ108の分解能等で決定される調整係数である。
以上、同期指令を受信してからN周期後には、各モータ制御装置M1〜M6におけるモータ制御処理のタイミング(駆動指令の演算開始時刻)がそれぞれ時間差ΔT変更されることとなる。つまり、N周期後には、各モータ制御装置M1〜M6における駆動指令の演算開始時刻が、同期信号に同期し互いに同期することとなる。
したがって、N周期で段階的に駆動指令の演算開始時刻が調整されるので、回転モータ121〜126の位置精度の低下やトルク変動が生じるのを抑制しながらも、駆動指令の演算開始時刻を同期指令に同期させることができる。
つまり、ロボット装置1において、モータ制御処理の周期毎に駆動指令の演算開始時刻が調整時間で変更され、同期指令に段階的に合致して、複数のモータ制御装置M1〜M6間のモータ制御処理(具体的には電流制御処理)が同期される。したがって、各モータ制御装置M1〜M6間で同期信号線を有することなく、モータ制御の同期処理中のトルク変動を抑制することができ、モータ制御装置間でモータ制御処理の同期を容易に実現することができる。
また、電流制御処理を周期的に行うことで検出される電流Iuvwは電流指令Irefに徐々に近づけられていく。つまり、電流Iuvwの調整量は後の周期になるに連れて小さくなる。本実施形態では、後の周期になるに連れて調整時間が漸次大きくなるように求められる。つまり、モータ制御処理のN周期において各周期での調整時間Tnが段階的に大きくなるように求められる。
このように、電流制御処理(PID制御)の始めの方では、駆動指令を演算開始する時間間隔が短く、電流情報Iuvwを取り込む間隔が短いので、精度よく電流を電流指令Irefに近づけることができる。そして、電流情報Iuvwと電流指令Irefとの差分が小さくなるに連れて電流情報Iuvwを取り込む時間間隔が段階的に長くなるように補正されることになるので、PID制御を行う電流制御処理において時間間隔が長くなることによる影響が受けにくくなる。これにより、駆動指令の過剰な変動をより効果的に抑制することができ、安定して駆動指令の演算開始時刻を同期指令に同期させることができる。
ここで、時間差ΔTをN分割したとしても、誤差により調整時間の積算値Tsum=T1+…+TN−1+TNがΔT以上となる場合がある。この場合、最終タイマ時刻調整時間TNを、ΔTN=ΔT−Tsumにて、時刻調整を行う。これにより、駆動指令の演算開始時刻をより精度よく同期信号に同期させることができる。
なお、本発明は、以上説明した実施形態に限定されるものではなく、多くの変形が本発明の技術的思想内で当分野において通常の知識を有する者により可能である。
上記実施形態では、ロボット本体としてロボットアーム300の場合について説明したが、これに限定するものではなく、ロボット本体として複数の回転モータを有するロボットハンドの場合についても適用可能である。
1…ロボット装置、101…上位制御装置、109…モータ駆動部、111…演算部、121〜126…回転モータ、203…モータ制御処理、204…同期処理、300…ロボットアーム(ロボット本体)
Claims (4)
- 入力を受けた駆動指令に従って回転モータを駆動するモータ駆動部と、
前記回転モータの回転位置が外部から受信した位置指令に追従するよう前記モータ駆動部に出力する前記駆動指令を、予め設定された時間間隔で周期的に演算するモータ制御処理を行うと共に、外部から同期指令を受信したときに、前記駆動指令の演算の開始時刻を前記同期指令に同期させる同期処理を行う演算部と、を備え、
前記演算部は、前記同期処理として、前記同期指令を受信したときに演算対象となっている前記駆動指令の演算開始時刻と前記同期指令の受信時刻との時間差を求め、前記時間差を所定数に分割して複数の調整時間を求め、前記同期指令を受信してからの前記所定数の周期の前記各時間間隔に、前記各調整時間をそれぞれ加算する補正を行う、
ことを特徴とするモータ制御装置。 - 前記演算部は、前記各調整時間を漸次大きくなるように求める、
ことを特徴とする請求項1に記載のモータ制御装置。 - 複数の関節と前記各関節をそれぞれ駆動する複数の回転モータとを有するロボット本体と、
前記各回転モータをそれぞれ制御する複数の請求項1又は2に記載のモータ制御装置と、
前記各モータ制御装置にそれぞれ位置指令を送信すると共に、前記各モータ制御装置に同時に同期指令を送信する上位制御装置と、を備えたことを特徴とするロボット装置。 - 入力を受けた駆動指令に従って回転モータを駆動するモータ駆動部と、前記回転モータの回転位置が外部から受信した位置指令に追従するよう前記モータ駆動部に出力する前記駆動指令を、予め設定された時間間隔で周期的に演算するモータ制御処理を行うと共に、外部から同期指令を受信したときに、前記駆動指令の演算の開始時刻を前記同期指令に同期させる同期処理を行う演算部と、を備えたモータ制御装置のモータ制御方法において、
前記演算部が、前記同期処理として、前記同期指令を受信したときに演算対象となっている前記駆動指令の演算開始時刻と前記同期指令の受信時刻との時間差を求めるステップと、
前記演算部が、前記時間差を所定数に分割して複数の調整時間を求めるステップと、
前記演算部が、前記同期指令を受信してからの前記所定数の周期の前記各時間間隔に、前記各調整時間をそれぞれ加算する補正を行うステップと、を備えた、
ことを特徴とするモータ制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012030559A JP2013169063A (ja) | 2012-02-15 | 2012-02-15 | モータ制御装置、ロボット装置及びモータ制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012030559A JP2013169063A (ja) | 2012-02-15 | 2012-02-15 | モータ制御装置、ロボット装置及びモータ制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013169063A true JP2013169063A (ja) | 2013-08-29 |
Family
ID=49179039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012030559A Pending JP2013169063A (ja) | 2012-02-15 | 2012-02-15 | モータ制御装置、ロボット装置及びモータ制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013169063A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160088982A (ko) * | 2015-01-16 | 2016-07-27 | 한국로봇융합연구원 | 복수의 제어기간의 정밀한 시간 기록을 포함하는 데이터 동기화 시스템 및 방법 |
CN111492571A (zh) * | 2017-09-18 | 2020-08-04 | 采埃孚汽车英国有限公司 | 用于双通道电机控制器的定时器电路 |
CN115149873A (zh) * | 2022-09-05 | 2022-10-04 | 中科航迈数控软件(深圳)有限公司 | 基于神经网络模型的伺服电机组控制方法及相关设备 |
-
2012
- 2012-02-15 JP JP2012030559A patent/JP2013169063A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160088982A (ko) * | 2015-01-16 | 2016-07-27 | 한국로봇융합연구원 | 복수의 제어기간의 정밀한 시간 기록을 포함하는 데이터 동기화 시스템 및 방법 |
KR101645260B1 (ko) | 2015-01-16 | 2016-08-04 | 한국로봇융합연구원 | 복수의 제어기간의 정밀한 시간 기록을 포함하는 데이터 동기화 시스템 및 방법 |
CN111492571A (zh) * | 2017-09-18 | 2020-08-04 | 采埃孚汽车英国有限公司 | 用于双通道电机控制器的定时器电路 |
CN115149873A (zh) * | 2022-09-05 | 2022-10-04 | 中科航迈数控软件(深圳)有限公司 | 基于神经网络模型的伺服电机组控制方法及相关设备 |
CN115149873B (zh) * | 2022-09-05 | 2022-12-02 | 中科航迈数控软件(深圳)有限公司 | 基于神经网络模型的伺服电机组控制方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5867032B2 (ja) | 並列インバータ装置 | |
US10474598B2 (en) | Microcomputer | |
JP4925477B2 (ja) | 複数のモータを制御するモータ制御システム | |
EP2555068B1 (en) | Synchronization control apparatus | |
EP3361635B1 (en) | Control system and pulse output device | |
WO2019107022A1 (ja) | 制御装置および制御方法 | |
JP2013169063A (ja) | モータ制御装置、ロボット装置及びモータ制御方法 | |
JP2014123188A (ja) | 分散制御装置及び分散制御方法 | |
KR20170045940A (ko) | 다축 서보 제어 시스템 | |
JP4155173B2 (ja) | モータ制御装置 | |
JP5256844B2 (ja) | 電力変換装置の制御装置および制御方法 | |
JP2005102377A (ja) | 多軸モータ制御システム | |
JP5748126B2 (ja) | 同期制御システム | |
US9836040B2 (en) | Motor control device, motor control system and motor control method | |
JP6484954B2 (ja) | モータ制御装置、モータ制御システム、モータ制御方法及びモータ制御プログラム | |
JP2002315389A (ja) | 電動機制御装置 | |
JP4638094B2 (ja) | 複数軸制御装置及びその軸間同期方法 | |
JP2007252139A (ja) | 電動機制御装置および電動機制御方法 | |
US11494465B2 (en) | Command value interpolation apparatus and servo driver | |
JP2017158230A (ja) | モータ制御装置 | |
JP6758494B2 (ja) | 回転角度検出装置および交流回転機制御装置 | |
JP2002108414A (ja) | 複数サーボドライブ装置の同期確立方法とその装置 | |
WO2018179165A1 (ja) | 通信装置、通信システムおよび通信方法 | |
JP2009112140A (ja) | 電動機の制御装置およびその制御方法 | |
JP2006304442A (ja) | 磁極検出方法およびモータ駆動装置 |