(57)【要約】【課題】方位角センサにおける磁気検出データのオフセット更新制御を適正化する。【解決手段】方位角センサでは、３軸での磁気の検出により、３軸座標系上のデータ点として原磁気検出データが順次取得される。方位角センサに設けられたオフセット導出装置は、原磁気検出データを補正して補正磁気検出データを生成するためのオフセット値（ＨｘＯＦＦ，ＨｙＯＦＦ，ＨｚＯＦＦ）を導出する。オフセット導出装置は、原磁気検出データ又は補正磁気検出データにおける複数のデータ点を用いてオフセット仮決定値（Ｈｘ０，Ｈｙ０，Ｈｚ０）を導出した後、原磁気検出データ及びオフセット仮決定値に基づき、その場の磁気の大きさ｜Ｍ’｜を導出する。そして、導出した磁気の大きさが所定の校正成功範囲内にある場合にはオフセット仮決定値にてオフセット値を更新する一方、そうでない場合にはオフセット値の更新を非実行とする。【選択図】図３
2018004613.tif 000002
【特許請求の範囲】
【請求項１】
３軸又は２軸での磁気の検出により３軸座標系又は２軸座標系上のデータ点として順次取得される原磁気検出データを補正して補正磁気検出データを生成するためのオフセット値を導出するオフセット導出装置であって、
前記原磁気検出データ又は前記補正磁気検出データにおける複数のデータ点を用いて前記オフセット値の仮決定値を導出する仮決定値導出部と、
前記原磁気検出データ及び前記仮決定値に基づき前記磁気の大きさを導出し、導出した前記磁気の大きさが所定の基準範囲内にある場合には前記仮決定値にて前記オフセット値を更新する一方、そうでない場合には前記オフセット値の更新を非実行とする更新部と、を備えた
ことを特徴とするオフセット導出装置。
【請求項２】
前記更新部は、前記導出した前記磁気の大きさが前記基準範囲内にある場合には前記仮決定値にて前記オフセット値を更新するとともに前記導出した前記磁気の大きさに基づき前記基準範囲も更新し、そうでない場合には前記オフセット値及び前記基準範囲の更新を非実行とする
ことを特徴とする請求項１に記載のオフセット導出装置。
【請求項３】
前記導出した前記磁気の大きさに基づき前記基準範囲が更新される際、更新後の前記基準範囲は、前記導出した前記磁気の大きさを内包する範囲とされる
ことを特徴とする請求項２に記載のオフセット導出装置。
【請求項４】
前記導出した前記磁気の大きさに基づき前記基準範囲が更新される際、更新後の前記基準範囲は、前記導出した前記磁気の大きさを中心とする範囲とされる
ことを特徴とする請求項３に記載のオフセット導出装置。
【請求項５】
更新前の基準範囲としての初期の基準範囲を前記原磁気検出データに基づき設定する初期設定部を更に備えた
ことを特徴とする請求項１〜４の何れかに記載のオフセット導出装置。
【請求項６】
前記仮決定値導出部は、前記複数のデータ点としてのＮ個のデータ点の内の１つを基準データ点として用い（但しＮは２以上の整数）、３軸座標系又は２軸座標系において前記基準データ点を原点と一致させるように前記複数のデータ点を一様に平行移動させることにより、前記基準データ点を除いた（Ｎ−１）個の仮想データ点を設定し、その後、３軸座標系において原点を通る曲面の中心に位置し且つ前記曲面と各々の仮想データ点との間の距離の総和を最小化させる点又は２軸座標系において原点を通る曲線の中心に位置し且つ前記曲線と各々の仮想データ点との間の距離の総和を最小化させる点を仮想オフセット点として導出して、前記平行移動分を元に戻すように前記仮想オフセット点を平行移動することにより前記仮決定値を導出する
ことを特徴とする請求項１〜５の何れかに記載のオフセット導出装置。
【請求項７】
３軸座標系において、前記（Ｎ−１）個の仮想データ点を構成する第ｉの仮想データ点の座標値を（Ｈｘｉ’，Ｈｙｉ’，Ｈｚｉ’）とし（但し、ｉは１以上且つ（Ｎ−１）以下の整数）、前記仮想オフセット点の座標値を（Ｈｘ０’，Ｈｙ０’，Ｈｚ０’）としたとき、前記仮決定値導出部は、下記式（Ａ１）の関数ＦＨ１の値を最小化させるように前記仮想オフセット点の座標値を導出する
ことを特徴とする請求項６に記載のオフセット導出装置。
【数１】
2018004613.tif 000025
【請求項８】
２軸座標系において、前記（Ｎ−１）個の仮想データ点を構成する第ｉの仮想データ点の座標値を（Ｈｘｉ’，Ｈｙｉ’）とし（但しｉは１以上且つ（Ｎ−１）以下の整数）、前記仮想オフセット点の座標値を（Ｈｘ０’，Ｈｙ０’）としたとき、前記仮決定値導出部は、下記式（Ａ２）の関数ＦＨ２の値を最小化させるように前記仮想オフセット点の座標値を導出する
ことを特徴とする請求項６に記載のオフセット導出装置。
【数２】
2018004613.tif 000026
【請求項９】
３軸又は２軸での磁気の検出により原磁気検出データを生成する磁気検出装置と、
前記原磁気検出データのオフセット値を導出する、請求項１〜８の何れかに記載のオフセット導出装置と、
前記オフセット値を用いて前記原磁気検出データを補正することで補正磁気検出データを生成するオフセット補正装置と、
前記補正磁気検出データから方位角データを生成する方位角演算部と、を備えた
ことを特徴とする方位角センサ。
【請求項１０】
請求項９に記載の方位角センサを備えた
ことを特徴とする電子機器。
【請求項１１】
３軸又は２軸での磁気の検出により３軸座標系又は２軸座標系上のデータ点として順次取得される原磁気検出データを補正して補正磁気検出データを生成するためのオフセット値を導出するオフセット導出方法であって、
前記原磁気検出データ又は前記補正磁気検出データにおける複数のデータ点を用いて前記オフセット値の仮決定値を導出する仮決定値導出ステップと、
前記原磁気検出データ及び前記仮決定値に基づき前記磁気の大きさを導出し、導出した前記磁気の大きさが所定の基準範囲内にある場合には前記仮決定値にて前記オフセット値を更新する一方、そうでない場合には前記オフセット値の更新を非実行とする更新ステップと、を備えた
ことを特徴とするオフセット導出方法。
【請求項１２】
３軸座標空間のデータ点として順次取得される３軸の磁気検出データを参照して各軸の最大値及び最小値にそれぞれ対応する６点のデータ点（Ｈｘｉ，Ｈｙｉ，Ｈｚｉ）（ただしｉ＝１〜６）を常時探索し、
各軸毎の最大値と最小値との差が全ての軸について閾値以上となったときに７点目の基準データ点（Ｈｘ７，Ｈｙ７，Ｈｚ７）を決定し、
前記基準データ点を原点（０，０，０）と一致させるように、前記６点のデータ点のうち、少なくともＸ軸とＹ軸の最大値及び最小値にそれぞれ対応する４点を一様に平行移動した上でＺ軸の座標値を無視することにより、ＸＹ座標面上の仮想データ点（Ｈｘｉ’，Ｈｙｉ’）（ただしｉ＝１〜４）を算出し、
前記仮想データ点（Ｈｘｉ’，Ｈｙｉ’）を用いて、次の（ｆ１）式で表される関数Ｆ１を最小化するＸＹ座標面上の仮想オフセット点（Ｈｘ０’，Ｈｙ０’）を算出し、
【数３】
2018004613.tif 000027
前記基準データ点の平行移動分を元に戻すように前記仮想オフセット点（Ｈｘ０’，Ｈｙ０’）を平行移動することにより、Ｘ軸のオフセット値Ｈｘ０及びＹ軸のオフセット値Ｈｙ０を算出し、
前記基準データ点を前記原点と一致させるように、前記６点のデータ点を一様に平行移動することにより、６点の仮想データ点（Ｈｘｉ’，Ｈｙｉ’，Ｈｚｉ’）（ただしｉ＝１〜６）を算出し、
前記仮想オフセット点（Ｈｘ０’，Ｈｙ０’）と前記６点の仮想データ点（Ｈｘｉ’，Ｈｙｉ’，Ｈｚｉ’）を用いて、次の（ｆ２）式で表される関数Ｆ２を最小化する仮想オフセット値Ｈｚ０’を算出し、
【数４】
2018004613.tif 000028
前記基準データ点の平行移動分を元に戻すように前記仮想オフセット値Ｈｚ０’を平行移動することにより、Ｚ軸のオフセット値Ｈｚ０を算出する、
ことを特徴とするオフセット算出装置。
【請求項１３】
前記（ｆ１）式を用いず次の（ｆ３ａ）式と（ｆ３ｂ）式を用いて、前記オフセット値Ｈｘ０及びＨｙ０を算出することを特徴とする請求項１２に記載のオフセット算出装置。
【数５】
2018004613.tif 000029
【請求項１４】
前記閾値は、その場における空間磁場の大きさ、若しくは、これを分解したＸＹ平面成分とＺ軸成分に応じて、各軸毎にそれぞれ設定されることを特徴とする請求項１２または請求項１３に記載のオフセット算出装置。
【請求項１５】
前記Ｚ軸の閾値は、前記Ｘ軸及び前記Ｙ軸それぞれの閾値よりも小さいことを特徴とする請求項１４に記載のオフセット算出装置。
【請求項１６】
その場における地磁気の伏角を用いて前記空間磁場の大きさをＸＹ平面成分とＺ軸成分に分解することを特徴とする請求項１４または請求項１５に記載のオフセット算出装置。
【請求項１７】
新たに求められた各軸の新オフセット値を用いて前記空間磁場の大きさと前記伏角を算出し、各算出値が所定の条件を満たしているか否かに応じて、前記新オフセット値を破棄するか否かを決定することを特徴とする請求項１６に記載のオフセット算出装置。
【請求項１８】
前記基準データ点は、前記６点のデータ点のうち、少なくともＸ軸とＹ軸の最大値及び最小値にそれぞれ対応する４点から、所定値以上の距離を隔てたデータ点であることを特徴とする請求項１２〜請求項１７のいずれか一項に記載のオフセット算出装置。
【請求項１９】
３軸の磁気検出データそれぞれのオフセットを算出するに際して、Ｘ軸及びＹ軸のオフセット計算と、前記Ｘ軸及び前記Ｙ軸よりもデータ変動の小さいＺ軸のオフセット計算とを別々に実施することを特徴とするオフセット算出装置。
【請求項２０】
まず前記Ｘ軸及び前記Ｙ軸のオフセット値を算出し、その算出結果を利用して前記Ｚ軸のオフセット値を算出することを特徴とする請求項１９に記載のオフセット算出装置。
【請求項２１】
３軸の磁気検出データを生成する磁気検出装置と、
前記磁気検出データのオフセットを算出する請求項１２〜請求項２０のいずれか一項に記載のオフセット算出装置と、
前記磁気検出データのオフセットを補正するオフセット補正装置と、
補正済みの磁気検出データから方位角データを生成する方位角演算装置と、
を有することを特徴とする方位角センサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オフセット導出装置、オフセット算出装置、及び、これを用いた方位角センサに関する。
【背景技術】
【０００２】
方位角センサ（地磁気センサ）は、地磁気の向きを検出することにより、方位角を測定する。但し、測定対象の地磁気は非常に微弱である。従って、方位角を精度良く検出するためには、周囲環境に存在する外来磁場（方位角センサを搭載した機器の内部で発生する磁場や、方位角センサの周囲に置かれた強力マグネットが発する磁場など）に起因するオフセットや、方位角センサ自体の性能に起因するオフセットをキャンセルして、真の地磁気を検出する必要がある（例えば下記特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４３９１４１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
方位角センサのオフセットは、時間的にも空間的にも絶えず変化する。従って、方位角を精度良く検出するためには、方位角センサのオフセットを継続的にキャンセルし続ける必要がある。時間的にも空間的にも絶えず変化するオフセットをキャンセルし続けるためには、オフセット補正を行うためのオフセット値を次々と更新してゆく必要がある。
【０００５】
しかしながら、オフセット値を導出する際、導出結果の精度が何らかの原因により一時的に良好でなくなることも考えられる。これをも考慮した更新動作制御により、オフセット補正に用いるオフセット値の精度向上、ひいては方位角の検出精度向上が期待される。
【０００６】
そこで本発明は、磁気検出に関するオフセット値の精度向上に寄与するオフセット導出装置及び方法、並びに、当該オフセット導出装置を用いた方位角センサ及び電子機器を提供することを第１の目的とする。
【０００７】
また、オフセット補正方法としては、使用するユーザが意図的に手動補正する方法と、ユーザが意図しない間に自動補正する方法があり、ユーザの利便性向上や方位角センサの検出精度向上を鑑みると、後者の方法を採用することが望ましい。
【０００８】
しかしながら、特許文献１の従来技術では、オフセット補正処理に要する演算量が非常に多いので、オフセットを高速かつ継続的にキャンセルし続けるためには、高い演算能力を必要とするという課題があった。
【０００９】
また、方位角センサを自動車などに搭載する場合、地表面に対する鉛直軸方向の動きが乏しいので、精度良くオフセットをキャンセルすることが難しいという課題もあった。
【００１０】
本明細書中に開示されている発明は、本願の発明者により見出された上記課題に鑑み、３軸の磁気検出データのうちいずれかの変動幅が小さい場合でも各軸のオフセットを精度良く算出することのできるオフセット算出装置及びこれを用いた方位角センサを提供することを第２の目的とする。
【課題を解決するための手段】
【００１１】
上記第１の目的を達成するために、本発明に係るオフセット導出装置は、３軸又は２軸での磁気の検出により３軸座標系又は２軸座標系上のデータ点として順次取得される原磁気検出データを補正して補正磁気検出データを生成するためのオフセット値を導出するオフセット導出装置であって、前記原磁気検出データ又は前記補正磁気検出データにおける複数のデータ点を用いて前記オフセット値の仮決定値を導出する仮決定値導出部と、前記原磁気検出データ及び前記仮決定値に基づき前記磁気の大きさを導出し、導出した前記磁気の大きさが所定の基準範囲内にある場合には前記仮決定値にて前記オフセット値を更新する一方、そうでない場合には前記オフセット値の更新を非実行とする更新部と、を備えたことを特徴とする。
【００１２】
具体的には例えば、前記更新部は、前記導出した前記磁気の大きさが前記基準範囲内にある場合には前記仮決定値にて前記オフセット値を更新するとともに前記導出した前記磁気の大きさに基づき前記基準範囲も更新し、そうでない場合には前記オフセット値及び前記基準範囲の更新を非実行にすると良い。
【００１３】
更に具体的には例えば、前記導出した前記磁気の大きさに基づき前記基準範囲が更新される際、更新後の前記基準範囲は、前記導出した前記磁気の大きさを内包する範囲とされると良い。
【００１４】
更に具体的には例えば、前記導出した前記磁気の大きさに基づき前記基準範囲が更新される際、更新後の前記基準範囲は、前記導出した前記磁気の大きさを中心とする範囲とされても良い。
【００１５】
また例えば、更新前の基準範囲としての初期の基準範囲を前記原磁気検出データに基づき設定する初期設定部を、当該オフセット導出装置に更に設けても良い。
【００１６】
また具体的には例えば、前記仮決定値導出部は、前記複数のデータ点としてのＮ個のデータ点の内の１つを基準データ点として用い（但しＮは２以上の整数）、３軸座標系又は２軸座標系において前記基準データ点を原点と一致させるように前記複数のデータ点を一様に平行移動させることにより、前記基準データ点を除いた（Ｎ−１）個の仮想データ点を設定し、その後、３軸座標系において原点を通る曲面の中心に位置し且つ前記曲面と各々の仮想データ点との間の距離の総和を最小化させる点又は２軸座標系において原点を通る曲線の中心に位置し且つ前記曲線と各々の仮想データ点との間の距離の総和を最小化させる点を仮想オフセット点として導出して、前記平行移動分を元に戻すように前記仮想オフセット点を平行移動することにより前記仮決定値を導出すると良い。
【００１７】
より具体的には例えば、３軸座標系において、前記（Ｎ−１）個の仮想データ点を構成する第ｉの仮想データ点の座標値を（Ｈｘｉ’，Ｈｙｉ’，Ｈｚｉ’）とし（但し、ｉは１以上且つ（Ｎ−１）以下の整数）、前記仮想オフセット点の座標値を（Ｈｘ０’，Ｈｙ０’，Ｈｚ０’）としたとき、前記仮決定値導出部は、下記式（Ａ１）の関数ＦＨ１の値を最小化させるように前記仮想オフセット点の座標値を導出すると良い。
【００１８】
【数１】
2018004613.tif 000003
【００１９】
或いは例えば、２軸座標系において、前記（Ｎ−１）個の仮想データ点を構成する第ｉの仮想データ点の座標値を（Ｈｘｉ’，Ｈｙｉ’）とし（但しｉは１以上且つ（Ｎ−１）以下の整数）、前記仮想オフセット点の座標値を（Ｈｘ０’，Ｈｙ０’）としたとき、前記仮決定値導出部は、下記式（Ａ２）の関数ＦＨ２の値を最小化させるように前記仮想オフセット点の座標値を導出すると良い。
【００２０】
【数２】
2018004613.tif 000004
【００２１】
本発明に係る方角センサは、３軸又は２軸での磁気の検出により原磁気検出データを生成する磁気検出装置と、前記原磁気検出データのオフセット値を導出する前記オフセット導出装置と、前記オフセット値を用いて前記原磁気検出データを補正することで補正磁気検出データを生成するオフセット補正装置と、前記補正磁気検出データから方位角データを生成する方位角演算部と、を備えたことを特徴とする。
【００２２】
本発明に係る電子機器は、前記方位角センサを備えたことを特徴とする。
【００２３】
本発明に係るオフセット導出方法は、３軸又は２軸での磁気の検出により３軸座標系又は２軸座標系上のデータ点として順次取得される原磁気検出データを補正して補正磁気検出データを生成するためのオフセット値を導出するオフセット導出方法であって、前記原磁気検出データ又は前記補正磁気検出データにおける複数のデータ点を用いて前記オフセット値の仮決定値を導出する仮決定値導出ステップと、前記原磁気検出データ及び前記仮決定値に基づき前記磁気の大きさを導出し、導出した前記磁気の大きさが所定の基準範囲内にある場合には前記仮決定値にて前記オフセット値を更新する一方、そうでない場合には前記オフセット値の更新を非実行とする更新ステップと、を備えたことを特徴とする。
【００２４】
また、上記第２の目的を達成するために、本明細書中に開示されているオフセット算出装置は、
３軸座標空間のデータ点として順次取得される３軸の磁気検出データを参照して各軸の最大値及び最小値にそれぞれ対応する６点のデータ点（Ｈｘｉ，Ｈｙｉ，Ｈｚｉ）（ただしｉ＝１〜６）を常時探索し、
各軸毎の最大値と最小値との差が全ての軸について閾値以上となったときに７点目の基準データ点（Ｈｘ７，Ｈｙ７，Ｈｚ７）を決定し、
前記基準データ点を原点（０，０，０）と一致させるように、前記６点のデータ点のうち、少なくともＸ軸とＹ軸の最大値及び最小値にそれぞれ対応する４点を一様に平行移動した上でＺ軸の座標値を無視することにより、ＸＹ座標面上の仮想データ点（Ｈｘｉ’，Ｈｙｉ’）（ただしｉ＝１〜４）を算出し、
前記仮想データ点（Ｈｘｉ’，Ｈｙｉ’）を用いて、次の（ｆ１）式で表される関数Ｆ１を最小化するＸＹ座標面上の仮想オフセット点（Ｈｘ０’，Ｈｙ０’）を算出し、
【数３】
2018004613.tif 000005
前記基準データ点の平行移動分を元に戻すように前記仮想オフセット点（Ｈｘ０’，Ｈｙ０’）を平行移動することにより、Ｘ軸のオフセット値Ｈｘ０及びＹ軸のオフセット値Ｈｙ０を算出し、
前記基準データ点を前記原点と一致させるように、前記６点のデータ点を一様に平行移動することにより、６点の仮想データ点（Ｈｘｉ’，Ｈｙｉ’，Ｈｚｉ’）（ただしｉ＝１〜６）を算出し、
前記仮想オフセット点（Ｈｘ０’，Ｈｙ０’）と前記６点の仮想データ点（Ｈｘｉ’，Ｈｙｉ’，Ｈｚｉ’）を用いて、次の（ｆ２）式で表される関数Ｆ２を最小化する仮想オフセット値Ｈｚ０’を算出し、
【数４】
2018004613.tif 000006
前記基準データ点の平行移動分を元に戻すように前記仮想オフセット値Ｈｚ０’を平行移動することにより、Ｚ軸のオフセット値Ｈｚ０を算出する構成（第１の構成）である。
【００２５】
なお、上記第１の構成から成るオフセット算出装置は、前記（ｆ１）式を用いず、次の（ｆ３ａ）式と（ｆ３ｂ）式を用いて、前記オフセット値Ｈｘ０及びＨｙ０を算出する構成（第２の構成）としてもよい。
【数５】
2018004613.tif 000007
【００２６】
また、上記第１または第２の構成から成るオフセット算出装置において、前記閾値は、その場における空間磁場の大きさ、若しくは、これを分解したＸＹ平面成分とＺ軸成分に応じて、各軸毎にそれぞれ設定される構成（第３の構成）にするとよい。
【００２７】
また、上記第３の構成から成るオフセット算出装置において、前記Ｚ軸の閾値は、前記Ｘ軸及び前記Ｙ軸それぞれの閾値よりも小さい構成（第４の構成）にするとよい。
【００２８】
また、上記第３または第４の構成から成るオフセット算出装置は、その場における地磁気の伏角を用いて、前記空間磁場の大きさをＸＹ平面成分とＺ軸成分に分解する構成（第５の構成）にするとよい。
【００２９】
また、上記第５の構成から成るオフセット算出装置は、新たに求められた各軸の新オフセット値を用いて前記空間磁場の大きさと前記伏角を算出し、各算出値が所定の条件を満たしているか否かに応じて、前記新オフセット値を破棄するか否かを決定する構成（第６の構成）にするとよい。
【００３０】
また、上記第１〜第６いずれかの構成から成るオフセット算出装置において、前記基準データ点は、前記６点のデータ点のうち、少なくともＸ軸とＹ軸の最大値及び最小値にそれぞれ対応する４点から、所定値以上の距離を隔てたデータ点である構成（第７の構成）にするとよい。
【００３１】
また、本明細書中に開示されているオフセット算出装置は、３軸の磁気検出データそれぞれのオフセットを算出するに際して、Ｘ軸及びＹ軸のオフセット計算と、前記Ｘ軸及び前記Ｙ軸よりもデータ変動の小さいＺ軸のオフセット計算とを別々に実施する構成（第８の構成）とされている。
【００３２】
より具体的に述べると、上記第８の構成から成るオフセット算出装置は、まず前記Ｘ軸及び前記Ｙ軸のオフセット値を算出し、その算出結果を利用して前記Ｚ軸のオフセット値を算出する構成（第９の構成）にするとよい。
【００３３】
また、本明細書中に開示されている方位角センサは、３軸の磁気検出データを生成する磁気検出装置と、前記磁気検出データのオフセットを算出する上記第１〜第９いずれかの構成から成るオフセット算出装置と、前記磁気検出データのオフセットを補正するオフセット補正装置と、補正済みの磁気検出データから方位角データを生成する方位角演算装置と、を有する構成（第１０の構成）とされている。
【発明の効果】
【００３４】
本発明によれば、磁気検出に関するオフセット値の精度向上に寄与するオフセット導出装置及び方法、並びに、当該オフセット導出装置を用いた方位角センサ及び電子機器を提供することが可能となる。
【００３５】
また、本明細書中に開示されている発明によれば、３軸の磁気検出データのうちいずれかの変動幅が小さい場合でも各軸のオフセットを精度良く算出することのできるオフセット算出装置及びこれを用いた方位角センサを提供することが可能となる。
【図面の簡単な説明】
【００３６】
【図１】本発明の第１実施形態に係る方位角センサの全体構成を示すブロック図
【図２】本発明の第１実施形態に係るオフセット導出処理を説明するための３軸の座標空間図（ＸＹＺ座標空間図）
【図３】方位角センサにおけるオフセット値の更新に関わる動作のフローチャート
【図４】方位角センサにて実行される初期値決定処理のフローチャート
【図５Ａ】方位角センサのスイング運動の第１例を説明するための図
【図５Ｂ】方位角センサのスイング運動の第２例を説明するための図
【図６Ａ】地磁気のベクトルがＺ軸周りに回転する様子を示す図
【図６Ｂ】地磁気のベクトルのＺ軸周りの回転時における磁気検出データのＸ軸成分及びＹ軸成分の変化を示す図
【図７】方位角センサにて実行されるオフセット校正条件判定処理のフローチャート
【図８】オフセット校正条件判定処理にて特定される最大データ点及び最小データ点を示す図
【図９】オフセット導出処理に用いる基準データ点の選択例を説明するための図
【図１０】校正成功範囲が次々と更新されてゆく様子を示す図
【図１１】オフセット校正条件判定処理にて特定される最大データ点及び最小データ点の中に、不適切なデータ点が含まれている様子を示す図
【図１２】図１のオフセット導出部の内部ブロック図
【図１３】本発明の第２実施形態に係る方位角センサの全体構成を示すブロック図
【図１４】オフセット算出処理の第１例を示すＸＹＺ座標空間図
【図１５】オフセット算出処理の第２例を示すフローチャート
【図１６】３軸の最大値・最小値を示すＸＹＺ座標空間図
【図１７】差分値ΔＨｘの変遷挙動を示すタイムチャート
【図１８】原点Ｏに平行移動される基準データ点の一選択例を示すタイムチャート
【図１９】３軸の最大値・最小値に対応するデータ点を基準点として選択する場合の留意点について説明するためのＸＹＺ座標空間図
【図２０】オフセット算出処理の第３例を示すフローチャート
【図２１】オフセット算出処理の第４例を示すフローチャート
【図２２】磁場のＸＺ平面図（Ｚ軸の磁場変動大）
【図２３】磁場のＸＺ平面図（Ｚ軸の磁場変動小）
【図２４】地磁気成分の分解図
【図２５】地磁気の大きさの環境依存例を示す模式図
【図２６】地磁気の伏角を示す模式図
【図２７】磁気検出データと加速度データとの相関図
【図２８】オフセット更新処理の一例を示すフローチャート
【図２９】スマートフォンの外観図
【図３０】タブレット端末の外観図
【図３１】スマートウォッチの外観図
【図３２】車両の外観図
【発明を実施するための形態】
【００３７】
＜＜第１実施形態＞＞
以下、本発明の第１実施形態の例を、図面を参照して具体的に説明する。参照される各図において、同一の部分には同一の符号を付し、同一の部分に関する重複する説明を原則として省略する。尚、本明細書では、記述の簡略化上、情報、信号、物理量又は部材等を参照する記号又は符号を記すことによって、該記号又は符号に対応する情報、信号、物理量又は部材等の名称を省略又は略記することがある。また、後述の任意のフローチャートにおいて、任意の複数のステップにおける複数の処理は、処理内容に矛盾が生じない範囲で、任意に実行順序を変更できる又は並列に実行できる。
【００３８】
＜全体構成＞
図１は、本発明の第１実施形態に係る方位角センサ１の全体構成を示すブロック図である。方位角センサ１は、磁気検出部１０と、オフセット補正部２０と、オフセット導出部３０と、方位角演算部４０と、を有する。
【００３９】
磁気検出部１０は、方位角センサ１が存在する場所における磁気を検出する。検出対象としての磁気は、地磁気を含み、地磁気そのものであると考えても良い。磁気検出部１０は、検出対象の磁気をＸ軸、Ｙ軸、及びＺ軸の夫々において検出する３軸磁気検出部である。即ち、磁気検出部１０は、検出対象の磁気のＸ軸成分、Ｙ軸成分及びＺ軸成分を検出する磁気センサ１０Ｘ、１０Ｙ及び１０Ｚを含み、３軸の磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）を生成及び出力する。磁気検出部１０から出力されるＨｘ、Ｈｙ、Ｈｚは、夫々、磁気検出部１０にて検出された磁気のＸ軸成分、Ｙ軸成分、Ｚ軸成分を表す。Ｘ軸、Ｙ軸及びＺ軸は互いに直交する。尚、磁気センサ１０Ｘ、１０Ｙ、１０Ｚそれぞれの磁気検出素子としては、例えば、ホール素子を利用してもよいし、ＭＲ（magnetoresistance）素子を利用しても良い。
【００４０】
オフセット補正部２０は、オフセット導出部３０から供給されるオフセット値を用いて磁気検出部１０から出力された磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）を補正して補正後の磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）を出力する。この補正をオフセット補正と称する。オフセット値は、磁気検出部１０から出力された磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）に含まれるオフセット成分（ＨｘＯＦＦ，ＨｙＯＦＦ，ＨｚＯＦＦ）である。つまり、ＨｘＯＦＦ、ＨｙＯＦＦ、ＨｚＯＦＦは、夫々、磁気検出部１０から出力されるＨｘ、Ｈｙ、Ｈｚのオフセット成分である。故に、オフセット補正前の磁気検出データのＸ軸成分、Ｙ軸成分、Ｚ軸成分を夫々Ｈｘ、Ｈｙ、Ｈｚで表すと共に、オフセット補正後の磁気検出データのＸ軸成分、Ｙ軸成分、Ｚ軸成分を夫々Ｈｘｃ、Ｈｙｃ、Ｈｚｃで表したならば、“Ｈｘｃ＝Ｈｘ−ＨｘＯＦＦ”、“Ｈｙｃ＝Ｈｙ−ＨｙＯＦＦ”、“Ｈｚｃ＝Ｈｚ−ＨｚＯＦＦ”、となる。以下では、説明の明確化上、オフセット補正前の磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）を特に原磁気検出データと称することがあり、オフセット補正後の磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）を特に補正磁気検出データと称することがある。
【００４１】
オフセット導出部３０は、原磁気検出データ又は補正磁気検出データに基づきオフセット値（ＨｘＯＦＦ，ＨｙＯＦＦ，ＨｚＯＦＦ）を導出及び設定し、また必要に応じてオフセット値（ＨｘＯＦＦ，ＨｙＯＦＦ，ＨｚＯＦＦ）を更新する。
【００４２】
方位角演算部４０は、補正磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）に基づき方位角データＳｏを生成及び出力する。方位角データＳｏは、Ｘ軸、Ｙ軸及びＺ軸から成る３軸座標系（換言すれば３軸の座標空間）において、検出対象の磁気（地磁気）がどの向きを向いているのかを表す。より具体的には例えば、方位角データＳｏは、Ｘ軸の向きと地磁気の向きとの関係を表して良い。
【００４３】
磁気検出部１０は、磁気の検出を周期的に行って、次々と最新の原磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）を生成及び出力する。これに伴い、オフセット補正部２０も周期的に最新の補正磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）を生成及び出力し、方位角演算部４０も周期的に最新の方位角データＳｏを生成及び出力する。
【００４４】
尚、図１では、オフセット補正部２０、オフセット導出部３０及び方位角演算部４０を各々独立した処理ブロックとして描写したが、これらの処理ブロックは、ＣＰＵ（central processing unit）やＤＳＰ（digital signal processor）などを用いて一元的に実現されうる。
【００４５】
＜オフセット導出処理＞
図２を参照し、オフセット導出部３０にて実行可能なオフセット導出処理を説明する。図２は、当該オフセット導出処理に係る３軸の座標空間図（ＸＹＺ座標空間図）である。１つの磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）は、３軸座標系（即ちＸ軸、Ｙ軸及びＺ軸を座標軸とするＸＹＺ座標系）上の１つのデータ点として取り扱われる。オフセット導出処理では、３軸座標系上のデータ点として順次取得される３軸の磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）におけるＮ個のデータ点がＮ個の評価データ点として参照される。Ｎは２以上の任意の整数であり、図２の例では“Ｎ＝７”とされている。つまり、互いに異なる７つのデータ点Ｐ１〜Ｐ７が第１〜第７の評価データ点として参照される。尚、磁気検出部１０の精度が高ければ、参照される評価データ点の個数が少なくてもオフセット導出に関し十分な精度が得られる。
【００４６】
各評価データ点は、補正磁気検出データのデータ点であって良い。この場合、第ｉの評価データ点であるデータ点Ｐｉの座標値は、補正磁気検出データを構成する１つのデータ点の座標値（Ｈｘｉ，Ｈｙｉ，Ｈｚｉ）にて表される（ｉは整数）。即ち、データ点ＰｉのＸ軸、Ｙ軸、Ｚ軸の座標値は、補正磁気検出データを構成する１つのデータ点のＸ軸の座標値Ｈｘｉ、Ｙ軸の座標値Ｈｙｉ、Ｚ軸の座標値Ｈｚｉにて表される（ｉは整数）。
【００４７】
或いは、各評価データ点は、原磁気検出データのデータ点であって良い。この場合、第ｉの評価データ点であるデータ点Ｐｉの座標値は、原磁気検出データを構成する１つのデータ点の座標値（Ｈｘｉ，Ｈｙｉ，Ｈｚｉ）にて表される（ｉは整数）。即ち、データ点ＰｉのＸ軸、Ｙ軸、Ｚ軸の座標値は、原磁気検出データを構成する１つのデータ点のＸ軸の座標値Ｈｘｉ、Ｙ軸の座標値Ｈｙｉ、Ｚ軸の座標値Ｈｚｉにて表される（ｉは整数）。
【００４８】
データ点Ｐ１〜Ｐ７の設定後、データ点Ｐ１〜Ｐ７から任意に択一された基準データ点を３軸座標系上の原点Ｏ（０，０，０）と一致させるようにデータ点Ｐ１〜Ｐ７が一様に平行移動される。ここでは、データ点Ｐ７が基準データ点として択一されるものとする。そうすると、当該平行移動により、基準データ点Ｐ７を除いた６個の仮想データ点Ｐ１’〜Ｐ６’が導出及び設定される。仮想データ点Ｐ１’〜Ｐ６’は、夫々、平行移動後のデータ点Ｐ１〜Ｐ６を表す。
【００４９】
次に、３軸座標系において、原点Ｏを通る曲面Ｈ１と仮想データ点Ｐ１’〜Ｐ６’との距離の総和（計６つの距離の総和）を最小化させる仮想オフセット点Ｃ’が求められる。つまり、下記式（１）で表される曲面Ｈ１の関数ＦＨ１の値を最小化させる仮想オフセット点Ｃ’の座標値が算出される。ここで、Ｈｘｉ’，Ｈｙｉ’，Ｈｚｉ’は、夫々、仮想データ点Ｐｉ’のＸ軸、Ｙ軸、Ｚ軸の座標値を表し（ｉは任意の整数であって、ここでは１以上且つ（Ｎ−１）以下の整数）、Ｈｘ０’，Ｈｙ０’，Ｈｚ０’は、夫々、仮想オフセット点Ｃ’の Ｘ軸、Ｙ軸、Ｚ軸の座標値を表す。尚、ここでは、曲面Ｈ１が、仮想オフセット点Ｃ’を中心とし且つ原点Ｏを通る球面であると仮定している（故に、当該球面の半径は、原点Ｏと仮想オフセット点Ｃ’との距離に等しい）。
【００５０】
【数６】
2018004613.tif 000008
【００５１】
最後に、先の平行移動分を元に戻すように仮想オフセット点Ｃ’を平行移動することにより本来のオフセット点Ｃが算出される。つまり、データ点Ｐ７を原点Ｏへ移動させる平行移動と、同じ移動量であるが逆の向きに仮想オフセット点Ｃ’を平行移動させて得られる点がオフセット点Ｃである。Ｈｘ０、Ｈｙ０、Ｈｚ０は、夫々オフセット点ＣのＸ軸、Ｙ軸、Ｚ軸の座標値を表す。この方法によって導出された（Ｈｘ０，Ｈｙ０，Ｈｚ０）をオフセット値（ＨｘＯＦＦ，ＨｙＯＦＦ，ＨｚＯＦＦ）に代入して（即ち、オフセット値を更新して）オフセット補正部２０に供給することが可能である。但し、詳細は後述するが、導出された（Ｈｘ０，Ｈｙ０，Ｈｚ０）の有効性がオフセット導出部３０で評価され、無効と判断されると、（Ｈｘ０，Ｈｙ０，Ｈｚ０）が破棄されてオフセット値（ＨｘＯＦＦ，ＨｙＯＦＦ，ＨｚＯＦＦ）の更新は非実行とされる。以下では、オフセット値（ＨｘＯＦＦ，ＨｙＯＦＦ，ＨｚＯＦＦ）との混同を避けるため、オフセット導出処理にて導出された（Ｈｘ０，Ｈｙ０，Ｈｚ０）をオフセット仮決定値と称することがある。
【００５２】
このように、オフセット導出処理では、参照されるＮ個のデータ点のうち、任意の１点を必ず通る曲面Ｈ１を仮定し、曲面Ｈ１についての関数値を最小化させるためのパラメータを残りの（Ｎ−１）個のデータ点から推定する。従って、球面に関する方程式を直接的に用いてオフセット値を算出するような方法（例えば特許第４３９１４１６号公報に記載の方法）と異なり、複雑な演算（平均値演算など）を必要としないので、オフセット値導出に要する演算量が低減され、高速且つ継続的にオフセットをキャンセルすることが可能となる。
【００５３】
尚、３軸の磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）をオフセット補正対象とした場合のオフセット導出処理方法を説明したが、当該方法は、２軸の磁気検出データ（Ｈｘ，Ｈｙ）をオフセット補正対象とした場合にも適用可能である。２軸の磁気検出データ（Ｈｘ，Ｈｙ）をオフセット補正対象とする場合には、データ点Ｐ１〜Ｐ７、仮想データ点Ｐ１’〜 Ｐ６’、仮想オフセット点Ｃ’及びオフセット点ＣにおけるＺ軸の座標値を全てゼロとみなし、Ｘ軸及びＹ軸に平行な二次元平面座標系において当該方法を適用すれば良い。
【００５４】
つまり、以下のようにすれば良い。１つの磁気検出データ（Ｈｘ，Ｈｙ）は、２軸座標系（即ちＸ軸及びＹ軸を座標軸とするＸＹ座標系）上の１つのデータ点として取り扱われる。２軸座標系上のデータ点として順次取得される２軸の磁気検出データ（Ｈｘ，Ｈｙ）について、Ｎ個のデータ点がＮ個の評価データ点として参照される。各評価データ点は、補正磁気検出データのデータ点であって良い。この場合、第ｉの評価データ点であるデータ点Ｐｉの座標値は、補正磁気検出データを構成する１つのデータ点の座標値（Ｈｘｉ，Ｈｙｉ）にて表される（ｉは整数）。即ち、データ点ＰｉのＸ軸、Ｙ軸の座標値は、補正磁気検出データを構成する１つのデータ点のＸ軸の座標値Ｈｘｉ、Ｙ軸の座標値Ｈｙｉにて表される（ｉは整数）。或いは、各評価データ点は、原磁気検出データのデータ点であって良い。この場合、第ｉの評価データ点であるデータ点Ｐｉの座標値は、原磁気検出データを構成する１つのデータ点の座標値（Ｈｘｉ，Ｈｙｉ）にて表される（ｉは整数）。即ち、データ点ＰｉのＸ軸、Ｙ軸の座標値は、原磁気検出データを構成する１つのデータ点のＸ軸の座標値Ｈｘｉ、Ｙ軸の座標値Ｈｙｉにて表される（ｉは整数）。
【００５５】
データ点Ｐ１〜Ｐ７の設定後、データ点Ｐ１〜Ｐ７から任意に択一された基準データ点を２軸座標系上の原点Ｏ（０，０）と一致させるように、データ点Ｐ１〜Ｐ７が一様に平行移動される。評価データ点Ｐ７が基準データ点として択一されたことを想定する。すると、当該平行移動により、２軸座標系上において、基準データ点Ｐ７を除いた６個の仮想データ点Ｐ１’〜Ｐ６’が導出及び設定される。
【００５６】
次に、２軸座標系において、原点Ｏを通る曲線Ｈ２と仮想データ点Ｐ１’〜Ｐ６’との距離の総和（計６つの距離の総和）を最小化させる仮想オフセット点Ｃ’が求められる。つまり、下記式（２）で表される曲線Ｈ２の関数ＦＨ２の値を最小化させる仮想オフセット点Ｃ’の座標値が算出される。ここで、Ｈｘｉ’，Ｈｙｉ’は、夫々、仮想データ点Ｐｉ’のＸ軸、Ｙ軸の座標値を表し（ｉは任意の整数であって、ここでは１以上且つ（Ｎ−１）以下の整数）、Ｈｘ０’，Ｈｙ０’は、夫々、仮想オフセット点Ｃ’の Ｘ軸、Ｙ軸の座標値を表す。尚、ここでは、曲線Ｈ２が、仮想オフセット点Ｃ’を中心とし、且つ、原点Ｏを通る円であると仮定している（故に、当該円の半径は、原点Ｏと仮想オフセット点Ｃ’との距離に等しい）。
【００５７】
【数７】
2018004613.tif 000009
【００５８】
最後に、先の平行移動分を元に戻すように仮想オフセット点Ｃ’を平行移動することにより、本来のオフセット点Ｃが算出される。つまり、データ点Ｐ７を原点Ｏへ移動させる平行移動と、同じ移動量であるが逆の向きに仮想オフセット点Ｃ’を平行移動させて得られる点がオフセット点Ｃである。Ｈｘ０、Ｈｙ０は、夫々、オフセット点ＣのＸ軸、Ｙ軸の座標値を表す。この方法によって導出された（Ｈｘ０，Ｈｙ０）をオフセット値（ＨｘＯＦＦ，ＨｙＯＦＦ）に代入して（即ち、オフセット値を更新して）オフセット補正部２０に供給することが可能である。但し、３軸で考えた場合と同様、導出された（Ｈｘ０，Ｈｙ０）の有効性がオフセット導出部３０で評価され、無効と判断されると、（Ｈｘ０，Ｈｙ０）が破棄されてオフセット値（ＨｘＯＦＦ，ＨｙＯＦＦ）の更新は非実行とされる。以下では、オフセット値（ＨｘＯＦＦ，ＨｙＯＦＦ）との混同を避けるため、オフセット導出処理にて導出された（Ｈｘ０，Ｈｙ０）をオフセット仮決定値と称することがある。
【００５９】
＜オフセット値更新に関わる動作フロー＞
図３を参照し、方位角センサ１におけるオフセット値の更新に関わる動作の流れを説明する。図３は、当該動作の流れを示すフローチャートである。尚、以下では、特に記述無き限り、方位角センサ１では３軸座標系上の磁気検出データが取り扱われるものとする。方位角センサ１にて２軸座標系上の磁気検出データを取り扱う場合には、磁気検出データ及びオフセット値に関するＺ軸成分が常にゼロであると考えれば良い。
【００６０】
図３の動作では、まずステップＳ１１において初期値決定処理が実行され、初期値決定処理により、その場の磁気の大きさ｜Ｍ｜が導出される。その場の磁気の大きさは、方位角センサ１の存在位置における磁気の大きさを表し、方位角センサ１の存在位置における地磁気の大きさであると推定される。初期値決定処理では、地磁気の大きさの推定初期値が求められることになる。
【００６１】
図４は、初期値決定処理のフローチャートである。初期値決定処理は、ステップＳ３１〜Ｓ３４の処理から成る。方位角センサ１又は方位角センサ１を備えた任意の機器（後述の電子機器を含む）には、方位角センサ１または当該機器のユーザから所定操作の入力を受ける操作部（ボタンスイッチ、タッチパネルなど；不図示）が設けられている。ステップＳ３１では、ユーザから所定の開始操作が当該操作部に入力される。この入力後、ユーザは、ステップＳ３２において方位角センサ１をスイング運動させ、その後のステップＳ３３において所定の終了操作を操作部に入力する。終了操作の入力を受けると、ステップＳ３４において、オフセット導出部３０により、その場の磁気の大きさ｜Ｍ｜が導出される。方位角センサ１のスイング運動は、方位角センサ１を備えた任意の機器のスイング運動とも読み替えられる。
【００６２】
方位角センサ１のスイング運動とは、実空間上に固定された１つの軸（例えば地磁気の向きに平行な軸）と、方位角センサ１にて定義されたＸ軸、Ｙ軸及びＺ軸の夫々との関係が様々に変化するよう、所謂例えば８の字動作の如く、方位角センサ１を自由にスイングさせる所定の運動を指す。１つの典型例としては、方位角センサ１又は方位角センサ１を備えた任意の機器を水平方向に伸ばしたユーザの腕に固定した状態で、ユーザの重心周りに当該腕を水平面に沿って一周させる運動（図５Ａ参照）と、方位角センサ１又は方位角センサ１を備えた任意の機器をユーザの腕に固定した状態で、ユーザの肩を通り且つ水平方向に平行な軸を回転軸として当該腕を鉛直面に沿って一周させる運動（図５Ｂ参照）との組み合わせで、スイング運動が形成されても良い。例えば、図６Ａ及び図６Ｂに示す如く、スイング運動の中で、地磁気のベクトルがＸ軸及びＹ軸に平行な平面内でＺ軸周りに１周したならば、その１周の過程において、Ｈｘ及びＨｙの夫々は、正弦波状に変化して極大値と極小値をとる。
【００６３】
オフセット導出部３０は、開始操作の入力時点から終了操作の入力時点までの区間を、初期値決定用データ区間として設定する。或いは、開始操作の入力時点から所定時間（例えば１０秒）が経過した時点までの区間が初期値決定用データ区間として設定されても良い。この場合、ステップＳ３３における終了操作の入力は不要である。オフセット導出部３０は、初期値決定用データ区間において周期的に取得された原磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）の集まりを初期値決定用データ群として参照して、初期値決定用データ群に含まれる全てのＸ軸データＨｘの内の最大値Ｈｘｍａｘ及び最小値Ｈｘｍｉｎを特定し、且つ、初期値決定用データ群に含まれる全てのＹ軸データＨｙの内の最大値Ｈｙｍａｘ及び最小値Ｈｙｍｉｎを特定し、且つ、初期値決定用データ群に含まれる全てのＺ軸データＨｚの内の最大値Ｈｚｍａｘ及び最小値Ｈｚｍｉｎを特定した後、下記式（３）に従い、磁気の大きさ｜Ｍ｜を算出する。ここで、ｍａｘ｛  ｝は、｛  ｝内に示された複数の引数（変数）の中の最大値を返す演算子を表す。従って（Ｈｘｍａｘ−Ｈｘｍｉｎ）と（Ｈｙｍａｘ−Ｈｙｍｉｎ）と（Ｈｚｍａｘ−Ｈｚｍｉｎ）の内の最大値の１／２が｜Ｍ｜として算出される。
【００６４】
【数８】
2018004613.tif 000010
【００６５】
尚、Ｈｘ、Ｈｙ及びＨｚの夫々は、正と負の値をとる一次元量である。地磁気のベクトルのＸ軸成分が３軸座標系の原点からＸ軸の正の向き、負の向きに伸びているとき、検出されたＨｘは、夫々、正の値、負の値を持つ。Ｈｙ及びＨｚについても同様である。スイング運動が適切に行われたのであれば、多くの場合、Ｈｘｍａｘ、Ｈｙｍａｘ及びＨｚｍａｘの夫々は正の値を持つと共にＨｘｍｉｎ、Ｈｙｍｉｎ及びＨｚｍｉｎの夫々は負の値を持ち、理想的には、（Ｈｘｍａｘ−Ｈｘｍｉｎ）と（Ｈｙｍａｘ−Ｈｙｍｉｎ）と（Ｈｚｍａｘ−Ｈｚｍｉｎ）は全てその場の地磁気の大きさと一致する。尚、オフセットの大きさによっては、ＨｘｍａｘとＨｘｍｉｎが同符号の値を持つこともある（Ｈｙｍａｘ及びＨｙｍｉｎについても同様であり、Ｈｚｍａｘ及びＨｚｍｉｎについても同様）。
【００６６】
図３の説明に戻る。ステップＳ１１において、その場の磁気の大きさ｜Ｍ｜が導出されるとステップＳ１２に進む。尚、ＧＰＳ（global positioning system）を利用するなどして、その場の磁気の大きさが規定値として方位角センサ１に与えられている場合には、その規定値を｜Ｍ｜として取り扱ってステップＳ１２以降の処理を行うようにしても良い（この場合、ステップＳ１１の処理は不要となる）。ステップＳ１２において、オフセット導出部３０は、導出された磁気の大きさ｜Ｍ｜に基づき、オフセット導出処理が良好に実施されたかを判定するための校正成功範囲を設定する。校正成功範囲は後に更新されることになるが、ステップＳ１２では初期の校正成功範囲が設定される。例えば、（｜Ｍ｜−Δ）を下限とし且つ（｜Ｍ｜＋Δ）を上限とする範囲が初期の校正成功範囲として設定される。或いは例えば、（｜Ｍ｜−ｋ｜Ｍ｜）を下限とし且つ（｜Ｍ｜＋ｋ｜Ｍ｜）を上限とする範囲が初期の校正成功範囲として設定される。ここで、Δは正の所定値を持ち、ｋは１未満の正の所定値（例えば０．１）を持つ。検出対象となる地磁気の大きさ（一般には２０〜８０μＴ、日本の屋外では４０〜５０μＴ）に応じてΔの値を適切に設定しておくと良い。
【００６７】
ステップＳ１２の後、ステップＳ１３に進む。ステップＳ１３において、オフセット導出部３０は、所定のオフセット校正条件が充足しているか否かを判定する。
【００６８】
図７は、オフセット校正条件が充足しているか否かを判定するために、オフセット導出部３０によって実行されるオフセット校正条件判定処理のフローチャートである。オフセット校正条件判定処理は、ステップＳ５１〜Ｓ５７から成り、まずステップＳ５１において、最大値探索データＨｘＡ、ＨｙＡ、ＨｚＡ及び最小値探索データＨｘＢ、ＨｙＢ、ＨｚＢに、全てゼロを代入する。続くステップＳ５２において、オフセット導出部３０は最新の磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）を取得する。ステップＳ５２において取得される磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）は、補正磁気検出データであるが、原磁気検出データであっても良い。なお、図３のステップＳ１７の処理が一度も行われていない状況においては、オフセット値（ＨｘＯＦＦ，ＨｙＯＦＦ，ＨｚＯＦＦ）は（０，０，０）であり、故に、補正磁気検出データと原磁気検出データは互いに等しくなる。
【００６９】
その後、ステップＳ５３〜Ｓ５５において、オフセット導出部３０は、ステップＳ５２で取得した磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）を参照して、
“Ｈｘ＞ＨｘＡ”ならＨｘをＨｘＡに代入する一方で “Ｈｘ＜ＨｘＢ”ならＨｘをＨｘＢに代入し、且つ、
“Ｈｙ＞ＨｙＡ”ならＨｙをＨｙＡに代入する一方で “Ｈｙ＜ＨｙＢ”ならＨｙをＨｙＢに代入し、且つ、
“Ｈｚ＞ＨｚＡ”ならＨｚをＨｚＡに代入する一方で “Ｈｚ＜ＨｚＢ”ならＨｚをＨｚＢに代入する。
【００７０】
そしてステップＳ５６において、オフセット導出部３０は、第１不等式“（ＨｘＡ−ＨｘＢ）≧ＴＨｘ、第２不等式“（ＨｙＡ−ＨｙＢ）≧ＴＨｙ”及び第３不等式“（ＨｚＡ−ＨｚＢ）≧ＴＨｚ”の成否を判定し、第１〜第３不等式が全て成立する場合に限ってオフセット校正条件が充足したと判定して（ステップＳ５７）オフセット校正条件判定処理を終え、そうでない場合にはステップＳ５２に戻る。ＴＨｘ、ＴＨｙ及びＴＨｚは所定の正の閾値である。即ち、ステップＳ５２〜Ｓ５６の繰り返しの中で、オフセット校正条件判定処理を開始してからの、磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）のＸ軸成分の最大値ＨｘＡ及び最小値ＨｘＢ、Ｙ軸成分の最大値ＨｙＡ及び最小値ＨｙＢ並びにＺ軸成分の最大値ＨｚＡ及び最小値ＨｚＢが探索及び更新され、Ｘ軸、Ｙ軸及びＺ軸の夫々について、最大値及び最小値間の差分値が所定の閾値以上となったときにオフセット校正条件が充足したと判定される。
【００７１】
閾値ＴＨｘ、ＴＨｙ及びＴＨｚは、検出対象となる地磁気の大きさ（一般には２０〜８０μＴ、日本では４０〜５０μＴ）を考慮して、例えば３０μＴ程度に設定することが望ましい。また、閾値ＴＨｘ、ＴＨｙ及びＴＨｚは、互いに同じ値を有していても良いし、互いに異なる値を有していても良い。
【００７２】
図３を再度参照し、オフセット校正条件が充足するまでステップＳ１３の判定が繰り返され（ステップＳ１３のＮ）、オフセット校正条件が充足すると（ステップＳ１３のＹ）ステップＳ１４に進み、上述のオフセット導出処理が実行される。つまり、Ｘ軸、Ｙ軸及びＺ軸の夫々について最大値及び最小値間の差分値が所定の閾値（ＴＨｘ、ＴＨｙ、ＴＨｚ）以上となったときに、オフセット導出処理での使用に適した評価データ点群（３軸の座標空間内において、オフセット点Ｃを中心に比較的均等に分散したデータ点群）が集まったという判断の下、オフセット導出処理が実行される。このようなアルゴリズムを採用することにより、局所的に偏在しているデータ点群から不適切なオフセット導出結果が得られるといった事態の発生を抑制することができるので、オフセット導出処理の信頼性を高めることが可能となる。
【００７３】
なお、オフセット校正条件が充足されたときにおいて、各軸の最大値ＨｘＡ、ＨｙＡ、ＨｚＡを与えるデータ点（ＨｘＡ、Ｈｙ，Ｈｚ）、（Ｈｘ、ＨｙＡ，Ｈｚ）、（Ｈｘ、Ｈｙ，ＨｚＡ）を最大データ点と称し、各軸の最小値ＨｘＢ、ＨｙＢ、ＨｚＢを与えるデータ点（ＨｘＢ、Ｈｙ，Ｈｚ）、（Ｈｘ、ＨｙＢ，Ｈｚ）、（Ｈｘ、Ｈｙ，ＨｚＢ）を最小データ点と称する。図８に、例として、Ｘ軸についての最大データ点ＰｘＡと最小データ点ＰｘＢを示す。
【００７４】
ステップＳ１４でのオフセット導出処理において、７つの評価データ点の内の６つは、ＨｘＡ、ＨｙＡ、ＨｚＡ、ＨｘＢ、ＨｙＢ、ＨｚＢを与える６つのデータ点である。すなわち、上記第１〜第３不等式が全て成立したときにおける、ＨｘＡ、ＨｘＢをＸ軸成分として持つ磁気検出データ（ＨｘＡ，Ｈｙ，Ｈｚ）、（ＨｘＢ，Ｈｙ，Ｈｚ）を第１、第２の評価データ点とし、ＨｙＡ、ＨｙＢをＹ軸成分として持つ磁気検出データ（Ｈｘ，ＨｙＡ，Ｈｚ）、（Ｈｘ，ＨｙＢ，Ｈｚ）を第３、第４の評価データ点とし、ＨｚＡ、ＨｚＢをＺ軸成分として持つ磁気検出データ（Ｈｘ，Ｈｙ，ＨｚＡ）、（Ｈｘ，Ｈｙ，ＨｚＢ）を第５、第６の評価データ点とする。第１、第３、第５の評価データ点は、夫々、Ｘ軸、Ｙ軸、Ｚ軸についての最大データ点であり、第２、第４、第６の評価データ点は、夫々、Ｘ軸、Ｙ軸、Ｚ軸についての最小データ点である。つまり、ステップＳ１４のオフセット導出処理で実際の演算に供されるデータ点は、３軸の最大データ点及び最小データ点から成る第１〜第６の評価データ点と、それらと異なる任意の１点（先述の基準データ点に相当）のみである。従って、オフセット導出部３０には、合計７点分のレジスタを用意しておけば足りるので、回路規模又はソフトウェアコードサイズは小さくて済む。
【００７５】
ステップＳ１４でのオフセット導出処理にて参照される第１〜第６の評価データ点としての磁気検出データは、図７のステップＳ５２にて取得されたものであるので、補正磁気検出データ又は原磁気検出データである。第１〜第６の評価データ点が補正磁気検出データにおけるデータ点である場合には、第７の評価データ点も補正磁気検出データにおけるデータ点とされ、第１〜第６の評価データ点が原磁気検出データにおけるデータ点である場合には、第７の評価データ点も原磁気検出データにおけるデータ点とされる。
【００７６】
図９は、原点Ｏ（０，０，０）に平行移動される基準データ点の一選択例を示すタイムチャートである。図９において、黒丸印は、３軸の最大値又は最小値に対応する最大データ点又は最小データ点（合計６点）を示しており、白丸印は、それら以外のデータ点を示している。例えば、図９で示したように、データ点Ｐ１からデータ点Ｐｍまで３軸の最大値及び最小値を探索し続けた結果（ｍは整数）、データ点Ｐｍを取得した時点で上記第１〜第３不等式が成立して３軸の最大データ点と最小データ点が全て確定した場合、基準データ点の選択アルゴリズムを最も容易とする観点から言えば、データ点Ｐｍの直後に取得されるデータ点Ｐｍ＋１を基準データ点（即ち第７の評価データ点）として選択することが望ましい。但し、データ点Ｐ１〜Ｐｍ−１の何れか１点（最大データ点と最小データ点を除く）を基準データ点として選択することも可能である。
【００７７】
図３の説明に戻り、ステップＳ１４のオフセット導出処理では、第１〜第７の評価データ点に基づきオフセット仮決定値（Ｈｘ０，Ｈｙ０，Ｈｚ０）が導出される。第１〜第７の評価データ点は、図２においてはデータ点Ｐ１〜Ｐ７に相当するものである。オフセット仮決定値の意義及び導出方法は既に述べた通りである。
【００７８】
ステップＳ１４に続くステップＳ１５において、オフセット導出部３０は、最新の原磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）とオフセット仮決定値（Ｈｘ０，Ｈｙ０，Ｈｚ０）に基づき、下記式（４）に従って、その場の磁気の大きさ｜Ｍ’｜を求める。第１〜第７評価データ点が原磁気検出データのデータ点である場合には、第１〜第７評価データ点の何れかのデータ（Ｈｘ，Ｈｙ，Ｈｚ）とオフセット仮決定値（Ｈｘ０，Ｈｙ０，Ｈｚ０）に基づき、｜Ｍ’｜を求めても良い。第１〜第７評価データ点が補正磁気検出データのデータ点である場合には、第１〜第７評価データ点の何れかに対応する原磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）とオフセット仮決定値（Ｈｘ０，Ｈｙ０，Ｈｚ０）に基づき、｜Ｍ’｜を求めても良い。｜Ｍ’｜は、オフセット仮決定値が真のオフセット値であるとみなしたときの、その場の磁気の大きさを表している。オフセット仮決定値を真のオフセット値とみなしたとき、オフセット補正後の磁気検出データは、（Ｈｘ−Ｈｘ０，Ｈｙ−Ｈｙ０，Ｈｚ−Ｈｚ０）となるので、磁気の大きさ｜Ｍ’｜は下記式（４）により表されることになる。
【００７９】
【数９】
2018004613.tif 000011
【００８０】
上述のオフセット校正条件判定処理を経て設定された評価データ点群は、オフセット導出処理での使用に適した評価データ点群（３軸の座標空間内において、オフセット点Ｃを中心に比較的均等に分散したデータ点群）であることが期待される。しかしながら、設定された評価データ点群に不適当なデータ点（例えば、電気的なノイズや外来磁場の影響を瞬間的に強く受けたデータ点）が混入することもあり、そのような場合には、オフセット仮決定値と真のオフセット値との誤差が大きくなる。オフセット仮決定値と真のオフセット値との誤差が大きくなると、｜Ｍ’｜が異常に大きくなったり異常に小さくなったりする。一方、検出対象の地磁気の大きさは、比較的短い時間内ではあまり変化しないと考えられ、当該大きさが変化するとしても当該大きさは連続的に且つ徐々に変化すると考えられる。よって、前回導出された磁気の大きさから見て今回導出された磁気の大きさが大きく変動している場合においては、オフセット仮決定値と真のオフセット値との誤差が許容範囲を超えて大きいと判断することができる。
【００８１】
当該誤差が許容範囲内にあるか否かを判断するべく、ステップＳ１５に続くステップＳ１６において、オフセット導出部３０は、｜Ｍ’｜が校正成功範囲内に収まっているか否かを判断する。後述のステップＳ１７の更新処理が１度も行われていない状況下においては、ステップＳ１２に設定された校正成功範囲がステップＳ１６にて用いられる。ステップＳ１５で求めた｜Ｍ’｜が校正成功範囲内にある場合には（ステップＳ１６のＹ）ステップＳ１７に進み、ステップＳ１５で求めた｜Ｍ’｜が校正成功範囲を逸脱する場合には（ステップＳ１６のＮ）ステップＳ１８に進む。例えば、校正成功範囲の下限及び上限が夫々“｜Ｍ｜−Δ”及び“｜Ｍ｜＋Δ”であるならば、不等式“｜Ｍ｜−Δ≦｜Ｍ’｜≦｜Ｍ｜＋Δ”の成立時にステップＳ１７に進み、該不等式の不成立時にステップＳ１８に進むことになる。
【００８２】
ステップＳ１７において、オフセット導出部３０は、オフセット導出処理で求めたオフセット仮決定値（Ｈｘ０，Ｈｙ０，Ｈｚ０）の精度が良好であると判断して（当該オフセット仮決定値が有効であると判断して）、オフセット補正部２０に供給するオフセット値（ＨｘＯＦＦ，ＨｙＯＦＦ，ＨｚＯＦＦ）をオフセット仮決定値（Ｈｘ０，Ｈｙ０，Ｈｚ０）にて更新するとともに、ステップＳ１５で求めた磁気の大きさ｜Ｍ’｜に基づいて、校正成功範囲も更新する。具体的には、例えば、校正成功範囲の下限及び上限が夫々（｜Ｍ’｜−Δ）及び（｜Ｍ’｜＋Δ）に更新される、或いは、校正成功範囲の下限及び上限が夫々（｜Ｍ’｜−ｋ｜Ｍ’｜）及び（｜Ｍ’｜＋ｋ｜Ｍ’｜）に更新される。ステップＳ１７によるオフセット値及び校正成功範囲の更新後、ステップＳ１３に戻る。
【００８３】
ステップＳ１８において、オフセット導出部３０は、オフセット導出処理で求めたオフセット仮決定値（Ｈｘ０，Ｈｙ０，Ｈｚ０）の精度が良好でないと判断して（当該オフセット仮決定値が無効であると判断して）、オフセット補正部２０に供給するオフセット値（ＨｘＯＦＦ，ＨｙＯＦＦ，ＨｚＯＦＦ）を更新することなく、導出したオフセット仮決定値（Ｈｘ０，Ｈｙ０，Ｈｚ０）を破棄し、また校正成功範囲の更新も行わない。ステップＳ１８によるオフセット仮決定値の破棄の後、ステップＳ１３に戻る。
【００８４】
ステップＳ１７又はＳ１８を経てステップＳ１３に戻った際、オフセット校正条件の充足／不充足の判定が再び行われるが、当該判定を行うためのオフセット校正条件判定処理（図７参照）は、ステップＳ５１から開始される（すなわち、ＨｘＡ等がゼロにリセットされる）。
【００８５】
ステップＳ１３〜Ｓ１７の繰り返しによって、オフセット値（ＨｘＯＦＦ，ＨｙＯＦＦ，ＨｚＯＦＦ）及び校正成功範囲は次々と更新されてゆく。図１０に示す如く、第ｊ回目の更新より校正成功範囲は第ｊの校正成功範囲から第（ｊ＋１）の校正成功範囲へと更新されることになる（ｊは自然数）。或る特定のタイミングで求めた｜Ｍ’｜が校正成功範囲内に収まることによって第ｊ回目の更新が行われたとするならば、特定のタイミングで求めた｜Ｍ’｜（即ち、第ｊ回目の更新の際に求めた｜Ｍ’｜）に基づき第（ｊ＋１）の校正成功範囲が設定されることになる。具体的には、第（ｊ＋１）の校正成功範囲は、特定のタイミングで求めた｜Ｍ’｜を内包する範囲とされる。上記方法では、第（ｊ＋１）の校正成功範囲の中心が特定のタイミングで求めた｜Ｍ’｜となるが、第（ｊ＋１）の校正成功範囲の中心が特定のタイミングで求めた｜Ｍ’｜から若干ずれることが有り得ても良い。
【００８６】
本実施形態に係る方法によれば、時間的にも空間的にも絶えず変化する方位角センサ１のオフセットが高速且つ継続的にキャンセルし続けられるので、方位角を精度良く検出することが可能となる。この際、オフセット導出処理の導出結果の精度がノイズ（電気的なノイズ、外来磁場による磁気的なノイズ）等の影響によって一時的に良好でなくなった場合には、オフセット導出処理の導出結果（即ちオフセット仮決定値）が破棄されて実際のオフセット補正に利用されないので、一時的であってもオフセット値の精度（ひいては方位角の精度）が劣化することが回避される。
【００８７】
尚、上記のステップＳ１４では、３軸の最大データ点及び最小データ点の何れでもない任意の１点を基準データ点として選択しているが、基準データ点は、３軸の最大データ点及び最小データ点の内の何れか１点であっても構わない。このような構成であれば、オフセット導出処理で実際の演算に供されるデータ点を一つ減らすことができるので、回路規模又はソフトウェアコードサイズを更に縮小することが可能となる。但し、本構成を採用した場合、３軸の最大データ点及び最小データ点の分布状態によっては、オフセット算出精度の低下を招くおそれがある。
【００８８】
図１１は、３軸の最大データ点及び最小データ点の何れかを基準データ点として選択する場合の留意点について説明するための３軸の座標空間図である。外来磁場などの影響により、３軸の最大データ点及び最小データ点のうち、何れか一つ（図１１では、Ｘ軸成分の最大値ＨｘＡ）が他から大きく乖離する場合がある。他から大きく乖離した最大データ点又は最小データ点が基準データ点として選択されると、基準データ点を原点Ｏと一致させるための平行移動量が本来の値から大きく乖離してしまう。その結果、オフセット導出処理により正しいオフセット点Ｃを得ることが難しくなり得る。このような不具合を回避するためには、例えば、３軸の最大データ点及び最小データ点を規定する最大値ＨｘＡ、ＨｙＡ及びＨｚＡ並びに最小値ＨｘＢ、ＨｙＢ及びＨｚＢの絶対値の内、最も大きい絶対値に対応するデータ点及び最も小さい絶対値に対応するデータ点については、基準データ点の選択候補から除外するなどの対策を講じることが望ましい。
【００８９】
図１２に、オフセット導出部３０の内部ブロック図を示す。オフセット導出部３０は、ステップＳ１１及びＳ１２の各処理を実行する初期設定部３１と、ステップＳ１３の処理（従って図７のオフセット校正条件判定処理）を実行するオフセット校正条件判定部３２と、ステップＳ１４の処理を実行する仮決定値導出部３３と、ステップＳ１５〜Ｓ１８の処理を実行する更新部３４と、を備えていると考えることができる。
【００９０】
尚、上述のオフセット導出処理は、原磁気検出データ又は補正磁気検出データにおける複数のデータ点を用いてオフセット仮決定値を導出する一方法に過ぎない。原磁気検出データ又は補正磁気検出データにおける複数のデータ点を用いて原磁気検出データに対するオフセット値を導出する他の任意の方法（例えば特許第４３９１４１６号公報に記載の方法）を用いて、本実施形態におけるオフセット仮決定値を導出するようにしても良い。
【００９１】
＜電子機器への適用＞
方位角センサ１を、電子機器などの任意の機器に搭載することができる。方位角センサ１を備える電子機器は、例えば、携帯電話機（所謂スマートフォンに分類される携帯電話機を含む）、携帯情報端末（所謂タブレット端末に分類される携帯情報端末を含む）、時計（所謂スマートウォッチに分類される時計を含む）、デジタルカメラ、又は、歩数計である。図２９、図３０及び図３１に、各々に方位角センサ１を備えたスマートフォン１００、タブレット端末２００及びスマートウォッチ３００の外観図を示す。電子機器の電子コンパスとして、方位角センサ１を搭載することにより、電子機器及びユーザの向いている向き（より具体的には例えばＸ軸の向きと地磁気の向きとの関係）を正確に検出することができる。特に、ＧＰＳ（global positioning system）と電子コンパスを併用すれば、地図アプリケーションソフトウェアやナビゲーションアプリケーションソフトウェアでの位置検出精度を高めることが可能となる。
【００９２】
＜本発明の考察＞
上述の第１実施形態にて具体化された本発明について考察する。
【００９３】
本発明の一側面に係るオフセット導出装置Ｗ１は、３軸又は２軸での磁気の検出により３軸座標系又は２軸座標系上のデータ点として順次取得される原磁気検出データを補正して補正磁気検出データを生成するためのオフセット値を導出するオフセット導出装置（３０）であって、前記原磁気検出データ又は前記補正磁気検出データにおける複数のデータ点（第１〜第Ｎの評価データ点：例えばＰ１〜Ｐ７）を用いて前記オフセット値の仮決定値（オフセット仮決定値）を導出する仮決定値導出部（３３）と、前記原磁気検出データ及び前記仮決定値に基づき前記磁気の大きさ（｜Ｍ’｜）を導出し、導出した前記磁気の大きさが所定の基準範囲（校正成功範囲）内にある場合には前記仮決定値にて前記オフセット値を更新する一方（ステップＳ１７）、そうでない場合には前記オフセット値の更新を非実行とする（ステップＳ１８）更新部（３４）と、を備えたことを特徴とする。
【００９４】
磁気検出結果にはオフセットが含まれていることが多く、オフセットは時間的にも空間的にも絶えず変化する。時間的にも空間的にも絶えず変化するオフセットをキャンセルし続けるためには、補正磁気検出データを生成するためのオフセット値を次々と更新してゆく必要がある。しかしながら、オフセット値を導出する際、導出結果の精度がノイズ等の影響によって一時的に良好でなくなることがあり、このような場合にもオフセット値の更新を行ったならば、オフセット値による補正を経た補正磁気検出データの誤差（真値との誤差）が大きくなる。
【００９５】
オフセット導出装置Ｗ１によれば、複数のデータ点を用いてオフセット値の仮決定値を導出した後、原磁気検出データ及び仮決定値に基づき磁気の大きさの導出を介して仮決定値の妥当性を判断することができ、仮決定値が妥当である場合（即ち導出した磁気の大きさが所定の基準範囲内にある場合）にはオフセット値を更新し、妥当でない場合にはオフセット値の更新を非実行とすることができる。このため、一時的であってもオフセット値の精度が劣化することが抑制される。
【００９６】
＜変形等＞
本発明の実施形態は、特許請求の範囲に示された技術的思想の範囲内において、適宜、種々の変更が可能である。以上の実施形態は、あくまでも、本発明の実施形態の例であって、本発明ないし各構成要件の用語の意義は、以上の実施形態に記載されたものに制限されるものではない。上述の説明文中に示した具体的な数値は、単なる例示であって、当然の如く、それらを様々な数値に変更することができる。
【００９７】
本発明に係るオフセット導出装置としての又は電子機器としての対象装置を、ソフトウェア、集積回路等のハードウェア、或いは、ハードウェアとソフトウェアの組み合わせによって構成することができる。対象装置にて実現される機能の全部又は一部である任意の特定の機能をプログラムとして記述して、該プログラムを対象装置に搭載可能なフラッシュメモリ等に保存しておいても良い。そして、該プログラムをプログラム実行装置（例えば、対象装置に搭載可能なマイクロコンピュータ）上で実行することによって、その特定の機能を実現するようにしてもよい。上記プログラムは任意の記録媒体に記憶及び固定されうる。上記プログラムを記憶及び固定する記録媒体は対象装置と異なる機器（サーバ機器等）に搭載又は接続されても良い。
【００９８】
＜＜第２実施形態＞＞
次に、本発明の第２実施形態について詳細に説明する。
【００９９】
＜全体構成＞
図１３は、本発明の第２実施形態に係る方位角センサ１００１の全体構成を示すブロック図である。本構成例の方位角センサ１００１は、磁気検出部１０１０と、オフセット補正部１０２０と、オフセット算出部１０３０と、方位角演算部１０４０と、を有する。
【０１００】
磁気検出部１０１０は、Ｘ軸方向の磁気を検出する磁気センサ１０１０Ｘと、Ｙ軸方向の磁気を検出する磁気センサ１０１０Ｙと、Ｚ軸方向の磁気を検出する磁気センサ１０１０Ｚを含み、３軸の磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）を生成する。なお、磁気センサ１０１０Ｘ、１０１０Ｙ、１０１０Ｚそれぞれの磁気検出素子としては、例えば、ホール素子を利用してもよいし、ＭＲ［magnetoresistance］素子を利用してもよい。また、Ｘ軸、Ｙ軸、Ｚ軸は、互いに直交するように設計すればよい。
【０１０１】
オフセット補正部１０２０は、オフセット算出部１０３０で算出したオフセット値（＝３軸の磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）に各々含まれるオフセット成分（Ｈｘ０，Ｈｙ０，Ｈｚ０））を用いて磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）を補正する。オフセット補正処理によりＨｘ←Ｈｘ−Ｈｘ０、Ｈｙ←Ｈｙ−Ｈｙ０、Ｈｙ←Ｈｚ−Ｈｚ０となる。
【０１０２】
オフセット算出部１０３０は、オフセット補正済である磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）を常時監視し、磁気検出部１０１０のオフセット値（Ｈｘ０，Ｈｙ０，Ｈｚ０）を逐次更新する。オフセット算出処理（オフセット更新処理）については後ほど詳述する。
【０１０３】
方位角演算部１０４０は、オフセット補正済みの磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）から方位角データＳｏを生成する。
【０１０４】
なお、本図では、オフセット補正部１０２０、オフセット算出部１０３０、及び、方位角演算部１０４０をそれぞれ独立した処理ブロックとして描写したが、これらの処理ブロックは、ＣＰＵ［central processing unit］やＤＳＰ［digital signal processor］などを用いて一元的に実装することができる。
【０１０５】
＜オフセット算出処理（第１例）＞
図１４は、オフセット算出部１０３０におけるオフセット算出処理の第１例を示すＸＹＺ座標空間図である。第１例のオフセット算出処理では、３軸座標空間のデータ点として順次取得される３軸の磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）について、Ｎ個のデータ点（ただしＮ≧２であり、本図の例ではデータ点Ｐ１〜Ｐ７の合計７点（Ｎ＝７））が参照される。なお、磁気検出部１０１０の精度が高ければ、データ点数を不要に増やさなくても十分なオフセット算出精度が得られる。
【０１０６】
次に、データ点Ｐ１〜Ｐ７から任意に択一された基準データ点を原点Ｏ（０，０，０）と一致させるように、各々のデータ点Ｐ１〜Ｐ７が一様に平行移動される。本図の例ではデータ点Ｐ７が基準データ点として択一されている。このような平行移動により、基準データ点Ｐ７を除いた６個（＝Ｎ−１個）の仮想データ点Ｐ１’〜Ｐ６’が導出される。
【０１０７】
次に、原点Ｏを通る曲面Ｈ１と各々の仮想データ点Ｐ１’〜Ｐ６’との距離の総和が最小となる仮想オフセット点Ｃ’が算出される。具体的に述べると、仮想データ点Ｐｉ’を（Ｈｘｉ’，Ｈｙｉ’，Ｈｚｉ’）（本図の例ではｉ＝１〜６）とし、仮想オフセット点Ｃ’を（Ｈｘ０’，Ｈｙ０’，Ｈｚ０’）としたときに、次の（５）式で表される曲面Ｈ１の関数を最小化するような仮想オフセット点Ｃ’が算出される。
【０１０８】
【数１０】
2018004613.tif 000012
【０１０９】
なお、上記（５）式で表される曲面Ｈ１の関数は、仮想オフセット点Ｃ’を中心とする半径ｒの球面が原点Ｏを通る（ｒ＝｜ＯＣ’｜）と仮定して導出されたものである。
【０１１０】
最後に、先の平行移動分を元に戻すように仮想オフセット点Ｃ’を平行移動することにより、本来のオフセット点Ｃ（Ｈｘ０，Ｈｙ０，Ｈｚ０）（磁気検出部１０１０のオフセット値に相当）が算出される。
【０１１１】
このように、本例のオフセット算出処理では、参照されるＮ個のデータ点のうち、任意の１点を必ず通る曲面Ｈ１の関数を仮定した上で、その値を最小化するためのパラメータを残り（Ｎ−１）個のデータ点から推定する演算手法が採用されている。
【０１１２】
従って、球面の方程式を直接的に適用してオフセット値を算出する従来技術と異なり、複雑な演算（平均値演算など）を必要としないので、オフセット補正処理に要する演算量を低減し、高速かつ継続的にオフセットをキャンセルすることが可能となる。
【０１１３】
なお、ここでは、３軸の磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）をオフセット補正対象とした例を挙げて詳細な説明を行ったが、上記のオフセット算出手法は、２軸の磁気検出データ（Ｈｘ，Ｈｙ）をオフセット補正対象とした場合にも適用することが可能である。
【０１１４】
その場合、原点Ｏ（０，０）を通る曲線Ｈ２と各々の仮想データ点Ｐｉ’との距離の総和が最小となる仮想オフセット点Ｃ’を算出すればよい。より具体的に述べると、仮想データ点Ｐｉ’を（Ｈｘｉ’，Ｈｙｉ’）とし、仮想オフセット点Ｃ’を（Ｈｘ０’，Ｈｙ０’）としたとき、次の（６）式で表される曲線Ｈ２の関数を最小化するような仮想オフセット点Ｃ’を算出すればよい。
【０１１５】
【数１１】
2018004613.tif 000013
【０１１６】
＜オフセット算出処理（第２例）＞
図１５は、オフセット算出部１０３０におけるオフセット算出処理の第２例を示すフローチャートである。第２例のオフセット算出処理では、第１例のオフセット算出処理（本図ではステップＳ１００５〜Ｓ１００７に相当）を実行するに先立ち、参照対象として妥当なデータ点群を決定するための前処理（本図ではステップＳ１００１〜Ｓ１００４に相当）が導入されている。以下、順を追って詳細に説明する。なお、特に言及しない限り、各ステップの実行主体は、オフセット算出部１０３０であるものとする。
【０１１７】
まず、ステップＳ１００１では、オフセット値（Ｈｘ０，Ｈｙ０，Ｈｚ０）の設定ないし更新が行われる。なお、初期値は（０，０，０）である。
【０１１８】
次に、ステップＳ１００２では、３軸の磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）が常時取得されて、そのオフセット補正が行われる（Ｈｘ←Ｈｘ−Ｈｘ０，Ｈｙ←Ｈｙ−Ｈｙ０，Ｈｚ←Ｈｚ−Ｈｚ０）。なお、本ステップＳ１００２の実行主体は、オフセット補正部１０２０である。
【０１１９】
次に、ステップＳ１００３では、オフセット補正済みの磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）を参照して、３軸の最大値・最小値６点が常時探索される。
【０１２０】
図１６は、３軸の最大値・最小値を示すＸＹＺ座標空間図である。本図の例において、Ｘ軸成分の最大値はＨｘ（ｍａｘ）であり、これに対応するＸ軸最大データ点はＰａ（Ｈｘ（ｍａｘ），＊，＊）である。一方、Ｘ軸成分の最小値はＨｘ（ｍｉｎ）であり、これに対応するＸ軸最小データ点はＰｂ（Ｈｘ（ｍｉｎ），＊，＊）である。
【０１２１】
なお、本図では明示されていないが、Ｙ軸成分の最大値Ｈｙ（ｍａｘ）及び最小値Ｈｙ（ｍｉｎ）、並びに、Ｚ軸成分の最大値Ｈｚ（ｍａｘ）及び最小値Ｈｚ（ｍｉｎ）についても、上記と同様、各軸毎の最大データ点及び最小データ点が存在する。
【０１２２】
図１５に戻り、フローの説明を続ける。ステップＳ１００４では、各軸毎に最大値と最小値との差分値ΔＨｘ、ΔＨｙ、ΔＨｚが閾値以上であるか否かの判定が行われる。例えば、ΔＨｘ≧ＴＨｘ、かつ、ΔＨｙ≧ＴＨｙ、かつ、ΔＨｚ≧ＴＨｚであればイエス判定となり、上記不等式のいずれか一つでも不満足であればノー判定となる。ステップＳ１００４において、イエス判定が下された場合にはフローがステップＳ１００５に進められ、ノー判定が下された場合にはフローがステップＳ１００３に戻される。
【０１２３】
なお、各軸の閾値ＴＨｘ〜ＴＨｚは、測定対象となる地磁気の大きさ（一般には２０〜８０μＴ、日本では４０〜５０μＴ）を鑑み、例えば、３０μＴ程度に設定することが望ましい。また、各軸の閾値ＴＨｘ、ＴＨｙ、ＴＨｚは、互いに同一の値であっても構わないし、各々異なる値であっても構わない。
【０１２４】
ステップＳ１００４でノー判定が下された場合には、フローがステップＳ１００３とステップＳ１００４をループすることになる。すなわち、各軸毎の差分値ΔＨｘ、ΔＨｙ、ΔＨｚが閾値以上となるまで、３軸の最大値と最小値が探索し続けられる。
【０１２５】
図１７は、Ｘ軸における差分値ΔＨｘの変遷挙動を示すタイムチャートである。符号Ｐａ０〜Ｐａ３ないしは符号Ｐｂ０〜Ｐｂ４が付されたデータ点を参照することにより、Ｘ軸最大データ点ＰａないしはＸ軸最小データ点Ｐｂが時間の経過とともに順次更新されていく様子が見て取れる。また、Ｘ軸における差分値ΔＨｘは、当然のことながら、Ｘ軸成分の最大値Ｈｘ（ｍａｘ）と最小値Ｈｘ(ｍｉｎ）のうち、少なくとも一方が更新される毎に大きくなっていく。
【０１２６】
図１５に戻り、フローの説明を続ける。ステップＳ１００４でイエス判定が下された場合には、先に説明した第１例のオフセット算出処理（本図のステップＳ１００５〜Ｓ１００７に相当）が実行される。すなわち、オフセット算出部１０３０では、各軸毎の最大値と最小値との差が全ての軸について閾値以上となったときに、オフセット算出時の参照対象として妥当なデータ点群（オフセット点Ｃを中心とするＸＹＺ座標空間内で比較的均等に分散していると考えられるデータ点群）が集まったという判断の下、先述のオフセット算出処理が実行される。
【０１２７】
このようなアルゴリズムを採用することにより、局所的に偏在しているデータ点群から不適切なオフセット算出結果が得られる危険性を未然に低減することができるので、オフセット算出処理の信頼性を高めることが可能となる。
【０１２８】
ステップＳ１００５では、先に説明したオフセット算出処理の１ステップとして、各軸の最大データ点及び最小データ点のいずれでもない任意の１点を原点Ｏ（０，０，０）へ平行移動するように、各軸の最大データ点及び最小データ点がそれぞれ平行移動される。
【０１２９】
すなわち、第２例のオフセット算出処理で実際の演算に供されるデータ点は、各軸の最大データ点及び最小データ点が６点と、これらと異なる任意の１点（先述の基準データ点に相当）のみである。従って、オフセット算出部１０３０には、合計７点分のレジスタを用意しておけば足りるので、１０点以上のデータ点が必要となる従来構成と比べて、回路規模またはソフトウェアコードサイズを大幅に縮小することが可能となる。
【０１３０】
図１８は、原点Ｏ（０，０，０）に平行移動される基準データ点の一選択例を示すタイムチャートである。図中の黒丸印は、３軸の最大値・最小値に対応する最大データ点及び最小データ点（合計６点）を示している。一方、図中の白丸印は、上記６点以外のデータ点を示している。
【０１３１】
例えば、本図で示したように、データ点Ｐ１からデータ点Ｐｋまで３軸の最大値・最小値を探索し続けた結果、各軸の最大データ点と最小データ点が全て確定した場合、基準データ点の選択アルゴリズムを最も容易とする観点から言えば、データ点Ｐｋの直後に取得されるデータ点Ｐｋ＋１を基準データ点として選択することが望ましい。ただし、データ点Ｐ１〜Ｐｋ−１のいずれか１点（最大データ点と最小データ点を除く）を基準データ点として選択することについても、何ら忌避されるものではない。
【０１３２】
図１５に戻り、フローの説明を続ける。ステップＳ１００６では、ステップＳ１００５で平行移動済みの６点から、先出の（５）式で表される曲面Ｈ１の関数を最小化するような仮想オフセット点Ｃ’（Ｈｘ０’，Ｈｙ０’，Ｈｚ０’）が算出される。この点については、先に詳述した通りであるので、重複した説明は割愛する。
【０１３３】
次に、ステップＳ１００７では、３軸の最大値・最小値６点がクリアされて、先の平行移動分を元に戻したオフセット点Ｃ（Ｈｘ０，Ｈｙ０，Ｈｚ０）が磁気検出部１０１０のオフセット値として算出される。
【０１３４】
その後、フローはステップＳ１００１に戻されて上記一連の処理が繰り返される。その結果、時間的にも空間的にも絶えず変化する方位角センサ１００１のオフセットが高速かつ継続的にキャンセルし続けられるので、方位角を精度良く検出することが可能となる。
【０１３５】
なお、上記のステップＳ１００５では、原点Ｏ（０，０，０）へ平行移動される基準データ点として、各軸の最大データ点及び最小データ点のいずれでもない任意の１点を選択する例を挙げて説明を行ったが、基準データ点は、各軸の最大データ点及び最小データ点のうちのいずれか１点であっても構わない。このような構成であれば、オフセット算出処理で実際の演算に供されるデータ点を一つ減らすことができるので、回路規模またはソフトウェアコードサイズをさらに縮小することが可能となる。ただし、本構成を採用した場合、各軸の最大データ点及び最小データ点の分布状態によっては、オフセット算出精度の低下を招くおそれがある。
【０１３６】
図１９は、３軸の最大値・最小値に対応するデータ点を基準データ点として選択する場合の留意点について説明するためのＸＹＺ座標空間図である。外来磁場等の影響により、各軸の最大値及び最小値のうち、いずれか一つ（本図の例ではＸ軸成分の最大値Ｈｘ（ｍａｘ））が他から大きく乖離している場合がある。
【０１３７】
他から大きく乖離した最大データ点または最小データ点が基準データ点として選択されると、基準データ点を原点Ｏと一致させるための平行移動量が本来の値から大きく乖離してしまう。その結果、先述のオフセット算出処理により正しいオフセット点Ｃ（Ｈｘ０，Ｈｙ０，Ｈｚ０）を得ることが出来なくなる。
【０１３８】
このような不具合を回避するためには、例えば、３軸の最大値・最小値に対応する６つのデータ点のうち、各軸成分の絶対値が最も大きいデータ点と最も小さいデータ点については、基準データ点としての選択候補から除外するなどの対策を講じることが望ましい。
【０１３９】
＜オフセット算出処理（第３例）＞
これまでに説明してきた第１例及び第２例のオフセット算出処理において、正しいオフセット点Ｃ（Ｈｘ０，Ｈｙ０，Ｈｚ０）を得るためには、３次元のＸＹＺ座標空間において、方位角センサ１００１（延いては３軸の磁気センサ１０１０Ｘ〜１０１０Ｚ）を各軸方向に大きく動かす必要がある。
【０１４０】
ただし、例えば、地表面上を走行する車両の電子コンパスとして方位角センサ１００１を搭載する場合、地表面に対する鉛直軸方向（＝車両の上下方向）の動きは、地表面に対する水平軸方向（＝車両の前後左右方向）の動きほど大きくならないことが想定される。そのため、鉛直軸（例えばＺ軸）の磁気検出データについては、その最大値と最小値との間にそれほど大きな差が付かなくなるので、これまでに説明してきたアルゴリズムでは、オフセット点Ｃ（Ｈｘ０，Ｈｙ０，Ｈｚ０）を精度良く算出することが難しくなる。
【０１４１】
そこで、以下では、３軸の磁気センサ１０１０Ｘ〜１０１０Ｚのうち、いずれかの磁気検出データの変動幅が小さい場合であってもオフセット点Ｃ（Ｈｘ０，Ｈｙ０，Ｈｚ０）を精度良く算出することのできる新規アルゴリズムについて提案する。
【０１４２】
図２０は、オフセット算出処理の第３例を示すフローチャートである。第３例のオフセット算出処理では、第２例のオフセット算出処理（図１５）をベースとしつつ、Ｘ軸及びＹ軸（例えば地表面に対する水平軸）のオフセット計算と、Ｚ軸（例えば地表面に対する鉛直軸）のオフセット計算とを別々に実施する点に特徴を有している。以下、順を追って詳細に説明する。なお、特に言及しない限り、各ステップの実行主体は、オフセット算出部１０３０であるものとする。
【０１４３】
まず、ステップＳ１０１１では、オフセット値（Ｈｘ０，Ｈｙ０，Ｈｚ０）の設定ないし更新が行われる。なお、初期値は（０，０，０）である。
【０１４４】
次に、ステップＳ１０１２では、３軸の磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）が常時取得されてそのオフセット補正が行われる（Ｈｘ←Ｈｘ−Ｈｘ０，Ｈｙ←Ｈｙ−Ｈｙ０，Ｈｚ←Ｈｚ−Ｈｚ０）。なお、本ステップＳ１０１２の実行主体は、オフセット補正部２０である。
【０１４５】
次に、ステップＳ１０１３では、オフセット補正済みである磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）を参照して、各軸の最大値及び最小値にそれぞれ対応する６点のデータ点Ｐｉ（Ｈｘｉ，Ｈｙｉ，Ｈｚｉ）（ただしｉ＝１〜６）が常時探索される（先出の図１４及び図１６を適宜参照）。
【０１４６】
次に、ステップＳ１０１４では、各軸毎に最大値と最小値との差分値ΔＨｘ、ΔＨｙ、ΔＨｚが閾値以上であるか否かの判定が行われる。例えば、ΔＨｘ≧ＴＨｘ、かつ、ΔＨｙ≧ＴＨｙ、かつ、ΔＨｚ≧ＴＨｚであればイエス判定となり、上記不等式のいずれか一つでも不満足であればノー判定となる。ステップＳ１０１４において、イエス判定が下された場合にはフローがステップＳ１０１５に進められ、ノー判定が下された場合にはフローがステップＳ１０１３に戻される。
【０１４７】
なお、閾値ＴＨｘ〜ＴＨｚは、例えば、その場における地磁気の大きさ｜Ｈ｜（延いてはその場における空間磁場の大きさ）、または、これを分解したＸＹ平面成分｜ＨＸＹ｜とＺ軸成分｜ＨＺ｜に応じて、各軸毎にそれぞれ設定するとよい。この点については、後ほど詳細に説明する。
【０１４８】
ステップＳ１０１４でノー判定が下された場合には、フローがステップＳ１０１３とステップＳ１０１４をループすることになる。すなわち、各軸毎の差分値ΔＨｘ、ΔＨｙ、ΔＨｚが閾値以上となるまで、３軸の最大値と最小値が探索し続けられる。
【０１４９】
一方、ステップＳ１０１４でイエス判定が下された場合、ステップＳ１０１５では、データ点Ｐ１〜Ｐ６のいずれとも異なる７点目の基準データ点Ｐ７（Ｈｘ７，Ｈｙ７，Ｈｚ７）が選択される。
【０１５０】
次に、ステップＳ１０１６では、基準データ点Ｐ７が適正であるか否かの判定が行われる。より具体的に述べると、本ステップでは、基準データ点Ｐ７として、データ点Ｐ１〜Ｐ６のうち、少なくともＸ軸とＹ軸の最大値及び最小値にそれぞれ対応する４点からそれぞれ所定値以上の距離を隔てたデータ点が選択されているか否かの判定が行われる。ここで、イエス判定が下された場合にはフローがステップＳ１０１７に進められる。一方、ノー判定が下された場合にはフローがステップＳ１０１５に戻されて、上記の条件を満たすまで基準データ点Ｐ７の再選択が繰り返される。
【０１５１】
ステップＳ１０１６でイエス判定が下された場合、ステップＳ１０１７では、基準データ点Ｐ７を原点Ｏ（０，０，０）と一致させるように、データ点Ｐ１〜Ｐ６のうち、Ｘ軸とＹ軸の最大値及び最小値にそれぞれ対応する４点を一様に平行移動した上で、Ｚ軸の座標値を無視することにより、ＸＹ座標面上の仮想データ点Ｐｉ’（Ｈｘｉ’，Ｈｙｉ’）（ただしｉ＝１〜４）が算出される。
【０１５２】
なお、上記の例では、データ点Ｐ１〜Ｐ６のうち、Ｚ軸の最大値及び最小値にそれぞれ対応する２点が平行移動対象から除外されている。ただし、Ｚ軸の差分値ΔＨｚが所定値よりも小さい場合、上記２点のＸ軸成分及びＹ軸成分が各軸の最大値及び最小値から極端に乖離している可能性は低いと考えられる。従って、そのような場合には、上記６点全てを平行移動対象としてもよい。また、差分値ΔＨｚが切替閾値よりも大きいときには平行移動対象を４点とし、差分値ΔＨｚが切替閾値よりも小さいときには平行移動対象を６点とするように、平行移動対象の切替制御を行っても構わない。
【０１５３】
次に、ステップＳ１０１８では、上記した４点（若しくは６点）の仮想データ点Ｐｉ’（Ｈｘｉ’，Ｈｙｉ’）を用いて、次の（７）式で表される関数Ｆ１を最小化するＸＹ座標面上の仮想オフセット点Ｃ’（Ｈｘ０’，Ｈｙ０’）が算出される。
【０１５４】
【数１２】
2018004613.tif 000014
【０１５５】
次に、ステップＳ１０１９では、基準データ点Ｐ７の平行移動分を元に戻すように、ＸＹ座標面上の仮想オフセット点Ｃ’（Ｈｘ０’，Ｈｙ０’）を平行移動することにより、Ｘ軸及びＹ軸のオフセット値Ｈｘ０及びＨｙ０がそれぞれ算出される。
【０１５６】
なお、（７）式で表される関数Ｆ１は、（６）式で表される曲線Ｈ２の関数と等価である。すなわち、ステップＳ１０１８及びＳ１０１９では、ＸＹ座標面上に描かれる地磁気円のオフセット推定処理により、Ｘ軸及びＹ軸のオフセット値Ｈｘ０及びＨｙ０がそれぞれ算出される。
【０１５７】
このように、Ｘ軸及びＹ軸それぞれのオフセット計算（ステップＳ１０１７〜Ｓ１０１９）では、Ｚ軸の磁気検出データＨｚが一切用いられていない。従って、Ｚ軸方向の動きがＸ軸方向及びＹ軸方向の動きほど大きくなくても、Ｘ軸及びＹ軸のオフセット計算精度に悪影響を及ぼすことはない。
【０１５８】
次に、ステップＳ１０２０では、基準データ点Ｐ７を原点Ｏ（０，０，０）と一致させるように、６点のデータ点Ｐ１〜Ｐ６全てを一様に平行移動することにより、ＸＹＺ座標空間において、６点の仮想データ点Ｐｉ’（Ｈｘｉ’，Ｈｙｉ’，Ｈｚｉ’）（ただし、ｉ＝１〜６）が算出される。なお、先のステップＳ１０１７において、６点全てを平行移動対象とする場合には、その結果をレジスタ等に格納しておくことにより、ステップＳ１０２０での平行移動処理を割愛することもできる。
【０１５９】
次に、ステップＳ１０２１では、先のステップＳ１０１８で求められた仮想オフセット点（Ｈｘ０’，Ｈｙ０’）と、上記６点の仮想データ点Ｐｉ’（Ｈｘｉ’，Ｈｙｉ’，Ｈｚｉ’）を用いて、次の（８）式で表される関数Ｆ２を最小化する仮想オフセット値Ｈｚ０’が算出される。
【０１６０】
【数１３】
2018004613.tif 000015
【０１６１】
なお、仮想オフセット値Ｈｚ０’の算出式については、次の（９）式で表すことができる。本算出式で用いられる仮想オフセット点（Ｈｘ０’，Ｈｙ０’）は、その算出過程にＺ軸の磁気検出データＨｚを含まないので、磁気検出データＨｚのデータ変動が小さくても信頼性の高いものとなる。従って、これを用いて仮想オフセット値Ｈｚ０’を算出することにより、仮想オフセット値Ｈｚ０’についても信頼性を高めることが可能となる。
【０１６２】
【数１４】
2018004613.tif 000016
【０１６３】
次に、ステップＳ１０２２では、データ点Ｐ１〜Ｐ６と基準データ点Ｐ７をクリアし、基準データ点Ｐ７の平行移動分を元に戻すように仮想オフセット値Ｈｚ０’を平行移動することにより、Ｚ軸のオフセット値Ｈｚ０が算出される。
【０１６４】
なお、（８）式で表される関数Ｆ２は、（５）式で表される曲面Ｈ１の関数と等価である。すなわち、ステップＳ１０２０〜Ｓ１０２２では、ＸＹ座標空間に描かれる地磁気球のオフセット推定処理により、Ｚ軸のオフセット値Ｈｚ０が算出される。
【０１６５】
最後に、ステップＳ１０２３では、新オフセット値（Ｈｘ０，Ｈｙ０，Ｈｚ０）が出力される。その後、フローはステップＳ１０１１に戻されて、上記一連の処理が繰り返される。その結果、時間的にも空間的にも絶えず変化する方位角センサ１００１のオフセットが高速かつ継続的にキャンセルし続けられるので、方位角を精度良く検出することが可能となる。
【０１６６】
上記したように、第３例のオフセット算出処理では、まず、比較的大きいデータ変動を生じることが見込まれるＸ軸及びＹ軸のオフセット値Ｈｘ０及びＨｙ０が算出された後、その算出結果を利用して、比較的小さいデータ変動しか生じないと想定されるＺ軸のオフセット値Ｈｚ０が別個独立に算出される。
【０１６７】
このようなオフセット算出処理によれば、Ｘ軸及びＹ軸のデータ変動と比べてＺ軸のデータ変動が小さい場合でも、各軸のオフセット値を正しく算出することが可能となる。
【０１６８】
＜オフセット算出処理（第４例）＞
図２１は、オフセット算出処理の第４例を示すフローチャートである。第４例のオフセット算出処理では、第３例のオフセット算出処理（図２０）をベースとしつつ、Ｘ軸及びＹ軸のオフセット計算を簡略化した点に特徴を有している。そこで、第３例と同様のステップについては、図２０と同一の符号を付すことで重複した説明を割愛し、以下では、第４例の特徴部分について重点的な説明を行う。
【０１６９】
本図中の太枠で示したように、第４例のオフセット算出処理では、図２０のステップＳ１０１７〜Ｓ１０２０がステップＳ１０２４及びＳ１０２５に置き換えられている。
【０１７０】
先述のステップＳ１０１１〜Ｓ１０１５を経て、ステップＳ１０１６でイエス判定が下された場合、ステップＳ１０２４では、先出の（７）式を用いず、次の（１０ａ）式及び（１０ｂ）式を用いてオフセット値Ｈｘ０及びＨｙ０が算出される。
【０１７１】
【数１５】
2018004613.tif 000017
【０１７２】
すなわち、ステップＳ１０２４では、Ｘ軸の最大値Ｈｘ（ｍａｘ）と最小値Ｈｘ（ｍｉｎ）の平均値がＸ軸のオフセット値Ｈｘ０として算出され、Ｙ軸の最大値Ｈｙ（ｍａｘ）と最小値Ｈｙ（ｍｉｎ）の平均値がＹ軸のオフセット値Ｈｙ０として算出される。
【０１７３】
次に、ステップＳ１０２５では、基準データ点Ｐ７を原点Ｏ（０，０，０）と一致させるように、Ｘ軸とＹ軸のオフセット値Ｈｘ０及びＨｙ０を平行移動することにより、仮想オフセット値Ｈｘ０’及びＨｙ０’が算出される。また、６点のデータ点Ｐ１〜Ｐ６についても上記と同様の平行移動を行うことにより、６点の仮想データ点Ｐｉ’（Ｈｘｉ’，Ｈｙｉ’，Ｈｚｉ’）（ただしｉ＝１〜６）が算出される。
【０１７４】
その後は、フローが先述のステップＳ１０２１に進められて、先と同様の処理により、Ｚ軸のオフセット値Ｈｚ０が算出される。
【０１７５】
このように、第４例のオフセット算出処理であれば、第３例（図２０）と比べて、Ｘ軸及びＹ軸のオフセット計算を簡略化することが可能となる。なお、地磁気円のオフセット推定処理を省略してもオフセット値Ｈｘ０及びＨｙ０の算出精度を落とさないためには、方位角センサ１００１が水平面上で大きく１周するような動作ないし移動が必要となる。
【０１７６】
また、先出の図１７で示したように、各軸の差分値ΔＨｘ、ΔＨｙ、ΔＨｚが大きくなる度に各軸の最大データ点及び最小データ点を更新していく場合、周辺環境における地磁気の大きさが増大していく状況であれば、オフセット算出処理を支障なく継続することができるが、地磁気の大きさが減少していく状況では、Ｘ軸とＹ軸の最大値及び最小値がそれぞれ固定されてしまうので、正しいオフセット算出を行うことができなくなる。
【０１７７】
そこで、地磁気の大きさが減少していく状況であっても、正しいオフセット算出を行うためには、例えば、Ｘ軸とＹ軸の最大値及び最小値を定期的にクリアしてステップＳ１０２４のオフセット算出処理を続けてもよいし、或いは、図２０のフローを定期的に実施しておくことにより、地磁気の大きさが著しく小さい場合には、ステップＳ１０１７〜Ｓ１０１９で予め算出しておいたオフセット値を採用することも考えられる。
【０１７８】
＜閾値設定＞
次に、図２０と図２１のステップＳ１０１４において、各軸の差分値ΔＨｘ、ΔＨｙ、ΔＨｚとそれぞれ比較される閾値ＴＨｘ、ＴＨｙ、ＴＨｚの設定手法について述べる。
【０１７９】
先に説明したように、第３例及び第４例のオフセット算出処理であれば、Ｚ軸の磁気検出データの変動幅が小さい場合であっても、オフセット点Ｃ（Ｈｘ０，Ｈｙ０，Ｈｚ０）を精度良く算出することが可能である。ただし、よりその正確さを追及するためには、各軸の最大データ点と最小データ点として、適度に離れた２点を採用することが望ましい。
【０１８０】
図２２及び図２３は、それぞれ、磁場のＸＺ平面図（若しくはＹＺ平面図）である。図２２は、Ｚ軸の磁場変動が比較的大きい場合（例えば、腕時計に方位角センサ１００１が搭載されている場合）を示しており、図２３は、Ｚ軸の磁場変動が比較的小さい場合（例えば、車両に方位角センサ１００１が搭載されている場合）を示している。
【０１８１】
なお、各図中のバツ印は、各軸の最大データ点及び最小データ点を示している。また、各図中の破線は、各軸の最大データ点及び最小データ点から推定しようとする地磁気球を示している。なお、両図では、いずれも、Ｘ軸（若しくはＹ軸）の最大データ点と最小データ点が適度に離れているものとする。
【０１８２】
両図の対比から、Ｚ軸の磁場変動が大きい場合（図２２）と比べて、Ｚ軸の磁場変動が小さい場合（図２３）には、地磁気球を正しく推定することが困難であることが分かる。
【０１８３】
また、各軸毎の最大データ点と最小データ点との差分値ΔＨｘ、ΔＨｙ、ΔＨｚについては、それぞれの取り得る値に差がある。例えば、Ｘ軸方向を車両の前後方向とし、Ｙ軸方向を車両の左右方向とし、Ｚ軸方向を車両の上下方向とした場合を考える。この場合、磁気検出データＨｘ及びＨｙは、車両の通常走行（右左折や方向転換など）により大きく変動するので、差分値ΔＨｘ及びΔＨｙが大きくなりやすい。一方、磁気検出データＨｚは、たとえ車両が急勾配の坂道を走行してもそれほど大きく変動しないので、差分値ΔＨｚが大きくなりにくい。
【０１８４】
そのため、Ｚ軸の閾値ＴＨｚは、Ｘ軸及びＹ軸それぞれの閾値ＴＨｘ及びＴＨｙよりも小さい値に設定しておくことが望ましい。なぜなら、閾値ＴＨｚを閾値ＴＨｘ及びＴＨｙと同値（若しくは同程度の値）に設定すると、先出のステップＳ１０１４（図２０及び図２１を参照）において、ΔＨｚ≧ＴＨｚが満たされなくなり、いつまで経ってもオフセット値の算出が開始されない状況に陥ってしまうからである。
【０１８５】
ところで、各軸の最大データ点及び最小データ点から推定しようとする地磁気球の半径は、これを描く地磁気の大きさ｜Ｈ｜に等しい。これを鑑みると、閾値ＴＨｘ、ＴＨｙ、ＴＨｚは、それぞれ、地磁気の大きさ｜Ｈ｜（延いては、方位角センサ１００１が存在する場における空間磁場の大きさ）に応じて、各軸毎に設定することが望ましいと言える。
【０１８６】
なお、地磁気の大きさ｜Ｈ｜は、各軸の磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）とそれぞれのオフセット値（Ｈｏｆｆｘ，Ｈｏｆｆｙ，Ｈｏｆｆｚ）を用いて、次の（１１）式から算出することができる。上記のオフセット値（Ｈｏｆｆｘ，Ｈｏｆｆｙ，Ｈｏｆｆｚ）としては、初回のオフセット計算時に求められたオフセット値を用いてもよいし、若しくは、過去に計算した信頼できるオフセット値を用いてもよい。
【０１８７】
【数１６】
2018004613.tif 000018
【０１８８】
また、地磁気の大きさ｜Ｈ｜は、第３例（図２０）または第４例（図２１）のオフセット算出処理中に導き出される仮想オフセット点Ｃ’（Ｈｘ０’、Ｈｙ０’，Ｈｚ０’）を用いて、次の（１２）式から算出することもできる。
【０１８９】
【数１７】
2018004613.tif 000019
【０１９０】
また、方位角センサ１００１が地表面に対して水平に固定されている場合には、図２４で示すように、地磁気の大きさ｜Ｈ｜をＸＹ平面成分｜ＨＸＹ｜（＝地表面に対して水平な方向の地磁気成分）と、Ｚ軸成分｜ＨＺ｜（地表面に対して垂直な方向の地磁気成分）に分解することも可能である。
【０１９１】
なお、地磁気のＸＹ平面成分｜ＨＸＹ｜とＺ軸成分｜ＨＺ｜は、各軸の磁気検出データ（Ｈｘ，Ｈｙ，Ｈｚ）と、それぞれのオフセット値（Ｈｏｆｆｘ，Ｈｏｆｆｙ，Ｈｏｆｆｚ）を用いて、次の（１３ａ）式及び（１３ｂ）式から算出することができる。
【０１９２】
【数１８】
2018004613.tif 000020
【０１９３】
また、地磁気のＸＹ平面成分｜ＨＸＹ｜とＺ軸成分｜ＨＺ｜は、先出の仮想オフセット点Ｃ’（Ｈｘ０’、Ｈｙ０’，Ｈｚ０’）を用いて、次の（１４ａ）式及び（１４ｂ）式から算出することもできる。
【０１９４】
【数１９】
2018004613.tif 000021
【０１９５】
上記で求められた地磁気の大きさ｜Ｈ｜、または、そのＸＹ平面成分｜ＨＸＹ｜とＺ軸成分｜ＨＺ｜から、各軸の閾値ＴＨｘ、ＴＨｙ、ＴＨｚを算出するための手法としては、例えば、ＸＹ平面成分｜ＨＸＹ｜に係数ＧＸＹを乗じて閾値ＴＨｘ及びＴＨｙを算出し、Ｚ軸成分｜ＨＺ｜に係数ＧＺを乗じて閾値ＴＨｚを算出することが考えられる。
【０１９６】
なお、図２０のステップＳ１０１８において、ＸＹ座標平面上の仮想オフセット点Ｃ’（Ｈｘ０’，Ｈｙ０’）を求める場合、地磁気円の全周のうち１／４程度の円弧を描くことのできる磁場変動（方位角センサ１の移動）があれば、正しいオフセット計算が可能となる。従って、Ｘ軸方向及びＹ軸方向については、上記の磁場変動があれば、ΔＨｘ≧ＴＨｘかつΔＨｙ≧ＴＨｙが満たされるように、係数ＧＸＹ（例えば１．０程度）を適宜設定しておけばよい。
【０１９７】
一方、Ｚ軸方向については、磁気検出データＨｚが変動しにくいことに鑑み、ある程度の頻度でΔＨｚ≧Ｔｈｚが満たされるように、係数ＧＺ（例えば０．１程度）を適宜設定しておく必要がある。なお、係数ＧＺを大きく設定すれば、オフセット計算が実行されにくくなり、逆に、係数ＧＺを小さく設定すれば、オフセット計算が実行されやすくなる。
【０１９８】
また、上記では、地磁気の大きさ｜Ｈ｜ではなく、そのＸＹ平面成分｜ＨＸＹ｜とＺ軸成分｜ＨＺ｜に応じて、各軸の閾値ＴＨｘ、ＴＨｙ、ＴＨｚを算出する手法を例に挙げたが、より単純に、地磁気の大きさ｜Ｈ｜そのものに各軸毎の係数ＧＸ、ＧＹ、ＧＺをそれぞれ乗じて、閾値ＴＨｘ、ＴＨｙ、ＴＨｚを算出することも可能である。
【０１９９】
また、地磁気の大きさ｜Ｈ｜は、必ずしも、先出の（１１）式または（１２）式から算出する必要はなく、例えば、ＧＰＳ［global positioning system］によって得られた位置情報を基に、所定の近似計算式から算出してもよいし、或いは、国土地理院等の磁場マップ情報ライブラリから導き出してもよい。
【０２００】
図２５は、地磁気の大きさ｜Ｈ｜の環境依存例を示す模式図である。本図で示したように、同一の地点であっても、方位角センサ１００１が車外にあるのか車内にあるのかに応じて、地磁気の大きさ｜Ｈ｜が理想値から乖離する場合がある（｜Ｈ｜≠｜Ｈ’｜）。また、その他の遮蔽物（建物やトンネル等）の内外でも、上記と同様の現象が起こり得る。
【０２０１】
従って、方位角センサ１００１が遮蔽物の内部に設けられる可能性がある場合には、同一の地点において、遮蔽物の外部で得られる磁気検出データと、遮蔽物の内部で得られる磁気検出データとの差分を事前に調べておき、その差分を考慮した上で、閾値ＴＨｘ、ＴＨｙ、ＴＨｚを適宜設定することが望ましいと言える。
【０２０２】
＜伏角の利用＞
上記の閾値設定手法では、地磁気の大きさ｜Ｈ｜のみに注目していたが、ここでは、地磁気の伏角α（＝地磁気が地表面に突入する角度、または、地磁気が地表面から放出される角度）にも焦点を当てる。地磁気は、地球の南極付近から北極付近に降り注いでおり、地磁気の伏角αは、測定地点の緯度と経度により異なる値となることが知られている。ただし、局所的に見ると、地磁気の伏角αは、ほぼ一定値であると考えても差し支えない。例えば、東京における伏角αは、約４９度である。
【０２０３】
この伏角αを用いることにより、その場における地磁気の大きさ｜Ｈ｜をＸＹ平面成分｜ＨＸＹ｜とＺ軸成分｜ＨＺ｜に分解することが可能である。
【０２０４】
図２６は、地磁気の伏角αを示す模式図である。本図から分かるように、地磁気のＸＹ平面成分｜ＨＸＹ｜とＺ軸成分｜ＨＺ｜は、地磁気の大きさ｜Ｈ｜と伏角αを用いて、次の（１５ａ）式及び（１５ｂ）式から算出することができる。
【０２０５】
【数２０】
2018004613.tif 000022
【０２０６】
このようにして算出された地磁気のＸＹ平面成分｜ＨＸＹ｜及びＺ軸成分｜ＨＺ｜は、先と同様、係数ＧＸＹ及びＧＺをそれぞれ乗ずることにより、閾値ＴＨｘ、ＴＨｙ、ＴＨｚの設定処理に供することが可能である。
【０２０７】
図２７は、磁気検出データＨと加速度データＡとの相関図である。本図から分かるように、先の演算で用いられる伏角αは、オフセット補正済みの磁気検出データＨ（Ｈｘ，Ｈｙ，Ｈｚ）と、加速度データＡ（Ａｘ，Ａｙ，Ａｚ）との内積計算により、次の（１６）式により算出することができる。
【０２０８】
【数２１】
2018004613.tif 000023
【０２０９】
なお、上記の磁気検出データＨ（Ｈｘ，Ｈｙ，Ｈｚ）のオフセット補正では、初回のオフセット計算時に求められたオフセット値を用いてもよいし、若しくは、過去に計算した信頼できるオフセット値を用いてもよい。
【０２１０】
また、上記の加速度データＡ（Ａｘ，Ａｙ，Ａｚ）は、方位角センサ１００１とは別に設けられた加速度センサの出力を用いてもよいし、方位角センサ１００１に加速度検出機能を内蔵してもよい。いずれにせよ、伏角αを正しく算出するためには、上記の加速度データＡとして、重力加速度のみをセンシングする必要がある。従って、伏角αの演算時には、静止状態、等速運動状態、若しくは、低加速度運動状態（＝移動に伴う加速度が所定の閾値よりも小さく、センシング対象が重力加速度のみであると看做すことのできる運動状態）を維持する必要がある点に留意すべきである。
【０２１１】
また、伏角αは、必ずしも先出の（１６）式から算出する必要はなく、例えば、ＧＰＳによって得られた位置情報を基に、所定の近似計算式から算出してもよいし、或いは、国土地理院等の伏角情報ライブラリから導き出してもよい。
【０２１２】
＜オフセット更新処理＞
図２８は、オフセット更新処理の一例を示すフローチャートである。本フローは、これまでに説明してきたオフセット算出処理（図１５、図２０、２１９）の後処理に相当し、新たに算出された新オフセット値の精度（信頼性）を判定するものである。
【０２１３】
本フローがスタートすると、まず、ステップＳ１０３１において、伏角αの初期値α［０］が仮決定された後、続くステップＳ１０３２において、オフセット更新回数ｉの初期設定（ｉ＝１）が行われる。
【０２１４】
なお、上記の初期値α０は、初回のオフセット計算時に求められたオフセット値を用いて算出してもよいし、過去に計算した信頼できるオフセット値を用いて算出してもよい。若しくは、ＧＰＳによって得られた位置情報を基に、所定の近似計算式から算出してもよいし、或いは、伏角情報ライブラリから導出してもよい。さらには、ＧＰＳを用いずとも伏角情報を国別に用意しておくことにより、初期値α０を設定することも考えられる。
【０２１５】
次に、ステップＳ１０３３では、オフセット較正条件が充足されているか否かの判定が行われる。この判定処理は、先のステップＳ１００３〜Ｓ１００４（図１５）、または、ステップＳ１０１３〜Ｓ１０１４（図２０及び図２１）に相当する。なお、ステップＳ１０３３において、イエス判定が下された場合には、フローがステップＳ１０３４に進められ、ノー判定が下された場合には、ステップＳ１０３３での判定処理が繰り返される。
【０２１６】
ステップＳ１０３３でイエス判定が下された場合、まずステップＳ１０３４において、新オフセット値（Ｈｘ０，Ｈｙ０，Ｈｚ０）が新たに算出された後、続くステップＳ１０３５では、新オフセット値を用いて地磁気の大きさ｜Ｈ｜と伏角α［ｉ］が算出される。
【０２１７】
続いて、ステップＳ１０３６では、新オフセット値を用いて算出された地磁気の大きさ｜Ｈ｜について、Ｈｍｉｎ≦｜Ｈ｜≦Ｈｍａｘという関係が満たされているか否かの判定が行われる。ここでイエス判定が下された場合には、フローがステップＳ１０３７に進められ、ノー判定が下された場合には、フローがステップＳ１０４１に進められる。
【０２１８】
なお、上記の最小値Ｈｍｉｎ及び最大値Ｈｍａｘは、それぞれ、地球上における一般的な地磁気の大きさを考慮して設定すればよく、例えば、Ｈｍｉｎ＝１０μＴ（＝１００ｍＧ）、Ｈｍａｘ＝７０μＴ（＝７００ｍＧ）に設定すればよい。もちろん、方位角センサ１００１が存在する場の地磁気について、大凡の大きさが予め分かっている場合には、最小値Ｈｍｉｎ及び最大値Ｈｍａｘをより適切に設定しても構わない。
【０２１９】
ステップＳ１０３６でイエス判定が下された場合、ステップＳ１０３７では、新オフセット値を用いて算出された伏角α［ｉ］について、α［ｉ−１］−Δ≦α［ｉ］≦α［ｉ−１］＋Δが満たされているか否かの判定が行われる。すなわち、ステップＳ１０３７では、新オフセット値を用いて算出された伏角α［ｉ］が、一つ前のオフセット値を用いて算出された伏角α［ｉ−１］から著しく乖離しているか否かの判定が行われる。ここでイエス判定が下された場合には、フローがステップＳ１０３８に進められ、ノー判定が下された場合には、フローがステップＳ１０４１に進められる。
【０２２０】
ステップＳ１０３７でイエス判定が下された場合、ステップＳ１０３８では、先の（１３ｂ）式または（１４ｂ）式を用いて算出されるＺ軸成分｜ＨＺ１｜と、先の（１５ｂ）式を用いて算出されるＺ軸成分｜ＨＺ２｜について、｜ＨＺ１−ＨＺ２｜＜Δが満たされているか否かの判定が行われる。すなわち、ステップＳ１０３８では、伏角α［ｉ］を用いずに算出されたＺ軸成分｜ＨＺ１｜と、伏角α［ｉ］を用いて算出されたＺ軸成分｜ＨＺ２｜の双方を同一値と看做すことができるか否かの判定が行われる。ここでイエス判定が下された場合には、フローがステップＳ１０３９に進められ、ノー判定が下された場合には、フローがステップＳ１０４１に進められる。
【０２２１】
ステップＳ１０３８でイエス判定が下された場合、ステップＳ１０３９では、新オフセット値を用いて算出された地磁気の大きさ｜Ｈ｜及び伏角α［ｉ］がいずれも正常範囲内であり、新オフセット値は信頼するに足りるという判断の下、正式に旧オフセット値から新オフセット値への更新が行われる。そして、ステップＳ１０４０において、オフセット更新回数ｉが一つインクリメント（ｉ←ｉ＋１）されてから、フローがステップＳ１０３３に戻される。
【０２２２】
一方、ステップＳ１０３６〜Ｓ１０３８のいずれかでノー判定下された場合、ステップＳ１０４１では、新オフセット値を用いて算出された地磁気の大きさ｜Ｈ｜並びに伏角α［ｉ］のうち、少なくとも一方が正常範囲を外れており、新オフセット値は信頼することができないという判断の下、新オフセット値が破棄された上で、フローがステップＳ１０３３に戻される。
【０２２３】
なお、上記フローにおいて、ステップＳ１０３７では、オフセット更新回数ｉと共に伏角αの正常範囲も逐次更新されていくが、伏角αの正常範囲を基本的に固定とし、伏角αが大きく変動するほどの長距離移動を行った場合にのみ、その正常範囲を切り替えるようにしてもよい。
【０２２４】
また、上記フローにおいて、ステップＳ１０３６では、地磁気の大きさ｜Ｈ｜の正常範囲が固定されているが、ステップＳ１０３７と同じく、オフセット更新回数ｉと共に地磁気の大きさ｜Ｈ｜の正常範囲を逐次更新していくようにしてもよい。
【０２２５】
また、ステップＳ１０３６〜Ｓ１０３８の判定処理については、必ずしも３ステップ全てを実施する必要はなく、いずれか１ステップ若しくは２ステップを実施してもよい。また、各ステップの実施順序も任意である。
【０２２６】
なお、上記した種々の条件（ステップＳ１０３６〜Ｓ１０３８）をパスする新オフセット値が得られた場合であっても、新オフセット値と１つ前の旧オフセット値との間には、少なからず乖離を生じている場合がある。
【０２２７】
そのため、オフセット更新時におけるオフセット値の不連続な変化を防ぐために、例えば、次の（１７）式で表されるローパスフィルタ処理を施すことが望ましい。
【０２２８】
【数２２】
2018004613.tif 000024
【０２２９】
なお、上式において、Ｈ０［ｔ］は時刻ｔにおけるオフセット値を示しており、Ｈ０’［ｔ］は時刻ｔにおけるフィルタ処理後のオフセット値を示している。上式中の係数ｃが小さいほどオフセット値の追従性が高くなり、逆に、係数ｃが大きいほどオフセット値の変化が滑らかになる。
【０２３０】
以上で説明したように、オフセット算出処理に際して、Ｘ軸及びＹ軸（例えば地表面に対する水平軸）のオフセット計算と、Ｚ軸（例えば地表面に対する鉛直軸）のオフセット計算とを分離すると共に、その前処理（適切な閾値設定）と後処理（新オフセット値の精度判定）を追加することにより、オフセット算出処理の信頼性を高めることができる。
【０２３１】
＜方位角センサの適用例＞
図２９〜図３２は、それぞれ、方位角センサ１００１を備える電子機器（スマートフォン１００、タブレット端末２００、スマートウォッチ３００）、及び、車両４００を示す外観図である。それぞれの電子コンパスとして、先に説明した方位角センサ１００１を搭載することにより、各機器を携帯するユーザが向いている方向、ないしは、車両４００の進行方向を正確に検出することができる。特に、ＧＰＳ［global positioning system］と電子コンパスを併用すれば、地図アプリやナビゲーションアプリでの位置検出精度を高めることが可能となる。なお、車両４００に電子コンパスを搭載して絶対方位を検出することは、先進の自動運転技術をサポートする上で、非常に重要であると言える。
【０２３２】
＜その他の変形例＞
なお、本明細書中に開示されている種々の技術的特徴は、上記実施形態のほか、その技術的創作の主旨を逸脱しない範囲で種々の変更を加えることが可能である。すなわち、上記実施形態は、全ての点で例示であって制限的なものではないと考えられるべきであり、本発明の技術的範囲は、上記実施形態の説明ではなく、特許請求の範囲によって示されるものであり、特許請求の範囲と均等の意味及び範囲内に属する全ての変更が含まれると理解されるべきである。
【産業上の利用可能性】
【０２３３】
本明細書中に開示されている発明は、例えば、携帯機器（スマートフォン、タブレット端末、ないしは、スマートウォッチなど）、若しくは、移動体（車両、船舶、航空機、ないしは、ドローンなど）に搭載される方位角センサに利用することが可能である。
【符号の説明】
【０２３４】
１  方位角センサ
１０  磁気検出部
２０  オフセット補正部
３０  オフセット導出部
３１  初期設定部
３２  オフセット校正条件判定部
３３  仮決定値導出部
３４  更新部
４０  方位角演算部
１００１    方位角センサ
１０１０    磁気検出部
１０１０Ｘ、１０１０Ｙ、１０１０Ｚ    磁気センサ（Ｘ軸、Ｙ軸、Ｚ軸）
１０２０    オフセット補正部
１０３０    オフセット算出部
１０４０    方位角演算部
１００    スマートフォン
２００    タブレット端末
３００    スマートウォッチ
４００    車両
【図１】
2018004613.tif 000030
【図２】
2018004613.tif 000031
【図３】
2018004613.tif 000032
【図４】
2018004613.tif 000033
【図５Ａ】
2018004613.tif 000034
【図５Ｂ】
2018004613.tif 000035
【図６Ａ】
2018004613.tif 000036
【図６Ｂ】
2018004613.tif 000037
【図７】
2018004613.tif 000038
【図８】
2018004613.tif 000039
【図９】
2018004613.tif 000040
【図１０】
2018004613.tif 000041
【図１１】
2018004613.tif 000042
【図１２】
2018004613.tif 000043
【図１３】
2018004613.tif 000044
【図１４】
2018004613.tif 000045
【図１５】
2018004613.tif 000046
【図１６】
2018004613.tif 000047
【図１７】
2018004613.tif 000048
【図１８】
2018004613.tif 000049
【図１９】
2018004613.tif 000050
【図２０】
2018004613.tif 000051
【図２１】
2018004613.tif 000052
【図２２】
2018004613.tif 000053
【図２３】
2018004613.tif 000054
【図２４】
2018004613.tif 000055
【図２５】
2018004613.tif 000056
【図２６】
2018004613.tif 000057
【図２７】
2018004613.tif 000058
【図２８】
2018004613.tif 000059
【図２９】
2018004613.tif 000060
【図３０】
2018004613.tif 000061
【図３１】
2018004613.tif 000062
【図３２】
2018004613.tif 000063