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

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

▶ ミネベア株式会社の特許一覧

特許7634396モータ制御装置、モータ制御方法およびモータ制御プログラム
<>
  • 特許-モータ制御装置、モータ制御方法およびモータ制御プログラム 図1
  • 特許-モータ制御装置、モータ制御方法およびモータ制御プログラム 図2
  • 特許-モータ制御装置、モータ制御方法およびモータ制御プログラム 図3
  • 特許-モータ制御装置、モータ制御方法およびモータ制御プログラム 図4
  • 特許-モータ制御装置、モータ制御方法およびモータ制御プログラム 図5
  • 特許-モータ制御装置、モータ制御方法およびモータ制御プログラム 図6
  • 特許-モータ制御装置、モータ制御方法およびモータ制御プログラム 図7
  • 特許-モータ制御装置、モータ制御方法およびモータ制御プログラム 図8
  • 特許-モータ制御装置、モータ制御方法およびモータ制御プログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-13
(45)【発行日】2025-02-21
(54)【発明の名称】モータ制御装置、モータ制御方法およびモータ制御プログラム
(51)【国際特許分類】
   H02P 8/30 20060101AFI20250214BHJP
【FI】
H02P8/30
【請求項の数】 6
(21)【出願番号】P 2021049016
(22)【出願日】2021-03-23
(65)【公開番号】P2022147669
(43)【公開日】2022-10-06
【審査請求日】2024-03-05
(73)【特許権者】
【識別番号】000114215
【氏名又は名称】ミネベアミツミ株式会社
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】山本 剛宏
【審査官】三島木 英宏
(56)【参考文献】
【文献】米国特許出願公開第2015/0028790(US,A1)
【文献】特開平9-103094(JP,A)
【文献】特開2002-78385(JP,A)
【文献】特開2015-23695(JP,A)
【文献】特開2019-221077(JP,A)
【文献】特開2008-167579(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H02P 8/30
(57)【特許請求の範囲】
【請求項1】
ステッピングモータを目標駆動位置まで回転させるように前記ステッピングモータに与えられる駆動電流を示す目標駆動電流値を指定する駆動信号を出力する駆動信号生成部と、
前記駆動信号に基づいて目標電圧値を生成する目標電圧値生成部と、
前記目標電圧値と前記ステッピングモータに与えられた駆動電流に相当する電圧値との比較結果を出力するコンパレータと、
前記比較結果に基づいて、前記ステッピングモータに与えられる駆動電流を制御する制御信号を生成する制御信号生成部とを備え、
前記駆動信号生成部は、
前記ステッピングモータに与えられる駆動電流を瞬時に初期値から目標駆動電流値に切り替えた場合に前記ステッピングモータが前記目標駆動位置に到達するまでの時間であるモータ駆動基準時間よりも長い時間をかけて、前記ステッピングモータに与えられる駆動電流が前記初期値から前記目標駆動電流値に変化するように、前記駆動信号を調整する第1調整部と、
前記ステッピングモータに与えられる駆動電流が前記目標駆動電流値より大きい最大の電流値に、所定時間オーバーシュートした後に前記目標駆動電流値に戻るように、前記駆動信号を調整する第2調整部とを有する、
モータ制御装置。
【請求項2】
請求項1に記載のモータ制御装置であって、
前記第1調整部および第2調整部は、前記ステッピングモータに与えられる駆動電流が前記初期値から前記目標駆動電流値より大きい最大の電流値までオーバーシュートした後に前記目標駆動電流値に戻るまでの時間が、1回の駆動時間を超えないように前記駆動信号を調整する、
モータ制御装置。
【請求項3】
請求項1または2に記載のモータ制御装置であって、
前記第1調整部および第2調整部は、前記ステッピングモータに与えられる駆動電流が前記初期値から前記目標駆動電流値より大きい最大の電流値に到達するまでにS字曲線または階段状を示す部分を含むように前記駆動信号を調整する、
モータ制御装置。
【請求項4】
請求項1から3のいずれか1項に記載のモータ制御装置であって、
前記第2調整部は、前記ステッピングモータに与えられる駆動電流が前記目標駆動電流値より大きい最大の電流値から前記目標駆動電流値に戻るまでにS字曲線または階段状を示す部分を含むように前記駆動信号を調整する、
モータ制御装置。
【請求項5】
ステッピングモータを目標駆動位置まで回転させるように前記ステッピングモータに与えられる駆動電流を示す目標駆動電流値を指定する駆動信号を出力する駆動信号生成ステップと、
前記駆動信号に基づいて目標電圧値を生成する目標電圧値生成ステップと、
前記目標電圧値と前記ステッピングモータに与えられた駆動電流に相当する電圧値との比較結果を出力する比較結果出力ステップと、
前記比較結果に基づいて、前記ステッピングモータに与えられる駆動電流を制御する制御信号を生成する制御信号生成ステップとを含む、モータ制御方法であって、
前記駆動信号生成ステップは、
前記ステッピングモータに与えられる駆動電流を瞬時に初期値から目標駆動電流値に切り替えた場合に前記ステッピングモータが前記目標駆動位置に到達するまでの時間であるモータ駆動基準時間よりも長い時間をかけて、前記ステッピングモータに与えられる駆動電流が前記初期値から前記目標駆動電流値に変化するように、前記駆動信号を調整する第1調整サブステップと、
前記ステッピングモータに与えられる駆動電流が前記目標駆動電流値より大きい最大の電流値に、所定時間オーバーシュートした後に前記目標駆動電流値に戻るように、前記駆動信号を調整する第2調整サブステップとを含む、
モータ制御方法。
【請求項6】
ステッピングモータを目標駆動位置まで回転させるように前記ステッピングモータに与えられる駆動電流を示す目標駆動電流値を指定する駆動信号を出力する駆動信号生成部と、
前記駆動信号に基づいて目標電圧値を生成する目標電圧値生成部と、
前記目標電圧値と前記ステッピングモータに与えられた駆動電流に相当する電圧値との比較結果を出力するコンパレータと、
前記比較結果に基づいて、前記ステッピングモータに与えられる駆動電流を制御する制御信号を生成する制御信号生成部とを備えたモータ制御装置のモータ制御プログラムであって、
前記ステッピングモータに与えられる駆動電流を瞬時に初期値から目標駆動電流値に切り替えた場合に前記ステッピングモータが前記目標駆動位置に到達するまでの時間であるモータ駆動基準時間よりも長い時間をかけて、前記ステッピングモータに与えられる駆動電流が前記初期値から前記目標駆動電流値に変化するように、前記駆動信号を調整する第1調整工程と、
前記ステッピングモータに与えられる駆動電流が前記目標駆動電流値より大きい最大の電流値に、所定時間オーバーシュートした後に前記目標駆動電流値に戻るように、前記駆動信号を調整する第2調整工程と、をコンピュータに実行させる、
モータ制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モータ制御装置、モータ制御方法およびモータ制御プログラムに関する。
【背景技術】
【0002】
電動スライダやシリンダなどのアクチュエータに使用されるモータには、使いやすさやコストなどの理由によってステッピングモータが採用されることが多い。ステッピングモータでは、1ステップごとの駆動量があらかじめ決められている。駆動装置は、目標駆動位置に応じたステップ数を決定して、オープンループ制御によりステッピングモータを駆動する。
【0003】
ステッピングモータの駆動技術としては、例えば特許文献1に示すモータ駆動装置における制御方法が知られている。特許文献1のモータ駆動装置では、定電流チョッパ回路において、コイルに流れる電流が目標電流に近づくようにパルス変調された制御パルスを生成して、ロジック回路に入力する。ロジック回路は、生成された制御パルスと入力パルスとを論理合成して駆動パルスを生成することにより、入力パルスに同期してステッピングモータを制御している。定電流チョッパ回路が、入力パルスに応じて目標電流を調節可能に構成されていることにより、電流制御性能などを改善することができる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2017-60334号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ステッピングモータは駆動ステップ毎に振動が生じるため、正確な停止位置の情報を取得できない場合がある。例えば,電子基板のチップマウンタなどのアクチュエータが停止と駆動とを短時間に繰り返す装置にステッピングモータが使用されると、振動が十分に減衰する前に次の駆動シーケンスが開始されるため、本来の停止位置と位置情報の読み取り時の位置とのズレが大きくなってしまう。
【0006】
これを回避する方法として、マイクロステップ駆動で励磁状態を段階的に切り替えることで振動を抑制することが考えられる。しかしながら、マイクロステップ駆動で段階的に切り替えた場合、振動は抑制されるものの、回転子の慣性モーメントが小さくなることで本来の静止位置に到達する前に停止してしまい、本来の静止位置とならないことがあった。
【0007】
本発明は上記従来の問題に鑑みなされたものであって、本発明の課題は、より高い精度でモータの静止位置を制御することが可能なモータ制御装置、モータ制御方法およびモータ制御プログラムを提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するために、一実施形態に記載されたモータ制御装置は、ステッピングモータを目標駆動位置まで回転させるように前記ステッピングモータに与えられる駆動電流を示す目標駆動電流値を指定する駆動信号を出力する駆動信号生成部と、前記駆動信号に基づいて目標電圧値を生成する目標電圧値生成部と、前記目標電圧値と前記ステッピングモータに与えられた駆動電流に相当する電圧値との比較結果を出力するコンパレータと、前記比較結果に基づいて、前記ステッピングモータに与えられる駆動電流を制御する制御信号を生成する制御信号生成部とを備え、前記駆動信号生成部は、前記ステッピングモータに与えられる駆動電流を瞬時に初期値から目標駆動電流値に切り替えた場合に前記ステッピングモータが前記目標駆動位置に到達するまでの時間であるモータ駆動基準時間よりも長い時間をかけて、前記ステッピングモータに与えられる駆動電流が前記初期値から前記目標駆動電流値に変化するように、前記駆動信号を調整する第1調整部と、前記ステッピングモータに与えられる駆動電流が前記目標駆動電流値より大きい最大の電流値に所定時間オーバーシュートした後に前記目標駆動電流値に戻るように、前記駆動信号を調整する第2調整部とを有する。
【発明の効果】
【0009】
本発明のモータ制御装置、モータ制御方法およびモータ制御プログラムによれば、より高い精度でモータの静止位置を制御することが可能となる。
【図面の簡単な説明】
【0010】
図1】実施形態のモータ制御装置を組み込んだモータ制御システムの一例を示す概略構成図である。
図2】モータ駆動装置のFPGAの機能ブロックの構成例を示す図である。
図3】モータ駆動基準時間について説明するための図である。
図4】DAC出力における電圧値とコイルに与えられる駆動電流との推移を示す図である。
図5】時間経過に応じた駆動電流値の変化の態様の例を示す図である。
図6】時間経過に応じた駆動電流値の変化の態様の例を示す図である。
図7】時間経過に応じた駆動電流値の変化の態様の例を示す図である。
図8】FPGAの動作を示すフローチャートである。
図9】駆動電流の制御手法による停止位置の変動を示す図である。
【発明を実施するための形態】
【0011】
1.実施形態の概要
先ず、本願において開示される発明の代表的な実施形態について概要を説明する。なお、以下の説明では、一例として、発明の構成要素に対応する図面上の参照符号を、括弧を付して記載している。
【0012】
〔1〕本発明の代表的な実施形態に係るモータ制御装置(2)は、ステッピングモータを目標駆動位置まで回転させるように前記ステッピングモータに与えられる駆動電流を示す目標駆動電流値を指定する駆動信号を出力する駆動信号生成部(22)と、前記駆動信号に基づいて目標電圧値を生成する目標電圧値生成部(23a、23b)と、前記目標電圧値と前記ステッピングモータに与えられた駆動電流に相当する電圧値との比較結果を出力するコンパレータ(27a、27b)と、前記比較結果に基づいて、前記ステッピングモータに与えられる駆動電流を制御する制御信号を生成する制御信号生成部(24a、24b)とを備え、前記駆動信号生成部(22)は、前記ステッピングモータに与えられる駆動電流を瞬時に初期値から目標駆動電流値に切り替えた場合に前記ステッピングモータが前記目標駆動位置に到達するまでの時間であるモータ駆動基準時間よりも長い時間をかけて、前記ステッピングモータに与えられる駆動電流が前記初期値から前記目標駆動電流値に変化するように、前記駆動信号を調整する第1調整部と、前記ステッピングモータに与えられる駆動電流が前記目標駆動電流値より大きい最大の電流値に、所定時間オーバーシュートした後に前記目標駆動電流値に戻るように、前記駆動信号を調整する第2調整部とを有する。
【0013】
〔2〕上記〔1〕に記載のモータ制御装置において、前記第1調整部および第2調整部は、前記ステッピングモータに与えられる駆動電流が前記初期値から前記目標駆動電流値より大きい最大の電流値までオーバーシュートした後に前記目標駆動電流値に戻るまでの時間が、1回の駆動時間を超えないように前記駆動信号を調整してもよい。
【0014】
〔3〕上記〔1〕または〔2〕に記載のモータ制御装置において、前記第1調整部および第2調整部は、前記ステッピングモータに与えられる駆動電流が前記初期値から前記目標駆動電流値より大きい最大の電流値に到達するまでにS字曲線または階段状を示す部分を含むように前記駆動信号を調整してもよい。
【0015】
〔4〕上記〔1〕から〔3〕のいずれか1つに記載のモータ制御装置において、前記第2調整部は、前記ステッピングモータに与えられる駆動電流が前記目標駆動電流値より大きい最大の電流値から前記目標駆動電流値に戻るまでにS字曲線または階段状を示す部分を含むように前記駆動信号を調整してもよい。
【0016】
〔5〕本発明の代表的な実施形態に係るモータ制御方法は、ステッピングモータを目標駆動位置まで回転させるように前記ステッピングモータに与えられる駆動電流を示す目標駆動電流値を指定する駆動信号を出力する駆動信号生成ステップと、前記駆動信号に基づいて目標電圧値を生成する目標電圧値生成ステップと、前記目標電圧値と前記ステッピングモータに与えられた駆動電流に相当する電圧値との比較結果を出力する比較結果出力ステップと、前記比較結果に基づいて、前記ステッピングモータに与えられる駆動電流を制御する制御信号を生成する制御信号生成ステップとを含む、モータ制御方法であって、前記駆動信号生成ステップは、前記ステッピングモータに与えられる駆動電流を瞬時に初期値から目標駆動電流値に切り替えた場合に前記ステッピングモータが前記目標駆動位置に到達するまでの時間であるモータ駆動基準時間よりも長い時間をかけて、前記ステッピングモータに与えられる駆動電流が前記初期値から前記目標駆動電流値に変化するように、前記駆動信号を調整する第1調整サブステップと、前記ステッピングモータに与えられる駆動電流が前記目標駆動電流値より大きい最大の電流値に、所定時間オーバーシュートした後に前記目標駆動電流値に戻るように、前記駆動信号を調整する第2調整サブステップとを含む。
【0017】
〔6〕本発明の代表的な実施形態に係るモータ制御プログラムは、ステッピングモータを目標駆動位置まで回転させるように前記ステッピングモータに与えられる駆動電流を示す目標駆動電流値を指定する駆動信号を出力する駆動信号生成部と、前記駆動信号に基づいて目標電圧値を生成する目標電圧値生成部と、前記目標電圧値と前記ステッピングモータに与えられた駆動電流に相当する電圧値との比較結果を出力するコンパレータと、前記比較結果に基づいて、前記ステッピングモータに与えられる駆動電流を制御する制御信号を生成する制御信号生成部とを備えたモータ制御装置のモータ制御プログラムであって、前記ステッピングモータに与えられる駆動電流を瞬時に初期値から目標駆動電流値に切り替えた場合に前記ステッピングモータが前記目標駆動位置に到達するまでの時間であるモータ駆動基準時間よりも長い時間をかけて、前記ステッピングモータに与えられる駆動電流が前記初期値から前記目標駆動電流値に変化するように、前記駆動信号を調整する第1調整工程と、前記ステッピングモータに与えられる駆動電流が前記目標駆動電流値より大きい最大の電流値に、所定時間オーバーシュートした後に前記目標駆動電流値に戻るように、前記駆動信号を調整する第2調整工程と、をコンピュータに実行させる。
【0018】
2.実施形態の具体例
以下、本発明の実施の形態の具体例について図を参照して説明する。なお、以下の説明において、各実施の形態において共通する構成要素には同一の参照符号を付し、繰り返しの説明を省略する。
【0019】
実施形態のモータ制御装置、モータ制御方法およびモータ制御プログラムについて図面を用いて説明する。
【0020】
図1は、実施形態のモータ制御装置を組み込んだモータ制御システムの一例を示す概略構成図である。モータ制御システム100は、図1に示すように、ステッピングモータ1と、モータ制御装置2とを備えている。ステッピングモータ1としては、2相のコイルに所定の駆動電流を与えることにより、モータのロータが所定の角度だけ回転するように構成されたモータである2相ステッピングモータが用いられてもよい。なお、本明細書では、モータのロータが回転することを単に、モータが回転するともいう。
【0021】
モータ制御装置2は、図1に示すように、フラッシュメモリ(Flash Memory)21と、FPGA(Field Programmable Gate Array)22と、DAC(Digital to Analog Converter)23a、23bと、PWM(Pulse Width Modulation)制御部24a、24bと、Hブリッジ回路25a、25bと、電流検出抵抗26a、26bと、コンパレータ27a、27bとを有している。FPGA22は、駆動信号生成部の一例である。DAC23a、23bは、目標電圧値生成部の一例である。PWM制御部24a、24bは、制御信号生成部の一例である。目標駆動電流値よりも大きい最大の電流値、決められた電流値に至るまでに要する所定時間、時間経過に応じた駆動電流値の変化の態様、1回の駆動時間、目標電圧値を算出するための抵抗値(電圧検出抵抗26の抵抗値)などの制御に必要なパラメータなどが挙げられる。これらのパラメータの詳細については後述する。フラッシュメモリ21とともに、あるいはフラッシュメモリ21に代えて、ROM(Read Only Memory)等の任意の記憶装置を用いてもよい。フラッシュメモリ21に記憶される各種パラメータは、工場から出荷される前に生産者によって設定されてもよい。フラッシュメモリ21に記憶される各種パラメータは、ユーザに納品された後にエンジニア(納品者)によって設定されてもよい。フラッシュメモリ21に記憶される各種パラメータは、納品された後にユーザによって設定されてもよい。
【0022】
FPGA22は、フラッシュメモリ21に格納されたパラメータに基づいて各種の機能を実現する処理を実行するようにプログラムされた回路である。FPGA22は、ステッピングモータ1を目標駆動位置まで回転させるようにステッピングモータ1のコイルに与える駆動電流である目標駆動電流を指定する駆動信号を出力する。
【0023】
DAC23は、FPGA22から出力された駆動信号に基づいて目標電圧値を生成する。DAC23は、目標電圧値をコンパレータ27の入力端子に出力する。目標電圧値とは、Hブリッジ回路25からステッピングモータ1のコイルに与えられる駆動電流の値が所望の値となるように調整されたDAC23の出力電圧値である。目標電圧値は、駆動電流の所望の値と電圧検出抵抗26の抵抗値との積によって得られる値に調整することができる。
【0024】
Hブリッジ回路25は、ステッピングモータ1のコイルに与えられる駆動電流を切り替えるとともに、ステッピングモータ1のコイルに流れた電流に相当する電圧をコンパレータ27に入力する。Hブリッジ回路25aは、PWM制御部24aから入力されたPWM信号に応じてA相のコイルに与えられる駆動電流を切り替える。同様に、Hブリッジ回路25bは、PWM制御部24bから入力されたPWM信号に応じてB相のコイルに与えられる駆動電流を切り替える。
【0025】
Hブリッジ回路25は、電流検出抵抗26を介して接地されている。Hブリッジ回路25と電流検出抵抗26との間に、コンパレータ27の入力端子が接続されている。
【0026】
電流検出抵抗26は、例えば、電流計と並列に設けられたシャント抵抗器によって構成してもよい。コンパレータ27に入力される電圧値のうち、Hブリッジ回路25から入力された電圧値は、ステッピングモータ1のコイルに流れた電流に相当する電圧値と等しい。ステッピングモータ1のコイルに流れた電流に相当する電圧値は、電流検出抵抗26として設けられたシャント抵抗器の抵抗値とHブリッジ回路25に流れた駆動電流値との積で表される値である。
【0027】
コンパレータ27は、DAC23から入力された目標電圧値とHブリッジ回路25から入力された電圧値とを比較して、比較結果に応じた2値の出力値を出力する。2値の出力値は、High(1)とLow(0)である。
【0028】
具体的には、コンパレータ27の反転端子には、ステッピングモータ1のコイルに流れた電流に相当する電圧値であるコイル電圧値の波形が入力される。コンパレータ27の非反転端子にはDACから出力される目標電圧値の波形が入力される。コンパレータ27は、コイル電圧値が目標電圧値よりも小さい場合は、High(1)の出力値を出力する。コンパレータ27は、コイル電圧値が目標電圧値よりも大きい場合は、Low(0)の出力値を出力する。コンパレータ27は、コイル電圧値が目標電圧値と等しい場合は、出力値を出力しない。コンパレータ27は、コイル電圧値と目標電圧値との関係に応じて、必要な場合は「1」、「0」の矩形波を出力する。
【0029】
PWM制御部24は、コンパレータ27から入力された2値の出力値に応じて、FPGA22からの駆動パルスのduty比を調整して、PWM信号を生成する。PWM制御部24は、コンパレータ27から「1」が出力された場合は、駆動電流が小さいので、ステッピングモータ1のコイル与えられる駆動電流を上げるためにduty比を増加させたPWM信号を生成する。PWM制御部24は、コンパレータ27から「0」が出力された場合は、駆動電流が大きいので、ステッピングモータ1のコイルに与えられる駆動電流を下げるためにduty比を減少させたPWM信号を生成する。
【0030】
このように、モータ制御装置2は、FPGA22から出力される駆動信号に基づいて、ステッピングモータ1のコイルに与えられる駆動電流を制御することができる。ここで、駆動信号をDAC23に入力するFPGA22についてさらに説明する。
【0031】
図2は、モータ駆動装置のFPGAの機能ブロックの構成例を示す図である。
【0032】
FPGA22は、図2に示すように、駆動信号生成タイミング部221と、目標駆動電流取得部222と、駆動信号調整生成部223とを機能部として備えるようにプログラムされている。
【0033】
駆動信号生成タイミング部221は、駆動信号の生成タイミングを決定して、駆動信号の生成タイミングであることを目標駆動電流取得部222にその旨を通知する。駆動信号生成タイミング部221は、必要に応じて、PWM制御部24に駆動パルスを出力する。
【0034】
目標駆動電流取得部222は、駆動信号の生成タイミングであることの通知を受けると、フラッシュメモリ21から目標駆動電流値などの制御に必要なパラメータを取得して、駆動信号調整生成部223に渡す。目標駆動電流値とは、ステッピングモータ1を目標駆動位置まで回転させるようにステッピングモータ1に与えられる駆動電流の大きさを示す値である。すなわち、ステッピングモータ1が駆動されて最終的に目標の位置に移動したときにステッピングモータ1のコイルに流れる電流値が目標駆動電流値である。
【0035】
駆動信号調整生成部223は、目標駆動電流値などの制御に必要なパラメータを受け取ると、駆動信号を生成する。駆動信号調整生成部223は、ステッピングモータ1のコイルに与えられる駆動電流が所望の変化をするように調整した駆動信号を生成する。所望の変化とは、ステッピングモータ1のコイルに与えられる駆動電流が目標駆動電流値などのパラメータや経過時間に応じた変化をすることである。時間経過に応じた駆動電流値の変化の態様については、後述する。駆動信号調整生成部223は、第1調整部224と第2調整部225とを有している。
【0036】
第1調整部224は、モータ駆動基準時間よりも長い時間をかけて、ステッピングモータ1のコイルに与えられる駆動電流を初期値から目標駆動電流値に変化するように、駆動信号を調整する。モータ駆動基準時間とは、コイルに与えられる駆動電流を瞬時に目標駆動電流に切り替えたときにステッピングモータ1が目標駆動位置に到達するまでの時間である。
【0037】
ここで、モータ駆動基準時間について説明する。
【0038】
図3は、モータ駆動基準時間について説明するための図である。図3(a)はステッピングモータ1のコイルに与えられる駆動電流を瞬時に初期値から目標駆動電流に切り替えた場合の時間経過に応じた回転位置を示す。図3(b)は駆動信号調整生成部223により生成された駆動信号にしたがってステッピングモータ1のコイルに与えられる駆動電流の時間経過に応じた変化を示す。
【0039】
ステッピングモータ1は、時刻0において、コイルに与えられる駆動電流が瞬時に初期値から目標駆動電流に切り替えられると、図3(a)に示すように、時刻tに目標駆動位置P1に到達する。目標駆動位置P1とは、ステッピングモータ1のコイルに目標駆動電流を流すことによりステッピングモータ1が駆動されて最終的に移動すべき位置として目標とする位置である。しかしながら、ステッピングモータ1は、目標駆動位置P1を超えて回転する。ステッピングモータ1は、目標駆動位置P1を超えた後に逆転することで、さらに目標駆動位置P1を超える。このように、ステッピングモータ1は、目標駆動位置P1を通り過ぎるような振動を繰り返した後に静止する。本明細書では、コイルに与えられる駆動電流を目標駆動電流に切り替えた時刻0から目標駆動位置P1に最初に到達するまでの時刻tによって定義される時間T1をモータ駆動基準時間とよぶ。
【0040】
第1調整部224は、ステッピングモータ1のコイルに与えられる駆動電流が緩やかに変化して、時刻0から、モータ駆動基準時間T1に至ったときの時刻tよりも後の時刻tまでの長い時間T2をかけて目標駆動電流値aになるように駆動信号を調整する。この構成により、ステッピングモータ1が停止する際に発生する振動を抑制することができる。
【0041】
第2調整部225は、ステッピングモータ1のコイルに与えられる駆動電流が目標駆動電流値より大きい最大の電流値にオーバーシュートして所定時間保持された後に目標駆動電流値に戻るように、駆動信号を調整する。オーバーシュートした電流値を保持する所定時間は、「決められた電流値に至るまでに要する所定時間」としてフラッシュメモリ21に格納された値を用いて決定する。
【0042】
第1調整部224および第2調整部225は、駆動電流が初期値からオーバーシュートして目標駆動電流値に戻るまでの時間が1回の駆動時間を超えないように調整する。1回の駆動時間とは、1つの目標駆動電流に基づいて駆動する時間として設定された時間である。1回の駆動時間は、例えば、ステッピングモータ1の初期値としてフラッシュメモリ21に格納された値を用いる。
【0043】
駆動信号調整生成部223において、第1調整部224および第2調整部は、DAC23の出力が所望の電圧値となるようにDAC23に入力する駆動信号を調整することができる。第1調整部224および第2調整部225は、駆動信号を調整することによってステッピングモータ1のコイルに与えられる駆動電流を変動させる。ステッピングモータ1のコイルに与えられる駆動電流を変動させる時間は、「決められた電流値に至るまでに要する所定時間」として予め設定されている。「決められた電流値に至るまでに要する所定時間」としては、例えば、(1)初期値から目標駆動電流値に至るまでに要する時間、(2)目標駆動電流値に至ってから目標駆動電流値より大きい最大の電流値に至るまでに要する時間、(3)目標駆動電流値より大きい最大の電流値に至ってからオーバーシュートの所定時間が経過するまでに要する時間、(4)オーバーシュートの所定時間が経過してから目標電流値に至るまでに要する時間の4つの時間が設定されている。
【0044】
「決められた電流値に至るまでに要する所定時間」のうち、(1)初期値から目標駆動電流値に至るまでに要する時間は、モータ駆動基準時間よりも長い時間に設定されなければならない。また、「決められた電流値に至るまでに要する所定時間」のうち、(1)から(5)までの合計の時間が、1回の駆動時間を超えないように設定されなければならない。
【0045】
「決められた電流値に至るまでに要する所定時間」は、制御に必要なパラメータとして、フラッシュメモリ21に格納されている。ここで、駆動信号調整生成部223が生成する駆動信号に基づくDAC出力と駆動電流との関係について説明する。
【0046】
図4は、調整された駆動信号に基づくDAC出力における電圧値とコイルに与えられる駆動電流との推移を示す図である。図4(a)は時間の経過に応じたDAC出力における電圧値の推移を示す。図4(b)は時間経過における駆動電流の推移を示す。
【0047】
図4(a)において、上段はDAC23aの出力電圧値の推移を示す。図4(a)において、下段はDAC23bの出力電圧値の推移を示す。図4(a)中、d、dは、目標駆動電流に相当するDAC23a、23bの電圧値を示している。図4(b)において、上段はA相のコイルに与えられる駆動電流の推移を示す。図4(b)において、下段はB相のコイルに与えられる駆動電流の推移を示す。図4(b)中、a、aはA相の目標駆動電流を示している。図4(b)中、a、aはB相の目標駆動電流を示している。また、a、aはマイナスの値である。
【0048】
(第1の区間:t11からt12
FPGA22から入力された駆動信号に基づいて、まずDAC23aの出力電圧値が、時刻t11から低下する。そして、DAC23aの出力電圧値は、時刻t12には「0」になる。この過程では、DAC23aから出力される目標電圧値がコイル電圧値よりも低下することになるので、コンパレータ27aは「0」を出力する。その結果、PWM制御部24aは、ステッピングモータ1のA相のコイルに与えられる駆動電流を下げるよう制御をする。PWM制御部24aの制御に応じて、ステッピングモータ1のA相の駆動電流の絶対値は0まで低下する。
【0049】
(第2の区間:t12からt13
FPGA22から入力された駆動信号に基づいて、DAC23aの出力電圧値が時刻t12において「0」になった後、上昇する。この過程では、DAC23aから出力される目標電圧値がコイル電圧値よりも大きいと考えられるので、コンパレータ27aは「1」を出力する。その結果、PWM制御部24aは、ステッピングモータ1のA相のコイルに与えられる駆動電流を上げるよう制御をする。PWM制御部24aの制御に応じて、ステッピングモータ1のA相の駆動電流は上昇する。
【0050】
(第3の区間:t13からt14
FPGA22から入力された駆動信号に基づいて、DAC23aの出力電圧値が時刻t13において目標駆動電流を示す電圧値になった後も上昇する。この過程でも、DAC23aから出力される目標電圧値がコイル電圧値よりも小さいと考えられるので、コンパレータ27aは「1」を出力する。その結果、PWM制御部24aは、ステッピングモータ1のA相のコイルに与えられる駆動電流を上げるよう制御をする。PWM制御部24aの制御に応じて、ステッピングモータ1のA相の駆動電流は上昇する。
【0051】
(第4の区間:t14からt15
FPGA22から入力された駆動信号に基づいて、DAC23aの出力電圧値は、A相の駆動電流が目標駆動電流値よりも大きい最大の電流値を示す、時刻t14まで上昇する。DAC23aの出力電圧値は、時刻t14から時刻t15までの所定時間の間、その出力電圧値を保持する。この過程では、DAC23aから出力される目標電圧値とコイル電圧値とが等しくなると考えられるので、コンパレータ27aは出力しない。その結果、PWM制御部24aは、ステッピングモータ1のA相のコイルに与えられる駆動電流を維持するよう制御をする。PWM制御部24aの制御に応じて、ステッピングモータ1のA相の駆動電流は維持される。
【0052】
(第4の区間のおわり:t15
FPGA22から入力された駆動信号に基づいて、DAC23aの出力電圧値は、時刻t15になると、目標駆動電流を示す電圧値に戻る。この過程では、DAC23aから出力される目標電圧値がコイル電圧値よりも小さくなると考えられるので、コンパレータ27aは「0」を出力する。その結果、PWM制御部24aは、ステッピングモータ1のA相のコイルに与えられる駆動電流を目標駆動電流となるまで下げるよう制御をする。PWM制御部24aの制御に応じて、ステッピングモータ1のA相の駆動電流は目標駆動電流となるように低下する。
【0053】
FPGA22の駆動信号調整生成部223は、1回の駆動時間の間に、DAC23aの出力電圧値が、上記した第1の区間から第4の区間の変動を示すように調整した駆動信号を生成している。第1の区間の開始から第2の区間の終わりまでの時間は、(1)初期値から目標駆動電流値に至るまでに要する時間に相当する。第3の区間は、(2)目標駆動電流値に至ってから目標駆動電流値より大きい最大の電流値に至るまでに要する時間に相当する。第4の区間は、(3)目標駆動電流値より大きい最大の電流値に至ってからオーバーシュートの所定時間が経過するまでに要する時間に相当する。これらの所定時間は「決められた電流値に至るまでに要する所定時間」としてフラッシュメモリ21に格納されている値を用いて決定する。駆動信号調整生成部223は、第1の区間から第4の区間などの各区間の開始時刻、終了時刻を、「決められた電流値に至るまでに要する所定時間」としてフラッシュメモリ21に格納されている値を用いて決定する。
【0054】
次の駆動時間においても、図4(a)に示すように、FPGA22から入力された駆動信号に基づいて、DAC23bの出力電圧値が、次のt21からt25のタイミングで、t11からt15におけるDAC23aの出力電圧値と同様に変動する。DAC23bの出力電圧値の変動により、PWM制御部24bは、ステッピングモータ1のB相のコイルに与えられる駆動電流が所望の変化をするように制御をする。PWM制御部24bの制御に応じて、ステッピングモータ1のB相の駆動電流は図4(b)に示すように変動する。
【0055】
さらに次の駆動時間においても、図4(a)に示すように、FPGA22から入力された駆動信号に基づいて、DAC23aの出力電圧値が、次のt31からt35のタイミングで、t11からt15におけるDAC23aの出力電圧値と同様に変動する。DAC23aの出力の変動により、PWM制御部24aは、ステッピングモータ1のA相のコイルに与えられる駆動電流が所望の変化をするように制御をする。PWM制御部24aの制御に応じて、ステッピングモータ1のA相の駆動電流は図4(a)のt31からt35に示すように変動する。このとき、図4(a)のt31からt35に示すように、PWM制御部24aは、駆動パルスに基づいて、t11からt15の間とは逆の位相でステッピングモータ1のA相の駆動電流を変動させている。
【0056】
図4の例では、駆動電流が線形に変化する態様を用いて説明しているが変化のパターンはこれに限定されない。図5から図7を用いて、時間経過に応じた駆動電流値の変化の態様について説明する。時間経過に応じた駆動電流値の変化の態様は、制御に必要なパラメータの一つとして、フラッシュメモリ21に格納されている。
【0057】
図5から図7は、モータのコイルに与えられる、時間経過に応じた駆動電流値の変化の態様を示す図である。モータのコイルに与えられる駆動電流は、図5から図7に示すように、傾斜状、S字状、階段状に変化するようにさせてもよい。図5は第1の区間から第3の区間において、モータのコイルに与えられる、時間経過に応じた駆動電流値の変化の態様を示している。図5(a)は、第1の区間の開始時刻t11から第3の区間の終了時刻t14においてS字状に変化させている。図5(b)は、第1の区間の開始時刻t11から第3の区間の終了時刻t14において階段状に変化させている。
【0058】
図6は、第4の区間の後の第5の区間において、モータのコイルに与えられる、時間経過に応じた駆動電流値の変化の態様の例を示す図である。図6(a)は、第5の区間(時刻t15から時刻t16)において傾斜状に変化させている。図6(b)は、第5の区間(時刻t15から時刻t16)においてS字状に変化させている。図6(c)は、第5の区間(時刻t15から時刻t16)において階段状に変化させている。
【0059】
第5の区間は、「決められた電流値に至るまでに要する所定時間」のうちの(4)オーバーシュートの所定時間が経過してから目標電流値に至るまでに要する時間としてフラッシュメモリ21に格納されている値を用いて決定することができる。
【0060】
図7は、第1の区間の開始時刻t11から第3の区間の終了時刻t14および第5の区間(時刻t15から時刻t16)において、モータのコイルに与えられる、時間経過に応じた駆動電流値の変化の態様を示している。図7(a)では、第1の区間の開始時刻t11から第3の区間の終了時刻t14においては階段状に変化させ、第5の区間(時刻t15から時刻t16)においても階段状に変化させている。図7(b)では、第1の区間の開始時刻t11から第3の区間の終了時刻t14においてはS字状に変化させ、第5の区間(時刻t15から時刻t16)においても階段状に変化させている。
【0061】
FPGA22の駆動信号調整生成部223は、モータのコイルに与えられる駆動電流が上記した駆動電流の態様となるように、DAC23aの出力電圧値を変化させる駆動信号を生成することができる。
【0062】
次に、上述したようにDAC23a、23bの出力電圧値を変化させる駆動信号を生成されるFPGAの動作について説明する。
【0063】
図8は、FPGAの動作を示すフローチャートである。
【0064】
駆動信号生成タイミング部221において、駆動パルスを出力開始するかを判断する(ステップS101)。駆動パルスの出力を開始すると判断した場合(ステップS101:YES)、目標駆動電流取得部222が目標駆動電流等のパラメータを取得する(ステップS102)。目標駆動電流取得部222は、取得した目標駆動電流等のパラメータを駆動信号調整生成部223に渡す。
【0065】
駆動信号調整生成部223は、目標駆動電流等のパラメータを受け取ると、第1調整部224において、目標駆動電流値に到達する時間をモータ駆動基準時間よりも長い時間に調整した駆動信号を生成する(ステップS103)。この駆動信号により、DAC23aの出力電圧値は、図4のt11からt13までに示すように変動する。
【0066】
駆動信号調整生成部223は、目標駆動電流値に到達する駆動信号を生成した後、第2調整部において、目標駆動電流値より大きい最大の電流値に到達するように調整した駆動信号を生成する(ステップS104)。この駆動信号により、DAC23aの出力電圧値は、図4のt13からt14までに示すように変動する。
【0067】
駆動信号調整生成部223は、目標駆動電流値より大きい最大の電流値に到達する駆動信号を生成した後、第2調整部は、目標駆動電流値より大きい最大の電流値に到達してから所定時間が経過したかを判断する(ステップS105)。第2調整部は、第2調整部は、所定時間が経過したと判断できない場合は(ステップS105:NO)定期的にステップS105の判断を繰り返し、所定時間が経過したと判断するまで、目標駆動電流値より大きい最大の電流値を維持するように調整した駆動信号を生成している。この駆動信号により、DAC23aの出力電圧値は、図4のt14からt15までに示すように一定の値を維持する。
【0068】
第2調整部は、所定時間が経過したと判断した場合は(ステップS105:YES)、目標駆動電流値に戻すように調整する(ステップS106)。この駆動信号により、DAC23aの出力電圧値は、図4のt15に示すように変動する。
【0069】
図9は、駆動電流の各制御手法において駆動から停止するまでの位置変動を示す図である。図9では、目標とする駆動位置は1.8(deg)の位置である。曲線Aはフルステップ駆動により駆動電流を制御した場合の変動を示している。曲線Bはマイクロステップ駆動により駆動電流を制御した場合の変動を示している。曲線Cは本実施形態の駆動手法により駆動電流を制御した場合の変動を示している。
【0070】
図9に示す例では、曲線Aの停止位置は1.91(deg)の位置である。曲線Aの読み取り位置と目標の停止位置との誤差は、+0.11(deg)である。曲線Bの停止位置は1.75(deg)の位置である。曲線Bの読み取り位置と目標の停止位置との誤差は、-0.05(deg)である。曲線Cの停止位置は1.80(deg)の位置である。曲線Cの読み取り位置と目標の停止位置との誤差は、0.00(deg)である。
【0071】
図9に示すように、フルステップ駆動を示す曲線Aでは大きく振動して、停止するまでに時間を要し、位置情報読み取りのタイミングまでに完全には停止していない。一方で、マイクロステップ駆動を示す曲線Bでは、位置情報読み取りのタイミングには完全には停止しているが、トルクが足りないため、目標の駆動位置に到達する前に停止してしまう。これらに比べて、本実施形態の駆動手法を示す曲線Cでは、位置情報読み取りのタイミングで完全に停止しており、目標の駆動位置に停止している。
【0072】
このように、本実施形態のモータ制御装置、モータ制御システムおよびモータ制御方法によれば、ステップ毎に生じる振動と回転子の慣性モーメントの両方の影響を抑制し、高精度で静止することが可能となる。
【0073】
(実施形態の変形例)
以上の実施形態では、図1の構成のモータ制御システムを用いて、具体的な一例について説明したが、図1の構成に限定されない。同様に、ステッピングモータ1、モータ制御装置2の構成についても説明した例に特に限定されない。
【0074】
例えば、FPGA22に代えて、CPU等のプロセッサ、ROMやRAM等の各種メモリ、タイマ(カウンタ)、A/D変換回路、入出力I/F回路、およびクロック生成回路等のハードウェア要素を有し、各構成要素がバスや専用線を介して互いに接続されたプログラム処理装置(例えば、マイクロコントローラ:MCU)によって構成されていてもよい。その場合、プログラム処理装置のプロセッサがメモリ等のフラッシュメモリ21に記憶されたプログラムに従って各種演算を行うとともにA/D変換回路および入出力I/F回路等の周辺回路を制御することによって図2に示す各機能部の構成を実現することができる。
【0075】
以上の実施形態において、図4に示したDAC出力における電圧値と駆動電流との推移は具体例であって、推移の態様はこれらに限定されない。
【0076】
以上の実施形態において、図8に示したFPGAの処理フローは具体例であって、処理フローはこれらに限定されない。
【符号の説明】
【0077】
1…ステッピングモータ、2…モータ制御装置、21…フラッシュメモリ、22…FPGA、23a、23b…DAC、24a、24b…PWM制御部、25a、25b…Hブリッジ回路、26a、26b…電流検出抵抗、27a、27b…コンパレータ、221…駆動信号生成タイミング部、222…目標駆動電流取得部、223…駆動信号調整生成部、224…第1調整部、225…第2調整部、100…モータ制御システム
図1
図2
図3
図4
図5
図6
図7
図8
図9