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