(57)【要約】【課題】操舵部材のロック状態が解除された直後から、精度の高いロータ回転角を演算することができる車両用操舵装置を提供する。【解決手段】ＥＰＳモータ制御部３３の動作モードには、通常モードと強制回転モードとがある。通常モードは、ステアリングロック装置４によってステアリングホイール１の回転がロックされていない通常運転状態においてＥＰＳモータ７を駆動制御するモードである。一方、強制回転モードは、イグニッションキーがオンされた直後において、ステアリングロック装置４によってステアリングホイール１の回転がロックされている状態で、ＥＰＳモータ７を強制的に回転駆動するモードである。ＥＰＳモータ７が強制回転モードで回転駆動されているときに、回転角演算部３４は、各磁気センサ２１，２２が感知している磁極を特定する。【選択図】図２
2013091350.tif 000002
【特許請求の範囲】
【請求項１】
操舵部材の回転をロックするステアリングロック装置と電動パワーステアリング装置とを含む車両用操舵装置であって、
ロータを有する電動パワーステアリング装置用のブラシレスモータと、
前記ロータの回転角を演算するための複数の回転角センサと、
前記ステアリングロック装置によって前記操舵部材の回転がロックされている状態において、前記ブラシレスモータを回転駆動させるプレ駆動手段と、
前記プレ駆動手段による前記ブラシレスモータの回転駆動中に前記各回転角センサから出力される信号に基づいて、前記ロータの回転角の演算精度を高めるために必要な情報を獲得する情報獲得手段と、
前記ステアリングロック装置によるロックが解除された後において、前記情報獲得手段によって獲得された情報と、前記各回転角センサの出力信号とに基づいて、前記ロータの回転角を演算する回転角演算手段とを含む、車両用操舵装置。
【請求項２】
前記ロータの回転に応じて回転し、複数の磁極を有する多極磁石を含み、
前記複数の回転角センサは、前記多極磁石の回転に応じて、互いに位相差を有する正弦波信号をそれぞれ出力する磁気センサであり、
前記ロータの回転角の演算精度を高めるために必要な情報が、各磁気センサが感知している磁極を特定するための情報である、請求項１に記載の車両用操舵装置。
【請求項３】
前記ロータの回転に応じて回転し、複数の磁極を有する多極磁石を含み、
前記複数の回転角センサは、前記多極磁石の回転に応じて、互いに位相差を有する第１の正弦波信号および第２の正弦波信号をそれぞれ出力する第１の磁気センサおよび第２の磁気センサであり、
前記ロータの回転角の演算精度を高めるために必要な情報が、前記２つの磁気センサの相対的な配置誤差に起因して発生する、前記２つの正弦波信号間の所定の目標位相差に対する位相差誤差である、請求項１に記載の車両用操舵装置。
【請求項４】
前記ロータの回転に応じて回転し、複数の磁極を有する多極磁石を含み、
前記複数の回転角センサは、前記多極磁石の回転に応じて、互いに位相が異なりかつ３次高調波成分が重畳された正弦波信号をそれぞれ出力する第１の磁気センサおよび第２の磁気センサであり、
前記ロータの回転角の演算精度を高めるために必要な情報が、前記各磁気センサの出力信号から３次高調波成分を除去するために用いられる情報である、請求項１に記載の車両用操舵装置である。
【請求項５】
前記ブラシレスモータに第１の給電経路を介して接続された、前記ブラシレスモータの駆動回路と、
前記第１の給電経路を開閉するための第１の経路開閉手段と、
前記駆動回路に第２の給電経路を介して接続され、前記操舵部材をロックするためのステアリングロック装置用の電動モータと、
前記第２の給電経路を開閉する第２の経路開閉手段とを含む、請求項１〜４のいずれか一項に記載の車両用操舵装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、車両用操舵装置に関する。
【背景技術】
【０００２】
車両用操舵装置として、電動パワーステアリング装置（ＥＰＳ：Electric Power Steering）と、ステアリングホイール等の操舵部材の回転をロックするステアリングロック装置とを備えたものがある。ステアリングロック装置は、盗難防止のために設けられている。
電動パワーステアリング装置は、電動パワーステアリング用モータ（ＥＰＳモータ）を含む。ステアリングロック装置は、たとえば、下記特許文献１の図１７に示されている装置のように、施錠および開錠を行うためのステアリングロック装置用モータ（ロックモータ）を含む。ＥＰＳモータは、たとえば、三相ブラシレスモータである。ロックモータは、たとえば、ブラシ付直流モータである。
【０００３】
ＥＰＳモータは、ＥＰＳ用モータの駆動回路を含むＥＰＳ用コントローラ（ＥＰＳ用ＥＣＵ）によって制御されている。ロックモータは、ロックモータの駆動回路を含むステアリングロック装置用コントローラ（ロック装置用ＥＣＵ）によって制御されている。
ＥＰＳモータとして使用されるブラシレスモータを制御するためには、ロータの回転角度に合わせてステータ巻線に電流を通電する必要がある。そこで、ＥＰＳモータの回転に応じて回転する検出用ロータを用いて、ＥＰＳモータのロータの回転角を検出する回転角検出装置が知られている。具体的には、図３４に示すように、検出用ロータ１０１（以下、「ロータ１０１」という）は、ＥＰＳモータのロータに設けられている磁極対に相当する複数の磁極対を有する円筒状の磁石１０１ａを備えている。ロータ１０１の周囲には、２つの磁気センサ１２１，１２２が、ロータ１０１の回転中心軸を中心として所定の角度間隔をおいて配置されている。各磁気センサ１２１，１２２からは、所定の位相差を有する正弦波信号が出力される。これらの２つの正弦波信号に基づいて、ロータ１０１の回転角（ＥＰＳモータのロータの回転角）が検出される。
【０００４】
この例では、磁石１０１ａは、５組の磁極対を有している。つまり、磁石１０１ａは、等角度間隔で配置された１０個の磁極を有している。各磁極は、ロータ１０１の回転中心軸を中心として、３６°（電気角では１８０°）の角度間隔で配置されている。また、２つの磁気センサ１２１，１２２は、ロータ１０１の回転中心軸を中心として１８°（電気角では９０°）の角度間隔をおいて配置されている。
【０００５】
図３４に矢印で示す方向を検出用ロータ１０１の正方向の回転方向とする。そして、ロータ１０１が正方向に回転されるとロータ１０１の回転角が大きくなり、ロータ１０１が逆方向に回転されると、ロータ１０１の回転角が小さくなるものとする。各磁気センサ１２１，１２２からは、図３５に示すように、ロータ１０１が１磁極対分に相当する角度（７２°（電気角では３６０°））を回転する期間を一周期とする正弦波信号Ｖ１，Ｖ２が出力される。
【０００６】
所定の基準位置からのロータ１０１の絶対的な回転角を、ロータ１０１の絶対回転角（機械角）θＡということにする。ロータ１０１の１回転分の角度範囲を、５つの磁極対に対応して５つの区間に分け、各区間の開始位置を０°とし終了位置を３６０°として表したロータ１０１の角度を、ロータ１０１の相対回転角θＲということにする。この場合には、１０個の磁極の角度幅は等しいので、ロータ１０１の相対回転角θＲは、ＥＰＳモータのロータの電気角と一致する。
【０００７】
ここでは、第１の磁気センサ１２１からは、Ｖ１＝Ａ１・sinθＲの出力信号が出力され、第２の磁気センサ１２２からは、Ｖ２＝Ａ２・cosθＲの出力信号が出力されるものとする。Ａ１，Ａ２は、振幅である。両出力信号Ｖ１，Ｖ２の振幅Ａ１，Ａ２が互いに等しいとみなすと、ロータ１０１の相対回転角θＲは、両出力信号Ｖ１，Ｖ２を用いて、次式(1)に基づいて求めることができる。
【０００８】
θＲ＝tan−１（sinθＲ／cosθＲ）
＝tan−１（Ｖ１／Ｖ２）      …(1)
このようにして、求められた相対角θＲを使って、ＥＰＳモータを制御する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−７６４５５号公報
【特許文献２】特開平２−１６４６６７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
前述したような従来の回転角検出装置においては、磁極ごとの磁力のばらつきなどにより、各磁気センサ１２１，１２２の出力信号Ｖ１，Ｖ２の振幅が磁極ごとに変動するため、ロータ１０１の回転角の検出に誤差が発生する。そこで、ロータ１０１の絶対回転角（機械角）θＡに応じて、各磁気センサ１２１，１２２の出力信号Ｖ１，Ｖ２の振幅が等しくなるように、各磁気センサ１２１，１２２の出力信号Ｖ１，Ｖ２を補正（振幅補正）した後、ロータ１０１の相対角θＲを演算している。
【００１１】
磁極毎に磁力がばらつく場合には、各磁気センサ１２１，１２２の出力信号Ｖ１，Ｖ２に対して、相対角（電気角）の１周期または半周期ごとに補正するゲインを変更しなければならない。ロータ１０１が１回転した後においては、各磁気センサ１２１，１２２が感知している磁極を特定することができるので、各磁気センサ１２１，１２２が感知している磁極（磁極対）に応じた振幅補正を行うことができる。しかし、電動パワーステアリング装置の起動直後には、各磁気センサ１２１，１２２が感知している磁極を特定することができないため、各磁気センサ１２１，１２２が感知している磁極に応じた振幅補正を行うことができない。
【００１２】
従来、ステアリングロック装置を備えた車両操舵装置においては、イグニッションキーがオンされても、ステアリングロック装置によって操舵部材のロック状態が解除される前に、ＥＰＳモータが回転駆動されることはなかった。このため、操舵部材のロック状態が解除された直後においては、各磁気センサ１２１，１２２が感知している磁極を特定することができない。したがって、操舵部材のロック状態が解除された直後から、精度の高いロータ回転角を演算することができなかった。
【００１３】
この発明の目的は、操舵部材のロック状態が解除された直後から、精度の高いロータ回転角を演算することができる車両用操舵装置を提供することである。
【課題を解決するための手段】
【００１４】
上記の目的を達成するための請求項１記載の発明は、操舵部材（１）の回転をロックするステアリングロック装置（４）と電動パワーステアリング装置（３）とを含む車両用操舵装置であって、ロータを有する電動パワーステアリング装置用のブラシレスモータ（７）と、前記ロータの回転角を演算するための複数の回転角センサ（２１，２２，２３）と、前記ステアリングロック装置によって前記操舵部材の回転がロックされている状態において、前記ブラシレスモータを回転駆動させるプレ駆動手段（３３）と、前記プレ駆動手段による前記ブラシレスモータの回転駆動中に、前記各回転角センサから出力される信号に基づいて、前記ロータの回転角の演算精度を高めるために必要な情報を獲得する情報獲得手段（３４，３５，３６）と、前記ステアリングロック装置によるロックが解除された後において、前記情報獲得手段によって獲得された情報と、前記各回転角センサの出力信号とに基づいて、前記ロータの回転角を演算する回転角演算手段（３４）とを含む、車両用操舵装置である。なお、括弧内の英数字は、後述の実施形態における対応構成要素等を表すが、むろん、この発明の範囲は当該実施形態に限定されない。以下、この項において同じ。
【００１５】
この発明では、プレ駆動手段によるブラシレスモータの回転駆動中に、情報獲得手段によって、各回転角センサから出力される信号に基づいて、ロータの回転角の演算精度を高めるために必要な情報が獲得される。そして、ステアリングロック装置によるロックが解除された後において、情報獲得手段によって獲得された情報と、各回転角センサの出力信号とに基づいて、ロータの回転角が演算される。これにより、操舵部材のロック状態が解除された直後から、精度の高いロータ回転角を演算することができるようになる。
【００１６】
請求項２記載の発明は、前記ロータの回転に応じて回転し、複数の磁極を有する多極磁石（２０ａ）を含み、前記複数の回転角センサは、前記多極磁石の回転に応じて、互いに位相差を有する正弦波信号をそれぞれ出力する磁気センサであり、前記ロータの回転角の演算精度を高めるために必要な情報が、各磁気センサが感知している磁極を特定するための情報である、請求項１に記載の車両用操舵装置である。
【００１７】
この構成では、プレ駆動手段によるブラシレスモータの回転駆動中に、各磁気センサが感知している磁極を特定するための情報を獲得することができる。
請求項３記載の発明は、前記ロータの回転に応じて回転し、複数の磁極を有する多極磁石（２０ａ）を含み、前記複数の回転角センサは、前記多極磁石の回転に応じて、互いに位相差を有する第１の正弦波信号および第２の正弦波信号をそれぞれ出力する第１の磁気センサおよび第２の磁気センサであり、前記ロータの回転角の演算精度を高めるために必要な情報が、前記２つの磁気センサの相対的な配置誤差に起因して発生する、前記２つの正弦波信号間の所定の目標位相差に対する位相差誤差である、請求項１に記載の車両用操舵装置である。
【００１８】
この構成では、プレ駆動手段によるブラシレスモータの回転駆動中に、２つの磁気センサの相対的な配置誤差に起因して発生する、２つの正弦波信号間の所定の目標位相差に対する位相差誤差を獲得することができる。
請求項４記載の発明は、前記ロータの回転に応じて回転し、複数の磁極を有する多極磁石（２０ａ）を含み、前記複数の回転角センサは、前記多極磁石の回転に応じて、互いに位相が異なりかつ３次高調波成分が重畳された正弦波信号をそれぞれ出力する第１の磁気センサおよび第２の磁気センサであり、前記ロータの回転角の演算精度を高めるために必要な情報が、前記各磁気センサの出力信号から３次高調波成分を除去するために用いられる情報である、請求項１に記載の車両用操舵装置。
【００１９】
この構成では、プレ駆動手段によるブラシレスモータの回転駆動中に、各磁気センサの出力信号から３次高調波成分を除去するために用いられる情報を獲得することができる。
請求項５記載の発明は、前記ブラシレスモータに第１の給電経路（１５，１６，１７）を介して接続された、前記ブラシレスモータの駆動回路（１２）と、前記第１の給電経路を開閉するための第１の経路開閉手段（Ｒ１，Ｒ２）と、前記駆動回路に第２の給電経路（１８，１９）を介して接続され、前記操舵部材をロックするためのステアリングロック装置用の電動モータ（１０）と、前記第２の給電経路を開閉する第２の経路開閉手段（Ｒ３，Ｒ４）とを含む、請求項１〜４のいずれか一項に記載の車両用操舵装置である。
【００２０】
第１の経路開閉手段によって第１の給電経路を閉鎖し、第２の経路開閉手段によって第２の給電経路を開放すると、ブラシレスモータがブラシレスモータの駆動回路に接続されるので、三相ブラシレスモータを駆動させることが可能となる。
一方、第１の経路開閉手段によって第１の給電経路を開放し、第２の経路開閉手段によって第２の給電経路を閉鎖すると、ステアリングロック装置用の電動モータが三相ブラシレスモータの駆動回路に接続されるので、ステアリングロック装置用の電動モータを駆動させることが可能となる。
【００２１】
つまり、１つの駆動回路によって、電動パワーステアリング用の三相ブラシレスモータとステアリングロック装置用の電動モータとを駆動することが可能となる。このため、電動パワーステアリング用の三相ブラシレスモータとステアリングロック装置用の電動モータとを駆動するために必要なＦＥＴ等のスイッチング素子の数を低減させることができる。
【図面の簡単な説明】
【００２２】
【図１】この発明の第１の実施形態に係る車両用操舵装置の概略的な構成を示す模式図である。
【図２】ＥＣＵの電気的構成を示す概略図である。
【図３】施錠制御モードにおけるロックモータ制御部の動作を説明するための電気回路図である。
【図４】開錠制御モードにおけるロックモータ制御部の動作を説明するための電気回路図である。
【図５】検出用ロータの構成を示す模式図である。
【図６】第１の磁気センサの出力信号波形および第２の磁気センサの出力信号波形を示す模式図である。
【図７】図７Ａは、第１の磁気センサに対応する振幅補正用テーブルの内容を示す模式図であり、図７Ｂは、第２の磁気センサに対応する振幅補正用テーブルの内容を示す模式図である。
【図８】回転角演算部による回転角演算処理の手順を示すフローチャートである。
【図９】制御部の全体的な動作を示すフローチャートである。
【図１０】第１変形例における回転角演算部による回転角演算処理の手順を示すフローチャートである。
【図１１】図１０のステップＳ４３の相対的極番号の設定処理を説明するための模式図である。
【図１２】ゼロクロスタイミングの演算方法を説明するための模式図である。
【図１３】図１０のステップＳ６０のゼロクロス検出に基づく極番号特定処理を説明するための模式図である。
【図１４】第２変形例における検出用ロータの構成を示す模式図である。
【図１５】第１および第２の磁気センサの出力信号波形ならびに第１の磁気センサが感知している磁極を示す模式図である。
【図１６】ピーク値テーブルの内容を示す模式図である。
【図１７】回転角演算部による回転角演算処理の手順を示すフローチャートである。
【図１８】第３変形例における検出用ロータの構成を示す模式図である。
【図１９】第１、第２および第３の磁気センサの出力信号波形ならびに第１の磁気センサが感知している磁極を示す模式図である。
【図２０】ピーク値テーブルの内容を示す模式図である。
【図２１】回転角演算部による回転角演算処理の手順を示すフローチャートである。
【図２２】図２１のステップＳ９３の相対的極番号の設定処理の手順を示すフローチャートである。
【図２３】相対的極番号の設定処理を説明するための模式図である。
【図２４】この発明の第２の実施形態における回転角検出装置の構成を示す模式図である。
【図２５】位相差誤差演算部の構成を示すブロック図である。
【図２６】位相差誤差の演算方法を説明するための模式図である。
【図２７】回転角演算部によって実行される回転角演算処理の手順を示すフローチャートである。
【図２８】第２の実施形態における制御部の全体的な動作を示すフローチャートである。
【図２９】この発明の第３の実施形態における回転角検出装置の構成を示す模式図である。
【図３０】３次高調波成分が重畳されている場合の第１の磁気センサの出力信号の波形の例を示す波形図である。
【図３１】回転角演算部によって実行される回転角演算処理の手順を示すフローチャートである。
【図３２】補正ゲイン演算部によって実行される補正ゲイン演算処理の手順を示すフローチャートである。
【図３３】第３の実施形態における制御部の全体的な動作を示すフローチャートである。
【図３４】従来の回転角検出装置による回転角検出方法を説明するための模式図である。
【図３５】第１の磁気センサの出力信号波形および第２の磁気センサの出力信号波形を示す模式図である。
【発明を実施するための形態】
【００２３】
以下では、この発明の実施形態について、添付図面を参照して詳細に説明する。
図１は、この発明の第１の実施形態に係る車両用操舵装置の概略的な構成を示す模式図である。
車両用操舵装置は、ステアリングホイール（操舵部材）１と、ステアリングコラム２と、電動パワーステアリング装置３と、ステアリングロック装置４と、電子制御ユニット（ＥＣＵ：Electronic Control Unit）１１とを備えている。
【００２４】
ステアリングコラム２は、ステアリングホイール１を回転自在に支持するものである。電動パワーステアリング装置３は、運転者の操舵を補助するための装置である。ステアリングロック装置４は、盗難防止等のためにステアリングホイール１の回転をロックさせるための装置である。ＥＣＵ１１は、電動パワーステアリング装置３と、ステアリングロック装置４とを制御するための装置である。
【００２５】
ステアリングホイール１は、ステアリングコラム２に回転自在に支持されたステアリングシャフト５と中間軸６とを介して図示しない転舵機構に連結されている。なお、ステアリングシャフト５は、上端がステアリングホイール１に連結された入力軸（図示略）と、下端が中間軸６に連結された出力軸（図示略）と、入力軸と出力軸とを連結するトーションバー（図示略）とを含んでいる。
【００２６】
電動パワーステアリング装置３は、操舵補助力（アシスト力）を発生するＥＰＳモータ７と、ＥＰＳモータ７の出力トルクをステアリングシャフト５の出力軸に伝達するための減速機構８とを含む。ＥＰＳモータ７は、この実施形態では、三相ブラシレスモータからなる。
ステアリングロック装置４は、ステアリングシャフト５の入力軸の回転をロックするための機構９と、この機構を駆動するためのステアリングロック装置用モータ（以下、「ロックモータ１０」という）を含んでいる。ロックモータ１０は、この実施形態では、ブラシ付直流モータからなる。なお、このようなステアリングロック装置４としては、たとえば、前記特許文献１の図１７に開示されているステアリングロック装置を用いてもよい。ＥＰＳモータ７およびロックモータ１０は、ＥＣＵ１１によって制御される。
【００２７】
図２は、ＥＣＵ１１の電気的構成を示す概略図である。
ＥＣＵ１１は、各モータ７，１０の駆動電力を生成する駆動回路１２と、駆動回路１２を制御するための制御部１３とを備えている。制御部１３は、ＣＰＵ（中央処理装置）とこのＣＰＵの動作プログラム等を記憶したメモリ（ＲＯＭ，ＲＡＭ、書き換え可能な不揮発性メモリ等）とを含むマイクロコンピュータで構成されている。
【００２８】
駆動回路１２は、ＥＰＳモータ７（三相ブラシレスモータ）を駆動するために使用される三相ブリッジインバータ回路である。この実施形態では、ＥＰＳモータ７を駆動するための駆動回路１２が、ロックモータ１０を駆動するための駆動回路としても使用される。
この駆動回路１２では、ＥＰＳモータ７のＵ相に対応した一対の電界効果トランジスタＦＥＴ１，ＦＥＴ２の直列回路と、Ｖ相に対応した一対の電界効果トランジスタＦＥＴ３，ＦＥＴ４の直列回路と、Ｗ相に対応した一対の電界効果トランジスタＦＥＴ５，ＦＥＴ６の直列回路とが、直流電源１４と接地との間に並列に接続されている。以下において、各相の一対のＦＥＴのうち、電源１４側のものを「ハイサイドＦＥＴ」といい、接地側のものを「ローサイドＦＥＴ」という場合がある。
【００２９】
ＥＰＳモータ７のＵ相界磁コイル７Ｕは、Ｕ相に対応した一対のＦＥＴ１，ＦＥＴ２の間の接続点にＵ相配線１５を介して接続されている。ＥＰＳモータ７のＶ相界磁コイル７Ｖは、Ｖ相配線１６および第１のＥＰＳ用リレーＲ１を介して、Ｖ相に対応した一対のＦＥＴ３，ＦＥＴ４の間の接続点に接続されている。ＥＰＳモータ７のＷ相界磁コイル７Ｗは、Ｗ相配線１７および第２のＥＰＳ用リレーＲ２を介して、Ｗ相に対応した一対のＦＥＴ５，ＦＥＴ６の間の接続点に接続されている。Ｕ相配線１５、Ｖ相配線１６およびＷ相配線１７によって、第１の給電経路が構成されている。また、ＥＰＳ用リレーＲ１，Ｒ２によって、第１の経路開閉手段が構成されている。
【００３０】
ＥＰＳモータ７のロータには、ロータの回転に応じて回転する検出用ロータ２０が連結されている。検出用ロータ２０の周囲には、検出用ロータ２０の回転角（ＥＰＳモータ７のロータのロータ回転角）を検出するための２つの磁気センサ（回転位置センサ）２１，２２が配置されている。一方の磁気センサ２１を第１の磁気センサ２１といい、他方の磁気センサ２２を第２の磁気センサ２２という場合がある。また、第１の磁気センサ２１の出力信号を第１の出力信号Ｖ１といい、第２の磁気センサ２２の出力信号を第２の出力信号Ｖ２という場合がある。また、検出用ロータ２０の周囲には、周辺温度を検出するための温度センサ２４が配置されている。各磁気センサ２１，２２および温度センサ２４は、制御部１３に接続されている。検出用ロータ２０の構成については、後述する。
【００３１】
ロックモータ１０の負極端子（−）は、第１の接続線１８および第１のロック装置用リレーＲ３を介して、Ｕ相配線１５に接続されている。ロックモータ１０の正極端子（＋）は、第２の接続線１９および第２のロック装置用リレーＲ４を介して、Ｗ相配線１７に接続されている。この実施形態では、ロックモータ１０が正転方向に回転されるとステアリングホイール１（ステアリングシャフト５の入力軸）の回転がロック（施錠）され、ロックモータ１０が逆転方向に回転されるとロックが開錠される。
【００３２】
第１の接続線１８と第２の接続線１９とによって、ロックモータ１０を駆動回路１２に接続するための給電回路（第２の給電経路）が構成されている。また、ロック装置用リレーＲ３，Ｒ４によって、第２の給電経路を開閉するための経路開閉手段（第２の経路開閉手段）が構成されている。
ローサイドＦＥＴ２，ＦＥＴ４およびＦＥＴ６と接地とを接続するための各接続線には、ＥＰＳモータ７のＶ相、Ｗ相およびＵ相の相電流ＩＶ，ＩＷ，ＩＵを検出するための電流センサ２７Ｖ，２７Ｗ，２７Ｕがそれぞれ設けられている。これらの電流センサ２７Ｖ，２７Ｗ，２７Ｕは、制御部１３に接続されている。
【００３３】
制御部１３には、車両の速度を検出するための車速センサ２５およびステアリングホイール１に与えられた操舵トルクを検出するためのトルクセンサ２６が接続されている。
制御部１３は、機能処理部として、全体制御部３１、ロックモータ制御部３２、ＥＰＳモータ制御部３３および回転角演算部３４を備えている。
回転角演算部３４は、第１の磁気センサ２１の出力信号Ｖ１、第２の磁気センサ２２の出力信号Ｖ２および温度センサ２４の出力信号に基づいて、ＥＰＳモータ７のロータの回転角（電気角θＥ）を演算する。回転角演算部３４によって演算された電気角θＥは、ＥＰＳモータ制御部３３に与えられる。回転角演算部３４の詳細については、後述する。
【００３４】
ＥＰＳモータ制御部３３は、ＥＰＳ用リレーＲ１，Ｒ２がオンとなっている状態で駆動回路１２内のＦＥＴ１〜ＦＥＴ６を制御することにより、ＥＰＳモータ７を駆動する。ＥＰＳモータ制御部３３の動作モードには、通常モードと強制回転モードとがある。通常モードは、ステアリングロック装置４によってステアリングホイール１の回転がロックされていない通常運転状態において、駆動回路１２を介してＥＰＳモータ７を駆動制御するモードである。通常モードにおいては、ＥＰＳモータ制御部３３は、トルクセンサ２６によって検出される操舵トルク、車速センサ２５によって検出される車速、電流センサ２７Ｕ，２７Ｖ，２７Ｗによって検出される相電流および回転角演算部３４から与えられるロータ回転角θＥに基づいて、駆動回路１２を介してＥＰＳモータ７を制御する。具体的には、ＥＰＳモータ制御部３３は、操舵トルクと車速とに基づいて目標電流値を決定し、実際のモータ電流が目標電流値に近づくようにＦＥＴ１〜ＦＥＴ６を制御する。
【００３５】
一方、強制回転モードは、イグニッションキーがオンされた直後において、ステアリングロック装置４によってステアリングホイール１の回転がロックされている状態で、ＥＰＳモータ７を強制的に回転駆動するモードである。強制回転モードにおいては、ＥＰＳモータ制御部３３は、予め設定された強制回転モード用の目標電流値と、電流センサ２７Ｕ，２７Ｖ，２７Ｗによって検出される相電流および回転角演算部３４から与えられるロータ回転角θＥに基づいて、駆動回路１２を介してＥＰＳモータ７を制御する。具体的には、ＥＰＳモータ制御部３３は、実際のモータ電流が強制回転モード用の目標電流値に近づくようにＦＥＴ１〜ＦＥＴ６を制御する。
【００３６】
ＥＰＳモータ７はステアリングシャフト５の出力軸に減速機８を介して連結されているため、ステアリングシャフト５の入力軸がステアリングロック装置４によってロックされている場合にＥＰＳモータ７に所定のトルクが与えられると、ＥＰＳモータ７はトーションバーに捩れを発生させながら、所定範囲内で回転する。この場合のトーションバーの最大捩れ角を例えば６degとし、減速機８の減速比を例えば１５とすると、ＥＰＳモータ７は、機械角で９０deg回転することになる。ＥＰＳモータ７のロータに設けられた磁極対数が５である場合には、ＥＰＳモータ７は、電気角で４５０deg回転することになる。
【００３７】
ロックモータ制御部３２は、ロック装置用リレーＲ３，Ｒ４がオンとなっている状態で駆動回路１２内のＦＥＴ１〜ＦＥＴ６を制御することにより、ロックモータ１０を駆動する。ロックモータ制御部３２の動作モードには、施錠制御モードと開錠制御モードとがある。
施錠制御モードにおいては、ロックモータ制御部３２は、ロックモータ１０を正転方向に駆動させて、ステアリングホイール１の回転をロック（施錠）する。具体的には、ロックモータ制御部３２は、図３に示すように、ＥＰＳ用リレーＲ１，Ｒ２がオフであり、ロック装置用リレーＲ３，Ｒ４がオンとなっている状態で、第２のＦＥＴ２および第５のＦＥＴ５をオンにする。これにより、電源１４から、第５のＦＥＴ５、第２のロック装置用リレーＲ４、ロックモータ１０、第１のロック装置用リレーＲ３および第２のＦＥＴ２を通って、接地へと電流が流れる。これにより、ロックモータ１０の正極側端子（＋）に正電圧が印加されるので、ロックモータ１０が正転方向に回転する。
【００３８】
一方、開錠制御モードにおいては、ロックモータ制御部３２は、ロックモータ１０を逆転方向に駆動させて、ステアリングホイール１のロックを開錠させる。具体的には、ロックモータ制御部３２は、図４に示すように、ＥＰＳ用リレーＲ１，Ｒ２がオフであり、ロック装置用リレーＲ３，Ｒ４がオンとなっている状態で、第１のＦＥＴ１および第６のＦＥＴ６をオンにする。これにより、電源１４から、第１のＦＥＴ１、第１のロック装置用リレーＲ３、ロックモータ１０、第２のロック装置用リレーＲ４および第６のＦＥＴ６を通って、接地へと電流が流れる。これにより、ロックモータ１０の負極側端子（−）に正電圧が印加されるので、ロックモータ１０が逆転方向に回転する。
【００３９】
全体制御部３１は、リレーＲ１〜Ｒ４の制御、制御部１３内の各部３２〜３４の制御等を行う。
検出用ロータ２０、磁気センサ２１，２２、温度センサ２４および回転角演算部３４は、回転角検出装置を構成している。図５〜図８を参照して、回転角検出装置について説明する。
【００４０】
図５は、検出用ロータの構成を示す模式図である。
検出用ロータ２０（以下、単に「ロータ２０」という）は、ＥＰＳモータ７のロータに設けられている磁極対に相当する複数の磁極対を有する円筒状の磁石（多極磁石）２０ａを含んでいる。つまり、ロータ２０には、周方向に並んだ複数の磁極が設けられている。この例では、磁石２０ａは、５組の磁極対（Ｍ１，Ｍ２），（Ｍ３，Ｍ４），（Ｍ５，Ｍ６），（Ｍ７，Ｍ８），（Ｍ９，Ｍ１０）を有している。つまり、磁石２０ａは、１０個の磁極Ｍ１〜Ｍ１０を有している。
【００４１】
ＥＰＳモータ７のロータに設けられた各磁極の周方向の長さは、全て同じである。つまり、ＥＰＳモータ７のロータに設けられた各磁極の角度幅は全て同じであり、３６°である。したがって、このＥＰＳモータ７では、１磁極対の角度幅は、機械角で７２°であり、これが電気角の３６０°に相当する。これに対し、図５に示すように、ロータ２０に設けられている各磁極Ｍ１〜Ｍ１０のうち、Ｎ極の磁極Ｍ１，Ｍ３，Ｍ５，Ｍ７，Ｍ９の角度幅（ａ，ｃ，ｅ，ｇ，ｉ）は、それぞれ異なっている。つまり、Ｎ極の磁極間では、その着磁面積が異なっている。Ｓ極の磁極Ｍ２，Ｍ４，Ｍ６，Ｍ８，Ｍ１０のうち、磁極Ｍ１０以外の４つの磁極Ｍ２，Ｍ４，Ｍ６，Ｍ８は、それぞれ異なっている。磁極Ｍ１０の角度幅（ｊ）は、磁極Ｍ６の角度幅（ｆ）と等しい。
【００４２】
この実施形態においては、各磁極Ｍ１〜Ｍ１０の角度幅は、表１に示すようになっている。ただし、表１では、角度幅は、その角度幅に対応する機械角に磁極対数（この実施形態では”５”）を乗算した値で表されている。なお、図５において、破線は、ロータ２０を周方向に３６°（前記電気角では１８０°）間隔で分割した場合の各領域を示している。
【００４３】
【表１】
2013091350.tif 000003
【００４４】
第１および第２の磁気センサ２１，２２は、ロータ２０の回転中心軸を中心として、所定角度（１８°（前記電気角では９０°））の角度間隔をおいて配置されている。磁気センサとしては、たとえば、ホール素子、磁気抵抗素子（ＭＲ素子）等、磁界の作用により電気的特性が変化する特性を有する素子を備えたものを用いることができる。
図５に矢印で示す方向をロータ２０の正方向の回転方向とする。そして、ロータ２０が正方向に回転されるとロータ２０の回転角が大きくなり、ロータ２０が逆方向に回転されると、ロータ２０の回転角が小さくなるものとする。各磁気センサ２１，２２からは、図６に示すように、ロータ２０の回転にともなって、正弦波状の信号（以下、「正弦波信号」という）Ｖ１，Ｖ２が出力される。なお、図６における横軸のロータ角度［deg]は、機械角に磁極対数（この実施形態では”５”）を乗算することにより得られた角度を表している。また、図６には、正弦波信号Ｖ１の各ピーク値付近に、その時点において第１の磁気センサ２１が感知している磁極の領域ａ〜ｊが明記されている。
【００４５】
ロータ２０が１つの磁極に相当する角度を回転すると、各磁気センサ２１，２２からは、半周期分の正弦波信号が出力される。ただし、この実施形態では、各磁極の角度幅は一定幅ではないため、１つのセンサから出力される正弦波信号における各磁極に対応する半周期は一定ではない。また、磁極Ｍ６および磁極Ｍ１０を除いて、各磁気センサ２１，２２の出力信号Ｖ１，Ｖ２の磁極毎のピーク値は、磁極ごとに異なる。
【００４６】
所定の基準位置からのロータ２０の絶対的な回転角を、ロータ２０の絶対回転角（機械角）θＡということにする。ロータ２０の１回転分の角度範囲を、５つの磁極対の角度幅に対応して、５つの区間（ａ＋ｂ，ｃ＋ｄ，ｅ＋ｆ，ｇ＋ｈ，ｉ＋ｊ）に分け、各区間の開始位置を０°とし終了位置を３６０°として、絶対回転角θＡに対応する角度を０〜３６０°の範囲内で表した角度を、ロータ２０の相対回転角θＲということにする。なお、この実施形態では、これらの５つの区間の角度幅は、一定幅ではない。
【００４７】
ここでは、第１の磁気センサ２１からは、５つの磁極対に対応する区間毎に、Ｖ１＝Ａ１・sinθＲの出力信号が出力され、第２の磁気センサ２２からは、５つの磁極対に対応する区間毎に、Ｖ２＝Ａ２・cosθＲの出力信号が出力されるものとする。Ａ１，Ａ２は、それぞれ振幅を表している。ただし、振幅Ａ１は、磁極毎に異なる。同様に、振幅Ａ２も磁極ごとに異なる。また、θＲは、対応する区間における相対回転角θＲを表している。
【００４８】
両出力信号Ｖ１，Ｖ２の振幅Ａ１，Ａ２が互いに等しいとみなすと、対応する区間におけるロータ２０の相対角θＲは、両出力信号Ｖ１，Ｖ２を用いて、次式(2)に基づいて求めることができる。
θＲ＝tan−１（sinθＲ／cosθＲ）
＝tan−１（Ｖ１／Ｖ２）      …(2)
図２に戻り、各磁気センサ２１，２２の出力信号Ｖ１，Ｖ２および温度センサ２４の出力信号は、回転角演算部３４に入力される。回転角演算部３４は、各磁気センサ２１，２２の出力信号Ｖ１，Ｖ２等に基づいて、ロータ２０の相対回転角θＲを算出する。また、回転角演算部３４は、得られた相対回転角θＲ等に基いて、ロータ２０の絶対回転角（機械角）θＡを算出し、得られたロータ２０の絶対回転角θＡに基づいて、ＥＰＳモータ７のロータの電気角θＥを演算する。
【００４９】
以下、回転角演算部３４の動作について説明する。回転角演算部３４内の不揮発性メモリには、磁気センサ２１，２２毎に、振幅補正用テーブルが記憶されている。
図７Ａは、第１の磁気センサ２１に対応する振幅補正用テーブル（以下、「第１テーブル」という場合がある）の内容例を示している。第１テーブルには、各磁極Ｍ１〜Ｍ１０の磁極番号１〜１０毎に、その磁極に対応する第１の出力信号Ｖ１のピーク値（極大値または極小値）、その磁極の角度幅［deg］および補正ゲインＧ１が記憶されている。ただし、角度幅は、表１で説明したように、その角度幅に対応する機械角に磁極対数（この実施形態では”５”）を乗算した値である。補正ゲインＧ１は、第１の出力信号Ｖ１の振幅の磁極毎のばらつきを補正するためのゲインである。
【００５０】
任意の磁極に対する振幅補正ゲインＧ１は、当該磁極に対応する第１の出力信号Ｖ１のピーク値（極大値または極小値）と基準振幅とを用い、次式(3)に基いて求められる。基準振幅は、たとえば、角度幅（機械角×磁極対数）が１８０°の磁極に対応する第１の出力信号Ｖ１のピーク値（絶対値）に相当する値である。基準振幅は、予め設定され、この例では“５００”である。
【００５１】
Ｇ１＝基準振幅／｜ピーク値｜    …(3)
図７Ｂは、第２の磁気センサ２２に対応する振幅補正用テーブル（以下、「第２テーブル」という場合がある）の内容例を示している。第２テーブルには、各磁極Ｍ１〜Ｍ１０の磁極番号１〜１０毎に、その磁極に対応する第２の出力信号Ｖ２のピーク値（極大値または極小値）、その磁極の角度幅［deg］および補正ゲインＧ２が記憶されている。補正ゲインＧ２は、第２の出力信号Ｖ２の振幅の磁極毎のばらつきを補正するためのゲインである。図７Ｂでは、説明の便宜上、各磁極に対する第２の出力信号Ｖ２のピーク値は、対応する磁極に対する第１の出力信号Ｖ１のピーク値と同じ値となっているが、実際には互いに異なる場合もある。
【００５２】
任意の磁極に対する補正ゲインＧ２は、当該磁極に対応する第２の出力信号Ｖ２のピーク値（極大値または極小値）と基準振幅とを用い、次式(4)に基いて求められる。基準振幅は、たとえば、角度幅（機械角×磁極対数）が１８０°の磁極に対応する第２の出力信号Ｖ２のピーク値（絶対値）に相当する値である。基準振幅は、予め設定され、この例では“５００”である。
【００５３】
Ｇ２＝基準振幅／｜ピーク値｜    …(4)
前記振幅補正用テーブルへのピーク値および補正ゲインの記憶は、ＥＰＳモータ７の出荷前に行ってもよいし、ＥＰＳモータ７の出荷後において、モータ制御中にピーク値を検出することにより、行ってもよい。前記振幅補正用テーブルに記憶されるピーク値および補正ゲインは、１周期分のデータから求めてもよいし、複数周期分のデータの平均値から求めてもよい。
【００５４】
また、回転角演算部３４内の不揮発性メモリには、磁極毎（磁極番号毎）に、第１の磁気センサ２１によってその磁極に対するピーク値が検出されているときに、第２の磁気センサ２２が感知している磁極の極番号を示すデータを記憶した磁極特定用テーブル（以下、「第３テーブル」という場合がある）と、磁極毎（磁極番号毎）に、第２の磁気センサ２２によってその磁極に対するピーク値が検出されているときに、第１の磁気センサ２１が感知している磁極の極番号を示すデータを記憶した磁極特定用テーブル（以下、「第４テーブルという」という場合がある）とが記憶されている。第３テーブルおよび第４テーブルは、両磁気センサ２１，２２の配置および角度間隔ならびにロータ２０の構成に基づいて作成される。
【００５５】
回転角演算部３４は、第１または第２の磁気センサ２１，２２の出力信号Ｖ１，Ｖ２からピーク値を検出すると、ピーク値が検出された一方の磁気センサに対応する振幅補正用テーブル（第１テーブルまたは第２テーブル）に基づいて、当該磁気センサが感知している磁極の極番号を特定する。この際、センサ信号のピーク値は磁石の温度特性（磁石の温度が高くなるほどピーク値が小さくなる）に応じて変化するので、温度センサ２４によって検出される温度に応じた磁石の温度係数（温度が高くなるほど小さくなる係数）を振幅補正用テーブルのピーク値に乗算することによってテーブル値を補正し、検出されたピーク値と補正後のテーブル値とに基づいて、磁極の極番号を特定するようにしてもよい。
【００５６】
なお、この実施形態では、磁極Ｍ６に対応するピーク値と磁極Ｍ１０に対応するピーク値は同じであるので、磁極Ｍ６または磁極Ｍ１０に対応するピーク値がいずれか一方の磁気センサによって検出されたとしても、回転角演算部３４は、当該磁気センサが感知している磁極の極番号を特定することはできない。そこで、回転角演算部３４は、回転角演算部３４が起動された後、磁極Ｍ６，Ｍ１０以外の磁極に対応するピーク値が一方の磁気センサによって検出されたときに、当該磁気センサが感知している磁極の極番号を特定する。
【００５７】
回転角演算部３４は、特定された極番号と、第３または第４テーブル（磁極特定用テーブル）とに基づいて、他方の磁気センサが感知している磁極の極番号を特定する。たとえば、第１テーブルに基いて、第1の磁気センサ２１が感知している磁極の極番号が特定された場合には、特定された極番号と第３テーブルとに基いて、第２の磁気センサ２２が感知している磁極の極番号が特定される。一方、第２テーブルに基いて、第２の磁気センサ２２が感知している磁極の極番号が特定された場合には、特定された極番号と第４テーブルとに基いて、第１の磁気センサ２１が感知している磁極の極番号が特定される。
【００５８】
これにより、各磁気センサ２１，２２が感知している磁極の極番号が特定されるので、回転角演算部３４は、各磁気センサ２１，２２の出力信号Ｖ１，Ｖ２を、それらが感知している磁極に対応する補正ゲインＧ１，Ｇ２を用いて補正する。そして、回転角演算部３４は、振幅補正後の出力信号に基づいて、ロータ２０の相対回転角θＲを演算する。また、回転角演算部３４は、得られた相対回転角θＲ等に基づいて絶対回転角θＡを演算する。そして、回転角演算部３４は、得られた絶対回転角θＡから、ＥＰＳモータ７の電気角θＥを演算する。
【００５９】
それ以後は、回転角演算部３４は、第１または第２の磁気センサ２１，２２の出力からピーク値が検出される毎に、ピーク値が検出された一方の磁気センサに対して既に特定されている極番号を更新し、当該磁気センサの出力信号を、更新後の極番号に対応する補正ゲインを用いて補正する。そして、回転角演算部３４は、上記と同様に、ロータ２０の相対回転角θＲ、絶対回転角θＡ、ＥＰＳモータ７の電気角θＥを演算する。
【００６０】
なお、各磁気センサ２１，２２が感知している磁極が特定されていないときに、各磁気センサ２１，２２の出力信号Ｖ１，Ｖ２の振幅を補正するために、ロータ２０の周辺温度毎に各出力信号Ｖ１，Ｖ２のピーク値の初期値（絶対値）が予め決定されて、回転角演算部３４内の不揮発性メモリに記憶されている。ある温度での第１の出力信号Ｖ１のピーク値の初期値は、例えば当該温度での第１の出力信号Ｖ１の各磁極に対するピーク値の絶対値の平均値に相当する。同様に、ある温度での第２の出力信号Ｖ２のピーク値の初期値は、例えば当該温度での第２の出力信号Ｖ２の各磁極に対するピーク値の絶対値の平均値に相当する。
【００６１】
図８は、回転角演算部３４による回転角演算処理の手順を示すフローチャートである。
回転角演算部３４が起動されると、回転角演算部３４は、図８に示される回転角演算処理を、所定の演算周期毎に繰り返し行う。
回転角演算部３４は、各磁気センサ２１，２２の出力信号（センサ値）Ｖ１，Ｖ２を読み込む（ステップＳ１）。なお、回転角演算部３４のメモリ（たとえば、ＲＡＭ）には、所定回数前に読み込まれたセンサ値から最新に読み込まれたセンサ値までの、複数回数分のセンサ値が記憶されるようになっている。
【００６２】
回転角演算部３４は、メモリに記憶されているセンサ値に基づいて、各センサ値Ｖ１，Ｖ２毎にピーク値（極値）を検出したか否かを判定する（ステップＳ２）。以下において、ステップＳ２の判定処理を、ピーク値検出処理という場合がある。具体的には、回転角演算部３４は、センサ値が上昇傾向から下降傾向に変化したときには、ピーク値（極大値）を検出したと判別するとともに、当該極大値を特定する。また、回転角演算部３４は、センサ値が下降傾向から上昇傾向に変化したときには、ピーク値（極小値）を検出したと判別するとともに、当該極小値を特定する。
【００６３】
前記ステップＳ２において、ピーク値が検出されなかったときには（ステップＳ２：ＮＯ）、回転角演算部３４は、回転角演算部３４が起動された後において、後述するステップＳ７の極番号特定処理によって各磁気センサ２１，２２が感知している磁極が既に特定されているか否かを判別する（ステップＳ３）。
各磁気センサが感知している磁極が特定されていない場合には（ステップＳ３：ＮＯ）、回転角演算部３４は、第１の振幅補正処理を行なう（ステップＳ４）。具体的には、回転角演算部３４は、温度センサ２４によって検出されている温度に対応する各出力信号Ｖ１，Ｖ２のピーク値の初期値Ｐｄ１，Ｐｄ２を不揮発性メモリからそれぞれ読み込む。そして、回転角演算部３４は、前記ステップＳ１で読み込んだセンサ値Ｖ１，Ｖ２を、不揮発性メモリから読み込んだＰｄ１，Ｐｄ２と基準振幅（この例では５００）を用いて、それぞれ補正する。補正後のセンサ値をＶ１’，Ｖ２’とすると、Ｖ１’，Ｖ２’は、それぞれ次式(5)，(6)で表される。
【００６４】
Ｖ１’＝Ｖ１×基準振幅／Ｐｄ１    …(5)
Ｖ２’＝Ｖ２×基準振幅／Ｐｄ２    …(6)
前記ステップＳ４の第１の振幅補正処理が行われると、回転角演算部３４は、ロータ２０の相対角θＲを算出する（ステップＳ５）。具体的には、回転角演算部３４は、次式（7)に基づいて、ロータ２０の相対角θＲを算出する。
【００６５】
θＲ＝tan−１（Ｖ１’／Ｖ２’）      …(7)
回転角演算部３４は、算出された相対角θＲを、電気角θＥとしてＥＰＳモータ制御部３３に与える。そして、今演算周期での処理を終了する。
前記ステップＳ３において、各磁気センサが感知している磁極が既に特定されていると判別された場合には（ステップＳ３：ＹＥＳ）、回転角演算部３４は、ステップＳ１０に移行する。
【００６６】
前記ステップＳ２において、ピーク値が検出されたときには（ステップＳ２：ＹＥＳ）、回転角演算部３４は、回転角演算部３４が起動された後において、後述するステップＳ７の極番号特定処理によって各磁気センサ２１，２２が感知している磁極が既に特定されているか否かを判別する（ステップＳ６）。
各磁気センサが感知している磁極が特定されていない場合には（ステップＳ６：ＮＯ）、回転角演算部３４は、極番号特定処理を行なう（ステップＳ７）。つまり、回転角演算部３４は、各磁気センサ２１，２２がそれぞれ感知している磁極を特定するための処理を行なう。
【００６７】
具体的には、回転角演算部３４は、まず、前記ステップＳ２のピーク値検出処理によって検出されたピーク値（極大値または極小値）と、当該ピーク値を出力した磁気センサに対応する振幅補正用テーブル（第１または第２テーブル）の内容とに基づいて、当該磁気センサが感知している磁極を特定する。つまり、回転角演算部３４は、振幅補正用テーブルに記憶されている複数のピーク値のうち、ピーク値検出処理によって検出されたピーク値に最も近いピーク値に対応する極番号を、当該磁気センサが感知している磁極の極番号として特定する。
【００６８】
ただし、ピーク値検出処理によって検出されたピーク値に最も近いピーク値に対応する極番号が磁極Ｍ６または磁極Ｍ１０に対応する極番号である場合には、回転角演算部３４は、当該磁気センサが感知している磁極を特定しない。
前記磁気センサが感知している磁極の極番号を特定できた場合には、回転角演算部３４は、当該磁気センサが感知している磁極の極番号と、第３テーブルまたは第４テーブル（磁極特定用テーブル）とに基づいて、他方の磁気センサが感知している磁極を特定する。これにより、各磁気センサ２１，２２がそれぞれ感知している磁極が特定される。
【００６９】
ステップＳ７の極番号特定処理によって各磁気センサ２１，２２が感知している磁極が特定された場合には（ステップＳ８：ＹＥＳ）、ステップＳ１０に移行する。一方、ステップＳ７の極番号特定処理によって各磁気センサ２１，２２が感知している磁極が特定されなかった場合には（ステップＳ８：ＮＯ）、前述したステップＳ４に移行する。
前記ステップＳ６において、各センサ２１，２２が感知している磁極の極番号が既に特定されていると判別された場合には（ステップＳ６：ＹＥＳ）、回転角演算部３４は、極番号更新処理を行なう（ステップＳ９）。具体的には、回転角演算部３４は、前記ステップＳ２のピーク値検出処理によってピーク値が検出された方の磁気センサに対して既に特定されている極番号を、ロータ２０の回転方向に基づいて更新する。より具体的には、回転角演算部３４は、当該磁気センサに対して既に特定されている極番号を、ロータ２０の回転方向に応じて、１だけ多い極番号または１だけ少ない極番号に変更する。
【００７０】
ロータ２０の回転方向が正方向（図２に矢印で示す方向）である場合には、既に特定されている前記極番号を、１だけ多い極番号に更新し、ロータ２０の回転方向が逆方向である場合には、既に特定されている前記極番号を、１だけ少ない極番号に更新する。ただし、”１”の極番号に対して、１だけ少ない極番号は”１０”となる。また、”１０”の極番号に対して、１だけ多い極番号は”１”となる。ステップＳ９の処理が終了すると、ステップＳ１０に移行する。
【００７１】
なお、ロータ２０の回転方向は、たとえば、各磁気センサ２１，２２の出力信号Ｖ１，Ｖ２の位相に基いて判別することができる。具体的には、Ｖ２の位相がＶ１より進んでいる場合（同じ磁極に対するピーク値が、Ｖ２で検出されてからＶ１で検出される場合）には、ロータ２０の回転方向が正方向であると判別する。一方、Ｖ１の位相がＶ２より進んでいる場合（同じ磁極に対するピーク値が、Ｖ１で検出されてからＶ２で検出される場合）には、ロータ２０の回転方向が逆方向であると判別する。
【００７２】
ステップＳ１０では、回転角演算部３４は、前記ステップＳ１で読み込んだセンサ値Ｖ１，Ｖ２に対して第２の振幅補正処理を行う。具体的には、回転角演算部３４は、各磁気センサ２１，２２に対して現在特定されている極番号に対応する振幅補正ゲインＧ１，Ｇ２を、第１テーブルおよび第２テーブルからそれぞれ読み込む。そして、回転角演算部３４は、前記ステップＳ１で読み込んだセンサ値Ｖ１，Ｖ２を、第１テーブルおよび第２テーブルから読み込んだゲインＧ１，Ｇ２を用いて、それぞれ補正する。補正後のセンサ値をＶ１’，Ｖ２’とすると、Ｖ１’，Ｖ２’は、それぞれ次式(8)，(9)で表される。
【００７３】
Ｖ１’＝Ｖ１×Ｇ１    …(8)
Ｖ２’＝Ｖ２×Ｇ２    …(9)
前記ステップＳ１０の処理（第２の振幅補正処理）が行われると、回転角演算部３４は、ロータ２０の相対角θＲを算出する（ステップＳ１１）。具体的には、回転角演算部３４は、次式（10)に基づいて、ロータ２０の相対角θＲを算出する。
【００７４】
θＲ＝tan−１（Ｖ１’／Ｖ２’）      …(10)
次に、回転角演算部３４は、ステップＳ１１で算出されたロータ２０の相対角θＲと、磁気センサ２１が感知している磁極の極番号と、振幅補正用テーブルの内容とに基づいて、ロータ２０の絶対角（機械角）θＡを算出する（ステップＳ１２）。具体的には、回転角演算部３４は、磁気センサ２１が感知している磁極の極番号に基づいて、磁気センサ２１が感知している磁極を特定する。そして、特定した磁極に対応する角度幅Ｗを求める。たとえば、磁気センサ２１が感知している磁極が、１０個の磁極のうち、１番目の磁極Ｍ１である場合には、その磁極に対応する角度幅Ｗは、１７０［deg］となる。
【００７５】
前記ステップＳ１１で算出されたロータ２０の相対角θＲは、磁気センサ２１が感知している磁極の角度幅Ｗが１８０°であるとして、算出された角度である。そこで、回転角演算部３４は、前記ステップＳ１１で算出されたロータ２０の相対角θＲを、次式(11)に基づいて、磁気センサ２１が感知している磁極の領域の角度幅に応じた相対角θＲ’に変換（位相補正）する。
【００７６】
θＲ’＝θＲ×（Ｗ／１８０°）  …(11)
そして、回転角演算部３４は、磁気センサ２１が感知している磁極と、変換後の相対角θＲ’とに基いて、ロータ２０の絶対角（機械角）θＡを算出する。たとえば、磁気センサ２１が感知している磁極が１番目の磁極Ｍ１である場合には、θＡ＝θＲ’／５となる。ここで、５は、磁極対数である。
【００７７】
磁気センサ２１が感知している磁極が２番目の磁極Ｍ２である場合には、θＡ＝｛θＲ’＋（１番目の磁極Ｍ１の角度幅）｝／５となる。ただし、角度幅は、表１で説明したように、その角度幅に対応する機械角に磁極対数（この実施形態では”５”）を乗算した値である。磁気センサ２１が感知している磁極が３番目の磁極対Ｍ３である場合には、θＡ＝｛θＲ’＋（１番目および２番目の磁極Ｍ１，Ｍ２の角度幅の総和）｝／５となる。磁気センサ２１が感知している磁極が４番目の磁極Ｍ４である場合には、θＡ＝｛θＲ’＋（１番目〜３番目の磁極Ｍ１〜Ｍ３の角度幅の総和）｝／５となる。磁気センサ２１が感知している磁極が５番目の磁極Ｍ５である場合には、θＡ＝｛θＲ’＋（１番目〜４番目の磁極Ｍ１〜Ｍ４の角度幅の総和）｝／５となる。
【００７８】
磁気センサ２１が感知している磁極が６番目の磁極Ｍ６である場合には、θＡ＝｛θＲ’＋（１番目〜５番目の磁極Ｍ１〜Ｍ５の角度幅の総和）｝／５となる。磁気センサ２１が感知している磁極対が７番目の磁極Ｍ７である場合には、θＡ＝｛θＲ’＋（１番目〜６番目の磁極の角度幅Ｍ１〜Ｍ６の総和）｝／５となる。磁気センサ２１が感知している磁極が８番目の磁極Ｍ８である場合には、θＡ＝｛θＲ’＋（１番目〜７番目の磁極の角度幅Ｍ１〜Ｍ７の総和）｝／５となる。磁気センサ２１が感知している磁極が９番目の磁極Ｍ９である場合には、θＡ＝｛θＲ’＋（１番目〜８番目の磁極の角度幅Ｍ１〜Ｍ８の総和）｝／５となる。磁気センサ２１が感知している磁極が１０番目の磁極Ｍ１０である場合には、θＡ＝｛θＲ’＋（１番目〜９番目の磁極の角度幅Ｍ１〜Ｍ９の総和）｝／５となる。
【００７９】
このようにしてロータ２０の絶対角θＡが算出されると、回転角演算部３４は、電気角θＥを、算出する（ステップＳ１３）。具体的には、回転角演算部３４は、前記ステップＳ１２で演算された絶対角θＡと第１の磁気センサ２１が感知している磁極の番号（以下、「ｑ１」で表す）とを用い、次式（12）に基づいて、ＥＰＳモータ７のロータの電気角θＥを算出する。
【００８０】
θＥ＝５θＡ  −｛３６０×（ｎ−１）｝      …(12)
ただし、ｑ１＝１または２の場合、ｎ＝１、
ｑ１＝３または４の場合、ｎ＝２、
ｑ１＝５または６の場合、ｎ＝３、
ｑ１＝７または８の場合、ｎ＝４、
ｑ１＝９または１０の場合、ｎ＝５である。
【００８１】
回転角演算部３４は、前記ステップＳ１３で算出された電気角θＥをＥＰＳモータ制御部３３に与える。そして、今演算周期での処理を終了する。
図９は、制御部１３の全体的な動作を示すフローチャートである。
イグニッションキーがオンされることにより、ＥＣＵ１１の電源がオンされると、全体制御部３１は、ＥＰＳ用リレーＲ１，Ｒ２をオンさせる（ステップＳ２１）。なお、ＥＣＵ１１の電源がオンされたときには、各リレーＲ１〜Ｒ４および各ＦＥＴ１〜６は、オフ状態となっている。
【００８２】
次に、全体制御部３１は、回転角演算部３４を起動させる（ステップＳ２２）。これにより、回転角演算部３４は、図８を用いて説明した回転角演算処理を開始する。また、全体制御部３１は、ＥＰＳモータ制御部３３を強制回転モードで一定時間動作させる（ステップＳ２３）。これにより、ＥＰＳモータ制御部３３は、強制回転モードで、ＥＰＳモータ７を駆動する。前述したように、この際、ＥＰＳモータ７は、機械角で９０deg程度（電気角で４５０deg程度）回転する。このため、強制回転モードでＥＰＳモータ７が回転されている間に、回転角演算部３４は、各磁気センサ２１，２２が感知している磁極を特定できる。
【００８３】
前記一定時間が経過すると、全体制御部３１は、ＥＰＳ用リレーＲ１，Ｒ２をオフさせる（ステップＳ２４）。それから、全体制御部３１は、ロック装置用リレーＲ３，Ｒ４をオンさせた後に（ステップＳ２５）、ロックモータ制御部３２を開錠制御モードで一定時間動作させる（ステップＳ２６）。これにより、ロックモータ制御部３２は、開錠制御モードで、ロックモータ１０を駆動する。具体的には、ロックモータ制御部３２は、第１および第６のＦＥＴ１，ＦＥＴ６を一定時間オンした後、第１および第６のＦＥＴ１，ＦＥＴ６をオフにさせる（図４参照）。これにより、ロックモータ１０が逆転方向（開錠方向）に一定時間回転するので、ステアリングホイール１に対するロックが開錠される。
【００８４】
次に、全体制御部３１は、ロック装置用リレーＲ３，Ｒ４をオフさせた後に（ステップＳ２７）、ＥＰＳ用リレーＲ１，Ｒ２をオンさせる（ステップＳ２８）。そして、全体制御部３１は、ＥＰＳモータ制御部３３を通常モードで動作させる（ステップＳ２９）。これにより、ＥＰＳモータ制御部３３は、トルクセンサ２６によって検出される操舵トルクと車速センサ２５によって検出される車速とに応じた目標電流値を設定し、ＥＰＳモータ７に流れるモータ電流が目標電流値に等しくなるように、ＥＰＳモータ７を駆動する。これにより、操舵状況および車速に応じた適切な操舵補助が実現される。
【００８５】
この後、全体制御部３１は、イグニッションキーのオフ操作が行なわれたか否かを監視する（ステップＳ３０）。イグニッションキーのオフ操作が行なわれると（ステップＳ３０：ＹＥＳ）、全体制御部３１は、トルクセンサ２６によって検出される操舵トルクの絶対値が所定のしきい値Ｈ（Ｈ＞０）未満であるか否かを判別する（ステップＳ３１）。このしきい値Ｈは、零に近い所定の値に設定される。操舵トルクの絶対値がしきい値Ｈ以上である場合には、ＥＰＳモータ７による操舵補助が必要な状態であると考えられる。そこで、操舵トルクの絶対値がしきい値Ｈ以上である場合には（ステップＳ３１：ＮＯ）、全体制御部３１は、操舵トルクの絶対値がしきい値Ｈ未満となるまで待つ。
【００８６】
操舵トルクの絶対値が所定のしきい値Ｈ未満であると判別された場合には（ステップＳ３１：ＹＥＳ）、全体制御部３１は、ＥＰＳ用リレーＲ１，Ｒ２および全てのＦＥＴ１〜ＦＥＴ６をオフする（ステップＳ３２）。この後、全体制御部３１は、ＥＰＳモータ７のモータ電流（ＥＰＳ電流）が零になるのを待つ（ステップＳ３３）。具体的には、全体制御部３１は、電流センサ２７Ｕ，２７Ｖ，２７Ｗによって検出される各相の相電流ＩＵ，ＩＶ，ＩＷが零になるのを待つ。
【００８７】
ＥＰＳ電流が零になると（ステップＳ３３：ＹＥＳ）、全体制御部３１は、ロック装置用リレーＲ３，Ｒ４をオンさせた後に（ステップＳ３４）、ロックモータ制御部３２を施錠制御モードで一定時間動作させる（ステップＳ３５）。これにより、ロックモータ制御部３２は、施錠制御モードで、ロックモータ１０を駆動する。具体的には、ロックモータ制御部３２は、第２および第５のＦＥＴ２，ＦＥＴ５を一定時間オンした後、第２および第５のＦＥＴ２，ＦＥＴ５をオフにさせる（図５参照）。これにより、ロックモータ１０が正転方向（施錠方向）に一定時間回転するので、ステアリングホイール１の回転がロックされる。
【００８８】
次に、全体制御部３１は、ロック装置用リレーＲ３，Ｒ４をオフさせた後に（ステップＳ３６）、ＥＣＵ１１の電源をオフする（ステップＳ３７）。そして、制御部１３による処理を終了する。
前記第１の実施形態によれば、イグニッションキーがオンされてからステアリングホイール１のロックが開錠されるまでの間において、ＥＰＳモータ７が強制駆動モードで回転されている間に、各磁気センサ２１，２２が感知している磁極を特定できる。したがって、ステアリングホイール１のロックが開錠された直後から、精度の高いロータ回転角を演算することができる。これにより、ステアリングホイール１の操作が可能となった直後から、ＥＰＳモータ７を適切に制御することができるようになる。
【００８９】
また、前記第１の実施形態によれば、ＥＰＳモータ７を駆動するための駆動回路（三相ブリッジインバータ回路）１２によって、ロックモータ１０を駆動することができる。つまり、１つの駆動回路によって、ＥＰＳモータ７とロックモータ１０とを駆動することが可能となる。このため、ＥＰＳモータ７とロックモータ１０とを駆動するために必要なＦＥＴ等のスイッチング素子の数を低減させることができる。
【００９０】
次に、図１０〜図１３を参照して、回転角検出装置の第１変形例について説明する。
第１変形例においても、検出用ロータの構成および磁気センサの数および配置は、前記第１の実施形態と同じである（図５参照）。第１変形例では、回転角演算部３４による回転角演算処理が、前記第１の実施形態と異なっている。
第１変形例においても、回転角演算部３４内の書き換え可能な不揮発性メモリには、第１の実施形態と同様に、図７Ａに示されるような振幅補正用テーブル（第１テーブル）および図７Ｂに示されるような振幅補正用テーブル（第２テーブル）が記憶されているとともに、ロータ２０の周辺温度毎の各出力信号Ｖ１，Ｖ２のピーク値の初期値（絶対値）が記憶されている。一方、第１変形例においては、第１の実施形態で用いられる磁極特定用テーブル（第３テーブルおよび第４テーブル）」は、不要である。
【００９１】
第１変形例では、回転角演算部３４は、ロータ２０の回転速度が所定速度以下の場合には、第１または第２の磁気センサ２１，２２の出力信号Ｖ１，Ｖ２からピーク値を検出し、検出したピーク値に基づいて、各磁気センサ２１，２２が感知している磁極を特定する。一方、ロータ２０の回転速度が所定速度より速い場合には、回転角演算部３４は、第１または第２の磁気センサ２１，２２の出力信号Ｖ１，Ｖ２からゼロクロスのタイミングを検出し、検出したゼロクロスのタイミングに基づいて、各磁気センサ２１，２２が感知している磁極を特定する。これは、ロータ２０の回転速度が速い場合には、出力信号Ｖ１，Ｖ２のピークを検出できないおそれがあるからである。
【００９２】
図１０は、第１変形例における回転角演算部３４による回転角演算処理の手順を示すフローチャートである。
回転角演算部３４が起動されると、回転角演算部３４は、図１０に示される回転角演算処理を、所定の演算周期毎に繰り返し行う。
回転角演算処理開始時において第１の磁気センサ２１が感知している磁極を基準磁極として、各磁極に相対的な番号を割り当てた場合の各磁極の番号を相対的極番号と定義する。第１の磁気センサ２１が感知している相対的極番号（以下、「第１の相対的極番号」という）を変数ｒ１で表し、第２の磁気センサ２２が感知している相対的極番号（以下、「第２の相対的極番号」という）を変数ｒ２で表すことにする。なお、各相対的極番号ｒ１，ｒ２は、１から１０の整数をとり、１より少ない相対的極番号は１０となり、１０より１大きい相対的極番号は１となるものとする。この実施形態では、回転角演算処理開始時において、第１の磁気センサ２１が感知している磁極（基準磁極）には、例えば、１の相対的極番号が割り当てられる。
【００９３】
また、第１の磁気センサ２１が感知している磁極の極番号（絶対的極番号）を変数ｑ１で表し、第２の磁気センサ２２が感知している磁極の極番号（絶対的極番号）を変数ｑ２で表すものとする。なお、各極番号ｑ１，ｑ２は、１から１０の整数をとり、１より少ない極番号は１０となり、１０より１大きい極番号は１となるものとする。
回転角演算部３４は、各磁気センサ２１，２２の出力信号（センサ値）Ｖ１，Ｖ２を読み込む（ステップＳ４１）。なお、回転角演算部３４のメモリ（たとえば、ＲＡＭ）には、所定回数前に読み込まれたセンサ値から最新に読み込まれたセンサ値までの、複数回数分のセンサ値が記憶されるようになっている。
【００９４】
また、この実施形態では、センサ値Ｖ１のピーク値（極大値および極小値）を検出するために、読み込まれたセンサ値Ｖ１のうち絶対値がより大きいセンサ値が、センサ値Ｖ１のピーク値候補としてメモリに保存される。同様に、センサ値Ｖ２のピーク値（極大値および極小値）を検出するために、読み込まれたセンサ値Ｖ２のうち絶対値がより大きいセンサ値が、センサ値Ｖ２のピーク値候補としてメモリに保存される。ただし、これらのピーク値候補は、対応する出力信号のゼロクロスが検出されたときには、後述するような所定のタイミングでゼロにリセットされる。
【００９５】
前記ステップＳ４１で各センサ値Ｖ１，Ｖ２が読み込まれると、回転角演算部３４は、今回の処理が回転角演算処理開始後の初回の処理であるか否かを判別する（ステップＳ４２）。今回の処理が回転角演算処理開始後の初回の処理である場合には（ステップＳ４２：ＹＥＳ）、回転角演算部３４は、相対的極番号の設定処理を行う（ステップＳ４３）。具体的には、回転角演算部３４は、第１の相対的極番号ｒ１を１に設定する。また、回転角演算部３４は、第１の磁気センサ２１が感知している磁極と第２磁気センサ２２が感知している磁極とが同じである場合には第２の相対的極番号ｒ２を１に設定し、異なる場合には第２の相対的極番号ｒ２を２に設定する。
【００９６】
より具体的に説明する。たとえば、ロータ１の磁極Ｍ１と磁極Ｍ２とからなる磁極対が第１の磁気センサ２１を通過する際の、第１および第２の磁気センサ２１，２２の出力信号Ｖ１，Ｖ２の信号波形を模式的に表すと、図１１（ａ）（ｂ）に示すようになる。
図１１（ａ）（ｂ）において、Ｓ１で示す領域は、第１の磁気センサ２１および第２の磁気センサ２２が共に磁極Ｍ１を感知している領域である。Ｓ２で示す領域は、第１の磁気センサ２１が磁極Ｍ１を感知し、第２の磁気センサ２２が磁極Ｍ２を感知している領域である。Ｓ３で示す領域は、第１の磁気センサ２１および第２の磁気センサ２２が共に磁極Ｍ２を感知している領域である。Ｓ４で示す領域は、第１の磁気センサ２１が磁極Ｍ２を感知し、第２の磁気センサ２２が磁極Ｍ３を感知している領域である。
【００９７】
つまり、領域Ｓ１およびＳ３では、第２の磁気センサ２２が感知している磁極の極番号は、第１の磁気センサ２１が感知している磁極の極番号と等しくなる。一方、領域Ｓ２およびＳ４では、第２の磁気センサ２２が感知している磁極の極番号は、第１の磁気センサ２１が感知している磁極の極番号より１だけ大きくなる。
領域Ｓ１においては、両センサ値Ｖ１，Ｖ２は、Ｖ１≧０かつＶ２＞０の第１条件を満たす。領域Ｓ２においては、両センサ値Ｖ１，Ｖ２は、Ｖ１＞０かつＶ２≦０の第２条件を満たす。領域Ｓ３においては、両センサ値Ｖ１，Ｖ２は、Ｖ１≦０かつＶ２＜０の第３条件を満たす。領域Ｓ４においては、両センサ値Ｖ１，Ｖ２は、Ｖ１＜０かつＶ２≧０の第４条件を満たす。
【００９８】
そこで、回転角演算部３４は、前記第１条件または前記第３条件を満たしている場合には、第１の相対的極番号ｒ１および第２の相対的極番号ｒ２を１に設定する。一方、前記第２条件または前記第４条件を満たしている場合には、回転角演算部３４は、第１の相対的極番号ｒ１を１に設定し、第２の相対的極番号ｒ２を２に設定する。
相対的極番号の設定処理が終了すると、ステップＳ４４に移行する。前記ステップＳ４２において、今回の処理が回転角演算処理開始後の初回の処理ではないと判別された場合には（ステップＳ４２：ＮＯ）、ステップＳ４４に移行する。
【００９９】
ステップＳ４４では、回転角演算部３４は、メモリに記憶されているセンサ値Ｖ１，Ｖ２に基づいて、センサ値Ｖ１，Ｖ２毎に、センサ値の符号が反転するゼロクロスを検出したか否かを判別する。ゼロクロスが検出されなかったときには（ステップＳ４４：ＮＯ）、回転角演算部３４は、回転角演算処理開始後において後述するステップＳ５５またはＳ６０の極番号特定処理によって各磁気センサ２１，２２が感知している磁極の極番号ｑ１，ｑ２が既に特定されているか否かを判別する（ステップＳ４５）。
【０１００】
各磁気センサが感知している磁極が特定されていない場合には（ステップＳ４５：ＮＯ）、回転角演算部３４は、第１の振幅補正処理を行なう（ステップＳ４６）。この処理は、前述した図８のステップＳ４の処理と同様なので、その説明を省略する。
前記ステップＳ４６の第１の振幅補正処理が行われると、回転角演算部３４は、ロータ２０の相対角θＲを算出する（ステップＳ４７）。この処理は、前述した図８のステップＳ５の処理と同様なので、その説明を省略する。回転角演算部３４は、算出された相対角θＲを、電気角θＥとしてＥＰＳモータ制御部３３に与える。そして、今演算周期での処理を終了する。
【０１０１】
前記ステップＳ４５において、各磁気センサ２１，２２が感知している磁極の極番号ｑ１，ｑ２が既に特定されていると判別された場合には（ステップＳ４５：ＹＥＳ）、回転角演算部３４は、ステップＳ６３に移行する。
前記ステップＳ４４において、いずれかのセンサ値Ｖ１，Ｖ２に対してゼロクロスが検出された場合には、回転角演算部３４は、ゼロクロスのタイミング（以下、「ゼロクロスタイミング」という）を演算してメモリに記憶する（ステップＳ４８）。この際、メモリには、当該ゼロクロスタイミングが、出力信号Ｖ１，Ｖ２のうちのいずれに対応するゼロクロスタイミングであるかが識別可能に記憶される。
【０１０２】
ゼロクロスタイミングは、センサ値の符号が反転したことを検出したタイミングであってもよい。また、ゼロクロスタイミングは、センサ値の符号が反転する前後の２つのセンサ値（サンプリング値）を線形補間することによって求めてもよい。たとえば、図１２に示すように、符号が反転する直前に検出されたセンサ値がｙ１で、符号が反転した直後に検出されたセンサ値がｙ２である場合には、センサ値ｙ１が検出された時点を基準とすると、ゼロクロスタイミングｔａは、次式(13)に基づいて演算される。
【０１０３】
ｔａ＝Ｔｓ×｛ｙ１／（ｙ１−ｙ２）｝…（13）
ただし、Ｔｓは、センサ値Ｖ１，Ｖ２のサンプリング間隔である。
たとえば、ｙ１＝０．２，ｙ２＝−０．１，Ｔｓ＝１００μsecである場合には、ｔａ＝０．０６６７msecとなる。
また、図１２に示すように、符号が反転する直前に検出されたセンサ値がｙ３で、符号が反転した直後に検出されたセンサ値がｙ４である場合には、前記センサ値ｙ１が検出された時点を基準とすると、ゼロクロスタイミングｔｂは、次式(14)に基づいて演算される。
【０１０４】
ｔｂ＝Ｔｓ×｛ｙ３／（ｙ３−ｙ４）｝＋ΔＴ…（14）
ただし、ΔＴは、センサ値ｙ１が検出されてからセンサ値ｙ３が検出されるまでの時間間隔である。
たとえば、ｙ３＝−０．２，ｙ４＝０．１，Ｔｓ＝１００μsec，ΔＴ＝４４msecである場合には、ｔｂ＝４４．０６６７msecとなる。
【０１０５】
図１０に戻り、前記ステップＳ４８において、ゼロクロスタイミングが演算されると、回転角演算部３４は、今回演算されたゼロクロスタイミングと、今回ゼロクロスが検出された出力信号に対して前回演算されたゼロクロスタイミングとの時間間隔（以下、「ゼロクロス間隔」という）を演算する（ステップＳ４９）。なお、ステップＳ４９において、前回のゼロクロスタイミングが存在しないために、ゼロクロス間隔が演算されなかった場合には、回転角演算部３４は、ステップＳ５１に移行する。
【０１０６】
前記ステップＳ４９でゼロクロス間隔が演算されると、回転角演算部３４は、演算されたゼロクロス間隔が所定値Ａ未満であるか否かを判別することにより、ロータ２０の回転速度が所定速度より速いか否かを判別する（ステップＳ５０）。回転角演算部３４は、ゼロクロス間隔が所定値Ａ未満である場合には、ロータ２０の回転速度が所定速度より速いと判別し、ゼロクロス間隔が所定値Ａ以上の場合にはロータ２０の回転速度が所定速度以下であると判別する。なお、ロータ２０の１回転分のゼロクロス間隔の総和が所定値未満であるか否かを判別することにより、ロータ２０の回転速度が所定速度より速いか否かを判別してもよい。このようにすると、各ゼロクロス間隔の誤差によるロータ２０の回転速度の検出誤差を低減できる。
【０１０７】
ゼロクロス間隔が所定値Ａ以上（ロータ２０の回転速度が所定速度以下）であると判別された場合には（ステップＳ５０：ＮＯ）、回転角演算部３４は、回転角演算処理開始後において後述するステップＳ５５またはＳ６０の極番号特定処理によって各磁気センサ２１，２２が感知している磁極の極番号ｑ１，ｑ２が既に特定されているか否かを判別する（ステップＳ５１）。各磁気センサ２１，２２が感知している磁極の極番号ｑ１，ｑ２が特定されていない場合には（ステップＳ５１：ＮＯ）、回転角演算部３４は、前記ステップＳ４４でゼロクロスが検出された出力信号に対してピーク値検出処理を行い、ピーク値（極大値または極小値）を検出したか否かを判定する（ステップＳ５２）。
【０１０８】
ピーク値検出処理について具体的に説明する。前記ステップＳ４４でゼロクロスが検出された出力信号に対応する磁気センサをピーク値検出対象の磁気センサということにする。回転角演算部３４は、まず、ピーク値検出対象の磁気センサが感知している磁極が変化したか否かを判別する。つまり、回転角演算部３４は、ピーク値検出対象の磁気センサが感知している磁極位置が、当該磁気センサの出力信号のゼロクロスが前回検出された時点と、今回検出された時点とで、異なっているか同じであるかを判定する。ロータ２０の回転方向が逆転した場合には、前記両時点での磁極位置が同じになる可能性がある。
【０１０９】
この判定は、たとえば、ピーク値検出対象の磁気センサの出力信号のゼロクロスが前回検出された時点でのロータ２０の回転方向と、当該出力信号のゼロクロスが今回検出された時点でのロータ２０の回転方向が同じ方向であるか否かに基づいて行うことができる。すなわち、回転角演算部３４は、前記両時点でのロータ２０の回転方向が同じ方向であれば、ピーク値検出対象の磁気センサが感知している磁極が変化したと判定する。一方、前記両時点でのロータ２０の回転方向が異なっていれば、回転角演算部３４は、ピーク値検出対象の磁気センサが感知している磁極が変化していないと判定する。
【０１１０】
ピーク値検出対象の磁気センサが感知している磁極が変化したと判定された場合には、回転角演算部３４は、ピーク値を検出したと判別するとともに、当該磁気センサに対応するピーク値候補をピーク値として特定する。一方、ピーク値検出対象の磁気センサが感知している磁極が変化していないと判定された場合には、回転角演算部３４は、ピーク値を検出しなかったと判定する。
【０１１１】
なお、ロータ２０の回転方向は、例えば、ゼロクロスが検出された出力信号の前回値および今回値と、他方の出力信号の今回値とに基づいて判定することができる。具体的には、ゼロクロスが検出された出力信号が第１の出力信号Ｖ１である場合には、「第１の出力信号Ｖ１の前回値が０より大きくかつその今回値が０以下であり、第２の出力信号Ｖ２が０より小さい」という条件、または「第１の出力信号Ｖ１の前回値が０未満でかつその今回値が０以上であり、第２の出力信号Ｖ２が０より大きい」という条件を満たしている場合には、回転方向は正方向（図５に矢印で示す方向）であると判定される。
【０１１２】
一方、「第１の出力信号Ｖ１の前回値が０以上でかつその今回値が０未満であり、第２の出力信号Ｖ２が０より大きい」という条件、または「第１の出力信号Ｖ１の前回値が０以下でかつその今回値が０より大きく、第２の出力信号Ｖ２が０より小さい」という条件を満たしている場合には、回転方向は逆方向であると判定される。
ゼロクロスが検出された出力信号が第２の出力信号Ｖ２である場合には、「第２の出力信号Ｖ２の前回値が０より大きくかつその今回値が０以下であり、第１の出力信号Ｖ１が０より大きい」という条件、または「第２の出力信号Ｖ２の前回値が０未満でかつその今回値が０以上であり、第１の出力信号Ｖ１が０より小さい」という条件を満たしている場合には、回転方向は正方向（図５に矢印で示す方向）であると判定される。一方、「第２の出力信号Ｖ２の前回値が０以上でかつその今回値が０未満であり、第１の出力信号Ｖ１が０より小さい」という条件、または「第２の出力信号Ｖ２の前回値が０以下でかつその今回値が０より大きく、第１の出力信号Ｖ１が０より大きい」という条件を満たしている場合には、回転方向は逆方向であると判定される。
【０１１３】
前記ステップＳ５２でピーク値が検出されなかったと判別された場合には、回転角演算部３４は、前記ステップＳ４４でゼロクロスが検出された出力信号に対応するピーク値候補を０にリセットした後、相対的極番号の更新処理を行なう（ステップＳ５３）。具体的には、回転角演算部３４は、前記ステップＳ４４でゼロクロスが検出された磁気センサに対して現在設定されている相対的極番号ｒ１またはｒ２を、ロータ２０の回転方向に応じて、１だけ大きい番号または１だけ小さい番号に変更する。
【０１１４】
ロータ２０の回転方向が正方向（図５に矢印で示す方向）である場合には、回転角演算部３４は、前記ステップＳ４４でゼロクロスが検出された磁気センサに対して現在設定されている相対的極番号ｒ１またはｒ２を、１だけ大きい番号に更新する。一方、ロータ２０の回転方向が逆方向である場合には、回転角演算部３４は、ゼロクロスが検出された磁気センサに対して現在設定されている相対的極番号ｒ１またはｒ２を、１だけ小さい番号に更新する。ただし、前述したように、”１”の相対的極番号に対して、１だけ小さい相対的極番号は、”１０”となる。また、”１０”の相対的極番号に対して、１だけ大きい相対的極番号は、”１”となる。ステップＳ５３の処理が終了すると、回転角演算部３４は、前述したステップＳ４６に移行する。
【０１１５】
前記ステップＳ５２において、ピーク値が検出されたと判別されたときには（ステップＳ５２：ＹＥＳ）、回転角演算部３４は、前記ステップＳ４４でゼロクロスが検出された出力信号に対応するピーク値候補を０にリセットした後、相対的極番号の更新処理を行なう（ステップＳ５４）。具体的には、回転角演算部３４は、前述したステップＳ５３の相対的極番号の更新処理と同様な方法で、前記ステップＳ４４でゼロクロスが検出された方の磁気センサに対して既に設定されている相対的極番号ｒ１またはｒ２を、ロータ２０の回転方向に基づいて更新する。
【０１１６】
前記ステップＳ５４の相対的極番号の更新処理が終了すると、回転角演算部３４は、ピーク値検出に基づく極番号特定処理を行なう（ステップＳ５５）。つまり、回転角演算部３４は、前記ステップＳ５２で検出されたピーク値等に基づいて、各磁気センサ２１，２２がそれぞれ感知している磁極の極番号ｑ１，ｑ２を特定するための処理を行なう。
具体的には、回転角演算部３４は、まず、前記ステップＳ５２のピーク値検出処理によって検出されたピーク値（極大値または極小値）と、当該ピーク値を出力した磁気センサに対応する振幅補正用テーブル（第１または第２テーブル）の内容とに基づいて、当該磁気センサが感知している磁極の極番号ｑ１またはｑ２を特定する。つまり、回転角演算部３４は、振幅補正用テーブルに記憶されている複数のピーク値のうち、ピーク値検出処理によって検出されたピーク値に最も近いピーク値に対応する極番号を、当該磁気センサが感知している磁極の極番号ｑ１またはｑ２として特定する。
【０１１７】
ただし、ピーク値検出処理によって検出されたピーク値に最も近いピーク値に対応する極番号が磁極Ｍ６または磁極Ｍ１０に対応する極番号である場合には、回転角演算部３４は、当該磁気センサが感知している磁極を特定しない。
前記磁気センサが感知している磁極の極番号ｑ１またはｑ２を特定できた場合には、回転角演算部３４は、当該磁気センサが感知している磁極の極番号ｑ１またはｑ２と、第１および第２の相対的極番号ｒ１，ｒ２とに基づいて、他方の磁気センサが感知している磁極を特定する。たとえば、第１の磁気センサ２１が感知している磁極の極番号ｑ１が特定された場合には、回転角演算部３４は、ｑ２＝(ｑ１−ｒ１)＋ｒ２に基づいて、第２の磁気センサ２２が感知している磁極の極番号ｑ２を特定する。一方、第２の磁気センサ２２が感知している磁極の極番号ｑ２が特定された場合には、回転角演算部３４は、ｑ１＝(ｑ２−ｒ２)＋ｒ１に基づいて、第１の磁気センサ２１が感知している磁極の極番号ｑ１を特定する。これにより、各磁気センサ２１，２２がそれぞれ感知している磁極の極番号ｑ１，ｑ２が特定される。
【０１１８】
ステップＳ５５の極番号特定処理によって各磁気センサ２１，２２が感知している磁極が特定された場合には（ステップＳ５６：ＹＥＳ）、ステップＳ６３に移行する。一方、ステップＳ５５の極番号特定処理によって各磁気センサ２１，２２が感知している磁極が特定されなかった場合には（ステップＳ５６：ＮＯ）、前述したステップＳ４６に移行する。
【０１１９】
前記ステップＳ５１において、各センサ２１，２２が感知している磁極の極番号ｑ１，ｑ２が既に特定されていると判別された場合には（ステップＳ５１：ＹＥＳ）、回転角演算部３４は、前記ステップＳ４４でゼロクロスが検出された出力信号に対応するピーク値候補を０にリセットした後、極番号更新処理を行なう（ステップＳ５７）。具体的には、回転角演算部３４は、前記ステップＳ４４でゼロクロスが検出された磁気センサに対して既に特定されている極番号ｑ１またはｑ２を、ロータ２０の回転方向に応じて、１だけ多い極番号または１だけ少ない極番号に変更する。
【０１２０】
ロータ２０の回転方向が正方向（図５に矢印で示す方向）である場合には、ゼロクロスが検出された磁気センサに対して既に特定されている極番号ｑ１またはｑ２を、１だけ多い極番号に更新し、ロータ２０の回転方向が逆方向である場合には、当該磁気センサに対して既に特定されている前記極番号ｑ１またはｑ２を、１だけ少ない極番号に更新する。ただし、”１”の極番号に対して、１だけ少ない極番号は、”１０”となる。また、”１０”の極番号に対して、１だけ多い極番号は、”１”となる。ステップＳ５７の処理が終了すると、ステップＳ６３に移行する。
【０１２１】
前記ステップＳ５０において、ゼロクロス間隔が所定値Ａ未満である（ロータ２０の回転速度が所定速度より速い）と判別された場合には（ステップＳ５０：ＹＥＳ）、回転角演算部３４は、前記ステップＳ４４でゼロクロスが検出された出力信号に対応するピーク値候補を０にリセットした後、ステップＳ５８に移行する。
ステップＳ５８では、回転角演算部３４は、回転角演算処理開始後において前述したステップＳ５５の極番号特定処理または後述するステップＳ６０の極番号特定処理によって各磁気センサが感知している磁極が既に特定されているか否かを判別する。各磁気センサが感知している磁極が特定されていない場合には（ステップＳ５８：ＮＯ）、回転角演算部３４は、相対的極番号の更新処理を行なう（ステップＳ５９）。具体的には、回転角演算部３４は、前述したステップＳ５３の相対的極番号の更新処理と同様な方法で、前記ステップＳ４４でゼロクロスが検出された方の磁気センサに対して既に設定されている相対的極番号ｒ１またはｒ２を、ロータ２０の回転方向に基づいて更新する。
【０１２２】
前記ステップＳ５９の相対的極番号の更新処理が終了すると、ゼロクロス検出に基づく極番号特定処理を行なう（ステップＳ６０）。つまり、回転角演算部３４は、前記ステップＳ４９で演算されたゼロクロス間隔等に基づいて、各磁気センサ２１，２２がそれぞれ感知している磁極を特定する。
具体的には、回転角演算部３４は、まず、次のようにして、今回ゼロクロスが検出された磁気センサが感知している磁極を特定する。
【０１２３】
前記ステップＳ４９において演算されたゼロクロス間隔をＴｘとする。また、今回ゼロクロスが検出された磁気センサの出力信号に基づいて演算されたロータ２０の最新の１回転分のゼロクロス間隔の総和をΣＴとする。回転角演算部３４は、次式（15）に基づいて、今回ゼロクロスが検出された磁気センサが直前まで感知していた磁極（直前感知磁極）の角度幅（機械角×磁極対数）に応じた値Ｄを演算する。
【０１２４】
Ｄ＝（Ｔｘ／ΣＴ）×１８００  …(15)
前記式(15)中の”１８００”は、各磁極Ｍ１〜Ｍ１０の角度幅（機械角×磁極対数）の総和である。つまり、前記式(15)中の”１８００”は、ロータ２０の１回転分の回転角度（電気角）である。
回転角演算部３４は、振幅補正用テーブル（図７Ａ，図７Ｂ参照）に記憶されている各磁極Ｍ１〜Ｍ１０の角度幅（機械角×磁極対数）のうち、前記式(15)によって演算された値Ｄに最も近い角度幅に対応する極番号を、直前感知磁極の極番号として特定する。そして、ロータ２０の回転方向が正方向である場合には、回転角演算部３４は、前記直前感知磁極の極番号より１だけ多い極番号を、当該磁気センサが感知している磁極の極番号として特定する。一方、ロータ２０の回転方向が逆方向である場合には、回転角演算部３４は、前記直前感知磁極の極番号より１だけ少ない極番号を、当該磁気センサが感知している磁極の極番号として特定する。ただし、ただし、”１”の極番号に対して、１だけ少ない極番号は、”１０”となる。また、”１０”の極番号に対して、１だけ多い極番号は、”１”となる。
【０１２５】
たとえば、前記ステップＳ４９において演算されたゼロクロス間隔が第１の磁気センサ２１に対するゼロクロス間隔であり、ロータ２０の回転方向が正方向であるとする。そして、第１の磁極センサ２１の出力信号Ｖ１が図１３に示されるような信号である場合には、ΣＴは、ゼロクロス間隔Ｔ１〜Ｔ１０の総和となる。また、Ｔｘは、ゼロクロス間隔Ｔ１〜Ｔ１０のうちのいずれかとなる。また、たとえば、ΣＴ＝０．０５sec，Ｔｘ＝０．００４４secである場合には、Ｄ＝１５８．６となる。図７Ａの振幅補正用テーブルから、Ｄに最も近い角度幅を有する磁極は、Ｍ３となる。したがって、磁極Ｍ３に対応する極番号”３”が直前感知磁極の極番号として特定される。ロータ２０の回転方向が正方向であるので、直前感知磁極の極番号より１だけ多い極番号”４”が第１の磁気センサ２１が感知している磁極の極番号として特定される。
【０１２６】
ただし、前記式(15)によって演算された値Ｄに最も近い角度幅に対応する極番号が磁極Ｍ６または磁極Ｍ１０に対応する極番号である場合には、回転角演算部３４は、磁気センサが感知している磁極を特定しない。また、回転角演算部３４は、ロータ２０の１回転分のゼロクロス間隔が演算されていない場合には、磁気センサが感知している磁極を特定しない。
【０１２７】
今回ゼロクロスが検出された磁気センサが感知している磁極の極番号ｑ１またはｑ２を特定できた場合には、回転角演算部３４は、当該磁気センサが感知している磁極の極番号ｑ１またはｑ２と、第１および第２の相対的極番号ｒ１，ｒ２とに基づいて、他方の磁気センサが感知している磁極を特定する。たとえば、第１の磁気センサ２１が感知している磁極の極番号ｑ１が特定された場合には、回転角演算部３４は、ｑ２＝(ｑ１−ｒ１)＋ｒ２に基づいて、第２の磁気センサ２２が感知している磁極の極番号ｑ２を特定する。一方、第２の磁気センサ２２が感知している磁極の極番号ｑ２が特定された場合には、回転角演算部３４は、ｑ１＝(ｑ２−ｒ２)＋ｒ１に基づいて、第１の磁気センサ２１が感知している磁極の極番号ｑ１を特定する。これにより、各磁気センサ２１，２２がそれぞれ感知している磁極の極番号ｑ１，ｑ２が特定される。
【０１２８】
ステップＳ６０の極番号特定処理によって各磁気センサ２１，２２が感知している磁極が特定された場合には（ステップＳ６１：ＹＥＳ）、ステップＳ６３に移行する。一方、ステップＳ６０の極番号特定処理によって各磁気センサ２１，２２が感知している磁極が特定されなかった場合には（ステップＳ６１：ＮＯ）、前述したステップＳ４６に移行する。
【０１２９】
前記ステップＳ５８において、各センサ２１，２２が感知している磁極の極番号が既に特定されていると判別された場合には（ステップＳ５８：ＹＥＳ）、回転角演算部３４は、極番号更新処理を行なう（ステップＳ６２）。具体的には、回転角演算部３４は、前述したステップＳ５７の極番号更新処理と同様な方法で、今回ゼロクロスが検出された磁気センサに対して既に特定されている極番号ｑ１またはｑ２を、ロータ２０の回転方向に基づいて更新する。ステップＳ６２の処理が終了すると、ステップＳ６３に移行する。
【０１３０】
ステップＳ６３では、回転角演算部３４は、前記ステップＳ４１で読み込んだセンサ値Ｖ１，Ｖ２に対して第２の振幅補正処理を行う。この処理は、前述した図８のステップＳ１０の処理と同様である。次に、回転角演算部３４は、ロータ２０の相対角θＲを算出する（ステップＳ６４）。この処理は、前述した図８のステップＳ１１の処理と同様である。
【０１３１】
次に、回転角演算部３４は、ロータ２０の相対角θＲと、磁気センサ２１が感知している磁極の極番号ｑ１と、振幅補正テーブルの内容とに基づいて、ロータ２０の絶対角（機械角）θＡを算出する（ステップＳ６５）。この処理は、前述した図８のステップＳ１２の処理と同様である。そして、回転角演算部３４は、ロータ２０の絶対角（機械角）θＡに基づいて、ＥＰＳモータ７のロータの電気角θＥを算出する（ステップＳ６６）。この処理は、前述した図８のステップＳ１３の処理と同様である。
【０１３２】
前記第１変形例においても、第１の実施形態と同様な効果が得られる。
次に、図１４〜図１７を参照して、回転角検出装置の第２変形例について説明する。
第２変形例では、検出用ロータの構成および回転角演算部３４による回転角演算処理が、が前記第１の実施形態と異なっている。
図１４は、第２変形例における検出用ロータ２０の構成を示す模式図である。
【０１３３】
第２変形例においては、ＥＰＳモータ７のロータには、４組の磁極対が設けられているものとする。ロータ２０は、ＥＰＳモータ７のロータに設けられている磁極対に相当する複数の磁極対を有する円筒状の磁石（多極磁石）２０ａを含んでいる。
磁石２０ａは、４組の磁極対（Ｍ１，Ｍ２）（Ｍ３，Ｍ４）（Ｍ５，Ｍ６）（Ｍ７，Ｍ８）を有している。つまり、磁石２０ａは、等角度間隔で配置された８個の磁極Ｍ１〜Ｍ８を有している。各磁極Ｍ１〜Ｍ８は、ロータ２０の回転中心軸を中心として、４５°（電気角では１８０°）の角度間隔で配置されている。各磁極Ｍ１〜Ｍ８の磁力の大きさは、一定ではない。
【０１３４】
ロータ２０の周囲には、２つの磁気センサ２１，２２が配置されている。これらの磁気センサ２１，２２は、ロータ２０の回転中心軸を中心として、所定角度２２．５°（電気角では９０°）の角度間隔をおいて配置されている。これら２つの磁気センサ２１，２２を、それぞれ第１の磁気センサ２１および第２の磁気センサ２２という場合がある。
図１４に矢印で示す方向をロータ２０の正方向の回転方向とする。そして、ロータ２０が正方向に回転されるとロータ２０の回転角が大きくなり、ロータ２０が逆方向に回転されると、ロータ２０の回転角が小さくなるものとする。各磁気センサ２１，２２からは、図１５に示すように、ロータ２０が１磁極対分に相当する角度９０°（電気角では３６０°）を回転する期間を一周期とする正弦波信号Ｖ１，Ｖ２が出力される。図１５における横軸のロータ角度[deg]は、機械角を表している。
【０１３５】
この実施形態では、Ｎ極の極性を有する各磁極Ｍ１，Ｍ３，Ｍ５，Ｍ７を極位置特定用磁極とすると、ロータ２０（磁石２０ａ）は、隣り合う極位置特定用磁極の組合せ（Ｍ１，Ｍ３），（Ｍ３，Ｍ５），（Ｍ５，Ｍ７），（Ｍ７，Ｍ１）毎に、隣り合う極位置特定用磁極に対する各正弦波信号Ｖ１，Ｖ２のピーク値（極値）の比が識別可能に異なるような磁極特性を有している。
【０１３６】
図１５は、ロータ２０の磁極Ｍ８と磁極Ｍ１との境界が第１の磁気センサ２１に対向している場合のロータ２０の回転角を０°にとった場合のロータ角度（機械角）に対する、各磁気センサ２１，２２の出力信号Ｖ１，Ｖ２を示している。また、図１５には、ロータ角度に対応して、第１の磁気センサ２１が感知している磁極Ｍ１〜Ｍ８が示されている。
所定の基準位置からのロータ２０の絶対的な回転角を、ロータ２０の機械角θＭということにする。ロータ２０の１回転分の角度範囲を、５つの磁極対に対応して４つの区間に分け、各区間の開始位置を０°とし終了位置を３６０°として表したロータ２０の回転角を、ロータ２０の電気角θＥということにする。
【０１３７】
ここでは、第１の磁気センサ２１からは、４つの磁極対に対応する区間毎に、Ｖ１＝Ａ１・sinθＥの出力信号が出力されるものとする。この場合、第２の磁気センサ２２からは、４つの磁極対に対応する区間毎に、Ｖ２＝Ａ２・sin（θＥ＋９０°）＝Ａ２・cosθＥの出力信号が出力される。したがって、各磁気センサ２１，２２からは、互いに所定の位相差９０°（電気角）を有する正弦波信号が出力される。Ａ１，Ａ２は、それぞれ振幅を表している。ただし、振幅Ａ１，Ａ２は、磁極の磁力の大きさによって変動する。各磁気センサ２１，２２の出力信号Ｖ１，Ｖ２を、それぞれ第１の出力信号Ｖ１および第２の出力信号Ｖ２という場合がある。
【０１３８】
回転角演算部３４は、各磁気センサ２１，２２の出力信号Ｖ１，Ｖ２のピーク値（極値：極大値および極小値）を検出する。回転角演算部３４は、検出されたピーク値に基づいて、任意の隣り合う極位置特定用磁極（この例では、Ｎ極の磁極）の第１出力信号Ｖ１のピーク値（この例では、極大値）の比または第２の出力信号Ｖ２のピーク値（この例では、極大値）の比を演算する。回転角演算部３４は、演算された極値比と、隣り合う極位置特定用磁極の組み合わせ毎に予め設定された極値比データに基づいて、各磁気センサ２１，２２が感知している磁極を特定する。回転角演算部３４は、特定した磁極に応じて、各出力信号Ｖ１，Ｖ２の振幅を補正する。回転角演算部３４は、振幅補正後の各出力信号Ｖ１’，Ｖ２’に基づいて、ロータ２０の電気角θＥを算出する。回転角演算部３４によって演算された電気角θＥは、ＥＰＳモータ制御部３３に与えられる。
【０１３９】
回転角演算部３４の不揮発性メモリには、磁気センサ２１，２２毎に、ピーク値テーブルが記憶されているとともに、隣り合う極位置特定用磁極の組み合わせ毎に予め設定された極値比データが記憶されている。また、回転角演算部３４内の不揮発性メモリには、第１の実施形態と同様に、ロータ２０の周辺温度毎の各出力信号Ｖ１，Ｖ２のピーク値の初期値（絶対値）が記憶されている。
【０１４０】
図１６は、ピーク値テーブルの内容を示す模式図である。
ピーク値テーブルには、各磁極Ｍ１〜Ｍ８の極番号１〜８毎に、その磁極に対応する第１の出力信号Ｖ１のピーク値（極大値または極小値）Ｐ１（１）〜Ｐ１（８）（図１５参照）と、その磁極に対応する第２の出力信号Ｖ２のピーク値（極大値または極小値）Ｐ２（１）〜Ｐ２（８）とが記憶されている。なお、各磁気センサ２１，２２としては、特性がほぼ等しいものが用いられているので、同じ磁極に対する各磁気センサ２１，２２の出力信号Ｖ１，Ｖ２のピーク値はほぼ同様な値となる。
【０１４１】
前記ピーク値テーブルへのピーク値の記憶は、たとえば、ＥＰＳモータ７の出荷前に行われる。前記振幅補正用ピーク値テーブルに記憶されるピーク値は、１周期分のデータから求めてもよいし、複数周期分のデータの平均値から求めてもよい。
極値比データは、この実施形態では、次の４種類のデータＤ１〜Ｄ４からなる。
(i)Ｄ１＝Ｐ１（１）／Ｐ１（３）
磁極Ｍ１に対するピーク値（極大値）Ｐ１（１）と磁極Ｍ３に対するピーク値（極大値）Ｐ１（３）との比であり、この実施形態では、０．６である。なお、Ｄ１をＤ１＝Ｐ２（１）／Ｐ２（３）によって求めてもよい。
(ii)Ｄ２＝Ｐ１（３）／Ｐ１（５）
磁極Ｍ３に対するピーク値（極大値）Ｐ１（３）と磁極Ｍ５に対するピーク値（極大値）Ｐ１（５）との比であり、この実施形態では、０．８３である。なお、Ｄ２をＤ２＝Ｐ２（３）／Ｐ２（５）によって求めてもよい。
(iii)Ｄ３＝Ｐ１（５）／Ｐ１（７）
磁極Ｍ５に対するピーク値（極大値）Ｐ１（５）と磁極Ｍ７に対するピーク値（極大値）Ｐ１（７）との比であり、この実施形態では、２．０である。なお、Ｄ３をＤ３＝Ｐ２（５）／Ｐ２（７）によって求めてもよい。
(Vi)Ｄ４＝Ｐ１（７）／Ｐ１（１）
磁極Ｍ７に対するピーク値（極大値）Ｐ１（７）と磁極Ｍ１に対するピーク値（極大値）Ｐ１（１）との比であり、この実施形態では、１．０である。なお、Ｄ４をＤ４＝Ｐ２（７）／Ｐ２（１）によって求めてもよい。
【０１４２】
なお、出力信号Ｖ１，Ｖ２毎に、極値比データを設定してもよい。具体的には、第１の出力信号Ｖ１に対しては、ＤＡ１＝Ｐ１（１）／Ｐ１（３），ＤＡ２＝Ｐ１（３）／Ｐ１（５），ＤＡ３＝Ｐ１（５）／Ｐ１（７）およびＤＡ４＝Ｐ１（７）／Ｐ１（１）の４つの極値比データを設定する。一方、第２の出力信号Ｖ２に対しては、ＤＢ１＝Ｐ２（１）／Ｐ２（３），ＤＢ２＝Ｐ２（３）／Ｐ２（５），ＤＢ３＝Ｐ２（５）／Ｐ２（７）およびＤＢ４＝Ｐ２（７）／Ｐ２（１）の４つの極値比データを設定する。
【０１４３】
図１７は、回転角演算部３４による回転角演算処理の手順を示すフローチャートである。
回転角演算部３４が起動されると、回転角演算部３４は、図１７に示される回転角演算処理を、所定の演算周期毎に繰り返し行う。
回転角演算処理開始時において第１の磁気センサ２１が感知している磁極を基準磁極として、各磁極に相対的な番号を割り当てた場合の各磁極の番号を相対的極番号と定義する。第１の磁気センサ２１が感知している磁極の相対的極番号（以下、「第１の相対的極番号」という）を変数ｒ１で表し、第２の磁気センサ２２が感知している磁極の相対的極番号（以下、「第２の相対的極番号」という）を変数ｒ２で表すことにする。なお、各相対的極番号ｒ１，ｒ２は、１〜８の整数をとり、１より１少ない相対的極番号は８となり、８より１大きい相対的極番号は１となるものとする。この実施形態では、回転角演算処理開始時において、第１の磁気センサ２１が感知している磁極（基準磁極）には、例えば、１の相対的極番号が割り当てられる。
【０１４４】
また、第１の磁気センサ２１が感知している磁極の極番号（絶対的極番号）をｑ１、第２の磁気センサ２２が感知している磁極の極番号（絶対的極番号）をｑ２で表すことにする。なお、各絶対的極番号ｑ１，ｑ２は、１〜８の整数をとり、１より１少ない極番号は８となり、８より１大きい極番号は１となるものとする。
回転角演算処理が開始されると、回転角演算部３４は、各磁気センサ２１，２２の出力信号（センサ値）Ｖ１，Ｖ２を読み込む（ステップＳ７１）。なお、回転角演算部３４のメモリ（たとえば、ＲＡＭ）には、出力信号Ｖ１，Ｖ２毎に、所定回数前に読み込まれたセンサ値から最新に読み込まれたセンサ値までの、複数回数分のセンサ値が記憶されるようになっている。
【０１４５】
また、この実施形態では、センサ値Ｖ１のピーク値（極大値および極小値）を検出するために、読み込まれたセンサ値Ｖ１のうち絶対値がより大きいセンサ値が、センサ値Ｖ１のピーク値候補としてメモリに保存される。同様に、センサ値Ｖ２のピーク値（極大値および極小値）を検出するために、読み込まれたセンサ値Ｖ２のうち絶対値がより大きいセンサ値が、センサ値Ｖ２のピーク値候補としてメモリに保存される。ただし、これらのピーク値候補は、対応する出力信号のゼロクロスが検出されたときには、後述するような所定のタイミングで零にリセットされる。
【０１４６】
前記ステップＳ７１で各センサ値Ｖ１，Ｖ２が読み込まれると、回転角演算部３４は、今回の処理が回転角演算処理開始後の初回の処理であるか否かを判別する（ステップＳ７２）。今回の処理が回転角演算処理開始後の初回の処理である場合には（ステップＳ７２：ＹＥＳ）、回転角演算部３４は、相対的極番号の設定処理を行う（ステップＳ７３）。
具体的には、回転角演算部３４は、第１の相対的極番号ｒ１を１に設定する。また、回転角演算部３４は、第１の磁気センサ２１が感知している磁極と第２磁気センサ２２が感知している磁極とが同じである場合には第２の相対的極番号ｒ２を１に設定し、異なる場合には第２の相対的極番号ｒ２を２に設定する。ステップＳ７３の処理は、前述した図１０のステップ４３の処理と同様なので、その詳細な説明を省略する。
【０１４７】
ステップＳ７３の処理が終了すると、回転角演算部３４は、ステップＳ７１で読み取られたセンサ値Ｖ１，Ｖ２に対して、第１の振幅補正処理を行なう（ステップＳ７４）。この処理は、前述した図８のステップＳ４の処理と同様なので、その説明を省略する。前記ステップＳ７４の第１の振幅補正処理が行われると、回転角演算部３４は、前記ステップＳ７４で振幅補正が行われた後の出力信号Ｖ１’，Ｖ２’に基づいて、電気角θＥを演算する。具体的には、次式(16)に基づいて、ロータ２０の回転角（電気角）θＥを演算する（ステップＳ７５）。
【０１４８】
θＥ＝tan−１（Ｖ１’／Ｖ２’）  …(16)
前記ステップＳ７５で電気角θＥが演算されると、回転角演算部３４は、当該電気角θＥをＥＰＳモータ制御部３３に与える。そして、今演算周期での処理を終了する。
前記ステップＳ７２において、今回の処理が回転角演算処理開始後の初回の処理ではないと判別された場合には（ステップＳ７２：ＮＯ）、ステップＳ７６に移行する。
【０１４９】
ステップＳ７６では、回転角演算部３４は、メモリに記憶されているセンサ値Ｖ１，Ｖ２に基づいて、センサ値Ｖ１，Ｖ２毎に、センサ値の符号が反転するゼロクロスを検出したか否かを判別する。ゼロクロスが検出されなかったときには（ステップＳ７６：ＮＯ）、回転角演算部３４は、後述するステップＳ８４の極番号特定処理によって、各磁極センサ２１，２２が検知している磁極が既に特定されているか否かを判別する（ステップＳ７７）。
【０１５０】
各磁極センサ２１，２２が検知している磁極が特定されていない場合には（ステップＳ７７：ＮＯ）、回転角演算部３４は、前述したステップＳ７４に移行する。一方、各磁極センサ２１，２２が検知している磁極が既に特定されている場合には（ステップＳ７７：ＹＥＳ）、回転角演算部３４は、ステップＳ８６に移行する。
前記ステップＳ７６において、いずれかのセンサ値Ｖ１，Ｖ２に対してゼロクロスが検出された場合には（ステップＳ７６：ＹＥＳ）、回転角演算部３４は、後述するステップＳ８４の極番号特定処理によって、各磁極センサ２１，２２が検知している磁極が既に特定されているか否かを判別する（ステップＳ７８）。
【０１５１】
各磁極センサ２１，２２が検知している磁極が特定されていない場合には（ステップＳ７８：ＮＯ）、回転角演算部３４は、相対的極番号の更新処理を行なう（ステップＳ７９）。具体的には、回転角演算部３４は、前記ステップＳ７６でゼロクロスが検出された磁気センサに対して現在設定されている相対的極番号ｒ１またはｒ２を、ロータ２０の回転方向に応じて、１だけ大きい番号または１だけ小さい番号に変更する。ステップＳ７９の処理は、前述した図１０のステップＳ５３の処理と同様なので、その詳細な説明を省略する。
【０１５２】
前記ステップＳ７９の相対的極番号の更新処理が終了すると、回転角演算部３４は、ピーク値検出処理を行なう（ステップＳ８０）。ピーク値検出処理について具体的に説明する。前記ステップＳ７６でゼロクロスが検出された出力信号に対応する磁気センサをピーク値検出対象の磁気センサということにする。回転角演算部３４は、まず、ピーク値検出対象の磁気センサが感知している磁極が変化したか否かを判別する。つまり、回転角演算部３４は、ピーク値検出対象の磁気センサが感知している磁極位置が、当該磁気センサの出力信号のゼロクロスが前回検出された時点と、今回検出された時点とで、異なっているか同じであるかを判定する。ロータ２０の回転方向が逆転した場合には、前記両時点での磁極位置が同じになる可能性がある。
【０１５３】
この判定は、たとえば、ピーク値検出対象の磁気センサの出力信号のゼロクロスが前回検出された時点でのロータ２０の回転方向と、当該出力信号のゼロクロスが今回検出された時点でのロータ２０の回転方向が同じ方向であるか否かに基づいて行うことができる。すなわち、回転角演算部３４は、前記両時点でのロータ２０の回転方向が同じ方向であれば、ピーク値検出対象の磁気センサが感知している磁極が変化したと判定する。一方、前記両時点でのロータ２０の回転方向が異なっていれば、回転角演算部３４は、ピーク値検出対象の磁気センサが感知している磁極が変化していないと判定する。
【０１５４】
ピーク値検出対象の磁気センサが感知している磁極が変化したと判定された場合には、回転角演算部３４は、ピーク値を検出したと判別するとともに、当該磁気センサに対応するピーク値候補をピーク値として特定する。一方、ピーク値検出対象の磁気センサが感知している磁極が変化していないと判定された場合には、回転角演算部３４は、ピーク値を検出しなかったと判定する。
【０１５５】
なお、ピーク値には、０より大きな極大値と、０より小さな極小値とがある。この実施形態では、極位置特定用磁極がＮ極の磁極であるので、ピーク値のうち、極大値に基づいて、第１の磁気センサ２１が感知している磁極対が特定される。以下において、ピーク値検出処理において検出された第１の出力信号Ｖ１および第２の出力信号Ｖ２の極大値を、それぞれＰ１およびＰ２で表す場合がある。
【０１５６】
ピーク値検出処理において極大値が検出されなかった場合には（ステップＳ８１：ＮＯ）、回転角演算部３４は、前記ステップＳ７６でゼロクロスが検出された出力信号に対応するピーク値候補を０にリセットした後、前述したステップＳ７４に移行する。なお、ピーク値検出処理においてピーク値が検出された場合であっても、検出されたピーク値が極小値である場合には、ピーク値検出処理において極大値が検出されなかったと判別される。
【０１５７】
ピーク値検出処理において極大値が検出されたときには（ステップＳ８１：ＹＥＳ）、当該極大値を、前記ステップＳ７６でゼロクロスが検出された出力信号に対する極大値Ｐ１またはＰ２としてメモリに記憶する（ステップＳ８２）。なお、メモリには、極大値Ｐ１およびＰ２毎に、前回検出された極大値と今回検出された極大値との２回分の極大値が記憶されるようになっている。この後、回転角演算部３４は、前記ステップＳ７６でゼロクロスが検出された出力信号に対応するピーク値候補を０にリセットした後、ステップＳ８３に移行する。
【０１５８】
ステップＳ８３では、前記ステップＳ７６でゼロクロスが検出された出力信号の極大値が２回以上検出されているか否かを判別する。前記ステップＳ７６でゼロクロスが検出された出力信号の極大値が２回以上検出されていない場合には（ステップＳ８３：ＮＯ）、回転角演算部３４は、前述したステップＳ７４に移行する。一方、前記ステップＳ７６でゼロクロスが検出された出力信号の極大値が２回以上検出されている場合には（ステップＳ８３：ＹＥＳ）、回転角演算部３４は、極番号特定処理を行なう（ステップＳ８４）。
【０１５９】
極番号特定処理の考え方について説明する。前述したように、隣り合う極位置特定用磁極の組み合わせ（Ｍ１，Ｍ３），（Ｍ３，Ｍ５），（Ｍ５，Ｍ７），（Ｍ７，Ｍ１）毎に、隣り合う極位置特定用磁極の出力信号Ｖ１のピーク値（この例では極大値）の比は異なる。同様に、隣り合う極位置特定用磁極の組み合わせ（Ｍ１，Ｍ３），（Ｍ３，Ｍ５），（Ｍ５，Ｍ７），（Ｍ７，Ｍ１）毎に、隣り合う極位置特定用磁極の出力信号Ｖ２のピーク値（この例では極大値）の比は異なる。
【０１６０】
したがって、任意の隣り合う極位置特定用磁極それぞれに対する第１の出力信号Ｖ１の極大値が検出された時点（ゼロクロス検出時点）において、それらの極大値の比と、極値比データＤ１〜Ｄ４と、ロータ２０の回転方向とに基づいて、第１の磁気センサ２１が現在感知している磁極の極番号ｑ１を特定することができる。なお、極値比データが出力信号Ｖ１，Ｖ２毎に設定されている場合には、極値比データＤ１〜Ｄ４の代わりに第１の出力信号Ｖ１に対して設定されている極値比データＤＡ１〜ＤＡ４が用いられる。
【０１６１】
たとえば、図１５を参照して、ロータ２０が正方向（図１４に矢印で示す方向）に回転している場合に、図１５にＺ１で示すゼロクロスが検出されたタイミングにおいて、磁極Ｍ３に対する第１の出力信号Ｖ１の極大値Ｐ１ｎ−１が検出され、その後に、図１５にＺ２で示すゼロクロスが検出されたタイミングにおいて、磁極Ｍ５に対する第１の出力信号Ｖ１の極大値Ｐ１ｎが検出されたとする。この場合には、両極大値の比Ｐ１ｎ−１／Ｐ１ｎは、極値比データＤ１〜Ｄ４のうちのＤ２（＝Ｐ１（３）／Ｐ１（５））とほぼ等しくなるので、図１５にＺ２で示すゼロクロスが検出されたタイミングにおいて、第１の磁気センサ２１は、磁極Ｍ６を感知していると判別することができる。
【０１６２】
また、図１５を参照して、ロータ２０が逆方向に回転している場合に、図１５にＺ３で示すゼロクロスが検出されたタイミングにおいて、磁極Ｍ５に対する第１の出力信号Ｖ１の極大値Ｐ１ｎ−１が検出され、その後に、図１５にＺ４で示すゼロクロスが検出されたタイミングにおいて、磁極Ｍ３に対する第１の出力信号Ｖ１の極大値Ｐ１ｎが検出されたとする。この場合には、両極大値の比Ｐ１ｎ／Ｐ１ｎ−１は、極値比データＤ１〜Ｄ４のうちのＤ２（＝Ｐ１（３）／Ｐ１（５））とほぼ等しくなるので、図１５にＺ４で示すゼロクロスが検出されたタイミングにおいて、第１の磁気センサ２１は、磁極Ｍ２を感知していると判別することができる。このようにして、現在感知している磁極の極番号ｑ１が特定できれば、相対的極番号ｒ１，ｒ２に基づいて第２の磁気センサ２２が現在感知している磁極の極番号ｑ２を特定することができる。
【０１６３】
同様に、任意の隣り合う極位置特定用磁極それぞれに対する第２の出力信号Ｖ２の極大値が検出された時点（ゼロクロス検出時点）において、それらの極大値の比と、極値比データＤ１〜Ｄ４と、ロータ２０の回転方向とに基づいて、第２の磁気センサ２２が現在感知している磁極の極番号ｑ２を特定することができる。なお、極値比データが出力信号Ｖ１，Ｖ２毎に設定されている場合には、極値比データＤ１〜Ｄ４の代わりに第２の出力信号Ｖ２に対して設定されている極値比データＤＢ１〜ＤＢ４が用いられる。第２の磁気センサ２２が現在感知している磁極の極番号ｑ２が特定できれば、相対的極番号ｒ１，ｒ２に基づいて第１の磁気センサ２３が現在感知している磁極の極番号ｑ１を特定することができる。
【０１６４】
以下、より具体的に説明する。まず、前記ステップＳ７６でゼロクロスが検出された出力信号が第１の出力信号Ｖ１である場合に行われる極番号特定処理について説明する。この場合には、回転角演算部３４は、前回検出された第１の出力信号Ｖ１の極大値Ｐ１ｎ−１と今回検出された第１の出力信号Ｖ１の極大値Ｐ１ｎとの比と、極値比データＤ１〜Ｄ４と、ロータ２０の回転方向とに基づいて、第１の磁気センサ２１が感知している磁極の極番号（絶対的極番号）ｑ１を特定する。極値比データＤ１〜Ｄ４を、ｉを極値比データ番号として、Ｄｉ（ｉ=１，２，３，４）で表す場合がある。
【０１６５】
回転角演算部３４は、ロータ２０の回転方向が正方向（図１４に矢印で示す方向）である場合には、Ｐ１ｎ−１／Ｐ１ｎを極値比Ｘとして演算し、ロータ２０の回転方向が逆方向である場合には、Ｐ１ｎ／Ｐ１ｎ−１を極値比Ｘとして演算する。次に、回転角演算部３４は、演算された極値比Ｘと極値比データＤ１〜Ｄ４とに基づいて、極値比Ｘに最も近い極値比データＤｉの極値比データ番号ｉを特定する。そして、回転角演算部３４は、特定された極値比データ番号ｉと、ロータ２０の回転方向と、表２の内容とに基づいて、第１の磁気センサ２１が現在感知している磁極の極番号ｑ１を特定する。
【０１６６】
表２は、極値比Ｘに最も近い極値比データＤｉの極値比データ番号ｉとロータ２０の回転方向との組合せと、第１の磁気センサ２１が現在感知している磁極の極番号ｑ１との関係を示している。
【０１６７】
【表２】
2013091350.tif 000004
【０１６８】
具体的には、回転角演算部３４は、ロータ２０の回転方向が正方向である場合には、ｑ１＝２・ｉ＋２に基づいて、第１の磁気センサ２１が現在感知している磁極の極番号ｑ１を演算する。ただし、（２・ｉ＋２）の値が８を超える場合には、回転角演算部３４は、ｑ１＝２・ｉ＋２−８に基づいてｑ１を演算する。一方、ロータ２０の回転方向が逆方向である場合には、回転角演算部３４は、ｑ１＝２・ｉ−２に基づいて、第１の磁気センサ２１が現在感知している磁極の極番号ｑ１を演算する。ただし、（２・ｉ−２）の値が０以下となる場合には、回転角演算部３４は、ｑ１＝２・ｉ−２＋８に基づいてｑ１を演算する。
【０１６９】
この後、回転角演算部３４は、第１の磁気センサ２１が感知している磁極の極番号ｑ１と、第１および第２の相対的極番号ｒ１，ｒ２とに基づいて、第２の磁気センサ２２が感知している磁極の極番号ｑ２を特定する。具体的には、回転角演算部３４は、ｑ２＝(ｑ１−ｒ１)＋ｒ２に基づいて、第２の磁気センサ２２が感知している磁極の極番号ｑ２を特定する。
【０１７０】
次に、前記ステップＳ７６でゼロクロスが検出された出力信号が第２の出力信号Ｖ２である場合に行われる極番号特定処理について説明する。この場合には、回転角演算部３４は、前回検出された第２の出力信号Ｖ２の極大値Ｐ２ｎ−１と今回検出された第２の出力信号Ｖ２の極大値Ｐ２ｎとの比と、極値比データＤ１〜Ｄ４と、ロータ２０の回転方向とに基づいて、第２の磁気センサ２２が感知している磁極の極番号（絶対的極番号）ｑ２を特定する。
【０１７１】
回転角演算部３４は、ロータ２０の回転方向が正方向（図１４に矢印で示す方向）である場合には、Ｐ２ｎ−１／Ｐ２ｎを極値比Ｙとして演算し、ロータ２０の回転方向が逆方向である場合には、Ｐ２ｎ／Ｐ２ｎ−１を極値比Ｙとして演算する。次に、回転角演算部３４は、演算された極値比Ｙと極値比データＤ１〜Ｄ４とに基づいて、極値比Ｙに最も近い極値比データＤｉの極値比データ番号ｉを特定する。そして、回転角演算部３４は、特定された極値比データ番号ｉと、ロータ２０の回転方向と、表３の内容とに基づいて、第２の磁気センサ２２が現在感知している磁極の極番号ｑ２を特定する。
【０１７２】
表３は、極値比Ｙに最も近い極値比データＤｉの極値比データ番号ｉとロータ２０の回転方向との組合せと、第２の磁気センサ２２が現在感知している磁極の極番号ｑ２との関係を示している。
【０１７３】
【表３】
2013091350.tif 000005
【０１７４】
具体的には、回転角演算部３４は、ロータ２０の回転方向が正方向である場合には、ｑ２＝２・ｉ＋２に基づいて、第２の磁気センサ２２が現在感知している磁極の極番号ｑ２を演算する。ただし、（２・ｉ＋２）の値が８を超える場合には、回転角演算部３４は、ｑ２＝２・ｉ＋２−８に基づいてｑ２を演算する。一方、ロータ２０の回転方向が逆方向である場合には、回転角演算部３４は、ｑ２＝２・ｉ−２に基づいて、第２の磁気センサ２２が現在感知している磁極の極番号ｑ２を演算する。ただし、（２・ｉ−２）の値が０以下となる場合には、回転角演算部３４は、ｑ２＝２・ｉ−２＋８に基づいてｑ２を演算する。
【０１７５】
この後、回転角演算部３４は、第２の磁気センサ２２が感知している磁極の極番号ｑ２と、第１および第２の相対的極番号ｒ１，ｒ２とに基づいて、第１の磁気センサ２１が感知している磁極の極番号ｑ１を特定する。具体的には、回転角演算部３４は、ｑ１＝(ｑ２−ｒ２)＋ｒ１に基づいて、第１の磁気センサ２１が感知している磁極の極番号ｑ１を特定する。ステップＳ８４の極番号特定処理が終了すると、回転角演算部３４は、ステップＳ８６に移行する。
【０１７６】
前記ステップＳ７８において、各磁気センサ２１，２２が感知している磁極が既に特定されていると判別された場合には（ステップＳ７８：ＹＥＳ）、回転角演算部３４は、極番号の更新処理を行なう（ステップＳ８５）。具体的には、回転角演算部３４は、前記ステップＳ７６でゼロクロスが検出された磁気センサに対して既に特定されている極番号ｑ１またはｑ２を、ロータ２０の回転方向に応じて、１だけ大きい極番号または１だけ小さい極番号に変更する。
【０１７７】
ロータ２０の回転方向が正方向である場合には、回転角演算部３４は、ゼロクロスが検出された磁気センサに対して既に特定されている前記極番号ｑ１またはｑ２を、１だけ大きい極番号に更新する。一方、ロータ２０の回転方向が逆方向である場合には、回転角演算部３４は、ゼロクロスが検出された磁気センサに対して既に特定されている前記極番号ｑ１またはｑ２を、１だけ小さい極番号に更新する。ただし、”１”の極番号に対して、１だけ小さい極番号は、”８”となる。また、”８”の極番号に対して、１だけ大きい極番号は、”１”となる。回転角演算部３４は、ステップＳ８５の極番号の更新処理が終了すると、ステップＳ８６に移行する。
【０１７８】
ステップＳ８６では、回転角演算部３４は、第２の振幅補正処理を行う。つまり、回転角演算部３４は、各磁気センサ２１，２２が感知している磁極のピーク値を用いて、各磁気センサ２１，２２の出力信号Ｖ１，Ｖ２の振幅を補正する。
具体的には、回転角演算部３４は、第１の磁気センサ２１が感知している磁極の極番号ｑ１に対応する第１の出力信号Ｖ１のピーク値と、第２の磁気センサ２２が感知している磁極の極番号ｑ２に対応する第２の出力信号Ｖ２のピーク値とを、ピーク値テーブル（図１６参照）から取得する。ピーク値テーブルから取得された第１および第２の出力信号Ｖ１，Ｖ２のピーク値を、それぞれＰ１ｘ，Ｐ２ｘで表すことにする。そして、取得した各ピーク値（振幅補正値）Ｐ１ｘ，Ｐ２ｘと予め設定されている基準振幅φとに基づいて、各出力信号Ｖ１，Ｖ２の振幅を補正する。
【０１７９】
具体的には、第１および第２の出力信号Ｖ１，Ｖ２の振幅補正後の信号をそれぞれＶ１’，Ｖ２’とすると、補正後の第１および第２の出力信号Ｖ１’，Ｖ２’は、それぞれ次式（17）(18)に基づいて演算される。
Ｖ１’＝（Ｖ１／Ｐ１ｘ）×φ    …(17)
Ｖ２’＝（Ｖ２／Ｐ２ｘ）×φ    …(18)
振幅補正処理が終了すると、回転角演算部３４は、振幅補正後の各出力信号Ｖ１’，Ｖ２’に基づいて、電気角θＥを演算する（ステップＳ８７）。具体的には、次式(19)に基づいて、ロータ２０の回転角（電気角）θＥを演算する。
【０１８０】
θＥ＝tan−１（Ｖ１’／Ｖ２’）  …(19)
回転角演算部３４は、前記ステップＳ８７で演算された電気角θＥをＥＰＳモータ制御部３３に与える。そして、今演算周期での処理を終了する。
前記第２変形例によれば、いずれかの組の隣り合う極位置特定用磁極それぞれに対する第１の出力信号Ｖ１の極大値Ｐ１ｎ−１，Ｐ１ｎまたは第２の出力信号Ｖ２の極大値Ｐ２ｎ−１，Ｐ２ｎが最初に検出された時点で、各磁気センサ２１，２２が感知している磁極を特定することが可能となる。このため、イグニッションキーがオンされてからステアリングホイール１のロックが開錠されるまでの間において、ＥＰＳモータ７が強制駆動モードで回転されている間に、各磁気センサ２１，２２が感知している磁極を特定することが可能となる。したがって、ステアリングホイール１のロックが開錠された直後から、精度の高いロータ回転角を演算することができる。これにより、ステアリングホイール１の操作が可能となった直後から、ＥＰＳモータ７を適切に制御することができるようになる。
【０１８１】
また、隣り合う極位置特定用磁極それぞれに対する第１の出力信号Ｖ１の極値Ｐ１ｎ−１，Ｐ１ｎの比または第２の出力信号Ｖ２の極大値Ｐ２ｎ−１，Ｐ２ｎの比に基づいて、各磁気センサ２１，２２が感知している磁極を特定しているので、周辺温度の変化によって各出力信号Ｖ１，Ｖ２が変動した場合でも、各磁気センサ２１，２２が感知している磁極を正確に特定することができる。
【０１８２】
前記第２変形例では、Ｎ極の極性を有する各磁極Ｍ１，Ｍ３，Ｍ５，Ｍ７が極位置特定用磁極とされているが、Ｓ極の極性を有する各磁極Ｍ２，Ｍ４，Ｍ６，Ｍ８を極位置特定用磁極としてもよい。
また、前記第２変形例では、第１の出力信号Ｖ１と第２の出力信号Ｖ２との位相差は電気角で９０°であるが、両信号Ｖ１，Ｖ２間の位相差は、任意の角度であってもよい。たとえば、第１の出力信号Ｖ１と第２の出力信号Ｖ２との位相差をψとし、第１の出力信号Ｖ１をＶ１＝Ａ１・sinθＥとし、第２の出力信号Ｖ２をＶ２＝Ａ２・sin（θＥ＋ψ）とすると、振幅補正後の第１の出力信号Ｖ１’はＶ１’＝φ・sinθＥで表され、振幅補正後の第２の出力信号Ｖ２’はＶ２’＝φ・sin（θＥ＋ψ）で表される。この場合には、回転角演算部３４は、たとえば、振幅補正後の第１および第２の出力信号Ｖ１’，Ｖ２’とから、振幅補正後の第１の出力信号Ｖ１’に対する位相差が９０°となる信号Ｖ１２’（＝φ・sin（θＥ＋９０°）＝φ・cosθＥ）を生成する。具体的には、回転角演算部３４は、Ｖ１２’＝（Ｖ２’−Ｖ１’・cosψ）／sinψに基づいて、信号Ｖ１２’を生成する。そして、回転角演算部３４は、θＥ＝tan−１（Ｖ１’／Ｖ１２’）に基づいてロータの電気角θＥを演算する。
【０１８３】
次に、図１８〜図２３を参照して、回転角検出装置の第３変形例について説明する。
第３変形例では、検出用ロータの構成および回転角演算部３４による回転角演算処理が、が前記第１の実施形態と異なっている。
図１８は、第３変形例における検出用ロータ２０の構成を示す模式図である。
第３変形例においては、ＥＰＳモータ７のロータには、８組の磁極対が設けられているものとする。ロータ２０は、ＥＰＳモータ７のロータに設けられている磁極対に相当する複数の磁極対を有する円筒状の磁石（多極磁石）２０ａを含んでいる。
【０１８４】
磁石２０ａは、８つの磁極対Ｍ１〜Ｍ８を有している。つまり、磁石２０ａは、等角度間隔で配置された１６個の磁極ｍ１〜ｍ１６を有している。各磁極ｍ１〜ｍ１６は、ロータ１の回転中心軸を中心として、２２．５°（電気角では１８０°）の角度間隔で配置されている。
この実施形態では、磁極対における磁力の大きさの種類には、磁力が大きい第１の磁力と第１の磁力より磁力が小さい第２の磁力との２種類がある。この実施形態では、８個の磁極対Ｍ１〜Ｍ８のうち、第１、第２、第３および第５のＭ１，Ｍ２，Ｍ３，Ｍ５の磁力が第２の磁力（弱い磁力）に設定され、第４、第６、第７および第８の磁極対Ｍ４，Ｍ６，Ｍ７，Ｍ８の磁力が第１の磁力（強い磁力）に設定されている。
【０１８５】
ロータ２０の周囲には、３つの磁気センサ２１，２２，２３が配置されている。これら３つの磁気センサ２１，２２，２３を、それぞれ第１の磁気センサ２１、第２の磁気センサ２２および第３の磁気センサ２３という場合がある。図１８おいて、第２の磁気センサ２２は、第１の磁気センサ２１に対して、ロータ２０の回転中心軸を中心として、時計方向に７５°（電気角では６００°）だけ離れた位置に配置されている。第３の磁気センサ２３は、第１の磁気センサ２１に対して、ロータ２０の回転中心軸を中心として、時計方向に１０５°（電気角では８４０°）だけ離れた位置に配置されている。
【０１８６】
言い換えると、第１の磁気センサ２１が第１の磁極対Ｍ１における電気角で０°の位置に対向しているときには、第２の磁気センサ２２が第２の磁極対Ｍ２における電気角で２４０°の位置に対向し、第３の磁気センサ２３が第３の磁極対Ｍ３における電気角で１２０°の位置に対向するように、３つの磁気センサ２１，２２，２３が配置されている。
図１８に矢印で示す方向をロータ２０の正方向の回転方向とする。そして、ロータ２０が正方向に回転されるとロータ２０の回転角が大きくなり、ロータ２０が逆方向に回転されると、ロータ２０の回転角が小さくなるものとする。各磁気センサ２１，２２，２３からは、図１９に示すように、ロータ２０が１磁極対分に相当する角度（４５°（電気角では３６０°））を回転する期間を一周期とする正弦波信号Ｖ１，Ｖ２，Ｖ３が出力される。
【０１８７】
図１９は、ロータ２０における磁極対Ｍ８と磁極対Ｍ１との境界が第１の磁気センサ２１に対向している場合のロータ２０の回転角を０°にとった場合のロータ角度（機械角）に対する、各磁気センサ２１，２２，２３の出力信号Ｖ１，Ｖ２，Ｖ３を示している。また、図１９には、ロータ角度に対応して、第１の磁気センサ２１が感知している磁極対Ｍ１〜Ｍ８および磁極ｍ１〜ｍ１６が示されているとともに、各磁極対Ｍ１〜Ｍ８の磁力の大きさが示されている。
【０１８８】
ロータ２０の１回転分の角度範囲を、８つの磁極対Ｍ１〜Ｍ８に対応して８つの区間に分け、各区間の開始位置を０°とし終了位置を３６０°として表したロータ２０の角度を、ロータ２０の電気角θＥということにする。
ここでは、第１の磁気センサ２１からは、８つの磁極対Ｍ１〜Ｍ８に対応する区間毎に、Ｖ１＝Ａ１・sinθＥの出力信号が出力されるものとする。この場合、第２の磁気センサ２２からは、８つの磁極対Ｍ１〜Ｍ８に対応する区間毎に、Ｖ２＝Ａ２・sin（θＥ＋６００°）＝Ａ２・sin（θＥ＋２４０°）の出力信号が出力される。また、第３の磁気センサ２３からは、８つの磁極対Ｍ１〜Ｍ８に対応する区間毎に、Ｖ３＝Ａ３・sin（θＥ＋８４０°）＝Ａ３・sin（θＥ＋１２０°）の出力信号が出力される。Ａ１，Ａ２，Ａ３は、それぞれ振幅を表している。ただし、振幅Ａ１，Ａ２，Ａ３は、各磁極対Ｍ１〜Ｍ８の磁力の大きさに応じて変化する。
【０１８９】
したがって、各磁気センサ２１，２２，２３からは、互いに所定の位相差１２０°（電気角）を有する正弦波信号が出力される。各磁気センサ２１，２２，２３の出力信号Ｖ１，Ｖ２，Ｖ３を、それぞれ第１の出力信号Ｖ１，第２の出力信号Ｖ２および第３の出力信号Ｖ３という場合がある。
図２では、第３の磁気センサ２３は破線で表されている。図２に示されるように、各磁気センサ２１，２２，２３の出力信号Ｖ１，Ｖ２，Ｖ３は、回転角演算部３４に入力される。回転角演算部３４は、各磁気センサ２１，２２，２３の出力信号Ｖ１，Ｖ２，Ｖ３に基づいて、各磁気センサ２１，２２，２３が感知している磁極を特定する。各磁気センサ２１，２２，２３が感知している磁極の特定結果に基づいて、回転角演算部３４は、各磁気センサ２１，２２，２３の出力信号Ｖ１，Ｖ２，Ｖ３の振幅を補正する。そして、回転角演算部３４は、振幅補正後の各出力信号に基づいて、ロータ２０の電気角θＥおよび機械角θＭを演算する。回転角演算部３４によって演算された電気角θＥおよび機械角θＭは、ＥＰＳモータ制御部３３に与えられる。
【０１９０】
回転角演算部３４の不揮発性メモリには、磁気センサ２１，２２，２３毎に、ピーク値テーブルが記憶されている。また、回転角演算部３４内の不揮発性メモリには、第１の実施形態と同様に、ロータ２０の周辺温度毎の各出力信号Ｖ１，Ｖ２，Ｖ３のピーク値の初期値（絶対値）が記憶されている。
図２０は、ピーク値テーブルの内容を示す模式図である。
【０１９１】
ピーク値テーブルには、各磁極ｍ１〜ｍ１６の磁極番号１〜１６毎に、その磁極に対応する第１の出力信号Ｖ１のピーク値（極大値または極小値）Ｐ１（１）〜Ｐ１（１６）と、その磁極に対応する第２の出力信号Ｖ２のピーク値（極大値または極小値）Ｐ２（１）〜Ｐ２（１６）と、その磁極に対応する第３の出力信号Ｖ３のピーク値（極大値または極小値）Ｐ３（１）〜Ｐ３（１６）とが記憶されている。なお、各磁気センサ２１，２２，２３としては、特性がほぼ等しいものが用いられているので、同じ磁極に対する各磁気センサ２１，２２，２３の出力信号Ｖ１，Ｖ２，Ｖ３のピーク値はほぼ同様な値となる。
【０１９２】
前記ピーク値テーブルへのピーク値の記憶は、たとえば、ＥＰＳモータ７の出荷前に行われる。前記振幅補正用ピーク値テーブルに記憶されるピーク値は、１周期分のデータから求めてもよいし、複数周期分のデータの平均値から求めてもよい。
図２１は、回転角演算部３４による回転角演算処理の手順を示すフローチャートである。
【０１９３】
回転角演算部３４が起動されると、回転角演算部３４は、図２１に示される回転角演算処理を、所定の演算周期毎に繰り返し行う。
回転角演算処理開始時において第１の磁気センサ２１が感知している磁極を基準磁極として、各磁極に相対的な番号を割り当てた場合の各磁極の番号を相対的極番号と定義する。第１の磁気センサ２１が感知している磁極の相対的極番号（以下、「第１の相対的極番号」という）を変数ｒ１で表し、第２の磁気センサ２２が感知している磁極の相対的極番号（以下、「第２の相対的極番号」という）を変数ｒ２で表し、第３の磁気センサ２３が感知している磁極の相対的極番号（以下、「第３の相対的極番号」という）を変数ｒ３で表すことにする。なお、各相対的極番号ｒ１，ｒ２，ｒ３は、１〜１６の整数をとり、１より１少ない相対的極番号は１６となり、１６より１大きい相対的極番号は１となるものとする。
【０１９４】
この実施形態では、回転角演算処理開始時において第１の磁気センサ２１が感知している磁極（基準磁極）がＮ極の磁極である場合には、当該磁極に”１”の相対的極番号が割り当てられる。一方、回転角演算処理の開始時において第１の磁気センサ２１が感知している磁極（基準磁極）がＳ極の磁極である場合には、当該磁極に”２”の相対的極番号が割り当てられる。
【０１９５】
また、第１の磁気センサ２１が感知している磁極の極番号をｑ１、第２の磁気センサ２２が感知している磁極の極番号をｑ２、第３の磁気センサ２３が感知している磁極の極番号をｑ３で表すことにする。なお、各極番号ｑ１，ｑ２，ｑ３は、１〜１６の整数をとり、１より１少ない極番号は１６となり、１６より１大きい極番号は１となるものとする。
また、第１の磁気センサ２１が感知している磁極対の磁極対番号をＱ１で表すことにする。なお、磁極対番号Ｑ１は、１〜８の整数をとり、１より１少ない極番号は８となり、８より１大きい極番号は１となるものとする。
【０１９６】
回転角演算処理が開始されると、回転角演算部３４は、各磁気センサ２１，２２，２３の出力信号（センサ値）Ｖ１，Ｖ２，Ｖ３を読み込む（ステップＳ９１）。なお、回転角演算部３４のメモリ（たとえば、ＲＡＭ）には、所定回数前に読み込まれたセンサ値から最新に読み込まれたセンサ値までの、複数回数分のセンサ値が記憶されるようになっている。
【０１９７】
また、この実施形態では、センサ値Ｖ１のピーク値（極大値および極小値）を検出するために、読み込まれたセンサ値Ｖ１のうち絶対値がより大きいセンサ値が、センサ値Ｖ１のピーク値候補としてメモリに保存される。同様に、センサ値Ｖ２のピーク値（極大値および極小値）を検出するために、読み込まれたセンサ値Ｖ２のうち絶対値がより大きいセンサ値が、センサ値Ｖ２のピーク値候補としてメモリに保存される。同様に、センサ値Ｖ３のピーク値（極大値および極小値）を検出するために、読み込まれたセンサ値Ｖ３のうち絶対値がより大きいセンサ値が、センサ値Ｖ３のピーク値候補としてメモリに保存される。ただし、これらのピーク値候補は、対応する出力信号のゼロクロスが検出されたときには、後述するような所定のタイミングでゼロにリセットされる。
【０１９８】
前記ステップＳ９１で各センサ値Ｖ１，Ｖ２，Ｖ３が読み込まれると、回転角演算部３４は、今回の処理が回転角演算処理開始後の初回の処理であるか否かを判別する（ステップＳ９２）。今回の処理が回転角演算処理開始後の初回の処理である場合には（ステップＳ９２：ＹＥＳ）、回転角演算部３４は、相対的極番号の設定処理を行う（ステップＳ９３）。
【０１９９】
図２２は、相対的極番号の設定処理の詳細な手順を示している。
回転角演算部３４は、まず、第１の出力信号Ｖ１が０より大きいか否かを判別する（ステップＳ１１１）。第１の出力信号Ｖ１が０より大きい場合には（ステップＳ１１１：ＹＥＳ）、回転角演算部３４は、第１の磁気センサ２１が感知している磁極（基準磁極）がＮ極の磁極であると判別し、第１の相対的極番号ｒ１を１に設定する（ステップＳ１１４）。そして、ステップＳ１１６に進む。
【０２００】
一方、第１の出力信号Ｖ１が０以下である場合には（ステップＳ１１１：ＮＯ）、回転角演算部３４は、第１の出力信号Ｖ１が０より小さいか否かを判別する（ステップＳ１１２）。第１の出力信号Ｖ１が０より小さい場合には（ステップＳ１１２：ＹＥＳ）、第１の磁気センサ２１が感知している磁極（基準磁極）がＳ極の磁極であると判別し、第１の相対的極番号ｒ１を２に設定する（ステップＳ１１５）。そして、ステップＳ１１６に進む。
【０２０１】
前記ステップＳ１１２において、第１の出力信号Ｖ１が０以上であると判別された場合には（ステップＳ１１２：ＮＯ）、つまり、第１の出力信号Ｖ１が０である場合には、回転角演算部３４は、ロータ回転角（電気角）が０°であるか１８０°であるかを判別するために、第３の出力信号Ｖ３が０より大きいか否かを判別する（ステップＳ１１３）。第３の出力信号Ｖ３が０より大きい場合には（ステップＳ１１３：ＹＥＳ）、回転角演算部３４は、ロータ回転角（電気角）が０°であると判別し、第１の相対的極番号ｒ１を１に設定する（ステップＳ１１４）。そして、ステップＳ１１６に進む。
【０２０２】
一方、第３の出力信号Ｖ３が０以下である場合には（ステップＳ１１３：ＮＯ）、回転角演算部３４は、ロータ回転角（電気角）が１８０°であると判別し、第１の相対的極番号ｒ１を２に設定する（ステップＳ１１５）。そして、ステップＳ１１６に進む。
なお、前記ステップＳ１１３において、回転角演算部３４は、第２の出力信号Ｖ２が０より小さいか否かを判別するようにしてもよい。この場合には、第２の出力信号Ｖ２が０より小さいときには、回転角演算部３４は、ステップＳ１１４に進んで第１の相対的極番号ｒ１を１に設定する。一方、第２の出力信号Ｖ２が０以上である場合には、回転角演算部３４は、ステップＳ１１５に進んで第１の相対的極番号ｒ１を２に設定する。
【０２０３】
ステップＳ１１６では、回転角演算部３４は、「Ｖ１≧０かつＶ２＜０」または「Ｖ１≦０かつＶ２＞０」の条件を満たしているか否かを判別する。この条件を満たしている場合には（ステップＳ１１６：ＹＥＳ）、回転角演算部３４は、第２の磁気センサ２２が感知している磁極の極番号は、第１の磁気センサ２１が感知している磁極の極番号より３だけ大きい番号であると判別し、第２の相対的極番号ｒ２に、第１の相対的極番号ｒ１より３だけ大きい番号（ｒ２＝ｒ１＋３）を設定する（ステップＳ１１７）。そして、ステップＳ１１９に移行する。
【０２０４】
一方、前記ステップＳ１１６の条件を満たしていない場合には（ステップＳ１１６：ＮＯ）、回転角演算部３４は、第２の磁気センサ２２が感知している磁極の極番号は、第１の磁気センサ２１が感知している磁極の極番号より４だけ大きい番号であると判別し、第２の相対的極番号ｒ２に、第１の相対的極番号ｒ１より４だけ大きい番号（ｒ２＝ｒ１＋４）を設定する（ステップＳ１１８）。そして、ステップＳ１１９に移行する。
【０２０５】
ステップＳ１１９では、回転角演算部３４は、「Ｖ１＞０かつＶ３≦０」または「Ｖ１＜０かつＶ３≧０」の条件を満たしているか否かを判別する。この条件を満たしている場合には（ステップＳ１１９：ＹＥＳ）、回転角演算部３４は、第３の磁気センサ２３が感知している磁極の極番号は、第１の磁気センサ２１が感知している磁極の極番号より５だけ大きい番号であると判別し、第３の相対的極番号ｒ３に、第１の相対的極番号ｒ１より５だけ大きい番号（ｒ３＝ｒ１＋５）を設定する（ステップＳ１２０）。そして、図２１のステップＳ９４に戻る。
【０２０６】
一方、前記ステップＳ１１９の条件を満たしていない場合には（ステップＳ１１９：ＮＯ）、回転角演算部３４は、第３の磁気センサ２３が感知している磁極の極番号は、第１の磁気センサ２１が感知している磁極の極番号より４だけ大きい番号であると判別し、第３の相対的極番号ｒ３に、第１の相対的極番号ｒ１より４だけ大きい番号（ｒ３＝ｒ１＋４）を設定する（ステップＳ１２１）。そして、図２１のステップＳ９４に戻る。
【０２０７】
前記ステップＳ１１６の条件を満たしている場合に、第２の相対的極番号ｒ２に第１の相対的極番号ｒ１より３だけ大きい番号（ｒ２＝ｒ１＋３）を設定し、前記ステップＳ１１６の条件を満たしていない場合に、第２の相対的極番号ｒ２に第１の相対的極番号ｒ１より４だけ大きい番号（ｒ２＝ｒ１＋４）を設定している理由について説明する。また、前記ステップＳ１１９の条件を満たしている場合に、第３の相対的極番号ｒ３に、第１の相対的極番号ｒ１より５だけ大きい番号（ｒ３＝ｒ１＋５）を設定し、前記ステップＳ１１９の条件を満たしていない場合に、第３の相対的極番号ｒ３に、第１の相対的極番号ｒ１より４だけ多い番号（ｒ３＝ｒ１＋４）を設定している理由について説明する。
【０２０８】
たとえば、ロータ２０における磁極ｍ１と磁極ｍ２とからなる磁極対Ｍ１が第１の磁気センサ２１を通過する際の、第１、第２および第３の磁気センサ２１，２２，２３の出力信号Ｖ１，Ｖ２，Ｖ３の信号波形を模式的に表すと、図２３（ａ）（ｂ）（ｃ）に示すようになる。
図２３（ａ）（ｂ）において、Ｓ１，Ｓ２で示す領域は、第１の磁気センサ２１が磁極ｍ１を感知し、第２の磁気センサ２２が磁極ｍ４を感知している領域である。Ｓ３で示す領域は、第１の磁気センサ２１が磁極ｍ１を感知し、第２の磁気センサ２２が磁極ｍ５を感知している領域である。Ｓ４，Ｓ５で示す領域は、第１の磁気センサ２１が磁極ｍ２を感知し、第２の磁気センサ２２が磁極ｍ５を感知している領域である。Ｓ６で示す領域は、第１の磁気センサ２１が磁極ｍ２を感知し、第２の磁気センサ２２が磁極ｍ６を感知している領域である。
【０２０９】
つまり、領域Ｓ１，Ｓ２，Ｓ４およびＳ５では、第２の磁気センサ２２が感知している磁極の極番号は、第１の磁気センサ２１が感知している磁極の極番号より３だけ大きくなる。一方、領域Ｓ３およびＳ６では、第２の磁気センサ２２が感知している磁極の極番号は、第１の磁気センサ２１が感知している磁極の極番号より４だけ大きい番号となる。
領域Ｓ１，Ｓ２においては、両センサ値Ｖ１，Ｖ２は、Ｖ１≧０かつＶ２＜０の第１条件を満たす。領域Ｓ３においては、両センサ値Ｖ１，Ｖ２は、Ｖ１＞０かつＶ２≧０の第２条件を満たす。領域Ｓ４，Ｓ５においては、両センサ値Ｖ１，Ｖ２は、Ｖ１≦０かつＶ２＞０の第３条件を満たす。領域Ｓ６においては、両センサ値Ｖ１，Ｖ２は、Ｖ１＜０かつＶ２≦０の第４条件を満たす。
【０２１０】
そこで、回転角演算部３４は、前記第１条件（Ｖ１≧０かつＶ２＜０）または前記第３条件（Ｖ１≦０かつＶ２＞０）を満たしている場合には、第２の磁気センサ２２が感知している磁極の極番号は、第１の磁気センサ２１が感知している磁極の極番号より３だけ大きくなると判別し、前記第１条件または前記第３条件を満たしていない場合には、第２の磁気センサ２２が感知している磁極の極番号は、第１の磁気センサ２１が感知している磁極の極番号より４だけ大きくなると判別している。
【０２１１】
また、図２３（ａ）（ｃ）において、Ｓ１で示す領域は、第１の磁気センサ２１が磁極ｍ１を感知し、第３の磁気センサ２３が磁極ｍ５を感知している領域である。Ｓ２およびＳ３で示す領域は、第１の磁気センサ２１が磁極ｍ１を感知し、第３の磁気センサ２３が磁極ｍ６を感知している領域である。Ｓ４で示す領域は、第１の磁気センサ２１が磁極ｍ２を感知し、第３の磁気センサ２３が磁極ｍ６を感知している領域である。Ｓ５およびＳ６で示す領域は、第１の磁気センサ２１が磁極ｍ２を感知し、第３の磁気センサ２３が磁極ｍ７を感知している領域である。
【０２１２】
つまり、領域Ｓ１およびＳ４では、第３の磁気センサ２３が感知している磁極の極番号は、第１の磁気センサ２１が感知している磁極の極番号より４だけ大きい番号となる。一方、領域Ｓ２，Ｓ３，Ｓ５およびＳ６では、第２の磁気センサ２２が感知している磁極の極番号は、第１の磁気センサ２１が感知している磁極の極番号より５だけ大きくなる。
領域Ｓ１においては、両センサ値Ｖ１，Ｖ３は、Ｖ１≧０かつＶ３＞０の第１条件を満たす。領域Ｓ２，Ｓ３においては、両センサ値Ｖ１，Ｖ３は、Ｖ１＞０かつＶ３≦０の第２条件を満たす。領域Ｓ４においては、両センサ値Ｖ１，Ｖ３は、Ｖ１≦０かつＶ３＜０の第３条件を満たす。領域Ｓ５，Ｓ６においては、両センサ値Ｖ１，Ｖ３は、Ｖ１＜０かつＶ３≧０の第４条件を満たす。
【０２１３】
そこで、回転角演算部３４は、前記第２条件（Ｖ１＞０かつＶ３≦０）または前記第４条件（Ｖ１＜０かつＶ３≧０）を満たしている場合には、第３の磁気センサ２３が感知している磁極の極番号は、第１の磁気センサ２１が感知している磁極の極番号より５だけ大きくなると判別し、前記第２条件または前記第４条件を満たしていない場合には、第３の磁気センサ２３が感知している磁極の極番号は、第１の磁気センサ２１が感知している磁極の極番号より４だけ大きくなると判別している。
【０２１４】
図２１に戻り、ステップＳ９３の処理が終了すると、回転角演算部３４は、ステップＳ９１で読み取られたセンサ値Ｖ１，Ｖ２，Ｖ３に対して第１の振幅補正処理を行なった後（ステップＳ９４）、振幅補正後の出力信号Ｖ１’，Ｖ２’，Ｖ３’に基づいて、電気角θＥを演算する（ステップＳ９５）。ステップＳ９４およびＳ９５の処理の詳細につては、後述する。ステップＳ９５で電気角θＥが演算されると、回転角演算部３４は、当該電気角θＥをＥＰＳモータ制御部３３に与える。そして、今演算周期での処理を終了する。
【０２１５】
前記ステップＳ９２において、今回の処理が回転角演算処理開始後の初回の処理ではないと判別された場合には（ステップＳ９２：ＮＯ）、ステップＳ９６に移行する。
ステップＳ９６では、回転角演算部３４は、メモリに記憶されているセンサ値Ｖ１，Ｖ２，Ｖ３に基づいて、センサ値Ｖ１，Ｖ２，Ｖ３毎に、センサ値の符号が反転するゼロクロスを検出したか否かを判別する。ゼロクロスが検出されなかったときには（ステップＳ９６：ＮＯ）、回転角演算部３４は、後述するステップＳ１０３の極番号特定処理によって、各磁極センサ２１，２２，２３が検知している磁極が既に特定されているか否かを判別する（ステップＳ９７）。各磁極センサ２１，２２，２３が検知している磁極が特定されていない場合には（ステップＳ９７：ＮＯ）、回転角演算部３４は、ステップＳ９４に移行する。一方、各磁極センサ２１，２２，２３が検知している磁極が既に特定されている場合には（ステップＳ９７：ＹＥＳ）、ステップＳ１０６に移行する。
【０２１６】
前記ステップＳ９６において、いずれかのセンサ値Ｖ１，Ｖ２，Ｖ３に対してゼロクロスが検出された場合には（ステップＳ９６：ＹＥＳ）、回転角演算部３４は、後述するステップＳ１０３の極番号特定処理によって、各磁極センサ２１，２２，２３が検知している磁極が既に特定されているか否かを判別する（ステップＳ９８）。
各磁極センサ２１，２２，２３が検知している磁極が特定されていない場合には（ステップＳ９８：ＮＯ）、回転角演算部３４は、相対的極番号の更新処理を行なう（ステップＳ９９）。具体的には、回転角演算部３４は、前記ステップＳ９６でゼロクロスが検出された磁気センサに対して現在設定されている相対的極番号ｒ１、ｒ２またはｒ３を、ロータ２０の回転方向に応じて、１だけ大きい番号または１だけ小さい番号に変更する。
【０２１７】
ロータ２０の回転方向が正方向（図１８に矢印で示す方向）である場合には、回転角演算部３４は、前記ステップＳ９６でゼロクロスが検出された磁気センサに対して現在設定されている相対的極番号ｒ１、ｒ２またはｒ３を、１だけ大きい番号に更新する。一方、ロータ２０の回転方向が逆方向である場合には、回転角演算部３４は、ゼロクロスが検出された磁気センサに対して現在設定されている相対的極番号ｒ１、ｒ２またはｒ３を、１だけ小さい番号に更新する。ただし、前述したように、”１”の相対的極番号に対して、１だけ小さい相対的極番号は、”１６”となる。また、”１６”の相対的極番号に対して、１だけ大きい相対的極番号は、”１”となる。
【０２１８】
なお、ロータ２０の回転方向は、ゼロクロスが検出された出力信号の前回値および今回値と、他の１つの出力信号の今回値とに基づいて判定することができる。具体的には、ゼロクロスが検出された出力信号が第１の出力信号Ｖ１である場合には、「第１の出力信号Ｖ１の前回値が０より大きくかつその今回値が０以下であり、第３の出力信号Ｖ３が０より小さい（または第２の出力信号Ｖ２が０より大きい）」という条件、または「第１の出力信号Ｖ１の前回値が０未満でかつその今回値が０以上であり、第３の出力信号Ｖ３が０より大きい（または第２の出力信号Ｖ２が０より小さい）」という条件を満たしている場合には、回転方向は正方向（図１８に矢印で示す方向）であると判定される。
【０２１９】
一方、「第１の出力信号Ｖ１の前回値が０以上でかつその今回値が０未満であり、第３の出力信号Ｖ３が０より大きい（または第２の出力信号Ｖ２が０より小さい）」という条件、または「第１の出力信号Ｖ１の前回値が０以下でかつその今回値が０より大きく、第３の出力信号Ｖ３が０より小さい（または第２の出力信号Ｖ２が０より大きい）」という条件を満たしている場合には、回転方向は逆方向であると判定される。
【０２２０】
ゼロクロスが検出された出力信号が第２の出力信号Ｖ２である場合には、「第２の出力信号Ｖ２の前回値が０より大きくかつその今回値が０以下であり、第１の出力信号Ｖ１が０より小さい（または第３の出力信号Ｖ３が０より大きい）」という条件、または「第２の出力信号Ｖ２の前回値が０未満でかつその今回値が０以上であり、第１の出力信号Ｖ１が０より大きい（または第３の出力信号Ｖ３が０より小さい）」という条件を満たしている場合には、回転方向は正方向（図１８に矢印で示す方向）であると判定される。一方、「第２の出力信号Ｖ２の前回値が０以上でかつその今回値が０未満であり、第１の出力信号Ｖ１が０より大きい（または第３の出力信号Ｖ３が０より小さい）」という条件、または「第２の出力信号Ｖ２の前回値が０以下でかつその今回値が０より大きく、第１の出力信号Ｖ１が０より小さい（または第３の出力信号Ｖ３が０より大きい）」という条件を満たしている場合には、回転方向は逆方向であると判定される。
【０２２１】
ゼロクロスが検出された出力信号が第３の出力信号Ｖ３である場合には、「第３の出力信号Ｖ３の前回値が０より大きくかつその今回値が０以下であり、第１の出力信号Ｖ１が０より大きい（または第２の出力信号Ｖ２が０より小さい）」という条件、または「第３の出力信号Ｖ３の前回値が０未満でかつその今回値が０以上であり、第１の出力信号Ｖ１が０より小さい（または第２の出力信号Ｖ２が０より大きい）」という条件を満たしている場合には、回転方向は正方向（図１８に矢印で示す方向）であると判定される。一方、「第３の出力信号Ｖ３の前回値が０以上でかつその今回値が０未満であり、第１の出力信号Ｖ１が０より小さい（または第２の出力信号Ｖ２が０より大きい）」という条件、または「第３の出力信号Ｖ３の前回値が０以下でかつその今回値が０より大きく、第１の出力信号Ｖ１が０より大きい（または第２の出力信号Ｖ２が０より小さい）」という条件を満たしている場合には、回転方向は逆方向であると判定される。
【０２２２】
前記ステップＳ９９の相対的極番号の更新処理が終了すると、回転角演算部３４は、ピーク値検出処理を行なう（ステップＳ１００）。ピーク値検出処理について具体的に説明する。前記ステップＳ９６でゼロクロスが検出された出力信号に対応する磁気センサをピーク値検出対象の磁気センサということにする。回転角演算部３４は、まず、ピーク値検出対象の磁気センサが感知している磁極が変化したか否かを判別する。つまり、回転角演算部３４は、ピーク値検出対象の磁気センサが感知している磁極位置が、当該磁気センサの出力信号のゼロクロスが前回検出された時点と、今回検出された時点とで、異なっているか同じであるかを判定する。ロータ２０の回転方向が逆転した場合には、前記両時点での磁極位置が同じになる可能性がある。
【０２２３】
この判定は、たとえば、前回ゼロクロスが検出されたときのロータ２０の回転方向と、現在のロータ２０の回転方向が同じ方向であるか否かに基づいて行うことができる。すなわち、回転角演算部３４は、ロータ２０の回転方向が同じ方向であれば、ピーク値検出対象の磁気センサが感知している磁極が変化したと判定する。一方、ロータ２０の回転方向が異なっていれば、回転角演算部３４は、ピーク値検出対象の磁気センサが感知している磁極が変化していないと判定する。
【０２２４】
ピーク値検出対象の磁気センサが感知している磁極が変化したと判定された場合には、回転角演算部３４は、ピーク値を検出したと判別するとともに、当該磁気センサに対応するピーク値候補をピーク値として特定する。一方、ピーク値検出対象の磁気センサが感知している磁極が変化していないと判定された場合には、回転角演算部３４は、ピーク値を検出しなかったと判定する。なお、ピーク値には、０より大きな極大値と、０より小さな極小値とがある。この実施形態では、ピーク値のうち、極大値に基づいて、第１の磁気センサ２１が感知している磁極対が特定されるものとする。以下において、ピーク値検出処理において検出された第１の出力信号Ｖ１、第２の出力信号Ｖ２および第３の出力信号Ｖ３の極大値を、それぞれＰ１、Ｐ２およびＰ３で表す場合がある。
【０２２５】
ピーク値検出処理において極大値が検出されなかった場合には（ステップＳ１０１：ＮＯ）、回転角演算部３４は、前記ステップＳ９６でゼロクロスが検出された出力信号に対応するピーク値候補を０にリセットした後、ステップＳ９４に移行する。一方、ピーク値検出処理において極大値が検出されたときには（ステップＳ１０１：ＹＥＳ）、当該極大値を、前記ステップＳ９６でゼロクロスが検出された出力信号に対する極大値Ｐ１、Ｐ２またはＰ３として記憶する（ステップＳ１０２）。そして、回転角演算部３４は、前記ステップＳ９６でゼロクロスが検出された出力信号に対応するピーク値候補を０にリセットした後、ステップＳ１０３に移行する。
【０２２６】
ステップＳ１０３では、回転角演算部３４は、極番号特定処理（磁極対特定処理）を行なう。
図１９を参照して、極番号特定処理の考え方について説明する。図１９に示すように、磁力が弱い磁極対Ｍ１，Ｍ２，Ｍ３，Ｍ５内のＮ磁極ｍ１，ｍ３，ｍ５，ｍ９に対する各出力信号Ｖ１，Ｖ２，Ｖ３のピーク値（極大値）と、磁力が強い磁極対Ｍ４，Ｍ６，Ｍ７，Ｍ８内のＮ磁極ｍ７，ｍ１１，ｍ１３，ｍ１５に対する各出力信号Ｖ１，Ｖ２，Ｖ３のピーク値（極大値）との中間に、閾値Ａ（Ａ＞０）が設定されている。
【０２２７】
図１９から分かるように、第１の磁気センサ２１が感知している磁極対Ｍ１〜Ｍ８毎に、３つの出力信号Ｖ１，Ｖ２，Ｖ３の極大値の組合せが異なっている。したがって、３つの出力信号Ｖ１，Ｖ２，Ｖ３の極大値Ｐ１，Ｐ２，Ｐ３の組合せに基づいて、第１の磁気センサ２１が感知している磁極対を特定することができる。また、第１の磁気センサ２１が感知している磁極対を特定するタイミングに基づいて、第１の磁気センサ２１が感知している磁極を特定することができる。そして、第１の磁気センサ２１が感知している磁極に基づいて、第２および第３の磁気センサ２２，２３が感知している磁極を特定することができる。
【０２２８】
第１の磁気センサ２１が感知している磁極対Ｍ１〜Ｍ８と、３つの出力信号Ｖ１，Ｖ２，Ｖ３の極大値Ｐ１，Ｐ２，Ｐ３の組合せとの関係は、表４に示すようになる。
【０２２９】
【表４】
2013091350.tif 000006
【０２３０】
なお、第１の磁気センサ２１が感知している磁極対を特定するタイミングは、ロータ２０が正方向に回転している場合には、第１の磁気センサ２１が感知している磁極対が移り変わった後に、第３の出力信号Ｖ３のゼロクロスが初めて検出されるタイミング（以下、「第１の磁極対特定タイミング」という）である。したがって、第１の磁極対特定タイミングにおいて表１の内容に基づいて特定される磁極対は、第１の磁気センサ２１が直前まで感知していた磁極対となる。このため、第１の磁極対特定タイミングにおいて第１の磁気センサ２１が感知している磁極対は、表１の内容に基づいて特定される磁極対より磁極対番号が１だけ大きい磁極対となる。また、第１の磁極対特定タイミングにおいて第１の磁気センサ２１が感知している磁極は、第１の磁極対特定タイミングにおいて第１の磁気センサ２１が感知している磁極対内の２つの磁極のうち、Ｎ極の磁極となる。
【０２３１】
一方、ロータ２０が逆方向に回転している場合には、第１の磁気センサ２１が感知している磁極対を特定するタイミングは、第１の磁気センサ２１が感知している磁極対が移り変わった直後に、第１の出力信号Ｖ１のゼロクロスが検出されるタイミング（以下、「第２の磁極対特定タイミング」という）である。したがって、第２の磁極対特定タイミングにおいて表１の内容に基づいて特定される磁極対は、第１の磁気センサ２１が直前まで感知していた磁極対となる。このため、第２の磁極対特定タイミングにおいて第１の磁気センサ２１が感知している磁極対は、表１の内容に基づいて特定される磁極対より磁極対番号が１だけ小さい磁極対となる。また、第２の磁極対特定タイミングにおいて第２の磁気センサ２１が感知している磁極は、第２の磁極対特定タイミングにおいて第１の磁気センサ２１が感知している磁極対内の２つの磁極のうち、Ｓ極の磁極となる。
【０２３２】
以下、より具体的に、極番号特定処理について説明する。極番号特定処理は、３つの出力信号Ｖ１，Ｖ２，Ｖ３の極大値が既に検出（記憶）されている場合において、次の第１条件または第２条件のいずかを満たしている場合にのみ行われる。
第１条件：ロータ２０の回転方向が正方向でありかつ前記ステップＳ９６でゼロクロスが検出された出力信号が第３の出力信号Ｖ３であること
第２条件：ロータ２０の回転方向が逆方向でありかつ前記ステップＳ９６でゼロクロスが検出された出力信号が第１の出力信号Ｖ１であること
第１条件は、第１の磁極対特定タイミングであるか否かを判定するための条件である。第１条件を満たしている場合には、現時点が第１の磁極対特定タイミングであると判定される。第２条件は、第２の磁極対特定タイミングであるか否かを判定するための条件である。第２条件を満たしている場合には、現時点が第２の磁極対特定タイミングであると判定される。
【０２３３】
第１条件を満たしている場合には、回転角演算部３４は、表４に示される磁極対Ｍ１〜Ｍ８と３つの極大値Ｐ１，Ｐ２，Ｐ３の組合せとの関係と、最新に検出された各出力信号Ｖ１，Ｖ２，Ｖ３の極大値Ｐ１．Ｐ２，Ｐ３の組み合わせとに基づいて、第１の磁気センサ２１が直前まで感知していた磁極対の磁極対番号Ｑ１’を特定する。そして、当該磁極対番号Ｑ１’より１だけ大きい磁極対番号を、第１の磁極センサ２１が現在感知している磁極対の磁極対番号Ｑ１（＝Ｑ１’＋１）として特定する。
【０２３４】
次に、回転角演算部３４は、第１の磁極センサ２１が現在感知している磁極の極番号ｑ１を、ｑ１＝２・Ｑ１−１に基づいて特定する。また、回転角演算部３４は、第１の磁気センサ２１が感知している磁極の極番号ｑ１と、第１および第２の相対的極番号ｒ１，ｒ２とに基づいて、第２の磁気センサ２２が感知している磁極の極番号ｑ２を特定する。具体的には、回転角演算部３４は、ｑ２＝(ｑ１−ｒ１)＋ｒ２に基づいて、第２の磁気センサ２２が感知している磁極の極番号ｑ２を特定する。
【０２３５】
さらに、回転角演算部３４は、第１の磁気センサ２１が感知している磁極の極番号ｑ１と、第１および第３の相対的極番号ｒ１，ｒ３とに基づいて、第３の磁気センサ２３が感知している磁極の極番号ｑ３を特定する。具体的には、回転角演算部３４は、ｑ３＝(ｑ１−ｒ１)＋ｒ３に基づいて、第３の磁気センサ２３が感知している磁極の極番号ｑ３を特定する。
【０２３６】
一方、第２条件を満たしている場合には、回転角演算部３４は、表４に示される磁極対Ｍ１〜Ｍ８と３つの極大値Ｐ１，Ｐ２，Ｐ３の組合せとの関係と、最新に検出された各出力信号Ｖ１，Ｖ２，Ｖ３の極大値Ｐ１．Ｐ２，Ｐ３の組み合わせとに基づいて、第１の磁気センサ２１が直前まで感知していた磁極対の磁極対番号Ｑ１’を特定する。そして、当該磁極対番号Ｑ１’より１だけ小さい磁極対番号を、第１の磁極センサ２１が現在感知している磁極対の磁極対番号Ｑ１（＝Ｑ１’−１）として特定する。
【０２３７】
次に、回転角演算部３４は、第１の磁極センサ２１が現在感知している磁極の極番号ｑ１を、ｑ１＝２・Ｑ１に基づいて特定する。また、回転角演算部３４は、ｑ２＝(ｑ１−ｒ１)＋ｒ２に基づいて、第２の磁気センサ２２が感知している磁極の極番号ｑ２を特定する。さらに、回転角演算部３４は、ｑ３＝(ｑ１−ｒ１)＋ｒ３に基づいて、第３の磁気センサ２３が感知している磁極の極番号ｑ３を特定する。
【０２３８】
前記ステップＳ１０３において、各磁気センサ２１，２２，２３が感知している磁極を特定できた場合には（ステップＳ１０４：ＹＥＳ）、回転角演算部３４は、ステップＳ１０６に移行する。一方、前記ステップＳ１０３において、３つの出力信号Ｖ１，Ｖ２，Ｖ３の極大値Ｐ１，Ｐ２，Ｐ３が検出（記憶）されていないと判別された場合、あるいは３つの出力信号Ｖ１，Ｖ２，Ｖ３の極大値Ｐ１，Ｐ２，Ｐ３が検出されていても、前記第１条件および第２条件のいずれをも満たしていないと判別された場合には、回転角演算部３４は、極番号を特定できなかったと判別し（ステップＳ１０４：ＮＯ）、ステップＳ９４に移行する。
【０２３９】
前記ステップＳ９８において、各磁気センサ２１，２２，２３が感知している磁極が既に特定されていると判別された場合には（ステップＳ９８：ＹＥＳ）、回転角演算部３４は、前記ステップＳ９６でゼロクロスが検出された出力信号に対応するピーク値候補を０にリセットした後、極番号の更新処理を行なう（ステップＳ１０５）。具体的には、回転角演算部３４は、前記ステップＳ９６でゼロクロスが検出された磁気センサに対して既に特定されている極番号ｑ１、ｑ２またはｑ３を、ロータ２０の回転方向に応じて、１だけ大きい極番号または１だけ小さい極番号に変更する。
【０２４０】
ロータ２０の回転方向が正方向である場合には、回転角演算部３４は、ゼロクロスが検出された磁気センサに対して既に特定されている前記極番号ｑ１、ｑ２またはｑ３を、１だけ大きい極番号に更新する。一方、ロータ２０の回転方向が逆方向である場合には、回転角演算部３４は、ゼロクロスが検出された磁気センサに対して既に特定されている前記極番号ｑ１、ｑ２またはｑ３を、１だけ小さい極番号に更新する。ただし、”１”の極番号に対して、１だけ小さい極番号は、”１６”となる。また、”１６”の極番号に対して、１だけ大きい極番号は、”１となる。回転角演算部３４は、ステップＳ１０５の極番号の更新処理が終了すると、ステップＳ１０６に移行する。
【０２４１】
ステップＳ１０６では、回転角演算部３４は、第２の振幅補正処理を行う。つまり、回転角演算部３４は、各磁気センサ２１，２２，２３が感知している磁極のピーク値を用いて、各磁気センサ２１，２２，２３の出力信号Ｖ１，Ｖ２，Ｖ３の振幅を補正する。
具体的には、回転角演算部３４は、第１の磁気センサ２１が感知している磁極の極番号ｑ１に対応する第１の出力信号Ｖ１のピーク値と、第２の磁気センサ２２が感知している磁極の極番号ｑ２に対応する第２の出力信号Ｖ２のピーク値と、第３の磁気センサ２３が感知している磁極の極番号ｑ３に対応する第３の出力信号Ｖ３のピーク値とを、ピーク値テーブル（図２０参照）から取得する。ピーク値テーブルから取得された第１、第２および第３の出力信号Ｖ１，Ｖ２，Ｖ３のピーク値を、それぞれＰ１ｘ，Ｐ２ｘ，Ｐ３ｘで表すことにする。そして、取得した各ピーク値（振幅補正値）Ｐ１ｘ，Ｐ２ｘ，Ｐ３ｘと予め設定されている基準振幅φとに基づいて、各出力信号Ｖ１，Ｖ２，Ｖ３の振幅を補正する。
【０２４２】
具体的には、第１、第２および第３の出力信号Ｖ１，Ｖ２，Ｖ３の振幅補正後の信号をそれぞれＶ１’，Ｖ２’，Ｖ３’とすると、補正後の第１、第２および第３の出力信号Ｖ１’，Ｖ２’，Ｖ３’は、それぞれ次式（21），(22)，(23)に基づいて演算される。
Ｖ１’＝（Ｖ１／Ｐ１ｘ）×φ    …(21)
Ｖ２’＝（Ｖ２／Ｐ２ｘ）×φ    …(22)
Ｖ３’＝（Ｖ３／Ｐ３ｘ）×φ    …(23)
第２の振幅補正処理が終了すると、回転角演算部３４は、ステップＳ１０７に移行する。ステップＳ１０７では、回転角演算部３４は、前記ステップＳ１０６で振幅補正された各出力信号Ｖ１’，Ｖ２’，Ｖ３’に基づいて、電気角θＥを演算する。
【０２４３】
具体的には、回転角演算部３４は、振幅補正後の第１の出力信号Ｖ１’と振幅補正後の第３の出力信号Ｖ３’とに基づいて、ロータ２０の回転角に相当する第１の電気角θＥ１を演算する。また、回転角演算部３４は、振幅補正後の第１の出力信号Ｖ１’と振幅補正後の第２の出力信号Ｖ２’とに基づいて、ロータ２０の回転角に相当する第２の電気角θＥ２を演算する。また、回転角演算部３４は、振幅補正後の第２の出力信号Ｖ２’と振幅補正後の第３の出力信号Ｖ３’とに基づいて、ロータ２０の回転角に相当する第３の電気角θＥ３を演算する。第１、第２および第３の電気角θＥ１，θＥ２，θＥ３の演算方法については、後述する。
【０２４４】
そして、回転角演算部３４は、たとえば、次式(24)に基づいて、最終的な電気角θＥを演算する。つまり、回転角演算部３４は、第１、第２および第３の電気角θＥ１，θＥ２，θＥ３の平均値を、最終的な電気角θＥとして演算する。
θＥ＝（θＥ１＋θＥ２＋θＥ３）／３      …(24)
なお、回転角演算部３４は、第１、第２および第３の電気角θＥ１，θＥ２，θＥ３の中央値を、最終的な電気角θＥとして演算することができる。また、回転角演算部３４は、第１、第２および第３の電気角θＥ１，θＥ２，θＥ３のうち、最も外れているものを除外し、他の２つの平均値を、最終的な電気角θＥとして演算することもできる。さらに、回転角演算部３４は、第１，第２および第３の電気角θＥ１，θＥ２，θＥ３のいずれか１つの電気角を、最終的な電気角θＥとして決定してもよい。
【０２４５】
第１の電気角θＥ１の演算方法について説明する。前記基準振幅はφであるので、振幅補正後の第１の出力信号Ｖ１’はφ・sinθＥで表され、振幅補正後の第２の出力信号Ｖ２’はφ・sin（θＥ＋２４０°）で表され、振幅補正後の第３の出力信号Ｖ３はφ・sin（θＥ＋１２０°）で表される。ここでは、説明の便宜上、基準振幅φが１であるとし、振幅補正後の第１の出力信号Ｖ１’、第２の出力信号Ｖ２’および第３の出力信号Ｖ３を、それぞれＶ１’＝sinθＥ、Ｖ２’＝sin（θＥ＋２４０°）およびＶ３＝sin（θＥ＋１２０°）で表すことにする。
【０２４６】
回転角演算部３４は、まず、振幅補正後の第１の出力信号Ｖ１’（＝sinθＥ）と振幅補正後の第３の出力信号Ｖ３’（＝sin（θＥ＋１２０°））とから、振幅補正後の第１の出力信号Ｖ１’に対する位相差が９０°となる信号Ｖ１３’（＝sin（θＥ＋９０°）＝cosθＥ）を演算する。より具体的には、回転角演算部３４は、次式(25)に基づいて、信号Ｖ１３’を演算する。
【０２４７】
【数１】
2013091350.tif 000007
【０２４８】
前記式（25）は、sin（θＥ＋１２０°）を三角関数の加法定理により展開した式に基づいて、導出することができる。そして、回転角演算部３４は、前記信号Ｖ１３’（＝cosθＥ）と振幅補正後の第１の出力信号Ｖ１’（＝sinθＥ）とを用い、次式(26)に基づいて、第１の電気角θＥ１を演算する。
【０２４９】
【数２】
2013091350.tif 000008
【０２５０】
第２の電気角θＥ２の演算方法について説明する。回転角演算部３４は、まず、振幅補正後の第１の出力信号Ｖ１’（＝sinθＥ）と振幅補正後の第２の出力信号Ｖ２’（＝sin（θＥ＋２４０°））とから、振幅補正後の第１の出力信号Ｖ１’に対する位相差が９０°となる信号Ｖ１２’（＝sin（θＥ＋９０°）＝cosθＥ）を生成する。より具体的には、回転角演算部３４は、次式(27)に基づいて、信号Ｖ１２’を生成する。
【０２５１】
【数３】
2013091350.tif 000009
【０２５２】
前記式（27)は、sin（θＥ＋２４０°）を三角関数の加法定理により展開した式に基づいて、導出することができる。そして、回転角演算部３４は、前記信号Ｖ１２’（＝cosθＥ）と振幅補正後の第１の出力信号Ｖ１’（＝sinθＥ）とを用い、次式(28)に基づいて、第２の電気角θＥ２を演算する。
【０２５３】
【数４】
2013091350.tif 000010
【０２５４】
第３の電気角θＥ３の演算方法について説明する。回転角演算部３４は、まず、振幅補正後の第２の出力信号Ｖ２’と振幅補正後の第３の出力信号Ｖ３’とに基づいて、ロータ２０の回転角（電気角）θＥに対して１２０°だけ進んだ電気角θＥ３’（＝θＥ＋１２０°）を演算する。そして、得られた回転角θＥ３’から１２０°を減算することにより、第３の電気角θＥ３を演算する。
【０２５５】
回転角演算部３４は、振幅補正後の第３の出力信号Ｖ３’（＝sin（θＥ＋１２０°））と振幅補正後の第２の出力信号Ｖ２’（＝sin（θＥ＋２４０°））とから、振幅補正後の第３の出力信号Ｖ３’に対する位相差が９０°となる信号Ｖ２３’（＝sin（θＥ＋１２０°＋９０°））を生成する。
θＥ’＝θＥ＋１２０°として、振幅補正後の第３の出力信号Ｖ３’を正弦波信号sinθＥ’で表し、振幅補正後の出力信号Ｖ２’を、この正弦波信号sinθＥ’に対して位相差が１２０°進んだ正弦波信号sin（θＥ’＋１２０°）で表すと、前記第１の電気角θＥ１の演算方法と同様に、正弦波信号sinθＥ’に対して位相差が９０°となる信号Ｖ２３’（＝sin（θＥ’＋９０°）＝cosθＥ’）を求めることができる。
【０２５６】
具体的には、回転角演算部３４は、次式(29)に基づいて、信号Ｖ２３’を生成する。
【０２５７】
【数５】
2013091350.tif 000011
【０２５８】
次に、回転角演算部３４は、前記信号Ｖ２３’（＝cosθＥ’）と振幅補正後の第３の出力信号Ｖ３’（＝sinθＥ’＝sin（θＥ＋１２０°））とを用い、次式(30)に基づいて、回転角θＥ３’を演算する。
【０２５９】
【数６】
2013091350.tif 000012
【０２６０】
そして、回転角演算部３４は、次式(31)に基づいて、第３の電気角θｅ３を演算する。
θＥ３＝θＥ３’−１２０°      …(31)
前記ステップＳ１０７で電気角θＥが演算されると、回転角演算部３４は、ロータ２０の機械角（絶対角）θＭを演算する（ステップＳ１０８）。具体的には、回転角演算部３４は、前記ステップＳ１０７で演算された電気角θＥと第１の磁気センサ２１が感知している極番号ｑ１に対応する磁極対番号Ｑ１とを用い、次式(32)に基づいて、機械角θＭを演算する。
【０２６１】
θＭ＝｛θＥ＋（Ｑ１−１）×３６０°｝／８                …(32)
回転角演算部３４は、前記ステップＳ１０７で演算された電気角θＥと、ステップＳ１０８で演算された、機械角θＭとをＥＰＳモータ制御部３３に与える。そして、今演算周期での処理を終了する。
前記ステップＳ９４で行なわれる第１の振幅補正処理について説明する。第１の振幅補正処理では、回転角演算部３４は、温度センサ２４によって検出された温度に応じた、各出力信号Ｖ１，Ｖ２，Ｖ３のピーク値の初期値Ｐｄ１，Ｐｄ２，Ｐｄ３を、不揮発性メモリから取得する。そして、取得した各ピーク値の初期値Ｐｄ１，Ｐｄ２，Ｐｄ３と予め設定されている基準振幅φとに基づいて、各出力信号Ｖ１，Ｖ２，Ｖ３の振幅を補正する。
【０２６２】
具体的には、第１、第２および第３の出力信号Ｖ１，Ｖ２，Ｖ３の振幅補正後の信号をそれぞれＶ１’，Ｖ２’，Ｖ３’とすると、補正後の第１、第２および第３の出力信号Ｖ１’，Ｖ２’，Ｖ３’は、それぞれ次式（33），(34)，(35)に基づいて演算される。
Ｖ１’＝（Ｖ１／Ｐｄ１）×φ    …(33)
Ｖ２’＝（Ｖ２／Ｐｄ２）×φ    …(34)
Ｖ３’＝（Ｖ３／Ｐｄ３）×φ    …(35)
ステップＳ９５では、第１の振幅補正処理によって算出された振幅補正後の信号Ｖ１’，Ｖ２’，Ｖ３’に基づいて、電気角θＥが算出される。電気角θＥの算出方法は、前記ステップＳ１０７での電気角θＥの算出方法と同じである。
【０２６３】
前記第３変形例によれば、回転角演算部３４は、回転角演算処理開始後において、第１の出力信号Ｖ１の極大値と第２の出力信号Ｖ２の極大値と第３の出力信号Ｖ３の極大値の３つの極大値が検出された直後に、各磁気センサ２１，２２，２３が感知している磁極を特定することができる。このため、イグニッションキーがオンされてからステアリングホイール１のロックが開錠されるまでの間において、ＥＰＳモータ７が強制駆動モードで回転されている間に、各磁気センサ２１，２２が感知している磁極を特定することが可能となる。したがって、ステアリングホイール１のロックが開錠された直後から、精度の高いロータ回転角を演算することができる。これにより、ステアリングホイール１の操作が可能となった直後から、ＥＰＳモータ７を適切に制御することができるようになる。
【０２６４】
前記第３変形例では、３つの出力信号Ｖ１，Ｖ２，Ｖ３の極大値の組合せに基づいて、第１の磁気センサ２１が感知している磁極対を特定しているが、３つの出力信号Ｖ１，Ｖ２，Ｖ３の極小値の組合せに基づいて、第１の磁気センサ２１が感知している磁極対を特定するようにしてもよい。
また、磁極対の数、磁気センサの数、弱い磁力を有する磁極対と強い磁力を有する磁極対との配置パターンおよび磁気センサの配置位置は、前記実施形態に示されるものに限られない。つまり、磁極対の数、磁気センサの数、弱い磁力を有する磁極対と強い磁力を有する磁極対との配置パターンおよび磁気センサの配置位置は、各磁気センサのピーク値（極大値または極小値）の組み合わせが基準となる１つの磁気センサが感知している磁極対毎に異なるように設定されていればよい。
【０２６５】
さらに、同じ磁極対においても、正と負のピーク値に異なった強弱を持たせることで、第１の磁気センサが感知している磁極を判別するようにしてもよい。つまり、磁極対単位ではなく、磁極単位で判別を行うようにしてもよい。
次に、図２４〜図２８を参照して、この発明の第２の実施形態について説明する。
この発明の第２の実施形態では、回転角検出装置の構成および全体制御部３１の動作が、前記第１の実施形態と異なっている。
【０２６６】
図２４は、回転角検出装置の構成を示す模式図である。
回転角検出装置は、ＥＰＳモータ７のロータの回転に応じて回転する検出用ロータ２０と、磁気センサ２１，２２と、回転角演算部３４と、図２に破線で示す位相差誤差演算部３５とを含んでいる。
ＥＰＳモータ７のロータには、４組の磁極対が設けられているものとする。検出用ロータ２０（以下、ロータ２０という）は、ＥＰＳモータ７のロータに設けられている磁極対に相当する複数の磁極対を有する円筒状の磁石（多極磁石）２０ａを含んでいる。
【０２６７】
磁石２０ａは、等角度間隔で配置された４組の磁極対（Ｍ１，Ｍ２）（Ｍ３，Ｍ４）（Ｍ５，Ｍ６）（Ｍ７，Ｍ８）を有している。つまり、磁石２０ａは、等角度間隔で配置された８個の磁極Ｍ１〜Ｍ８を有している。各磁極Ｍ１〜Ｍ８は、ロータ２０の回転中心軸を中心として、４５°（電気角では１８０°）の角度間隔で配置されている。各磁極Ｍ１〜Ｍ８の磁力の大きさは、一定である。
【０２６８】
ロータ２０の周囲には、２つの磁気センサ２１，２２が配置されている。両磁気センサ２１，２２は、ロータ２０の回転中心軸を中心として、予め設定された所定の位相差（以下、「目標位相差」という）に対応する角度間隔をおいて配置されることが好ましい。この実施形態では、目標位相差は電気角で９０°に設定されている。しかし、実際には、組み付け誤差等により、両磁気センサ２１，２２間の角度間隔は、目標位相差に対応する角度間隔とならない場合がある。この実施形態では、両磁気センサ２１，２２間の角度間隔が、組み付け誤差等により、目標位相差に対応する９０°ではなく、（９０°＋α）となっているものとする。αは、目標位相差に対する位相差誤差である。
【０２６９】
図２４に矢印で示す方向をロータ２０の正方向の回転方向とする。そして、ロータ２０が正方向に回転されるとロータ２０の回転角が大きくなり、ロータ２０が逆方向に回転されると、ロータ２０の回転角が小さくなるものとする。ロータ２０の回転角（電気角）をθとすると、一方の磁気センサ２１の出力信号Ｖ１は、Ｖ１＝Ａ１・sinθと表され、他方の磁気センサ２２の出力信号Ｖ２は、Ｖ２＝Ａ２・sin（θ＋９０°＋α）＝Ａ２・cos（θ＋α）と表される。Ａ１，Ａ２は、それぞれ振幅を表している。
【０２７０】
これらの振幅Ａ１，Ａ２が互いに等しい値Ａであるとみなすか、あるいは両振幅が所定の規定値Ａとなるように両信号Ｖ１，Ｖ２を正規化したとすると、両信号Ｖ１，Ｖ２は、それぞれ、Ａ・sinθおよびＡ・cos（θ＋α）と表される。ここで、Ａ＝１とすると、両信号Ｖ１，Ｖ２は、それぞれ、sinθおよびcos（θ＋α）と表される。そこで、以下の説明においては、説明を簡単にするために、各磁気センサ２１，２２の出力信号Ｖ１，Ｖ２を、それぞれＶ１＝sinθ，Ｖ２＝cos（θ＋α）と表すことにする。
【０２７１】
両磁気センサ２１，２２の出力信号Ｖ１，Ｖ２は、位相差誤差演算部３５および回転角演算部３４に入力される。回転角演算部３４の不揮発性メモリには、位相差誤差αを記憶するためのエリアが設けられている。ＥＰＳモータ７の出荷時においては、前記エリアには、予め求められた位相差誤差αの初期値が記憶されている。回転角演算部３４は、不揮発性メモリに記憶されている位相差誤差αと両磁気センサ２１，２２の出力信号Ｖ１，Ｖ２とに基づいて、ロータ２０の回転角を演算する。
【０２７２】
位相差誤差演算部３５は、強制回転モードでＥＰＳモータ７が回転駆動されているときに、磁気センサ２１，２２の出力信号Ｖ１，Ｖ２に基づいて位相差誤差αを演算して、回転角演算部３４に設定する。つまり、回転角演算部３４の不揮発性メモリに記憶されている位相差誤差αを、新たに演算された位相差誤差αに更新する。
図２５は、位相差誤差演算部３５の構成を示すブロック図である。
【０２７３】
位相差誤差演算部３５は、信号和演算部４１と、第１の振幅演算部４２と、信号差演算部４３と、第２の振幅演算部４４と、振幅差演算部４５と、誤差演算部４６とを含んでいる。
信号和演算部４１は、２つの磁気センサ２１，２２の出力信号Ｖ１，Ｖ２の和を演算する。出力信号Ｖ１，Ｖ２の和に相当する信号（以下、「和信号」という）は、次式(36)で表される。
【０２７４】
【数７】
2013091350.tif 000013
【０２７５】
したがって、この和信号の振幅Ｂ１は、次式(37)で表される。
【０２７６】
【数８】
2013091350.tif 000014
【０２７７】
第１の振幅演算部４２は、信号和演算部４１の演算結果に基づいて、前記和信号の振幅Ｂ１を求める。具体的には、強制回転モードでＥＰＳモータ７が回転駆動されているときに、信号和演算部４１によって信号和（Ｖ１＋Ｖ２）を所定時間毎に演算させることにより、ロータ２０の複数の回転角それぞれに対応する信号和を取得する。このようにして取得された複数の回転角に対応する信号和から、和信号の極大値および極小値を抽出し、抽出した極大値および極小値に基づいて和信号の振幅Ｂ１を求める。たとえば、抽出された極大値の平均から抽出された極小値の平均を減算した値の１／２を振幅Ｂ１として求めることができる。
【０２７８】
信号差演算部４３は、２つの磁気センサ２１，２２の出力信号Ｖ１，Ｖ２の差（Ｖ１−Ｖ２）を演算する。出力信号Ｖ１，Ｖ２の差に相当する信号（以下、「差信号」という）は、次式(38)で表される。
【０２７９】
【数９】
2013091350.tif 000015
【０２８０】
したがって、この差信号の振幅Ｂ２は、次式(39)で表される。
【０２８１】
【数１０】
2013091350.tif 000016
【０２８２】
第２の振幅演算部４４は、信号差演算部４３の演算結果に基づいて、前記差信号の振幅Ｂ２を求める。具体的には、強制回転モードでＥＰＳモータ７が回転駆動されているときに、信号差演算部４３によって信号差（Ｖ１−Ｖ２）を所定時間毎に演算させることにより、ロータ２０の複数の回転角それぞれに対応する信号差を取得する。このようにして取得された複数の回転角に対応する信号差から、差信号の極大値および極小値を抽出し、抽出した極大値および極小値に基づいて差信号の振幅Ｂ２を求める。たとえば、抽出された極大値の平均から抽出された極小値の平均を減算した値の１／２を振幅Ｂ２として求めることができる。
【０２８３】
振幅差演算部４５は、第１の振幅演算部４２によって演算された振幅Ｂ１と、第２の振幅演算部４４によって演算された振幅Ｂ２との差ΔＢ（＝Ｂ２−Ｂ１）を演算する。なお、振幅差ΔＢは、前記式(37),(39)を用いて演算すると、次式(40)で表される。
【０２８４】
【数１１】
2013091350.tif 000017
【０２８５】
誤差演算部４６は、振幅差演算部４５によって演算された振幅差ΔＢに基づいて、位相差誤差αを演算する。前記式(40)で表されているように、振幅差ΔＢは、αの関数（２√２・sin（α／２））となる。この関数をグラフで表すと、図２６に示すようなサインカーブとなる。ただし、図２６の横軸は、αではなく、α／２である。この関数は、αの絶対値が小さい範囲では、ほぼ直線とみなすことができる。この実施形態では、αが、−π／６≦α≦π／６の範囲内である場合には、次式（41）に示すように、α／２が２√２・sin（α／２）に比例するとみなしている。
【０２８６】
２√２・sin（α／２）＝Ｋ・α／２    …(41)
前記式(41)において、Ｋは比例定数である。この比例定数Ｋは、図２６に示すサインカーブのうち、横軸の値が−（π／６）／２〜（π／６）／２である範囲内の部分を直線とみなした場合に、その直線の傾きｙ／ｘに相当する。したがって、比例定数Ｋは、次式（42）で表される。
【０２８７】
【数１２】
2013091350.tif 000018
【０２８８】
前記式(40)で示されるようにΔＢ＝２√２・sin（α／２）であるので、前記式(41)，(42)を用いることにより、次式(43)のように、ΔＢを近似的に表すことができる。
【０２８９】
【数１３】
2013091350.tif 000019
【０２９０】
前記式(43)を変形することにより、位相差誤差αは、次式(44)で表される。
【０２９１】
【数１４】
2013091350.tif 000020
【０２９２】
誤差演算部４６は、振幅差演算部４５によって演算された振幅差ΔＢを用い、前記式(44)に基づいて、位相差誤差αを演算する。演算された位相差誤差αは、不揮発性メモリに格納される。
図２７は、回転角演算部３４によって実行される回転角演算処理の手順を示すフローチャートである。
【０２９３】
回転角演算部３４が起動されると、回転角演算部３４は、図２７に示される回転角演算処理を、所定の演算周期毎に繰り返し行う。
回転角演算部３４は、磁気センサ２１，２２の出力信号Ｖ１（＝sinθ），Ｖ２（＝cos（θ＋α））を取り込む（ステップＳ１３１）。そして、回転角演算部３４は、ステップＳ１３１で取り込まれた出力信号Ｖ１，Ｖ２と、不揮発性メモリに記憶されている位相差誤差αとを用い、次式(45)に基づいて、第２の出力信号Ｖ２を補正する（ステップＳ１３２）。
【０２９４】
【数１５】
2013091350.tif 000021
【０２９５】
つまり、回転角演算部３４は、出力信号Ｖ１（＝sinθ）と、出力信号Ｖ２（＝cos（θ＋α））と、sinαと、cosαとから、位相差誤差αが補正された信号Ｖ２’（＝cosθ）を求める。なお、式(45)は、cos（θ＋α)を三角関数の加法定理により展開した式に基づいて、導出することができる。
次に、回転角演算部３４は、位相差誤差αが補正された信号Ｖ２’（＝cosθ）と、ステップＳ１３１で取り込まれた出力信号Ｖ１（＝sinθ）とを用い、次式(46)に基づいて、ロータ１の回転角θを演算する（ステップＳ１３３）。
【０２９６】
θ＝tan−１（sinθ／cosθ）
＝tan−１（Ｖ１／Ｖ２’）…(46)
図２８は、第２の実施形態における制御部１３の全体的な動作を示すフローチャートである。
図２８において、図９に示された各ステップと同様の処理が行われるステップには、図９中と同一参照符号を付して示す。
【０２９７】
イグニッションキーがオンされることにより、ＥＣＵ１１の電源がオンされると、全体制御部３１は、ＥＰＳ用リレーＲ１，Ｒ２をオンさせる（ステップＳ２１）。次に、全体制御部３１は、回転角演算部３４を起動させる（ステップＳ２２）。これにより、回転角演算部３４は、図２７を用いて説明した回転角演算処理を開始する。この際、回転角演算部３４は、回転角演算部３４の不揮発性メモリに記憶されている位相差誤差αを用いて、ロータ２０の回転角を演算する。また、全体制御部３１は、位相差誤差演算部３５を起動させる（ステップＳ２２Ａ）。これにより、位相差誤差演算部３５は、図３５を用いて説明したような位相差誤差の演算処理を開始する。
【０２９８】
また、全体制御部３１は、ＥＰＳモータ制御部３３を強制回転モードで一定時間動作させる（ステップＳ２３）。これにより、ＥＰＳモータ制御部３３は、強制回転モードで、ＥＰＳモータ７を駆動する。強制回転モードでＥＰＳモータ７が回転されている間に、位相差誤差演算部３５は、位相差誤差αを演算して、回転角演算部３４に設定する（ステップＳ２３Ａ）。つまり、位相差誤差演算部３５は、回転角演算部３４の不揮発性メモリに記憶されている位相差誤差αを、新たに演算した位相差誤差αに更新する。これ以後は、回転角演算部３４は、位相差誤差演算部３５によって最新に演算された位相差誤差αを用いて、ロータ２０の回転角を演算する。
【０２９９】
前記一定時間が経過すると、全体制御部３１は、ＥＰＳ用リレーＲ１，Ｒ２をオフさせる（ステップＳ２４）。そして、ステップＳ２５以降の処理を行う。
第２の実施形態では、イグニッションキーがオンされてからステアリングホイール１のロックが開錠されるまでの間に、両磁気センサ２１，２２の最新の角度間隔に応じた位相差誤差αを演算して、回転角演算部３４に設定することができる。したがって、回転角演算部３４は、ステアリングホイール１のロックが開錠された直後から、精度の高いロータ回転角を演算することができる。これにより、ステアリングホイール１の操作が可能となった直後から、ＥＰＳモータ７を適切に制御することができるようになる。
【０３００】
次に、図２９〜図３３を参照して、この発明の第３の実施形態について説明する。
この発明の第３の実施形態では、回転角検出装置の構成および全体制御部３１の動作が、前記第１の実施形態と異なっている。
図２９は、回転角検出装置の構成を示している。
回転角検出装置は、ＥＰＳモータ７のロータの回転に応じて回転する検出用ロータ２０と、磁気センサ２１，２２と、回転角演算部３４と、図２に破線で示す補正ゲイン演算部３６とを含んでいる。
【０３０１】
ＥＰＳモータ７のロータには、４組の磁極対が設けられているものとする。検出用ロータ２０（以下、ロータ２０という）は、ＥＰＳモータ７のロータに設けられている磁極対に相当する複数の磁極対を有する円筒状の磁石（多極磁石）２０ａを含んでいる。
磁石２０ａは、４組の磁極対（Ｍ１，Ｍ２）（Ｍ３，Ｍ４）（Ｍ５，Ｍ６）（Ｍ７，Ｍ８）を有している。つまり、磁石２０ａは、等角度間隔で配置された８個の磁極Ｍ１〜Ｍ８を有している。各磁極Ｍ１〜Ｍ８は、ロータ２０の回転中心軸を中心として、４５°（電気角では１８０°）の角度間隔で配置されている。各磁極Ｍ１〜Ｍ８の磁力の大きさは、一定である。
【０３０２】
ロータ２０における回転中心軸に直交する一端面の外方には、磁石２０ａの環状端面に対向する２つの磁気センサ２１，２２が配置されている。これらの磁気センサ２１，２２は、ロータ２０の回転中心軸を中心として電気角で９０°の角度間隔で配置されている。以下において、一方の磁気センサ２１を第１の磁気センサ２１といい、他方の磁気センサ２２を第２の磁気センサ２２という場合がある。
【０３０３】
各磁気センサ２１，２２とロータ２０の端面との間のギャップが小さいと、各磁気センサ２１，１２の出力信号Ｖ１，Ｖ２に３次高調波成分が重畳され、それらの出力信号波形に歪が発生する。たとえば、図３０に示すように、磁気センサ２１と検出用ロータ２０との間のギャップが小さくなるほど、磁気センサ２１の出力信号の歪量は大きくなる。
図２９に矢印で示す方向をロータ２０の正方向の回転方向とする。そして、ロータ２０が正方向に回転されるとロータ２０の回転角が大きくなり、ロータ２０が逆方向に回転されると、ロータ２０の回転角が小さくなるものとする。ロータ２０の回転角（電気角）をθとすると、３次高調波成分が重畳されていない場合には、第１の磁気センサ２１の出力信号Ｖ１は、Ｖ１＝Ａ１・sinθと表され、第２の磁気センサ２２の出力信号Ｖ２は、Ｖ２＝Ａ２・sin（θ＋９０°）＝Ａ２・cosθと表される。Ａ１，Ａ２は、それぞれ振幅を表している。これらの振幅Ａ１，Ａ２が互いに等しい値Ａであるとみなすか、あるいは両振幅が所定の規定値Ａとなるように両信号Ｖ１，Ｖ２を正規化したとすると、両信号Ｖ１，Ｖ２は、それぞれ、Ａ・sinθおよびＡ・cosθと表される。ここで、Ａ＝１とすると、両信号Ｖ１，Ｖ２は、それぞれ、sinθおよびcosθ）と表される。そこで、３次高調波成分が重畳されていない場合には、第１の磁気センサ２１からはＶ１＝sinθで表される出力信号Ｖ１が出力され、第２の磁気センサ２２からはＶ２＝cosθで表される出力信号Ｖ２が出力されるものとする。
【０３０４】
この実施形態では、各磁気センサ２１，２２と磁石２０ａとのギャップが小さいため、各磁気センサ２１，２２の出力信号には、３次高調波成分が重畳されているものとする。したがって、この実施形態には、３次高調波成分のゲインをＫ（０＜Ｋ＜１）とすると、第１の磁気センサ２１からは、次式(47)で表される第１の出力信号Ｖ１が出力され、第２の磁気センサ２２からは次式(48)で表される第２の出力信号Ｖ２が出力されるものとする。
【０３０５】
【数１６】
2013091350.tif 000022
【０３０６】
第１の出力信号Ｖ１および第２の出力信号Ｖ１は、補正ゲイン演算部３６および回転角演算部３４に入力される。
回転角演算部３４の不揮発性メモリには、各出力信号Ｖ１，Ｖ２から３次高調波成分を除去するために用いられる補正ゲインＧ（＝４Ｋ／（１−Ｋ））を記憶するためのエリアが設けられている。ＥＰＳモータ７の出荷時においては、前記エリアには、予め求められた補正ゲインＧの初期値が記憶されている。回転角演算部３４は、不揮発性メモリに記憶されている補正ゲインＧと、両磁気センサ２１，２２の出力信号Ｖ１，Ｖ２とに基づいて、ロータ２０の回転角（電気角）を演算する。
【０３０７】
補正ゲイン演算部３６は、強制回転モードでＥＰＳモータ７が回転駆動されているときに、磁気センサ２１，２２の出力信号Ｖ１，Ｖ２に基づいて、それらの出力信号に含まれる３次高調波成分に応じた補正ゲインＧを演算し、得られた補正ゲインＧを回転角演算部３４に設定する。つまり、回転角演算部３４の不揮発性メモリに記憶されている補正ゲインＧを、新たに演算された補正ゲインＧに更新する。
【０３０８】
図２９に示すように、回転角演算部３４は、第１の３次高調波成分除去部５１と、第２の３次高調波成分除去部５２と、ロータ角演算部５３とを含んでいる。第１の３次高調波成分除去部５１は、第１の出力信号Ｖ１から３次高調波成分が除去されるように、第１の出力信号Ｖ１を補正する。具体的には、第１の３次高調波成分除去部５１は、第１の磁気センサ２１の出力信号Ｖ１から３次高調波成分が除去された信号sinθの近似値（sinθ）ｎを演算する。
【０３０９】
第２の３次高調波成分除去部５２は、第２の出力信号Ｖ２から３次高調波成分が除去されるように、第２の出力信号Ｖ２を補正する。具体的には、第２の３次高調波成分除去部５２は、第２の磁気センサ２２の出力信号Ｖ２から３次高調波成分が除去された信号cosθの近似値（cosθ）ｎを演算する。
ロータ角演算部５３は、第１の３次高調波成分除去部５１によって演算されたsinθの近似値（sinθ）ｎと、第２の３次高調波成分除去部５２によって演算されたcosθの近似値（cosθ）ｎとに基づいて、ロータ２０の回転角θを演算する。具体的には、次式(49)に基づいて、ロータ２０の回転角θを演算する。
【０３１０】
θ＝tan−１｛（sinθ）ｎ／（cosθ）ｎ｝      …（49）
以下、第１の３次高調波成分除去部５１および第２の３次高調波成分除去部５２の動作について説明する。
まず、第１の３次高調波成分除去部５１の動作について説明する。
前記式(47)を変形することにより、次式（50）を導くことができる。
【０３１１】
【数１７】
2013091350.tif 000023
【０３１２】
前記式(50)の右辺における｛４Ｋ／（１−Ｋ）｝が補正ゲインＧである。補正ゲインＧととしては、不揮発性メモリに記憶されている補正ゲインＧが用いられる。次式(51)は、前記式(50)に基づいて、第１の磁気センサ２１の出力信号Ｖ１から３次高調波成分が除去された信号sinθの近似値（sinθ）ｎを演算するための演算式を示している。
【０３１３】
【数１８】
2013091350.tif 000024
【０３１４】
前記式(51)に示すように、前記式(50)の右辺の（１−sin２θ）の項におけるsinθとして、第１の磁気センサ２１の出力信号Ｖ１を用いることにより、演算回数が１回目のsinθの近似値（sinθ）１を演算することができる。また、演算回数が１回目のsinθの近似値（sinθ）１を、前記式(50)の右辺の（１−sin２θ）の項におけるsinθとして用いることにより、演算回数が２回目のsinθの近似値（sinθ）２を演算することができる。つまり、ｉ（ｉは１以上の整数）を演算回数とすると、演算回数が２回目以降のsinθの近似値（sinθ）ｉ＋１は、その１回前に演算されたsinθの近似値（sinθ）ｉを、前記式(50)の右辺の（１−sin２θ）の項におけるsinθとして用いることによって演算することができる。演算回数が多くなるほど、精度の高い近似値が得られる。
【０３１５】
第１の３次高調波成分除去部５１は、上記のような演算をｎ回行なうことにより、演算回数がｎ回目のsinθの信号値（sinθ）ｎを演算する。演算回数ｎは任意であってもよい。つまり、演算回数ｎは１であってもよいし、２以上の値であってもよい。この実施形態では、演算回数ｎは、２または３に設定される。
次に、第２の３次高調波成分除去部５２の動作について説明する。
【０３１６】
前記式(48)を変形することにより、次式(52)を導くことができる。
【０３１７】
【数１９】
2013091350.tif 000025
【０３１８】
前記式(52)の右辺における｛４Ｋ／（１−Ｋ）｝が補正ゲインＧである。補正ゲインＧととしては、不揮発性メモリに記憶されている補正ゲインＧが用いられる。次式(53)は、前記式(52)に基づいて、第２の磁気センサ２２の出力信号Ｖ２から３次高調波成分が除去された信号cosθの近似値（cosθ）ｎを演算するための演算式を示している。
【０３１９】
【数２０】
2013091350.tif 000026
【０３２０】
前記式(53)に示すように、前記式(52)の右辺の（１−cos２θ）の項におけるcosθとして、第２の磁気センサ２２の出力信号Ｖ２を用いることにより、演算回数が１回目のcosθの近似値（cosθ）１を演算することができる。また、演算回数が１回目の近似値（cosθ）１を、前記式(52)の右辺の（１−cos２θ）の項におけるcosθとして用いることにより、演算回数が２回目のcosθの近似値（cosθ）２を演算することができる。つまり、ｉ（ｉは１以上の整数）を演算回数とすると、演算回数が２回目以降のcosθの近似値（cosθ）ｉ＋１は、その１回前に演算されたcosθの近似値（cosθ）ｉを、前記式(52)の右辺の（１−cos２θ）の項におけるcosθとして用いることによって演算することができる。演算回数が多くなるほど、精度の高い近似値が得られる。
【０３２１】
第２の３次高調波成分除去部５２は、上記のような演算をｎ回行なうことにより、演算回数がｎ回目の信号値（cosθ）ｎを演算する。演算回数ｎは任意であってもよい。つまり、演算回数ｎは１であってもよいし、２以上の値であってもよい。この実施形態では、演算回数ｎは、２または３に設定される。
図３１は、回転角演算部３４によって実行される回転角演算処理の手順を示すフローチャートである。
【０３２２】
回転角演算部３４が起動されると、回転角演算部３４は、図３１に示される回転角演算処理を、所定の演算周期毎に繰り返し行う。
回転角演算部３４は、磁気センサ２１，２２の出力信号Ｖ１，Ｖ２を取り込む（ステップＳ１４１）。そして、回転角演算部３４は、ステップＳ１４１で取り込まれた各出力信号Ｖ１，Ｖ２から３次高周波成分を除去する（ステップＳ１４２）。具体的には、第１の３次高周波成分除去部５１によって、第１の出力信号Ｖ１から３次高周波成分が除去された信号sinθの近似値（sinθ）ｎが演算される。また、第２の３次高周波成分除去部５２によって、第２の出力信号Ｖ２から３次高周波成分が除去された信号cosθの近似値（cosθ）ｎが演算される。この際、補正ゲインＧとしては、不揮発性メモリに記憶されている補正ゲインが用いられる。
【０３２３】
次に、回転角演算部３４のロータ角演算部５３は、第１の３次高周波成分除去部５１によって演算されたsinθの近似値（sinθ）ｎと、第２の３次高周波成分除去部５２によって演算されたcosθの近似値（sinθ）ｎを用い、前記式(49)に基づいて、ロータ２０の回転角θを演算する（ステップＳ１４３）。そして、今演算周期の処理を終了する。  図３２は、補正ゲイン演算部３６によって実行される補正ゲイン演算処理の手順を示すフローチャートである。
【０３２４】
補正ゲイン演算部３６は、強制回転モードでＥＰＳモータ７が回転駆動されているときに、出力信号Ｖ１，Ｖ１に基づいて、補正ゲインＧを修正するための補正ゲイン修正処理を複数回行なうことにより、出力信号Ｖ１，Ｖ１に含まれている３次高調波成分に応じた補正ゲインを演算する。補正ゲイン修正処理において、修正前の補正ゲインＧをＧｍで表し、修正後の補正ゲインＧをＧｍ＋１で表すことにする。
【０３２５】
補正ゲイン演算部３６が起動されると、補正ゲイン演算部３６は、修正前の補正ゲインＧｍとして、回転角演算部３４の不揮発性メモリに記憶されている補正ゲインＧを設定する（ステップＳ１５１）。
次に、補正ゲイン演算部３６は、第１の出力信号Ｖ１および第２の出力信号Ｖ２を取り込む（ステップＳ１５２）。そして、補正ゲイン演算部３６は、第１の出力信号Ｖ１と修正前の補正ゲインＧｍと前記式（51)を用いてsinθの近似値（sinθ）ｎを演算するとともに、第２の出力信号Ｖ２と修正前の補正ゲインＧｍと前記式（53)を用いてcosθの近似値（cosθ）ｎを演算する（ステップＳ１５３）。
【０３２６】
次に、補正ゲイン演算部３６は、演算された（sinθ）ｎの絶対値と演算された（cosθ）ｎの絶対値との差の絶対値（以下、「回転角判定用絶対値」という）が所定値Ｆ以下であるか否かを判別する（ステップＳ１５４）。所定値Ｆは、例えば、０．１である。後述するように、ロータ２０の回転角θが、電気角で４５度付近、１３５度付近、２２５度付近または３１５度付近の角度である場合に、補正ゲインＧを修正することが好ましい。ロータ２０の回転角θが前記所定角度付近（電気角で４５度付近、１３５度付近、２２５度付近または３１５度付近）の角度である場合には、（sinθ）ｎの絶対値と（cosθ）ｎの絶対値とはほぼ等しい値となる。そこで、ステップＳ１５４では、前記のような判定を行なうことにより、回転角θが、前記所定角度付近の角度であるか否かを判別している。
【０３２７】
前記回転角判定用絶対値が所定値Ｆ以下である場合には、ロータ２０の回転角θが前記所定角度付近の角度であるので、補正ゲイン演算部３６は、補正ゲイン修正処理を行なう（ステップＳ１５５）。具体的には、補正ゲイン演算部３６は、次式（54）に基づいて、補正ゲインＧｍを修正する（ステップＳ１５５）。
Ｇｍ＋１＝Ｇｍ＋Ｌ×（（sinθ）ｎ２＋（cosθ）ｎ２＋１）  …(54)
前記式(54)において、Ｇｍ＋１は修正後の補正ゲインを表している。また、前記式(54)において、Ｌは予め設定された定数であり、例えば０．１に設定される。
【０３２８】
次に、補正ゲイン演算部３６は、前記ステップＳ１５５で演算された修正後の補正ゲインＧｍ＋１を、修正前の補正ゲインＧｍとして設定した後（ステップＳ１５６）、補正ゲイン演算部３６が起動されてから所定時間ＴＡが経過したか否かを判別する（ステップＳ１５７）。この所定時間ＴＡは、強制回転モードでＥＰＳモータ７が駆動制御される時間より若干短い時間に設定されている。
【０３２９】
所定時間ＴＡが経過していなけければ、補正ゲイン演算部３６は、ステップＳ１５２に戻る。これにより、ステップＳ１５２以降の処理が再度実行される。この場合には、ステップＳ１５３においては修正後の補正ゲインを用いて、（sinθ）ｎと（cosθ）ｎとが演算されることになる。
前記ステップＳ１５４において、前記回転角判定用絶対値が所定値Ｆより大きいと判別された場合には（ステップＳ１５４：ＮＯ）、ロータ２０の回転角θが前記所定角度付近の角度ではないので、補正ゲイン演算部３６は、ステップＳ１５５の補正ゲインの修正処理を行なうことなく、ステップＳ１５８に移行する。ステップＳ１５８では、補正ゲイン演算部３６は、補正ゲイン演算部３６が起動されてから所定時間ＴＡが経過したか否かを判別する。
【０３３０】
所定時間ＴＡが経過していない場合には（Ｓ１５８：ＮＯ）、補正ゲイン演算部３６は、ステップＳ１５２に戻る。これにより、ステップＳ１５２以降の処理が再度実行されることになる。
前記ステップＳ１５７または前記ステップＳ１５８において、所定時間ＴＡが経過していると判別された場合には（Ｓ１５７またはＳ１５８：ＹＥＳ）、補正ゲイン演算部３６は、その時点における修正前の補正ゲインＧｍ（ステップＳ１５５において最後に修正された補正ゲインＧｍ＋１）を回転角演算部３４に設定する（ステップＳ１５９）。つまり、補正ゲイン演算部３６は、回転角演算部３４の不揮発性メモリに記憶されている補正ゲインＧを、ステップＳ１５５において最後に修正された補正ゲインＧｍ＋１に更新する。そして、補正ゲイン演算処理を終了する。
【０３３１】
前記ステップＳ１５３で演算される（sinθ）ｎおよび（cosθ）ｎに３次高調波成分が含まれている場合には、｛（sinθ）１２＋（cosθ）１２｝は、３次高調波成分の影響で１より大きな値となる。また、｛（sinθ）１２＋（cosθ）１２｝は、（sinθ）ｎおよび（cosθ）ｎの演算に用いられた補正ゲインＧｍが適正値に近いほど、１に近い値となる。そこで、｛（sinθ）１２＋（cosθ）１２｝が１とかけ離れている量に基づいて、補正ゲインＧｍを修正することにより、適正値により近い補正ゲインＧｍ＋１を演算することができる。
【０３３２】
一方、（sinθ）ｎおよび（cosθ）ｎに３次高調波成分が含まれている場合には、｛（sinθ）１２＋（cosθ）１２｝は、理論的には、ロータ２０の回転角θが、４５°、１３５°、２２５°または３１５°であるときに最大となる。したがって、ロータ２０の回転角がこれらの回転角付近にあるときの、｛（sinθ）１２＋（cosθ）１２｝が１からかけ離れている量を基準として、補正ゲインＧｍを修正することが好ましい。そこで、この実施形態では、ロータ２０の回転角がこれらの回転角付近にあるときにのみ、補正ゲインＧｍを修正するようにしている（ステップＳ１５４，Ｓ１５５参照）。
【０３３３】
また、補正ゲインＧｍが修正されると、次回のステップＳ１５３においては、修正後の補正ゲインを用いてより精度の高い（sinθ）ｎおよび（cosθ）ｎを演算し、それに基づいて補正ゲインＧｍを修正するといった動作を繰り返しているので、精度の高い補正ゲインを求めることができる。
図３３は、第３の実施形態における制御部１３の全体的な動作を示すフローチャートである。
【０３３４】
図３３において、図９に示された各ステップと同様の処理が行われるステップには、図９中と同一参照符号を付して示す。
イグニッションキーがオンされることにより、ＥＣＵ１１の電源がオンされると、全体制御部３１は、ＥＰＳ用リレーＲ１，Ｒ２をオンさせる（ステップＳ２１）。次に、全体制御部３１は、回転角演算部３４を起動させる（ステップＳ２２）。これにより、回転角演算部３４は、図３１を用いて説明した回転角演算処理を開始する。この際、回転角演算部３４は、不揮発性メモリに記憶されている補正ゲインＧを用いて、ロータ２０の回転角を演算する。また、全体制御部３１は、補正ゲイン演算部３６を起動させる（ステップＳ２２Ｂ）。これにより、補正ゲイン演算部３６は、図３２を用いて説明したような補正ゲイン演算処理を開始する。
【０３３５】
また、全体制御部３１は、ＥＰＳモータ制御部３３を強制回転モードで一定時間動作させる（ステップＳ２３）。これにより、ＥＰＳモータ制御部３３は、強制回転モードで、ＥＰＳモータ７を駆動する。強制回転モードでＥＰＳモータ７が回転されている間に、補正ゲイン演算部３６は、適正値により近い補正ゲインＧｍを演算して、回転角演算部３４に設定する（ステップＳ２３Ｂ）。これ以後は、回転角演算部３４は、補正ゲインＧとして補正ゲイン演算部３６によって設定された適正値により近い補正ゲインＧｍを用いて、ロータ２０の回転角を演算する。
【０３３６】
前記一定時間が経過すると、全体制御部３１は、ＥＰＳ用リレーＲ１，Ｒ２をオフさせる（ステップＳ２４）。そして、ステップＳ２５以降の処理を行う。
第３の実施形態では、イグニッションキーがオンされてからステアリングホイール１のロックが開錠されるまでの間に、出力信号Ｖ１，Ｖ２に含まれている３次高調波成分に応じた適正値により近い補正ゲインＧｍを演算して、回転角演算部３４に設定することができる。したがって、回転角演算部３４は、ステアリングホイール１のロックが開錠された直後から、精度の高いロータ回転角を演算することができる。これにより、ステアリングホイール１の操作が可能となった直後から、ＥＰＳモータ７を適切に制御することができるようになる。
【０３３７】
なお、回転角演算部３４内の第１および第２の３次高調波成分除去部５１，５２は、演算回数が２回目以降の（i＋１）回目の近似値（sinθ）ｉ＋１および（cosθ）ｉ＋１を演算する際の補正ゲインＧｉ＋１を、演算回数がそれより１回前のｉ回目のsinθの近似値（sinθ）ｉおよびcosθの近似値（cosθ）ｉおよび補正ゲインＧｉから算出するようにしてもよい。具体的には、演算回数が（ｉ＋１）回目の近似値（sinθ）ｉ＋１および（cosθ）ｉ＋１を演算する際の補正ゲインＧｉ＋１を、次式(55)により、演算するようにしてもよい。
【０３３８】
Ｇｉ＋１＝Ｇｉ＋Ｚ×［｛（sinθ）ｉ２＋（cosθ）ｉ２｝−１］  …(55)
Ｇｉ＋１:演算回数が（ｉ＋１）回目の近似値演算に用いられる補正ゲイン
Ｇｉ  :演算回数がｉ回目の近似値演算に用いられる補正ゲイン
Ｚ  ：予め設定された定数（例えばＺ＝０．１）
その他、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。
【符号の説明】
【０３３９】
５…ステアリングシャフト、３…電動パワーステアリング装置、４…ステアリングロック装置、７…ＥＰＳモータ、１０…ロックモータ、１１…ＥＣＵ、１２…駆動回路、１３…制御部、２０…検出用ロータ、２０ａ…多極磁石、２１，２２，２３…磁気センサ、３１…全体制御部、３２…ロックモータ制御部、３３…ＥＰＳモータ制御部、３４…回転角演算部、３５…位相差誤差演算部、３６…補正ゲイン演算部、Ｒ１〜Ｒ４…リレー
【図１】
2013091350.tif 000027
【図２】
2013091350.tif 000028
【図３】
2013091350.tif 000029
【図４】
2013091350.tif 000030
【図５】
2013091350.tif 000031
【図６】
2013091350.tif 000032
【図７】
2013091350.tif 000033
【図８】
2013091350.tif 000034
【図９】
2013091350.tif 000035
【図１０】
2013091350.tif 000036
【図１１】
2013091350.tif 000037
【図１２】
2013091350.tif 000038
【図１３】
2013091350.tif 000039
【図１４】
2013091350.tif 000040
【図１５】
2013091350.tif 000041
【図１６】
2013091350.tif 000042
【図１７】
2013091350.tif 000043
【図１８】
2013091350.tif 000044
【図１９】
2013091350.tif 000045
【図２０】
2013091350.tif 000046
【図２１】
2013091350.tif 000047
【図２２】
2013091350.tif 000048
【図２３】
2013091350.tif 000049
【図２４】
2013091350.tif 000050
【図２５】
2013091350.tif 000051
【図２６】
2013091350.tif 000052
【図２７】
2013091350.tif 000053
【図２８】
2013091350.tif 000054
【図２９】
2013091350.tif 000055
【図３０】
2013091350.tif 000056
【図３１】
2013091350.tif 000057
【図３２】
2013091350.tif 000058
【図３３】
2013091350.tif 000059
【図３４】
2013091350.tif 000060
【図３５】
2013091350.tif 000061