JP2016032326A - モータ制御装置、ロボット装置、モータ制御方法、プログラム及び記録媒体 - Google Patents

モータ制御装置、ロボット装置、モータ制御方法、プログラム及び記録媒体 Download PDF

Info

Publication number
JP2016032326A
JP2016032326A JP2014152810A JP2014152810A JP2016032326A JP 2016032326 A JP2016032326 A JP 2016032326A JP 2014152810 A JP2014152810 A JP 2014152810A JP 2014152810 A JP2014152810 A JP 2014152810A JP 2016032326 A JP2016032326 A JP 2016032326A
Authority
JP
Japan
Prior art keywords
value
motor
command value
current
speed
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
Application number
JP2014152810A
Other languages
English (en)
Inventor
健太 笹嶋
Kenta Sasajima
健太 笹嶋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2014152810A priority Critical patent/JP2016032326A/ja
Publication of JP2016032326A publication Critical patent/JP2016032326A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)
  • Control Of Electric Motors In General (AREA)

Abstract

【課題】負荷イナーシャや外乱がモータに作用しても、高応答かつ高精度にモータの回転位置を位置指令値に追従させて、フィードバック系のロバスト性を保証する。【解決手段】PWM生成器35は、入力した駆動指令値D*の信号に基づきモータ14に電流値Iの電流を供給してモータ14を駆動する。制御部は、モータ位置θが位置指令値θ*に近づくように速度指令値を求め、モータ速度が速度指令値に近づくように電流指令値を求める。制御部は、電流値Iが電流指令値に近づくように駆動指令値D*を求め、PWM生成器35に信号として出力する。制御部は、速度指令値及び電流指令値を、仮想モータ位置とモータ位置との差分値に基づいて求めた速度補正値ωc及び電流補正値Icで補正する。【選択図】図2

Description

