"互いに直交する3方向の磁気成分を検出し、3軸の座標系においてベクトルデータとして表現される磁気データを順次出力する3次元磁気センサを含む、複数のセンサと、前記3次元磁気センサの温度を検出して温度データを順次出力する温度検出部と、を備えた機器に組み込まれ、システムの状態を推定する状態推定装置に用いられるカルマンフィルタであって、前記3次元磁気センサのオフセットを推定した値を示すオフセット推定ベクトルを含む複数の状態変数を要素とする状態ベクトルを、システムの経時的な変化を表す状態遷移モデルに対して適用することで、単位時間経過後の前記状態ベクトルを推定し、これを推定状態ベクトルとして算出する、状態遷移モデル部と、前記複数のセンサの出力値の各々を要素とする観測値ベクトルに基づいて観測残差を算出し、前記推定状態ベクトルと、前記観測残差とに基づいて、前記状態ベクトルを更新し、これを更新後の状態ベクトルとして算出する、更新部と、を備え、前記単位時間における、前記温度データの変化量を、温度変化量としたとき、前記状態遷移モデルで規定されるプロセスノイズの共分散のうち、前記オフセット推定ベクトルに生じるプロセスノイズの共分散の各成分を、前記温度変化量に基づいて定める、ことを特徴とする、カルマンフィルタ。複数のセンサと、前記複数のセンサのうち、1以上のセンサの各々の温度を検出し、前記1以上のセンサの各々に対応する温度データを出力する温度検出部と、を備えた機器に組み込まれ、システムの状態を推定する状態推定装置に用いられるカルマンフィルタであって、前記複数のセンサのうち前記1以上のセンサの各々のオフセットを推定した値を要素とするベクトルをオフセット推定ベクトルとしたとき、前記オフセット推定ベクトルを含む複数の状態変数を要素とする状態ベクトルを、システムの経時的な変化を表す状態遷移モデルに対して適用することで、単位時間経過後の前記状態ベクトルを推定し、これを推定状態ベクトルとして算出する、状態遷移モデル部と、前記複数のセンサの出力値の各々を要素とする観測値ベクトルに基づいて観測残差を算出し、前記推定状態ベクトルと、前記観測残差とに基づいて、前記状態ベクトルを更新し、これを更新後の状態ベクトルとして算出する、更新部と、を備え、前記状態遷移モデルで規定されるプロセスノイズの共分散のうち、前記オフセット推定ベクトルに生じるプロセスノイズの共分散の各成分を、前記単位時間における、1以上の前記温度データの各々の温度変化量に基づいて定める、ことを特徴とする、カルマンフィルタ。前記複数のセンサには、互いに直交する3方向の磁気成分を検出し、3軸の座標系においてベクトルデータとして表現される磁気データを順次出力する3次元磁気センサと、互いに直交する3軸の周りの角速度を検出し、3軸の座標系においてベクトルデータとして表現される角速度データを順次出力する3次元角速度センサとが含まれ、前記1以上のセンサには、前記3次元磁気センサ、または、前記3次元角速度センサのうち、少なくとも一方が含まれる、ことを特徴とする、請求項2に記載のカルマンフィルタ。請求項1乃至3のうちいずれか1項に記載のカルマンフィルタと、各々の出力が前記観測値ベクトルの要素となる前記複数のセンサと、前記複数のセンサのうち1以上のセンサの温度を各々検出し、前記1以上のセンサに対応する1以上の前記温度データを出力する温度検出部とを備えることを特徴とする状態推定装置。前記温度検出部は、前記複数のセンサのうち前記1以上のセンサの内部に配置されることを特徴とする、請求項4に記載の状態推定装置。ところで、地磁気センサや角速度センサ等のセンサは、検出対象となる成分以外の成分を検出する場合がある。この場合、センサの検出対象である成分を正確に求めるためには、センサの出力値から、検出対象となる成分以外の成分を取り除く補正処理が必要となる。この補正処理において取り除かれる成分を、センサのオフセットと呼ぶ。センサのオフセットは、センサの温度変化に伴い変化する場合がある。センサに急激な温度変化が生じ、センサのオフセットが急激に変化する場合、状態ベクトルの各要素の示す値と真値とが乖離し、カルマンフィルタは、動的システムの状態を正確に推定することができなくなる場合がある。本発明は、上述した点に鑑みてなされたものであり、センサに温度変化が生じる場合に、正確な状態推定を行うことができるカルマンフィルタの提供を解決課題とする。上述した課題を解決するため、本発明に係るカルマンフィルタは、互いに直交する3方向の磁気成分を検出し、3軸の座標系においてベクトルデータとして表現される磁気データを順次出力する3次元磁気センサを含む、複数のセンサと、前記3次元磁気センサの温度を検出して温度データを順次出力する温度検出部と、を備えた機器に組み込まれ、システムの状態を推定する状態推定装置に用いられるカルマンフィルタであって、前記3次元磁気センサのオフセットを推定した値を示すオフセット推定ベクトルを含む複数の状態変数を要素とする状態ベクトルを、システムの経時的な変化を表す状態遷移モデルに対して適用することで、単位時間経過後の前記状態ベクトルを推定し、これを推定状態ベクトルとして算出する、状態遷移モデル部と、前記複数のセンサの出力値の各々を要素とする観測値ベクトルに基づいて観測残差を算出し、前記推定状態ベクトルと、前記観測残差とに基づいて、前記状態ベクトルを更新し、これを更新後の状態ベクトルとして算出する、更新部と、を備え、前記単位時間における、前記温度データの変化量を、温度変化量としたとき、前記状態遷移モデルで規定されるプロセスノイズの共分散のうち、前記オフセット推定ベクトルに生じるプロセスノイズの共分散の各成分を、前記温度変化量に基づいて定める、ことを特徴とする。この発明によれば、3次元磁気センサのオフセット推定値を状態ベクトルの要素状態変数とするカルマンフィルタの演算において、状態遷移モデルで規定されるプロセスノイズの共分散を、3次元磁気センサの温度変化量に基づいて定める。3次元磁気センサのオフセットは、3次元磁気センサの温度変化に伴い、変化する。従って、3次元磁気センサに温度変化が生じ、3次元磁気センサのオフセットが変化する場合、カルマンフィルタの演算で用いる状態ベクトルのうち、3次元磁気センサのオフセットを推定する状態変数の示す値が、真値から乖離する。これに対して、本発明に係るカルマンフィルタは、状態遷移モデルにおいて規定されるプロセスノイズの共分散を、3次元磁気センサの温度変化量に基づいて定め、3次元磁気センサの温度変化に伴い生じる3次元磁気センサのオフセットの変化を考慮して状態ベクトルの更新を行うため、正確な状態推定が可能となる。また、本発明に係るカルマンフィルタは、複数のセンサと、前記複数のセンサのうち、1以上のセンサの各々の温度を検出し、前記1以上のセンサの各々に対応する温度データを出力する温度検出部と、を備えた機器に組み込まれ、システムの状態を推定する状態推定装置に用いられるカルマンフィルタであって、前記複数のセンサのうち前記1以上のセンサの各々のオフセットを推定した値を要素とするベクトルをオフセット推定ベクトルとしたとき、前記オフセット推定ベクトルを含む複数の状態変数を要素とする状態ベクトルを、システムの経時的な変化を表す状態遷移モデルに対して適用することで、単位時間経過後の前記状態ベクトルを推定し、これを推定状態ベクトルとして算出する、状態遷移モデル部と、前記複数のセンサの出力値の各々を要素とする観測値ベクトルに基づいて観測残差を算出し、前記推定状態ベクトルと、前記観測残差とに基づいて、前記状態ベクトルを更新し、これを更新後の状態ベクトルとして算出する、更新部と、を備え、前記状態遷移モデルで規定されるプロセスノイズの共分散のうち、前記オフセット推定ベクトルに生じるプロセスノイズの共分散の各成分を、前記単位時間における、1以上の前記温度データの各々の温度変化量に基づいて定める、ことを特徴としてもよい。この発明によれば、1以上のセンサの各々のオフセットを推定した値を要素に含む状態ベクトルを更新するカルマンフィルタの演算において、状態遷移モデルで規定されるプロセスノイズの共分散が、1以上のセンサの各々の温度変化量に基づいて定められる。この場合、1以上のセンサの各々に生じる温度変化に伴う、1以上のセンサの各々のオフセットの変化を考慮して、状態ベクトルの更新を行うことが可能となるため、正確な状態推定が可能となる。また、上述したカルマンフィルタにおいて、前記複数のセンサには、互いに直交する3方向の磁気成分を検出し、3軸の座標系においてベクトルデータとして表現される磁気データを順次出力する3次元磁気センサと、互いに直交する3軸の周りの角速度を検出し、3軸の座標系においてベクトルデータとして表現される角速度データを順次出力する3次元角速度センサとが含まれ、前記1以上のセンサには、前記3次元磁気センサ、または、前記3次元角速度センサのうち、少なくとも一方が含まれる、ことを特徴とすることが好ましい。この発明によれば、3次元磁気センサと3次元角速度センサとを備える機器に組み込まれた状態推定装置が行うカルマンフィルタの演算において、3次元磁気センサまたは3次元角速度センサに温度変化が生じても、正確な状態推定を行うことが可能となる。また、本発明に係る状態推定装置は、上述したカルマンフィルタのうちいずれかのカルマンフィルタと、各々の出力が前記観測値ベクトルの要素となる前記複数のセンサと、前記複数のセンサのうち1以上のセンサの温度を各々検出し、前記1以上のセンサに対応する1以上の前記温度データを出力する温度検出部とを備えることを特徴とする。この発明によれば、1以上のセンサの各々のオフセットを推定した値を要素に含む状態ベクトルを更新するカルマンフィルタの演算において、状態遷移モデルで規定されるプロセスノイズの共分散が、1以上のセンサの各々の温度変化量に基づいて定められる。この場合、状態推定装置は、1以上のセンサの各々に生じる温度変化に伴い生じる、1以上のセンサの各々のオフセットの変化を考慮して、状態ベクトルの更新を行うことが可能となるため、正確な状態推定が可能となる。また、上述した状態推定装置において、前記温度検出部は、前記複数のセンサのうち前記1以上のセンサの内部に配置されることを特徴とすることが好ましい。本発明において、1以上のセンサの各々の温度を検出する温度検出部は、1以上のセンサの各々の内部にそれぞれ配置されるものであってもよいし、1以上のセンサの外部に配置されるものであってもよい。すなわち、温度検出部は、1以上のセンサの各々の温度を検出し、単位時間毎に1以上のセンサの各々に対応する温度データを出力するものであればよい。温度検出部が1以上のセンサの内部に配置される場合、または、外部に配置される場合のいずれの場合であっても、状態推定装置は、1以上のセンサの各々に生じる温度変化に伴い生じる、1以上のセンサの各々のオフセットの変化を考慮して、状態ベクトルの更新を行うことが可能となるため、正確な状態推定が可能となる。<A.実施形態>本発明の実施の形態について図面を参照して説明する。[1.機器構成及びソフトウェア構成について]図1は、本発明の実施形態に係る携帯機器のブロック図であり、図2は携帯機器の外観を示す斜視図である。携帯機器1は、画面の姿勢に応じて地図などの画像を回転させることによって、画像によって表されている方位を現実空間の方位に追従させる機能を備える。この機能は、各種センサの出力に基づいてカルマンフィルタの演算を行い、携帯機器1の姿勢と、携帯機器1から見た地磁気Bgの向きとを推定することによって実現される。携帯機器1は、各種の構成要素とバスを介して接続され装置全体を制御するCPU10、CPU10の作業領域として機能するRAM蓄積部20、状態推定プログラム100等の各種のプログラムやデータを記憶したROM30、通信を実行する通信部40、画像を表示する表示部50、及びGPS部60を備える。また、携帯機器1は、地磁気Bg等の磁気を検出して磁気データを出力する3次元磁気センサ70、加速度を検出して加速度データを出力する3次元加速度センサ80、及び角速度を検出して角速度データを出力する3次元角速度センサ90を備える。表示部50は、CPU10が状態推定プログラム100を実行することにより推定したシステムの状態に基づいて算出された地磁気Bgの向きや携帯機器1の姿勢μ等を、矢印等の画像により表示する。GPS部60は、GPS衛星からの信号を受信して携帯機器1の位置情報緯度、経度を生成する。3次元磁気センサ70は、X軸磁気センサ71、Y軸磁気センサ72、及びZ軸磁気センサ73を備える。各センサは、MI素子磁気インピーダンス素子、MR素子磁気抵抗効果素子などを用いて構成することができる。磁気センサI/F74は、X軸磁気センサ71、Y軸磁気センサ72、及び、Z軸磁気センサ73からの出力信号をAD変換して磁気データmを出力する。この磁気データmは、x軸、y軸およびz軸の3成分によって表されるベクトルデータである。より具体的には、磁気データmは、3次元磁気センサ70に固定された座標系以下、センサ座標系ΣSと称するにおいて、X軸磁気センサ71からの出力値をx軸成分として表し、Y軸磁気センサ72からの出力値をy軸成分として表し、Z軸磁気センサ73からの出力値をz軸成分として表すベクトルデータである。また、3次元磁気センサ70は、3次元磁気センサ70の温度を検出する第1温度検出部75を備える。磁気センサI/F74は、第1温度検出部75からの出力信号をAD変換して温度データTmを出力する。すなわち、第1温度検出部75は、携帯機器1の備えるセンサの温度を検出する温度検出部として機能する。ところで、3次元磁気センサ70が検出する磁気データmには、地磁気Bgが含まれる。地磁気Bgは、磁極北に向かう水平成分と伏角方向の鉛直成分を有する磁界であり、地上のある一点に固定された座標系以下、地上座標系ΣGと称するにおいて、一定の向き及び大きさを有するベクトルGBgとして表されるなお、ベクトルの符号の左上に示す添え字Gは、当該ベクトルが地上座標系ΣGで表されたベクトルであることを意味する。つまり、センサ座標系ΣSにおいて、地磁気Bgは、携帯機器1の姿勢μに連動して向きを変える、一定の大きさのベクトルSBgμとして表されるなお、ベクトルの符号の左上に示す添え字Sは、当該ベクトルがセンサ座標系ΣSで表されたベクトルであることを意味する。従って、センサ座標系ΣSにおいて地磁気Bgを表すベクトルSBgμを算出することで、携帯機器1の姿勢μを求めることができる。一方、3次元磁気センサ70が搭載される携帯機器1は、着磁性を有する各種金属や、電気回路等、磁界を発生させる部品が備えられることが多い。このため、3次元磁気センサ70が出力するベクトルデータ磁気データmは、地磁気Bgを表すベクトルと、携帯機器1に搭載された部品が発する磁界内部磁界Biを表すベクトルとを加算したベクトルとなる。従って、センサ座標系ΣSにおける地磁気Bgを表すベクトルSBgμを算出し、携帯機器1から見た地磁気Bgの向きを正確に求めるためには、センサ座標系ΣSにおいて、3次元磁気センサが出力する磁気データmの示す座標から、携帯機器1の部品が発する内部磁界Biを表すベクトルSBiを減算する補正処理が必要となる。このように、検出対象である地磁気Bgの正確な向きを特定するために、補正処理において、3次元磁気センサ70から出力される磁気データmから取り除かれる内部磁界Biを表すベクトルSBiを、3次元磁気センサ70のオフセットと呼ぶ。3次元加速度センサ80は、X軸加速度センサ81、Y軸加速度センサ82、及びZ軸加速度センサ83を備える。各センサは、ピエゾ抵抗型、静電容量型、熱検知型などのような検知方式であってもよい。加速度センサI/F84は、各センサからの出力信号をAD変換して加速度データaを出力する。この加速度データaは、3次元加速度センサ80と一体となって運動する携帯機器1に固定された座標系における慣性力と重力との合力を、x軸、y軸及びz軸の3成分を有するベクトルとして示すデータである。従って、携帯機器1が静止状態または等速直線運動状態にあれば、加速度データaは、携帯機器1に固定された座標系において重力加速度の大きさと方向とを示すベクトルデータとなる。3次元角速度センサ90は、X軸角速度センサ91、Y軸角速度センサ92、及びZ軸角速度センサ93を備える。角速度センサI/F94は、各センサからの出力信号をAD変換して角速度データgを出力する。角速度データgは、各軸の回りの角速度を示すベクトルデータである。CPU10は、ROM30に格納されている状態推定プログラム100を実行することによって、携帯機器1の姿勢や3次元磁気センサ70のオフセット等のシステムの状態を表す複数の物理量を推定する。すなわち、携帯機器1は、CPU10が状態推定プログラム100を実行することにより、状態推定装置として機能する。図3は、状態推定装置のうち、CPU10が状態推定プログラム100を実行することにより実現される機能を表した機能ブロック図である。図3に示すように、状態推定装置は、初期値生成部200、カルマンフィルタ演算部300、及び出力情報生成部500を備える。初期値生成部200は、各種設定情報に基づき、初期ベクトルINIを生成し、これを出力する。カルマンフィルタ演算部300は、3次元磁気センサ70から出力される磁気データm、3次元加速度センサ80から出力される加速度データa、及び3次元角速度センサ90から出力される角速度データgを要素とする観測値ベクトルyを用いて、初期ベクトルINIを初期値とする状態ベクトルxを逐次更新する非線形カルマンフィルタの演算を実行することで、システムの状態を推定する。出力情報生成部500は、カルマンフィルタ演算部300から周期的に出力される状態ベクトルxに基づいて、地磁気Bgの向き等の出力情報を算出する。ここで、状態ベクトルxとは、複数の状態変数を要素とするベクトルである。状態ベクトルxの要素である複数の状態変数の各々は、非線形カルマンフィルタが推定するシステムの状態を示す複数の物理量を表す。すなわち、状態ベクトルxは、非線形カルマンフィルタが推定するシステムの状態を表すベクトルである。本実施形態は、状態ベクトルxの要素状態変数として、携帯機器1の姿勢μ、地磁気の強さr、地磁気の伏角φ、携帯機器1の角速度ω、3次元角速度センサ90のオフセット推定値gOFF、及び3次元磁気センサ70のオフセット推定値mOFFを採用し、これらを推定の対象とする。時刻T=kにおける状態ベクトルxkは、以下の式1で表される。なお、各種変数、ベクトル、行列等の右下に付された添え字kは、当該各種変数、ベクトル、行列等の時刻T=kにおける値であることを意味する。ここで、地磁気の強さrはスカラーであり、地磁気の伏角φはスカラーであり、角速度ωは3次元ベクトルであり、3次元角速度センサ90のオフセット推定値gOFFは3次元ベクトルであり、3次元磁気センサ70のオフセット推定値mOFFは3次元ベクトルである。また、姿勢μは、クォータニオンを用いて表現される。クォータニオンとは、物体の姿勢回転状態を表す4次元数である。例えば、センサ座標系ΣSの各軸と、地上座標系ΣGの各軸とが一致する姿勢μを基準姿勢と定義し、基準姿勢をμ=0、0、0、1と表現する。このとき、携帯機器1の任意の姿勢μは、基準姿勢に対して単位ベクトルρの方向を回転軸として角度ψだけ回転した姿勢として表現できる。回転後の姿勢μは、クォータニオンを用いて、式2で与えられる。観測値ベクトルyとは、3次元磁気センサ70から出力される磁気データm、3次元加速度センサ80から出力される加速度データa、及び、3次元角速度センサ90から出力される角速度データgを要素とするベクトルである。時刻T=kにおける観測値ベクトルykは式3で与えられる。カルマンフィルタ演算部300は、上述した状態ベクトルxkと観測値ベクトルykとを用いた非線形カルマンフィルタの演算を実行して、状態ベクトルxkの各要素が真値に近づくように状態ベクトルxkを周期的に更新することで、システムの状態を表す複数の物理量を推定する。ここで、真値とは、状態ベクトルxkの各要素に対応する実際の物理量を表す値である。また、以下では、状態ベクトルxkの各要素を真値としたベクトルを、状態ベクトルの真値と称する。なお、非線形カルマンフィルタの演算の詳細については、後述する。初期値生成部200は、初期ベクトルINIを生成し、これを出力する。初期ベクトルINIは、以下の式4に示すように、状態ベクトルxkの初期値、つまり時刻T=0における状態ベクトルx0であり、姿勢μの初期値μ0、地磁気の強さrの初期値r0、地磁気の伏角φの初期値φ0、角速度ωの初期値ω0、3次元角速度センサ90のオフセット推定値gOFFの初期値gOFF0、及び3次元磁気センサ70のオフセット推定値mOFFの初期値mOFF0を要素として含む。なお、初期ベクトルINIの各要素は、真値から大きく乖離しないように適宜定めればよい。以下では、初期ベクトルINIの各要素の設定例を示す。地磁気の強さrの初期値r0、及び地磁気の伏角φの初期値φ0は、例えば、GPS部60から供給される位置情報に基づいて生成することができる。これは、地球上の位置が特定できれば、その位置における地磁気の強さ及び伏角を知ることができるからである。具体的には、ROM30には、位置情報と地磁気の強さ及び伏角とを対応づけて記憶したルックアップテーブルLUT1が格納される。初期値生成部200は、ルックアップテーブルLUT1を参照して、位置情報に対応する地磁気の強さ及び伏角を、地磁気の強さrの初期値r0及び地磁気の伏角φの初期値φ0として設定する。なお、携帯機器1が衛星からの電波の届かない場所例えば、地下街にある場合には、GPS部60から位置情報が得られない。そのような場合には、携帯機器1が使われ得る地域の典型的な値を採用すればよい。その値もルックアップテーブルLUT1に格納されている。初期値生成部200は、位置情報の取得が不能な場合には、典型的な値をルックアップテーブルLUT1から読み出す。例えば、日本で販売された携帯機器1については、明石市の地磁気の強さ及び伏角に基づいて、地磁気の強さrの初期値r0、及び地磁気の伏角φの初期値φ0を算出する。角速度ωの初期値ω0は、例えば、携帯機器1が静止していることを仮定して、0に設定する。また、3次元角速度センサ90のオフセット推定値gOFFの初期値gOFF0は、通常0近辺に調整されているため、0に設定する。姿勢μの初期値μ0は、例えば、携帯機器1が一定方向に向いて静止していることを仮定して、実際の初期姿勢とのずれを小さくするような値を設定する。3次元磁気センサ70のオフセット推定値mOFFの初期値mOFF0は、時刻T=0に3次元磁気センサ70から出力される磁気データm0、地上座標系ΣGにおいて地磁気Bgを表したベクトルGBg、及び、行列Bμを用いて、以下に示す式5により算出される。ここで、行列Bμは、携帯機器1が姿勢μである場合に、地上座標系ΣGにおいて表現されたベクトルを、センサ座標系ΣSで表現するための座標変換行列であり、以下の式6で表される。また、時刻T=0における地磁気Bgを地上座標系ΣGから表したベクトルGBgは、地磁気の強さrの初期値r0と、地磁気の伏角φの初期値φ0とを用いて、以下の式7で表される。なお、本実施形態では、地上座標系ΣGを、y軸が磁極北を向き、z軸が鉛直上を向くように定める。このように、初期値生成部200は、初期ベクトルINIを生成しこれを出力する。そして、カルマンフィルタ演算部300は、初期ベクトルINIを初期値とする状態ベクトルxkを更新する非線形カルマンフィルタの演算を実行することで、システムの状態を推定する。以下では、カルマンフィルタ演算部300が行う非線形カルマンフィルタの演算の詳細について説明する。[2.非線形カルマンフィルタによる演算について]一般的にカルマンフィルタは、動的システムの状態の経時的な変化を表す状態遷移モデルを用いて、ある時刻時刻T=k-1のシステムの状態を示す状態ベクトルxk-1から単位時間が経過した後時刻T=kの状態ベクトルxkを推定する。この推定値を、推定状態ベクトルx-kと称する。そして、カルマンフィルタは、各種センサからの出力を要素とする観測値ベクトルykと状態ベクトルxkとの関係を表す観測モデルを用いて、推定状態ベクトルx-kから観測値ベクトルykを推定する。この推定値を、推定観測値ベクトルy-kと称する。次に、カルマンフィルタは、推定観測値ベクトルy-kと、実際の観測値を要素とする観測値ベクトルykとの差分を観測残差zkとして算出し、観測残差zkに基づいてカルマンゲインKkを算出する。さらに、カルマンフィルタは、観測残差zk、カルマンゲインKk、及び、推定状態ベクトルx-kを用いて、状態ベクトルxk-1を更新することにより、更新後の状態ベクトルxkを算出する。以上のような状態ベクトルxkの更新を繰り返すカルマンフィルタの演算により、状態ベクトルxkの各要素を実際の物理量を正確に表した値真値に近い正確な値へと近付ける。なお、詳細は後述するが、本実施形態ではカルマンフィルタとして、非線形カルマンフィルタであるシグマポイントカルマンフィルタを用いる。シグマポイントカルマンフィルタは、まず、状態ベクトルxk-1の周囲に複数のシグマポイントχk-1を設定し、これらの複数のシグマポイントχk-1を状態遷移モデルに適用することで、単位時間経過後の複数のシグマポイントを推定する。この推定された複数のシグマポイントを、推定シグマポイントχ-kと称する。次に、シグマポイントカルマンフィルタは、複数の推定シグマポイントχ-kの平均を算出することにより、推定状態ベクトルx-kを求める。従って、シグマポイントカルマンフィルタを用いてカルマンフィルタの演算を実行する場合、推定観測値ベクトルy-kは、厳密には、推定状態ベクトルx-kの周辺に存在する複数の推定シグマポイントχ-kに基づいて算出される。本実施形態における、非線形カルマンフィルタの状態遷移モデルは以下に示す式8で与えられ、観測モデルは以下に示す式9で与えられる。なお、本実施形態では、式8に現れる状態方程式f、および、式9に現れる観測方程式hは、非線形の関数である。ここで、状態ベクトルxkはdimx次元のベクトルであり、観測値ベクトルykはdimy次元のベクトルである。本実施形態では、dimx=15であり、dimy=9である。ここで、P-kは、推定状態ベクトルx-kの推定誤差の共分散であり、Pkは、更新後の状態ベクトルxkの推定誤差の共分散である。また、Pyykは、観測残差zkの共分散であり、Pxykは、推定状態ベクトルx-kと、推定観測値ベクトルy-kとの相互共分散行列である。また、式8に現れるプロセスノイズwk及び式9に現れる観測ノイズvkは0を中心とするガウスノイズである。式8は、時刻T=kにおける状態ベクトルxkが、時刻T=k-1における状態ベクトルxk-1を状態方程式fに代入して得られた値と、時刻T=k-1におけるプロセスノイズwk-1とを加算することにより推定されることを示している。また、式9は、時刻T=kにおける観測値ベクトルykが、時刻T=kにおける状態ベクトルxkを観測方程式hに代入して得られる値と、時刻T=kにおける観測ノイズvkとを加算することにより推定されることを示している。なお、プロセスノイズwkの共分散をQk、観測ノイズvkの共分散をRkと表す。プロセスノイズwkの共分散Qkは、以下の式10に示すように、行列Qcst,1、行列Qcst,2、及び、行列Qm,kにより構成される15行15列の対称行列である。ここで、行列Qcst,1は、12行12列の対称行列であり、行列Qcst,1の各成分は定数である。この行列Qcst,1は、状態遷移モデルにおいて状態ベクトルxkに生じるプロセスノイズwkのうち、3次元磁気センサ70のオフセット推定値mOFF,k以外の要素に生じるプロセスノイズの共分散を表す行列である。行列Qcst,2は、12行3列の零行列である。行列Qm,kは、3行3列の対称行列であり、状態遷移モデルにおいて状態ベクトルxkに生じるプロセスノイズwkのうち、3次元磁気センサ70のオフセット推定値mOFF,kに生じるプロセスノイズの共分散を表す行列である。行列Qm,kは、以下の式11に示すように、3次元磁気センサ70の温度変化量ΔTm,kに基づいて定められる。なお、式11に現れる係数αmは、正の実数である。また、行列Qcst,mは、3次元磁気センサ70に温度変化が生じても3次元磁気センサ70のオフセットが変化しないと仮定した状態遷移モデルにおいて、状態ベクトルxkに生じるプロセスノイズwkのうち、3次元磁気センサ70のオフセット推定値mOFF,kに生じるプロセスノイズの共分散を表す行列である。本実施形態では、行列Qcst,mの各成分は定数とする。また、式12に示すように、温度変化量ΔTm,kは、時刻T=kにおける温度データTm,kと、時刻T=k-1における温度データTm,k-1との差分の絶対値を表す。なお、温度変化量ΔTmに対して添え字kを付す場合には、時刻T=kと時刻T=k-1との間に生じる、3次元磁気センサ70の温度変化量の絶対値であることを表す。3次元磁気センサ70のオフセットは、3次元磁気センサ70の温度変化に伴い、変化する。より具体的には、3次元磁気センサ70のオフセットの変化の大きさは、3次元磁気センサ70の温度変化量ΔTm,kの大きさに基づいて定められる。詳細は後述するが、3次元磁気センサ70のオフセットの経時的な変化を定式化することは難しい。つまり、3次元磁気センサ70のオフセットの経時的な変化を、3次元磁気センサ70の温度変化まで考慮したうえで、状態方程式fとして定式化することは難しい。状態方程式fが3次元磁気センサ70の温度変化を考慮していない場合、状態遷移モデルは、3次元磁気センサ70に温度変化が生じたときに、状態推定装置が推定するシステムの経時的な変化を正確に表現することができなくなる。そして、状態遷移モデルが、システムの経時的な変化を正確に表現していない場合、状態遷移モデルを信頼して状態ベクトルxkを更新すると、状態ベクトルxkの各要素特に、3次元磁気センサ70のオフセット推定値mOFF,kは、真値から乖離した値となる可能性が高い。このように、状態ベクトルxkの各要素が真値から乖離した値となる場合、状態推定装置は、システムの状態を正確に推定できない。また、状態ベクトルxkの各要素が真値から乖離した値となった場合、その後、非線形カルマンフィルタの演算を繰り返しても、状態ベクトルxkの各要素が真値に近い値に収束するまでに長い時間を要することになる。これに対して、本実施形態では、式11に示した通り、プロセスノイズwkの共分散Qkのうち、3次元磁気センサ70のオフセット推定値mOFFに対応する成分である行列Qm,kを、3次元磁気センサ70の温度変化量ΔTm,kに基づいて定める。この場合、状態遷移モデルは、状態方程式fにおいて定式化することができない3次元磁気センサ70の温度変化に伴う3次元磁気センサ70のオフセットの変化を、プロセスノイズwkとして考慮する。これにより、本実施形態に係る状態推定装置は、状態遷移モデルと、状態推定装置が推定するシステムの経時的な変化との間に存在する誤差を考慮しつつ、状態ベクトルxkの更新を行うことができるため、更新後の状態ベクトルxkの各要素が真値から乖離する可能性を低減させることが可能となる。なお、センサのオフセットを推定する値を表す状態変数のうち、当該センサの温度変化量に基づいて、当該状態変数に生じるプロセスノイズの共分散が定められる状態変数を、オフセット推定ベクトルと称する場合がある。本実施形態では、センサのオフセットを推定する値を表す状態変数が、3次元角速度センサ90のオフセット推定値gOFF、及び3次元磁気センサ70のオフセット推定値mOFFであるのに対して、センサの温度変化量に基づいて状態変数に生じるプロセスノイズの共分散が定められる状態変数は、3次元磁気センサ70のオフセット推定値mOFFである。つまり、本実施形態では、3次元磁気センサ70のオフセット推定値mOFFが、オフセット推定ベクトルに該当する。時刻T=kにおける観測残差zkは、実際の観測値ベクトルykと、推定観測値ベクトルy-kとに基づいて定められるベクトルであり、以下に示す式13で表される。カルマンフィルタは、以下の式15に示すように、観測残差zk、推定状態ベクトルx-k、及び、式14に示すカルマンゲインKkを用いて、更新後の状態ベクトルxkを算出する。また、カルマンフィルタは、以下の式16に示すように、状態ベクトルxkの推定誤差の共分散Pkを更新する。ここで、P-kは、推定状態ベクトルx-kの推定誤差の共分散であり、Pkは、更新後の状態ベクトルxkの推定誤差の共分散である。また、Pyykは、観測残差zkの共分散であり、Pxykは、推定状態ベクトルx-kと、推定観測値ベクトルy-kとの相互共分散行列である。なお、推定観測値ベクトルy-kは、推定状態ベクトルx-k厳密には、推定シグマポイントχ-kを、式9に示す観測モデルに適用することで算出される値である。よって、推定観測値ベクトルy-kと実際のセンサ出力に基づく観測値ベクトルykとの差分である観測残差zkは、推定状態ベクトルx-kと実際の物理量を正確に表した値真値との近似度を示す値である。従って、式15に示すように、観測残差zkを用いて、推定状態ベクトルx-kを、更新後の状態ベクトルxkへと更新することにより、状態ベクトルxkの各要素を真値に近い値へと近付けることができる。カルマンフィルタ演算部300は、アンセンテッド変換を用いたシグマポイントカルマンフィルタを用いて、非線形カルマンフィルタの演算を実行する。図3に示すように、遅延部310は、加算器390から出力される更新後の状態ベクトルxkを、単位時間時刻T=k-1から時刻T=kに相当する時間だけ遅延させることで、状態ベクトルxk-1を生成し、これを、シグマポイント生成部320に対して出力する。なお、初回の演算時刻T=0における演算では、遅延部310は、初期値生成部200が出力する初期ベクトルINIを、状態ベクトルxk-1に適用する。シグマポイント生成部320は、3次元磁気センサ70が順次出力する温度データTm,kを式11に適用し、行列Qm,k-1を算出することで、式10に示すプロセスノイズwkの共分散Qk-1を算出する。また、シグマポイント生成部320は、dimx行dimx列の共分散行列Pk-1及びQk-1を用いて、2dimx1個のシグマポイントを生成する。具体的には、まず、複数のシグマポイントの平均に対して、平均のまわりのシグマポイントの広がりを表すスケーリングパラメータλを用いて、式17及び式18に示すベクトルσk1~σk2dimxを定義する。このとき、シグマポイント生成部320は、ベクトルσk-1と状態ベクトルxk-1とに基づいて、式19及び式20で示される2dimx1個のシグマポイントχk-10~χk-12dimxを生成する。状態遷移演算部330は、式21に示すように、時刻T=k-1における2dimx1個のシグマポイントχk-10~χk-12dimxの各々を、状態方程式fに適用することにより、時刻T=kにおける2dimx1個の推定シグマポイントχ-k0~χ-k2dimxを算出する。次に、推定状態ベクトル算出部340は、式22に示すように、時刻T=kにおける2dimx1個の推定シグマポイントχ-k0~χ-k2dimxの平均値を計算することで、推定状態ベクトルx-kを算出する。また、推定状態ベクトル算出部340は、式23に示すように、推定状態ベクトルx-kの推定誤差の共分散P-kを算出する。ここで、ベクトルξjは、以下の式24に示す、推定シグマポイントχ-kjと推定状態ベクトルx-kとの差分を表すベクトルである。このように、シグマポイント生成部320、状態遷移演算部330、及び、推定状態ベクトル算出部340は、状態遷移モデルにおいて状態ベクトルxk-1に生じるプロセスノイズwkの共分散Qk-1を算出するとともに、状態ベクトルxk-1を状態遷移モデルに適用することで推定状態ベクトルx-kを算出する、状態遷移モデル部410として機能する。一方、推定観測値算出部350は、式25に示すように、時刻T=kにおける2dimx1個の推定シグマポイントχ-k0~χ-k2dimxの各々を、観測方程式hに適用することにより、2dimx1個の推定観測値γk0~γk2dimxを算出する。そして、推定観測値ベクトル算出部360は、式26に示すように、2dimx1個の推定観測値γk0~γk2dimxの平均を演算することにより、推定観測値ベクトルy-kを算出する。また、推定観測値ベクトル算出部360は、式27に示すように、観測残差の共分散Pyykを算出する。ここで、ベクトルζjは、以下の式28に示すように、推定観測値γkjと推定観測値ベクトルy-kとの差分を表すベクトルである。このように、推定観測値算出部350、及び、推定観測値ベクトル算出部360は、推定シグマポイントχ-k0~χ-k2dimxの各々を観測モデルに適用することで推定観測値ベクトルy-kを算出する観測モデル部420として機能する。減算器370は、式13に示したように、観測値ベクトルykと、推定観測値ベクトルy-kとの差分として、観測残差zkを算出する。カルマンゲイン付与部380は、式29に示すように、相互共分散行列Pxykを算出する。そして、カルマンゲイン付与部380は、式14に示したように、観測残差の共分散Pyykと、相互共分散行列Pxykとに基づいて、カルマンゲインKkを算出し、式15の右辺第2項Kkzkの演算を実行する。また、カルマンゲイン付与部380は、式16に示したように、状態ベクトルxkの推定誤差の共分散Pkを、P-kからPkに更新する。加算器390は、式15に示したように、推定状態ベクトルx-kと、カルマンゲイン付与部380から出力される式15の右辺第2項Kkzkとを加算することにより、更新後の状態ベクトルxkを算出する。このように、減算器370、カルマンゲイン付与部380、及び、加算器390は、観測残差zk、カルマンゲインKk、及び、推定状態ベクトルx-kを用いて、状態ベクトルxk-1を更新した更新後の状態ベクトルxkを算出する更新部430として機能する。次に、状態遷移モデル部410において用いられる状態遷移モデルのうち、状態遷移演算部330における演算で用いられる状態方程式fについて説明する。まず、状態方程式fのうち、時刻T=k-1における姿勢μk-1から、単位時間経過後の時刻T=kにおける姿勢μ-kを推定する演算は、以下に示す式30として表される。ここで、μ-kは、時刻kにおける推定状態ベクトルx-kのうち、姿勢μを表す状態変数に対応する要素である。なお、式30の右辺の演算子Ωは、式31により定義される。ここで、I3×3は3行3列の単位行列を表す。3次元ベクトルl=l1,l2,l3に対して、演算子[l×]は、式32で定義される。また、単位時間時刻T=k-1から時刻T=kまでの測定時間間隔をΔtで表し、時刻T=kにおける更新後の状態ベクトルxkのうち角速度を表す状態変数に対応する要素をωkで表したとき、演算子Ωを構成する成分Ψkは、式33で定義される。姿勢μは、クォータニオンで表現され、式2に示すように、正規化条件μ=1を満たす必要がある。しかし、シグマポイントカルマンフィルタを用いて状態ベクトルxkを更新する場合、更新後の状態ベクトルxkは、式22に示すように、推定シグマポイントχ-kjの平均として算出される推定状態ベクトルx-kに基づいて定められるため、更新前の状態ベクトルxk-1のノルムと、更新後の状態ベクトルxkのノルムとは、異なる値となることがある。従って、シグマポイントカルマンフィルタの演算を行う場合、更新前の状態ベクトルxk-1の要素である姿勢μk-1のノルムと、更新後の状態ベクトルxkの要素である姿勢μkのノルムとは、異なる値となる可能性が存在する。つまり、シグマポイントカルマンフィルタの演算を行う場合、姿勢μについての正規化条件が満たされなくなる可能性が存在する。そこで、姿勢μに対して何らかの演算が行われるときには、演算後の結果をそのベクトル自身の大きさで正規化する。なお、より厳密に正規化条件を保つためには、状態ベクトルxkを構成する要素のうち姿勢μkについてはMRPsを用いて前時刻との差分情報だけに限定し、カルマンフィルタの外部にある姿勢情報をカルマンフィルタから得られる差分情報に基づいて更新すればよい。地磁気の強さr及び地磁気の伏角φは、変化を予測することが難しい。そこで、本実施形態に係る状態遷移モデルでは、便宜上、時刻T=kにおける地磁気の強さrk及び伏角φkと、時刻T=k-1における地磁気の強さrk-1及び伏角φk-1とは各々等しい値であると仮定する。同様に、3次元角速度センサ90のオフセット推定値gOFFは、変化を予測することが難しい。そこで、本実施形態に係る状態遷移モデルでは、便宜上、時刻T=kにおける3次元角速度センサ90のオフセット推定値gOFFKと、時刻T=k-1における3次元角速度センサ90のオフセット推定値gOFFK-1とは等しい値であると仮定する。携帯機器1の角速度ωは、携帯機器1の利用者による携帯機器1の動かし方に依存して変化するため、時刻T=k-1の角速度ωk-1を用いて、時刻T=kにおける角速度ωkを定式化することは難しい。そこで、本実施形態に係る状態遷移モデルでは、便宜上、時刻T=kにおける角速度ωkと、時刻T=k-1における角速度ωk-1とは等しいと仮定する。前述の通り、3次元磁気センサ70のオフセットは、携帯機器1の部品が発する内部磁界Biの方向及び大きさをセンサ座標系ΣSにおいて表現したベクトルである。従って、携帯機器1の内部状態が一定である間は、3次元磁気センサ70のオフセットも変化しない。一方、携帯機器1の内部状態が変化した場合、例えば、携帯機器1に搭載された部品を流れる電流の大きさが変化した場合や、携帯機器1に搭載された部品の着磁状況が変化した場合には、3次元磁気センサ70のオフセットも変化する。すなわち、携帯機器1の内部状態は、携帯機器1の利用者による携帯機器1の操作や、携帯機器1の外部の環境等に依存して変化する。従って、3次元磁気センサ70のオフセットが変化するタイミングや3次元磁気センサ70のオフセットの変化量を予測することは困難であり、時刻T=k-1における3次元磁気センサ70のオフセット推定値mOFFK-1を用いて、時刻T=kにおける3次元磁気センサ70のオフセット推定値mOFFKを定式化することは難しい。そこで、本実施形態に係る状態遷移モデルでは、便宜上、時刻T=kにおける3次元磁気センサ70のオフセット推定値mOFFKと、時刻T=k-1における3次元磁気センサ70のオフセット推定値mOFFK-1とは等しいと仮定する。このように、本実施形態に係る状態遷移モデルにおける状態方程式fは、以下に示す式34のように、状態ベクトルxkを構成する複数の状態変数のうち、姿勢μkを表す状態変数以外は、前の時刻から変化しないことを表す方程式として、定式化される。このように、状態ベクトルxkを、状態方程式fに適用した場合、状態ベクトルxkのうち、姿勢μk以外の各要素の示す値は変化しない。しかし、状態ベクトルxkのうち姿勢μk以外の各要素は、加算器390において、観測残差zkに基づいて真値に近づくように更新される。つまり、式15に示すように、状態ベクトルxkの各要素は、状態遷移モデルにより算出される推定状態ベクトルx-kと、複数のセンサからの出力値観測値ベクトルykを用いて算出される観測残差zkとの双方に基づいて、真値に近づくように更新される。式15に示すように、推定状態ベクトルx-k及び観測残差zkの、更新後の状態ベクトルxkに対する寄与の割合は、カルマンゲインKkによって定められる。すなわち、カルマンゲインKkの各成分を適切に定めることができれば、更新後の状態ベクトルxkに占める推定状態ベクトルx-kの割合と、更新後の状態ベクトルxkに占める観測残差zkの割合とが、適切に調整され、更新後の状態ベクトルxkの各要素が真値から乖離することを防止することが可能となる。ところで、状態遷移モデルにおいて用いられる状態方程式が、状態推定装置が推定するシステムの経時的な変化を正確に表すことができない場合、状態方程式を用いて算出された推定状態ベクトルx-kの各要素は、真値から乖離した値となっている可能性が高い。この場合、例えば、カルマンゲインKkの各成分を大きな値とし、式15における第2項Kkzkの各要素を大きな値とすることで、更新後の状態ベクトルxkに占める推定状態ベクトルx-kの割合を相対的に小さくする。これにより、更新後の状態ベクトルxkの各要素が真値から乖離することを防止することが可能となる。本実施形態に係る状態方程式fは、式34に示すように、3次元磁気センサ70のオフセット推定値mOFFが一定の値であること経時的な変化をしないことを表した方程式である。しかし、実際には、3次元磁気センサ70に温度変化が生じた場合、3次元磁気センサ70のオフセット真値は変化する。そして、3次元磁気センサ70のオフセットの変化の大きさは、3次元磁気センサ70の温度変化量ΔTm,kの大きさに基づいて定められる。すなわち、温度変化量ΔTm,kが大きな値となる場合、状態方程式fを用いて算出される3次元磁気センサ70のオフセット推定値mOFFは、3次元磁気センサ70のオフセットの実際の値真値とは乖離した値として算出される。つまり、温度変化量ΔTm,kが大きな値となる場合、状態方程式fは、状態推定装置が推定するシステムを表す物理量の経時的な変化を正確に表現することができない。そこで、本実施形態では、式10、式11、及び式12に示すように、3次元磁気センサ70の温度変化量ΔTm,kに基づいて、プロセスノイズwkの共分散Qkを定める。プロセスノイズwkは、状態方程式fと、状態推定装置が推定するシステムを表す物理量の経時的な変化との間に存在する誤差を表現する。よって、3次元磁気センサ70の温度変化に起因する、状態方程式fと、システムの経時的な変化との間に存在する誤差は、プロセスノイズwk及び、その共分散Qkにより表現することが可能となる。詳細は後述するが、カルマンゲインKkは、プロセスノイズwk-1の共分散Qk-1に基づいて定められる。よって、カルマンゲインKkは、温度変化量ΔTm,k-1に基づいて定められる。その結果、式15に示すカルマンゲインKkを用いた状態ベクトルxkの更新において、更新後の状態ベクトルxkは、3次元磁気センサ70の温度変化に起因して状態方程式fとシステムの経時的な変化との間に生じる誤差を考慮して算出されることになる。すなわち、本実施形態によれば、3次元磁気センサ70の温度変化に起因して、状態方程式fとシステムの経時的な変化との間に誤差が生じた場合であっても、当該誤差を考慮して更新後の状態ベクトルxkが定められるため、更新後の状態ベクトルxkの各要素が真値から乖離する可能性を低減させることが可能となる。以下、カルマンゲインKkが、プロセスノイズwk-1の共分散Qk-1に基づいて定められることについて説明する。まず、式17及び式18に示すように、複数のシグマポイントχk-11~χk-12dimxの平均に対する広がりの大きさは、プロセスノイズwk-1の共分散Qk-1に基づいて定められる。そして、式21、式22、及び式24に示すように、複数のシグマポイントχk-11~χk-12dimxの広がりの大きさに基づいて、ベクトルξ1~ξ2dimxの各々が定められる。また、式23に示すように、推定状態ベクトルx-kの推定誤差の共分散P-kは、ベクトルξ1~ξ2dimxに基づいて定められる。このように、推定状態ベクトルx-kの推定誤差の共分散P-kは、プロセスノイズwk-1の共分散Qk-1に基づいて定められる。同様に、式25、式26、及び式28に示すように、複数のシグマポイントχk-11~χk-12dimxの広がりの大きさに基づいて、ベクトルζ1~ζ2dimxの各々が定められる。そして、式29に示すように、相互共分散行列Pxykは、ベクトルξ1~ξ2dimxと、ベクトルζ1~ζ2dimxとに基づいて定められる。また、式27に示すように、観測残差の共分散Pyykは、ベクトルζ1~ζ2dimxに基づいて定められる。このように、相互共分散行列Pxykと、観測残差の共分散Pyykとは、プロセスノイズwk-1の共分散Qk-1に基づいて定められる。カルマンゲインKkは、式14に示すように、相互共分散行列Pxykと、観測残差の共分散Pyykとに基づいて定められる。従って、カルマンゲインKkは、プロセスノイズwk-1の共分散Qk-1に基づいて定められることになる。仮に、プロセスノイズwk-1の共分散Qk-1が、温度変化量ΔTm,k-1を考慮せずに定められる場合、カルマンゲインKkの各成分も、温度変化量ΔTm,k-1を考慮せずに定められる。この場合、更新後の状態ベクトルxkも、温度変化量ΔTm,k-1を考慮せずに定められるため、更新後の状態ベクトルxkの各要素が、真値から乖離した値となる可能性が高い。これに対して、本実施形態に係る状態推定装置は、上述したように、温度変化量ΔTm,k-1に基づいて、プロセスノイズwk-1の共分散Qk-1を定める。具体的には、状態遷移モデルにおいて状態ベクトルxkに生じるプロセスノイズwk-1の共分散Qk-1のうち、3次元磁気センサ70のオフセット推定値mOFF,kに生じるプロセスノイズの共分散を表す行列Qm,k-1は、温度変化量ΔTm,k-1に基づいて定められる。従って、カルマンゲインKkのうち、3次元磁気センサ70のオフセット推定値mOFF,kに対応する成分の各々の値は、温度変化量ΔTm,k-1に基づいて決定される。その結果、更新後の状態ベクトルxkのうち3次元磁気センサ70のオフセット推定値mOFFkに対応する要素が、3次元磁気センサ70の温度変化量ΔTm,k-1を考慮して算出されるため、更新後の状態ベクトルxkのうち3次元磁気センサ70のオフセット推定値mOFFkに対応する要素が、3次元磁気センサ70のオフセットの実際の値真値とは乖離した値として算出されることを防止することができる。次に、観測モデル部420において用いられる観測モデルのうち、推定観測値算出部350における演算で用いられる観測方程式hについて説明する。3次元角速度センサ90から出力される角速度データgの推定値γgyroは、角速度ωと、角速度センサのオフセット推定値gOFFとを用いて、式35で与えられる。また、地上座標系ΣGにおいて地磁気Bgを表すベクトルGBgは式36で与えられる。従って、3次元磁気センサ70から出力される磁気データmの推定値γmagは、磁気センサのオフセット推定値mOFFと、式6で示した行列Bμとを用いて、式37で与えられる。また、観測モデルにおいて、3次元加速度センサ80から出力される加速度データaの推定値γaccは、式6で示した行列Bμと、ベクトルGGRVとを用いて、式38で与えられる。なお、ベクトルGGRVは、以下の式39に示すように、地上座標系ΣGにおいて重力加速度を表したベクトルを、重力加速度の大きさで正規化した3次元のベクトルである。このように、本実施形態に係る観測モデルにおける観測方程式hは、式35、式37、及び式38により定式化される。そして、式3を式13の右辺第1項に代入し、式35、式37、及び式38を用いて式13の右辺第2項を表すことにより、式13を、以下の式40に変形することができる。このとき、観測残差zkは、式40により算出される。[3.出力情報について]出力情報生成部500は、カルマンフィルタ演算部300が周期的に出力する状態ベクトルxkに基づいて、携帯機器1の姿勢μを算出し、これを出力情報として出力する。なお、本実施形態では、出力情報生成部500は姿勢μを出力情報として出力するが、本発明はこのような形態に限られるものではなく、携帯機器1が備える各種センサの出力値と、状態ベクトルxkとに基づいて算出される情報を出力情報としてもよい。例えば、出力情報生成部500は、携帯機器1から見た地磁気Bgの向きを出力情報として算出するものであってもよい。具体的には、出力情報生成部500は、3次元磁気センサ70から出力される磁気データmkと、状態ベクトルxkの要素である3次元磁気センサ70のオフセット推定値mOFF,kとに基づいて、センサ座標系ΣSにおける地磁気Bgを表すベクトルSBgを算出し、これを出力情報として出力するものであってもよい。[4.結論]以上に示したように、本実施形態に係る状態推定装置は、3次元磁気センサ70の温度変化量ΔTm,kに基づいて、行列Qm,kの各成分の値を設定する。3次元磁気センサ70の温度変化量ΔTm,kが大きな値となる場合、状態遷移モデルにおける3次元磁気センサ70のオフセット推定値mOFFの経時的な変化と、3次元磁気センサ70のオフセット真値の経時的な変化とが、異なる場合がある。これに対して本実施形態では、行列Qm,kを、温度変化量ΔTm,kに基づいて定めるため、3次元磁気センサ70の温度が変化し、状態遷移モデルがシステムの経時的な変化を正確に表現できなくなったときに生じる、状態遷移モデルが表現するシステムの経時的な変化と、実際のシステムの経時的な変化との誤差を考慮して状態ベクトルxkの更新を行うことが可能となる。これにより、状態ベクトルxkの各要素が、真値から乖離する可能性を低減させることが可能となった。すなわち、本実施形態に係る状態推定装置は、非線形カルマンフィルタの演算において、状態ベクトルxkの各要素が真値から乖離する可能性を低減させることで、正確且つ高速な状態推定が可能となった。<B.変形例>本発明は上述した実施形態に限定されるものではなく、例えば、以下の変形が可能である。また、以下に示す変形例のうちの2以上の変形例を組み合わせることもできる。1変形例1上述した実施形態に係る状態推定装置は、シグマポイントカルマンフィルタを用いて非線形カルマンフィルタの演算を実行するものであったが、本発明はこのような形態に限定されるものでは無く、拡張カルマンフィルタ等、公知の非線形カルマンフィルタを適宜適用して演算を行うものでもよい。図4は、変形例1に係る状態推定プログラムを実行したときに実現される機能を表した機能ブロック図である。図4に示すように、変形例1に係る状態推定装置は、カルマンフィルタ演算部300の代わりにカルマンフィルタ演算部300aを備える点を除き、実施形態に係る状態推定装置と同様に構成される。そして、変形例1に係るカルマンフィルタ演算部300aは、状態遷移モデル部410を備える代わりに、状態遷移モデル部410aを備える点と、観測モデル部420を備える代わりに、観測モデル部420aを備える点とを除いて、カルマンフィルタ演算部300と同様に構成される。状態遷移モデル部410aは、状態ベクトルxk-1を、式8に示す状態遷移モデルに適用することで、推定状態ベクトルx-kを算出する。また、状態遷移モデル部410aは、式10~式12に示すように、3次元磁気センサ70の温度変化量ΔTm,kに基づいて、プロセスノイズwkの共分散Qkを算出する。観測モデル部420aは、推定状態ベクトルx-kを、式9に示す観測モデルに適用することにより、推定観測値ベクトルy-kを算出する。このように、変形例1に係る非線形カルマンフィルタの演算では、複数のシグマポイントを生成することなく、状態ベクトルxkを更新する。一般的に非線形カルマンフィルタは、カルマンゲインKを、プロセスノイズwの共分散Qに基づいて定める。変形例1に係る状態推定装置は、実施形態に係る状態推定装置と同様、プロセスノイズwkの共分散Qkを、3次元磁気センサ70の温度変化量ΔTm,kに基づいて定める。従って、3次元磁気センサ70の温度変化量ΔTm,kが大きな値となる場合であっても、更新後の状態ベクトルxk1の各要素が真値から乖離する可能性を低減させることが可能となる。すなわち、本発明は、状態推定装置が備えるセンサの温度変化に起因する、状態推定精度の劣化を防止することを目的としたものであり、状態推定装置が使用する非線形カルマンフィルタの種類を問わず適用することが可能である。2変形例2上述した実施形態及び変形例に係る状態推定装置は、非線形カルマンフィルタを用いた演算を行うことでシステムの状態を推定するものであったが、本発明はこれに限定されるものではなく、線形カルマンフィルタを用いた演算によりシステムの状態を推定するものであってもよい。すなわち、状態方程式f及び観測方程式hは線形関数であってもよい。一般的に、線形カルマンフィルタは、カルマンゲインKを、プロセスノイズwの共分散Qに基づいて定める。従って、線形カルマンフィルタを用いた演算によりシステムの状態を推定する場合であっても、プロセスノイズwkの共分散Qkを、3次元磁気センサ70の温度変化量ΔTm,kに基づいて定めることにより、3次元磁気センサ70に温度変化が生じても、状態ベクトルxkが真値から乖離した値に更新されることを防止することが可能となる。3変形例3上述した実施形態及び変形例に係る状態推定装置は、温度検出部がセンサの内部に配置されるものであったが、本発明はこのような構成に限定されるものではなく、温度検出部がセンサの外部に配置されるものであってもよい。図5は、変形例3に係る携帯機器1aを表すブロック図である。携帯機器1aは、第1温度検出部75aを備える点と、3次元磁気センサ70の代わりに3次元磁気センサ70aを備える点とを除き、実施形態に係る携帯機器1と同様に構成される。3次元磁気センサ70aは、X軸磁気センサ71、Y軸磁気センサ72、及び、Z軸磁気センサ73と、これら磁気センサ71~73からの出力信号をAD変換して、磁気データmを出力する磁気センサI/F74aとを備える。第1温度検出部75aは、3次元磁気センサ70aの温度を検出し、温度データTmを出力する。すなわち、第1温度検出部75aは、携帯機器1aの備えるセンサの温度を検出する温度検出部として機能する。変形例3に係る状態推定装置は、3次元磁気センサ70aの外部に配置される第1温度検出部75aが、3次元磁気センサ70aの温度を検出するため、プロセスノイズwkの共分散Qkを、3次元磁気センサ70aの温度変化量に基づいて定めることができる。これにより、状態ベクトルxkが真値から乖離した値に更新されることを防止することができる。4変形例4上述した実施形態及び変形例は、3次元磁気センサ70の温度を表す温度データTmに基づいて、プロセスノイズwkの共分散Qkを定めるものであったが、本発明はこのような形態に限定されるものでは無く、3次元磁気センサ70の温度を表す温度データTmに加え、3次元角速度センサ90の温度を表す温度データTgを考慮して、プロセスノイズwkの共分散Qkを定めてもよい。図6は、変形例4に係る携帯機器1bを表すブロック図である。携帯機器1bは、3次元角速度センサ90の代わりに、3次元角速度センサ90aを備える点を除いて、携帯機器1と同様に構成される。3次元角速度センサ90aは、3次元角速度センサ90aの温度を検出する第2温度検出部95を備える点と、角速度センサI/F94の代わりに角速度センサI/F94aを備える点とを除いて、3次元角速度センサ90と同様に構成される。角速度センサI/F94aは、X軸角速度センサ91、Y軸角速度センサ92、及び、Z軸角速度センサ93からの出力信号をAD変換して角速度データgを出力するとともに、第2温度検出部95からの出力信号をAD変換して、温度データTgを出力する。すなわち、変形例4において、第1温度検出部75及び第2温度検出部95は、携帯機器1bの備えるセンサの温度を検出する温度検出部600として機能する。変形例4に係る状態推定装置において、プロセスノイズwkの共分散Qkは、以下の式41に示す値に設定される。すなわち、プロセスノイズwkの共分散Qkは、以下の式41に示すように、行列Qcst,11、行列Qcst,12、行列Qcst,13、行列Qcst,23、行列Qg,k、及び、行列Qm,kにより構成される。ここで、行列Qcst,11は9行9列の対称行列であり、行列Qcst,11の各成分は定数である。また、行列Qcst,12は9行3列の零行列であり、行列Qcst,13は9行3列の零行列であり、行列Qcst,23は3行3列の零行列である。行列Qm,kは、実施形態と同様に、式11及び式12により定められる3行3列の対称行列である。行列Qg,kは、以下の式42及び式43に基づいて定められる。ここで、温度変化量ΔTg,kは、以下の式43に示すように、時刻T=kにおける温度データTg,kと、時刻T=k-1における温度データTg,k-1との差分の絶対値を表す値である。また、係数αgは、正の実数である。行列Qcst,gは、3次元角速度センサ90aに温度変化が生じても3次元角速度センサ90aのオフセットが変化しないと仮定した状態遷移モデルにおいて、状態ベクトルxkに生じるプロセスノイズwkのうち、3次元角速度センサ90aのオフセット推定値gOFF,kに生じるプロセスノイズの共分散を表す行列である。本実施形態では、行列Qcst,gの各成分は定数とする。このように、変形例4に係る状態推定装置は、温度検出部600を備えるため、3次元磁気センサ70の温度変化と、3次元角速度センサ90aの温度変化との双方を考慮して、状態ベクトルxkを更新することが可能となる。これにより、3次元磁気センサ70及び3次元角速度センサ90aの双方の温度が変化した場合であっても、状態ベクトルxkの各要素が真値から乖離した値となる可能性を低減することが可能となり、正確且つ高速な状態推定が可能となる。なお、変形例4では、3次元角速度センサ90aのオフセット推定値gOFFと、3次元磁気センサ70のオフセット推定値mOFFとを要素とする6次元のベクトルが、オフセット推定ベクトルに該当する。変形例4において、温度検出部600は、3次元磁気センサ70及び3次元角速度センサ90aの内部に配置されているが、温度検出部600は、3次元磁気センサ70及び3次元角速度センサ90aの外部に配置されるものであってもよい。具体的には、第1温度検出部75は3次元磁気センサ70の外部に配置されるものであってもよく、第2温度検出部95は3次元角速度センサ90aの外部に配置されるものであってもよい。5変形例5上述した実施形態及び変形例において、状態推定装置は、3次元磁気センサ70、3次元加速度センサ80、及び3次元角速度センサ90を備えたが、本発明はこのような形態に限定されるものではなく、これら3種類のセンサのうち一部のセンサのみを備えるものであってもよい。また、これら3種類のセンサ以外のセンサを備えるものであってもよい。つまり、本発明に係る状態推定装置は、異種の物理量を測定する複数のセンサを備え、これら複数のセンサの出力を統合しシステムの状態を推定するカルマンフィルタの演算を行うものであればよい。例えば、状態推定装置が、異種の物理量を測定する5つのセンサを備え、当該5つのセンサのうち、3つのセンサ以下、第1センサ群と称するの各々のオフセットを推定の対象とする場合を想定する。この場合、状態推定装置は、第1センサ群を構成する3つのセンサのうち、1以上のセンサ以下、第2センサ群と称するの各々の温度を検出する温度検出部を備えるものであってもよい。この例において、温度検出部は、第2センサ群を構成する1以上のセンサの各々に対応する1以上の温度データを出力する。そして、状態推定装置は、温度検出部が出力する1以上の温度データの各々の変化量に基づいて、状態遷移モデルにおいて生じるプロセスノイズの共分散を定める。すなわち、この例において、第2センサ群を構成する1以上のセンサの各々のオフセットを推定した値を要素とするベクトルが、オフセット推定ベクトルに該当する。そして、状態推定装置は、状態遷移モデルにおいて規定されるプロセスノイズの共分散のうち、オフセット推定ベクトルに生じるプロセスノイズの共分散を、温度検出部が出力する1以上の温度データの各々の変化量に基づいて定める。これにより、第2センサ群を構成する1以上のセンサのうちいずれかの温度が変化した場合であっても、状態ベクトルxkの各要素が真値から乖離した値となる可能性を低減することが可能となり、正確且つ高速な状態推定が可能となる。なお、変形例5に係る状態推定装置は、5つのセンサを備え、第1センサ群は3つのセンサより構成されているが、これはあくまでも例示である。すなわち、本発明に係る状態推定装置は、2以上のセンサを備えるものであればよく、第1センサ群は、状態推定装置の備える2以上のセンサのうち1以上のセンサから構成されるものであればよい。また、この場合、第2センサ群は、第1センサ群を構成する1以上のセンサの全てを含んでもよいし、第1センサ群を構成する1以上のセンサの一部のセンサから構成されるものであってもよい。状態推定装置が備えるセンサの種類や、センサの個数に関わらず、センサの温度変化量に基づいてプロセスノイズの共分散を定めることにより、状態ベクトルxkが真値から乖離した値に更新されることを防止することが可能となる。"