JP2013230061A - 電動機制御装置及びその自動調整法 - Google Patents

電動機制御装置及びその自動調整法 Download PDF

Info

Publication number
JP2013230061A
JP2013230061A JP2012102031A JP2012102031A JP2013230061A JP 2013230061 A JP2013230061 A JP 2013230061A JP 2012102031 A JP2012102031 A JP 2012102031A JP 2012102031 A JP2012102031 A JP 2012102031A JP 2013230061 A JP2013230061 A JP 2013230061A
Authority
JP
Japan
Prior art keywords
motor
value
vibration
controller
feedforward
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.)
Granted
Application number
JP2012102031A
Other languages
English (en)
Other versions
JP5860755B2 (ja
Inventor
Yusuke Uei
雄介 上井
Hiromichi Takano
裕理 高野
Takanori Ohashi
敬典 大橋
Shinji Yonemoto
伸治 米本
Masaki Sugiura
正樹 杉浦
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.)
Hitachi Industrial Equipment Systems Co Ltd
Original Assignee
Hitachi Industrial Equipment Systems Co Ltd
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 Hitachi Industrial Equipment Systems Co Ltd filed Critical Hitachi Industrial Equipment Systems Co Ltd
Priority to JP2012102031A priority Critical patent/JP5860755B2/ja
Priority to CN201380006739.7A priority patent/CN104221278B/zh
Priority to PCT/JP2013/054437 priority patent/WO2013161367A1/ja
Publication of JP2013230061A publication Critical patent/JP2013230061A/ja
Application granted granted Critical
Publication of JP5860755B2 publication Critical patent/JP5860755B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P23/00Arrangements or methods for the control of AC motors characterised by a control method other than vector control
    • H02P23/18Controlling the angular speed together with angular position or phase
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P29/00Arrangements for regulating or controlling electric motors, appropriate for both AC and DC motors
    • H02P29/50Reduction of harmonics

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Control Of Electric Motors In General (AREA)
  • Control Of Position Or Direction (AREA)

Abstract

【課題】
本発明は、作業者の負担が軽減でき、かつ、安定した動作を実現する制御パラメータを自動調整可能な電動機制御装置及びその自動調整方法を提供すること。
【解決手段】
制御パラメータ自動調整装置において、モータ停止中のモータ振動、およびモータ移動中のモータ振動を検出し、モータ振動を抑制しながら、振動振幅量及びオーバーシュート量がユーザが設定する許容値範囲内で、適正な制御パラメータを得るまで、自動調整を繰り返す調整法および装置を提供する。
【選択図】 図2

Description