本発明は、モータ制御装置、ロボット装置、モータ制御方法、プログラム及び記録媒体に関し、特に、モータに負荷イナーシャや外乱が作用した際にも、モータの回転位置をモータの位置指令値に追従させるものに関する。
従来、工作機械や産業用ロボットなどの制御装置において、軸駆動に用いられるモータの回転軸にかかる負荷イナーシャや外乱の影響を抑制する種々の制御手法が考えられてきた。
モータの回転軸にかかる負荷イナーシャや外乱を効果的に抑制する制御手法の一つとして、一般的に適応制御とよばれる制御方式がある。適応制御方式として、種々のパラメータを同定するセルフチューニングレギュレータ方式と、仮想モータと所望の応答が得られるように調整された仮想モータ制御器とからなる規範モデルブロックを備えた、モデル規範型適応制御方式が知られている。
セルフチューニングレギュレータ方式は、化学プラントなどの適用例が多く、モデル規範型適応制御方式は、モータ制御などの適用例が多い。モデル規範型適応制御方式は、モータを制御するモータ制御器を備えたモータ制御ブロックと、仮想モータと仮想モータを制御する仮想モータ制御器とを備えた規範モデルブロックとから構成される。さらに、モータ制御ブロックの出力と規範モデルブロックの出力より、何らかの補正量を演算する適応制御機構を備えており、適応制御機構よりモータ制御ブロックに補正量を入力し、モータ制御ブロックと規範モデルブロックの出力の差分を低減する。
この種のモデル規範型適応制御として、特許文献1が知られている。特許文献1では、モータ制御ブロックと規範モデルブロックとの出力の差分から、モータ制御器のパラメータを変更する適応制御機構を備え、モータ制御ブロックと規範モデルブロックとの出力の差分を低減するように制御している。
また、モータの回転軸にかかる負荷イナーシャや外乱を抑制する別の制御手法として、特許文献2が知られている。特許文献2は、モータとPID制御といった一般的なフィードバック制御器とを有し、位置指令値とモータ位置との差分(位置補正値)を、位置指令値に加算する構成をとっている。
特開昭62−229403号公報 特開2011−170609号公報
しかし、特許文献1のようなモータ制御ブロックの出力と規範モデルブロックの出力の差分からモータ制御器のパラメータを変更する制御手法の場合、垂直多関節ロボットのような他軸干渉が大きい系であると制御系のロバスト性が損なわれる可能性がある。垂直多関節ロボットは、モータの回転軸にかかる負荷イナーシャがロボットの姿勢により大きく変わる構造であるため、ロボットが取りうる全ての姿勢で、モータ制御器のパラメータを変更したときのロバスト性を保証することは難しい。また、モータ制御器のパラメータの変更範囲を予め制限しフィードバック系のロバスト性を確保する方法も考えられる。しかし、全ての姿勢においてロバスト性を保証するためには、パラメータの変更範囲を狭める等の対策が必要であり、制御の効果は小さくなる。
一方、特許文献2のように、位置補正値を位置指令値に加算する構成の場合、モータ制御器のパラメータ値を固定にしておくため、フィードバック系のロバスト性が低下することはない。しかし、位置指令値とモータ位置との差分を位置補正値とするため、位置補正値の補正効果を得るために、位置補正値の周波数帯域よりも位置指令値の周波数帯域が相対的に低くなるようにフィルタリングしている。一般的に位置制御器の周波数帯域は周波数が低く、制御遅れにより生じた位置指令値とモータ位置との差分を抑制するためには、応答の遅い系に指令値と同等の周波数帯域の位置補正値を入力しても、位置補正の効果は少ない。そのため、相対的に位置補正値の周波数帯域を位置指令値の周波数帯域よりも高くすることで、位置補正の効果を得ている。ただし、高速な応答が求められる産業用ロボットのような制御系においては、位置指令値の周波数帯域が抑え込まれてしまうため、この制御手法は適していない。
そこで、本発明は、負荷イナーシャや外乱がモータに作用しても、高応答かつ高精度にモータの回転位置を位置指令値に追従させて、フィードバック系のロバスト性を保証することを目的とする。
本発明のモータ制御装置は、入力した駆動指令値の信号に基づきモータに電流を供給して前記モータを動作させる駆動部と、前記モータの回転位置の値、前記モータに供給する電流の電流値、及び前記モータの回転位置の指令値を示す位置指令値を用いて前記駆動指令値を求め、求めた前記駆動指令値を示す信号を前記駆動部に出力することで、前記モータの回転を制御する制御部と、を備え、前記制御部は、前記回転位置の値が前記位置指令値に近づくように、前記モータの回転速度の指令値を示す速度指令値を求める第1フィードバック演算処理を行い、前記モータの回転速度の値が前記速度指令値に近づくように、前記モータの回転加速度の指令値に対応する電流指令値を求める第2フィードバック演算処理を行い、前記電流値が前記電流指令値に近づくように前記駆動指令値を求める第3フィードバック演算処理を行い、前記モータをモデル化した仮想モータを定義して前記仮想モータを仮想的に制御し、前記第2フィードバック演算処理に用いる前記速度指令値、及び前記第3フィードバック演算処理に用いる前記電流指令値のうち、少なくとも一方の指令値を、前記仮想モータの仮想回転位置の値と前記回転位置の値との差分値に基づいて求めた補正値で補正することを特徴とする。
本発明によれば、モータの回転位置の値と仮想モータの仮想回転位置の値との差分値から、速度指令値及び電流指令値のうち少なくとも一方の指令値を補正する補正値を求める。そして、該補正値を用いて、位置指令値よりも高次である速度指令値及び電流指令値(加速度)のうち少なくとも一方の指令値を補正する。そのため、モータの応答性が高くなり、高速な応答を求められる制御系においても、位置指令値に対してモータの回転位置を高応答かつ高精度に追従させることができ、フィードバック系のロバスト性が保証される。
本発明の第1実施形態に係るモータ制御装置を有するモータシステムの概略構成を説明するためのブロック図である。 モータ制御装置の制御部を機能でブロック化したモータ駆動装置の機能ブロック図である。 規範モデルブロックの構成を示すブロック図である。 モータ制御ブロックの構成を示すブロック図である。 適応補正値演算ブロックの構成を示すブロック図である。 加重係数演算部の構成を示すブロック図である。 本発明の第1実施形態に係るモータ制御方法のフローチャートである。 位置指令値を与えたときの位置指令値とモータ位置との差分値の実験結果を示すグラフである。 補正値生成部の別の構成を示すブロック図である。 本発明の第2実施形態に係るロボット装置を示す斜視図である。 ロボットの一関節を示す部分断面図である。 ロボットの直進動作を説明するための図である。 ロボットの手先を直進動作させたときの手先の位置を測定した結果を示すグラフである。
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
[第1実施形態]
図1は、本発明の第1実施形態に係るモータ制御装置を有するモータシステムの概略構成を説明するためのブロック図である。
モータシステム10は、上位コントローラ11と、モータ駆動装置であるモータ駆動ユニット12とを備えている。モータ駆動ユニット12は、モータ制御装置であるモータ制御基板13と、モータ14とを有している。また、モータ駆動ユニット12は、モータ14の回転軸の回転位置(回転角度)を検出する回転位置検出部(エンコーダ)15と、モータ14に供給される電流を検出する電流検出部16と、を有している。
モータ14は、例えばブラシレスDCモータやACモータ等のサーボモータである。エンコーダ15は、インクリメンタル型またはアブソリュート型のロータリエンコーダであり、モータ14の回転位置に応じたパルス信号を出力する。電流検出部16は、PWM生成器35が出力する電流つまりモータ14に供給される電流を検出するものであり、電流検出結果として、電流検出値(電流値)を示すアナログ信号を出力する。
上位コントローラ11は、コンピュータにより構成されている。上位コントローラ11は、CPU(Central Processing Unit)21を備えている。また、上位コントローラ11は、記憶部として、ROM(Read Only Memory)22及びRAM(Random Access Memory)23を備えている。また、上位コントローラ11は、通信制御部(I/F)24を備えている。
CPU21には、ROM22、RAM23及びI/F24が、バス20を介して接続されている。CPU21は、目標回転位置(目標回転角度)を演算し、該演算結果を後述する仮想モータ位置指令値としてI/F24を介してモータ制御基板13に出力する。ROM22は、CPU21が読み出して各種演算を実行するプログラムを記憶する。RAM23は、演算結果や外部から取得したデータを一時的に記憶する。
モータ制御基板13は、コンピュータにより構成されている。モータ制御基板13は、制御部(演算部)としてのCPU31、記憶部としてのROM32及びRAM33、並びに通信制御部(I/F)34を有している。更に、モータ制御基板13は、駆動部であるPWM生成器35、及び検出回路36,37を有している。CPU31には、ROM32、RAM33、I/F34、PWM生成器35及び検出回路36,37が、バス30を介して接続されている。
PWM生成器35は、例えば半導体スイッチング素子を有するモータドライバであり、入力した駆動指令値に応じて、パルス幅変調された3相交流のPWM波形の電圧をモータ14に出力することで、モータ14に電流を供給してモータ14を回転動作させる。
検出回路36は、電流検出部16から電流値を示すアナログ信号を取得し、CPU31にて取得可能な信号に変換してCPU31に出力する。
検出回路37は、エンコーダ15からモータ14の回転位置の値を示すパルス信号を取得し、CPU31にて取得可能な信号に変換してCPU31に出力する。
CPU31は、後述する仮想モータ位置指令値、エンコーダ15による検出結果を示すモータ14の回転位置の値、及び電流検出部16による検出結果を示す電流値を取得して、PWM生成器35に出力する駆動指令値を求める。そして、CPU31は、駆動指令値をPWM生成器35に出力することで、モータ14の回転を制御する。
ROM32は、CPU31が読み出して各種演算を実行するプログラム38を記憶する。そして、CPU31がプログラム38を読み出して実行することにより、後述する各演算ブロックとして機能する。RAM33は、演算結果や外部から取得したデータを一時的に記憶する。
上位コントローラ11のI/F24とモータ制御基板13のI/F34とは、シリアル通信線17により接続されている。これにより、上位コントローラ11のCPU21は、シリアル通信線17及びI/F24,34を介して、後述する仮想モータ位置指令値を、モータ制御基板13のCPU31へ出力する。
図2は、CPU31を機能でブロック化したモータ駆動ユニット12の機能ブロック図である。CPU31は、プログラム38を実行することにより、図2に示す規範モデルブロック100、モータ制御ブロック200及び適応補正値演算ブロック300からなる3つの演算ブロックとして機能する。モータ14には、被制御対象である機械負荷18が接続されている。
規範モデルブロック100は、仮想モータよりモータ制御ブロック200への位置指令値等の指令値を生成する。モータ制御ブロック200は、規範モデルブロック100により生成された指令値に基づきモータ14の回転を制御する。適応補正値演算ブロック300は、モータ位置及び仮想モータ位置に基づき補正値を生成する。
まず、規範モデルブロック100の構成について説明する。図3は、規範モデルブロック100の構成を示すブロック図である。規範モデルブロック100は、仮想モータ101と、仮想モータ101の制御を司る仮想モータ制御部110とを有する。
仮想モータ101は、モータ14をトルク定数及びイナーシャ値等よりモデル化することにより定義されている。
仮想モータ制御部110は、一般にカスケード制御と呼ばれている制御方式をとっている。仮想モータ制御部110は、差分演算部111、仮想モータ位置制御部112、差分演算部113、仮想モータ速度制御部114及び仮想モータ速度変換部115を有している。差分演算部111、仮想モータ位置制御部112、差分演算部113及び仮想モータ速度制御部114は、直列に接続してなる。
差分演算部111は、仮想モータ位置指令値θ**と仮想モータ101の仮想回転位置の値(以下、「仮想モータ位置」という)θとの差分を演算する。仮想モータ位置指令値θ**は、仮想モータ101の回転位置の指令値であり、上位コントローラ11から取得する。仮想モータ位置θは、仮想的に回転駆動させた仮想モータ101の回転位置(回転角度)を演算した演算値である。
仮想モータ位置制御部112は、差分演算部111の差分演算結果(θ**−θ)に対し、比例や積分や微分演算を行うPID制御などの一般的なフィードバック制御系を構成している。つまり、仮想モータ位置制御部112は、仮想モータ位置θを仮想モータ位置指令値θ**に近づける(差分値を小さくする)仮想モータ速度指令値ω を求める。仮想モータ速度指令値ω は、仮想モータ101の回転速度の指令値である。第1実施形態では、仮想モータ位置制御部112は、比例演算のみを行うP制御とし、仮想モータ速度指令値ω を算出する。
差分演算部113は、仮想モータ速度指令値ω と、仮想モータ速度変換部115により演算された、仮想モータ101の仮想回転速度の値(以下、「仮想モータ速度」という)ωとの差分を演算する。
仮想モータ速度変換部115は、仮想モータ位置θに基づいて仮想モータ速度ωを演算する。具体的には、仮想モータ速度変換部115は、仮想モータ位置θを時間で一階微分することにより仮想モータ速度ωを算出する。
仮想モータ速度制御部114は、差分演算部111の差分演算結果(ω −ω)に対し、PID制御などを行う一般的なフィードバック制御系を構成している。つまり、仮想モータ速度制御部114は、仮想モータ速度ωを仮想モータ速度指令値ω に近づける(差分値を小さくする)仮想モータ電流指令値I を求める。第1実施形態では、仮想モータ速度制御部114は、比例と積分演算を行うPI制御とし、仮想モータ電流指令値I を算出する。CPU31は、仮想モータ速度制御部114で算出した仮想モータ電流指令値I により、仮想モータ101を仮想的に駆動し、仮想モータ101の仮想回転位置の値を示す仮想モータ位置θを算出する。
仮想モータ位置θ、仮想モータ速度ω、及び仮想モータ電流指令値I は、図2に示すモータ制御ブロック200の指令値もしくはフィードフォワード指令値とされる。
モータ制御ブロック200は、モータ14の位置指令値として、規範モデルブロック100の演算結果である仮想モータ位置θを入力する。つまり、第1実施形態では、仮想モータ位置θがモータ14の回転位置の指令値を示す位置指令値であり、以下、同一符号を用いて位置指令値θとする。
次に、モータ制御ブロック200の構成について説明する。図4は、モータ制御ブロック200の構成を示すブロック図である。モータ制御ブロック200は、一般にカスケード制御と呼ばれている制御方式をとっている。モータ制御ブロック200は、加減算部211、位置制御部212、加減算部213、速度制御部214、加減算部215、電流制御部216及び速度変換部217を有する。加減算部211、位置制御部212、加減算部213、速度制御部214、加減算部215及び電流制御部216は、直列に接続してなる。
カスケード制御方式の特徴として、各制御部212,214,216の制御周期を個別の設定できるという特徴がある。第1実施形態では、各制御部212,214,216の制御周期は、電流制御部216<速度制御部214<位置制御部212となるように設定されている。
加減算部211は、位置指令値と、エンコーダ15より検出されたモータ14の回転位置(回転角度)の値(以下、「モータ位置」という)θとの差分を演算する。第1実施形態では、位置指令値θは、後述する位置補正値θを加算することにより補正されるので、加減算部211は、補正した位置指令値(θ+θ)とモータ位置θとの差分(θ+θ−θ)を演算することとなる。
位置制御部212は、加減算部211の演算結果(θ+θ−θ)に対し、比例や積分や微分演算を行うPID制御などの一般的なフィードバック制御系を構成している。つまり、補正後の位置指令値(θ+θ)とモータ位置θとの差分が小さくなるように(モータ位置θが位置指令値(θ+θ)に近づくように)、モータ14の回転速度の指令値を示す速度指令値ωを求める第1フィードバック演算処理を行う。第1実施形態では、位置制御部212は、比例演算のみを行うP制御とし、速度指令値ωを算出する。
加減算部213は、速度指令値と、速度変換部217により演算されたモータ14の回転速度の値(以下、「モータ速度」という)ωとの差分を演算する。第1実施形態では、速度指令値ωは、後述するが仮想モータ速度ω及び速度補正値ωを加算することにより補正される。したがって、加減算部213は、補正した速度指令値(ω+ω+ω)とモータ速度ωとの差分(ω+ω+ω−ω)を演算することとなる。
速度変換部217は、モータ位置θに基づいてモータ速度ωを演算する。具体的には、速度変換部217は、モータ位置θを時間で一階微分することによりモータ速度ωを算出する。
速度制御部214は、加減算部213の演算結果(ω+ω+ω−ω)に対し、PID制御などを行う一般的なフィードバック制御系を構成している。つまり、速度制御部214は、補正後の速度指令値(ω+ω+ω)とモータ速度ωとの差分が小さくなるように(モータ速度が速度指令値に近づくように)、電流指令値Iを求める第2フィードバック演算処理を行う。第1実施形態では、速度制御部214は、比例と積分演算を行うPI制御とし、電流指令値Iを算出する。ここで、電流指令値Iは、モータ14の回転加速度の指令値に対応する値であり、例えば比例係数等を回転加速度の指令値に乗算することで算出される。
加減算部215は、電流指令値と、電流検出部16により検出された電流値Iとの差分を演算する。第1実施形態では、電流指令値Iは、後述するが仮想モータ電流指令値I 及び電流補正値Iを加算することにより補正される。したがって、加減算部215は、補正した電流指令値(I+I +I)と電流値Iとの差分(I+I +I−I)を演算することとなる。
電流制御部216は、加減算部215の演算結果(I+I +I−I)に対し、PID制御などを行う一般的なフィードバック制御系を構成している。つまり、電流制御部216は、補正後の電流指令値(I+I +I)と電流値Iとの差分(I+I +I−I)が小さくなるように(電流値が電流指令値に近づくように)駆動指令値Dを求める第3フィードバック演算処理を行う。第1実施形態では、電流制御部216は、比例、積分、微分演算を行うPID制御とし、駆動指令値Dを算出する。
電流制御部216は、算出した駆動指令値Dを示す信号を、PWM生成器35に出力する。PWM生成器35は、駆動指令値Dを示す信号に応じたPWM波形の電圧を生成して、モータ14に出力する。これにより、モータ14には電流が供給されて、モータ14の回転軸が回転する。このように、モータ制御ブロック200は、モータ位置θ、電流値I、及び位置指令値θを用いて駆動指令値Dを求め、求めた駆動指令値Dを示す信号をPWM生成器35に出力することで、モータ14の回転を制御する。
なお、位置制御部212、速度制御部214、電流制御部216のPID制御などの演算に用いられる各制御定数は、制御帯域や制御安定性、図2に示すモータ14の回転軸に接続される機械負荷18の固有振動等を考慮した値に個別に設定される。
第1実施形態では、モータ制御ブロック200の速度指令値ωには、仮想モータ速度ωを速度フィードフォワード指令値として加算する。フィードフォワード指令値を加算することで、フィードバック特性を変更することなく、指令値に対する応答性を向上させることができる。
また、モータ制御ブロック200の電流指令値Iには、仮想モータ電流指令値I を電流フィードフォワード指令値として加算する。同様に、フィードフォワード指令値を加算することで、フィードバック特性を変更することなく、指令値に対する応答性を向上させることができる。
なお、第1実施形態では、モータ制御ブロック200の速度指令値ω、電流指令値I共にフィードフォワード指令値を加算したが、一方に加算して他方に加算しなくてもよいし、もしくは共に加算しなくてもよい。
次に、適応補正値演算ブロック300の構成について説明する。図5は、適応補正値演算ブロック300の構成を示すブロック図である。適応補正値演算ブロック300は、速度指令値ω及び電流指令値Iのうち、少なくとも一方の指令値を、仮想モータ位置とモータ位置との差分値(θ−θ)に基づいて求めた補正値Pで補正するものである。補正値Pは、速度補正値ω及び電流補正値Iのうち少なくとも一方で構成される。第1実施形態では、少なくとも一方の指令値とは、速度指令値ω及び電流指令値Iである。よって、補正値Pは、速度補正値ω及び電流補正値Iで構成される。
適応補正値演算ブロック300は、差分演算部301、加重係数演算部302及び補正値生成部303を有する。
差分演算部301は、仮想モータ位置θとモータ位置θとの差分値(θ−θ)=Δθを演算する。
加重係数演算部302は、差分値Δθに対して、重み付けを行う係数である加重係数fを演算する。この加重係数fは、0よりも大きい値である。
補正値生成部303は、モータ制御ブロック200への補正値P及び位置補正値θを演算する。
補正値生成部303は、乗算部320と、モータ制御ブロック200への補正値Pを生成する、速度補正値生成部322及び電流補正値生成部323と、モータ制御ブロック200への位置補正値θを生成する位置補正値生成部321とを有する。
乗算部320は、差分値Δθに加重係数fを乗算することで差分値を補正する。つまり、乗算部320は、補正した差分値f×Δθを求める。
速度補正値生成部322は、差分値f×Δθにより、図4に示すモータ制御ブロック200の速度指令値ωへ加算する速度補正値ωを演算により生成する。第1実施形態では、速度補正値生成部322は、差分値f×Δθを時間で一階微分した演算結果を用いて、速度補正値ωを求める。具体的には、速度補正値生成部322は、差分値f×Δθを時間で一階微分演算するD制御を行う。更に、速度補正値生成部322は、その微分演算結果に対して、速度制御部214の帯域や被制御対象である機械負荷18の固有振動を考慮したローパスフィルタ処理を行う。これにより、速度補正値生成部322は、速度補正値ωを生成する。速度補正値生成部322が、補正した差分値f×Δθに基づいて求めた速度補正値ωをモータ制御ブロック200へ出力することで、加減算部213が第2フィードバック演算処理に用いる速度指令値ωに速度補正値ωを加算補正する。
電流補正値生成部323は、差分値f×Δθより、図4に示すモータ制御ブロック200の電流指令値Iへ加算する電流補正値Iを演算により生成する。第1実施形態では、電流補正値生成部323は、速度補正値ωを時間で一階微分した演算結果を用いて、電流補正値Iを求める。具体的には、電流補正値生成部323は、電流補正値生成部323は、速度補正値ωを時間で一階微分演算する。更に、電流補正値生成部323は、その微分演算結果に対して、電流制御部216の帯域や被制御対象である機械負荷18の固有振動を考慮したローパスフィルタ処理を行う。これにより、電流補正値生成部323は、電流補正値Iを生成する。電流補正値生成部323が、補正した差分値f×Δθに基づいて求めた電流補正値Iをモータ制御ブロック200へ出力することで、加減算部215が第3フィードバック演算処理に用いる電流指令値Iに電流補正値Iを加算補正する。
位置補正値生成部321は、差分値f×Δθより、図4に示すモータ制御ブロック200の位置指令値θへ加算する位置補正値θを演算により生成する。第1実施形態では、位置補正値生成部321は、速度補正値ωを時間で積分演算することで位置補正値θを生成する。位置補正値生成部321が、補正した差分値f×Δθに基づいて求めた位置補正値θをモータ制御ブロック200へ出力することで、加減算部211が第1フィードバック演算処理に用いる位置指令値θに位置補正値θを加算補正する。
以上、適応補正値演算ブロック300は、モータ制御ブロック200に差分値f×Δθに基づいて求めた補正値Pを出力することで、速度指令値ω及び電流指令値Iを速度補正値ω及び電流補正値Iで補正する。
ここで、第1実施形態では、補正前の差分値Δθが大きくなるほど、加重係数fの値が大きくなるように加重係数fの値を設定している。
この加重係数fの算出方法について具体的に説明する。図6は、加重係数演算部302の構成を示すブロック図である。加重係数演算部302は、比例演算部331と、積分演算部332と、絶対値演算部333と、オフセット部334と、加算部335とを有する。比例演算部331及び積分演算部332により補正前の差分値Δθに対して比例演算及び積分演算を施すPI制御演算を行う。絶対値演算部333は、該演算結果に対して絶対値を演算する。加算部335は、絶対値演算部333により演算された絶対値に対して、オフセット部334により所定値オフセットさせた値を加算することで、加重係数fを算出する。オフセット部334にてオフセットさせるオフセット値(所定値)は、0よりも大きい値、例えば1である。
なお、加重係数演算部302は、PI制御演算に代わってP制御演算やPID制御演算により加重係数fの値を算出してもよく、また差分値Δθによらず一定値(例えば1.5)を加重係数fの値として設定する構成としてもよい。
以上、CPU31の各ブロック100,200,300の動作について詳細に説明したが、これらの動作について要約して説明する。図7は、CPU31によるモータ制御方法のフローチャートである。
CPU31は、モータ14をモデル化した仮想モータ101を定義して、仮想モータ位置指令値θ**に基づき、仮想モータ101を仮想的に制御する(S1)。
CPU31は、仮想モータ位置θを位置指令値θとする(S2)。
CPU31は、仮想モータ位置θとモータ位置θとの差分値を加重係数fで補正し、補正した差分値f×Δθに基づいて補正値θ,ω,Iを求め、位置指令値θ、速度指令値ω及び電流指令値Iを各補正値θ,ω,Iで補正する(S3)。
CPU31は、モータ位置θが補正した位置指令値(θ+θ)に近づくように速度指令値ωを求める第1フィードバック演算処理を行う(S4)。
CPU31は、モータ速度ωが補正した速度指令値(ω+ω+ω)に近づくように電流指令値Iを求める第2フィードバック演算処理を行う(S5)。
CPU31は、電流値Iが補正した電流指令値(I+I+I)に近づくように駆動指令値Dを求める第3フィードバック演算処理を行う(S6)。
CPU31は、駆動指令値Dを示す信号をPWM生成器35に出力してモータ14の回転を制御する(S7)。CPU31は、ステップS7の処理後、ステップS1の処理に戻る。
次に、ステップS3の動作による作用、即ち適応補正値演算ブロック300の動作による作用について説明する。
仮想モータ位置θとモータ位置θとの差分値Δθがゼロである場合、モータ14は位置指令値θ(仮想モータ位置θ)の通りに動作している状態である。よって、適応補正値演算ブロック300は、補正値P及び位置補正値θを生成しない。つまり、位置補正値θ=0、速度補正値ω=0、電流補正値I=0である。
一方、モータ14に接続された機械負荷18の慣性負荷等の影響により、図5に示す差分値Δθがゼロとならない場合、適応補正値演算ブロック300では、ゼロではない位置補正値θ、速度補正値ω及び電流補正値Iが生成される。
補正値Pとして、差分値Δθに対して次数が高く、図4に示すモータ制御ブロック200の制御帯域が高い速度制御部214や電流制御部216へ、それぞれ速度補正値ω及び電流補正値Iを加算する。そのため、差分値Δθがゼロになるようにモータ14が応答性よく制御される。
つまり、速度補正値ω又は電流補正値Iにより速度指令値ω又は電流指令値Iを補正することは、位置補正値θにより位置指令値θを補正する場合に比べ、モータ14の回転位置を位置指令値に高応答かつ高精度に追従させることができる。したがって、速度指令値ωのみ又は電流指令値Iのみ補正してもよいが、第1実施形態では、両方の指令値ω,Iを補正しているので、モータ14の回転位置を位置指令値に、より高応答かつ高精度に追従させることができる。
更に、第1実施形態では、位置指令値θを位置補正値θで加算補正しているので、モータ位置θを位置指令値θに、より高応答かつ高精度に追従させることができる。
このように、第1実施形態では、位置補正値θ、速度補正値ω及び電流補正値Iを付加することで応答性が格段によくなり、差分値Δθを効果的に低減することができる。差分値Δθを効果的に低減することができるので、補正値生成部303は、位置補正値生成部321、速度補正値生成部322及び電流補正値生成部323を有する構成が特によい。
次に、第1実施形態において実験を行った結果について説明する。図8は、位置指令値θを与えたときの位置指令値θとモータ位置θとの差分値Δθの実験結果を示すグラフである。補正値生成部303の構成は、位置補正値生成部321、速度補正値生成部322及び電流補正値生成部323を有するものとした。加重係数演算部302は、図6の構成とした。機械負荷18は、負荷イナーシャがモータ14のロータイナーシャよりも十分大きい値となるようにした。また、仮想モータ位置指令値θ**は、モータ14を90度動作させる位置指令値とした。
図8(a)は、第1実施形態の構成において、加重係数fを差分値Δθに乗算して補正し、各補正値θ,ω,Iで各指令値θ,ω,Iを補正した場合の実験結果である。図8(b)は、第1実施形態の構成において、加重係数fをゼロ、つまり補正値θ,ω,Iをゼロとした場合(補正値を生成しなかった場合)の実験結果である。それぞれ、実線が位置指令値θ、点線が位置指令値θとモータ位置θの差分値Δθを表している。
図8(b)では、モータ制御ブロック200のフィードバック制御により、位置指令値θとモータ位置θとの差分値(モータ位置差分)を抑制するように制御しているが、フィードバック制御のみでは差分を十分に低減できていない。
一方、図8(a)では、モータ制御ブロック200のフィードバック制御に加え、更に適応補正値演算ブロック300により生成された各補正値θ,ω,Iを各指令値θ,ω,Iに加算している。そのため、位置指令値θとモータ位置θの差分値(モータ位置差分)を低減する効果が図8(b)に比べて大きい。つまり、位置指令値θに対するモータ14の回転位置の追従性が向上していることがわかる。
以上、第1実施形態によれば、規範モデルブロック100により求められた仮想モータ位置θと、モータ制御ブロック200のフィードバック制御によるモータ位置θとの差分値Δθから、補正値θ,ω,Iを生成している。補正値ω,Iは位置よりも高次である速度、加速度の補正値であるため、モータ制御ブロック200での応答性が高い。よって、高速な応答を求められる例えば産業用ロボットのような制御系においても、モータ14の位置指令値θに対してモータ位置θを高応答かつ高精度に追従させることができる。そのため、負荷イナーシャや外乱がモータ14に作用してもモータ14のロバスト性は保証される。
また、差分値Δθに1よりも大きい値の加重係数fを乗算することにより加重係数fに比例して差分値Δθが大となるように補正されるので、算出される補正値θ,ω,Iが加重係数fに比例して大きくなる。したがって、各補正値θ,ω,Iによる各指令値θ,ω,Iの補正の効果が高くなり、モータ14のモータ位置θを位置指令値θに、より高応答かつ高精度に追従させることができる。よって、モータ14のロバスト性が更に効果的に保証される。
以上の説明では、補正値生成部303は、図5に示すように、差分値f×Δθを微分演算して速度補正値ωを求め、速度補正値ωを微分して電流補正値Iを求め、速度補正値ωを積分して位置指令値θを求めたがこれに限定するものではない。
図9は、補正値生成部の別の構成を示すブロック図である。図9に示す補正値生成部303Aは、モータ制御ブロック200への補正値Pを生成する、速度補正値生成部322及び電流補正値生成部323Aと、モータ制御ブロック200への位置補正値θを生成する位置補正値生成部321Aとを有する。なお、位置補正値生成部321A及び電流補正値生成部323A以外の構成は、図5と同じであるため、説明を省略する。
電流補正値生成部323Aは、差分値f×Δθを時間で一階微分演算するD制御を2回行う。つまり、電流補正値生成部323Aは、差分値f×Δθを時間で二階微分する。更に、電流補正値生成部323Aは、その微分演算結果に対して、電流制御部216の帯域や被制御対象である機械負荷18の固有振動を考慮したローパスフィルタ処理を行う。位置補正値生成部321Aは、差分値f×Δθを位置補正値θとする。以上の構成であっても、補正値生成部303Aは、補正値生成部303と同じように補正値θ,ω,Iを生成することができる。
また、以上の説明では、位置補正値θ、速度補正値ω及び電流補正値Iを求めて、各補正値で各指令値を補正するものとした。しかし、本発明はこれに限定するものではない。速度補正値ω及び/又は電流補正値Iを、速度指令値ω及び/又は電流指令値Iに加算することは、位置補正値θを位置指令値θへ加算する場合よりも差分値Δθを低減する効果が大きい。そのため、指令値θ,ω,Iを全て補正する場合よりも応答性が向上する効果は低減するが、位置補正値θを位置指令値θへ加算しない場合であっても、本発明は適用可能である。
更に、速度指令値ω及び電流指令値Iの両方を各補正値ω,Iで補正する場合について説明したが、本発明はこれに限定するものではない。速度指令値ω及び電流指令値Iのうちいずれか一方の指令値を補正値で補正する場合であってもよい。この場合であっても、位置指令値θを位置補正値θで補正する場合よりも応答性が向上する。
速度指令値ω及び電流指令値Iのうち速度指令値ωのみ補正する場合、図5又は図9において、電流補正値生成部323,323Aは省略できる。また、速度指令値ω及び電流指令値Iのうち電流指令値Iのみ補正する場合、補正値生成部は、図9の構成とする。その際、速度補正値生成部322は省略できる。
また、位置補正値θ、速度補正値ω及び電流補正値Iを算出するに際して、差分値Δθを加重係数fで補正する方が、モータ14の回転位置を位置指令値に、より高応答かつ高精度に追従させることができるので好ましい。しかし、補正する場合に比して効果は低下するが、差分値Δθについて、加重係数fを乗算する補正をしなくても、モータ14の回転位置を位置指令値に高応答かつ高精度に追従させることができる。つまり、図5又は図9において、加重係数演算部302及び乗算部320を省略してもよい。この場合、位置補正値生成部321(321A)、速度補正値生成部322、電流補正値生成部323(323A)は、補正していない差分値Δθに基づいて補正値θ,ω,Iを算出することとなる。
また、モータ制御基板13のCPU31が、仮想モータ位置指令値θ**から仮想モータ位置θを求め、該仮想モータ位置θを位置指令値θとする場合について説明したが、これに限定するものではない。例えば、仮想モータ位置指令値θ**及び仮想モータ位置θに重み係数を乗算して足し合わせた結果を位置指令値としてもよいし、仮想モータ位置指令値θ**をモータの位置指令値としてもよい。
[第2実施形態]
次に、本発明の第2実施形態について説明する。第2実施形態では、第1実施形態で説明したモータ制御装置を、ロボット装置に適用した場合について説明する。なお、第2実施形態の説明をするにあたり、第1実施形態と実質的に同一の機能を有する構成部に関しては、同一の記号を付与し、説明を省略する。
図10は、本発明の第2実施形態に係るロボット装置を示す斜視図である。図10に示すロボット装置400は、産業用ロボットである。ロボット装置400は、把持したワークWを他のワークに組付ける組立作業を行うロボット500と、ロボット500を制御する上位コントローラ11と、上位コントローラ11に接続されたティーチングペンダント600と、を備えている。
ロボット500は、多関節のロボットであり、6軸の垂直多関節型のロボットアーム501と、ロボットアーム501の先端に接続されたエンドエフェクタであるロボットハンド502と、を備えている。
ロボットアーム501は、作業台に固定されるベース部(基端リンク)503と、変位や力を伝達する複数のリンク521〜526と、を有している。ベース部503及び複数のリンク521〜526は、複数の関節J1〜J6で旋回又は回転可能に互いに連結されている。また、ロボットアーム501は、各関節J1〜J6に設けられた、関節を駆動するモータを有するモータ駆動ユニット12を備えている。各関節J1〜J6に配置されたモータ駆動ユニット12は、必要なトルクの大きさに合わせて適切な出力のものが用いられる。
ロボットハンド502は、ワークWを把持する複数の把持爪(フィンガ)504と、複数の把持爪504を駆動する不図示の駆動部と、駆動部の回転角度を検出する不図示のエンコーダと、回転を把持動作に変換する不図示の機構とを有している。この不図示の機構は、カム機構やリンク機構などで必要な把持動作に合わせて設計される。なお、ロボットハンド502に用いる駆動部に必要なトルクは、ロボットアーム501の関節用と異なるが、基本構成は同じである。また、ロボットハンド502は、把持爪504等に作用する応力(反力)を検出可能な不図示の力覚センサを有している。
ティーチングペンダント600は、上位コントローラ11に接続可能に構成され、上位コントローラ11に接続された際に、ロボットアーム501やロボットハンド502を駆動制御する指令を上位コントローラ11に送信可能に構成されている。
以下、関節J2におけるモータ駆動ユニット12を例に代表して説明し、他の関節J1,J3〜J6のモータ駆動ユニット12については、サイズや性能が異なる場合もあるが、同様の構成であるため、説明を省略する。
図11は、ロボット500の関節J2を示す部分断面図である。図11において、第1リンクがリンク521であり、第2リンクがリンク522である。モータ駆動ユニット12は、モータ14と、モータ14の回転軸42の回転を減速して出力する減速機51と、を有している。
また、モータ駆動ユニット12は、モータ14の回転軸42の回転位置(回転角度)を検出するモータ側回転位置検出部(回転位置検出部)であるエンコーダ15を有している。また、モータ駆動ユニット12は、減速機51の出力軸の回転角度(出力角度)を検出する減速機側回転位置検出部であるエンコーダ56を有している。図11では図示を省略しているが、図1に示す電流検出部16が、モータ14の近傍に配置されている。
モータ14は、例えばブラシレスDCモータやACモータ等のサーボモータであり、関節J2を駆動する駆動源である。モータ14は、回転軸42とロータマグネット43とで構成された回転部44と、モータハウジング45と、回転軸42を回転自在に支持する軸受46,47と、回転部44を回転させるステータコイル48と、を備えている。軸受46,47はモータハウジング45に設けられ、ステータコイル48はモータハウジング45に取り付けられている。また、モータ14はモータカバー49で囲われている。モータカバー49の内部には、モータ制御装置であるモータ制御基板13が設けられている。
エンコーダ15は、光学式或いは磁気式のロータリエンコーダであり、モータ14の回転軸42の一端側に設けられ、モータ14の回転軸42の回転に伴ってパルス信号を生成し、上位コントローラ11に生成したパルス信号を出力する。なお、エンコーダ15は、回転軸42に取り付けられているが、減速機51の入力軸に取り付けてもよい。
リンク521とリンク522とは、クロスローラベアリング55を介して回転自在に結合されている。モータ14とエンコーダ15との間には、必要に応じて、電源オフ時にロボットアーム501の姿勢を保持するためのブレーキユニットを設けてもよい。
減速機51は、第2実施形態では、小型軽量で減速比の大きい波動歯車減速機である。減速機51は、モータ14の回転軸42に結合された、入力軸を有するウェブジェネレータ52と、リンク522に固定された、出力軸を有するサーキュラスプライン53と、を備えている。なお、サーキュラスプライン53は、リンク522に直結されているが、リンク522に一体に形成されていてもよい。
また、減速機51は、ウェブジェネレータ52とサーキュラスプライン53との間に配置され、リンク521に固定されたフレクスプライン54を備えている。フレクスプライン54は、ウェブジェネレータ52の回転に対して減速比Nで減速され、サーキュラスプライン53に対して相対的に回転する。従って、モータ14の回転軸42の回転数が減速機51で1/Nに減速され、フレクスプライン54が固定されたリンク521に対してサーキュラスプライン53が固定されたリンク522を相対的に回転運動させ、関節J2を屈曲(回転)させる。このときの減速機51の出力側の回転角度が、実出力角度、即ち関節J2の角度(関節角度)となる。
ここで、上位コントローラ11は、ロボットプログラムに基づいてロボット500の軌道計算を行い、各関節J1〜J6のモータ14の位置指令値(仮想モータ位置指令値θ**)を計算する。そして、上位コントローラ11は、所定の時間間隔で各関節J1〜J6に設けられたモータ駆動ユニット12に、それぞれ制御信号として仮想モータ位置指令値θ**を出力することで、ロボット500の動作を制御する。
ロボット500は、各関節軸がシリアルに構成されているため、ロボット500の姿勢により各関節軸のモータ14にかかる負荷イナーシャの変動が大きい。また、ロボット500の各関節軸が動作することにより発生する動作軸以外への外乱である他軸干渉が生じやすい構成である。
また、各関節軸に減速機51を具備した構成をとっているので、ロボット500を構成する部品の中では、減速機51の剛性は高くはない。そのため、ロボット500の手先位置を高速に直進動作させるような位置指令値を各モータ14へ与えたとしても、負荷イナーシャ、他軸干渉や減速機51の剛性の影響により、ロボット500の手先位置は振動を伴いながら動作することになる。
本第2実施形態では、各関節軸にモータ14と共に設けられたモータ制御基板13のCPU31(図1参照)は、規範モデルブロック100、モータ制御ブロック200及び適応補正値演算ブロック300として機能する。
モータ制御ブロック200においては、各関節軸間の制御帯域が同等になるように、モータ制御ブロック200内の制御部のパラメータが調整されている。
規範モデルブロック100は、同様に各関節軸間の制御帯域が同等になるように、仮想モータ制御部210内の制御部のパラメータが調整されている。
適応補正値演算ブロック300は、位置補正値θ、速度補正値ω、電流補正値Iを生成し、各々位置指令値θ、速度指令値ω、電流指令値Iへ加算させる。
なお、速度補正値生成部322は、微分演算を行うD制御と、速度制御部214の帯域や減速機51の剛性を考慮して、ローパスフィルタを用いた構成とし、速度補正値ωを生成する。
電流補正値生成部323は、速度補正値ωと微分演算を行うD制御との構成とし、電流制御部216の帯域を考慮して、ローパスフィルタを用いた構成とし、電流補正値Iを生成する。
位置補正値生成部321は、速度補正値ωを積分し、位置制御部212の帯域や減速機51の剛性を考慮して、ローパスフィルタを用いた構成とし、位置補正値θを生成する。
次に、適応補正値演算ブロック300の作用について説明する。各関節軸のモータ位置θと仮想モータ位置θから補正値θ,ω,Iを生成し、モータ制御ブロック200の所定のブロックへ補正値θ,ω,Iを加算する。
補正値θ,ω,Iは、各関節軸の減速機51を加振させない帯域の指令値であり、規範モデルブロック100では各関節軸間での制御帯域が同等になるように調整されている。そのため、減速機51を加振しないような補正値を制御帯域が高い、速度制御部214や電流制御部216の指令値に加算するため、高応答でモータ14を制御することが可能となる。
各関節軸のモータ14にかかる負荷イナーシャが大きくなるような動作であっても、仮想モータ位置θにモータ位置θが追従するように各軸のモータ14が動作するため、ロボット500の手先動作精度を向上させることができる。
次に、第2実施形態における実験結果について説明する。本実験では、ロボット500に、水平方向に直進動作をさせた。各関節軸の仮想モータ位置指令値θ**は、上位コントローラ11から生成される。
次に、ロボット500の手先を直進動作させたときの実験結果について説明する。図12は、第2実施形態に係るロボット装置400のロボット500の動作を説明するための図である。図12(a)はロボット500の動作開始時の姿勢、図12(b)はロボット500の動作終了時の姿勢を表している。
図13は、ロボット500の手先を直進動作させたときの手先の位置を測定した結果を示すグラフである。図13(a)は、第2実施形態の構成において、加重係数fを差分値Δθに乗算して補正し、各補正値θ,ω,Iで各指令値θ,ω,Iを補正した場合の実験結果である。図13(b)は、第2実施形態の構成において、加重係数fをゼロ、つまり補正値θ,ω,Iをゼロとした場合(補正値を生成しなかった場合)の実験結果である。それぞれ、実線がロボット500の手先の位置、点線がロボット500の手先の目標位置を表している。
本実験では、図12中、ロボット500の手先をX軸方向に50mm直進動作をさせた。なお、本実験においては、手先位置を測定するにあたりレーザー変位計を使用した。
図13(b)では、モータ制御ブロック200のフィードバック制御により、位置指令値θとモータ位置θの差分を低減するように制御しているが、フィードバック制御のみでは差分を十分に低減できていない。そのため、各関節軸の位置差分が蓄積されることにより、手先位置は、図13(b)に示すように、振動的になってしまう。
一方、図13(a)では、モータ制御ブロック200のフィードバック制御において、適応補正値演算ブロック300により生成された補正値θ,ω,Iを各指令値θ,ω,Iに加算している。その結果、モータ位置θと位置指令値θとの差分値Δθを低減する効果が大きい。そのため、各関節軸のモータ14の位置指令値θへの追従性が向上し、ロボット500の手先位置の動作精度も向上していることがわかる。
以上、第2実施形態によれば、ロボット500の各関節J1〜J6に負荷イナーシャや外乱が作用しても、各関節J1〜J6におけるモータ14において、回転位置を位置指令値に高応答かつ高精度に追従させることができる。よって、ロボット500の手先の振動を低減することができ、ロボット500のロバスト性が保証される。
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。
上記実施形態の各演算処理は、具体的にはモータ制御基板13のCPU31により実行されるものであるが、これに限定するものではなく、上位コントローラ11のCPU21と協働して実行してもよい。この場合、モータ制御基板13及び上位コントローラ11でモータ制御装置が構成され、上位コントローラ11のCPU21とモータ制御基板13のCPU31で制御部が構成される。
また、上述した機能を実現するプログラムを記録した記録媒体をモータ制御装置に供給し、モータ制御装置のコンピュータ(CPUやMPU)が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
また、上記実施形態では、コンピュータ読み取り可能な記録媒体がROM32であり、ROM32にプログラム38が格納される場合について説明したが、これに限定するものではない。プログラム38は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図1に示すROM22や不図示の外部記憶装置、記録ディスク等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上記実施形態の機能が実現される場合も含まれる。
また、上記実施形態では、コンピュータが記録媒体や記憶装置に記録されたプログラムを実行することにより、処理を行う場合について説明したが、これに限定するものではない。プログラムに基づいて動作する演算部の一部又は全部の機能をASICやFPGA等の専用LSIで構成してもよい。なお、ASICはApplication Specific Integrated Circuit、FPGAはField-Programmable Gate Arrayの頭字語である。
13…モータ制御基板(モータ制御装置)、14…モータ、15…エンコーダ(回転位置検出部)、16…電流検出部、31…CPU(制御部)、35…PWM生成器(駆動部)、38…プログラム、101…仮想モータ、400…ロボット装置

