JP6175809B2 - モータ制御装置およびモータ制御方法 - Google Patents

モータ制御装置およびモータ制御方法 Download PDF

Info

Publication number
JP6175809B2
JP6175809B2 JP2013043443A JP2013043443A JP6175809B2 JP 6175809 B2 JP6175809 B2 JP 6175809B2 JP 2013043443 A JP2013043443 A JP 2013043443A JP 2013043443 A JP2013043443 A JP 2013043443A JP 6175809 B2 JP6175809 B2 JP 6175809B2
Authority
JP
Japan
Prior art keywords
speed
processing
motor
unit
current position
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.)
Expired - Fee Related
Application number
JP2013043443A
Other languages
English (en)
Other versions
JP2014176101A (ja
Inventor
鈴木 晴之
晴之 鈴木
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.)
Ricoh Co Ltd
Original Assignee
Ricoh 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2013043443A priority Critical patent/JP6175809B2/ja
Priority to US14/193,132 priority patent/US9684616B2/en
Publication of JP2014176101A publication Critical patent/JP2014176101A/ja
Application granted granted Critical
Publication of JP6175809B2 publication Critical patent/JP6175809B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J29/00Details of, or accessories for, typewriters or selective printing mechanisms not otherwise provided for
    • B41J29/38Drives, motors, controls or automatic cut-off devices for the entire printing mechanism
    • 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/0077Characterised by the use of a particular software algorithm

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Control Of Electric Motors In General (AREA)
  • Control Of Position Or Direction (AREA)
  • Control Of Motors That Do Not Use Commutators (AREA)

Description