本発明は電動機制御装置及びその自動調整法に関する。
フィードバック制御パラメータ及びフィードフォワード制御パラメータを自動的にチューニングする第1の従来技術として、特許文献1が知られている。この第1の従来技術では、上位指令装置を必要とすることなく、制御パラメータを調整する際の、基本動作パターンを生成し、該基本動作パターンを設定された回数だけ繰り返す連続運転パターンを出力する電動機制御装置である。
また、第2の従来技術として、特許文献2が知られている。この第2の従来技術では、上位指令装置を必要とすることなく、基本動作パターンを生成し、フィードバック制御パラメータ及びフィードフォワード制御パラメータを、振動振幅量及びオーバーシュート量がユーザの設定する許容値範囲内で、適正な制御パラメータを得るまで、自動調整を繰り返す調整法および装置である。
さらに、第3の従来技術として、特許文献3が知られている。この第3の従来技術では、追従性パラメータを第一の間隔で順次変化させて位置決め制御を行うことで整定特徴量を測定し、その後に第一の間隔より小なる間隔で追従性パラメータを増減させて制御パラメータを探索する方式が示されている。
モータ振動を検出する第4の従来技術として、特許文献4が知られている。この第4の従来技術では、モータ停止時にエンコーダから出力される現在位置信号が、位置指令値を中心として行き過ぎているのか、戻り過ぎているのか、という往復動作の発生回数をカウントし、そのカウント結果がある閾値を越えた場合にモータ振動発生しているとするものである。
特開2004−23946号公報 特開2007−135344号公報 特開2009−122778号公報 特開平09−258831号公報
特許文献1では、生成した基本動作パターンを設定された回数だけ繰り返す連続運転パターンを出力する電動機制御装置であることが明記されている。もし、基本動作パターンの設定回数を誤って設定した場合、制御パラメータ調整途中で、基本動作パターンの出力が終了してしまう恐れがある。このとき、制御パラメータをさらに調整する必要が生じてしまい、作業者への負担が大きくなるという問題点があった。
また、特許文献2では、振動振幅量及びオーバーシュート量がユーザが設定する許容値範囲内で、適正な制御パラメータを得るまで、自動調整を繰り返す調整法および装置である。一方、モータ移動→停止タイミング以外のモータ振動検出については注目していない。制御パラメータ調整の際は、モータ停止中、モータ移動中にもモータ振動することがあり、制御パラメータ増加に伴い、モータから大きな騒音が発生する可能性があり、モータ停止中、モータ移動中のモータ振動も検出する必要がある。
特許文献3に示される方式では整定特徴量を用いているが、この整定特徴量とは具体的には位置決め整定時間、オーバーシュート量、残留振動振幅、高周波振動振幅である(特許文献3の段落0016参照)。残留振動振幅は、位置指令と検出位置との偏差に現われる低周波振動の振幅値であるため、動的な状態での振幅波形が小さく、動的な振動検出は非常に困難となってしまう。
一方、特許文献4でもモータ振動の検出方法について記載されているが、ここではモータ停止時のモータ振動検出方法にのみ着目している。この方法では、モータ移動中のモータ振動は検出していないため、モータ移動中にモータ振動が発生した場合には、大きな騒音を発生しながら、モータが駆動してしまう恐れがある。
本発明は上記課題に鑑みてなされたものであり、作業者の負担が軽減でき、かつ、安定した動作を実現する制御パラメータを自動調整可能な電動機制御装置及びその自動調整方法を提供することを目的としている。
上記課題を解決するために、本発明は、例えば、特許請求の範囲に記載の構成を採用する。その一例を示すならば、駆動対象物と結合した電動機を駆動する電力変換器と、位置指令値と前記電動機の位置検出値との偏差に応じて位置制御器出力を出力する位置制御器と、前記位置指令値を入力して位置フィードフォワード信号を出力する位置フィードフォワード制御器と、前記位置制御器出力と前記位置フィードフォワード信号とを加算し速度指令値を出力する加算器と、前記速度指令値と前記電動機の速度検出値の偏差に応じてトルク電流指令値を出力する速度制御器と、前記トルク電流指令値と前記電動機に供給されるトルク電流検出値との偏差に応じて前記電力変換器の出力電流を調整する電流制御器と、予め登録された複数の位置指令パターンを前記位置制御器への位置指令として出力するパラメータチューニング部とを備え、
前記パラメータチューニング部は、
前記位置指令値と前記位置検出値との偏差の微分が、予め定められた振動条件を満たすか否かを判定し、振動条件を満たす場合、モータ振動有りと判定し、振動条件を満たさない場合、モータ振動無しと判定する判定結果を出力するモータ振動判定部を有し、前記複数の位置指令パターンを前記位置制御器へ出力して前記電動機を駆動させてフィードフォワードゲインを調整する場合に、前記モータ振動判定部の出力が振動条件を満たさず、かつ、オーバーシュート量が規定値以下となる最大のフィードフォワードゲインを、制御パラメータとして設定することを特徴とする電動機制御装置である。
本発明によれば、作業者の負担が軽減でき、かつ、安定した動作を実現する制御パラメータを自動調整可能な電動機制御装置及びその自動調整方法を提供することができる。
上記した以外の課題、構成、効果は、以下の実施形態の説明により明らかにされる。
本発明の第1の実施例による電動機制御装置のフィードバック制御パラメータの自動調整法を示す制御ブロック図。 フィードバック制御及び位置フィードフォワード制御パラメータ自動調整を行うチューニング部及び位置指令パターンを生成する位置指令生成ブロックを示す制御ブロック図。 第1の実施例によるフィードバック制御部のフローチャートその1。 第1の実施例によるフィードバック制御部のフローチャートその2。 振動振幅・整定時間・オーバーシュート量の測定処理フロー図その1。 振動振幅・整定時間・オーバーシュート量の測定処理フロー図その2。 振動振幅・整定時間・オーバーシュート量の測定処理説明波形図。 モータ振動時に発生する、位置指令波形、位置偏差波形、位置偏差微分波形の説明波形図。 モータ振動検出処理部のフローチャートその1。 モータ振動判定部のフローチャートその2。 モータ振動判定部のフローチャートその3。 モータ振動判定部のフローチャートその4。 モータ振動判定部の説明波形図。 モータ振動発生中のモータ移動中振動波形とモータ停止中振動波形のモータ振動振幅判定レベルの切り分け説明波形図。 モータ振動検出処理部の、ノイズ対策説明波形図。 モータ振動判定部の、ノイズ対策説明波形図。 モータ振動判定部のモータ振動周波数監視法の説明波形図。 第2の実施例におけるフィードフォワードゲインと整定時間・オーバーシュートの関係説明図。 第2の実施例におけるフィードフォワードゲインKffの自動調整法の処理フロー図。 第2の実施例におけるフィードフォワード時定数と限界フィードフォワードゲインKff_bdと整定時間の関係図。 限界フィードフォワードゲインKff_bd探索フローチャートその1。 限界フィードフォワードゲインKff_bd探索フローチャートその2。 限界フィードフォワードゲインKff_bd探索フローチャートその3。 最適フィードフォワード時定数Tff_opt探索用データ構造説明図。 最適フィードフォワード制御部Tff_opt探索過程説明図。 フィードバック制御パラメータ自動調整機能設定画面例。 位置フィードフォワード制御パラメータ自動調整機能設定画面例。 本実施形態の電動機制御装置の全体システム構成図。
本発明の実施形態を説明する。本実施形態を概観すると、制御パラメータ自動調整装置において、モータ停止中のモータ振動、およびモータ移動中のモータ振動を検出し、モータ振動を抑制しながら、振動振幅量及びオーバーシュート量がユーザが設定する許容値範囲内で、適正な制御パラメータを得るまで、自動調整を繰り返す調整法および装置を提供することが特徴となっている。
詳細は下記の実施例の説明を通して理解されるが、次のような効果が得られるものとなっている。すなわち、まず、制御パラメータ増加に伴うモータ振動発生に対し、制御パラメータを調整することで、モータ振動を抑制することができる。また、自動生成した位置指令パターンによるフィードバック制御パラメータを短時間に、モータ振動を抑制しつつ調整することができる。また、頻繁に利用する特定の位置指令パターンに関して、モータ振動を抑制しつつ整定時間を最小化するようなフィードフォワード制御パラメータの自動調整が可能となる。さらには、ユーザが事前に登録した複数の位置指令パターンに対して、オーバーシュート量を規定値以下とすることができる。
なお、本発明の実施形態として説明する電動機制御装置及びその自動制御法では、フィードバック制御パラメータを自動調整する際、位置制御応答周波数、及び速度制御応答周波数の2つの制御パラメータについて調整を行うが、その調整手順は、どちらを初めに調整しても最適な制御パラメータを得ることができる。実施例1では、位置制御応答周波数を調整後、速度応答周波数を調整する、という手順の実施例を示す。
図1は、本発明の第1の実施例による電動機制御装置の自動調整法を示す制御ブロック図である。第1の実施例は、フィードバック制御パラメータの自動調整を目的とする。
図1において、駆動源となる電動機1は駆動対象負荷2と連結軸3によって連結される。電動機1には電力を供給するために電力変換装置4が取り付けられており、この電力変換装置4から供給される電流によって電動機1が駆動される。電動機1には、電動機1の位置検出値θMを出力する位置検出器5が取り付けられており、後述する上位指令装置からの位置指令値θM *と電動機1の位置検出値θMとの位置偏差θeを演算する減算器6が設けられている。減算器7からの位置偏差θeは位置制御器7へと出力され、この位置制御器7は位置偏差θeに応じて速度指令値ωM *を出力する。
位置検出器5の出力する位置検出値θMは速度検出器8へと入力され、この速度検出器8は電動機1の速度検出値ωMを出力する。また、速度指令値ωM *と電動機1の速度検出値ωMとの速度偏差ωeを演算する減算器9が設けられ、この速度偏差ωeは速度制御器10に入力される。速度制御器10は入力された速度偏差ωeに応じてトルク電流指令値Iq *を出力する。
電力変換装置4と電動機1との間には、電動機1に供給されるトルク電流検出値Iqを検出する電流検出器11が取り付けられ、検出された電流値は演算器12へと送られる。演算器12はトルク電流指令値Iqと電流検出器11で検出されたトルク電流検出値Iqとの電流偏差Ieを演算し、この電流偏差電流偏差Ieは電力制御器13へと入力される。電力制御器13は電流偏差Ieに応じて電力変換器4の出力電流を調整する。
このような電動機制御装置において、位置指令に応じた速度指令値を出力する位置フィードフォワード制御部14が設けられている。この位置フィードフォワード制御部14は位置指令θM *に応じて速度指令値ωM *を出力する。さらには、位置指令θM *を生成し、位置制御器7および速度制御器10および位置フィードフォワード制御部14のパラメータを自動調整するフィードバック及びフィードフォワード制御パラメータチューニング部15が設けられている。
このチューニング部は前述の位置偏差θeを入力し、位置指令値θM *、と位置制御7に設定する位置応答周波数および速度制御器10に設定する速度応答周波数と、位置フィードフォワード制御部に設定する位置フィードフォワードゲイン及び位置フィードフォワード時定数を出力する。
図2は、図1が示すフィードバック制御及び位置フィードフォワード制御パラメータチューニング部15のブロック図を示す。
位置指令はユーザが設定するものとし、位置指令生成部151はユーザにより設定される位置指令パターンから具体的な位置指令θM *を生成する。
また、減算器6から出力された位置偏差θeを入力として、電動機から発生するモータ振動の有無を検出するモータ振動判定部152と、位置偏差θe、及び152から出力されるモータ振動検出フラグflgmvibを入力として、後述するアルゴリズムを用いて最適な位置制御応答周波数、および最適な速度制御応答周波数を自動で調整するフィードバック制御パラメータチューニング部153とを備える。
さらに、ユーザが設定する位置指令値θref * 及び位置指令生成部151から出力される位置指令値θM *を入力として、モータ移動中、若しくはモータ停止中のいずれかを判断し、モータ停止中、モータ移動中、各々の場合において、異なるモータ振動検出振動振幅量判定値を出力する、モータ振動検出振動振幅量判定値切替部154、及び、位置偏差θe、及びモータ振動判定部152から出力されるモータ振動検出フラグflgmvibを入力として、後述するアルゴリズムを用いて最適な位置フィードフォワードゲイン、および最適な位置フィードフォワード時定数を自動で調整するフィードフォワード制御パラメータチューニング部155とを備えている。
フィードバック制御パラメータチューニング部153の内部には、後述するフィードバック制御パラメータの自動調整アルゴリズムを有している。その基本動作は、位置応答周波数、及び速度応答周波数を、位置指令印加時の位置偏差振動振幅量がユーザが設定する規定値、例えば許容値を越えない範囲内で、かつモータ振動判定部の出力であるモータ振動検出フラグflgmvibが(「モータ繰返し振動発生無し」)の状態において、最大化するというものである。
図3、および図4は第1の実施例によるフィードバック制御パラメータの自動調整フローチャートである。この図を用いて、フィードバック制御パラメータの自動調整アルゴリズムを説明する。
図4において、Fs_minは、ユーザが設定する最小速度応答周波数、Fs_maxはユーザが設定する最大速度応答周波数、Fs_divはユーザが設定する速度応答周波数増分ステップである。後述する調整時には、速度応答周波数をFs_minからFs_maxまでFs_divのステップで増加しながら調整することを意味する。
同様に、Fp_minは、ユーザが設定する最小位置応答周波数、Fp_maxはユーザが設定する最大位置応答周波数、Fp_divはユーザが設定する位置応答周波数増分ステップである。後述する調整時には、位置応答周波数をFp_minからFp_maxまでFp_divのステップで増加しながら調整することを意味する。
また、θvibは、ユーザが設定する位置偏差θeの振動振幅許容値である。Fsは、速度制御器10に設定されている現在の速度応答周波数、Fpは位置制御器7に設定されている現在の位置応答周波数である。Fp_voは振動限界の最大位置応答周波数であり、位置偏差波形の振動振幅量が許容値θvib以下、またはモータ振動検出無し、となる最大の位置応答周波数を記録する。Fs_vlは、調整により最終的に求まる最適速度応答周波数、Fp_vlは、調整により最終的に求まる最適位置応答周波数、flag_fpmaxは‘ON’の場合に位置偏差波形の振動振幅が許容値θvib以下のまま、かつモータ振動を検出しないまま最大位置応答に達したことを示すフラグである。
本フローチャートにおける調整の基本的な考え方は、位置応答周波数および速度応答周波数を、位置偏差波形に振動を誘発しない範囲内、かつモータ振動を検出しない範囲内で、可能な限り高く設定することである。また、位置応答周波数を徐々に高めて行く過程で、位置偏差波形に振動が発生、もしくはモータ振動を検出しても、速度応答周波数を少し高めることで前記位置偏差波形の振動を低減できる、またはモータ振動を抑制することができる場合があることが経験的に分かっている。
そこで、この経験則を活かす為に、位置偏差波形に振動が発生した場合、もしくはモータ振動が繰返し発生した場合には、速度応答周波数Fsを速度応答周波数増分ステップFs_divだけ高くして位置偏差波形の振動あるいは繰返し発生したモータ振動の再評価を行うこととした。
次に、図3のフローチャートを順を追って説明する。図3では、20でフィードバック制御パラメータの自動調整を開始し、処理21で各変数の初期化を実施する。初期化処理21では、FsにFs_minを代入し、速度応答周波数を最小速度応答周波数Fs_minから開始するように設定している。同様に、FpにFp_minを代入し、位置応答周波数を最小位置応答周波数Fp_minから開始するように設定している。
更に、振動限界の最大位置応答周波数Fp_voを最小位置応答周波数Fp_minで、フラグflag_fpmaxを‘OFF’で初期化し、処理22に移行する。処理22では、位置指令値θM *を入力として電動機を駆動し、処理23へ移行する。処理23では、処理22で生成する位置指令を図1における位置指令値θM *として印加した際の位置偏差θeの振動振幅を測定し、処理24へ移行する。この位置偏差θeの振動振幅の測定手段については後述する。処理24では、図2におけるモータ振動判定部152からの出力であるモータ振動検出フラグflgmvibを用いてモータ振動が繰り返しあったかを検出する。このモータ振動の検出手段ついては後述する。
次に、判定処理25では、処理24でモータ振動が繰り返し発生したか否かを判定する。判定処理25で、モータ振動が発生していない場合、処理26へ移行する。処理26では、位置偏差θeの振動振幅が許容値θvib以下か否かを判定する。判定処理26で位置偏差θeの振動振幅が許容値θvib以下かの場合、処理27へ移行する。判定処理27では、現在の位置応答周波数Fpが最大位置応答周波数Fp_max未満か否かを判定し、未満であれば、処理28に移行する。処理28では現在の位置応答周波数を位置応答周波数増分ステップだけ増加し、処理22に移行する。
一方、判定処理27で現在の位置応答周波数Fpが最大位置応答周波数Fp_max以上の場合には、処理29に移行する。処理29では、フラグflag_fpmaxに‘ON’を設定し、位置偏差波形の振動振幅が許容値θvib以下、かつモータ振動検出無しのまま、最大位置応答周波数に達したことを明示し、判定処理30に移行する。
判定処理30では、現在の速度応答周波数Fsが最大速度応答周波数Fs_max未満か否かを判定し、未満であれば、処理31に移行する。処理31では現在の速度応答周波数を速度応答周波数増分ステップFs_divだけ増加し、処理22に移行する。
一方、判定処理30で現在の位置応答周波数Fpが最大速度応答周波数Fs_max以上の場合には、位置応答周波数、速度応答周波数ともに、位置偏差波形の振動振幅が許容値θvib以下、かつモータ振動検出なしのまま最大値に達したことを意味し、処理32に移行する。処理32では、最適速度応答周波数Fs_vl、および最適位置応答周波数Fp_vlに対して、それぞれ現在の速度応答周波数Fs、現在の位置応答周波数Fpを代入した後、33へ移行し終了する。
判定処理26で振動振幅が許容値θvib以下でない場合には、処理34に移行する。判定処理34では、flag_fpmaxをチェックし、位置偏差波形の振動振幅が許容値θvib以下のまま最大位置応答に達したか否かを確認する。ここで、flag_fpmax=OFFでない場合には、位置偏差波形の振動振幅が許容値θvib以下のまま、最大位置応答に達し、その後、位置偏差波形の振動振幅が許容値θvibを越えるまで速度応答周波数を高めたことを意味し、処理35に移行する。処理35では、最適速度応答周波数Fs_vlに対して、位置偏差波形の振動振幅が許容値θvib以下となる条件を設定する為に、現在の速度応答周波数Fsから速度応答周波数増加ステップFs_divだけ減算した値を代入した後、33へ移行し終了する。
判定処理34で、flag_fpmax=OFFの場合には、判定処理36に移行し、現在の位置応答周波数Fpと前記した振動限界の最大位置応答周波数Fp_voとを比較する。ここで、「Fp>Fp_vo」が成立しない場合には、現在の位置応答周波数Fpが振動限界の最大位置応答周波数Fp_voを越える条件が存在しないことを意味し、処理35に移行する。判定処理36で「Fp>Fp_vo」が成立する場合には、判定処理37に移行する。
判定処理37では、現在の速度応答周波数Fsが最大速度応答周波数Fs_max未満か否かを判定し、未満であれば処理38に移行する。処理38では、現在の速度応答周波数Fsを速度応答周波数増分ステップFs_divだけ増加し、位置偏差波形の振動振幅の低減を図る。更に、位置偏差波形の振動振幅が必ず許容値θvib以下となるように、現在の位置応答周波数Fpを位置応答周波数増分ステップFp_divだけ減少し、処理39に移行する。処理39では、振動限界の最大位置応答周波数Fp_voとして現在の位置応答周波数Fpを記録し、位置応答周波数を更に上げるべく処理22に移行する。
判定処理37で現在の速度応答周波数Fsが最大速度応答周波数Fs_max以上の場合には、現在の速度応答周波数Fsをこれ以上増加できないことを意味し、処理40に移行する。処理40では、最適速度応答周波数Fs_vlに対して、現在の速度応答周波数Fsを代入する。更に、最適位置応答周波数Fp_vlに対しては、位置偏差波形の振動振幅が必ず許容値θvib以下となるように、現在の位置応答周波数Fpを位置応答周波数増分ステップFp_divだけ減少した後、33へ移行し終了する。
判定処理25でモータ振動検出有り状態と判定した場合には、処理41に移行する。判定処理41では、flag_fpmaxをチェックし、モータ振動検出無し状態のまま最大位置応答に達したか否かを確認する。flag_fpmax=OFF以外の場合には、位置偏差波形のモータ振動検出無しのまま、最大位置応答に達し、その後、モータ振動検出無し状態を越えるまで速度応答周波数を高めたことを意味し、処理42に移行する。
処理42では、現在の速度応答周波数は、モータ振動検出有り状態であることから、現在の速度応答周波数Fsを速度応答周波数増加ステップFs_divだけ減算する。ここで、現在の速度応答周波数Fsを速度応答周波数増加ステップFs_divだけ減算した値は、モータ振動検出しない範囲内での限界値であることが分かる。よって、最大速度応答周波数Fs_maxを現在の速度応答周波数Fsで記録することで、次回電動機駆動時にモータ振動検出有り状態となることを防ぎ、処理22へ移行する。
判定処理41で、flag_fpmax=OFFの場合には、判定処理43に移行し、現在の位置応答周波数Fpと振動限界の最大位置応答周波数Fp_voとを比較する。ここで、「Fp>Fp_vo」が成立しない場合には、現在の位置応答周波数Fpが振動限界の最大位置応答周波数Fp_voを越える条件が存在しないことを意味し、処理42に移行する。判定処理43で「Fp>Fp_vo」が成立する場合には、処理44に移行する。
判定処理44では、現在の速度応答周波数Fsが最大速度応答周波数Fs_max未満か否かを判定し、未満であれば処理45に移行する。処理45では、現在の速度応答周波数Fsを速度応答周波数増分ステップFs_divだけ増加し、現在の位置応答周波数Fpを位置応答周波数増分ステップFp_divだけ減少することで、モータ振動検出無し状態とし、処理46に移行する。処理46では、振動限界の最大位置応答周波数Fp_voとして現在の位置応答周波数Fpを記録し、位置応答周波数Fpを更に上げるべく処理22に移行する。
判定処理44で現在の速度応答周波数Fsが最大速度応答周波数Fs_max以上の場合には、現在の速度応答周波数Fsをこれ以上増加できないことを意味し、処理42に移行する。
図5および図6は、第1の実施例における振動振幅・整定時間・オーバーシュート量の測定処理フロー図である。このフローを用い、フィードバック制御及び位置フィードフォワード制御パラメータチューニング部15において、必要となる位置偏差波形の振動振幅、整定時間、オーバーシュート量を計測する方法を述べる。
図5および図6において、timeoutは、ユーザが設定する整定監視タイムアウト時間であり、位置偏差波形が始めてゼロクロスした時点を起点として、timeoutだけ整定時間を計測させる調整パラメータである。posin_plsは、ユーザが設定する整定判定用偏差であり、位置偏差の絶対値が安定してposin_pls以下となるとき、整定しているとする。
また、poserrは位置偏差、poserr_workは振動・オーバーシュート計測用位置偏差であり、位置指令印加直後の位置偏差が電動機の駆動方向に関わらず、常に正側から開始するように位置偏差poserrを符号調整した状態量である。flag_poserr_plusは、位置指令印加直後の位置偏差が正から開始することを示すフラグであり、位置偏差が正から開始する時には、flag_poserr_plus=ONとし、負から開始する時には、flag_poserr_plus=OFFとする。よって、flag_poserr_plus=ONではposerr_work=poserrであり、flag_poserr_plus=OFFではposerr_work=-poserrとなる。
poserr_minは位置偏差最小値であり、位置指令が変化し終わった直後から、整定時間の計測を終了するまでの間、常にその時点におけるposerr_workの最小値を保持する変数である。poserr_vibは位置偏差中の振動振幅最大値であり、「poserr_work-poserr_min」で算出されるposerr_workの振動振幅から常に最大値を保持する変数である。flag_plsinは整定判定用偏差到達フラグであり、位置偏差の絶対値が整定判定用偏差posin_pls以下ならばflag_plsin=ONとし、そうでないならば、flag_plsin=OFFとする。よって、flag_plsin_bkは整定判定用偏差到達フラグ前回値であり、前回設定したflag_plsinと同値なフラグである。
time_sは計測経過時間であり、位置指令が変化し終わった直後を起点とする経過時間、time_wは整定監視経過時間であり、位置偏差波形が始めてゼロクロスした時点を起点とする経過時間を示す。Stは整定時間であり、位置偏差の絶対値が整定判定用偏差posin_plsよりも大きい値からposin_pls以下となる度にStに対して計測経過時間time_sを代入する。これにより、整定監視タイムアウト時間timeoutが適切に長く設定されていれば、Stには位置指令が変化し終わった直後から位置偏差が最終的に整定するまでに要する時間が記録されることになる。
over_shootは電動機位置の位置指令値に対するオーバーシュート量であり、整定後には、poserr_minの符号反転値に等しくなる。
次に、図5および図6のフローチャートを順を追って説明する。図5および図6では、50でフローチャートを開始し、判定処理51で位置指令θM *の変化を確認する。ここでは、位置指令が入力されるまでは、位置指令に変化がない為、判定処理51を繰り返し実行するが、位置指令が入力されると、「位置指令θM *に変化あり」と判定され、判定処理52に移行する。判定処理52では、位置指令が一定か否かを判定する。ここでは、位置指令が完全に立ち上がった時点において、位置指令が一定となり、判定処理53に移行する。一方、位置指令が立ち上がっている最中は、判定処理52を繰り返し実行する。
判定処理53では、位置偏差poserrの正負を確認し、正であれば処理54に移行する。処理54では、前記位置偏差が正から開始することを示すフラグflag_poserr_plusに‘ON’をセットし、処理55に移行する。処理55では、位置偏差最小値poserr_minを位置偏差poserrで初期化し、初期化処理56に移行する。判定処理53において、位置偏差poserrが負であれば、処理57に移行し、位置偏差が正から開始することを示すフラグflag_poserr_plusに‘OFF’をセットし、処理58に移行する。処理58では、善意位置偏差最小値poserr_minを位置偏差poserrの符号反転-poserrで初期化し、初期化処理56に移行する。初期化処理56では、位置偏差中の振動振幅最大値poserr_vib、計測経過時間time_s、整定監視時間time_w、整定判定用偏差到達フラグ前回値flag_plsin_bkをゼロで初期化し、処理59に移行する。
処理59では、計測経過時間time_sに1加算し、判定処理60に移行する。判定処理60では、位置偏差poserrの絶対値が整定判定用偏差posin_pls以下ならば、処理61に移行し整定判定用偏差到達フラグflag_plsinに‘ON’をセットし、判定処理62に移行する。
判定処理62では、整定判定用偏差到達フラグ前回値flag_plsin_bkがゼロか否かを判定し、flag_plsin_bk=OFFならば、処理63に移行し整定時間Stに計測経過時間time_sを記録し処理65へ移行する。また、判定処理62において、flag_plsin_bk=ONならば、既に整定している為、整定時間Stを更新する必要は無く、処理65に移行する。処理65では、次回の位置偏差判定処理60に備えて、整定時間判定用偏差到達フラグ前回値flag_plsin_bkに対して、今回の整定時間判定用偏差到達フラグflag_plsinの値を代入し、判定処理66へ移行する。
判定処理66では、位置偏差が正から開始することを示すフラグflag_poserr_plusをチェックする。flag_poserr_plus=ONならば、位置偏差が正から開始したとして処理67へ移行し、振動・オーバーシュート計測用位置偏差poserr_workに位置偏差poserrをそのまま代入し、判定処理69に移行する。判定処理66において、flag_poserr_plus=OFFならば、位置偏差が負から開始したとして処理68へ移行し、振動・オーバーシュート計測用位置偏差poserr_workに位置偏差poserrの符号反転-poserrを代入し、判定処理69に移行する。
判定処理69では、振動・オーバーシュート計測用位置偏差poserr_workが位置偏差最小値poserr_min以下か否かを判定する。以下であれば処理70に移行し、位置偏差最小値poserr_minを現在の振動・オーバーシュート計測用位置偏差poserr_workで更新し、判定処理71に移行する。判定処理69において、振動・オーバーシュート計測用位置偏差poserr_workが位置偏差最小値poserr_min以下とならない場合には、位置偏差最小値poserr_minを更新することなく、判定処理71に移行する。
判定処理71では、これまでに計測された位置偏差中の振動振幅最大値poserr_vibと「poserr_work-poserr_min」を比較し、poserr_vibの方が小さい場合には処理72へ移行し、poserr_vibを「poserr_work-poserr_min」で更新し、判定処理73に移行する。判定処理71において、poserr_vibの方が大きい場合には、poserr_vibを更新することなく、判定処理73に移行する。
判定処理73では、位置偏差がゼロクロスしたことを検出する為に、位置偏差最小値poserr_minがゼロ以下か否かを評価する。ここで、poserr_min≦0ならば、過去に位置偏差がゼロクロスしたと判定し、処理74に移行する。処理74では、位置偏差波形が始めてゼロクロスした時点を起点とする経過時間を表す整定監視経過時間time_wに1加算し、判定処理75に移行する。判定処理73でposerr_min≦0が成立しない場合には、未だ一度も位置偏差波形がゼロクロスしていないと判定し、処理59へ移行する。
判定処理75では、位置指令が変化し終わった直後を起点とする整定監視経過時間time_wと整定監視タイムアウト時間timeoutを比較し、time_w≧timeoutならば整定監視を終了するべく処理76に移行する。一方、判定処理75において、time_w≧timeoutが成立しない場合には、整定監視を継続するべく処理59に移行する。処理76では、オーバーシュート量over_shootとして位置偏差最小値poserr_minの符号反転値-poserr_minを設定し、77に移行し、位置偏差波形の振動振幅、整定時間、オーバーシュート量を計測する処理を終了する。
図7は、第1の実施例における振動振幅・整定時間・オーバーシュート量の計測説明波形図であり、各部状態量の波形を用いて、図5および図6のフローチャートの結果を具体例で示す。図7において、波形80は位置指令値、波形81は位置偏差poserr及び振動・オーバーシュート計測用位置偏差poserr_workである。波形82は整定判定用偏差到達フラグflag_plsin、波形83は位置偏差最小値poserr_min、波形84はposerr_work-poserr_minである。
また、各波形の横軸は計測経過時間time_sであり、位置指令を示す波形80が完全に立ち上がった時点をtime_s=0としている。この場合、位置指令波形80が正方向に変化しているため、time_s≧0でのposerr_workは位置偏差poserrと等しい。ここでもし、位置指令波形80が負方向に変化していたならば、poserr_workを示す波形81を時間軸に対して線対称に変換した波形となる。
また、整定判定用偏差到達フラグflag_plsinを示す波形82は、poserr_workを示す波形81がグラフ中の-posin_plsからposin_plsの間に存在すれば‘ON’を取り、それ以外では‘OFF’を取る。この例のように、位置偏差波形が振動的な場合には、‘OFF’と‘ON’を何度か往復した後、特に整定監視タイムアウト時間timeoutが十分に長く設定されていれば、最終的に‘ON’に落ち着く。
また、整定判定用偏差到達フラグflag_plsinの立ち上がりエッジ(矢印)毎に、整定時間Stを計測経過時間time_sで更新する。整定監視経過時間time_wは、整定監視タイムアウト時間timeoutを計測する為の経過時間であり、図中に時間軸85で示したように、位置偏差波形81が始めてゼロクロスした時点を起点としている。このように、計測経過時間time_sとは別に、位置偏差波形81が始めてゼロクロスした時点を起点とする整定監視経過時間time_wを新たに設ける。その理由は、位置偏差波形がゼロクロスした時点から整定までに要する時間が、位置応答周波数や速度応答周波数といった制御パラメータの影響をあまり受けないことによる。
これにより、ユーザによる整定監視タイムアウト時間timeoutの設定に際しては、位置応答周波数や速度応答周波数と言った制御パラメータを考慮することなく、一定値を設定するだけで、制定時間Stの正確な測定を可能としている。また、波形83は位置偏差最小値poserr_minであり、振動・オーバーシュート計測用位置偏差poserr_workと比較するとわかりやすいが、poserr_workの各時点での最小値を示す。また、波形84は、poserr_work-poserr_minであり、振動・オーバーシュート計測用位置偏差poserr_workに含まれる振動成分のみを抽出した波形となる。
このことは、もしposerr_workが振動を伴わない漸減波形ならば、poserr_work-poserr_minが常にゼロになることから理解できる。また、最終的に求めたい位置偏差中の振動振幅最大値poserr_vibは、波形84のピークホールド値である。
図8は、モータ駆動時にモータ振動が発生した場合の説明波形図である。波形100は位置指令生成部151で生成される位置指令波形である。波形101は位置偏差θeである。波形102は波形101を微分することにより得られる、位置偏差微分波形である。
波形100の位置指令値を入力値として、電動機、負荷、制御パラメータ等の影響によりモータが振動した場合、位置偏差波形は波形101のように振動的な波形となり、波形101の微分により得られる波形102は、振動振幅量が大きく、周期的な振動波形となる。
本実施例におけるモータ振動判定方法は、この点に着目し、波形102の振動波形1周期分の振動振幅量が、ある任意の値を越える場合の計測回数を計測する。この計測回数が、ある任意の時間の間に、ある任意の回数だけ検出された場合、モータ振動が繰り返し発生した、と判定することを特徴とする。
図9〜図12は、第1の実施例におけるモータ振動検出処理152のフローである。このフローを用い、モータ振動判定部152で行うモータ振動検出を検出するフローを述べる。
図9〜図12において、poserrは位置偏差θeであり、poserr_oldは位置偏差θeの前回値であり位置偏差(前回値)とする。poserr_difは前記位置偏差と前記位置偏差(前回値) poserr_oldの差から算出される位置偏差微分値である。
time_vib_cntはモータ振動時の位置偏差微分波形が示す、モータ振動波形1周期分の測定時間であり、後述するモータ振動振幅最大値検出状態開始からモータ振動振幅最小値検出状態終了までの時間を測定する。time_vib_jdgはモータ振動検出時間の合計値であり、後述するモータ振動検出回数をカウントアップする毎に、モータ振動波形1周期分の時間を合算し、モータ振動が検出されている間の合計時間を計測する。time_vib_jdg_levelは、モータ振動検出時間の判定値である。モータ振動はtime_vib_jdgがtime_vib_jdg_levelを越えない範囲内で、ある任意の回数だけ繰り返し検出した場合、モータ振動検出に誤検出なくモータ振動を検出した、と判定する。また、モータ振動はtime_vib_jdgがtime_vib_jdg_levelを越えた場合、モータ振動検出時に、誤検出があったと判断し、モータ振動を繰り返し検出した、と判定しない。
time_buf[vib_dtct_ov_cnt]はモータ振動波形1周期分の測定時間を保存するバッファ値である。モータ振動を検出し、time_vib_jdg がtime_vib_jdg_level を越えた場合、time_buf[vib_dtct_ov_cnt]分だけ減算する。vib_dtct_ov_cntは、モータ振動検出時間オーバーカウント回数である。vib_dtct_ov_cntはtime_vib_jdg がtime_vib_jdg_level を越える毎にカウントアップする。vib_cntはモータ振動検出判定回数である。
poserr_dif_chk_stsはモータ振動検出判定状態を示す。poserr_dif_chk_sts=VIB_MAXのとき、モータ振動振幅最大値を測定する状態であり、poserr_dif_chk_sts=VIB_MINのとき、モータ振動振幅最小値を測定する状態であり、poserr_dif_chk_sts=VIB_CHKのとき、モータ振動振幅最大値とモータ振動振幅最小値の関係から、モータ振動を検出したか判定する状態である。
poserr_dif_maxは、poserr_difが示すモータ振動波形1周期中の最大振幅値である。poserr_dif_minは、poserr_difが示すモータ振動波形1周期中の最小振幅値である。poserr_vib_levelはモータ振動検出振動振幅量判定値であり、poserr_dif_chk_sts=VIB_CHKの状態において、poserr_dif_maxとposerr_dif_minの差が、poserr_vib_levelを越えた場合、モータ振動検出回数poserr_dif_vib_cntをカウントアップする。vib_chk_levelはモータ振動振幅最大最小判定レベル値である。
poserr_dif_vib_cntはモータ振動検出回数であり、モータ振動の動作が、time_vib_jdg_levelの範囲内で何度繰り返し検出されたかを示す。また、poserr_dif_vib_cnt が、モータ振動検出判定回数poserr_dif_vib_cnt_jdgを越えた場合、モータ振動が繰り返し発生したと判定する。vib_dtct_flgはモータ振動検出状態フラグであり、モータ振動を検出していない場合、vib_dtct_flg =OFF、モータ振動を検出した場合、vib_dtct_flg =ONとなる。
次に図9〜図12のフローチャートを順を追って説明する。図9では、300でフローチャートを開始し、処理301でモータ振動検出状態フラグvib_dtct_flg、及びモータ振動検出フラグflgmvibをOFFとし、モータ振動検出判定状態poserr_dif_chk_sts=VIB_MAXとして初期化処理を行い、処理302へ移行する。処理302では、位置偏差poserrと位置偏差(前回値)poserr_oldの差分から、位置偏差微分値poserr_difを算出する。処理303で位置偏差poserrを位置偏差(前回値)poserr_oldとし、次回の処理302で位置偏差(前回値)poserr_oldとして扱う。処理304では、位置偏差微分値poserr_difに1次遅れフィルタ処理を加え、高周波ノイズの影響によるモータ振動の誤検出を抑制する。処理305では、モータ振動1周期分の時間を測定するため、time_vib_cntに1加算し、判定処理306へ移行する。
判定処理306では、すでにモータ振動検出した状態であるかを判別し、すでにモータ振動を検出した場合、307の状態へ移行する。処理307ではモータ振動検出フラグ=‘ON’と設定することで、前記モータ振動判定部でモータ振動を検出したことを出力し、処理308へ移行し、モータ振動検出処理を終了する。また、モータ振動を検出していない場合、処理309へ移行する。
判定処理309では、モータ振動振幅値最大値検出状態poserr_dif_chk_sts=VIB_MAXの場合、判定処理310へ移行する。判定処理310では、モータ振動振幅値最大値poserr_dif_maxが位置偏差微分値poserr_difより小さい場合、処理311へ移行する。処理311にて、モータ振動振幅値最大値poserr_dif_max=poser_difとしてモータ振動振幅値最大値を更新し、判定処理312へ移行する。
判定処理312では、モータ振動振幅値最大値検出状態を終了するか判定する処理である。モータ振動時、位置偏差微分波形は正弦波波形となるため、位置偏差微分波形1周期中の最大値を通った後、位置偏差微分値は徐々に小さくなる。このことから、poserr_dif_max-poser_difなる値がモータ振動振幅最大最小判定レベル値vib_chk_levelより大きくなった場合、モータ振動振幅値最大値はすでに取得したと判断する。このとき、処理313へ移行し、モータ振動振幅値最小値検出状態poserr_dif_chk_sts=VIB_MINとする。判定処理314では、モータ振動振幅値最大値検出状態poserr_dif_chk_sts=VIB_MINの場合、判定処理315へ移行する。
判定処理315では、モータ振動振幅値最小値poserr_dif_minが位置偏差微分値poserr_difより大きい場合、処理316に移行する。処理316にて、モータ振動振幅値最小値poserr_dif_minを現在の位置指令微分値poser_difで更新し、判定処理317へ移行する。
判定処理317では、モータ振動振幅値最小値検出状態が終了か否かを判定する処理である。モータ振動時、位置偏差微分波形は正弦波波形となるため、位置偏差微分波形1周期中の最小値を通った後、位置偏差微分値は徐々に大きくなる。このことから、|poserr_dif_min-poser_dif|なる値がモータ振動振幅最大最小判定レベル値vib_chk_levelより大きくなった場合、位置偏差微分波形1周期中における、モータ振動振幅値最小値はすでに取得したと判断する。このとき、処理318へ移行し、モータ振動振幅値判定状態poserr_dif_chk_sts=VIB_CHKとする。
判定処理319では、モータ振動振幅値判定状態poserr_dif_chk_sts=VIB_CHKの場合、判定処理320へ移行する。判定処理320では、モータ振動振幅値最大値poserr_dif_maxとモータ振動振幅値最小値poserr_dif_minの差からモータ振動振幅量を算出し、その値がモータ振動検出振動振幅値判定値より大きい場合、モータが振動する動作をした、として処理321へ移行する。処理321では、モータ振動検出回数を1加算し、処理322へ移行する。処理322では、モータ振動検出時間に、今回のモータ振動1周期分の検出時間を加算し、判定処理323へ移行する。
判定処理323では、モータ振動検出時間がモータ振動検出時間判定値を越えたかを判定する。モータ振動検出時間がモータ振動検出時間判定を越えた場合、モータ振動検出時に誤検出があったとして、処理324へ移行する。処理324では、モータ振動誤検出が少なくとも1回は発生していることから、モータ振動検出回数をカウントダウンする。処理325では、モータ振動検出時間から、モータ振動検出時間バッファ値time_buf[vib_cnt]だけ減算する。これにより、モータ振動誤検出した、と考えられる時間を減算することが可能となる。処理326では、モータ振動検出時間がモータ振動検出時間判定値を越えた回数を測定する。処理327では、モータ振動時間(1周期分) time_vib_cntをtime_buf[vib_cnt]へ保存する。処理328ではモータ振動検出総計回数をカウントアップする。
判定処理329では、モータ振動検出回数がモータ振動検出判定回数以上であるかを判定する。モータ振動検出回数がモータ振動検出判定回数以上の場合、処理330へ移動し、モータが振動したと判定しモータ振動検出状態フラグvib_dtct_flg=ONをセットする。判定処理329、または処理330終了後、処理331へ移行する。
処理331では、モータ振動検出判定を終了し、再度モータ振動1周期分のモータ振動振幅値最大値を検出するため、モータ振動振幅値判定状態poserr_dif_chk_sts=VIB_MAXとし、また、再度モータ振動振幅の最大値を検出するため、モータ振動振幅値最大値poserr_dif_maxを、設定しうる最小の値とし、そして、再度モータ振動振幅の最小値を検出するため、モータ振動振幅値最小値poserr_dif_minを、設定しうる最大の値に設定して、処理302へ移動し、モータ振動検出処理を繰り返す。
図13は、第1の実施例におけるモータ振動波形、モータ振動検出_判定状態、モータ振動振幅値最大値、モータ振動振幅値最小値、モータ振動検出振動振幅量判定値、モータ振動振幅最大最小判定レベル値、モータ振動検出回数の計測法説明波形図であり、各状態量の波形を用いて、図9〜図12のフローチャートの結果を具体例で示す。図13において、波形350は位置偏差微分値poser_dif、波形351はモータ振動振幅値最大値poserr_dif_max、波形352はモータ振動振幅値最小値poserr_dif_min、波形353はモータ振動振幅値最大値poserr_dif_maxとモータ振動振幅値最小値poserr_dif_minの差である。波形354はモータ振動検出処理が、モータ振動振幅最大値検出状態、またはモータ振動最小値検出状態、またはモータ振動判定状態のいずれの状態であるかを示している。
poserr_dif_chk_sts=VIB_MAXの時、モータ振動振幅値最大値poserr_dif_maxを検出している。この状態において、位置偏差微分値poserr_difがモータ振動振幅値最大値poserr_dif_maxよりも大きい場合、位置偏差微分値は、モータ振動振幅値最大値を検出し始めてから、一番大きな値を取得していることを表している。ここで位置偏差微分値の一番大きな値を表す、モータ振動振幅値最大値を更新するため、poserr_dif_max=poserr_difとして、poserr_dif_maxを増加させる。このとき、波形355では、poserr_dif_max-poserr_dif=0となり、モータ振動振幅値最大値が増加状態であることを示している。波形350の位置偏差微分値poserr_difが減少し、位置偏差微分値poserr_difがモータ振動振幅値最大値poserr_dif_maxよりも小さい場合、波形351のモータ振動振幅値最大値は更新されない。また、波形355において、poserr_dif_max-poserr_difは0より大きくなり、増加していく。波形355において、poserr_dif_max-poserr_difが増加していき、モータ振動振幅最大最小判定レベル値vib_chk_levelより大きくなった場合、モータ振動振幅値最大値は取得完了したとして、モータ振動最小値検出状態poserr_dif_chk_sts=VIB_MINとなる。
波形354において、poserr_dif_chk_sts=2の時、波形352に示すように、モータ振動振幅値最小値を検出している。この状態において、位置偏差微分値poserr_difがモータ振動振幅値最小値poserr_dif_minよりも大きい場合、poserr_dif_min=poser_difとして、poserr_dif_minも増加していく。このとき、波形355では、poserr_dif-poserr_dif_min=0となり、モータ振動振幅値最小値が減少状態であることを示している。
波形350の位置偏差微分値poserr_difが小さくなった場合、波形352のモータ振動振幅値最小値は更新されない。また、波形355において、poserr_dif-poserr_dif_minは0より大きくなり、増加していく。
波形355において、poserr_dif-poserr_dif_minが増加していき、モータ振動振幅最大最小判定レベル値vib_chk_levelより大きくなった場合、モータ振動振幅値最小値は取得完了したとして、モータ振動最小値検出状態poserr_dif_chk_sts=VIB_CHKとなる。
波形354において、poserr_dif_chk_sts=VIB_CHKの時、波形353に示す、モータ振動振幅値poserr_dif_max+ poserr_dif_minを波形351モータ振動振幅値最大値poserr_dif_maxと、波形352モータ振動振幅最小値poserr_dif_minの和から算出する。モータ振動振幅量poserr_dif_max+ poserr_dif_minがモータ振動検出振動振幅量判定値poserr_vib_levelより大きい場合、波形356に示すようにモータ振動検出回数poserr_dif_vib_cntをカウントアップする。この処理を繰り返し、モータ振動検出回数が、ある任意の値を越えた場合、モータ振動を検出したと判定し、モータ振動検出フラグvib_dtct_flgをONとする。
図14では、モータ移動中、モータ停止中のモータ振動検出振動振幅量判定値の切替方法について説明する。図14において、波形360は位置指令波形、波形361は位置指令差分波形、波形362は位置偏差波形、波形363は位置偏差微分波形図、波形364はモータ振動振幅レベルを示す。
波形362は、位置指令値θM *と位置検出値θMとの位置偏差波形であり、波形363は波形362を微分した位置偏差微分波形である。波形363では、モータ移動中も位置偏差微分波形が振動的な波形であるが、モータ振動が微小である状態を表している。この場合、モータ移動中はモータ振動音が発生せず、モータ振動として検出する必要はない。一方、モータ停止中には、モータ振動音が発生するため、モータ振動として検出する必要がある。
ここで、モータ停止中とモータ移動中のモータ振動レベルを同値とした場合について述べる。モータ停止中のモータ振動レベルを、モータ振動検出振動振幅量判定値として設定した場合、モータ移動中にモータ振動音が発生しない場合であっても、モータ振動と誤検出する場合がある。一方、モータ移動中のモータ振動レベルをモータ振動検出振動振幅量判定値として設定した場合には、モータ停止中のモータ振動が大きい場合しかモータ振動を検出できなくなる。このため、モータ振動を判定するモータ振動検出振動振幅量判定値は、モータ移動中とモータ停止中で異なる値を持つ必要がある。
モータ振動検出振動振幅量判定値を、モータ移動中とモータ停止中で異なる値を設定するためには、モータ移動中とモータ停止中を区別する必要となる。本実施形態では、位置指令値をユーザが事前に入力して、モータを駆動させるので、位置指令値θM *の最終的な値が予め分かっている。つまり、入力する位置指令値θM *が、ユーザの設定する位置指令値θref *に一致した時、位置指令値θM *が停止し、モータは移動中→停止動作に移ることがわかる。
すなわち、位置指令値θM *とユーザの設定する位置指令値θref *が異なる場合は、モータ移動中であると判定し、モータ振動検出振動振幅量判定値をモータ移動中に適した値に設定し、位置指令値θM *とユーザの設定する位置指令値θref *が一致した場合は、モータ停止中であると判定し、モータ振動検出振動振幅量判定値をモータ停止中に適した値に設定することで、モータ振動レベルを切替ることが可能となる。
これにより、モータ停止中のモータ振動レベルを、モータ振動検出振動振幅量判定値として設定した場合、モータ移動中にモータ振動音が発生しない場合であっても、モータ振動と誤検出する場合が発生する。一方、モータ移動中のモータ振動レベルをモータ振動検出振動振幅量判定値として設定すると、モータ停止中のモータ振動が大きい場合しか検出できなくなる。といった誤検出を防ぐことが可能となる。
図15はモータ振動が周期的に発生した場合の、モータ振動判定方法を説明し、図16はノイズの影響でモータ振動が非周期的に発生した場合、モータ振動として誤検出されるのを防ぐ方法について説明する。図15において波形370は位置指令波形、波形371はモータ振動発生時の位置偏差波形、波形372はモータ振動発生時の位置偏差微分波形を示す。また、波形373はモータ振動が検出された場合のモータ振動検出回数を示し、波形374はモータ振動検出状態フラグを示す。
また、図16において、波形375では位置指令波形、波形376はノイズの影響を受けた場合の位置偏差波形、波形377はノイズの影響を受けた場合の位置偏差微分波形、波形378はモータ振動が検出された場合のモータ振動検出回数を示し、波形379はモータ振動検出状態フラグである。
モータ振動周波数fvibであるモータ振動が、モータ振動検出判定回数poserr_dif_vib_jdgだけモータ振動検出を繰り返した場合、モータ振動が繰り返し検出された合計時間tvibは(1)式を用いて表すことが出来る。
Figure 2013230061
ここで、モータ振動検出判定回数poserr_dif_vib_jdg を一定値として、モータ振動周波数fvibが大きくなる場合、(1)式から、モータ振動が繰り返し検出された時間tvibは小さくなる。また、モータ振動周波数fvibは速度応答周波数Fsより大きな値となり、本実施例おける速度応答周波数の最小値はFs_minであることから、モータ振動が繰り返し検出された合計時間tvibは(2)を満たすことが分かる。
Figure 2013230061
(2)式より、モータ振動検出判定回数poserr_dif_vib_jdgと、モータ振動が繰り返し検出された時間tvibを、事前に適切に設定すれば、モータ振動検出の誤検出を抑制することが可能である。なお、tvibに関して(2)式が成り立つ条件を満たせば、任意に設定することが出来る。
波形370に示す位置指令値波形を入力し、波形371に示す位置偏差波形のようにモータ振動が発生した場合、波形372のモータ振動振幅量がモータ振動値振動量判定値を越えるモータ振動検出処理が周期的に発生する。モータ振動が検出された場合には、波形373で示すモータ振動検出回数poserr_dif_vib_cntを1加算する。波形373がモータ振動検出時間判定値time_vib_jdg_level内で、モータ振動検出判定回数poserr_dif_vib_cnt_jdgを越えた場合に、モータ振動が繰り返し検出されたと判定し、波形374でモータ振動を繰り返し検出した状態を示すため‘ON’を出力する。
一方、波形375に示す位置指令値波形を入力し、波形376に示すノイズの影響により、モータ振動が発生した場合、波形377では、位置偏差微分波形のモータ振動振幅量がモータ振動値振動量判定値を越えている場合が不定期に発生することを示している。ノイズの影響によりモータ振動を誤検出した場合であっても、波形378で示すモータ振動検出回数poserr_dif_vib_cntを1加算する。モータ振動検出回数poserr_dif_vib_cntがモータ振動検出時間判定値time_vib_jdg_level内で、モータ振動検出判定回数poserr_dif_vib_cnt_jdgを越えた場合に、モータ振動が繰り返し検出されたと判定する。ノイズの影響によりモータ振動を誤検出した場合には、モータ振動検出が不定期となることから、モータ振動検出回数poserr_dif_vib_cntは波形378のようになる。波形378では、モータ振動検出回数poserr_dif_vib_cntがモータ振動検出時間判定値time_vib_jdg_level内で、モータ振動検出判定回数poserr_dif_vib_cnt_jdgを越えていないので、モータ振動繰り返し検出した、と判定しない。
これにより、ある任意の時間、ある任意のモータ振動検出回数を適切に設定すれば、ノイズによる影響から発生したモータ振動検出は、モータ振動が繰り返し発生したと判定されることは無く、波形379でモータ振動を繰り返し検出した状態を示す‘ON’を出力せず、‘OFF’のままである。
図17は、モータ振動検出処理中にモータ振動検出時間time_vib_jdgが、モータ振動検出時間判定値time_vib_jdg_levelを越えた場合の説明波形図である。波形380は、モータ振動時の位置偏差微分波形、波形381は、モータ振動検出判定時のモータ振動振幅レベル、波形382はモータ振動検出回数、波形383はモータ振動検出時間time_vib_jdg、波形384はモータ振動検出時間バッファ値time_buf[vib_cnt]である。
波形380に示すように、位置偏差微分の振動値が大きい状態から、位置偏差微分の振動量が徐々に小さくなっていく場合、波形381がモータ振動検出レベル判定値を越える間、波形382に示すようにモータ振動検出回数が増加していく。同時に、波形383に示すように、モータ振動1周期分のモータ振動検出時間をモータ振動が検出される毎に加算していく。波形383がモータ振動検出時間判定値を越えた場合、モータ振動は、ある任意回数のモータ振動検出回数を、ある任意時間以内に繰り返し検出していないことを示している。
この場合、ある任意の時間、ある任意の検出回数を適切に設定すれば、モータ振動に誤検出があったと判断できる。モータ振動が誤検出されていると判断された場合、モータ振動検出回数を1減算する。波形384では、モータ振動が検出された場合の、モータ振動1周期分の検出時間をバッファとして保持し。モータ振動誤検出があったと判定された場合には、モータ振動検出時間から、モータ振動検出開始1回目のモータ振動検出時間であるモータ振動検出時間バッファ値を減算した値をモータ振動検出時間とする。この処理を繰り返すことにより、モータ振動が周期的に発生するモータ振動検出を検出する。
冒頭に述べたように本実施形態では、フィードフォワード制御パラメータを自動調整する際、位置フィードフォワードゲイン、及び位置フィードフォワード時定数の2つの制御パラメータについて調整を行うが、その調整手順は、どちらを先に調整しても最適な制御パラメータを得ることができる。実施例2では、位置フィードフォワードゲインを調整後、位置フィードフォワード時定数を変更、位置フィードフォワードゲインを再度調整する、という手順を繰り返す調整法の実施例について示す。
前提とするシステムは、図1に示される通りに第1の実施例と同様であるため、詳細な説明は省略する。
第2の実施例では、第1の実施例におけるフィードバック制御パラメータの自動調整に加え、位置フィードフォワード制御パラメータの自動調整をも行う。位置フィードフォワード制御器への入出力関係は、ラプラス演算子をsとするとき、制御器のパラメータであるフィードフォワードゲインKffとフィードフォワード時定数Tffを用いて(3)式で表すことができる。
Figure 2013230061
次に、フィードフォワードゲインKffの自動調整法を具体的に説明するが、まず、その考え方を、図18を用いて説明する。
図18は、第2の実施例におけるフィードフォワードゲインと整定時間・オーバーシュートの関係説明図であり、同図(a)は、フィードフォワードゲインと整定時間の関係、同図(b)は、フィードフォワードゲインとオーバーシュート量の関係を示す。図18(a)では、横軸がフィードフォワードゲインKff、縦軸が整定時間であり、基本的にはフィードフォワードゲインKffが大きい程、整定時間が短くなる傾向を示す。図のように、フィードフォワードゲインKffがある値以上になると、急激に整定時間が長くなることを示している。
一方、図18(b)では、横軸がフィードフォワードゲインKff、縦軸がオーバーシュート量であり、フィードフォワードゲインKffが小さい場合には、オーバーシュートを全く発生しない。しかし、フィードフォワードゲインKffがある値以上になると、オーバーシュートが発生し始め、以後、その発生量はKffに関して単調増加となることを示している。
以上、図18(a)、(b)から、オーバーシュート量がゼロか十分に小さい場合には、整定時間はフィードフォワードゲインKffを大きく設定した方が短くなると言える。また、オーバーシュート量はフィードフォワードゲインKffを大きく設定する程、増大することから、整定時間を最小化するには、フィードフォワードゲインKffをオーバーシュート量が許容値を超えない範囲内で最大化すれば良いことがわかる。
よって、以下に説明する処理フローチャートでは、予め登録した全位置指令パターンに関して、オーバーシュート量が許容値を超えない条件を満たす最大フィードフォワードゲインKffの探索を行う。
図19は、第2の実施例におけるフィードフォワードゲインKffの自動調整法の処理フロー図である。なお、フィードフォワード時定数Tffの自動調整法については、その調整過程において、フィードフォワードゲインKffの自動調整を必要とする為、後述することとする。
図19において、Kff_iniはユーザが設定するフィードフォワードゲイン初期値、Kff_dmaxはユーザが設定するフィードフォワードゲイン探索最大ステップ、Kff_dminはユーザが設定するフィードフォワードゲイン探索最小ステップである。Kffは位置フィードフォワード制御器14に設定されている現在のフィードフォワードゲイン、Kff_divは現在のフィードフォワードゲイン探索ステップ、Kff_bdは最終的に求めたい限界フィードフォワードゲインである。
また、実施例1同様、位置フィードフォワード制御パラメータの自動調整を行う際も、図2に示す「モータ振動検出処理部」にてモータ振動を検出する。
後述する調整時には、Kff=Kff_iniから探索を開始し、Kff=Kff_iniでオーバーシュート量が許容値未満、かつモータ振動を検出しない範囲内であればKffをKff_dmaxで増加する。また、Kff=Kff_iniでオーバーシュート量が許容値以上、またはモータ振動を検出した状態(flgmvib=ON)であれば、KffをKff_dmaxのステップで減少する。更に、Kff_dmaxステップでのKff更新中にオーバーシュート量が許容値未満から許容値以上に変化、あるいはオーバーシュート量が許容値以上から許容値未満に変化、あるいはモータ振動を検出しない状態(flgmvib=OFF)からモータ振動を検出した状態(flgmvib=ON)に変化、あるいはモータ振動を検出した状態(flgmvib=ON)からモータ振動を検出しない状態(flgmvib=OFF)に変化した場合には、次の処理を実施する。
すなわち、前記現在のフィードフォワードゲイン探索ステップKff_divを半減しながらKffを増減探索する処理をKff_divがフィードフォワードゲイン探索最小ステップKff_dminを下回るまで実施することを意味する。
次に、図19のフローチャートを順を追って説明する。図19では、400でフローチャートを開始し、初期化処理401で現在のゲインKffにフィードフォワードゲインKffにフィードフォワードゲイン初期値Kff_iniを設定する。そして、現在のフィードフォワードゲイン探索ステップKff_divにフィードフォワードゲイン探索ステップKff_dmaxを設定し、処理402に移行する。
処理402では、ユーザが予め登録した全ての位置指令パターンでの運転を行い、各運転毎に前述の手段で、整定時間、オーバーシュート量を計測し、判定処理403へ移行する。
判定処理403では、各運転パターン毎のオーバーシュート量の評価を行い、いずれかの運転パターンでのオーバーシュート量が許容値以上となる場合、またはいずれかの運転パターンでモータ振動を検出した場合(flgmvib=ON)には、処理404に移行する。処理404では、現在のフィードフォワードゲインKffを現在のフィードフォワードゲイン探索ステップKff_divだけ減じた後に、処理405に移行する。処理405では、処理402と同様にユーザが予め登録した全ての位置指令パターンでの運転を行い、各運転毎に整定時間、オーバーシュート量を計測し、判定処理406へ移行する。
判定処理406では、各運転パターン毎のオーバーシュート量の評価を行い、全ての運転パターンでのオーバーシュート量が許容値未満で、かつ全ての運転パターンでモータ振動を検出しなかった場合(flgmvib=OFF)には、処理407へ移行する。一方、判定処理406において、いずれかの運転パターンでのオーバーシュート量が許容値以上となる場合、またはいずれかの運転パターンでモータ振動を検出した場合(flgmvib=ON)には、更に現在のフィードフォワードゲインKffを減ずる目的で、処理404に移行する。
処理407では、全ての運転パターンでのオーバーシュート量を許容値未満であり、かつ全ての運転パターンでモータ振動無し(flgmvib=OFF)とする最大Kffの候補の1つとして、現在のフィードフォワードゲインKffで限界フィードフォワードゲインKff_bdを更新し、処理408に移行する。
処理408では、後のフローを考慮して、現在のフィードフォワードゲインKffに現在のゲイン探索ステップKff_divを加算し、いずれかの運転パターンでのオーバーシュート量が許容値以上、またはいずれか運転パターンでモータ振動を検出した(flgmvib=ON)条件を再設定し、処理409へ移行する。判定処理403において、全ての運転パターンでのオーバーシュート量が許容値未満、かつ全ての運転パターンでモータ振動を検出しなかった(flgmvib=OFF)場合には処理410に移行する。
処理410では、全ての運転パターンでのオーバーシュート量を許容値未満、かつモータ振動無し(flgmvib=OFF)とする最大Kffの候補の1つとして、現在のフィードフォワードゲインKffで限界フィードフォワードゲインKff_bdを更新し、処理411に移行する。処理411では、現在のフィードフォワードゲインKffに現在のフィードフォワードゲイン探索ステップKff_divを加算した後に、処理412に移行する。
処理412では、処理405と同様にユーザが予め登録した全ての位置指令パターンでの運転を行い、各運転毎に整定時間、オーバーシュート量を計測し、判定処理413に移行する。判定処理413では、各運転毎のオーバーシュート量の評価を行い、いずれかの運転パターンでのオーバーシュート量が許容値以上となる場合、またはいずれかの運転パターンでモータ振動を検出した場合(flgmvib=ON)には、処理409に移行する。
一方、判定処理413において、全ての運転パターンでのオーバーシュート量が許容値未満、かつ全ての運転パターンでモータ振動を検出しなかった(flgmvib=OFF)場合には、更に現在のフィードフォワードゲインKffを増加する目的で、処理410に移行する。処理409に続くフローでは、現在のフィードフォワードゲイン探索ステップKff_divを半減しながらKffを増減探索する処理であり、処理409では、現在のフィードフォワードゲイン探索ステップKff_divを半減し、判定処理414に移行する。
判定処理414では、現在のフィードフォワードゲインKff_divの大きさがフィードフォワードゲイン探索最小ステップKff_dmin以上か否かを判定する。そして、それ以上であれば処理415に移行し、未満であれば、425に移行し、処理を終了する。処理415では、現在のフィードフォワードゲインKffを現在のフィードフォワードゲイン探索ステップKff_divだけ減じた後に処理416へ移行する。
処理416では、処理412と同様にユーザが予め登録した全ての位置指令パターンでの運転を行い、各運転毎に、整定時間、オーバーシュート量を計測し、判定処理417に移行する。判定処理417では、各運転パターン毎のオーバーシュート量が許容値未満、かつ全ての運転パターンでモータ振動を検出しなかった(flgmvib=OFF)場合には、処理418に移行する。一方、判定処理417において、いずれかの運転パターンでのオーバーシュート量が許容値以上となる場合、またはいずれかの運転パターンでモータ振動を検出した場合(flgmvib=ON)には、更に現在のフィードフォワードゲインKffを減ずる目的で、処理409に移行する。
処理418では、全ての運転パターンでのオーバーシュート量を許容値未満であり、かつ全ての運転パターンでモータ振動無し(flgmvib=OFF)とする最大Kffの候補の1つとして、現在のフィードフォワードゲインKffで限界フィードフォワードゲインKff_bdを更新し、処理419に移行する。処理419では、現在のフィードフォワードゲイン探索ステップKff_divを半減し、判定処理420に移行する。判定処理420では、現在のフィードフォワードゲイン探索ステップKff_divの大きさがフィードフォワードゲイン最小探索ステップKff_dmin以上か否かを判定する。そして、それ以上であれば処理421に移行し、未満であれば425に移行し、フィードフォワードゲインKffの探索を終了する。
処理421では、現在のフィードフォワードゲインKffに現在のフィードフォワードゲイン探索ステップKff_divを加算した後に、処理422に移行する。処理422では、処理416と同様に予めユーザが登録した全ての位置指令パターンでの運転を行い、各運転毎に整定時間、オーバーシュート量を計測し、判定処理423に移行する。
判定処理423では、各運転パターン毎のオーバーシュート量の評価を行い、いずれかの運転パターンでのオーバーシュート量が許容値以上、またはいずれかの運転パターンでモータ振動を検出した(flgmvib=ON)場合には、更に現在のフィードフォワードゲインKffを減ずる目的で、処理409に移行する。
一方、判定処理423において、全ての運転パターンでのオーバーシュート量が許容値未満、かつモータ振動検出無し(flgmvib=OFF)となる場合には、処理424に移行する。処理424では、全ての運転パターンでのオーバーシュート量を許容値未満、かつモータ振動検出無し(flgmvib=OFF)とする最大Kffの候補の1つとして、現在のフィードフォワードゲインKffで限界フィードフォワードKff_bdを更新し、更に現在のフィードフォワードゲインKffを増加する目的で、処理419に移行する。
以上のように、図19のフローチャートを用いれば、予め登録した全位置指令パターンに関して、オーバーシュート量が許容値を超えない、かつモータ振動無し(flgmvib=OFF)の条件を満たす最大フィードフォワードゲインKffが限界フィードフォワードゲインKff_bdとして見出される。また、その時の整定時間は、オーバーシュートの許容値が十分に小さければ、最小となる。
また、前述の図(a)、(b)は、図19のフローチャートによる調整改定を具体的に示している。このときの各調整パラメータは、Kff_ini=0.10、Kff_dmin=0.005、Kff_dmax=0.10、オーバーシュート許容値=2[pulse]である。図18中の(1)から(6)の順に探索が行われ、最終的に処理420において、Kff_div=0.003125がセットされる。このため、次の判定処理でNoとなり、endに移行するものである。
図19は、第2の実施例における、フィードフォワード時定数と限界フィードフォワードゲインKff_bdと整定時間の関係説明図である。同図(a)に示すフィードフォワード時定数と限界フィードフォワードゲイン(最大値)における整定時間の関係および、同図(b)に示すフィードフォワード時定数と整定時間の関係を説明する。
図20(a)は横軸がフィードフォワード時定数Tff、縦軸が限界フィードフォワードゲインにおける整定時間であり、図20(b)は横軸がフィードフォワード時定数Tff、縦軸がフィードフォワードゲインである。また、各グラフのパラメータとして、異なる位置指令パターンを3種類選んでいる。ここで、限界フィードフォワードゲインKff_bdとは、各位置指令パターン関して、オーバーシュート量が許容値を超えない、かつモータ振動を検出しない(flgmvib=OFF)条件を満たす最大フィードフォワードゲインKffのことである。
具体的には、図20(b)の各波形上の数値は、フィードフォワード時定数Tffを固定した条件で、前述図19のフローチャートを各単独の位置指令パターンに関して実行し、求めたものである。図20(a)の各波形上の数値は、こうして求めた限界フィードフォワードゲインKff_bdでの整定時間St_bdを記録したものである。ここで、図20(a)、(b)から明らかなことは、最小の整定時間を与える最適フィードフォワード時定数は位置指令パターンによって、異なることである。例えば、図20(a)から、位置指令パターン1の最適フィードフォワード時定数は約5[ms]であるが、位置指令パターン2および位置指令パターン3の最適フィードフォワード時定数はそれぞれ約9[ms]、10[ms]である。また、限界フィードフォワードゲインKff_bdも位置指令パターンによって異なることが、図20(b)に示されている。
以上の具体例で示したように、最適なフィードフォワード時定数および限界フィードフォワードゲインKff_bdは、位置指令パターンによって変化するものである。このため、位置フィードフォワードゲイン制御パラメータの調整に際しては、実際にユーザが使用する位置指令パターンに対し、妥当な位置フィードフォワード制御パラメータを決定する場合には、特に整定時間を最小化したい位置指令パターンをユーザ自身が設定できるようにする。そして、その位置指令パターンでの整定時間の極小化を実現するフィードフォワード時定数を見出すことができる。
図21〜23は、以上に示した考え方に基づく、最適なフィードフォワード時定数、及び限界フィードフォワードゲインKff_bd探索フロー図である。また、本フローチャートでは、最適なフィードフォワード時定数、及び限界フィードフォワードゲインKff_bd時のパラメータ設定値および整定時間測定結果を効率よく保存・評価する為に、図23で示すdata[0]、data[1]、 data[2]の3つの構造体型要素で構成された構造体配列型構造のデータ構造を利用する。
図24では、最適フィードフォワード時定数Tff_opt探索用データ構造説明図であり、data[0]、data[1]、 data[2]の3つの構造体型要素で構成された構造体配列型のデータ構造を利用する。また、構造体のメンバは、次の4つである。まず、フィードフォワード時定数Tffであり、次に、該Tffでの限界フィードフォワードゲインKff_bdである。更に、該Tff、Kff_bdでの優先位置指令パターンに対する整定時間St_bdであり、最後に、該Tffの次に小さいTffに関するデータを保存する配列番号を指示する次データ指示インデックスnextである。Sm_indexは、前記構造体配列data[0]、data[1]、 data[2]の内、どの番号の配列に、現在最小のTffに関するデータが保存されているかを示す最小Tffデータ指示インデックスである。また、以下では、各構造体メンバへの参照手段は、C言語の記述と同様として説明する。例えば、構造体配列data[1]のメンバSt_bdを参照する場合には、data[1].St_bdと記述する。また、図24で示したように、data[0].next=1の場合には、data[data[0].next].St_bdとしても data[1]のメンバSt_bdを参照可能である。
図21〜23のフローチャートにおいて、Tff_iniがユーザが設定するフィードフォワード時定数初期値、Tff_dminはユーザが設定するフィードフォワード時定数探索最小ステップである。また、Tff_dmaxはユーザが設定するフィードフォワード時定数探索最大ステップ、Tffは位置フィードフォワード制御14に設定されている現在のフィードフォワード時定数、Tff_divは現在のフィードフォワード時定数探索ステップである。更に、Tff_optは最終的に求めたい最適フィードフォワード時定数であり、Kff_optは最適フィードフォワードゲインであり、最適フィードフォワード時定数Tff_optにおける限界フィードフォワードゲインKff_bdに等しい。また、dat_countは初期取得データ数カウンタであり、Tffに関する取得データ数が3点ほどあることを確認する為のカウンタ、data[]およびsm_indexは前述したとおりである。
次に、本フローチャートによる最適フィードフォワード時定数Tff_optの探索概要を、図25を参照しながら説明する。
図25では、最適フィードフォワード時定数Tff_opt探索過程説明図である。図において、横軸がフィードフォワード時定数Tff、縦軸が該フィードフォワード時定数Tffでの限界フィードフォワードゲインKff_bdにおける優先位置指令パターンに対する整定時間St_bdである。また、図25に示す例では、Tff_ini=Tff_1とした。本フローチャートでは、常にTffに関する3点データを評価しながら、次に探索するべきTffを決定する。このため、まず、Tff=Tff_1のデータ(1)を起点として、Tff_dmax感覚でデータ(2)、データ(3)を取得する。
次に、データ(1)、(2)、(3)を評価し、これらのSt_bdがTffに関して単調減少であることから、更なるSt_bdの減少を期待して、データ(3)の延長上にデータ(4)を取得し、溢れたデータ(1)を破棄する。次に、データ(2)、(3)、(4)を評価し、これらのSt_bdがTffに関して下に凸であることから、最適フィードフォワード時定数Tff_optが「データ(2)とデータ(3)の間」か「データ(3)とデータ(4)の間」の何れかにあると考える。
この時点では、何れの側にTff_optがあると断定できないが、両端のデータ(2)とデータ(4)のSt_bdを比較し、小さい側を探索することにしている。よって、データ(3)とデータ(4)の中間のデータ(5)を取得し、データ(2)を破棄する。次に、データ(3)、(4)、(5)を評価し、これらのSt_bdがTffに関して下に凸であることから、上記同様にデータ(3)とデータ(4)のSt_bdを比較し、小さい側のデータ(6)を取得し、データ(4)を破棄する。
次に、データ(3)、(5)、(6)を評価し、これらのSt_bdがTffに関して単調減少であることから、データ(5)の延長上にデータ(7)を取得し、溢れたデータ(3)を破棄する。ここで、データ(5)、(6)、(7)を評価すると、これらのSt_bdがTffに関して下に凸となる。しかし、更なる探索を行うと、現在のフィードフォワード時定数探索ステップTff_divがユーザが設定するフィードフォワード時定数探索最小ステップTff_dminを下回ることとなる。よって、探索を終了し、この時点の極小点であるデータ(5)のTffを最適フィードフォワード時定数Tff_optとする。以上、図21〜23に示すフローチャートによる探索概要を図25を参照しながら説明した。
次に、図21〜23のフローチャートを順を追って説明する。まず、500でフローチャートを開始する。初期化処理501では、現在のフィードフォワード字絵地数Tffにフィードフォワード時定数初期値Tff_iniを設定し、現在のフィードフォワード時定数探索ステップTff_divにフィードフォワード時定数探索最大ステップTff_dmaxを設定する。
また、構造体配列data[]の並びを、格納するTffが小さい順にdata[0]、data[1]、data[2]と初期化する。この為に、次データ指示インデックスnextをdata[0].next=1、data[1].next=2、data[2].next=0とし、更に、最小Tffデータ指示インデックスsm_indexをsm_index=0とする。また、現在の取得データ数をゼロとする為に初期取得データ数カウンタdat_count=0とし、処理502に移行する。処理502では、前述した図19の限界フィードフォワードゲインKff_bd探索フローチャートを実施し、処理503に移行する。処理503では、現在のフィードフォワード時定数Tffをdata[dat_count].Tffに保存し、現在のTffでの限界フィードフォワードゲインKff_bdをdata[dat_count].Kff_bdに保存する。また、現在のTffおよびKff_bdにおける優先位置指令パターンに対する整定時間St_bdをdata[dat_count].St_bdをに保存し、判定処理504に移行する。判定処理504では、初期取得データ数カウンタdat_countの値を評価し、Tffに関するデータ数が3点あれば判定処理505に移行し、データ数が3点無いならば、処理506に移行する。処理506では、現在のフィードフォワード時定数Tffに現在のフィードフォワード時定数探索ステップTff_divを加算し、処理502に移行する。
判定処理505では、優先位置指令パターンに対する整定時間St_bdがフィードフォワード時定数Tffに関して下に凸か否かを判定する。ここの処理は具体的には、次の通りであれば、下に凸と判断して、処理507に移行する。すなわち、data[sm_index].St_bd>data[data.[sm_index].next].St_bd、且つdata[data[sm_index].next].next].St_bd>data[data[sm_index].next].St_bdである。処理507では、現在のフィードフォワード時定数探索ステップTffを半減し、判定処理508に移行する。判定処理508の大きさがフィードフォワード時定数探索ステップTff_div以上か否かを判定し、以上であれば判定処理509に移行し、未満であれば処理510に移行する。判定処理509では3点データの内、最小Tffでの優先位置指令パターンに対する整定時間St_bdと、最大TffでのSt_bdの大小関係を比較する。
具体的には、data[sm_index].St_bd>data[data[data[sm_index].next].next.St_bdが成立するか否かを判定し、成立する場合には、処理512に移行する。処理512では、新規のデータを2番目に大きいTffと最大Tffの中点に取得する為に、Tffを2番目に大きいTffとTff_divを加算した値とする。具体的には、現在のフィードフォワード時定数Tffをdata[data[sm_index].next].Tff+Tff_divで更新し、処理513に移行する。
処理513では、前述した図19の限界フィードフォワードゲインKff_bd探索フローチャートを実施し、処理514に移行する。処理514では、現在最小のTffに関するデータを保存した配列要素を処理513で取得した新規データで上書き更新する。この為に、現在のフィードフォワード時定数Tffをdata[sm_index].Tffに保存し、現在のTffでの限界フィードフォワードゲインKff_bdをdata[sm_index].Kff_bdに保存する。そして、現在のTff及びKff_bdにおける優先位置指令パターンに対する整定時間St_bdをdata[sm_index].St_bdに保存する。更に、これまで最小のTffに関するデータを保存していた配列要素を、今後2番目に大きいTffに関するデータとなる新規データで上書き更新したことによる次データ指示インデックスnextの乱れを修正する。具体的には、data[sm_index].nextの値を一時変数tmpに退避した上で、data[sm_index].nextをdata[data[sm_index].next].nextで更新する。また、data[data[sm_index].next].nextをsm_indexで更新し、data[data[data[sm_index].next].next].nextを一時変数tmpの値で更新する。最後に、sm_indexを一時変数tmpの値で更新し、判定処理505に移行する。判定処理509において、data[sm_index].St_bd>data[data[data[sm_index].next].next].St_bdが成立しない場合には、処理515に移行する。
処理515では、新規のデータを最小Tffと2番目に大きいTffとの中点に取得する為に、Tffを2番目に大きいTffからTff_divを減算した値とする。具体的には、現在のフィードフォワード時定数Tffをdata[data[sm_index].next].Tff-Tff_divで更新し、処理516に移行する。
処理516では、前述した図19の限界フィードフォワードゲインKff_bd探索フローチャートを実施し、処理517へ移行する。処理517では、現在最大のTffに関するデータを保存した配列要素を処理516で取得した新規データで上書き更新する為、現在のフィードフォワード時定数Tffをdata[data[data[sm_index].netx].next].Kff_bdに保存する。また、現在のTff及びKff_bdにおける優先位置指令パターンに対する整定時間St_bdをdata[data[data[sm_index].next].next.St_bdに保存する。更に、これまで最大のTffに関するデータを保存していた配列要素を、今後2番目に大きいTffに関するデータとなる新規データで上書き更新したことによる次データ指示インデックスnextの乱れを修正する。具体的には、data[sm_index].nextの値を一時変数tmpに退避した上で、data[sm_index].nextをdata[data[sm_index].next].nextで更新する。また、data[data[sm_index].next].nextをdata[data[data[sm_index].next].next].nextで更新する。さらに、data[data[data[sm_index].next].next].nextを一時変数tmpの値で更新し、判定処理505に移行する。判定処理508においてTff_div≧Tff_dminが成立しない場合には、処理510に移行する。処理510では、最適フィードフォワード時定数Tff_optに2番目に大きいTffであるdata[data[sm_index].next].Tffをセットする。そして、最適フィードフォワードゲインKff_optに2番目に大きいTffにおける限界フィードフォワードゲインKff_bdであるdata[data[sm_index].next].Kff_bdをセットし、終了状態511に移行する。一方、判定処理505において、優先位置指令パターンに対する整定時間St_bdがフィードフォワード時定数Tffに関して下に凸でない場合には、判定処理518に移行する。判定処理518では、優先位置指令パターンに対する整定時間St_bdがフィードフォワード時定数Tffに関して下に凸で無い場合には、判定処理518移行する。判定処理518では、優先位置指令パターンに対する整定時間St_bdがフィードフォワード時定数Tffに関して下に単調増加か否かを判定する。
ここでは、data[sm_index].St_bd<data[data[sm_index].next].St_bd< data[data[data[sm_index].next].next].St_bdならば、単調増加であると判断し、処理519に移行する。
処理519では、単調増加であることから、St_bdの減少を期待して、最小Tffデータの延長上に新規データを取得する。具体的には、現在のフィードフォワード時定数Tffをdata[sm_index].Tff-Tff_divで更新し、処理520に移行する。処理520では、前述した図19の限界フィードフォワードゲインKff_bd探索フローチャートを実施し、処理521に移行する。処理521では、現在最大のTffに関するデータを保存した配列要素を処理520で取得した新規データで上書き更新する。この為に、現在のフィードフォワード時定数Tffをdata[data[data[sm_index].next].next].Tffに保存する。そして、現在のTffでの限界フィードフォワードゲインKff_bdをdata[data[data[sm_index].next].next].Kff_bdに保存する。また、現在のTff及びKf_bdにおける優先位置指令パターンに対する整定時間St_bdをdata[data[data[sm_index].next].next].St_bdに保存する。更に、これまで最大のTffに関するデータを保存していた配列要素に、最小のTffに関するデータを上書き更新したことによる最小Tffデータ指示インデックスsm_indexの更新を実施する。すなわち、data[data[sm_index].next].nextの代入を実施し、判定処理505に移行する。判定処理518で単調増加と判定されなかった場合には、単調減少と考えて処理522に移行する。
処理522では、単調減少であることから、St_bdの更なる減少を期待して、最大Tffデータの延長上に新規データを取得する。具体的には、現在のフィードフォワード時定数Tffをdata[sm_index].Tff+3×Tff_divで更新し、処理523に移行する。処理523では、前述した図19の限界フィードフォワードゲインKff_bd探索フローチャートを実施し、処理524に移行する。処理524では、現在最小のTffに関するデータを保存した配列要素を処理523で取得した新規データで上書き更新する。この為に、現在のフィードフォワード時定数Tffをdata[sm_index].Tffに保存し、現在のTffでの限界フィードフォワードゲインKff_bdをdata[sm_index].Kff_bdに保存する。また、現在のTff及びKff_bdにおける優先位置指令パターンに対する整定時間St_bdをdata[sm_index].St_bdに保存する。更に、これまで最小のTffに関するデータを保存していた配列要素に、最大のTffに関するデータを上書き更新したことによる最小Tffデータ指示インデックスsm_indexの更新を実施する。すなわち、data[sm_index].nextの代入で実施し、判定処理505に移行する。
このように、予め登録した全位置指令パターンにつき、オーバーシュート量を規定(許容)値以内に抑えつつ、かつモータ振動無しの状態で(flgmvib=OFF)指定された特定の位置指令パターンでの整定時間を最小化する位置フィードフォワード制御パラメータの自動探索を行うことができる。
なお、処理503、処理514、処理517、処理521、処理524において、data[].St_bdには、優先位置指令パターンに対する整定時間St_bdをセットしたが、評価した全位置指令パターンのうち、最も長かった整定時間をセットしてもよい。
次に、調整パラメータ設定画面の実施例を図26、図27に示す。図26は、本実施例におけるフィードバック制御パラメータの自動調整に際して、ユーザが調整条件を入力するパソコンの画面構成例である。図26における入力項目は、前述の各調整パラメータに対応し、例えば600は最小位置応答周波数Fp_minに、601は最大位置応答周波数Fp_maxに、602は位置応答周波数増分ステップFp_divに対応する。また、603は最小速度応答周波数Fs_minに、604は最大速度応答周波数Fs_maxに、605は速度応答周波数増分ステップFs_divに、606は位置偏差θeの振動振幅許容値θvibに、607は整定監視タイムアウト時間timeoutに対応する。また、ステップ状の位置指令を自動生成するか、手動設定するかをユーザ側で選択可能とする為に、排他的に選択できるチェックボックス608と609を設けた。ここで、608を選択した場合、図2のフローチャートに示した処理が実行され、位置指令パターンが自動生成される。一方、609を選択した場合には、加減速時間610、移動距離611、最大速度612の各項目をユーザ自身が設定し、位置指令パターンを決定する必要がある。
図27は、本実施例における第2の実施例である位置フィードフォワード制御パラメータの自動調整に際して、ユーザ自身が調整条件を入力するパソコン画面構成例である。図27における各入力項目は、前述の各調整パラメータに対応し、例えば、613はフィードフォワードゲイン探索最小ステップKff_dminに、614はフィードフォワードゲイン探索最大ステップKff_dmaxに対応する。また、615はフィードフォワード時定数初期値Tff_iniに、616は同じく時定数探索最小ステップTff_dminに、617は同じく時定数探索最大ステップTff_dmaxに、618は整定監視タイムアウト時間timeoutに対応する。
また、620から624はそれぞれ、位置指令パターン1から位置指令パターン5までの調整条件設定画面であり、620から624の番号で指し示したパターン名の表記部分をマウスでクリックすることにより、該パターンの設定画面を開くことができる。なお、図27では位置指令パターン1の設定画面が開いた上体であるが、他の位置指令パターンの設定画面も同様の構成である。よって、630には、該位置指令パターンでの加減速時間、631には該位置指令パターンでの移動距離、632には該位置指令パターンでの最大速度を設定し、該位置指令パターンを決定する。また、625は該位置指令パターンでのオーバーシュート量の許容値に、626は該位置指令パターンでの整定判定用偏差posin_plsに対応する。チェックボックス627は該位置指令パターンでの調整を行うか否かを設定する為のものである。また、位置フィードフォワード時定数調整の実施有無を設定する為に、選択項目628を設けた。628の選択項目には「調整あり」と「調整なし」があり、「調整なし」を選択すると、図19のフローチャートを実行し、現在の位置フィードフォワード時定数に対して、位置フィードフォワードゲインのみが調整される。一方、「調整あり」を選択した場合には、図20〜22のフローチャートを実行し、位置フィードフォワードゲイン・時定数両方の調整が行われる。また、整定時間を最小化する最優先位置指令パターンを指定する為に、選択項目619を設けた。619の選択項目では、チェックボックス627でチェックを付けた位置指令パターンと「整定時間最大パターン」の中から1つを選択することができる。
図28は、第1の実施例、第2の実施例に共通して本実施形態の電動機制御装置の全体のシステム構成図である。図28において、651はボールネジユニット、652は電動機、653は電動機652の位置検出器、655は負荷654と搭載するスライダー、650はサーボアンプ、656は電動機652の位置検出信号をサーボアンプ650に伝送するケーブルである。また、657は、サーボアンプ649から電動機652にj駆動電力を供給するケーブル、659はサーボアンプに電源を供給するケーブルである。662は、フィードバック制御パラメータ及び位置フィードフォワード制御パラメータの自動調整に際して、ユーザが調整条件を入力するパソコン、663はパソコン662からの調整条件をサーボアンプ650に伝送する為の通信ケーブルである。
なお、図28では、全体のシステム構成図として、電動機制御装置の駆動対象に回転系の電動機を用いた場合を例として、説明を行ったが、この電動機制御装置の全体のシステム構成は、電動機制御装置の駆動対象に、直動系の電動機を用いた場合でも、同様の効果を得ることができる。
最後に、前述の実施例1、実施例2の説明に用いた図1の符号と図28における符号との対応関係を説明する。電動機1は652に、位置検出器5は653に、負荷2は654及び655に、駆動軸3はボールネジユニット651内部のボールネジに対応する。また、次の構成要素はサーボアンプ649に含まれる。すなわち、電力変換器4を筆頭に、減算器6、位置制御器7、速度制御器8、減算器9、速度制御器10、電流検出器11、減算器12、及び電流制御器13等の通常の制御装置である。また、本発明によって付加された位置フィードフォワード制御器14、フィードバック及びフィードフォワード制御パラメータチューニング部15なども、サーボアンプ650に含まれている。
1…電動機、2…駆動対象負荷、3…連結軸、4…電力変換器、5…位置検出器、6…減算器、7…位置制御器、8…速度演算器、9…減算器、10…速度制御器、11…電流検出器、12、減算器、13…電流制御器、14…位置フィードフォワード制御器、θM *…位置指令パターン、15…フィードバック及びフィードフォワード制御パラメータチューニング部、151…位置指令生成部、152…モータ振動判定部、153…フィードバック制御パラメータチューニング部、154…フィードフォワード制御パラメータチューニング部、155…モータ振動検出振動振幅量判定値切替部、θM *…位置指令値、θM…位置検出器、θe…位置偏差、θref *…ユーザが設定する位置指令値、ωM *…速度指令値、ωM…速度検出器、ωe…速度偏差、Iq *…トルク電流指令値、Iq…トルク電流検出値、Ie…電流偏差、ωFB *…位置制御器出力信号、ωFF *…位置フィードフォワード制御器出力信号、poserr_vib_level…モータ振動検出振動振幅量判定値。

Claims (37)

  1. 駆動対象物と結合した電動機を駆動する電力変換器と、位置指令値と前記電動機の位置検出値との偏差に応じて位置制御器出力を出力する位置制御器と、前記位置指令値を入力して位置フィードフォワード信号を出力する位置フィードフォワード制御器と、前記位置制御器出力と前記位置フィードフォワード信号とを加算し速度指令値を出力する加算器と、
    前記速度指令値と前記電動機の速度検出値の偏差に応じてトルク電流指令値を出力する速度制御器と、前記トルク電流指令値と前記電動機に供給されるトルク電流検出値との偏差に応じて前記電力変換器の出力電流を調整する電流制御器と、予め登録された複数の位置指令パターンを前記位置制御器への位置指令として出力するパラメータチューニング部とを備え、
    前記パラメータチューニング部は、
    前記位置指令値と前記位置検出値との偏差の微分が、予め定められた振動条件を満たすか否かを判定し、振動条件を満たす場合、モータ振動有りと判定し、振動条件を満たさない場合、モータ振動無しと判定する判定結果を出力するモータ振動判定部を有し、前記複数の位置指令パターンを前記位置制御器へ出力して前記電動機を駆動させてフィードフォワードゲインを調整する場合に、前記モータ振動判定部の出力が振動条件を満たさず、かつ、オーバーシュート量が規定値以下となる最大のフィードフォワードゲインを、制御パラメータとして設定することを特徴とする電動機制御装置。
  2. 駆動対象物と結合した電動機と、前記電動機を駆動する電力変換器と、位置指令値と前記電動機の位置検出値との偏差に応じて位置制御器出力を出力する位置制御器と、前記位置指令値を入力して位置フィードフォワード信号を出力する位置フィードフォワード制御器と、前記位置指令器出力と前記位置フィードフォワード信号とを加算し速度指令値を出力する加算器と、前記速度指令値と前記電動機の速度検出値の偏差に応じてトルク電流指令値を出力する速度制御器と、前記トルク電流指令値と前記電動機に供給されるトルク電流検出値との偏差に応じて前記電力変換器の出力電流を調整する電流制御器とを備えた電動機制御装置の自動調整法において、
    前記複数の位置指令パターンを前記位置制御器へ出力して前記電動機を駆動させ、
    前記位置指令値と前記位置検出値との偏差の微分が、予め定められた振動条件を満たすか否かを判定し、
    振動条件を満たさず、かつ、オーバーシュート量が規定値以下となる最大のフィードフォワードゲインを限界フィードフォワードゲインとして調整し、
    前記最大のフィードフォワードゲインを制御パラメータとして設定することを特徴とする電動機制御装置の自動調整法。
  3. 請求項2において、前記フィードフォワード時定数を更新しつつ、各フィードフォワード時定数に対して、前記フィードフォワードゲインを前記限界フィードフォワードゲインに調整し、各フィードフォワード時定数に対応するステップと、前記フィードフォワードゲインにおける整定時間を計測するステップと、前記フィードフォワード時定数に対応する前記限界フィードフォワードゲインにおける整定時間を最小とする前記フィードフォワード時定数を極値探索により求めるステップとを備えたことを特徴とする電動機制御装置の自動調整法。
  4. 請求項3において、前記極値探索法は、等間隔に前記フィードフォワード時定数の偏差を与えて取得した3つの前記フィードフォワード時定数に関する前記限界フィードフォワードゲインにおける整定時間を比較することを特徴とする電動機制御装置の自動調整法。
  5. 請求項4において、前記フィードフォワード時定数に関する前記限界フィードフォワードゲインにおける整定時間の3点のデータ比較に際し、横軸を前記フィードフォワード時定数、縦軸を前記限界フィードフォワードゲインにおける整定時間とするグラフを仮定し、グラフが下に凸か、単調増加か、単調減少かを判定するステップと、この判定結果かが下に凸ならば、3点データのうち、中間データと残る両側データのいずれか一方の中点に新規に1データを取得するステップと、前記判定結果が単調増加ならば、データ感覚を変えないで3点データのうち、最小の時定数側に新規に1データを取得するステップと、前記判定結果が単調減少ならば、データ間隔を変えないで3点データのうち、最大の時定数側に新規に1データを取得するステップとを備えたことを特徴とする電動機制御装置の自動調整法。
  6. 請求項3において、整定時間を測定する為の監視時間をユーザの入力に応じて設定し、前記監視時間の起点を、位置偏差がゼロクロスした時点またはその近傍とすることを特徴とする電動機制御装置の自動調整法。
  7. 請求項2において、前記フィードフォワード時定数を固定した条件で、前記フィードフォワード制御器のゲインを更新し、各フィードフォワードゲインに対して、予め登録した複数の位置指令パターンを前記位置制御器の位置指令として複数の運転動作を行うステップと、複数の前記運転動作において、前記振動条件を満たさず、かつ、オーバーシュート量が規定値を超えない、限界フィードフォワードゲインに前記位置フィードフォワード制御器のフィードフォワードゲインを調整するステップを備えた電動機制御装置の自動調整法。
  8. 請求項2において、前記フィードフォワードゲインを固定した条件で、前記フィードフォワード制御器の時定数を更新し、各フィードフォワード時定数に対して、予め登録した複数の位置指令パターンを前記位置制御器の位置指令として複数の運転動作を行うステップと、複数の前記運転動作において、前記振動条件を満たさず、かつ、オーバーシュート量が規定値を超えない、限界フィードフォワードゲインに前記位置フィードフォワード制御器のフィードフォワードゲインを調整するステップを備えた電動機制御装置の自動調整法。
  9. 請求項1において、前記モータ振動判定部にて判定されるモータ振動判定方法は、モータ移動中、モータ停止中の何れの状態においてもモータ振動検出を行うことを特徴とする電動機制御装置の自動調整法。
  10. 請求項9において、前記モータ振動判定方法は、前記位置偏差の微分値である位置偏差微分波形が減少傾向のとき、この波形の低位をホールドし、前記位置偏差微分波形が増加傾向のとき、この波形の高位をホールドし、前記位置偏差微分波形の振動波形1周期分の振動振幅を繰り返し算出することを特徴とする電動機制御装置の自動調整法。
  11. 請求項9において、前記モータ振動判定方法は、モータ振動振幅判定値を判定値とし、前記位置偏差微分の振動波形1周期分の振動振幅が、前記モータ振動振幅判定値を越えた回数をモータ振動検出回数として測定し、前記モータ振動検出回数が、ある任意の回数だけ検出された場合にモータ繰返し振動を発生したとすることを特徴とする電動機制御装置の自動調整法。
  12. 請求項11において、前記モータ振動判定方法は、モータ停止状態とモータ移動状態で、前記モータ振動振幅判定値を切替えることを特徴とした電動機制御装置の自動調整法。
  13. 請求項12において、前記モータ振動判定方法は、モータ停止状態とモータ移動状態を区別するため、予めユーザが設定する位置指令値の最終値と前記位置指令値が不一致の場合、モータ移動状態とし、前記予めユーザが設定する位置指令値の最終値と前記位置指令値が一致した場合、モータ停止状態と判定することを特徴とした電動機制御装置の自動調整法。
  14. 請求項11において、前記モータ振動判定方法は、モータ振動1周期分の振動がモータ振動したと検出する毎に、前記モータ振動検出時間をモータ振動検出総合時間として加算し、前記モータ振動検出総合時間内に、前記モータ振動検出回数がある任意の回数だけ繰り返された場合に、モータ振動繰り返し検出有りと判定することを特徴とする電動機制御装置の自動調整法。
  15. 請求項14において、前記モータ振動判定方法は、前記モータ振動検出回数がある時間内に、ある任意の回数だけモータ振動として検出されなかった場合、モータの振動検出時間の振動1周期分を、モータ振動検出総合時間から減算し、モータ振動検出処理を続けることを特徴とする電動機制御装置の自動調整法。
  16. 駆動対象負荷と結合した電動機と、前記電動機を駆動する電力変換器と、位置指令値と前記電動機の位置検出値との偏差に応じて位置制御器出力を出力する位置制御器と、前記位置指令値を入力として位置フィードフォワード信号を出力する位置フィードフォワード制御器と、前記位置制御器出力と前記位置フィードフォワード信号とを加算し速度指令値を出力する加算器と、前記速度指令値と電動機の速度検出値の偏差に応じてトルク電流指令値を出力する速度制御器と、前記トルク電流指令値と前記電動機に供給されるトルク電流検出値との偏差に応じて前記電力変換器の出力電流を調整する電流制御器を備えた電動機の制御装置において、
    前記位置偏差波形の振動振幅が許容値を超えない範囲、かつ、前記モータ振動判定部の出力が前記振動条件を満たさない状態で最大の位置制御器の応答周波数、及び最大の速度制御器の応答周波数を調整し、前記最大の位置制御器の応答周波数、及び前記最大の速度制御器の応答周波数を制御パラメータとして設定することを特徴とする電動機制御装置の自動調整法。
  17. 請求項16において、前記位置偏差波形の振動振幅が規定値を越えるまで、または、前記振動条件を満たす状態まで、前記位置制御器の応答周波数を規定の増分で増加する第1ステップと、前記位置偏差波形の振動振幅が許容値を超えたとき、または、前記振動条件を満たす状態となったときは前記位置制御器の応答周波数を前記位置偏差波形の振動振幅が許容値を超えない範囲、かつ前記モータ振動判定部の出力が前記振動条件を満たさない状態まで戻した上で、前記速度制御器の応答周波数を規定の増分で増加する第2ステップと、前記第1第2ステップを繰り返し、この繰り返しによって、前記位置制御器の応答周波数を前記位置偏差波形の振動振幅を規定値以下とする条件で増加できないとき、前記速度制御器の応答周波数及び前記位置制御器の応答周波数を前記位置偏差波形の振動振幅が規定値を超えない範囲まで戻す第3ステップと、前記第1第2ステップを繰り返し、この繰り返しによって、前記位置制御器の応答周波数を前記モータ振動判定部の出力が前記振動条件を満たす状態のとき、前記速度制御器の応答周波数及び前記位置制御器の応答周波数が前記振動条件を満たさない状態まで戻す第4ステップとを備え、ゲインチューニングを収束させるまで、自動調整を繰り返すことを特徴とする電動機制御装置の自動調整法。
  18. 請求項16において、前記位置偏差波形の振動振幅が規定値を越えるまで、または、前記振動条件を満たす状態まで、前記速度制御器の応答周波数を規定の増分で増加する第1ステップと、前記位置偏差波形の振動振幅が許容値を超えたとき、または、前記振動条件を満たす状態となったときは前記速度制御器の応答周波数を前記位置偏差波形の振動振幅が許容値を超えない範囲、かつ前記モータ振動判定部の出力が前記振動条件を満たさない状態まで戻した上で、前記位置制御器の応答周波数を規定の増分で増加する第2ステップと、前記第1第2ステップを繰り返し、この繰り返しによって、前記速度制御器の応答周波数を前記位置偏差波形の振動振幅を規定値以下とする条件で増加できないとき、前記位置制御器の応答周波数及び前記速度制御器の応答周波数を前記位置偏差波形の振動振幅が規定値を超えない範囲まで戻す第3ステップと、前記第1第2ステップを繰り返し、この繰り返しによって、前記速度制御器の応答周波数を前記モータ振動判定部の出力が前記振動条件を満たす状態のとき、前記位置制御器の応答周波数及び前記速度制御器の応答周波数が前記振動条件を満たさない状態まで戻す第4ステップとを備え、ゲインチューニングを収束させるまで、自動調整を繰り返すことを特徴とする電動機制御装置の自動調整法
  19. 請求項17において、前記位置指令パターンを自動生成する機能を用いて電動機を動作し、前記位置制御器の応答周波数を前記位置偏差波形の振動振幅が許容値を超えない範囲、且つ前記モータ振動判定部の出力が前記振動条件を満たさない状態となるまで、運転パターンを繰り返すことを特徴とする電動機制御装置の自動調整法。
  20. 駆動対象負荷と結合した電動機と、前記電動機を駆動する電力変換器と、位置指令値と前記電動機の位置検出値との偏差に応じて位置制御器出力を出力する位置制御器と、前記位置指令値を入力として位置フィードフォワード信号を出力する位置フィードフォワード制御器と、前記位置制御器出力と前記位置フィードフォワード信号とを加算し速度指令値を出力する加算器と、前記速度指令値と電動機の速度検出値の偏差に応じてトルク電流指令値を出力する速度制御器と、前記トルク電流指令値と前記電動機に供給されるトルク電流検出値との偏差に応じて前記電力変換器の出力電流を調整する電流制御器を備えた電動機の制御装置において、前記位置制御器の位置指令値として連続的に変化する調整運転用の位置指令パターンを生成するステップと、この位置指令パターンを前記位置制御器の位置指令値として与えた際に、位置偏差波形の振動振幅が規定値を超えない範囲内で、前記位置制御器及び/または前記速度制御器の応答周波数を増加するステップと、前記位置指令値と前記位置検出値との偏差の微分が、予め定められた振動条件を満たすか否かを判定し、判定結果を出力するモータ振動判定部により、モータが振動したか振動条件を判定するステップとを備えたことを特徴とする電動機制御装置の自動調整法。
  21. 駆動対象負荷と結合した電動機と、前記電動機を駆動する電力変換器と、位置指令値と前記電動機の位置検出値との偏差に応じて位置制御器出力を出力する位置制御器と、前記位置指令値を入力として位置フィードフォワード信号を出力する位置フィードフォワード制御器と、前記位置制御器出力と前記位置フィードフォワード信号とを加算し速度指令値を出力する加算器と、前記速度指令値と電動機の速度検出値の偏差に応じてトルク電流指令値を出力する速度制御器と、前記トルク電流指令値と前記電動機に供給されるトルク電流検出値との偏差に応じて前記電力変換器の出力電流を調整する電流制御器を備えた電動機の制御装置において、位置指令パターンを与えた際の位置偏差波形の振動振幅が規定値を超えない、かつ前記モータ振動判定部の出力が振動条件を満たさない状態である範囲内で、前記位置制御器および/または前記速度制御器の応答周波数を増加するステップと、予め登録した複数の前記位置指令パターンを前記位置制御器に対する位置指令値として複数の運転動作を行うステップと、複数の前記運転動作においてオーバーシュート量が規定値を超えないように、前記位置フィードフォワード制御器の制御パラメータを調整するステップとを備えたことを特徴とする電動機制御装置の自動調整法。
  22. 請求項21において、前記オーバーシュート量が規定値を超えない条件、且つ前記モータ振動判定部の出力が振動条件を満たさない状態を満たし、且つ、それぞれの位置指令パターンにおける整定時間が小さくなる前記位置フィードフォワード制御器の制御パラメータを探索するステップを備えたことを特徴とする電動機制御装置の自動調整法。
  23. 請求項21において、ユーザインターフェースから、調整条件の設定入力を受付けるステップと、複数の前記位置指令パターンの1つの選択入力を受付けるステップとを備えたことを特徴とする電動機制御装置の自動調整法。
  24. 駆動対象負荷と結合した電動機と、前記電動機を駆動する電力変換器と、位置指令値と前記電動機の位置検出値との偏差に応じて位置制御器出力を出力する位置制御器と、前記位置指令値を入力として位置フィードフォワード信号を出力する位置フィードフォワード制御器と、前記位置制御器出力と前記位置フィードフォワード信号とを加算し速度指令値を出力する加算器と、前記速度指令値と電動機の速度検出値の偏差に応じてトルク電流指令値を出力する速度制御器と、前記トルク電流指令値と前記電動機に供給されるトルク電流検出値との偏差に応じて前記電力変換器の出力電流を調整する電流制御器を備えた電動機の制御装置において、前記位置制御器の位置指令値として連続的に変化する調整運転用の位置指令パターンを生成する位置指令パターン生成手段と、この位置指令パターンを前記位置制御器の位置指令値として与えて前記電動機の制御装置を運転した際に、位置偏差波形の振動振幅が規定値を超えない、且つ前記モータ振動判定部の出力が振動条件を満たさない状態で、前記位置制御器および/または前記速度制御器の応答周波数を増加させる応答周波数最大手段とを備えたことを特徴とする電動機制御装置の自動調整法。
  25. 駆動対象負荷と結合した電動機と、前記電動機を駆動する電力変換器と、位置指令値と前記電動機の位置検出値との偏差に応じて位置制御器出力を出力する位置制御器と、前記位置指令値を入力として位置フィードフォワード信号を出力する位置フィードフォワード制御器と、前記位置制御器出力と前記位置フィードフォワード信号とを加算し速度指令値を出力する加算器と、前記速度指令値と電動機の速度検出値の偏差に応じてトルク電流指令値を出力する速度制御器と、前記トルク電流指令値と前記電動機に供給されるトルク電流検出値との偏差に応じて前記電力変換器の出力電流を調整する電流制御器を備えた電動機の制御装置において、予め登録した複数の位置指令パターンを前記位置制御器の位置指令として与え、複数の運転動作を行う調整運転手段と、複数の前記運転動作においてオーバーシュート量が規定値を超えない、且つ前記モータ振動判定部の出力が振動条件を満たさない状態とならないように、前記位置フィードフォワード制御器の制御パラメータを調整するパラメータ手段とを備えたことを特徴とする電動機制御装置の自動調整法。
  26. 駆動対象負荷と結合した電動機と、前記電動機を駆動する電力変換器と、位置指令値と前記電動機の位置検出値との偏差に応じて位置制御器出力を出力する位置制御器と、前記位置指令値を入力として位置フィードフォワード信号を出力する位置フィードフォワード制御器と、前記位置制御器出力と前記位置フィードフォワード信号とを加算し速度指令値を出力する加算器と、前記速度指令値と電動機の速度検出値の偏差に応じてトルク電流指令値を出力する速度制御器と、前記トルク電流指令値と前記電動機に供給されるトルク電流検出値との偏差に応じて前記電力変換器の出力電流を調整する電流制御器を備えた電動機の制御装置において、位置指令パターンを与えた際の速度制御器の応答周波数を増加させる応答周波数最大化手段と、予め登録した複数の前記位置指令パターンを前記位置制御器に対する位置指令として与え、複数の運転動作を行う調整運転手段と、複数の前記運転動作においてオーバーシュート量が規定値を超えない、且つ前記モータ振動判定部の出力が振動条件を満たす状態とならないように、前記位置フィードフォワード制御器の制御パラメータを調整するパラメータ調整手段とを備えたことを特徴とする電動機制御装置の自動調整法。
  27. 駆動対象負荷と結合した電動機と、前記電動機を駆動する電力変換器と、位置指令値と前記電動機の位置検出値との偏差に応じて位置制御器出力を出力する位置制御器と、前記位置指令値を入力として位置フィードフォワード信号を出力する位置フィードフォワード制御器と、前記位置制御器出力と前記位置フィードフォワード信号とを加算し速度指令値を出力する加算器と、前記速度指令値と電動機の速度検出値の偏差に応じてトルク電流指令値を出力する速度制御器と、前記トルク電流指令値と前記電動機に供給されるトルク電流検出値との偏差に応じて前記電力変換器の出力電流を調整する電流制御器を備えた電動機の制御装置において、予め登録した複数の前記位置指令パターンを前記位置制御器の位置指令値として複数の運転動作を行うステップと、複数の前記運転動作においてオーバーシュート量が規定値を超えないように、且つ前記モータ振動判定部の出力が振動条件を満たす状態とならない前記位置フィードフォワード制御器の制御パラメータを調整するステップとを備えたことを特徴とする電動機制御装置の自動調整法。
  28. 請求項27において、複数の前記位置指令パターンの内、特定の位置指令パターンにおける整定時間を、前記モータ振動判定部の出力が振動条件を満たす状態とならない範囲内で最小化するように、前記位置フィードフォワード制御の制御パラメータを調整することを特徴とする電動機制御装置の自動調整法。
  29. 請求項28において、前記モータ振動判定部の出力が振動条件を満たす状態とならない範囲内で整定時間を最小化する前記特定の位置指令パターンを、ユーザの特性入力に応じて切替えることを特徴とする電動機制御装置の自動調整法。
  30. 請求項27において、前記モータ振動判定部の出力が振動条件を満たす状態とならない範囲内で整定時間を最小化する前記特定の位置指令パターンとして、予め登録した位置指令パターンの中から、最も整定時間が短くなる位置指令パターンを自動登録することを特徴とする電動機制御装置の自動調整法。
  31. 請求項17において、前記モータ振動判定部にて判定されるモータ振動判定方法は、モータ移動中、モータ停止中の何れの状態においてもモータ振動検出を行うことを特徴とする電動機制御装置の自動調整法。
  32. 請求項31において、前記モータ振動判定方法は、前記位置偏差の微分値である位置偏差微分波形が減少傾向のとき、この波形の低位をホールドし、前記位置偏差微分波形が増加傾向のとき、この波形の高位をホールドし、前記位置偏差微分波形の振動波形1周期分の振動振幅を繰り返し算出することを特徴とする電動機制御装置の自動調整法。
  33. 請求項31において、前記モータ振動判定方法は、モータ振動振幅判定値を判定値とし、前記位置偏差微分の振動波形1周期分の振動振幅が、前記モータ振動振幅判定値を越えた回数をモータ振動検出回数として測定し、前記モータ振動検出回数が、ある任意の回数だけ検出された場合にモータ繰返し振動を発生したとすることを特徴とする電動機制御装置の自動調整法。
  34. 請求項33において、前記モータ振動判定方法は、モータ停止状態とモータ移動状態で、前記モータ振動振幅判定値を切替えることを特徴とした電動機制御装置の自動調整法。
  35. 請求項34において、前記モータ振動判定方法は、モータ停止状態とモータ移動状態を区別するため、予めユーザが設定する位置指令値の最終値と前記位置指令値が不一致の場合、モータ移動状態とし、前記予めユーザが設定する位置指令値の最終値と前記位置指令値が一致した場合、モータ停止状態と判定することを特徴とした電動機制御装置の自動調整法。
  36. 請求項33において、前記モータ振動判定方法は、モータ振動1周期分の振動がモータ振動したと検出する毎に、前記モータ振動検出時間をモータ振動検出総合時間として加算し、前記モータ振動検出総合時間内に、前記モータ振動検出回数がある任意の回数だけ繰り返された場合に、モータ振動繰り返し検出有りと判定することを特徴とする電動機制御装置の自動調整法。
  37. 請求項36において、前記モータ振動判定方法は、前記モータ振動検出回数がある時間内に、ある任意の回数だけモータ振動として検出されなかった場合、モータの振動検出時間の振動1周期分を、モータ振動検出総合時間から減算し、モータ振動検出処理を続けることを特徴とする電動機制御装置の自動調整法。
JP2012102031A 2012-04-27 2012-04-27 電動機制御装置及びその自動調整法 Active JP5860755B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012102031A JP5860755B2 (ja) 2012-04-27 2012-04-27 電動機制御装置及びその自動調整法
CN201380006739.7A CN104221278B (zh) 2012-04-27 2013-02-22 电动机控制装置及其自动调整法
PCT/JP2013/054437 WO2013161367A1 (ja) 2012-04-27 2013-02-22 電動機制御装置及びその自動調整法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012102031A JP5860755B2 (ja) 2012-04-27 2012-04-27 電動機制御装置及びその自動調整法

Publications (2)

Publication Number Publication Date
JP2013230061A true JP2013230061A (ja) 2013-11-07
JP5860755B2 JP5860755B2 (ja) 2016-02-16

Family

ID=49482708

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012102031A Active JP5860755B2 (ja) 2012-04-27 2012-04-27 電動機制御装置及びその自動調整法

Country Status (3)

Country Link
JP (1) JP5860755B2 (ja)
CN (1) CN104221278B (ja)
WO (1) WO2013161367A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112748702A (zh) * 2019-10-30 2021-05-04 兄弟工业株式会社 振动抑制方法和振动抑制装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016170829A1 (ja) * 2015-04-23 2016-10-27 三菱電機株式会社 位置決め制御装置
CN105183003B (zh) * 2015-07-31 2017-10-31 邳州高新区城市矿产研究院有限公司 一种力矩可标定控制装置
CN105353788B (zh) * 2015-12-08 2018-05-08 南京熊猫电子股份有限公司 一种液晶玻璃基板运输减振抑振控制方法
US10401843B2 (en) * 2017-03-16 2019-09-03 Johnson Controls Technology Company Control system with combined extremum-seeking control and feedforward control
JP6888564B2 (ja) * 2018-02-13 2021-06-16 オムロン株式会社 モデル予測制御装置、モデル予測制御装置の制御方法、情報処理プログラム、および記録媒体
CN108193368B (zh) * 2018-03-16 2023-07-28 杭州旭仁纺织机械有限公司 针织机及其控制方法
JP7061548B2 (ja) * 2018-10-04 2022-04-28 株式会社日立産機システム 共振型電源装置
CN110209081B (zh) * 2019-05-28 2022-06-03 深圳市雷赛软件技术有限公司 用于试运行电机的方法及相关装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62187903A (ja) * 1986-02-13 1987-08-17 Sumitomo Metal Ind Ltd オ−トチユ−ニング調節計
JPH02261083A (ja) * 1988-12-23 1990-10-23 Fanuc Ltd サーボ系の発振検出及び速度ループゲイン自動調整方式
JP2003061377A (ja) * 2001-08-17 2003-02-28 Yaskawa Electric Corp オートチューニング機能を備えたモータ制御装置
JP2004248386A (ja) * 2003-02-13 2004-09-02 Yaskawa Electric Corp 振動検出方法
JP2007135344A (ja) * 2005-11-11 2007-05-31 Hitachi Industrial Equipment Systems Co Ltd 電動機制御装置の自動調整法および装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100586003C (zh) * 2008-10-17 2010-01-27 清华大学 一种用于交流异步电机的无速度传感器的矢量控制方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62187903A (ja) * 1986-02-13 1987-08-17 Sumitomo Metal Ind Ltd オ−トチユ−ニング調節計
JPH02261083A (ja) * 1988-12-23 1990-10-23 Fanuc Ltd サーボ系の発振検出及び速度ループゲイン自動調整方式
JP2003061377A (ja) * 2001-08-17 2003-02-28 Yaskawa Electric Corp オートチューニング機能を備えたモータ制御装置
JP2004248386A (ja) * 2003-02-13 2004-09-02 Yaskawa Electric Corp 振動検出方法
JP2007135344A (ja) * 2005-11-11 2007-05-31 Hitachi Industrial Equipment Systems Co Ltd 電動機制御装置の自動調整法および装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112748702A (zh) * 2019-10-30 2021-05-04 兄弟工业株式会社 振动抑制方法和振动抑制装置
CN112748702B (zh) * 2019-10-30 2023-10-27 兄弟工业株式会社 振动抑制方法和振动抑制装置

Also Published As

Publication number Publication date
CN104221278B (zh) 2017-05-03
JP5860755B2 (ja) 2016-02-16
WO2013161367A1 (ja) 2013-10-31
CN104221278A (zh) 2014-12-17

Similar Documents

Publication Publication Date Title
JP5860755B2 (ja) 電動機制御装置及びその自動調整法
JP4745798B2 (ja) 電動機制御装置の自動調整法および装置
US10416618B2 (en) Machine learning apparatus for learning gain optimization, motor control apparatus equipped with machine learning apparatus, and machine learning method
KR101378824B1 (ko) 기계 시스템에서 자동적으로 관성을 추정하기 위한 방법 및 모션 프로파일을 생성하기 위한 방법
US6861814B2 (en) Control parameter automatic adjustment apparatus
KR102183548B1 (ko) 모터 구동 장치
US11029650B2 (en) Machine learning device, control system, and machine learning method
CN111857052A (zh) 机器学习装置、数值控制系统以及机器学习方法
JP6304461B1 (ja) モータ制御装置
CN110881107A (zh) 一种基于神经网络的增稳云台控制方法
US9904261B2 (en) Drive controller, driving system, and drive control method
CN114063568B (zh) 基于三次卷积插值实现数控系统倍率调整控制的方法、装置、处理器及计算机可读存储介质
CN110941242A (zh) 电动机控制装置
KR20210151962A (ko) 모터 제어 장치, 및 그 자동 조정 방법
JP2014204622A (ja) モータ駆動装置
US11958135B2 (en) Machining condition adjustment device and machine learning device
US9599969B2 (en) Position control apparatus
CN109226296B (zh) 一种拉丝机排线控制的方法、装置及存储介质
JP2021043573A (ja) 出力推定方法
EP3076260B1 (en) Device and method for assisting in design improvement work for mechanical device
JP2016019304A (ja) 電動機制御装置及びそれに用いる制御パラメータ自動調整方法
JP7269120B2 (ja) モータ制御装置
WO2024005136A1 (ja) 制御パラメータの生成方法、プログラム、記録媒体、および、制御パラメータの生成装置
CN112540630A (zh) 电机速度信号的处理方法、装置、机器人及存储介质
JP6304947B2 (ja) モータ制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140530

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150901

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151027

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151221

R150 Certificate of patent or registration of utility model

Ref document number: 5860755

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150