JP6820204B2 - 状態推定器、及びプログラム - Google Patents

状態推定器、及びプログラム Download PDF

Info

Publication number
JP6820204B2
JP6820204B2 JP2017007125A JP2017007125A JP6820204B2 JP 6820204 B2 JP6820204 B2 JP 6820204B2 JP 2017007125 A JP2017007125 A JP 2017007125A JP 2017007125 A JP2017007125 A JP 2017007125A JP 6820204 B2 JP6820204 B2 JP 6820204B2
Authority
JP
Japan
Prior art keywords
state
distribution
weight
filter
particle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017007125A
Other languages
English (en)
Other versions
JP2018116511A (ja
Inventor
青木 勝典
勝典 青木
澁谷 一彦
一彦 澁谷
啓之 濱住
啓之 濱住
浩一郎 今村
浩一郎 今村
亜紀子 山里
亜紀子 山里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Broadcasting Corp
NHK Engineering System Inc
Original Assignee
Japan Broadcasting Corp
NHK Engineering System Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Japan Broadcasting Corp, NHK Engineering System Inc filed Critical Japan Broadcasting Corp
Priority to JP2017007125A priority Critical patent/JP6820204B2/ja
Publication of JP2018116511A publication Critical patent/JP2018116511A/ja
Application granted granted Critical
Publication of JP6820204B2 publication Critical patent/JP6820204B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、所定の状態ベクトルの時間変化を規定するシステムモデルを用いて状態推定を行う状態推定器、及びプログラムに関する。
時系列データ等の所定の状態ベクトルに関する状態推定を行う状態推定器として、大別すると、線形或いはガウス型の時系列データを扱うものと、非線形或いは非ガウス型の時系列データを扱うものがある。
特に、非線形或いは非ガウス型の時系列データを扱う状態推定器は、IP(Internet Protocol)ネットワークを介して時刻を同期させるシステムの時刻オフセット計測に用いることができる。
まず、この時刻を同期させる技法として、一般的には、IEEE1588PTP(precision time protocol)が知られており(例えば、特許文献1参照)、この技法に基づいて時刻同期を確立するための時刻制御装置を構成する例も知られている(例えば、特許文献2参照)。
特許文献2には、その時刻制御装置として、マスター装置とスレーブ装置で交換されるパケットの時刻情報から時刻差を算出する減算部及び除算部、時刻差から平均値を算出する平均値算出部、PID(Proportional-Integral-Differential)制御部、及び時刻調整部を備えるよう構成する例が示されている。
PTPではマスター装置からスレーブ装置に定期的に送信されるSyncメッセージの送信間隔と受信間隔の差が等しくなるように、スレーブ装置の時計の発振周波数を調整することで発振周波数を同期させる。そして、発振周波数同期が確立した後で、スレーブ装置からDelay_reqを送信し、その返信であるDelay_resを受信し、それらのパケットの送信時刻及び受信時刻を用いて、マスター装置の時刻とスレーブ装置の時刻差を計測し、時刻差が0となるようにスレーブ装置の時刻を調整する。この時刻差の計測では、Delay_reqの伝送遅延、Delay_reqの伝送遅延が等しいことを想定している。
IPネットワークは、ルータやスイッチなどが次の装置へとパケットを中継することで、IPネットワークに接続するどの装置に対してもパケットを送ることができるネットワークであるが、一時的にパケットが集中するとパケットが中継されるまでの時間が長くなる。このため伝送遅延時間が変動するパケットジッタと呼ばれる現象が発生する。
この結果、Syncメッセージの送信間隔と受信間隔の差や、計測したマスター装置の時刻とスレーブ装置の時刻差は、パケットジッタの影響を受け観測誤差が多く含まれる。
当該PID制御部は、入力値、入力の積分値、入力の微分値のそれぞれに係数をかけて合計した値を用いて目標の値に制御を行うものであるが、パケットジッタや雑音など不規則に変化する成分を多く含む信号は、高周波成分を多く含み、微分値が過大になりPID制御に悪影響を及ぼすことがある。
(ローパスフィルタの利用)
そこで、IPネットワークを介して時刻を同期させるシステムでは、観測した時刻差をそのまま時刻制御に使用するのではなく、平均値を用いたり、ローパスフィルタを用いて観測誤差や雑音の制御への影響を軽減することが行われている。
ただし、ローパスフィルタでは、振幅の大きなパルス状の雑音が加わった場合に、その低周波成分が信号として加味され、わずかであるが出力に悪影響を与えることがある。
このため、ローパスフィルタのように時系列データと雑音の周波数分布の違いを利用して信号の観測精度を高める代わりに、時系列データを扱うシステムの状態空間モデルを作成し、観測信号から状態空間モデルの状態を予測し、予測した状態空間モデルの状態からの観測信号を抽出することで、信号の観測精度を高めたり、観測遅延を短くしたり、予測した状態そのものを直接制御に利用することが行われている。
そして、状態及び観測値の統計的性質を利用することによって時系列モデルの状態を推定する状態推定器として、カルマンフィルタや粒子フィルタが知られている。
(カルマンフィルタの利用)
カルマンフィルタは、状態や観測値に含まれる雑音が正規分布に従う線形のシステムに適用できる技法であり広く利用されている。しかし、カルマンフィルタは、正規分布に従わないシステムや非線形なシステム、或いは時系列に急激な構造変化がみられるような場合では良い結果が得られない。
(粒子フィルタの利用)
そこで、非線形或いは非ガウス型の時系列データを扱うシステムに適用できる状態推定器として、粒子フィルタが知られており(例えば、非特許文献1)、粒子フィルタは画像中における被写体の追尾などにも利用されている(例えば、特許文献3参照)。
粒子フィルタは、1次元もしくは複数次元ベクトルで表現された状態ベクトルの時間変化を規定する所定のシステムモデルを用いて状態推定を行う状態推定器であり、状態ベクトルとその状態ベクトルに対応する重みの集合によって状態の確率分布を表現する。予測対象の状態の確率分布を確率変数をxとする確率密度関数p(x)とすると、これを或る状態ベクトルx(以下、状態xとする)とその状態xの重みwを粒子とする集合によって表現することが特徴である。重みwは、個々の状態xの尤度を示す。
状態xの確率分布をN個の状態ベクトルxi(i=1,2...N)とその状態ベクトルの重みw(i=1,2...N)を用いて、確率密度関数p(x)は式(1)のように表すことができる。
ここでδはディラックのデルタ関数であり、状態ベクトルとその状態ベクトルの重みを粒子と呼ぶ。尚、粒子フィルタでは、フィルタ分布計算によりwの値が1以外の値をとるが、直後のリサンプル処理を行うことでwの値は1となる。
例えば、図8に示す粒子フィルタの処理手順を基に、図9を参照して、移動物体(図示する例では車両)の位置と速度を推定する例を説明する。図8は、従来からの粒子フィルタによる処理を示すフローチャートである。また、図9は、従来からの粒子フィルタにおける全体的な動作例を示す説明図である。
ここで、x(t), y(t), v(t), u(t)を、それぞれ時刻tにおける状態ベクトル(以下、状態x(t)とする)、観測値のベクトル(以下、観測値y(t)とする)、システム雑音のベクトル(以下、雑音ベクトルv(t)とする)、観測雑音のベクトル(以下、観測雑音u(t)とする)を表すものとする。そして、時系列データの状態空間モデルが、状態x(t)=F(x(t−1),v(t))のシステムモデルと、観測値y(t)=H(x(t),u(t))の観測モデルに従うものとする。
尚、図9に示す動物体の時系列データの状態推定システムの例では、状態x(t)をシステム雑音を加えた時刻tにおける位置Xa([km])と速度Xb([km/h])で構成される2次元のベクトル(Xa,Xb)とし、観測値y(t)については、時刻tにて観測する位置Xa(t)に観測雑音u(t)を加えたものとしている。
まず、図8に示すように、粒子フィルタの処理は、最初に重みが1の粒子を用いて初期状態x(t=0)の分布に対応する粒子を設定する (ステップS110)。粒子フィルタの処理は、初期時刻t=0以後、時刻t=1,2,…として単位時間ステップ毎にサンプリングされて時系列に処理し、図9に示すように、前回時刻t−1の状態推定結果を粒子で近似して示す分布(以下、x(t−1|t−1)と記す)とシステムモデルから、今回時刻tの状態を予測し(以下、観測値y(t)を用いずに予測した、状態の予測結果を予測分布x(t|t−1)と記す)、この予測分布x(t|t−1)と観測値y(t)を用いて今回時刻tの状態を推定する処理を繰り返すことになる。以下、予測分布x(t|t−1)と観測値y(t)を用いて推定した状態の分布をフィルタ分布x(t|t)と記す。
続いて、図8及び図9に示すように、粒子フィルタの処理は、前回時刻t−1の状態の推定結果のフィルタ分布x(t−1|t−1)を構成する粒子を基に、その粒子毎に、擬似乱数を計算し、システムモデルx(t)=F(x(t−1),v(t))に、各粒子の状態ベクトルxをx(t−1)に、疑似乱数から生成したシステム雑音をv(t)に代入して、各粒子の新たな状態を更新することにより、時刻tの状態の予測分布x(t|t−1)を計算する(ステップS120)。
図10を参照して、より具体的に、本例における時刻tの状態の予測分布x(t|t−1)の計算について説明する。図10は、従来からの粒子フィルタにおける予測分布計算の動作例を示す説明図である。
予測分布の計算にあたって、粒子フィルタの処理は、時刻t−1の各粒子に対して、各粒子の状態ベクトルと疑似乱数から生成したシステム雑音v(t)をシステムモデルx(t)=F(x(t−1),v(t))に与えることで計算する。
粒子フィルタでは非線形のシステムモデルを扱うことができるが、簡単のためシステムモデルをx(t)=Fx(x(t−1))+Fv(v(t))と表せる線形モデルを例として説明する。時刻tにおける各粒子の状態ベクトルは、システム雑音が無ければ、時刻t−1における各粒子の状態ベクトル(図10(a)のx(t−1)の各点の値を参照)とv(t)=0をシステムモデルに与えて得られた状態Fx(x(t−1))となる(図10(b)参照)。システムモデルでは雑音の影響がFv(v(t))の項として加わるため、Fx(x(t−1))の値に、擬似乱数を用いてv(t)を生成して計算したFv(v(t))を加える。これが時刻tにおける各粒子の状態ベクトルの予測値となる(図10(c)参照)。これらの予測した粒子で表現される分布が予測分布t(t|t−1)である。
図10(c)のように、システム雑音有りとして計算することで、時刻tにおける粒子の状態ベクトルの予測値に意図的に拡がりを持たせていることが分かる。システムモデルのモデル化誤差や、状態推定の誤差の影響が蓄積すると、粒子の状態ベクトルの予測値の誤差が大きくなる。粒子の状態ベクトルに拡がりがなくなると、実際のシステムの状態ベクトルと一致する状態ベクトルを持つ粒子が無くなってしまう。このようなシステム雑音を付与することで、状態推定誤差やモデル化誤差による大きな予測ずれに伴う推定誤りを予防する作用がある。
続いて、図8及び図9に示すように、粒子フィルタの処理は、当該予測分布x(t|t−1)における各粒子に対して、観測値y(t)の尤度p(y|x)を計算し、その粒子の重みをwとしたフィルタ分布x(t|t)を計算する(ステップS130)。
ここで、各粒子が表す状態ベクトルは、動物体(本例では車両)の予測位置と予測速度を表している。各粒子の状態ベクトルの予測値は粒子毎に異なるが、実際に観測して得られた位置の観測値y(t)が10.2kmであったと仮定して(図9参照)、図11を参照して、より具体的に、本例における状態のフィルタ分布x(t|t)の計算について説明する。図11は、従来からの粒子フィルタにおけるフィルタ分布計算の動作例を示す説明図である。
時刻tの観測値y(t)=10.2kmが得られている場合でも、その観測結果には観測雑音が含まれるため、観測値と実際の位置は必ずしも一致しない。そこで、フィルタ分布の計算にあたって、粒子フィルタの処理は、予測分布x(t|t−1)における各粒子に対して(図11(a)参照)、時刻tの観測値y(t)=10.2kmと一致に対応する粒子に最も高い尤度を割り当て、この観測値y(t)に対応する粒子から遠ざかるに従い各粒子に低い尤度を割り当てる(図11(b)参照)。尤度計算には種々の技法があるが、ここでは単純な正規分布曲線に近似して割り当てる例とする。このように、粒子で表される各状態に対して、観測値が得られる尤度を計算しその値を各粒子の重みwとする(図11(c)参照)。図9及び図11(c)では、粒子の重みwを黒丸の大きさで表している。
続いて、図8及び図9に示すように、粒子フィルタの処理は、フィルタ分布の各粒子に対し、粒子の重みの大きさに比例するように粒子を割り当て直すリサンプル処理を行う(ステップS140)。リサンプル処理は、状態xを持つ粒子の数が、ステップS130で計算した重みwに比例した数となるように重み1の新たな粒子を割り当て、或いは削除する処理であり、重みの大きな粒子は重み1の新たな粒子で複製し、重みの小さな粒子は削除する。このリサンプル処理の後、tに1を加算して次の時刻における予測を行うようステップS120に移行する。
尤度に基づく重みづけの結果、リサンプル処理(ステップS140)後の粒子は、図9に例示するように、予測分布の計算(ステップS120)で得られる当該予測分布における粒子より集中し、高い密度の粒子分布が得られる。これらの粒子の集合が、時刻tにおける状態分布の推定結果を表すことから、粒子の状態ベクトルの期待値や、中央値、信頼区間を計算することで、時刻tの状態ベクトルの期待値や中央値、信頼区間を導出することができる(例えば位置の期待値として10.3km、速度の期待値として39km/h)。
このように粒子フィルタでは、直前の状態分布及びシステムモデル、観測値を用いて次の時間ステップの状態分布の推定を行い、その結果得られた状態分布を次の時刻の予測に用いる。この処理を逐次繰り返すとともに、粒子の集合に期待値計算など統計処理を行うことで、状態推定を行うことができる。
特開2010−190635号公報 特開2013−83450号公報 特開2016−58836号公報
樋口 知之, "粒子フィルタ", 電子情報通信学会誌, Vol.88, No.12, pp.989-994, 2005年12月01日発行
IPネットワークを介して時刻を同期させるシステムにおいて、時計や発信器の時刻を高い精度で同期させるためには、非常に低い周波数変化によるわずかな位相変化を検出し補正する必要がある。このため、低い周波数成分をもつ観測誤差や雑音まで十分に除去するフィルタ処理が必要になる。
そこで、ローパスフィルタを利用し、低い周波数成分の誤差や雑音を十分低減させるためには、フィルタのタップ数を増やす必要がある。ローパスフィルタのタップ数を長くすると遅延が増加し、観測に長い時間を要し、時刻を同期させるために要する時間が長くなる。また、パケットジッタは一時的なパケットの集中で発生し、パケットの集中度合いによってその大きさが変化するため、観測期間中に遅延が大きく変動し、観測精度が悪化したり、制御が不安定になる問題がある。
また、ローパスフィルタでは、振幅の大きなパルス状の雑音が加わった場合に、その低周波成分が信号として加味され、出力に影響を与える問題がある。
また、カルマンフィルタは、状態及び観測誤差が正規分布に従うことを前提としている。しかし、パケットの時刻情報から算出される時刻差に含まれる雑音の多くは、IPネットワークの伝送遅延の変化に起因するものであり、これはIPネットワークの混雑状況に応じて複雑に変化し、誤差の分布が変化してしまう。カルマンフィルタは、時系列に急激な構造変化がみられるような場合や、正規分布に従わないシステムや非線形なシステムでは良い結果が得られない問題があった。
また、粒子フィルタは、複雑な分布に対応でき、尤度分布の変化に柔軟に対応できる利点がある。しかし、予測分布計算に粒子の数に比例した数の擬似乱数を作成する必要があり、また、リサンプル処理に大きな計算負荷が発生する。このため、粒子フィルタは計算負荷が大きく、高速に実時間で動作する用途に利用することが困難であった。
つまり、IPネットワークを介して時刻を同期させるシステムに限らず、動物体の状態推定を行う制御装置などにおいても、高速に実時間で動作することが要望されるときには、少ない計算量且つ短い遅延にて精度よく状態を推定し、観測誤差の影響を除去可能とする状態推定器の利用が望まれる。
本発明の目的は、上述の問題に鑑みて、所定の状態ベクトルの時間変化を規定するシステムモデルを用いて状態推定を行う際に、少ない計算量且つ短い遅延にて精度よく状態を推定し、観測誤差の影響を除去可能とする状態推定器、及びプログラムを提供することにある。
本発明の状態推定器は、1次元もしくは複数次元ベクトルの粒子で表現された状態ベクトルの時間変化を規定する所定のシステムモデルを用いて状態推定を行う状態推定器であって、状態ベクトルとその状態ベクトルの重みの集合によって表現される状態の確率分布に従い、入力される観測値に基づいて、前記所定のシステムモデルに従う複数の粒子の状態ベクトルにそれぞれ対応する尤度を計算する尤度計算部と、前記観測値の観測時刻毎に、前回計算したフィルタ分布を構成する各粒子の状態ベクトルに対し、システム雑音が無いものとして前記所定のシステムモデルに従って各粒子の状態ベクトルと該各粒子の状態ベクトルの重みを更新し、該重みに拡散処理を施して予測分布を構成する粒子を追加もしくは各粒子の重みを更新し、該重みに該予測分布を構成する各状態ベクトルに対し前記尤度計算部によって計算される尤度を乗じた値を新たな重みとして更新し、各粒子の状態ベクトルにおける該重みを一定の範囲に収めるレンジ調整処理を施し、該レンジ調整処理を施して得られる各粒子の状態ベクトルと該各粒子の状態ベクトルの重みで構成されるフィルタ分布を今回のフィルタ分布として計算するフィルタ分布更新部と、前記フィルタ分布更新部により当該フィルタ分布を計算する毎に、各粒子の状態ベクトルの重みを更新して保持する重みレジスタと、当該今回のフィルタ分布を構成する各状態ベクトルとその状態ベクトルの重みから所定の推定値を導出する推定値計算部と、を備えることを特徴とする。
また、本発明の状態推定器において、前記フィルタ分布更新部は、前記拡散処理として、当該前回計算したフィルタ分布を構成する各状態ベクトルに対し前記所定のシステムモデルに従って更新した各粒子の状態ベクトルと該各粒子の状態ベクトルの重みを基にして加重平均又はローパスフィルタ処理、もしくは全部もしくは一定範囲の状態ベクトルの重みに対し均等に一定値を加算する処理により新たな重みを計算する処理、を含むことを特徴とする。
また、本発明の状態推定器において、前記フィルタ分布更新部は、前記レンジ調整処理として、当該フィルタ分布内の複数の状態ベクトルの全ての重みを一定の比率で増減させ、最も大きな重みの値を一定の範囲に収める処理を含むことを特徴とする。
また、本発明の状態推定器において、前記フィルタ分布更新部は、前記レンジ調整処理として、前記重みレジスタへと更新する重みの最大値が第1閾値を超えた場合、その全ての重みを一定の比率で小さくし、前記重みレジスタへと更新する重みの最大値が第2閾値以下となった場合に、全ての重みを一定の比率で大きくする処理を含むことを特徴とする。
また、本発明の状態推定器において、前記フィルタ分布更新部は、前記レンジ調整処理として、前記重みレジスタへと更新する重みの最大値が前記第1閾値を超える場合には、その全ての重みを1/2倍の比率で小さくし、前記重みレジスタへと更新する重みの最大値が前記第2閾値以下となる場合には、全ての重みを2倍の比率で大きくする処理を含むことを特徴とする。
また、本発明の状態推定器において、前記尤度計算部は、各粒子の状態ベクトルに対する尤度の合計を1とする正規化処理を省略して尤度を計算し、該尤度の値、若しくは該尤度の定数倍の値を前記フィルタ分布更新部に出力することを特徴とする。
更に、本発明のプログラムは、コンピュータを、本発明の状態推定器として機能させるためのプログラムとする。
本発明によれば、所定の状態ベクトルの時間変化を規定するシステムモデルを用いて状態推定を行う際に、少ない計算量且つ短い遅延にて精度よく状態を推定し、観測誤差の影響を除去可能とする状態推定器を構成することができる。
本発明による一実施形態の状態推定器の概略構成を示すブロック図である。 本発明による一実施形態の状態推定器におけるフィルタ分布更新処理を示すフローチャートである。 本発明による一実施形態の状態推定器におけるフィルタ分布更新部の全体的な動作例を示す説明図である。 本発明による一実施形態の状態推定器におけるフィルタ分布更新部のフィルタ分布計算処理に関する動作例を示す説明図である。 本発明による一実施形態の状態推定器におけるフィルタ分布更新部の処理に係る重みレジスタに関する動作例を示す説明図である。 本発明による一実施形態の状態推定器におけるフィルタ分布更新部の処理に係る尤度計算に関する動作例を示す説明図である。 本発明による一実施形態の状態推定器におけるフィルタ分布更新部のレンジ調整処理に関する動作例を示す説明図である。 従来からの粒子フィルタによる処理を示すフローチャートである。 従来からの粒子フィルタにおける全体的な動作例を示す説明図である。 従来からの粒子フィルタにおける予測分布計算の動作例を示す説明図である。 従来からの粒子フィルタにおけるフィルタ分布計算の動作例を示す説明図である。
以下、図1乃至図7を参照して、本発明による一実施形態の状態推定器1について説明する。
(装置構成)
まず、図1に、本発明による一実施形態の状態推定器1の概略構成を示している。状態推定器1は、1次元もしくは複数次元ベクトルの粒子で表現された状態ベクトルの時間変化を規定する所定のシステムモデルを用いて、入力される観測値を基に状態推定を行う装置として構成され、状態ベクトルとその状態ベクトルの重みの集合によって状態の確率分布を表現することを特徴とし、尤度計算部11、フィルタ分布更新部12、重みレジスタ13、及び推定値計算部14を備える。
本発明に係る状態推定器1において、状態xの確率分布をN個の状態ベクトルx(i=1,2...N)とその状態ベクトルの重みw(i=1,2...N)を用いて、確率密度関数p(x)は上述した式(1)のように表すことができる。
尤度計算部11は、入力された観測値から予測分布x(t|t−1)を構成する各粒子の状態ベクトルに対応する尤度を計算し、その値、若しくはその定数倍の値をフィルタ分布更新部12に出力する機能部である。尤度計算部11は、状態推定対象のシステムが状態ベクトルで表される状態であるときに観測値が得られる尤度を計算する。尤度の計算方法は、粒子フィルタで用いる尤度計算方法をそのまま用いることができる。
ただし、本発明に係る尤度計算部11によって計算される尤度は、各状態ベクトルに対する尤度の合計が1となるよう必ずしも正規化する必要はない。即ち、割算回路(割算処理)を設けて尤度を正規化する処理を省略し処理の高速化に寄与させるよう構成することができる。この正規化処理を省略しても、後述するレンジ調整処理が設けられていることから動作上の不具合が生じないようになっている。
フィルタ分布更新部12は、観測時刻毎に、前回計算したフィルタ分布x(t−1|t−1)を構成する各粒子の状態ベクトルに対し、システム雑音が無いとして、1次元もしくは複数次元ベクトルで表現された状態ベクトルの時間変化を規定する所定のシステムモデルに従って、各粒子の状態ベクトル及び重みレジスタ13に保持されている各粒子の重みを更新し、更新した各粒子の状態ベクトル及びこの各粒子の状態ベクトルに対する重みに拡散処理を施し更新して予測分布x(t|t−1)を計算し、この予測分布x(t|t−1)を構成する各粒子に対して、当該入力された観測値を基に尤度計算部11によって計算される当該粒子の状態ベクトルに対する尤度を当該粒子の重みに乗じた値を新たな重みとすることにより更新して、レンジ調整前のフィルタ分布x’(t|t)を計算する。そして、フィルタ分布更新部12は、当該レンジ調整前のフィルタ分布x’(t|t)を構成する各粒子の重みについてレンジ調整処理を施し、当該重みレジスタ13に保持されていた重みを当該レンジ調整処理後の重みへ更新し、レンジ調整処理を施した重みが付与されている各粒子で表現されるフィルタ分布x(t|t)を、推定値計算部14へ出力する。
より具体的には、フィルタ分布更新部12は、まず、観測値を得た時刻毎に前回計算したフィルタ分布x(t−1|t−1)を構成する各粒子の状態ベクトルに対して、重みレジスタ13に保持されている重みを基に、システム雑音が無いとして、観測値を得た時刻における状態ベクトルを計算して各粒子の状態ベクトルを更新し、重みレジスタ13に保持されている重みをこの更新後の各粒子の状態ベクトルに対応づけて更新する処理を行う。尚、フィルタ分布更新部12は、2つ以上の粒子の状態ベクトルの更新後の状態ベクトルが一致する場合には、粒子を1つにまとめ、それらの更新前の粒子の重みを加算した値をまとめた粒子の重みとする処理を行う。続いて、フィルタ分布更新部12は、このシステム雑音無しとして計算した各状態ベクトルに対応する重みに対し、加重平均又はローパスフィルタ処理、もしくは一定範囲の状態ベクトルの重みに均等に一定値を加算する処理により、予測分布の分散を拡大する拡散処理を行い、予測分布x(t|t−1)とする。
一定値を加算する一定範囲としては、例えば、前回推定した状態ベクトルの期待値を中心とする前回推定した状態ベクトルの標準偏差の定数倍の範囲内や、状態ベクトルの範囲を限定する場合はその範囲内全てとすることができる。
これにより、擬似乱数を用いてシステム雑音v(t)を計算することなしに、前回のフィルタ分布x(t−1|t−1)から計算した観測時刻における状態予測分布を拡散し、状態の予測範囲を意図的に拡がりを持たせることができる。このように、フィルタ分布更新部12は、前回計算したフィルタ分布x(t−1|t−1)を構成する各粒子の状態ベクトルと重み、システムモデルを用いて観測時刻におけるシステム雑音無しの状態予測分布を計算しこれに拡散処理を施すことで、擬似乱数を計算することなしに拡散された予測分布x(t|t−1)を計算する。
続いて、フィルタ分布更新部12は、拡散処理を施した予測分布x(t|t−1)を構成する各状態ベクトルに対して当該入力された観測値を基に尤度計算部11によって計算されている尤度を当該粒子の重みに乗じた値を新たな重みとすることにより、フィルタ分布x(t|t)を計算する。
続いて、フィルタ分布更新部12は、当該フィルタ分布x(t|t)を構成する各状態ベクトルの重みに対して一定の範囲に収めるレンジ調整処理を施し、当該重みレジスタ13に保持されていた重みを当該レンジ調整処理後の重みで更新する。従って、フィルタ分布更新部12は、重みレジスタ13に対し、フィルタ分布を計算する毎に当該フィルタ分布を構成する各粒子の状態ベクトルの各々の重みを更新して保持させる。
レンジ調整処理は、当該フィルタ分布内の複数の状態ベクトルの全ての重みを一定の比率で増減させ、最も大きな重みの値を一定の範囲に収める処理である。特に、このレンジ調整処理は、重みレジスタ13へと更新する重みの最大値が第1閾値Th1を超える場合には、その全ての重みを一定の比率で小さくし、重みレジスタ13へと更新する重みの最大値が第2閾値Th2以下となる場合には、全ての重みを一定の比率で大きくする。このレンジ調整処理があるため、フィルタ分布を計算するために用いる尤度の正規化処理を省略し、全体的な動作を高速化させることができる。
そして、フィルタ分布更新部12は、状態ベクトル及びレンジ調整処理を施した重みが付与されている粒子で表現されるフィルタ分布を推定値計算部14へ出力する。
重みレジスタ13は、初期値として所定のシステムモデルに従う予め定められた複数の粒子の状態ベクトルにそれぞれ対応する重みを記憶しているが、フィルタ分布更新部12によりフィルタ分布を計算する毎に、当該フィルタ分布を構成する複数の粒子の状態ベクトルの重みを更新して保持する機能部である。つまり、重みレジスタ13は、今回計算するフィルタ分布を構成する粒子の状態ベクトルに対応づけるために前回値の重みを読み出し、今回計算後のフィルタ分布内の複数の状態ベクトルに対応づけて今回値の重みを書き込むことで、フィルタ分布を計算する毎に、当該フィルタ分布内の複数の状態ベクトルの重みを更新して保持する機能部である。尚、重みレジスタ13は、フィルタ分布更新部12が予測分布x(t|t−1)を計算する際にも用いられる。
推定値計算部14は、フィルタ分布更新部12から得られるレンジ調整処理を施した重みが付与されている各粒子の状態ベクトル及び重みで表現される今回のフィルタ分布x(t|t)から、粒子の状態ベクトルの期待値や中央値或いは信頼区間などを計算することで推定した状態の期待値や中央値、或いは信頼区間を導出し、推定値として外部に出力する機能部である。
(装置動作)
以下、図1に示す状態推定器1の動作について、従来技法の粒子フィルタと対比可能にするために、図2及び図3に示すフィルタ分布更新処理を中心に詳細に説明する。図2は、本発明による一実施形態の状態推定器1におけるフィルタ分布更新部12の処理(フィルタ分布更新処理)を示すフローチャートである。図3は、本発明による一実施形態の状態推定器1におけるフィルタ分布更新部12の全体的な動作例を示す説明図である。
図2及び図3を参照して説明する前に、まず、本実施形態に係る状態推定器1は、予測対象の状態(確率変数)Xの確率密度関数p(X)を、状態xとその状態の重みwを粒子とする集合によって表現する点で粒子フィルタと同様であるが、大きな相違点として、疑似乱数ではなく拡散処理によりシステム雑音の付与に相当する予測分布の拡散を行う点と、フィルタ分布に基づく状態推定結果を得るにあたり、リサンプル処理を行うのではなくレンジ調整を行う点で相違している。
また、x(t), y(t), v(t), u(t)は、それぞれ時刻tにおける状態のベクトル、観測値のベクトル、システム雑音のベクトル、観測雑音のベクトルを表すものとする。そして、時系列データの状態空間モデルが、状態x(t)=F(x(t−1),v(t))のシステムモデルと、観測値y(t)=H(x(t),u(t))の観測モデルに従うものとする。
そして、図3に示す動物体の時系列データの状態推定システムの例では、状態x(t)をシステム雑音を加えた時刻tにおける位置Xa([km])と速度Xb([km/h])で構成される2次元のベクトル(Xa,Xb)とし、観測値y(t)については、時刻tにて観測する位置Xa(t)に観測雑音u(t)を加えたものとしている。時刻tにおける状態x(t)の取りうる状態xを仮にXa={10.1, 10.2, 10.3, 10.4, 10.5, 10.6}, Xb={39,40,41}に限定して、その動作を説明する。この場合、状態(Xa,Xb)はXaとXbを組みあわた18の状態をとりうる。本例の処理上では、時刻tにおいてはこの18通りのいずれかの状態をとるよう構成する例を説明するが、時間経過とともに取りうる状態は更新されるべきものであり、また、内挿補間するよう構成することもできる。
ここで、状態x(t)の取りうる各状態をビット列や数値に対応させるのが好適である。例えば、Xaに対して{“001”, “010”, “011”, “100”, “101”, “110”, “111” }を、Xbに対して{“00”, “01”, “10”}を対応させることで、(Xa,Xb)の状態を、これら2進数を結合した5ビットの2進数に対応づけることができ、処理構成を容易化し高速処理に寄与させることができる。このほか、18種類の各状態に順番に1から18までの整数を対応させてもよい。
図1に示す状態推定器1におけるフィルタ分布更新部12は、尤度計算部11から得られる尤度と、重みレジスタ13に保持されている重みを基に、本例では2次元で表される状態の変化を規定するシステムモデルに従って、観測値y(t)を得る毎に前回計算したフィルタ分布x(t−1|t−1)から、推定値を導出可能な今回のフィルタ分布x(t|t)を求め、今回のフィルタ分布とするよう動作する。
尤度計算部11は、観測値y(t)= yを入力し、状態x(t)がxの時に観測値yを観測する尤度p(y|x)を計算し、その値、若しくはその定数倍の値をフィルタ分布更新部12に出力する。
尤度計算部11とフィルタ分布更新部12との接続は、例えばフィルタ分布更新部12がフィルタ分布を計算する過程において、その計算に必要となった状態xの尤度を尤度計算部11に対し逐次要求し、尤度計算部11は、その要求された状態xについての観測値yに基づく尤度を計算してフィルタ分布更新部12に出力する構成とすることができる。この状態xの尤度の要求は、状態x(t)の取りうる各状態xを対応させた当該ビット列や数値を用いることで指定することができる。このほか、尤度計算部11は、当該取りうる状態xの尤度を一度に計算して、当該状態xに対応するビット列や数値を対応する順序で、一括してフィルタ分布更新部12に出力する構成とすることもできる。
そして、重みレジスタ13は、特定の状態x(t)=xを持つ粒子の重みwを記憶し、その重みwを状態x(t)=xに対応づけて読み出す機能及び書き込む機能を持つ記憶部である。以下、時刻tの状態xに対応する重みレジスタをwとする。また、図3に例示する動物体の位置予測を行うシステムにおける、状態(Xa,Xb)の重みをW(Xa,Xb)とする。
上述したように、状態x(t)の取りうる状態は、本例では、XaとXbの組み合わせ18通りである。これらの各状態に対応する重みがあることから、重みレジスタ13は、18通りの重みWを記憶し、フィルタ分布更新部12の制御によって各状態に対応する重みWを指定して読み出し、書き込みを行うよう動作する。そして、前述したように、各状態をビット列や数値に対応させることで、重みレジスタ13においても各状態を図示しない記憶装置のアドレスに対応づけることができ、容易に実装でき、処理の高効率化を図ることができる。
(フィルタ分布更新処理)
まず、図2に示すように、状態推定器1におけるフィルタ分布更新部12は、その処理に先立ち、重みレジスタ13に初期重みを設定する(ステップS1)。ここで、各状態の初期分布を予測できる場合にはその値を設置するが、予測できない場合は、均等な重みを設定してもよい。以後、重みレジスタ13に保持されている重みは、フィルタ分布更新部12の処理によって、以下に説明する前回のフィルタ分布x(t−1|t−1)に基づくシステム雑音を無しとした予測分布x’(t|t−1)の計算時、続いて拡散処理を施して得られる予測分布x(t|t−1)の計算時、続いて尤度を加味したフィルタ分布x(t|t)の計算時、最後にレンジ調整処理を施したフィルタ分布x(t|t)の計算時にて、各粒子の状態ベクトルの更新に対応付けて更新される。
そして、フィルタ分布更新部12は、「前回のフィルタ分布x(t−1|t−1)」における各粒子(状態ベクトル及びその重み)に対して重みレジスタ13に保持されている重みを基に拡散処理を施して予測分布x(t|t−1)を計算し(ステップS2)、この予測分布における各粒子に対して当該入力された観測値y(t)を基に尤度計算部11によって計算される尤度を当該粒子の重みに乗じた値を新たな重みとすることにより、フィルタ分布x(t|t)を計算する(ステップS3)。
そして、フィルタ分布更新部12は、当該フィルタ分布x(t|t)における各粒子における重みについてレンジ調整処理を施し(ステップS4)、当該重みレジスタ13に保持されていた重みを当該レンジ調整処理後の重みへ更新し、レンジ調整処理を施した重みが付与されている各粒子で表現される今回のフィルタ分布x(t|t)を推定値計算部14へ出力する。このステップS2乃至S4の繰り返しで、フィルタ分布が更新される。
以下、図3を参照しながら、フィルタ分布更新部12におけるステップS2乃至S4の各処理を順に説明する。
まず、フィルタ分布更新部12は、前回のフィルタ分布x(t−1|t−1)から拡散処理に基づく予測分布x(t|t−1)を計算する(ステップS2)。
ここで、前述した粒子フィルタの処理では擬似乱数v(t)を作成した後、システムモデルx(t)=F(x(t−1),v(t))に適用することで予測分布x(t|t−1)を計算するものとなっているが、この擬似乱数の計算に多くの計算資源が必要となり、高速処理の妨げとなる。
そこで、本発明に係るフィルタ分布更新部12は、擬似乱数の生成を行うことなく、重みレジスタ13に保持されている重みを基に状態変数空間上で近傍に存在する粒子に拡散するよう構成している。
この拡散処理は例えば、近傍に存在する粒子の重みを用いた加重平均やローパスフィルタ、もしくは一定範囲の状態ベクトルの重みに均等に一定値を加算する処理を用いることができる。以後、拡散処理を行った各粒子の新たな重みが予測分布x(t|t−1)に用いられる。
この拡散処理に加重平均やローパスフィルタを用いると、粒子の重みが状態変数空間上で近傍にある粒子に拡散されるため、従来技法の粒子フィルタにおける擬似乱数によって各粒子を拡散する処理と類似の効果を与えることができる。
より具体的には、従来技法の粒子フィルタでは、予測分布の計算を粒子毎に行うために粒子の数×システム雑音の次元数の擬似乱数を計算する必要があったが、本発明に係るフィルタ分布更新部12では、擬似乱数を用いる代わりに拡散処理とすることで、大幅な計算量の削減が可能である。拡散処理は、例えば、時刻(t)におけるシステム雑音を無しとして予測した各粒子について、それぞれの注目粒子の周囲(例えば4点)に粒子がなければ重み0の新たな粒子を追加し、各粒子に対してその粒子の周囲の重みを加重平均した値を新たな重みとして与えることにより拡散する。
また、別の例としては、図4(b)における全ての格子点に相当する、前回推定したフィルタ分布x(t−1|t−1)の期待値の近傍の状態ベクトルを持つ粒子について、時刻tにおける状態ベクトルの予測値を含む一定範囲の等間隔の状態ベクトルに対し新たな重みを与えて拡散する際に、時刻tの時点で既に粒子が存在しなければ、重み0の粒子を追加した後、全ての粒子に対して、その周囲の重みを加重平均した値、もしくはローパスフィルタ処理を施した値、もしくは元の重みに一定の値を加算した値を、新たな重みとして与えることにより拡散する。
より具体的には、予測分布の計算にあたって、フィルタ分布更新部12は、新たな観測値を得る毎に、まず、前回計算したフィルタ分布x(t−1|t−1)(図4(a)参照)から、重みレジスタ13に保持されている重みを基に、システムモデルx(t)=F(x(t−1),v(t))におけるシステム雑音無しとして、x’(t)=F(x(t−1),0)の予測分布x’(t|t−1)を計算する(図4(b)参照)。図4(a)等では、粒子の重みwを黒丸の大きさで表している。
例として、状態推定の対象とするシステムが次式で表せる2次元の状態ベクトルをもつ線形のシステムモデルであるとして説明する。
Xa(t)=Xa(t−1)+ Xb(t−1)*Δt +v1(t)
Xb(t)=Xb(t−1)+v2(t)
ここで、2次元の状態ベクトルはXaとXbの要素をもち、時刻tにおける状態ベクトルがXa(t),Xb(t)とで構成され、Δtは前回の観測時刻から今回の観測時刻までの経過時間であり、v1(t),v2(t)は時刻tのシステム雑音とする。
従来の粒子フィルタでは、各粒子の予測値を計算する毎に疑似乱数を計算して、時刻t−1の粒子の状態ベクトルと、疑似乱数から計算したv1(t)、v2(t)を当該システムモデルに代入することにより状態ベクトルの予測値を計算していた。従来の粒子フィルタでは、リサンプル処理によって粒子が複製されるため、同じ状態ベクトルをもつ粒子が多数存在するが、疑似乱数の項があるため、時刻t−1の状態ベクトルが同じ値をもつ粒子であっても、状態ベクトルの予測値は同一の値とならない。このように、システム雑音は予測分布の分散を大きくする効果をもっている。
一方、本発明に係る状態推定器1では、疑似乱数の計算を行わないものとしている。このため本発明に係る状態推定器1は、システム雑音を無しとして、すなわちv1(t),v2(t)を0として、各粒子のt−1の状態を当該システムモデルに代入することで、粒子の状態ベクトルの予測値を計算した後、状態ベクトルの拡散処理を行う。このようにして、本発明に係る状態推定器1では、拡散処理により予測分布の分散を大きくすることで、システム雑音の付与と同様の効果を得ることができる。
本発明に係る状態推定器1では、図5に示すように、システム雑音を無しとして、すなわちv1(t),v2(t)を0として、各粒子の状態(Xa,Xb)をこのシステムモデルに代入し、システム雑音を無しとした状態予測値を計算し、予測前の各粒子の重みをそのまま対応付けて設定する。尚、2つ以上の粒子の予測後の状態が一致する場合には、粒子を1つにまとめ、それらの更新前の粒子の重みを加算した値をまとめた粒子の重みとする。このようにして、図4(a)に示すフィルタ分布x(t−1|t−1)から図4(b)に示す予測分布x’(t|t−1)を計算する。
図5に示す例ではW’(Xa+Xb*Δt,Xb)=W(Xa, Xb)となる。ここで、W’(Xa,Xb)はシステム雑音を無しとしたときの重みである。
続いて、フィルタ分布更新部12は、重みレジスタ13に保持されている重みを基に、当該フィルタ分布における各粒子に対する近傍位置に新たな粒子を追加する拡散処理を行うことにより、システム雑音v1(t),v2(t)を与え、各粒子の状態x(t)を示す予測分布x(t|t−1)を計算する(図4(c)参照)。
例えば、加重平均で拡散処理を行う例として、
W’’(Xa,Xb)=(W’(Xa−0.1,Xb)
+W’(Xa,Xb)*12
+W’(Xa+0.1, Xb)
+W’(Xa,Xb−1)
+W’(Xa,Xb+1))/16
とするように、注目粒子の周囲4点を加えたシステム雑音を無しとしたときの各粒子の重みW’(Xa,Xb)の加重平均で、拡散後の各粒子の重みW’’(Xa,Xb)を計算することができる(図5参照)。
続いて、フィルタ分布更新部12は、拡散処理を施した予測分布x(t|t−1)における各粒子の状態xに対して(図6(a)参照)、当該入力された観測値y(t)=yを基に尤度計算部11によって計算されている尤度p(y|x)を割り当て(図6(b)参照)、図6(c)に示すフィルタ分布を計算する(ステップS3)。このとき、フィルタ分布更新部12は、状態x(t)=xの重みwに尤度p(y|x)を乗じた値を、状態x(t)=xの新たな重みw(図5に示すW’’’)として、重みレジスタ13に保持されている重みを更新する(図4(d)及び図5参照)。
続いて、フィルタ分布更新部12は、当該フィルタ分布における各粒子における重みを一定の範囲に収めるレンジ調整処理を施し、当該重みレジスタ13に保持されていた重みを当該フィルタ分布における各粒子に対応付けたレンジ調整処理後の重みへ更新する(ステップS4)。従って、フィルタ分布更新部12は、重みレジスタ13に対し、フィルタ分布を計算する毎に当該フィルタ分布内の複数の粒子の各々の重みを更新して保持させる。
このように、従来技法の粒子フィルタでは、前述したようにフィルタ分布の計算後にリサンプル処理を行うが、本発明に係るフィルタ分布更新部12は、リサンプル処理を行わずにレンジ調整を行うよう動作する。
フィルタ分布の計算後では、重みwの値が全体的に小さくなることがあり、その場合には計算精度が低下する。また、重みwの値が極端に大きくなることもあり、オーバーフローが発生して正しい重みから大きく外れてしまい、その場合にも計算精度が低下する。例えば、観測値における観測雑音がその観測真値に対してプラス方向に極めて大きいとき、フィルタ分布内の全体の粒子の重みが影響を受けてしまい、その全ての重みが全体的に小さくなってしまうことがある。また、尤度計算部11の出力は尤度の定数倍としているため、定数の値によっては重みwの値が極端に大きくなる場合もある。
そこで、フィルタ分布更新部12は、フィルタ分布の計算後に、当該フィルタ分布内の複数の粒子の全ての重みを一定の比率で増減させ、最も大きな重みの値を一定の範囲に収めるレンジ調整処理を行う。
特に、本実施形態のフィルタ分布更新部12では、図7に示すように、このレンジ調整処理として、重みレジスタ13へと更新する重みの最大値が第1閾値Th1を超えた場合、その全ての重みを一定の比率で小さくし、重みレジスタ13へと更新する重みの最大値が第2閾値Th2以下となった場合に、全ての重みを一定の比率で大きくする。このレンジ調整処理があるため、フィルタ分布を計算するために用いる尤度の正規化処理を省略し、全体的な動作を高速化させることができる。
更に、重みレジスタ13へと更新する重みの最大値が第1閾値Th1を超えた場合、その全ての重みを「1/2倍」の比率で小さくし、重みレジスタ13へと更新する重みの最大値が第2閾値Th2以下となった場合に、全ての重みを「2倍」の比率で大きくするよう構成すると、1動作クロックによるビットシフトにより実現されるため、より一層、高速化に寄与するものとなる。
そして、フィルタ分布更新部12は、レンジ調整処理を施した重みが付与されている各粒子で表現された今回のフィルタ分布を推定値計算部14へ出力する。
推定値計算部14は、フィルタ分布更新部12から得られるレンジ調整処理を施した重みが付与されている各粒子で表現された今回のフィルタ分布から、粒子の期待値、中央値、或いは信頼区間を導出し、状態推定結果として外部に出力する。
例えば、図3に示す動物体の状態推定システムの例では、推定値計算部14は、位置Xaの期待値Eaは、重みレジスタ13に保持される時刻tの全ての粒子(状態x(t))の重みW(Xa,Xb)を全て読み出し、ΣXa*W(Xa,Xb)/ ΣW(Xa,Xb)により計算することができる。尚、Σは全ての状態に対する加算処理を表す。
以上のように、本発明に係る状態推定器1は、フィルタ分布更新部12により、複数次元で表される状態の変化を規定する所定のシステムモデルに従って観測値を得る毎に前回計算したフィルタ分布における各状態ベクトルに対して重みレジスタ13に保持されている重みを基に拡散処理を施して予測分布を計算するよう構成しているため、精度よく高速処理が可能である。
また、本発明に係る状態推定器1は、1つの状態に対する粒子が1つにまとめられて、予測分布からフィルタ分布を算出し、リサンプル処理を行うことなくレンジ調整処理を施すよう構成しているため、より一層、高速処理を可能にしている。
一方で、従来技法の粒子フィルタでは、予測分布の計算を粒子毎に行うため、粒子の数に比例した数の擬似乱数を計算する必要となり、粒子の状態の分布が集中する状態推定システムなど、膨大な計算量を要し、高速に実時間で動作する用途に利用することが困難であった。
そして、従来技法の粒子フィルタでは、擬似乱数が関与する処理以外の処理は状態ごとに処理をまとめられるが、リサンプル処理によって粒子のコピーが作られるため、同一の状態を持つ粒子が複数存在することになり、状態と粒子やその重みを1対1で対応づけることができなくなる。このため、従来技法の粒子フィルタは、汎用性が高まるものの非常に処理効率が悪いものとなる。
本発明に係る状態推定器1は、これらの粒子フィルタの問題を解決し、少ない計算量且つ短い遅延にて精度よく状態を推定し、尚且つ観測誤差の影響を除去可能とすることができる。
そして、本発明に係る状態推定器1は、粒子フィルタの利点を生かしつつ、計算負荷の大きい擬似乱数の計算やリサンプル処理を必要としない構成としているため、少ない計算負荷によって、線形或いはガウス型の時系列データを扱うシステムに限らず、正規分布に従わないモデルや非線形なモデルに基づく時系列データの状態推定システムや、尤度分布の変化が大きなシステムの状態推定にも実用的な構成となっている。
尚、本発明に係る状態推定器1は、コンピュータとして機能させることができ、当該コンピュータに、各構成要素を実現させるためのプログラムは、当該コンピュータのメモリに記憶される。当該コンピュータに備えられる中央演算処理装置(CPU)などの制御で、各構成要素の機能を実現するための処理内容が記述されたプログラムを、適宜、当該メモリから読み込んで各構成要素の機能を当該コンピュータに実現させることができる。
本発明に係る状態推定器1及びプログラムは、上述した実施形態の例に限定されるものではなく、特許請求の範囲の記載によってのみ制限される。
本発明によれば、時系列データの状態推定を行う際に、少ない計算量且つ短い遅延にて精度よく状態を推定し、尚且つ観測誤差の影響を除去可能とするので、状態空間モデルに基づく時系列データの制御装置、時系列解析装置、或いは動物体追跡等の信号処理装置の用途に有用である。
1 状態推定器
11 尤度計算部
12 フィルタ分布更新部
13 重みレジスタ
14 推定値計算部

Claims (7)

  1. 1次元もしくは複数次元ベクトルの粒子で表現された状態ベクトルの時間変化を規定する所定のシステムモデルを用いて状態推定を行う状態推定器であって、
    状態ベクトルとその状態ベクトルの重みの集合によって表現される状態の確率分布に従い、入力される観測値に基づいて、前記所定のシステムモデルに従う複数の粒子の状態ベクトルにそれぞれ対応する尤度を計算する尤度計算部と、
    前記観測値の観測時刻毎に、前回計算したフィルタ分布を構成する各粒子の状態ベクトルに対し、システム雑音が無いものとして前記所定のシステムモデルに従って各粒子の状態ベクトルと該各粒子の状態ベクトルの重みを更新し、該重みに拡散処理を施して予測分布を構成する粒子を追加もしくは各粒子の重みを更新し、該重みに該予測分布を構成する各状態ベクトルに対し前記尤度計算部によって計算される尤度を乗じた値を新たな重みとして更新し、各粒子の状態ベクトルにおける該重みを一定の範囲に収めるレンジ調整処理を施し、該レンジ調整処理を施して得られる各粒子の状態ベクトルと該各粒子の状態ベクトルの重みで構成されるフィルタ分布を今回のフィルタ分布として計算するフィルタ分布更新部と、
    前記フィルタ分布更新部により当該フィルタ分布を計算する毎に、各粒子の状態ベクトルの重みを更新して保持する重みレジスタと、
    当該今回のフィルタ分布を構成する各状態ベクトルとその状態ベクトルの重みから所定の推定値を導出する推定値計算部と、
    を備えることを特徴とする状態推定器。
  2. 前記フィルタ分布更新部は、前記拡散処理として、当該前回計算したフィルタ分布を表現する各状態ベクトルに対し前記所定のシステムモデルに従って更新した状態ベクトルとその状態ベクトルの重みを基にして加重平均又はローパスフィルタ処理、もしくは全部もしくは一定範囲の状態ベクトルの重みに対し均等に一定値を加算する処理により新たな重みを計算する処理、を含むことを特徴とする、請求項1に記載の状態推定器。
  3. 前記フィルタ分布更新部は、前記レンジ調整処理として、当該フィルタ分布内の複数の状態ベクトルの全ての重みを一定の比率で増減させ、最も大きな重みの値を一定の範囲に収める処理を含むことを特徴とする、請求項1又は2に記載の状態推定器。
  4. 前記フィルタ分布更新部は、前記レンジ調整処理として、前記重みレジスタへと更新する重みの最大値が第1閾値を超えた場合、その全ての重みを一定の比率で小さくし、前記重みレジスタへと更新する重みの最大値が第2閾値以下となった場合に、全ての重みを一定の比率で大きくする処理を含むことを特徴とする、請求項1から3のいずれか一項に記載の状態推定器。
  5. 前記フィルタ分布更新部は、前記レンジ調整処理として、前記重みレジスタへと更新する重みの最大値が前記第1閾値を超える場合には、その全ての重みを1/2倍の比率で小さくし、前記重みレジスタへと更新する重みの最大値が前記第2閾値以下となる場合には、全ての重みを2倍の比率で大きくする処理を含むことを特徴とする、請求項4に記載の状態推定器。
  6. 前記尤度計算部は、各状態ベクトルに対する尤度の合計を1とする正規化処理を省略して尤度を計算し、該尤度の値、若しくは該尤度の定数倍の値を前記フィルタ分布更新部に出力することを特徴とする、請求項1から5のいずれか一項に記載の状態推定器。
  7. コンピュータを、請求項1から6のいずれか一項に記載の状態推定器として機能させるためのプログラム。
JP2017007125A 2017-01-18 2017-01-18 状態推定器、及びプログラム Active JP6820204B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017007125A JP6820204B2 (ja) 2017-01-18 2017-01-18 状態推定器、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017007125A JP6820204B2 (ja) 2017-01-18 2017-01-18 状態推定器、及びプログラム

Publications (2)

Publication Number Publication Date
JP2018116511A JP2018116511A (ja) 2018-07-26
JP6820204B2 true JP6820204B2 (ja) 2021-01-27

Family

ID=62983955

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017007125A Active JP6820204B2 (ja) 2017-01-18 2017-01-18 状態推定器、及びプログラム

Country Status (1)

Country Link
JP (1) JP6820204B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11474486B2 (en) * 2019-03-11 2022-10-18 Mitsubishi Electric Research Laboratories, Inc. Model-based control with uncertain motion model
CN110497915B (zh) * 2019-08-15 2021-03-05 太原科技大学 一种基于加权融合算法的汽车行驶状态估计方法
CN110497916B (zh) * 2019-08-15 2021-03-05 太原科技大学 基于bp神经网络的汽车行驶状态估计方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3025269B1 (ja) * 1999-06-03 2000-03-27 株式会社半導体先端テクノロジーズ パタ―ン線幅シミュレ―ション方法およびパタ―ン線幅シミュレ―タ
US9077314B2 (en) * 2011-11-21 2015-07-07 The Board Of Trustees Of The University Of Illinois Feedback-based particle filtering
JP6482844B2 (ja) * 2014-12-11 2019-03-13 株式会社メガチップス 状態推定装置、プログラムおよび集積回路
JP6969871B2 (ja) * 2015-01-14 2021-11-24 日本電気株式会社 移動状況推定装置、移動状況推定方法およびプログラム

Also Published As

Publication number Publication date
JP2018116511A (ja) 2018-07-26

Similar Documents

Publication Publication Date Title
Wang et al. Gaussian filter for nonlinear systems with one-step randomly delayed measurements
Lincoln et al. Optimal control over networks with long random delays
JP6820204B2 (ja) 状態推定器、及びプログラム
JP2009516984A (ja) データ伝送経路を評価するためにフィルタリング及びアクティブプロービングを使用すること
Wang et al. Gaussian smoothers for nonlinear systems with one-step randomly delayed measurements
Mohammadi et al. Consensus-based distributed dynamic sensor selection in decentralised sensor networks using the posterior Cramér–Rao lower bound
CN110687555A (zh) 一种导航卫星原子钟弱频率跳变在轨自主快速检测方法
Wang et al. A single-server discrete-time queue with correlated positive and negative customer arrivals
Caballero-Águila et al. Covariance-based estimation algorithms in networked systems with mixed uncertainties in the observations
Hajikhani et al. A recursive method for clock synchronization in asymmetric packet-based networks
EP2299613B1 (en) A method for clock synchronization in a communication network
Garcia et al. Parameter estimation in time-triggered and event-triggered model-based control of uncertain systems
Garcia-Ligero et al. Estimation from a multisensor environment for systems with multiple packet dropouts and correlated measurement noises
KR20180099140A (ko) 클럭 동기화 장치 및 방법
Tripathi et al. Innovation-based fractional order adaptive Kalman filter
Giordano et al. Consistency aspects of Wiener-Hammerstein model identification in presence of process noise
Caballero-Águila et al. Covariance-based estimation from multisensor delayed measurements with random parameter matrices and correlated noises
Masnadi-Shirazi et al. A Step by Step Mathematical Derivation and Tutorial on Kalman Filters
Caballero-Águila et al. Recursive least-squares quadratic smoothing from measurements with packet dropouts
Vaghefi et al. Improving mobile node tracking performance in NLOS environments using cooperation
Diniz et al. Kalman filters
Liu et al. Bayesian unscented Kalman filter for state estimation of nonlinear and non-Gaussian systems
Hermoso-Carazo et al. Unscented filtering from delayed observations with correlated noises
Maity et al. Stochastic differential linear-quadratic games with intermittent asymmetric observations
Nakamori Design of RLS-FIR filter using covariance information in linear continuous-time stochastic systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201112

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210104

R150 Certificate of patent or registration of utility model

Ref document number: 6820204

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250