IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電産サンキョー株式会社の特許一覧

特許7428527モータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボット
<>
  • 特許-モータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボット 図1
  • 特許-モータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボット 図2
  • 特許-モータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボット 図3
  • 特許-モータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボット 図4
  • 特許-モータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボット 図5
  • 特許-モータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボット 図6
  • 特許-モータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボット 図7
  • 特許-モータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボット 図8
  • 特許-モータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボット 図9
  • 特許-モータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボット 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-29
(45)【発行日】2024-02-06
(54)【発明の名称】モータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボット
(51)【国際特許分類】
   H02P 21/22 20160101AFI20240130BHJP
【FI】
H02P21/22
【請求項の数】 16
(21)【出願番号】P 2020017206
(22)【出願日】2020-02-04
(65)【公開番号】P2021125950
(43)【公開日】2021-08-30
【審査請求日】2023-01-13
(73)【特許権者】
【識別番号】000002233
【氏名又は名称】ニデックインスツルメンツ株式会社
(74)【代理人】
【識別番号】100123788
【弁理士】
【氏名又は名称】宮崎 昭夫
(74)【代理人】
【識別番号】100127454
【弁理士】
【氏名又は名称】緒方 雅昭
(72)【発明者】
【氏名】花岡 正志
【審査官】保田 亨介
(56)【参考文献】
【文献】特開2018-007533(JP,A)
【文献】特開2018-038176(JP,A)
【文献】特開2011-176913(JP,A)
【文献】特開2004-056855(JP,A)
【文献】特開2003-058213(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01D5/00-5/252
5/39-5/62
H02P4/00
6/00-6/34
21/00-25/03
25/04
25/08-31/00
(57)【特許請求の範囲】
【請求項1】
モータを電流引込法によるオープンループ制御によって駆動するモータ制御方法において、
信号発信手段から送られてくる回転位置指令信号に基づいてモータに必要なトルクを求めるステップと、前記トルクに応じたQ軸電流指令値を求めるステップと、前記Q軸電流指令値に応じたQ軸電流、及びロータの磁石の磁極を引き込むためのD軸電流をモータに供給するステップとを具備し、
前記トルクを求めるステップは、前記回転位置指令信号に応答した後のモータの角加速度推定値を求めるステップと、前記角加速度推定値に基づいて前記トルクを求めるステップとを具備する
ことを特徴とするモータ制御方法。
【請求項2】
前記トルクを求めるステップは、前記回転位置指令信号に応答した後のモータの角速度推定値を求めるステップと、前記角速度推定値、及び前記角加速度推定値に基づいて前記トルクを求めるステップとを具備する
ことを特徴とする請求項に記載のモータ制御方法。
【請求項3】
前記トルクを求めるステップは、前記回転位置指令信号に応答した後のモータの回転位置推定値を求めるステップと、前記回転位置推定値に基づいて前記角加速度推定値を求めるステップとを具備する
ことを特徴とする請求項又はに記載のモータ制御方法。
【請求項4】
前記トルクを求めるステップでは、前記角加速度推定値に慣性モーメントに相当する係数を乗じて求められる駆動機械系の加速及び減速に必要な力のモーメントを、前記トルク、又は前記トルクの一部として求める
ことを特徴とする請求項乃至の何れか1項に記載のモータ制御方法。
【請求項5】
前記トルクを求めるステップでは、前記回転位置指令信号に応答した後のモータの角速度推定値を求め、前記角速度推定値に基づいて駆動機械系の粘性抵抗力を補償するための力のモーメントを前記トルクの一部として求める
ことを特徴とする請求項に記載のモータ制御方法。
【請求項6】
前記トルクを求めるステップでは、重力を補償するための力のモーメントを前記トルクの一部として求める
ことを特徴とする請求項又はに記載のモータ制御方法。
【請求項7】
前記トルクを求めるステップでは、前記回転位置指令信号に応答した後のモータの角速度推定値を求め、前記角速度推定値に基づいてクーロン摩擦力を補償するための力のモーメントを前記トルクの一部として求める
ことを特徴とする請求項乃至の何れか1項に記載のモータ制御方法。
【請求項8】
前記Q軸電流指令値に応じたD軸電流指令値を求めるステップを具備し、前記Q軸電流指令値に応じたQ軸電流、及びロータの磁石の磁極を引き込むためのD軸電流をモータに供給するステップにおいて、前記D軸電流指令値に応じたD軸電流をモータに供給する
ことを特徴とする請求項乃至の何れか1項に記載のモータ制御方法。
【請求項9】
前記D軸電流指令値を求めるステップでは、前記Q軸電流指令値の増加につれて前記D軸電流指令値を増加させるアルゴリズムで、前記D軸電流指令値を求める
ことを特徴とする請求項に記載のモータ制御方法。
【請求項10】
前記D軸電流指令値を求めるステップでは、所定の低トルク領域にて、前記D軸電流指令値を前記Q軸電流指令値よりも低い値とし、且つ前記Q軸電流指令値の増加につれて値を低下させ、前記低トルク領域よりも高い中トルク領域にて、前記Q軸電流指令値の増加につれてD軸電流指令値を増加させるアルゴリズムで、前記D軸電流指令値を求める
ことを特徴とする請求項に記載のモータ制御方法。
【請求項11】
前記D軸電流指令値を求めるステップでは、前記中トルク領域よりも高い高トルク領域にて、前記Q軸電流指令値の増加につれて前記D軸電流指令値を低下させるアルゴリズムで、前記D軸電流指令値を求める
ことを特徴とする請求項10に記載のモータ制御方法。
【請求項12】
モータの回転位置を検出する回転位置検出器から発信される回転位置信号の異常を検出するステップを具備し、
前記異常が検出されない場合には、前記回転位置信号に基づくフィードバック制御によって前記モータを駆動し、
前記異常が検出され、且つ検出時のモータの角速度が所定の閾値以下又は閾値未満でない場合には、モータに流れる電流に基づいて推定される回転位置推定値をフィードバックするセンサレスベクトル制御によって前記モータを駆動し、
前記異常が検出され、且つ検出時のモータの角速度が前記閾値以下又は閾値未満である場合には、オープンループ制御によってモータの駆動を停止させる
ことを特徴とする請求項乃至11の何れか1項に記載のモータ制御方法。
【請求項13】
前記センサレスベクトル制御の実行中に、前記回転位置指令信号に基づいてモータの角加速度推定値を求めるステップを実行する
ことを特徴とする請求項12に記載のモータ制御方法。
【請求項14】
モータの駆動を制御するモータ駆動装置であって、
請求項1乃至13の何れか1項に記載のモータ制御方法によって前記モータの駆動を制御する
ことを特徴とするモータ駆動装置。
【請求項15】
複数のモータの駆動を個別に制御して産業用ロボットのアームの位置を変化させる産業用ロボットの制御方法であって、
複数のモータにおけるそれぞれの駆動を、請求項1乃至13の何れか1項に記載のモータ制御方法によって制御する
ことを特徴とする産業用ロボットの制御方法。
【請求項16】
複数のモータの駆動を個別に制御してアームの位置を変化させる産業用ロボットであって、
複数のモータにおけるそれぞれの駆動を、請求項14に記載のモータ駆動装置によって制御する
ことを特徴とする産業用ロボット。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボットに関する。
【背景技術】
【0002】
従来、モータをオープンループ制御によって駆動するモータ制御方法が知られている。
【0003】
例えば、特許文献1に記載のモータ制御方法では、モータを強制転流(電流引込法)によるオープンループ制御で起動する。このとき、モータに対して一定のD軸電流を供給しつつ、Q軸電流をゼロに維持する。その後、モータ内で十分な誘起電圧が得られるようになるまでモータの角速度を上昇させると、制御方式を、オープンループ制御から、モータの回転位置を電流検出値に基づいて推定するセンサレスベクトル制御に切り換える。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2008-11628号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1には、モータの回転を停止させるときに、具体的にどのようにするのかについての記載がない。特許文献1に記載のモータ制御方法では、モータの通常駆動中に、センサレスベクトル制御によってモータの回転位置を制御していることから、モータの停止時には、モータの回転位置を制御しながら回転を減速させて停止させると考えられる。具体的には、モータ内で十分な誘起電圧が得られなくなるまでセンサレスベクトル制御によってモータの回転を減速させ、その後、制御方式をオープンループ制御に切り換えて、回転を停止させるのである。
【0006】
ところが、本発明者の実験によれば、特許文献1に記載のオープンループ制御を用いると、トルクの過不足によってモータの脱調や振動を引き起こしてしまうことが判明した。
【0007】
なお、モータの制御方式をセンサレスベクトル制御からオープンループ制御に切り換えるときに発生する課題について説明したが、次のような構成においても、同様の課題が生じ得る。即ち、制御方式を、エンコーダ等によるモータの回転位置の検出値をフィードバックするフィードバック制御から、オープンループ制御に切り換える構成である。
【0008】
本発明は、以上の背景に鑑みてなされたものであり、その目的とするところは、次のようなモータ制御方法、モータ駆動装置、産業用ロボットの制御方法、及び産業用ロボットを提供することである。即ち、トルクの過不足によるモータの脱調や振動を発生させることなく、モータの回転をオープンループ制御によって停止させることができるモータ制御方法等である。
【課題を解決するための手段】
【0009】
本願の第1発明は、モータを電流引込法によるオープンループ制御によって駆動するモータ制御方法において、信号発信手段から送られてくる回転位置指令信号に基づいてモータに必要なトルクを求めるステップと、前記トルクに応じたQ軸電流指令値を求めるステップと、前記Q軸電流指令値に応じたQ軸電流、及びロータの磁石の磁極を引き込むためのD軸電流をモータに供給するステップとを具備することを特徴とするモータ制御方法である。
【0010】
本願の第2発明は、モータの駆動を制御するモータ駆動装置であって、第1発明のモータ制御方法によって前記モータの駆動を制御することを特徴とするモータ駆動装置である。
【0011】
本願の第3発明は、複数のモータの駆動を個別に制御して産業用ロボットのアームの位置を変化させる産業用ロボットの制御方法であって、複数のモータにおけるそれぞれの駆動を、第1発明のモータ制御方法によって制御することを特徴とする産業用ロボットの制御方法である。
【0012】
本願の第4発明は、複数のモータの駆動を個別に制御してアームの位置を変化させる産業用ロボットであって、複数のモータにおけるそれぞれの駆動を、第2発明のモータ駆動装置によって制御することを特徴とする産業用ロボットである。
【発明の効果】
【0013】
これらの発明によれば、トルクの過不足によるモータの脱調や振動を発生させることなく、モータの回転をオープンループ制御によって停止させることができるという優れた効果がある。
【図面の簡単な説明】
【0014】
図1】実施形態に係る産業用ロボットを示す斜視図。
図2】同産業用ロボットを示す平面図。
図3】同産業用ロボットに搭載されたモータ駆動装置の制御構成を、モータ等とともに示すブロック線図である。
図4】同モータ駆動装置の制御モード選択部によって実行されるモード値選択処理の処理フローを示すフローチャートである。
図5】同モータ駆動装置のオープンループ制御電気角生成部を示すブロック線図である。
図6】位置指令値と、位置指令値に応答した制御による手部の実際の回転位置との関係を示すグラフである。
図7】従来のオープンループ制御における各種状態の時間変化を示すグラフである。
図8】オープンループ制御開始直前のトルク指令値に基づいてオープンループ制御開始直後のQ軸電流指令値を決定する方法における各種状態の時間変化を示すグラフである。
図9】同モータ駆動装置のオープンループ制御DQ軸電流指令生成部の制御構成を示すブロック線図である。
図10】同モータ駆動装置におけるQ軸電流指令値値とD軸電流指令値値との関係を示すグラフである。
【発明を実施するための形態】
【0015】
以下、図面を参照しながら、本発明の実施形態に係るモータ制御方法を用いるモータ駆動装置及び産業用ロボットの実施形態について説明する。なお、以下の図面においては、各構成をわかり易くするために、実際の構造、並びに、各構造における縮尺及び数、などを異ならせる場合がある。
【0016】
まず、実施形態に係る産業用ロボットの基本的な構成について説明する。図1は、実施形態に係る産業用ロボット1を示す斜視図である。図2は、産業用ロボット1を示す平面図である。産業用ロボット1は、ガラス基板を搬送するためのロボットであり、アーム2、架台3、及び昇降部4を備える。昇降部4は、架台3に保持され、不図示の昇降モータの駆動によって上下方向(図1の矢印方向)に昇降する。アーム2は、ガラス基板を載せる手部2A、前腕部2B、及び上腕部2Cを備え、昇降部4によって保持される。
【0017】
上腕部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の駆動力をベルトを介して受けることで、水平方向に沿って回動することが可能である。
【0018】
産業用ロボット1において、手部2Aを図2の一点鎖線で示される軌道に沿って矢印方向に真っ直ぐに移動させるためには、肩関節2Dと肘関節2Fとの角度を1対2の割合にして両関節を回転させる必要がある。そのためには、第1モータ22Aと第2モータ22Bとを互いに異なる駆動量で駆動する必要がある。第1モータ22と第2モータ22Bのそれぞれの回転位置を制御せずに両モータを停止させた場合、両モータの駆動量のバランスを崩して手部2Aを一点鎖線で示される軌道から逸れた位置で停止させてしまう。すると、周囲の構造物や装置などに、手部2Aをぶつけてしまうおそれがある。
【0019】
次に、実施形態に係るモータ制御方法を用いるモータ駆動装置について説明する。
図3は、実施形態に係る産業用ロボット1に搭載されたモータ駆動装置20の制御構成を、モータ22等とともに示すブロック線図である。なお、産業用ロボット1は、図3に示されるモータ駆動装置20として、アーム2の肩関節2Dを回動させるためのモータ駆動装置20、アーム2の肘関節2F、及び手首関節を回動させるためのモータ駆動装置20、及び昇降部4を昇降させるためのモータ駆動装置20の3つを備える。
【0020】
3つのモータ駆動装置20のそれぞれは、モータ22の駆動の制御方式として、検出位置フィードバック制御、センサレスベクトル制御、及びオープンループ制御の3つを切り換えて実行することができる。検出位置フィードバック制御は、モータの回転位置を検出した結果を、回転位置の指令生成にフィードバックする制御である。
【0021】
産業用ロボット1は、3つのモータ駆動装置20に指令を送る上位コントローラ100を備える。上位コントローラ100は、記憶媒体に記憶している制御プログラムに基づいて、3つのモータ駆動装置20のそれぞれに対して位置指令値(回転位置指令信号)を送信する。3つのモータ駆動装置20のそれぞれは、上位コントローラ100から送られてくる位置指令値に対応する回転位置までモータ22のロータを回転させる制御を実行する。この制御により、産業用ロボット1のアーム2が前述の制御プログラムに基づいた動作を行う。
【0022】
3つのモータ駆動装置20の構成は互いに同様である。よって、以下、3つのモータ駆動装置20のうち、1つだけについて、構成を詳細に説明する。
【0023】
モータ駆動装置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を備える。
【0024】
上位コントローラ100から出力される位置指令値は、モータ駆動装置20の位置速度制御部23、及びオープンループ制御電気角生成部36に入力される。
【0025】
産業用ロボット1のアーム2における旋回動作(肩関節2Dの回動)、関節曲げ伸ばし動作(肩関節2D、肘関節2F、及び手首関節の回動)、又は昇降動作の駆動源であるモータ22は、三相(U相、V相、W相)交流のPM(Permanent Magnet)モータからなる。モータ22に搭載された回転位置検出器としてのロータリーエンコーダ30は、周知の技術によってモータ22のロータの回転位置を検出する。そして、ロータリーエンコーダ30は、回転位置の検出結果の情報を位置検出値(回転位置信号)として出力する。出力された位置検出値は、エンコーダ通信異常判定部38、及び制御モード選択部21に入力される。また、位置検出値は、第2セレクター32を介して位置速度制御部23にも入力される。
【0026】
なお、以下、モータ22のロータの回転を、モータ22の回転と表現する場合がある。
【0027】
エンコーダ通信異常判定部38は、ロータリーエンコーダ30から送られてくる位置検出値について異常の有無を検出し、異常を検出した場合には異常発生信号を制御モード選択部21、及び上位コントローラ100に送信する。エンコーダ通信異常判定部38によって位置検出値の異常を検出する方法の1例として、位置検出値の時間変化量が所定の閾値を超えた場合(あるいは閾値以上である場合)に、異常として検出する方法が挙げられる。但し、この方法に限られるものではない。位置検出値の異常を検出する方法として、ロータリーエンコーダ30の異常を位置検出値の異常として検出する方法を採用してもよい。
【0028】
制御モード選択部21は、ロータリーエンコーダ30から送られてくる位置検出値の単位時間あたりにおける変化量に基づいてモータ22の角速度を算出し、算出結果と、位置検出値の異常の有無とに基づいて制御モード値を選択して出力する。
【0029】
図4は、制御モード選択部21によって実行されるモード値選択処理の処理フローを示すフローチャートである。モード値選択処理では、まず、エンコーダ通信異常判定部38から必要に応じて発信される異常発生信号について、受信したか否かが判定される(S(ステップ)1)。そして、異常発生信号が受信されない場合には(S1にてN)、制御モード値として「0」が選択されて制御モード選択部21から出力される(S2)。その後、処理フローがS1に戻される。
【0030】
一方、異常発生信号が受信された場合には(S1にてY)、次に、モータ22の角速度について、所定値以上であるか否か(あるいは所定値を超えるか否か)が判定される(S3)。そして、角速度が所定値以上である場合には(S3にてY)、制御モード値として「1」が選択されて制御モード選択部21から出力される(S4)。一方、所定値以上でない場合(あるいは所定値を超えない場合)には(S3にてN)、制御モード値として「2」が選択されて制御モード選択部21から出力される。以下、前述の所定値を、下限値と表現する場合がある。
【0031】
以上のようにして、制御モード値選択処理では、位置検出値の異常が発生していない場合には制御モード値として「0」が選択される。また、位置検出値の異常が発生し且つ角速度が所定値以上である場合には制御モード値として「1」が選択され、位置検出値の異常が発生し且つ角速度が所定値以上でない場合には制御モード値として「2」が選択される。
【0032】
なお、前述の所定値は、例えばモータ22の定格角速度の10〔%〕である。
【0033】
上位コントローラ100は、モータ駆動装置20から異常発生信号が送られてくると、3つのモータ駆動装置20に送信する位置指令値を、アーム2を所定の軌道上で移動させながらアーム2及びモータ22を減速停止させるパターンで変化させる。これにより、アーム2は、所定の軌道上で減速しながら停止する。
【0034】
図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番入力端子に入力される信号を出力する。
【0035】
かかる構成の3つのセレクター(25、32、34)のそれぞれからは、次のような信号が出力される。即ち、位置検出値の異常が発生していない場合(制御モード値=0)には、モータ22を、位置検出値によって示される位置から、位置指令値によって示される位置まで回転させる検出位置フィードバック制御を実行するための信号が出力される。また、位置検出値の異常が発生し、且つモータ22の角速度が所定値以上(あるいは所定値を超える)である場合(制御モード値=1)には、後述のセンサレスベクトル制御によってモータ22を駆動するための信号が出力される。また、位置検出値の異常が発生し、且つモータ22の角速度が所定値未満(あるいは所定値以下)である場合(制御モード値=2)には、後述のオープンループ制御によってモータ22を駆動するための信号が出力される。
【0036】
上述の3つの制御方式のうち、まず、検出位置フィードバック制御について説明する。
ロータリーエンコーダ30から出力される位置検出値の異常がない場合には、モータ駆動装置20が検出位置フィードバック制御によってモータ22を駆動する。具体的には、位置検出値の異常がない場合には、第2セレクター32から位置検出値が出力され、位置フィードバック値として位置速度制御部23、及びベクトル制御電気角生成部33に入力される。位置速度制御部23は、モータ22を位置フィードバック値によって示される位置から位置指令値によって示される位置まで回転させるのに必要なトルク値を算出し、結果をトルク指令値としてベクトル制御DQ軸電流指令生成部24に出力する。また、ベクトル制御電気角生成部33は、位置フィードバック値に基づいて電気角を生成する。この電気角は、第3セレクター34を介してDQ変換部39に入力される。
【0037】
ベクトル制御DQ軸電流指令生成部24は、入力されたトルク値と同じトルクを発生させるのに必要なD軸電流、及びQ軸電流をモータ22内で発生させるためのD軸電流指令値、及びQ軸電流指令値(以下、これらをDQ軸電流指令値とも言う)を生成する。D軸電流は、モータ22に流れる電流のうちの永久磁石の磁束に平行な成分である。また、Q軸電流は、モータ22に流れる電流のうちの永久磁石の磁束に直交する成分である。
【0038】
ベクトル制御DQ軸電流指令生成部24から出力されるDQ軸電流指令値は、第1セレクター25の0番入力端子、及び1番入力端子に入力される。検出位置フィードバック制御が実行される場合(制御モード値=0)、及びセンサレスベクトル制御が実行される場合(制御モード値=1)には、ベクトル制御DQ軸電流指令生成部24によって生成されたDQ軸電流指令値が第1セレクター25から出力される。このDQ軸電流指令値は、電流制御部26に入力される。
【0039】
DQ変換部39は、第3セレクター34から送られてくる電気角に基づいてD軸電流フィードバック値、及びQ軸電流フィードバック値(以下、DQ軸電流フィードバック値とも言う)を生成して電流制御部26に出力する。なお、後述のセンサレスベクトル制御時においては、DQ変換部39が、第3セレクター34から送られてくる電気角と、電流検出部31から送られてくる三相電流検出値とに基づいてDQ軸電流フィードバック値を生成する。
【0040】
電流制御部26は、第1セレクター25から送られてくるDQ軸電流指令値と、DQ変換部39から送られてくるDQ軸電流フィードバック値とに基づいて、DQ軸電圧指令値を生成してDQ逆変換部27に出力する。
【0041】
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を回転させる。
【0042】
電流検出部31は、インバータ29からモータ22に流れるU相電流、V相電流、及びW相電流(以下、これらを三相電流とも言う)を検出し、検出結果をU相電流検出値、V相電流検出値、W相電流検出値(以下、三相電流検出値とも言う)として出力する。なお、三相の電流値を検出することに代えて、三相のうち、二相の電流値だけを検出し、残りの一相の電流値については、二相の電流値の検出結果に基づいて算出してもよい。
【0043】
ロータリーエンコーダ30から出力される位置検出値の異常がない場合には、以上のような検出位置フィードバック制御によってモータ22が駆動される。
【0044】
次に、センサレスベクトル制御について説明する。センサレスベクトル制御が実行される場合、即ち、位置検出値の異常があり、且つ異常発生直前のモータ22の角速度が所定値以上である(あるいは所定値を超える)場合(制御モード値=1)には、以下のようにしてモータ22が駆動される。即ち、電流検出部31から出力される三相電流検出値は、DQ変換部39に入力される。DQ変換部39は、三相電流検出値と、第3セレクター34から送られてくる電気角とに基づいて、DQ軸電流フィードバック値を生成して出力する。出力されたDQ軸電流フィードバック値は、電流制御部26、及び位置推定部35に入力される。
【0045】
電流制御部26は、第1セレクター25から送られてくるDQ軸電流指令値と、DQ変換部から送られてくるDQ軸電流フィードバック値とに基づいて、DQ軸電圧指令値を生成して出力する。位置推定部35は、電流制御部26から送られてくるDQ軸電圧指令値と、DQ変換部39から送られてくるDQ軸電流フィードバック値とに基づいて、モータ22の回転位置を推定する。
【0046】
位置推定部35は、DQ変換部39から送られてくるDQ軸電流フィードバック値と、電流制御部26から送られてくるDQ軸電圧指令値とに基づいて、位置推定値と、電気角推定値とを求める。そして、位置推定部35は、位置推定値を第2セレクター32の1番入力端子に出力し、且つ電気角推定値を第3セレクターの1番入力端子に出力する。
【0047】
位置推定部35から出力される位置推定値は、第2セレクター32を介して、位置フィードバック値として位置速度制御部23に入力される。位置速度制御部23は、位置フィードバック値として位置推定値を用いる点の他は検出位置フィードバック制御と同様にしてトルク指令値を出力する。このトルク指令値に基づくU相ゲート信号、V相ゲート信号、W相ゲート信号としてインバータ―29に入力されるまでの処理は、検出位置フィードバック制御と同様である。つまり、センサレスベクトル制御では、位置検出値の代わりに、モータ22内で発生する誘起電圧に基づく位置推定値を位置フィードバック値として位置速度制御部23にフィードバックする点の他は、検出位置フィードバック制御と同様の処理が行われる。
【0048】
なお、モータ駆動装置20は、センサレスベクトル制御において、検出位置フィードバック制御に比べて位置速度制御の制御ループゲインを低下させる。制御ループゲインを低下させる方法の1例として、上位コントローラ100の指令によって制御ループゲインを低下させる方法が挙げられる。アーム2の軌道を精度良く維持するためには、位置検出値の異常が発生したモータ駆動装置20だけでなく、他のモータ駆動装置20の位置速度制御の制御ループゲインも低下させることが望ましい。上位コントローラ100の指令によれば、全てのモータ駆動装置20における位置速度制御の制御ループゲインを適切に低下させることが可能である。
【0049】
モータ駆動装置20の位置速度制御の制御ループゲインを低下させる他の1例として、位置検出値の異常を引き起こしたモータ駆動装置20の処理によって、そのモータ駆動装置20の位置速度制御の制御ループゲインだけ低下させる方法が挙げられる。この方法の処理の1例としては、P-PI制御によって回転位置と角速度とを制御する構成において、速度ループゲイン、位置ループゲイン、及び速度ループ積分ゲインのそれぞれを低下させる方法が挙げられる。また、他の1例として、例えば特開2002-229604号公報に記載のようなRPP制御によって回転位置と角速度とを制御する構成において、ωゲイン、ωゲイン、ωゲインを低下させる方法が挙げられる。また、更なる他の例として、RPP制御によって回転位置と角速度とを制御する構成において、イナーシャノミナル設定値を低下させる方法が挙げられる。イナーシャノミナル設定値を低下させることで、ω2ゲイン、ωゲインを近似的に低下させることが可能である。この方法によれば、制御ループゲインを低下させるための専用のプログラムを構築することなく、制御ループゲインを適切に低下させることができる。
【0050】
次に、オープンループ制御について説明する。オープンループ制御が実行される場合、即ち、位置検出値の異常があり、且つモータ22の角速度が所定値未満である(あるいは所定値以下である)場合(制御モード値=2)には、以下のようにしてモータ22が駆動される。即ち、オープンループ制御電気角生成部36は、上位コントローラ100から送られてくる位置指令値に基づいてモータ22の磁極を引き付ける回転位置(以下、強制同期位置指令値と言う)を算出してオープンループ制御DQ軸電流指令生成部37に出力する。また、位置指令値に基づいて電気角推定値を算出して第3セレクター34に出力する。
【0051】
制御方式を、検出位置フィードバック制御やセンサレスベクトル制御に切り換えるときに、モータ22の電気角を、位置検出値、又は位置推定値によって示される角度から、オープンループ制御を実施するための初期角に切り換えたとする。このとき、モータ22に流すDQ軸電流ベクトルの向きを、Q軸方向からD軸方向の正の向きへ瞬時に切り換えると、次のような不具合を発生させてしまう。即ち、モータ22を駆動源とする駆動対象機械(アーム2全体、手部2A、前腕部2B、又は上腕部2C)を運動させるためのトルクが得られなくなり、モータ22の脱調や大きな振動を発生させてしまう。
【0052】
そこで、図3に示されるオープンループ制御電気角生成部38は、モータ22の回転位置を、検出位置フィードバック制御の実行時と同様に時間変化させるように電気角を生成する。
【0053】
図5は、オープンループ制御電気角生成部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】
位置検出値の異常発生時において、制御方式を。検出位置フィードバック制御、あるいはセンサレスベクトル制御から、オープンループ制御に切り換えた後には、位置検出値を行う場合と同様の挙動でモータを動作させることが可能である。よって、実施形態に係るモータ制御方法によれば、制御方式をオープンループ制御に切り換え後の電気角の急激な変化によるモータの脱調や振動の発生を抑えることができる。
【0058】
なお、モータ22の回転位置と、モータ22に供給される電流値とをシミュレーションすることに代えて、モータ22の回転位置だけをシミュレーションしてもよい。この場合、位置指令値と位置シミュレーション値とに基づいて必要なトルク指令値を求める処理を位置速度制御部36a1によって実行し、得られたトルク指令値を機械系のモデル36bに入力して位置シミュレーション値を得ればよい。
【0059】
また、モータの回転位置をシミュレーションすることに代えて、位置指令値を位置制御応答伝達関数G(s)により、仮想的に検出位置フィードバック制御を実行した場合における位置検出値に応答した後のモータ22の回転位置に変換してもよい。位置制御応答伝達関数G(s)を用いて位置変換値を得る方法では、位置指令値について、実際の制御においてどのような遅れでどのような回転位置に反映されるのかを位置制御応答伝達関数G(s)によって位置変換値として求める。得られた位置変換値を、図3に示されるDQ逆変換部27、及びDQ変換部39に出力し、且つ強制同期位置指令値としてオープンループ制御DQ軸電流指令生成部37に出力すればよい。また、位置変換値に基づいて電気角を算出すればよい。
【0060】
位置制御応答伝達関数G(s)の基本式は、次式で表される。
【数1】
【0061】
この基本式を用いて位置変換値を得ることが望ましいが、基本式の右辺を改変した次式によって位置指令値を位置変換値に変換してもよい。
【数2】
【0062】
ff、ff、ω、及びωのうち、ωだけを含む単純な位置制御応答伝達関数G(s)を用いることで、高速で高価な演算装置(例えばCPU)を用いることなく、モータ22の位置変換値を高速で求めることが可能である。単純な位置制御応答伝達関数G(s)であっても、次のような態様におけるモータ制御であれば、モータ22の位置変換値を適切な値で求めることが可能である。即ち、ffが1に近い値をとり、且つffが0に近い値をとる態様である。
【0063】
前述の態様であれば、モータ22の制御方式を、検出位置フィードバック制御、あるいは、センサレスベクトル制御から、オープンループ制御に切り換えた後において、位置フィードバック制御を行う場合と同様の挙動でモータを動作させることが可能である。このため、制御方式をオープンループ制御に切り換えた後のモータ22の脱調や振動の発生を抑え、且つ位置変換値を安価な演算装置によって適切に求めることができる。
【0064】
なお、モータ22の電気角を位置指令値に近づける方法として、オープンループ制御に切り換わる直前の位置偏差を初期値として、位置偏差を徐々にゼロに収束させる一次遅れフィルターを用いる方法も考えられる。しかしながら、この方法では、位置指令値とは無関係に位置偏差を減少させることから、手部2Aを所望の軌道に沿って移動させることができない。
【0065】
図6は、位置指令値と、位置指令値に応答した制御による手部2Aの実際の回転位置との関係を示すグラフである。回転位置と時間との関係を示すグラフに着目すると、位置指令値の変化に対して実際の位置の変化が遅れている。これは、指令に応答する実際の位置の変化に時間を要するからである。検出位置フィードバック制御やセンサレスベクトル制御では、産業用ロボット1の各関節のモータの位置指令値に対して実際の回転位置を均一に遅らせるように位置制御ゲインを設定することで、手部2Aの軌道精度を確保する。一方、オープンループ制御において、上述の一次遅れフィルタによって特定の軸だけ位置偏差をゼロに収束させる方法を用いると、図示のように、実際の回転位置の変化が、検出位置フィードバック制御の時とは異なる。これにより、各軸の位置の位置指令値に対する遅れ方に差が生じ、手部2Aの位置が目標の軌道から逸れてしまう。これに対し、実施形態に係るオープンループ制御のようにシミュレーション値を用いる方法では、図示のように、位置指令値の変化に対して実際の回転位置を、検出位置フィードバック制御を実行したときと同じように変化させることができる(手部2Aを目標の軌道に沿って移動させることができる)。
【0066】
図7は、従来のオープンループ制御における各種状態の時間変化を示すグラフである。図7では、モータ22を検出位置フィードバック制御で起動した後、モータ22の回転の角速度をセンサレスベクトル制御の下限値に到達させる前に、位置検出値の異常発生に起因して従来のオープンループ制御でモータ22を停止させた例を示している。この例では、モータ22の起動後に、検出位置フィードバック制御によってQ軸電流指令値を増加させてモータ22の角速度を上昇させていく。その後、位置検出値の異常発生に起因してモータ22を停止させるべく、制御方式をオープンループ制御に切り換えると、フィルタ処理によってQ軸電流指令値をゼロまで減少させた後、モータ22の回転を停止させるまで、Q軸電流指令値をゼロに維持する。
【0067】
ところが、前述のようなQ軸電流指令値の変化では、トルクの過不足によってモータ22の脱調や振動を発生させてしまうことが判明した。必要なトルクを発生させるためには、モータ22に対するQ軸電流の供給が必要だからである。具体的には、図7に示されるように、正常時の検出位置フィードバック制御でモータ22を停止させると仮定した場合、Q軸電流指令値は、まず、サインカーブ状にゼロまで減少した後、再びマイナス方向に増加し、マイナス側でサインカーブ状の変動を経てゼロに戻る。必要なトルクを得ながらモータ22を停止させるためには、前述のようにQ軸電流指令値を変化させる必要がある。
【0068】
そこで、実施形態に係るモータ駆動装置20では、位置指令値に基づいてモータ22に必要なトルクを求めた後、トルクに応じたQ軸電流指令値を求め、Q軸電流指令値に応じたQ軸電流、及びロータの磁石の磁極を引き込むためのD軸電流をモータに供給する。かかる構成によれば、モータ22に必要なトルクに応じた値のQ軸電流をモータに供給することで、トルクの過不足に起因するモータ22の脱調や振動を引き起こすことなく、オープンループ制御によってモータ22の駆動を停止させることができる。
【0069】
モータ22を位置指令値によって指令された位置まで回転させるのに必要なトルクを求める方法として、位置指令値に基づいて仮想的に検出位置フィードバック制御を実行した場合の角加速度を推定し、得られた角加速度推定値に基づいて必要なトルクを求める方法が挙げられる。これにより、モータ22を所望の角速度で回転させるのに必要なトルクを求めることができる。
【0070】
また、必要なトルクを求める別の方法として、位置指令値に基づいて必要な角速度、及び角加速度を推定し、得られた角速度推定値、及び角加速度推定値に基づいて必要なトルクを求める方法が挙げられる。より詳しくは、角加速度推定値に基づいて加速又は減速に必要なトルクを求め、且つ角速度推定値に基づいて必要な粘性抵抗、及びクーロン摩擦のうちの少なくとも一方を補償するためのトルク求めるのである。
【0071】
なお、オープンループ制御において、位置指令値と、直前のトルク指令値とに基づいて必要なトルクを推定する方法では、次のような不具合を発生させてしまうことが本発明者による実験で判明した。即ち、センサレスベクトル制御からオープンループ制御に切り換わった場合に、位置検出値の異常の発生タイミングによっては、モータ22を大きく振動させてしまうという不具合である。
【0072】
図8は、オープンループ制御開始直前のトルク指令値に基づいてオープンループ制御開始直後のQ軸電流指令値を決定する方法における各種状態の時間変化を示すグラフである。図8では、位置検出値の異常が発生した後の時間帯にも、検出位置フィードバック制御による各種状態の系列が記されているが、同系列は、異常が発生しなかったと仮定した場合にどのように状態が変化するのかを示している。
【0073】
図8に示される例では、モータ22が検出位置フィードバック制御によって起動された後、モータ22の回転の角速度がセンサレスベクトル制御の下限値(閾値)よりも少しだけ高い値まで上昇したときに、位置検出値の異常が発生している。
【0074】
異常の発生に基づいて制御方向が検出位置フィードバック制御からセンサレスベクトル制御に切り換わると、図示のように、切り換え直後には、電流検出による回転位置推定の過渡現象によってモータ22の回転が不安定になって、電流検出値による角速度推定値が大きく変動する。位置検出値の異常発生時にモータ22の角速度がセンサレスベクトル制御の下限値よりも少しだけ高いであったため、センサレスベクトル制御が短時間しか実行されない。このため、電流検出値に基づく位置推定値の振動が収束して角速度推定値が安定化する前に制御方式がオープンループ制御に移行する。Q軸電流値は角速度推定値に対する定数の乗算によって算出されることから、制御方式がセンサレスベクトル制御からオープンループ制御に切り換わる直前のトルク指令値は、オープンループ制御の実行に必要なトルクに応じた値からかけ離れている可能性がある。このような値のトルク指令値を用いると、モータ22を大きく振動させてしまうおそれがある。以下、前述のようにしてモータ22が大きく振動してしまう現象を、センサレスベクトル制御の位置推定応答性不足によるオープンループ制御切り換わり時のモータ22の振動という。
【0075】
なお、検出位置フィードバック制御においてモータ22が十分な角速度で回転しているときに位置検出値の異常が発生した場合には、センサレスベクトル制御が十分な時間実行されて角速度推定値が安定化してから制御方式がオープンループ制御に切り換わる。すると、オープンループ制御にて、制御方式をセンサレスベクトル制御からオープンループ制御に切り換えた直後のトルク指令値適切な値で求めることが可能なので、モータ22を大きく振動させることはない。
【0076】
実施形態に係るモータ駆動装置20では、位置指令値に応答した後のモータ22の回転位置推定値を求め、得られた回転位置推定値に基づいて角加速度推定値を求める。回転位置推定値は、オープンループ制御DQ軸電気角生成部36によって強制同期位置指令値として求められる。
【0077】
図9は、オープンループ制御DQ軸電流指令生成部37の制御構成を示すブロック線図である。オープンループ制御DQ軸電流指令生成部37は、Q軸電流指令生成部37Aと、D軸電流指令生成部37Bとを備える。
【0078】
Q軸電流指令生成部37Aは、複数の遅延素子、第1数値微分部37A1、第1ローパスフィルター37A9、第2数値微分部37A2、第2ローパスフィルター37A4、慣性モーメントのノミナル値(以下、慣性ゲインと言う)37A5等を備える。また、Q軸電流指令生成部37Aは、トルク定数除算部37A8、符号関数部37A3、粘性係数のノミナル値(以下、粘性ゲインと言う)37A6、クーロン摩擦力のノミナル値(以下、クーロン摩擦ゲインと言う)37A7等を備える。
【0079】
Q軸電流指令生成部37Aで実行される処理について説明する。
オープンループ制御電気角生成部(図3の36)から送られてくる強制同期位置指令値は、第1数値微分部37A1と第1ローパスフィルター37A9とに順に入力されて角速度推定値となる。この角速度推定値は、第2数値微分部37A2と第2ローパスフィルター37A4とに順に入力されて角加速度推定値となった後、慣性ゲイン37A5に入力される。慣性ゲイン37A5は、慣性トルク補償値(慣性力)を出力する。これは、次式に基づいて慣性加速に必要なトルクを算出することと等価である。
【数3】
J:慣性モーメント
θ:モータ角度
【0080】
上述の角速度推定値は、粘性ゲイン37A6にも入力される。粘性ゲイン37A6は、粘性トルク補償値(粘性抵抗力)を出力する。これは、次式に基づいて粘性抵抗力を補償するためのトルクを算出することと等価である。
【数4】
D:粘度係数
【0081】
上述の角速度推定値は、符号関数部37A3にも入力される。符号関数部37A3からは、角速度推定値とは逆の符号の値が出力され、クーロン摩擦ゲイン37A7に入力される。クーロン摩擦ゲイン37A17は、クーロン摩擦トルク補償値(クーロン摩擦力)を出力する。これは、次式に基づいてクーロン摩擦力を補償するためのトルクを算出することと等価である。
【数5】
C:クーロン摩擦
【0082】
図9に示される重力補償値は、定数である。慣性トルク補償値、粘性トルク補償値、クーロン摩擦補償値、及び重力補償値は、合算されてトルク指令値となってトルク定数除算部37A8に入力される。トルク定数除算部37A8は、トルク指令値をトルク定数Ktで除算した結果(トルク定数の逆数を乗算した結果)をQ軸電流指令値として出力する。このQ軸電流指令値は、電流制御部(図3の26)と、D軸電流指令生成部37Bとに入力される。なお、モータ22のトルク定数を、慣性ゲイン、粘性ゲイン、クーロン摩擦補償値、重力補償値のそれぞれに含めることで、トルク定数除算部37A8を省略してもよい。
【0083】
開始直後のQ軸電流指令値を決定する図8に示されるように、
【0084】
制御方式がセンサレスベクトル制御からオープンループ制御に切り換わった後、角加速度推定値が求められるまでには、十数〔μ秒〕程度の時間を要する。その間、角加速度推定値を求めることができないと、適切なQ軸電流をモータに供給することができなくなる。
【0085】
そこで、実施形態に係るモータ駆動装置20では、図3、及び図5、及び図9に示されるように、センサレスベクトル制御の実行中に、位置指令値に基づいて加速度推定値を求める。
【0086】
具体的には、図3に示されるように、上位コントローラ100から発信される位置指令値は、セパレータを介することなくオープンループ制御電気角生成部36に入力される。また、オープンループ制御電気角生成部36から出力される強制同期位置指令値は、セパレータを介することなくオープンループ制御DQ軸電流指令生成部37に入力される。よって、位置指令値がオープンループ制御電気角生成部36とオープンループ制御DQ軸電流指令生成部37とを介してDQ軸電流指令値となって第1セレクター25に入力されるまでの流れは、制御方式にかかわらず、実行される。即ち、センサレスベクトル制御の実行中においても、前述の流れが実行される。
【0087】
図5に示されるように、オープンループ制御電気角生成部36は、位置指令値に基づいて位置シミュレーション値を生成し、これを強制同期位置指令値としてDQ軸電流指令生成部37に出力する。また、図9に示されるように、オープンループ制御DQ軸電流指令生成部37は、強制同期位置指令値に基づいて角速度推定値を求め、得られた角速度推定値に基づいて角加速度推定値を求める。よって、モータ駆動装置20は、センサレスベクトル制御の実行中に、位置指令値に基づいて加速度推定値を求めている。
【0088】
かかる構成では、制御方式をセンサレスベクトル制御からオープンループ制御に切り換えた直後に、直前に求めておいた角加速度推定値を用いて必要なトルクを求めることが可能になる。よって、センサレスベクトル制御からオープンループ制御に切り換えた直後から、必要なトルクに応じたQ軸電流指令値を求めて、切り換え時に不適切なQ軸電流を供給することによるモータ22の振動の発生を抑えることができる。
【0089】
実施形態に係るモータ駆動装置20では、Q軸電流値(Q軸電流指令値)に応じてD軸電流値(D軸電流指令値)を変化させる。
図10は、実施形態に係るモータ駆動装置20におけるQ軸電流指令値とD軸電流指令値値との関係を示すグラフである。図10におい、Q軸ノルム変化率ゲインは√2であるが、この値は一例である。また、電流値bは、DQ軸ノルム電流下限値であるが、図10の例では、この値をモータ22の定格電流値としている。但し、定格電流値でなくてもよい。電流値aは、DQ軸ノルム電流下限値をQ軸ノルム変化率ゲインで除算した値である。また、電流値dは、DQ軸ノルム電流上限値であるが、図10に示される例ではこの値を、モータ22の瞬時最大電流仕様値としている。但し、瞬時最大電流仕様値でなくてもよい。また、電流値cは、DQ軸ノルム電流上限値をQ軸ノルム変化率ゲインで除算した値である。DQ軸ノルム電流値は、Q軸電流値とD軸電流値との2次元座標におけるQ軸電流値とD軸電流値との交点と、原点とを結ぶ線分の長さに相当する電流値である。
【0090】
以下、電流値a未満のQ軸電流値で得られるトルク領域を低トルク領域という。また、電流値a以上、且つ電流値c未満のQ軸電流値で得られるトルク領域を中トルク領域という。また、電流値c以上のQ軸電流値で得られるトルク領域を高トルク領域という。
【0091】
オープンループ制御DQ軸電流指令生成部37は、低トルク領域にて、DQ軸電流ベクトルのノルムを一定にする態様でD軸電流指令値を算出する。この算出のために、D軸電流指令値を求めるアルゴリズムとして、D軸電流指令値をQ軸電流指令値よりも低い値とし、且つQ軸電流指令値の増加につれて値を低下させるアルゴリズムを用いる。かかる構成では、電流の大きさを定格電流値又はそれ以下に抑えることで、モータ22の発熱を抑えることができる。
【0092】
低トルク領域にて、D軸電流指令値が低下していくと、やがてQ軸電流値と同じ値になって(DQ軸ノルム電流値がDQ軸ノルム電流下限値と同じ値になって)、トルク領域が中トルク領域となる。オープンループ制御DQ軸電流指令生成部37は、中トルク領域にて、Q軸電流指令値の増加につれてD軸電流指令値を増加させるアルゴリズムで、前記D軸電流指令値を求める。図示の例では、Q軸電流指令値とD軸電流指令値とを比例の関係にしている。Q軸電流指令値が定格電流値(b)を超えることが一般的な中トルク領域では、D軸電流値を低トルク領域におけるD軸電流値よりも高くすることで、必要なトルクを得ることができる。加えて、トルクの増加につれてD軸電流指令値を増加させることで、必要なトルクの算出誤差や外乱に対する復元力を得て、モータ22を脱調や振動させることなく、オープンループ制御によってモータ22の駆動を停止させることができる。
【0093】
中トルク領域にて、D軸電流指令値が増加していくと、やがてDQ軸ノルム電流値がDQ軸ノルム電流上限値に達して、トルク領域が高トルク領域となる。オープンループ制御DQ軸電流指令生成部37は、高トルク領域において、Q軸電流指令値の増加につれてD軸電流指令値を低下させるアルゴリズムで、D軸電流指令値を求める。中トルク領域よりも更に高いトルクが必要になる高トルク領域では、トルクの増加につれてQ軸電流値を低下させることで、ロータの磁石の磁極を引き付ける力を弱めて、電流が許容最大値を超えることを抑えることができる。
【0094】
図9に示されるD軸電流指令生成部37Bで実行される処理について説明する。
D軸電流指令生成部37Bは、Q軸-ノルム電流変化率ゲイン37B1、絶対値演算部37B2、飽和部37B3、第1の2乗演算部37B4、第2の2乗演算37B5、及び平方根演算部37B6を備える。
【0095】
Q軸電流指令生成部37Aで生成されたQ軸電流指令値は、第2の2乗演算部37B5によって2乗の値に変換された後、加算器にマイナスの値として入力される。また、Q軸電流指令値は、Q軸-ノルム電流変化率ゲイン37B1によってゲインをかけられた後、絶対値演算部37Bによって絶対値に変換され、飽和部37B3に入力される。飽和部37B3において、入力値がDQ軸ノルム電流下限値を下回る場合にはDQ軸ノルム電流下限値に変換され、入力値がDQ軸ノルム電流上限値を上回る場合にはDQ軸ノルム電流上限値に変換される。
【0096】
飽和部37B3からの出力は、第1の2乗演算部37B4によって2乗の値に変換された後、加算器にプラスの値として入力される。平方根演算部37B6は、加算器からの出力値を平方根の値に変換し、その値をD軸電流指令値として出力する。以上のような処理により、D軸電流指令値は、図10のグラフに示される特性で変化する。
【0097】
<産業用ロボット1の作用効果>
<構成1>
構成1は、モータ22を電流引込法によるオープンループ制御によって駆動するモータ制御方法である。構成1は、上位コントローラ100(信号発信手段)から送られてくる位置指令値(回転位置指令信号)に基づいてモータ22に必要なトルク(例えば、図9におけるトルク指令値)を求めるステップを具備する。また、構成1は、必用なトルクに応じたQ軸電流指令値を求めるステップ(例えば、図9におけるトルク定数除算部37A8)と、Q軸電流指令値に応じたQ軸電流、及びロータの磁石の磁極を引き込むためのD軸電流をモータに供給するステップ(例えば図9のD軸電流指令生成部37B)とを具備する。
【0098】
<構成1の作用効果>
構成1によれば、モータ22に必要なトルクに応じた値のQ軸電流をモータ22に供給することで、モータ22を脱調や振動させることなく、オープンループ制御によってモータ22の駆動を停止させることができる。
【0099】
<構成2>
構成2は、構成1におけるトルクを求めるステップが、位置指令値に応答した後のモータ22の角加速度推定値(例えば、図9の角速度推定値)を求めるステップと、角加速度推定値に基づいてトルク(例えば、図9のトルク指令値)を求めるステップとを具備する。
【0100】
<構成2の作用効果>
構成2によれば、モータ22を回転させるのに必要なトルクに応じたQ軸電流をモータ22に供給することで、モータ22に不要なQ軸電流を供給することを抑えることができる。
【0101】
<構成3>
構成3は、構成2におけるトルクを求めるステップが、位置指令値に応答した後のモータ22の角速度推定値(例えば、図9の角速度推定値)を求めるステップと、角速度推定値、及び角加速度推定値に基づいてトルクを求めるステップとを具備する。
【0102】
<構成3の作用効果>
構成3によれば、角加速度推定値に加えて、角速度推定値にも基づいてトルクを求めることで、必要なトルクをより正確に求めることができる。
【0103】
<構成4>
構成4は、構成2又は3におけるトルクを求めるステップが、位置指令値に応答した後のモータ22の位置シミュレーション値(回転位置推定値)を求めるステップ(例えば図5、における電気系・機械系のモデル)と、位置シミュレーション値に基づいて角加速度推定値(例えば、図9のトルク指令値)を求めるステップとを具備する。
【0104】
<構成4の作用効果>
構成4によれば、位置シミュレーション値に基づいてモータ22の角加速度推定値を求めることで、センサレスベクトル制御の実行時間不足によるオープンループ制御切り換わり時のモータ22の振動の発生を回避することができる。
【0105】
<構成5>
構成5は、構成2乃至4の何れかのトルクを求めるステップでは、角加速度推定値に慣性モーメントに相当する係数(例えば、図9の慣性ゲイン37A5)を乗じて求められる駆動機械系の加速及び減速に必要な力のモーメントを、トルク、又はトルクの一部として求める。
【0106】
<構成5の作用効果>
構成5によれば、駆動機械系の慣性力に応じたQ軸電流をモータ22に供給することができる。
【0107】
<構成6>
構成6は、構成5におけるトルクを求めるステップでは、位置指令値に応答した後のモータ22の角速度推定値を求め、角速度推定値に基づいて駆動機械系の粘性抵抗力を補償するための力のモーメントをトルクの一部として求める。
【0108】
<構成6の作用効果>
構成6によれば、駆動機械系の加速及び減速に必要な力のモーメントに加えて、駆動機械系の粘性抵抗も必要なトルクとして求める。これにより、加速及び減速に必要な力のモーメントだけを必要なトルクとして求める場合に比べて、モータ22のトルクの過不足の発生を抑えることができる。
【0109】
<構成7>
構成7は、構成5又は6におけるトルクを求めるステップでは、重力を補償するための力のモーメントをトルクの一部として求める。
【0110】
<構成7の作用効果>
構成7によれば、駆動機械系の加速及び減速に必要な力のモーメントに加えて、重力も必要なトルクとして求めることで、加速及び減速に必要な力のモーメントだけを必要なトルクとして求める場合に比べて、モータ22のトルクの過不足の発生を抑えることができる。
【0111】
<構成8>
構成8は、構成5乃至7の何れかにおけるトルクを求めるステップでは、位置指令値に応答した後のモータ22の角速度推定値を求め、角速度推定値に基づいてクーロン摩擦力を補償するための力のモーメントをトルクの一部として求める。
【0112】
<構成8の作用効果>
構成8によれば、駆動機械系の加速及び減速に必要な力のモーメントに加えて、クーロン摩擦力も必要なトルクとして求める。これにより、加速及び減速に必要な力のモーメントだけを必要なトルクとして求める場合に比べて、モータ22のトルクの過不足の発生を抑えることができる。
【0113】
<構成9>
構成9は、構成5乃至8の何れかにおいて、前記Q軸電流指令値に応じたD軸電流指令値を求めるステップを具備する。また、構成9は、Q軸電流指令値に応じたQ軸電流、及びロータの磁石の磁極を引き込むためのD軸電流をモータに供給するステップにおいて、前記D軸電流指令値に応じたD軸電流をモータに供給する。
【0114】
<構成9の作用効果>
構成9によれば、モータの焼損を防止し、従来構成のように一定の値のD軸電流を流す構成に比べて、モータの発熱を抑え、且つ、必要なトルクの算出誤差や外乱に対する復元力を得ることができる。
【0115】
<構成10>
構成10は、構成9における前記D軸電流指令値を求めるステップでは、Q軸電流指令値の増加につれて前記D軸電流指令値を増加させるアルゴリズムで、D軸電流指令値を求める。
【0116】
<構成10の作用効果>
構成10によれば、Q軸電流指令値の増加につれてD軸電流指令値を増加させることで、必要なトルクの算出誤差や外乱に対する復元力得て、モータ22を脱調や振動させることなく、オープンループ制御によってモータ22の駆動を停止させることができる。
【0117】
<構成11>
構成11は、構成10における前記D軸電流指令値を求めるステップでは、次のようなアルゴリズムでD軸電流指令値を求める。即ち、所定の低トルク領域にて、前DQ軸電流ベクトルのノルムを一定にする態様でD軸電流指令値を求める。また、低トルク領域よりも高い中トルク領域にて、Q軸電流指令値の増加につれてD軸電流指令値を増加させる。
【0118】
<構成11の作用効果>
構成11によれば、ロータの磁石の磁極を強力に引き込む必要のない低トルク領域では、DQ軸電流ベクトルのノルムを一定にする態様でD軸電流値を求めることで、電流の大きさを定格電流値又はそれ以下に抑えてモータ22の発熱を抑えることができる。
また、構成11によれば、Q軸電流値が定格電流値を超えることが一般的な中トルク領域では、D軸電流値を低トルク領域におけるD軸電流値よりも高くすることで、必要なトルクの算出誤差や外乱に対する復元力を得て、モータ22を脱調や振動させることなく、オープンループ制御によってモータ22の駆動を停止させることができる。
【0119】
<構成12>
構成12は、構成11における前記D軸電流指令値を求めるステップでは、中トルク領域よりも高い高トルク領域にて、Q軸電流指令値の増加につれてD軸電流指令値を低下させるアルゴリズムで、D軸電流指令値を求める。
【0120】
<構成12の作用効果>
構成12によれば、中トルク領域よりも更に高いトルクが必要になる高トルク領域では、トルクの増加につれてD軸電流値を低下させることで、ロータの磁石の磁極を引き付ける力を弱めて、電流が許容最大値を超えることを抑えることができる。
【0121】
<構成13>
構成13は、構成5乃至12の何れかにおいて、モータ22の回転位置を検出するロータリーエンコーダ30(回転位置検出器)から発信される位置検出値(回転位置信号)の異常を検出するステップを具備する。また、構成13は、異常が検出されない場合には、位置検出値に基づく検出位置フィードバック制御によってモータ22を駆動する。また、構成13は、異常が検出され、且つ検出時のモータ22の角速度が所定の下限値未満(閾値以下又は閾値未満)でない場合には、センサレスベクトル制御によってモータ22を駆動する。センサレスベクトル制御では、モータ22に流れる電流に基づいて推定される位置推定値(回転位置推定値)をフィードバックする。また、構成13は、異常が検出され、且つ検出時のモータの角速度が下限値未満である場合には、オープンループ制御によってモータ22の駆動を停止させる。
【0122】
<構成13の作用効果>
構成13において、モータ22が比較的高い速度で回転しているときに位置検出値に異常が発生した場合には、センサレスベクトル制御により、モータ22内で良好に発生する誘起電圧を推定する。そして、推定された誘起電圧からモータ22の回転位置を推定し、推定結果に基づいてモータ22を駆動して、モータ22の回転動作を適切に制御する。その後、センサレスベクトル制御により、モータ22内で十分な誘起電圧を発生させなくなる程度までモータ22の角速度を低下させると、モータ22の駆動制御を、センサレスベクトル制御からオープンループ制御に切り替える。オープンループ制御では、電流引込法によってモータ22の回転動作を適切に制御する。かかる構成では、モータ22が比較的高い角速度で回転しているときに位置検出値に異常が発生した場合に、センサレスベクトル制御とオープンループ制御とを実施して、モータ22の回転動作を適切に制御しながらモータ22を徐々に減速して停止させる。
また、構成13において、モータ22が比較的低い角速度で回転しているときに位置検出値に異常が発生した場合には、オープンループ制御によってモータ22の駆動を停止させる。
かかる構成13によれば、位置検出値の異常発生時にモータ22を直ちに強制停止させることによる手部2A(被操作体)の不適切な動作の発生を回避することができる。加えて、制御方式をオープンループ制御に切り換えた後において、検出位置フィードバック制御を行う場合と同様の挙動でモータを動作させることが可能なので、切り換え後のモータの脱調や振動の発生を抑えることができる。
【0123】
なお、位置検出値の異常発生時において、手部2Aの動作を停止させるために上位コントローラ100(上位装置)から送られてくる位置指令値のパターンは、モータ22の駆動を単純に減速停止させるパターンに限られない。アーム2の構造によっては、次のようなパターンにより、手部2Aを適切な軌道に沿って停止させることが可能な場合もあり得る。即ち、まず、センサレスベクトル制御とオープンループ制御とによってモータ22の駆動を停止させる。その直後に、オープンループ制御によってモータ22を逆回転させた後、センサレスベクトル制御によって逆方向への加速と減速とを行ってから、オープンループ制御によってモータ22を減速停止させる、というパターンである。
【0124】
<構成14>
構成14は、構成のセンサレスベクトル制御の実行中に、位置指令値(回転位置指令値)に基づいてモータ22の角加速度推定値を求めるステップを実行する。
【0125】
<構成14の作用効果>
構成14においては、センサレスベクトル制御からオープンループ制御に切り換えた直後から、切り換え直前に求めておいた角加速度推定値に基づいて、必要なトルクに応じたQ軸電流指令値を求める。これにより、構成14によれば、切り換え時に不適切なQ軸電流を供給することによるモータ22の振動の発生を抑えることができる。
【0126】
<構成15>
構成15は、モータ22の駆動を制御するモータ駆動装置20であって、構成1乃至14の何れかのモータ制御方法によってモータ22の駆動を制御する。
【0127】
<構成15の作用効果>
構成15によれば、構成1乃至15の何れかのモータ制御方法を用いることで、モータ22を脱調や振動させることなく、オープンループ制御によってモータ22の駆動を停止させることができる。
【0128】
<構成16>
構成16は、複数のモータ22の駆動を個別に制御して産業用ロボット1のアーム2の位置を変化させる産業用ロボット1の制御方法である。また、構成16は、複数のモータ22におけるそれぞれの駆動を、構成1乃至14の何れかのモータ制御方法によって制御する。
【0129】
<構成17>
構成17は、複数のモータ22の駆動を個別に制御してアーム2の位置を変化させる産業用ロボット1であって、複数のモータ22におけるそれぞれの駆動を、構成15のモータ駆動装置20によって制御する。
【0130】
<構成16、17の作用効果>
構成16、17においては、少なくとも何れか1つのモータ22において位置検出値の異常が発生したときに、そのモータ22を脱調や振動させることなく、オープンループ制御によってそのモータ22の駆動を停止させることができる。
【0131】
以上、本発明の好ましい実施形態について説明したが、本発明は、実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。実施形態は、発明の範囲及び要旨に含まれると同時に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0132】
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:上位コントローラ

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10