(57)【要約】【課題】システム全体の複雑化や高コスト化を招くことなく、回転角度を高い精度で検出することが可能な磁気センサ信号処理プログラム及び磁気センサモジュールを提供すること。【解決手段】機械角が４５°異なる２つのブリッジ回路から第１及び第２角度演算・識別信号Ｖ1、Ｖ2を入力する。次いで、第１及び第２角度演算・識別信号Ｖ1、Ｖ2を用いて回転角度Ｔの位相を判別する。さらに、回転角度Ｔの位相に応じて角度演算に用いる信号の切り替えを行い、第１及び第２角度演算・識別信号Ｖ1、Ｖ2のいずれか一方を用いて三角波近似により回転角度Ｔを算出する。【選択図】図１７
2011033481.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、以下の手段として機能させるための磁気センサ信号処理プログラム。
（１）少なくとも１個の第１磁気センサを含む第１ブリッジ回路から出力された第１角度演算・識別信号Ｖ1を入力し、メモリーに記憶させる第１角度演算・識別信号入力手段。
（２）少なくとも１個の第２磁気センサを含み、前記第１ブリッジ回路とは機械角が４５°異なるように配置された第２ブリッジ回路から出力された第２角度演算・識別信号Ｖ2を入力し、前記メモリーに記憶させる第２角度演算・識別信号入力手段。
（３）以下の演算式を前記メモリーに記憶させる演算式記憶手段。
Ｔ−θ0＝(Ｖ1−Ｖoffset1)θc1／(Ｖ1a−Ｖoffset1)            ・・・（２．１）
Ｔ−θ0＝(Ｖ2−Ｖ2a)(θc2−θc1)／(Ｖ2b−Ｖ2a)＋θc1        ・・・（２．２）
Ｔ−θ0＝(Ｖ1−Ｖ1b)(θc3−θc2)／(Ｖ1c−Ｖ1b)＋θc2        ・・・（２．３）
Ｔ−θ0＝(Ｖ2−Ｖ2c)(θc4−θc3)／(Ｖ2d−Ｖ2c)＋θc3        ・・・（２．４）
Ｔ−θ0＝(Ｖ1−Ｖ1d)(λ−θc4)／(Ｖoffset1−Ｖ1d)＋θc4     ・・・（２．５）
但し、
Ｔは、外部磁界の回転角度（°）。
θ0は、回転角度Ｔの基準角度（°）。
λは、回転角度Ｔの周期（°）。
Ｖoffset1は、前記第１角度演算・識別信号Ｖ1のオフセット。
θcn（ｎ＝１〜４）は、第ｎ切り替え角度で、λ(ｎ−１)／４＜θcn＜λｎ／４。
Ｖ1a〜Ｖ1dは、それぞれ、回転角度Ｔがθ0＋θc1〜θ0＋θc4であるときの前記第１角度演算・識別信号Ｖ1の値。
Ｖ2a〜Ｖ2dは、それぞれ、回転角度Ｔがθ0＋θc1〜θ0＋θc4であるときの前記第２角度演算・識別信号Ｖ2の値。
（４）前記メモリーに記憶された前記第１角度演算・識別信号Ｖ1及び前記第２角度演算・識別信号Ｖ2を用いて、以下の手順により前記回転角度Ｔの位相を判別する位相判別手段。
（ａ）(Ｖ1−Ｖoffset1)≧０、かつ、(Ｖ2−Ｖoffset2)≦０である場合において、(Ｖ1−Ｖ1a)≦０又は(Ｖ2−Ｖ2a)≦０が真の時は０≦Ｔ−θ0≦θc1、偽の時はθc1≦Ｔ−θ0≦θc2。
（ｂ）(Ｖ1−Ｖoffset1)≧０、かつ、(Ｖ2−Ｖoffset2)≧０である場合において、(Ｖ1−Ｖ1b)≧０又は(Ｖ2−Ｖ2a)≦０が真の時はθc1≦Ｔ−θ0≦θc2、偽の時はθc2≦Ｔ−θ0≦θc3。
（ｃ）(Ｖ1−Ｖoffset1)≦０、かつ、(Ｖ2−Ｖoffset2)≧０である場合において、(Ｖ1−Ｖ1c)≧０又は(Ｖ2−Ｖ2c)≧０が真の時はθc2≦Ｔ−θ0≦θc3、偽の時はθc3≦Ｔ−θ0≦θc4。
（ｄ）(Ｖ1−Ｖofsset1)≦０、かつ、(Ｖ2−Ｖoffset2)≦０である場合において、(Ｖ1−Ｖ1d)≦０又は(Ｖ2−Ｖ2d)≧０が真の時はθc3≦Ｔ−θ0≦θc4、偽の時はθc4≦Ｔ−θ0≦λ。
但し、Ｖoffset2は、前記第２角度演算・識別信号Ｖ2のオフセット。
境界値は、いずれか一方のサブ領域に属していればよい。
（５）前記位相判別手段により判別された前記回転角度Ｔの位相に応じて、以下の手順により前記メモリーに記憶された前記第１角度演算・識別信号Ｖ1又は前記第２角度演算・識別信号Ｖ2を前記メモリーに記憶された（２．１）式〜（２．５）式のいずれかに代入し、回転角度Ｔを算出する回転角度算出手段。
０≦Ｔ−θ0≦θc1の時は、（２．１）式。
θc1≦Ｔ−θ0≦θc2の時は、（２．２）式。
θc2≦Ｔ−θ0≦θc3の時は、（２．３）式。
θc3≦Ｔ−θ0≦θc4の時は、（２．４）式。
θc4≦Ｔ−θ0≦λの時は、（２．５）式。
但し、境界値は、いずれか一方のサブ領域に属していればよい。
【請求項２】
以下の手段をさらに備えた請求項１に記載の磁気センサ信号処理プログラム。
（６）前記演算式を用いて前記回転角度Ｔを算出する前に、
（ａ）前記第１ブリッジ回路に人為的に回転磁場を与えたときの前記第１角度演算・識別信号Ｖ1と、前記回転角度Ｔとの関係を前記メモリーに記憶させ、
前記メモリーに記憶された前記第１角度演算・識別信号Ｖ1の回転角度θ0＋ｍλ／２（°）（ｍは、整数）における値Ｖ1(θ0＋ｍλ／２)及び回転角度θ0＋ｎλ／２（°）（ｎは整数で、ｎ≠ｍ）における値Ｖ1(θ0＋ｎλ／２)から波形の傾きΔ1（＝{Ｖ1(θ0＋ｎλ／２)−Ｖ1(θ0＋ｍλ／２)}／{(ｎ−ｍ)λ／２})を算出し、
回転角度θ0＋ｍλ／２（°）を中心として、実際に検出される前記第１角度演算・識別信号Ｖ1を−tan-1Δ1（ｒａｄ）回転させるチルト補正、及び、
（ｂ）前記第２ブリッジ回路に人為的に回転磁場を与えたときの前記第２角度演算・識別信号Ｖ2と、前記回転角度Ｔとの関係を前記メモリーに記憶させ、
前記メモリーに記憶された前記第２角度演算・識別信号Ｖ2の回転角度θ0＋（２ｍ＋１）λ／４（°）（ｍは、整数）における値Ｖ2(θ0＋(２ｍ＋１)λ／４）及び回転角度（θ0＋(２ｎ＋１)λ／４）（°）（ｎは整数で、ｎ≠ｍ）における値Ｖ2(θ0＋(２ｎ＋１)λ／４）から波形の傾きΔ2（＝{Ｖ2(θ0＋(２ｎ＋１)λ／４)−Ｖ2(θ0＋(２ｍ＋１)λ／４)}／{(ｎ−ｍ)λ／２})を算出し、
回転角度θ0＋(２ｍ＋１)λ／４（°）を中心として、実際に検出される前記第２角度演算・識別信号Ｖ2を−tan-1Δ2（ｒａｄ）回転させるチルト補正
を行うチルト補正手段。
【請求項３】
以下の手段をさらに備えた請求項１又は２に記載の磁気センサ信号処理プログラム。
（７）前記演算式を用いて前記回転角度Ｔを算出する前に、
前記第１ブリッジ回路及び前記第２ブリッジ回路に人為的に回転磁場を与えたときの前記第１角度演算・識別信号Ｖ1又は前記第２角度演算・識別信号Ｖ2と、前記回転角度Ｔとの関係を前記メモリーに記憶させ、
前記第ｎ切り替え角度θcnを、前記第１角度演算・識別信号Ｖ1又は前記第２角度演算・識別信号Ｖ2の出力絶対値が等価となる位置において複数組設定し、
設定された複数組の前記第ｎ切り替え角度θcn及び前記演算式を用いて、それぞれ、前記メモリーに記憶された前記回転角度と前記演算式から算出される回転角度との差の最大値（最大角度誤差）を算出し、
前記最大角度誤差が最小となる前記第ｎ切り替え角度θcnを求め、
前記最大角度誤差が最小となる前記第ｎ切り替え角度θcnを前記メモリーに記憶された前記演算式に代入する
第ｎ切り替え角度設定手段。
【請求項４】
前記第１磁気センサ及び前記第２磁気センサは、それぞれ、グラニュラーインギャップ型センサである請求項１から３までのいずれかに記載の磁気センサ信号処理プログラム。
【請求項５】
コンピュータを、以下の手段として機能させるための磁気センサ信号処理プログラム。
（１）少なくとも１個の第１磁気センサを含む第１ブリッジ回路から出力された角度演算信号Ｖ1を入力し、メモリーに記憶させる角度演算信号入力手段。
（２）少なくとも１個の第２磁気センサを含み、前記第１ブリッジ回路とは機械角が４５°異なるように配置された第２ブリッジ回路から出力された識別信号Ｖ2を入力し、前記メモリーに記憶させる識別信号入力手段。
（３）以下の演算式をメモリーに記憶させる演算式記憶手段。
Ｔ−θ0＝(Ｖ1−Ｖoffset1)θc1／(Ｖ1a−Ｖoffset1)          ・・・（１．１）
Ｔ−θ0＝(Ｖ1−Ｖ1b)(θc3−θc2)／(Ｖ1c−Ｖ1b)＋θc2      ・・・（１．２）
Ｔ−θ0＝(Ｖ1−Ｖ1d)(λ−θc4)／(Ｖoffset1−Ｖ1d)＋θc4   ・・・（１．３）
但し、
Ｔは、外部磁界の回転角度（°）。
θ0は、回転角度Ｔの基準角度（°）。
λは、回転角度Ｔの周期（°）。
Ｖoffset1は、前記角度演算信号Ｖ1のオフセット。
θcn（ｎ＝１〜４）は、直線近似のための第ｎ基準角度で、０＜θc1≦λ／４、λ／４≦θc2≦λ／２、λ／２≦θc3≦３λ／４、３λ／４≦θc4＜λ。但し、θc2≠θc3。
Ｖ1a〜Ｖ1dは、それぞれ、回転角度Ｔがθ0＋θc1〜θ0＋θc4であるときの前記角度演算信号Ｖ1の値。
（４）前記メモリーに記憶された前記角度演算信号Ｖ1及び前記識別信号Ｖ2を用いて、以下の手順により前記回転角度Ｔの位相を判別する位相判別手段。
(Ｖ1−Ｖoffset1)≧０、(Ｖ2−Ｖoffset2)≦０の時は、０≦Ｔ−θ0≦λ／４。
(Ｖ1−Ｖoffset1)≧０、(Ｖ2−Ｖoffset2)≧０、又は、(Ｖ1−Ｖoffset1)≦０、(Ｖ2−Ｖoffset2)≧０の時は、λ／４≦Ｔ−θ0≦３λ／４。
(Ｖ1−Ｖoffset1)≦０、(Ｖ2−Ｖoffset2)≦０の時は、３λ／４≦Ｔ−θ0≦λ。
但し、Ｖoffset2は、前記識別信号Ｖ2のオフセット。
境界値は、いずれか一方のサブ領域に属していればよい。
（５）前記位相判別手段により判別された前記回転角度Ｔの位相に応じて、以下の手順により前記メモリーに記憶された前記角度演算信号Ｖ1を前記メモリーに記憶された（１．１）式〜（１．３）式のいずれかに代入し、回転角度Ｔを算出する回転角度算出手段。
０≦Ｔ−θ0≦λ／４の時は、（１．１）式。
λ／４≦Ｔ−θ0≦３λ／４の時は、（１．２）式。
３λ／４≦Ｔ−θ0≦λの時は、（１．３）式。
但し、境界値は、いずれか一方のサブ領域に属していればよい。
【請求項６】
以下の手段をさらに備えた請求項５に記載の磁気センサ信号処理プログラム。
（６）前記演算式を用いて前記回転角度Ｔを算出する前に、
（ａ）前記第１ブリッジ回路に人為的に回転磁場を与えたときの前記角度演算信号Ｖ1と、前記回転角度Ｔとの関係を前記メモリーに記憶させ、
前記メモリーに記憶された前記角度演算信号Ｖ1の回転角度θ0＋ｍλ／２（°）（ｍは、整数）における値Ｖ1(θ0＋ｍλ／２)及び回転角度θ0＋ｎλ／２（°）（ｎは整数で、ｎ≠ｍ）における値Ｖ1(θ0＋ｎλ／２)から波形の傾きΔ1（＝{Ｖ1(θ0＋ｎλ／２)−Ｖ1(θ0＋ｍλ／２)}／{(ｎ−ｍ)λ／２})を算出し、
回転角度θ0＋ｍλ／２（°）を中心として、実際に検出される前記角度演算信号Ｖ1を−tan-1Δ1（ｒａｄ）回転させるチルト補正、及び、
（ｂ）前記第２ブリッジ回路に人為的に回転磁場を与えたときの前記識別信号Ｖ2と、前記回転角度Ｔとの関係を前記メモリーに記憶させ、
前記メモリーに記憶された前記識別信号Ｖ2の回転角度θ0＋(２ｍ＋１)λ／４（°）（ｍは、整数）における値Ｖ2(θ0＋(２ｍ＋１)λ／４）及び回転角度θ0＋(２ｎ＋１)λ／４（°）（ｎは整数で、ｎ≠ｍ）における値Ｖ2(θ0＋(２ｎ＋１)λ／４）から波形の傾きΔ2（＝{Ｖ2(θ0＋(２ｎ＋１)λ／４)−Ｖ2(θ0＋(２ｍ＋１)λ／４)}／{(ｎ−ｍ)λ／２})を算出し、
回転角度θ0＋(２ｍ＋１)λ／４（°）を中心として、実際に検出される前記識別信号Ｖ2を−tan-1Δ2（ｒａｄ）回転させるチルト補正
を行うチルト補正手段。
【請求項７】
前記第１磁気センサ及び前記第２磁気センサは、それぞれ、グラニュラーインギャップ型センサである請求項５又は６に記載の磁気センサ信号処理プログラム。
【請求項８】
以下の構成を備えた磁気センサモジュール。
（１）前記磁気センサモジュールは、
少なくとも１個の第１磁気センサを含む第１ブリッジ回路と、
少なくとも１個の第２磁気センサを含み、前記第１ブリッジ回路とは機械角が４５°異なるように配置された第２ブリッジ回路と、
前記第１ブリッジ回路及び前記第２ブリッジ回路に接続された中央演算処理装置と、
前記中央演算処理装置に接続されたメモリーと
を備えている。
（２）前記メモリーには、請求項１から７までのいずれかに記載の磁気センサ信号処理プログラムが記憶されている。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気センサ信号処理プログラム及び磁気センサモジュールに関し、さらに詳しくは、自動車の車軸、ロータリーエンコーダ、産業用歯車等の回転情報の検出、油圧式シリンダ／空気式シリンダのストロークポジション、工作機械のスライド等の位置・速度情報の検出、工業用溶接ロボットのアーク電流等の電流情報の検出、地磁気方位コンパスなどに用いられる磁気センサの信号処理を行うための磁気センサ信号処理プログラム、及び、これを用いた磁気センサモジュールに関する。
【背景技術】
【０００２】
磁気センサは、電磁気力（例えば、電流、電圧、電力、磁界、磁束など。）、力学量（例えば、位置、速度、加速度、変位、距離、張力、圧力、トルク、温度、湿度など。）、生化学量等の被検出量を、磁界を介して電圧に変換する電子デバイスである。磁気センサは、磁界の検出方法に応じて、ホールセンサ、異方的磁気抵抗（ＡＭＲ：  Anisotropic Magneto-Resistiity）センサ、巨大磁気抵抗（ＧＭＲ：  Gaiant MR）センサ等に分類される。
【０００３】
これらの中でもＧＭＲセンサは、
（１）ＡＭＲセンサに比べて電気比抵抗の変化率の最大値（すなわち、ＭＲ比＝△ρ／ρ０（△ρ＝ρＨ−ρ０：ρＨは、外部磁界Ｈにおける電気比抵抗、ρ０は、外部磁界ゼロにおける電気比抵抗））が極めて大きい、
（２）ホールセンサに比べて抵抗値の温度変化が小さい、
（３）巨大磁気抵抗効果を有する材料が薄膜材料であるために、マイクロ化に適している、
等の利点がある。そのため、ＧＭＲセンサは、コンピュータ、電力、自動車、家電、携帯機器等に用いられる高感度マイクロ磁気センサとしての応用が期待されている。
【０００４】
ＧＭＲ効果を示す材料としては、強磁性層（例えば、パーマロイ等）と非磁性層（例えば、Ｃｕ、Ａｇ、Ａｕ等）の多層膜、あるいは、反強磁性層、強磁性層（固定層）、非磁性層及び強磁性層（自由層）の４層構造を備えた多層膜（いわゆる、「スピンバルブ」）からなる金属人工格子、強磁性金属（例えば、パーマロイ等）からなるｎｍサイズの微粒子と、非磁性金属（例えば、Ｃｕ、Ａｇ、Ａｕ等）からなる粒界相とを備えた金属−金属系ナノグラニュラー材料、スピン依存トンネル効果によってＭＲ（Magneto-Resistivity）効果が生ずるトンネル接合膜、ｎｍサイズの強磁性金属合金微粒子と、非磁性・絶縁性材料からなる粒界相とを備えた金属−絶縁体系ナノグラニュラー材料等が知られている。
【０００５】
これらの内、スピンバルブに代表される多層膜は、一般に、低磁界における感度が高いという特徴がある。しかしながら、多層膜は、種々の材料からなる薄膜を高精度で積層する必要があるために、安定性や歩留まりが悪く、製作コストを抑えるには限界がある。そのため、この種の多層膜は、専ら付加価値の大きなデバイス（例えば、ハードディスク用の磁気ヘッド）にのみ用いられ、単価の安いＡＭＲセンサやホールセンサとの価格競争を強いられる磁気センサに応用するのは困難であると考えられている。また、多層膜間の拡散が生じやすく、ＧＭＲ効果が消失しやすいため、耐熱性が悪いという大きな欠点がある。
【０００６】
一方、ナノグラニュラー材料は、一般に、作製が容易で、再現性も良い。そのため、これを磁気センサに応用すれば、磁気センサを低コスト化することができる。特に、金属−絶縁体系ナノグラニュラー材料は、
（１）その組成を最適化すれば、室温において１０％を越える高いＭＲ比を示す、
（２）電気比抵抗ρが桁違いに高いので、磁気センサの超小型化と低消費電力化が同時に実現可能である、
（３）耐熱性の悪い反強磁性膜を含むスピンバルブ膜と異なり、高温環境下でも使用可能である、
等の利点がある。しかしながら、金属−絶縁体系ナノグラニュラー材料は、低磁界における磁界感度が非常に小さいという問題がある。そのため、巨大磁気抵抗薄膜の両端に軟磁性薄膜を配置し、巨大磁気抵抗薄膜の磁界感度を上げることも行われる。
【０００７】
このような磁気センサを用いて磁界を検出する場合において、磁界の方向を検出するときには、通常、複数個の磁気センサを用いたブリッジ回路が用いられる。
例えば、感磁方向が９０°異なる２個の磁気センサを用いてハーフブリッジ回路を構成した場合、中点電位を計測することによって、外部磁界の大きさ及び方向を検出することができる。
また、感磁方向が９０°異なる４個の磁気センサを用いてフルブリッジ回路を構成した場合、中点電位の差分を計測することによって、外部磁界の大きさ及び方向をハーフブリッジ回路の２倍の感度で検出することができる。このようなブリッジ回路を形成することで、温度変化により素子の抵抗値が変化しても中点電位は変化しないので、温度変化する環境下においても安定な出力が得られる。
【０００８】
さらに、特許文献１には、
（１）ＧＭＲ膜を備えた磁気センサを含む第１ブリッジ回路及び第２ブリッジ回路を相互の位相差が９０°（機械角の差が４５°）となるように配置し、
（２）第１ブリッジ回路及び第２ブリッジ回路から出力される信号の絶対値|Ｘ|、|Ｙ｜を算出し、
（３）算出された一対の信号の絶対値|Ｘ|、|Ｙ|を相互に加算し、
（４）加算値|Ｘ|＋|Ｙ|が基準電位ｅiに一致するように、第１ブリッジ回路及び第２ブリッジ回路の電源電圧をフィードバック制御する
方法が開示されている。
同文献には、
（１）このような方法により、擬似的な三角波の上ピーク及び下ピーク付近がピン角となり、正確な三角波波形が得られる点、及び、
（２）正確な三角波信号が出力されるので、磁界発生部材の回転角度を、複雑な三角関数式を用いることなく、比較的簡単な一次式により算出できる点、
が記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−１０１９５４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
機械角が４５°異なる２個のブリッジ回路を用いると、磁界の方向（回転磁界の回転角度）を算出することができる。このような磁界の方向の演算には、従来、三角関数を用いた演算（逆正接演算）を用いるのが一般的である。逆正接演算は、ブリッジ回路から出力される信号の波形が正弦波に近いときは比較的高い精度で回転角度を求めることができる。しかしながら、逆正接演算は、波形の歪みが大きくなるほど回転角度の検出精度が低下するという問題がある。
特に、ＧＭＲ膜を用いた磁気センサに対して、バイアス磁界をかけることなく、周期的にその方向が変化する回転磁界が作用すると、回転磁界の強さが大きくなるほど、正弦波からのずれが大きくなり、回転角度の検出精度が低下する。
【００１１】
これに対し、特許文献１に開示されているように、ＧＭＲ膜を用いた磁気センサにバイアス磁界をかけることなく周期的に変化する回転磁界を作用させる場合において、一対の疑似三角波のピン角補正を行うと、回転角度の検出精度を向上させることができる。
しかしながら、疑似三角波のピン角を補正する方法は、ピン角補正のための演算とブリッジ回路の電源電圧のフィードバック制御が必要となる。そのため、システム全体の複雑化と高コスト化を招く。
【００１２】
本発明が解決しようとする課題は、システム全体の複雑化と高コスト化を招くことなく、回転角度を高い精度で検出することが可能な磁気センサ信号処理プログラム、及び、これを用いた磁気センサモジュールを提供することにある。
また、本発明が解決しようとする他の課題は、外部磁界の強さによらず、回転角度を高い精度で検出することが可能な磁気センサ信号処理プログラム、及び、これを用いた磁気センサモジュールを提供することにある。
さらに、本発明が解決しようとする他の課題は、ＧＭＲ膜を用いた磁気センサであっても、外部磁界の強さやバイアス磁界の有無によらず、回転角度を高い精度で検出することが可能な磁気センサ信号処理プログラム、及び、これを用いた磁気センサモジュールを提供することにある。
【課題を解決するための手段】
【００１３】
上記課題を解決するために本発明に係る磁気センサ信号処理プログラムの１番目は、コンピュータを、以下の手段として機能させることを要旨とする。
（１）少なくとも１個の第１磁気センサを含む第１ブリッジ回路から出力された第１角度演算・識別信号Ｖ1を入力し、メモリーに記憶させる第１角度演算・識別信号入力手段。
（２）少なくとも１個の第２磁気センサを含み、前記第１ブリッジ回路とは機械角が４５°異なるように配置された第２ブリッジ回路から出力された第２角度演算・識別信号Ｖ2を入力し、前記メモリーに記憶させる第２角度演算・識別信号入力手段。
（３）以下の演算式を前記メモリーに記憶させる演算式記憶手段。
Ｔ−θ0＝(Ｖ1−Ｖoffset1)θc1／(Ｖ1a−Ｖoffset1)            ・・・（２．１）
Ｔ−θ0＝(Ｖ2−Ｖ2a)(θc2−θc1)／(Ｖ2b−Ｖ2a)＋θc1        ・・・（２．２）
Ｔ−θ0＝(Ｖ1−Ｖ1b)(θc3−θc2)／(Ｖ1c−Ｖ1b)＋θc2        ・・・（２．３）
Ｔ−θ0＝(Ｖ2−Ｖ2c)(θc4−θc3)／(Ｖ2d−Ｖ2c)＋θc3        ・・・（２．４）
Ｔ−θ0＝(Ｖ1−Ｖ1d)(λ−θc4)／(Ｖoffset1−Ｖ1d)＋θc4     ・・・（２．５）
但し、
Ｔは、外部磁界の回転角度（°）。
θ0は、回転角度Ｔの基準角度（°）。
λは、回転角度Ｔの周期（°）。
Ｖoffset1は、前記第１角度演算・識別信号Ｖ1のオフセット。
θcn（ｎ＝１〜４）は、第ｎ切り替え角度で、λ(ｎ−１)／４＜θcn＜λｎ／４。
Ｖ1a〜Ｖ1dは、それぞれ、回転角度Ｔがθ0＋θc1〜θ0＋θc4であるときの前記第１角度演算・識別信号Ｖ1の値。
Ｖ2a〜Ｖ2dは、それぞれ、回転角度Ｔがθ0＋θc1〜θ0＋θc4であるときの前記第２角度演算・識別信号Ｖ2の値。
（４）前記メモリーに記憶された前記第１角度演算・識別信号Ｖ1及び前記第２角度演算・識別信号Ｖ2を用いて、以下の手順により前記回転角度Ｔの位相を判別する位相判別手段。
（ａ）(Ｖ1−Ｖoffset1)≧０、かつ、(Ｖ2−Ｖoffset2)≦０である場合において、(Ｖ1−Ｖ1a)≦０又は(Ｖ2−Ｖ2a)≦０が真の時は０≦Ｔ−θ0≦θc1、偽の時はθc1≦Ｔ−θ0≦θc2。
（ｂ）(Ｖ1−Ｖoffset1)≧０、かつ、(Ｖ2−Ｖoffset2)≧０である場合において、(Ｖ1−Ｖ1b)≧０又は(Ｖ2−Ｖ2a)≦０が真の時はθc1≦Ｔ−θ0≦θc2、偽の時はθc2≦Ｔ−θ0≦θc3。
（ｃ）(Ｖ1−Ｖoffset1)≦０、かつ、(Ｖ2−Ｖoffset2)≧０である場合において、(Ｖ1−Ｖ1c)≧０又は(Ｖ2−Ｖ2c)≧０が真の時はθc2≦Ｔ−θ0≦θc3、偽の時はθc3≦Ｔ−θ0≦θc4。
（ｄ）(Ｖ1−Ｖofsset1)≦０、かつ、(Ｖ2−Ｖoffset2)≦０である場合において、(Ｖ1−Ｖ1d)≦０又は(Ｖ2−Ｖ2d)≧０が真の時はθc3≦Ｔ−θ0≦θc4、偽の時はθc4≦Ｔ−θ0≦λ。
但し、Ｖoffset2は、前記第２角度演算・識別信号Ｖ2のオフセット。
境界値は、いずれか一方のサブ領域に属していればよい。
（５）前記位相判別手段により判別された前記回転角度Ｔの位相に応じて、以下の手順により前記メモリーに記憶された前記第１角度演算・識別信号Ｖ1又は前記第２角度演算・識別信号Ｖ2を前記メモリーに記憶された（２．１）式〜（２．５）式のいずれかに代入し、回転角度Ｔを算出する回転角度算出手段。
０≦Ｔ−θ0≦θc1の時は、（２．１）式。
θc1≦Ｔ−θ0≦θc2の時は、（２．２）式。
θc2≦Ｔ−θ0≦θc3の時は、（２．３）式。
θc3≦Ｔ−θ0≦θc4の時は、（２．４）式。
θc4≦Ｔ−θ0≦λの時は、（２．５）式。
但し、境界値は、いずれか一方のサブ領域に属していればよい。
【００１４】
磁気センサ信号処理プログラムは、以下の手段をさらに備えていても良い。
（６）前記演算式を用いて前記回転角度Ｔを算出する前に、
（ａ）前記第１ブリッジ回路に人為的に回転磁場を与えたときの前記第１角度演算・識別信号Ｖ1と、前記回転角度Ｔとの関係を前記メモリーに記憶させ、
前記メモリーに記憶された前記第１角度演算・識別信号Ｖ1の回転角度θ0＋ｍλ／２（°）（ｍは、整数）における値Ｖ1(θ0＋ｍλ／２)及び回転角度θ0＋ｎλ／２（°）（ｎは整数で、ｎ≠ｍ）における値Ｖ1(θ0＋ｎλ／２)から波形の傾きΔ1（＝{Ｖ1(θ0＋ｎλ／２)−Ｖ1(θ0＋ｍλ／２)}／{(ｎ−ｍ)λ／２})を算出し、
回転角度θ0＋ｍλ／２（°）を中心として、実際に検出される前記第１角度演算・識別信号Ｖ1を−tan-1Δ1（ｒａｄ）回転させるチルト補正、及び、
（ｂ）前記第２ブリッジ回路に人為的に回転磁場を与えたときの前記第２角度演算・識別信号Ｖ2と、前記回転角度Ｔとの関係を前記メモリーに記憶させ、
前記メモリーに記憶された前記第２角度演算・識別信号Ｖ2の回転角度θ0＋（２ｍ＋１）λ／４（°）（ｍは、整数）における値Ｖ2(θ0＋(２ｍ＋１)λ／４）及び回転角度（θ0＋(２ｎ＋１)λ／４）（°）（ｎは整数で、ｎ≠ｍ）における値Ｖ2(θ0＋(２ｎ＋１)λ／４）から波形の傾きΔ2（＝{Ｖ2(θ0＋(２ｎ＋１)λ／４)−Ｖ2(θ0＋(２ｍ＋１)λ／４)}／{(ｎ−ｍ)λ／２})を算出し、
回転角度θ0＋(２ｍ＋１)λ／４（°）を中心として、実際に検出される前記第２角度演算・識別信号Ｖ2を−tan-1Δ2（ｒａｄ）回転させるチルト補正
を行うチルト補正手段。
【００１５】
本発明に係る磁気センサ信号処理プログラムの２番目は、コンピュータを、以下の手段として機能させることを要旨とする。
（１）少なくとも１個の第１磁気センサを含む第１ブリッジ回路から出力された角度演算信号Ｖ1を入力し、メモリーに記憶させる角度演算信号入力手段。
（２）少なくとも１個の第２磁気センサを含み、前記第１ブリッジ回路とは機械角が４５°異なるように配置された第２ブリッジ回路から出力された識別信号Ｖ2を入力し、前記メモリーに記憶させる識別信号入力手段。
（３）以下の演算式をメモリーに記憶させる演算式記憶手段。
Ｔ−θ0＝(Ｖ1−Ｖoffset1)θc1／(Ｖ1a−Ｖoffset1)          ・・・（１．１）
Ｔ−θ0＝(Ｖ1−Ｖ1b)(θc3−θc2)／(Ｖ1c−Ｖ1b)＋θc2      ・・・（１．２）
Ｔ−θ0＝(Ｖ1−Ｖ1d)(λ−θc4)／(Ｖoffset1−Ｖ1d)＋θc4   ・・・（１．３）
但し、
Ｔは、外部磁界の回転角度（°）。
θ0は、回転角度Ｔの基準角度（°）。
λは、回転角度Ｔの周期（°）。
Ｖoffset1は、前記角度演算信号Ｖ1のオフセット。
θcn（ｎ＝１〜４）は、直線近似のための第ｎ基準角度で、０＜θc1≦λ／４、λ／４≦θc2≦λ／２、λ／２≦θc3≦３λ／４、３λ／４≦θc4＜λ。但し、θc2≠θc3。
Ｖ1a〜Ｖ1dは、それぞれ、回転角度Ｔがθ0＋θc1〜θ0＋θc4であるときの角度演算信号Ｖ1の値。
（４）前記メモリーに記憶された前記角度演算信号Ｖ1及び前記識別信号Ｖ2を用いて、以下の手順により前記回転角度Ｔの位相を判別する位相判別手段。
(Ｖ1−Ｖoffset1)≧０、(Ｖ2−Ｖoffset2)≦０の時は、０≦Ｔ−θ0≦λ／４。
(Ｖ1−Ｖoffset1)≧０、(Ｖ2−Ｖoffset2)≧０、又は、(Ｖ1−Ｖoffset1)≦０、(Ｖ2−Ｖoffset2)≧０の時は、λ／４≦Ｔ−θ0≦３λ／４。
(Ｖ1−Ｖoffset1)≦０、(Ｖ2−Ｖoffset2)≦０の時は、３λ／４≦Ｔ−θ0≦λ。
但し、Ｖoffset2は、前記識別信号Ｖ2のオフセット。
境界値は、いずれか一方のサブ領域に属していればよい。
（５）前記位相判別手段により判別された前記回転角度Ｔの位相に応じて、以下の手順により前記メモリーに記憶された前記角度演算信号Ｖ1を前記メモリーに記憶された（１．１）式〜（１．３）式のいずれかに代入し、回転角度Ｔを算出する回転角度算出手段。
０≦Ｔ−θ0≦λ／４の時は、（１．１）式。
λ／４≦Ｔ−θ0≦３λ／４の時は、（１．２）式。
３λ／４≦Ｔ−θ0≦λの時は、（１．３）式。
但し、境界値は、いずれか一方のサブ領域に属していればよい。
【００１６】
磁気センサ信号処理プログラムは、以下の手段をさらに備えていても良い。
（６）前記演算式を用いて前記回転角度Ｔを算出する前に、
（ａ）前記第１ブリッジ回路に人為的に回転磁場を与えたときの前記角度演算信号Ｖ1と、前記回転角度Ｔとの関係を前記メモリーに記憶させ、
前記メモリーに記憶された前記角度演算信号Ｖ1の回転角度θ0＋ｍλ／２（°）（ｍは、整数）における値Ｖ1(θ0＋ｍλ／２)及び回転角度θ0＋ｎλ／２（°）（ｎは整数で、ｎ≠ｍ）における値Ｖ1(θ0＋ｎλ／２)から波形の傾きΔ1（＝{Ｖ1(θ0＋ｎλ／２)−Ｖ1(θ0＋ｍλ／２)}／{(ｎ−ｍ)λ／２})を算出し、
回転角度θ0＋ｍλ／２（°）を中心として、実際に検出される前記角度演算信号Ｖ1を−tan-1Δ1（ｒａｄ）回転させるチルト補正、及び、
（ｂ）前記第２ブリッジ回路に人為的に回転磁場を与えたときの前記識別信号Ｖ2と、前記回転角度Ｔとの関係を前記メモリーに記憶させ、
前記メモリーに記憶された前記識別信号Ｖ2の回転角度θ0＋(２ｍ＋１)λ／４（°）（ｍは、整数）における値Ｖ2(θ0＋(２ｍ＋１)λ／４）及び回転角度θ0＋(２ｎ＋１)λ／４（°）（ｎは整数で、ｎ≠ｍ）における値Ｖ2(θ0＋(２ｎ＋１)λ／４）から波形の傾きΔ2（＝{Ｖ2(θ0＋(２ｎ＋１)λ／４)−Ｖ2(θ0＋(２ｍ＋１)λ／４)}／{(ｎ−ｍ)λ／２})を算出し、
回転角度θ0＋(２ｍ＋１)λ／４（°）を中心として、実際に検出される前記識別信号Ｖ2を−tan-1Δ2（ｒａｄ）回転させるチルト補正
を行うチルト補正手段。
【００１７】
さらに、本発明に係る磁気センサモジュールは、以下の構成を備えていることを要旨とする。
（１）前記磁気センサモジュールは、
少なくとも１個の第１磁気センサを含む第１ブリッジ回路と、
少なくとも１個の第２磁気センサを含み、前記第１ブリッジ回路とは機械角が４５°異なるように配置された第２ブリッジ回路と、
前記第１ブリッジ回路及び前記第２ブリッジ回路に接続された中央演算処理装置と、
前記中央演算処理装置に接続されたメモリーと
を備えている。
（２）前記メモリーには、本発明に係る磁気センサ信号処理プログラムが記憶されている。
【発明の効果】
【００１８】
機械角が４５°異なる２つのブリッジ回路から出力される一対の信号の双方を角度演算及び位相の判別に用い、一方の信号が波形の頂点近傍にあるときには他方の信号を用いて角度演算を行うように、信号の位相に応じて角度演算に用いる信号の切り替えを行うと、複雑な演算回路やフィードバック回路を用いることなく、回転角度を高い精度で検出することができる。また、磁気センサの種類、回転磁界の強さ、バイアス磁界の有無等によらず、回転角度を高い精度で検出することができる。
また、機械角が４５°異なる２つのブリッジ回路から出力される一対の信号の一方を角度演算及び位相の判別に用い、他方を位相の判別のみに用いると、複雑な演算回路やフィードバック回路を用いることなく、回転角度を比較的高い精度で検出することができる。
【図面の簡単な説明】
【００１９】
【図１】図１（ａ）は、機械角が４５°異なる一対のフルブリッジ回路の平面図である。図１（ｂ）は、金属−絶縁体系ナノグラニュラー材料からなるＧＭＲ膜の両端に軟磁性材料を配置したＧＩＧ型磁気センサのＭＲ特性例を示す図である。
【図２】図１（ｂ）に示す特性を備えたＧＩＧ型磁気センサをそれぞれ４個用いた一対のフルブリッジ回路（機械角：４５°）の出力波形（回転磁場が飽和磁場の１０％（左上図）、５０％（左下図）、１００％（右上図）、又は、１５０％（右下図））の一例を示す図である。
【図３】図１（ｂ）に示す特性を備えたＧＩＧ型磁気センサをそれぞれ４個用いた一対のフルブリッジ回路（機械角：４５°）から出力される信号を用いて逆正接演算（Ａtan）により回転角度を求めたときの、回転磁場の強さと角度誤差の最大値（最大角度誤差）との関係を示す図である。
【００２０】
【図４】基準電位Ｖ1a〜Ｖ1dと、第ｎ基準角度θcnと、直線近似された三角波との関係を示す図である。
【図５】４個のＧＩＧ型磁気センサからなり、機械角が４５°異なる２つのブリッジ回路から出力された、オフセットの設定及びゲインの調整が行われた後の信号Ｖdiff1、Ｖdiff2の一例を示す図である。
【図６】角度演算信号の切り替えを行わない磁気センサ信号処理プログラムのフローチャートの一例である。
【図７】図７（ａ）は、４個のＧＩＧ型磁気センサからなる２つのブリッジ回路から出力される出力波形（回転磁場＝飽和磁場×２５％）である。図７（ｂ）は、図７（ａ）に示す波形から図６に示す方法で回転角度を算出したときの回転角度と角度誤差との関係を示す図である。
【図８】図８（ａ）は、４個のＧＩＧ型磁気センサからなる２つのブリッジ回路から出力される出力波形（回転磁場＝飽和磁場×６５％）である。図８（ｂ）は、図８（ａ）に示す波形から図６に示す方法で回転角度を算出したときの回転角度と角度誤差との関係を示す図である。
【図９】図９（ａ）は、４個のＧＩＧ型磁気センサからなる２つのブリッジ回路から出力される出力波形（回転磁場＝飽和磁場×９０％）である。図９（ｂ）は、図９（ａ）に示す波形から図６に示す方法で回転角度を算出したときの回転角度と角度誤差との関係を示す図である。
【図１０】４個のＧＩＧ型磁気センサからなる２つのブリッジ回路から出力される出力波形から図６に示す方法を用いて回転角度を算出したときの、回転磁場の強さと角度誤差の最大値（最大角度誤差）との関係を示す図である。
【００２１】
【図１１】基準電位Ｖ1a〜Ｖ1d、Ｖ2a〜Ｖ2dと、第ｎ切り替え角度θcnと、直線近似された三角波との関係を示す図である。
【図１２】４個のＧＩＧ型磁気センサからなり、機械角が４５°異なる２つのブリッジ回路から出力された、オフセットの設定及びゲイン調整が行われた後の信号Ｖdiff1、Ｖdiff2の一例を示す図である。
【図１３】角度演算信号の切り替えを行う磁気センサ信号処理プログラムのフローチャートの一例である。
【図１４】図１４（ａ）は、４個のＧＩＧ型磁気センサからなる２つのブリッジ回路から出力される出力波形（回転磁場＝飽和磁場×６６％）である。図１４（ｂ）は、図１４（ａ）に示す波形から図１３に示す方法で回転角度を算出したときの回転角度と角度誤差との関係を示す図である。
【図１５】図１５（ａ）は、４個のＧＩＧ型磁気センサからなる２つのブリッジ回路から出力される出力波形（回転磁場＝飽和磁場×８０％）である。図１５（ｂ）は、図１５（ａ）に示す波形から図１３に示す方法で回転角度を算出したときの回転角度と角度誤差との関係を示す図である。
【図１６】図１６（ａ）は、４個のＧＩＧ型磁気センサからなる２つのブリッジ回路から出力される出力波形（回転磁場＝飽和磁場×９３％）である。図１６（ｂ）は、図１６（ａ）に示す波形から図１３に示す方法で回転角度を算出したときの回転角度と角度誤差との関係を示す図である。
【図１７】４個のＧＩＧ型磁気センサからなる２つのブリッジ回路から出力される出力波形から図１３に示す方法を用いて回転角度を算出したときの、回転磁場の強さと角度誤差の最大値（最大角度誤差）との関係を示す図である。
【００２２】
【図１８】第ｎ切り替え角度θcnの設定、オフセットの設定、ゲイン調整、及び、チルト補正を自動調整するためのフローチャートの一例である。
【図１９】本発明の一実施の形態に係る磁気センサモジュールの概略構成図である。
【発明を実施するための形態】
【００２３】
以下、本発明の一実施の形態について詳細に説明する。
［１．  磁気センサ及びブリッジ回路］
［１．１．  磁気センサ］
本発明において、磁気センサの種類は、特に限定されるものではなく、あらゆる種類の磁気センサに対して本発明を適用することができる。
本発明が適用可能な磁気センサとしては、具体的には、
（１）ホールセンサ、
（２）ＡＭＲセンサ、
（３）磁性体粒子又は磁性体薄膜の間に薄い絶縁膜がある構造を備えたトンネル磁気効果（ＴＭＲ：Tunneling Magnetoresistive）センサ、
などがある。
【００２４】
ＴＭＲセンサとしては、具体的には、以下のようなものがある。
（ａ）  積層型：
積層型のＴＭＲセンサは、下地層／反強磁性層／強磁性層１／トンネルバリア層／強磁性層２／キャップ層の積層構造を持つ磁気センサである。
強磁性層１の磁化の方向は、反強磁性層によりピン止めされている。一方、強磁性層２の磁化の方向は、外部磁界により回転可能になっている。そのため、外部磁界が作用すると、強磁性層２の磁化の方向のみが変化し、これによってトンネル電流の大きさが変化する。
各層の材料は、特に限定されるものではなく、目的に応じて種々の材料を用いることができる。各層の材料としては、具体的には、以下のようなものがある。
（イ）下地層：  Ｔａ、ＮｉＦｅなど。
（ロ）反強磁性層：  ＩｒＭｎなど。
（ハ）強磁性層１：  ＣｏＦｅ、Ｒｕ、ＣｏＦｅ積層膜、ＣｏＦｅＢなど。
（ニ）トンネルバリア層：  Ａｌ2Ｏ3、ＭｇＯ、ＭｇＦｅ2、ＡｌＦ3など。
（ホ）強磁性層２：  ＣｏＦｅ、ＮｉＦｅ、ＣｏＦｅ積層膜、ＮｉＦｅ積層膜、ＣｏＦｅＢなど。
（へ）キャップ層：  Ｔａ積層膜、ＮｉＦｅ／Ｒｕ積層膜、Ｔａ合金、Ｔｉ合金、ＩｎＴｉ酸化物など。
【００２５】
（ｂ）  ナノグラニュラー型：
ナノグラニュラー型のＴＭＲセンサは、金属−絶縁体系ナノグラニュラー材料からなる薄膜を備えた磁気センサである。金属−絶縁体系ナノグラニュラー材料とは、ｎｍサイズの強磁性金属粒子と、非磁性・絶縁性材料からなる粒界相を備えた材料をいう。
金属−絶縁体系ナノグラニュラー材料中の強磁性金属粒子の磁化の方向は、通常、ランダムな方向を向いている。一方、金属−絶縁体系ナノグラニュラー材料に外部磁界が作用すると、強磁性金属粒子の磁化の方向が揃い、これがトンネル電流の大きさの変化となって現れる。金属−絶縁体系ナノグラニュラー材料は、高いＭＲ比と高い電気比抵抗ρを有するだけでなく、僅かな組成変動によってＭＲ比が大きく変動することがないので、安定した磁気特性を有する薄膜を、再現性良く、かつ低コストで作製することができるという利点がある。
金属−絶縁体系ナノグラニュラー材料としては、具体的には、
（イ）Ｃｏ−Ｙ2Ｏ3系、Ｃｏ−Ａｌ2Ｏ3系、Ｃｏ−Ｓｍ2Ｏ3系、Ｃｏ−Ｄｙ2Ｏ3系、ＦｅＣｏ−Ｙ2Ｏ3系などの酸化物系ナノグラニュラー材料、
（ロ）Ｆｅ−ＭｇＦ2系、ＦｅＣｏ−ＭｇＦ2系、ＦｅＣｏＢ−ＭｇＦ2系、Ｆｅ−ＣａＦ2系、Ｆｅ−ＡｌＦ3系などのフッ化物系ナノグラニュラー材料、
などがある。
【００２６】
（ｃ）  グラニュラーインギャップ（ＧＩＧ）型：
ＧＩＧ型のＴＭＲセンサは、金属−絶縁体系ナノグラニュラー材料からなる薄膜の両端に、軟磁性材料からなる薄膜ヨークが配置された構造を持つ磁気センサをいう。
金属−絶縁体系ナノグラニュラー材料は、高いＭＲ比を示すが、低磁界における磁界感度が非常に小さい。一方、金属−絶縁体系ナノグラニュラー材料からなる薄膜の両端に軟磁性材料からなる薄膜ヨークを配置すると、金属−絶縁体系ナノグラニュラー材料の磁界感度を向上させることができる。
薄膜ヨークの材料としては、具体的には、４０〜９０％Ｎｉ−Ｆｅ合金、Ｆｅ74Ｓｉ9Ａｌ17、Ｆｅ12Ｎｉ82Ｎｂ6、Ｃｏ88Ｎｂ6Ｚｒ6アモルファス合金、(Ｃｏ94Ｆｅ6)70Ｓｉ15Ｂ15アモルファス合金、Ｆｅ75.6Ｓｉ13.2Ｂ8.5Ｎｂ1.9Ｃｕ0.8、Ｆｅ83Ｈｆ6Ｃ11、Ｆｅ85Ｚｒ10Ｂ5合金、Ｆｅ93Ｓｉ3Ｎ4合金、Ｆｅ71Ｂ11Ｎ18合金、Ｆｅ71.3Ｎｄ9.6Ｏ19.1ナノグラニュラー合金、Ｃｏ70Ａｌ10Ｏ20ナノグラニュラー合金、Ｃｏ65Ｆｅ5Ａｌ10Ｏ20合金などがある。
【００２７】
これらの中でも、ＧＩＧ型磁気センサは、
（１）ワイドレンジな回転磁場を許容できる（すなわち、角度誤差に影響を与えない回転磁場領域が広い）ので、回転磁場がばらついても安定した角度誤差を得ることができる、
（２）後述する三角波近似と組み合わせると、飽和磁場に相当する回転磁場においても角度誤差が相対的に小さくなるので、ＭＲ比による出力を１００％使用できる（すなわち、角度誤差の小さい磁場領域に限定して使用する必要がないので、角度誤差と出力を独立して設計することができる）、
（３）バイアス磁界を印加しない状態において回転磁界が作用すると、疑似三角波が出力されるので、後述する三角波近似を用いることにより、角度誤差を低減できる、
という利点がある。そのため、ＧＩＧ型磁気センサは、本発明が適用される磁気センサとして特に好適である。
【００２８】
［１．２．  ブリッジ回路］
本発明において、「ブリッジ回路」とは、４個の抵抗からなるフルブリッジ回路、又は、２個の抵抗からなるハーフブリッジ回路の双方を意味する。
フルブリッジ回路の場合、４個の抵抗の内、少なくとも１個が磁気センサであり、残りが固定抵抗器であっても良い。しかしながら、温度変化が生ずる環境下においても高い出力を安定して得るためには、フルブリッジ回路は、感磁方向が互いに９０°異なるように配置された４個の磁気センサで構成するのが好ましい。
同様に、ハーフブリッジ回路の場合、２個の抵抗の内、１個が磁気センサであり、残りが固定抵抗器であっても良い。しかしながら、温度変化が生ずる環境下においても安定した出力を得るためには、ハーフブリッジ回路は、感磁方向が互いに９０°異なるように配置された２個の磁気センサで構成するのが好ましい。
ここで、「感磁方向」とは、磁気センサに回転磁界を作用させた場合において、最大の抵抗変化が生ずる方向をいう。
【００２９】
［１．３．  ブリッジ回路の機械角］
本発明において、機械角が４５°異なるように配置された２つのブリッジ回路（第１ブリッジ回路、第２ブリッジ回路）を用いる。「機械角が４５°異なる」とは、２つのブリッジ回路に含まれる磁気センサ（第１磁気センサ、第２磁気センサ）の感磁方向が互いに４５°異なるように、２つのブリッジ回路を配置することをいう。
第１ブリッジ回路及び第２ブリッジ回路は、一方がフルブリッジ回路で他方がハーフブリッジ回路であっても良い。しかしながら、演算を容易化するためには、双方をフルブリッジ回路とするか、あるいは、双方をハーフブリッジ回路とするのが好ましい。
【００３０】
図１（ａ）に、機械角が４５°異なるように配置された第１ブリッジ回路（図１（ａ）の左下）及び第２ブリッジ回路（図１（ａ）の右下）の一例を示す。
第１ブリッジ回路は、感磁方向が互いに９０°異なるように４個の磁気抵抗効果（ＭＲ）素子（磁気センサ）を配置したフルブリッジ回路である。４個の頂点の１つを接地（ＧＮＤ）し、対角の頂点に電圧Ｖccを印加する。残りの２つの頂点（中点）の電位Ｖ1a、Ｖ2aの差分Ｖdiif1（＝Ｖ1a−Ｖ2a）が第１ブリッジ回路の出力となる。
同様に、第２ブリッジ回路は、感磁方向が互いに９０°異なるように４個のＭＲ素子（磁気センサ）を配置したフルブリッジ回路である。４個の頂点の１つを接地（ＧＮＤ）し、対角の頂点に電圧Ｖccを印加する。残りの２つの頂点（中点）の電位Ｖ1b、Ｖ2bの差分Ｖdiif2（＝Ｖ1b−Ｖ2b）が第２ブリッジ回路の出力となる。
【００３１】
バイアス磁界を印加しない場合において、第１ブリッジ回路に外部磁界が作用しないとき、又は、４個のＭＲ素子に作用する磁界が等価（図１（ａ）の左下図に示す例においては、θ＝０°、９０°、１８０°、２７０°）であるときには、理想的には、中点電位の差分Ｖdiff1は、ゼロ（Ｖ）となる。一方、第１ブリッジ回路に外部磁界が作用すると、一般に、外部磁界の回転角度θに応じて、中点電位の差分Ｖdiff1(θ)が変動する。
同様に、バイアス磁界を印加しない場合において、第２ブリッジ回路に外部磁界が作用しないとき、又は、４個のＭＲ素子に作用する磁界が等価（図１（ａ）の右下図に示す例においては、θ＝４５°、１３５°、２２５°、３１５°）であるときには、理想的には、中点電位の差分Ｖdiff2は、ゼロ（Ｖ）となる。一方、第２ブリッジ回路に外部磁界が作用すると、一般に、外部磁界の回転角度θに応じて、中点電位の差分Ｖdiff2(θ)が変動する。
【００３２】
２個のＭＲ素子からなるハーフブリッジ回路を用いた場合、図示はしないが、一端を接地し、他端に電圧Ｖccを印加する。２個のＭＲ素子の交点（中点）の電位（図１（ａ）のＶ1a（Ｖ2a）又はＶ1b（Ｖ2b）に相当）が、ハーフブリッジ回路の出力となる。
バイアス磁界を印加しない場合において、ハーフブリッジ回路に外部磁界が作用しないとき、又は、２個のＭＲ素子に作用する磁界が等価であるときには、理想的には、中点電位の値は、Ｖcc／２となる。一方、ハーフブリッジ回路に外部磁界が作用すると、一般に、外部磁界の回転角度θに応じて、中点電位がＶcc／２を基準として周期的に増減する。また、この時の出力は、フルブリッジ回路の出力の１／２となる。
【００３３】
［１．４．  逆正接演算を用いた場合の角度誤差］
図１（ｂ）に、金属−絶縁体系ナノグラニュラー材料からなるＧＭＲ膜の両端に軟磁性材料を配置したＧＩＧ型磁気センサのＭＲ特性の一例を示す。ＧＩＧ型磁気センサのＭＲ特性は、図１（ｂ）に示すように、外部磁界の強さがゼロ[Ｏｅ]のときに抵抗値が最大となり、外部磁界の強さが大きくなるほど、抵抗値が指数関数的に低下するという特徴がある。
ここで、ＧＩＧ型磁気センサの「飽和磁場」を、抵抗値の磁場に対する感度の変化の割合が極大となる磁場と定義する。図１（ｂ）に示すＭＲ特性を示す磁気センサの場合、飽和磁場は、２０[Ｏｅ]となる。
【００３４】
図２に、図１（ｂ）に示す特性を示すＧＩＧ型磁気センサをそれぞれ４個用いた一対のフルブリッジ回路（機械角：４５°）の出力波形を示す。図２には、回転磁場が飽和磁場の１０％（左上図）、５０％（左下図）、１００％（右上図）、又は、１５０％（右下図）の場合がそれぞれ示されている。
機械角が４５°異なる第１ブリッジ回路及び第２ブリッジ回路にバイアス磁界を印加することなく回転磁場を付与すると、第１ブリッジ回路から出力される信号Ｖdiff1及び第２ブリッジ回路から出力される信号Ｖdiff2は、それぞれ、１周期が１８０°の周期信号となる。また、Ｖdiff1とＶdiff2の位相差（１周期が３６０°となるように規格化したときの角度差）は、９０°となる。回転角度Ｔの演算は、Ｖdiff1又はＶdiff2のいずれか一方を用いて行われ、他方は、回転角度Ｔの位相を判別するためにのみ用いられる。
【００３５】
ＧＩＧ型磁気センサは、図１（ｂ）に示すようなＭＲ特性を示すため、回転磁場の強さが相対的に小さいときには、図２の左上図に示すように、出力波形は、正弦波に近い。回転磁場の強さが飽和磁場の５０％になると、図２の左下図に示すように、出力波形は、三角波に近くなる。回転磁場の強さが飽和磁場の１００％になると、図２の右上図に示すように、波形が歪み、先端が尖った三角波となる。さらに、回転磁場の強さが飽和磁場の１５０％になると、図２の右下図に示すように、波形の歪みが増大する。
【００３６】
図２に示す信号を用いて逆正接演算（Ａtan）により回転角度を算出すると、回転磁場の強さが大きくなるほど、角度誤差が大きくなる。図３に、図１（ｂ）に示す特性を備えたＧＩＧ型磁気センサをそれぞれ４個用いた一対のフルブリッジ回路（機械角：４５°）から出力される信号を用いて逆正接演算（Ａtan）により回転角度を求めたときの、回転磁場の強さと角度誤差の最大値（最大角度誤差）との関係を示す。
図３より、４個のＧＩＧ型センサを用いたフルブリッジ回路を用いて逆正接演算（Ａtan）により回転角度を算出する場合において、
（１）最大角度誤差を４°以下にするためには、回転磁場の強さを飽和磁場の６０％以下にする必要がある、
（２）最大角度誤差を３°以下にするためには、回転磁場の強さを飽和磁場の４７％以下にする必要がある、
（３）最大角度誤差を２°以下にするためには、回転磁場の強さを飽和磁場の３７％以下にする必要がある、
ことがわかる。
【００３７】
［２．  磁気センサ信号処理プログラム（１）］
上述したように、逆正接演算は、波形が正弦波に近いときは最大角度誤差が小さくなるという利点がある。しかしながら、逆正接演算は、波形の正弦波からの乖離が大きくなるほど、最大角度誤差が大きくなるという問題がある。
本発明の第１の実施の形態は、この問題を解決するために、ブリッジ回路から出力される信号を三角波と見なして角度演算を行う点に特徴がある。
【００３８】
三角波近似による回転角度の算出は、具体的には、以下のようにして行われる。
（１）少なくとも１個の第１磁気センサを含む第１ブリッジ回路から出力された角度演算信号Ｖ1を入力する（角度演算信号入力工程）。
（２）少なくとも１個の第２磁気センサを含み、第１ブリッジ回路とは機械角が４５°異なるように配置された第２ブリッジ回路から出力された識別信号Ｖ2を入力する（識別信号入力工程）。
（３）角度演算信号Ｖ1を三角波で近似し、角度演算信号Ｖ1と外部磁界の回転角度Ｔとの関係を複数個の一次式で表す（三角波近似工程）。
（４）外部磁界の回転角度Ｔの位相を、複数個の一次式に対応する複数のサブ領域に分割し、角度演算信号Ｖ1及び識別信号Ｖ2を用いて、外部磁界の回転角度Ｔが、いずれのサブ領域にあるか否かを判別する（位相判別工程）。
（５）位相判別工程により、外部磁界の回転角度Ｔがいずれかのサブ領域にあると判断されたときは、角度演算信号Ｖ1をそのサブ領域に対応する一次式に代入し、回転角度Ｔを算出する（回転角度算出工程）。
【００３９】
本発明の第１の実施の形態に係る磁気センサ信号処理プログラムは、この方法を実行するためのプログラムであり、コンピュータを角度演算信号入力手段、識別信号入力手段、チルト補正手段、演算式記憶手段、位相判別手段、及び、回転角度算出手段として機能させることを特徴とする。
【００４０】
［２．１．  角度演算信号入力手段］
角度演算信号入力手段は、少なくとも１個の第１磁気センサを含む第１ブリッジ回路から出力された角度演算信号Ｖ1を入力し、メモリーに記憶させる手段である。
ここで、
（１）第１磁気センサの種類は、特に限定されない点、
（２）第１磁気センサは、特にＧＩＧ型磁気センサが好ましい点、
（３）第１ブリッジ回路は、少なくとも１個の第１磁気センサを含んでいれば良く、ブリッジ回路を構成する抵抗のすべてが第１磁気センサであるのが好ましい点、及び、
（４）第１ブリッジ回路は、フルブリッジ回路又はハーフブリッジ回路のいずれでも良い点、
は、上述した通りであるので、説明を省略する。
【００４１】
［２．１．１．  オフセットの設定］
角度演算信号Ｖ1は、主として回転角度Ｔの演算に用いられるが、後述する識別信号Ｖ2と組み合わせて、位相の判別にも用いられる。
第１ブリッジ回路に回転磁界が作用する場合、角度演算信号Ｖ1は、周期信号となる。回転角度Ｔの角度誤差を低減するためには、周期信号の上端の頂点と下端の頂点の中間が基準電位（通常は、ゼロ（Ｖ））となるように、角度演算信号Ｖ1に対しオフセットの設定をする必要がある。
【００４２】
例えば、第１ブリッジ回路がフルブリッジ回路である場合、中点電位の差分Ｖdiff1が出力され、これが角度演算信号Ｖ1として用いられる。この場合、Ｖdiff1は、理想的には周期信号の上端の頂点と下端の頂点の中間がゼロ（Ｖ）になっている。しかしながら、外的要因（例えば、波形の歪み、ヒステリシスの存在など）により、中間の電位がゼロ（Ｖ）にならない場合がある。
また、第１ブリッジ回路がハーフブリッジ回路である場合、中点電位Ｖ1a（Ｖ1b）が出力され、これが角度演算信号Ｖ1として用いられる。この場合、Ｖ1a（Ｖ1b）は、理想的には印加電圧Ｖccの１／２の電位を中心とする周期信号となる。しかしながら、外的要因により、中間の電位がＶcc／２にならない場合がある。
そのため、このような場合には、角度演算の精度を上げるために、角度演算信号Ｖ1の波形の頂点間の中間の電位が基準電位（通常は、ゼロ（Ｖ））となるように、オフセットの設定を行う。
【００４３】
回転角度Ｔを計算するために、後述する計算式がメモリーに記憶されている。計算式の係数が予め固定されている場合には、固定された係数に合うように、角度演算信号Ｖ1に対して予めオフセットの設定を行う必要がある。この場合、オフセットの設定が行われた後の角度演算信号Ｖ1がコンピュータに入力されることになる。
【００４４】
一方、オフセットの設定は、演算により行うことができる。あるいは、計算式の係数を演算により求めることもできる。この場合、信号の調整（ティーチング）を行うために、実際の角度検出を行う前に、磁気センサに対して人為的に回転磁場を与え、このときの回転磁場の回転角度と、その回転角度に対応する第１ブリッジ回路の出力Ｖ1とを、それぞれメモリーに記憶させる。この信号を用いて、オフセットの設定を行う。後述するゲイン調整やチルト補正を演算により行う場合も同様である。演算によりオフセットを設定する方法には、種々の方法がある。
【００４５】
演算によりオフセットを設定するための第１の方法は、以下のような工程を備えている。
（１）実際の角度検出を行う前に、磁気センサに対して人為的に回転磁場を与え、このときの回転磁場の回転角度と、その回転角度に対応する第１ブリッジ回路の出力Ｖ1とを、それぞれメモリーに記憶させる。
（２）角度演算信号Ｖ1の１つ目の下端の頂点の電位Ａ11と１つめの上端の頂点の電位Ａ12とを求め、これらをメモリーに記憶させる。
（３）メモリーに記憶された電位Ａ11、Ａ12を用いて両電位の平均電位（＝(Ａ11＋Ａ12)／２）を算出し、この平均電位をメモリーに記憶させる。
（４）角度演算信号Ｖ1がメモリーに記憶された平均電位（＝(Ａ11＋Ａ12)／２）となる位置を求め、この位置を回転角度Ｔの基準角度θ0（通常は、０°）と定義してメモリーに記憶させる。
（５）角度演算信号Ｖ1の２つ目の下端の頂点の電位Ａ13と２つめの上端の頂点の電位Ａ14とを求め、これらをメモリーに記憶させる。
（６）メモリーに記憶された電位Ａ13、Ａ14を用いて両電位の平均電位（＝(Ａ13＋Ａ14)／２）を算出し、この平均電位をメモリーに記憶させる。
（７）角度演算信号Ｖ1がメモリーに記憶された平均電位（＝(Ａ13＋Ａ14)／２）となる位置を求め、この位置を回転角度Ｔ＝θ0＋λ（°）（λは、回転角度Ｔの１周期。例えば、バイアス磁界を印加しないＧＩＧ型センサの場合、λ＝１８０°。）と定義してメモリーに記憶させる。
（８）回転角度Ｔ＝θ0（°）の位置の電位（＝(Ａ11＋Ａ12)／２）と回転角度Ｔ＝θ0＋λ（°）の位置の電位（＝(Ａ13＋Ａ14)／２）との間の平均電位と基準電位（通常は、ゼロ（Ｖ））との差を求め、これをオフセットＶoffset1と定義してメモリーに記憶させる。
（９）第１ブリッジ回路から逐次出力される実際の角度演算信号Ｖ1からＶoffset1を減算する。
【００４６】
その他のオフセット方法としては、具体的には、
（１）回転角度Ｔ＝θ0＋ｎλ／２（ｎは、整数）である３箇所以上の電位を求め、これらの平均値をオフセットＶoffset1とする方法、
（２）出力の最大値と最小値を求め、その平均値をオフセットＶoffset1とする方法、
（３）１周期の出力の重心をオフセットＶoffset1とする方法、
（４）出力の最大値と最小値の間で変動する仮想電位Ｖ0を設定し、この電位に該当する連続する３箇所の位相をθa、θb、θcとし（θa＜θb＜θc）、Ｖ0を変化させた場合に、θb−θa＝θc−θbとなるＶ0をＶoffset1とする方法、
などがある。
【００４７】
［２．１．２．  ゲイン調整］
上述したように、回転角度Ｔを計算するための計算式がコンピュータに記憶されている。計算式の係数が予め固定されている場合には、固定された係数に合うように、角度演算信号Ｖ1のゲインを調整する必要がある。この場合、ゲイン調整が行われた後の角度演算信号Ｖ1がコンピュータに入力されることになる。
【００４８】
一方、固定された係数に適合するように、演算により角度演算信号Ｖ1のゲインを調整することができる。あるいは、計算式の係数を演算により算出することもできる。さらに、ゲイン調整は、いずれか１箇所の地点において行っても良く、あるいは、出力絶対値が等価となる２箇所以上の地点において行っても良い。出力絶対値が等価となる２箇所以上の地点においてゲイン調整を行うと、調整精度が向上するという利点がある。演算によりゲインを調整する方法には、種々の方法がある。
【００４９】
演算によりゲイン調整を行うための第１の方法は、固定された係数に合うように、角度演算信号Ｖ1のゲインを調整する方法であり、具体的には、以下のような工程を備えている。
（１）実際の角度検出を行う前に、磁気センサに対して人為的に回転磁場を与え、このときの回転磁場の回転角度と、その回転角度に対応する第１ブリッジ回路の出力Ｖ1とを、それぞれメモリーに記憶させる。
（２）角度演算信号Ｖ1の下端の頂点の電位Ａ11（１個の頂点の値でも良く、複数個の頂点の値の平均値でも良い）と上端の頂点の電位Ａ12（１個の頂点の値でも良く、複数個の頂点の値の平均値でも良い）とを求め、両電位の差の半分（＝(Ａ11−Ａ12)／２）を算出し、これを入力信号の振幅Ａ1INと定義してメモリーに記憶させる。
（３）出力信号の振幅Ａ1outが固定された係数（＝計算式の振幅Ａ1）に合うように、メモリーに記憶された入力信号の振幅Ａ1INに対する出力信号の振幅Ａ1outの比Ｇ1（＝Ａ1out／Ａ1IN）を求め、これをメモリーに記憶させる。
（４）第１ブリッジ回路から逐次出力され、オフセットの設定が行われた後の実際の角度演算信号Ｖ1にＧ1を乗算する。
【００５０】
ゲインを調整するための第２の方法は、計算式の係数を演算により算出する方法であり、具体的には、以下のような工程を備えている。
（１）実際の角度検出を行う前に、磁気センサに対して人為的に回転磁場を与え、このときの回転磁場の回転角度と、その回転角度に対応する第１ブリッジ回路の出力Ｖ1とを、それぞれメモリーに記憶させる。
（２）角度演算信号Ｖ1の下端の頂点の電位Ａ11（１個の頂点の値でも良く、複数個の頂点の値の平均値でも良い）と上端の頂点の電位Ａ12（１個の頂点の値でも良く、複数個の頂点の値の平均値でも良い）とを求め、両電位の差の半分（＝(Ａ11−Ａ12)／２）を算出し、これを入力信号の振幅Ａ1と定義してメモリーに記憶させる。
（３）メモリーに記憶された入力信号の振幅Ａ1（＝(Ｖ1a−Ｖoffset1)×(λ／４)×θc1）を後述する計算式に代入する。
【００５１】
ゲインを調整するためのその他の方法としては、具体的には、
（１）周期信号の頂点以外の位置であって、出力絶対値が等価となる２箇所以上の位置（即ち、回転角度(Ｔ−θ0)がθg1、θg2＝λ／２−θg1、θg3＝λ／２＋θg1、及び、θg4＝λ−θg1（但し、０≦θg1≦λ／４）から選ばれるいずれか２箇所以上の位置）における出力の絶対値が所定の値となるようにゲイン調整する方法、
（２）周期信号のいずれか１箇所の位置における出力の絶対値が所定の値となるようにゲイン調整する方法、
などがある。
【００５２】
［２．１．３．  角度演算信号Ｖ1の記憶］
予めオフセットの設定及びゲイン調整を行う場合、オフセットの設定及びゲイン調整が行われた後の角度演算信号Ｖ1をコンピュータに入力し、そのままメモリーに記憶させる。
一方、予めオフセットの設定及びゲイン調整を行わない場合、第１ブリッジ回路から逐次出力される角度演算信号Ｖ1をコンピュータに入力し、必要な演算を行った後、演算後の信号を角度演算信号Ｖ1としてメモリーに記憶させる。
【００５３】
［２．２．  識別信号入力手段］
識別信号入力手段は、少なくとも１個の第２磁気センサを含み、第１ブリッジ回路とは機械角が４５°異なるように配置された第２ブリッジ回路から出力された識別信号Ｖ2を入力し、メモリーに記憶させる手段である。
ここで、
（１）第２磁気センサの種類は、特に限定されない点、
（２）第２磁気センサは、特にＧＩＧ型磁気センサが好ましい点、
（３）第２ブリッジ回路は、少なくとも１個の第２磁気センサを含んでいれば良く、ブリッジ回路を構成する抵抗のすべてが第２磁気センサであるのが好ましい点、
（４）第２ブリッジ回路は、フルブリッジ回路又はハーフブリッジ回路のいずれでも良い点、及び、
（５）第２ブリッジ回路は、第１ブリッジ回路とは機械角が４５°異なるように配置される点、
は、上述した通りであるので、説明を省略する。
【００５４】
［２．２．１．  オフセットの設定］
本実施の形態において、識別信号Ｖ2は、位相の判別にのみ用いられる。
第２ブリッジ回路に回転磁界が作用する場合、識別信号Ｖ2は、角度演算信号Ｖ1に対して機械角で４５°遅れた周期信号となる。回転角度Ｔの角度誤差を低減するためには、周期信号の上端の頂点と下端の頂点の中間が基準電位（通常は、ゼロ（Ｖ））となるように、識別信号Ｖ2に対しオフセットの設定をする必要がある。
【００５５】
オフセットの設定は、識別信号Ｖ2がコンピュータに入力される前に行っても良く、あるいは、ティーチングのために取得したデータを用いて演算によりオフセットの設定を行っても良い。
識別信号Ｖ2のオフセットの設定は、識別信号Ｖ2が角度演算信号Ｖ1に対して機械角で４５°遅れている点を考慮する以外は、角度演算信号Ｖ1のオフセットの設定と同様に行うことができる。識別信号Ｖ2のオフセットの設定に関するその他の点については、角度演算信号Ｖ1のオフセットの設定と同様であるので、詳細な説明を省略する。
【００５６】
［２．２．２．  ゲイン調整］
本実施の形態において、識別信号Ｖ2は、位相の判別のみに用いられる。そのため、識別信号Ｖ2については、必ずしもゲイン調整を行う必要がない。
また、識別信号Ｖ2のゲイン調整を行う場合、識別信号Ｖ2のゲイン調整は、識別信号Ｖ2が角度演算信号Ｖ1に対して機械角で４５°遅れている点を考慮する以外は、角度演算信号Ｖ1のゲイン調整と同様に行うことができる。その他の点については、角度演算信号Ｖ1のゲイン調整と同様であるので、詳細な説明を省略する。
【００５７】
［２．２．３．  識別信号Ｖ2の記憶］
予めオフセットの設定（及びゲイン調整）を行う場合、オフセットの設定（及びゲイン調整）が行われた後の識別信号Ｖ2をコンピュータに入力し、これをそのままメモリーに記憶させる。
一方、オフセットの設定（及びゲインの調整）が行われない場合、第１ブリッジ回路から逐次出力される識別信号Ｖ2をコンピュータに入力し、必要な演算を行った後、演算後の信号を識別信号Ｖ2としてメモリーに記憶させる。
【００５８】
［２．３．  チルト補正手段］
チルト補正手段は、演算式を用いて回転角度Ｔを算出する前に、
（ａ）角度演算信号Ｖ1の波形を所定の位置を基準として回転させ、角度演算信号Ｖ1の傾きを是正するチルト補正、及び、
（ｂ）識別信号Ｖ2の波形を所定の位置を基準として回転させ、識別信号Ｖ2の傾きを是正するチルト補正、
を行う手段である。
【００５９】
角度演算信号Ｖ1は、理想的には回転角度Ｔがθ0＋ｎλ／２（ｎは整数）における電位が等しくなっている。同様に、識別信号Ｖ2は、理想的には回転角度がθ0＋(２ｎ＋１)λ／４（ｎは整数）における電位が等しくなっている。しかしながら、外的要因により波形が歪むと、これらの電位が異なる（すなわち、波形が傾く）場合がある。チルト補正は、必ずしも必要ではないが、波形の傾きが大きい場合においてチルト補正を行うと、回転角度Ｔの角度誤差を低減することができる。
【００６０】
チルト補正は、信号がコンピュータに入力される前に手動で行っても良い。あるいは、ティーチングのために取得したデータを用いて演算によりチルト補正を行うこともできる。
演算による角度演算信号Ｖ1のチルト補正は、具体的には、以下のようにして行う。
（１）実際の角度検出を行う前に、磁気センサに対して人為的に回転磁場を与え、このときの回転磁場の回転角度と、その回転角度に対応する第１ブリッジ回路の出力Ｖ1とを、それぞれメモリーに記憶させる。
（２）メモリーに記憶された角度演算信号Ｖ1の回転角θ0＋ｍλ／２（°）（ｍは、整数）における値Ｖ1(θ0＋ｍλ／２)及び回転角度θ0＋ｎλ／２(°）（ｎは整数で、ｎ≠ｍ）における値Ｖ1(θ0＋ｎλ／２)を読み込む。
（３）読み込まれた値を用いて、波形の傾きΔ1（＝{Ｖ1(θ0＋ｎλ／２)−Ｖ1(θ0＋ｍλ／２)}／{(ｎ−ｍ)λ／２})を算出する。
（４）回転角度θ0＋ｍλ／２（°）を中心として、実際の角度演算信号Ｖ1を−tan-1Δ1（ｒａｄ）回転させる。
例えば、θ0＝０°、λ＝１８０°、ｍ＝０、ｎ＝２である場合、回転角度０°の位置を中心として波形を−tan-1[(Ｖ1(１８０)−Ｖ1(０))／１８０]（ｒａｄ）回転させれば良い。
【００６１】
同様に、演算による識別信号Ｖ2のチルト補正は、具体的には、以下のようにして行う。
（１）実際の角度検出を行う前に、磁気センサに対して人為的に回転磁場を与え、このときの回転磁場の回転角度と、その回転角度に対応する第２ブリッジ回路の出力Ｖ2とを、それぞれメモリーに記憶させる。
（２）メモリーに記憶された識別信号Ｖ2の回転角度θ0＋（２ｍ＋１）λ／４（°）（ｍは、整数）における値Ｖ2(θ0＋(２ｍ＋１)λ／４）及び回転角度θ0＋(２ｎ＋１)λ／４（°）（ｎは整数で、ｎ≠ｍ）における値Ｖ2(θ0＋(２ｎ＋１)λ／４）を読み込む。
（３）読み込まれた値を用いて、波形の傾きΔ2（＝{Ｖ2(θ0＋(２ｎ＋１)λ／４)−Ｖ2(θ0＋(２ｍ＋１)λ／４)}／{(ｎ−ｍ)λ／２})を算出する。
（４）回転角度θ0＋(２ｍ＋１)λ／４（°）を中心として、実際の識別信号Ｖ2を−tan-1Δ2（ｒａｄ）回転させる。
例えば、θ0＝０°、λ＝１８０°、ｍ＝０、ｎ＝１である場合、回転角度４５°の位置を中心として波形を−tan-1[(Ｖ1(１３５)−Ｖ1(４５))／９０]（ｒａｄ）回転させれば良い。
【００６２】
予めチルト補正を行う場合、チルト補正が行われた後の信号をコンピュータに入力し、そのままメモリーに記憶させる。
一方、予めチルト補正を行わない場合、ブリッジ回路から逐次出力される信号をコンピュータに入力し、必要な演算を行った後、演算後の信号をメモリーに記憶させる。
【００６３】
［２．４．  演算式記憶手段］
演算式記憶手段は、以下の演算式を前記メモリーに記憶させる手段である。
Ｔ−θ0＝(Ｖ1−Ｖoffset1)θc1／(Ｖ1a−Ｖoffset1)          ・・・（１．１）
Ｔ−θ0＝(Ｖ1−Ｖ1b)(θc3−θc2)／(Ｖ1c−Ｖ1b)＋θc2      ・・・（１．２）
Ｔ−θ0＝(Ｖ1−Ｖ1d)(λ−θc4)／(Ｖoffset1−Ｖ1d)＋θc4   ・・・（１．３）
但し、
Ｔは、外部磁界の回転角度（°）。
θ0は、回転角度Ｔの基準角度（°）。
λは、回転角度Ｔの周期（°）。
Ｖoffset1は、角度演算信号Ｖ1のオフセット。
θcn（ｎ＝１〜４）は、直線近似のための第ｎ基準角度で、０＜θc1≦λ／４、λ／４≦θc2≦λ／２、λ／２≦θc3≦３λ／４、３λ／４≦θc4＜λ。但し、θc2≠θc3。
Ｖ1a〜Ｖ1dは、それぞれ、回転角度Ｔがθ0＋θc1〜θ0＋θc4であるときの角度演算信号Ｖ1の値。
【００６４】
（１．１）〜（１．３）式は、１周期の角度演算信号Ｖ1を３本の折れ線（すなわち、三角波）で近似した式である。
（１．１）式は、回転角度Ｔが０≦Ｔ−θ0≦λ／４にある時に、角度演算信号Ｖ1から回転角度Ｔを算出するために用いられる。
（１．２）式は、回転角度Ｔがλ／４≦Ｔ−θ0≦３λ／４にある時に、角度演算信号Ｖ1から回転角度Ｔを算出するために用いられる。
（１．３）式は、回転角度Ｔが３λ／４≦Ｔ−θ0≦λにある時に、角度演算信号Ｖ1から回転角度Ｔを算出するために用いられる。
但し、境界値は、いずれか一方のサブ領域に属していればよい。「境界値は、いずれか一方のサブ領域に属していればよい」とは、例えば、Ｔ−θ0＝λ／４の時は、（１．１）式を用いて回転角度Ｔを算出しても良く、あるいは、（１．２）式を用いて回転角度Ｔを算出しても良いことを意味する。Ｔ−θ0＝０、３λ／４、λである場合も同様である。
【００６５】
θ0は、回転角度Ｔの基準角度（°）である。一般に、(Ｖ1−Ｖoffset1)が最初にゼロになる位置を「０°」と定義する。そのため、θ0は、通常、０°となるが、θ0として「０°」以外の値を採用しても良い。
θ0は、予め定数として記憶させても良く、あるいは、後からコンピュータに入力しても良い。
【００６６】
λは、回転角度Ｔの周期を表す。ホール素子は、外部磁界の変化に対して直線的なＭＲ特性を示す。同様に、ＧＩＧ型磁気センサにバイアス磁界を印加し、ＭＲ比が直線的に変化する領域内において外部磁界の強さを周期的に変化させると、直線的なＭＲ特性を示す。このような場合、λ＝３６０°となる。
一方、ＧＩＧ型磁気センサにバイアス磁界を印加することなく、周期的に変化する回転磁界を作用させると、λ＝１８０°となる。
なお、λは、予めメモリーに記憶させておいても良く、あるいは、磁気センサの種類に応じて、λの値を入力できるようにしても良い。
【００６７】
「第ｎ基準角度θcn」とは、角度演算信号Ｖ1を直線近似するための基準となるｎ番目の角度をいう。「Ｖ1a〜Ｖ1d」とは、それぞれ、回転角度Ｔがθ0＋θc1〜θ0＋θc4であるときの角度演算信号Ｖ1の値（基準電位）をいう。
図４に、基準電位Ｖ1a〜Ｖ1dと、第ｎ基準角度θcnと、直線近似された三角波との関係を示す。角度演算信号Ｖ1の直線近似は、第ｎ基準角度θcnと、これに対応する基準電位Ｖ1a〜Ｖ1dを用いて行われる。
すなわち、（１．１）式は、（θ0、Ｖoffset1）及び（θ0＋θc1、Ｖ1a）の２点を通る直線として求められる。
また、（１．２）式は、（θ0＋θc2、Ｖ1b）及び（θ0＋θc3、Ｖ1c）の２点を通る直線として求められる。
さらに、（１．３）式は、（θ0＋θc4、Ｖ1d）及び（θ0＋λ、Ｖoffset1）の２点を通る直線として求められる。
【００６８】
第ｎ基準角度θcnは、予め定数としてメモリーに記憶させておいても良く、あるいは、測定毎に所定の値を入力しても良い。また、第ｎ基準角度θcnは、任意に選択しても良く、あるいは、互いに一定の関係を満たすように選択しても良い。特に、出力絶対値が等価となるように第ｎ基準角度θcnを選択すると、計算式が簡略化され、あるいは、ゲイン調整が容易化するという利点がある。ここで、「出力絶対値が等価となるように第ｎ基準角度θcnを設定する」とは、０＜θc1≦λ／４、θc2＝λ／２−θc1、θc3＝λ／２＋θc1、θc4＝λ−θc1とすることをいう。
【００６９】
基準電位Ｖ1a〜Ｖ1dは、ティーチングの際に記憶されたデータの中から、第ｎ基準角度θcnに対応する角度演算信号Ｖ1を読み取り、これを基準電位Ｖ1a〜Ｖ1dとして演算式に代入しても良い。
あるいは、基準電位Ｖ1a〜Ｖ1dを予め定数としてメモリーに記憶させ、第ｎ基準角度θcnに対応する角度演算信号Ｖ1が基準電位Ｖ1a〜Ｖ1dにほぼ一致するように、角度演算信号Ｖ1のゲイン調整を手動又は演算により行っても良い。
この場合、ゲイン調整は、第ｎ基準角度θcnのいずれか１つの地点において角度演算信号Ｖ1が対応する基準電位にほぼ一致するように行っても良い。あるいは、第ｎ基準角度θcnの２箇所以上の地点において、角度演算信号Ｖ1が、それぞれ対応する基準電位にほぼ一致するように行っても良い。第ｎ基準角度θcnの２箇所以上の地点において角度演算信号Ｖ1が対応する基準電位にほぼ一致するようにゲイン調整を行う場合、出力絶対値が等価となるように第ｎ基準角度θcnを設定するのが好ましい。
【００７０】
例えば、第１ブリッジ回路がフルブリッジ回路であり、（１．１）〜（１．３）式中においてθ0＝０、Ｖoffset1＝０に固定され、かつ、θc2＝λ／２−θc1、θc3＝λ／２＋θc1、θc4＝λ−θc1の関係がある場合、理想的にはＶ1a＝Ｖ1b＝−Ｖ1c＝−Ｖ1dとなる。従って、（１．１）〜（１．３）式は、次の（１．１．１）〜（１．３．１）式のように表すことができる。
Ｔ＝  (θc1／Ｖ1a)Ｖ1              ・・・（１．１．１）
Ｔ＝−(θc1／Ｖ1a)Ｖ1＋λ／２      ・・・（１．２．１）
Ｔ＝  (θc1／Ｖ1a)Ｖ1＋λ          ・・・（１．３．１）
【００７１】
さらに、（１．１．１）〜（１．３．１）式において、例えば、θc1＝λ／４、Ｖ1a＝１に固定されている場合、（１．１．１）〜（１．３．１）式は、次の（１．１．２）〜（１．３．２）式のように表すことができる。
Ｔ＝  (λ／４)Ｖ1              ・・・（１．１．２）
Ｔ＝−(λ／４)Ｖ1＋λ／２      ・・・（１．２．２）
Ｔ＝  (λ／４)Ｖ1＋λ          ・・・（１．３．２）
従って、この場合、回転角度Ｔ＝ｎλ／２（°）（ｎは整数）の時に出力が０（Ｖ）となり、かつ、角度演算信号Ｖ1の振幅が１（Ｖ）となるように、予め角度演算信号Ｖ1に対してオフセットの設定及びゲイン調整、並びに、必要に応じてチルト補正を行う。
【００７２】
一方、（１．１．１）〜（１．３．１）式において、θc1及びＶ1aが予め定数としてメモリーに記憶されていない場合、ティーチング時のデータからθc1に対するＶ1aを読み込み、θc1及びＶ1aと（１．１．１）〜（１．３．１）式とを用いて、回転角度Ｔを算出する。
【００７３】
また、例えば、第１ブリッジ回路がハーフブリッジ回路であり、（１．１）〜（１．３）式中においてθ0＝０、Ｖoffset1＝Ｖcc／２に固定され、かつ、θc2＝λ／２−θc1、θc3＝λ／２＋θc1、θc4＝λ−θc1の関係がある場合、Ｖ1a−Ｖcc／２＝Ｖ1b−Ｖcc／２＝−(Ｖ1c−Ｖcc／２)＝−(Ｖ1d−Ｖcc／２)である。
この場合において、θc1＝λ／４、Ｖ1a−Ｖcc/２＝１に固定されているときには、（１．１）〜（１．３）式は、次の（１．１．３）〜（１．３．３）式のように表すことができる。
Ｔ＝  (λ／４)(Ｖ1−Ｖcc／２)              ・・・（１．１．３）
Ｔ＝−(λ／４)(Ｖ1−Ｖcc／２)＋λ／２      ・・・（１．２．３）
Ｔ＝  (λ／４)(Ｖ1−Ｖcc／２)＋λ          ・・・（１．３．３）
従って、この場合、回転角度Ｔ＝ｎλ／２（°）（ｎは整数）の時に出力がＶcc／２（Ｖ）となり、かつ、角度演算信号Ｖ1の振幅が１（Ｖ）となるように、角度演算信号Ｖ1に対してオフセットの設定及びゲイン調整、並びに、必要に応じてチルト補正を行う。
一方、θc1及びＶ1aが予め定数としてメモリーに記憶されていない場合、ティーチング時のデータからθc1に対するＶ1aを読み込み、θc1及びＶ1aと（１．１）〜（１．３）式とを用いて、回転角度Ｔを算出する。
【００７４】
図５に、４個のＧＩＧ型磁気センサからなり、機械角が４５°異なる２つのブリッジ回路から出力された、オフセットの設定及びゲイン調整が行われた後の信号Ｖdiff1、Ｖdiff2の一例を示す。
図５において、ＧＩＧ型磁気センサにはバイアス磁界が印加されていないので、λ＝１８０°となる。また、θ0＝０°に設定され、角度演算信号Ｖ1（＝Ｖdiff1）は、Ｖoffset1＝０、振幅＝１となるように、オフセットの設定及びゲイン調整が行われている。同様に、識別信号Ｖ2（Ｖdiff2）は、Ｖoffset2＝０、振幅＝１となるように、オフセットの設定及びゲイン調整が行われている。そのため、図５の場合、（１．１）〜（１．３）式は、それぞれ、（１．１．４）〜（１．３．４）式のように表せる。
Ｔ＝  Ｖdiff1×４５            （０°≦Ｔ＜４５°）    ・・・（１．１．４）
Ｔ＝−Ｖdiff1×４５＋９０    （４５°≦Ｔ＜１３５°）  ・・・（１．２．４）
Ｔ＝  Ｖdiff1×４５＋１８０（１３５°≦Ｔ＜１８０°）  ・・・（１．３．４）
【００７５】
［２．５．  位相判別手段］
位相判別手段は、メモリーに記憶された角度演算信号Ｖ1及び識別信号Ｖ2を用いて、以下の手順により回転角度Ｔの位相を判別する手段である。
(Ｖ1−Ｖoffset1)≧０、(Ｖ2−Ｖoffset2)≦０の時は、０≦Ｔ−θ0≦λ／４。
(Ｖ1−Ｖoffset1)≧０、(Ｖ2−Ｖoffset2)≧０、又は、(Ｖ1−Ｖoffset1)≦０、(Ｖ2−Ｖoffset2)≧０の時は、λ／４≦Ｔ−θ0≦３λ／４。
(Ｖ1−Ｖoffset1)≦０、(Ｖ2−Ｖoffset2)≦０の時は、３λ／４≦Ｔ−θ0≦λ。
但し、Ｖoffset2は、識別信号Ｖ2のオフセット。
境界値は、いずれか一方のサブ領域に属していればよい。
「境界値は、いずれか一方のサブ領域に属していればよい」とは、上記判別式中の「≦」又は「≧」を、それぞれ、適宜「＜」又は「＞」に置き換えても良いことを意味する。これは、境界値（Ｔ−θ0＝０、λ／４、３λ／４、λ）の回転角度Ｔは、境界値を含むいずれの演算式を用いても同じ結果が得られるためである。
【００７６】
角度演算信号Ｖ1は、Ｔ−θ0＝λ／４、３λ／４に頂点を持つ周期信号となる。一方、識別信号Ｖ2は、Ｔ−θ0＝０、λ／２、λに頂点を持つ周期信号となる。そのため、(Ｖ1−Ｖoffset1)、及び、(Ｖ2−Ｖoffset2)の符号を用いて、回転角度Ｔの位相を判別することができる（図４参照）。
図５に示す例の場合、λ＝１８０°、θ0＝０、Ｖoffset1＝Ｖoffset2＝０であるので、角度演算信号Ｖ1（＝Ｖdiff1）及び識別信号Ｖ2（＝Ｖdiff2）を用いて、以下の手順により回転角度Ｔの位相を判別することができる。
Ｖdiff1≧０、Ｖdiff2＜０の時は、      ０≦Ｔ＜４５°（サブ領域（１））。
Ｖdiff1≧０、Ｖdiff2≧０、又は、Ｖdiff1＜０、Ｖdiff2≧０の時（すなわち、Ｖdiff2≧０の時）は、  ４５°≦Ｔ＜９０°（サブ領域（２））又は９０°≦Ｔ＜１３５°（サブ領域（３））。
Ｖdiff1＜０、Ｖdiff2＜０の時は、１３５°≦Ｔ＜１８０°（サブ領域（４））。
なお、各サブ領域の境界にある回転角度Ｔ（上の例では、４５°、１３５°等）は、位相の判別に支障がない限り、いずれか一方のサブ領域に属していれば良い。
【００７７】
［２．６．  回転角度算出手段］
回転角度算出手段は、位相判別手段により判別された回転角度Ｔの位相に応じて、以下の手順によりメモリーに記憶された角度演算信号Ｖ1をメモリーに記憶された（１．１）式〜（１．３）式のいずれかに代入し、回転角度Ｔを算出する手段である。
０≦Ｔ−θ0≦λ／４の時は、（１．１）式。
λ／４≦Ｔ−θ0≦３λ／４の時は、（１．２）式。
３λ／４≦Ｔ−θ0≦λの時は、（１．３）式。
但し、境界値は、いずれか一方のサブ領域に属していればよい。
「境界値は、いずれか一方のサブ領域に属していればよい」とは、上述したように、
（ａ）上記判別式中の「≦」又は「≧」を、それぞれ、適宜「＜」又は「＞」に置き換えても良いこと、又は、
（ｂ）境界値（Ｔ−θ0＝０、λ／４、３λ／４、λ）の回転角度Ｔは、境界値を含むいずれの演算式を用いても良いこと、
を意味する。
【００７８】
図５に示す例の場合、λ＝１８０°、θ0＝０、Ｖoffset1＝Ｖoffset2＝０であり、（１．１）〜（１．３）式は（１．１．４）〜（１．３．４）式で表される。そのため、角度演算信号Ｖ1（＝Ｖdiff1）及び識別信号Ｖ2（＝Ｖdiff2）を用いて、以下の手順により回転角度Ｔを算出することができる。
０≦Ｔ＜４５°の時は、（１．１．４）式。
４５°≦Ｔ＜１３５°の時は、（１．２．４）式。
１３５°≦Ｔ＜１８０°の時は、（１．３．４）式。
【００７９】
［２．７．  フローチャート］
図６に、本実施の形態に係る磁気センサ信号処理プログラムのフローチャートの一例を示す。図６において、第１ブリッジ回路及び第２ブリッジ回路は、ともに４個のＧＩＧ型磁気センサからなるフルブリッジ回路である。そのため、角度演算信号Ｖ1は第１ブリッジ回路の中点電位の差分Ｖdiff1となり、識別信号Ｖ2は第２ブリッジ回路の中点電位の差分Ｖdiff2となる。また、メモリーには、θ0＝０、Ｖoffset1＝Ｖoffset2＝０、振幅＝１、λ＝１８０°である計算式（（１．１．４）〜（１．３．４）式）が記憶されている（演算式記憶手段）。
【００８０】
まず、予め磁気センサに対して回転磁場を与え、ティーチングのための回転角度Ｔと出力信号Ｖdiff1、Ｖdiff2との関係を取得する。ティーチングのために取得したデータは、オフセットの設定、ゲイン調整、及び、チルト補正に用いられる。
次に、ステップ１（以下、単に「Ｓ１」という）において、出力信号Ｖdiff1、Ｖdiff2のオフセットの設定を行う。この例の場合、Ｖoffset1＝Ｖoffset2＝０であるので、波形の上端と下端の中間の電位が０（Ｖ）となるように、出力信号Ｖdiff1、Ｖdiff2のオフセットの設定を行う。上述したように、オフセットの設定は、予め手動で行っても良く、あるいは、ティーチング時の出力信号Ｖdiff1、Ｖdiff2を用いて、演算により行っても良い。すなわち、予め手動でオフセットの設定を行う場合には、オフセットの設定のためのプログラムを省略することができる。
【００８１】
Ｓ２において、出力信号の振幅が１になるようにゲイン調整を行う。上述したように、ゲイン調整は、少なくともＶdiff1に対して行えばよいが、Ｖdiff1とＶdiff2の双方に対して行っても良い。また、ゲイン調整は、予め手動で行っても良く、あるいは、ティーチング時の出力信号Ｖdiff1、Ｖdiff2を用いて、演算により行っても良い。すなわち、予め手動でゲイン調整を行う場合には、ゲイン調整のためのプログラムを省略することができる。
【００８２】
Ｓ３において、チルト補正を行う（チルト補正手段）。上述したように、チルト補正は必ずしも必要ではないが、波形が歪んでいる場合においてチルト補正を行うと、角度誤差を低減することができる。チルト補正は、Ｖdiff1とＶdiff2の双方に対して行うのが好ましい。また、チルト補正は、予め手動で行っても良く、あるいは、ティーチング時の出力信号Ｖdiff1、Ｖdiff2を用いて、演算により行っても良い。すなわち、予め手動でチルト補正を行う場合には、チルト補正のためのプログラムを省略することができる。
【００８３】
Ｓ４では、回転角度Ｔの測定を開始するか否かが判断される。測定を開始しないとき（Ｓ４：ＮＯ）は、そのまま待機する。一方、測定を開始するとき（Ｓ４：ＹＥＳ）には、Ｓ５に進む。
Ｓ５では、Ｖdiff1、Ｖdiff2をコンピュータに入力し、これらをメモリーに記憶させる（角度演算信号入力手段、識別信号入力手段）。
【００８４】
Ｓ６では、Ｖdiff1≧０か否かが判断される（位相判別手段）。Ｖdiff1≧０である場合（Ｓ６：ＹＥＳ）は、Ｓ７に進む。Ｓ７では、Ｖdiff2＜０か否かが判断される（位相判別手段）。Ｖdiff1≧０であり、かつ、Ｖdiff2＜０であるとき（Ｓ６：ＹＥＳ、Ｓ７：ＹＥＳ）は、回転角度Ｔが０≦Ｔ＜４５°の範囲（サブ領域（１））にあることを示す。この場合には、Ｓ８に進み、（１．１．４）式にＶdiff1を代入し、回転角度Ｔを算出する（回転角度算出手段）。
次に、Ｓ９に進み、Ｓ９において測定を終了するか否かが判断される。測定を終了しない（Ｓ９：ＮＯ）ときは、Ｓ５に戻り、上述したＳ５〜Ｓ９の各ステップが繰り返される。
【００８５】
一方、Ｖdiff1≧０、Ｖdiff2≧０になったとき（Ｓ６：ＹＥＳ、Ｓ７：ＮＯ）は、回転角度Ｔが４５°≦Ｔ＜９０°の範囲（サブ領域（２））にあることを示す。この場合には、Ｓ１１に進み、（１．２．４）式にＶdiff1を代入し、回転角度Ｔを算出する（回転角度算出手段）。
次に、Ｓ９に進み、Ｓ９において測定を終了するか否かが判断される。測定を終了しない（Ｓ９：ＮＯ）ときは、Ｓ５に戻り、上述したＳ５〜Ｓ７、１１、９の各ステップが繰り返される。
【００８６】
また、Ｖdiff1＜０になったとき（Ｓ６：ＮＯ）は、Ｓ１０に進む。Ｓ１０では、Ｖdiff2≧０か否かが判断される（位相判別手段）。Ｖdiff1＜０、かつ、Ｖdiff2≧０であるとき（Ｓ６：ＮＯ、Ｓ１０：ＹＥＳ）は、回転角度Ｔが９０°≦Ｔ＜１３５°の範囲（サブ領域（３））にあることを示す。この場合には、Ｓ１１に進み、（１．２．４）式を用いた回転角度Ｔの算出を続行する。
次に、Ｓ９に進み、Ｓ９において測定を終了するか否かが判断される。測定を終了しない（Ｓ９：ＮＯ）ときは、Ｓ５に戻り、上述したＳ５〜Ｓ６、１０〜１１、９の各ステップが繰り返される。
【００８７】
さらに、Ｖdiff1＜０、Ｖdiff2＜０になったとき（Ｓ６：ＮＯ、Ｓ１０：ＮＯ）は、回転角度Ｔが１３５°≦Ｔ＜１８０°の範囲（サブ領域（４））にあることを示す。この場合には、Ｓ１２に進み、（１．３．４）式にＶdiff1を代入し、回転角度Ｔを算出する（回転角度算出手段）。
次に、Ｓ９に進み、Ｓ９において測定を終了するか否かが判断される。測定を終了しない（Ｓ９：ＮＯ）ときは、Ｓ５に戻り、上述したＳ５〜Ｓ６、１０、１２、９の各ステップが繰り返される。
以下同様にして、測定を終了する（Ｓ９：ＹＥＳ）まで、外部磁界の回転角度Ｔが０〜１８０°の範囲で継続的に算出される。
【００８８】
［２．８．  角度誤差］
図７（ａ）に、４個のＧＩＧ型磁気センサからなる２つのブリッジ回路から出力される出力波形（回転磁場＝飽和磁場×２５％）を示す。図７（ｂ）に、この波形から図６に示す方法で回転角度を算出したときの回転角度と角度誤差との関係を示す。
同様に、図８に、回転磁場＝飽和磁場×６５％であるときの出力波形（図８（ａ））及び回転角度と角度誤差との関係（図８（ｂ））を示す。
同様に、図９に、回転磁場＝飽和磁場×９０％であるときの出力波形（図９（ａ））及び回転角度と角度誤差との関係（図９（ｂ））を示す。
図７〜９より、回転磁場の強さ及び回転角度に応じて、角度誤差が変動していることがわかる。
【００８９】
図１０に、４個のＧＩＧ型磁気センサからなる２つのブリッジ回路から出力される出力波形から図６に示す方法を用いて回転角度を算出したときの、回転磁場の強さと角度誤差の最大値（最大角度誤差）との関係を示す。
図１０より、図６に示す方法を用いると、
（１）回転磁場の強さが飽和磁場の３５〜９０％の範囲で、最大角度誤差が４°以下、
（２）回転磁場の強さが飽和磁場の４５〜７５％の範囲で、最大角度誤差が３°以下、
（３）回転磁場の強さが飽和磁場の６０〜６５％の範囲で、最大角度誤差が２°以下、
になることがわかる。
【００９０】
［３．  磁気センサ信号処理プログラム（２）］
角度演算信号Ｖ1の波形を三角波で近似する方法は、回転磁場の強さが大きく、かつ、比較的広い範囲において比較的高い精度が得られる。しかしながら、この方法は、最大角度誤差が２°以下になる回転磁場の領域が狭い。
本発明の第２の実施の形態は、この問題を解決するために、２つのブリッジ回路から出力される双方の波形を三角波と見なし、回転角度Ｔが一方の波形の頂点を含むサブ領域にあるときには他方の波形に切り替えて角度演算を行う点に特徴がある。
【００９１】
角度演算のための信号を適宜切り替える場合、回転角度の算出は、具体的には、以下のようにして行われる。
（１）少なくとも１個の第１磁気センサを含む第１ブリッジ回路から出力された第１角度演算・識別信号Ｖ1を入力する（第１角度演算・識別信号入力工程）。
（２）少なくとも１個の第２磁気センサを含み、第１ブリッジ回路とは機械角が４５°異なるように配置された第２ブリッジ回路から出力された第２角度演算・識別信号Ｖ2を入力する（第２角度演算・識別信号入力工程）。
（３）第１角度演算・識別信号Ｖ1及び第２角度演算・識別信号Ｖ2をそれぞれ三角波で近似し、第１角度演算・識別信号Ｖ1又は第２角度演算・識別信号Ｖ2と外部磁界の回転角度Ｔとの関係をそれぞれ複数個の一次式で表す（三角波近似工程）。
（４）外部磁界の回転角度Ｔの位相を、第１角度演算・識別信号Ｖ1又は第２角度演算・識別信号Ｖ2のいずれか一方の波形の頂点近傍を含み、かつ他方の波形の頂点近傍を含まない複数のサブ領域に分割し、第１角度演算・識別信号Ｖ1及び第２角度演算・識別信号Ｖ2を用いて、外部磁界の回転角度Ｔが、いずれのサブ領域にあるか否かを判別する（位相判別工程）。
（５）位相判別工程により、外部磁界の回転角度Ｔが、第１角度演算・識別信号Ｖ1の波形の頂点近傍を含むサブ領域にあると判断されたときは、そのサブ領域に対応する第２角度演算・識別信号Ｖ2についての一次式に第２角度演算・識別信号Ｖ2を代入して回転角度Ｔを算出し、
位相判別工程により外部磁界の回転角度Ｔが、第２角度演算・識別信号Ｖ2の波形の頂点近傍を含むサブ領域にあると判断されたときは、そのサブ領域に対応する第１角度演算・識別信号Ｖ1についての一次式に第１角度演算・識別信号Ｖ1を代入して前記回転角度Ｔを算出する（回転角度算出工程）。
【００９２】
本発明の第２の実施の形態に係る磁気センサ信号処理プログラムは、この方法を実行するためのプログラムであり、コンピュータを第１角度演算・識別信号入力手段、第２角度演算・識別信号入力手段、チルト補正手段、演算式記憶手段、位相判別手段、及び、回転角度算出手段として機能させることを特徴とする。
【００９３】
［３．１．  第１角度演算・識別信号入力手段］
第１角度演算・識別信号入力手段は、少なくとも１個の第１磁気センサを含む第１ブリッジ回路から出力された第１角度演算・識別信号Ｖ1を入力し、メモリーに記憶させる手段である。
ここで、
（１）第１磁気センサの種類は、特に限定されない点、
（２）第１磁気センサは、特にＧＩＧ型磁気センサが好ましい点、
（３）第１ブリッジ回路は、少なくとも１個の第１磁気センサを含んでいれば良く、ブリッジ回路を構成する抵抗のすべてが第１磁気センサであるのが好ましい点、及び、
（４）第１ブリッジ回路は、フルブリッジ回路又はハーフブリッジ回路のいずれでも良い点、
は、上述した通りであるので、説明を省略する。
【００９４】
［３．１．１．  オフセットの設定］
第１角度演算・識別信号Ｖ1は、回転角度Ｔの演算と位相の判別の双方に用いられる。
第１ブリッジ回路に回転磁界が作用する場合、第１角度演算・識別信号Ｖ1は、周期信号となる。回転角度Ｔの角度誤差を低減するためには、周期信号の上端の頂点と下端の頂点の中間が基準電位（通常は、ゼロ（Ｖ））となるように、第１角度演算・識別信号Ｖ1に対しオフセットの設定をする必要がある。
第１角度演算・識別信号Ｖ1のオフセット方法は、第１の実施の形態と同様であるので、詳細な説明を省略する。
【００９５】
［３．１．２．  ゲイン調整］
回転角度Ｔを計算するための計算式がメモリーに記憶されている。計算式の係数が予め固定されている場合には、固定された係数に適合するように、第１角度演算・識別信号Ｖ1のゲインを調整する必要がある。この場合、ゲイン調整が行われた後の第１角度演算・識別信号Ｖ1がコンピュータに入力されることになる。
【００９６】
一方、固定された係数に適合するように、ティーチングのために取得したデータを用いて演算により第１角度演算・識別信号Ｖ1のゲインを調整することができる。あるいは、計算式の係数を演算により算出することもできる。さらに、ゲイン調整は、いずれか１箇所の地点において行っても良く、あるいは、出力絶対値が等価となる２箇所以上の地点において行っても良い。出力絶対値が等価となる２箇所以上の地点においてゲイン調整を行うと、ゲイン調整の精度が向上するという利点がある。
【００９７】
本実施の形態において、回転角度Ｔが所定の角度に達したときに回転角度Ｔの演算に用いる信号を切り替える。そのため、信号の切り替え前後において回転角度Ｔの値が整合するように、ゲイン調整を行う必要がある。
【００９８】
第１角度演算・識別信号Ｖ1の演算によるゲイン調整の方法は、種々の方法がある。
第１の方法は、具体的には、以下のような工程を備えている。
（１）実際の角度検出を行う前に、磁気センサに対して人為的に回転磁場を与え、このときの回転磁場の回転角度と、その回転角度に対応する第１ブリッジ回路の出力Ｖ1とを、それぞれメモリーに記憶させる。
（２）ゲイン調整のための第ｎ基準角度θgn（ｎ＝１〜４、λ(ｎ−１)／４≦θgn≦λｎ／４）を設定する。第ｎ基準角度θgnは、後述する第ｎ切り替え角度θcnと同一であっても良く、あるいは、異なっていても良い。
第１の方法においては、θg2＝λ／２−θg1、θg3＝λ／２＋θg1、及び、θg4＝λ−θg1（但し、０≦θg1≦λ／４）の関係を満たすように第ｎ基準角度θgnを設定する。この場合、第１基準角度θg1は、λ／８（λ＝１８０°の時は、２２．５°）が理想的であるが、λ／８から多少ずれていても良い。しかしながら、λ／８からのずれが大きくなりすぎると、角度誤差の原因となる。角度誤差を低減するためには、第１基準角度θg1は、λ／８の±３０％以下が好ましく、さらに好ましくは、λ／８の±２０％以下、さらに好ましくは、λ／８の±１０％以下である。
なお、基準角度θgnは、予め定数としてメモリーに記憶させておいても良く、あるいは、測定毎に設定された値を入力しても良い。さらに、演算により最適値を求めても良い。
（３）（Ｔ−θ0）がθg1、λ／２−θg1、λ／２＋θg1、及び、λ−θg1であるときの出力絶対値|Ｖ11|、|Ｖ12|、|Ｖ13|、|Ｖ14|を求め、これらをメモリーに記憶させる。
（４）メモリーに記憶された出力絶対値|Ｖ11|、|Ｖ12|、|Ｖ13|、|Ｖ14|を用いてこれらの平均電位Ａ1IN（＝(|Ｖ11|＋|Ｖ12|＋|Ｖ13|＋|Ｖ14|)／４）を算出し、この平均電位をメモリーに記憶させる。
（５）所定の位置における出力信号の出力絶対値Ａ1outが固定された係数（例えば、第ｎ切り替え角度θcnの位置における出力絶対値）に合うように、メモリーに記憶された入力信号の出力絶対値Ａ1INに対する出力信号の出力絶対値Ａ1outの比Ｇ1（＝Ａ1out／Ａ1IN）を求め、これをメモリーに記憶させる。
（６）第１ブリッジ回路から逐次出力され、オフセットの設定が行われた後の実際の第１角度演算・識別信号Ｖ1にＧ1を乗算する。
【００９９】
第１角度演算・識別信号Ｖ1のその他のゲイン調整方法としては、具体的には、第１角度演算・識別信号Ｖ1の振幅が所定の値となるように、ゲイン調整する方法などがある。
【０１００】
［３．１．３．  第１角度演算・識別信号Ｖ1の記憶］
予めオフセットの設定及びゲイン調整を行う場合、オフセットの設定及びゲイン調整が行われた後の第１角度演算・識別信号Ｖ1をコンピュータに入力し、そのままメモリーに記憶させる。
一方、予めオフセットの設定及びゲイン調整を行わない場合、第１ブリッジ回路から逐次出力される第１角度演算・識別信号Ｖ1をコンピュータに入力し、必要な演算を行った後、演算後の信号を第１角度演算・識別信号Ｖ1としてメモリーに記憶させる。
【０１０１】
［３．２．  第２角度演算・識別信号入力手段］
第２角度演算・識別信号入力手段は、少なくとも１個の第２磁気センサを含み、第１ブリッジ回路とは機械角が４５°異なるように配置された第２ブリッジ回路から出力された第２角度演算・識別信号Ｖ2を入力し、メモリーに記憶させる手段である。
ここで、
（１）第２磁気センサの種類は、特に限定されない点、
（２）第２磁気センサは、特にＧＩＧ型磁気センサが好ましい点、
（３）第２ブリッジ回路は、少なくとも１個の第２磁気センサを含んでいれば良く、ブリッジ回路を構成する抵抗のすべてが第２磁気センサであるのが好ましい点、
（４）第２ブリッジ回路は、フルブリッジ回路又はハーフブリッジ回路のいずれでも良い点、及び、
（５）第２ブリッジ回路は、第１ブリッジ回路とは機械角が４５°異なるように配置される点、
は、上述した通りであるので、説明を省略する。
【０１０２】
［３．２．１．  オフセットの設定］
本実施の形態において、第２角度演算・識別信号Ｖ2は、回転角度の演算と位相の判別の双方に用いられる。この点が、第１の実施の形態とは異なる。
第２ブリッジ回路に回転磁界が作用する場合、第２角度演算・識別信号Ｖ2は、第１角度演算・識別信号Ｖ1に対して機械角で４５°遅れた周期信号となる。回転角度Ｔの角度誤差を低減するためには、周期信号の上端の頂点と下端の頂点の中間が基準電位（通常は、ゼロ（Ｖ））となるように、第２角度演算・識別信号Ｖ2に対しオフセットの設定をする必要がある。
【０１０３】
オフセットの設定は、第２角度演算・識別信号Ｖ2がコンピュータに入力される前に行っても良く、あるいは、ティーチングのために取得したデータを用いて演算によりオフセットの設定を行っても良い。
第２角度演算・識別信号Ｖ2のオフセットの設定は、第２角度演算・識別信号Ｖ2が第１角度演算・角度演算信号Ｖ1に対して機械角で４５°遅れている点を考慮する以外は、第１角度演算・識別信号Ｖ1のオフセットの設定と同様に行うことができる。第２角度演算・識別信号Ｖ2のオフセットの設定に関するその他の点については、第１角度演算・識別信号Ｖ1のオフセットの設定と同様であるので、詳細な説明を省略する。
【０１０４】
［３．２．２．  ゲイン調整］
本実施の形態において、第２角度演算・識別信号Ｖ2は、位相の判別だけでなく、回転角度Ｔの算出にも用いられる。そのため、第２角度演算・識別信号Ｖ2についても、ゲイン調整を行う必要がある。
本実施の形態において、回転角度Ｔが所定の角度に達したときに回転角度Ｔの演算に用いる信号を切り替える。そのため、信号の切り替え前後において回転角度Ｔの値が整合するように、ゲイン調整を行う必要がある。
【０１０５】
ゲイン調整は、第２角度演算・識別信号Ｖ2がコンピュータに入力される前に行っても良く、あるいは、ティーチングのために取得したデータを用いて、演算によりゲイン調整を行っても良い。
第２角度演算・識別信号Ｖ2のゲイン調整は、第２角度演算・識別信号Ｖ2が第１角度演算・角度演算信号Ｖ1に対して機械角で４５°遅れている点を考慮する以外は、第１角度演算・識別信号Ｖ1のゲイン調整と同様に行うことができる。例えば、ゲイン調整のための基準角度をθg（０≦θg≦λ／４）とすると、出力絶対値が等価となる位置は、λ／４−θg、λ／４＋θg、３λ／４−θg、３λ／４＋θgとなる。
第２角度演算・識別信号Ｖ2のゲイン調整に関するその他の点については、第１角度演算・識別信号Ｖ1のゲイン調整と同様であるので、詳細な説明を省略する。
【０１０６】
［３．２．３．  第２角度演算・識別信号Ｖ2の記憶］
予めオフセットの設定及びゲイン調整を行う場合、オフセットの設定及びゲイン調整が行われた後の第２角度演算・識別信号Ｖ2をコンピュータに入力し、これをそのままメモリーに記憶させる。
一方、予めオフセットの設定及びゲイン調整を行わない場合、第２ブリッジ回路から逐次出力される第２角度演算・識別信号Ｖ2をコンピュータに入力し、必要な演算を行った後、演算後の信号を第２角度演算・識別信号Ｖ2としてメモリーに記憶させる。
【０１０７】
［３．３．  チルト補正手段］
チルト補正手段は、演算式を用いて回転角度Ｔを算出する前に、
（ａ）角度演算信号Ｖ1の波形を所定の位置を基準として回転させ、角度演算信号Ｖ1の傾きを是正するチルト補正、及び、
（ｂ）識別信号Ｖ2の波形を所定の位置を基準として回転させ、識別信号Ｖ2の傾きを是正するチルト補正、
を行う手段である。
【０１０８】
第１角度演算・識別信号Ｖ1は、理想的には回転角度がθ0＋ｎλ／２（ｎは整数）における電位が等しくなっている。同様に、第２角度演算・識別信号Ｖ2は、理想的には回転角度がθ0＋(２ｎ＋１)λ／４（ｎは整数）における電位が等しくなっている。しかしながら、外的要因により波形が歪むと、これらの電位が異なる（すなわち、波形が傾く）場合がある。チルト補正は、必ずしも必要ではないが、波形の傾きが大きい場合においてチルト補正を行うと、回転角度Ｔの角度誤差を低減することができる。
【０１０９】
チルト補正は、信号がコンピュータに入力される前に手動で行っても良い。あるいは、ティーチングのために取得したデータを用いて、演算によりチルト補正を行っても良い。
演算による第１角度演算・識別信号Ｖ1のチルト補正は、具体的には、以下のようにして行う。
（１）実際の角度検出を行う前に、磁気センサに対して人為的に回転磁場を与え、このときの回転磁場の回転角度と、その回転角度に対応する第１ブリッジ回路の出力Ｖ1とを、それぞれメモリーに記憶させる。
（２）メモリーに記憶された第１角度演算・識別信号Ｖ1の回転角度θ0＋ｍλ／２（°）（ｍは、整数）における値Ｖ1(θ0＋ｍλ／２)及び回転角度θ0＋ｎλ／２（°）（ｎは整数で、ｎ≠ｍ）における値Ｖ1(θ0＋ｎλ／２)を読み込む。
（３）読み込まれた値を用いて、波形の傾き波形の傾きΔ1（＝{Ｖ1(θ0＋ｎλ／２)−Ｖ1(θ0＋ｍλ／２)}／{(ｎ−ｍ)λ／２})を算出する。
（４）回転角度θ0＋ｍλ／２（°）を中心として、実際の第１角度演算・識別信号Ｖ1を−tan-1Δ1（ｒａｄ）回転させる
【０１１０】
同様に、演算による第２角度演算・識別信号Ｖ2のチルト補正は、具体的には、以下のようにして行う。
（１）実際の角度検出を行う前に、磁気センサに対して人為的に回転磁場を与え、このときの回転磁場の回転角度と、その回転角度に対応する第２ブリッジ回路の出力Ｖ2とを、それぞれメモリーに記憶させる。
（２）メモリーに記憶された第２角度演算・識別信号Ｖ2の回転角度θ0＋（２ｍ＋１）λ／４（°）（ｍは、整数）における値Ｖ2(θ0＋(２ｍ＋１)λ／４）及び回転角度（θ0＋(２ｎ＋１)λ／４）（°）（ｎは整数で、ｎ≠ｍ）における値Ｖ2(θ0＋(２ｎ＋１)λ／４）を読み込む。
（３）読み込まれた値を用いて、波形の傾きΔ2（＝{Ｖ2(θ0＋(２ｎ＋１)λ／４)−Ｖ2(θ0＋(２ｍ＋１)λ／４)}／{(ｎ−ｍ)λ／２})を算出する。
（４）回転角度θ0＋(２ｍ＋１)λ／４（°）を中心として、実際の第２角度演算・識別信号Ｖ2を−tan-1Δ2（ｒａｄ）回転させる。
【０１１１】
チルト補正手段に関するその他の点については、第１の実施の形態と同様であるので、詳細な説明を省略する。
【０１１２】
［３．４．  演算式記憶手段］
演算式記憶手段は、以下の演算式を前記メモリーに記憶させる手段である。
Ｔ−θ0＝(Ｖ1−Ｖoffset1)θc1／(Ｖ1a−Ｖoffset1)            ・・・（２．１）
Ｔ−θ0＝(Ｖ2−Ｖ2a)(θc2−θc1)／(Ｖ2b−Ｖ2a)＋θc1        ・・・（２．２）
Ｔ−θ0＝(Ｖ1−Ｖ1b)(θc3−θc2)／(Ｖ1c−Ｖ1b)＋θc2        ・・・（２．３）
Ｔ−θ0＝(Ｖ2−Ｖ2c)(θc4−θc3)／(Ｖ2d−Ｖ2c)＋θc3        ・・・（２．４）
Ｔ−θ0＝(Ｖ1−Ｖ1d)(λ−θc4)／(Ｖoffset1−Ｖ1d)＋θc4     ・・・（２．５）
但し、
Ｔは、外部磁界の回転角度（°）。
θ0は、回転角度Ｔの基準角度（°）。
λは、回転角度Ｔの周期（°）。
Ｖoffset1は、第１角度演算・識別信号Ｖ1のオフセット。
θcn（ｎ＝１〜４）は、第ｎ切り替え角度で、λ(ｎ−１)／４＜θcn＜λｎ／４。
Ｖ1a〜Ｖ1dは、それぞれ、回転角度Ｔがθ0＋θc1〜θ0＋θc4であるときの第１角度演算・識別信号Ｖ1の値。
Ｖ2a〜Ｖ2dは、それぞれ、回転角度Ｔがθ0＋θc1〜θ0＋θc4であるときの第２角度演算・識別信号Ｖ2の値。
【０１１３】
（２．１）、（２．３）、（２．５）式は、１周期の第１角度演算・識別信号Ｖ1を３本の折れ線（すなわち、三角波）で近似した式である。また、（２．２）、（２．４）式は、１周期の第２角度演算・識別信号Ｖ2を２本の折れ線（すなわち、三角波）で近似した式である。これらの式は、信号の位相に応じて、切り替えて用いられる。
すなわち、（２．１）式は、回転角度Ｔが０≦Ｔ−θ0≦θc1にある時に、第１角度演算・識別信号Ｖ1から回転角度Ｔを算出するために用いられる。
（２．２）式は、回転角度Ｔがθc1≦Ｔ−θ0≦θc2にある時に、第２角度演算・識別信号Ｖ2から回転角度Ｔを算出するために用いられる。
（２．３）式は、回転角度Ｔがθc2≦Ｔ−θ0≦θc3にある時に、第１角度演算・識別信号Ｖ1から回転角度Ｔを算出するために用いられる。
（２．４）式は、回転角度Ｔがθc3≦Ｔ−θ0≦θc4にある時に、第２角度演算・識別信号Ｖ2から回転角度Ｔを算出するために用いられる。
（２．５）式は、回転角度Ｔがθc4≦Ｔ−θ0≦λにある時に、第１角度演算・識別信号Ｖ1から回転角度Ｔを算出するために用いられる。
但し、境界値は、いずれか一方のサブ領域に属していればよい。「境界値は、いずれか一方のサブ領域に属していればよい」とは、例えば、Ｔ−θ0＝θc1の時は、（２．１）式を用いて回転角度Ｔを算出しても良く、あるいは、（２．２）式を用いて回転角度Ｔを算出しても良いことを意味する。Ｔ−θ0＝０、θc2〜θc4、λである場合も同様である。
【０１１４】
「第ｎ切り替え角度θcn」とは、信号の切り替えを行うときの回転角度をいう。第ｎ切り替え角度θcnは、λ(ｎ−１)／４＜θcn＜λｎ／４であればよい。第ｎ切り替え角度θcnは、λ／８＋λ(ｎ−１)／４（λ＝１８０°の時は、２２．５°、６７．５°、１１２．５°、１５７．５°）が理想的であるが、λ／８＋λ(ｎ−１)／４から多少ずれていても良い。しかしながら、λ／８＋λ(ｎ−１)／４からのずれが大きくなりすぎると、角度誤差の原因となる。角度誤差を低減するためには、第ｎ切り替え角度θcnは、{λ／８＋λ(ｎ−１)／４}を基準として、λ／８の±３０％以下が好ましく、さらに好ましくは、λ／８の±２０％以下、さらに好ましくは、λ／８の±１０％以下である。
「Ｖ1a〜Ｖ1d」とは、それぞれ、回転角度Ｔがθ0＋θc1〜θ0＋θc4であるときの第１角度演算・識別信号Ｖ1の値（基準電位）をいう。
また、「Ｖ2a〜Ｖ2d」とは、それぞれ、回転角度Ｔがθ0＋θc1〜θ0＋θc4であるときの第２角度演算・識別信号Ｖ2の値（基準電位）をいう。
【０１１５】
図１１に、基準電位Ｖ1a〜Ｖ1d、Ｖ2a〜Ｖ2dと、第ｎ切り替え角度θcnと、直線近似された三角波との関係を示す。第１及び第２角度演算・識別信号Ｖ1、Ｖ2の直線近似は、第ｎ切り替え角度θcnと、これに対応する基準電位Ｖ1a〜Ｖ1d、Ｖ2a〜Ｖ2dを用いて行われる。
すなわち、（２．１）式は、（θ0、Ｖoffset1）及び（θ0＋θc1、Ｖ1a）の２点を通る直線として求められる。
また、（２．２）式は、（θ0＋θc1、Ｖ2a）及び（θ0＋θc2、Ｖ2b）の２点を通る直線として求められる。
また、（２．３）式は、（θ0＋θc2、Ｖ1b）及び（θ0＋θc3、Ｖ1c）の２点を通る直線として求められる。
また、（２．４）式は、（θ0＋θc3、Ｖ2c）及び（θ0＋θc4、Ｖ2d）の２点を通る直線として求められる。
さらに、（２．５）式は、（θ0＋θc4、Ｖ1d）及び（θ0＋λ、Ｖoffset1）の２点を通る直線として求められる。
【０１１６】
第ｎ切り替え角度θcnは、予め定数としてメモリーに記憶させておいても良く、あるいは、測定毎に所定の値を入力しても良い。また、第ｎ切り替え角度θcnは、任意に選択しても良く、あるいは、互いに一定の関係を満たすように選択しても良い。さらに、第ｎ切り替え角度θcnは、演算により最適値を求めても良い。特に、出力絶対値が等価となるように第ｎ切り替え角度θcnを選択すると、計算式が簡略化され、あるいは、ゲイン調整が容易化するという利点がある。ここで、「出力絶対値が等価となるように第ｎ切り替え角度θcnを設定する」とは、０＜θc1＜λ／４、θc2＝λ／２−θc1、θc3＝λ／２＋θc1、θc4＝λ−θc1とすることをいう。
【０１１７】
基準電位Ｖ1a〜Ｖ1dは、ティーチングの際に記憶されたデータの中から、第ｎ切り替え角度θcnに対応する第１角度演算・識別信号Ｖ1を読み取り、これを基準電位Ｖ1a〜Ｖ1dとして演算式に代入しても良い。
あるいは、基準電位Ｖ1a〜Ｖ1dを予め定数としてメモリーに記憶させ、第ｎ切り替え角度θcnに対応する第１角度演算・識別信号Ｖ1が基準電位Ｖ1a〜Ｖ1dにほぼ一致するように、第１角度演算・識別信号Ｖ1のゲイン調整を行っても良い。
この場合、ゲイン調整は、第ｎ切り替え角度θcnのいずれか１つの地点において第１角度演算・識別信号Ｖ1が対応する基準電位にほぼ一致するように行っても良い。あるいは、第ｎ切り替え角度θcnの２箇所以上の地点において、第１角度演算・識別信号Ｖ1が、それぞれ対応する基準電位にほぼ一致するように行っても良い。第ｎ切り替え角度θcnの２箇所以上の地点において第１角度演算・識別信号Ｖ1が対応する基準電位にほぼ一致するようにゲイン調整を行う場合、出力絶対値が等価となるように第ｎ切り替え角度θcnを設定するのが好ましい。
これらの点は、第２角度演算・識別信号Ｖ2の基準電位Ｖ2a〜Ｖ2dについても同様である。
【０１１８】
例えば、第１ブリッジ回路及び第２ブリッジ回路がフルブリッジ回路であり、（２．１）〜（２．５）式中においてθ0＝０、Ｖoffset1＝Ｖoffset2＝０に固定され、かつ、θc2＝λ／２−θc1、θc3＝λ／２＋θc1、θc4＝λ−θc1の関係がある場合、理想的にはＶ1a＝Ｖ1b＝−Ｖ1c＝−Ｖ1dとなり、かつ、−Ｖ2a＝Ｖ2b＝Ｖ2c＝−Ｖ2dとなる。従って、（２．１）〜（２．５）式は、次の（２．１．１）〜（２．５．１）式のように表すことができる。
Ｔ＝  (θc1／Ｖ1a)Ｖ1                        ・・・（２．１．１）
Ｔ＝−{(λ／４−θc1)／Ｖ2a}Ｖ2＋λ／４      ・・・（２．２．１）
Ｔ＝−(θc1／Ｖ1a)Ｖ1＋λ／２                ・・・（２．３．１）
Ｔ＝  {(λ／４−θc1)／Ｖ2a}Ｖ2＋３λ／４    ・・・（２．４．１）
Ｔ＝  (θc1／Ｖ1a)Ｖ1＋λ                    ・・・（２．５．１）
【０１１９】
さらに、第１角度演算・識別信号Ｖ1の振幅と第２角度演算・識別信号Ｖ2の振幅とが同一になるようにゲイン調整すると、理想的には、θc1／Ｖ1a＝−(λ／４−θc1)／Ｖ2aの関係が成り立つ。この場合には、（２．１．１）〜（２．５．１）式は、次の（２．１．２）〜（２．５．２）式のように表すことができる。
Ｔ＝  (θc1／Ｖ1a)Ｖ1                        ・・・（２．１．２）
Ｔ＝  (θc1／Ｖ1a)Ｖ2＋λ／４                ・・・（２．２．２）
Ｔ＝−(θc1／Ｖ1a)Ｖ1＋λ／２                ・・・（２．３．２）
Ｔ＝−(θc1／Ｖ1a)Ｖ2＋３λ／４              ・・・（２．４．２）
Ｔ＝  (θc1／Ｖ1a)Ｖ1＋λ                    ・・・（２．５．２）
従って、この場合、回転角度Ｔ＝ｎλ／２（°）（ｎは整数）の時に第１角度演算・識別信号Ｖ1の出力が０（Ｖ）となり、かつ、回転角度Ｔ＝θc1の時の出力がＶ1a（Ｖ）となるように、予め第１角度演算・識別信号Ｖ1に対してオフセットの設定及びゲイン調整、並びに、必要に応じてチルト補正を行う。
同様に、回転角度Ｔ＝(２ｎ＋１)λ／４（°）（ｎは整数）の時に第２角度演算・識別信号Ｖ2の出力が０（Ｖ）となり、かつ、θc1／Ｖ1a＝−(λ／４−θc1)／Ｖ2aとなるように、予め第２角度演算・識別信号Ｖ2に対してオフセットの設定及びゲイン調整、並びに、必要に応じてチルト補正を行う。
【０１２０】
図１２に、４個のＧＩＧ型磁気センサからなり、機械角が４５°異なる２つのブリッジ回路から出力された、オフセットの設定及びゲイン調整が行われた後の信号Ｖdiff1、Ｖdiff2の一例を示す。
図１２において、ＧＩＧ型磁気センサにはバイアス磁界が印加されていないので、λ＝１８０°となる。また、θ0＝０、θc1（≡θc）＝２１°、θc2＝λ／２−θc1、θc3＝λ／２＋θc1、θc4＝λ−θc1に設定されている。第１角度演算・識別信号Ｖ1（＝Ｖdiff1）は、Ｖoffset1＝０、かつ、Ｔ＝θc、λ／２−θc、λ／２＋θc、λ−θcの時に|Ｖ1|＝１となるように、オフセットの設定及びゲイン調整が行われている。また、第２角度演算・識別信号Ｖ2（＝Ｖdiff2）は、Ｖoffset2＝０、かつ、Ｔ＝λ／４−θc、λ／４＋θc、３λ／４−θc、３λ／４＋θcの時に|Ｖ2|＝１となるように、オフセットの設定及びゲイン調整が行われている。
そのため、図１２の場合、（２．１）〜（２．５）式は、それぞれ、（２．１．３）〜（２．５．３）式のように表せる。
Ｔ＝  Ｖ1×θc                        ・・・（２．１．３）
Ｔ＝  Ｖ2×θc＋４５                  ・・・（２．２．３）
Ｔ＝−Ｖ1×θc＋９０                  ・・・（２．３．３）
Ｔ＝−Ｖ2×θc＋１３５                ・・・（２．４．３）
Ｔ＝  Ｖ1×θc＋１８０                ・・・（２．５．３）
【０１２１】
［３．５．  位相判別手段］
位相判別手段は、メモリーに記憶された第１角度演算・識別信号Ｖ1及び第２角度演算・識別信号Ｖ2を用いて、以下の手順により回転角度Ｔの位相を判別する手段である。
（ａ）(Ｖ1−Ｖoffset1)≧０、かつ、(Ｖ2−Ｖoffset2)≦０である場合において、(Ｖ1−Ｖ1a)≦０又は(Ｖ2−Ｖ2a)≦０が真の時は０≦Ｔ−θ0≦θc1、偽の時はθc1≦Ｔ−θ0≦θc2。
（ｂ）(Ｖ1−Ｖoffset1)≧０、かつ、(Ｖ2−Ｖoffset2)≧０である場合において、(Ｖ1−Ｖ1b)≧０又は(Ｖ2−Ｖ2a)≦０が真の時はθc1≦Ｔ−θ0≦θc2、偽の時はθc2≦Ｔ−θ0≦θc3。
（ｃ）(Ｖ1−Ｖoffset1)≦０、かつ、(Ｖ2−Ｖoffset2)≧０である場合において、(Ｖ1−Ｖ1c)≧０又は(Ｖ2−Ｖ2c)≧０が真の時はθc2≦Ｔ−θ0≦θc3、偽の時はθc3≦Ｔ−θ0≦θc4。
（ｄ）(Ｖ1−Ｖofsset1)≦０、かつ、(Ｖ2−Ｖoffset2)≦０である場合において、(Ｖ1−Ｖ1d)≦０又は(Ｖ2−Ｖ2d)≧０が真の時はθc3≦Ｔ−θ0≦θc4、偽の時はθc4≦Ｔ−θ0≦λ。
但し、Ｖoffset2は、第２角度演算・識別信号Ｖ2のオフセット。
境界値は、いずれか一方のサブ領域に属していればよい。
「境界値は、いずれか一方のサブ領域に属していればよい」とは、上記判別式中の「≦」又は「≧」を、それぞれ、適宜「＜」又は「＞」に置き換えても良いことを意味する。これは、境界値（Ｔ−θ0＝０、θc1〜θc4、λ）の回転角度Ｔは、境界値を含むいずれの演算式を用いても同じ結果が得られるためである。
【０１２２】
例えば、（ａ）において、「(Ｖ1−Ｖoffset1)≧０、かつ、(Ｖ2−Ｖoffset2)＜０である場合」とは、０≦Ｔ−θ0＜λ／４であることを表す（図１１参照）。また、この場合において、(Ｖ1−Ｖ1a)＜０又は(Ｖ2−Ｖ2a)＜０が真の時には、０≦Ｔ−θ0＜θc1であることを表し、偽の時には、θc1≦Ｔ−θ0（＜λ／４）＜θc2であることを表す。
同様に、（ｂ）において、「(Ｖ1−Ｖoffset1)≧０、かつ、(Ｖ2−Ｖoffset2)≧０である場合」とは、λ／４≦Ｔ−θ0≦λ／２であることを表す。また、この場合において、(Ｖ1−Ｖ1b)＞０又は(Ｖ2−Ｖ2a)＜０が真の時はθc1≦（λ／４≦）Ｔ−θ0＜θc2であることを表し、偽の時はθc2≦Ｔ−θ0（≦λ／２）＜θc3であることを表す。
同様に、（ｃ）において、「(Ｖ1−Ｖoffset1)＜０、かつ、(Ｖ2−Ｖoffset2)≧０である場合」とは、λ／２＜Ｔ−θ0≦３λ／４であることを表す。また、この場合において、(Ｖ1−Ｖ1c)＞０又は(Ｖ2−Ｖ2c)＞０が真の時はθc2≦（λ／２＜）Ｔ−θ0＜θc3であることを表し、偽の時はθc3≦Ｔ−θ0（≦３λ／４）＜θc4であることを表す。
同様に、（ｄ）において、「(Ｖ1−Ｖofsset1)＜０、かつ、(Ｖ2−Ｖoffset2)＜０である場合」とは、３λ／４＜Ｔ−θ0＜λであることを表す。また、この場合において、(Ｖ1−Ｖ1d)＜０又は(Ｖ2−Ｖ2d)＞０が真の時はθc3≦（３λ／４＜）Ｔ−θ0＜θc4であることを表し、偽の時はθc4≦Ｔ−θ0＜λであることを表す。
【０１２３】
第１角度演算・識別信号Ｖ1は、Ｔ−θ0＝λ／４、３λ／４に頂点を持つ周期信号となる。一方、第２角度演算・識別信号Ｖ2は、Ｔ−θ0＝０、λ／２、λに頂点を持つ周期信号となる。そのため、Ｖ1及びＶ2の符号及び大きさを用いて、回転角度Ｔの位相を判別することができる。
図１２に示す例の場合、λ＝１８０°、θ0＝０、Ｖoffset1＝Ｖoffset2＝０、Ｖ1a＝Ｖ1b＝−Ｖ1c＝−Ｖ1d＝１、−Ｖ2a＝Ｖ2b＝Ｖ2c＝−Ｖ2d＝１である。従って、θc1をθcとすると、第１角度演算・識別信号Ｖ1（＝Ｖdiff1）及び第２角度演算・識別信号Ｖ2（＝Ｖdiff2）を用いて、以下の手順により回転角度Ｔの位相を判別することができる。
ａ）Ｖdiff1≧０、Ｖdiff2＜０、Ｖdiff1＜１  →  ０≦Ｔ＜θc
Ｖdiff1≧０、Ｖdiff2＜０、Ｖdiff1≧１  →  θc≦Ｔ＜９０°−θc
ｂ）Ｖdiff1≧０、Ｖdiff2≧０、Ｖdiff1＞１  →  θc≦Ｔ＜９０°−θc
Ｖdiff1≧０、Ｖdiff2≧０、Ｖdiff1≦１  →  ９０°−θc≦Ｔ＜９０°＋θc
ｃ）Ｖdiff1＜０、Ｖdiff2≧０、Ｖdiff1＞−１→  ９０°−θc≦Ｔ＜９０°＋θc
Ｖdiff1＜０、Ｖdiff2≧０、Ｖdiff1≦−１→  ９０°＋θc≦Ｔ＜１８０°−θc
ｄ）Ｖdiff1＜０、Ｖdiff2＜０、Ｖdiff1＜−１→  ９０°＋θc≦Ｔ＜１８０°−θc
Ｖdiff1＜０、Ｖdiff2＜０、Ｖdiff1≧−１→  １８０°−θc≦Ｔ＜１８０°
これらを整理すると、以下のような判別式が得られる。
０≦Ｖdiff1＜１、Ｖdiff2＜０の時は、０≦Ｔ＜θc（サブ領域（１））。
１≦Ｖdiff1の時は、θc≦Ｔ＜９０°−θc（サブ領域（２））。
−１≦Ｖdiff1＜１、０≦Ｖdiff2の時は、９０°−θc≦Ｔ＜９０°＋θc（サブ領域（３））。
Ｖdiff1＜−１の時は、９０°＋θc≦Ｔ＜１８０°−θc（サブ領域（４））。
−１≦Ｖdiff1＜０、Ｖdiff2＜０の時は、１８０°−θc≦Ｔ＜１８０°（サブ領域（５））。
なお、各サブ領域の境界にある回転角度Ｔ（上の例では、θc、９０°−θc等）は、位相の判別に支障がない限り、いずれか一方のサブ領域に属していれば良い。
【０１２４】
［３．６．  回転角度算出手段］
回転角度算出手段は、位相判別手段により判別された回転角度Ｔの位相に応じて、以下の手順によりメモリーに記憶された第１角度演算・識別信号Ｖ1又は第２角度演算・識別信号Ｖ2をメモリーに記憶された（２．１）式〜（２．５）式のいずれかに代入し、回転角度Ｔを算出する手段である。
０≦Ｔ−θ0≦θc1の時は、（２．１）式。
θc1≦Ｔ−θ0≦θc2の時は、（２．２）式。
θc2≦Ｔ−θ0≦θc3の時は、（２．３）式。
θc3≦Ｔ−θ0≦θc4の時は、（２．４）式。
θc4≦Ｔ−θ0≦λの時は、（２．５）式。
但し、境界値は、いずれのサブ領域に属していても良い。
「境界値は、いずれか一方のサブ領域に属していればよい」とは、上述したように、
（ａ）上記判別式中の「≦」又は「≧」を、それぞれ、適宜「＜」又は「＞」に置き換えても良いこと、又は、
（ｂ）境界値（Ｔ−θ0＝０、θc1〜θc4、λ）の回転角度Ｔは、境界値を含むいずれの演算式を用いても良いこと、
を意味する。
【０１２５】
なお、演算を容易化するためには、計算式の切り替え位置は、出力絶対値が等価となる位置（θc、λ／２−θc、λ／２＋θc、λ−θc）とするのが好ましいが、各切り替え位置は、出力絶対値が等価となる位置から多少ずれていても良い。
【０１２６】
図１２に示す例の場合、λ＝１８０°、θ0＝０、θc2＝λ／２−θc、θc3＝λ／２＋θc、θc4＝λ−θc、Ｖoffset1＝Ｖoffset2＝０であり、（２．１）〜（２．５）式は（２．１．３）〜（２．５．３）式で表される。従って、第１角度演算・識別信号Ｖ1（＝Ｖdiff1）及び第２角度演算・識別識別信号Ｖ2（＝Ｖdiff2）を用いて、以下の手順により回転角度Ｔを算出することができる。
０≦Ｔ＜θcの時は、（２．１．３）式。
θc≦Ｔ＜９０°−θcの時は、（２．２．３）式。
９０°−θc≦Ｔ＜９０°又は９０°≦Ｔ＜９０°＋θcの時は、（２．３．３）式。
９０°＋θc≦Ｔ＜１８０°−θcの時は、（２．４．３）式。
１８０°−θc≦Ｔ＜１８０°の時は、（２．５．３）式。
【０１２７】
［３．７．  フローチャート］
図１３に、本実施の形態に係る磁気センサ信号処理プログラムのフローチャートの一例を示す。図１３において、第１ブリッジ回路及び第２ブリッジ回路は、ともに４個のＧＩＧ型磁気センサからなるフルブリッジ回路である。そのため、第１角度演算・識別信号Ｖ1は第１ブリッジ回路の中点電位の差分Ｖdiff1となり、第２角度演算・識別信号Ｖ2は第２ブリッジ回路の中点電位の差分Ｖdiff2となる。また、メモリーには、（２．１．３）〜（２．５．３）式が記憶されている（演算式記憶手段）。
【０１２８】
まず、予め磁気センサに対して人為的に回転磁場を与え、ティーチングのための回転角度Ｔと出力信号Ｖdiff1、Ｖdiff2との関係を取得する。ティーチングのために取得したデータは、オフセットの設定、ゲイン調整、及び、チルト補正に用いられる。
次に、ステップ２１（以下、単に「Ｓ２１」という）において、切り替え角度θcの設定を行う。なお、θcを予め定数としてメモリーに記憶させておく場合は、Ｓ２１を省略することができる。
次に、Ｓ２２において、出力信号Ｖdiff1、Ｖdiff2のオフセットの設定を行う。この例の場合、Ｖoffset1＝Ｖoffset2＝０であるので、波形の上端と下端の中間の電位が０（Ｖ）となるように、出力信号Ｖdiff1、Ｖdiff2のオフセットの設定を行う。上述したように、オフセットの設定は、予め手動で行っても良く、あるいは、ティーチング時の出力信号Ｖdiff1、Ｖdiff2を用いて、演算により行っても良い。すなわち、予め手動でオフセットの設定を行う場合には、オフセットの設定のためのプログラムを省略することができる。
【０１２９】
Ｓ２３において、θc、９０°−θc、９０°＋θc、及び、１８０°−θcでのＶdiff1の出力絶対値を１にするように、ゲイン調整を行う。同様に、Ｓ２４において、４５−θc、４５＋θc、１３５−θc、及び、１３５＋θcでのＶdiff2の出力絶対値を１にするように、ゲイン調整を行う。
Ｖdiff1、Ｖdiff2の４箇所の出力絶対値は、異なっている場合がある。そのため、上述したように、通常は、４箇所の出力絶対値の平均値が１になるように、ゲイン調整を行うのが好ましい。また、ゲイン調整は、予め手動で行っても良く、あるいは、ティーチング時の出力信号Ｖdiff1、Ｖdiff2を用いて、演算により行っても良い。すなわち、予め手動でゲイン調整を行う場合には、ゲイン調整のためのプログラムを省略することができる。
【０１３０】
Ｓ２５において、チルト補正を行う（チルト補正手段）。上述したように、チルト補正は必ずしも必要ではないが、波形が歪んでいる場合においてチルト補正を行うと、角度誤差を低減することができる。チルト補正は、Ｖdiff1とＶdiff2の双方に対して行うのが好ましい。また、チルト補正は、予め手動で行っても良く、あるいは、ティーチング時の出力信号Ｖdiff1、Ｖdiff2を用いて、演算により行っても良い。すなわち、予め手動でチルト補正を行う場合には、チルト補正のためのプログラムを省略することができる。
【０１３１】
Ｓ２６では、回転角度Ｔの測定を開始するか否かが判断される。測定を開始しないとき（Ｓ２６：ＮＯ）は、そのまま待機する。一方、測定を開始するとき（Ｓ２６：ＹＥＳ）には、Ｓ２７に進む。
Ｓ２７では、Ｖdiff1、Ｖdiff2をコンピュータに入力し、これらをメモリーに記憶させる（第１角度演算・識別信号入力手段、第２角度演算・識別信号入力手段）。
【０１３２】
Ｓ２８では、０≦Ｖdiff1＜１か否かが判断される（位相判別手段）。０≦Ｖdiff1＜１である場合（Ｓ２８：ＹＥＳ）は、Ｓ２９に進む。Ｓ２９では、Ｖdiff2＜０か否かが判断される（位相判別手段）。０≦Ｖdiff1＜１であり、かつ、Ｖdiff2＜０であるとき（Ｓ２８：ＹＥＳ、Ｓ２９：ＹＥＳ）は、回転角度Ｔが０≦Ｔ＜θcの範囲にあることを示す。この場合には、Ｓ３０に進み、（２．１．３）式にＶdiff1を代入し、回転角度Ｔを算出する（回転角度算出手段）。
次に、Ｓ３１に進み、Ｓ３１において測定を終了するか否かが判断される。測定を終了しない（Ｓ３１：ＮＯ）ときは、Ｓ２７に戻り、上述したＳ２７〜Ｓ３１の各ステップが繰り返される。
【０１３３】
一方、０≦Ｖdiff1＜１でないとき（Ｓ２８：ＮＯ）は、Ｓ３２に進む。Ｓ３２では、Ｖdiff1≧１か否かが判断される（位相判別手段）。Ｖdiff1≧１であるとき（Ｓ３２：ＹＥＳ）は、回転角度Ｔがθc≦Ｔ＜９０°−θcの範囲にあることを示す。この範囲においてＶdiff1は波形の頂点に近づくため、Ｖdiff1を用いて三角波近似を続行すると、角度誤差が大きくなる。そこでこの場合には、Ｓ３３に進み、Ｖdiff2を用いた三角波近似に切り替える。すなわち、（２．２．３）式にＶdiff2を代入し、回転角度Ｔを算出する（回転角度算出手段）。
次に、Ｓ３１に進み、Ｓ３１において測定を終了するか否かが判断される。測定を終了しない（Ｓ３１：ＮＯ）ときは、Ｓ２７に戻り、上述したＳ２７、２８、３２、３３の各ステップが繰り返される。
【０１３４】
外部磁界がさらに回転すると、再度、０≦Ｖdiff1＜１となる（Ｓ２８：ＹＥＳ）ので、Ｓ２９に進む。Ｓ２９では、再度、Ｖdiff2＜０か否かが判断される。０≦Ｖdiff1＜１、かつ、Ｖdiff2≧０である場合（Ｓ２８：ＹＥＳ、Ｓ２９：ＮＯ）、回転角度Ｔが９０−θc≦Ｔ＜９０°（＜９０°＋θc）であることを示す。この範囲においてＶdiff2は波形の頂点に近づくため、Ｖdiff2を用いて三角波近似を続行すると、角度誤差が大きくなる。そこでこの場合には、Ｓ３６に進み、Ｖdiff1を用いた三角波近似に切り替える。すなわち、（２．３．３）式にＶdiff1を代入し、回転角度Ｔを算出する（回転角度算出手段）
次に、Ｓ３１に進み、Ｓ３１において測定を終了するか否かが判断される。測定を終了しない（Ｓ３１：ＮＯ）ときは、Ｓ２７に戻り、上述したＳ２７〜２９、３６、３１の各ステップが繰り返される。
【０１３５】
外部磁界がさらに回転すると、再度、０≦Ｖdiff1＜１でなくなる（Ｓ２８：ＮＯ）ので、Ｓ３２に進む。Ｓ３２では、Ｖdiff1≧１か否かが判断される。Ｖdiff1≧１でない場合、さらにＳ３４に進み、Ｖdiff1＜−１か否かが判断される（位相判別手段）。Ｖdiff1＜−１でない場合（Ｓ３４：ＮＯ）、さらにＳ３５に進む。Ｓ３５では、Ｖdiff2≧０か否かが判断される（位相判別手段）。−１≦Ｖdiff1＜０、かつ、Ｖdiff2≧０である場合（Ｓ２８：ＮＯ、Ｓ３２：ＮＯ、Ｓ３４：ＮＯ、Ｓ３５：ＹＥＳ）、回転角度Ｔが（９０°−θc≦）９０°≦Ｔ＜９０°＋θcであることを示す。この範囲では、Ｖdiff1を用いた三角波近似の方が角度誤差が少ない。そこでこの場合には、Ｓ３６に進み、（２．３．３）式を用いた回転角度Ｔの算出を続行する。
次に、Ｓ３１に進み、Ｓ３１において測定を終了するか否かが判断される。測定を終了しない（Ｓ３１：ＮＯ）ときは、Ｓ２７に戻り、上述したＳ２７〜２８、３２、３４〜３６、３１の各ステップが繰り返される。
【０１３６】
外部磁界がさらに回転すると、やがてＶdiff1＜−１となる（Ｓ２８：ＮＯ、Ｓ３２：ＮＯ、Ｓ３４：ＹＥＳ）。この場合、回転角度Ｔが９０＋θc≦Ｔ＜１８０−θcであることを示す。この範囲においてＶdiff1は波形の頂点に近づくため、Ｖdiff1を用いた三角波近似を続行すると、角度誤差が大きくなる。そこでこの場合には、Ｓ３７に進み、Ｖdiff2を用いた三角波近似に切り替える。すなわち、（２．４．３）式にＶdiff2を代入し、回転角度Ｔを算出する（回転角度算出手段）。
次に、Ｓ３１に進み、Ｓ３１において測定を終了するか否かが判断される。測定を終了しない（Ｓ３１：ＮＯ）ときは、Ｓ２７に戻り、上述したＳ２７〜２８、３２、３４、３７、３１の各ステップが繰り返される。
【０１３７】
外部磁界がさらに回転すると、やがて−１≦Ｖdiff1＜０となる（Ｓ２８：ＮＯ、Ｓ３２：ＮＯ、Ｓ３４：ＮＯ）。この時、Ｖdiff2≧０でない場合（Ｓ３５：ＮＯ）には、回転角度Ｔが１８０°−θc≦Ｔ＜１８０°であることを示す。この範囲においてＶdiff2は波形の頂点に近づくため、Ｖdiff2を用いた三角波近似を続行すると、角度誤差が大きくなる。そこでこの場合には、Ｓ３８に進み、Ｖdiff1を用いた三角波近似に切り替える。すなわち、（２．５．３）式にＶdiff1を代入し、回転角度Ｔを算出する（回転角度算出手段）。
次に、Ｓ３１に進み、Ｓ３１において測定を終了するか否かが判断される。測定を終了しない（Ｓ３１：ＮＯ）ときは、Ｓ２７に戻り、上述したＳ２７〜２８、３２、３４〜３５、３８、３１の各ステップが繰り返される。
以下同様にして、測定を終了する（Ｓ３１：ＹＥＳ）まで、信号の位相に応じて角度演算のための信号を適宜切り替えながら、外部磁界の回転角度Ｔが０〜１８０°の範囲で継続的に算出される。
【０１３８】
［３．８．  角度誤差］
図１４（ａ）に、４個のＧＩＧ型磁気センサからなる２つのブリッジ回路から出力される出力波形（回転磁場＝飽和磁場×６６％）を示す。図１４（ｂ）に、この波形から図１３に示す方法で回転角度を算出したときの回転角度と角度誤差との関係を示す。
同様に、図１５に、回転磁場＝飽和磁場×８０％であるときの出力波形（図１５（ａ））及び回転角度と角度誤差との関係（図１５（ｂ））を示す。
同様に、図１６に、回転磁場＝飽和磁場×９３％であるときの出力波形（図１６（ａ））及び回転角度と角度誤差との関係（図１６（ｂ））を示す。
図１４〜１６より、回転磁場の強さ及び回転角度が変動しても、角度誤差の変動が小さいことがわかる。
【０１３９】
図１７に、４個のＧＩＧ型磁気センサからなる２つのブリッジ回路から出力される出力波形から図１３に示す方法を用いて回転角度を算出したときの、回転磁場と角度誤差の最大値（最大角度誤差）との関係を示す。
図１７より、図１３に示す方法を用いると、回転磁場の強さが飽和磁場の０〜１６０％の範囲において、最大角度誤差が２°以下になることがわかる。
【０１４０】
［４．  磁気センサ信号処理プログラム（３）］
信号の位相に応じて、計算式の切り替えを行う場合、第ｎ切り替え角度θcnの設定、オフセットの設定及びゲイン調整、並びに、必要に応じて行われるチルト補正は、手動で行っても良く、あるいは、演算により行っても良い。
演算によりこれらの調整を自動的に行う場合、角度誤差が最小になるように調整を行うのが好ましい。
【０１４１】
角度誤差を最小にするための切り替え角度の調整（第ｎ切り替え角度設定手段）は、具体的には、以下のようにして行うことができる。
演算式を用いて前記回転角度Ｔを算出する前に、
（ａ）第１ブリッジ回路及び第２ブリッジ回路に人為的に回転磁場を与えたときの第１角度演算・識別信号Ｖ1又は第２角度演算・識別信号Ｖ2と、回転角度Ｔとの関係をメモリーに記憶させる。
（ｂ）第ｎ切り替え角度θcnを、第１角度演算・識別信号Ｖ1又は第２角度演算・識別信号Ｖ2の出力絶対値が等価となる位置において複数組設定する。
（ｃ）設定された複数組の第ｎ切り替え角度θcn及び演算式を用いて、それぞれ、メモリーに記憶された回転角度と演算式から算出される回転角度との差の最大値（最大角度誤差）を算出する。
（ｄ）最大角度誤差が最小となる第ｎ切り替え角度θcnを求める。
（ｅ）最大角度誤差が最小となる第ｎ切り替え角度θcnを、メモリーに記憶された演算式に代入する。
この場合において、オフセットの設定、ゲイン調整、及び、チルト補正に複数通りの方法があるときは、各方法毎に、複数組の第ｎ切り替え角度θcnについて最大角度誤差を求め、最大角度誤差が最小となる第ｎ切り替え角度θcn及びオフセット方法等との組み合わせを求め、これらを用いて演算を行っても良い。
【０１４２】
図１８に、第ｎ切り替え角度θcnの設定、オフセットの設定、及び、チルト補正を自動調整するためのフローチャートを示す。図１８に示す例において、第ｎ切り替え角度は、出力絶対値が等価となる位置に設定されている。すなわち、０＜θc1＜λ／４、θc2＝λ／２−θc1、θc3＝λ／２＋θc1、θc4＝λ−θc1の関係がある。
【０１４３】
まず、Ｓ４１において、ティーチングのための機械角度Ｔiと、それに対応するセンサ出力Ｖ＝ｆ(Ｔi)を取得する。
次に、Ｓ４２において、ｎ及びｋmaxを入力する。
ｎは、第１切り替え角度θc1が取り得る角度範囲（＝λ／４）の分割数である。一般に、分割数ｎが大きくなるほど、精度は向上するが、演算時間が増大する。従って、分割数ｎは、目的に応じて最適な値を選択するのが好ましい。
ｋmaxは、オフセットの設定のための演算方法の数を表す。一般に、波形の歪みが小さいときには、異なる方法を用いてオフセットの設定を行った場合であっても、ほぼ同一の結果が得られる。しかしながら、外的要因による波形の歪みが大きくなると、オフセットの計算方法により最大角度誤差が異なる場合がある。そのような場合には、複数の計算方法を用いてオフセットの設定を行い、最大角度誤差が最小となるオフセット方法を選択するのが好ましい。１種類のオフセット方法を用いて角度誤差を計算するときは、ｋmax＝１を入力する。一方、複数種類のオフセット方法を用いるときには、採用する計算方法の数を入力する。
さらに、Ｓ４３において、ｊ、ｋを、それぞれ初期値＝１に設定する。
【０１４４】
次に、Ｓ４４において、第１切り替え角度θc1(j)（＝ｊ×(λ／４)×(１／ｎ))を算出する。Ｓ４５において、ｋ番目のオフセット方法を用いて、オフセットＶoffset(k)を算出する。さらに、Ｓ４６において、必要に応じて、ゲイン調整及びチルト補正を行う。なお、図１８に示す例においては、ゲイン調整及びチルト補正は、同一の方法を用いて行うようになっているが、複数種類のゲイン調整方法及び／又は複数種類のチルト補正方法を用いて、最小の最大角度誤差を算出するようにしても良い。
【０１４５】
Ｓ４７において、（２．１）〜（２．５）式にθc1(j)及びＶoffset(k)を代入し、三角波近似により求めたセンサ出力Ｖと角度Ｔi(j、k)との関係式：Ｖ＝Ｆ(Ｔi(j、k))を求める。次いで、Ｓ４８において、あるセンサ出力Ｖにおける機械角度Ｔiと、三角波近似により求めた角度Ｔi(j、k)との差（角度誤差）を逐次求め、その最大値：|Ｔi(j、k)−Ｔi|max（＝|Ｆ-1(Ｖ)−ｆ-1(Ｖ)|max）を算出し、これをメモリーに記憶させる。
【０１４６】
Ｓ４９においては、ｋ＝ｋmaxか否かが判断される。ｋ＝ｋmaxでないとき（Ｓ４９：ＮＯ）は、Ｓ５０に進み、そこでｋに１を加える。さらにＳ４５に戻り、ｋ＝ｋmaxとなるまで、上述したＳ４５〜Ｓ５０の各ステップを繰り返す。
一方、ｋ＝ｋmaxになったとき（Ｓ４９：ＹＥＳ）は、Ｓ５１に進む。Ｓ５１では、ｊ＝ｎか否かが判断される。ｊ＝ｎでないとき（Ｓ５１：ＮＯ）は、Ｓ５２に進み、ｊに１を加える。さらに、Ｓ４４に戻り、ｊ＝ｎとなるまで、上述したＳ４４〜Ｓ５２の各ステップが繰り返される。
【０１４７】
ｊ＝ｎになったとき（Ｓ５１：ＹＥＳ）は、Ｓ５３に進み、メモリーに記憶された最大角度誤差：|Ｔi(j、k)−Ｔi|maxの内、最大角度誤差が最小となるｊ、ｋの値（ｊmin、ｋmin）を選択する。これに対応する第１切り替え角度θc1(jmin)及びオフセット値Ｖoffset(kmin)を（２．１）〜（２．５）式に代入する。
この後、図１３のＳ２６に進み、第１切り替え角度θc1(jmin)及びオフセット値Ｖoffset(kmin)を代入した計算式を用いて、回転角度Ｔの算出を行う。
【０１４８】
出力絶対値が等価となる位置で角度演算に用いる信号を切り換える場合において、図１８に示すように、第１切り替え角度θc1(j)及びオフセット値Ｖoffset(k)を演算により求めると、最大角度誤差を最小にすることができる。
【０１４９】
［５．  磁気センサモジュール］
［５．１．  構成］
図１９に、本発明の一実施の形態に係る磁気センサモジュールの概略構成図を示す。図１９において、磁気センサモジュール１０は、第１ブリッジ回路１２と、第２ブリッジ回路１４と、中央演算処理装置１６と、メモリー１８とを備えている。
【０１５０】
第１ブリッジ回路１２は、少なくとも１個の第１磁気センサを含む。第２ブリッジ回路１４は、少なくとも１個の第２磁気センサを含み、第１ブリッジ回路１２とは機械角が４５°異なるように配置されている。なお、図１９において、第１ブリッジ回路１２及び第２ブリッジ回路１４は、いずれもフルブリッジ回路として図示されているが、これは単なる例示であり、いずれか一方又は双方がハーフブリッジ回路であっても良い。
第１ブリッジ回路１２及び第２ブリッジ回路１４に関するその他の点については、上述した通りであるので、詳細な説明を省略する。
【０１５１】
第１ブリッジ回路１２及び第２ブリッジ回路１４は、中央演算処理装置(ＣＰＵ)１６に接続されている。また、中央演算処理装置１６には、メモリー１８と、出力端子２０が接続されている。メモリー１８は、第１ブリッジ回路１２及び第２ブリッジ回路１４から出力される信号を記憶させると同時に、上述した磁気センサ信号処理プログラムを記憶させるために用いられる。出力端子２０には、検出された回転角度を利用する各種の機器（図示せず。例えば、入出力端末、モニターなど。）が接続されている。
【０１５２】
第１ブリッジ回路１２及び第２ブリッジ回路１４と、中央演算処理装置１６の間には、増幅器２２、２２が設けられている。増幅器２２、２２は、必ずしも必要ではないが、第１ブリッジ回路１２及び第２ブリッジ回路１４から出力される信号を増幅器２２、２２で増幅させると、ノイズを低減できるという効果がある。また、増幅器２２、２２を用いて、信号のゲイン調整を行うこともできる。
【０１５３】
［５．２．  使用方法］
図１９に示す磁気センサモジュールを用いた回転角度Ｔの検出は、具体的には、以下のようにして行う。
まず、ティーチングのための機械角度Ｔと、出力Ｖとの関係を取り込む。第１ブリッジ回路１２及び第２ブリッジ回路１４から出力された信号は、必要に応じて増幅器２２、２２で増幅された後、中央演算処理装置１６に入力され、そこで必要な演算を行った後、一旦、メモリー１８に記憶させる。
次に、中央演算処理装置１６は、メモリー１８に記憶されたティーチング時のデータを読み込み、これを用いて、オフセットの設定、ゲイン調整、チルト補正、演算式の係数の算出などを行う。演算により算出された数値は、メモリー１８に記憶される。
【０１５４】
次に、第１ブリッジ回路１２及び第２ブリッジ回路１４を用いて実際の信号を検出する。検出された信号は、必要に応じて増幅器２２、２２で増幅された後、中央演算処理装置１６に入力される。中央演算処理装置１６に入力された信号は、必要な処理を行った後、メモリー１８に記憶される。メモリー１８には、演算式及び判別式が記憶されているので、Ｖ1、Ｖ2の符号及び大きさに応じて使用すべき演算式を選択する。そして、選択された演算式に検出されたＶ1又はＶ2を代入すれば、回転角度Ｔを算出することができる。
【０１５５】
メモリー１８には、本発明に係る磁気センサ信号処理プログラムが記憶されている。そのため、機械角が４５°異なる２つのブリッジ回路から出力される一対の信号の双方を角度演算及び位相の判別に用い、一方の信号が波形の頂点近傍にあるときには他方の信号を用いて角度演算を行うように、信号の位相に応じて角度演算に用いる信号の切り替えを行うと、複雑な演算回路やフィードバック回路を用いることなく、回転角度を高い精度で検出することができる。また、磁気センサの種類、回転磁界の強さ、バイアス磁界の有無等によらず、回転角度を高い精度で検出することができる。
また、機械角が４５°異なる２つのブリッジ回路から出力される一対の信号の一方を角度演算及び位相の判別に用い、他方を位相の判別のみに用いると、複雑な演算回路やフィードバック回路を用いることなく、回転角度を比較的高い精度で検出することができる。
【０１５６】
以上、本発明の実施の形態について詳細に説明したが、本発明は上記実施の形態に何ら限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の改変が可能である。
【産業上の利用可能性】
【０１５７】
本発明に係る磁気センサ信号処理プログラムは、自動車の車軸、ロータリーエンコーダ、産業用歯車等の回転情報の検出、油圧式シリンダ／空気式シリンダのストロークポジション、工作機械のスライド等の位置・速度情報の検出、工業用溶接ロボットのアーク電流等の電流情報の検出、地磁気方位コンパスなどに用いられる磁気センサの信号処理に用いることができる。
【図１】
2011033481.tif 000003
【図２】
2011033481.tif 000004
【図３】
2011033481.tif 000005
【図４】
2011033481.tif 000006
【図５】
2011033481.tif 000007
【図６】
2011033481.tif 000008
【図７】
2011033481.tif 000009
【図８】
2011033481.tif 000010
【図９】
2011033481.tif 000011
【図１０】
2011033481.tif 000012
【図１１】
2011033481.tif 000013
【図１２】
2011033481.tif 000014
【図１３】
2011033481.tif 000015
【図１４】
2011033481.tif 000016
【図１５】
2011033481.tif 000017
【図１６】
2011033481.tif 000018
【図１７】
2011033481.tif 000019
【図１８】
2011033481.tif 000020
【図１９】
2011033481.tif 000021