JP6813755B2 - モータ駆動装置 - Google Patents

モータ駆動装置 Download PDF

Info

Publication number
JP6813755B2
JP6813755B2 JP2017213121A JP2017213121A JP6813755B2 JP 6813755 B2 JP6813755 B2 JP 6813755B2 JP 2017213121 A JP2017213121 A JP 2017213121A JP 2017213121 A JP2017213121 A JP 2017213121A JP 6813755 B2 JP6813755 B2 JP 6813755B2
Authority
JP
Japan
Prior art keywords
current
output terminal
output
stepping motor
reference value
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
JP2017213121A
Other languages
English (en)
Other versions
JP2019088064A (ja
Inventor
山口 直樹
直樹 山口
Original Assignee
株式会社メレック
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 株式会社メレック filed Critical 株式会社メレック
Priority to JP2017213121A priority Critical patent/JP6813755B2/ja
Publication of JP2019088064A publication Critical patent/JP2019088064A/ja
Application granted granted Critical
Publication of JP6813755B2 publication Critical patent/JP6813755B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Control Of Stepping Motors (AREA)

Description

本発明は、複数のコイルを備えたステッピングモータを駆動させるモータ駆動装置に関し、特に、相数(コイル数)の異なるステッピングモータを駆動させることが可能なモータ駆動装置に関する。
ステッピングモータは、幅広い分野で使われており、例えばプリンタや複写機などのOA機器、工作機械や組み立て機械のような産業用機械装置、様々な精密検査装置、光関連装置、医用分析装置、学術研究用の精密測定装置などに用いられている。特に、ステッピングモータは、簡単な回路構成で正確な位置決めが可能であるため、高精度な制御が求められる精密機械装置や測定装置などに多く用いられている。
ステッピングモータは、モータ電流が流れる複数の相(励磁相)を有しており、2つの相を有するものを2相ステッピングモータと言い、5つの相を有するものを5相ステッピングモータと言う。現在では、2相、3相、及び5相のステッピングモータが実用化されている。
例えば装置の種類によって、2相ステッピングモータしか使用していない装置もあれば、5相ステッピングモータしか使用していない装置もある。また、装置によっては2相ステッピングモータと5相ステッピングモータとを混在させているものもあり、装置の軸の用途によって2相と5相を使い分けていることもある。
通常、ステッピングモータを回転駆動する場合、ステッピングモータ用のコントローラからモータ駆動装置(一般にドライバと言う)に対して指令パルスを入力し、ドライバは、その入力された指令パルスに従って、ステッピングモータにおける複数のコイルにモータ電流を順番に流して励磁相を切り替えることにより、ステッピングモータのロータ(モータ回転子)を回転させる。この場合、指令パルスの入力速度(周波数)を制御することにより、ステッピングモータの回転速度を変化させることができる。
従来のステッピングモータに用いられるドライバは、電流を流すコイルを切り換えるために、相数の異なる2相ステッピングモータ、3相ステッピングモータ、及び5相ステッピングモータに対して、相数別にそれぞれ専用に開発され、また、2相用、3相用、及び5相用として別々に製造販売されている。
例えば、特開2011−155810号公報(特許文献1)には、2相ステッピングモータに用いられるドライバのマイクロステップ駆動方法に関する発明が記載されている。また、特開2004−266974号公報(特許文献2)及び特開2008−61439号公報(特許文献3)には、3相ステッピングモータ及び5相ステッピングモータのマイクロステップ駆動に関する発明がそれぞれ記載されている。特に、特許文献2の3相ステッピングモータをドライバでステップ駆動する場合や、特許文献3の5相ステッピングモータをドライバでステップ駆動する場合には、各ステップ位置でそのステップ位置に対応したトルクベクトルが得られるようにステッピングモータのコイルを励磁する励磁パターンを用いてモータの駆動制御をしている。
ここで、励磁パターンとは、励磁状態にある励磁相と、各励磁相における励磁電流方向との組合せを示すデータであり、ステッピングモータのモータ回転軸を電気角で一周(360°)回転させる分の複数種類の励磁パターンが、ドライバに内蔵されたメモリに格納されている。このような励磁パターンに従ってステッピングモータのコイルを順番に励磁することによって、ステッピングモータを円滑にステップ駆動させることができる。
特開2011−155810号公報 特開2004−266974号公報 特開2008−61439号公報
上述のように、従来では2相ステッピングモータ、3相ステッピングモータ、及び5相ステッピングモータに対して、それぞれの専用のドライバを開発して製造することが常識となっている。しかし、ステッピングモータの相数ごとに専用のドライバが必要であると、ドライバ開発費の増大を招くため、ドライバの価格を高める要因の一つとなっていた。また、ドライバを製造するためには、部材調達、製造、検査、管理といったそれぞれの工程を、相数の異なる専用のドライバごとにそれぞれ行わなければならないため、大きな負担となっていた。
更に、ステッピングモータを使用するユーザー側においても、2相、3相、及び5相の各ステッピングモータに対して、それぞれ専用のドライバを選択して別々に準備することが必要となる。この場合、コストの増大を招くだけでなく、それぞれのドライバの特性、相性、形状等によってステッピングモータの選択範囲が狭められることや、装置設計が制限されることもあった。
また、仕様変更や設計変更が生じて、装置に既に設置されているステッピングモータを新しいものに取り換える場合、ステッピングモータと一緒にドライバも変更する必要があることや、電源の設計や配線の設計なども見直す必要があることもある。このため、多くのステッピングモータを同時に交換する場合、作業が煩雑になるとともに多額の費用を要し、また、ドライバの変更に伴うリスクも大きかった。
その上、稼働している装置には定期的なメンテナンスや不具合発生時のメンテナンスが必要となるが、相数が異なるステッピングモータが設置されていると、メンテナンスのための部品管理やメンテナンス作業の負担を大幅に増大させるという問題もあった。
本発明は上記従来の課題に鑑みてなされたものであって、その目的は、2相ステッピングモータや5相ステッピングモータ等の相数が異なるステッピングモータに対して同様に用いることが可能なモータ駆動装置(ドライバ)を提供することにある。
上記目的を達成するために、本発明により提供されるモータ駆動装置は、複数のコイルを備えたステッピングモータを駆動させるモータ駆動装置であって、前記ステッピングモータの前記コイルに電流を出力する複数の出力端子と、前記出力端子ごとに2つずつ配されるスイッチング素子、及び前記スイッチング素子を駆動するゲートドライバを備える出力段と、外部から入力される外部指令パルスに従って前記出力段に制御信号を出力するFPGAと、前記出力端子ごとに配され、各出力端子の電流を検出して電流検出値を前記FPGAに出力する複数の電流検出部とを有し、前記FPGAは、各出力端子に対応して設けられるとともにアドレスを管理する複数のアドレスカウンタと、電流基準値のデータが格納されているROMと、前記ROMから各アドレスカウンタの前記アドレスに対応する前記電流基準値を単位周期ごとに読み出して前記出力端子ごとに格納する複数の電流基準値レジスタと、前記単位周期ごとに三角波を生成する三角波発生部と、前記電流基準値レジスタに格納された前記電流基準値と前記電流検出部で検出された前記電流検出値とから前記単位周期ごとに演算される誤差及び前記三角波を用いて前記出力端子ごとのPWM制御信号を前記出力段にそれぞれ出力する複数のPWM処理部とを有し、各アドレスカウンタは、前記アドレスカウンタ間に前記出力端子の個数に応じたギャップを設けて、前記出力端子ごとにぞれぞれのアドレスを管理し、前記電流基準値のデータは、単位電流値を「i」として、「i×sinθ」で表され、前記ROMに、前記θが0°≦θ<360°の範囲に相当する前記電流基準値のデータが格納され、各出力端子は、前記PWM制御信号による前記出力段の制御により、正弦波における前記ギャップに対応した位相差に相当する比率で電流値が異なる前記電流をそれぞれ出力してなることを最も主要な特徴とするものである。
このような本発明に係るモータ駆動装置において、前記PWM処理部は、前記単位周期ごとに前記誤差を演算するとともに、移動平均処理を用いて当該単位周期の2点平均誤差と、1つ前の単位周期の2点平均誤差との差分を演算し、当該単位周期の前記誤差と前記差分との和を前記三角波と比較することにより前記PWM制御信号を生成することが好ましい。
また本発明に係るモータ駆動装置において、前記FPGAにおける前記アドレスカウンタ、前記電流基準値レジスタ、及び前記PWM処理部は、前記出力端子と同じ個数で設けられていることが好ましい。
更に、本発明のモータ駆動装置は、少なくとも5つの前記出力端子を有することが好ましい。
更にまた、本発明のモータ駆動装置は、駆動させる前記ステッピングモータの種類を、前記コイルの数に応じて選択する相数セレクトスイッチを有することが好ましい。
本発明に係るステッピングモータ用のモータ駆動装置は、ステッピングモータに電流を出力する複数の出力端子と、出力段と、外部から入力される外部指令パルスに従って出力段に制御信号を出力するFPGA(Field Programmable Gate Array)と、出力端子ごとに配される複数の電流検出部とを有する。
また、FPGAは、各出力端子に対応して設けられる複数のアドレスカウンタと、電流基準値のデータが格納されているROMと、ROMから各アドレスカウンタの対応する電流基準値を単位周期ごとに読み出して格納する複数の電流基準値レジスタと、単位周期ごとに三角波を生成する三角波発生部と、電流基準値レジスタに格納された電流基準値と電流検出部で検出された電流検出値とを用いて出力端子ごとのPWM制御信号を出力する複数のPWM処理部とを有する。この場合、上述の単位周期は、例えばFPGAに設けられるサイクルカウンタで管理されている。
また本発明のモータ駆動装置において、FPGAに設けられる各アドレスカウンタは、複数のアドレスカウンタ間に出力端子の個数に応じたギャップを設けて、出力端子ごとにぞれぞれのアドレス(基数とも言う)を管理する。また、ROMに記憶される電流基準値のデータは、単位電流値を「i」として、「i×sinθ」で表されるものであり、FPGAのROMには、θが0°≦θ<360°の範囲に相当する電流基準値のデータ(言い換えると、電気角一周分に相当する電流基準値のデータ)が格納されている。このROMから、各電流基準値レジスタは、対応するそれぞれのアドレスカウンタのアドレスに対応した電流基準値を単位周期ごとに読み出して格納する。
そして、FPGAのPWM処理部が、電流基準値レジスタの電流基準値、電流検出部で検出された電流検出値、及び三角波に基づいて出力端子ごとのPWM制御信号を、出力端子ごとに独立した処理で個別に生成し、更に、その生成した各出力端子のPWM制御信号を、単位周期のサイクルで出力段に対して同時に出力する。また、出力段では、PWM制御信号に従って、出力端子ごとに2つずつ配されるスイッチング素子のON/OFFを切り換える。この場合、PWM制御信号に基づくタイミングで一方のスイッチング素子をONにし、且つ、他方のスイッチング素子をOFFにする。
上述のような本発明のモータ駆動装置では、FPGAに複数のアドレスカウンタ、複数の電流基準値レジスタ、及び複数のPWM処理部が設けられており、マイコン等と異なり、FPGA内で複数の処理を並列的に行うことができる。また、本発明のモータ駆動装置では、FPGAに出力端子に対応する複数のアドレスカウンタが設けられているとともに、複数のアドレスカウンタ間でステッピングモータの相数(例えば2相、3相、5相)に対応するギャップ(ずれ)を意図的に設けて、各アドレスカウンタでそれぞれのアドレスを管理している。
これによって、出力端子ごとに設けられる各PWM処理部からは、相互にステッピングモータの相数(言い換えるとアドレスカウンタのギャップ)に対応する正弦波の位相差が設けられた個別のPWM制御信号を出力段にそれぞれ同時に出力し、出力段ではそのPWM制御信号に従って、出力端子ごとにスイッチング素子のON時間(ON幅)とOFF時間(OFF幅)が制御される。その結果、モータ駆動装置の各出力端子においては、スイッチング素子のON/OFFに従って、電流値が正弦波の前記位相差に相当する比率で互いに異なる電流をそれぞれ流すことができ、それによって、ステッピングモータでは、各出力端子に流れる電流に従って、電気角位置に対応するトルクベクトルが単位周期毎に得られるように、対応するコイルを適切なタイミングで励磁することができる。
すなわち、本発明のモータ駆動装置(以下、ドライバと言う)では、例えば前述の特許文献2及び特許文献3等の従来のドライバのような「励磁パターン」を用いてモータの駆動制御を行うのではなく、「正弦波の位相差」を利用してモータの駆動制御を行う。これにより、例えばドライバに5相ステッピングモータが接続される場合には、各出力端子から、5つの相に対応した正弦波の位相差がもたらす比率の電流をそれぞれ出力でき、また、3相ステッピングモータ又は2相ステッピングモータが接続される場合には、各出力端子から、それぞれ3つの相又は2つの相に対応した比率(正弦波の位相差がもたらす比率)の電流をそれぞれ出力できる。このため、本発明では、1つのドライバを、相数が異なるステッピングモータに対して同様に用いることができる。
このようにステッピングモータが2相でも、3相でも、5相でもステップ駆動させることが可能なドライバであれば、1つのドライバが適用できるステッピングモータの範囲(種類)を大幅に拡大できる。すなわち、ドライバの種類を1つに統一した上で、ステッピングモータを自由に選択することができる。
これにより、ドライバに要する費用が抑えられるとともに、用途に応じてより最適なステッピングモータを選択することが可能となる。更に具体的に説明すると、本発明のドライバでは、ステッピングモータの相数が異なってもステッピングモータの駆動方法は実質的に同じであるため、例えば相数の違いによるステッピングモータの機械的な特性の違いは生じるものの、ドライバの駆動に起因する特性の違いは生じない。その結果、ドライバの駆動がもたらす特性差を考慮することなく、ステッピングモータの選択を、モータ形状、トルク、コスト等によって単純明快に行うことができ、またそれによって、装置設計の自由度を格段に拡げることができる。
更に、ドライバが1つに統一されることにより、形状、コネクタの向き、スイッチの位置等も当然に同じになるため、ドライバが配置される制御ボックス内の設計が行い易くなるとともに、制御ボックス内を整然と綺麗に仕上げることができる。また仕様変更や設計変更が生じて、装置に既設されているステッピングモータを新しいものに取り換える場合にドライバを変更しなくても良くなり、その結果、労力、費用、時間の削減を図ることができるとともに、ドライバの変更に伴うリスクをなくすことができる。またドライバが1つに統一されることにより、装置のメンテナンスのための部品管理に要する負担が軽減されるとともに、メンテナンス作業の精確性や効率を向上させることができる。
更にまた、ドライバが1つに統一されることにより、ステッピングモータの相数の違いによるドライバ開発費の分散を防止できる。また、ドライバ製造における部材調達、製造、検査、及び管理上の負担も軽減され、その結果、ドライバをより安価に提供することが可能となる。
このような本発明のモータ駆動装置において、FPGAに設けられるPWM処理部は、サイクルカウンタで管理される単位周期ごとに、電流基準値レジスタに格納された電流基準値と電流検出部で検出された電流検出値との誤差を出力端子ごとに演算するとともに、当該単位周期の誤差と、その一つ前の単位周期の誤差との間の差分を演算する。更に、PWM処理部は、当該単位周期の誤差と、上述の誤差の差分との和を演算し、その和の値と三角波と比較して、例えば「和の値<三角波」の関係(又は「和の値≧三角波」の関係)が成立する場合に、出力端子ごとに配される一組のスイッチング素子のうちの一方をONにし、且つ、他方をOFFにするPWM制御信号を生成して出力する。これにより、各出力端子から、正弦波の位相差がもたらす比率を相互に備えた所定の電流をそれぞれ安定して出力することができる。
また本発明のモータ駆動装置において、FPGAには、アドレスカウンタ、電流基準値レジスタ、及びPWM処理部が、出力端子と同じ個数で設けられていることにより、FPGAにおいて各出力端子ごとの処理をそれぞれ独立させて個別に且つ並列して行うことができる。このため、各出力端子に、互いに正弦波の位相差が設けられた所定の比率の電流を安定して流すことができる。
更に、本発明のモータ駆動装置が、少なくとも5つの出力端子を有することにより、本発明のモータ駆動装置を、少なくとも5相ステッピングモータ、3相ステッピングモータ、及び2相ステッピングモータに対して適用することができる。
更にまた、本発明のモータ駆動装置は、駆動させるステッピングモータの種類を、コイルの数に応じて選択する相数セレクトスイッチを有する。この場合、相数セレクトスイッチからFPGAに信号が入力されることによって、FPGAにおける複数のアドレスカウンタが、アドレスカウンタ間に、ステッピングモータの相数に対応するギャップ(ずれ)を正確に設けることができる。それによって、モータ駆動装置の各出力端子から、正弦波の位相差がもたらす比率の電流をそれぞれ安定して出力することができる。
本発明に係るモータ駆動装置(ドライバ)の内部構成を示すブロック図である。 5相ステッピングモータのコイルと、各コイルに流す電流の方向とを定義する模式図である。 5相ステッピングモータのコイルに電流が流れたときに各コイルが生成するトルクベクトルの関係を定義する模式図である。 5相ステッピングモータに対して、ドライバの各出力端子から出力する電流の電気角一周分の比率を示す模式図である。 PWM回路における比較とスイッチング素子のON/OFFに関する概念図を示す。 5相ステッピングモータの基本角位置で、ドライバの各出力端子から出力する電流の比率(正弦波の位相差)を示す図である。 5相ステッピングモータの基本角位置が0°のときの電流の比率について説明する説明図である。 5相ステッピングモータの基本角位置が36°のときの電流の比率について説明する説明図である。 3相ステッピングモータのコイルと、各コイルに流す電流の方向とを定義する模式図である。 3相ステッピングモータのコイルに電流が流れたときに各コイルが生成するトルクベクトルの関係を定義する模式図である。 3相ステッピングモータに対して、ドライバの各出力端子から出力する電流の電気角一周分の比率を示す模式図である。 3相ステッピングモータの基本角位置で、ドライバの各出力端子から出力する電流の比率(正弦波の位相差)を示す図である。 2相ステッピングモータのコイルと、各コイルに流す電流の方向とを定義する模式図である。 2相ステッピングモータのコイルに電流が流れたときに各コイルが生成するトルクベクトルの関係を定義する模式図である。 2相ステッピングモータに対して、ドライバの各出力端子から出力する電流の電気角一周分の比率を示す模式図である。 2相ステッピングモータの基本角位置で、ドライバの各出力端子から出力する電流の比率(正弦波の位相差)を示す図である。
以下に、本発明の好適な実施形態について、実施例を挙げて図面を参照しながら詳細に説明する。なお、本発明は、以下で説明する実施例に何ら限定されるものではなく、本発明と実質的に同一な構成を有し、かつ、同様な作用効果を奏しさえすれば、多様な変更が可能である。
例えば、以下の実施例1〜3では、ドライバに5つの出力端子が設けられている場合について説明するが、本発明においてドライバに設けられる出力端子の数は5つに限定されるものではなく、任意に変更することが可能であるが、少なくとも5つの出力端子がドライバに設けられることが好ましい。また、出力端子の数が変更される場合、ドライバに設けられる後述のスイッチング素子、ゲートドライバ、及び電流検出部の数、並びに、後述のFPGAに設けられるアドレスカウンタ、電流基準値レジスタ、電流検出値レジスタ、及びPWM処理部の数も、出力端子の数に対応してそれぞれ変更される。
図1は、ドライバの内部構成を示すブロック図である。図2は、5相ステッピングモータのコイルと、各コイルに流すモータ電流の方向とを定義する模式図であり、図3は、5相ステッピングモータのコイルにモータ電流が流れたときに各コイルが生成するトルクベクトルの関係を定義する模式図である。図4は、5相ステッピングモータに対して各出力端子から出力する電流の電気角一周分の比率を示す模式図であり、図6は、基本角位置において各出力端子から出力する電流の比率(正弦波の位相差)を示す図である。
図1に示すモータ駆動装置(ドライバ)10は、ステッピングモータ1に接続され、コントローラ等の図示しない外部機器からの外部指令パルスが入力されることにより、ステッピングモータ1をステップ駆動させる。本実施例1では、図1のドライバ10が、ペンダゴン結線方式のHB型5相ステッピングモータ1に接続されている場合について説明する。
ここで、ペンタゴン結線方式を採用した5相ステッピングモータ1に関して、図2に示すように、ステッピングモータ1に配される5つのコイル(励磁コイル)を、第1コイル1a,第2コイル1b,第3コイル1c,第4コイル1d,第5コイル1eとそれぞれ定義する。また、第1コイル1a〜第5コイル1eのそれぞれに流れるモータ電流を、それぞれモータ電流A,a;モータ電流B,b;モータ電流C,c;モータ電流D,d;モータ電流E,eで表す。また、第1コイル1a〜第5コイル1eに接続されるドライバ10の後述する第1出力端子11a〜第5出力端子11eの位置も図2に示すように設定される。
この場合、モータ電流A,B,C,D,Eと、モータ電流a,b,c,d,eとは、互いに対応するアルファベットについて、第1コイル1a〜第5コイル1eのそれぞれにおいて反対の向きに流れる電流を示す。また、例えば第1コイル1aにモータ電流Aを流したときを励磁コイル(励磁相)Aと表し、反対向きのモータ電流aを流したときを励磁コイル(励磁相)aと表す。第2コイル1b〜第5コイル1eについても、第1コイル1aの場合と同様とする。
更に、図3に示すように、5相ステッピングモータ1の第1コイル1a〜第5コイル1eに、モータ電流A,a;B,b;C,c;D,d;E,eがそれぞれ流れたときに生成されるトルクベクトルを、モータ電流の各アルファベットに対応させて、それぞれトルクベクトルVA,Va;VB,Vb;VC,Vc;VD,Vd;VE,Veと定義する。すなわち、第1コイル1aにモータ電流Aが流れたときに生じるトルクベクトルVAと、モータ電流aが流れたときに生じるトルクベクトルVaとは、互いに逆方向のベクトルとなる。
図1のドライバ10には、外部指令パルスとして、CWP(Clock Wise Pulse)方向の指令パルス又はCCWP(Counter Clock Wise Pulse)方向の指令パルスが図示しない外部機器から入力される。ここで、CWP方向の指令パルスは、ステッピングモータ1のモータ回転軸(ロータ)を時計回りに正転させるための指令パルスであり、CCWP方向の指令パルスは反時計回りに逆転させるための指令パルスである。
また、ドライバ10には、図示しない分解能セレクトスイッチと相数セレクトスイッチとが設けられており、分解能セレクトスイッチの位置によって、ステッピングモータ1をマイクロステップ駆動させるときの分解能(フルステップ角の分割数)を決定する分解能指令が、後述するFPGA40に入力される。また、相数セレクトスイッチの位置によって、複数の出力端子11の中から、ステッピングモータ1に電流を出力する出力端子11を決定する指令がFPGA40に入力される。
図1のドライバ10は、ステッピングモータ1に接続される5つの出力端子11と、各スイッチング素子21のON/OFFにより各出力端子11に所望の電流を流すことが可能な出力段20と、出力段20に後述するPWM制御信号を出力するFPGA40と、外部指令パルス(CWP方向の指令パルス及びCCWP方向の指令パルス)を受け付けてFPGA40に入力するフォトカプラインターフェイス回路15と、出力端子11ごとに配されるとともに各出力端子11の電流を検出する5つの電流検出部(電流検出回路)30とを有する。また、ドライバ10には電圧が入力され、この入力電圧は、ステッピングモータ1に印加するモータ駆動電圧DVと、FPGA40の電源(3.3V)及び電流検出部30の電源(5V)とを含むコントロール電源とに用いられる。また、コントロール電源は、フォトカプラインターフェイス回路15にも使われる。
このドライバ10は、出力端子11として、第1出力端子11a〜第5出力端子11eを有しており、本実施例1では、第1出力端子11a〜第5出力端子11eの全てが、5相ステッピングモータ1の5つのコイル1a〜1eに接続されるとともに、相数セレクトスイッチでの5相の選択により、第1出力端子11a〜第5出力端子11eから、それぞれ制御された電流を出力可能に設定されている。
ドライバ10の出力段20は、第1出力端子11a〜第5出力端子11eごとに2つ一組で配されるスイッチング素子(パワーMOS FET)21と、一組のスイッチング素子21を駆動するゲートドライバ22とを備えている。スイッチング素子21は、出力端子11ごとに、電源側に接続される上側(ハイサイド)のスイッチング素子21と、接地側に接続される下側(ローサイド)のスイッチング素子21とを有する。
出力段20のゲートドライバ22は、FPGA40と一組のスイッチング素子21とを接続しており、一組のスイッチング素子21は、ゲートドライバ22を介して、FPGA40から出力されるPWM制御信号に基づいて、そのON/OFFが切り換えられる。この出力段20では、上側のスイッチング素子21をONにすることにより、その出力端子11からステッピングモータ1に電流が流れ、下側のスイッチング素子21をONにすることにより、ステッピングモータ1から出力端子11に電流を戻すことができる。
また本実施形態において、第1出力端子11a〜第5出力端子11eごとに配される一組のスイッチング素子21は、一方のスイッチング素子21(例えば上側のスイッチング素子21)をONにした場合には他方のスイッチング素子21(例えば下側のスイッチング素子21)をOFFにし、他方のスイッチング素子21をONにした場合には一方のスイッチング素子21をOFFにするように制御される。このため、各出力端子11a〜11eにそれぞれ配される一組のスイッチング素子21の両方を同時にONにすることも、OFFにすることもない。
電流検出部30は、第1出力端子11a〜第5出力端子11eのそれぞれに設けられており、各出力端子11の電流を単位周期毎に検出可能に形成されている。各電流検出部30は、下側(ローサイド)のスイッチング素子21のソースに設けられたセンシング抵抗(シャント抵抗)31と、センシング抵抗31を介して検出されるアナログ電圧を増幅して出力する差動増幅回路32とを有しており、各出力端子11で下側のスイッチング素子21がONの状態のときの下側のスイッチング素子21に流れる電流を検出する。各電流検出部30の出力(アナログ電圧)は、A/Dコンバータ33によってデジタル変換されて、A/Dコンバータ33からシリアル通信によってFPGA40に入力される。なお、A/Dコンバータ33とFPGA40との間の通信方式には、シリアル通信ではなく、パラレル通信を用いることも可能である。
FPGA40は、周期タイミングブロック50と、アドレスブロック60と、電流基準データブロック70と、電流検出データブロック80と、PWM出力ブロック90とを有する。
周期タイミングブロック50は、一定の時間の単位周期を管理するサイクルカウンタ51を有しており、各ブロック間のデータ処理のタイミングや、各ブロック内のデータ処理のタイミングは、サイクルカウンタ51における単位周期のカウンタ値によって定められる。また、FPGA40には、時間軸に沿って左右対称的な三角形状の三角波をサイクルカウンタ51の単位周期で生成する三角波発生回路(三角波発生部)41が設けられている。この三角波発生回路41で生成される三角波は、PWM出力ブロック90に出力される。この場合、サイクルカウンタ51で管理される単位周期は、PWMサイクルと呼ばれることもある。
FPGA40のアドレスブロック60は、第1出力端子11a〜第5出力端子11eに対応して設けられる第1アドレスカウンタ61a〜第5アドレスカウンタ61eを有しており、本実施例1の場合は、相数セレクトスイッチにて上述のように5相に選択されているため、第1アドレスカウンタ61a〜第5アドレスカウンタ61eの全てが使用される。また、アドレスブロック60の第1アドレスカウンタ61a〜第5アドレスカウンタ61eは、それぞれ電気角位置(ステップ位置)に対応するアドレスを管理しており、管理されるアドレスの数は、マイクロステップの分解能に応じて設定される。
例えば本実施例1の場合、5相ステッピングモータ1における電気角一周(360°)は、機械角(モータ回転軸の回転角)の7.2°に相当し、電気角一周を50回繰り返すことにより、機械角を1周(モータ回転軸の1回転)させることができる。
また、CWP方向の指令パルスが入力される場合、5相ステッピングモータ1で単位周期毎に励磁されるコイル(励磁相)は、例えば図6に示すように、励磁相ABCD(0°の電気角位置)→BCDE(36°の電気角位置)→CDEa(72°の電気角位置)→DEab(108°の電気角位置)→Eabc(144°の電気角位置)→abcd(180°の電気角位置)→bcde(216°の電気角位置)→cdeA(252°の電気角位置)→deAB(288°の電気角位置)→eABC(324°の電気角位置)の順序で10回切り換えて変更される。これによって、5相ステッピングモータ1のモータ回転軸を機械角で0.72°(電気角で36°)ずつ10回ステップ駆動(歩進)させて、電気角一周となる7.2°の機械角を回転(正転)させる。
この場合、機械角の0.72°(=電気角の36°)が基本角ステップ(フルステップとも言う)となり、基本角ステップの10回の歩進を50回繰り返すことにより(基本角ステップの10回×50)、上述のようにモータ回転子を機械角で360°、すなわち機械角で1回転させることができる。なお、CCWP方向の指令パルスが入力されるときは、5相ステッピングモータ1の励磁コイルが上記とは逆方向の順序で変更され、それによって、モータ回転子を逆転させることができる。
また本実施例1では、ステッピングモータ1における基本角ステップの分解能が、後述するように基本角ステップの角度(機械角の0.72°=電気角の36°)を100分割する「1/100」に設定される。この場合、第1アドレスカウンタ61a〜第5アドレスカウンタ61eで管理されるアドレス(基数)の数は、電気角一周分となる「000」〜「999」の1000個(5相ステッピングモータ1の基本角ステップ10回分×マイクロステップ分割数100)に設定される。
すなわち、5相ステッピングモータ1の場合、CWP方向の指令パルスが1000回入力されることにより、モータ回転軸を、電気角一周の7.2°回転させることができ、更に、CWP方向の指令パルスが50000回(電気角一周×50回)入力されることにより、モータ回転軸を、機械角で360°(1回転)回転させることができる。なお、本実施例1のドライバ10において、基本角ステップの分解能は、上述した分解能セレクトスイッチを切り換えることにより、ユーザーが所定の範囲で任意に設定することが可能であり、その設定された分解能に基づいて、第1アドレスカウンタ61a〜第5アドレスカウンタ61eにおいてアドレス(基数)の数がそれぞれ設定される。
このアドレスブロック60では、ドライバ10の電源が入れられたときにイニシャライズ処理として、FPGA40が相数セレクトスイッチの選択位置を読み取ることによって、相数セレクトスイッチで選択されたステッピングモータ1の相数に対する出力端子11の数に応じたギャップを、第1アドレスカウンタ61a〜第5アドレスカウンタ61e間に設け、その上で、第1アドレスカウンタ61a〜第5アドレスカウンタ61eが各アドレスの管理を行う。
例えば本実施例1の場合、ステッピングモータ1の相数は「5」であるため、第1アドレスカウンタ61a〜第5アドレスカウンタ61e間において、各アドレスカウンタ61a〜61eが管理する「1000」のアドレス数を出力端子11の数である「5」で除した「200」のギャップが、第1アドレスカウンタ61aと第2アドレスカウンタ61bの間、第2アドレスカウンタ61bと第3アドレスカウンタ61cの間、第3アドレスカウンタ61cと第4アドレスカウンタ61dの間、第4アドレスカウンタ61dと第5アドレスカウンタ61eの間、及び第5アドレスカウンタ61eと第1アドレスカウンタ61aの間にそれぞれ設けられた上で、第1アドレスカウンタ61a〜第5アドレスカウンタ61eがそれぞれアドレスの管理を行う。このため、例えば第1アドレスカウンタ61aのアドレスの数値が「000」の場合、第2アドレスカウンタ61b〜第5アドレスカウンタ61eのアドレスの数値は、それぞれ「200」、「400」、「600」、「800」となり、互いに「200」のギャップずつずらされたものとなる。
更に、第1アドレスカウンタ61a〜第5アドレスカウンタ61eは、CWP方向の指令パルスが入力される毎に、それぞれが管理するアドレスの数値をインクリメントし、また、CCWP方向の指令パルスが入力される毎に、それぞれが管理するアドレスの数値をデクリメントする。また、アドレスブロック60では、第1アドレスカウンタ61a〜第5アドレスカウンタ61eのそれぞれで管理されているアドレスの数値が、サイクルカウンタ51が指定するタイミングで、すなわち、サイクルカウンタ51で管理されている単位周期(PWMサイクル)毎に、電流基準データブロック70により読み出される。
電流基準データブロック70は、アドレスブロック60で管理されているアドレスを格納するアドレスレジスタ71と、電流基準値のデータが予め格納されているROM72と、アドレスレジスタ71に取り込まれたアドレスが示す電流基準値のデータをROM72から読み出して格納する第1電流基準値レジスタ73a〜第5電流基準値レジスタ73eとを有する。
この電流基準データブロック70では、アドレスブロック60の第1アドレスカウンタ61a〜第5アドレスカウンタ61eで管理されているそれぞれのアドレスを、サイクルカウンタ51の単位周期毎に同時に取り込んで、アドレスレジスタ71に格納する。
電流基準データブロック70のROM72には、単位電流値を「i」とし、電気角を「θ」としたときに「i×sinθ」で表される電流基準値のデータが、アドレスブロック60で管理されるアドレスの数値と関連付けが可能な形式で格納されている。この場合、単位電流値「i」は、ステッピングモータ1の定格電流値に応じて設定される。例えば電流を設定するダイアル(不図示)がドライバ10に設けられている場合、そのダイアルの位置によって、定格電流値に基づく大きさ(倍率)の単位電流値「i」が設定される。また、単位電流値「i」の倍率の変更により、後述する電流値のサインカーブにおける振幅を変えることができる。
このROM72には、第1出力端子11a〜第5出力端子11eのそれぞれから電流をsinカーブの一周分で出力可能なデータが、言い換えると、「i×sinθ」表される電流基準値の電気角一周分(θが0°≦θ<360°の範囲)に相当するデータが格納されている。この場合、ROM72には、0°≦θ<360°の範囲の少なくとも1/4の範囲(例えば0°≦θ<90°の範囲)における電流基準値のデータが格納されていれば、電気角一周分に相当する電流基準値のデータをROM72から読み出すことが可能である。
電流基準データブロック70の第1電流基準値レジスタ73a〜第5電流基準値レジスタ73eは、それぞれ第1出力端子11a〜第5出力端子11eに対応して設けられている。この電流基準データブロック70では、FPGA40が相数セレクトスイッチの選択位置を読み取ることによって、第1電流基準値レジスタ73a〜第5電流基準値レジスタ73eにおけるどの電流基準値レジスタを使用するかが選択される。本実施例1の場合、第1電流基準値レジスタ73a〜第5電流基準値レジスタ73eの5つの使用が選択される。
電流基準データブロック70では、アドレスレジスタ71に保持されている第1アドレスカウンタ61a〜第5アドレスカウンタ61eのそれぞれのアドレスが示す電流基準値のデータ「i×sinθ」をROM72からそれぞれ読み出して、その読み出した各電流基準値のデータを、対応する第1電流基準値レジスタ73a〜第5電流基準値レジスタ73eにそれぞれ同時にセットする。また、第1電流基準値レジスタ73a〜第5電流基準値レジスタ73eにセットされる各電流基準値のデータは、サイクルカウンタ51で管理されている単位周期(PWMサイクル)毎に更新される。
この場合、第1電流基準値レジスタ73a〜第5電流基準値レジスタ73eに同時にセットされる各電流基準値のデータには、第1アドレスカウンタ61a〜第5アドレスカウンタ61e間に設けたアドレスのギャップ(すなわち、「200」分のギャップ)に対応した正弦波の位相差が、第1電流基準値レジスタ73aと第2電流基準値レジスタ73bの間、第2電流基準値レジスタ73bと第3電流基準値レジスタ73cの間、第3電流基準値レジスタ73cと第4電流基準値レジスタ73dの間、第4電流基準値レジスタ73dと第5電流基準値レジスタ73eの間、及び第5電流基準値レジスタ73eと第1電流基準値レジスタ73aの間にそれぞれ設けられている。
FPGA40の電流検出データブロック80は、第1出力端子11a〜第5出力端子11eに対応する第1電流検出値レジスタ81a〜第5電流検出値レジスタ81eと、A/Dコンバータ33からの入力を受け付けるA/Dコンバータインターフェイス回路82とを有する。
この電流検出データブロック80では、電流検出部30で検出された第1出力端子11a〜第5出力端子11eの各電流検出値(電流検出部30の出力)が、A/Dコンバータ33によってA/D変換されて入力されるため、その入力された第1出力端子11a〜第5出力端子11eの各電流検出値を、対応する第1電流検出値レジスタ81a〜第5電流検出値レジスタ81eにそれぞれ格納する。この場合、第1電流検出値レジスタ81a〜第5電流検出値レジスタ81eに格納される各電流検出値のデータは、サイクルカウンタ51で管理されている単位周期毎に更新される。
FPGA40のPWM出力ブロック90は、第1出力端子11a〜第5出力端子11eに対応する第1PWM処理部91a〜第5PWM処理部91eを有する。第1PWM処理部91a〜第5PWM処理部91eでは、それぞれ個別に且つ並列的に処理が行われており、各PWM処理部91a〜91eにおいて、第1電流基準値レジスタ73a〜第5電流基準値レジスタ73eにそれぞれ格納されている電流基準値と、第1電流検出値レジスタ81a〜第5電流検出値レジスタ81eにそれぞれ格納されている電流検出値とを対応させて単位周期(PWMサイクル)毎に比較し、両者の誤差を演算(減算)する。
また、第1PWM処理部91a〜第5PWM処理部91eのそれぞれには、2点移動平均フィルタ92が設けられており、この2点移動平均フィルタ92で移動平均処理を行うことによって電流基準値と電流検出値との2点平均誤差を演算し、更に、当該単位周期における2点平均誤差と、1つ前の2点平均誤差との差分を計算した上で、電流基準値と電流検出値との誤差と、2点平均誤差の差分との和を演算する。
具体的に説明すると、例えば、当該単位周期での電流基準値と電流検出値との誤差を「e1(t)」とし、1つ前の単位周期での電流基準値と電流検出値との誤差を「e1(t−1)」とし、2つ前の単位周期での電流基準値と電流検出値との誤差を「e1(t−2)」とした場合、第1PWM処理部91a〜第5PWM処理部91eは、単位周期(PWMサイクル)毎に、対応する電流基準値と電流検出値との誤差e1(t−2),e1(t−1),e1(t)を演算する。
また、第1PWM処理部91a〜第5PWM処理部91eは、それぞれの2点移動平均フィルタ92で移動平均処理を行うことにより、当該単位周期における2点平均誤差として、「{e1(t)+e1(t−1)}/2」を演算する。更に、第1PWM処理部91a〜第5PWM処理部91eの各差分演算回路93において、2点移動平均フィルタ92で演算した当該単位周期における2点平均誤差「{e1(t)+e1(t−1)}/2」と、1つ前の単位周期の際に移動平均フィルタで演算した2点平均誤差「{e1(t−1)+e1(t−2)}/2」との差分を演算する。この場合、上述の差分は、{e1(t)+e1(t−1)}/2−{e1(t−1)+e1(t−2)}/2={e1(t)−e1(t−2)}/2、となる。
更に、第1PWM処理部91a〜第5PWM処理部91eは、各差分演算回路93で演算した2点平均誤差の差分「{e1(t)−e1(t−2)}/2」の演算結果を増幅回路94で増幅し、その増幅した2点平均誤差の差分と、当該単位周期での電流基準値と電流検出値との誤差「e1(t)」との和を演算し、その上で、その演算された和と、三角波発生回路41で生成されて第1PWM処理部91a〜第5PWM処理部91eに入力された三角波とを、それぞれのPWM回路95で比較する。このように2点平均誤差の差分を利用することにより、第1コイル1a〜第5コイル1eのインダクタンス成分による誤差の影響を小さくしている。
そして、PWM回路95では、例えば図5にPWM回路における比較とスイッチング素子のON/OFFに関する概念図を示すように、上記比較の結果、当該単位周期での誤差と2点平均誤差の差分との和<三角波の関係が成立する場合には、第1出力端子11a〜第5出力端子11eに対応して配される一組のスイッチング素子21のうちの上側(ハイサイド)のスイッチング素子21をONにする(言い換えると、下側(ローサイド)のスイッチング素子21をOFFにする)PWM制御信号を、対応する第1出力端子11a〜第5出力端子11eのそれぞれについて生成する。
一方、当該単位周期での誤差と2点平均誤差の差分との和≧三角波の関係が成立する場合には、第1出力端子11a〜第5出力端子11eに対応して配される一組のスイッチング素子21のうちの下側のスイッチング素子21をONにする(言い換えると、上側のスイッチング素子21をOFFにする)PWM制御信号を、対応する第1出力端子11a〜第5出力端子11eのそれぞれについて生成する。そして、第1PWM処理部91a〜第5PWM処理部91eの各PWM回路95が生成したPWM制御信号を、出力段20に対して単位周期ごとに同時に出力する。
これにより、出力段20では、第1PWM処理部91a〜第5PWM処理部91eからの各PWM制御信号に従って、各スイッチング素子21のON/OFFを制御する。この場合、例えば電流基準値と電流検出値に基づいて演算される「誤差と誤差の差分との和」が小さくなると、図5に示したような比較において「誤差と誤差の差分との和」の位置が三角波の位置に対して下降し、それによって、上側のスイッチング素子21をONにする時間が相対的に長くなる(ON幅が広がる)。一方、「誤差と誤差の差分との和」が大きくなると、図5のような比較において「誤差と誤差の差分との和」の位置が三角波の位置に対して上昇し、それによって、上側のスイッチング素子21をONにする時間が相対的に短くなる(ON幅が狭くなる)。その結果、第1出力端子11a〜第5出力端子11eに流れる電流の向きをPWM制御信号に従ったタイミングで個別に変えることができるため、第1出力端子11a〜第5出力端子11eのそれぞれでは、単位周期毎に正弦波の位相差(サインカーブにおける72°の位相差)に相当する比率の電流値で電流を流すことができる。
特にこの場合、第1出力端子11a〜第5出力端子11eのそれぞれに対しては、他の出力端子11a〜11eとの関係に影響されることなく、電流基準値のデータと電流検出値のデータとの誤差に基づいてPWM制御を行うことができ、それによって、各出力端子11a〜11eに流す電流に、正弦波の位相差(72°の位相差)を安定して設けることができる。
従って、第1出力端子11a〜第5出力端子11eが接続されたステッピングモータ1の第1コイル1a〜第5コイル1eには、正弦波の位相差が互いに設けられた電流が第1出力端子11a〜第5出力端子11eに流れることによって生成される電流を、それぞれ流すことができる。すなわち、ステッピングモータ1の第1コイル1a〜第5コイル1eには、各コイル1a〜1eの両端部に接続された出力端子11に流れるそれぞれの電流が差し引きされることにより生成されるモータ電流を(言い換えると、第1出力端子11a〜第5出力端子11eのそれぞれに流れる電流の向き及びその電流を流す時間に従って生成されるモータ電流を)所定のタイミングで流すことができ、それによって、第1コイル1a〜第5コイル1eが適宜励磁されて所要のトルクを発生させることができる。
また本実施例1において、コイル1a〜1eの両端に接続された2つの出力端子11に対して、上記位相差に基づいて同じ大きさの電流が流れる場合(例えば図7における第2出力端子11bと第3出力端子11cの場合、又は図8における第4出力端子11dと第5出力端子11eの場合)は、各出力端子11に対応して配される一組のスイッチング素子21のON/OFF状態が同じになるため、そのコイルには電流が流れず、その結果、コイルが非励磁状態に保持される。なお、本発明において、第1PWM処理部91a〜第5PWM処理部91eに設けるフィルタは、2点移動平均フィルタ92に限定されるものではなく、その他のフィルタに変更することも可能である。
次に、上述した図1のドライバ10を用いて、5相ステッピングモータ1をステップ駆動する方法について説明する。
先ず、ドライバ10の電源が入れられると、イニシャライズ処理として、ドライバ10に設けた図示しない相数セレクトスイッチの選択位置と、図示しない分解能セレクトスイッチの選択位置とを、FPGA40が読み取る。本実施例1の場合、相数セレクトスイッチで「5相」が選択されているとともに、分解能セレクトスイッチで、基本角ステップの分解能として「1/100」が選択されている。
このため、FPGA40は、これらの信号を読み取って、初期設定として、アドレスブロック60における第1アドレスカウンタ61a〜第5アドレスカウンタ61eの5つのアドレスカウンタを使用する設定を行う。また、第1アドレスカウンタ61a〜第5アドレスカウンタ61eで管理するアドレス数として、「000」〜「999」の1000個(5相ステッピングモータ1の基本角ステップ10回分×マイクロステップ分割数100)を設定するとともに、第1アドレスカウンタ61a〜第5アドレスカウンタ61eに、出力端子11の個数に応じた上述したギャップ「200」が設けられたアドレス(基数)の数値を設定する。例えば第1アドレスカウンタ61a〜第5アドレスカウンタ61eのアドレスには、上述したように、それぞれ「000」、「200」、「400」、「600」、「800」の数値を設定する。
FPGA40の初期設定終了後、図示しない外部機器からCWP方向又はCCWP方向の指令パルスが入力されることにより、アドレスブロック60の第1アドレスカウンタ61a〜第5アドレスカウンタ61eは、それぞれが管理するアドレスの数値を、指令パルスの入力毎にインクリメント又はデクリメントする。この場合、第1アドレスカウンタ61a〜第5アドレスカウンタ61eは、アドレスのインクリメント又はデクリメントを並列して同時に行うため、第1アドレスカウンタ61a〜第5アドレスカウンタ61e間に設けた「200」のギャップは維持される。
またFPGA40は、外部機器からの指令パルスを受け付けながら、サイクルカウンタ51で一定の単位周期(PWMサイクル)を管理するとともに、その単位周期を、三角波発生回路41、電流基準データブロック70、及び電流検出データブロック80に出力する。また、三角波発生回路41では、サイクルカウンタ51の単位周期毎に三角波を生成するとともに、生成した三角波をPWM出力ブロック90に出力する。
FPGA40の電流基準データブロック70では、サイクルカウンタ51から単位周期(PWMサイクル)が入力されるとともに、その単位周期ごとに、第1アドレスカウンタ61a〜第5アドレスカウンタ61eで管理されているそれぞれのアドレスを同時に取り込んで、アドレスレジスタ71に格納する。更に、電流基準データブロック70は、電流基準値のデータ「i×sinθ」(0°≦θ<360°)が予め格納されているROM72から、アドレスレジスタ71に保持されている第1アドレスカウンタ61a〜第5アドレスカウンタ61eの各アドレスに対応した電流基準値のデータをそれぞれ読み出して、その読み出した各電流基準値のデータを、対応する第1電流基準値レジスタ73a〜第5電流基準値レジスタ73eにそれぞれ同時にセットする。
このとき、第1電流基準値レジスタ73a〜第5電流基準値レジスタ73eに同時にセットされる各電流基準値のデータには、第1アドレスカウンタ61a〜第5アドレスカウンタ61e間に設けたアドレスのギャップに対応した正弦波の位相差(72°の位相差)が設けられている。
また、電流基準データブロック70において上述の処理が行われると同時に、FPGA40の電流検出データブロック80では、サイクルカウンタ51から単位周期(PWMサイクル)が入力される。更に、電流検出部30で検出されてA/Dコンバータ33を介して入力される第1出力端子11a〜第5出力端子11eの各電流検出値のデータを、第1電流検出値レジスタ81a〜第5電流検出値レジスタ81eに単位周期ごとに格納する(更新する)。
更に、FPGA40のPWM出力ブロック90は、第1電流基準値レジスタ73a〜第5電流基準値レジスタ73eに格納されている電流基準値と、第1電流検出値レジスタ81a〜第5電流検出値レジスタ81eに格納されている電流検出値とを、サイクルカウンタ51の単位周期(PWMサイクル)毎に読み出して、対応する値同士を比較する。
この場合、PWM出力ブロック90では、上述したように増幅した2点平均誤差の差分と、当該単位周期での電流基準値と電流検出値との誤差「e1(t)」との和を演算した上で、その演算された和と、三角波発生回路41で生成された三角波とを比較する(図5を参照)。更に、三角波との比較結果に基づいて、第1出力端子11a〜第5出力端子11eのそれぞれに対するPWM制御信号を、第1PWM処理部91a〜第5PWM処理部91eから単位周期ごとに出力段20に出力する。
これによって、出力段20は、FPGA40からのPWM制御信号に従って各出力端子11に配される一組のスイッチング素子21のON/OFFを切り換えるため、ドライバ10の第1出力端子11a〜第5出力端子11eでは、流れる方向及び大きさが制御された電流を所定のタイミングで流すことができる。この場合、第1出力端子11a〜第5出力端子11eにそれぞれ流れる電流の大きさ(電流値)は、電流基準値の「i×sinθ」の大きさに対応しており、例えば単位周期における上側のスイッチング素子21をONにする時間(ON幅)の長さを変えることにより制御される。また、第1出力端子11a〜第5出力端子11eの各電流値は、相互に正弦波の位相差に相当する比率を有する。
具体的に説明すると、例えば本実施例1の5相ステッピングモータ1において、例えばモータ回転軸を0°の電気角位置にステップ駆動させる場合には、図2に示したステッピングモータ1にモータ電流A,B,C,Dを単位周期内に流して、VA+VB+VC+VDのトルクベクトル(以下、このトルクベクトルを、トルクベクトルABCDとする)を発生させる。
このとき、本実施例1では、ドライバ10の制御によって、第1出力端子11a〜第5出力端子11eに流れる電流の大きさに、正弦波における72°(=360°/(出力端子11の使用する数「5」))の位相差を設けることができる(位相を72°でずらすことができる)。すなわち、図6及び図7に示したように、第1出力端子11aからは、5相ステッピングモータ1に向けて、i×sin162°(=+0.309×i)の大きさ(比率)の電流を流すとともに、第2出力端子11b、第3出力端子11c、第4出力端子11d及び第5出力端子11eからは、5相ステッピングモータ1に向けて、i×sin234°(=−0.809×i)、i×sin306°(=−0.809×i)、i×sin18°(=+0.309×i)、及びi×sin90°(=+1.000×i)の大きさ(比率)を備えた電流をそれぞれ流すことができる。なお、電流の大きさが−(マイナス)の場合は、5相ステッピングモータ1のコイルから出力端子11に電流が戻ることを表している。
上述のような位相差を設けて第1出力端子11a〜第5出力端子11eに電流を流すことにより、図7に示したように、ステッピングモータ1の第1コイル1aと第4コイル1dとには、第5出力端子11eから第4出力端子11dと第1出力端子11aとに向けて、モータ電流A及びモータ電流Dが流れる。この場合、第1コイル1aと第4コイル1dとには、計算上、比率が+0.500×iとなるモータ電流A及びモータ電流Dが流れる。
また、第2コイル1bには、第1出力端子11aから第2出力端子11bに向けてモータ電流Bが流れ、計算上、モータ電流Bの比率は、第5出力端子11eからの+0.500×iの比率の電流と第1出力端子11aからの+0.309×iの比率の電流とが合計された+0.809×iとなる。第3コイル1cには、第4出力端子11dから第3出力端子11cに向けてモータ電流Cが流れ、計算上、モータ電流Cの比率は、第5出力端子11eからの+0.500×iの比率の電流と第4出力端子11dからの+0.309×iの比率の電流とが合計された+0.809×iとなる。そして、第2コイル1b及び第3コイル1cに流れた電流は、第2出力端子11b及び第3出力端子11cに戻されるため(言い換えると、第2出力端子11b及び第3出力端子11cにおける正弦波の位相差に基づく電流の大きさが同じであるため)、第5コイル1eには電流が流れない。すなわち、モータ電流E=0となる。
これにより、5相ステッピングモータ1の第1コイル1a〜第4コイル1dを単位周期内で適切なタイミングで励磁して、トルクベクトルABCDを発生させることができるため、モータ回転軸を0°の電気角位置にステップ駆動させることができる。また、次のCWP方向又はCCWP方向の指令パルスがドライバ10に入力されるまでは、ドライバ10のFPGA40から出力段20に向けて同じPWM制御信号が単位周期毎に出力されるため、モータ回転軸を0°の電気角位置に保持できる。
更に、電気角位置が0°の状態から、CWP方向(又はCCWP方向)の指令パルスがドライバ10に入力されると、第1アドレスカウンタ61a〜第5アドレスカウンタ61eのアドレスがインクリメント(又はデクリメント)されるとともに、第1アドレスカウンタ61a〜第5アドレスカウンタ61eで管理されるアドレスに応じて、FPGA40が上述した処理と同様の処理を行う。それによって、第1PWM処理部91a〜第5PWM処理部91eから単位周期毎に出力段20に所定のPWM制御信号を出力して、出力段20の各スイッチング素子21のON/OFFを制御する。
その結果、例えば図6に基本角ステップにおける電流の比率を示すように、第1出力端子11a〜第5出力端子11eには、第1アドレスカウンタ61a〜第5アドレスカウンタ61eで管理されているアドレスの電気角位置に対応し、且つ、各出力端子11間で正弦波における72°の位相差(アドレスブロック60に設けたギャップに対応した位相差)が設けられた所定の比率の電流を流すことができる。
より具体的に説明すると、例えば電気角位置が0°の状態から、ドライバ10にCWP方向の指令パルスが100回入力されたときには、第1アドレスカウンタ61a〜第5アドレスカウンタ61eのアドレスは、それぞれ「100」、「300」、「500」、「700」、「900」にインクリメントされ、これらのアドレスに対応してFPGA40が所定の処理を行う。これによって、ステッピングモータ1のモータ回転軸を36°の電気角位置、すなわち、トルクベクトルBCDEを発生させる位置にステップ駆動させるPWM制御信号がFPGA40から出力段20に出力される。
その結果、ドライバ10の第1出力端子11a〜第5出力端子11eには、図6及び図8に示したように、i×sin198°(=−0.309×i)、i×sin270°(=−1.000×i)、i×sin342°(=−0.309×i)、i×sin54°(=+0.809×i)、及びi×sin126°(=+0.809×i)の大きさの電流をそれぞれ流すことができる。それによって、ステッピングモータ1の第1コイル1a〜第5コイル1eに対しては、計算上、図8に示した比率のモータ電流A〜モータ電流Eをそれぞれ流すことができる。このように第1出力端子11a〜第5出力端子11eに流す電流に位相差72°を設けることにより、5相ステッピングモータ1の第2コイル1b〜第5コイル1eを単位周期内で適切なタイミングで励磁して、トルクベクトルBCDE(VB+VC+VD+VE)を発生させることができ、それによって、モータ回転軸を36°の電気角位置にステップ駆動させることができる。
また本実施例1では分解能が「1/100」に設定されているため、例えば電気角位置が0°の状態から、ドライバ10に対してCWP方向の指令パルスが1回入力されてステッピングモータ1のマイクロステップ駆動を行う場合には、第1アドレスカウンタ61a〜第5アドレスカウンタ61eのアドレスは、それぞれ「001」、「201」、「401」、「601」、「801」にインクリメントされる。それとともに、これらのアドレスに対応してFPGA40が処理を行うことによって、電気角位置が0.36°(基本角ステップ36°の1/100の大きさ)となるように、ドライバ10のFPGA40から出力段20にPWM制御信号が出力される。それによって、第1出力端子11a〜第5出力端子11eには、各出力端子11間で正弦波における72°の位相差(アドレスブロック60に設けたギャップに対応した位相差)が設けられた所定の比率のモータ電流A,a;B,b;C,c;D,d;E,eを流すことができ、その結果、モータ回転軸をマイクロステップ駆動させることができる。
また本実施例1の場合、ドライバ10の制御によって第1出力端子11a〜第5出力端子11eのそれぞれから出力する電流について、電気角θが0°≦θ<360°の範囲における電流値の変動を見ると、例えば図4の右側に示すように、第1出力端子11a〜第5出力端子11eから出力する各電流は、ROM72に格納されている電気角一周分の電流基準値のデータに対応してそれぞれ正弦曲線を示すように制御されるとともに、各出力端子11間で互いに72°の位相差が設けられている。なお、第1出力端子11a〜第5出力端子11eから出力する各電流は、電気角一周で元の出力状態に戻る。
以上のように、図1に示した構成を有するドライバ10では、例えば前述の特許文献2及び特許文献3等の従来のドライバのような「励磁パターン」を用いてモータの駆動制御を行うのではなく、「正弦波の位相差」を利用してモータの駆動制御を行う。従って、図1のドライバ10に、本実施例1のように5相ステッピングモータ1が接続された場合、FPGA40にてドライバ10の5つの第1出力端子11a〜第5出力端子11eに関する処理を並列的に同時に行うことができ、それによって、ドライバ10の5つの第1出力端子11a〜第5出力端子11eから、5つの相に対応した正弦波の位相差(72°の位相差)がもたらす比率の電流を安定して出力できる。このため、ドライバ10に入力されるCWP方向及びCCWP方向の指令パルスに従って、5相ステッピングモータ1を円滑にステップ駆動させることができる。
図9は、3相ステッピングモータのコイルと、各コイルに流す電流の方向とを定義する模式図であり、図10は、3相ステッピングモータのコイルに電流が流れたときに各コイルが生成するトルクベクトルの関係を定義する模式図である。図11は、3相ステッピングモータに対して、ドライバの各出力端子から出力する電流の電気角一周分の比率を示す模式図であり、図12は、3相ステッピングモータの基本角位置で、ドライバの各出力端子から出力する電流の比率(正弦波の位相差)を示す図である。
本実施例2では、図1のドライバ10が、放射状に結線した3相ステッピングモータ2に接続されている場合について説明する。なお、本実施例2において、3相ステッピングモータ2に接続するドライバ10は、前述の実施例1で用いたドライバ10と同じものである。
ここで、3相ステッピングモータ2については、図9に示すように、ステッピングモータ2に配される3つのコイル(励磁コイル)を、第1コイル2a,第2コイル2b,及び第3コイル2cと定義する。また、第1コイル2a〜第3コイル2cに流れるモータ電流を、それぞれモータ電流A,a;モータ電流B,b;モータ電流C,cで表す。この場合、モータ電流A,B,Cと、モータ電流a,b,cとは、互いに対応するアルファベットについて、第1コイル2a〜第3コイル2cのそれぞれにおいて反対の向きに流れる電流を示す。また、第1コイル2a〜第3コイル2cに接続されるドライバ10の第1出力端子11a〜第3出力端子11cの位置も図9に示すように設定される。
更に、図10に示すように、3相ステッピングモータ2の第1コイル2a〜第3コイル2cに、モータ電流A,a;B,b;C,cがそれぞれ流れたときに生成されるトルクベクトルを、モータ電流の各アルファベットに対応させて、それぞれトルクベクトルVA,Va;VB,Vb;VC,Vcと定義する。すなわち、第1コイル2aにモータ電流Aが流れたときに生じるトルクベクトルVAと、モータ電流aが流れたときに生じるトルクベクトルVaとは、互いに逆方向のベクトルとなる。
本実施例2では、図1のドライバ10を用いて、3相ステッピングモータ2をステップ駆動する場合について説明する。なお、本実施例2では、ドライバ10における図示しない相数セレクトスイッチで、「3相」が予め選択されているとともに、図示しない分解能セレクトスイッチで、基本角ステップの分解能として「1/100」が予め選択されている場合について説明する。
またこの場合、ドライバ10は、第1出力端子11a〜第5出力端子11eのうちの第1出力端子11a〜第3出力端子11cが、図9に示すように3相ステッピングモータ2の3つの第1コイル2a〜第3コイル2cに接続されている。更に、相数セレクトスイッチにより3相が選択されているため、第1出力端子11a〜第3出力端子11cからそれぞれ電流を出力可能に設定されるとともに、第4出力端子11d及び第5出力端子11eは不使用に設定される。
また図1のドライバ10において、FPGA40のアドレスブロック60は、前述したように、第1アドレスカウンタ61a〜第5アドレスカウンタ61eを有するものの、相数セレクトスイッチの「3相」の選択により、アドレスブロック60では第1アドレスカウンタ61a〜第3アドレスカウンタ61cが使用される。
3相ステッピングモータ2において、電気角一周(360°)は、機械角(モータ回転軸の回転角)の7.2°に相当し、電気角一周を50回繰り返すことにより、機械角を1周(モータ回転軸を1回転)させる。また、CWP方向の指令パルスが入力される場合、3相ステッピングモータ2で励磁されるコイル(励磁相)は、例えば図12に示すように、励磁相コイルAc(0°の電気角位置)→cB(60°の電気角位置)→Ba(120°の電気角位置)→aC(180°の電気角位置)→Cb(240°の電気角位置)→bA(300°の電気角位置)の順序で6回切り換えて変更される。
これによって、3相ステッピングモータ2のモータ回転軸を機械角で1.2°(電気角で60°)ずつ6回ステップ駆動(歩進)させて、電気角一周となる7.2°の機械角を回転(正転)させる。この場合、機械角の1.2°(=電気角の60°)が基本角ステップとなり、基本角ステップの6回の歩進を50回繰り返すことにより(基本角ステップの6回×50)、上述のようにモータ回転子を機械角で360°、1回転させることができる。
また本実施例2では、ステッピングモータ2における基本角ステップの分解能が、上述したように基本角ステップを100分割する「1/100」に設定される。この場合、第1アドレスカウンタ61a〜第3アドレスカウンタ61cで管理されるアドレス(基数)の数は、電気角一周分となる「000」〜「599」の600個(3相ステッピングモータ2の基本角ステップ6回分×マイクロステップ分割数100)に設定される。
すなわち、3相ステッピングモータ2の場合、CWP方向の指令パルスが600回入力されることにより、モータ回転軸を、電気角一周の7.2°回転させることができ、更に、CWP方向の指令パルスが30000回(電気角一周×50回)入力されることにより、モータ回転軸を、機械角で360°(1回転)回転させることができる。
更に本実施例2の場合、ステッピングモータ2の相数は「3相」であるため、第1アドレスカウンタ61a〜第3アドレスカウンタ61c間に、各アドレスカウンタが管理するアドレス数の「600」を、出力端子11の使用する数の「3」で除した「200」のギャップを、第1アドレスカウンタ61aと第2アドレスカウンタ61bの間、第2アドレスカウンタ61bと第3アドレスカウンタ61cの間、及び第3アドレスカウンタ61cと第1アドレスカウンタ61aの間にそれぞれ設けて、その上で、第1アドレスカウンタ61a〜第3アドレスカウンタ61cがそれぞれアドレスの管理を行う。このため、例えば第1アドレスカウンタ61aのアドレスの数値が「000」の場合、第2アドレスカウンタ61b及び第3アドレスカウンタ61cのアドレスの数値は、それぞれ「200」及び「400」となる。
従って、本実施例2においてドライバ10の電源が入れられると、イニシャライズ処理として、ドライバ10のFPGA40が、相数セレクトスイッチの選択位置と分解能セレクトスイッチの選択位置とを読み取ることによって、第1アドレスカウンタ61a〜第3アドレスカウンタ61cで管理するアドレス数として、「000」〜「599」の600個を設定するとともに、第1アドレスカウンタ61a〜第3アドレスカウンタ61cに、出力端子11の数に応じたギャップ「200」を設けたアドレス(基数)の数値を設定する。
FPGA40の初期設定後、CWP方向又はCCWP方向の指令パルスがドライバ10に入力されることにより、アドレスブロック60の第1アドレスカウンタ61a〜第3アドレスカウンタ61cは、それぞれが管理するアドレスの数値を、指令パルスの入力毎にインクリメント又はデクリメントする。また、FPGA40は、第1アドレスカウンタ61a〜第3アドレスカウンタ61cで管理されるアドレスに応じて、前述した実施例1で説明した処理と実質的に同様の処理を行う。
簡単に説明すると、電流基準データブロック70は電流基準値のデータ「i×sinθ」(0°≦θ<360°)が予め格納されているROM72から、アドレスレジスタ71に保持されている第1アドレスカウンタ61a〜第3アドレスカウンタ61cのアドレスに対応する電流基準値のデータをそれぞれ読み出して、その読み出した各電流基準値のデータを、対応する第1電流基準値レジスタ73a〜第3電流基準値レジスタ73cにそれぞれ同時にセットする。このとき、第1電流基準値レジスタ73a〜第3電流基準値レジスタ73cに同時にセットされる各電流基準値のデータには、第1アドレスカウンタ61a〜第3アドレスカウンタ61c間に設けたアドレスのギャップに対応した正弦波の位相差(120°の位相差)が設けられている。
また、FPGA40のPWM出力ブロック90は、第1電流基準値レジスタ73a〜第3電流基準値レジスタ73cに格納されている電流基準値と、第1電流検出値レジスタ81a〜第3電流検出値レジスタ81cに格納されている電流検出値とを、サイクルカウンタ51の単位周期(PWMサイクル)毎に読み出して、対応する値同士を比較し、前述の実施例1の場合と同様に所定の演算及び比較を出力端子11毎に個別に且つ並列的に行うことによって、第1PWM処理部91a〜第3PWM処理部91cから、出力段20に向けて、第1出力端子11a〜第3出力端子11cのそれぞれに対するPWM制御信号を単位周期ごとに同時に出力する。これにより、出力段20は、PWM出力ブロック90から出力されるPWM制御信号に従って、各スイッチング素子21のON/OFFを行う。
これによって、ドライバ10の第1出力端子11a〜第3出力端子11cに、流れる方向及び大きさが制御された電流を所定のタイミングで流すことができる。この場合、第1出力端子11a〜第3出力端子11cにそれぞれ流れる電流の大きさ(電流値)は、電流基準値の「i×sinθ」の大きさに対応しており、相互に正弦波の位相差(120°の位相差)に相当する比率を有する。
例えば、本実施例2の3相ステッピングモータ2において、モータ回転軸を0°の電気角位置にステップ駆動させる場合には、図9に示したステッピングモータ2にモータ電流A及びモータ電流cを流して、トルクベクトルAc(VA+Vc)を発生させる。このとき、本実施例2では、ドライバ10の制御によって、第1出力端子11a〜第3出力端子11cに対し、第1アドレスカウンタ61a〜第3アドレスカウンタ61cで管理されているアドレスの電気角位置に対応し、且つ、各出力端子11間で正弦波における120°(=360°/出力端子11の使用する数「3」)の位相差が設けられた所定の比率の電流を流す。
具体的には、モータ回転軸を0°の電気角位置にステップ駆動させる場合、ドライバ10の第1出力端子11a〜第3出力端子11cには、図12に示したように、i×sin240°(=−0.866×i)、i×sin120°(=+0.866×i)、i×sin0°(=0.000×i)の大きさの電流をそれぞれ流し、これによって、ステッピングモータ2の図9に示した第1コイル2a及び第3コイル2cに対して、モータ電流A及びモータ電流cをそれぞれ流すことができる。これにより、3相ステッピングモータ2の第1コイル2a及び第3コイル2cを単位周期内で励磁して、トルクベクトルAc(VA+Vc)を発生させるため、モータ回転軸を0°の電気角位置にステップ駆動させることができる。
また電気角位置が0°の状態から、CWP方向(又はCCWP方向)の指令パルスがドライバ10に入力されると、第1アドレスカウンタ61a〜第3アドレスカウンタ61cのアドレスがインクリメント(又はデクリメント)されるとともに、第1アドレスカウンタ61a〜第3アドレスカウンタ61cで管理されるアドレスに応じてFPGA40が所定の処理を行う。これによって、ドライバ10の第1出力端子11a〜第3出力端子11cに、正弦波における120°の位相差(アドレスブロック60に設けたギャップに対応した位相差)が設けられた所定の比率のモータ電流A,a;B,b;C,cを単位周期毎にそれぞれ流すことができる。
更に、ドライバ10の制御によって第1出力端子11a〜第3出力端子11cのそれぞれから出力する電流について、電気角θが0°≦θ<360°の範囲における電流値の変動を見ると、例えば図11の右側に示すように、第1出力端子11a〜第3出力端子11cから出力する各電流は、ROM72に格納されている電気角一周分の電流基準値のデータに対応してそれぞれ正弦曲線を示すように制御されるとともに、各出力端子11間で互いに120°の位相差が設けられている。
以上のように、図1に示した構成を有するドライバ10に、本実施例2の3相ステッピングモータ2が接続された場合でも、FPGA40にてドライバ10の3つの第1出力端子11a〜第3出力端子11cに関する処理を並列的に同時に行うことができ、それによって、ドライバ10の第1出力端子11a〜第3出力端子11cから、3つの相に対応した正弦波の位相差(120°の位相差)がもたらす比率の電流を安定して出力できる。このため、ドライバ10に入力されるCWP方向及びCCWP方向の指令パルスに従って、3相ステッピングモータ2を円滑にステップ駆動させることができる。
図13は、2相ステッピングモータのコイルと、各コイルに流す電流の方向とを定義する模式図であり、図14は、2相ステッピングモータのコイルに電流が流れたときに各コイルが生成するトルクベクトルの関係を定義する模式図である。図15は、2相ステッピングモータに対して、ドライバの各出力端子から出力する電流の電気角一周分の比率を示す模式図であり、図16は、2相ステッピングモータの基本角位置で、ドライバの各出力端子から出力する電流の比率(正弦波の位相差)を示す図である。
本実施例3では、図1のドライバ10が、バイポーラ型の2相ステッピングモータ3に接続されている場合について説明する。なお、本実施例3において、2相ステッピングモータ3に接続するドライバ10は、前述の実施例1及び実施例2で用いたドライバ10と同じものである。
ここで、2相ステッピングモータ3については、図13に示すように、ステッピングモータ3に配される2つのコイル(励磁コイル)を、第1コイル3a及び第2コイル3bと定義する。また、第1コイル3a及び第2コイル3bのそれぞれに流れるモータ電流を、それぞれモータ電流A,a;モータ電流B,bで表す。この場合、モータ電流A,Bと、モータ電流a,bとは、互いに対応するアルファベットについて、第1コイル3a及び第2コイル3bのそれぞれにおいて反対の向きに流れる電流を示す。また、第1コイル3a及び第2コイル3bに接続されるドライバ10の第1出力端子11a〜第4出力端子11dの位置も図13に示すように設定される。
更に、図14に示すように、2相ステッピングモータ3の第1コイル3a及び第2コイル3bに、モータ電流A,a;B,bがそれぞれ流れたときに生成されるトルクベクトルを、モータ電流の各アルファベットに対応させて、それぞれトルクベクトルVA,Va;VB,Vbと定義する。すなわち、第1コイル3aにモータ電流Aが流れたときに生じるトルクベクトルVAと、モータ電流aが流れたときに生じるトルクベクトルVaとは、互いに逆方向のベクトルとなる。
本実施例3では、図1のドライバ10を用いて、2相ステッピングモータ3をステップ駆動する場合について説明する。なお、本実施例3では、ドライバ10における図示しない相数セレクトスイッチで、「2相」が予め選択されているとともに、図示しない分解能セレクトスイッチで、基本角ステップの分解能として「1/100」が予め選択されている場合について説明する。
またこの場合、ドライバ10は、第1出力端子11a〜第5出力端子11eのうちの第1出力端子11a〜第4出力端子11dが、図13に示すように2相ステッピングモータ3の2つのコイル3a,3bにそれぞれ接続されている。更に、相数セレクトスイッチにより「2相」が選択されているため、第1出力端子11a〜第4出力端子11dからそれぞれ電流を出力可能に設定されるとともに、第5出力端子11eは不使用に設定される。
また図1のドライバ10において、FPGA40のアドレスブロック60は、前述したように、第1アドレスカウンタ61a〜第5アドレスカウンタ61eを有するものの、相数セレクトスイッチの「2相」の選択により、アドレスブロック60では第1アドレスカウンタ61a〜第4アドレスカウンタ61dが使用される。
2相ステッピングモータ3における電気角一周(360°)は、機械角(モータ回転軸の回転角)の7.2°に相当し、電気角一周を50回繰り返すことにより、機械角を1周(モータ回転軸の1回転)させる。また、CWP方向の指令パルスが入力される場合、2相ステッピングモータ3で励磁されるコイル(励磁相)は、例えば図16に示すように、励磁相bA(0°の電気角位置)→AB(90°の電気角位置)→Ba(180°の電気角位置)→ab(270°の電気角位置)の順序で4回切り換えて変更される。
これによって、2相ステッピングモータ3のモータ回転軸を機械角で1.8°(電気角で90°)ずつ4回ステップ駆動(歩進)させて、電気角一周となる7.2°の機械角を回転(正転)させる。この場合、機械角の1.8°(=電気角の90°)が基本角ステップとなり、基本角ステップの4回の歩進を50回繰り返すことにより(基本角ステップの4回×50)、上述のようにモータ回転子を機械角で360°、1回転させることができる。
また本実施例3では、ステッピングモータ3における基本角ステップの分解能が、上述したように基本角ステップを100分割する「1/100」に設定される。この場合、第1アドレスカウンタ61a〜第4アドレスカウンタ61dで管理されるアドレス(基数)の数は、電気角一周分となる「000」〜「399」の400個(2相ステッピングモータ3の基本角ステップ4回分×マイクロステップ分割数100)に設定される。
すなわち、2相ステッピングモータ3の場合、CWP方向の指令パルスが400回入力されることにより、モータ回転軸を、電気角一周の7.2°回転させることができ、更に、CWP方向の指令パルスが20000回(電気角一周×50回)入力されることにより、モータ回転軸を、機械角で360°(1回転)回転させることができる。
更に本実施例3の場合、ステッピングモータ3の相数は「2相」であるため、第1アドレスカウンタ61a〜第3アドレスカウンタ61c間に、各アドレスカウンタが管理するアドレス数の「400」を出力端子11の使用する数の「4」で除した「100」のギャップを、第1アドレスカウンタ61aと第2アドレスカウンタ61bの間、第2アドレスカウンタ61bと第3アドレスカウンタ61cの間、第3アドレスカウンタ61cと第4アドレスカウンタ61dの間、及び第4アドレスカウンタ61dと第1アドレスカウンタ61aの間にそれぞれ設けて、その上で、第1アドレスカウンタ61a〜第4アドレスカウンタ61dがそれぞれアドレスの管理を行う。このため、例えば第1アドレスカウンタ61aのアドレスの数値が「000」の場合、第2アドレスカウンタ61b、第3アドレスカウンタ61c、及び第4アドレスカウンタ61dのアドレスの数値は、それぞれ「100」、「200」及び「300」となる。
従って、本実施例3においてドライバ10の電源が入れられると、イニシャライズ処理として、ドライバ10のFPGA40が、相数セレクトスイッチの選択位置と分解能セレクトスイッチの選択位置とを読み取ることによって、第1アドレスカウンタ61a〜第4アドレスカウンタ61dで管理するアドレス数として、「000」〜「399」の400個を設定するとともに、第1アドレスカウンタ61a〜第4アドレスカウンタ61dに、出力端子11の使用する数に応じたギャップ「100」を設けたアドレス(基数)の数値を設定する。
FPGA40の初期設定後、CWP方向又はCCWP方向の指令パルスがドライバ10に入力されることにより、アドレスブロック60の第1アドレスカウンタ61a〜第4アドレスカウンタ61dは、それぞれが管理するアドレスの数値を、指令パルスの入力毎にインクリメント又はデクリメントする。また、FPGA40は、第1アドレスカウンタ61a〜第4アドレスカウンタ61dで管理されるアドレスに応じて、前述した実施例1で説明した処理と実質的に同様の処理を行う。
簡単に説明すると、電流基準データブロック70は電流基準値のデータ「i×sinθ」(0°≦θ<360°)が予め格納されているROM72から、アドレスレジスタ71に保持されている第1アドレスカウンタ61a〜第4アドレスカウンタ61dのそれぞれのアドレスに対応する電流基準値のデータをそれぞれ読み出して、その読み出した各電流基準値のデータを、対応する第1電流基準値レジスタ73a〜第4電流基準値レジスタ73dにそれぞれ同時にセットする。このとき、第1電流基準値レジスタ73a〜第4電流基準値レジスタ73dに同時にセットされる各電流基準値のデータには、第1アドレスカウンタ61a〜第4アドレスカウンタ61d間に設けたアドレスのギャップに対応した正弦波の位相差(90°の位相差)が設けられている。
また、FPGA40のPWM出力ブロック90は、第1電流基準値レジスタ73a〜第4電流基準値レジスタ73dに格納されている電流基準値と、第1電流検出値レジスタ81a〜第4電流検出値レジスタ81dに格納されている電流検出値とを単位周期(PWMサイクル)毎に読み出して、対応する値同士を比較し、前述の実施例1の場合と同様に所定の演算及び比較を出力端子11毎に個別に且つ並列的に行うことによって、第1PWM処理部91a〜第4PWM処理部91dから、出力段20に向けて、第1出力端子11a〜第4出力端子11dのそれぞれに対するPWM制御信号を単位周期ごとに同時に出力する。これにより、出力段20は、PWM出力ブロック90から出力されるPWM制御信号に従って、各スイッチング素子21のON/OFFを行う。
これによって、ドライバ10の第1出力端子11a〜第4出力端子11dに、流れる方向及び大きさが制御された電流を所定のタイミングで流すことができる。この場合、第1出力端子11a〜第4出力端子11dにそれぞれ流れる電流の大きさ(電流値)は、電流基準値の「i×sinθ」の大きさに対応しており、相互にアドレスブロック60に設けたギャップに対応した正弦波の位相差(90°の位相差)に相当する比率を有する。
例えば、本実施例3の2相ステッピングモータ3において、モータ回転軸を0°の電気角位置にステップ駆動させる場合には、図13に示したステッピングモータ3にモータ電流b及びモータ電流Aを流して、トルクベクトルbA(Vb+VA)を発生させる。このとき、本実施例3では、ドライバ10の制御によって、第1出力端子11a〜第4出力端子11dに対し、第1アドレスカウンタ61a〜第4アドレスカウンタ61dで管理されているアドレスの電気角位置に対応し、且つ、各出力端子11間で正弦波における90°(=360°/出力端子11の使用する数「4」)の位相差が設けられた所定の比率の電流を流す。
具体的には、モータ回転軸を0°の電気角位置にステップ駆動させる場合、ドライバ10の第1出力端子11a〜第4出力端子11dには、図16に示したように、i×sin45°(=+0.707×i)、i×sin135°(=+0.707×i)、i×sin225°(=−0.707×i)、及びi×sin315°(=−0.707×i)の大きさの電流をそれぞれ流すことができ、これによって、ステッピングモータ3の図13に示した第1コイル3a及び第2コイル3bに対して、モータ電流A及びモータ電流bをそれぞれ流すことができる。これにより、2相ステッピングモータ3の第1コイル3a及び第2コイル3bを単位周期内で励磁して、トルクベクトルbA(Vb+VA)を発生させるため、モータ回転軸を0°の電気角位置にステップ駆動させることができる。
また電気角位置が0°の状態から、CWP方向(又はCCWP方向)の指令パルスがドライバ10に入力されると、第1アドレスカウンタ61a〜第4アドレスカウンタ61dのアドレスがインクリメント(又はデクリメント)されるとともに、第1アドレスカウンタ61a〜第4アドレスカウンタ61dで管理されるアドレスに応じてFPGA40が所定の処理を行う。これによって、ドライバ10の第1出力端子11a〜第4出力端子11dに、正弦波における90°の位相差(アドレスブロック60に設けたギャップに対応した位相差)が設けられた所定の比率のモータ電流A,a;B,bを単位周期毎にそれぞれ流すことができる。
更に、ドライバ10の制御によって第1出力端子11a〜第4出力端子11dのそれぞれから出力する電流について、電気角θが0°≦θ<360°の範囲における電流値の変動を見ると、例えば図15の右側に示すように、第1出力端子11a〜第4出力端子11dから出力する各電流は、ROM72に格納されている電気角一周分の電流基準値のデータに対応してそれぞれ正弦曲線を示すように制御されるとともに、各出力端子11間で互いに90°の位相差が設けられている。
以上のように、図1に示した構成を有するドライバ10に、本実施例3の2相ステッピングモータ3が接続された場合でも、FPGA40にてドライバ10の4つの第1出力端子11a〜第4出力端子11dに関する処理を並列的に同時に行うことができ、それによって、ドライバ10の第1出力端子11a〜第4出力端子11dから、2つの相に対応した正弦波の位相差(90°の位相差)がもたらす比率の電流を安定して出力できる。このため、ドライバ10に入力されるCWP方向及びCCWP方向の指令パルスに従って、2相ステッピングモータ3を円滑にステップ駆動させることができる。
そして、以上の実施例1〜実施例3に示したように、図1に示した本発明のドライバ10は、前述の特許文献2及び特許文献3等の従来のドライバのような「励磁パターン」を用いてモータの駆動制御を行うのではなく、正弦波における電流を流す出力端子11の個数で360°を除した角度の位相差を利用して(正弦波の位相をずらして)モータの駆動制御を行う。これにより、ステッピングモータ1,2,3のステップ駆動の滑らかさや静穏性を向上できるとともに、図1に示した一つのドライバ10で、実施例1の5相ステッピングモータ1、実施例2の3相ステッピングモータ2、及び実施例3の2相ステッピングモータ3の何れに対してもステップ駆動させることが可能となる。
このように相数の異なるステッピングモータ1,2,3に対応できるドライバ10であれば、例えば各種装置に複数のステッピングモータを用いる際に、専用の複数種類のドライバを用いる必要がなくなるため、ドライバに要する費用を抑えられる。また、ドライバの種類を1つに統一した上で、ステッピングモータを自由に選択することができるため、その仕様に対してより最適なステッピングモータを選択することが可能となる。
特に、相数の異なるステッピングモータに対してドライバの種類を1つに統一できることにより、ステッピングモータの相数が異なる場合でもドライバの駆動に起因する特性の違いは生じない。このため、ステッピングモータの選択を、より簡単な条件から行うことができるようになり、その結果、装置設計の自由度を格段に拡げることができる。
更に、ドライバが1つに統一されることにより、ドライバが配置される制御ボックス内の設計が行い易くなるとともに、制御ボックス内を整然と綺麗に仕上げることができる。また仕様変更や設計変更が生じて、装置に既設されているステッピングモータを新しいものに取り換える場合にドライバの変更を不要にすることも可能となる。その結果、労力、費用、時間の削減を図ることができるとともに、ドライバの変更に伴うリスクをなくすことができる。
またドライバが1つに統一されることにより、装置のメンテナンスのための部品管理に要する負担が軽減されるとともに、メンテナンス作業の精確性や効率を向上させることができる。その上、ステッピングモータの相数の違いによるドライバ開発費の分散を防止できる。また、ドライバ製造における部材調達、製造、検査、及び管理上の負担も軽減され、その結果、ドライバをより安価に提供することが可能となる。
1 ステッピングモータ
1a 第1コイル
1b 第2コイル
1c 第3コイル
1d 第4コイル
1e 第5コイル
2 ステッピングモータ
2a 第1コイル
2b 第2コイル
2c 第3コイル
3 ステッピングモータ
3a 第1コイル
3b 第2コイル
10 モータ駆動装置(ドライバ)
11 出力端子
11a 第1出力端子
11b 第2出力端子
11c 第3出力端子
11d 第4出力端子
11e 第5出力端子
15 フォトカプラインターフェイス回路
20 出力段
21 スイッチング素子(パワーMOS FET)
22 ゲートドライバ
30 電流検出部(電流検出回路)
31 センシング抵抗(シャント抵抗)
32 差動増幅回路
33 A/Dコンバータ
40 FPGA
41 三角波発生回路(三角波発生部)
50 周期タイミングブロック
51 サイクルカウンタ
60 アドレスブロック
61a 第1アドレスカウンタ
61b 第2アドレスカウンタ
61c 第3アドレスカウンタ
61d 第4アドレスカウンタ
61e 第5アドレスカウンタ
70 電流基準データブロック
71 アドレスレジスタ
72 ROM
73a 第1電流基準値レジスタ
73b 第2電流基準値レジスタ
73c 第3電流基準値レジスタ
73d 第4電流基準値レジスタ
73e 第5電流基準値レジスタ
80 電流検出データブロック
81a 第1電流検出値レジスタ
81b 第2電流検出値レジスタ
81c 第3電流検出値レジスタ
81d 第4電流検出値レジスタ
81e 第5電流検出値レジスタ
82 A/Dコンバータインターフェイス回路
90 PWM出力ブロック
91a 第1PWM処理部
91b 第2PWM処理部
91c 第3PWM処理部
91d 第4PWM処理部
91e 第5PWM処理部
92 2点移動平均フィルタ
93 差分演算回路
94 増幅回路
95 PWM回路
A,a コイルに流れる電流
B,b コイルに流れる電流
C,c コイルに流れる電流
D,d コイルに流れる電流
E,e コイルに流れる電流
DV モータ駆動電圧
VA,Va トルクベクトル
VB,Vb トルクベクトル
VC,Vc トルクベクトル
VD,Vd トルクベクトル
VE,Ve トルクベクトル

Claims (5)

  1. 複数のコイル(1a〜1e,2a,2b,2c,3a,3b)を備えたステッピングモータ(1,2,3) を駆動させるモータ駆動装置(10)であって、
    前記ステッピングモータ(1,2,3) の前記コイル(1a〜1e,2a,2b,2c,3a,3b)に電流を出力する複数の出力端子(11)と、
    前記出力端子(11)ごとに2つずつ配されるスイッチング素子(21)、及び前記スイッチング素子(21)を駆動するゲートドライバ(22)を備える出力段(20)と、
    外部から入力される外部指令パルスに従って前記出力段(20)に制御信号を出力するFPGA(40)と、
    前記出力端子(11)ごとに配され、各出力端子(11)の電流を検出して電流検出値を前記FPGA(40)に出力する複数の電流検出部(30)とを有し、
    前記FPGA(40)は、各出力端子(11)に対応して設けられるとともにアドレスを管理する複数のアドレスカウンタ(61a〜61e)と、電流基準値のデータが格納されているROM(72)と、前記ROM(72)から各アドレスカウンタ(61a〜61e)の前記アドレスに対応する前記電流基準値を単位周期ごとに読み出して前記出力端子(11)ごとに格納する複数の電流基準値レジスタ(73a〜73e)と、前記単位周期ごとに三角波を生成する三角波発生部(41)と、前記電流基準値レジスタ(73a〜73e)に格納された前記電流基準値と前記電流検出部(30)で検出された前記電流検出値とから前記単位周期ごとに演算される誤差及び前記三角波を用いて前記出力端子(11)ごとのPWM制御信号を前記出力段(20)にそれぞれ出力する複数のPWM処理部(91a〜91e)とを有し、
    各アドレスカウンタ(61a〜61e)は、前記アドレスカウンタ(61a〜61e)間に前記出力端子(11)の個数に応じたギャップを設けて、前記出力端子(11)ごとにぞれぞれのアドレスを管理し、
    前記電流基準値のデータは、単位電流値を「i」として、「i×sinθ」で表され、
    前記ROM(72)に、前記θが0°≦θ<360°の範囲に相当する前記電流基準値のデータが格納され、
    各出力端子(11)は、前記PWM制御信号による前記出力段(20)の制御により、正弦波における前記ギャップに対応した位相差に相当する比率で電流値が異なる前記電流をそれぞれ出力してなる、
    ことを特徴とするモータ駆動装置。
  2. 前記PWM処理部(91a〜91e)は、前記単位周期ごとに前記誤差を演算するとともに、移動平均処理を用いて当該単位周期の2点平均誤差と、1つ前の単位周期の2点平均誤差との差分を演算し、当該単位周期の前記誤差と前記差分との和を前記三角波と比較することにより前記PWM制御信号を生成する請求項1記載のモータ駆動装置。
  3. 前記FPGA(40)における前記アドレスカウンタ(61a〜61e)、前記電流基準値レジスタ(73a〜73e)、及び前記PWM処理部(91a〜91e)は、前記出力端子(11)と同じ個数で設けられてなる請求項1又は2記載のモータ駆動装置。
  4. 少なくとも5つの前記出力端子(11a〜11e)を有してなる請求項1〜3のいずれかに記載のモータ駆動装置。
  5. 駆動させる前記ステッピングモータ(1,2,3) の種類を、前記コイル(1a〜1e,2a,2b,2c,3a,3b)の数に応じて選択する相数セレクトスイッチを有してなる請求項1〜4のいずれかに記載のモータ駆動装置。
JP2017213121A 2017-11-02 2017-11-02 モータ駆動装置 Active JP6813755B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017213121A JP6813755B2 (ja) 2017-11-02 2017-11-02 モータ駆動装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017213121A JP6813755B2 (ja) 2017-11-02 2017-11-02 モータ駆動装置

Publications (2)

Publication Number Publication Date
JP2019088064A JP2019088064A (ja) 2019-06-06
JP6813755B2 true JP6813755B2 (ja) 2021-01-13

Family

ID=66764378

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017213121A Active JP6813755B2 (ja) 2017-11-02 2017-11-02 モータ駆動装置

Country Status (1)

Country Link
JP (1) JP6813755B2 (ja)

Also Published As

Publication number Publication date
JP2019088064A (ja) 2019-06-06

Similar Documents

Publication Publication Date Title
JP5646846B2 (ja) ドライバ回路
CN110463021B (zh) 用于具有误差补偿的三相电机控制的方法和装置
JP6124112B2 (ja) 交流電動機の制御装置及び制御方法
CN113474988B (zh) 具有精确电流测量功能的电机控制器
CN109073414A (zh) 位置传感器和用于生成传感器输出信号的方法
JP2010068584A (ja) モータ制御装置,モータ駆動システム,ポンプ装置並びにモータ制御方法
CN109075727B (zh) 马达模块以及马达步进动作控制系统
Wale et al. Hybrid stepping motors and drives
JP6813755B2 (ja) モータ駆動装置
WO2018037832A1 (ja) モータ制御回路、モータ制御装置、アクチュエータ及びステッピングモータの制御方法
JP6582216B2 (ja) 三相ブラシレスdcモータの制御方法及び該制御方法を用いたモータ制御装置
JP6760092B2 (ja) 真空バルブ
JP2008278643A (ja) ステッピングモータ駆動装置
CN115113112A (zh) 半导体装置
JP7352967B2 (ja) 駆動装置
JP7129802B2 (ja) モータ制御装置、ステッピングモータシステム及びモータ制御方法
JP5016636B2 (ja) 2相ステッピングモータ駆動装置
JPH01231694A (ja) ステッピングモータの励磁電流プロファイル較正方法
EP4571266A1 (en) Self-correcting inductive sensor
KR101754446B1 (ko) Rpt 신호 오프셋 학습 시스템
KR101043743B1 (ko) 스테핑 모터 구동 장치
JP2020068635A (ja) モーター駆動装置
JP4178058B2 (ja) ステッピングモータのマイクロステップ方法及びステッピングモータ
JP6425305B2 (ja) ステッピングモータ用駆動装置、及びステッピングモータの駆動方法
Hristov Methods for controlling brushless DC electric motor (BLDC) applicable in robotics

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190724

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200526

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201119

R150 Certificate of patent or registration of utility model

Ref document number: 6813755

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250