Claims (18)

  1. 入力した駆動指令値の信号に基づきモータに電流を供給して前記モータを動作させる駆動部と、
    前記モータの回転位置の値、前記モータに供給する電流の電流値、及び前記モータの回転位置の指令値を示す位置指令値を用いて前記駆動指令値を求め、求めた前記駆動指令値を示す信号を前記駆動部に出力することで、前記モータの回転を制御する制御部と、を備え、
    前記制御部は、
    前記回転位置の値が前記位置指令値に近づくように、前記モータの回転速度の指令値を示す速度指令値を求める第1フィードバック演算処理を行い、
    前記モータの回転速度の値が前記速度指令値に近づくように、前記モータの回転加速度の指令値に対応する電流指令値を求める第2フィードバック演算処理を行い、
    前記電流値が前記電流指令値に近づくように前記駆動指令値を求める第3フィードバック演算処理を行い、
    前記モータをモデル化した仮想モータを定義して前記仮想モータを仮想的に制御し、
    前記第2フィードバック演算処理に用いる前記速度指令値、及び前記第3フィードバック演算処理に用いる前記電流指令値のうち、少なくとも一方の指令値を、前記仮想モータの仮想回転位置の値と前記回転位置の値との差分値に基づいて求めた補正値で補正することを特徴とするモータ制御装置。
  2. 前記制御部は、前記補正値を演算するに際し、前記仮想回転位置の値と前記回転位置の値との差分値に、加重係数を乗算することで、前記仮想回転位置の値と前記回転位置の値との差分値を補正することを特徴とする請求項1に記載のモータ制御装置。
  3. 前記制御部は、補正前の前記仮想回転位置の値と前記回転位置の値との差分値が大きいほど、前記加重係数の値を大きい値に設定することを特徴とする請求項2に記載のモータ制御装置。
  4. 前記制御部は、補正前の前記仮想回転位置の値と前記回転位置の値との差分値に対して比例演算及び積分演算を施すPI制御演算を行い、該演算結果の絶対値に対して所定値オフセットさせた値を、前記加重係数の値とすることを特徴とする請求項2又は3に記載のモータ制御装置。
  5. 前記加重係数は、一定値であることを特徴とする請求項2に記載のモータ制御装置。
  6. 前記制御部は、前記位置指令値を、前記仮想回転位置の値に設定することを特徴とする請求項1乃至5のいずれか1項に記載のモータ制御装置。
  7. 前記少なくとも一方の指令値が前記速度指令値であり、
    前記制御部は、前記補正値として、前記速度指令値に加算することで前記速度指令値を補正する速度補正値を演算することを特徴とする請求項1乃至6のいずれか1項に記載のモータ制御装置。
  8. 前記制御部は、前記仮想回転位置の値と前記回転位置の値との差分値を時間で一階微分した演算結果を用いて、前記速度補正値を求めることを特徴とする請求項7に記載のモータ制御装置。
  9. 前記少なくとも一方の指令値が前記電流指令値であり、
    前記制御部は、前記補正値として、前記電流指令値に加算することで前記電流指令値を補正する電流補正値を演算することを特徴とする請求項1乃至6のいずれか1項に記載のモータ制御装置。
  10. 前記制御部は、前記仮想回転位置の値と前記回転位置の値との差分値を時間で二階微分した演算結果を用いて、前記電流補正値を求めることを特徴とする請求項9に記載のモータ制御装置。
  11. 前記少なくとも一方の指令値が前記速度指令値及び前記電流指令値であり、
    前記制御部は、前記補正値として、前記速度指令値に加算することで前記速度指令値を補正する速度補正値を演算し、かつ前記電流指令値に加算することで前記電流指令値を補正する電流補正値を演算することを特徴とする請求項1乃至6のいずれか1項に記載のモータ制御装置。
  12. 前記制御部は、
    前記仮想回転位置の値と前記回転位置の値との差分値を時間で一階微分した演算結果を用いて、前記速度補正値を求め、
    前記速度補正値を時間で一階微分した演算結果を用いて、前記電流補正値を求めることを特徴とする請求項11に記載のモータ制御装置。
  13. 前記制御部は、
    前記仮想回転位置の値と前記回転位置の値との差分値を時間で一階微分した演算結果を用いて、前記速度補正値を求め、
    前記仮想回転位置の値と前記回転位置の値との差分値を時間で二階微分した演算結果を用いて、前記電流補正値を求めることを特徴とする請求項11に記載のモータ制御装置。
  14. 前記制御部は、更に、前記第1フィードバック演算処理に用いる前記位置指令値を、前記仮想回転位置の値と前記回転位置の値との差分値に基づいて求めた位置補正値で補正することを特徴とする請求項1乃至13のいずれか1項に記載のモータ制御装置。
  15. 第1リンクと、
    前記第1リンクに対して関節で連結された第2リンクと、
    前記関節を駆動するモータと、
    前記モータの回転位置を検出する回転位置検出部と、
    前記モータに供給される電流を検出する電流検出部と、
    請求項1乃至14のいずれか1項に記載のモータ制御装置と、を備えたことを特徴とするロボット装置。
  16. 制御部が、モータの回転位置の値、前記モータに供給する電流の電流値、及び前記モータの回転位置の指令を示す位置指令値を用いて駆動指令値を求め、求めた前記駆動指令値を示す信号を、前記モータに電流を供給して前記モータを動作させる駆動部に出力することで、前記モータの回転を制御するモータ制御方法であって、
    前記制御部が、前記回転位置の値が前記位置指令値に近づくように、前記モータの回転速度の指令値を示す速度指令値を求める第1フィードバック演算処理を行う工程と、
    前記制御部が、前記モータの回転速度の値が前記速度指令値に近づくように、前記モータの回転加速度の指令値に対応する電流指令値を求める第2フィードバック演算処理を行う工程と、
    前記制御部が、前記電流値が前記電流指令値に近づくように前記駆動指令値を求める第3フィードバック演算処理を行う工程と、
    前記制御部が、前記モータをモデル化した仮想モータを定義して前記仮想モータを仮想的に制御する工程と、
    前記制御部が、前記第2フィードバック演算処理に用いる前記速度指令値、及び前記第3フィードバック演算処理に用いる前記電流指令値のうち、少なくとも一方の指令値を、前記仮想モータの仮想回転位置の値と前記回転位置の値との差分値に基づいて求めた補正値で補正する工程と、を備えたことを特徴とするモータ制御方法。
  17. コンピュータに、請求項16に記載のモータ制御方法の各工程を実行させるためのプログラム。
  18. 請求項17に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2014152810A 2014-07-28 2014-07-28 モータ制御装置、ロボット装置、モータ制御方法、プログラム及び記録媒体 Pending JP2016032326A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014152810A JP2016032326A (ja) 2014-07-28 2014-07-28 モータ制御装置、ロボット装置、モータ制御方法、プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014152810A JP2016032326A (ja) 2014-07-28 2014-07-28 モータ制御装置、ロボット装置、モータ制御方法、プログラム及び記録媒体

