以下において、特段の断りがない場合、上付きの*は、指令値を表している。また、ハットの符号^は、推定値を表す。本開示において、CW回転とは、モータの出力軸側から見て時計まわり方向の回転である。CCW回転とは、出力軸側から見て反時計まわり方向の回転である。
まず、図1を参照しながら、本開示によるモータモジュールの例示的な基本構成を説明する。
図1に例示されているモータモジュール1000は、モータMと、モータMの動作を制御するモータステップ動作制御システム1とを備えている。モータMは、ロータRと不図示のステータとを備えている。本開示におけるモータMの典型例は、ブラシレスDCモータであり、ステッピングモータではない。モータステップ動作制御システム1は、モータMを駆動するモータ駆動回路10と、モータ駆動回路10に接続されているモータ制御回路20とを備えており、モータMにステップ動作を実行させることが可能である。なお、図1には、ブロック間に双方向の白抜き矢印が記載されている。この矢印は、信号およびデータなどの情報が常に2方向に移動し得ることを意味していない。例えば、モータ駆動回路10とモータ制御回路20との間では、モータ制御回路20からモータ駆動回路10に向かって1方向に信号が送られても良い。
モータモジュール1000は、外部装置70に接続されている。この例における外部装置70は、ステッピングモータコントローラ72と、ステッピングモータコントローラ72を制御する上位コントローラ74とを備えている。ステッピングモータコントローラ72は、通常のステッピングモータを駆動するためのパルス信号を出力する。モータ制御回路20は、このパルス信号を受け取り、ステッピングモータではないモータMにステップ動作を実行させることができる。モータ駆動回路10は、モータ制御回路20から出力された電圧指令値に基づいて、モータMの動作に必要な電圧を与える。モータ駆動回路10は、例えばインバータ回路およびプリドライバを備えている。インバータ回路は、複数のパワートランジスタを有するブリッジ回路であり得る。モータ駆動回路10は、電圧指令値として、典型的にはパルス幅変調(PWM)信号をモータ制御回路20から受け取り、擬似的な正弦波電圧をモータMに与える。
本開示のモータモジュール1000が例えば複合機に使用される場合、外部装置70は、ステッピングモータコントローラ72以外の種々の制御回路を備えている。一般に、そのような制御回路は、ステッピングモータコントローラ72とともに、1個または複数個の特定用途向け集積回路チップによって実現され得る。このため、従来の複合機におけるステッピングモータを他のモータ(例えばブラシレスDCモータ)に置き換える場合、ステッピングモータコントローラ72の機能をブラシレスDCモータの動作のために変更することは困難である。本開示によるモータモジュール1000の構成によれば、ステッピングモータの使用を前提として製造された外部装置70の基本設計を変更することなく、ステッピングモータを他の種類のモータMに変更して使用することが可能になる。
図示されているモータモジュール1000は、ロータRの位置推定信号を出力する位置推定装置30と、可変ステップサイズ情報を記憶した可変ステップサイズメモリ40とを更に備えている。位置推定信号は、ロータRの位置推定値を示す信号である。位置推定信号は、位置推定装置30からモータ制御回路20に入力される。本実施形態における位置推定装置30が出力する位置推定信号は、パルス列ではなく、ロータRの位置に応じて線形的に変化する大きさを有している。この点において、本開示における位置推定信号は、公知のロータリエンコーダが出力する回転位置検出信号とは大きく異なる。位置推定信号例の概略については、のちに図3Bを参照して説明する。
前述したように、ロータリエンコーダから出力される信号の典型例は、2相パルス列である。2相パルス列に基づいてロータRの位置を制御しようとすると、2相パルス列のパルス間隔よりも狭い分解能でロータRの位置を制御することはできない。しかし、後に説明するように、本開示によるモータモジュールの実施形態では、位置推定信号がロータRの位置(機械角)の変化に応じて線形的に変化する大きさを持つ。このため、ロータリエンコーダの分解能に制限されずにロータRの位置決めを行うことが可能になる。また、その結果、外部装置70が送出するパルス信号の1パルスに対する「ロータの位置変化量(ステップサイズ)」を自在に変更することも可能になる。
外部装置70から入力されるパルス信号の1パルスに対する「ロータの位置変化量」を規定する情報、すなわち「可変ステップサイズ情報」は、可変ステップサイズメモリ40に記憶されている。従来、ステッピングモータにおけるパルス信号の1パルスに対するロータの位置変化量(回転角度)は、「ステップ角」と称されている。例えばステップ角が0.9°の場合、パルス信号の1パルスに対するロータの位置変化量は0.9°である。従来のステッピングモータでは、ステップ角の最小単位は、モータの機械的構造によって決まっている。ステップ角の最小単位が0.9°であるステッピングモータを使用する場合、0.9°よりも小さな任意の角度でロータの位置決めを行うことはできない。しかし、本開示の実施形態によれば、パルス信号の1パルスに対するロータの位置変化量を、モータの機械的構造に制約されることなく決定することができる。この詳細は後述する。
本開示によるモータ制御回路20は、外部装置70からパルス信号を受け取ると、位置推定装置30から取得したロータRの位置推定値と、可変ステップサイズメモリ40から読み出した可変ステップサイズ情報とに基づいて、電圧指令値を決定する。モータ駆動回路10は、この電圧指令値に基づいてモータMを駆動し、ロータRの位置を変化させる。
モータ制御回路20は、例えば図2に示されるハードウェア構成を有していても良い。この例におけるモータ制御回路20は、互いにバス接続されたCPU(中央演算ユニット)54、PWM回路55、ROM(リードオンリーメモリ)56、RAM(ランダムアクセスメモリ)57、およびI/F(入出力インタフェース)58を有している。図示されていない他の回路またはデバイス(AD変換器など)が付加的にバスに接続されていても良い。PWM回路55は、図1のモータ駆動回路10にPWM信号を与える。CPU54の動作を規定するプログラムおよびデータは、ROM56およびRAM57の少なくとも一方に記憶されている。このようなモータ制御回路20は、例えば32ビットの汎用的なマイクロコントローラによって実現され得る。そのようなマイクロコントローラは、例えば1個または複数の集積回路チップから構成され得る。
上述した可変ステップサイズメモリ40は、図1において、モータ制御回路20から分れて記載されているが、モータ制御回路20内のROM56およびRAM57の少なくとも一方の一部が可変ステップサイズメモリ40を実現していても良い。また、モータ制御回路20が位置推定装置30の機能の一部または全部を実現しても良い。
モータ制御回路20が行う各種の動作の詳細については、後述する。典型的には、モータ制御回路20が行う各種の動作は、プログラムによって規定されている。プログラムの内容の一部または全部を更新することにより、モータ制御回路20の動作の一部または全部を変更することが可能である。そのようなプログラムの更新は、プログラムを格納した記録媒体を用いて行ってもよいし、有線または無線の通信によって行っても良い。通信は、図2のI/F58を用いて行うことができる。図2に示されるCPU54の演算量を低減するために、モータ制御回路20が行う各種の動作の一部、例えばベクトル演算の一部が、その演算専用のハードウェア回路によって実行されてもよい。
図3Aは、モータ制御回路20の機能ブロックを模式的に示す図である。図示されているモータ制御回路20は、信号処理回路500、位置指令値生成回路520、および演算器540を有している。位置指令値生成回路520は、外部装置70から入力されたパルス信号に基づいて位置指令値Θ*を生成し、演算器540に入力する。
演算器540には、位置推定装置30から出力された位置推定値Θ^も入力される。位置推定装置30は、ロータRの位置をセンシングする検出装置150からの信号に基づいてロータRの位置を推定する。例えば、位置指令値Θ*が45.5°、位置推定値Θ^が30°であるとき、演算器540および信号処理回路500は、ロータRをΘ=30°の位置からΘ=45.5°の位置に移動させる(回転させる)ための電圧指令値を算出する。この電圧指令値は、ロータRの位置変化に応じて適切な値が算出され、例えば約50マイクロ秒間隔でモータ駆動回路10に与えられる。モータ制御回路20は、位置推定装置30から受け取る位置推定値Θ^が位置指令値Θ*に等しくなるまで、モータ駆動回路10を制御してモータMを駆動する。モータ制御回路20が電圧指令値としてPWM信号を出力する場合、電圧指令値を出力する周期を「PWM周期」と呼んでもよい。
図3Bは、位置推定装置30から出力された位置推定値Θ^を示す信号の波形例を示す図である。ロータRの機械角が0°から360°までの増加する過程において、位置推定値Θ^を示す信号の大きさは、ゼロから線形的に所定値まで増加する。言い換えると、ロータRが1回転しているとき、位置推定値Θ^を示す信号の大きさは、連続的かつ直線的に変化する。ロータRが2回転以上回転するとき、位置推定値Θ^を示す信号の大きさは、周期的に変動する。この周期は、ロータRが1回転する時間に一致する。また、ロータRの機械角の位置に応じて、位置推定値Θ^を示す信号は、異なる大きさを持つ。位置推定値Θ^を示す信号の大きさからロータRの機械角(位置)を一義的に特定することができる。
図3Bの例において、ロータRは、時刻t1から時刻t2までの期間に一定の回転速度で4回転している。また、ロータRは、時刻t3から時刻t4までの期間に一定の回転速度で4回転している。時刻t1から時刻t2までの期間の回転速度よりも、時刻t3から時刻t4までの期間の回転速度の方が高い。
図4Aは、図1の外部装置70からモータモジュール1000に与えられるパルス信号の波形例(左側)と、ロータRの位置変化(右側)との関係を模式的に示す図である。この例において、モータモジュール1000のモータ制御回路20は、外部装置70のステッピングモータコントローラ72から、パルスP1、パルスP2、パルスP3、パルスP4、およびパルスP5を、順次、受け取る。
このようなパルスは、例えば1秒間の間に数十〜数十万個のレートで、モータ制御回路20に入力され得る。ロータRは、パルス信号に応答して回転する。図4Aでは、1パルスに対するロータRの位置変化量、すなわちステップ角S1〜S5は、0.9°である。
図4B、図4C、および図4Dは、それぞれ、図1の外部装置70からモータモジュール1000に与えられるパルス信号の波形例(左側)と、ロータRの位置変化(右側)との関係の他の例を模式的に示す図である。いずれの例においても、外部装置70からモータモジュール1000に与えられるパルス信号の波形例(左側)は、同じである。モータモジュール1000のハードウェアは、図4A〜4Dの例において、共通している。しかし、図4Bの例において、1パルスに対するロータRの位置変化量、すなわちステップ角S1〜S5は、図4Aの例とは異なり、0.7°である。このようなステップ角の変更は、演算に用いる可変ステップサイズ情報の変更によって実現されている。この可変ステップサイズ情報の設定または変更は、モータモジュール1000の生産時または出荷時にモータモジュール1000ごとに実行することも可能であるが、個々のモータモジュール1000について、起動時または動作の途中に行うことも可能である。以下の例では、動作の途中に可変ステップサイズ情報を変更している。
図4Cの例において、1パルスに対するロータRの位置変化量、すなわちステップ角は、パルスP1〜P3に対して0.7°であるが、パルスP4〜P5に対して1.5°である。この例におけるステップ角は、動作の途中に変化している。この変化の前後において、一方のステップ角は他方のステップ角の整数倍ではない。図4Dの例において、1パルスに対するロータRの位置変化量、すなわちステップ角は、パルスP1に対して3.2°であり、パルスP2〜P5に対して0.45°である。1つのパルスに対するロータRの位置変化量を極端に大きくすることも可能である。例えば、1つのパルスに応答して、ロータRを1回転(360°)、またはそれ以上動かすことも可能である。
図5Aおよび図5Bは、それぞれ、図1の外部装置70からモータモジュール1000に与えられるパルス信号の波形例(左側)と、ロータRの位置変化(右側)との関係を模式的に示す図である。図5Aの例と図5Bの例との間にある差異は、外部装置70からモータモジュール1000に与えられるパルス信号のパルスレートにある。パルスレートは、単位時間あたりにモータモジュール1000に入力されるパルスの個数を意味する。パルスレートは「パルス周波数」と呼ばれることもある。図5Bに示されるパルス信号のパルスレートは、図5Aに示されるパルス信号のパルスレートよりも低い。図5Aおよび図5Bの例では、ステップ角は0.7°で共通しているが、パルスレートが異なるためロータRの回転速度(位置変化速度)が異なる。より具体的には、パルスレートが高いほど、ロータRの回転速度は高くなる。
図6は、ロータRの回転速度と時間との関係を示すグラフ(上段)と、外部装置70からモータモジュール1000に与えられるパルス信号の波形例(下段)とを示す図である。時刻T1から時刻T2までの期間において、パルスレートは直線的に高くなり、それに伴ってロータRの回転速度も増加している。また時刻T2から時刻T3までの期間では、パルスレートは一定であり、ロータRの回転速度も一定である。更に時刻T3から時刻T4までの期間では、パルスレートは直線的に低くなり、それに伴ってロータRの回転速度も低下している。このように、パルス信号に含まれるパルスレートにより、ロータRの回転速度を制御することができる。
モータモジュール1000には、外部装置70からロータRの回転方向を指定する信号が入力されても良い。図7は、ロータRの回転方向を指定する信号を受け取ることのできる位置指令値生成回路520の例を示している。図7の左側に示されている位置指令値生成回路520Aは、CW端子およびCCW端子を有している。図7の右側に示されている位置指令値生成回路520Bは、STMP端子およびDIR端子を有している。本開示において、ロータRの回転方向の指定は、いずれの位置指令値生成回路520を用いても良い。
次に、図8A〜図8Cを参照して、位置指令値生成回路520の入力端子に与えられる外部入力信号の例を説明する。
図8Aは、位置指令値生成回路520AのCW端子およびCCW端子に入力される信号の波形を示す図である。図8Aに示される例では、位置指令値生成回路520AのCW端子にパルス信号が入力される場合と、CCW端子にパルス信号が入力される場合とで、ロータRの回転方向が異なる。例えばCW端子にパルス信号が入力されているとき、ロータRは第1の方向に回転し、CCW端子にパルス信号が入力されているとき、ロータRは第1の方向とは反対の第2の方向に回転する。
図8Bは、位置指令値生成回路520BのSTMP端子およびDIR端子に入力される信号の波形の他の例を示す図である。図8Bに示される例では、パルス信号は位置指令値生成回路520BのSTMP端子に入力される。DIR端子に論理「低」の信号を与えるか、論理「高」の信号を与えるかによって、ロータRの回転方向が異なる。例えばDIR端子に論理「低」の信号が与えられているとき、ロータRは第1の方向に回転する。DIR端子に論理「高」の信号が与えられているとき、ロータRは第1の方向とは反対の第2の方向に回転する。
図8Cは、位置指令値生成回路520BのSTMP端子およびDIR端子に入力される信号の波形の他の例を示す図である。図8Cに示される例では、位置指令値生成回路520BのSTMP端子およびDIR端子に2相のパルス信号が与えられる。位相の進み/遅れにより、ロータRの回転方向が異なる。例えばSTMP端子に入力されるパルス信号の位相が、DIR端子に入力されるパルス信号の位相よりも進んでいるとき、ロータRは第1の方向に回転する。STMP端子に入力されるパルス信号の位相が、DIR端子に入力されるパルス信号の位相よりも遅れているとき、ロータRは第1の方向とは反対の第2の方向に回転する。
上記の波形および位置指令値生成回路520の端子構成は、典型的な例に過ぎず、本開示の実施形態を限定しない。
次に、図9を参照しながら、モータ制御回路20をより詳しく説明する。図9は、本開示におけるモータ制御回路20の機能ブロックの構成例を示す図である。この例において、モータ制御回路20、位置推定装置30、および可変ステップサイズメモリ40は、マイクロコントローラによって実現されている。本願では、このようなマイクロコントローラを「モータ制御装置」と称し、参照符号「100」で示す場合がある。
図9に示されるモータ制御回路20は、位置指令値生成回路520と、速度指令値生成回路545と、比較器550a、550bと、速度指令値生成回路560とを備えている。図9では、簡単のために各構成要素の「回路」の用語の記載を省略している。
位置指令値生成回路520は、例えば図8A、8B、および8Cに例示されるようなパルス信号を受け取り、位置指令値Θ*を生成する。位置指令値生成回路520は、可変ステップサイズメモリ40の内容をテーブルとして記憶していてもよい。例えば、位置指令値生成回路520は図10に示される構成を有し得る。図10に示される例において、位置指令値生成回路520は、可変ステップサイズメモリと同じ機能を発揮するメモリをテーブルとして備えている。位置指令値生成回路520は、図1の外部装置70から出力された信号(外部信号)を受け取る複数の端子を備えている。これら複数の端子は、STMP端子、DIR端子、およびST−SIZE端子を含んでいる。
STMP端子およびDIR端子は、前述したように、図1のステッピングモータコントローラ72からパルス信号を受け取る。ST−SIZE端子は、外部装置70から、ステップサイズを指定する外部信号を受け取る。このステップサイズを指定する外部信号は、位置指令値生成回路520が備えるテーブルにおける番号を特定し、その番号によって定まる値(テーブル値)を読み出す。テーブルの番号は、例えば「0」、「1」、「2」、および「3」である。テーブルの番号「0」、「1」、「2」、および「3」は、それぞれ、例えば「0.45」、「0.90」、「1.80」、および「10.0」の値を有している。これらの複数のテーブル値がステップサイズ(ステップ角)の候補値である。
テーブル番号を示す信号は、例えば図1の外部装置70の上位コントローラ74から出力され得る。図10に示されている例においては、4個のST−SIZE端子に、それぞれ、テーブル番号の「0」、「1」、「2」、および「3」が割り当てられている。4個のST−SIZE端子のいずれか1個の端子には、外部装置70から、ステップサイズを指定する信号として、例えば論理「高」の電位が与えられ、他の3個の端子には、例えば論理「低」の電位が与えられる。論理「高」の電圧が与えられた1個のST−SIZE端子に「0.45」のテーブル値が与えられている場合、ステップサイズとして0.45°が用いられることになる。ステップサイズの決定は、例えば起動時に行うことができる。また、動作中にステップサイズの変更を行うこともできる。モータ制御装置100は、可変ステップサイズメモリ40に記憶されている複数の候補値から、任意の1つを選択するピンまたはインタフェースを備えていてもよい。
テーブル番号の指定は、1ビット以上のデータによって行ってもよい。その場合、m個のST−SIZE端子により、2のm乗個のステップサイズ候補から任意の1個の値を指定することができる。また、テーブル番号の指定には、シリアル通信等の通信手段によって行っても良い。このようなステップサイズの指定は、図1の外部装置70における上位コントローラ74が行ってもよいし、他のコントローラによって行ってもよい。また、機械的なスイッチにより、モータモジュール1000の製造者またはユーザがステップサイズを選択してもよい。テーブルまたは可変ステップサイズメモリ40に記憶される値を、外部から更新することも可能である。
ある実施形態における位置指令値生成回路520は、以下の式に基づいて、位置指令値Θ* を生成する。
Θ* = Θset × N_STMP × Dir + Θ^ (式1)
ここで、Θ^は位置推定値、Θsetはステップサイズ、N_STMPは設定された期間内に外部装置70から入力されたパルス信号のパルスカウント数、Dirはロータの回転方向(位置変化方向)を規定する符号である。位置変化方向が第1の方向であるときはDir=1、第1の方向とは反対の第2の方向であるときはDir=−1とする。
ステップサイズΘset として、例えば0.45°の値が選択されている例を説明する。この例において、STMP端子に入力されたパルス信号の時刻t0〜t1までの現在期間Tミリ秒の間にパルスカウント数N_STMPが50個であり、また、現在期間においてDIR端子に与えられている信号がDir=1を示しているとする。また、位置推定装置30から取得したロータRの現在の位置推定値Θ^が112.4°であるとする。この場合、上記の式1によると、位置指令値Θ*は、以下の値を持つ。
0.45°×50×1+112.4°=134.9°
この例では、位置指令値生成回路520が、134.9°の位置指令値を示すデジタル信号を出力する。
再び図9を参照する。
位置指令値生成回路520から出力された位置指令値は、比較器550aに与えられる。比較器550aは、位置推定装置30から取得した位置推定値と位置指令値生成回路520から取得した位置指令値とを比較し、位置推定値と位置指令値との偏差を出力する。速度指令値生成回路560は、比較器550aの値に基づき、速度指令値を生成する。速度指令値生成回路560から出力された速度指令値は、比較器550bに与えられる。比較器550bは、速度推定値生成回路545から取得した速度推定値と速度指令値とを比較し、偏差を出力する。
これらの比較結果を用いて、モータ制御回路20は、電圧指令値を決定して、PWM信号生成回路570から電圧指令値を示すPWM信号を出力する。電圧指令値の決定は、例えば公知のベクトル制御技術を用いた演算によって実行され得る。
なお、図9において、電流制御は省略されているが、速度制御の後に、電流制御が行われても良い。また、位置制御と速度制御の組み合わせに限定されない。ここで、モータ制御回路20は、可変ステップサイズ情報およびパルス信号に基づいて、位置指令値および速度指令値を生成してもよい。
次に、図11を参照しながら、位置指令値生成回路520による位置指令値の生成動作フローの一例を説明する。
まず、手順S10でモータモジュールの起動を行う。手順S12では、ステップサイズとしてステップ角を指定する外部入力信号の有無を確認する。図10の例では、ST−SIZE端子上の信号が外部入力信号として読み出される。外部入力信号が検出されたとき、手順S14に進む。手順S14において、外部入力信号によって特定される値Θstep1をステップ角Θsetとして選択する。この値は、例えば図10のテーブルに記憶されていた複数の候補値のいずれか1つの値である。
手順S12において、外部入力信号が検出されないときは、手順S16に進む。手順S16では、他の信号線によって特定された値Θstep2をステップ角Θsetとして選択する。この信号線の電位は、例えばモータモジュール1000が有するスイッチのON/OFFによって制御され、テーブルに記憶された複数の候補値の1つを特定する。
手順S18において、モータMの動作モードを開始するか否かの判断を行う。動作モードを開始しない場合は、待機する。動作モードを開始するときは、手順S20に進む。手順S20では、位置推定装置30から、ロータの現在における位置推定値Θ^を取得する。次に、手順S22において、外部装置70から入力されたパルス信号におけるパルスの個数をカウントする。所定期間内のパルスカウント値をN_STMPとする。
手順S24では、前述した式1を用いて位置指令値Θ*を決定する。そして、手順S26では、この位置指令値Θ*と位置推定値とを用いてロータ位置制御(モータ駆動)を行う。このモータ駆動は、公知の制御技術に従って実行すればよい。
手順S28では、ステップ角Θsetの切り替え要否を判断する。ステップ角Θsetの切り替えが不要なとき、手順S22に戻る。ステップ角Θsetの切り替えが行われるとき、手順S30において、ステップ角Θsetに次の値Θstep3を選択する。
手順S28におけるステップ角Θsetの切り替え要否は、例えば以下の条件例に従って判断され得る。
・図10に示される位置指令値生成回路520に1ビット以上のビット数に相当する本数の信号線を接続しておき、この信号線に外部から次の値を入力してステップ角Θsetの中身を更新する。
・ロータの位置推定値Θ^が予め設定されたとき、ステップ角Θsetの大きさを変更する。
・所定の時間が経過したとき、または所定の時刻に達したとき、ステップ角Θsetの大きさを変更する。
なお、上記のフローは一例に過ぎず、本開示の実施形態によるステップ動作制御システムにおけるステップサイズの決定および変更は、上記の例に限定されない。本開示によれば、モータ制御装置100に内蔵されたプログラム、または外部からの指令に応じて、起動時または動作中に、複数の候補値のいずれかを選択的に可変ステップサイズメモリ40から読み出すことができる。
以下、適宜図面を参照しながら、本開示による実施の形態を詳細に説明する。ただし、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。本発明者らは、当業者が本開示を十分に理解するために添付図面及び以下の説明を提供する。これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
[実施形態]
図12は、本開示の実施形態に係るモータモジュール1000の構成例を示す概略図である。
図12に示すように、本実施形態におけるモータモジュール1000は、モータM、検出装置150、増幅回路200、位置推定装置30、モータ制御装置(制御回路)20、およびモータ駆動回路(駆動回路)10を備える。本実施形態におけるモータMは、ブラシレスDCモータであり、中心軸の回りを回転するロータRを有している。
モータモジュール1000には、外部装置(コントローラ)70から、ロータRの回転位置を指定するパルス信号などの外部信号が入力される。モータモジュール1000は、製品に取り付けられて使用される。製品は、例えば、プリンタ、スキャナ、ファクシミリなどの機能を有する複合機、電動パワーステアリング、アンテナチルト、ファン等の電気機械であり得る。モータモジュール1000のモータMは、複合機に用いられる場合、例えば、紙送り機能部等の機構部(機械部品)に取り付けられて使用される。1つの複合機が複数のモータモジュール1000を備えていても良い。
モータMは、ロータRを備える。モータMは、例えば、永久磁石モータである。モータMには、不図示の基板が取り付けられている。基板上には、検出装置150、増幅回路200、位置推定装置30、モータ制御回路20、およびモータ駆動回路10が取り付けられている。
なお、モータMがロータRを備える場合を一例として説明するが、本実施形態の構成は、これに限られない。モータMは、リニアモータであってもよい。モータMがリニアモータの場合、モータMは、ロータRに代えて、直線的に運動する可動子(moverまたはmovable element)を備えている。本願において、「可動子」の用語は、ロータのみならず、リニアモータにおいて直線的に運動する部品を含む。リニアモータの場合は、CWは直線上の第1方向を意味し、CCWは同一直線上において第1方向とは反対の第2方向を意味する。
検出装置150は、センサ11〜センサ13を備える。センサ11〜センサ13それぞれは、モータMに発生する磁界を電気信号に変換して出力する非接触の磁気センサである。センサ11〜センサ13それぞれは、例えばホール素子である。検出装置150は、検出した差動センサ信号を増幅回路200に出力する。本実施形態におけるモータモジュール1000の動作は、信号検出手順を有する。信号検出手順では、N個(Nは3以上の整数)の検出装置それぞれは、ロータの位置に応じた磁界を検出して、電気信号である検出信号を出力する。それぞれの検出信号は、360度をNで除算した角度ずつ位相がずれている。このようなセンサの個数がN個(Nは3以上の整数)であるとき、複数の磁極が形成する磁界を検出して、それぞれが検出した磁界の強さに応じた大きさを持つ検出信号を出力する。N個のセンサは、N個の検出信号の位相が360度/Nの角度ずつずれるように配置されている。検出信号の位相が360度/Nの角度ずつずれている状態とは、360度×整数±360度/Nの電気角だけ位相がずれている状態を含む。検出信号の位相が例えば120度(=360度/3)の角度ずつずれている状態は、3つの検出信号の位相が240度(=360度−120度)の電気角だけずれている状態を含む。
増幅回路200は、差動増幅器21〜差動増幅器23を備える。増幅回路200は、検出装置150から入力される差動センサ信号に基づいて検出信号Hu0、検出信号Hv0、および検出信号Hw0を生成する。増幅回路200は、生成した検出信号Hu0、検出信号Hv0、および検出信号Hw0を位置推定装置30に出力する。なお、検出信号Hu0、検出信号Hv0、および検出信号Hw0それぞれは、アナログ信号である。
位置推定装置30は、増幅回路200から入力された検出信号Hu0、検出信号Hv0、および検出信号Hw0に基づいて、ロータRの回転位置を推定する。位置推定装置30は、推定した回転位置(機械角)に基づいて位置推定値Θ^を生成し、生成した位置推定値Θ^をモータ制御回路20に与える。
モータ制御回路20には、位置推定装置30から位置推定値Θ^が入力され、外部装置70からパルス信号が入力される。モータ制御回路20は、前述したように、モータMを駆動するための電圧指令を生成し、生成した電圧指令をモータ駆動回路10に出力する。
モータ駆動回路10は、モータ制御回路20から入力された電圧指令に基づいて駆動信号を生成し、生成した駆動信号によってモータMを駆動する。モータ駆動回路10の典型例の一つは、インバータ回路である。インバータ回路は、電圧指令を受けてパルス幅変調(PWM)信号を出力するPWM回路と、PWM信号に基づいてゲート駆動信号を出力するプリドライバ回路と、ゲート駆動信号を受けてスイッチングするインバータ出力回路とを備えることができる。
モータ制御回路20と、モータ駆動回路10の一部(例えばPWM回路)とは、1個の集積回路パッケージによって実現されていても良い。そのような集積回路パッケージは、汎用的なモータ制御用マイクロコンピュータとして入手可能である。また、駆動回路10のインバータ出力回路は、パワーモジュールと呼ばれることがある。そのようなインバータ出力回路は、電圧指令に応じた大きさの電圧をモータMの各コイルに印加し、モータMを駆動することができる。
以上のように、モータモジュール1000は、外部装置70からパルス信号を受け取り、位置指令値Θ*を生成する。そして、位置指令値Θ*と位置推定値Θ^との偏差をフィードバックすることでモータの制御を行う。
本実施形態では、位置推定値Θ^を示す位置推定信号が、ロータRの位置(角度)に応じて線形的に変化する大きさを有する。より具体的には、位置推定信号の大きさは、ロータRが1回転するとき、離散的にではなく、連続した直線状に変化する。このような位置推定信号の生成の例を、以下に詳しく説明する。
本実施形態におけるモータモジュール1000は、検出信号Hu0、Hv0、およびHw0が互いに交差する交差点を逐次検出する。検出した交差点から、当該交差点に隣り合う他の交差点までの検出信号Hu0、Hv0、またはHw0の一部(分割された線分)を分割信号として検出する(図16参照)。
位相が120度ずつ異なる3個の検出信号Hu0、Hv0、およびHw0のうち、交差点から当該交差点に隣り合う他の交差点までを接続または連結する部分は、検出信号Hu0、Hv0、およびHw0の中で中間のレベルを持ついずれか一つの信号Hu0、Hv0、またはHw0の一部である。図16に示されるように、交差点から当該交差点に隣り合う他の交差点までを接続する部分は、基準値のレベルと交差する。言い換えると、交差点から当該交差点に隣り合う他の交差点までを接続する部分は、基準値よりも大きな部分と、基準値よりも小さな部分とを有している。後述するように、交差点から当該交差点に隣り合う他の交差点までを接続する部分を、1個の「分割信号」として処理することもできるし、2個の「分割信号」として処理することできる。後者の場合、交差点から当該交差点に隣り合う他の交差点までを接続する部分は、基準値に交差するゼロクロス点によって二分される。交差点から当該交差点に隣り合う他の交差点までを接続する部分は、3個以上の「分割信号」に分けられても良い。
モータモジュール1000は、検出した分割信号を、ロータの移動方向に応じて、逐次接続させて、接続させた複数の分割信号に基づいてロータの位置を推定して位置推定信号を生成する(図17、図18参照)。なお、位置推定値は電流制御系、速度制御系、位置制御系、これらを組み合わせた制御系にフィードバック値として使用できる。
次に、本実施形態におけるモータMの概略構成について説明する。
図13は、本実施形態に係るモータMの概略構成図である。図13に示す例において、モータMは、永久磁石モータである。磁極p1〜p12は、永久磁石モータの磁極(ポール)である。極数は、モータMにおける磁極の数を表し、図13に示す例では12である。また、極対数は、N極とS極の組数であり、図13に示す例では6である。また、スロットsl1〜sl9は、コイルが巻かれている電機子(固定子)である。本実施形態における永久磁石モータのスロット数は9である。磁極p1〜p12は、ロータR(図12参照)の一部である。図13におけるモータMは、アウターロータ型のモータを示している。
次に、センサ11〜センサ13の動作について説明する。
センサ11〜センサ13それぞれは、隣接するN極とS極の1組による磁界を検出して、1周期分の信号を出力する。これが電気角1周期分に相当する。センサ11〜センサ13それぞれは、検出した電気角1周期分の電気信号を、差動センサ信号として、増幅回路200に出力する。この1周期分の差動センサ信号が、電気角1周期分に相当する。
ここで、センサ11〜センサ13それぞれは、電気角120度ずつ位相がずれた電気信号を検出し、対応する差動増幅器21〜差動増幅器23に出力する。すなわち、検出装置150に含まれるセンサが3個であり、3つの検出信号の位相が、120度ずつずれている。ある具体例において、センサ11〜センサ13は、機械角40度(電気角240度)ずつ位相がずれた電気信号を検出する。
本実施形態では、センサ11が検出した電気信号をU相とする。センサ12が検出した電気信号をV相とする。センサ13が検出した電気信号をW相とする。センサ11が出力する差動センサ信号は、差動センサ信号U0+とU0−とであり、互いに反転関係にある。センサ12が出力する差動センサ信号は、差動センサ信号V0+とV0−とであり、互いに反転関係にある。センサ13が出力する差動センサ信号は、検出信号W0+とW0−とであり、互いに反転関係にある。
次に、増幅回路200が出力する検出信号について、図12を参照して説明する。
差動増幅器21は、センサ11から入力されたU相の検出信号U0−とU0+との電圧差を増幅し、増幅した検出信号Hu0を位置推定装置30に出力する。
差動増幅器22は、センサ12から入力されたV相の検出信号V0−とV0+との電圧差を増幅し、増幅した検出信号Hv0を位置推定装置30に出力する。
差動増幅器23は、センサ13から入力されたW相の検出信号W0−とW0+との電圧差を増幅し、増幅した検出信号Hw0を位置推定装置30に出力する。
次に、増幅回路200が出力する検出信号Hu0、Hv0、Hw0の一例について説明する。図14は、本実施形態に係る増幅回路200が出力する検出信号Hu0、Hv0、Hw0の一例を説明する図である。図14において、横軸はロータ角[deg]を表す。縦軸は、信号の大きさを表す。
図14に示す例において、ロータ角θ101〜ロータ角θ113の区間E1は、電気角1周期分を表している。ロータ角θ113〜ロータ角θ114の区間E2、ロータ角θ114〜ロータ角θ115の区間E3、ロータ角θ115〜ロータ角θ116の区間E4、ロータ角θ116〜ロータ角θ117の区間E5、およびロータ角θ117〜ロータ角θ118の区間E6それぞれは、電気角1周期分を表している。そして、区間E1〜区間E6の区間K1は、機械角1周期分を表している。すなわち、電気角1周期分の区間は、機械角1周期分の区間を極対数で除算した区間である。
また、図14に示す例では、検出信号Hu0の極大値はA3[V]である。検出信号Hw0の極大値は、A3の電圧値より小さいPeakHw[V]である。検出信号Hv0の極大値は、PeakHwの電圧値より小さいPeakHv[V]である。このように、センサ11〜13の取り付け誤差、またはセンサごとの感度の違いによって、検出信号Hu0、Hv0、Hw0それぞれは、振幅にばらつきがある。また、信号Hu0、Hv0、Hw0それぞれは、各信号の中心電圧値が異なっている。すなわち、信号Hu0、Hv0、Hw0それぞれは、オフセット成分を有している。
次に、位置推定装置30の詳細な構成について、図12を参照して説明する。
位置推定装置30は、AD変換器31、位置演算部32、および記憶装置33を備える。AD変換器31は、増幅回路200から入力されたアナログ信号の検出信号を、デジタル信号の検出信号に変換し、変換したデジタル信号の検出信号を位置演算部32に出力する。より具体的には、AD変換回路311、AD変換回路312、およびAD変換回路313を備える。AD変換回路311は、アナログ信号の検出信号Hu0を、デジタル信号の検出信号Hu0’に変換して位置演算部32に出力する。AD変換回路312は、アナログ信号の検出信号Hv0を、デジタル信号の検出信号Hv0’に変換して位置演算部32に出力する。AD変換回路313は、アナログ信号の検出信号Hw0を、デジタル信号の検出信号Hw0’に変換して位置演算部32に出力する。記憶装置33は、オンライン処理で用いられる情報を記憶する。オンライン処理とは、ロータRが回転しているときにリアルタイムで行われる処理である。なお、記憶装置33に記憶される情報については、後述する。
上述のように検出信号を位置演算部32での処理に適した信号に変換することを「前処理」と呼ぶことができる。AD変換器31は、前処理を行う回路の一例である。位置演算部32の中に、他の前処理を行う回路が設けられていても良い。
AD変換器31によって変換された後のデジタル信号の検出信号Hu0’・Hv0’・Hw0’を示す図15において、横軸はロータ角[deg]を表す。縦軸は、デジタル値の大きさを表す。位置演算部32は、交差位置検出装置321、分割検出装置322、および線分接続部323を備える。交差位置検出装置321は、検出信号どうしの交差点と、検出信号と基準値とのゼロクロス点を検出する。すなわち、交差点から交差点に隣り合う他の交差点までの間において、交差位置検出装置321は、交差点から検出信号の電位が基準電圧と交差するゼロクロス点を逐次検出する。基準値とは、デジタル値が0を示す値である。交差位置検出装置321は、検出した交差点の座標を示す情報とゼロクロス点の座標を示す情報とを分割検出装置322に出力する。ここで、交差点およびゼロクロス点の座標を示す情報とは、ロータ角とデジタル値の大きさとによって表される情報である。分割検出装置322は、交差点とゼロクロス点との間の検出信号を分割信号として検出する。検出する時は、交差位置検出装置321から入力された交差点の座標を示す情報とゼロクロス点の座標を示す情報とを用いる。分割検出装置322は、検出した分割信号を示す情報を線分接続部323に出力する。線分接続部323は、分割検出装置322から入力された分割信号を示す情報を用いて、分割信号を逐次接続する。ここで、分割信号を示す情報とは、検出信号の一部である分割信号の開始位置から終了位置までの、ロータ角とデジタル値の大きさとによって表される情報である。
上述のように、本実施形態におけるモータモジュール1000の動作は、交差位置検出手順と、分割検出手順と、線分接続手順と、を有する。交差位置検出手順では、交差位置検出装置321が、信号検出手順によって出力されたそれぞれの検出信号が互いに交差する交差点を逐次検出する。分割検出手順では、分割検出装置322が、検出信号のうちの交差点から当該交差点に隣り合う他の交差点まで接続する部分を、1個または複数個の分割信号として検出する。線分接続手順では、線分接続部323が、分割信号を逐次接続させる。そして、接続させた複数の分割信号に基づいてロータの位置を推定して位置推定信号を生成する。
次に、位置推定装置30が行う処理の流れの概要を説明した後、位置推定装置30が行う処理の流れの詳細について説明する。位置推定装置30は、以下の処理をオンライン処理で行う。
(手順S101)交差位置検出装置321は、AD変換器31から入力された検出信号Hu0’、Hv0’、およびHw0’を取得する。(手順S102)交差位置検出装置321は、手順S101で取得した検出信号Hu0’、Hv0’、およびHw0’それぞれが示す値を用いて、交差点とゼロクロス点とを、逐次検出する。次に、交差位置検出装置321は、検出した交差点およびゼロクロス点の座標を示す情報と、入力された検出信号Hu0’、Hv0’、およびHw0’とを、順次、分割検出装置322に出力する。(手順S103)分割検出装置322は、交差点から当該交差点と隣り合うゼロクロス点までの検出信号の一部、すなわち検出信号のうちの交差点から当該交差点と隣り合うゼロクロス点までの検出信号の部分、を第1の分割信号として検出する。または、分割検出装置322は、ゼロクロス点から当該ゼロクロス点と隣り合う交差点までの検出信号の一部、すなわち検出信号のうちのゼロクロス点から当該ゼロクロス点と隣り合う交差点までの部分、を第2の分割信号として検出する。(手順S104)線分接続部323は、ロータRがCW回転の場合、分割検出装置322から入力された分割信号を、機械角1周期分、逐次、順方向に接続する。(手順S105)位置推定装置30は、線分接続部323によって接続された分割信号に基づいて機械位置の推定を行うことで位置推定値Θ^を決定する。
位置推定装置30は、手順S101〜手順S105の処理を、制御周期毎に繰り返す。制御周期とは、例えば、電流(トルク)、速度または位置制御の各制御周期のうち、いずれか1つの周期である。
次に、位置推定装置30が行う処理の流れの詳細について説明する。
交差位置検出装置321は、ロータRが回転しているとき、AD変換回路311〜AD変換回路313それぞれから入力された検出信号Hu0’、Hv0’、およびHw0’を取得する。AD変換器31が出力する検出信号Hu0’、検出信号Hv0’、および検出信号Hw0’について図15を参照して説明する。
図15は、本実施形態に係るAD変換器31が出力する検出信号Hu0’、Hv0’、Hw0’の一例を説明する図である。図15において、横軸はロータ角[deg]を表す。縦軸は、デジタル値を表す。図15に示す各波形Hu0’、Hv0’、Hw0’は、AD変換回路311〜AD変換回路313によってデジタル信号に変換された検出信号を表した波形図である。例えば、AD変換器31のビット数が12ビットの場合、デジタル信号値の範囲は、+2047~−2048である。また、図5において、ロータ角θ101〜ロータ角θ113の区間E1は、電気角1周期分である。
次に、交差位置検出装置321が、手順S102で行う交差点とゼロクロス点との検出処理について詳細に説明する。
交差位置検出装置321は、AD変換器31が出力する検出信号Hu0’、Hv0’、およびHw0’を取得する。交差位置検出装置321は、取得した検出信号どうしの交差点を、サンプリングした2点間の座標から算出することで、逐次検出する。また、交差位置検出装置321は、取得した検出信号と基準値とのゼロクロス点を逐次検出する。この交差点及びゼロクロス点は、横軸がロータ角、縦軸がデジタル値によって、その座標を示すことができる。交差位置検出装置321は、交差点の座標を検出して、検出した交差点の座標を示す情報を、分割検出装置322に出力する。また、交差位置検出装置321は、ゼロクロス点の座標を検出して、検出したゼロクロス点の座標を示す情報を、分割検出装置322に出力する。また、交差位置検出装置321は、取得した検出信号Hu0’、Hv0’、およびHw0’を、分割検出装置322に出力する。
次に、分割検出装置322が、手順S103で行う分割信号の検出処理について詳細に説明する。
分割検出装置322は、交差位置検出装置321から入力された交差点の座標を示す情報と、ゼロクロス点の座標を示す情報と、検出信号Hu0’、Hv0’、およびHw0’とを、順次取得する。分割検出装置322は、取得した検出信号のうち、交差点から当該交差点と隣り合うゼロクロス点までの検出信号を第1の分割信号として検出する。分割検出装置322は、取得した検出信号のうち、ゼロクロス点から当該ゼロクロス点と隣り合う交差点までの検出信号を第2の分割信号として検出する。分割検出装置322は、検出した分割信号を順次、線分接続部323に出力する。ここで、分割検出装置322は、第1の分割信号を示す情報を検出している。第1の分割信号を示す情報とは、交差点から当該交差点と隣り合うゼロクロス点までのデジタル値の偏差およびロータ角の偏差の情報である。
次に、交差点、ゼロクロス点、分割信号の具体例を順に説明する。
まず、交差位置検出装置321が検出する交差点とゼロクロス点との具体例について、図16を参照して説明する。
図16は、本実施形態に係る3つの検出信号Hu0’、Hv0’、Hw0’の大小関係、交差点、ゼロクロス点、分割信号について説明する図である。図16において、横軸はロータ角[deg]を表す。縦軸は、デジタル値を表す。また、図16は、図15のロータ角θ101〜ロータ角θ113の区間E1を拡大した図である。
図16において、点cp1〜点cp7それぞれは、交差点を表している。ここで交差点とは、2つの検出信号が交差する点である。例えば、ロータ角θ101における交差点cp1は、検出信号Hu0’と検出信号Hv0’とが交差する点である。
また、点zc1〜点zc6それぞれは、ゼロクロス点を表している。ここで、ゼロクロス点とは、検出信号Hu0’、Hv0’、Hw0’のいずれかと、デジタル値の基準値とが交差する点である。例えば、ロータ角θ102におけるゼロクロス点zc1は、検出信号Hu0’と基準値とが交差する点である。
次に、分割検出装置322が検出する分割信号の具体例について、図16を参照して説明する。以下において、セグメントとは、分割信号ひとつひとつのことである。セグメントの区間とは、分割信号ごとの始点から終点までに相当する。セグメントは、電気角1周期分において、12区間になる。モータMの極対数が6であるとき、電気角6周期分は、機械角1周期分に相当する。したがって、セグメントは、機械角1周期分では、72区間となる。電気角1周期分における1〜12の分割信号の番号をセクションと呼んでもよい。分割信号とは、図16において、交差点cp(n)から当該交差点cp(n)と隣り合うゼロクロス点zc(m)までの検出信号である。または、ゼロクロス点zc(m)から当該ゼロクロス点zc(m)と隣り合う交差点cp(n+1)までの検出信号である。なお、nは1〜7の整数である。また、mは1〜6の整数である。具体的には、例えば、交差点cp1からゼロクロス点zc1までの検出信号Hu0’の一部が、分割信号sg101である。また、ゼロクロス点zc1から交差点cp2までの検出信号Hu0’の一部が、分割信号sg102である。図16において、θ101〜θ102の区間、すなわち分割信号sg101の区間が、セグメントの番号1の区間に相当する。また、分割信号sg102〜sg112それぞれの区間が、セグメントの番号2〜12の区間に相当する。
なお、図16に示す例において検出信号Hu0’、Hv0’、およびHw0’が正弦波であるため、分割信号sg101〜sg112は、正弦波のうち、他の部分より直線に近い範囲の信号である。
ここで、3つの検出信号Hu0’、Hv0’、Hw0’の大小関係について、図16を参照して説明する。
例えば、セグメント1とセグメント2の区間であるロータ角θ101〜θ103の区間において、検出信号Hw0’のデジタル値は、3つの検出信号の中で、最も大きい。検出信号Hw0’の次にデジタル値が大きいのは、検出信号Hu0’である。最もデジタル値が小さいのは、検出信号Hv0’である。また、検出信号Hu0’のデジタル値は、セグメント1の区間であるロータ角θ101〜θ102の区間において、基準値より小さい。検出信号Hu0’のデジタル値は、セグメント2の区間であるロータ角θ102〜θ103の区間において、基準値より大きい。
セグメント3〜セグメント12についても、セグメント毎に3つの検出信号Hu0’、Hv0’、Hw0’の大小関係の組み合わせが記憶装置33に記憶されている。
このように、電気角1周期分について、セグメント毎に3つの検出信号Hu0’、Hv0’、Hw0’の大小関係の組み合わせおよび基準値との大小関係が記憶装置33に記憶されている。
次に、線分接続部323が、図4の手順S104で行う分割信号の接続処理について詳細に説明する。
線分接続部323は、分割検出装置322の分割信号を、逐次接続させる。ここで、線分接続部323は、交差点又はゼロクロス点と検出信号Hu0’、Hv0’、Hw0’の大小関係および基準値との大小関係に応じて、分割信号を、デジタル値の正負について一定方向に接続する。
具体的には、線分接続部323は、セグメント毎に、検出信号Hu0’、Hv0’、Hw0’のデジタル値の大小関係において、順位が真ん中(図16の例では、大きい方(小さい方)から2番目)となる検出信号(中間信号とも称する)を抽出する。線分接続部323は、抽出した中間信号のデジタル値それぞれと、直前の交差点又はゼロクロス点における検出信号のデジタル値(クロス点信号値とも称する)の大小関係を比較する。ここで、直前の交差点又はゼロクロス点とは、中間信号に対して、ロータ角方向で直前となるものである。例えば、図16の例では、分割信号sg101に対して交差点cp1、分割信号sg102に対してゼロクロス点zc1である。
分割信号sg102を考える。中間信号sg102のデジタル値が直前のクロス点信号値zc1以上と判断した場合、線分接続部323は、中間信号sg102のデジタル値から直前のクロス点信号値zc1を差し引いた値を直前のクロス点信号値zc1に加算する。一方、中間信号sg102のデジタル値が直前のクロス点信号値zc1より小さいと判断した場合、線分接続部323は、直前のクロス点信号値zc1から中間信号sg102のデジタル値を差し引いた値を加算する。線分接続部323は、ロータ角の小さい方から、順に、この加算を繰り返す。これにより、線分接続部323は、デジタル値の正方向へ、分割信号を接続できる(図17参照)。
なお、線分接続部323は、中間信号のデジタル値と直前のクロス点信号値の差分、つまり、絶対値を加算してもよい。
なお、モータMが6極対であるため、分割信号sg112’の終点は、機械角の60[degM]に相当する。分割信号sg124’の終点は、機械角の120[degM]に相当する。分割信号sg136’の終点は、機械角の180[degM]に相当する。分割信号sg148’の終点は、機械角の240[degM]に相当する。分割信号sg160’の終点は、機械角の300[degM]に相当する。分割信号sg172’の終点は、機械角の360[degM]に相当する。
線分接続部323による、電気角1周期分の分割信号の接続の具体例について説明する。
図17は、本実施形態に係る電気角1周期分の分割信号の接続について説明する図である。図17には、図16の区間E1の分割信号sg101’〜sg112’を接続した図が示されている。図17において、横軸はロータ角[degE]を表す。縦軸は、デジタル値を表す。図17の例では、ロータRがCW回転している。図16において、分割信号sg101’〜sg112’は、図16の分割信号sg101〜sg112が線分接続部323によって接続された信号である。点p101〜p113は、図16の交差点cp1〜cp7およびゼロクロス点zc1〜zc6が置き換えられた点である。曲線g132は、分割信号sg101’〜sg112’を接続した曲線である。
以下において、順方向とは、ロータ角の増加に従って、デジタル値が増加する方向である。線分接続部323は、例えば、交差点cp1を、点p101に置き換える。線分接続部323は、分割信号sg101’を順方向に接続する。具体的には、線分接続部323は、図16の分割信号sg101を、点p101を開始点とし、点p102を終了点とする分割信号sg101’に置き換える。また、線分接続部323は、ゼロクロス点zc1を点p102に置き換える。
また、線分接続部323は、分割信号sg102’を順方向に接続する。具体的には、図16の分割信号sg101は、点p102を開始点とし、点p103を終了点とする分割信号sg102’に置き換える。また、線分接続部323は、交差点cp2を点p103に置き換える。
図16の曲線g132に示すように、線分接続部323は、図16に示した分割信号sg101’〜sg112’を、逐次、順方向に接続する。この結果、ロータ角θ101における交差点cp1は、デジタル値0に置き換えられる。また、線分接続部323は、ロータ角θ113における交差点cp7をデジタル値1200に置き換える。なお、図16において、デジタル値の12000は、電気角1周期分の360[degE]に相当する。
線分接続部323による動作の分割信号の機械角1周期分の接続についての具体例を、図18を参照して説明する。
第1の周期E1において、線分接続部323は、図16の分割信号sg101〜分割信号sg112を、電気角1周期分、逐次順方向に接続する。この結果、図17の分割信号sg101’〜分割信号sg112’に示すように、図16の分割信号sg101〜分割信号sg112が接続される。
次に、第2の周期E2において、線分接続部323は、分割信号sg112’の終点に、第2の周期E2の分割信号sg113’の始点を接続する。続けて、線分接続部323は、電気角1周期分の分割信号sg113〜分割信号sg124を順方向に接続する。この結果、図18の分割信号sg113’〜分割信号sg124’に示すように、分割信号sg113〜分割信号sg124が接続される。
以下、線分接続部323は、第2の周期E2の分割信号sg124’の終点に、第3の周期E3の分割信号sg125’の始点を接続する。次に、線分接続部323は、第3の周期E3の分割信号sg136’の終点に、第4の周期E4の分割信号sg137’の始点を接続する。次に、線分接続部323は、第4の周期E4の分割信号sg148’の終点に、第5の周期E5の分割信号sg149’の始点を接続する。次に、線分接続部323は、第5の周期E5の分割信号sg160’の終点に、第6の周期E6の分割信号sg161’の始点を接続する。
図18は、本実施形態に係る機械角1周期分の分割信号の接続結果の一例を示す図である。図18に示すように、電気角1周期分それぞれは、12個の分割信号を含む。第1の周期E1は、分割信号sg101’〜分割信号sg112’を含む。第2の周期E2は、分割信号sg113’〜分割信号sg124’を含む。第3の周期E3は、分割信号sg125’〜分割信号sg136’を含む。第4の周期E4は、分割信号sg137’〜分割信号sg148’を含む。第5の周期E5は、分割信号sg149’〜分割信号sg160’を含む。第6の周期E6は、分割信号sg161’〜分割信号sg172’を含む。
このため、機械角1周期分の周期K1では、72個の分割信号sg101’〜分割信号sg172’を含む。
次に、位置推定装置30が、手順S105で行う機械角度の生成処理について説明する。ここで、sg102’における任意の点の機械角度を考える。sg102’の機械角度位置は、図18におけるE1の区間に位置しており、E1の区間の拡大図が図17である。線分接続部323は、中間信号のデジタル値から直前のクロス点信号値zc1を差し引いた値を直前のクロス点信号値zc1に加算する。また、上述のように、線分接続部323は、クロス点信号値zc1を点p102に置き換える。そして、線分接続部323は、点p102に対して、中間信号のデジタル値から直前のクロス点信号値zc1を差し引いた値を加算する。位置推定装置30は、線分接続部323によって接続された分割信号の線分の長さに基づいて、ロータの機械角度位置を推定する。
記憶装置33に記憶される情報の具体例について説明する。
記憶装置33は、極対数とセクションとセグメントとの関係を記憶する。また、記憶装置33は、3つの検出信号Hu0’、Hv0’、Hw0’の大小関係をセクション毎に記憶している。3つの検出信号Hu0’、Hv0’、Hw0’の大小関係および基準値との大小関係は、セクションの番号を判定するために用いられる。
本実施形態の位置推定方法では、ゼロクロス点を境に検出信号を2つのセグメントに分けている。これにより、機械角の1周分は、72個の分割信号を有する。本実施形態の位置推定方法では、1つの分割信号の長さが短くなる。その結果、結合した分割信号は、より理想的な角度に比例した直線信号に近くなる。そして、本実施形態の位置推定方法では、直線に近い形状の分割信号に基づいて、ロータRの角度情報である位置を得ることができる。このようにして接続された線分を用いて、位置推定装置30がロータRの位置を推定するため、本実施形態では、精度の高い光学式エンコーダを必要とすることなく、高精度な位置検出を行うことができる。
モータモジュール1000は、このように得られた位置推定値Θ^を用いて、位置制御を行うことができる。本実施形態の位置推定方法では、ロータRの位置を検出する検出装置は、環境に影響されやすいエンコーダを使用する必要がない。その結果、モータを小型化することができ、粉塵等の環境によって、位置制御の精度が左右されづらい。また、位置推定信号は、離散的なパルス信号ではない。位置推定信号は、直線状に大きさが変化するため、任意の大きさの分解能で、ロータ(可動子)の位置決めが可能になる。
なお、位置推定値の生成は、上記の方法に限定されない。重要な点は、位置推定信号が、離散的なパルス信号ではなく、ロータRの位置に応じて線形的に変化する大きさを有していることにある。
[変形例]
本実施形態について、交差点とゼロクロス点とを検出し、交差点とゼロクロス点の間の検出信号を分割信号として検出する例を説明した。しかし、本開示の実施形態は、これに限られない。例えば、分割検出装置322は、交差点から当該交差点と隣り合う交差点までの検出信号を分割信号として抽出するようにしてもよい。そして、分割検出装置322は、抽出した分割信号を、交差点から当該交差点と隣り合う交差点との間にあるゼロクロス点を境に、2つの分割信号に分割するようにしてもよい。
本実施形態について、位置演算部32は、デジタル信号に変換された検出信号Hu0’、Hv0’、およびHw0’に対して各処理を行う例を説明したが、本開示の実施形態は、これに限られない。例えば、位置演算部32は、アナログ信号の検出信号Hu0、Hv0、およびHw0に対して各処理を行うようにしてもよい。
モータMの駆動方式は、例えばベクトル制御手法、その他駆動手法であってもよい。他の駆動方法とは、例えば120度矩形波、正弦波を用いた駆動手法であってもよい。
モータMの極数は、12極に限定されず、例えば、2極、4極、8極等であってもよい。例えば、8極モータの場合、機械角1周期分は、4つの電気角1周期分の分割信号を有する。このとき、検出装置が、3相の検出信号を出力する場合、1つの電気角1周期分は、12個の分割信号を有する。このため、機械角1周期分は、48(=12×4)個の分割信号を含む。8極モータかつロータRがCW回転の場合、線分接続部323は、48個の分割信号を順方向に逐次結合させるようにしてもよい。ここで、CWとは、出力軸側から見て時計方向の回転である。また、順方向とは、ロータ角の増加に従ってデジタル値が増加する方向である。
ロータRがCCW回転の場合、手順S104において、線分接続部323は、機械角1周期分の分割信号を逆方向に接続するようにしてもよい。ここで、CCWとは、出力軸側から見て反時計方向の回転である。また、逆方向とは、ロータ角の増加に従ってデジタル値が減少する方向である。線分接続部323は、接続された機械角1周期分の分割信号を、ロータ角の増加に応じて、360[degM]から0[degM]に減少する方向に、逐次接続するようにしてもよい。この場合、位置推定装置30は、ロータRがCW回転であるかCCW回転であるかを判別する。記憶装置33に記憶されている3つの検出信号Hu0’、Hv0’、およびHw0’の大小関係が変化するため判別することができる。本実施形態によれば、ロータRがCW回転していてもCCW回転していても、ロータRの位置を精度良く推定することができる。
回転方向と検出信号との関係を、図16を参照して説明する。
ロータ角θ105とθ107との間に現在位置がある場合、位置推定装置30は、例えば、現在の位置における縦軸のデジタル値と、1つ前の交差点であるロータ角θ105の縦軸のデジタル値を記憶装置33に記憶させる。
ロータRがCW回転の場合、ロータRの位置は、ロータ角θ107とθ109の間に移動する。位置推定装置30は、検出信号Hv0’から検出信号Hu0’への中間信号の切り替わり、及び切り替わり後の中間信号の基準値に対する正負を検知し、ロータRがCW回転であると判別する。続けて、位置推定装置30は、ロータ角θ107とθ109の間の分割信号sg107とsg108とを、分割信号sg106に順方向に接続する。
一方、ロータRがCCW回転の場合、ロータRの位置は、ロータ角θ103とθ105の間に移動する。位置推定装置30は、検出信号Hv0’から検出信号Hw0’への中間信号の切り替わり、及び切り替わり後の中間信号の基準値に対する正負を検知し、ロータRがCCW回転であると判別する。続けて、位置推定装置30は、ロータ角θ103とθ105の間の分割信号sg103とsg104とを、分割信号sg105に逆方向に接続する。
検出装置150のセンサは、ホール素子に限られない。検出装置150に用いるセンサは、検出信号が正弦波、または正弦波に高調波を含む出力信号であってもよい。例えば、検出装置150のセンサは、磁気抵抗効果を用いたセンサであってもよい。
分割検出装置322は、交差点から当該交差点と隣り合うゼロクロス点まで、またはゼロクロス点から当該ゼロクロス点と隣り合う交差点までの線分を生成することで、分割信号を抽出するようにしてもよい。線分は、例えば直線であってもよく、正弦波の一部であってもよい。
モータMは、アウターロータ型に限定されず、スロットがロータRの一部となるブラシ付きモータであってもよい。さらに、モータMは、前述したように、リニアモータであってもよい。
検出装置150が備えるセンサの数は、3個に限られない。各センサの出力は、センサの総数で除算した位相ずつずれていればよい。
また、本実施形態について、交差位置検出装置321が交差点とゼロクロス点とを検出する例を説明したが、これに限られない。交差位置検出装置321は、交差点のみ検出するようにしてもよい。この場合、分割検出装置322は、交差点から当該交差点と隣り合う交差点までの検出信号の一部を分割信号として、逐次検出するようにしてもよい。この場合において、電気角1周期分の分割信号の個数は6個になる。また、モータMの極対数が6の場合、機械角1周期分の分割信号の個数は36個になる。
ロータRの回転位置の検出を従来技術のように光学式のエンコーダを用いて行う場合、検出精度は、エンコーダの分解能に依存する。ここで、光学式のエンコーダは、例えば、フォトインタラプタとエンコーダディスクとを有している。エンコーダディスクには、円周上に等間隔で形成されたスリットを有する。例えば、分解能が400パルスのエンコーダの検出精度は、約±0.9度である。
本願において、交差位置およびゼロクロス点並びに分割信号を『検出する』とは、位置推定装置が交差位置及びゼロクロス点並びに分割信号を算出することによって求めた結果、交差位置及びゼロクロス点を検出することができればよい。
位置推定装置を含むモータ制御装置の機能を実現するためのプログラムを不図示のコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各処理の手順を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、フラッシュメモリを搭載したメモリカード、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
本開示におけるモータ制御装置100は、信号処理回路と、この信号処理回路の動作を制御するコンピュータプログラムを格納した記録媒体とを用いて実現され得る。以下、このような実施形態を説明する。
図19は、本実施形態に係るモータモジュール1000の他の構成例を示す概略図である。本実施形態のモータモジュール1000は、図19に示すように、モータM、検出装置150、増幅回路200、モータ制御装置100、ゲートドライバ450、インバータ460を備えていてもよい。モータモジュール1000は、外部装置(コントローラ)70からパルス信号などの外部信号を受け取り、この外部信号に基づいてモータMの動作を制御する。図19に示される例では、前述したモータ制御回路20および位置推定装置30の全部または一部が信号処理回路400によって実現される。
検出装置150は、ロータRが有する複数の磁極が形成する磁界を検出して、それぞれが検出した磁界の強さに応じた大きさを持つ検出信号を出力するN個(Nは3以上の整数)のセンサを備えている。N個のセンサは、N個の検出信号の位相が360度/Nの角度ずつずれるように配置されている。図示されている例では、Nは3であり、検出装置150はセンサ11、12、13を有している。本実施形態におけるモータM、検出装置150、および増幅回路200の構成および動作は、既に説明した通りであるので、ここでは詳細な説明は繰り返さない。
図示されているモータ制御装置100は、N個の検出信号からN個の補正検出信号を生成する前処理回路350と、各種の信号処理を行う信号処理回路400とを備えている。本実施形態における信号処理回路400は、例えば中央演算処理装置(CPU)、デジタル信号処理プロセッサなどの集積回路(IC)チップであり得る。モータ制御装置100は、信号処理回路400の動作を制御するコンピュータプログラムを格納した記録媒体を備えている。この記録媒体は、例えばフラッシュROMなどの不揮発性メモリ420であり、信号処理回路400に接続されている。前処理回路350から出力されたN個の補正検出信号は、RAM410に変数として、随時、格納される。
前処理回路350は、前述したAD変換器31を有しており、必要に応じてAD変換器31の出力に対して補正または正規化などの処理を行う回路を有していても良い。前処理回路350により、検出信号はデジタル信号に変換され、種々の補正処理を受け得る。ここでは、このような前処理を受けた検出信号を「補正検出信号」と称する。
信号処理回路400は、位置推定装置として機能するため、コンピュータプログラムの指令に従って、以下のステップを実行する。
まず、信号処理回路400は、RAM410から補正検出信号を読み出す。次に、N個の補正検出信号のうちのいずれか2個の信号が互いに交差する交差点を逐次検出する。
信号処理回路400は、交差点から、交差点に隣り合う他の交差点までを連結する補正検出信号を、1個または複数個のセグメントに分割し、各セグメントを分割信号として検出する。
信号処理回路400は、各セグメントに対応するロータの移動量を全てのセグメントに対応づけた測定データを記憶装置から読み出す。この記憶装置は、上述したコンピュータプログラムを格納している記録媒体であってもよいし、メモリカードなどの他の記憶装置であっても良い。本実施形態では、不揮発性メモリ420に測定データが保存されており、不揮発性メモリ420から測定データが読み出される。この測定データは、出荷前のオフライン処理によって取得され、記憶媒体に保存されている。出荷後において、測定データは更新され得る。
信号処理回路400は、この測定データを参照して、N個の補正検出信号の関係および分割信号に基づいて、ロータRの現在位置に対応するセグメントを特定する。
次の条件を満たす態様においては、Θ[n]=Θoffset[i]+k[i]×X[n]の関係が成立する。iは1以上の整数である。nは現在時刻を規定する整数である。iは特定されたセグメントの番号とする。Θoffset[i]は特定されたセグメントの始点におけるロータRの位置である。X[n]はセグメントの始点における分割信号の値と当該分割信号の現在値との差分である。k[i]は比例係数である。この関係から、ロータRの位置推定値が決定される。
ロータRの位置推定値を示す信号は、基準位置からのロータRの移動量に比例して直線的に増加する値を持つ。好ましい態様において、ロータRの位置推定値を示す信号は、Θに比例するデジタル値またはアナログ値を持つ。
このように、信号処理回路400は、特定されたセグメントに基づいて、分割信号のレベルからロータの位置推定値を決定し、位置推定値を示す信号を生成する。
信号処理回路400が実行する動作として、各セグメントに対応するロータの移動量を全てのセグメントに対応づけた測定データを記憶装置から読み出すことは、本実施形態にとって不可欠の動作ではない。また、測定データを参照して、N個の補正検出信号の関係および分割信号に基づいて、ロータの現在位置に対応するセグメントを特定することは、本実施形態にとって不可欠の動作ではない。これらの動作を実行する代わりに、信号処理回路400は、分割信号を逐次接続させて接続させた複数の分割信号に基づいて、分割信号のレベルからロータの位置推定値を決定し、位置推定値を示す信号を出力しても良い。
更に信号処理回路400は、位置指令値生成回路として機能する場合、コンピュータプログラムの指令に従う。まず、信号処理回路400が、外部装置から入力されるパルス信号の1パルスあたりに対するロータの位置変化量を規定する可変ステップサイズ情報をメモリから取得する。次に、外部装置からパルス信号を受け取ると、上記の方法によって得たロータの位置推定値と、可変ステップサイズ情報とに基づいて位置指令値を生成する。
こうして生成された位置指令値を用いて、信号処理回路400はベクトル制御などの公知のモータ制御に必要な演算を実行し、PWM回路430からPWM信号をゲートドライバ450に与える。ゲートドライバ450はPWM信号に基づいてインバータ460内のスイッチングトランジスタを開閉し、必要な電圧および電流をモータMに供給する。
なお、位置推定信号は、デジタル値の状態で外部装置70の不図示のフィードバック(F/B)端子に入力されてもよい。位置推定信号は、シリアルデータとして外部に出力されたり、DA変換回路(DAC)440によってアナログ値に変換されてから出力されたりしてもよい。例えばメンテナンスに際して、アナログ値に変換された信号をオシロスコープによって観測することにより、位置指令値と位置推定値とを比較することが可能である。
信号処理回路400が実行する各種の処理は、1つのICチップによって実行される必要はない。複数の演算処理ユニットまたはデジタルシグナルプロセッサ(DSP)が、各機能ブロックが実行する異なる処理を分担してもよい。また、FPGA(Field−Programmable Gate Array)のようなプログラマブルロジックデバイスを用いて本実施形態の信号処理回路400を実現することもできる。
オフライン時に測定データを取得または更新するとき、信号処理回路400は、コンピュータプログラムの指令に従って、一定速度でロータRが移動(回転)する。そして、セグメント毎のロータRの移動(回転)時間を測定し、各セグメントに対応するロータRの移動量(機械角度)を全てのセグメントに対応づけるデータを作成する。信号処理回路400は、このデータを測定データとして不揮発性メモリ420に記憶させる。