(57)【特許請求の範囲】
【請求項１】
回転体の回転に応じて回転しかつ周方向に複数の磁極が設けられた検出用ロータと、検出用ロータの回転に応じて、所定の位相差を有する複数の正弦波信号をそれぞれ出力する複数の磁気センサとを含み、これらの磁気センサの出力信号に基づいて前記回転体の回転角を検出する回転角検出装置であって、
前記各磁極の角度幅を記憶する記憶手段と、
前記各正弦波信号のゼロクロスのタイミングを検出するゼロクロス検出手段と、
前記ゼロクロス検出手段によって検出されたゼロクロスタイミングに基づいて、前記正弦波信号毎に、隣接するゼロクロスの時間間隔を演算するゼロクロス間隔演算手段と、
前記ゼロクロス間隔演算手段によって演算される時間間隔と、各磁極の角度幅とに基づいて、各磁気センサが感知している磁極を特定する磁極特定手段と、
を含む回転角検出装置。
【請求項２】
前記検出用ロータは、複数の磁極のうちの少なくとも一つの磁極の角度幅が、他の磁極の角度幅のいずれとも識別可能に異なっている、請求項１に記載の回転角検出装置。
【請求項３】
前記磁極特定手段によって特定された磁極に応じて、前記各正弦波信号の振幅を補正する補正手段と、
振幅補正後の各正弦波信号に基づいて、前記回転体の回転角を演算する回転角演算手段と、
をさらに含む請求項１または２に記載の回転角検出装置。
【請求項４】
前記ゼロクロス検出手段は、前記各正弦波信号を一定周期でサンプリングし、前記各正弦波信号の符号が反転する前後のサンプリング値を線形補間することによってゼロクロスのタイミングを検出するものである請求項１〜３のいずれか一項に記載の回転角検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ブラシレスモータのロータ等の回転体の回転角を検出する回転角検出装置に関する。
【背景技術】
【０００２】
電動パワーステアリング装置などに使用されるブラシレスモータを制御するためには、ロータの回転角度に合わせてステータ巻線に電流を通電する必要がある。そこで、ブラシレスモータの回転に応じて回転する検出用ロータを用いて、ブラシレスモータのロータの回転角を検出する回転角検出装置が知られている。具体的には、図１０に示すように、検出用ロータ１０１（以下、「ロータ１０１」という）は、ブラシレスモータのロータに設けられている磁極対に相当する複数の磁極対を有する円筒状の磁石１０２を備えている。ロータ１０１の周囲には、２つの磁気センサ１２１，１２２が、ロータ１０１の回転中心軸を中心として所定の角度間隔をおいて配置されている。各磁気センサ１２１，１２２からは、所定の位相差を有する正弦波信号が出力される。これらの２つの正弦波信号に基づいて、ロータ１０１の回転角（ブラシレスモータのロータの回転角）が検出される。
【０００３】
この例では、磁石１０２は、５組の磁極対を有している。つまり、磁石１０２は、等角度間隔で配置された１０個の磁極を有している。各磁極は、ロータ１０１の回転中心軸を中心として、３６°（電気角では１８０°）の角度間隔で配置されている。また、２つの磁気センサ１２１，１２２は、ロータ１０１の回転中心軸を中心として１８°（電気角では９０°）の角度間隔をおいて配置されている。
【０００４】
図１０に矢印で示す方向を検出用ロータ１０１の正方向の回転方向とする。そして、ロータ１０１が正方向に回転されるとロータ１０１の回転角が大きくなり、ロータ１０１が逆方向に回転されると、ロータ１０１の回転角が小さくなるものとする。各磁気センサ１２１，１２２からは、図１１に示すように、ロータ１０１が１磁極対分に相当する角度（７２°（電気角では３６０°））を回転する期間を一周期とする正弦波信号Ｖ１，Ｖ２が出力される。
【０００５】
所定の基準位置からのロータ１０１の絶対的な回転角を、ロータ１０１の絶対回転角（機械角）θＡということにする。ロータ１０１の１回転分の角度範囲を、５つの磁極対に対応して５つの区間に分け、各区間の開始位置を０°とし終了位置を３６０°として表したロータ１０１の角度を、ロータ１０１の相対回転角θＲということにする。この場合には、１０個の磁極の角度幅は等しいので、ロータ１０１の相対回転角θＲは、ブラシレスモータのロータの電気角と一致する。
【０００６】
ここでは、第１の磁気センサ１２１からは、Ｖ１＝Ａ１・sinθＲの出力信号が出力され、第２の磁気センサ１２２からは、Ｖ２＝Ａ２・cosθＲの出力信号が出力されるものとする。Ａ１，Ａ２は、振幅である。両出力信号Ｖ１，Ｖ２の振幅Ａ１，Ａ２が互いに等しいとみなすと、ロータ１０１の相対回転角θＲは、両出力信号Ｖ１，Ｖ２を用いて、次式(1)に基づいて求めることができる。
【０００７】
θＲ＝tan−１（sinθＲ／cosθＲ）
＝tan−１（Ｖ１／Ｖ２）      …(1)
このようにして、求められた相対角θＲを使って、ブラシレスモータを制御する。
なお、ロータ１０１の絶対回転角θＡ  は、相対角θＲを用いて、たとえば、次式(2)に基づいて求めることができる。
【０００８】
θＡ  ＝｛θＲ＋３６０×（ｎ−１）｝／５（ただし、ｎ＝１，２，…５）    …(2)
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開2003-32823号公報
【特許文献２】特開2002-257649号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
前述したような従来の回転角検出装置においては、磁極ごとの磁力のばらつきなどにより、各磁気センサ１２１，１２２の出力信号Ｖ１，Ｖ２の振幅が磁極ごとに変動するため、ロータ１０１の回転角の検出に誤差が発生する。そこで、ロータ１０１の絶対回転角（機械角）θＡに応じて、各磁気センサ１２１，１２２の出力信号Ｖ１，Ｖ２の振幅が等しくなるように、各磁気センサ１２１，１２２の出力信号Ｖ１，Ｖ２を補正（振幅補正）した後、ロータ１０１の相対角θＲを演算することが考えられる。
【００１１】
磁極毎に磁力がばらつく場合には、各磁気センサ１２１，１２２の出力信号Ｖ１，Ｖ２に対して、相対角（電気角）の１周期または半周期ごとに補正するゲインを変更しなければならない。このようなゲイン補正を行うためには、各磁気センサ１２１，１２２が感知している磁極を特定する必要がある。
この発明の目的は、磁気センサが感知している磁極を特定できるようになる回転角検出装置を提供することである。
【課題を解決するための手段】
【００１２】
上記の目的を達成するための請求項１記載の発明は、回転体（１０）の回転に応じて回転しかつ周方向に複数の磁極（Ｍ０〜Ｍ９）が設けられた検出用ロータ（１）と、検出用ロータの回転に応じて、所定の位相差を有する複数の正弦波信号（Ｖ１，Ｖ２）をそれぞれ出力する複数の磁気センサ（２１，２２）とを含み、これらの磁気センサの出力信号に基づいて前記回転体の回転角を検出する回転角検出装置であって、前記各磁極の角度幅を記憶する記憶手段（２０）と、前記各正弦波信号のゼロクロスのタイミングを検出するゼロクロス検出手段（２０，Ｓ４，Ｓ５）と、前記ゼロクロス検出手段によって検出されたゼロクロスタイミングに基づいて、前記正弦波信号毎に、隣接するゼロクロスの時間間隔を演算するゼロクロス間隔演算手段（２０，Ｓ６）と、前記ゼロクロス間隔演算手段によって演算される時間間隔と、各磁極の角度幅とに基づいて、各磁気センサが感知している磁極を特定する磁極特定手段（２０，Ｓ１５）と、を含む回転角検出装置である。なお、括弧内の英数字は、後述の実施形態における対応構成要素等を表すが、むろん、この発明の範囲は当該実施形態に限定されない。以下、この項において同じ。
【００１３】
上記構成では、ゼロクロス検出手段によって、各正弦波信号のゼロクロスのタイミングが検出される。また、ゼロクロス間隔演算手段によって、正弦波信号毎に、隣接するゼロクロスの時間間隔（ゼロクロス間隔）が演算される。そして、ゼロクロス間隔演算手段によって演算されるゼロクロス間隔と、各磁極の角度幅とに基づいて、各磁気センサが感知している磁極が特定される。これにより、各磁気センサが感知している磁極を特定できる。
【００１４】
前記検出用ロータは、複数の磁極のうちの少なくとも一つの磁極の角度幅が、他の磁極の角度幅のいずれとも識別可能に異なっているものであってもよい。たとえば、一つの磁極（以下「基準磁極」という）の角度幅が、他の磁極の角度幅のいずれとも識別可能に異なっているとする。この場合には、たとえば、次のようにして、各磁気センサが感知している磁極が特定される。すなわち、一方の磁気センサの出力信号に基づいて前記基準磁極の角度幅に応じたゼロクロス時間間隔が演算されると、演算されたゼロクロス時間間隔が、当該磁気センサの出力信号に基づいて最新に演算された検出用ロータの１回転分のゼロクロス間隔の総和（検出用ロータが１回転するのに要している時間）で除算される。この除算結果に検出用ロータの１回転分の回転角度（電気角）が乗算され、この乗算結果と、各磁極の角度幅とを比較することにより、当該磁気センサが感知している磁極が特定される。また、両磁気センサの配置および角度間隔、検出用ロータの構成等により、他方の磁気センサが感知している磁極を特定することが可能となる。
【００１５】
前記磁極特定手段によって特定された磁極に応じて、前記各正弦波信号の振幅を補正する補正手段と、振幅補正後の各正弦波信号に基づいて、前記回転体の回転角を演算する回転角演算手段とをさらに含んでいてもよい。この構成では、各磁気センサが感知している磁極が特定されると、特定された磁極に応じて、各正弦波信号の振幅が補正される。そして、振幅補正後の各正弦波信号に基づいて、回転体の回転角が演算される。
【００１６】
前記ゼロクロス検出手段は、前記各正弦波信号を一定周期でサンプリングし、前記各正弦波信号の符号が反転する前後のサンプリング値を線形補間することによってゼロクロスのタイミングを検出するものであってもよい。
【図面の簡単な説明】
【００１７】
【図１】この発明の一実施形態に係る回転角検出装置を、ブラシレスモータのロータの回転角を検出するための回転角検出装置に適用した場合の構成を示す模式図である。
【図２】検出用ロータの構成を示す模式図である。
【図３】第１の磁気センサの出力信号波形および第２の磁気センサの出力信号波形を示す模式図である。
【図４】図４（ａ）は、第１の磁気センサに対応する振幅補正用テーブルの内容を示す模式図であり、図４（ｂ）は、第２の磁気センサに対応する振幅補正用テーブルの内容を示す模式図である。
【図５】回転角演算装置による回転角演算処理の手順を示すフローチャートである。
【図６】相対的極番号の設定処理を説明するための模式図である。
【図７】ゼロクロスタイミングの演算方法を説明するための模式図である。
【図８】図５のステップＳ１４のゼロクロス検出に基づく極番号特定処理を説明するための模式図である。
【図９】制御終了処理の一例を示すフローチャートである。
【図１０】従来の回転角検出装置による回転角検出方法を説明するための模式図である。
【図１１】第１の磁気センサの出力信号波形および第２の磁気センサの出力信号波形を示す模式図である。
【発明を実施するための形態】
【００１８】
以下では、この発明を、ブラシレスモータのロータの回転角を検出するための回転角検出装置に適用した場合の実施形態について、添付図面を参照して詳細に説明する。
図１は、この発明の一実施形態に係る回転角検出装置を、ブラシレスモータのロータの回転角を検出するための回転角検出装置に適用した場合の構成を示す模式図である。
この回転角検出装置は、ブラシレスモータ１０の回転に応じて回転する検出用ロータ（以下、単に「ロータ１」という）を有している。図２に示すように、ロータ１は、ブラシレスモータ１０のロータに設けられている磁極対に相当する複数の磁極対を有する円筒状の磁石２を含んでいる。つまり、ロータ１には、周方向に並んだ複数の磁極が設けられている。この例では、磁石２は、５組の磁極対（Ｍ０，Ｍ１），（Ｍ２，Ｍ３），（Ｍ４，Ｍ５），（Ｍ６，Ｍ７），（Ｍ８，Ｍ９）を有している。つまり、磁石２は、１０個の磁極Ｍ０〜Ｍ９を有している。
【００１９】
ブラシレスモータ１０のロータに設けられた各磁極の周方向の長さは、全て同じである。つまり、ブラシレスモータ１０のロータに設けられた各磁極の角度幅は全て同じであり、３６°である。したがって、このブラシレスモータ１０では、１磁極対の角度幅は、機械角で７２°であり、これが電気角の３６０°に相当する。これに対し、図２に示すように、ロータ１に設けられている各磁極Ｍ０〜Ｍ９のうち、Ｎ極の磁極Ｍ０，Ｍ２，Ｍ４，Ｍ６，Ｍ８の角度幅（ａ，ｃ，ｅ，ｇ，ｉ）は、それぞれ異なっている。つまり、Ｎ極の磁極間では、その着磁面積が異なっている。Ｓ極の磁極Ｍ１，Ｍ３，Ｍ５，Ｍ７，Ｍ９のうち、磁極Ｍ９以外の４つの磁極Ｍ１，Ｍ３，Ｍ５，Ｍ７は、それぞれ異なっている。磁極Ｍ９の角度幅（ｊ）は、磁極Ｍ５の角度幅（ｆ）と等しい。
【００２０】
この実施形態においては、各磁極Ｍ０〜Ｍ９の角度幅は、表１に示すようになっている。ただし、表１では、角度幅は、その角度幅に対応する機械角に磁極対数（この実施形態では”５”）を乗算した値で表されている。なお、図２において、破線は、ロータ１を周方向に３６°（前記電気角では１８０°）間隔で分割した場合の各領域を示している。
【００２１】
【表１】
0005776925.tif 000002
【００２２】
ロータ１の周囲には、２つの磁気センサ２１，２２が、ロータ１の回転中心軸を中心として、所定角度（１８°（前記電気角では９０°））の角度間隔をおいて配置されている。これら２つの磁気センサ２１，２２を、それぞれ第１の磁気センサ２１および第２の磁気センサ２２という場合がある。磁気センサとしては、たとえば、ホール素子、磁気抵抗素子（ＭＲ素子）等、磁界の作用により電気的特性が変化する特性を有する素子を備えたものを用いることができる。
【００２３】
図２に矢印で示す方向をロータ１の正方向の回転方向とする。そして、ロータ１が正方向に回転されるとロータ１の回転角が大きくなり、ロータ１が逆方向に回転されると、ロータ１の回転角が小さくなるものとする。各磁気センサ２１，２２からは、図３に示すように、ロータ１の回転にともなって、正弦波状の信号（以下、「正弦波信号」という）Ｖ１，Ｖ２が出力される。なお、図３における横軸のロータ角度［deg]は、機械角に磁極対数（この実施形態では”５”）を乗算することにより得られた角度を表している。また、図３には、正弦波信号Ｖ１の各ピーク値付近に、その時点において第１の磁気センサ２１が感知している磁極の領域ａ〜ｊが明記されている。
【００２４】
ロータ１が１つの磁極に相当する角度を回転すると、各磁気センサ２１，２２からは、半周期分の正弦波信号が出力される。ただし、この実施形態では、各磁極の角度幅は一定幅ではないため、１つの磁気センサから出力される正弦波信号における各磁極に対応する半周期は一定ではない。また、磁極Ｍ５および磁極Ｍ９を除いて、各磁気センサ２１，２２の出力信号Ｖ１，Ｖ２の磁極毎のピーク値は、磁極ごとに異なる。
【００２５】
所定の基準位置からのロータ１の絶対的な回転角を、ロータ１の絶対回転角（機械角）θＡということにする。ロータ１の１回転分の角度範囲を、５つの磁極対の角度幅に対応して、５つの区間（ａ＋ｂ，ｃ＋ｄ，ｅ＋ｆ，ｇ＋ｈ，ｉ＋ｊ）に分け、各区間の開始位置を０°とし終了位置を３６０°として、絶対回転角θＡに対応する角度を０〜３６０°の範囲内で表した角度を、ロータ１の相対回転角θＲということにする。なお、この実施形態では、これらの５つの区間の角度幅は、一定幅ではない。
【００２６】
ここでは、第１の磁気センサ２１からは、５つの磁極対に対応する区間毎に、Ｖ１＝Ａ１・sinθＲの出力信号が出力され、第２の磁気センサ２２からは、５つの磁極対に対応する区間毎に、Ｖ２＝Ａ２・cosθＲの出力信号が出力されるものとする。Ａ１，Ａ２は、それぞれ振幅を表している。ただし、振幅Ａ１は、磁極毎に異なる。同様に、振幅Ａ２も磁極ごとに異なる。また、θＲは、対応する区間における相対回転角θＲを表している。
【００２７】
両出力信号Ｖ１，Ｖ２の振幅Ａ１，Ａ２が互いに等しいとみなすと、対応する区間におけるロータ１の相対回転角θＲは、両出力信号Ｖ１，Ｖ２を用いて、次式(3)に基づいて求めることができる。
θＲ＝tan−１（sinθＲ／cosθＲ）
＝tan−１（Ｖ１／Ｖ２）      …(3)
図１に戻り、各磁気センサ２１，２２の出力信号Ｖ１，Ｖ２は、回転角演算装置２０に入力される。回転角演算装置２０は、各磁気センサ２１，２２の出力信号Ｖ１，Ｖ２に基づいて、ロータ１の相対回転角θＲを算出する。また、回転角演算装置２０は、得られた相対回転角θＲ等に基いて、ロータ１の絶対回転角（機械角）θＡを算出し、得られたロータ１の絶対回転角θＡに基づいて、ブラシレスモータのロータの電気角θＥを演算する。回転角演算装置２０は、たとえば、マイクロコンピュータから構成され、ＣＰＵ（中央演算処理装置）およびメモリ（ＲＯＭ，ＲＡＭ，書き換え可能な不揮発性メモリ等）を含んでいる。
【００２８】
回転角演算装置２０によって演算された電気角は、モータコントローラ３０に与えられる。モータコントローラ３０は、回転角演算装置２０から与えられた電気角θＥと、所与の指令値とに基づいて、ブラシレスモータ１０を制御する。
以下、回転角演算装置２０の動作について説明する。回転角演算装置２０内の書き換え可能な不揮発性メモリには、磁気センサ２１，２２毎に、振幅補正用テーブルが記憶されている。
【００２９】
図４（ａ）は、第１の磁気センサ２１に対応する振幅補正用テーブル（以下、「第１テーブル」という場合がある）の内容例を示している。第１テーブルには、各磁極Ｍ０〜Ｍ９の磁極番号０〜９毎に、その磁極に対応する第１の磁気センサ２１の出力信号Ｖ１のピーク値（極大値または極小値）、その磁極の角度幅［deg］および補正ゲインＧ１が記憶されている。ただし、角度幅は、表１で説明したように、その角度幅に対応する機械角に磁極対数（この実施形態では”５”）を乗算した値である。補正ゲインＧ１は、第１の磁気センサ２１の振幅の磁極毎のばらつきを補正するためのゲインである。
【００３０】
任意の磁極に対する振幅補正ゲインＧ１は、当該磁極に対応する第１の磁気センサ２１の出力信号Ｖ１のピーク値（極大値または極小値）と基準振幅とを用い、次式(4)に基いて求められる。基準振幅は、たとえば、角度幅（機械角×磁極対数）が１８０°の磁極に対応する第１の磁気センサ２１の出力信号Ｖ１のピーク値（絶対値）に相当する値である。基準振幅は、予め設定され、この例では“５００”である。
【００３１】
Ｇ１＝基準振幅／｜ピーク値｜    …(4)
図４（ｂ）は、第２の磁気センサ２２に対応する振幅補正用テーブル（以下、「第２テーブル」という場合がある）の内容例を示している。第２テーブルには、各磁極Ｍ０〜Ｍ９の磁極番号０〜９毎に、その磁極に対応する第２の磁気センサ２２の出力信号Ｖ２のピーク値（極大値または極小値）、その磁極の角度幅［deg］および補正ゲインＧ２が記憶されている。補正ゲインＧ２は、第２の磁気センサ２２の振幅の磁極毎のばらつきを補正するためのゲインである。図４（ｂ）では、説明の便宜上、各磁極に対する第２の磁気センサ２２のピーク値は、対応する磁極に対する第１の磁気センサ２１のピーク値と同じ値となっているが、実際には互いに異なる場合もある。
【００３２】
任意の磁極に対する補正ゲインＧ２は、当該磁極に対応する第２の磁気センサ２２の出力信号Ｖ２のピーク値（極大値または極小値）と基準振幅とを用い、次式(5)に基いて求められる。基準振幅は、たとえば、角度幅（機械角×磁極対数）が１８０°の磁極に対応する第２の磁気センサ２２１の出力信号Ｖ２のピーク値（絶対値）に相当する値である。基準振幅は、予め設定され、この例では“５００”である。
【００３３】
Ｇ２＝基準振幅／｜ピーク値｜    …(5)
前記振幅補正用テーブルへのピーク値および補正ゲインの記憶は、ブラシレスモータ１０の出荷前に行ってもよいし、ブラシレスモータ１０の出荷後において、モータ制御中にピーク値を検出することにより、行ってもよい。前記振幅補正用テーブルに記憶されるピーク値および補正ゲインは、１周期分のデータから求めてもよいし、複数周期分のデータの平均値から求めてもよい。  
【００３４】
この実施形態では、回転角演算装置２０は、ロータ１の回転速度が所定速度以下の場合には、第１または第２の磁気センサ２１，２２の出力信号Ｖ１，Ｖ２からピーク値を検出し、検出したピーク値に基づいて、各磁気センサ２１，２２が感知している磁極を特定する。一方、ロータ１の回転速度が所定速度より速い場合には、第１または第２の磁気センサ２１，２２の出力信号Ｖ１，Ｖ２からゼロクロスのタイミングを検出し、検出したゼロクロスのタイミングに基づいて、各磁気センサ２１，２２が感知している磁極を特定する。これは、ロータ１の回転速度が速い場合には、出力信号Ｖ１，Ｖ２のピークを検出できないおそれがあるからである。
【００３５】
図５は、回転角演算装置２０による回転角演算処理の手順を示すフローチャートである。
第１の磁気センサ２１が感知している磁極の極番号を変数ｐ１で表し、第２の磁気センサ２２が感知している磁極の極番号を変数ｐ２で表すものとする。また、回転角演算処理の開始時において第１の磁気センサ２１が感知している磁極を基準磁極として、各磁極に番号を割り当てた場合の各磁極の番号を相対的極番号と定義する。第１の磁気センサ２１が感知している相対的極番号（第１の相対的極番号）を変数ｐ１’で表し、第２の磁気センサ２２が感知している相対的極番号（第２の相対的極番号）を変数ｐ２’で表すことにする。この実施形態では、制御開始時において第１の磁気センサ２１が感知している基準磁極には、例えば、０の相対的極番号が割り当てられる。
【００３６】
回転角演算処理が開始されると、回転角演算装置２０は、各磁気センサ２１，２２の出力信号（センサ値）Ｖ１，Ｖ２を読み込む（ステップＳ１）。このセンサ値の読み込みは、所定の演算周期（サンプリング間隔Ｔｓ）毎に行なわれる。なお、回転角演算装置２０のメモリ（たとえば、ＲＡＭ）には、所定回数前に読み込まれたセンサ値から最新に読み込まれたセンサ値までの、複数回数分のセンサ値が記憶されるようになっている。
【００３７】
また、この実施形態では、センサ値Ｖ１のピーク値（極大値および極小値）を検出するために、読み込まれたセンサ値Ｖ１のうち絶対値がより大きいセンサ値が、センサ値Ｖ１のピーク値候補としてメモリに保存される。同様に、センサ値Ｖ２のピーク値（極大値および極小値）を検出するために、読み込まれたセンサ値Ｖ２のうち絶対値がより大きいセンサ値が、センサ値Ｖ２のピーク値候補としてメモリに保存される。ただし、これらのピーク値候補は、対応する出力信号のゼロクロスが検出されたときには、後述するような所定のタイミングでゼロにリセットされる。
【００３８】
前記ステップＳ１で各センサ値Ｖ１，Ｖ２が読み込まれると、回転角演算装置２０は、今回の処理が回転角演算処理開始後の初回の処理であるか否かを判別する（ステップＳ２）。今回の処理が回転角演算処理開始後の初回の処理である場合には（ステップＳ２：ＹＥＳ）、回転角演算装置２０は、相対的極番号の設定処理を行う（ステップＳ３）。具体的には、回転角演算装置２０は、第１の相対的極番号ｐ１’を０に設定する。また、回転角演算装置２０は、第１の磁気センサ２１が感知している磁極と第２磁気センサ２２が感知している磁極とが同じである場合には第２の相対的極番号ｐ２’を０に設定し、異なる場合には第２の相対的極番号ｐ２’を１に設定する。
【００３９】
より具体的に説明する。たとえば、ロータ１の磁極Ｍ０と磁極Ｍ１とからなる磁極対が第１の磁気センサ２１を通過する際の、第１および第２の磁気センサ２１，２２の出力信号Ｖ１，Ｖ２の信号波形を模式的に表すと、図６（ａ）（ｂ）に示すようになる。
図６（ａ）（ｂ）において、Ｓ１で示す領域は、第１の磁気センサ２１および第２の磁気センサ２２が共に磁極Ｍ０を感知している領域である。Ｓ２で示す領域は、第１の磁気センサ２１が磁極Ｍ０を感知し、第２の磁気センサ２２が磁極Ｍ１を感知している領域である。Ｓ３で示す領域は、第１の磁気センサ２１および第２の磁気センサ２２が共に磁極Ｍ１を感知している領域である。Ｓ４で示す領域は、第１の磁気センサ２１が磁極Ｍ１を感知し、第２の磁気センサ２２が磁極Ｍ２を感知している領域である。
【００４０】
つまり、領域Ｓ１およびＳ３では、第２の磁気センサ２２が感知している磁極の極番号は、第１の磁気センサ２１が感知している磁極の極番号と等しくなる。一方、領域Ｓ２およびＳ４では、第２の磁気センサ２２が感知している磁極の極番号は、第１の磁気センサ２１が感知している磁極の極番号より１だけ大きくなる。
領域Ｓ１においては、両センサ値Ｖ１，Ｖ２は、Ｖ１≧０かつＶ２＞０の第１条件を満たす。領域Ｓ２においては、両センサ値Ｖ１，Ｖ２は、Ｖ１≧０かつＶ２≦０の第２条件を満たす。領域Ｓ３においては、両センサ値Ｖ１，Ｖ２は、Ｖ１＜０かつＶ２＜０の第３条件を満たす。領域Ｓ４においては、両センサ値Ｖ１，Ｖ２は、Ｖ１＜０かつＶ２≧０の第４条件を満たす。
【００４１】
そこで、回転角演算装置２０は、前記第１条件または前記第３条件を満たしている場合には、第１の相対的極番号ｐ１’および 第２の相対的極番号Ｐ２’を０に設定する。一方、前記第２条件または前記第４条件を満たしている場合には、回転角演算装置２０は、第１の相対的極番号ｐ１’を０に設定し、第２の相対的極番号Ｐ２’を１に設定する。
相対的極番号の設定処理が終了すると、ステップＳ４に移行する。前記ステップＳ２において、今回の処理が回転角演算処理開始後の初回の処理ではないと判別された場合には（ステップＳ２：ＮＯ）、ステップＳ４に移行する。
【００４２】
ステップＳ４では、回転角演算装置２０は、メモリに記憶されているセンサ値Ｖ１，Ｖ２に基づいて、センサ値Ｖ１，Ｖ２毎に、センサ値の符号が反転するゼロクロスを検出したか否かを判別する。ゼロクロスが検出されなかったときには（ステップＳ４：ＮＯ）、回転角演算装置２０は、ステップＳ１７に移行する。
前記ステップＳ４において、いずれかのセンサ値Ｖ１，Ｖ２に対してゼロクロスが検出された場合には、回転角演算装置２０は、ゼロクロスのタイミング（以下、「ゼロクロスタイミング」という）を演算してメモリに記憶する（ステップＳ５）。この際、メモリには、当該ゼロクロスタイミングが、出力信号Ｖ１，Ｖ２のうちのいずれに対応するゼロクロスタイミングであるかが識別可能に記憶される。
【００４３】
ゼロクロスタイミングは、センサ値の符号が反転したことを検出したタイミングであってもよい。また、ゼロクロスタイミングは、センサ値の符号が反転する前後の２つのセンサ値（サンプリング値）を線形補間することによって求めてもよい。たとえば、図７に示すように、符号が反転する直前に検出されたセンサ値がｙ１で、符号が反転した直後に検出されたセンサ値がｙ２である場合には、センサ値ｙ１が検出された時点を基準とすると、ゼロクロスタイミングｔａは、次式(6)に基づいて演算される。
【００４４】
ｔａ＝Ｔｓ×｛ｙ１／（ｙ１−ｙ２）｝…（6）
ただし、Ｔｓは、センサ値Ｖ１，Ｖ２のサンプリング間隔である。
たとえば、ｙ１＝０．２，ｙ２＝−０．１，Ｔｓ＝１００μsecである場合には、ｔａ＝０．０６６７msecとなる。
また、図７に示すように、符号が反転する直前に検出されたセンサ値がｙ３で、符号が反転した直後に検出されたセンサ値がｙ４である場合には、前記センサ値ｙ１が検出された時点を基準とすると、ゼロクロスタイミングｔｂは、次式(7)に基づいて演算される。
【００４５】
ｔｂ＝Ｔｓ×｛ｙ３／（ｙ３−ｙ４）｝＋ΔＴ…（7）
ただし、ΔＴは、センサ値ｙ１が検出されてからセンサ値ｙ３が検出されるまでの時間間隔である。
たとえば、ｙ３＝−０．２，ｙ４＝０．１，Ｔｓ＝１００μsec，ΔＴ＝４４msecである場合には、ｔｂ＝４４．０６６７msecとなる。
【００４６】
図５に戻り、前記ステップＳ５において、ゼロクロスタイミングが演算されると、回転角演算装置２０は、今回演算されたゼロクロスタイミングと、対応する出力信号に対して前回演算されたゼロクロスタイミングとの時間間隔（以下、「ゼロクロス間隔」という）を演算する（ステップＳ６）。なお、ステップＳ６において、前回のゼロクロスタイミングが存在しないために、ゼロクロス間隔が演算されなかった場合には、回転角演算装置２０は、前記ステップＳ４でゼロクロスが検出された出力信号に対応するピーク値候補を０にリセットした後、ステップＳ１７に移行する。
【００４７】
前記ステップＳ６でゼロクロス間隔が演算されると、回転角演算装置２０は、演算されたゼロクロス間隔が所定値Ａ未満であるか否かを判別することにより、ロータ１の回転速度が所定速度より速いか否かを判別する（ステップＳ７）。回転角演算装置２０は、ゼロクロス間隔が所定値Ａ未満である場合には、ロータ１の回転速度が所定速度より速いと判別し、ゼロクロス間隔が所定値Ａ以上の場合にはロータ１の回転速度が所定速度以下であると判別する。なお、ロータ１の１回転分のゼロクロス間隔の総和が所定値未満であるか否かを判別することにより、ロータ１の回転速度が所定速度より速いか否かを判別してもよい。このようにすると、各ゼロクロス間隔の誤差によるロータ１の回転速度の検出誤差を低減できる。
【００４８】
ゼロクロス間隔が所定値Ａ以上（ロータ１の回転速度が所定速度以下）であると判別された場合には（ステップＳ７：ＮＯ）、回転角演算装置２０は、前記ステップＳ４でゼロクロスが検出された出力信号のピーク値（極大値または極小値）を検出したか否かを判定する（ステップＳ８）。以下において、ステップＳ８の判定処理を、ピーク値検出処理という場合がある。
【００４９】
ピーク値検出処理について具体的に説明する。前記ステップＳ４でゼロクロスが検出された出力信号に対応する磁気センサをピーク値検出対象の磁気センサということにする。回転角演算装置２０は、まず、ピーク値検出対象の磁気センサが感知している磁極が変化したか否かを判別する。つまり、回転角演算装置２０は、ピーク値検出対象の磁気センサが感知している磁極位置が、当該磁気センサの出力信号のゼロクロスが前回検出された時点と、今回検出された時点とで、異なっているか同じであるかを判定する。ロータ１の回転方向が逆転した場合には、前記両時点での磁極位置が同じになる可能性がある。
【００５０】
この判定は、たとえば、前回ゼロクロスが検出されたときのロータ１の回転方向と、現在のロータ１の回転方向が同じ方向であるか否かに基づいて行うことができる。すなわち、回転角演算装置２０は、ロータ１の回転方向が同じ方向であれば、ピーク値検出対象の磁気センサが感知している磁極が変化したと判定する。一方、ロータ１の回転方向が異なっていれば、回転角演算装置２０は、ピーク値検出対象の磁気センサが感知している磁極が変化していないと判定する。
【００５１】
当該磁気センサが感知している磁極が変化したと判定された場合には、回転角演算装置２０は、ピーク値を検出したと判別するとともに、当該磁気センサに対応するピーク値候補をピーク値として特定する。一方、当該磁気センサが感知している磁極が変化していないと判定された場合には、回転角演算装置２０は、ピーク値を検出しなかったと判定する。
【００５２】
なお、ロータ１の回転方向は、たとえば、各磁気センサ２１，２２の出力信号Ｖ１，Ｖ２の位相に基いて判別することができる。具体的には、Ｖ２の位相がＶ１より進んでいる場合（たとえば、同じ磁極に対するゼロクロス間隔が、Ｖ２で演算されてからＶ１で演算される場合など）には、ロータ１の回転方向が正方向であると判別する。一方、Ｖ１の位相がＶ２より進んでいる場合（たとえば、同じ磁極に対するゼロクロス間隔が、Ｖ１で演算されてからＶ２で演算される場合など）には、ロータ１の回転方向が逆方向であると判別する。
【００５３】
前記ステップＳ８でピーク値が検出されなかった場合には、回転角演算装置２０は、前記ステップＳ４でゼロクロスが検出された出力信号に対応するピーク値候補を０にリセットした後、ステップＳ１７に移行する。一方、前記ステップＳ８において、ピーク値が検出されたときには（ステップＳ８：ＹＥＳ）、回転角演算装置２０は、前記ステップＳ４でゼロクロスが検出された出力信号に対応するピーク値候補を０にリセットする。また、回転角演算装置２０は、回転角演算処理開始後において後述するステップＳ１１またはＳ１５の極番号特定処理によって各磁気センサ２１，２２が感知している磁極の極番号ｐ１，ｐ２が既に特定されているか否かを判別する（ステップＳ９）。  
【００５４】
各磁気センサ２１，２２が感知している磁極の極番号ｐ１，ｐ２が特定されていない場合には（ステップＳ９：ＮＯ）、回転角演算装置２０は、相対的極番号の更新処理を行なう（ステップＳ１０）。具体的には、前記ステップＳ８のピーク値検出処理によってピーク値が検出された方の磁気センサに対して既に設定されている相対的極番号ｐ１’またはｐ２’を、ロータ１の回転方向に基づいて更新する。より具体的には、回転角演算装置２０は、当該磁気センサに対して既に設定されている相対的極番号ｐ１’またはｐ２’を、ロータ１の回転方向に応じて、１だけ多い番号または１だけ少ない番号に変更する。
【００５５】
ロータ１の回転方向が正方向（図２に矢印で示す方向）である場合には、既に設定されている相対的極番号ｐ１’またはｐ２’を、１だけ多い番号に更新し、ロータ１の回転方向が逆方向である場合には、既に設定されている相対的極番号ｐ１’またはｐ２’を、１だけ少ない番号に更新する。ただし、”０”の相対的極番号に対して、１だけ少ない相対的極番号は、”９”となる。また、”９”の相対的極番号に対して、１だけ多い相対的極番号は、”０”となる。
【００５６】
前記ステップＳ１０の相対的極番号の更新処理が終了すると、回転角演算装置２０は、ピーク値検出に基づく極番号特定処理を行なう（ステップＳ１１）。つまり、回転角演算装置２０は、前記ステップＳ８で検出されたピーク値等に基づいて、各磁気センサ２１，２２がそれぞれ感知している磁極の極番号ｐ１，ｐ２を特定する。
具体的には、回転角演算装置２０は、まず、前記ステップＳ８のピーク値検出処理によって検出されたピーク値（極大値または極小値）と、当該ピーク値を出力した磁気センサに対応する振幅補正用テーブル（第１または第２テーブル）の内容とに基づいて、当該磁気センサが感知している磁極の極番号ｐ１またはｐ２を特定する。つまり、回転角演算装置２０は、振幅補正用テーブルに記憶されている複数のピーク値のうち、ピーク値検出処理によって検出されたピーク値に最も近いピーク値に対応する極番号を、当該磁気センサが感知している磁極の極番号ｐ１またはｐ２として特定する。
【００５７】
この際、センサ信号のピーク値は磁石の温度特性（磁石の温度が高くなるほどピーク値が小さくなる）に応じて変化するので、磁石の温度係数（温度が高くなるほど小さくなる係数）を振幅補正用テーブルのピーク値に乗算することによってテーブル値を補正し、検出されたピーク値と補正後のテーブル値とに基づいて、磁極の極番号を特定するようにしてもよい。
【００５８】
ただし、ピーク値検出処理によって検出されたピーク値に最も近いピーク値に対応する極番号が磁極Ｍ５または磁極Ｍ９に対応する極番号である場合には、回転角演算装置２０は、当該磁気センサが感知している磁極を特定しない。
前記磁気センサが感知している磁極の極番号ｐ１またはｐ２を特定できた場合には、回転角演算装置２０は、当該磁気センサが感知している磁極の極番号ｐ１またはｐ２と、第１および第２の相対的極番号ｐ１’，ｐ２’とに基づいて、他方の磁気センサが感知している磁極を特定する。たとえば、第１の磁気センサ２１が感知している磁極の極番号ｐ１が特定された場合には、回転角演算装置２０は、ｐ２＝(ｐ１−ｐ１’)＋ｐ２’に基づいて、第２の磁気センサ２２が感知している磁極の極番号ｐ２を特定する。一方、第２の磁気センサ２２が感知している磁極の極番号ｐ２が特定された場合には、回転角演算装置２０は、ｐ１＝(ｐ２−ｐ２’)＋ｐ１’に基づいて、第１の磁気センサ２１が感知している磁極の極番号ｐ１を特定する。これにより、各磁気センサ２１，２２がそれぞれ感知している磁極の極番号ｐ１，ｐ２が特定される。ステップＳ１１の処理が終了すると、ステップＳ１７に移行する。
【００５９】
前記ステップＳ９において、各センサ２１，２２が感知している磁極の極番号ｐ１，ｐ２が既に特定されていると判別された場合には（ステップＳ９：ＹＥＳ）、回転角演算装置２０は、ピーク値検出に基づく極番号更新処理を行なう（ステップＳ１２）。具体的には、回転角演算装置２０は、前記ステップＳ８のピーク値検出処理によってピーク値が検出された方の磁気センサに対して既に特定されている極番号ｐ１またはｐ２を、ロータ１の回転方向に基づいて更新する。より具体的には、回転角演算装置２０は、当該磁気センサに対して既に特定されている極番号ｐ１またはｐ２を、ロータ１の回転方向に応じて、１だけ多い極番号または１だけ少ない極番号に変更する。
【００６０】
ロータ１の回転方向が正方向（図２に矢印で示す方向）である場合には、既に特定されている前記極番号ｐ１またはｐ２を、１だけ多い極番号に更新し、ロータ１の回転方向が逆方向である場合には、既に特定されている前記極番号ｐ１またはｐ２を、１だけ少ない極番号に更新する。ただし、”０”の極番号に対して、１だけ少ない極番号は、”９”となる。また、”９”の極番号に対して、１だけ多い極番号は、”０”となる。ステップＳ１２の処理が終了すると、ステップＳ１７に移行する。
【００６１】
前記ステップＳ７において、ゼロクロス間隔が所定値Ａ未満である（ロータ１の回転速度が所定速度より速い）と判別された場合には（ステップＳ７：ＹＥＳ）、回転角演算装置２０は、前記ステップＳ４でゼロクロスが検出された出力信号に対応するピーク値候補を０にリセットした後、ステップＳ１３に移行する。
ステップＳ１３では、回転角演算装置２０は、回転角演算処理開始後において前記ステップＳ１１の極番号特定処理または後述するステップＳ１５の極番号特定処理によって各磁気センサが感知している磁極が既に特定されているか否かを判別する。各磁気センサが感知している磁極が特定されていない場合には（ステップＳ１３：ＮＯ）、回転角演算装置２０は、相対的極番号の更新処理を行なう（ステップＳ１４）。具体的には、前記ステップＳ４でゼロクロスが検出された方の磁気センサに対して既に設定されている相対的極番号ｐ１’またはｐ２’を、ロータ１の回転方向に基づいて更新する。より具体的には、回転角演算装置２０は、当該磁気センサに対して既に設定されている相対的極番号ｐ１’またはｐ２’を、ロータ１の回転方向に応じて、１だけ多い番号または１だけ少ない番号に変更する。
【００６２】
ロータ１の回転方向が正方向（図２に矢印で示す方向）である場合には、既に設定されている相対的極番号ｐ１’またはｐ２’を、１だけ多い番号に更新し、ロータ１の回転方向が逆方向である場合には、既に設定されている相対的極番号ｐ１’またはｐ２’を、１だけ少ない番号に更新する。ただし、”０”の相対的極番号に対して、１だけ少ない相対的極番号は、”９”となる。また、”９”の相対的極番号に対して、１だけ多い相対的極番号は、”０”となる。
【００６３】
前記ステップＳ１４の相対的極番号の更新処理が終了すると、ゼロクロス検出に基づく極番号特定処理を行なう（ステップＳ１５）。つまり、回転角演算装置２０は、前記ステップＳ６で演算されたゼロクロス間隔等に基づいて、各磁気センサ２１，２２がそれぞれ感知している磁極を特定する。
具体的には、回転角演算装置２０は、まず、前記ステップＳ６において演算されたゼロクロス間隔と、対応する磁気センサの出力信号に基づいて最新に演算されたロータ１の１回転分のゼロクロス間隔の総和（ロータ１が１回転するのに要している時間に相当）と、ロータ１の回転方向と、当該磁気センサに対応する振幅補正用テーブル（第１または第２テーブル）の内容とに基づいて、当該磁気センサが感知している磁極を特定する。
【００６４】
前記ステップＳ６において演算されたゼロクロス間隔をＴｘとし、対応する磁気センサの出力信号に基づいて最新に演算されたロータ１の１回転分のゼロクロス間隔の総和をΣＴとすると、回転角演算装置２０は、次式（8）に基づいて、当該磁気センサ２１が直前まで感知していた磁極（直前感知磁極）の角度幅に応じた値Ｄを演算する。
Ｄ＝（Ｔｘ／ΣＴ）×１８００  …(8)
前記式(8)中の１８００は、各磁極Ｍ０〜Ｍ９の角度幅（機械角×磁極対数）の総和である。つまり、前記式(8)中の１８００は、ロータ１の１回転分の回転角度（電気角）である。
【００６５】
回転角演算装置２０は、振幅補正用テーブルに記憶されている各磁極Ｍ０〜Ｍ９の角度幅（機械角×磁極対数）のうち、前記式(8)によって演算された値Ｄに最も近い角度幅に対応する極番号を、直前感知磁極の極番号として特定する。そして、ロータ１の回転方向が正方向である場合には、回転角演算装置２０は、前記直前感知磁極の極番号より１だけ多い極番号を、当該磁気センサが感知している磁極の極番号として特定する。一方、ロータ１の回転方向が逆方向である場合には、回転角演算装置２０は、前記直前感知磁極の極番号より１だけ少ない極番号を、当該磁気センサが感知している磁極の極番号として特定する。ただし、ただし、”０”の極番号に対して、１だけ少ない極番号は、”９”となる。また、”９”の極番号に対して、１だけ多い極番号は、”０”となる。
【００６６】
たとえば、前記ステップＳ６において演算されたゼロクロス間隔が第１の磁気センサ２１に対するゼロクロス間隔であり、ロータ１の回転方向が正方向であるとする。そして、第１の磁極センサ２１の出力信号Ｖ１が図８に示されるような信号である場合には、ΣＴは、ゼロクロス間隔Ｔ０〜Ｔ９の総和となる。また、Ｔｘは、ゼロクロス間隔Ｔ０〜Ｔ９のうちのいずれかとなる。また、たとえば、ΣＴ＝０．０５sec，Ｔｘ＝０．００４４secである場合には、Ｄ＝１５８．６となる。表１から、Ｄに最も近い角度幅を有する磁極は、Ｍ２となる。したがって、磁極Ｍ２に対応する極番号”２”が直前感知磁極の極番号として特定される。ロータ１の回転方向が正方向であるので、直前感知磁極の極番号より１だけ多い極番号”３”が第１の磁気センサ２１が感知している磁極の極番号として特定される。
【００６７】
ただし、前記式(8)によって演算された値Ｄに最も近い角度幅に対応する極番号が磁極Ｍ５または磁極Ｍ９に対応する極番号である場合には、回転角演算装置２０は、磁気センサが感知している磁極を特定しない。また、回転角演算装置２０は、ロータ１の１回転分のゼロクロス間隔が演算されていない場合には、磁気センサが感知している磁極を特定しない。
【００６８】
前記磁気センサが感知している磁極の極番号ｐ１またはｐ２を特定できた場合には、回転角演算装置２０は、当該磁気センサが感知している磁極の極番号ｐ１またはｐ２と、第１および第２の相対的極番号ｐ１’，ｐ２’とに基づいて、他方の磁気センサが感知している磁極を特定する。たとえば、第１の磁気センサ２１が感知している磁極の極番号ｐ１が特定された場合には、回転角演算装置２０は、ｐ２＝(ｐ１−ｐ１’)＋ｐ２’に基づいて、第２の磁気センサ２２が感知している磁極の極番号ｐ２を特定する。一方、第２の磁気センサ２２が感知している磁極の極番号ｐ２が特定された場合には、回転角演算装置２０は、ｐ１＝(ｐ２−ｐ２’)＋ｐ１’に基づいて、第１の磁気センサ２１が感知している磁極の極番号ｐ１を特定する。これにより、各磁気センサ２１，２２がそれぞれ感知している磁極の極番号ｐ１，ｐ２が特定される。ステップＳ１５の処理が終了すると、ステップＳ１７に移行する。
【００６９】
前記ステップＳ１３において、各センサ２１，２２が感知している磁極の極番号が既に特定されていると判別された場合には（ステップＳ１３：ＹＥＳ）、回転角演算装置２０は、ゼロクロス検出に基づく極番号更新処理を行なう（ステップＳ１６）。具体的には、回転角演算装置２０は、前記ステップＳ４のゼロクロス検出処理によってゼロクロスが検出された方の磁気センサに対して既に特定されている極番号ｐ１またはｐ２を、ロータ１の回転方向に基づいて更新する。より具体的には、回転角演算装置２０は、当該磁気センサに対して既に特定されている極番号ｐ１またはｐ２を、ロータ１の回転方向に応じて、１だけ多い極番号または１だけ少ない極番号に変更する。
【００７０】
ロータ１の回転方向が正方向である場合には、既に特定されている前記極番号ｐ１またはｐ２を、１だけ多い極番号に更新し、ロータ１の回転方向が逆方向である場合には、既に特定されている前記極番号ｐ１またはｐ２を、１だけ少ない極番号に更新する。ただし、”０”の極番号に対して、１だけ少ない極番号は、”９”となる。また、”９”の極番号に対して、１だけ多い極番号は、”０”となる。ステップＳ１６の処理が終了すると、ステップＳ１７に移行する。
【００７１】
ステップＳ１７では、回転角演算装置２０は、前記ステップＳ１で読み込んだセンサ値Ｖ１，Ｖ２に対して振幅補正を行う。具体的には、回転角演算装置２０は、各磁気センサ２１，２２に対して現在特定されている極番号ｐ１，ｐ２に対応する振幅補正ゲインＧ１，Ｇ２を、第１テーブルおよび第２テーブルからそれぞれ読み込む。そして、回転角演算装置２０は、前記ステップＳ１で読み込んだセンサ値Ｖ１，Ｖ２を、第１テーブルおよび第２テーブルから読み込んだゲインＧ１，Ｇ２を用いて、それぞれ補正する。補正後のセンサ値をＶ１’，Ｖ２’とすると、Ｖ１’，Ｖ２’は、それぞれ次式(9)，(10)で表される。
【００７２】
Ｖ１’＝Ｖ１×Ｇ１    …(9)
Ｖ２’＝Ｖ１×Ｇ２    …(10)
ただし、各磁気センサ２１，２２が感知している磁極の極番号ｐ１，ｐ２が特定されていない場合には、ステップＳ１７では、センサ値Ｖ１，Ｖ２の補正は行われずに、ステップＳ１８に移行する。
【００７３】
前記ステップＳ１７の振幅補正が行われると、回転角演算装置２０は、ロータ１の相対角θＲを算出する（ステップＳ１８）。具体的には、回転角演算装置２０は、次式（11)に基づいて、ロータ１の相対角θＲを算出する。
θＲ＝tan−１（Ｖ１’／Ｖ２’）      …(11)
次に、回転角演算装置２０は、ステップＳ１８で算出されたロータ１の相対角θＲと、磁気センサ２１が感知している磁極の極番号ｐ１と、振幅補正テーブルの内容とに基づいて、ロータ１の絶対角（機械角）θＡを算出する（ステップＳ１９）。具体的には、回転角演算装置２０は、磁気センサ２１が感知している磁極の極番号ｐ１に基づいて、磁気センサ２１が感知している磁極を特定する。そして、特定した磁極に対応する角度幅Ｗを求める。たとえば、磁気センサ２１が感知している磁極が、１０個の磁極のうち、１番目の磁極Ｍ０である場合には、その磁極に対応する角度幅Ｗは、１７０［deg］となる。
【００７４】
前記ステップＳ１８で算出されたロータ１の相対角θＲは、磁気センサ２１が感知している磁極の角度幅Ｗが１８０°であるとして、算出された角度である。そこで、回転角演算装置２０は、前記ステップＳ１８で算出されたロータ１の相対角θＲを、次式(12)に基づいて、磁気センサ２１が感知している磁極の領域の角度幅に応じた相対角θＲ’に変換（位相補正）する。
【００７５】
θＲ’＝θＲ×（Ｗ／１８０°）  …(12)
そして、回転角演算装置２０は、磁気センサ２１が感知している磁極と、変換後の相対角θＲ’とに基づいて、ロータ１の絶対角（機械角）θＡを算出する。たとえば、磁気センサ２１が感知している磁極が１番目の磁極Ｍ０である場合には、ロータ１の絶対角θＡは、変換後の相対角θＲ’と一致する。つまり、θＡ＝θＲ’／５となる。ここで、５は、磁極対数である。
【００７６】
磁気センサ２１が感知している磁極が２番目の磁極Ｍ１である場合には、θＡ＝｛θＲ’＋（１番目の磁極Ｍ０の角度幅）｝／５となる。ただし、角度幅は、表１で説明したように、その角度幅に対応する機械角に磁極対数（この実施形態では”５”）を乗算した値である。磁気センサ２１が感知している磁極が３番目の磁極対Ｍ２である場合には、θＡ＝｛θＲ’＋（１番目および２番目の磁極Ｍ０，Ｍ１の角度幅の総和）｝／５となる。磁気センサ２１が感知している磁極が４番目の磁極Ｍ３である場合には、θＡ＝｛θＲ’＋（１番目〜３番目の磁極Ｍ０〜Ｍ２の角度幅の総和）｝／５となる。磁気センサ２１が感知している磁極が５番目の磁極Ｍ４である場合には、θＡ＝｛θＲ’＋（１番目〜４番目の磁極Ｍ０〜Ｍ３の角度幅の総和）｝／５となる。
【００７７】
磁気センサ２１が感知している磁極が６番目の磁極Ｍ５である場合には、θＡ＝｛θＲ’＋（１番目〜５番目の磁極Ｍ０〜Ｍ４の角度幅の総和）｝／５となる。磁気センサ２１が感知している磁極対が７番目の磁極Ｍ６である場合には、θＡ＝｛θＲ’＋（１番目〜６番目の磁極の角度幅Ｍ０〜Ｍ５の総和）｝／５となる。磁気センサ２１が感知している磁極が８番目の磁極Ｍ７である場合には、θＡ＝｛θＲ’＋（１番目〜７番目の磁極の角度幅Ｍ０〜Ｍ６の総和）｝／５となる。磁気センサ２１が感知している磁極が９番目の磁極Ｍ８である場合には、θＡ＝｛θＲ’＋（１番目〜８番目の磁極の角度幅Ｍ０〜Ｍ７の総和）｝／５となる。磁気センサ２１が感知している磁極が１０番目の磁極Ｍ９である場合には、θＡ＝｛θＲ’＋（１番目〜９番目の磁極の角度幅Ｍ０〜Ｍ８の総和）｝／５となる。
【００７８】
このようにしてロータ１の絶対角θＡが算出されると、回転角演算装置２０は、電気角θＥを、算出する（ステップＳ２０）。具体的には、磁気センサ２１が感知している磁極対（Ｍ０，Ｍ１），（Ｍ２，Ｍ３），（Ｍ４，Ｍ５），（Ｍ６，Ｍ７），（Ｍ８，Ｍ９）の番号（１〜５）をｎとすると、回転角演算装置２０は、次式（13）に基づいて、電気角θＥを算出して、モータコントローラ３０に与える。
【００７９】
θＥ＝５θＡ  −｛３６０×（ｎ−１）｝      …(13)
この後、回転角演算装置２０は、モータ制御が終了したか否かを判別する（ステップＳ２１）。モータ制御が終了していなければ（ステップＳ２１：ＮＯ）、ステップＳ１に戻る。モータ制御が終了していれば（ステップＳ２１：ＹＥＳ）、回転角演算装置２０は、制御終了処理を行なう（ステップＳ２２）。
【００８０】
図９は、図５のステップＳ２２の制御終了処理の一例を示すフローチャートである。
制御終了処理においては、回転角演算装置２０は、今回のモータ制御期間中において、ブラシレスモータ１０が十分に回転したか否かを判定する（ステップＳ３１）。具体的には、回転角演算装置２０は、今回のモータ制御期間中におけるモータ１０の回転数が、所定回転数以上であるか否かを判定する。ブラシレスモータ１０が十分に回転したと判別された場合には（ステップＳ３１：ＹＥＳ）、振幅補正用テーブル（第１テーブルおよび第２テーブル）内の各極番号に対応するピーク値を、その極番号に対応するピーク値として最新に検出されたピーク値に更新する（ステップＳ３２）。そして、制御終了処理を終了する。
【００８１】
前記実施形態では、ブラシレスモータ１０が起動された後において、ロータ１の回転速度が所定速度以下の場合には、第１または第２の磁気センサ２１，２２の出力信号Ｖ１，Ｖ２のピーク値に基づいて、各磁気センサ２１，２２が感知している磁極の極番号を特定することができる。一方、ブラシレスモータ１０が起動された後において、ロータ１の回転速度が所定速度より速い場合には、第１または第２の磁気センサ２１，２２の出力信号Ｖ１，Ｖ２のゼロクロスタイミングに基づいて、各磁気センサ２１，２２が感知している磁極の極番号を特定することができる。これにより、ロータ１の回転速度が速い場合でも、各磁気センサ２１，２２が感知している磁極を高精度に特定することができる。
【００８２】
なお、ロータ１の回転方向を、ゼロクロスが検出された一方の出力信号の前回値および今回値と、他方の出力信号の今回値とに基づいて判定してもよい。第１の磁気センサ２１の出力信号Ｖ１を第１の出力信号Ｖ１とし、第２の磁気センサ２２の出力信号Ｖ２を第２の出力信号Ｖ２として、具体的に説明する。ゼロクロスが検出された一方の出力信号が第１の出力信号Ｖ１である場合には、「第１の出力信号Ｖ１の前回値が０より大きくかつその今回値が０以下であり、第２の出力信号Ｖ２が０未満である」という条件、または「第１の出力信号Ｖ１の前回値が０未満でかつその今回値が０以上であり、第２の出力信号Ｖ２が０以上である」という条件を満たしている場合には、回転方向が正方向（図２に矢印で示す方向）であると判定する。一方、「第１の出力信号Ｖ１の前回値が０以上でかつその今回値が０未満であり、第２の出力信号Ｖ２が０より大きい」という条件、または「第１の出力信号Ｖ１の前回値が０以下でかつその今回値が０より大きく、第２の出力信号Ｖ２が０未満である」という条件を満たしている場合には、回転方向が逆方向であると判定する。
【００８３】
この発明は、ブラシレスモータのロータ以外の回転体の回転角を検出する場合にも、適用することができる。
その他、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。
【符号の説明】
【００８４】
１…ロータ、２１，２２…磁気センサ、１０…ブラシレスモータ、Ｍ０〜Ｍ９…磁極
【図１】
0005776925.tif 000003
【図２】
0005776925.tif 000004
【図３】
0005776925.tif 000005
【図４】
0005776925.tif 000006
【図５】
0005776925.tif 000007
【図６】
0005776925.tif 000008
【図７】
0005776925.tif 000009
【図８】
0005776925.tif 000010
【図９】
0005776925.tif 000011
【図１０】
0005776925.tif 000012
【図１１】
0005776925.tif 000013