(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-24
(45)【発行日】2023-12-04
(54)【発明の名称】モータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボット
(51)【国際特許分類】
H02P 29/20 20160101AFI20231127BHJP
H02P 23/04 20060101ALI20231127BHJP
【FI】
H02P29/20
H02P23/04
(21)【出願番号】P 2020017143
(22)【出願日】2020-02-04
【審査請求日】2023-01-13
(73)【特許権者】
【識別番号】000002233
【氏名又は名称】ニデックインスツルメンツ株式会社
(74)【代理人】
【識別番号】100123788
【氏名又は名称】宮崎 昭夫
(74)【代理人】
【識別番号】100127454
【氏名又は名称】緒方 雅昭
(72)【発明者】
【氏名】花岡 正志
【審査官】佐藤 彰洋
(56)【参考文献】
【文献】特開2018-007473(JP,A)
【文献】特開2005-094964(JP,A)
【文献】特開2018-007533(JP,A)
【文献】特開2011-067017(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H02P 4/00
H02P 21/00-25/03
H02P 25/04
H02P 25/08-31/00
H02P 6/00-6/34
(57)【特許請求の範囲】
【請求項1】
モータを電流引込法によるオープンループ制御によって駆動するモータ制御方法において、
信号発信手段から発信される回転位置指令信号と、モータに搭載された回転位置検出器から発信される回転位置信号とに基づくフィードバック制御によってモータを駆動する構成における前記回転位置指令信号に応答した後のモータの回転位置、及びモータに流される電流をシミュレーションするステップと、シミュレーションによって得られた回転位置シミュレーション値に応じた電気角を算出するステップと、前記電気角に基づいて前記モータに電圧を印加するステップとを具備し、
前記回転位置及び前記電流をシミュレーションするステップにて、前記回転位置シミュレーション値を前記回転位置指令信号に追従させるように仮想的に制御する位置仮想制御ステップと、前記電流をシミュレーションする電流シミュレーションステップとを実行し、
前記位置仮想制御ステップにて、前記回転位置指令信号と、前記電流シミュレーションステップで得られた電流シミュレーション値とに基づいてモータに対する電圧指令値を算出し、
前記電流シミュレーションステップにて、モータ及び負荷機械を含む機械系及び電気系のモデルに前記電圧指令値を入力し、前記モデルから前記回転位置シミュレーション値及び前記電流シミュレーション値を出力する
ことを特徴とするモータ制御方法。
【請求項2】
モータを電流引込法によるオープンループ制御によって駆動するモータ制御方法において、
信号発信手段から発信される回転位置指令信号と、モータに搭載された回転位置検出器から発信される回転位置信号とに基づくフィードバック制御によってモータを駆動する構成における前記回転位置指令信号に応答した後のモータの回転位置をシミュレーションするステップと、シミュレーションによって得られた回転位置シミュレーション値に応じた電気角を算出するステップと、前記電気角に基づいて前記モータに電流を供給するステップとを具備し、
前記回転位置をシミュレーションするステップにて、前記回転位置シミュレーション値を前記回転位置指令信号に追従させるように仮想的に制御する位置仮想制御ステップと、前記回転位置シミュレーション値を得るシミュレーション値取得ステップとを実行し、
前記位置仮想制御ステップにて、前記回転位置指令信号に基づいて、必要なトルクをモータに発生させるためのトルク指令値を算出し、
前記シミュレーション値取得ステップにて、モータ及び
負荷機械を含む機械系のモデルに前記トルク指令値を入力し、前記モデルから前記回転位置シミュレーション値を出力する
ことを特徴とするモータ制御方法。
【請求項3】
モータを電流引込法によるオープンループ制御によって駆動するモータ制御方法において、
信号発信手段から発信される回転位置指令信号を、位置制御応答伝達関数により、前記回転位置指令信号に応答した後のモータの回転位置に変換するステップと、前記回転位置に応じた電気角を算出するステップと、前記電気角に基づいて前記モータに電圧を印加するステップとを具備する
ことを特徴とするモータ制御方法。
【請求項4】
前記位置制御応答伝達関数が、次式
【数1】
における右辺を改変した次式
【数2】
である
ことを特徴とする請求項3に記載のモータ制御方法。
【請求項5】
前記位置制御応答伝達関数が、次式
【数3】
における右辺を改変した次式
【数4】
である
ことを特徴とする請求項3に記載のモータ制御方法。
【請求項6】
前記位置制御応答伝達関数が、次式
【数5】
における右辺を改変した次式
【数6】
である
ことを特徴とする請求項3に記載のモータ制御方法。
【請求項7】
前記位置制御応答伝達関数が、次式
【数7】
である
ことを特徴とする請求項3に記載のモータ制御方法。
【請求項8】
モータの回転位置を検出する回転位置検出器から発信される回転位置信号の異常の有無を検出するステップと、
前記回転位置信号の異常が検出されない場合に、信号発信手段から発信される回転位置指令信号と、前記回転位置信号とに基づくフィードバック制御によって前記モータを駆動するステップと、
前記回転位置信号の異常が検出された場合に、所定の高速角速度領域では、前記モータに発生する誘起電圧に基づいて推定したモ前記モータの回転位置推定値に基づくセンサレスベクトル制御によって前記モータを駆動する一方で、前記高速回転領域よりも低い低速回転領域では、オープンループ制御によって前記モータを駆動する
ことを特徴とする請求項1乃至3の何れか一項に記載のモータ制御方法。
【請求項9】
モータの回転位置を検出する回転位置検出器から発信される回転位置信号の異常の有無を検出するステップと、
前記回転位置信号の異常が検出されない場合に、信号発信手段から発信される回転位置指令信号と、前記回転位置信号とに基づくフィードバック制御によって前記モータを駆動するステップと、
前記回転位置信号の異常が検出された場合に、所定の高速角速度領域では、前記モータに発生する誘起電圧に基づいて推定したモ前記モータの回転位置推定値に基づくセンサレスベクトル制御によって前記モータを駆動する一方で、前記高速回転領域よりも低い低速回転領域では、オープンループ制御によって前記モータを駆動する
ことを特徴とする請求項4乃至7の何れか一項に記載のモータ制御方法。
【請求項10】
前記フィードバック制御又は前記センサレスベクトル制御から、前記オープンループ制御に切り替わった直後のω
2が、切り換え直前の前記フィードバック制御における前記回転位置指令信号と前記回転位置信号とに基づいて、又は切り換え直前の前記センサレスベクトル制御における前記回転位置指令信号と前記回転位置推定値とに基づいて算出される
ことを特徴とする請求項9に記載のモータ制御方法。
【請求項11】
モータの駆動を制御するモータ駆動装置であって、
請求項1乃至10の何れか1項に記載のモータ制御方法によって前記モータの駆動を制御する
ことを特徴とするモータ駆動装置。
【請求項12】
複数のモータの駆動を個別に制御して産業用ロボットのアームの位置を変化させる産業用ロボットの制御方法であって、
複数のモータにおけるそれぞれの駆動を、請求項1乃至10の何れか1項に記載のモータ制御方法によって制御する
ことを特徴とする産業用ロボットの制御方法。
【請求項13】
複数のモータの駆動を個別に制御してアームの位置を変化させる産業用ロボットであって、
複数のモータにおけるそれぞれの駆動を、請求項11に記載のモータ駆動装置によって制御する
ことを特徴とする産業用ロボット。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボットに関する。
【背景技術】
【0002】
従来、モータをオープンループ制御によって駆動するモータ制御方法が知られている。
【0003】
例えば、特許文献1に記載のモータ制御方法では、モータを強制転流(電流引込法)によるオープンループ制御で起動する。その後、モータの角速度を所定値まで上昇させてモータ内で十分な誘起電圧を得られるようになった段階で、モータの回転位置をモータに流れる電流の検出値に基づいて推定するセンサレスベクトル制御によってモータの回転を制御する。特許文献1によれば、かかるモータ制御方法においては、安定したモータ制御を実現することができるとされる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載のモータ制御方法において、モータを停止させるために、センサレスベクトル制御によってモータの角速度を所定値まで低下させた後、モータの制御方式をセンサレスベクトル制御からオープンループ制御に切り換えたとする。このとき、モータに流すDQ軸電流ベクトルの向きを、Q軸方向からD軸の正の向きへ瞬時に切り換えると、モータを駆動源とする駆動対象機械を運動させるためのトルクが得られなくなり、モータの脱調や大きな振動を発生させてしまう。
【0006】
なお、モータの制御方式をセンサレスベクトル制御からオープンループ制御に切り換えるときに発生する課題について説明したが、次のような構成においても、同様の課題が生じ得る。即ち、制御方式を、エンコーダ等によるモータの回転位置の検出値をフィードバックするフィードバック制御から、オープンループ制御に切り換える構成である。
【0007】
本発明は、以上の背景に鑑みてなされたものであり、その目的とするところは、次のようなモータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボットを提供することである。即ち、モータ減速のための制御方式切り換え後におけるモータの脱調や振動の発生を抑えることができるモータ制御方式等である。
【課題を解決するための手段】
【0008】
本願の第1発明は、モータを電流引込法によるオープンループ制御によって駆動するモータ制御方法において、信号発信手段から発信される回転位置指令信号と、モータに搭載された回転位置検出器から発信される回転位置信号とに基づくフィードバック制御によってモータを駆動する構成における前記回転位置指令信号に応答した後のモータの回転位置、及びモータに流される電流をシミュレーションするステップと、シミュレーションによって得られた回転位置シミュレーション値に応じた電気角を算出するステップと、前記電気角に基づいて前記モータに電圧を印加するステップとを具備し、前記回転位置及び前記電流をシミュレーションするステップにて、前記回転位置シミュレーション値を前記回転位置指令信号に追従させるように仮想的に制御する位置仮想制御ステップと、前記電流をシミュレーションする電流シミュレーションステップとを実行し、前記位置仮想制御ステップにて、前記回転位置指令信号と、前記電流シミュレーションステップで得られた電流シミュレーション値とに基づいてモータに対する電圧指令値を算出し、前記電流シミュレーションステップにて、モータ及び負荷機械を含む機械系及び電気系のモデルに前記電圧指令値を入力し、前記モデルから前記回転位置シミュレーション値及び前記電流シミュレーション値を出力することを特徴とするモータ制御方法である。
【0009】
本願の第2発明は、モータを電流引込法によるオープンループ制御によって駆動するモータ制御方法において、信号発信手段から発信される回転位置指令信号と、モータに搭載された回転位置検出器から発信される回転位置信号とに基づくフィードバック制御によってモータを駆動する構成における前記回転位置指令信号に応答した後のモータの回転位置をシミュレーションするステップと、シミュレーションによって得られた回転位置シミュレーション値に応じた電気角を算出するステップと、前記電気角に基づいて前記モータに電流を供給するステップとを具備し、前記回転位置をシミュレーションするステップにて、前記回転位置シミュレーション値を前記回転位置指令信号に追従させるように仮想的に制御する位置仮想制御ステップと、前記回転位置シミュレーション値を得るシミュレーション値取得ステップとを実行し、前記位置仮想制御ステップにて、前記回転位置指令信号に基づいて、必要なトルクをモータに発生させるためのトルク指令値を算出し、前記シミュレーション値取得ステップにて、モータ及び負荷機械を含む機械系のモデルに前記トルク指令値を入力し、前記モデルから前記回転位置シミュレーション値を出力することを特徴とするモータ制御方法である。
【0010】
本願の第3発明は、モータを電流引込法によるオープンループ制御によって駆動するモータ制御方法において、信号発信手段から発信される回転位置指令信号を、位置制御応答伝達関数により、前記回転位置指令信号に応答した後のモータの回転位置に変換するステップと、前記回転位置に応じた電気角を算出するステップと、前記電気角に基づいて前記モータに電圧を印加するステップとを具備することを特徴とするモータ制御方法である。
【0011】
本願の第4発明は、モータの駆動を制御するモータ駆動装置であって、第1発明、第2発明、又は第3発明のモータ制御方法によって前記モータの駆動を制御することを特徴とするモータ駆動装置である。
【0012】
本願の第5発明は、複数のモータの駆動を個別に制御して産業用ロボットのアームの位置を変化させる産業用ロボットの制御方法であって、複数のモータにおけるそれぞれの駆動を、第1発明、第2発明、又は第3発明のモータ制御方法によって制御することを特徴とする産業用ロボットの制御方法である。
【0013】
本願の第6発明は、複数のモータの駆動を個別に制御してアームの位置を変化させる産業用ロボットであって、複数のモータにおけるそれぞれの駆動を、第4発明のモータ駆動装置によって制御することを特徴とする産業用ロボットである。
【発明の効果】
【0014】
これらの発明によれば、モータ減速のための制御方式切り換え後におけるモータの脱調や振動の発生を抑えることができるという優れた効果がある。
【図面の簡単な説明】
【0015】
【
図1】実施形態に係る産業用ロボットを示す斜視図。
【
図3】同産業用ロボットに搭載されたモータ駆動装置の制御構成を、モータ等とともに示すブロック線図である。
【
図4】同モータ駆動装置の制御モード選択部によって実行されるモード値選択処理の処理フローを示すフローチャートである。
【
図5】第1例のオープンループ制御を実行するためのオープンループ制御電気角生成部を示すブロック線図である。
【
図6】位置指令値と、位置指令値に応答した制御による手部の実際の回転位置及び速度との関係を示すグラフである。
【
図7】第2例のオープンループ制御を実行するためのオープンループ制御電気角生成部を示すブロック線図である。
【
図8】第3例のオープンループ制御を実行するためのオープンループ制御電気角生成部を示すブロック線図である。
【
図9】第4例のオープンループ制御を実行するためのオープンループ制御電気角生成部を示すブロック線図である。
【
図10】第5例のオープンループ制御を実行するためのオープンループ制御電気角生成部を示すブロック線図である。
【
図11】第6例のオープンループ制御を実行するためのオープンループ制御電気角生成部を示すブロック線図である。
【発明を実施するための形態】
【0016】
以下、図面を参照しながら、本発明の実施形態に係るモータ制御方法を用いるモータ駆動装置及び産業用ロボットの実施形態について説明する。なお、以下の図面においては、各構成をわかり易くするために、実際の構造、並びに、各構造における縮尺及び数、などを異ならせる場合がある。
【0017】
まず、実施形態に係る産業用ロボットの基本的な構成について説明する。
図1は、実施形態に係る産業用ロボット1を示す斜視図である。
図2は、産業用ロボット1を示す平面図である。産業用ロボット1は、ガラス基板を搬送するためのロボットであり、アーム2、架台3、及び昇降部4を備える。昇降部4は、架台3に保持され、不図示の昇降モータの駆動によって上下方向(
図1の矢印方向)に昇降する。アーム2は、ガラス基板を載せる手部2A、前腕部2B、及び上腕部2Cを備え、昇降部4によって保持される。
【0018】
上腕部2Cにおける昇降部4との接続部である肩関節2Dは、第1モータ22Aの駆動によって水平方向に沿って回動することが可能である。具体的には、第1モータ22Aの回転駆動力が第1ベルト2Eを介して肩関節2Dに伝達されることで、肩関節2Dが水平方向に回動する。また、上腕部2Cと前腕部2Bとの接続部である肘関節2Fは、第2モータ22Bの駆動によって水平方向に沿って回動することが可能である。具体的には、第2モータ22Bの回転駆動力が第2ベルト2Gを介して肘関節2Fに伝達されることで、肘関節2Fが水平方向に回動する。また、前腕部2Bと手部2Aとの接続部である手首関節は、第2モータ22Bの駆動力をベルトを介して受けることで、水平方向に沿って回動することが可能である。
【0019】
産業用ロボット1において、手部2Aを
図2の一点鎖線で示される軌道に沿って矢印方向に真っ直ぐに移動させるためには、肩関節2Dと肘関節2Fとの角度を1対2の割合にして両関節を回転させる必要がある。そのためには、第1モータ22Aと第2モータ22Bとを互いに異なる駆動量で駆動する必要がある。第1モータ22A、第2モータ22Bのそれぞれの回転位置を制御せずに両モータを停止させた場合、両モータの駆動量のバランスを崩して手部2Aを一点鎖線で示される軌道から逸れた位置で停止させてしまう。
【0020】
次に、実施形態に係るモータ制御方法を用いるモータ駆動装置について説明する。
図3は、実施形態に係る産業用ロボット1に搭載されたモータ駆動装置20の制御構成を、モータ22等とともに示すブロック線図である。なお、産業用ロボット1は、
図3に示されるモータ駆動装置20として、アーム2の肩関節2Dを回動させるためのモータ駆動装置20、アーム2の肘関節2F、及び手首関節を回動させるためのモータ駆動装置20、及び昇降部4を昇降させるためのモータ駆動装置20の3つを備える。
【0021】
3つのモータ駆動装置20のそれぞれは、モータ22の駆動の制御方式として、検出位置フィードバック制御、センサレスベクトル制御、及びオープンループ制御の3つを切り換えて実行することができる。
【0022】
産業用ロボット1は、3つのモータ駆動装置20に指令を送る上位コントローラ100を備える。上位コントローラ100は、記憶媒体に記憶している制御プログラムに基づいて、3つのモータ駆動装置20のそれぞれに対して位置指令値(位置指令信号)を送信する。3つのモータ駆動装置20のそれぞれは、上位コントローラ100から送られてくる位置指令値に対応する回転位置までモータ22のロータを回転させる制御を実行する。この制御により、産業用ロボット1のアーム2が前述の制御プログラムに基づいた動作を行う。
【0023】
3つのモータ駆動装置20の構成は互いに同様である。よって、以下、3つのモータ駆動装置20のうち、1つだけについて、構成を詳細に説明する。
【0024】
モータ駆動装置20は、制御モード選択部21、位置速度制御部23、ベクトル制御DQ軸電流指令生成部24、第1セレクター25、電流制御部26、DQ逆変換部27、PWM制御部28、及びインバータ29を備える。モータ駆動装置20によって駆動されるモータ22は、上述の第1モータ22A、第2モータ22B、又は第3モータである。モータ駆動装置20は、電流検出部31、第2セレクター32、ベクトル制御電気角生成部33、第3セレクター34、位置推定部35、及びオープンループ制御電気角生成部36を備える。また、モータ駆動装置20は、オープンループ制御DQ軸電流指令生成部37、エンコーダ通信異常判定部38、及びDQ変換部39を備える。モータユニットは、モータ22及びロータリーエンコーダ30を備える。
【0025】
上位コントローラ100から出力される位置指令値は、モータ駆動装置20の位置速度制御部23、及びオープンループ制御電気角生成部36に入力される。
【0026】
産業用ロボット1のアーム2における旋回動作(肩関節2Dの回動)、関節曲げ伸ばし動作(肩関節2D、肘関節2F、及び手首関節の回動)、又は昇降動作の駆動源であるモータ22は、三相(U相、V相、W相)交流のPM(Permanent Magnet)モータからなる。モータ22に搭載された回転位置検出器としてのロータリーエンコーダ30は、周知の技術によってモータ22のロータの回転位置を検出し、検出結果の情報を位置検出値(回転位置信号)として出力する。出力された位置検出値は、エンコーダ通信異常判定部38、制御モード選択部21に入力される。また、位置検出値は、第2セレクター32を介して位置速度制御部23にも入力される。
【0027】
なお、以下、モータ22のロータの回転を、モータ22の回転と表現する場合がある。
【0028】
エンコーダ通信異常判定部38は、ロータリーエンコーダ30から送られてくる位置検出値について異常の有無を検出し、異常を検出した場合には異常発生信号を制御モード選択部21、及び上位コントローラ100に送信する。エンコーダ通信異常判定部38によって位置検出値の異常を検出する方法の1例として、位置検出値の時間変化量が所定の閾値を超えた場合(あるいは閾値以上である場合)に、異常として検出する方法が挙げられる。但し、この方法に限られるものではない。また、位置検出値の異常を検出する方法として、ロータリーエンコーダ30の異常を位置検出値の異常として検出する方法を採用してもよい。
【0029】
制御モード選択部21は、ロータリーエンコーダ30から送られてくる位置検出値の単位時間あたりにおける変化量に基づいてモータ22の角速度を算出し、算出結果と、位置検出値の異常の有無とに基づいて制御モード値を選択して出力する。
【0030】
図4は、制御モード選択部21によって実行されるモード値選択処理の処理フローを示すフローチャートである。モード値選択処理では、まず、エンコーダ通信異常判定部38から必要に応じて発信される異常発生信号について、受信したか否かが判定される(S(ステップ)1)。そして、異常発生信号が受信されない場合には(S1にてN)、制御モード値として「0」が選択されて制御モード選択部21から出力される(S2)。その後、処理フローがS1に戻される。
【0031】
一方、異常発生信号が受信された場合には(S1にてY)、次に、モータ22の角速度について、所定値以上であるか否か(あるいは所定値を超えるか否か)が判定される(S3)。そして、角速度が所定値以上である場合には(S3にてY)、制御モード値として「1」が選択されて制御モード選択部21から出力される(S4)。一方、所定値以上でない場合(あるいは所定値を超えない場合)には(S3にてN)、制御モード値として「2」が選択されて制御モード選択部21から出力される。
【0032】
以上のようにして、制御モード値選択処理では、位置検出値の異常が発生していない場合には制御モード値として「0」が選択される。また、位置検出値の異常が発生し且つ角速度が所定値以上である場合には制御モード値として「1」が選択され、位置検出値の異常が発生し且つ角速度が所定値以上でない場合には制御モード値として「2」が選択される。
【0033】
なお、前述の所定値は、例えばモータ22の定格角速度の10〔%〕である。
【0034】
上位コントローラ100は、モータ駆動装置20から異常発生信号が送られてくると、3つのモータ駆動装置20に送信する位置指令値を、アーム2を所定の軌道上で移動させながらアーム2及びモータ22を減速停止させるパターンで変化させる。これにより、アーム2は、所定の軌道上で停止する。
【0035】
図3において、制御モード選択部21から出力される制御モード値は、第1セレクター25、第2セレクター32、及び第3セレクター34(以下、これらをまとめて3つのセレクター(25、32、34)とも言う)のそれぞれに入力される。3つのセレクター(25、32、34)のそれぞれは、0番入力端子、1番入力端子、及び2番入力端子を備え、制御モード選択部21から送られてくる制御モード値に基づいて、出力信号を切り換える。具体的には、3つのセレクター(25、32、34)のそれぞれは、制御モード値が「0」である場合には0番入力端子に入力される信号を出力し、「1」である場合には1番入力端子に入力される信号を出力し、「2」である場合には2番入力端子に入力される信号を出力する。
【0036】
かかる構成の3つのセレクター(25、32、34)のそれぞれからは、次のような信号が出力される。即ち、位置検出値の異常が発生していない場合(制御モード値=0)には、モータ22を、位置検出値によって示される位置から、位置指令値によって示される位置まで回転させる検出位置フィードバック制御を実行するための信号が出力される。また、位置検出値の異常が発生し、且つモータ22の角速度が所定値以上(あるいは所定値を超える)である場合(制御モード値=1)には、後述のセンサレスベクトル制御によってモータ22を駆動するための信号が出力される。また、位置検出値の異常が発生し、且つモータ22の角速度が所定値未満(あるいは所定値以下)である場合(制御モード値=2)には、後述のオープンループ制御によってモータ22を駆動するための信号が出力される。
【0037】
上述の3つの制御方式のうち、まず、検出位置フィードバック制御について説明する。
ロータリーエンコーダ30から出力される位置検出値の異常がない場合には、モータ駆動装置20が検出位置フィードバック制御によってモータ22を駆動する。具体的には、位置検出値の異常がない場合には、第2セレクター32から位置検出値が出力され、位置フィードバック値として位置速度制御部23、及びベクトル制御電気角生成部33に入力される。位置速度制御部23は、モータ22を位置フィードバック値によって示される位置から位置指令値によって示される位置まで回転させるのに必要なトルク値を算出してベクトル制御DQ軸電流指令生成部24に出力する。また、ベクトル制御電気角生成部33は、位置フィードバック値に基づいて電気角を生成する。この電気角は、第3セレクター34を介してDQ変換部39に入力される。
【0038】
ベクトル制御DQ軸電流指令生成部24は、入力されたトルク値と同じトルクを発生させるのに必要なD軸電流、及びQ軸電流をモータ22内で発生させるためのD軸電流指令値、及びQ軸電流指令値(以下、これらをDQ軸電流指令値とも言う)を生成する。D軸電流は、モータ22に流れる電流のうちの永久磁石の磁束に平行な成分である。また、Q軸電流は、モータ22に流れる電流のうちの永久磁石の磁束に直交する成分である。
【0039】
ベクトル制御DQ軸電流指令生成部24から出力されるDQ軸電流指令値は、第1セレクター25の0番入力端子、及び1番入力端子に入力される。検出位置フィードバック制御が実行される場合(制御モード値=0)、及びセンサレスベクトル制御が実行される場合(制御モード値=1)には、ベクトル制御DQ軸電流指令生成部24によって生成されたDQ軸電流指令値が第1セレクター25から出力される。このDQ軸電流指令値は、電流制御部26に入力される。
【0040】
DQ変換部39は、第3セレクター34から送られてくる電気角に基づいてD軸電流フィードバック値、及びQ軸電流フィードバック値(以下、DQ軸電流フィードバック値とも言う)を生成して電流制御部26に出力する。なお、後述のセンサレスベクトル制御時においては、DQ変換部39が、第3セレクター34から送られてくる電気角と、電流検出部31から送られてくる三相電流検出値とに基づいてDQ軸電流フィードバック値を生成する。
【0041】
電流制御部26は、第1セレクター25から送られてくるDQ軸電流指令値と、DQ変換部39から送られてくるDQ軸電流フィードバック値とに基づいて、DQ軸電圧指令値を生成してDQ逆変換部27に出力する。
【0042】
DQ逆変換部27は、第3セレクター34から送られてくる電気角と、電流制御部26から送られてくるDQ軸電圧指令値とに基づいて、要求されるD軸電流、及びQ軸電流をモータ22内に発生させるためのU相電圧指令値、V相電圧指令値、及びW相電圧指令値(以下、三相電圧指令値とも言う)を生成して出力する。DQ逆変換部27から出力される三相電圧指令値は、PWM制御部28に入力される。PWM制御部28は、U相電圧指令値、V相電圧指令値、W相電圧指令値によって示されるU相電圧、V相電圧、W相電圧をインバータ29から出力させるためのPWM信号からなるU相ゲート信号、V相ゲート信号、W相ゲート信号を出力する。インバータ29は、U相ゲート信号、V相ゲート信号、W相ゲート信号に基づくU相電圧、V相電圧、W相電圧をモータ22に供給して、モータ22を回転させる。
【0043】
電流検出部31は、インバータ29からモータ22に流れるU相電流、V相電流、及びW相電流(以下、これらを三相電流とも言う)を検出し、検出結果をU相電流検出値、V相電流検出値、W相電流検出値(以下、三相電流検出値とも言う)として出力する。なお、三相の電流値を検出することに代えて、三相のうち、二相の電流値だけを検出し、残りの一相の電流値については、二相の電流値の検出結果に基づいて算出してもよい。
【0044】
ロータリーエンコーダ30から出力される位置検出値の異常がない場合には、以上のような検出位置フィードバック制御によってモータ22が駆動される。
【0045】
次に、センサレスベクトル制御について説明する。センサレスベクトル制御が実行される場合、即ち、位置検出値の異常があり、且つ異常発生直前のモータ22の角速度が所定値以上である(あるいは所定値を超える)場合(制御モード値=1)には、以下のようにしてモータ22が駆動される。即ち、電流検出部31から出力される三相電流検出値は、DQ変換部39に入力される。DQ変換部39は、三相電流検出値と、第3セレクター34から送られてくる電気角とに基づいて、DQ軸電流フィードバック値を生成して出力する。出力されたDQ軸電流フィードバック値は、電流制御部26、及び位置推定部35に入力される。
【0046】
電流制御部26は、第1セレクター25から送られてくるDQ軸電流指令値と、DQ変換部から送られてくるDQ軸電流フィードバック値とに基づいて、DQ軸電圧指令値を生成して出力する。位置推定部35は、電流制御部26から送られてくるDQ軸電圧指令値と、DQ変換部39から送られてくるDQ軸電流フィードバック値とに基づいて、モータ22の回転位置を推定する。
【0047】
位置推定部35は、DQ変換部39から送られてくるDQ軸電流フィードバック値と、電流制御部26から送られてくるDQ軸電圧指令値とに基づいて、位置推定値と、電気角推定値とを求める。そして、位置推定部35は、位置推定値を第2セレクター32の1番入力端子に出力し、且つ電気角推定値を第3セレクターの1番入力端子に出力する。
【0048】
位置推定部35から出力される位置推定値は、第2セレクター32を介して、位置フィードバック値として位置速度制御部23に入力される。位置速度制御部23は、位置フィードバック値として位置推定値を用いる点の他は検出位置フィードバック制御と同様にしてトルク指令値を出力する。このトルク指令値に基づくU相ゲート信号、V相ゲート信号、W相ゲート信号としてインバータ―29に入力されるまでの処理は、検出位置フィードバック制御と同様である。つまり、センサレスベクトル制御では、位置検出値の代わりに、モータ22内で発生する誘起電圧に基づく位置推定値を位置フィードバック値として位置速度制御部23にフィードバックする点の他は、検出位置フィードバック制御と同様の処理が行われる。
【0049】
なお、モータ駆動装置20は、センサレスベクトル制御において、検出位置フィードバック制御に比べて位置速度制御の制御ループゲインを低下させる。制御ループゲインを低下させる方法の1例として、上位コントローラ100の指令によって制御ループゲインを低下させる方法が挙げられる。アーム2の軌道を精度良く維持するためには、位置検出値の異常が発生したモータ駆動装置20だけでなく、他のモータ駆動装置20の位置速度制御の制御ループゲインも低下させることが望ましい。上位コントローラ100の指令によれば、全てのモータ駆動装置20における位置速度制御の制御ループゲインを適切に低下させることが可能である。
【0050】
モータ駆動装置20の位置速度制御の制御ループゲインを低下させる他の1例として、位置検出値の異常を引き起こしたモータ駆動装置20の処理によって、そのモータ駆動装置20の位置速度制御の制御ループゲインだけ低下させる方法が挙げられる。この方法の処理の1例としては、P-PI制御によって位置と速度とを制御する構成において、速度ループゲイン、位置ループゲイン、及び速度ループ積分ゲインのそれぞれを低下させる方法が挙げられる。また、他の1例として、例えば特開2002-229604号公報に記載のようなRPP制御によって位置と速度とを制御する構成において、ω2ゲイン、ω1ゲイン、ωqゲインを低下させる方法が挙げられる。また、更なる他の一例として、RPP制御によって位置と速度とを制御する構成において、イナーシャノミナル設定値を低下させる方法が挙げられる。イナーシャノミナル設定値を低下させることで、ω2ゲイン、ω1ゲインを近似的に低下させることが可能である。この方法によれば、制御ループゲインを低下させるための専用のプログラムを構築することなく、制御ループゲインを適切に低下させることができる。
【0051】
次に、オープンループ制御について説明する。オープンループ制御が実行される場合、即ち、位置検出値の異常があり、且つモータ22の角速度が所定値未満である(あるいは所定値以下である)場合(制御モード値=2)には、以下のようにしてモータ22が駆動される。即ち、オープンループ制御電気角生成部36は、上位コントローラ100から送られてくる位置指令値に基づいてモータ22の磁極を引き付ける回転位置(以下、強制同期位置指令値と言う)を算出してオープンループ制御DQ軸電流指令生成部37に出力する。また、位置指令値に基づいて電気角を算出して第3セレクター34に出力する。
【0052】
実施形態に係るモータ駆動装置は、以下に説明する第1例~第6例のオープンループ制御のうち、何れかのオープンループ制御を実行する。
【0053】
図5は、第1例のオープンループ制御を実行するためのオープンループ制御電気角生成部36を示すブロック線図である。このオープンループ制御電気角生成部36は、制御器36aと、電気系・機械系のモデル36bと、電気角算出部36cとを備える。
【0054】
制御器36aは、位置速度制御部36a1、ベクトル制御DQ軸電流指令生成部36a2、電流制御部36a3、DQ逆変換部36a4、PWM制御部36a5、及びDQ変換部36a6を備える。
図5に示される位置速度制御部36a1は、
図3に示される位置速度制御部23と同様の処理を実行する。
図5に示されるベクトル制御DQ軸電流指令生成部36a2は、
図3に示されるベクトル制御DQ軸電流指令生成部24と同様の処理を実行する。
図5に示される電流制御部36a3は、
図3に示される電流制御部26と同様の処理を実行する。
図5に示されるDQ逆変換部36a4は、
図3に示されるDQ逆変換部27と同様の処理を実行する。
図5に示されるPWM制御部36a5は、
図3に示されるPWM制御部28と同様の処理を実行する。
図5に示されるDQ変換部36a6は、
図3に示されるDQ変換部39と同様の処理を実行する。
【0055】
電気系・機械系のモデル36bは、インバータ36b1のモデル、モータ36b2のモデル、及びモータに対する負荷機械36b5のモデルを備える。これらモデルは、U相、V相、W相のそれぞれについてゲート信号が変化前の値から変化後の値に変化した場合に、モータ22の回転位置と、モータ22に流れる電流値とについてどのように変化するのかをシミュレーションするアルゴリズムを備える。シミュレーションによって得られた位置シミュレーション値は、ロータリーエンコーダ36b4のモデルから出力され、制御器36aの位置速度制御部36a1と、電気角算出部36cと、
図3におけるオープンループ制御DQ軸電流指令生成部37とに入力される。
【0056】
図5における電気角算出部36cは、位置シミュレーション値に基づいてモータ22の電気角を算出し、結果を
図3におけるDQ逆変換部27、及びDQ変換部39に出力する。
【0057】
位置検出値の異常発生時において、制御方式を。検出位置フィードバック制御、あるいはセンサレスベクトル制御から、第1例のオープンループ制御に切り換えた後には、位置検出値を行う場合と同様の挙動でモータを動作させることが可能である。よって、第1例のオープンループ制御によれば、切り換え後のモータの脱調や振動の発生を抑えることができる。
【0058】
なお、モータ22の電気角を位置指令値に近づける方法として、オープンループ制御に切り換わる直前の位置偏差を初期値として、位置偏差を徐々にゼロに収束させる一次遅れフィルターを用いる方法がある。しかしながら、この方法では、位置指令値とは無関係に位置偏差を減少させることから、手部2Aを所望の軌道に沿って移動させることができない。
【0059】
図6は、位置指令値と、位置指令値に応答した制御による手部2Aの実際の回転位置及び速度との関係を示すグラフである。回転位置と時間との関係を示すグラフに着目すると、位置指令値の変化に対して実際の位置の変化が遅れている。これは、指令に応答する実際の位置の変化に時間を要するからである。検出位置フィードバック制御やセンサレスベクトル制御では、産業用ロボット1の各関節のモータの位置指令値に対して実際の回転位置を均一に遅らせるように位置制御ゲインを設定することで、手部2Aの軌道精度を確保する。一方、オープンループ制御において、上述の一次遅れフィルタによって特定の軸だけ位置偏差をゼロに収束させる方法を用いると、図示のように、実際の回転位置の変化が、検出位置フィードバック制御の時とは異なる。これにより、各軸の位置の位置指令値に対する遅れ方に差が生じ、手部2Aの位置が目標の軌道から逸れてしまう。これに対し、第1例のオープンループ制御のようにシミュレーション値を用いる方法では、図示のように、位置指令値の変化に対して実際の回転位置を、検出位置フィードバック制御を実行したときと同じように変化させることができる(手部2Aを目標の軌道に沿って移動させることができる)。
【0060】
図7は、第2例のオープンループ制御を実行するためのオープンループ制御電気角生成部36を示すブロック線図である。このオープンループ制御電気角生成部36は、制御器36aと、機械系のモデル36bと、電気角算出部36cとを備える。
【0061】
制御器36aは、位置速度制御部を備える。位置速度制御部は、上位コントローラ100から送られてくる位置指令値と、機械系のモデル36bからおくられてくる位置シミュレーション値とに基づいてトルク指令値を生成する。機械系のモデル36bは、モータの発するトルクと、位置速度制御部から送られてくるトルク指令値とが一致するという仮定に基づいて、トルクに応答した後のモータ22Aの回転位置をシミュレーションした結果を、位置シミュレーション値として出力する。位置シミュレーション値は、電気角算出部36cに出力される。また、位置シミュレーション値は、強制同期位置指令値として、
図3に示されるオープンループ制御DQ軸電流指令生成部37に出力される。
図7に示される電気角算出部36cは、位置シミュレーション値に基づいて電気角を算出し、結果を
図3に示されるDQ逆変換部27、及びDQ変換部39に出力する。
【0062】
第2例のオープンループ制御では、
図7と
図5との比較からわかるように、第1例のオープンループ制御に比べて、簡単な処理によって制御方式の切り換え後におけるモータの脱調や振動の発生を抑えることができる。
【0063】
図8は、第3例のオープンループ制御を実行するためのオープンループ制御電気角生成部36を示すブロック線図である。このオープンループ制御電気角生成部36は、演算部36dと、パラメータ算出部36eと、電気角算出部36cとを備える。
【0064】
演算部36dは、上位コントローラ100から送られてくる位置指令値を、位置制御応答伝達関数G(s)により、仮想的に検出位置フィードバック制御を実行した場合における位置検出値に応答した後のモータ22の回転位置に変換する。
【0065】
位置制御応答伝達関数G(s)の基本式は、次式で表される。
【数1】
【0066】
第3例のオープンループ制御に用いられる演算部36dは、上述の基本式の右辺を改変した次式によって位置指令値を位置変換値に変換する。
【数2】
【0067】
変換によって得られた位置変換値は、強制同期位置指令値として
図3に示されるオープンループ制御DQ軸電流指令生成部37に出力される。また、位置変換値は、
図8に示されるパラメータ算出部36e、及び電気角算出部36cにも出力される。電気角算出部36cは、演算部36dから送られてくる位置変換値に基づいてモータ22の電気角を算出し、結果を
図3に示されるDQ逆変換部27、及びDQ変換部39に出力する。
【0068】
第3例のオープンループ制御では、位置指令値について、実際の制御においてどのような遅れでどのような回転位置に反映されるのかを位置制御応答伝達関数G(s)によって位置変換値として求める。位置制御応答伝達関数G(s)としては、上述の基本式を用いることが望ましい。しかし、第3例のオープンループ制御では、ff1、ff2、ω1、及びω2のうち、ω2だけを含む単純な位置制御応答伝達関数G(s)を用いることで、高速で高価な演算装置(例えばCPU)を用いることなく、モータ22の位置変換値を高速で求めることが可能である。単純な位置制御応答伝達関数G(s)であっても、次のような態様におけるモータ制御であれば、モータ22の位置変換値を適切な値で求めることが可能である。即ち、ff1が1に近い値をとり、且つff2が0に近い値をとる態様である。
【0069】
前述の態様であれば、モータ22の制御方式を、検出位置フィードバック制御、あるいは、センサレスベクトル制御から、第3例のオープンループ制御に切り換えた後において、位置フィードバック制御を行う場合と同様の挙動でモータを動作させることが可能である。このため、第3例のオープンループ制御によれば、制御方式をオープンループ制御に切り換えた後のモータ22の脱調や振動の発生を抑えることができる。加えて、第3例のオープンループ制御によれば、位置変換値を安価な演算装置によって適切に求めることができる。
【0070】
位置制御応答伝達関数G(s)によって位置変換値を求める構成において、ω1、ω2を制御対象の状態によらない一定の値としたとする。すると、制御方式をオープンループ制御に切り換えたときに、制御対象の慣性モーメントの変動によるω1やω2の値の不適によってモータ22の位置や速度に乱れを発生させることがある。
【0071】
そこで、
図8に示されるパラメータ算出部36eは、オープンループ制御開始時に、直前の位置偏差と速度推定値とに基づいて、適切な値のω
2を求め、結果を演算部36dに出力する。位置偏差は、位置フィードバック値の位置指令値に対する偏差である。速度推定値は、オープンループ制御開始直前に検出位置フィードバック制御が実行されている場合には、位置検出値に基づいて推定される速度である。また、オープンループ制御開始直前にセンサレスベクトル制御が実行されている場合には、電流検出値に基づいて推定される速度である。演算部36dは、記憶媒体に記憶しているω
2の値を、パラメータ算出部36eから送られてくる値に随時更新する。
【0072】
かかる構成によれば、制御方式を第3例のオープンループ制御に切り換えたときのω2の値の不適によるモータ22の回転位置や速度の乱れを抑えることができる。
【0073】
図9は、第4例のオープンループ制御を実行するためのオープンループ制御電気角生成部36を示すブロック線図である。このオープンループ制御電気角生成部36は、次式によって表される位置制御応答伝達関数G(s)を用いる点の他が、
図8に示されるオープンループ制御電気角生成部36と同様の構成になっている。
【数3】
【0074】
第4例のオープンループ制御では、ff1、ff2、ω1、及びω2のうち、ff2及びω2だけを含むという単純な位置制御応答伝達関数G(s)を用いることで、高速で高価な演算装置を用いることなく、位置変換値を高速で求めることが可能である。ff1が1に近い値をとる態様のモータ制御であれば、適切な値の位置変換値を求めることが可能である。このため、第4例のオープンループ制御によれば、制御方式をオープンループ制御に切り換えた後のモータ22の脱調や振動の発生を抑えることができる。加えて、第4例のオープンループ制御によれば、位置変換値を安価な演算装置によって適切に求めることができる。
【0075】
図10は、第5例のオープンループ制御を実行するためのオープンループ制御電気角生成部36を示すブロック線図である。このオープンループ制御電気角生成部36は、次式によって表される位置制御応答伝達関数G(s)を用いる点、及びパラメータ算出部36eによってω
1、及びω
2を求める点の他が、
図8に示されるオープンループ制御電気角生成部36と同様の構成になっている。
【数4】
【0076】
第5例のオープンループ制御では、ff1、ff2、ω1、及びω2のうち、ff1、ω1及びω2だけを含む位置制御応答伝達関数G(s)を用いて、位置変換値を高速で求めることが可能である。前述の位置制御応答伝達関数G(s)であっても、ff2が0に近い値をとる態様でのモータ制御であれば、適切な値の位置変換値に求めることが可能である。制御方式をオープンループ制御に切り換えた後のモータ22の脱調や振動の発生を抑えることができる。
【0077】
図11は、第6例のオープンループ制御を実行するためのオープンループ制御電気角生成部36を示すブロック線図である。このオープンループ制御電気角生成部36は、位置制御応答伝達関数G(s)として上述の基本式を用いる点、及びパラメータ算出部36eによってω1、及びω2を求める点の他が、
図8に示されるオープンループ制御電気角生成部36と同様の構成になっている。
【0078】
第6例のオープンループ制御では、ff1、ff2、ω1、及びω2の全てを含む位置制御応答伝達関数G(s)を用いて、位置変換値を求める。かかる構成によれば、ff1、ff2、ω1、及びω2の全てを含まない位置制御応答伝達関数G(s)を用いる構成に比べて、適切な値の位置変換値を精度良く求めることができる。
【0079】
<産業用ロボット1の作用効果>
<構成1>
(1)以上の構成の産業用ロボット1において、構成1のモータ制御方法は、上位コントローラ100(信号発信手段)から発信される位置指令値(回転位置指令信号)と、モータ22に搭載されたロータリーエンコーダ30(回転位置検出器)から発信される位置検出値(回転位置信号)とに基づく検出位置フィードバック制御によってモータ22を駆動する構成における位置検出値に応答した後のモータ22の回転位置、及びモータに供給される電流をシミュレーションするステップ(
図5の36b)を具備する。また、構成1は、シミュレーションによって得られた位置シミュレーション値(回転位置シミュレーション値)に応じた電気角を算出するステップ(
図5の36c)を具備する。また、構成1は、前記電気角に基づいてモータ22に電流を供給するステップ(
図5の電気角)を具備する。回転位置及び電流をシミュレーションするステップでは、位置シミュレーション値を位置指令値に追従させるように仮想的に制御する位置仮想制御ステップ(
図5の36a)と、電流をシミュレーションする電流シミュレーションステップ(
図5の36b3)とを実行する。位置仮想制御ステップでは、位置指令値と、電流シミュレーションステップで得られた三相電流シミュレーション値とに基づいてモータ36b2に対する電圧指令値を算出する(
図5の36a1~4)。電流シミュレーションステップでは、モータ36b2、及び負荷機械36b5を含む電気系・機械系のモデル36bに電圧指令値を入力し、電気系・機械系のモデル36bから位置シミュレーション値及び三相電流シミュレーション値を出力する。
【0080】
<構成1の作用効果>
構成1においては、検出位置フィードバック制御を行うと仮定した場合に、位置指令値によってモータ22の回転位置をどのように変化させるのかを、シミュレーションする。そして、シミュレーションによって得られた位置シミュレーション値に相当する電気角を算出し、算出結果に基づくオープンループ制御によってモータ22の回転位置を制御する。かかる構成において、モータ22の制御方式を、検出位置フィードバック制御、あるいは、センサレスベクトル制御から、オープンループ制御に切り換えたとする。すると、切り換え後において、検出位置フィードバック制御を行う場合と同様の挙動でモータ22を動作させることが可能なので、切り換え後のモータ22の脱調や振動の発生を抑えることができる。
【0081】
<構成2>
構成2のモータ制御方法は、上位コントローラ100から発信される位置指令値と、モータ22に搭載されたロータリーエンコーダ30から発信される位置検出値とに基づく検出位置フィードバック制御によってモータ22を駆動する構成における位置指令値に応答した後のモータ22の回転位置をシミュレーションするステップ(
図7の36)を具備する。また、構成2は、シミュレーションによって得られた位置シミュレーション値(回転位置シミュレーション値)に応じた電気角を算出するステップ(
図7の36c)と、前記電気角に基づいてモータ22に電流を供給するステップ(
図7の電気角)とを具備する。回転位置をシミュレーションするステップでは、位置シミュレーション値を位置指令値に追従させるように仮想的に制御する位置仮想制御ステップ(
図7の36a)と、位置シミュレーション値を得るシミュレーション値取得ステップとを実行する。位置仮想制御ステップ(
図7の36a)にて、位置指令値に基づいて、必要なトルクをモータ22に発生させるためのトルク指令値を算出する。シミュレーション値取得ステップにて、モータ及び
負荷機械を含む電気系・機械系のモデル36bに前記トルク指令値を入力し、電気系・機械系のモデル36bから位置シミュレーション値を出力する。
【0082】
<構成2の作用効果>
構成2によれば、構成1よりも簡単な処理により、モータ22の制御方式をオープンループ制御に切り換えた後におけるモータ22の脱調や振動の発生を抑えることができる。
【0083】
<構成3>
構成3のモータ制御方法は、上位コントローラ100から発信される位置指令値を、位置制御応答伝達関数G(s)により、位置検出値に応答した後のモータ””の回転位置に変換するステップと、前記回転位置に応じた電気角を算出するステップと、前記電気角に基づいてモータ22に電流を供給するステップとを具備する。
【0084】
<構成3の作用効果>
構成3においては、検出位置フィードバック制御を行うと仮定した場合に、位置指令値によってモータ22の回転位置をどのように変化させるのかを、位置制御応答伝達関数G(s)によって求める。そして、得られた回転位置に相当する電気角を算出し、算出結果に基づくオープンループ制御によってモータ22の回転位置を制御する。かかる構成3において、モータ22の制御方式を、検出位置フィードバック制御、あるいは、センサレスベクトル制御から、オープンループ制御に切り換えたとする。すると、切り換え後において、検出位置フィードバック制御を行う場合と同様の挙動でモータ22を動作させることが可能なので、切り換え後のモータ22の脱調や振動の発生を抑えることができる。
【0085】
<構成4>
構成4のモータ制御方法においては、構成3における位置制御応答伝達関数(Gs)として、上述の数2によって表される式を用いる。
【0086】
<構成4の作用効果>
構成4においては、ff1、ff2、ω1、及びω2のうち、ω2だけを含む単純な位置制御応答伝達関数G(s)を用いることで、高速で高価な演算装置(例えばCPU)を用いることなく、モータ22の位置変換値を高速で求めることが可能である。前述のような単純な位置制御応答伝達関数G(s)であっても、次のような態様におけるモータ制御であれば、適切な値の位置変換値を求めることが可能である。即ち、ff1が1に近い値をとり、且つff2が0に近い値をとる態様である。よって、構成4によれば、前述の態様における位置変換値を、安価な演算装置によって適切な値で求めることができる。
【0087】
<構成5>
構成5のモータ制御方法においては、構成3における位置制御応答伝達関数(Gs)として、上述の数3によって表される式を用いる。
【0088】
<構成5の作用効果>
構成5においては、ff1、ff2、ω1、及びω2のうち、ff2及びω2だけを含むという単純な位置制御応答伝達関数G(s)を用いることで、高速で高価な演算装置を用いることなく、位置変換値を高速で求めることが可能である。ff1が1に近い値をとる態様のモータ制御であれば、適切な値の位置変換値を求めることが可能である。よって、構成5によれば、前述の態様における位置変換値を、安価な演算装置によって適切な値で求めることができる。
【0089】
<構成6>
構成6のモータ制御方法においては、構成3における位置制御応答伝達関数(Gs)として、上述の数4によって表される式を用いる。
【0090】
<構成6の作用効果>
構成6においては、ff1、ff2、ω1、及びω2のうち、ff1、ω1及びω2だけを含む位置制御応答伝達関数G(s)を用いて、位置変換値を求めることが可能である。前述の位置制御応答伝達関数G(s)であっても、ff2が0に近い値をとる態様でのモータ制御であれば、位置変換値を適切な値で求めることができる。
【0091】
<構成7>
構成7のモータ制御方法においては、構成3における位置制御応答伝達関数(Gs)として、上述の基本式を用いる。
【0092】
<構成7の作用効果>
構成7においては、ff1、ff2、ω1、及びω2の全てを含む位置制御応答伝達関数G(s)を用いて、位置変換値を求める。構成7によれば、ff1、ff2、ω1、及びω2の全てを含まない位置制御応答伝達関数G(s)を用いる場合に比べて、適切な値の位置変換値を精度良く求めることができる。
【0093】
<構成8、9>
構成8のモータ制御方法は、構成1乃至3の何れかを具備する。構成9のモータ制御方法は、構成4乃至7の何れかを具備する。構成8、9のモータ制御方法は、モータ22の回転位置を検出するロータリーエンコーダ30から発信される位置検出値の異常の有無を検出するステップ(
図3の38)を具備する。また、構成8、9のモータ制御方法は、位置検出値の異常が検出されない場合に、位置指令値と位置検出値とに基づく検出位置フィードバック制御によってモータ22を駆動するステップを具備する。また、構成8、9のモータ制御方法では、位置検出値の異常が検出された場合に、所定の高速角速度領域では、モータ22に発生する誘起電圧に基づいて推定したモータ22の位置推定値(回転位置推定値)に基づくセンサレスベクトル制御によってモータ22を駆動する。一方で、高速回転領域よりも低い低速回転領域では、オープンループ制御によってモータ22を駆動する。
【0094】
<構成8、9の作用効果>
構成8によれば、位置検出値の異常が発生した場合に、検出位置フィードバックするフィードバック制御を行う場合と同様の挙動により、モータ22の駆動を停止させることができる。
【0095】
<構成10>
構成10のモータ制御方法は、構成9の構成を備える。構成10のモータ制御方法において、検出位置フィードバック制御又はセンサレスベクトル制御から、オープンループ制御に切り替わった直後のω2が、切り換え直前の検出フィードバック制御における位置指令値と位置検出値とに基づいて、又は切り換え直前のセンサレスベクトル制御における位置指令値と位置推定値(回転位置推定値)とに基づいて算出される。
【0096】
<構成10の作用効果>
構成10においては、検出位置フィードバック制御、又はセンサレスベクトル制御からオープンループ制御に切り換える直前に、位置指令値と位置検出値(又は位置推定値)との偏差と、位置検出値(又は位置推定値)に基づいて推定した速度とに基づいて算出ω2を算出する。そして、算出結果を、切り換え直後の位置制御応答伝達関数G(s)におけるω2として用いる。かかる構成によれば、切り換え直後におけるモータの位置や速度の急激な変動の発生を抑えることができる。
【0097】
<構成11>
構成11のモータ駆動装置20は、構成1乃至10の何れかのモータ制御方法によってモータ22の駆動を制御する。
【0098】
<構成11の作用効果>
構成11によれば、構成1乃至10の何れかのモータ制御方法を用いることで、制御方式を、検出位置フィードバック制御、又はセンサレスベクトル制御から、オープンループ制御に切り換えたときのモータの脱調や振動の発生を抑えることができる。
【0099】
<構成12>
構成12の産業用ロボット1の制御方法は、複数のモータ22A、22Bの駆動を個別に制御して産業用ロボット1のアーム2の位置を変化させ、複数のモータ22A、22Bにおけるそれぞれの駆動を、構成1乃至9の何れかのモータ制御方法によって制御する。
【0100】
<構成13>
構成13の産業用ロボット1は、複数のモータ22A、22Bの駆動を個別に制御してアーム2の位置を変化させ、複数のモータ22A、22Bにおけるそれぞれの駆動を、構成10のモータ駆動装置20によって制御する。
【0101】
<構成12、13の作用効果>
構成12、13においては、アーム2の駆動源となる複数のモータ22A、22Bのうち、位置検出値の異常が発生したモータの回転動作をセンサレスベクトル制御又はオープンループ制御によって適切に制御しつつ、他のモータの回転動作を検出位置フィードバック生後によって制御して、全てのモータ22の回転を適切に停止させる。かかる構成によれば、何れか1つのモータ22において位置検出値の異常が発生したときに、全てのモータ22を直ちに強制停止させることによるアーム2の不適切な動作の発生を回避することができる。
【0102】
以上、本発明の好ましい実施形態について説明したが、本発明は、実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。実施形態は、発明の範囲及び要旨に含まれると同時に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0103】
1:産業用ロボット、 2:アーム、 20:モータ駆動装置、 21:制御モード選択部、 22:モータ、 23:位置速度制御部、 24:ベクトル制御DQ軸電流指令生成部、 25:第1セレクター、 26:電流制御部、 27:DQ逆変換部、 28;PWM制御部、 29:インバータ、 30:ロータリーエンコーダ(回転位置検出器)、 31:電流検出部、 32:第2セレクター、 33:ベクトル制御電気角生成部、 34:第3セレクター、 35:位置推定部、 36:オープンループ制御電気角生成部、 37:オープンループ制御DQ軸電流指令生成部、 38エンコーダ通信異常判定部、 39:DQ変換部、 100:上位コントローラ