本発明は、モータを駆動制御するモータ制御装置およびモータ制御方法に関する。
プリンタ装置および印刷機の用紙搬送制御や、ディスク記憶装置のヘッド位置制御などに、モータが広く使われている。これらの装置においては、モータを駆動制御して、モータを所定の速度で駆動したり、対象物を所望の位置に移動して位置決め制御を行う。モータの駆動制御方法として、モータ軸や移動対象に位置センサや速度センサを設け、これらのセンサの出力信号を用いて目標位置や目標速度と比較してモータ駆動量をフィードバック制御する技術が知られている。
このようなモータのフィードバック制御を、デジタル制御により実現する技術が広く用いられる。例えば、CPU(Central Processing Unit)、メモリおよび入出力ポートなどを備えたマイクロコンピュータを用いてセンサ信号を定期的にサンプリングして制御処理演算を行い、モータの駆動量を出力することで、モータを駆動制御する。このモータの駆動制御の処理は、マイクロコンピュータに一般的に備わっている割り込み機構を用い、所定のサンプリング周期でCPUに割り込みを要求し、割り込み処理内で制御処理演算を行なうのが一般的である。
このような割り込み処理によるモータ駆動のデジタル制御に関し、特許文献1には、タイマ割り込みを用いてモータの駆動制御を行う技術が開示されている。すなわち、特許文献1では、モータの駆動処理を所定間隔で発生するタイマ割り込み信号に応じて実行している。そして、他の割り込み信号に対応する処理の実行により遅延が発生した場合に、割り込み信号が発生してから駆動処理が実行されるまでの遅延時間を算出し、補正位置情報を算出して位置情報を更新してフィードバック制御を行なっている。特許文献1によれば、割り込み処理が遅延された場合における制御の精度低下を抑制することができる。
また、特許文献2には、エンコーダから出力される2相のパルス信号をそれぞれ検出して計数処理を行う2相カウンタと、A相パルス信号だけを検出して計数処理を行う1相カウンタとを用いてモータの現在の回転位置を把握するようにした技術が開示されている。すなわち、特許文献2では、目標位置と、2相カウンタおよび1相カウンタによって把握した現在位置との差である位置誤差に応じた目標速度を出力する。それと共に、位置誤差の大きさを判定し、比較的小さい値である場合には2相カウンタによって現在位置を求め、比較的大きい値である場合には1相カウンタによって現在位置を求めている。特許文献2によれば、高性能のカウンタやそれに代わるASIC(Application Specific Integrated Circuit)を用いること無く、モータの回転の現在位置を把握することができる。
デジタル制御においては、他の割り込み処理が優先されると制御演算が遅延してしまい、制御精度が低下してしまうという問題点があった。これに対して、特許文献1では、遅延時間を計測して制御処理を補正することで、他の割り込み処理による制御精度の悪化を抑制している。しかしながら、特許文献1の技術を用いたとしても、他の割り込み処理により何らかの精度低下が生じてしまうおそれがある。
さらに、特許文献1によれば、サンプリングから駆動量出力までの制御演算処理が遅延することにより、制御量の位相遅れが生じることになる。この制御量の位相遅れは、位相余裕を小さくし、その結果、制御の安定性を損なう場合があり、発振など不安定な状態を引き起こしてしまう可能性がある。
一方、特許文献2に開示されるマイクロコンピュータによるモータの回転位置や回転速度のフィードバック制御では、他の割り込み処理を受け付けていないため、それによる制御処理の遅延は発生しない。
しかしながら、この特許文献2においても、割り込み処理内で実行すべき処理が多くなると、割り込み処理の所定の周期内に処理が終了しなくなる可能性がある。割り込み処理の所定周期内に処理が終了しない場合、正常な動作ができずに制御が破綻するおそれがある。この問題は、特許文献1についても同様である。
制御割り込みの周期を短くすることで、制御性能を向上させることができる。また、制御割り込みの周期を短くすることで、カウンタなどの高コストなハードウェアを用いずに、割り込み処理のソフトウェアによりカウント処理を行うことが可能となる。しかしながら、このように割り込み周期を短くすると、割り込み周期内に処理が完了しない可能性がさらに高まってしまう。この問題は、より高速処理が可能なCPUを用いることで解決可能であるが、この場合、CPU本体と、CPUの周辺の構成のためのコストが嵩んでしまうという問題点があった。
本発明は、上記を鑑みてなされたものであって、高コストなハードウェアを用いずに高精度にモータの駆動制御を行うことを目的とする。
上述した課題を解決し、目的を達成するために、第1の発明は、ータの駆動制御を行う制御部を備えるモータ制御装置であって、制御部は、定周で第1処理を実行する第1処理部と、所定周毎に第2処理を実行する第2処理部と含み、第1処理は、モータの現在位置を検出する現在位置検出処理を少なくとも含む複数の処理であり、第2処理は、複数回の所定周期で一巡する複数の異なる処理を含み、複数の異なる処理は、モータの駆動制御を行うための駆動制御信号を出力する速度制御演算処理を含み、第1処理部は、少なくとも現在位置検出処理を第2処理に先立って実行し、第2処理部は、所定周期毎に実行する第2処理のうち、速度制御演算処理以外の処理は、所定周期毎に検出した前記現在位置を用いて実行する処理を含み、速度制御演算処理以外の処理結果を用いて速度制御演算処理を実行することを特徴とする。
また、第2の発明は、所定周期の割込み処理により処理の割り込みが生じるモータ駆動の制御を行う制御部を備えるモータ制御装置であって、制御部は、所定周期毎にモータの現在位置を検出する現在位置検出部と、複数回の所定周期で一巡する、モータの駆動制御信号を生成する駆動制御信号生成処理を含む複数の処理のうち、所定周期毎に1つの処理を実行する処理部と、モータの駆動制御信号を出力する出力部と、を含み、処理部は、複数の処理のうち1つの処理を実行する際に、処理に応じて、処理を実行する所定周期における現在位置検出部の検出結果を使用し、さらに、駆動信号生成処理を実行する際、複数回の所定周期で実行した複数の処理の結果を使用して駆動制御信号を生成することを特徴とする。
本発明によれば、高コストなハードウェアを用いずに高精度にモータの駆動制御を行うことが可能となるという効果を奏する。
図1は、第1の実施形態に係るモータ制御装置の一例の構成を示すブロック図である。 図2は、第1の実施形態によるモータ制御装置の機能を説明するための機能ブロック図である。 図3は、第1の実施形態に係るLPFの一例の構成を示すブロック図である。 図4は、第1の実施形態による割り込み処理の例を示すフローチャートである。 図5は、第2処理を実行した後に、第1処理の全ての処理を実行する場合の例を示す図である。 図6は、第1の実施形態に係る、第1処理のうち少なくとも現在位置の検出処理を、割り込み処理の先頭に実行する場合の例を示す図である。 図7は、第1の実施形態の変形例による割り込み処理の例を示すフローチャートである。 図8は、第2の実施形態によるモータ制御装置の一例の構成を示すブロック図である。 図9は、第2の実施形態によるモータ制御装置の機能を説明するための機能ブロック図である。 図10は、第2の実施形態による割り込み処理の例を示すフローチャートである。 図11は、第3の実施形態によるモータ制御装置の機能を説明するための機能ブロック図である。 図12は、第3の実施形態による割り込み処理の例を示すフローチャートである。 図13は、第3の実施形態における、割り込み処理の実行スケジュールの例を示す図である。 図14は、第4の実施形態によるモータ制御装置の機能を説明するための機能ブロック図である。 図15は、第4の実施形態による割り込み処理の例を示すフローチャートである。 図16は、各実施形態および実施形態の変形例に適用可能な、制御部における割り込み処理を説明するためのフローチャートである。
以下に、添付図面を参照して、モータ制御装置およびモータ制御方法の実施形態を詳細に説明する。
(第1の実施形態)
図1は、第1の実施形態に係るモータ制御装置の一例の構成を示す。図1において、モータ制御装置1は、制御部10と、ドライバ11と、エンコーダ(ENC)13とを有し、制御部10から出力される駆動指令信号drvに従い、ドライバ11が駆動電圧Vmを生成してモータ12を駆動する。エンコーダ13は、モータ12の回転に応じてエンコード信号encpを出力する。制御部10は、このエンコード信号encpに基づき、モータ12の回転位置および回転速度のうち少なくとも一方を制御する駆動指令信号drvを生成する。
駆動指令信号drvは、電圧値により駆動を指令する信号であってもよいし、PWM(Pulse Width Modulation)を用いてパルス幅により駆動を司令する信号であってもよい。同様に、駆動電圧Vmは、電圧出力でもよいし、PWM信号でもよい。
モータ12は、回転軸が回転する回転モータでもよいし、動作部が直線運動を行うリニアモータでもよい。エンコーダ13は、モータ12が回転モータであれば、回転軸の回転角に応じて周期的に変化するエンコード信号encpを出力する。また、エンコーダ13は、モータ12がリニアモータであれば、モータ12の直線運動位置に応じて周期的に変化するエンコード信号encpを出力する。以下では、モータ12が回転モータであって、エンコード信号encpがモータ軸の回転角に応じて周期的に変化する信号であるものとする。
エンコーダ13は、具体的には、例えばモータ12の回転軸に円盤状部材を取り付け、この円盤状部材の円周上に等間隔のスリットを設ける。そして、静止部材側に取り付けた光源からのスリット透過光を光電変換器で検出してエンコード信号encpとする。エンコード信号encpを適切に波形整形することで、モータ12の回転軸が所定角度だけ回転する毎にパルスを発する、周期的なパルス信号が得られる。モータ12がリニアモータの場合、動作部の移動位置に応じて周期的に変化するエンコード信号encpが得られる。
エンコーダ13の設置位置は、モータ回転軸上に限定されない。例えば、モータ12が回転モータである場合、エンコーダ13を、モータ12が駆動する対象物の動作軸上に設置してもよい。モータ12がリニアモータである場合、直線的にスリットが配置されていてもよい。また、エンコーダ13は、スリットと光源とによる光学的手段でなく、磁気やその他の手段によってモータ12の回転や移動を検出してもよい。
モータ制御装置1の構成について、より詳細に説明する。制御部10は、例えばマイクロコンピュータであり、CPU(Central Processing Unit)20と、メモリ21と、割り込み部22と、カウンタ23と、D/A部24とを有し、各部がバス25により互いに通信可能に接続される。メモリ21は、RAM(Random Access Memory)およびROM(Read Only Memory)を含み、ROMには、CPU20が動作するためのプログラムが予め記憶されている。
CPU20は、メモリ21に記憶されるプログラム命令を順次デコードしてデータ移動、演算処理、分岐処理、割り込み処理といった各種処理を実行する。このとき、CPU20は、メモリ21のRAM部分をワークメモリとして用いることができる。割り込み部22は、CPU20に対して、予め定められた周期で定期的に割り込み要求intを発生させる。
カウンタ23は、エンコーダ13から出力されるエンコード信号encpによるパルスをカウントしてカウント値ecntを出力する。D/A部24は、CPU20からデジタル信号として出力された駆動指令信号ctlを、アナログ信号である駆動指令信号drvに変換してドライバ11に対して出力する。駆動指令信号drvは、上述したように、電圧出力でもよいし、PWM信号でもよい。
ドライバ11は、駆動指令信号drvに従いモータ12の駆動制御を行う駆動制御部として機能する。駆動指令信号drvが電圧出力である場合には、ドライバ11は、例えば駆動指令信号drvの電圧値が高いほど高い駆動電圧Vmを出力し、より高速でモータ12を駆動する。一方、駆動指令信号drvがPWM信号である場合には、ドライバ11は、例えばPWMのデューティ比が高いほど高い駆動電圧Vmを出力する。以下では、駆動指令信号drvおよび駆動電圧Vmは、それぞれ電圧値により駆動指令およびモータ駆動を行うものとする。
図2は、第1の実施形態によるモータ制御装置1の機能を説明するための機能ブロック図である。この機能ブロック図における各部は、例えばCPU20上で動作するプログラムにより実現される。モータ制御装置1は、目標位置生成部100と、現在位置検出部101と、位置比較部102と、現在速度検出部103と、速度比較部104と、ローパスフィルタ(LPF)105と、速度制御演算部106とを有する。
図2の各部を構成するためのモータ制御プログラムは、例えばメモリ21に予め記憶される。これに限らず、各実施形態および変形例に係るモータ制御プログラムは、インストール可能な形式または実行可能な形式のファイルでCD(Compact Disk)、フレキシブルディスク(FD)、DVD(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、各実施形態および変形例に係るモータ制御プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、実施形態に係るモータ制御プログラムを、インターネットなどのネットワーク経由で提供または配布するように構成してもよい。
例えば、第1の実施形態に係る制御部10で動作するモータ制御プログラムは、上述した目標位置生成部100と、現在位置検出部101と、位置比較部102と、現在速度検出部103と、速度比較部104と、ローパスフィルタ(LPF)105と、速度制御演算部106とを含むモジュール構成となっている。実際のハードウェアとしては、CPU20がメモリ21から当該モータ制御プログラムを読み出して実行することにより、上述した各部が主記憶装置(メモリ21のRAM部分)上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
図2を用いて、制御部10において実行される処理による信号の流れについて詳細に説明する。図2に示される信号の流れは、割り込み部22が定期的に割り込み要求intを出力することで生起され、実行される。
なお、この例では、エンコード信号encpのサンプリング周波数を周波数fsとした場合、目標位置生成部100、位置比較部102および速度制御演算部106がサンプリング周波数fs/4で動作し、現在速度検出部101、現在速度検出部103、速度比較部104およびLPF105がそれぞれサンプリング周波数fsで動作している。このサンプリング周波数fsは、割り込み部24で生起される基本割り込み周期(=1/fs)の逆数であり、サンプリング周波数fsでは、割り込み毎に処理が実行されることを示す。また、サンプリング周波数fs/4は、4回の割り込み毎に処理が実行されることを示す。
目標位置生成部100は、目標位置xtgtを出力する。目標位置生成部100は、目標位置xtgtの代わりに、目標位置への移動量である目標移動量を出力してもよい。目標位置生成部100は、図示しない上位装置からの指示や、目標位置生成部100内部での算出により、この目標位置xtgtを生成して出力する。目標位置xtgtは、一定量間隔のステップ単位で出力してもよいし、所定の目標速度プロファイルを積分した時間的に変化する量であってもよい。
現在位置検出部101は、エンコード信号encpによるパルスをカウンタ23で計数したカウント値enctに基づき、現在のモータ12の回転角を取得し、回転角に基づき現在位置xdetを出力する。現在位置検出部101は、カウンタ23からカウント値enctを直接的に読み出してもよいし、エンコード信号encpから所定の物理単位に変換するために、カウント値enctに所定の係数を乗じてもよい。この場合、後段の演算で十分な演算語長を確保して演算精度を上げるため、エンコード信号encpのパルス単位に対して大きな係数を乗じておくのが好ましい。
第1の実施形態では、カウント値enctを、ハードウェアで構成されたカウンタ23により計数している。これに限らず、エンコード信号encpのパルス周期よりも十分短い割り込み周期で割り込み処理が実行される場合、現在位置検出部101は、エンコード信号encpのパルスに応じたパルス論理値(0または1)を直接的に読み出してもよい。この場合は、一つ前の割り込み処理で読み出したエンコード信号encpのパルス論理値と、今回のパルス論理値とに変化があったときにパルスエッジが検出されたことになるので、パルス論理値の変化に基づきカウント値ecntを計数すればよい。
位置比較部102は、目標位置生成部100から出力された目標位置xtgtと、現在位置検出部101から出力された現在位置xdetとを比較し、下記の式(1)に従い比較結果に所定の係数Gxを乗じて目標速度vtgt1を出力する。なお、以下において、特に記載の無い限り、各式は、プログラミング言語として一般的に用いられるC言語に準じた記法にて記述している。
vtgt1=(xtgt−xdet)*Gx; …(1)
これにより、目標位置xtgtと現在位置xdetとのずれが大きいほど大きな速度を目標速度vtgt1とし、位置ずれを高速で小さくするように、モータ12が駆動される。位置ずれが小さくなると目標速度vtgt1が減少し、スムースに目標位置xtgtに到達できる。
現在速度検出部103は、所定の周期毎に現在位置xdetの差分を求めて現在速度vdetを算出する。好ましくは、現在速度検出部103は、割り込み周期毎に現在位置xdetと1周期前の現在位置z_xdetとの差分を求め、この差分に対して所定の係数Gvを乗じて現在速度vdetを求める。
例えば、現在速度検出部103は、割り込み周期毎に下記の式(2)の演算を行う。なお、以下の各式において、各行の先頭にコロン「:」で区切られて付される数字は、複数行からなる式の各行を区別するための行番号である。また、行番号が付されている場合、当該複数行が1の式を構成しているものとする。
1: vdet=(xdet0−xdet1)*Gv;
2: z_xdet=xdet; …(2)
なお、上述したように、エンコード信号encpによるパルスをソフトウェアによりカウントする場合には、パルス論理値の変化を検出する。実際には、検出されたパルス論理値の変化を現在速度vdetと見做し、現在速度vdetを積算して現在位置xdetとする方法が容易である。
例えば、現在位置検出部101および現在速度検出部103は、割り込み周期毎にエンコード信号encpのパルスを読み出す場合、現在速度vdetおよび現在位置xdetを下記の式(3)を用いて求める。式(3)において、記号「!=」は、両辺が等しくないことを示す条件演算子である。
1: if (encp != z_encp) {
2: vdet = 1;
3: }
4: else {
5: vdet = 0;
6: }
7: xdet = xdet + vdet;
8: vdet = vdet * Gv;
9: z_encp = encp; …(3)
式(3)において、1行目および2行目は、一つ前のエンコード信号encpに対して変化があった場合に、現在速度vdetとして1を発生させることを示す。4行目および5行目は、エンコード信号encpが変化してない場合に現在速度vdetを0とすることを示す。7行目は、現在速度vdetを積算して現在位置xdetとすることを示す。8行目は、現在速度vdetに所定の係数Gvを乗ずることを示す。また、9行目は、一つ前のエンコード信号encpを更新することを示す。
式(3)は、エンコード信号encpの両エッジ(立ち上がりと立下り両方)をカウントして現在位置xdetとし、現在位置xdetの微分すなわち割り込み周期毎の差分を現在速度vdetとするためのプログラム例を示している。このプログラムに従い処理を行うことで、ハードウエアによるカウンタ23を用いずに現在位置検出部101と現在速度検出部103とを構成できる。この場合、ハードウェアによるカウンタ23を設ける例に比べて、装置を低コスト化することが可能である。
図2の説明に戻り、速度比較部104は、目標速度vtgt1と現在速度vdetとを比較し、比較結果に応じて、下記の式(4)に従い速度誤差verrを出力する。
verr=vtgt1−vdet; …(4)
ローパスフィルタ(LPF)105は、速度誤差verrの低域成分を通過させるフィルタ演算を行う。LPF105は、既知の信号処理理論を用いて設計することができる。
図3は、第1の実施形態に係るLPF105の一例の構成を示す。この例では、LPF105は、係数乗算器200および202と、加算器201と、遅延器203とを有し、1次LPFを構成している。図3に示すLPF105は、入力inとして入力された信号に対してローパスフィルタ処理を施して、出力outとして出力する。第1の実施形態では、速度比較部104から出力される速度誤差verrが入力inとして入力され、速度誤差verrがローパスフィルタ処理された信号ve_lpfが、出力outとして速度演算制御部106に対して出力される。
また、係数乗算器200および202は、それぞれ、入力された信号に対して係数aおよびbを乗ずる。これら係数aおよびbは、LPF105のカットオフ周波数とサンプリング周波数fsとが与えられれば、既知の信号処理理論を用いて容易に求めることができる。加算器201は、係数乗算器200および202の出力を加算し、信号ve_lpfとして出力する。遅延器203は、メモリであり、一つ前の演算(割り込み周期)の際の値を記憶する。
LPF105は、下記の式(5)に従い演算を行って、入力inに入力された信号に対してローパスフィルタ処理を施す。この式(5)による処理は、割り込み周期(=1/fs)毎に実行されることが好ましい。なお、式(5)において、変数z_lpfは、メモリ203に格納される値を示すメモリ変数である。
1: out=in*a+z_lpf*b
2: z_lpf=out …(5)
式(5)において、1行目で入力inから出力outまでを計算している。2行目で、今回の出力outを、次回の計算用に、メモリ変数z_lpfに代入している。
説明は図2に戻り、速度制御演算部106は、速度誤差verrに対して誤差増幅演算処理を施して、モータ12の回転速度を制御するためのモータ駆動指令信号ctlを生成する。速度制御演算部106は、例えばPID(比例、積分、微分)コントローラ手法を用いて誤差増幅演算を行うと好ましい。速度制御演算部106は、所定回数の割り込み処理毎、例えば4回の割り込みに対して1回の周期(サンプリング周波数fs/4)で、下記の式(6)に従いPID演算により誤差増幅演算を行う。なお、式(6)において、値Gp、GiおよびGdは、それぞれ比例ゲイン、積分ゲインおよび微分ゲインである。
1: p=verr*Gp;
2: i=i+verr*Gi;
3: d=(verr− z_verr)*Gd;
4: ctl=p+i+d;
5: z_verr=verr; …(6)
式(6)において、1行目で速度誤差verrに対して比例ゲインGpを乗じている。2行目で、速度誤差verrに対して積分ゲインGiを乗じて積算している。3行目で前回の速度誤差z_verrとの差分に微分ゲインGdを乗じている。4行目では、1行目〜3行目の結果すなわち比例成分、積分成分および微分成分を加算して、制御出力であるモータ駆動指令信号ctlを生成している。さらに、5行目では、次回の3行目の微分演算用の速度誤差z_verrを更新している。
速度演算制御部106は、式(6)のPID演算により、低域では、積分により十分大きな増幅率を確保して速度誤差をゼロにするように制御される。また、高域では、微分によりモータコイルの電流位相遅れなどが補償されて安定化が可能となる。このように、PID演算を用いた速度演算制御部106は、既知の制御理論の知見に基づいた速度制御処理を実行する。
図4は、第1の実施形態による割り込み処理の例を示すフローチャートである。割り込みは、制御部10の割り込み部22により所定の周期で生起され、割り込みエントリに分岐して実行される。
図4において、ステップS100で、制御部10は、現在位置検出部101により現在位置xdetを検出する。次のステップS101で、制御部10は、カウント変数scntの判定を行い、判定結果に応じて処理を分岐させる。この例では、制御部10は、カウント変数scntを4で除した剰余(mod)に従い、それぞれ第2処理であるステップS102A〜102Dの何れかに処理を分岐させる。
制御部10は、剰余が0であると判定した場合、処理をステップS102Aに移行させ、目標位置生成部100により目標位置xtgtを生成する。制御部10は、剰余が1であると判定した場合、処理をステップS102Bに移行させ、位置比較部102により目標位置xtgtと現在位置xdetとを比較し、目標速度vtgt1を出力する。制御部10は、剰余が2であると判定した場合、処理をステップS102Cに移行させ、速度制御演算部106により速度制御演算を行い、モータ駆動指令信号ctlを生成する。また、制御部10は、剰余が3であると判定した場合、処理をステップS102Dに移行させる。第1の実施形態においては、ステップS102Dの処理はリザーブされている。
ステップS101で、カウント変数scntを4で除した剰余に従い、それぞれ第2処理である、ステップS102A〜102Dによる複数の異なる処理を選択している。そのため、第2処理は、この図4のフローチャート全体の4回の実行で一巡することになる。したがって、各第2処理は、割り込み周期1/fsに対して、サンプリング周波数fs/4で実行される処理群である。
ステップS102A〜S102Dのうち剰余の値に応じた処理が終了すると、処理がステップS103に移行される。ステップS103で、制御部10は、現在速度検出部103により現在速度vdetを検出する。次のステップS104で、制御部10は、速度比較部104により目標速度vtgt1と現在速度vdetとを比較し、比較結果として速度誤差verrを出力する。次のステップS105で、制御部10は、LPF105により速度誤差verrに対してローパスフィルタ処理を施す。そして、次のステップS106で、制御部10は、カウント変数scntを1だけインクリメントして、この図4のフローチャートによる処理を抜ける。
上述の第2処理がこのフローチャートの4回の実行で一巡するのに対し、ステップS100、ならびに、ステップS103〜106の処理は、フローチャートの実行毎に実行される。このフローチャートの実行毎に実行されるステップS100、ステップS103〜106の処理を、第1処理と呼ぶ。
ここで、第2処理は、フローチャートの実行毎に異なる処理が実行されるため、フローチャートの実行毎に実行時間が異なることになる。したがって、その後の処理の開始タイミングが毎回異なり、速度検出や位置検出を正確に実行することが困難となる。
そこで、図4のフローチャートにおいては、第1処理のうち、少なくとも現在位置検出部101による現在位置xdetの検出処理を各第2処理に対して先立って実行するようにしている。これにより、現在位置検出部101による処理の割り込み処理開始に対する開始タイミングがフローチャートの実行毎に等しくできる。このため、現在位置xdetを正確に検出することが可能となる。
また、エンコード信号encpの係数をハードウェアによるカウンタ23で行うのではなく、制御部10における割り込みのタイミングで現在位置検出部101がエンコード信号encpの論理値をサンプリングして行う場合も、サンプリング間隔が変動しないので、モータ12のより高速な回転速度まで対応可能である。この場合、ハードウェアを用いた係数ではないので、回路および部品のコストを低く抑えることが可能となる。
図5および図6を用いて、第2処理を第1処理よりも前に実行する場合と、第1処理の少なくとも一部を第2処理の前に実行する場合との違いについて、より具体的に説明する。なお、図5および図6において、上述した図4のフローチャートと対応する処理に同一の符号を付して、詳細な説明を省略する。また、図5および図6において、周期Tsは、割り込み周期を示す。
図5は、第2処理を実行した後に、第1処理の全ての処理を実行する場合の例を示す。図5の例では、周期#0の先頭にて第2処理であるステップS102Aの処理が時間T1をかけて実行され、周期#1の先頭にて第2処理であるステップS102Bの処理が時間T2をかけて実行され、周期#2の先頭にて第2処理であるステップS102Cの処理が時間T3をかけて実行されている。さらに、周期#0〜#2それぞれにおいて、ステップS102A、ステップS102BおよびステップS102Cに続けて第1処理によるステップS100の処理と、ステップS103〜105の処理とが実行される。
第2処理であるステップS102A、ステップS102BおよびステップS102Cは、互いに異なる処理のため、時間T1、T2およびT3も、それぞれ異なる。そのため、各周期#0〜#2において、第2処理の終了タイミングすなわち第1処理の開始タイミングが互いに異なってしまうことになる。このため、第1処理の先頭に実行されるステップS100の、現在位置検出部101による現在位置xdetのサンプリング周期Ts0およびTs1は、割り込み周期Tsと異なってしまう。
図6は、第1の実施形態に係る、第1処理のうち少なくともステップS100の現在位置検出部101による現在位置xdetの検出処理を、割り込み処理の先頭に実行する場合の例である。図6の例では、第2処理は、第1処理に含まれるステップS100の処理よりも後に実行されている。この場合には、割り込み周期毎に同一の処理であるステップS100の処理が先頭に実行されるため、ステップS100による各サンプリング周期Ts0およびTs1は、割り込み周期の毎回で割り込み周期Tsと等しくなる。そのため、現在位置検出部101によるサンプリングを正確に実行することが可能となる。
第1の実施形態では、上述したように、割り込み処理毎に同一の処理を実行する第1処理と、割り込み処理毎に異なる処理に分岐して実行する第2処理とを備えている。そして、第1処理として、下記の4の処理(i)〜(vi)を割り当てている。
(i)現在位置検出部101による現在位置xdetの検出処理。
(ii)現在速度検出部103による現在速度vdetの検出処理。
(iii)速度比較部104による目標速度vtgt1と現在速度vtgtとの比較処理。
(iv)LPFによる速度誤差verrに対する低域通過フィルタ処理。
一般に、現在位置と速度の検出は、速度制御ループ内で高速な処理を要求されるため、割り込み毎に実行することで、高速で精密な制御を可能にしている。
一方、第2処理として、下記の3の処理(v)〜(vii)を割り当てている。
(v)目標位置生成部100による目標位置xtgtの生成処理。
(vi)位置比較部102による目標位置xtgtと現在位置xdetとの比較処理。
(vii)速度演算制御部106による速度制御演算処理。
第2処理として割り当てたこれらの処理は、比較的低速に処理しても制御性能に影響を与えないため、例えば割り込み4回に1回ずつ順次実行することで、制御部10として、処理性能の比較的低いCPUを用いた、低コストのマイクロコンピュータの利用を可能にしている。
すなわち、処理性能の低いCPUを制御に用いた場合、全ての処理を割り込み処理毎に毎回実行すると、割り込み周期内に処理が完了しない可能性があり、制御処理が破綻してしまうおそれがある。第1の実施形態では、制御に係る処理のうち、高速性が要求されない処理を各割り込み周期で分散させることで、全体としての制御が破綻することが防がれると共に、制御性能を低下させないようにできる。
また、速度比較部104から出力された速度誤差verrに対してLPF105によりローパスフィルタ処理を施しているため、現在速度vdetに起因するノイズが抑制され、より高精度な制御が可能となる。また、ステップS105のLPF105によるローパスフィルタ処理を、割り込み処理毎に実行される処理としたため、モータ12を高速回転させる場合であっても、高精度な速度制御を行うことが可能である。
なお、処理(i)〜(vii)の第1処理および第2処理への割り当ては、上述の例に限定されない。例えば、上述で第2処理に割り当てられている処理(v)の目標位置生成部100による目標位置xtgtの生成処理を、第1処理に割り当ててもよい。この場合においても、少なくとも、処理(i)の現在位置検出部101による現在位置xdetの検出処理は、第1処理に割り当てる。また、少なくとも、処理(vii)の速度演算制御部106による速度制御演算処理は、第2処理に割り当てる。
(第1の実施形態の変形例)
次に、第1の実施形態の変形例について説明する。上述の第1の実施形態では、第1処理のうち、現在位置検出部101による現在位置検出処理のみを第2処理の前に実行しているが、これはこの例に限定されない。すなわち、第1処理に含まれる全ての処理(ステップS100、ならびに、ステップS103〜106)を、第2処理の前に実行してもよい。
図7は、第1の実施形態の変形例による割り込み処理の例を示すフローチャートである。なお、図7において、上述の図4のフローチャートにおける処理と共通する処理には同一の符号を付し、詳細な説明を省略する。また、第1の実施形態の変形例では、図1を用いて説明した、第1の実施形態によるモータ制御装置1の構成をそのまま適用可能であると共に、図2を用いて説明した、モータ制御装置1の機能を示す機能ブロック図もそのまま適用できる。
図7に例示されるように、第1の実施形態の変形例では、制御部10は、ステップS100と、ステップS103〜ステップS106とによる第1処理を連続して実行し、その後、ステップS101で第2処理のうち1を選択して実行する。そして、第2処理が終了した後、カウント変数scntを1だけインクリメントしている。
このように、第1処理が全て終了した後に第2処理を実行することで、第1処理における現在速度検出部103による現在速度vdetの検出処理や、速度比較部104による目標速度vtgt1と現在速度vdetとの比較処理の開始タイミングがずれることがない。そのため、制御部10は、モータ12の駆動制御をより正確に実行することが可能となる。
(第2の実施形態)
次に、第2の実施形態について説明する。図8は、第2の実施形態によるモータ制御装置1’の一例の構成を示す。なお、図8において、上述した図1と共通する部分には同一の符号を付して詳細な説明を省略する。
図8に例示するモータ制御装置1’において、上述した図1のモータ制御装置1に対して、外部からの目標パルス信号tgtpをカウントしてカウント値xcntを出力するカウンタ26が追加されている。目標パルス信号tgtpは、例えばモータ制御装置1’の上位装置から供給される。
図9は、第2の実施形態によるモータ制御装置1’の機能を説明するための機能ブロック図である。図9において、目標位置生成部100’は、図2における目標位置生成部100に対応する。目標位置生成部100’は、カウンタ26から出力されるカウント値xcntに従い目標位置xtgtを生成する点が、図2における目標位置生成部100と異なっている。この場合、目標位置生成部100’は、サンプリング周波数fs/4でカウント値xcntをサンプリングする。すなわち、目標位置生成部100’は、割り込み処理4回のうち1回の処理でよい。
第2の実施形態によれば、外部から目標パルス信号tgtpを入力して目標位置xtgtを生成する場合でも、この目標位置xtgtに追従してモータ12の回転位置を制御することが可能となる。
図10は、第2の実施形態による割り込み処理の例を示すフローチャートである。なお、図10において、上述の図4のフローチャートにおける処理と共通する処理には同一の符号を付し、詳細な説明を省略する。
図10に示されるように、第2の実施形態による割り込み処理は、図4で示した第1の実施形態による処理におけるステップS102Aの処理がステップS102A’とされている。ステップS102A’は、目標位置生成部100’による、外部からの目標パルス信号tgtpをカウントしたカウント値xcntに基づき目標位置xtgtを生成する処理である。図10のフローチャートにおけるその他の処理は、図4のフローチャートにおける対応する処理と共通である。
このように、第2の実施形態では、外部から入力された目標パルス信号tgtpに追従してモータ12の回転位置を制御できる。
(第3の実施形態)
次に、第3の実施形態について説明する。図11は、第3の実施形態によるモータ制御装置1’の機能を説明するための機能ブロック図である。なお、第3の実施形態では、図8を用いて説明した、第2の実施形態によるモータ制御装置1’の構成をそのまま適用可能である。また、図11において、上述した図9と共通する部分については同一の符号を付し、詳細な説明を省略する。
図11に例示されるように、第3の実施形態では、上述した第2の実施形態による構成に対し、目標速度生成部107が追加されている。目標速度生成部107は、外部からの目標パルス信号tgtpをカウントしたカウント値xcntに基づき目標位置生成部100’で生成された目標位置xtgtを微分して、目標速度vtgt2を生成する。より具体的には、目標速度生成部107は、今回の割り込み処理における目標位置xtgtと、前回の割り込み処理における目標位置z_xtgtとの差分に応じた目標速度vtgt2を生成する。
目標速度vtgt2の単位は、現在速度検出部103が出力する現在速度vdetと同じ単位とすることが好ましい。また、現在速度検出部103は、現在速度vdetを、割り込み処理毎すなわちサンプリング周波数fsの周期での位置差分から生成する。一方、目標速度生成部107は、割り込み処理4回について1回、すなわちサンプリング周波数fs/4で動作し、目標速度vtgt2を生成する。そのため、目標速度生成部107は、式(3)で示される、現在速度検出部103が現在速度vdetを生成する際に用いる係数Gvを1/4とした係数を用いて目標速度vtgt2を生成すると、容易に単位が一致するので、好ましい。
例えば、目標速度生成部107は、割り込み周期の4回に1回の割合で、下記の式(7)の演算を行う。
1: vtgt2=(xtgt−z_xtgt)*Gv/4;
2: z_xtgt=xtgt …(7)
式(7)において、1行目は、外部からのカウント値xcntに基づき目標位置生成部100’で生成された、前回の目標位置z_xtgtと今回の目標位置xtgtとの差分を求め、求めた差分に係数Gv/4を乗じている。2行目は、前回の目標位置z_xtgtを今回の目標位置xtgtで更新している。
目標速度生成部107は、生成した目標速度vtgt2を、速度比較部104’に対して出力する。速度比較部104’は、下記の式(8)に示されるように、目標速度vtgt2と、位置比較部102からの目標速度vtgt1とを加算して目標速度vtgt12とし、この目標速度vtgt12と現在速度検出部103からの現在速度vdetと比較して、速度誤差verrを求める。
verr=vtgt1+vtgt2−vdet; …(8)
速度比較部104’において、目標速度vtgt1と目標速度vtgt2とを加算することにより、モータ12が一定速度で回転している場合は、目標速度vtgt2と現在速度vdetとがバランス状態を保ち、他に外乱が無ければ、目標速度vtgt1は、ゼロ付近で推移する。したがって、目標速度vtgt1を生成する際の位置ずれ(=xtgt−xdet)もゼロ付近で推移し、目標位置xtgtに高精度で追従した制御が可能になり、精密な位置制御ができる。
図12は、第3の実施形態による割り込み処理の例を示すフローチャートである。なお、図12において、上述の図10のフローチャートにおける処理と共通する処理には同一の符号を付し、詳細な説明を省略する。
図12に示されるように、第3の実施形態による割り込み処理は、ステップS101でカウント変数scntの剰余に従い分岐される処理の一つとして、ステップS102Eの、外部からのxcntに基づく目標速度生成処理が挿入されている。制御部10は、このステップS102Eにおいて、目標速度生成部107による目標速度vtgt2の生成処理を行う。
図12のフローチャートにおいて、ステップS102Eの処理がカウント変数scntの剰余が1の場合の処理として挿入されているため、図10のフローチャートにおいてそれぞれ剰余が1および2の処理であるステップS102BおよびステップS102Cの処理が、剰余2および3の処理に変更されている。また、図12のフローチャートでは、図10で示したステップS102Dの「その他の処理」が削除されている。
なお、図12のフローチャートにおけるステップS104の処理は、速度比較部104’による、目標速度vtgt1およびvtgt2を加算した値と、現在速度vdetとを比較する処理である。
図13は、第3の実施形態における、割り込み処理の実行スケジュールの例を示す。図13において、各行に示される処理は、上から、
(a)ステップS102A’による目標位置xtgtの生成処理、
(b)ステップS102Eによる目標速度vtgt2の生成処理、
(c)ステップS100による現在位置xdetの検出処理、
(d)ステップS103による現在速度vdetの検出処理、
(e)ステップS102Bによる目標位置xtgtと現在位置xdetとの比較処理、
(f)ステップS104による目標速度vtgt1およびvtgt2の加算結果と現在速度vdetとの比較処理、
(g)ステップS105によるローパスフィルタ処理、
(h)ステップS102Cによる演算処理、
となっている。
また、図13において、各列は、カウント変数scntの値を示し、各列の下部に、カウント変数scntの4の剰余が示されている。さらに、図13において、記号「*」は、各カウント変数scntにおいて実行される各行の処理を示している。
図13に示されるように、各処理の処理順序は、図12のフローチャートによる処理が毎回割り込みで実行される場合と同一になることが分かる。図示および詳細な説明は省略するが、これは、他の実施形態および実施形態の変形例でも同様である。
(第4の実施形態)
次に、第4の実施形態について説明する。図14は、第4の実施形態によるモータ制御装置1’の機能を説明するための機能ブロック図である。なお、第4の実施形態では、図8を用いて説明した、第2の実施形態によるモータ制御装置1’の構成をそのまま適用可能である。また、図14において、上述した図11と共通する部分については同一の符号を付し、詳細な説明を省略する。
上述した第3の実施形態では、速度比較部104’の後段にLPF105を配していた。これに対して、第4の実施形態では、速度比較部104”の前段にLPF105を配するようにしている。
より具体的には、第4の実施形態のモータ制御装置1’は、図14に例示されるように、LPF105が現在速度検出部103と速度比較部104”との間に挿入される。速度比較部104”は、現在速度検出部103から出力された現在速度vdetに対してLPF105でローパスフィルタ処理された信号vdet_lpfと、目標速度vtgt1およびvtgt2を加算した目標速度vtgt12とを比較して、信号ve_lpfを出力する。すなわち、速度比較部104”は、下記の式(9)に従い、速度誤差verrがローパスフィルタ処理された信号ve_lpfを求める。
ve_lpf=vtgt1+vtgt2−vdet_lpf; …(9)
図15は、第4の実施形態による割り込み処理の例を示すフローチャートである。なお、図15において、上述の図12のフローチャートにおける処理と共通する処理には同一の符号を付し、詳細な説明を省略する。
図15に例示されるように、第4の実施形態による割り込み処理では、図14の機能ブロック図によるLPF105の配置に対応し、図12のフローチャートに対して、速度比較のステップS104と、ローパスフィルタ処理のステップS105の順番が入れ替えられている。すなわち、図15の例では、ステップS103で現在速度検出部103により現在速度vdetが検出され、この現在速度vdetに対して、次のステップS105でLPF105によりローパスフィルタ処理が施される。そして、次のステップS104で、速度比較部104”により、現在速度vdetに対してローパスフィルタ処理が施された信号vdet_lpfを用いて速度比較処理がなされる。
第4の実施形態によれば、LPF105により、目標速度vtgt1およびvtgt2、ならびに、現在速度vdetのうち、現在速度vdetにだけ速度比較部104”よりも手前でローパスフィルタ処理を施している。これにより、速度比較部104”による速度比較処理前に、平滑された現在速度vdet_lpfを得ることができる。
平滑前の現在速度vdetは、差分演算により係数Gvおよび0の何れの値を取るパルス上にしか得られず、現在速度vdetに応じて例えばゲインなどの制御パラメータを変えるなど、別の用途に利用しにくい面がある。これに対して、第4の実施形態のように、平滑された現在速度vdet_lpfであれば、別の用途に容易に使うことができ、より多様な制御が可能になる。
また、現在速度検出部103から出力された現在速度vdetに対してLPF105によりローパスフィルタ処理を施しているため、現在速度vdetのノイズが抑制され、より高精度な制御が可能となる。また、ステップS105のLPF105によるローパスフィルタ処理を、割り込み処理毎に実行される処理としたため、モータ12を高速回転させる場合であっても、高精度な速度制御を行うことが可能である。
(各実施形態および実施形態の変形例に適用可能な割り込み処理)
次に、上述した各実施形態および実施形態の変形例に適用可能な、制御部10における割り込み処理について説明する。図16は、各実施形態および実施形態の変形例に適用可能な、制御部10における割り込み処理を説明するためのフローチャートである。この図16に例示されるフローチャートは、上述したモータ制御装置1と、モータ制御装置1’との何れにも適用可能なものである。以下では、図16のフローチャートによる各処理がモータ制御装置1において実行されるものとして説明する。
図16に例示されるように、制御部10における処理は、全体的には、ステップS200の、メイン処理を実行するメインループと、ステップS201の、メインループに対して割り込んで処理を実行する割り込み処理とを有する。ステップS201の割り込み処理は、例えば割り込み部22から出力される割り込み入力すなわち割り込み要求intをトリガとして実行される。ステップS200のメイン処理において、制御部10は、ステップS201の割り込み処理が実行されていない場合に、ステップS210〜ステップS213の処理を繰り返し実行する。
ステップS210で、制御部10は、コマンド処理を実行する。制御部10は、ステップS210において、例えば適切な通信インターフェイス(図示しない)により、上位装置から送信された、モータ12のスタート指令および停止指令、ならびに、目標位置指令といった各種指令を受信する。そして、制御部10は、受信した指令に従い、モータ制御装置1の一部または全部を制御して、モータ12を動作または停止させる。
次のステップS211で、制御部10は、モータ12の動作の異常を検出する異常検出処理を実行する。制御部10は、割り込み処理内においてモータ制御処理や演算に応じて更新される各種変数の値を定期的にモニタし、モニタした値が閾値や所定範囲を超えた場合に、異常状態であると判定する。制御部10がモニタする値の例としては、目標速度vtgt1と現在速度vdetとの差である速度誤差verr、目標位置xtgtと現在位置xdetとの差分、制御出力値であるモータ駆動指令信号ctlの値が挙げられる。
制御部10は、現在のモータ12の状態が異常状態であると判定した場合、判定された異常状態に対応する第3処理を実行する。例えば、制御部10は、第3処理として、ドライバ11に対してモータ12の回転をオフにする制御を行う。また例えば、制御部10は、第3処理として、上位装置に対して異常状態を通知する処理を行う。
次のステップS212は、他の処理用にリザーブしており、図16のフローチャートにおいては、何も実行されない。
次のステップS213で、制御部10は、カウント変数scntに基づき割り込み回数の判定処理を行う。制御部10は、ステップS201の割り込み処理の実行毎にインクリメントされるカウント変数scntの値をモニタし、カウント変数scntの値が例えば8だけ増加したか否かを判定する。図16の例では、制御部10は、カウント変数scntの8に対する剰余を求め、剰余が0になった場合に、カウント変数scntの値が8だけ増加したと判定している。制御部10は、カウント変数scntの値が8だけ増加したと判定した場合に、処理をステップS210に戻す。
したがって、制御部10は、割り込み処理の予め定められた生起回数毎に上述した第3処理を実行させるループ処理部として機能する。
一方、ステップS201は、割り込み処理であり、予め定めれられた割り込み周期毎に、ステップS200のメインループの処理に対して優先して実行される。ステップS201の割り込み処理は、具体的には、上述した図4、図7、図10、図12および図15の各フローチャートによる一連の処理に対応する。各フローチャートにおいて、最後の処理であるステップS106において、カウント変数scntが1だけインクリメントされている。
図16において、ステップS213の判定により、ステップS200のメインループは、8回の割り込み処理で一巡するように動作し、メインループ内の各処理がステップS201の割り込み処理の8回に付き1回、実行されることになる。したがって、メイン処理内でも正確な時間管理が可能である。
例えば、ステップS211の異常検出処理は、異常状態が所定時間持続したか否かなど、正確な時間測定を行う必要がある。図16のフローチャートの処理によれば、割り込み周期を基準に時間計測が可能なので、タイマなどのハードウェアを設ける必要が無く、低コストで実現できる。
また、割り込み周期内で確実に終了しなければならない割り込み処理と違い、長い時間を要する処理をメインループで実行させることができるので、多機能な制御を低コストで実現可能である。例えば、ステップS211の異常状態の検出処理に十分な処理時間を与えることができ、確実に異常検出を行なって信頼性の高い制御が可能となる。
上述の各実施形態および実施形態の変形例は、本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々変形実施可能である。
1,1’ モータ制御装置
10 制御部
11 ドライバ
12 モータ
13 エンコーダ
20 CPU
21 メモリ
22 割り込み部
23,26 カウンタ
24 D/A部
100,100’ 目標位置生成部
101 現在位置検出部
102 位置比較部
103 現在速度検出部
104,104’,104” 速度比較部
105 LPF
106 速度制御演算部
107 目標速度生成部
特開2006−338367号公報 特開2011−44006号公報

Claims (8)

  1. ータの駆動制御を行う制御部を備えるモータ制御装置であって、
    前記制御部は、
    定周で第1処理を実行する第1処理部と、
    記所定周毎に第2処理を実行する第2処理部と
    含み、
    前記第1処理は、前記モータの現在位置を検出する現在位置検出処理を少なくとも含む複数の処理であり、
    前記第2処理は、複数回の前記所定周期で一巡する複数の異なる処理を含み、該複数の異なる処理は、前記モータの駆動制御を行うための駆動制御信号を出力する速度制御演算処理を含み、
    前記第1処理部は、少なくとも前記現在位置検出処理を前記第2処理に先立って実行し、
    前記第2処理部は、前記所定周期毎に実行する前記第2処理のうち、前記速度制御演算処理以外の処理は、前記所定周期毎に検出した前記現在位置を用いて実行する処理を含み、前記速度制御演算処理以外の処理結果を用いて前記速度制御演算処理を実行する
    ことを特徴とするモータ制御装置。
  2. 記第1処理部は、さらに、
    前記モータの現在速度を検出する現在速度検出部と、
    前記現在速度と前記モータの目標速度とを比較して速度誤差を出力する速度比較部と、
    を含み、
    前記第2処理部は、さらに、
    前記モータの目標位置を生成する目標位置生成部と、
    前記目標位置と前記モータの現在位置とを比較して前記目標速度を出力する位置比較部と、
    を含む
    ことを特徴とする請求項に記載のモータ制御装置。
  3. 前記第1処理部は、
    前記第1処理が含む全ての処理を、前記第2処理に先立って実行する
    ことを特徴とする請求項1または請求項2に記載のモータ制御装置。
  4. 前記目標位置生成部は、
    外部からの信号に基づき前記目標位置を生成し、
    前記第1処理部は、
    前記複数の処理のうち、前記現在位置検出処理以外の処理を、前記第2処理が実行された後に実行する
    ことを特徴とする請求項に記載のモータ制御装置。
  5. 記第2処理部は、さらに、
    前記目標速度を生成する目標速度生成部を含み
    前記目標速度生成部は、
    外部からの信号に基づき前記目標位置を生成する
    ことを特徴とする請求項4に記載のモータ制御装置。
  6. 前記第1処理部は、さらに、ローパスフィルタ部を含み
    前記速度比較部は、
    前記現在速度に前記ローパスフィルタによるローパスフィルタ処理を実行した出力に基づき前記速度比較処理を実行する
    ことを特徴とする請求項5に記載のモータ制御装置。
  7. 所定周期の割込み処理により処理の割り込みが生じるモータ駆動の制御を行う制御部を備えるモータ制御装置であって、
    前記制御部は、
    前記所定周期毎にモータの現在位置を検出する現在位置検出部と、
    複数回の前記所定周期で一巡する、モータの駆動制御信号を生成する駆動制御信号生成処理を含む複数の処理のうち、前記所定周期毎に1つの処理を実行する処理部と、
    モータの駆動制御信号を出力する出力部と、
    を含み、
    前記処理部は、
    前記複数の処理のうち1つの処理を実行する際に、該処理に応じて、該処理を実行する前記所定周期における前記現在位置検出部の検出結果を使用し、
    さらに、前記駆動信号生成処理を実行する際、複数回の前記所定周期で実行した複数の処理の結果を使用して前記駆動制御信号を生成する
    ことを特徴とするモータ制御装置。
  8. ータの駆動制御を行うためのモータ制御方法であって
    前記モータの現在位置を検出する現在位置検出処理を少なくとも含む第1処理を所定周期で実行する第1処理ステップと、
    複数回の前記所定周期で一巡する複数の異なる処理を含む第2処理を前記所定周期毎に実行し、該複数の異なる処理は、前記モータの駆動制御を行うための駆動制御信号を出力する速度制御演算処理を含む第2処理ステップと、
    有し
    前記第1処理ステップは、少なくとも前記現在位置検出処理を前記第2処理に先立って実行し、
    前記第2処理ステップは、前記所定周期毎に実行する前記第2処理のうち、前記速度制御演算処理以外の処理は、前記所定周期毎に検出した前記現在位置を用いて実行する処理を含み、前記速度制御演算処理以外の処理結果を用いて前記速度制御演算処理を実行する
    ことを特徴とする
    モータ制御方法。
JP2013043443A 2013-03-05 2013-03-05 モータ制御装置およびモータ制御方法 Expired - Fee Related JP6175809B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013043443A JP6175809B2 (ja) 2013-03-05 2013-03-05 モータ制御装置およびモータ制御方法
US14/193,132 US9684616B2 (en) 2013-03-05 2014-02-28 Motor control apparatus and motor control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013043443A JP6175809B2 (ja) 2013-03-05 2013-03-05 モータ制御装置およびモータ制御方法

Publications (2)

Publication Number Publication Date
JP2014176101A JP2014176101A (ja) 2014-09-22
JP6175809B2 true JP6175809B2 (ja) 2017-08-09

Family

ID=51489328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013043443A Expired - Fee Related JP6175809B2 (ja) 2013-03-05 2013-03-05 モータ制御装置およびモータ制御方法

Country Status (2)

Country Link
US (1) US9684616B2 (ja)
JP (1) JP6175809B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2014102895A1 (ja) * 2012-12-25 2017-01-12 三菱電機株式会社 位置決め装置および位置決め方法
JP6641794B2 (ja) 2015-08-28 2020-02-05 株式会社リコー モータ駆動装置、モータ制御装置、搬送装置及びモータ駆動方法
JP6486985B2 (ja) * 2017-04-03 2019-03-20 ミネベアミツミ株式会社 モータ駆動制御装置、モータ駆動制御方法及びチューブポンプ
US10895866B1 (en) * 2018-03-08 2021-01-19 Apple Inc. Position error correction for electric motors

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60216778A (ja) * 1984-04-11 1985-10-30 Mitsubishi Electric Corp 駆動モ−タ制御装置
JPH0786414B2 (ja) * 1986-01-16 1995-09-20 株式会社日立製作所 位置や速度を検出する装置
US4845418A (en) * 1986-08-27 1989-07-04 Allen-Bradley Company, Inc. Flux profile control for startup of an induction motor
US5023778A (en) * 1990-03-23 1991-06-11 General Motors Corporation Interprocessor communication method
JP2668050B2 (ja) * 1990-06-11 1997-10-27 株式会社日立製作所 交流サーボモータの制御装置
JPH04281396A (ja) 1991-03-06 1992-10-06 Ricoh Co Ltd ステッピングモータの制御装置
JPH0965686A (ja) * 1995-08-23 1997-03-07 Aisin Seiki Co Ltd 電気モ−タの通電制御装置
JP2003023785A (ja) * 2001-07-05 2003-01-24 Matsushita Electric Ind Co Ltd サーボモータの制御装置及び制御方法
JP2003033075A (ja) * 2001-07-10 2003-01-31 Hitachi Ltd 同期モータ制御装置および電気自動車
JP2004322909A (ja) 2003-04-25 2004-11-18 Denso Corp 車両用指針計器
JP4678482B2 (ja) * 2005-01-13 2011-04-27 株式会社ジェイテクト 制御装置およびそれを備えた電動パワーステアリング装置
JP2006338367A (ja) 2005-06-02 2006-12-14 Canon Inc 電子機器及びモータの制御方法
JP2011044006A (ja) 2009-08-21 2011-03-03 Ricoh Co Ltd 移動体制御装置、画像形成装置、用紙搬送装置及び画像読取装置
JP5618197B2 (ja) 2010-09-16 2014-11-05 株式会社リコー モータ駆動装置
JP2012253542A (ja) 2011-06-02 2012-12-20 Ricoh Co Ltd モータ速度制御装置、及び画像形成装置
JP6014989B2 (ja) 2011-10-28 2016-10-26 株式会社リコー モータ駆動制御装置及び方法
JP5919730B2 (ja) 2011-10-28 2016-05-18 株式会社リコー モータ駆動制御装置及び方法
JP6064576B2 (ja) 2012-03-12 2017-01-25 株式会社リコー モータ制御装置およびモータ制御方法

Also Published As

Publication number Publication date
JP2014176101A (ja) 2014-09-22
US20140258580A1 (en) 2014-09-11
US9684616B2 (en) 2017-06-20

Similar Documents

Publication Publication Date Title
US9588522B2 (en) Motor controller and motor control method
JP6175809B2 (ja) モータ制御装置およびモータ制御方法
CN106873506B (zh) 校正装置、校正装置的控制方法、信息处理程序及记录介质
US9973133B2 (en) Motor control device and motor control method
JP5127824B2 (ja) 軸の位置制御方法、位置調節器およびデータ媒体
JP6160189B2 (ja) モータ制御装置、画像処理装置、及びモータ制御方法
JP5702126B2 (ja) モータ制御回路
JP6412071B2 (ja) モータ制御装置、モータ制御方法及びモータ制御用プログラム
Merry et al. Optimal higher-order encoder time-stamping
JP2007151356A (ja) モータ制御回路及びモータ制御方法
JP4229823B2 (ja) 歯車破損検出装置および歯車破損検出方法
JP2009095154A (ja) モータ制御装置とその速度検出方法
WO2019123594A1 (ja) モータ制御装置
JP6895531B2 (ja) 速度算出装置および電力変換装置
JP5715808B2 (ja) モータ制御回路
EP3913789A1 (en) Motor control device
WO2014010063A1 (ja) モータ制御装置
JP2007020267A (ja) システム同定装置
JP2017049637A (ja) 制御装置
SU788081A1 (ru) Стабилизатор скорости электродвигател
Dobra et al. Low-cost embedded solution for PID controllers of DC motors
JP2008096128A (ja) モータの速度検出装置
Dobra et al. Low-cost embedded solution for auto-tuning DC motor controllers
JP2011159137A (ja) 位置制御装置
JP2017046378A (ja) モータ制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170120

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: 20170613

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170626

R151 Written notification of patent or utility model registration

Ref document number: 6175809

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees