JP2003189692A - モータ駆動制御装置 - Google Patents

モータ駆動制御装置

Info

Publication number
JP2003189692A
JP2003189692A JP2001379112A JP2001379112A JP2003189692A JP 2003189692 A JP2003189692 A JP 2003189692A JP 2001379112 A JP2001379112 A JP 2001379112A JP 2001379112 A JP2001379112 A JP 2001379112A JP 2003189692 A JP2003189692 A JP 2003189692A
Authority
JP
Japan
Prior art keywords
motor
sine wave
vibration
motor drive
detecting means
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.)
Pending
Application number
JP2001379112A
Other languages
English (en)
Inventor
Hiroyoshi Misumi
博好 三角
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2001379112A priority Critical patent/JP2003189692A/ja
Publication of JP2003189692A publication Critical patent/JP2003189692A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Control Of Stepping Motors (AREA)

Abstract

(57)【要約】 【目的】 モータ立ち上げ直後の振動制御の収束を短時
間に行うことができるとともに、その後の位相制御及び
振幅制御をより高精度に行うことができるモータ駆動制
御装置を提供すること。 【構成】 ステッピングモータの回転情報を得るための
回転検知手段と、少なくとも1 つ以上の正弦波を発生す
る正弦波発生手段と、該正弦波発生手段の正弦波の位相
と振幅の少なくとも1つを変更する変更手段と、該変更
手段で発生した信号に基づいてモータに流れる電流に正
弦波の成分が重畳されるようにモータ電流を制御するモ
ータ電流重畳手段を有するモータ駆動制御装置におい
て、モータが所定の定速度になったか否かを判断する定
速度検知手段と、該定速度検知手段より定速度と判断さ
れると前記回転検知手段からの回転情報から振動情報を
得る振動情報検出手段を設け、前記変更手段に、前記振
動情報検出手段に基づいてなされる振動制御手段を設け
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、モータ駆動制御装
置に関するものである。
【0002】
【従来の技術】近年、カラー複写機においては、市場か
ら高画質化への要求が高まっている。複写機のスキャナ
はその駆動源をステッピングモータとしているが、より
高画質に対応するためにモータ及びその駆動系の振動を
より少なくする必要がある。
【0003】一般的に、モータ軸又は何れかの駆動軸に
大きなイナーシャを取り付けて振動を抑制する方法が採
られる。又、イナーシャを付けないで振動を抑制するた
めにモータ軸にエンコーダを取り付け、それからの位置
・速度情報より振動を除くようにフィードバック制御を
掛ける方法も知られている。
【0004】
【発明が解決しようとする課題】しかしながら、エンコ
ーダフィードバック制御においては、ステッピングモー
タ駆動のための歩進パルスとエンコーダからのパルス信
号との同期を取るよう制御されるが、 前もって適正なト
ルクを出すための位相合わせを機械的若しくは電気的に
行わなければならず、又、精度を上げるためにエンコー
ダの精度も上げなければないため、コストアップを招く
要因となっていた。
【0005】そこで、モータ自身の持つトルクリップル
成分は定回転状態であるとその振動の周波数は事前に分
かっており、振幅もほぼ同程度であることを利用し、エ
ンコーダからの情報に基づいてその振動成分と逆相にな
るよう位相と振幅をコントロールした正弦波を発生さ
せ、それをモータ電流に重畳して振動を抑制しようとい
うフィードバック制御法がある。
【0006】しかしながら、上記方法によるとフィード
バックゲインを可成り小さくしなければならず、モータ
立ち上げ直後の振動制御の収束に時間が掛かるという問
題がある。
【0007】本発明は上記問題に鑑みてなされたもの
で、その目的とする処は、モータ立ち上げ直後の振動制
御の収束を短時間に行うことができるとともに、その後
の位相制御及び振幅制御をより高精度に行うことができ
るモータ駆動制御装置を提供することにある。
【0008】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、ステッピングモータの回転情報を得るた
めの回転検知手段と、少なくとも1 つ以上の正弦波を発
生する正弦波発生手段と、該正弦波発生手段の正弦波の
位相と振幅の少なくとも1つを変更する変更手段と、該
変更手段で発生した信号に基づいてモータに流れる電流
に正弦波の成分が重畳されるようにモータ電流を制御す
るモータ電流重畳手段を有するモータ駆動制御装置にお
いて、モータが所定の定速度になったか否かを判断する
定速度検知手段と、該定速度検知手段より定速度と判断
されると前記回転検知手段からの回転情報から振動情報
を得る振動情報検出手段を設け、前記変更手段に、前記
振動情報検出手段に基づいてなされる振動制御手段を設
けたことを特徴とする。
【0009】
【発明の実施の形態】以下に本発明の実施の形態を添付
図面に基づいて説明する。
【0010】図26は画像スキャナのブロック図であ
り、3001はスキャナ部全体を制御するスキャナ制御
部、3002はスキャナに動作を指示する操作部、30
03は原稿、3004は原稿3003を置くためのプラ
テンガラス3005は原稿3003からの光像を取り出
す第1ミラー台、3006は原稿に光を当てるためのラ
ンプ、3007は第1ミラー台3005からの光像の方
向を変更する第2ミラー台、3008は光像のピントを
合わせるためのレンズ、3009はレンズ3008から
の光像を電気信号である画像信号に変換するCCDセン
サ、3010はCCDセンサ3009からの所望の画像
信号に処理して画像情報とする画像信号処理部、301
1は画像情報を出力する画像情報出力端子である。
【0011】操作部3002によりスキャナ動作を指示
されると、その情報はスキャナ制御部3001に送ら
れ、スキャン動作を制御する。原稿3003はプラテン
ガラス3004に置かれ、第1ミラー台3005ではラ
ンプ3006により原稿3003に光を当て原稿300
3から反射された光像をミラーにより第2ミラー台30
07に送る。第1ミラー台3005と第2ミラー台30
07は副走査方向に移動し、その速度は常に2:1とな
り、原稿3003からCCDセンサ3009までの光路
長を一定になるよう構成されている。第2ミラー台30
07で光像の方向を変えてレンズ3008に送り、ピン
トを合わせてCCDセンサ3009に光像が当てられて
電気信号に変換される。変換された画像信号は、画像信
号処理部3010にて所望の画像情報として画像情報出
力端子から出力される。
【0012】図27はモータ5と第1,2ミラー台30
05,3007との構成を示した図であり、3101は
モータ駆動制御部であり、5は5相ステッピングモー
タ、3102はタイミングベルト、3103はワイヤ、
3104は第1,2ミラー台3005,3007をモー
タ5側から見た負荷としてまとめたミラー台モデルであ
り、3105,3106は滑車である。モータ駆動制御
部3101よりモータ5を回転させ、そのモータ軸と滑
車3105とにタイミングベルト3102により或る減
連比で接続され、滑車3105にワイヤ3103が繋が
っており、そのワイヤ3103によりミラー台モデルを
移動させる。従って、モータ5の回転速度とミラー台モ
デル3104の移動速度は比例することになる。
【0013】図1は本発明の実施の形態に係るモータ駆
動制御部の構成を示すブロック図であり、5は5相ステ
ッピングモータ(以下、モータ)でフルステップ500
パルスで1回転する構成となっており、1はモータ5を
駆動制御する制御部であり、例えばマイクロコンピュー
タの構成となっており、2はモータ5を駆動するための
駆動パルスを発生するロジック部、3はロジック部2か
らの駆動パルスの電圧を変換するプリドライバ、4はプ
リドライバ3からの駆動パルスに基づいてモータ5の各
給電点に電流を供給し、モータ5を回転させるドライブ
部、6はモータ5に流れた電流を検知するための電流検
知抵抗(以下、Rd)、7かRd6で得られた信号を平
滑するためのローパスフィルタ(以下、LPF)、8は
LPF7からのアナログ信号をデジタル信号に変換する
ためのA/D変換器(以下、A/D)、9はモータ5の
ステップ速度を決定する外部からの歩進パルス(以下、
MCLK)を入力するためのMCLK入力端子、10は
モータ5を回転/停止を指示する信号(以下、S/S)
を入力するためのS/S入力端子、11はモータ5の回
転方向を指示する信号(以下、CW/CCW)を入力す
るためのCW/CCW入力端子、12はマイクロステッ
プの分割数を指示する信号(以下、DIV)を入力する
ためのDIV入力端子、13はモータ5に流れる電流を
指示する信号(以下、CUR)を入力するためのCUR
入力端子、14,15は電源電圧Vmを分割する抵抗
器、16はR1とR2により分割された信号のノイズを
除去するためのコンデンサ、17はR1とR2で分割さ
れた信号をA/D変換して制御部1に出力するAD変換
器、18はモータ5の回転情報を示す信号を出力するエ
ンコーダ部である。
【0014】図2はロジック部2の構成を示すブロック
図であり、同図において、201はCLK信号によりカ
ウントアップされるカウンタ、202,204は記憶し
たデータを出力するプリセットレジスタ、203,20
5は2つの入力されたデータを比較する比較器、206
はANDゲート、207〜211は駆動パルスを生成す
るパルス生成器である。
【0015】図3はパルス生成器の構成を示すブロック
図であり、同図において、301はデータを記憶し、記
憶したデータを出力するプリセットレジスタ、302は
入力された2つのデータを比較する比較器、303はデ
ッドタイム付加回路、304はインバータゲート、30
5はANDゲート、306はORゲートである。
【0016】図4はデッドタイム付加回路303の構成
を示すブロック図であり、同図において、401は信号
を一定時間遅らせるための遅延回路、402はORゲー
ト、403はANDゲートである。
【0017】図5はプリドライバ部3の回路図であり、
501〜520は抵抗器、521〜530はNPNトラ
ンジスタであり、A+〜E+はトランジスタ521〜5
25がオンのときVm*R2/(R1+R2)、オフの
ときVmの値にレベル変換され、 A−〜E−はトランジ
スタ526〜530がオンのとき0、 オフのときVm*
R4/(R3+R4)の値にドライバ部4のFETのゲ
ート電圧を確保するようにレベル変換される。
【0018】図6はドライブ部4の内部回路とモータ5
の内部構成及びその配線の図であり、601〜605は
PcPchFET素子、606〜610はNchFET素
子、611〜615は各相のコイルでそれぞれLa〜L
eに対応している。
【0019】図7は図2におけるカウンタ202からの
カウント情報に基づいて発生される駆動パルス及びそれ
に基づくモータ5の1つの給電点の状態を示すタイムチ
ャートである。図8は駆動パルスによりマイクロステッ
プが行われる様子をモータ5の各給電点の状態で示した
タイムチャートである。図9は図8の給電点の状態状態
によりモータ5の各コイルに流れる電流を示した図であ
る。
【0020】次に、動作について説明する。
【0021】図1でS/S入力端子9より入力されたス
タート指示され、MCLK入力端子9にMCLKが入力
されると、CW/CCW、DIV、CURの条件に従っ
てMCLKに同期してモータ駆動パルスを発生し、モー
タ5を回転させる。制御部1では駆動パルスを発生させ
るためにカウンタ等のクロックとなるCLK、駆動パル
スの発生/停止を指示するSTOP、パルス発生に必要
なデータを送るためのDATAをロジック部2に送る。
【0022】図2で制御部1からのCLKはカウンタ2
01に入力されてカウントアップされ、そのカウント情
報をCOUNTとして出力する。プリセットレジスタ2
02には制御部1からカウントデータNがラッチされそ
のデータを出力しており、比較器203にてプリセット
レジスタ202からのデータとCOUNTを比較し、一
致すれば一致信号を出力し、カウンタ201に入力さ
れ、カウンタ201ではこの信号によりカウント値はリ
セットされて再び0からカウントされ、図7のCOUN
TのようにCLKに基づいてCOUNTが0〜Nまでカ
ウントアップし、Nになると再び0からカウントアップ
するといった動作を繰り返す。CLKの周期は常に一定
であるため、0〜Nまでカウントアップする時間はNに
従うことになる。この期間をTpwm とする。
【0023】COUNTの情報に基づいて各パルス生成
器207〜211ではモータ5を駆動するための駆動パ
ルスが生成される。ここで、プリセットレジスタ202
をREGPWM、204をREGOPENとし、301
を各パルス生成器207〜211内のをそれぞれREG
A、REGB、REGC、REGD、REGEとする。
【0024】ここで、パルス生成器207を例として以
下にパルス発生の流れについて説明する。
【0025】図3で制御部1からのデータNaがREG
A(プリセットレジスタ301)にラッチされており、
前記COUNTと比較器302で比較され、比較結果を
デッドタイム付加回路303に出力し、ドライブ部4の
Pch、NchFETを同時に貫通しないよう駆動し、
給電点の状態を決める2つの信号を作り、FOPENの
信号に従うANDゲート305、ORゲート306と通
り、A+、A−として出力し、プリドライバ3によりレ
ベル変換されてドライブ部4により給電点の状態を決定
することになる。
【0026】図4のデッドタイム付加回路303では、
1つの信号を一定時間遅延する遅延回路401と遅延し
ない信号のAND、OR(402,403)を取り、そ
れぞれPch、Nch用FET駆動パルスとして出力さ
れ、SW特性によるPch、NchFETの貫通を防ぐ
構成となっている。ここでは、このデッドタイムは本発
明とは直接的には関係はなく、又、他のパルス周期に比
べて十分に小さいものであるため、以下、デッドタイム
は無視して説明する。
【0027】FOPENがローレベルであるとき、RE
GAの値(Na)とCOUNTとの比較により、A+、
A−は図7(a)のようにCOUNTがNaまではロー
レベルで、Naを超えるとハイレベルになり、これをT
pwm の周期で繰り返して駆動パルスを生成する。このと
きの給電点の状態は図のようになり、COUNTがNa
までは電流を引き込む状態の期間(プル状態期間TTpul
l )とNaを超えると電源より電流を流し込む状態の期
間(プッシュ状態期間Tpush)とを繰り返す状態とな
る。
【0028】FOPENは給電点の状態をオープン状態
にするもので、図2のプリセットレジスタ204(RE
GOPEN)にデータNopenがラッチされていると、そ
のデータとCOUNTを比較して図7(b)のようにC
OUNTがNopenまではローレベルで、Nopenを超える
とハイレベルを出力する。その信号はSTOPとAND
ゲート206によりANDされ、各パルス生成器にFO
PENとして送られる。STOPはモータ5が回転時は
ローレベルとなる。FOPENがハイレベルのときは、
図7(b)のようにハイレベル期間のみ全給電点は全て
オープン状態になる。又、STOPをハイレベルにする
とFOPENはハイレベルとなり、全給電点をオープン
状態にしモータ5に電流は流れなくなるため、モータ5
は停止する。
【0029】次に、動作について説明する。
【0030】本発明によれば、 モータ5に流す駆動電流
はPWMによりなされ、 その周期中でモータ5の各相コ
イルに流す電流の割合を決める期間(マイクロステップ
期間)と各相に分配された電流をホールドするショート
期間とに分けられ、モータ5を駆動する。PWM期間を
Tpwm 、マイクロステップ期間をTms、ショート期間を
Tsht とする。
【0031】図8の給電点A, B, CのPWMの1周
期を見ると、マイクロステップ期間Tmsでは給電点Aは
プッシュ状態(+)、給電点Dはプル状態(−)となっ
ており、給電点B,Cが−、−の期間は給電点AからB
ヘコイルLaを通って電流は流れ、+、−の期間は給電
点BからCヘコイルLbを通って電流は流れ、+、+の
期間は給電点CからDヘコイルLcを通って電流は流
れ、各給電点が両隣の給電点と同じ状態であるときは各
コイルの両端はFET素子によりVm側にオンされてシ
ョートされた状態となり、コイルに流れる電流はホール
ドされる。
【0032】このように給電点B,Cのプル/プッシュ
期間によりコイルLa,Lb,Lcに流れる電流量の割
合が決まり、同様にLd,Leに流れる電流量は給電点
Dのプル/プッシュの割合で決まる。更に、ショート期
間Tsht では全給電点に対して全てプッシュ側で、即ち
Vm側にFET素子によりオンされた状態であるため、
各コイルの両端はショートされたことになり、この期間
各コイルに流れる電流はホールドされる。従って、マイ
クロステップ期間Tmsでは各コイルに流れる電流量を決
定し、ショート期間Tsht によりモータ全体に流れる電
流を決定することになる。
【0033】次に、4分割のマイクロステップ動作を例
としてマイクロステップについて説明する。
【0034】MCLKの立上がりで、図8の〜のよ
うに各給電点の状態を変化させたとき、各コイルに流れ
る電流の変化は図9の〜のようになる。ここで、シ
ョート期間を一定としたとき、各コイルに流れる電流の
最大値は給電点の状態の両隣の状態が片方が+、もう片
方が−になっており、マイクロステップ期間のプル/プ
ッシュの割合が1:1となっているときであり、そのと
きの電流をI0とする。
【0035】,は4相励磁状態であり、各コイルの
状態をからに直接変えると、フルステップ駆動で1
ステップ回転することになる。マイクロステップは、こ
のフルステップ駆動での1ステップを各コイルに流す電
流の割合を細かく制御することによって更に分割するも
ので、図8の〜のように各給電点の状態を変化させ
ると、図9の〜のように各コイルに流れる電流は変
化し、モータ5はの位置から1ステップを4分割した
角度をMCLKの立上がり毎に回転し、4つ進んだとこ
ろで次の4相励磁相に移動することができる。このよ
うにしてモータ5がMCLK毎に回転させるように各給
電点の状態を変化させることによって、所望の分割数で
MCLKに同期してモータ5を回転させることができ
る。
【0036】次に、マイクロステップの制御について説
明する。
【0037】図10はモータ5を制御するメイン制御フ
ローチャートである。制御部1ではS/S信号によりモ
ータステートの指示を受けると(1001)、各給電点
をモータ駆動状態等、モータ駆動に必要な設定を行い
(1002)、マイクロステップ割り込みを許可して
(1003)、電流制御タイマ割り込みを許可し(10
04)、エンコーダフィードバック制御割り込みを許可
し(1007)、S/Sよりモータストップの指示があ
るまで(1005)モータ5を駆動状態にし、停止指示
を受けると、各給電点を停止状態にして各割り込みを禁
止する等の停止処理を行い(1006)、モータスター
ト待機状態(1001)となる。
【0038】図11はマイクロステップ割り込みのフロ
ーチャートであり、MCLKの立上がりで即座に割り込
みが掛かるようになっている。割り込みが掛かると各パ
ルス生成器207〜211内の各レジスタREGA〜R
EGEにBUFA〜BUFEのデータをセットして(1
101)駆動パルスを生成する。このとき、プリセット
レジスタ204にはTpwm より大きな期間を設定するよ
うなデータがラッチされており、FOPENはローレベ
ルの状態となり、オープン期間は生成されないようにな
っている。
【0039】次に、MCLKの周期を検出し(110
2)、MCLK前後の周期を比較してモータ5が加速か
減速か一定速度かを判断する(1127)。次に、位相
と振幅値を設定して正弦波発生し、TSINデータを作
り(1128)、そして、Tpwm を決めるためのプリセ
ットレジスタ202にセットするデータをTPWMに下
記式にてセットする。
【0040】TPWM←TBUF+TSINこれにより
モータ5の電流はMclk 毎に設定されることになる(1
129)。そして、CW/CCWによる回転方向の指示
をチェックし(1103)、CW方向であればMをイン
クリメントし(1104)、MがDIVより指示された
分割数を超えると(1105)、Mは0にリセットされ
(1106)、Nをインクリメントし(1107)、N
が10を超えると(1108)、Nは0にセットされる
(1109)。
【0041】CCW方向のときはMはデクリメントされ
(1110)、マイナスになると(1111)、Mに分
割数−1セットし(1112)、Nをデクリメントして
(1113)Nがマイナスであれば(1114)、Nに
9をセットする(1115)。次に、PにNをセットし
(1116)、サブルーチンDATSETを呼び出して
次のMCLKの立上がり時の励磁パターンをセットする
ためのデータを演算してDATAとして返し、それぞれ
の演算結果をREGA、REGB、REGC、REG
D、REGEにセットして割り込みから抜ける(111
7〜1126)。表1はフルステップで10ステップ分
(電気角360°)のマイクロステップ期間中の各給電
点の状態を示す。
【0042】[表1]表で+はプル状態、−はプッシュ状
態で、50%はプッシュ期間:プル期間の比が1:1の
ときを示す。表1のようにMCLKに従ってNを0から
9に向かって励磁パターンを変化させていくとモータ5
はフルステップ駆動となり、CW方向に回転する。この
とき、給電点Aの状態をF(N)とし、Nをステップ番
号とすると、 となる。
【0043】又、給電点Aでマイクロステップのための
プッシュ期間/プル期間の割合を変更する区間はNが2
〜3、3〜4、7〜8、9〜0に移行する区間で、CW
方向に回転するものとするとステップ間の分割した位置
をM( M=0,1,‥・ ,分割数−1)とし、マイクロ
ステップ期間Tmsを設定するプリセットレジスタ202
のデータをTMSとして、各Nの値での給電点状態を表
すと、 N=0,1のとき −(プル状態) N=2のとき (1/2)*(TMS/分割数)*M N=3のとき (1/2)*TMS N=4のとき (1/2)*TMS+(1/2)*(TMS/分割数)*M N=5,6のとき +(プッシュ状態) N=7のとき TMS−(1/2)*(TMS/分割数)*M N=8のとき (1/2)*TMS N=9のとき (1/2)*TMS−(1/2)*(TMS/分割数)*M となり、マイクロステップ時の給電点Aの駆動パルス生
成が行われる。これを基にして各給電点に対しての駆動
パルスの演算ルーチンがDATSETであり、そのフロ
ーチャートを示したのが図12である。
【0044】図12で演算した各給電点の状態データB
UFA〜BUFEをMCLKの立上がり時にREGA〜
REGEにデータをセットする工程を繰り返し行うこと
によって分割数に従った励磁パターンをMCLK毎に切
り換えモータ5を駆動し、マイクロステップが可能とな
る。
【0045】次に、電流制御について説明する。
【0046】図13は電流制御タイマ割り込みのフロー
チャートであり、割り込みが掛かると図11のMCLK
周期検出で得られたMCLK周期をTMCLKとする
と、分割数DivとTMCLKを掛けてTVに代入する
(1401)。これは分割数により同じ速度でもモータ
5の回転スピードが変わるためで、フルステップ駆動の
1ステップに掛かる時間に換算して演算するようにして
いる。そして、モータ電流を決めるためのデータをTB
UF、電流指示値CUR、例えば図14のように速度が
変化しても常に同じ電流が流れるように設定されたデー
タに基づきそれをテーブル化してTVに対するテーブル
の値をTABLE(TV)とすると、 TBUF←Ku*CUR*TABLE(TV) の演算を行い(1402)、TBUFを設定して割り込
みから抜ける。これを割り込み毎にすることによってモ
ータの速度に従った電流を制御でき、又、モータ速度に
因らないでコイル電流(モータ発生トルク)を一定にす
る。Kuは電流指示CURの設定電流にモータコイル電
流ILがなるよう選択された任意の係数である。これに
よりモータ速度に関係なく常に同じトルクでモータ5を
回転させることができ、又、逆起電圧の小さい低速時の
モータ5への電流Imを少なくして適正な値にすること
が可能となる。
【0047】次に、エンコーダフィードバック制御につ
いて説明する。
【0048】ステッピングモータでは駆動素子、コイル
等のバラツキにより電気角の整数倍(1〜10)の角度
毎にトルクのムラを生じ、振動の要因となっている。モ
ータ5においては5相であるため、その振動成分の周波
数Fiは、Mclk の周波数をFmclk、分割数をDivと
すると Fi=Fmclk/Div*i/10 (i =1〜10の自然数)…(1) と決まった周波数となる。
【0049】Fiのそれぞれの振幅の大きさはモータ5
やその速度やその駆動系全体の周波数特性等で決まる。
又、振動波形は回転速度一定とすると1/Fi周期で同
じパターンの波形を繰り返す。
【0050】振動成分はモータ5の周波数特性やスキャ
ナのメカ的特性により1つの成分に振動量が目立って大
きくなる場合が多い。従って、本実施の形態では例とし
てi=2の成分1つについて抑制する制御方法について
説明する。
【0051】次に、正弦波発生について説明する。
【0052】正弦波は図11の1128のサブルーチン
で作られ、そのフローチャートを図15に示す。
【0053】SINSETにいくと正弦波の現在の位相
PNOと位相のずらし量TPHSを足してXに入れる
(1501)。Xが目的の振動成分の1周期分のMclk
のパルス数、即ちDiv*10/iを超えると、 X←X−Div*10/i の演算を行い(1504)、Xが0より小さければ(1
503)、 X←Div*10/i+X の演算を行い(1505)、それ以外は何もせず、Xが
振動成分の1周期内の位相になるよう設定し(150
6)、そのときの振幅基準値を図16のような256デ
ータのテーブルを用いてXに対するTBLSIN(X)
を演算し(1507)、所望の振幅値を演算する(15
08)。ここで、TAMPは正弦波の振幅である。次の
位相にPNOを設定するために1が足され、Mclk の1
周期内の位相となるように設定し(1510〜151
3)、サブルーチンを抜ける。このようにTPHS=
0、TAMP=固定値とすると、Mclk 毎に振幅が変化
するMclkのパルスDiv*10/2個の周期の正弦波
TSINを生成することができ、例えばi=2の場合、
振幅TAMO・周期がMclk 50パルスの正弦波とな
る。これにTPHSTAMPを変化させると、位相と振
幅が変化し、所望の正弦波に生成することができる。
又、図11の1129にてTPWMにTSINを加える
ため、モータ電流Imにこの成分が加わり、モータトル
クがこの振動成分で変動することになる。
【0054】次に、フィードバック動作について説明す
る。
【0055】図17はエンコーダ部18の構成を示す図
であり、1801はモータ5の回転軸に取り付けられそ
の軸を中心として円盤状の形状をしており、同心円上に
スリット1803が等角度で切られているコードホイー
ルであり、1802はコードホイール1801のスリッ
トを検知してパルス波形を生成するエンコーダであり、
位置情報及び速度情報を含んでおり、速度一定であれば
その速度に比例した一定の周波数のパルスを生成するこ
とになり、その出力は制御部1のEDETに入力され
る。本発明では、モータ5のフルステップで500パル
ス/1回転に合わせるよう500個のスリットが切られ
ている。
【0056】或る速度で振動成分Asin(ωt)なる
トルク変動がある場合、微小部分ではこれに比例した形
で速度変動を生じる。従って、モータトルクとモータ電
流Imは比例関係にあるため、トルク変動と逆相になる
ようなトルク変動を与えれば理論的には振動は消滅す
る。
【0057】式で書くと、 Tf=Kf*Im=−(A+ΔA)sin(ωt+Δ
θ) のようになり、ΔAとΔθを0に近づけるように電流I
mを制御すれば、 Tm+Tf→0 (ΔA→0、Δθ→0) のように合成したトルク変動を0に近づけることができ
る。
【0058】又、フルステップ駆動を考えた場合、Mcl
k 毎の速度は1ステップ間の距離をLとするとトルクム
ラによりΔLの変動となってくるため、そのときの速度
VsをMclk 毎で演算すると、Vs=(L+ΔL)/T
mclkとなる。
【0059】ここで、速度一定であればTmclkは一定値
となるため、ΔLは速度に比例する。
【0060】一方、速度変動はエンコーダパルス毎距離
が一定であるため、時間Tmclk+ΔTとなり、ΔTとい
う時間の変動になって現れる。そのときの速度Veをエ
ンコーダ毎で計算すると、 Ve=L/(Tmclk+ΔT) となる。
【0061】ここで、一般的にモータのトルクムラ成分
は速度に対して数%のオーダーであるため、 Tmclk>>ΔT となり、マクローリン展開によりVeは、 Ve=L/Tmclk*(1−ΔT/Tmclk+(ΔT/Tmc
lk)2 +… Tmclk>>ΔTであるため、2乗項以降は無視できる。
従って、 Ve=L/Tmclk*(1−ΔT/Tmclk) =(L−L*ΔT/Tmclk)/Tmclk となり、L及びTmclkは固定植であるため、B=−L/
Tmclkとすると、 Ve=(L−B*ΔT)/Tmclk となる。
【0062】VsとVeは等価と考えられるため、 ΔL=−B*ΔT …(1) となり、ΔL(速度変動成分)はエンコーダ毎に生じる
−ΔTに比例することになる。従って、本実施の形態で
は目標速度に対するエンコーダパルスの時間変動より速
度の変動成分を得ることとする。
【0063】図18にエンコーダフィードバック制御の
フローチャートを示す。
【0064】モータ5が動作を開始するとエンコーダパ
ルスを生じエ、ンコーダ割込みが発生する。エンコーダ
割込みではその動作がスキャン動作かを判断して(18
01)スキャン動作でなければ割り込みを抜け、スキャ
ン動作であればエンコーダのパルス幅TENCを検出す
る(1802)。そのパルスがモータスタートして1発
目のエンコーダであれば制御に必要なそれぞれの初期値
を設定する(1804,1805)。1発目以外であれ
ば図11の1127の加減速検知からモータ5が一定速
度になったかを判断し(1806)、一定でなければ割
込みを抜け、一定になればENCNOを割込み毎にイン
クリメントしていき(1807)、TENCからその速
度時のMclk のフルステップ換算のパルス周期TVを引
算して目標速度からのずれ量ERRを得る(180
8)。そして、そのERR信号をサブルーチンFI LT
ERによりフィルタリングし(1809)、サブルーチ
ン振動波形検知をコールし(1812)、波形検知を終
了するまで割込みを抜ける(1813)。次に、サブル
ーチン位相制御、振幅制御により演算を行い(181
0,1811)、割込みを抜ける。
【0065】図19はサブルーチンFILTERのフロ
ーチャートであり、フィルタのオン/オフを判断し(2
001)、FILONが0であればERRにフィルタを
掛けず、1であればERRにフィルタを掛け(200
2)、戻る。2002でフィルタの特性は図21のよう
に対象とする振動成分、ここでは2/10*Fmclkを取
り出すようなバンドパスフィルタとなるようエンコーダ
パルス毎に演算される。
【0066】図24は振動波形検知のフローチャートで
あり、振動波形検知がコールされると波形検知終了かを
検知し(2501)、検知終了でなければメモリD
(S)にERRを入れ(2502)、カウンタSをイン
クリメントし(2503)、D(0)〜D(4)にデー
タが格納されるまでルーチンを抜け(2504)、格納
されると振動成分の位相と振幅を検知処理する波形検知
がオンしているかをチェックし(2505)、オンして
いなければ現状の振幅値が規定値以上であるかをチェッ
クし(2506)、規定値以下であれば位相と振幅値は
セットしないで波形検知を終了する(2511)。これ
は前回の駆動時の振幅と位相のデータを初期値として使
用した場合に駆動開始位置が同じであれば位相と振幅値
は合っており、無駄な検知をしないためである。
【0067】規定値以上であれば振幅データを0にして
(2507)、波形検知をオンにして(2508)Sを
0にリセットして(2509)ルーチンから抜ける。こ
こで、振幅データを0にしているのは、正弦波により振
動を制御しない振動波形を得るためである。次に、D
(0)〜D(4)にERRデータが格納されるまで繰り
返され、波形検知はオンされているため振幅位相演算を
行い、TPHSとTAMPにデータをセットし(251
0)、波形検知を終了し(2511)、ルーチンを抜け
る。
【0068】次に、振幅位相演算について説明する。
【0069】図25は速度変動ΔVがあるときのトルク
変動とエンコーダ検知データとの関係図である。
【0070】速度V0に振動成分ΔV=Asinωtが
あると速度Vは、 V=V0+ΔV=V0+Asinωt となる。
【0071】このような速度変動があるとき、トルクの
変動成分ΔTは速度の微分となり、 ΔT=dω/dt=Aωcosωt となる。
【0072】又、式(1)よりエンコーダよりの振動の
変動成分はΔとなり、図のように位相は180°ずれた
ものとなり、実際はエンコーダの割込みは或る時間間隔
をおいて掛かるため、その時間情報はその曲線上の点の
値を取る。サブルーチン振動波形検知では図のD(0)
〜D(4)にそのときのERRの値を格納する。この5
つのデータより負から正になる2点を求め(図ではD
(1)とD(2))、リニア補完してゼロクロス点を求
め、振動成分の位相を検知する。トルク変動は速度変動
に対して−90°ずれるため、検知した位相から−90
°ずらした正弦波を生成するようにTPHSの値を決め
る。又、5つのデータの絶対値のピーク値より演算さ
れ、振幅値TAMPが決められる。これによりトルク変
動に対して逆相の電流変動(トルク変動)が掛けられて
振動成分が相殺される。
【0073】図21はサブルーチン位相制御のフローチ
ャートで、サブルーチンがコールされると先ずイニシャ
ライズをしたかを判断し(2201)、FLAGPが0
であればイニシャライズをしてないということでFLA
GPに1を設定し(2202)、カウンタQに5を入れ
て加算データAVEPを0にし(2203,220
4)、位相制御のためのイニシャライズを行う。FLA
GPが1であればイニシャライズしたということで、Q
をデクリメントし、Qが0になるまで(2206,22
07)、ERR信号の絶対値をAVEPに加算するため
(2205)、AVEPにはERR絶対値の5個加算し
た値が入る。ここで、5回平均を取っているのは、エン
コーダパルスが5発分で対象としているi=2のときの
振動成分の周期になるため、こうすることによりこの成
分の振幅値が強調される。
【0074】5回より大きな回数を必要とするときは、
5の整数倍にする必要がある。Qが0であれば次の加算
のためのデータ5をQに入れ(2208)、モータ5が
一定速度になってからのカウント値ENCNOと#Aと
比較する(2209)。#Aより小さければAVEPは
前回のデータとなるPREPに記憶された後、0にリセ
ットされ(2232,2233)、位相制御から抜け
る。#A以上になれば制御ゲインGAINPに#GP0
1が入れられ(2210)、ENCNOが#Bになるま
で2216からの演算処理を行う(2211)。
【0075】ENCNOが#B以上になるとGAINP
は#GP02に変えられ(2212)、ENCNOが#
Cになるまで2216からの演算処理を行う(221
3)。#C以上になると#Eになるまで演算は行わず、
2232からの処理を行い、位相制御から抜ける(22
14)。#E以上になればGAINPは#GP03に変
更される(2215)。
【0076】次に、現在振動データ平均値AVEPから
前回のデータを引きXに入れ(2216)、前回の振動
成分との差を取る。そのXをGAINP倍してXに入れ
(2217)、その絶対値をZに入れる(2218)。
Xの値より前回データと今回データとの大小比較され
(2219)、大きければ前回の演算に基づく位相の移
相方向が誤りとなり、移相方向をチェックして(222
0)今回の移相方向を前回と逆方向にするよう処理さ
れ、移相方向が遅らせ方向(SFTP=0)であればS
FTPに1を入れ移、相方向を進ませ方向にして(22
21)現在の図11のSINSETによる正弦波の位相
からZ分位相を進ませるようにTPHSに−Zが入れら
れる(2222)。
【0077】そして、制御によりスタート位置より移相
された移相量を演算するためのPINTからZを減算し
(2223)、PINTが0より小さければ、発生する
正弦波1周期内のMclk のパルス数よりPINTを減算
し、振動成分1周期内の位相位置に直す(2224,2
225)。前回の移相方向が進ませ方向であればSFT
Pに0を入れ(2227)、移相方向を遅らせ方向にし
て正弦波の位相を遅らせるようにTPWMにZを入れる
(2228)。そして、制御によりスタート位置より移
相された移相量を演算するためのPINTにZを加算し
(2229)、PINTが発生する正弦波1周期内のM
clk のパルス数以上になれば、PINTから発生する正
弦波1周期内のMclk のパルス数を減算し、PINTを
減算して振動成分1周期内の位相位置に直し(223
0,2231)、2232以降の処理を行う。
【0078】Xがマイナスであれば前回の移相方向は正
しく同じ方向に移相するよう処理され、前回の移相方向
をチェックし(2226)、2221又は2225以降
の処理がなされる。
【0079】図22はサブルーチン振幅制御のフローチ
ャートであり、サブルーチンがコールされると先ずイニ
シャライズをしたかを判断し(2301)、FLAGP
が0であればイニシャライズをしてないということでF
LAGPに1を設定し(2302)、カウンタRに5を
入れ、加算データAVEAを0にし(2303,230
4)、位相制御のためのイニシャライズを行う。FLA
GAが1であればイニシャライズしたということでRを
デクリメントし、Rが0になるまで(2306,230
7)、ERR信号絶対値をAVEPに加算するため(2
305)、AVEAにはERR絶対値の5個加算した値
が入る。ここで、5回平均を取っているのは、エンコー
ダパルスが5発分で対象としているi=2のときの振動
成分の周期になるため、こうすることによりこの成分の
振幅値が強調されるためである。
【0080】5回より大きな回数を必要とするときは、
5の整数倍にする必要がある。Qが0であれば、次の加
算のためのデータ5をRに入れ(2308)、モータ5
が一定速度になってからのカウント値ENCNOと#C
と比較する(2309)。#Cより小さければAVEA
は前回のデータとなるPREAに記憶された後、0にリ
セットされ(2327,2328)、位相制御から抜け
る。#C以上になれば制御ゲインGAINAに#GA0
1が入れられ(2310)、ENCNOが#Dになるま
で2315からの演算処理を行う(2311)。ENC
NOが#D以上になると、GAINAは#GA02に変
えられ(2312)、ENCNOが#Eになるまで23
15からの演算処理を行う(2313)。#E以上にな
ると、GAINAは#GA03に変えられ(231
4)、2315からの処理を行う。
【0081】次に、現在振動データ平均値AVEAから
前回のデータを引いてXに入れ(2315)、前回の振
動成分との差を取る。そのXをGAINA倍してXに入
れ(2316)、その絶対値をZに入れる(231
7)。Xの値より前回データと今回データとの大小比較
され(2318)、前回より大きければ前回の制御方向
が誤りと判断しその方向を逆にするよう処理する。前回
演算で決められた振幅値の制御方向をチェックし(23
19)、SFTAが0のとき、即ち、制御方向が増加方
向であればその逆の減少方向にすべくSETAに1を入
れ(2320)、正弦波TAMPからZを減算し(23
21)、AINTに演算されたTAMAを入れる(23
22)。
【0082】SETAが1、即ち、前回演算結果が減少
方向であればその逆の増加方向にすべくSETAに1を
入れ(2324)、正弦波振幅TAMAにZを加算し
(2325)、AINTに演算されたTAMPを入れる
(2326)。2318で前回データより小さくなって
いれば、前回の制御方向は正しいと判断して同じ制御方
向行うよう処理する。前回演算で決められた振幅値の制
御方向をチェックし(2323)、SETAが0、即
ち、制御方向が増加方向であれば2324以降の処理を
行い、SFRAが1、即ち、前回演算結果が減少方向で
あれば2320以降の処理を行う。
【0083】ここで、#A〜E、#GP01〜#GP0
3、#GA01〜#GA03は予め決められた値であ
る。
【0084】位相制御と振幅制御のタイミングチャート
を図24に示す。
【0085】位相制御、振幅制御ともENCNOが#A
までは制御をしないで#A以上になると互いの制御によ
る干渉を避けるために先に位相合わせを行い、収束を速
くするため大きなゲイン値の#GP01で制御され、次
に#B以降は安定させるために#GP01より小さいゲ
インの#GP02で制御して位相合わせを行う。その
間、振幅値は初期値のまま振幅制御は行われず、振幅制
御は#C以降に行われ、収束を速くするために大きなゲ
イン値の#GA01制御され、次に#D以降は安定させ
るために#GA01より小さいゲインの#GA02で制
御して或る振幅を制御し、#C〜#Eまでの間は#Cま
でで制御された位相値のままで位相制御は行わず、#E
以降より位相制御はより小さいゲイン#GP03、振幅
制御はより小さいゲイン#GA03で同時に制御され
る。ここで、振幅制御より位相制御を先に行うのは、位
相が或る程度合わないと振幅制御ができないためであ
る。
【0086】
【発明の効果】以上の説明で明らかなように、本発明に
よれば、モータの立上り時に振動成分を検知してそれに
基づいて逆相の正弦波をモータ電流に乗せることで或る
程度振動を抑えることができ、その後の位相制御、振幅
制御でより高精度に制御することができるという効果が
得られる。
【0087】又、スキャンが終わる時点の一定速度最後
の制御した位相、振幅データはそのまま保持されて次の
スキャンの初期値とされるため、スキャン方向駆動スタ
ートの位置が常に同じであれば位相と振幅が合った状態
から制御がなされ、これによりモータ立ち上げ時の振動
は減り、又、振幅値が所定値以下であれば振幅位相演算
は行わず、そのまま位相制御、振幅制御が行われるため
にスムーズな制御が可能となるという効果が得られる。
【図面の簡単な説明】
【図1】モータ駆動装置全体のブロック図である。
【図2】ロジック部の構成を示すブロック図である。
【図3】パルス生成器の構成を示すブロック図である。
【図4】デッドタイム付加回路の構成を示すブロック図
である。
【図5】プリドライバの回路図である。
【図6】ドライブ部の内部回路図とモータの内部構成及
びその配線図である。
【図7】駆動パルスと給電点状態を表すタイムチャート
図である。
【図8】マイクロステップを給電点状態で表したタイム
チャート図である。
【図9】モータの各コイルに流れる電流を示す図であ
る。
【図10】制御部のメイン制御のフローチャートであ
る。
【図11】マイクロステップ割り込みのフローチャート
である。
【図12】駆動パルス演算のフローチャートである。
【図13】PI制御ブロックのブロック図である。
【図14】電流制御タイマ割り込みのフローチャートで
ある。
【図15】正弦波を発生するフローチャートである。
【図16】正弦波発生用テーブルデータを作るための正
弦波図である。
【図17】エンコーダ部の構成を示すブロック図であ
る。
【図18】エンコーダ割込み処理のフローチャートであ
る。
【図19】FILTERのフローチャートである。
【図20】バンドパスフィルタの周波数特性図である。
【図21】位相制御のフローチャートである。
【図22】振幅制御のフローチャートである。
【図23】位相制御と振幅制御のタイミングチャートで
ある。
【図24】振動波形検知のフローチャートである。
【図25】トルク変動とエンコーダ検知データとの関係
図である。
【図26】スキャナ装置の構成を示すブロック図であ
る。
【図27】モータとミラー台とのメカ的構成を示す構成
図である。
【符号の説明】
1 制御部 2 ロジック部 3 プリドライバ 4 ドライブ部 5 5相ステッピングモータ 6 電流検知抵抗器 7 LPF 14,15 電源電圧検知用抵抗器 8,17 A/D変換器 18 エンコーダ部 1701 コードホイール 1702 エンコーダ
【表1】

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 ステッピングモータの回転情報を得るた
    めの回転検知手段と、少なくとも1 つ以上の正弦波を発
    生する正弦波発生手段と、該正弦波発生手段の正弦波の
    位相と振幅の少なくとも1つを変更する変更手段と、該
    変更手段で発生した信号に基づいてモータに流れる電流
    に正弦波の成分が重畳されるようにモータ電流を制御す
    るモータ電流重畳手段を有するモータ駆動制御装置にお
    いて、 モータが所定の定速度になったか否かを判断する定速度
    検知手段と、該定速度検知手段より定速度と判断される
    と前記回転検知手段からの回転情報から振動情報を得る
    振動情報検出手段を設け、前記変更手段に、前記振動情
    報検出手段に基づいてなされる振動制御手段を設けたこ
    とを特徴とするモータ駆動制御装置。
  2. 【請求項2】 前記正弦波発生手段による正弦波は、歩
    進パルスにより生成されることを特徴とする請求項1記
    載のモータ駆動制御装置。
  3. 【請求項3】 前記振動情報検出手段は、前記正弦波発
    生手段より正弦波を発生しない状態で行われることを特
    徴とする請求項1記載のモータ駆動制御装置。
  4. 【請求項4】 前記振動情報検出手段からの振動の振幅
    成分時報よりその振幅値が所定の値と比較する比較手段
    を設け、前記比較手段より所定値より小さければ前記振
    動制御手段は行わないことを特徴とする請求項1記載の
    モータ駆動制御装置。
  5. 【請求項5】 前記振動情報検出手段は、所定期間内で
    行われることを特徴とする請求項1記載のモータ駆動制
    御装置。
  6. 【請求項6】 前記振動情報検出手段で得た振動情報を
    記憶する記憶手段を設け、次回前記モータ立ち上げ時に
    前記記憶手段からの情報に基づいて前記正弦波発生手段
    にて正弦波を発生することを特徴とする請求項1記載の
    モータ駆動制御装置。
  7. 【請求項7】 モータの相数をN、 歩進パルスの周波数
    をFm、マイクロステップ時の分割数をDとしたとき、
    前記正弦波発生手段で発生される正弦波の周波数をFs
    とすると、 Fs=Fm/D×i/(2×N) :iは自然数 となるような少なくとも1つ以上の正弦波Fsを発生す
    る周波数演算手段を設けたことを特徴とする請求項1記
    載のモータ駆動制御装置。
  8. 【請求項8】 前記正弦波発生手段は、前記周波数演算
    手段により演算された周波数Fsが所定の値より小さい
    少なくとも1つ以上の正弦波を発生することを特徴とす
    る請求項7記載のモータ駆動制御装置。
