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

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

Info

Publication number
JP6064576B2
JP6064576B2 JP2012275888A JP2012275888A JP6064576B2 JP 6064576 B2 JP6064576 B2 JP 6064576B2 JP 2012275888 A JP2012275888 A JP 2012275888A JP 2012275888 A JP2012275888 A JP 2012275888A JP 6064576 B2 JP6064576 B2 JP 6064576B2
Authority
JP
Japan
Prior art keywords
motor
speed
processing
processing means
driving
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.)
Active
Application number
JP2012275888A
Other languages
English (en)
Other versions
JP2013220006A5 (ja
JP2013220006A (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 JP2012275888A priority Critical patent/JP6064576B2/ja
Priority to US13/788,289 priority patent/US9018885B2/en
Publication of JP2013220006A publication Critical patent/JP2013220006A/ja
Publication of JP2013220006A5 publication Critical patent/JP2013220006A5/ja
Priority to US14/657,853 priority patent/US9588522B2/en
Application granted granted Critical
Publication of JP6064576B2 publication Critical patent/JP6064576B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D3/00Control of position or direction
    • G05D3/12Control of position or direction using feedback
    • G05D3/20Control of position or direction using feedback using a digital comparing device
    • G05D3/203Control of position or direction using feedback using a digital comparing device using fine or coarse devices
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B21/00Systems involving sampling of the variable controlled
    • G05B21/02Systems involving sampling of the variable controlled electric

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Control Of Electric Motors In General (AREA)

Description

本発明は、モータの速度や位置を制御する技術に関する。
プリンタの用紙搬送制御やディスク記憶装置のヘッド位置制御などに、モータが広く使われている。このようなモータの移動対象を所望の位置に移動して位置決め制御したり、モータを所定の速度で動かしたりするために、モータ軸や移動対象に位置センサや速度センサをつけ、その信号を用いて目標位置や目標速度と比較してモータ駆動量をフィードバック制御する技術が一般的に用いられている。
このようなフィードバック制御を実行するのに、CPU(Central Processing Unit)やメモリや入出力ポート等を備えたマイクロコンピュータで定期的にセンサ信号をサンプリングし、制御処理演算を行って駆動量を出力するデジタル制御が広く用いられる。その実行処理は、マイクロコンピュータに一般的に備わっている割り込み機構を用い、所定のサンプリング周期でCPUに割り込みを要求し、割り込み処理内で制御処理演算を行なうのが普通である。
特許文献1には、タイマ割り込みを用いてモータの駆動を制御する電子機器において、割り込み処理が遅延された場合における制御の精度低下を抑制する技術が開示されている。すなわち、特許文献1では、所定間隔で発生するタイマ割り込み信号に応じて実行されるモータの駆動処理が、他の割り込み信号に対応する処理の実行によって遅延された場合においても、割り込み信号が発生されてから駆動処理が実行されるまでの遅延時間を算出し、補正位置情報を算出して位置情報が更新され、フィードバック制御が行われる。
特許文献2には、高性能のカウント器やそれに代わるASIC(Application Specific Integrated Circuit)を用いることなく、現在位置を把握する技術が開示されている。すなわち、特許文献2では、エンコーダから出力される2相のパルス信号をそれぞれ検出して計数処理を行う2相カウンタと、そのうちのA相パルス信号だけを検出して計数処理を行う1相カウンタとを設け、目標位置と、それらカウンタによって把握した現在位置との位置誤差を算出し、位置誤差に応じた目標速度を増幅手段から出力する一方で、位置誤差について比較的小さい値であるのか比較的大きい値であるのかを誤差判定手段によって判定し、比較的小さい値である場合には、2相カウンタによって現在位置を求める一方で、比較的大きい値である場合には、1相カウンタによって現在位置を求めるようにしている。
上述した特許文献1は、その課題に挙げているように、他の割り込み処理が優先されると制御演算が遅延してしまい、制御精度を悪化させる問題に対処するものである。しかし、特許文献1のように遅延時間を計測して制御処理を補正しても、なにがしかの精度悪化は避けられない。さらに、サンプリングから駆動量出力までの制御演算処理が遅延することにより制御量の位相遅れが生じることになるが、これはフィードバック制御理論によれば位相余裕を小さくし制御の安定性を損なう場合があり、最悪の場合、発振など不安定な状態に陥る問題がある。
また、特許文献2にも、同じように、マイクロコンピュータによる位置や速度のフィードバック制御が開示されている。この場合は他の割り込み処理を受け付けておらず、それによる制御処理の遅延はない。
しかし、どちらの従来技術についても、割り込み処理内で実行すべき処理が多くなると、そもそもの所定の制御割り込み周期内で処理が終わらなくなる可能性がある。こうなると正常な動作ができず、制御は破たんした状態になる。
制御性能を上げるためや、カウンタ等の高コストなハードウェアを用いずに割り込み処理のソフトウェアでカウント処理自体を行なうために、制御割り込み周期を短くしていくと、処理が終わらない可能性はさらに高まってしまい、問題になる。
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、モータの位置や速度を定期的な割り込み処理で制御する装置において、安価なCPUやマイクロコンピュータを用いて多くの処理を実行しなければならない場合でも、処理遅延や処理しきれなくなって破たんすることがなく、高精度な制御を可能とすることにある。
上記の課題を解決するため、本発明にあっては、モータの駆動位置に応じて変化するエンコーダ信号を入力し、当該エンコーダ信号に応じて前記モータの駆動指令を出力し、前記モータの駆動位置と駆動速度の少なくともどちらかを制御するモータ制御装置であって、所定の周期ごとに前記エンコーダ信号の計数値から前記モータの駆動位置を検出する処理を行う高速処理手段と、前記高速処理手段が検出した前記モータの駆動位置に応じて、複数回の前記所定の周期で前記モータの駆動指令を算出する処理を行なう低速処理手段と、前記高速処理手段あるいは前記低速処理手段のいずれかの処理が実行されていないときにメイン処理を実行するメイン処理手段と、複数回の前記所定の周期ごとに、前記メイン処理を一巡させるメインループ処理手段とを備え、前記メイン処理手段は少なくとも、前記モータの駆動指令あるいは前記モータの駆動位置に応じて、異常状態を判定するエラー判定を行なう
本発明にあっては、モータの位置や速度を定期的な割り込み処理で制御する装置において、安価なCPUやマイクロコンピュータを用いて多くの処理を実行しなければならない場合でも、処理遅延や処理しきれなくなって破たんすることがなく、高精度な制御が可能となる。
第1の実施形態におけるモータ制御装置のハードウェア構成例を示す図である。 第1の実施形態におけるマイクロコンピュータが実行するシグナルフローを示す図である。 低域フィルタ処理の一例となる1次ローパスフィルタのシグナルフローを示す図である。 第1の実施形態における割り込み処理実行の例を示すフローチャートである。 第2の実施形態におけるモータ制御装置のハードウェア構成例を示す図である。 第2の実施形態におけるマイクロコンピュータが実行するシグナルフローを示す図である。 第2の実施形態における割り込み処理実行の例を示すフローチャートである。 第3の実施形態におけるマイクロコンピュータが実行するシグナルフローを示す図である。 第3の実施形態における割り込み処理実行の例を示すフローチャートである。 第3の実施形態における割り込み処理の実行スケジュールを示す図である。 第4の実施形態におけるマイクロコンピュータが実行するシグナルフローを示す図である。 第4の実施形態における割り込み処理実行の例を示すフローチャートである。 第5の実施形態におけるマイクロコンピュータが実行するシグナルフローを示す図である。
以下、本発明の好適な実施形態につき説明する。
<第1の実施形態>
図1は第1の実施形態におけるモータ制御装置100のハードウェア構成例を示す図である。
図1において、マイクロコンピュータ(μCOM)101は一般的なマイクロコンピュータであり、内部にCPU、メモリおよび入出力装置を備え、所定の処理を実行できるようになっている。マイクロコンピュータ101からモータ側のモータドライバ(Driver)108へ駆動指令信号drvが出力される。
モータドライバ108は、マイクロコンピュータ101から出力される駆動指令信号drvに応じてモータ(Motor)109の駆動電圧vmを出力する。駆動指令信号drvは電圧で指示してもよいし、電圧に比例したパルス幅変調(PWM:Pulse Width Modulation)されたパルス信号で指示してもよく、設計上の選択的事項である。同様に駆動電圧vmも電圧出力でもよいし、PWMパルスでもよい。
モータ109は、駆動電圧vmに応じて駆動力を発生させ、回転モータであれば回転運動、リニアモータであれば直線運動を行う。
エンコーダ(ENC)110は、モータ109の回転角や直線運動位置に応じて、値が変化するエンコーダ信号encpを出力する。具体的には、例えば、回転モータの回転軸に円盤状部材を取り付け、この円盤状部材の円周上に等間隔のスリットを取り付け、静止部材側に取り付けた光源からのスリット透過光を光電変換器で検出してエンコーダ信号とする。適切に波形整形すると、モータ109が所定角度あるいは所定位置だけ移動するごとにパルス信号が得られる。
エンコーダ110はモータ軸上には限定されず、モータ109が駆動する対象物の動作軸上にあってもよい。直線運動軸であれば直線的にスリットが配置されていてもよい。またスリットと光源による光学的手段でなく、磁気的な手段やその他の手段によってもよい。
以下にマイクロコンピュータ101の内部構成を説明する。
割り込み発生手段(IRQ)102は、CPU103に対して所定の周期で定期的に割り込み要求を発生する。
CPU103は、メモリ(mem)104に格納されたプログラム命令を順次デコードしてデータ移動や演算や分岐あるいは割り込み分岐といった処理を実行する。
メモリ104は、プログラムや各種データを格納する。
計数手段(cnt1)106は、エンコーダ110からのエンコーダ信号encpをカウントしてカウント量ecntを出力する。
デジタル・アナログ変換器(dac)107は、CPU103からの駆動指令信号(デジタル量)ctlを駆動指令信号(アナログ量)drvに変換する。駆動指令信号drvはモータドライバ108の説明で記したように、駆動電圧でもよいし、PWMパルス信号でもよい。
CPU103、メモリ104、計数手段106、デジタル・アナログ変換器107はその入出力データをやりとりするためにデータバスbusで接続されている。割り込み発生手段102、CPU103、メモリ104、計数手段106、デジタル・アナログ変換器107により、ひとつのマイクロコンピュータ101を構成する。
図2は第1の実施形態におけるマイクロコンピュータ101が実行するシグナルフローを示す図である。
このシグナルフローは割り込み発生手段102により定期的に生起され実行される。それぞれの処理名を示す箱の下側に「fs」あるいは「fs/4」と記しているのは、サンプリング周波数である。fsは割り込み発生手段102で生起される基本割り込み周期(1/fs)の逆数であり、割り込みごとに毎回実行されることを示す。fs/4は割り込み4回ごとに1回実行される処理であり、サンプリング周波数は基本割り込み周波数の1/4になる。
目標位置発生処理(generate target position)201は、図示しない上位装置より指示されるか、あるいは自ら算出した目標位置xtgtを出力する。目標位置xtgtは一定量のステップの場合もあるし、所定の目標速度プロファイルを積分した時間的に変化する量の場合もあり、それは設計上の選択事項である。
現在位置検出処理(detect current position)203は、エンコーダ信号encpのカウント量ecntからモータ109あるいは対象物の現在位置xdetを算出する。単純にはカウント量ecntを読み出すだけの場合もあるが、エンコーダパルス単位から所定の物理単位に変換するためカウント量ecntに所定の係数を乗じる場合もある。なお、後段の演算で十分な演算語長を確保して演算精度を上げるため、エンコーダパルス単位に対して大きな係数を乗じておくのが好ましい。
また、この実施形態ではエンコーダパルスカウントはハードウェアである計数手段106で計数している。しかし、ハードウェア的な計数手段106がなくても、エンコーダパルス周期よりも十分短い割り込み周期で割り込み処理が実行される場合は、エンコーダパルス自体の論理値(0か1)を読み出してもよい。この場合は、一つ前の割り込み処理で読み出したエンコーダパルス論理値と今回のエンコーダパルス論理値に変化があったときパルスエッジが検出されたことになるから、これを元にソフトウェア的な処理により計数すればよい。
位置比較処理(compare position)202は、目標位置発生処理201の出力する目標位置xtgtと現在位置検出処理203の出力する現在位置xdetを比較し、比較結果に所定の係数を乗じて目標速度vtgt1を出力する。
具体的には、以下の演算を行う。なお、プログラミング言語はCあるいはC++風表記としている(「//」以降はコメント)。
vtgt1 = (xtgt - xdet) * Gx; //Gxは所定の係数
これにより、目標位置xtgtと現在位置xdetのずれが大きいほど、大きな目標速度vtgt1となり、位置ずれを高速で小さくするようにモータ109を動かすことになる。位置ずれが小さくなると目標速度vtgt1は減少し、スムーズに目標位置xtgtに到達できる。
現在速度検出処理(detect current velocity)204は、現在位置検出処理203の出力する現在位置xdetを所定の周期ごとに差分して現在速度vdetを算出する。好ましくは、割り込み周期ごとに現在位置xdetと一つ前の現在位置z_xdetとの差分をとり、これに所定の係数を乗じて現在速度vdetとする。
すなわち、割り込み周期ごとに以下の演算を行う。
vdet = (xdet - z_xdet) * Gv; // Gvは所定の係数
z_xdet = xdet;
これは現在位置xdetを微分して現在速度vdetを求めているのと等価であるので、vdetは速度の次元になる。
また、現在位置検出処理203の説明にも記したように、エンコーダパルスをハードウェアでなくソフトウェアでカウントする場合は、パルス論理の変化がまず検出される。実用的にはこれを現在速度vdetとし、現在速度vdetを積算して現在位置xdetとするほうが簡単である。
すなわち、割り込み周期ごとにエンコーダ信号encpを読み出すとして、現在速度vdetと現在位置xdetを以下のように求める。プログラム言語はC++風に記している(「!=」は等しくないことを示す条件演算子)。
if (encp != z_encp) { // ひとつ前のencpと変化があったら
vdet = 1; // 速度vdetとして1が発生とする
}
else { // encpが変化していなければ
vdet = 0; // vdetは0とする
}
xdet = xdet + vdet; // vdetを積算して位置xdetとする
vdet = vdet * Gv; // vdetに所定の計数Gvをかける
z_encp = encp; // ひとつ前のencpを更新する
これはエンコーダ信号encpの両エッジ(立ち上がりと立下りの両方)をカウントして現在位置xdetとし、この現在位置xdetの微分(割り込み周期ごとの差分)を現在速度vdetとするプログラムである。ハードウェアの計数手段106が存在しなければこのようにして現在位置検出処理203と現在速度検出処理204を構成することができる。この場合、ハードウェアの計数手段106が不要となるため、より低コストに実現できるメリットがある。
速度比較処理(compare velocity)205は、目標速度vtgt1と現在速度vdetを比較した結果に応じて速度誤差verrを出力する。
すなわち、以下のように演算を行う。
verr = vtgt1 - vdet;
低域フィルタ処理(LPF:Low Pass Filter)206は、速度誤差verrの低域成分を通過させるフィルタ演算を行い、処理後の速度誤差ve_lpfを出力する。LPFは公知の信号処理理論によって設計すればよい。
図3は低域フィルタ処理206の一例となる1次ローパスフィルタのシグナルフローを示す図である。入力inは速度誤差verrとなり、出力outは速度誤差ve_lpfとなる。
入力inは係数乗算401によりa倍されて加算402の一方の入力となる。加算402の出力は出力outとなる。出力outはひとつ前の演算(割り込み)周期の値を記憶するメモリによる遅延403によりz_lpfとなり、係数乗算404によりb倍されて加算402の他方の入力となる。係数a、bは1次ローパスフィルタのカットオフ周波数とサンプリング周波数fsが与えられれば、周知の信号処理論により容易に設計することができる。
図3の1次ローパスフィルタの演算プログラムは次のようになる。これは割り込み周期(1/fs)ごとに実行されるのが好ましい。
out = in * a + z_lpf * b
z_lpf = out
1行目では、入力inから出力outを計算している。
2行目では、今回の出力outを次回の計算用にメモリ変数z_lpfに代入している。
図2に戻り、速度制御演算処理(velocity control)207は、低域フィルタ処理後の速度誤差ve_lpfに適切な誤差増幅演算を行って駆動指令信号ctlを出力する。
誤差増幅演算としては、よく知られたPID(比例・積分・微分)コントローラ手法を用いるのが好ましい。PIDコントローラは、例えば、割り込み4回に1回の周期(サンプリング周波数fs/4)で下式のように実現される。
p = verr * Gp; // 比例ゲインGpを乗じる
i = i + verr * Gi; // 積分ゲインGiを乗じて積算する
d = (verr - z_verr) * Gd; // 前回速度誤差z_verrとの差分に微分ゲインGdを乗じる
ctl = p + i + d; // 比例・積分・微分の成分を加算して制御出力とする
z_verr = verr; // 次回微分のための更新
PID演算により、低域では積分により十分大きな増幅率を確保して速度誤差をゼロにするように制御され、高域では微分によりモータコイルの電流位相遅れ等を補償して安定化が可能、といった公知の制御理論の知見にもとづいた速度制御処理が実行される。
図4は第1の実施形態における割り込み処理実行の例を示すフローチャートである。
割り込みはマイクロコンピュータ101の割り込み発生手段102により所定の周期で生起され、割り込みエントリ(interrupt entry)に分岐して実行される。
図4においては、図2のシグナルフローにおける処理と同じ処理は、同じ処理名をつけている。
処理301では、割り込みカウント変数scntを4で割った剰余(scnt mod 4)の値(0から3)に応じてそれぞれの処理に分岐する。割り込みカウント変数scntは処理310でインクリメントされるので、割り込み処理を1回実行するたびに1増加する変数である。
この分岐機構により、割り込みごとにそれぞれ異なる処理を選択実行し、4回で一巡することになる。この選択実行手段を「低速処理手段」と呼ぶ。
処理302から処理305は、処理301の分岐機構により割り込み4回につき順次1回実行される。したがって、割り込み周期を1/fsとすれば、サンプリング周波数がfs/4で実行される処理群である。
処理302、303、304は図2における同名の処理201、202、207と同じ処理であるので、処理内容の説明は省略する。処理305は他の処理用に空けている。
処理306から処理309は、割り込みごとに毎回実行される。これを「高速処理手段」と呼ぶ。処理内容は図2の同名の処理と同じであるため説明を省略する。対応は以下のようになる。
処理306は処理203と同じ
処理307は処理204と同じ
処理308は処理205と同じ
処理309は処理206と同じ
処理310では割り込みカウント変数scntを1増加させている。
第1の実施形態では、以上のように、割り込みごとに異なる処理に分岐して実行する低速処理手段と、毎回実行する高速処理手段とを備えており、割り当てを以下のようにしている。
高速処理手段は、
現在位置検出
現在速度検出
速度比較
低域フィルタ
に割り当てている。一般に、現在位置と現在速度の検出は速度制御ループ内で高速な処理を要求されるため、割り込みごとに毎回実行することで高速で精密な制御を可能にしている。
低速処理手段は、
目標位置生成
位置比較
速度制御演算
に割り当てている。なお、位置比較は高速処理手段において行ってもよい。
これらは、比較的低速に処理しても制御性能に影響を与えないため、割り込み4回に1回順次実行することで、CPU処理性能の低い、低コストマイクロコンピュータの利用を可能にしている。
CPU処理性能が低い場合、すべての処理を割り込みごとに毎回実行すると、割り込み周期内に処理が終わらない可能性があり、制御処理が破たんしてしまう恐れがある。この場合でも、本実施形態のように低速でもよい処理を分散させることで全体として破たんせず、かつ制御性能を低下させないようにすることができる。
<第2の実施形態>
図5は第2の実施形態におけるモータ制御装置100のハードウェア構成例を示す図である。
図5においては、上位装置からの目標パルス信号tgtpをカウントしてカウント量xcntを出力する計数手段105が新たに加わった点が図1とは異なる。すなわち、外部から目標パルス信号を入力する機構が加わったものである。図1と同一符号の要素は同じ機能を持つので、その説明は省略する。
図6は第2の実施形態におけるマイクロコンピュータ101が実行するシグナルフローを示す図である。
目標位置生成処理(generate target position)208は、外部からの目標パルス信号tgtpをカウントしたカウント量xcntを読み込んで目標位置xtgtを生成する。この処理のサンプリング周波数はfs/4、すなわち割り込み4回につき1回の処理でよい。
他の処理については、図2と同一の要素には同一符号を付けているので、ここでは内容の説明は省略する。すなわち、目標位置発生処理201に代えて目標位置生成処理208が設けられている。
このフローにより、外部から目標パルスを入力して目標位置とする場合でも、その目標位置に追従してモータ位置が制御できるようになる。
図7は第2の実施形態における割り込み処理実行の例を示すフローチャートである。
図7において、処理311は図6の目標位置生成処理208に対応する処理である。その他の処理は図4の同一符号で示した処理と同じである。
<第3の実施形態>
図8は第3の実施形態におけるマイクロコンピュータ101が実行するシグナルフローを示す図である。第3の実施形態におけるハードウェア構成は第2の実施形態について示した図5と同じである。
図8において、目標速度生成処理210(generate target velocity)は、目標位置生成処理208の出力する目標位置xtgtを微分して第2の目標速度vtgt2を出力する。具体的には、今回の割り込み処理における目標位置xtgtと、ひとつ前の割り込み処理における目標位置z_xtgtとの差分に応じた目標速度vtgt2を出力する。
目標速度vtgt2は、現在速度検出処理204が出力する現在速度vdetと同じ単位にするのが好ましい。現在速度vdetは毎回割り込み(サンプリング周波数fs)での位置差分で作られるが、目標速度生成処理210は4回に1回の割り込み(サンプリング周波数fs/4)で動作するので、現在速度vdetにかかる係数Gvを1/4して使うと簡単に単位が一致するので好ましい。
例えば、目標速度生成処理210の処理演算は以下のようになる。
vtgt2 = (xtgt - z_xtgt) * Gv / 4; // 目標位置の差分(の1/4)
z_xtgt = xtgt // 前回の目標位置を更新
速度比較処理(compare velocity)211は、図6の速度比較処理205と違うのは、目標速度生成処理210の出力する第2の目標速度vtgt2も演算に使うところである。
速度比較処理211は、位置比較処理202の出力する第1の目標速度vtgt1と、目標速度生成処理210の出力する第2の目標速度vtgt2とを加算して目標速度とし、これと現在速度vdetを比較して速度誤差verrを出力する。
すなわち、演算は下式のようになる。
verr = vtgt1 + vtgt2 - vdet;
目標位置xtgtから生成した第2の目標速度vtgt2を加算することにより、一定速度で移動中は目標速度vtgt2と現在速度vdetがバランスし、他に外乱がなければ第1の目標速度vtgt1はゼロ付近で推移する。したがって、第1の目標速度vtgt1を生成するときの位置ずれ(xtgt-xdet)もゼロ付近で推移し、目標位置にほぼ完全に追従した制御が可能になり、精密な位置制御ができる。その他の処理は図6の同一符号で示した処理と同じである。
図9は第3の実施形態における割り込み処理実行の例を示すフローチャートである。
処理312は図8の目標速度生成処理210に対応した目標速度生成処理であり、割り込みカウント変数scntの剰余1のところに挿入している。このため、割り込みカウント変数scntの剰余2と3のところに、処理303と処理304が移動し、他の処理への割り当てはない。なお、処理312は、処理303と同様に高速処理手段に含めてもよい。
処理313は図8の速度比較処理211に対応した速度比較処理である。その他の処理は図7の同一符号で示した処理と同じである。
図10は第3の実施形態における割り込み処理の実行スケジュールを示す図である。
横軸は割り込みカウント変数scntが0から11までの各割り込みタイミングを示し、縦軸は各割り込み内で実行される処理を「*」で示している。「*」の処理順序は図9のフローチャートが毎回割り込みで実行されるときと同じであることが理解されよう。同様にして他の実施形態においてもこのようなスケジュール表で示すことができる。
<第4の実施形態>
図11は第4の実施形態におけるマイクロコンピュータ101が実行するシグナルフローを示す図である。第4の実施形態のハードウェア構成は第2実施形態について示した図5と同じである。
図11の各処理は図8の同一符号の処理と同じであるが、低域フィルタ処理206が速度比較処理205の前段に挿入されており、現在速度検出処理204の出力する現在速度vdetの低域成分を抽出してvdet_lpfを速度比較処理205に出力するところが異なっている。
これに伴ない、速度比較処理205の演算式は下式のようにvdetでなくvdet_lpfを用いることになる。
verr = vtgt1 + vtgt2 - vdet_lpf;
図12は第4の実施形態における割り込み処理実行の例を示すフローチャートである。
シグナルフローでの低域フィルタ処理206の移動に伴なって、処理順をそろえるため、フローチャート上も処理309が処理313よりも前に移動している。処理313は図11の速度比較処理205に対応している。その他の処理は図9の同一符号で示した処理と同じである。
LPFの処理309を速度比較の処理313よりも手前で現在速度vdetにだけ作用させることにより、速度比較前に平滑された現在速度vdet_lpfを得ることができる。平滑前の現在速度vdetは、差分演算によりGvか0かのパルス状にしか得られず、これだけでは現在速度に応じて例えばゲインなどの制御パラメータを変えるなど別の用途には利用しにくい面がある。平滑された現在速度vdet_lpfであれば、別の用途に容易に使うことができ、より多様な制御が可能になる。
<第5の実施形態>
図13は第5の実施形態におけるマイクロコンピュータ101が実行するシグナルフローを示す図である。第5の実施形態のハードウェア構成は第2の実施形態について示した図5と同じである。
図13において、メイン処理(main process)600は、割り込み処理が実行されていないときに処理601〜604を順次実行する。
コマンド処理(command process)601は、適切な通信インターフェース(図示せず)を用いて、上位装置からのスタート指令や停止指令あるいは目標位置指令等を受信し、割り込み制御処理の一部または全部を動作させたり停止させたりする。
異常検出処理(fail detection)602は、割り込み処理内でモータ制御処理や演算に応じて更新される各種変数(例えば、目標速度と現在速度の差や、目標位置と現在位置の差、あるいは制御出力値など)の値を定期的にモニタし、所定値を越えたり所定範囲内をオーバしたりした場合に異常状態と判定する。その場合、モータ制御をOFFしたり、上位装置に異常報告をしたりする。
その他処理(other process)603は、その他の処理用にリザーブしており、通常は何もしない。
割り込み回数判断処理604は、割り込み処理実行ごとにインクリメントするscnt変数の値をモニタし、8だけ増加するのを待つ。8増加したらメイン処理600の先頭に戻り、これによりメインループを構成する。
割り込み処理(interrupt process)3**は、所定の割り込み周期ごとに優先実行される。具体的には今までの実施形態の図4、図7、図9、図12の処理と同じものである。
このようにすると、メインループは割り込み8回で一巡するように動作するので、メイン処理600内の各種処理は割り込み8回に1回実行される。したがって、メイン処理600内でも正確な時間管理が可能である。特に、異常検出処理602は、異常状態が所定時間持続したかなど、正確な時間測定をする必要があるが、タイマなどのハードウェアを設けなくても、割り込み周期をベースに時間計測が可能なので、低コストで実現できる。
また、割り込み周期内で確実に終了しなければならない割り込み処理と違い、長い処理をメインループで行なわせることができるので、低コストで多機能な制御ができる。
<総括>
以上説明したように、本実施形態によれば次のような利点がある。
(1)割り込み処理の内容を低速処理と高速処理に分け、高速処理ではすくなくともモータ位置を検出する処理を行い、低速処理ではすくなくともモータ位置に応じてモータの駆動指令を算出する処理を行なうようにしたので、位置検出を確実に行なって、高速回転でも高精度な制御を可能にすることができる。すなわち、安価なマイクロコンピュータを利用しても、全ての割り込み制御処理を毎回全部行なった場合のように、所定の割り込み周期内で処理が終わらず制御動作が破たんしたり、制御処理の遅れによって不安定になったり不正確な制御になったりすることがない。したがって、低コストで高精度かつ安定なモータ位置や速度の制御が可能になる。特に、位置検出処理を高速処理側としたので、高速回転でも確実に位置検出が行なえ、PIDのような比較的低速でよい制御演算を低速処理側に分散したので、CPU処理負荷を軽くできる。
(2)モータの速度検出処理を高速処理側とすることので、高速回転でも速度検出を確実に行なうことができ、高精度な制御が可能になる。さらに、比較的低速でもよい目標位置生成や位置比較処理を必ずしも毎回は行なわないようにすることで、CPU処理負荷をさらに軽くでき、低コストで高精度かつ安定なモータ位置や速度の制御が可能になる。
(3)外部から入力されるパルスを計数して目標位置を算出するようにしたので、外部入力パルスに追従してモータ位置を高精度に制御でき、目標位置検出と現在速度検出を確実に行なって、高速回転でも高精度な制御が可能になる。
(4)通常の第1の目標速度に加え、目標位置の差分から第2の目標速度を算出し、第1、第2の目標速度を加算した値を用いることで、制御中の追従位置偏差を小さくでき、高精度な制御が可能になる。
(5)速度誤差の低域成分を抽出する低域フィルタ処理を行なうことで、速度検出のノイズを小さくし、さらに高精度な制御が可能になる。
(6)割り込み処理が実行されていないときにメイン処理を実行し、割り込み処理中に算出された駆動指令あるいはモータ位置に応じて異常状態を判定するエラー判定を行なうことで、タイマなどのハードウェアの追加なしに、低コストでさらに異なる多くの処理を所定の時間管理のもとに実行させることができる。特に動作異常検出に十分な処理時間を与えることができ、確実に異常検出ができ、信頼性の高い制御が可能になる。
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
100 モータ制御装置
101 マイクロコンピュータ
102 割り込み発生手段
103 CPU
104 メモリ
105、106 計数手段
107 デジタル・アナログ変換器
108 モータドライバ
109 モータ
110 エンコーダ
201 目標位置発生処理
202 位置比較処理
203 現在位置検出処理
204 現在速度検出処理
205 速度比較処理
206 低域フィルタ処理
207 速度制御演算処理
208 目標位置生成処理
210 目標速度生成処理
211 速度比較処理
特開2006−338367号公報 特開2011−44006号公報

Claims (8)

  1. モータの駆動位置に応じて変化するエンコーダ信号を入力し、当該エンコーダ信号に応じて前記モータの駆動指令を出力し、前記モータの駆動位置と駆動速度の少なくともどちらかを制御するモータ制御装置であって、
    所定の周期ごとに前記エンコーダ信号の計数値から前記モータの駆動位置を検出する処理を行う高速処理手段と、
    前記高速処理手段が検出した前記モータの駆動位置に応じて、複数回の前記所定の周期で前記モータの駆動指令を算出する処理を行なう低速処理手段と
    前記高速処理手段あるいは前記低速処理手段のいずれかの処理が実行されていないときにメイン処理を実行するメイン処理手段と、
    複数回の前記所定の周期ごとに、前記メイン処理を一巡させるメインループ処理手段と
    を備え
    前記メイン処理手段は少なくとも、前記モータの駆動指令あるいは前記モータの駆動位置に応じて、異常状態を判定するエラー判定を行なう
    ことを特徴とするモータ制御装置。
  2. 請求項1に記載のモータ制御装置において、
    所定の目標位置を生成する目標位置生成手段を備え、
    前記高速処理手段あるいは前記低速処理手段のいずれかが、前記目標位置と前記モータの駆動位置の比較結果に応じた第1の目標速度を算出する位置比較処理を行い、
    前記高速処理手段はさらに、
    前記モータの駆動位置を前記所定の周期ごとに差分し、算出された値に応じて前記モータの駆動速度を算出する速度算出処理と、
    前記第1の目標速度と前記モータの駆動速度を比較して速度誤差を算出する速度比較処理と
    を行い、
    前記低速処理手段は、前記速度誤差に応じて前記駆動指令を算出する
    ことを特徴とするモータ制御装置。
  3. 請求項1に記載のモータ制御装置において、
    外部から入力されるパルスを計数して目標位置を算出する目標パルス計数手段を備え、
    前記高速処理手段あるいは前記低速処理手段のいずれかが、前記目標位置と前記モータの駆動位置の比較結果に応じた第1の目標速度を算出する位置比較処理を行い、
    前記高速処理手段はさらに、
    前記モータの駆動位置を前記所定の周期ごとに差分し、算出された値に応じて前記モータの駆動速度を算出する速度算出処理と、
    前記第1の目標速度と前記モータの駆動速度を比較して速度誤差を算出する速度比較処理と
    を行い、
    前記低速処理手段は、前記速度誤差に応じて前記駆動指令を算出する
    ことを特徴とするモータ制御装置。
  4. 請求項2または3記載のモータ制御装置において、
    前記高速処理手段あるいは前記低速処理手段のいずれかが、前記目標位置を差分し、算出された値に応じた第2の目標速度を算出する処理を行い、
    前記高速処理手段は、前記第1、第2の目標速度を加算した値と前記モータの駆動速度を比較して前記速度誤差とする
    ことを特徴とするモータ制御装置。
  5. 請求項4に記載のモータ制御装置において、
    前記高速処理手段は、
    前記モータの駆動速度あるいは前記速度誤差の低域成分を抽出する低域フィルタ処理を行ない、フィルタ結果を後段の駆動速度あるいは速度誤差として用いる
    ことを特徴とするモータ制御装置。
  6. モータの駆動位置に応じて変化するエンコーダ信号を入力し、当該エンコーダ信号に応じて前記モータの駆動指令を出力し、前記モータの駆動位置と駆動速度の少なくともどちらかを制御するモータ制御装置であって、
    前記エンコーダ信号の状態の変化をカウントした値から前記モータの駆動位置を検出する第1の処理を実施可能な第1の処理手段と、
    前記第1の処理手段が検出した前記モータの駆動位置に応じて前記モータの駆動指令を出力する第2の処理を実施可能な第2の処理手段と、
    前記第1の処理手段あるいは前記第2の処理手段のいずれかの処理が実行されていないときに、異なる複数の処理を実施するメイン処理手段と
    を備え、
    前記第1の処理手段は、前記第2の処理の実施間隔より短い間隔でモータの駆動位置を検出し、
    前記メイン処理手段は、前記第1の処理を所定回数実施するごとに、前記異なる複数の処理を一巡する
    ことを特徴とするモータ制御装置。
  7. モータの駆動位置に応じて変化するエンコーダ信号を入力し、当該エンコーダ信号に応じて前記モータの駆動指令を出力し、前記モータの駆動位置と駆動速度の少なくともどちらかを制御するモータ制御装置が実行する方法であって、
    所定の周期ごとに前記エンコーダ信号の計数値から前記モータの駆動位置を検出する処理を行う高速処理工程と、
    前記高速処理工程が検出した前記モータの駆動位置に応じて、複数回の前記所定の周期で前記モータの駆動指令を算出する処理を行なう低速処理工程と
    前記高速処理工程あるいは前記低速処理工程のいずれかの処理が実行されていないときにメイン処理を実行するメイン処理工程と、
    複数回の前記所定の周期ごとに、前記メイン処理を一巡させるメインループ処理工程と
    を備え
    前記メイン処理工程は少なくとも、前記モータの駆動指令あるいは前記モータの駆動位置に応じて、異常状態を判定するエラー判定を行なう
    ことを特徴とするモータ制御方法。
  8. モータの駆動位置に応じて変化するエンコーダ信号を入力し、当該エンコーダ信号に応じて前記モータの駆動指令を出力し、前記モータの駆動位置と駆動速度の少なくともどちらかを制御するモータ制御装置が実行する方法であって、
    前記エンコーダ信号の状態の変化をカウントした値から前記モータの駆動位置を検出する第1の処理を実施可能な第1の処理工程と、
    前記第1の処理工程が検出した前記モータの駆動位置に応じて前記モータの駆動指令を出力する第2の処理を実施可能な第2の処理工程と、
    前記第1の処理工程あるいは前記第2の処理工程のいずれかの処理が実行されていないときに、異なる複数の処理を実施するメイン処理工程と
    を備え、
    前記第1の処理工程は、前記第2の処理の実施間隔より短い間隔でモータの駆動位置を検出し、
    前記メイン処理工程は、前記第1の処理を所定回数実施するごとに、前記異なる複数の処理を一巡する
    ことを特徴とするモータ制御方法。
JP2012275888A 2012-03-12 2012-12-18 モータ制御装置およびモータ制御方法 Active JP6064576B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012275888A JP6064576B2 (ja) 2012-03-12 2012-12-18 モータ制御装置およびモータ制御方法
US13/788,289 US9018885B2 (en) 2012-03-12 2013-03-07 Motor controller and motor control method
US14/657,853 US9588522B2 (en) 2012-03-12 2015-03-13 Motor controller and motor control method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012055153 2012-03-12
JP2012055153 2012-03-12
JP2012275888A JP6064576B2 (ja) 2012-03-12 2012-12-18 モータ制御装置およびモータ制御方法

Publications (3)

Publication Number Publication Date
JP2013220006A JP2013220006A (ja) 2013-10-24
JP2013220006A5 JP2013220006A5 (ja) 2014-02-27
JP6064576B2 true JP6064576B2 (ja) 2017-01-25

Family

ID=49234007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012275888A Active JP6064576B2 (ja) 2012-03-12 2012-12-18 モータ制御装置およびモータ制御方法

Country Status (2)

Country Link
US (2) US9018885B2 (ja)
JP (1) JP6064576B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6175809B2 (ja) 2013-03-05 2017-08-09 株式会社リコー モータ制御装置およびモータ制御方法
JP6160258B2 (ja) 2013-05-30 2017-07-12 株式会社リコー モータ制御装置
JP2015019563A (ja) 2013-06-10 2015-01-29 株式会社リコー 制御装置、駆動装置および画像形成装置
JP6641794B2 (ja) 2015-08-28 2020-02-05 株式会社リコー モータ駆動装置、モータ制御装置、搬送装置及びモータ駆動方法
JP2017070014A (ja) 2015-09-28 2017-04-06 株式会社リコー モータ制御装置、駆動装置、搬送装置、画像形成装置、モータ制御方法、およびプログラム
US20170187321A1 (en) * 2015-12-28 2017-06-29 Ricoh Company, Ltd. Motor control device, motor control system, image forming apparatus, conveyance apparatus, and motor control method
JP6672799B2 (ja) * 2016-01-06 2020-03-25 株式会社リコー 電流検出装置、モータ制御システム、画像処理装置及びシート搬送装置
JP2018007532A (ja) 2016-07-08 2018-01-11 株式会社リコー モータ制御装置、モータ駆動装置、モータ駆動システム、画像形成装置、及び搬送装置
US10133255B2 (en) 2016-07-08 2018-11-20 Ricoh Compant, Ltd. Motor controller, motor driver, and motor driving system
CN107065943B (zh) * 2017-05-02 2019-09-20 南京工程学院 一种直驱转台位置控制系统及控制方法
EP4270775A4 (en) * 2020-12-23 2024-06-12 Panasonic Intellectual Property Management Co., Ltd. ENGINE CONTROL DEVICE, ENGINE CONTROL METHOD AND PROGRAM

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56121398A (en) * 1980-02-29 1981-09-24 Fuji Elelctrochem Co Ltd Method of controlling rotation of brushless motor in digital control system
GB2088572A (en) * 1980-12-02 1982-06-09 Gestetner Mfg Ltd Variable speed scan drive
US4470108A (en) * 1981-12-01 1984-09-04 Mitsubishi Denki Kabushiki Kaisha Position detecting device
JPH08224699A (ja) * 1995-02-23 1996-09-03 Mitsubishi Electric Corp プレス制御方法およびプレス装置
JPH0965686A (ja) * 1995-08-23 1997-03-07 Aisin Seiki Co Ltd 電気モ−タの通電制御装置
US6121747A (en) * 1997-09-02 2000-09-19 Servologic Ltd. Electric motor controller
US6598007B2 (en) * 2000-01-05 2003-07-22 Texas Instruments Incorporated Digital control loop
US6300884B1 (en) * 2000-08-08 2001-10-09 Motorola Inc. Method for decoding a quadrature encoded signal
JP2003023785A (ja) * 2001-07-05 2003-01-24 Matsushita Electric Ind Co Ltd サーボモータの制御装置及び制御方法
JP4012013B2 (ja) 2002-08-27 2007-11-21 キヤノン株式会社 モータの制御方法、モータの制御装置、電子機器及び記録装置
US7049778B2 (en) * 2004-02-09 2006-05-23 Nippon Yusoki Co., Ltd. Inverter control apparatus and inverter control method
JP2006338367A (ja) 2005-06-02 2006-12-14 Canon Inc 電子機器及びモータの制御方法
WO2008007510A2 (en) * 2006-07-10 2008-01-17 Seiko Epson Corporation Electric motor, drive system employing multiple electric motors, and method for controlling the same
JP2011044006A (ja) 2009-08-21 2011-03-03 Ricoh Co Ltd 移動体制御装置、画像形成装置、用紙搬送装置及び画像読取装置
JP5471255B2 (ja) 2009-09-30 2014-04-16 アイシン・エィ・ダブリュ株式会社 電動機駆動装置の制御装置
JP5618197B2 (ja) 2010-09-16 2014-11-05 株式会社リコー モータ駆動装置
JP2012253542A (ja) 2011-06-02 2012-12-20 Ricoh Co Ltd モータ速度制御装置、及び画像形成装置

Also Published As

Publication number Publication date
US9588522B2 (en) 2017-03-07
US20150185736A1 (en) 2015-07-02
US9018885B2 (en) 2015-04-28
JP2013220006A (ja) 2013-10-24
US20130257341A1 (en) 2013-10-03

Similar Documents

Publication Publication Date Title
JP6064576B2 (ja) モータ制御装置およびモータ制御方法
CN104579056A (zh) 一种补偿步进电机位置误差的方法
JP5586701B2 (ja) ステッピングモータのマイクロステップ駆動制御装置
JP6175809B2 (ja) モータ制御装置およびモータ制御方法
JP4229823B2 (ja) 歯車破損検出装置および歯車破損検出方法
JP7153767B2 (ja) 電力変換装置
EP3913789A1 (en) Motor control device
US9998042B2 (en) Torque disturbance cancellation for a motor
JP2009095154A (ja) モータ制御装置とその速度検出方法
CN111089610B (zh) 一种编码器的信号处理方法、装置及相关组件
JP2018530296A (ja) 電気モータ制御システム、ドライバ、インバータおよび制御方法ならびにコンピュータソフトウェアおよび記憶媒体
JP5715808B2 (ja) モータ制御回路
JP4867534B2 (ja) モータの速度検出装置
TWI826820B (zh) 機械手臂
US20250274063A1 (en) Phase angle detection system, control device, and phase angle detection method
WO2014010063A1 (ja) モータ制御装置
CN111527457A (zh) 具有对位置误差独立误差修正的驱动控制器
Vazquez-Gutierrez Contributions to the modeling of the incremental optical encoder and speed estimation methods for motion control
US20220206974A1 (en) Signal generation device
Dobra et al. Low-cost embedded solution for PID controllers of DC motors
SU788081A1 (ru) Стабилизатор скорости электродвигател
JPH05276776A (ja) 位相サーボシステム
JP2000175497A (ja) パルスモータ制御装置、パルスモータ制御方法、及びパルスモータ制御プログラムを記録した記録媒体
CN118318145A (zh) 信号生成装置以及电梯
Dobra et al. Low-cost embedded solution for auto-tuning DC motor controllers

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161104

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161205

R151 Written notification of patent or utility model registration

Ref document number: 6064576

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151