Publications (1)

Publication Number Publication Date
JP2016032326A true JP2016032326A (ja) 2016-03-07

Family

ID=55442438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014152810A Pending JP2016032326A (ja) 2014-07-28 2014-07-28 モータ制御装置、ロボット装置、モータ制御方法、プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP2016032326A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111136633A (zh) * 2020-01-13 2020-05-12 燕山大学 针对时变时延下柔性主-从机器人系统的全状态控制方法
WO2020170834A1 (ja) * 2019-02-20 2020-08-27 株式会社日立ハイテク 制御システムおよび当該制御システムを搭載した自動分析装置
WO2022190420A1 (ja) * 2021-03-11 2022-09-15 オムロン株式会社 複数の移動機構を制御するシステムおよび方法
CN116582048A (zh) * 2023-04-20 2023-08-11 江南大学 一种永磁同步电机的无位置传感器控制方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020170834A1 (ja) * 2019-02-20 2020-08-27 株式会社日立ハイテク 制御システムおよび当該制御システムを搭載した自動分析装置
JPWO2020170834A1 (ja) * 2019-02-20 2021-11-18 株式会社日立ハイテク 制御システムおよび当該制御システムを搭載した自動分析装置
JP7141514B2 (ja) 2019-02-20 2022-09-22 株式会社日立ハイテク 制御システムおよび当該制御システムを搭載した自動分析装置
US12015360B2 (en) 2019-02-20 2024-06-18 Hitachi High-Tech Corporation Control system and automatic analysis device mounted with said control system
CN111136633A (zh) * 2020-01-13 2020-05-12 燕山大学 针对时变时延下柔性主-从机器人系统的全状态控制方法
WO2022190420A1 (ja) * 2021-03-11 2022-09-15 オムロン株式会社 複数の移動機構を制御するシステムおよび方法
CN116582048A (zh) * 2023-04-20 2023-08-11 江南大学 一种永磁同步电机的无位置传感器控制方法
CN116582048B (zh) * 2023-04-20 2024-01-12 江南大学 一种永磁同步电机的无位置传感器控制方法

Similar Documents

Publication Publication Date Title
JP6648913B2 (ja) 制御方法、ロボット装置、プログラム、記録媒体、物品の製造方法、及び駆動装置
JP5916583B2 (ja) 多関節ロボットのウィービング制御装置
JP4283214B2 (ja) 機械先端点の制御装置
CN110076773B (zh) 机器人设备、制造物品的方法及电机驱动设备
EP2752274B1 (en) Control method and control device
JP7117827B2 (ja) モータ制御システム、モータ制御システムの制御方法、及びロボットシステム
CN110662636B (zh) 减速机角度传递误差辨识系统和减速机角度传递误差辨识方法
JP2017124455A (ja) ロボット装置、ロボット制御方法、プログラム及び記録媒体
JP2016032326A (ja) モータ制御装置、ロボット装置、モータ制御方法、プログラム及び記録媒体
JP2017209762A (ja) ロボット装置、ロボット制御方法、プログラム、記録媒体及び物品の製造方法
JP2020015124A (ja) ロボット制御方法、物品の製造方法、ロボット制御装置、ロボット、プログラム及び記録媒体
CN110955192A (zh) 伺服控制装置、机器人及伺服控制方法
WO2018225689A1 (ja) 角度伝達誤差同定システム、角度伝達誤差同定方法及びロボットシステム
JP6700679B2 (ja) 制御方法、物品の製造方法、ロボット装置、制御プログラム及び記録媒体
JP6237039B2 (ja) ロボット制御装置およびロボット制御方法
JPWO2009025132A1 (ja) モータ制御装置とその慣性モーメント同定方法
JP2008217405A (ja) アクチュエータ制御装置およびアクチュエータ制御方法
JP2020069616A (ja) モータ駆動装置、ロボット駆動システム及びモータ駆動プログラム
JP2020127989A (ja) 制御方法、物品の製造方法、検出方法、ロボット装置、制御装置、検出装置、プログラム、及び記録媒体
JP2021136824A (ja) モータ制御装置、モータ制御システム、およびモータ制御方法
JP2019217592A (ja) ロボット装置及びその制御方法、プログラム、記録媒体、物品の製造方法
JP5063981B2 (ja) 電動機の位置制御装置
JP2021122907A (ja) ロボット制御装置、ロボットシステム及びロボット制御方法
JP2008152603A (ja) ステージ制御装置とその重心位置補正方法並びに機械パラメータ調整方法