JP2001379112A 2001-12-12 2001-12-12 モータ駆動制御装置 Pending JP2003189692A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001379112A JP2003189692A (ja) 2001-12-12 2001-12-12 モータ駆動制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001379112A JP2003189692A (ja) 2001-12-12 2001-12-12 モータ駆動制御装置

Publications (1)

Publication Number Publication Date
JP2003189692A true JP2003189692A (ja) 2003-07-04

Family

ID=27590982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001379112A Pending JP2003189692A (ja) 2001-12-12 2001-12-12 モータ駆動制御装置

Country Status (1)

Country Link
JP (1) JP2003189692A (ja)

Similar Documents

Publication Publication Date Title
EP1121753B1 (en) Method and device for controlling a brushless electric motor
JP4959460B2 (ja) モータ起動装置及びモータ起動方法
JP4288851B2 (ja) モータ駆動装置
US6081091A (en) Motor controller, integrated circuit, and method of controlling a motor
US5113125A (en) AC drive with optimized torque
US7560893B2 (en) Dual mode stepper motor
EP1020987A1 (en) Method and device for controlling position sensorless motor
JPH11215894A (ja) ステッピングモータの制御装置
KR100419107B1 (ko) 동기모터구동용디지탈제어기를가진회로
JP2871653B2 (ja) モータ用インバータ駆動回路
US11251728B2 (en) Driving circuit and driving method of stepping motor and electronic machine using the same
US20020011816A1 (en) Motor driving control apparatus
US6204625B1 (en) Driving apparatus for stepping motor
JP2003189692A (ja) モータ駆動制御装置
JP4435909B2 (ja) ステッピングモ―タの速度制御方法
CN111614290B (zh) 步进马达的驱动电路及其驱动方法、使用其的电子机器
US20200280272A1 (en) Driving circuit and driving method of stepping motor and electronic machine using the same
JP2010288331A (ja) インバータ装置
JPH07274591A (ja) ステッピングモーターの駆動回路
JP2002369589A (ja) モータ駆動制御装置、モータ駆動制御装置の制御方法、およびモータ駆動制御装置の制御プログラム
JPH06113594A (ja) ステッピングモータ制御方式
JP2020156226A (ja) ステッピングモータの駆動回路およびその駆動方法、それを用いた電子機器
JP2021129405A (ja) ステッピングモータの駆動回路およびその駆動方法、それを用いた電子機器
JP2002010687A (ja) モータ駆動制御装置
JPH02211096A (ja) 駆動装置