(57)【要約】【課題】精度の高い回転角を検出できる回転角検出装置を提供する。【解決手段】３つの磁気センサ７１，７２，７３のうちの２つの磁気センサが３サンプリング周期連続して共に同じ１つの磁極を検出しているという条件を満たしている場合には、それらの２つの磁気センサにおける３サンプリング分の出力信号に基づいて、回転角が演算される。また、これらの３サンプリング分の出力信号が一定の要件を満たしているときには、それらの２つの磁気センサが検出している磁極に対応する角度幅誤差補正値（磁極幅補正値）および振幅が演算され、当該磁極に関連付けて記憶される。前記条件を満たしていない場合には、３つの磁気センサのうち、その角度幅誤差補正値がメモリに記憶されている磁極を検出している１つの磁気センサを含む２つの磁気センサの出力信号と、メモリに記憶されている情報とを用いて回転角が演算される。【選択図】図５
2014115261.tif 000002
【特許請求の範囲】
【請求項１】
回転体の回転に応じて回転し、複数の磁極を有する多極磁石と、
前記多極磁石の回転に応じて、互いに所定の位相差を有する正弦波信号をそれぞれ出力する３つの磁気センサと、
前記各磁気センサの出力信号を所定時間毎にサンプリングするサンプリング手段と、
前記３つの磁気センサのうちの２つの磁気センサが共に同じ１つの磁極を３サンプリング周期連続して検出しているという条件を満たしているときには、それらの２つの磁気センサの３サンプリング分の出力信号に基づいて、前記回転体の回転角を演算するとともに、常にまたは前記３サンプリング分の出力信号が一定の要件を満たしているときには、それらの２つの磁気センサが検出している磁極の磁極幅に関する情報およびそれらの２つの磁気センサの出力信号の振幅に関する情報を演算して当該磁極に関連付けて記憶する第１演算手段と、
前記条件を満たしていないときには、前記３つの磁気センサのうち、磁極幅に関する情報が関連付けて記憶されている磁極を検出している１つの磁気センサを含む２つの磁気センサの１サンプリング分の出力信号と、前記第１演算手段によって記憶されている前記情報とを用いて、前記回転体の回転角を演算する第２演算手段と、を含む回転角演算装置。
【請求項２】
前記３つの磁気センサを第１磁気センサ、第２磁気センサおよび第３磁気センサとすると、前記第１磁気センサの出力信号と前記第２磁気センサの出力信号との位相差が１２０度であり、前記第１磁気センサの出力信号と前記第３磁気センサの出力信号との位相差が２４０度である、請求項１に記載の回転角演算装置。
【請求項３】
前記磁極の磁極幅に関する情報が、前記磁極の磁極幅誤差に基づく回転角誤差を補正するための磁極幅誤差補正値であり、
前記第１磁気センサの出力信号の振幅をＡ１、前記第１磁気センサが検出している磁極に対応する磁極幅誤差補正値をＥ１、前記回転体の回転角をθとすると、前記第１磁気センサの出力信号Ｓ１は、Ｓ１＝Ａ１sin（Ｅ１θ）で表され、
前記第２磁気センサの出力信号の振幅をＡ２、前記第２磁気センサが検出している磁極の磁極幅誤差補正値Ｅ２とすると、前記第２磁気センサの出力信号Ｓ２は、Ｓ２＝Ａ２sin（Ｅ２θ＋１２０）で表され、
前記第３磁気センサの出力信号の振幅をＡ３、前記第３磁気センサが検出している磁極の磁極幅誤差補正値Ｅ３とすると、前記第３磁気センサの出力信号Ｓ３は、Ｓ３＝Ａ３sin（Ｅ３θ＋２４０）で表される、請求項２に記載の回転角演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、回転体の回転角を検出する回転角検出装置に関する。
【背景技術】
【０００２】
回転体の回転角を検出する回転角検出装置として、ブラシレスモータの回転に応じて回転する検出用ロータを用いて、ブラシレスモータのロータの回転角を検出する回転角検出装置が知られている。具体的には、図１６に示すように、検出用ロータ２０１（以下、「ロータ２０１」という）は、ブラシレスモータのロータに設けられている磁極対に相当する複数の磁極対を有する円筒状の磁石２０２を備えている。ロータ２０１の周囲には、２つの磁気センサ２２１，２２２が、ロータ２０１の回転中心軸を中心として所定の角度間隔をおいて配置されている。各磁気センサ２２１，２２２からは、所定の位相差を有する正弦波信号が出力される。これらの２つの正弦波信号に基づいて、ロータ２０１の回転角（ブラシレスモータのロータの回転角）が検出される。
【０００３】
この例では、磁石２０２は、５組の磁極対を有している。つまり、磁石１０２は、等角度間隔で配置された１０個の磁極を有している。各磁極は、ロータ２０１の回転中心軸を中心として、３６°（電気角では１８０°）の角度間隔で配置されている。また、２つの磁気センサ２２１，２２２は、ロータ２０１の回転中心軸を中心として１８°（電気角では９０°）の角度間隔をおいて配置されている。
【０００４】
図１６に矢印で示す方向を検出用ロータ２０１の正方向の回転方向とする。そして、ロータ２０１が正方向に回転されるとロータ２０１の回転角が大きくなり、ロータ２０１が逆方向に回転されると、ロータ２０１の回転角が小さくなるものとする。各磁気センサ２２１，２２２からは、図１７に示すように、ロータ２０１が１磁極対分に相当する角度（７２°（電気角では３６０°））を回転する期間を一周期とする正弦波信号Ｓ１，Ｓ２が出力される。
【０００５】
ロータ２０１の１回転分の角度範囲を、５つの磁極対に対応して５つの区間に分け、各区間の開始位置を０°とし終了位置を３６０°として表したロータ２０１の回転角を、ロータ２０１の電気角θということにする。
ここでは、第１磁気センサ２２１からは、Ｓ１＝Ａ１・sinθの出力信号が出力され、第２磁気センサ２２２からは、Ｓ２＝Ａ２・cosθの出力信号が出力されるものとする。Ａ１，Ａ２は、振幅である。両出力信号Ｓ１，Ｓ２の振幅Ａ１，Ａ２が互いに等しいとみなすと、ロータ２０１の電気角θは、両出力信号Ｓ１，Ｓ２を用いて、次式に基づいて求めることができる。
【０００６】
θ＝tan−１（sinθ／cosθ）
＝tan−１（Ｓ１／Ｓ２）  
このようにして、求められた電気角θを使って、ブラシレスモータを制御する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開2008-26297号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
前述したような従来の回転角検出装置においては、両磁気センサ２２１，２２２の出力信号Ｓ１，Ｓ２の振幅Ａ１，Ａ２が等しいとみなして回転角θを演算しているが、両出力信号Ｓ１，Ｓ２の振幅Ａ１，Ａ２は、両磁気センサ２２１，２２２の温度特性のばらつきおよび温度変化に応じて変化する。このため、両磁気センサ２２１，２２２の温度特性のばらつきおよび温度変化によって、ロータの回転角の検出に誤差が発生する。
【０００９】
この発明の目的は、精度の高い回転角を検出できる回転角検出装置を提供することである。
【課題を解決するための手段】
【００１０】
請求項１記載の発明は、回転体（８）の回転に応じて回転し、複数の磁極を有する多極磁石（６１）と、前記多極磁石の回転に応じて、互いに所定の位相差を有する正弦波信号をそれぞれ出力する３つの磁気センサ（７１，７２，７３）と、前記各磁気センサの出力信号を所定時間毎にサンプリングするサンプリング手段（７７Ａ，Ｓ６１）と、前記３つの磁気センサのうちの２つの磁気センサが共に同じ１つの磁極を３サンプリング周期連続して検出しているという条件を満たしているときには、それらの２つの磁気センサの３サンプリング分の出力信号に基づいて、前記回転体の回転角を演算するとともに、常にまたは前記３サンプリング分の出力信号が一定の要件を満たしているときに、それらの２つの磁気センサが検出している磁極の磁極幅に関する情報およびそれらの２つの磁気センサの出力信号の振幅に関する情報を演算して当該磁極に関連付けて記憶する第１演算手段（７７Ａ，Ｓ６４〜Ｓ６７，Ｓ６８〜Ｓ７１）と、前記条件を満たしていないときには、前記３つの磁気センサのうち、磁極幅に関する情報が関連付けて記憶されている磁極を検出している１つの磁気センサを含む２つの磁気センサの１サンプリング分の出力信号と、前記第１演算手段によって記憶されている前記情報とを用いて、前記回転体の回転角を演算する第２演算手段（７７Ａ，Ｓ７２〜Ｓ７６）と、を含む回転角演算装置である。なお、括弧内の英数字は、後述の実施形態における対応構成要素等を表すが、むろん、この発明の範囲は当該実施形態に限定されない。以下、この項において同じ。
【００１１】
この発明では、３つの磁気センサのうちの２つの磁気センサが共に同じ１つの磁極を３サンプリング周期連続して検出しているという条件を満たしているときには、それらの２つの磁気センサの３サンプリング分の出力信号に基づいて回転体の回転角が演算されるので、精度の高い回転角を演算することができる。また、前記条件を満たしていないときには、磁極幅に関する情報が関連付けて記憶されている磁極を検出している１つの磁気センサを含む２つの磁気センサの１サンプリング分の出力信号と、第１演算手段によって記憶されている情報とを用いて、回転角が演算されるので、第１演算手段の検出精度に近い検出精度で回転角を演算することができる。
【００１２】
請求項２記載の発明は、前記３つの磁気センサを第１磁気センサ、第２磁気センサおよび第３磁気センサとすると、前記第１磁気センサの出力信号と前記第２磁気センサの出力信号との位相差が１２０度であり、前記第１磁気センサの出力信号と前記第３磁気センサの出力信号との位相差が２４０度である、請求項１に記載の回転角演算装置である。
この構成では、第１磁気センサおよび第２磁気センサの組み合わせからなる２つの磁気センサがそれぞれ異なる磁極を検出しているときには、第２磁気センサおよび第３磁気センサの組み合わせからなる２つの磁気センサが共に同じ一つの磁極を検出する。逆に、第２磁気センサおよび第３磁気センサの組み合わせからなる２つの磁気センサがそれぞれ異なる磁極を検出しているときには、第１磁気センサおよび第２磁気センサの組み合わせからなる２つの磁気センサが共に同じ一つの磁極を検出する。したがって、３つの磁気センサのうちの２つの磁気センサが共に同じ１つの磁極を３サンプリング周期連続して検出しているという条件を満たす確率が高くなる。これにより、高い精度で回転角を演算できる第１演算手段によって回転角を演算できる確率が高くなる。
【００１３】
請求項３記載の発明は、前記磁極の磁極幅に関する情報が、前記磁極の磁極幅誤差に基づく回転角誤差を補正するための磁極幅誤差補正値であり、前記第１磁気センサの出力信号の振幅をＡ１、前記第１磁気センサが検出している磁極に対応する磁極幅誤差補正値をＥ１、前記回転体の回転角をθとすると、前記第１磁気センサの出力信号Ｓ１は、Ｓ１＝Ａ１sin（Ｅ１θ）で表され、前記第２磁気センサの出力信号の振幅をＡ２、前記第２磁気センサが検出している磁極の磁極幅誤差補正値Ｅ２とすると、前記第２磁気センサの出力信号Ｓ２は、Ｓ２＝Ａ２sin（Ｅ２θ＋１２０）で表され、前記第３磁気センサの出力信号の振幅をＡ３、前記第３磁気センサが検出している磁極の磁極幅誤差補正値Ｅ３とすると、前記第３磁気センサの出力信号Ｓ３は、Ｓ３＝Ａ３sin（Ｅ３θ＋２４０）で表される、請求項２に記載の回転角演算装置である。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の一実施形態に係る回転角検出装置が適用された電動パワーステアリング装置の概略構成を示す模式図である。
【図２】図２は、モータ制御用ＥＣＵの電気的構成を示す概略図である。
【図３】図３は、電動モータの構成を図解的に示す模式図である。
【図４】図４は、検出操舵トルクＴｈに対するｑ軸電流指令値Ｉｑ＊の設定例を示すグラフである。
【図５】図５は、トルクセンサの構成を図解的に示す模式図である。
【図６】図６は、第１の磁石の構成および３つの磁気センサの配置を示す模式図である。
【図７】図７は、第１磁気センサ、第２磁気センサおよび第３磁気センサの出力波形を示す模式図である。
【図８】図８Ａ、図８Ｂおよび図８Ｃは、それぞれ第３演算モード、第４演算モードおよび第５演算モードが適用される場合を説明するための模式図である。
【図９】図９は、第３演算モードを説明するための説明図である。
【図１０】図１０は、第１の回転角演算部７７Ａの動作を示すフローチャートである。
【図１１Ａ】図１１Ａは、図１０のステップＳ１の強制回転に基づく回転角演算処理の手順の一部を示すフローチャートである。
【図１１Ｂ】図１１Ｂは、図１０のステップＳ１の強制回転に基づく回転角演算処理の手順の一部を示すフローチャートである。
【図１１Ｃ】図１１Ｃは、図１０のステップＳ１の強制回転に基づく回転角演算処理の手順の一部を示すフローチャートである。
【図１２】図１２は、トルク演算用ＥＣＵ内のメモリの内容の一部を示す模式図である。
【図１３】図１３は、相対的極番号の設定処理の詳細な手順を示すフローチャートである。
【図１４】図１４は、相対的極番号の設定処理を説明するための模式図である。
【図１５Ａ】図１５Ａは、図１０のステップＳ２の通常時の回転角演算処理の手順の一部を示すフローチャートである。
【図１５Ｂ】図１５Ｂは、図１０のステップＳ２の通常時の回転角演算処理の手順の一部を示すフローチャートである。
【図１６】図１６は、従来の回転角検出装置による回転角検出方法を説明するための模式図である。
【図１７】図１７は、第１磁気センサおよび第２磁気センサの出力信号波形を示す模式図である。
【発明を実施するための形態】
【００１５】
以下では、この発明の実施形態を、添付図面を参照して詳細に説明する。
図１は、本発明の一実施形態に係る回転角検出装置が適用された電動パワーステアリング装置の概略構成を示す模式図である。
電動パワーステアリング装置１は、車両を操向するための操舵部材としてのステアリングホイール２と、このステアリングホイール２の回転に連動して転舵輪３を転舵する転舵機構４と、運転者の操舵を補助するための操舵補助機構５とを備えている。ステアリングホイール２と転舵機構４とは、ステアリングシャフト６および中間軸７を介して機械的に連結されている。
【００１６】
ステアリングシャフト６は、ステアリングホイール２に連結された入力軸８と、中間軸７に連結された出力軸９とを含む。入力軸８と出力軸９とは、トーションバー１０を介して同一軸線上で相対回転可能に連結されている。すなわち、ステアリングホイール２が回転されると、入力軸８および出力軸９は、互いに相対回転しつつ同一方向に回転するようになっている。
【００１７】
ステアリングシャフト６の周囲には、本発明の一実施形態に係る回転角検出装置が適用されたトルクセンサ（トルク検出装置）１１が設けられている。トルクセンサ１１は、入力軸８および出力軸９の相対回転変位量に基づいて、ステアリングホイール２に与えられた操舵トルクを検出する。トルクセンサ１１によって検出される操舵トルクは、モータ制御用ＥＣＵ（電子制御ユニット：Electronic  Control  Unit）１２に入力される。
【００１８】
転舵機構４は、ピニオン軸１３と、転舵軸としてのラック軸１４とを含むラックアンドピニオン機構からなる。ラック軸１４の各端部には、タイロッド１５およびナックルアーム（図示略）を介して転舵輪３が連結されている。ピニオン軸１３は、中間軸７に連結されている。ピニオン軸１３は、ステアリングホイール２の操舵に連動して回転するようになっている。ピニオン軸１３の先端には、ピニオン１６が連結されている。
【００１９】
ラック軸１４は、自動車の左右方向（直進方向に直交する方向）に沿って直線状に延びている。ラック軸１４の軸方向の中間部には、ピニオン１６に噛み合うラック１７が形成されている。このピニオン１６およびラック１７によって、ピニオン軸１３の回転がラック軸１４の軸方向移動に変換される。ラック軸１４を軸方向に移動させることによって、転舵輪３を転舵することができる。
【００２０】
ステアリングホイール２が操舵（回転）されると、この回転が、ステアリングシャフト６および中間軸７を介して、ピニオン軸１３に伝達される。そして、ピニオン軸１３の回転は、ピニオン１６およびラック１７によって、ラック軸１４の軸方向移動に変換される。これにより、転舵輪３が転舵される。
操舵補助機構５は、操舵補助力を発生するための電動モータ１８と、電動モータ１８の出力トルクを転舵機構４に伝達するための減速機構１９とを含む。電動モータ１８は、この実施形態では、三相ブラシレスモータからなる。減速機構１９は、ウォーム軸２０と、このウォーム軸２０と噛み合うウォームホイール２１とを含むウォームギヤ機構からなる。減速機構１９は、伝達機構ハウジングとしてのギヤハウジング２２内に収容されている。
【００２１】
ウォーム軸２０は、電動モータ１８によって回転駆動される。また、ウォームホイール２１は、ステアリングシャフト６とは同方向に回転可能に連結されている。ウォームホイール２１は、ウォーム軸２０によって回転駆動される。
電動モータ１８によってウォーム軸２０が回転駆動されると、ウォームホイール２１が回転駆動され、ステアリングシャフト６が回転する。そして、ステアリングシャフト６の回転は、中間軸７を介してピニオン軸１３に伝達される。ピニオン軸１３の回転は、ラック軸１４の軸方向移動に変換される。これにより、転舵輪３が転舵される。すなわち、電動モータ１８によってウォーム軸２０を回転駆動することによって、転舵輪３が転舵されるようになっている。
【００２２】
電動モータ１８のロータの回転角（ロータ回転角）は、レゾルバ等の回転角センサ２５によって検出される。回転角センサ２５の出力信号は、モータ制御用ＥＣＵ１２に入力される。電動モータ１８は、モータ制御装置としてのモータ制御用ＥＣＵ１２によって制御される。
図２は、モータ制御用ＥＣＵ１２の電気的構成を示す概略図である。
【００２３】
モータ制御用ＥＣＵ１２は、トルクセンサ１１によって検出される操舵トルクＴｈに応じて電動モータ１８を駆動することによって、操舵状況に応じた適切な操舵補助を実現する。モータ制御用ＥＣＵ１２は、マイクロコンピュータ４０と、マイクロコンピュータ４０によって制御され、電動モータ１８に電力を供給する駆動回路（インバータ回路）３１と、電動モータ１８に流れるモータ電流を検出する電流検出部３２とを備えている。
【００２４】
電動モータ１８は、例えば三相ブラシレスモータであり、図３に図解的に示すように、界磁としてのロータ１００と、Ｕ相、Ｖ相およびＷ相のステータ巻線１０１，１０２，１０３を含むステータ１０５とを備えている。電動モータ１８は、ロータの外部にステータを対向配置したインナーロータ型のものであってもよいし、筒状のロータの内部にステータを対向配置したアウターロータ型のものであってもよい。
【００２５】
各相のステータ巻線１０１，１０２，１０３の方向にＵ軸、Ｖ軸およびＷ軸をとった三相固定座標（ＵＶＷ座標系）が定義される。また、ロータ１００の磁極方向にｄ軸（磁極軸）をとり、ロータ１００の回転平面内においてｄ軸と直角な方向にｑ軸（トルク軸）をとった二相回転座標系（ｄｑ座標系。実回転座標系）が定義される。ｄｑ座標系は、ロータ１００とともに回転する回転座標系である。ｄｑ座標系では、ｑ軸電流のみがロータ１００のトルク発生に寄与するので、ｄ軸電流を零とし、ｑ軸電流を所望のトルクに応じて制御すればよい。ロータ１００の回転角（電気角）θ-Ｓは、Ｕ軸に対するｄ軸の回転角である。ｄｑ座標系は、ロータ角θ-Ｓに従う実回転座標系である。このロータ角θ-Ｓを用いることによって、ＵＶＷ座標系とｄｑ座標系との間での座標変換を行うことができる。
【００２６】
マイクロコンピュータ４０は、ＣＰＵおよびメモリ（ＲＯＭ、ＲＡＭ、不揮発性メモリなど）を備えており、所定のプログラムを実行することによって、複数の機能処理部として機能するようになっている。この複数の機能処理部には、電流指令値設定部４１と、電流偏差演算部４２と、ＰＩ（比例積分）制御部４３と、ｄｑ／ＵＶＷ変換部４４と、ＰＷＭ（Pulse Width Modulation）制御部４５と、ＵＶＷ／ｄｑ変換部４６と、回転角演算部４７とを含む。
【００２７】
回転角演算部４７は、回転角センサ２５の出力信号に基づいて、電動モータ１８のロータの回転角（電気角。以下、「ロータ角θＳ」という。）を演算する。
電流指令値設定部４１は、ｄｑ座標系の座標軸に流すべき電流値を電流指令値として設定する。具体的には、電流指令値設定部４１は、ｄ軸電流指令値Ｉｄ＊およびｑ軸電流指令値Ｉｑ＊（以下、これらを総称するときには「二相電流指令値Ｉｄｑ＊」という。）を設定する。さらに具体的には、電流指令値設定部４１は、ｑ軸電流指令値Ｉｑ＊を有意値とする一方で、ｄ軸電流指令値Ｉｄ＊を零とする。より具体的には、電流指令値設定部４１は、トルクセンサ１１によって検出される操舵トルク（検出操舵トルク）Ｔｈに基づいて、ｑ軸電流指令値Ｉｑ＊を設定する。
【００２８】
検出操舵トルクＴｈに対するｑ軸電流指令値Ｉｑ＊の設定例は、図４に示されている。検出操舵トルクＴｈは、たとえば、右方向への操舵のためのトルクが正の値にとられ、左方向への操舵のためのトルクが負の値にとられている。また、ｑ軸電流指令値Ｉｑ＊は、電動モータ１８から右方向操舵のための操作補助力を発生させるべきときには正の値とされ、電動モータ１８から左方向操舵のための操作補助力を発生させるべきときには負の値とされる。ｑ軸電流指令値Ｉｑ＊は、検出操舵トルクＴｈの正の値に対しては正をとり、検出操舵トルクＴｈの負の値に対しては負をとる。検出操舵トルクＴｈが零のときには、ｑ軸電流指令値Ｉｑ＊は零とされる。そして、検出操舵トルクＴｈの絶対値が大きくなるほど、ｑ軸電流指令値Ｉｑ＊の絶対値が大きくなるように、ｑ軸電流指令値Ｉｑ＊が設定されている。
【００２９】
電流指令値設定部４１によって設定された二相電流指令値Ｉｄｑ＊は、電流偏差演算部４２に与えられる。
電流検出部３２は、電動モータ１８のＵ相電流ＩＵ、Ｖ相電流ＩＶおよびＷ相電流ＩＷ（以下、これらを総称するときは、「三相検出電流ＩＵＶＷ」という。）を検出する。電流検出部３２によって検出された三相検出電流ＩＵＶＷは、ＵＶＷ／ｄｑ変換部４６に与えられる。
【００３０】
ＵＶＷ／ｄｑ変換部４６は、電流検出部３２によって検出されるＵＶＷ座標系の三相検出電流ＩＵＶＷ（Ｕ相電流ＩＵ、Ｖ相電流ＩＶおよびＷ相電流ＩＷ）を、ｄｑ座標系の二相検出電流ＩｄおよびＩｑ（以下総称するときには「二相検出電流Ｉｄｑ」という。）に座標変換する。この座標変換には、回転角演算部４７によって演算されたロータ角θＳが用いられる。
【００３１】
電流偏差演算部４２は、電流指令値設定部４１によって設定される二相電流指令値Ｉｄｑ＊と、ＵＶＷ／ｄｑ変換部４６から与えられる二相検出電流Ｉｄｑとの偏差を演算する。より具体的には、電流偏差演算部４２は、ｄ軸電流指令値Ｉｄ＊に対するｄ軸検出電流Ｉｄの偏差およびｑ軸電流指令値Ｉｑ＊に対するｑ軸検出電流Ｉｑの偏差を演算する。これらの偏差は、ＰＩ制御部４３に与えられる。
【００３２】
ＰＩ制御部４３は、電流偏差演算部４２によって演算された電流偏差に対するＰＩ演算を行なうことにより、電動モータ１８に印加すべき二相電圧指令値Ｖｄｑ＊（ｄ軸電圧指令値Ｖｄ＊およびｑ軸電圧指令値Ｖｑ＊）を生成する。この二相電圧指令値Ｖｄｑ＊は、ｄｑ／ＵＶＷ変換部４４に与えられる。
ｄｑ／ＵＶＷ変換部４４は、二相電圧指令値Ｖｄｑ＊を三相電圧指令値ＶＵＶＷ＊に座標変換する。この座標変換には、回転角演算部４７によって演算されたロータ角θＳが用いられる。三相電圧指令値ＶＵＶＷ＊は、Ｕ相電圧指令値ＶＵ＊、Ｖ相電圧指令値ＶＶ＊およびＷ相電圧指令値ＶＷ＊からなる。この三相電圧指令値ＶＵＶＷ＊は、ＰＷＭ制御部４５に与えられる。
【００３３】
ＰＷＭ制御部４５は、Ｕ相電圧指令値ＶＵ＊、Ｖ相電圧指令値ＶＶ＊およびＷ相電圧指令値ＶＷ＊にそれぞれ対応するデューティのＵ相ＰＷＭ制御信号、Ｖ相ＰＷＭ制御信号およびＷ相ＰＷＭ制御信号を生成し、駆動回路３１に供給する。
駆動回路３１は、Ｕ相、Ｖ相およびＷ相に対応した三相インバータ回路からなる。このインバータ回路を構成するパワー素子がＰＷＭ制御部４５から与えられるＰＷＭ制御信号によって制御されることにより、三相電圧指令値ＶＵＶＷ＊に相当する電圧が電動モータ１８の各相のステータ巻線１０１，１０２、１０３に印加されることになる。
【００３４】
電流偏差演算部４２およびＰＩ制御部４３は、電流フィードバック制御手段を構成している。この電流フィードバック制御手段の働きによって、電動モータ１８に流れるモータ電流が、電流指令値設定部４１によって設定された二相電流指令値Ｉｄｑ＊に近づくように制御される。
図５は、トルクセンサ１１の構成を図解的に示す模式図である。
【００３５】
入力軸８には、環状の第１の磁石（多極磁石）６１が一体回転可能に連結されている。第１の磁石６１の下側には、第１の磁石６１の回転に応じて互いに位相差を有する正弦波状の信号をそれぞれ出力する３つの磁気センサ７１，７２，７３が配置されている。
出力軸９には、環状の第２の磁石（多極磁石）６２が一体回転可能に連結されている。第２の磁石６２の上側には、第２の磁石６２の回転に応じて互いに位相差を有する正弦波状の信号をそれぞれ出力する３つの磁気センサ７４，７５，７６が配置されている。
【００３６】
各磁気センサ７１〜７６の出力信号Ｓ１〜Ｓ６は、入力軸８に加えられる操舵トルクを演算するためのトルク演算用ＥＣＵ７７に入力されている。トルク演算用ＥＣＵ７７の電源は、イグニッションキーがオン操作されることによってオンとなる。イグニッションキーがオフ操作されたときには、そのことを示すイグニッションキーオフ操作信号が、トルク演算用ＥＣＵ７７に入力される。なお、磁気センサとしては、たとえば、ホール素子、磁気抵抗素子（ＭＲ素子）等、磁界の作用により電気的特性が変化する特性を有する素子を備えたものを用いることができる。この実施形態では、磁気センサとしては、ホール素子が用いられている。
【００３７】
前記磁石６１，６２、前記磁気センサ７１〜７６およびトルク演算用ＥＣＵ７７によって、トルクセンサ１１が構成されている。
トルク演算用ＥＣＵ７７は、マイクロコンピュータを含んでいる。マイクロコンピュータは、ＣＰＵおよびメモリ（ＲＯＭ，ＲＡＭ，不揮発性メモリ等）を備えており、所定のプログラムを実行することによって、複数の機能処理部として機能する。この複数の機能処理部には、第１の回転角演算部７７Ａと、第２の回転角演算部７７Ｂと、トルク演算部７７Ｃとを含んでいる。
【００３８】
第１の回転角演算部７７Ａは、３つの磁気センサ７１，７２，７３の出力信号Ｓ１，Ｓ２，Ｓ３に基づいて入力軸８の回転角（電気角θＡ）を演算する。第２の回転角演算部７７Ｂは、３つの磁気センサ７４，７５，７３の出力信号Ｓ４，Ｓ５，Ｓ６に基づいて出力軸９の回転角（電気角θＢ）を演算する。
トルク演算部７７Ｃは、第１の回転角演算部７７Ａによって検出された入力軸８の回転角θＡと第２の回転角演算部７７Ｂによって検出された出力軸９の回転角θＢとに基づいて、入力軸８に加えられた操舵トルクＴｈを演算する。具体的には、操舵トルクＴｈは、トーションバー１０のバネ定数をＫとし、各磁石６１，６２に設けられた磁極対数をＮとすると、次式(1)に基づいて演算される。
【００３９】
Ｔｈ＝｛（θＡ−θＢ）／Ｎ｝×Ｋ      …(1)
第１の磁石６１、磁気センサ７１，７２，７３および第１の回転角演算部７７Ａによって、入力軸８の回転角θＡを検出するための第１の回転角検出装置が構成されている。また、第２の磁石６２、磁気センサ７４，７５，７６および第２の回転角演算部７７Ｂによって、出力軸９の回転角θＢを検出するための第２の回転角検出装置が構成されている。第１の回転角検出装置（第１の回転角演算部７７Ａ）の動作と第２の回転角検出装置（第２の回転角演算部７７Ｂ）動作は同様であるので、以下、第１の回転角検出装置（第１の回転角演算部７７Ａ）の動作についてのみ説明する。
【００４０】
図６は、第１の磁石６１の構成および２つの磁気センサの配置を示す模式図である。
第１の磁石６１は、周方向に等角度間隔で配された４組の磁極対（Ｍ１，Ｍ２），（Ｍ３，Ｍ４），（Ｍ５，Ｍ６），（Ｍ７，Ｍ８）を有している。つまり、第１の磁石６１は、等角度間隔で配置された８個の磁極Ｍ１〜Ｍ８を有している。各磁極Ｍ１〜Ｍ８は、入力軸８の中心軸を中心として、ほぼ４５°（電気角ではほぼ１８０°）の角度間隔（角度幅）で配置されている。各磁極Ｍ１〜Ｍ８の磁力の大きさは、ほぼ一定である。
【００４１】
３つの磁気センサ７１，７２，７３は、第１の磁石６１の下側の環状端面に対向して、配置されている。以下において、磁気センサ７１を第１磁気センサ７１、磁気センサ７２を第２磁気センサ７２、磁気センサ７３を第３磁気センサ７３という場合がある。第１磁気センサ７１と第２磁気センサ７２とは、入力軸８の中心軸を中心として電気角で１２０°の角度間隔で配置されている。また、第２磁気センサ７２と第３磁気センサ７３とは、入力軸８の中心軸を中心として電気角で１２０°の角度間隔で配置されている。したがって、第１磁気センサ７１と第３磁気センサ７３とは、入力軸８の中心軸を中心として電気角で２４０°の角度間隔で配置されている。
【００４２】
図６に矢印で示す方向を入力軸８の正方向の回転方向とする。そして、入力軸８が正方向に回転されると入力軸８の回転角が大きくなり、入力軸８が逆方向に回転されると、入力軸２の回転角が小さくなるものとする。各磁気センサ７１，７２，７３からは、図７に示すように、入力軸８の回転に伴って、正弦波状の信号Ｓ１，Ｓ２，Ｓ３が出力される。なお、図６の横軸の回転角［deg］は、機械角を表している。
【００４３】
以下において、第１磁気センサ７１の出力信号Ｓ１を第１出力信号Ｓ１または第１センサ値Ｓ１といい、第２磁気センサ７２の出力信号Ｓ２を第２出力信号Ｓ２または第２センサ値Ｓ２といい、第３磁気センサ７３の出力信号Ｓ３を第３出力信号Ｓ３または第３センサ値Ｓ３という場合がある。
以下においては、説明の便宜上、入力軸８の回転角をθＡではなく、θで表すことにする。各出力信号Ｓ１，Ｓ２，Ｓ３が正弦波信号であるとみなし、入力軸８の回転角をθ（電気角）とすると、第１磁気センサ７１の出力信号Ｓ１は、Ｓ１＝Ａ１・sinθと表され、第２磁気センサ７２の出力信号Ｓ２は、Ｓ２＝Ａ２・sin（θ＋１２０）と表され、第３磁気センサ７３の出力信号Ｓ３は、Ｓ３＝Ａ３・sin（θ＋２４０）と表される。Ａ１，Ａ２，Ａ３は、それぞれ振幅を表している。第１出力信号Ｓ１と第２出力信号Ｓ２との位相差は１２０度である。第２出力信号Ｓ２と第３出力信号Ｓ３との位相差も１２０度である。したがって、第１出力信号Ｓ１と第３出力信号Ｓ３との位相差は２４０度である。
【００４４】
第１の回転角演算部７７Ａによる回転角θの演算方法の基本的な考え方について説明する。第１の回転角演算部７７Ａによる回転角演算モードには、第１演算モード〜第５演算モードがある。以下、各演算モードについて説明する。
［１］第１演算モード
第１演算モードは、第１および第２磁気センサ７１，７２が、３サンプリング周期（３演算周期）連続して共に同じ１つの磁極を検出している場合に適用される演算モードである。第１演算モードでは、第１および第２磁気センサ７１，７２における３サンプリング分の出力信号に基づいて回転角θが演算される。
【００４５】
第１出力信号Ｓ１と第２出力信号Ｓ２との位相差（電気角）をＣで表すことにする。また、今回のサンプリング周期の番号（今回の演算周期の番号）を[n]、前回のサンプリング周期の番号を[n-1]、前々回のサンプリング周期の番号を[n-2]で表すことにする。また、各磁極Ｍ１〜Ｍ８の角度幅（磁極幅，ピッチ幅）のばらつきに基づく回転角演算誤差を補正するための補正値を、角度幅誤差補正値（磁極幅誤差補正値）といい、Ｅで表すことにする。
【００４６】
位相差Ｃ、サンプリング周期番号[n]，[n-1]，[n-2]および角度幅誤差補正値Ｅを用いると、今回、前回および前々回にサンプリングされた第１出力信号Ｓ１ならびに今回、前回および前々回にサンプリングされた第２出力信号Ｓ２を、それぞれ次式(2a)，(2b)，(2c)， (2d)，(2e)，(2f)で表すことができる。
Ｓ１[n]＝Ａ１[n］sin（Ｅ１［n］θ［n］）              …(2a)
Ｓ１[n-1]＝Ａ１[n-1］sin（Ｅ１［n-1］θ[n-1］）      …(2b)
Ｓ１[n-2]＝Ａ１[n-2］sin（Ｅ１［n-2］θ[n-2］）      …(2c)
Ｓ２[n]＝Ａ２[n］sin（Ｅ２［n］θ[n］＋Ｃ）          …(2d)
Ｓ２[n-1]＝Ａ２[n-1］sin（Ｅ２[n-1］θ[n-1］＋Ｃ）  …(2e)
Ｓ２[n-2]＝Ａ２[n-2］sin（Ｅ２[n-2］θ[n-2］＋Ｃ）  …(2f)
前記式(2a)〜(2f)において、Ｅ１［ｘ］は、ｘ番目の演算周期において第１磁気センサ７１が検出している磁極に対応する角度幅誤差補正値である。Ｅ２［ｘ］は、ｘ番目の演算周期において第２磁気センサ７２が検出している磁極に対応する角度幅誤差補正値である。
【００４７】
ある磁極の角度幅をｗ（電気角）とすると、その磁極の角度幅誤差θｅｒｒ（電気角）は、次式(3)で定義される。
θｅｒｒ＝ｗ−１８０    …(3)
その磁極に対する角度幅誤差補正値Ｅは、次式(4)で定義される。
Ｅ＝１８０／ｗ
＝１８０／（θｅｒｒ＋１８０）    …(4)
各磁極の角度幅誤差補正値Ｅは、各磁極の磁極幅に関する情報である。なお、各磁極の磁極幅に関する情報は、各磁極の角度幅ｗであってもよいし、各磁極の角度幅誤差θｅｒｒであってもよい。
【００４８】
Ｃが既知であるとすると、前記式(2a)〜(2f)で表される６つの式に含まれる未知数の数は１６となる。つまり、未知数の数が方程式の数より多いため、このままでは、６つの式からなる連立方程式を解くことができない。
この実施形態では、サンプリング間隔（サンプリング周期）を短く設定することにより、３サンプリング間の温度変化による振幅の変化がないとみなす。つまり、３サンプリング間の第１磁気センサ７１の出力信号の振幅Ａ１[n］，Ａ１[n-1］，Ａ１[n-2］が互いに等しいとみなして、これらをＡ１とする。同様に、３サンプリング間の第２磁気センサ７２の出力信号の振幅Ａ２[n］，Ａ２[n-1］，Ａ２[n-2］が互いに等しいとみなし、これらをＡ２とする。
【００４９】
３サンプリング間において、両磁気センサ７１，７２が共に同じ１つの磁極を検出している場合には、３サンプリング分の両磁気センサ７１，７２の出力信号に含まれている角度幅誤差補正値Ｅ１［n］，Ｅ１［n-1］，Ｅ１［n-2］，Ｅ２［n］，Ｅ２[n-1］，Ｅ２[n-2］は同じ値となるので、これらをＥで表すことにする。これにより、前記式(2a)〜(2f)は、それぞれ次式(5a)〜(5f)で表わされる。
【００５０】
Ｓ１[n]＝Ａ１sin（Ｅθ[n］）            …(5a)
Ｓ１[n-1]＝Ａ１sin（Ｅθ[n-1］）        …(5b)
Ｓ１[n-2]＝Ａ１sin（Ｅθ[n-2］）        …(5c)
Ｓ２[n]＝Ａ２sin（Ｅθ[n］＋Ｃ）        …(5d)
Ｓ２[n-1]＝Ａ２sin（Ｅθ[n-1］＋Ｃ）    …(5e)
Ｓ２[n-2]＝Ａ２sin（Ｅθ[n-2］＋Ｃ）    …(5f) 
これら６つの式に含まれる未知数（Ａ１，Ａ２，Ｅ，θ[n］，θ[n-1］，θ[n-2］）の数は６となる。つまり、未知数の数が方程式の数以下となるため、６つの式からなる連立方程式を解くことができる。したがって、前記６つの式(5a)〜(5f) からなる連立方程式を解くことにより、入力軸８の回転角θ[n］を演算することができる。
【００５１】
以下、両磁気センサ間の位相差Ｃが１２０度である場合について、具体的に説明する。位相差Ｃが１２０度である場合には、前記６つの式(5a)〜(5f) は、それぞれ次式(6a)〜(6f)で表わすことができる。
Ｓ１[n]＝Ａ１sin（Ｅθ[n］）                …(6a)
Ｓ１[n-1]＝Ａ１sin（Ｅθ[n-1］）            …(6b)
Ｓ１[n-2]＝Ａ１sin（Ｅθ[n-2］）            …(6c)
Ｓ２[n]＝Ａ２sin（Ｅθ[n］＋１２０）        …(6d)
Ｓ２[n-1]＝Ａ２sin（Ｅθ[n-1］＋１２０）    …(6e)
Ｓ２[n-2]＝Ａ２sin（Ｅθ[n-2］＋１２０）    …(6f) 
Ｅθ[n］を１つの未知数と考えると、前記６つの式(6a)〜(6f)のうちの４つの式(6a)，(6b)，（6d），(6e) からなる連立方程式を解くことにより、Ｅθ[n］は、次式(7) （以下、「Ｅθ基本演算式(7)」という。）で表わされる。
【００５２】
【数１】
2014115261.tif 000003
【００５３】
また、前記６つの式(6a)〜(6f)からなる連立方程式を解くことにより、角度幅誤差補正値Ｅは、次式(8) （以下、「Ｅ演算式(8)」という。）で表わされる。
【００５４】
【数２】
2014115261.tif 000004
【００５５】
したがって、前記Ｅθ基本演算式(7)により演算されたＥθ[n］を、前記Ｅ演算式(8)により演算された角度幅誤差補正値Ｅで除することにより、θ[n］を求めることができる。つまり、次式(9)により、θ[n］を求めることができる。
θ［n］＝Ｅθ[n］／Ｅ    …(9)
ただし、Ｅ演算式(8) に含まれている分数のいずれかの分母が零になる場合には、Ｅ演算式(8)に基づいて角度幅誤差補正値Ｅを演算することはできない。そこで、この実施形態では、Ｅ演算式(8) に含まれている分数のいずれかの分母が零になる場合には、前回に演算された角度幅誤差補正値Ｅを今回の角度幅誤差補正値Ｅとして用いるようにしている。
【００５６】
なお、Ｅ演算式(8) に含まれている分数のいずれかの分母が零になる場合とは、次式(10)，(11)，（12）でそれぞれ表される３つの条件のうちの少なくとも１つの条件を満たす場合である。
【００５７】
【数３】
2014115261.tif 000005
【００５８】
また、Ｅθ基本演算式(7)に含まれている分数のいずれかの分母が零になる場合には、Ｅθ基本演算式(7)に基づいてＥθ[n]を演算することはできない。そこで、この実施形態では、Ｅθ基本演算式(7)に含まれている分数のいずれかの分母が零になる場合には、Ｅθ基本演算式(7)とは異なる演算式によってＥθ[n］を演算するようにしている。さらに、この実施形態では、Ｅθ基本演算式(7)に基づいてＥθ[n]を演算することができるけれども、より簡単な演算式によってＥθ[n]を演算できる場合には、Ｅθ基本演算式(7)とは異なる演算式によってＥθ[n］を演算するようにしている。この実施形態では、Ｅθ基本演算式(7)よりも簡単にＥθ[n]を演算できる場合とは、Ｓ２[n]＝０の場合またはＳ１［n］＝０の場合である。
【００５９】
この実施形態では、Ｅθ[n］を演算するための演算式として、Ｅθ基本演算式(7)を含めて１０種類の演算式が用意されている。表１は、１０種類の演算式と、その演算式が適用される条件とを示している。なお、Ｅθ[n］を演算する際には、表１の上から順番にその条件を満たしているか否かが判別され、条件を満たしたと判別されるとそれ以降の条件判別は行われず、当該条件に対応する演算式により、Ｅθ[n］が演算される。
【００６０】
【表１】
2014115261.tif 000006
【００６１】
表１の上から１番目の演算式は、Ｅθ基本演算式(7)である。Ｅθ基本演算式(7)は、Ｓ１[n]およびＳ２［n］のいずれもが零でなく、かつＥθ基本演算式(7)に含まれている分数のいずれの分母も零でないという条件を満たしている場合に、適用される。Ｅθ基本演算式(7)に含まれている分数のいずれの分母も零でないという条件は、ｐ１−ｐ２≠０でかつ、ｐ１２＋ｐ１ｐ２＋ｐ２２≠０でかつ、Ｓ１［n-1］≠０でかつＳ２［n-1］≠０である場合に満たされる。なお、Ｓ１［n-1］はｐ１の分母であり、Ｓ２［n-1］はｐ２の分母である。
【００６２】
ただし、ｐ１２＋ｐ１ｐ２＋ｐ２２＝０が成立するのは、ｐ１＝ｐ２＝０の場合だけであるが、第１磁気センサ７１と第２磁気センサ７２とは位相が１２０度ずれているため、両磁気センサ７１，７２のセンサ値Ｓ１，Ｓ２が同時に零になることはない。このため、ｐ１２＋ｐ１ｐ２＋ｐ２２＝０が成立することはない。したがって、Ｅθ基本演算式(7)に含まれている分数のいずれの分母も零でないという条件は、ｐ１−ｐ２≠０でかつ、Ｓ１［n-1］≠０でかつＳ２［n-1］≠０である場合に満たされる。
【００６３】
表１の上から２番目の演算式は、ｐ１−ｐ２＝０である場合に適用される演算式である。ｐ１−ｐ２＝０が成立する場合について検討する。この場合には、ｐ１＝ｐ２であるから、次式(13)が成立する。
【００６４】
【数４】
2014115261.tif 000007
【００６５】
これを変形すると、次式(14)が得られる。
【００６６】
【数５】
2014115261.tif 000008
【００６７】
前記式(14)が成立する場合とは、Ｅθ[n］とＥθ[n-1］とが等しい場合である。つまり、今回のＥθ[n］が前回のＥθ[n-1］に等しい場合である。そこで、Ｓ１[n]およびＳ２［n］のいずれもが零でなく、かつｐ１の分母Ｓ１［n-1］およびｐ２の分母Ｓ２［n-1］のいずれもが零でなく、かつｐ１−ｐ２＝０であるという条件を満たした場合には、前回に演算されたＥθ[n-1］が今回のＥθ[n］として用いられる。
【００６８】
表１の上から３番目および４番目の演算式は、ｐ１の分母Ｓ１[n-1］が零となる場合に適用される演算式である。Ｓ１[n-1]＝Ａ１sinＥθ[n-1］であるので、sinＥθ[n-1］＝０のときに、Ｓ１[n-1］＝０となる。つまり、Ｅθ[n-1］が０度または１８０度のときに、Ｓ１[n-1］が零となる。Ｓ２[n-1]＝Ａ２sin（Ｅθ[n-1］＋１２０）であるので、Ｅθ[n-1］が０度のときにはＳ２[n-1］＞０となり、Ｅθ[n-1］が１８０度のときにはＳ２[n-1］＜０となる。したがって、Ｓ１[n-1］＝０でかつＳ２[n-1］＞０のときにはＥθ[n-1］＝０となり、Ｓ１[n-1］＝０でかつＳ２[n-1］＜０のときにはＥθ[n-1］＝１８０となる。
【００６９】
Ｅθ[n-1］＝０である場合には、前記式 (6c)，(6d)は、それぞれ次式 (15c)，(15d)で表される。
Ｓ２[n]＝Ａ２sin（Ｅθ[n］＋１２０）      …(15c)
Ｓ２[n-1]＝Ａ２sin１２０＝√３／２・Ａ２  …(15d)
前記式(15d)から、次式(16)が得られる。
【００７０】
Ａ２＝（２／√３）・Ｓ２[n-1]       …(16)
前記式(16)を前記式(15c)に代入すると、次式(17)が得られる。
sin（Ｅθ[n］＋１２０）＝（√３／２）・（Ｓ２[n]／Ｓ２[n-1]）      …(17)
したがって、Ｅθ[n］は、次式(18)により演算することができる。
【００７１】
【数６】
2014115261.tif 000009
【００７２】
つまり、表１の上から３番目に示すように、Ｓ１[n]およびＳ２［n］のいずれもが零でなく、かつｐ２の分母Ｓ２[n-1]が零でなく、かつｐ１の分母Ｓ１[n-1]が零であり、かつＳ２[n-1］＞０であるという条件を満たした場合には、前記式(18)で表される演算式に基づいてＥθ[n］が演算される。
一方、Ｅθ[n-1］＝１８０である場合には、前記式 (6c)，(6d)は、それぞれ次式(19c)，(19d)で表される。
【００７３】
Ｓ２[n]＝Ａ２sin（Ｅθ[n］＋１２０）          …(19c)
Ｓ２[n-1]＝Ａ２sin３００＝−√３／２・  Ａ２  …(19d)
前記式(19d)から、次式(20)が得られる。
Ａ２＝（−２／√３）・Ｓ２[n-1]       …(20)
前記式(20)を前記式(19c)に代入すると、次式(21)が得られる。
【００７４】
sin（Ｅθ[n］＋１２０）＝（−√３／２）・（Ｓ２[n]／Ｓ２[n-1]）      …(21)
したがって、Ｅθ[n］は、次式(22)により演算することができる。
【００７５】
【数７】
2014115261.tif 000010
【００７６】
つまり、表１の上から４番目に示すように、Ｓ１[n]およびＳ２［n］のいずれもが零でなく、かつｐ２の分母Ｓ２[n-1]が零でなく、かつｐ１の分母Ｓ１[n-1]が零であり、かつＳ２[n-1］＜０であるという条件を満たした場合には、前記式(22)で表される演算式に基づいてＥθ[n］が演算される。
表１の上から５番目および６番目の演算式は、Ｓ２[n]＝０となる場合に適用される演算式である。Ｓ２[n]＝Ａ２sin（Ｅθ[n］＋１２０）であるので、sin（Ｅθ[n］＋１２０）＝０のときに、Ｓ２[n]＝０となる。つまり、Ｅθ[n］が−１２０度または６０度のときに、Ｓ２[n]＝０となる。Ｓ１[n]＝Ａ１sinＥθ[n］であるので、Ｅθ[n］が−１２０度のときにはＳ１[n]＜０となり、Ｅθ[n］が６０度のときにはＳ１[n]＞０となる。したがって、Ｓ２[n]＝０でかつＳ１[n]＞０のときにはＥθ[n］＝６０となり、Ｓ２[n]＝０でかつＳ１[n]＜０であればＥθ[n］＝−１２０となる。
【００７７】
つまり、表１の上から５番目に示すように、Ｓ１［n］が零でなく、かつｐ２の分母Ｓ２[n-1]が零でなく、かつＳ２[n]＝０であり、かつＳ１[n]＞０であるという条件を満たした場合には、Ｅθ[n］は６０度として演算される。また、表１の上から６番目に示すように、Ｓ１［n］が零でなく、かつｐ２の分母Ｓ２[n-1]が零でなく、かつＳ２[n]＝０であり、かつＳ１[n]＞０であるという条件を満たした場合には、Ｅθ[n］は−１２０度として演算される。
【００７８】
表１の上から７番目および８番目の演算式は、ｐ２の分母Ｓ２[n-1]が零となる場合に適用される演算式である。Ｓ２[n-1]＝Ａ２sin（Ｅθ[n-1］＋１２０）であるので、sin（Ｅθ[n-1］＋１２０）＝０のときに、Ｓ２[n-1］＝０となる。つまり、Ｅθ[n-1］が−１２０度または６０度のときに、Ｓ２[n-1]が零となる。Ｓ１[n-1]＝Ａ１sinＥθ[n-1］であるので、Ｅθ[n-1］が−１２０度のときにはＳ１[n-1］＜０となり、Ｅθ[n-1］が６０度のときにはＳ１[n-1］＞０となる。したがって、Ｓ２[n-1］＝０でかつＳ１[n-1］＞０のときにはＥθ[n-1］＝６０となり、Ｓ２[n-1］＝０でかつＳ１[n-1］＜０のときにはＥθ[n-1］＝−１２０となる。
【００７９】
Ｅθ[n-1］＝６０である場合には、前記式 (6a)，(6b)は、それぞれ次式 (23a)，(23b)で表される。
Ｓ１[n]＝Ａ１sinＥθ[n］                …(23a)
Ｓ１[n-1]＝Ａ１sin６０＝√３／２・  Ａ１  …(23b)
前記式(23b)から、次式(24)が得られる。
【００８０】
Ａ１＝（２／√３）・Ｓ１[n-1]       …(24)
前記式(24)を前記式(23a)に代入すると、次式(25)が得られる。
sinＥθ[n］＝（√３／２）・（Ｓ１[n]／Ｓ１[n-1]）      …(25)
したがって、Ｅθ[n］は、次式(26)により演算することができる。
【００８１】
【数８】
2014115261.tif 000011
【００８２】
つまり、表１の上から７番目に示すように、Ｓ１［n］が零でなく、かつｐ２の分母Ｓ２[n-1］が零であり、かつＳ１[n-1］＞０であるという条件を満たした場合には、前記式(26)で表される演算式に基づいてＥθ[n］が演算される。
一方、Ｅθ[n-1］＝−１２０である場合には、前記式 (6a)，(6b)は、それぞれ次式 (27a)，(27b)で表される。
【００８３】
Ｓ１[n]＝Ａ１sinＥθ[n］                            …(27a)
Ｓ１[n-1]＝Ａ１sin（−１２０）＝−√３／２・  Ａ２  …(27b)
前記式(27b)から、次式(28)が得られる。
Ａ１＝（−２／√３）・Ｓ１[n-1]       …(28)
前記式(28)を前記式(27a)に代入すると、次式(29)が得られる。
【００８４】
sinＥθ[n］＝（−√３／２）・（Ｓ１[n]／Ｓ１[n-1]）      …(29)
したがって、Ｅθ[n］は、次式(30)により演算することができる。
【００８５】
【数９】
2014115261.tif 000012
【００８６】
つまり、表１の上から８番目に示すように、Ｓ１［n］が零でなく、かつｐ２の分母Ｓ２[n-1]が零であり、かつＳ１[n-1］＜０であるという条件を満たした場合には、前記式(30)で表される演算式に基づいてＥθ[n］が演算される。
表１の上から９番目および１０番目の演算式は、Ｓ１[n]＝０となる場合に適用される演算式である。Ｓ１[n]＝Ａ１sinＥθ[n］であるので、sinＥθ[n］＝０のときに、Ｓ１[n]＝０となる。つまり、Ｅθ[n］が０度または１８０度のときに、Ｓ１[n]＝０となる。Ｓ２[n]＝Ａ２sin（Ｅθ[n］＋１２０]であるので、Ｅθ[n］が０度のときにはＳ２[n]＞０となり、Ｅθ[n］が１８０度のときにはＳ２[n]＜０となる。したがって、Ｓ１[n]＝０でかつＳ２[n]＞０であればＥθ[n］＝０となり、Ｓ１[n]＝０でかつＳ２[n]＜０であればＥθ[n］＝１８０となる。
【００８７】
つまり、表１の上から９番目に示すように、Ｓ１［n］が零であり、かつＳ２[n]＞０であるという条件を満たした場合には、Ｅθ[n］は０度として演算される。また、表１の上から１０番目に示すように、Ｓ１［n］が零であり、かつＳ２[n]＜０であるという条件を満たした場合には、Ｅθ[n］は１８０度として演算される。
Ｅθ[n］が演算されると、前記式(6a)に基づいて振幅Ａ１を演算することができるとともに、前記式(6d)に基づいて振幅Ａ２を演算することができる。つまり、第１演算モードによって、Ｅ，θ[n］，Ａ１，Ａ２を演算することができる。
［２］第２演算モード
第２演算モードは、第２および第３磁気センサ７２，７３が、３サンプリング周期（３演算周期）連続して共に同じ１つの磁極を検出している場合に適用される演算モードである。第２演算モードでは、第２および第３磁気センサ７２，７３における３サンプリング分の出力信号に基づいて回転角θが演算される。
【００８８】
第２磁気センサ７２および第３磁気センサ７３の出力信号Ｓ２，Ｓ３を、角度幅誤差補正値Ｅを用いて表すと、第２磁気センサ７２の出力信号Ｓ２[n]はＳ２[n]＝Ａ２・sin（Ｅ２θ[n]＋１２０）で表され、第３磁気センサ７３の出力信号Ｓ３[n]は、Ｓ３[n]＝Ａ３・sin（Ｅ３θ[n]＋２４０）と表される。ここで、Ｅ３は、第３磁気センサ７３が検出している磁極に対応する角度幅誤差補正値である。第２磁気センサ７２および第３磁気センサ７３が同じ磁極を検出している場合には、Ｅ２とＥ３とは等しいので、これらをＥで表すと、第２磁気センサ７２の出力信号Ｓ２[n]はＳ２[n]＝Ａ２・sin（Ｅθ[n]＋１２０）で表され、第３磁気センサ７３の出力信号Ｓ３[n]は、Ｓ３[n]＝Ａ３・sin（Ｅθ[n]＋２４０）と表される。
【００８９】
（Ｅθ[n]＋１２０）をＥΘ[n]に置き換えると、第２出力信号Ｓ２[n]はＳ２[n]＝Ａ２・sinＥΘ[n]で表され、第３出力信号Ｓ３[n]はＳ３[n]＝Ａ３・sin（ＥΘ[n]＋１２０）で表わされる。したがって、第２出力信号Ｓ２と第３出力信号Ｓ３とを用い、前述した方法と同様な方法でＥΘ[n]とＥとを演算することができる。ＥΘ[n]＝Ｅθ[n]＋１２０であるので、θ[n]＝（ＥΘ[n]−１２０）／Ｅである。したがって、θ[n]＝（ＥΘ[n]−１２０）／Ｅの式に、演算されたＥΘ[n]とＥを代入することにより、入力軸８の回転角θ[n]を演算することができる。また、ＥΘ[n]が演算されると、振幅Ａ２および振幅Ａ３を演算することができる。つまり、第２演算モードによって、Ｅ，θ[n］，Ａ２，Ａ３を演算することができる。
【００９０】
第２演算モードによる回転角演算に用いられる３サンプリング分の第２および第３出力信号を、前記式(6a) 〜(6f)にならって次式(31a) 〜(31f)で表すと、ＥΘ基本演算式およびＥ演算式はそれぞれ次式(32) および(33)で表すことができる。
Ｓ２[n]＝Ａ２sin（Ｅθ[n］＋１２０）        …(31a)
Ｓ２[n-1]＝Ａ２sin（Ｅθ[n-1］＋１２０）    …(31b)
Ｓ２[n-2]＝Ａ２sin（Ｅθ[n-2］＋１２０）    …(31c) 
Ｓ３[n]＝Ａ３sin（Ｅθ[n］＋１２０）        …(31d)
Ｓ３[n-1]＝Ａ３sin（Ｅθ[n-1］＋１２０）    …(31e)
Ｓ３[n-2]＝Ａ３sin（Ｅθ[n-2］＋１２０）    …(31f) 
【００９１】
【数１０】
2014115261.tif 000013
【００９２】
【数１１】
2014115261.tif 000014
【００９３】
第１演算モードまたは第２演算モードでは、３つの磁気センサ７１，７２，７３のうちの２つの磁気センサにおける３サンプリング分の出力信号に基づいて入力軸８の回転角θ[n]を演算しているので、精度の高い回転角を演算することが可能となる。また、第１演算モードまたは第２演算モードでは、入力軸８の回転角θ[n]の演算に用いられる数式の数が、これらの数式に含まれている本来の未知数の数より少なくても、入力軸８の回転角θ[n]を演算することができるので、入力軸８の回転角θ[n]を演算するために必要なセンサ値の数を少なくすることが可能となる。
【００９４】
第１演算モードまたは第２演算モードでは、３サンプリング間での同じ磁気センサの出力信号の振幅が互いに等しいとみなしている。３サンプリング間での同じ磁気センサの出力信号の振幅は、温度変化の影響によって異なる値となる可能性がある。しかしながら、サンプリング間隔が小さい場合には、３サンプリング間の温度変化は非常に小さいので、３サンプリング間での同じ磁気センサの出力信号の振幅は等しいとみなすことができる。したがって、第１演算モードまたは第２演算モードでは、３サンプリング間での温度変化の影響による振幅のばらつきを補償することができる。また、第１演算モードまたは第２演算モードでは、回転角の演算に用いられている２つの磁気センサ間の振幅は、別々の未知数として扱っているので、それらの２つの磁気センサ間の温度特性のばらつきの影響を補償することができる。これにより、精度の高い回転角を検出することができる。
【００９５】
また、第１演算モードまたは第２演算モードでは、磁石６１の各磁極Ｍ１〜Ｍ８の角度幅（ピッチ幅）のばらつきを高い精度で補償できるので、誤差のより小さい回転角を検出することが可能となる。
［３］第３演算モード
第３演算モードは、第１演算モードおよび第２演算モードのいずれもが適用できない場合であって、第１磁気センサ７１が検出している磁極に対応する角度幅誤差補正値Ｅ１および第１出力信号Ｓ１の振幅Ａ１が第１演算モードによって既に演算されてメモリに記憶されている場合に適用される演算モードである。第３演算モードでは、主として第１磁気センサ７１の出力信号Ｓ１に基づいて回転角θが演算される。
【００９６】
たとえば、図８Ａに示すように、磁石６１（入力軸８）が矢印で示す方向に回転している場合において、第１および第２磁気センサ７１，７２が同じ磁極（この例ではＭ１）を検出している状態から、第２磁気センサ７２の検出している磁極が変化した場合に、第３演算モードは適用される。
角度幅誤差補正値Ｅと今演算周期の番号ｎを用いると、今演算周期においてサンプリングされた第１磁気センサ７１の出力信号Ｓ１は、次式(34)で表される。
【００９７】
Ｓ１[n]＝Ａ１[n］sin（Ｅ１θ[n］）                …(34)
Ｅ１は、第１磁気センサ７１が検出している磁極に対応する角度幅誤差補正値である。
前記式(34)から回転角θ[n］は、次式(35)で表される。
θ[n］＝（１／Ｅ１）sin−１（Ｓ１[n]／Ａ１）    …(35)
メモリに記憶されており、第１磁気センサ７１が検出している磁極に対応するＥ１およびＡ１を、前記式(35)に代入することにより、θ[n］が演算される。ただし、式(35)によって回転角θ[n］を演算する場合には、２つの回転角θ[n］が演算されるので、いずれの回転角が実際の回転角であるかを判定する必要がある。この判定方法について、図９を参照して説明する。図９には、第１出力信号Ｓ１、第２出力信号Ｓ２および第３出力信号Ｓ３の１周期分の波形が示されている。図９の横軸の回転角［deg］は、電気角を表している。
【００９８】
図９に示すように、第１出力信号Ｓ１[n]がたとえば正の値である場合には、（１／Ｅ１）sin−１（Ｓ１[n]／Ａ１）に対応する回転角θ[n］は、０度〜９０度の領域Ｒ１内の回転角と、９０度〜１８０度の領域Ｒ２内の回転角との２つの回転角となる。また、第１出力信号Ｓ１[n]がたとえば負の値である場合には、（１／Ｅ１）sin−１（Ｓ１[n]／Ａ１）に対応する回転角θ[n］は、１８０度〜２７０度の領域Ｕ１内の回転角と、２７０度〜３６０度の領域Ｕ２内の回転角との２つの回転角となる。
【００９９】
この実施形態では、第１磁気センサ７１以外の２つの磁気センサ７２，７３の出力信号Ｓ２，Ｓ３のいずれか一方に基づいて、前記式(35)によって演算される２つの回転角のうちのいずれが実際の回転角であるかが判定される。たとえば、第２出力信号Ｓ２［n］に基づいて、前記判定が行われる場合について説明する。第２出力信号Ｓ２の振幅Ａ２の１／２を閾値ａ（ａ＞０）とする。この閾値ａは、たとえば、メモリに記憶されている第２出力信号Ｓ２の振幅Ａ２であって、第１磁気センサ７１が検出している磁極に対応する振幅Ａ２に基づいて求めることができる。なお、第１出力信号Ｓ１の振幅Ａ１の１／２を閾値ａ（ａ＞０）としてもよい。
【０１００】
第２出力信号Ｓ２［n］がａ以上のときに取り得る入力軸８の回転角θ[n］は、０度〜３０度の範囲および２７０度〜３６０度の範囲である。第２出力信号Ｓ２［n］が−ａ未満のときに取り得る入力軸８の回転角θ[n］は、９０度〜２１０度の範囲である。第２出力信号Ｓ２［n］が−ａ以上ａ未満のときに取り得る入力軸８の回転角θ[n］は、３０度〜９０度の範囲および２１０度〜２７０度の範囲である。
【０１０１】
したがって、前記式(35)によって演算された２つの回転角のうち、いずれの回転角が実際の回転角であるかを、第２出力信号Ｓ２［n］に基づいて判定することができる。具体的には、第１出力信号Ｓ１[n]が正の値である場合には、第２出力信号Ｓ２［n］が−ａ以上であれば、前記式(35)によって演算された２つの回転角のうち領域Ｒ１内の回転角が実際の回転角であると判定される。一方、第２出力信号Ｓ２［n］が−ａ未満であれば、前記式(35)によって演算された２つの回転角のうち領域Ｒ２内の回転角が実際の回転角であると判定される。
【０１０２】
第１出力信号Ｓ１[n]が負の値である場合には、第２出力信号Ｓ２［n］がａ未満であれば、前記式(35)によって演算された２つの回転角のうち領域Ｕ１内の回転角が実際の回転角であると判定される。一方、第２出力信号Ｓ２［n］がａ以上であれば、前記式(35)によって演算された２つの回転角のうち領域Ｕ２内の回転角が実際の回転角であると判定される。
［４］第４演算モード
第４演算モードは、第１演算モードおよび第２演算モードのいずれもが適用できない場合であって、第２磁気センサ７２が検出している磁極に対応する角度幅誤差補正値Ｅ２および第２出力信号Ｓ２の振幅Ａ２が第１演算モードまたは第３演算モードによって既に演算されてメモリに記憶されている場合に適用される演算モードである。第４演算モードでは、主として第２磁気センサ７２の出力信号Ｓ２に基づいて回転角θが演算される。
【０１０３】
たとえば、図８Ｂに示すように、磁石６１（入力軸８）が矢印で示す方向に回転している場合において、第１および第２磁気センサ７１，７２が同じ磁極（この例ではＭ１）を検出している状態から、第１磁気センサ７１が検出している磁極が変化した場合に、第４演算モードは適用される。
角度幅誤差補正値Ｅと今演算周期の番号ｎを用いると、今演算周期においてサンプリングされた第２磁気センサ７２の出力信号Ｓ２は、次式 (36)で表される。
【０１０４】
Ｓ２[n]＝Ａ２[n］sin（Ｅ２θ[n］＋１２０）        …(36)
Ｅ２は、第２磁気センサ７２が検出している磁極に対応する角度幅誤差補正値である。
前記式(36)から回転角θ[n］は、次式(37)で表される。
θ[n］＝（１／Ｅ２）｛sin−１（Ｓ２[n]／Ａ２）−１２０｝    …(37)
メモリに記憶されており、第２磁気センサ７２が検出している磁極に対応するＥ２およびＡ２を、前記式(37)に代入することにより、θ[n］が演算される。
【０１０５】
前記式(37)によって回転角θ[n］を演算すると、２つの回転角θ[n］が演算される。そこで、第２磁気センサ７２以外の２つの磁気センサ７１，７３の出力信号Ｓ１，Ｓ３のいずれか一方に基づいて、前記式(37)によって演算された２つの回転角θ[n］のうちのいずれが実際の回転角であるかを判定する。
たとえば、第１出力信号Ｓ１［n］に基づいて、前記判定が行われる場合について説明する。メモリに記憶されている第１出力信号Ｓ１の振幅Ａ１の１／２または第２出力信号Ｓ２の振幅Ａ２の１／２を閾値ａ（ａ＞０）とする。
【０１０６】
第２出力信号Ｓ２[n]が正の値である場合には、第１出力信号Ｓ１［n］が−ａ未満であれば、前記式(37)によって演算された２つの回転角のうち２４０度〜３３０度の領域内の回転角が実際の回転角であると判定される。一方、第１出力信号Ｓ１［n］が−ａ以上であれば、前記式(37)によって演算された２つの回転角のうち０度〜６０度または３３０度〜３６０度の領域内の回転角が実際の回転角であると判定される。
【０１０７】
第２出力信号Ｓ２[n]が負の値である場合には、第１出力信号Ｓ１［n］がａ以上であれば、前記式(37)によって演算された２つの回転角のうち６０度〜１５０度の領域内の回転角が実際の回転角であると判定される。一方、第１出力信号Ｓ１［n］がａ未満であれば、前記式(37)によって演算された２つの回転角のうち１５０度〜２４０度の領域内の回転角が実際の回転角であると判定される。
［５］第５演算モード
第５演算モードは、第１演算モードおよび第２演算モードのいずれもが適用できない場合であって、第３磁気センサ７３が検出している磁極に対応する角度幅誤差補正値Ｅ３および第３出力信号Ｓ３の振幅Ａ３が第２演算モードによって既に演算されてメモリに記憶されている場合に適用される演算モードである。第５演算モードでは、主として第３磁気センサ７２の出力信号Ｓ３に基づいて回転角θが演算される。
【０１０８】
たとえば、図８Ｃに示すように、磁石６１（入力軸８）が矢印で示す方向に回転している場合において、第２および第３磁気センサ７２，７３が同じ磁極（この例ではＭ２）を検出している状態から、第２磁気センサ７２が検出している磁極が変化した場合に、第５演算モードは適用される。
角度幅誤差補正値Ｅと今演算周期の番号ｎを用いると、今演算周期においてサンプリングされた第３磁気センサ７３の出力信号Ｓ３は、次式 (38)で表される。
【０１０９】
Ｓ３[n]＝Ａ３[n］sin（Ｅ３θ[n］＋２４０）        …(38)
Ｅ３は、第３磁気センサ７２が検出している磁極に対応する角度幅誤差補正値である。
前記式(38)から回転角θ[n］は、次式(39)で表される。
θ[n］＝（１／Ｅ３）｛sin−１（Ｓ３[n]／Ａ３）−１２０｝    …(39)
メモリに記憶されており、第３磁気センサ７３が検出している磁極に対応するＥ３およびＡ３を、前記式(39)に代入することにより、θ[n］が演算される。
【０１１０】
前記式(39)によって回転角θ[n］を演算すると、２つの回転角θ[n］が演算される。そこで、第３磁気センサ７３以外の２つの磁気センサ７１，７２３の出力信号Ｓ１，Ｓ２のいずれか一方に基づいて、前記式(39)によって演算された２つの回転角θ[n］のうちのいずれが実際の回転角であるかを判定する。
たとえば、第２出力信号Ｓ２［n］に基づいて、前記判定が行われる場合について説明する。メモリに記憶されている第２出力信号Ｓ２の振幅Ａ２の１／２または第３出力信号Ｓ３の振幅Ａ３の１／２を閾値ａ（ａ＞０）とする。
【０１１１】
第３出力信号Ｓ３[n]が正の値である場合には、第２出力信号Ｓ２［n］が−ａ未満であれば、前記式(39)によって演算された２つの回転角のうち１２０度〜２１０度の領域内の回転角が実際の回転角であると判定される。一方、第２出力信号Ｓ２［n］が−ａ以上であれば、前記式(39)によって演算された２つの回転角のうち２１０度〜３００度の領域内の回転角が実際の回転角であると判定される。
【０１１２】
第３出力信号Ｓ３[n]が負の値である場合には、第２出力信号Ｓ２［n］がａ以上であれば、前記式(39)によって演算された２つの回転角のうち３００度〜３６０度または０度〜３０度の領域内の回転角が実際の回転角であると判定される。一方、第２出力信号Ｓ２［n］がａ未満であれば、前記式(39)によって演算された２つの回転角のうち３０度〜１２０度の領域内の回転角が実際の回転角であると判定される。
【０１１３】
図１０は、第１の回転角演算部７７Ａの動作を示すフローチャートである。
トルク演算用ＥＣＵ７７の電源がオンすると、第１の回転角演算部７７Ａは、強制回転に基づく回転角演算処理を行う（ステップＳ１）。この処理は、電動モータ１８を一時的に強制回転させることにより、入力軸８（出力軸９）を回転させ、入力軸８の回転角θを演算する処理である。この処理の詳細については後述する。
【０１１４】
前述した第１演算モードまたは第２演算モードでは、前回のサンプリング時点と今回のサンプリング時点とにおいて、回転角θ［n］の演算に用いられる２つの磁気センサの出力信号が変化していない場合には、前回演算されたＥθ［n］（またはＥΘ［n］）、Ｅおよびθ［n］が、今回のＥθ［n］（またはＥΘ［n］）、Ｅおよびθ［n］として用いられる（表１の上から２番目の演算式を参照）。しかしながら、イグニッションキーがオン操作されることによって、トルク演算用ＥＣＵ７７の電源がオンされた時点では、前回演算されたＥθ［n］（またはＥΘ［n］）、Ｅおよびθ［n］は存在しないため、トルク演算用ＥＣＵ７７の電源がオンされた後に、回転角θ［n］の演算に用いられる２つの磁気センサの出力信号が変化していない場合には、回転角θ［n］を演算できなくなる。そこで、Ｅθ［n］（またはＥΘ［n］）、Ｅおよびθ［n］の前回値を作成するために、強制回転に基づく回転角演算処理を行っている。
【０１１５】
強制回転に基づく回転角演算処理が終了すると、第１の回転角演算部７７Ａは、通常時の回転角演算処理を行う（ステップＳ２）。この処理の詳細については後述する。通常時の回転角演算処理は、イグニッションキーのオフ操作が行われるまで継続して行われる。イグニッションキーのオフ操作が行われると（ステップＳ３：ＹＥＳ）、第１の回転角演算部７７Ａは通常時の回転角演算処理を終了する。
【０１１６】
図１１Ａ、図１１Ｂおよび図１１Ｃは、図１０のステップＳ１の強制回転に基づく回転角演算処理の手順を示すフローチャートである。
強制回転に基づく回転角演算処理開始時において第１磁気センサ７１が検出している磁極を基準磁極として、各磁極に相対的な番号を割り当てた場合の各磁極の番号を相対的極番号と定義する。第１磁気センサ７１が検出している磁極の相対的極番号（以下、「第１相対的極番号」という）を変数ｒ１で表し、第２磁気センサ７２が検出している磁極の相対的極番号（以下、「第２相対的極番号」という）を変数ｒ２で表し、第３磁気センサ７３が検出している磁極の相対的極番号（以下、「第３相対的極番号」という）を変数ｒ３で表すことにする。なお、各相対的極番号ｒ１，ｒ２，ｒ３は、１〜８の整数をとり、１より１少ない相対的極番号は８となり、８より１大きい相対的極番号は１となるものとする。
【０１１７】
トルク演算用ＥＣＵ７７内のメモリには、図１２に示すように、ｅ１〜ｅ７で示すエリア等が設けられている。エリアｅ１には、１〜８の相対的磁極番号毎に角度幅誤差補正値Ｅの値が記憶される。エリアｅ２には、１〜８の相対的磁極番号毎に第１出力信号Ｓ１の振幅Ａ１が記憶される。エリアｅ３には、１〜８の相対的磁極番号毎に第２出力信号Ｓ２の振幅Ａ２が記憶される。エリアｅ４には、１〜８の相対的磁極番号毎に第３出力信号Ｓ３の振幅Ａ３が記憶される。
【０１１８】
エリアｅ５には、複数演算周期分の第１相対的極番号ｒ１[n-k］〜ｒ１[n］（ｋは、３以上の自然数）が記憶される。エリアｅ６には、複数演算周期分の第２相対的極番号ｒ２[n-k］〜ｒ２[n］が記憶される。エリアｅ７には、複数演算周期分の第３相対的極番号ｒ３[n-k］〜ｒ３[n］が記憶される。
図１１Ａに戻り、強制回転に基づく回転角演算処理では、短時間ではあるがステアリングホイール２が自動的に回転する。このため、運転者は何らかの故障が発生したと誤解するおそれがある。そこで、第１の回転角演算部７７Ａは、運転者への警告を行う（ステップＳ１１）。具体的には、第１の回転角演算部７７Ａは、車内に設けられた表示装置（図示略）、音声出力装置（図示略）等を制御するための映像音声制御装置（図示略）に、警告出力指令を送信する。映像音声制御装置は、この警告出力指令を受信すると、「ステアリングホイールが強制的に回転しますが故障ではありません」等のメッセージを表示装置に表示したり、音声出力装置によって音声出力したりする。
【０１１９】
次に、第１の回転角演算部７７Ａは、第１方向に電動モータ１８を回転駆動させる（ステップＳ１２）。具体的には、第１の回転角演算部７７Ａは、第１方向に電動モータ１８を回転駆動させるための第１強制回転指令をモータ制御用ＥＣＵ１２に送信する。モータ制御用ＥＣＵ１２は、この第１強制回転指令を受信すると、第１方向に電動モータ１８を回転駆動させる。
【０１２０】
第１の回転角演算部７７Ａは、各磁気センサ７１，７２，７３のセンサ値Ｓ１[n], Ｓ２[n] ，Ｓ３[n]を取得する（ステップＳ１３）。ステップＳ１３の処理は、後述するステップＳ１９またはステップＳ２１でＹＥＳと判定されるまで、所定の演算周期毎に繰り返し実行される。トルク演算用ＥＣＵ７７内のメモリには、所定回数前に取得されたセンサ値から最新に取得されたセンサ値までの複数回分（３回以上）のセンサ値が記憶されるようになっている。
【０１２１】
第１の回転角演算部７７Ａは、今回の処理が強制回転に基づく回転角演算処理開始後の初回の処理であるか否かを判別する（ステップＳ１４）。今回の処理が強制回転に基づく回転角演算処理開始後の初回の処理である場合には（ステップＳ１４：ＹＥＳ）、第１の回転角演算部７７Ａは、相対的極番号の設定処理を行う（ステップＳ１５）。
図１３は、相対的極番号の設定処理の詳細な手順を示すフローチャートである。
【０１２２】
第１の回転角演算部７７Ａは、まず、第１出力信号Ｓ１が０より大きいか否かを判別する（ステップＳ５１）。第１出力信号Ｓ１が０より大きい場合には（ステップＳ５１：ＹＥＳ）、第１の回転角演算部７７Ａは、第１磁気センサ７１が検出している磁極がＮ極の磁極であると判別し、第１相対的極番号ｒ１を１に設定する（ステップＳ５４）。そして、ステップＳ５６に進む。
【０１２３】
一方、第１出力信号Ｓ１が０以下である場合には（ステップＳ５１：ＮＯ）、第１の回転角演算部７７Ａは、第１出力信号Ｓ１が０より小さいか否かを判別する（ステップＳ５２）。第１出力信号Ｓ１が０より小さい場合には（ステップＳ５２：ＹＥＳ）、第１の回転角演算部７７Ａは、第１磁気センサ７１が検出している磁極がＳ極の磁極であると判別し、第１相対的極番号ｒ１を２に設定する（ステップＳ５５）。そして、ステップＳ５６に進む。
【０１２４】
前記ステップＳ５２において、第１出力信号Ｓ１が０以上であると判別された場合には（ステップＳ５２：ＮＯ）、つまり、第１出力信号Ｓ１が０である場合には、第１の回転角演算部７７Ａは、入力軸８の回転角が０°であるか１８０°であるかを判別するために、第２出力信号Ｓ２が０より大きいか否かを判別する（ステップＳ５３）。第２出力信号Ｓ２が０より大きい場合には（ステップＳ５３：ＹＥＳ）、第１の回転角演算部７７Ａは、入力軸８の回転角が０°であると判別し、第１相対的極番号ｒ１を１に設定する（ステップＳ５４）。そして、ステップＳ５６に進む。
【０１２５】
一方、第２出力信号Ｓ２が０以下である場合には（ステップＳ５３：ＮＯ）、第１の回転角演算部７７Ａは、入力軸８の回転角が１８０°であると判別し、第１相対的極番号ｒ１を２に設定する（ステップＳ５５）。そして、ステップＳ５６に進む。
ステップＳ５６では、第１の回転角演算部７７Ａは、「Ｓ１≧０かつＳ２＞０」または「Ｓ１≦０かつＳ２＜０」の条件を満たしているか否かを判別する。この条件を満たしている場合には（ステップＳ５６：ＹＥＳ）、第１の回転角演算部７７Ａは、第２磁気センサ７２が検出している磁極の極番号は、第１磁気センサ７１が検出している磁極の極番号と同じであると判別し、第２相対的極番号ｒ２に第１相対的極番号ｒ１と同じ番号（ｒ２＝ｒ１）を設定する（ステップＳ５７）。そして、ステップＳ５９に進む。
【０１２６】
一方、前記ステップＳ５６の条件を満たしていない場合には（ステップＳ５６：ＮＯ）、第１の回転角演算部７７Ａは、第２磁気センサ７２が検出している磁極の極番号は、第１磁気センサ７１が検出している磁極の極番号より１だけ大きい番号であると判別し、第２相対的極番号ｒ２に、第１相対的極番号ｒ１より１だけ大きい番号（ｒ２＝ｒ１＋１）を設定する（ステップＳ５８）。そして、ステップＳ５９に進む。
【０１２７】
ステップＳ５９では、第１の回転角演算部７７Ａは、「Ｓ１≧０かつＳ３＜０」または「Ｓ１≦０かつＳ３＞０」の条件を満たしているか否かを判別する。この条件を満たしている場合には（ステップＳ５９：ＹＥＳ）、第１の回転角演算部７７Ａは、第３磁気センサ７３が検出している磁極の極番号は、第１磁気センサ７１が検出している磁極の極番号より１だけ大きい番号であると判別し、第３相対的極番号ｒ３に、第１相対的極番号ｒ１より１だけ大きい番号（ｒ３＝ｒ１＋１）を設定する（ステップＳ６０）。そして、図１１ＢのステップＳ１８に移行する。
【０１２８】
一方、前記ステップＳ５９の条件を満たしていない場合には（ステップＳ５９：ＮＯ）、第１の回転角演算部７７Ａは、第３磁気センサ７３が検出している磁極の極番号は、第１磁気センサ７１が検出している磁極の極番号より２だけ大きい番号であると判別し、第３相対的極番号ｒ３に、第１相対的極番号ｒ１より２だけ大きい番号（ｒ３＝ｒ１＋２）を設定する（ステップＳ６１）。そして、図１１ＢのステップＳ１８に移行する。
【０１２９】
前記ステップＳ５６の条件に基づいて第２相対的極番号ｒ２を決定している理由および前記ステップＳ５９の条件に基づいて第３相対的極番号ｒ３を決定している理由について説明する。たとえば、磁石６１における磁極Ｍ１と磁極Ｍ２とからなる磁極対が第１磁気センサ７１を通過する際の、第１、第２および第３出力信号Ｓ１，Ｓ２，Ｓ３の信号波形を模式的に表すと、図１４の（ａ），（ｂ），（ｃ）のようになる。
【０１３０】
図１４において、Ｑ１およびＱ４で示す領域においては、第２磁気センサ７２が検出している磁極の極番号は、第１磁気センサ７１が検出している磁極の極番号と同じである。一方、Ｑ２，Ｑ３，Ｑ５およびＱ６で示す領域においては、第２磁気センサ７２が検出している磁極の極番号は、第１磁気センサ７１が検出している磁極の極番号より１だけ大きい。
【０１３１】
領域Ｑ１においては、両センサ値Ｓ１，Ｓ２は、Ｓ１≧０かつＳ２＞０の第１条件を満たす。領域Ｑ２およびＱ３においては、両センサ値Ｓ１，Ｓ２は、Ｓ１＞０かつＳ２≦０の第２条件を満たす。領域Ｑ４においては、両センサ値Ｓ１，Ｓ２は、Ｓ１≦０かつＳ２＜０の第３条件を満たす。領域Ｑ５およびＱ６においては、両センサ値Ｓ１，Ｓ２は、Ｓ１＜０かつＳ２≧０の第４条件を満たす。そこで、第１の回転角演算部７７Ａは、第１条件および第３条件の一方を満たしているときには、第２磁気センサ７２が検出している磁極の極番号が、第１磁気センサ７１が検出している磁極の極番号と同じであると判別している。一方、第１条件および第３条件のいずれの条件をも満たしていないときには、第１の回転角演算部７７Ａは、第２磁気センサ７２が検出している磁極の極番号が、第１磁気センサ７１が検出している磁極の極番号より１だけ大きいと判別している。
【０１３２】
図１４において、Ｑ１およびＱ２で示す領域ならびにＱ４およびＱ５で示す領域においては、第３磁気センサ７３が検出している磁極の極番号は、第１磁気センサ７１が検出している磁極の極番号より１だけ大きい。一方、Ｑ３およびＱ６で示す領域においては、第３磁気センサ７２が検出している磁極の極番号は、第１磁気センサ７１が検出している磁極の極番号より２だけ大きい。
【０１３３】
領域Ｑ１およびＱ２においては、両センサ値Ｓ１，Ｓ３は、Ｓ１≧０かつＳ３＜０の第５条件を満たす。領域Ｑ３においては、両センサ値Ｓ１，Ｓ３は、Ｓ１＞０かつＳ３≧０の第６条件を満たす。領域Ｑ４およびＱ５においては、両センサ値Ｓ１，Ｓ３は、Ｓ１≦０かつＳ３＞０の第７条件を満たす。領域Ｑ６においては、両センサ値Ｓ１，Ｓ２は、Ｓ１＜０かつＳ３≦０の第８条件を満たす。そこで、第１の回転角演算部７７Ａは、第５条件および第７条件のいずれか一方を満たしているときには、第３磁気センサ７３が検出している磁極の極番号が、第１磁気センサ７１が検出している磁極の極番号より１だけ大きいと判別している。一方、第５条件および第７条件のいずれをも満たしていないときには、第１の回転角演算部７７Ａは、第３磁気センサ７３が検出している磁極の極番号が、第１磁気センサ７１が検出している磁極の極番号より２だけ大きいと判別している。
【０１３４】
図１１Ａに戻り、前記ステップＳ１４において、今回の処理が強制回転に基づく回転角演算処理開始後の初回の処理ではないと判別された場合には（ステップＳ１４：ＮＯ）、ステップＳ１６に移行する。
ステップＳ１６では、第１の回転角演算部７７Ａは、メモリに記憶されているセンサ値Ｓ１，Ｓ２，Ｓ３に基づいて、センサ値Ｓ１，Ｓ２，Ｓ３毎に、センサ値の符号が反転するゼロクロスを検出したか否かを判別する。ゼロクロスが検出されなかったときには（ステップＳ１６：ＮＯ）、第１の回転角演算部７７Ａは、図１１ＢのステップＳ１８に移行する。
【０１３５】
前記ステップＳ１６において、いずれかのセンサ値Ｓ１，Ｓ２，Ｓ３に対してゼロクロスが検出された場合には（ステップＳ１６：ＹＥＳ）、第１の回転角演算部７７Ａは、相対的極番号の更新処理を行なう（ステップＳ１７）。具体的には、第１の回転角演算部７７Ａは、前記ステップＳ１６でゼロクロスが検出された磁気センサに対して現在設定されている相対的極番号ｒ１，ｒ２またはｒ３を、入力軸８（磁石６１）の回転方向に応じて、１だけ大きい番号または１だけ小さい番号に変更する。
【０１３６】
入力軸８の回転方向が正方向（図６に矢印で示す方向）である場合には、第１の回転角演算部７７Ａは、前記ステップＳ１６でゼロクロスが検出された磁気センサに対して現在設定されている相対的極番号ｒ１，ｒ２またはｒ３を、１だけ大きい番号に更新する。一方、入力軸８の回転方向が逆方向である場合には、第１の回転角演算部７７Ａは、ゼロクロスが検出された磁気センサに対して現在設定されている相対的極番号ｒ１，ｒ２またはｒ３を、１だけ小さい番号に更新する。ただし、前述したように、”１”の相対的極番号に対して、１だけ小さい相対的極番号は、”８”となる。また、”８”の相対的極番号に対して、１だけ大きい相対的極番号は、”１”となる。
【０１３７】
なお、入力軸８の回転方向は、例えば、ゼロクロスが検出された出力信号の前回値および今回値と、他方の出力信号の今回値とに基づいて判定することができる。具体的には、ゼロクロスが検出された出力信号が第１出力信号Ｓ１である場合には、「第１出力信号Ｓ１の前回値が０より大きくかつその今回値が０以下であり、第２出力信号Ｓ２が０より小さい」という条件、または「第１出力信号Ｓ１の前回値が０未満でかつその今回値が０以上であり、第２出力信号Ｓ２が０より大きい」という条件を満たしている場合には、回転方向は正方向（図６に矢印で示す方向）であると判定される。
【０１３８】
一方、「第１出力信号Ｓ１の前回値が０以上でかつその今回値が０未満であり、第２出力信号Ｓ２が０より大きい」という条件、または「第１出力信号Ｓ１の前回値が０以下でかつその今回値が０より大きく、第２出力信号Ｓ２が０より小さい」という条件を満たしている場合には、回転方向は逆方向であると判定される。
ゼロクロスが検出された出力信号が第２出力信号Ｓ２である場合には、「第２出力信号Ｓ２の前回値が０より大きくかつその今回値が０以下であり、第１出力信号Ｓ１が０より大きい」という条件、または「第２出力信号Ｓ２の前回値が０未満でかつその今回値が０以上であり、第１出力信号Ｓ１が０より小さい」という条件を満たしている場合には、回転方向は正方向（図６に矢印で示す方向）であると判定される。一方、「第２出力信号Ｓ２の前回値が０以上でかつその今回値が０未満であり、第１出力信号Ｓ１が０より小さい」という条件、または「第２出力信号Ｓ２の前回値が０以下でかつその今回値が０より大きく、第１出力信号Ｓ１が０より大きい」という条件を満たしている場合には、回転方向は逆方向であると判定される。
【０１３９】
ゼロクロスが検出された出力信号が第３出力信号Ｓ３である場合には、「第３出力信号Ｓ３の前回値が０より大きくかつその今回値が０以下であり、第２出力信号Ｓ２が０より大きい」という条件、または「第３出力信号Ｓ３の前回値が０未満でかつその今回値が０以上であり、第２出力信号Ｓ２が０より小さい」という条件を満たしている場合には、回転方向は正方向（図６に矢印で示す方向）であると判定される。
【０１４０】
一方、「第３出力信号Ｓ３の前回値が０以上でかつその今回値が０未満であり、第２出力信号Ｓ２が０より小さい」という条件、または「第３出力信号Ｓ３の前回値が０以下でかつその今回値が０より大きく、第２出力信号Ｓ２が０より大きい」という条件を満たしている場合には、回転方向は逆方向であると判定される。
相対的極番号の更新処理が終了すると、第１の回転角演算部７７Ａは、図１１ＢのステップＳ１８に移行する。ステップＳ１８では、第１の回転角演算部７７Ａは、第１および第２磁気センサ７１，７２が共に同じ１つの磁極を３演算周期連続して検出しているという条件を満たしている否かを判別する。ステップＳ１８の条件を満たしていない場合には（ステップＳ１８：ＮＯ）、第１の回転角演算部７７Ａは、第２および第３磁気センサ７２，７３が共に同じ１つの磁極を３演算周期連続して検出しているという条件を満たしている否かを判別する（ステップＳ２０）。ステップＳ２０の条件を満たしていない場合には（ステップＳ２０：ＮＯ）、第１の回転角演算部７７Ａは、図１１ＡのステップＳ１３に戻る。
【０１４１】
前記ステップＳ１８において、ステップＳ１８の条件を満たしていると判別された場合には（ステップＳ１８：ＹＥＳ）、第１の回転角演算部７７Ａは、ＥθおよびＥを演算するための演算式に含まれている分数のいずれの分母も零でないという条件を満たしているか否かを判別する（ステップＳ１９）。ステップＳ１９の条件を満たしていない場合には（ステップＳ１９：ＮＯ）、第１の回転角演算部７７Ａは、図１１ＡのステップＳ１３に戻る。一方、ステップＳ１９の条件を満たしている場合には（ステップＳ１９：ＹＥＳ）、第１の回転角演算部７７Ａは、ステップＳ２２に移行する。
【０１４２】
前記ステップＳ２０において、ステップＳ２０の条件を満たしていると判別された場合には（ステップＳ２０：ＹＥＳ）、第１の回転角演算部７７Ａは、ＥΘおよびＥを演算するための演算式に含まれている分数のいずれの分母も零でないという条件を満たしているか否かを判別する（ステップＳ２１）。ステップＳ２１の条件を満たしていない場合には（ステップＳ２１：ＮＯ）、第１の回転角演算部７７Ａは、図１１ＡのステップＳ１３に戻る。一方、ステップＳ２１の条件を満たしている場合には（ステップＳ２１：ＹＥＳ）、第１の回転角演算部７７Ａは、ステップＳ２２に移行する。
【０１４３】
ステップＳ２２では、第１の回転角演算部７７Ａは、第１方向とは反対方向である第２方向に電動モータ１８を回転駆動させる。具体的には、第１の回転角演算部７７Ａは、第２方向に電動モータ１８を回転駆動させるための第２強制回転指令をモータ制御用ＥＣＵ１２に送信する。モータ制御用ＥＣＵ１２は、この第２強制回転指令を受信すると、第２方向に電動モータ１８を回転駆動させる。
【０１４４】
この後、第１の回転角演算部７７Ａは、各磁気センサ７１，７２のセンサ値Ｓ１[n], Ｓ２[n] ，Ｓ３[n]を取得する（ステップＳ２３）。ステップＳ２３の処理は、後述するステップＳ２７またはステップＳ３１でＹＥＳと判定されるまで、所定の演算周期毎に繰り返し実行される。そして、第１の回転角演算部７７Ａは、メモリに記憶されているセンサ値Ｓ１，Ｓ２，Ｓ３に基づいて、センサ値Ｓ１，Ｓ２，Ｓ３毎に、センサ値の符号が反転するゼロクロスを検出したか否かを判別する（ステップＳ２４）。ゼロクロスが検出されなかったときには（ステップＳ２４：ＮＯ）、第１の回転角演算部７７Ａは、図１１ＣのステップＳ２６に移行する。
【０１４５】
前記ステップＳ２４において、いずれかのセンサ値Ｓ１，Ｓ２，Ｓ３に対してゼロクロスが検出された場合には（ステップＳ２４：ＹＥＳ）、第１の回転角演算部７７Ａは、相対的極番号の更新処理を行なう（ステップＳ２５）。この相対的極番号の更新処理は、前述したステップＳ１７における相対的極番号の更新処理と同じである。ステップＳ２５の相対的極番号の更新処理が終了すると、第１の回転角演算部７７Ａは、図１１ＣのステップＳ２６に移行する。
【０１４６】
ステップＳ２６では、第１の回転角演算部７７Ａは、第１および第２磁気センサ７１，７２が共に同じ１つの磁極を３演算周期連続して検出しているという条件を満たしている否かを判別する。ステップＳ２６の条件を満たしていない場合には（ステップＳ２６：ＮＯ）、第１の回転角演算部７７Ａは、第２および第３磁気センサ７２，７３が共に同じ１つの磁極を３演算周期連続して検出しているという条件を満たしている否かを判別する（ステップＳ３０）。ステップＳ３０の条件を満たしていない場合には（ステップＳ３０：ＮＯ）、第１の回転角演算部７７Ａは、図１１ＢのステップＳ２３に戻る。
【０１４７】
前記ステップＳ２６において、ステップＳ２６の条件を満たしていると判別された場合には（ステップＳ２６：ＹＥＳ）、第１の回転角演算部７７Ａは、第１演算モードのためのＥθ基本演算式およびＥ演算式に含まれている分数のいずれの分母も零でないという条件を満たしているか否かを判別する（ステップＳ２７）。ステップＳ２７の条件を満たしていない場合には（ステップＳ２７：ＮＯ）、第１の回転角演算部７７Ａは、図１１ＢのステップＳ２３に戻る。
【０１４８】
ステップＳ２７の条件を満たしていると判別された場合には（ステップＳ２７：ＹＥＳ）、第１の回転角演算部７７Ａは、第１演算モードによってθ[n]，Ｅ，Ａ１，Ａ２を演算する（ステップＳ２８）。そして、第１の回転角演算部７７Ａは、演算されたＥ、Ａ１およびＡ２を、第１および第２磁気センサ７１，７２が検出している磁極の相対的極番号に関連付けてメモリに記憶する（ステップＳ２９）。第１および第２磁気センサ７１，７２が検出している磁極の相対的極番号は、現在設定されている第１相対的極番号ｒ１または第２相対的極番号ｒ２と同じ値となる。具体的には、第１の回転角演算部７７Ａは、メモリのエリアｅ１，ｅ２，ｅ３内の現在設定されている第１相対的極番号ｒ１に対応する記憶場所に、演算されたＥ、Ａ１およびＡ２をそれぞれ記憶する。この後、第１の回転角演算部７７Ａは、ステップＳ３４に進む。
【０１４９】
前記ステップＳ３０において、ステップＳ３０の条件を満たしていると判別された場合には（ステップＳ３０：ＹＥＳ）、第１の回転角演算部７７Ａは、第２演算モードのためのＥΘ基本演算式およびＥ演算式に含まれている分数のいずれの分母も零でないという条件を満たしているか否かを判別する（ステップＳ３１）。ステップＳ３１の条件を満たしていない場合には（ステップＳ３１：ＮＯ）、第１の回転角演算部７７Ａは、図１１ＢのステップＳ２３に戻る。
【０１５０】
ステップＳ３１の条件を満たしている場合には（ステップＳ３１：ＹＥＳ）、第１の回転角演算部７７Ａは、第２演算モードによってθ[n]，Ｅ，Ａ２，Ａ３を演算する（ステップＳ３２）。そして、第１の回転角演算部７７Ａは、演算されたＥ、Ａ２およびＡ３を、第２および第３磁気センサ７２，７３が検出している磁極の相対的極番号に関連付けてメモリに記憶する（ステップＳ３３）。第２および第３磁気センサ７２，７３が検出している磁極の相対的極番号は、現在設定されている第２相対的極番号ｒ２または第３相対的極番号ｒ３と同じ値となる。具体的には、第１の回転角演算部７７Ａは、メモリのエリアｅ１，ｅ３，ｅ４内の現在設定されている第３相対的極番号ｒ３に対応する記憶場所に、演算されたＥ、Ａ２およびＡ３をそれぞれ記憶する。この後、第１の回転角演算部７７Ａは、ステップＳ３４に進む。
【０１５１】
ステップＳ３４では、第１の回転角演算部７７Ａは、電動モータ１８の駆動を停止させるとともに運転者への警告を停止させる。具体的には、第１の回転角演算部７７Ａは、電動モータ１８の駆動停止指令をモータ制御用ＥＣＵ１２に送信するとともに、映像音声制御装置に警告停止指令を送信する。モータ制御用ＥＣＵ１２は、電動モータ１８の駆動停止指令を受信すると電動モータ１８の駆動を停止させる。映像音声制御装置は、警告停止指令を受信すると、警告表示、警告音声出力等を停止させる。これにより、強制回転に基づく回転角演算処理が終了する。
【０１５２】
図１５Ａおよび図１５Ｂは、図１０のステップＳ２の通常時の回転角演算処理の手順を示すフローチャートである。図１５Ａおよび図１５Ｂの処理は、所定の演算周期毎に繰り返し実行される。
第１の回転角演算部７７Ａは、各磁気センサ７１，７２，７３のセンサ値Ｓ１[n], Ｓ２[n] ，Ｓ３[n]を取得する（ステップＳ６１）。そして、第１の回転角演算部７７Ａは、メモリに記憶されているセンサ値Ｓ１，Ｓ２，Ｓ３に基づいて、センサ値Ｓ１，Ｓ２，Ｓ３毎に、センサ値の符号が反転するゼロクロスを検出したか否かを判別する（ステップＳ６２）。ゼロクロスが検出されなかったときには（ステップＳ６２：ＮＯ）、第１の回転角演算部７７Ａは、ステップＳ６４に移行する。
【０１５３】
前記ステップＳ６２において、いずれかのセンサ値Ｓ１，Ｓ２，Ｓ３に対してゼロクロスが検出された場合には（ステップＳ６２：ＹＥＳ）、第１の回転角演算部７７Ａは、相対的極番号の更新処理を行なう（ステップＳ６３）。この相対的極番号の更新処理は、前述した図１１ＡのステップＳ１７における相対的極番号の更新処理と同じである。ステップＳ６３の相対的極番号の更新処理が終了すると、第１の回転角演算部７７Ａは、ステップＳ６４に移行する。
【０１５４】
ステップＳ６４では、第１の回転角演算部７７Ａは、第１および第２磁気センサ７１，７２が共に同じ１つの磁極を３演算周期連続して検出しているという条件を満たしている否かを判別する。ステップＳ６４の条件を満たしている場合には（ステップＳ６４：ＹＥＳ）、第１の回転角演算部７７Ａは、第１演算モードによってθ[n]，Ｅ，Ａ１，Ａ２を演算する（ステップＳ６５）。第１演算モードによって回転角θ[n]を演算する際においては、第１の回転角演算部７７Ａは、Ｅθ基本演算式に含まれている分数の分母が零でないか否か、Ｅ演算式に含まれている分数の分母が零でないか否かを判定し、それらの判定結果に応じてθ[n]，Ｅ，Ａ１，Ａ２を演算する。
【０１５５】
第１の回転角演算部７７Ａは、θ[n]，Ｅ，Ａ１，Ａ２を演算すると、Ｅθ基本演算式およびＥ演算式に含まれている分数のいずれの分母も零でないという条件を満たしていたか否かを判別する（ステップＳ６６）。ステップＳ６６の条件を満たしていた場合には（ステップＳ６６：ＹＥＳ）、第１の回転角演算部７７Ａは、演算されたＥ、Ａ１およびＡ２を、第１および第２磁気センサ７１，７２が検出している磁極の相対的極番号に関連付けてメモリに記憶する（ステップＳ６７）。第１および第２磁気センサ７１，７２が検出している磁極の相対的極番号は、現在設定されている第１相対的極番号ｒ１または第２相対的極番号ｒ２と同じ値となる。具体的には、第１の回転角演算部７７Ａは、メモリのエリアｅ１，ｅ２，ｅ３内の現在設定されている第１相対的極番号ｒ１に対応する記憶場所に、演算されたＥ、Ａ１およびＡ２をそれぞれ記憶する。なお、メモリのエリアｅ１，ｅ２，ｅ３の前記記憶場所に既にＥ、Ａ１およびＡ２が記憶されている場合には、今回演算されたＥ、Ａ１およびＡ２が上書きされる。この後、第１の回転角演算部７７Ａは、今回演算周期での処理を終了する。
【０１５６】
前記ステップＳ６６において、ステップＳ６６の条件を満たしていなかったと判別された場合には（ステップＳ６６：ＮＯ）、第１の回転角演算部７７Ａは、ステップＳ６７の処理を行うことなく、今回演算周期での処理を終了する。したがって、この場合には、ステップＳ６５で演算されたＥ、Ａ１およびＡ２は、メモリのエリアｅ１，ｅ２，ｅ３に記憶されない。
【０１５７】
前記ステップＳ６４において、ステップＳ６４の条件を満たしていないと判別された場合には（ステップＳ６４：ＮＯ）、第１の回転角演算部７７Ａは、第２および第３磁気センサ７２，７３が共に同じ１つの磁極を３演算周期連続して検出しているという条件を満たしている否かを判別する（ステップＳ６８）。ステップＳ６８の条件を満たしている場合には（ステップＳ６８：ＹＥＳ）、第１の回転角演算部７７Ａは、第２演算モードによってθ[n]，Ｅ，Ａ２，Ａ３を演算する（ステップＳ６９）。第２演算モードによって回転角θ[n]を演算する際においては、第１の回転角演算部７７Ａは、ＥΘ基本演算式に含まれている分数の分母が零でないか否か、Ｅ演算式に含まれている分数の分母が零でないか否かを判定し、それらの判定結果に応じてθ[n]，Ｅ，Ａ２，Ａ３を演算する。
【０１５８】
第１の回転角演算部７７Ａは、θ[n]，Ｅ，Ａ２，Ａ３を演算すると、ＥΘ基本演算式およびＥ演算式に含まれている分数のいずれの分母も零でないという条件を満たしていたか否かを判別する（ステップＳ７０）。ステップＳ７０の条件を満たしていた場合には（ステップＳ７０：ＹＥＳ）、第１の回転角演算部７７Ａは、演算されたＥ、Ａ２およびＡ３を、第２および第３磁気センサ７２，７３が検出している磁極の相対的極番号に関連付けてメモリに記憶する（ステップＳ７１）。第２および第３磁気センサ７２，７３が検出している磁極の相対的極番号は、現在設定されている第２相対的極番号ｒ２または第３相対的極番号ｒ３と同じ値となる。具体的には、第１の回転角演算部７７Ａは、メモリのエリアｅ１，ｅ３，ｅ４内の現在設定されている第３相対的極番号ｒ３に対応する記憶場所に、演算されたＥ、Ａ２およびＡ３をそれぞれ記憶する。なお、メモリのエリアｅ１，ｅ３，ｅ４の前記記憶場所に既にＥ、Ａ２およびＡ３が記憶されている場合には、今回演算されたＥ、Ａ２およびＡ３が上書きされる。この後、第１の回転角演算部７７Ａは、今回演算周期での処理を終了する。
【０１５９】
前記ステップＳ７０において、ステップＳ７０の条件を満たしていなかったと判別された場合には（ステップＳ７０：ＮＯ）、第１の回転角演算部７７Ａは、ステップＳ７１の処理を行うことなく、今回演算周期での処理を終了する。したがって、この場合には、ステップＳ６９で演算されたＥ、Ａ２およびＡ３は、メモリのエリアｅ１，ｅ３，ｅ４に記憶されない。
【０１６０】
前記ステップＳ６８において、ステップＳ６８の条件を満たしていないと判別された場合には（ステップＳ６８：ＮＯ）、第１磁気センサ７１が検出している磁極に対応する磁極幅補正値Ｅがメモリに記憶されているか否かを判別する（ステップＳ７２）。この判別は、メモリのエリアｅ１内の現在設定されている第１相対的極番号ｒ１に対応する記憶場所に、磁極幅補正値Ｅが記憶されているか否かに基づいて行われる。
【０１６１】
第１磁気センサ７１が検出している磁極に対応する磁極幅補正値Ｅがメモリに記憶されている場合には（ステップＳ７２：ＹＥＳ）、第１の回転角演算部７７Ａは、第３演算モードによって回転角θ[n]を演算する（ステップＳ７３）。そして、第１の回転角演算部７７Ａは、今回演算周期での処理を終了する。
前記ステップＳ７２において、第１磁気センサ７１が検出している磁極に対応する磁極幅補正値Ｅがメモリに記憶されていないと判別された場合には（ステップＳ７２：ＮＯ）、第１の回転角演算部７７Ａは、ステップＳ７４に進む。ステップＳ７４では、第１の回転角演算部７７Ａは、第２磁気センサ７２が検出している磁極に対応する磁極幅補正値Ｅがメモリに記憶されているか否かを判別する。この判別は、メモリのエリアｅ２内の現在設定されている第２相対的極番号ｒ２に対応する記憶場所に、磁極幅補正値Ｅが記憶されているか否かに基づいて行われる。
【０１６２】
第２磁気センサ７２が検出している磁極に対応する磁極幅補正値Ｅがメモリに記憶されている場合には（ステップＳ７４：ＹＥＳ）、第１の回転角演算部７７Ａは、第４演算モードによって回転角θ[n]を演算する（ステップＳ７５）。そして、第１の回転角演算部７７Ａは、今回演算周期での処理を終了する。
前記ステップＳ７４において、第２磁気センサ７２１が検出している磁極に対応する磁極幅補正値Ｅがメモリに記憶されていないと判別された場合には（ステップＳ７４：ＮＯ）、第１の回転角演算部７７Ａは、第５演算モードによって回転角θ[n]を演算する（ステップＳ７６）。そして、第１の回転角演算部７７Ａは、今回演算周期での処理を終了する。
【０１６３】
以上、この発明の一実施形態について説明したが、この発明はさらに他の形態で実施することもできる。たとえば、図１５ＡのステップＳ６６を省略して、ステップＳ６５の処理が終了したときには、ステップＳ６７に進むようにしてもよい。同様に、図１５ＡのステップＳ７０を省略して、ステップＳ６９の処理が終了したときには、ステップＳ７１に進むようにしてもよい。
【０１６４】
また、第２磁気センサ７２に対して、入力軸８の半径方向に間隔をおいて、予備の磁気センサを配置しておき、第２磁気センサ７２が故障したときに、予備の磁気センサの出力信号を第２磁気センサ７２の出力信号の代わりに用いるようにしてもよい。
その他、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。
【符号の説明】
【０１６５】
１…電動パワーステアリング装置、８…入力軸、９…出力軸、１２…モータ制御用ＥＣＵ、１８…電動モータ、６１，６２…磁石、７１〜７６…磁気センサ、７７…トルク演算用ＥＣＵ、７７Ａ…第１の回転角演算部、７７Ｂ…第２の回転角演算部、
【図１】
2014115261.tif 000015
【図２】
2014115261.tif 000016
【図３】
2014115261.tif 000017
【図４】
2014115261.tif 000018
【図５】
2014115261.tif 000019
【図６】
2014115261.tif 000020
【図７】
2014115261.tif 000021
【図８】
2014115261.tif 000022
【図９】
2014115261.tif 000023
【図１０】
2014115261.tif 000024
【図１１Ａ】
2014115261.tif 000025
【図１１Ｂ】
2014115261.tif 000026
【図１１Ｃ】
2014115261.tif 000027
【図１２】
2014115261.tif 000028
【図１３】
2014115261.tif 000029
【図１４】
2014115261.tif 000030
【図１５Ａ】
2014115261.tif 000031
【図１５Ｂ】
2014115261.tif 000032
【図１６】
2014115261.tif 000033
【図１７】
2014115261.tif 000034