• 締切済み

時変カルマンフィルタと定常カルマンフィルタの違いがわかりません

大学でカルマンフィルタを使った研究をしようと思っています。 Matlabを使い下記URLを元にカルマンフィルタの理解を深めようとしているのですが、時変カルマンフィルタと定常カルマンフィルタの違いがわかりません。下記URLでは、時変カルマンフィルタは「この共分散プロットから、出力共分散がおよそ5つのサンプルで実際に定常状態に達したことを確認できます。それ以降、時変フィルタは定常状態バージョンと同じ性能を維持します。」とあるのですが、これは「時変カルマンフィルタは、結局は定常カルマンフィルタと同じ」ということなんでしょうか? また、そうでないとすれば、時変カルマンフィルタと定常カルマンフィルタの違いってなんでしょうか? 途中で外乱が発生した場合を仮定して、観測ノイズvとプロセスノイズwを途中で変化させる、ようなこともしたのですが、時変カルマンフィルタは定常状態に達した後は定常カルマンフィルタと同じ結果を示しました。なので外乱に強いというわけでもなさそうです。(初心者なのでこの実験自体、正しくプログラムを設計できていたかも怪しいです。) 時変カルマンフィルタにするメリットが何かわかりません。できれば、matlabを使ったカルマンフィルタを詳しく説明してる本やHPがあれば教えてください。 回答よろしくお願いします。 URL:http://dl.cybernet.co.jp/matlab/support/manual/r13/toolbox/control/casestudies/?/matlab/support/manual/r13/toolbox/control/casestudies/demos15.shtml

みんなの回答

  • 306lov
  • ベストアンサー率0% (0/0)
回答No.2

QやRが正しくわかれば、正確になるというのは正しいです。 イメージとして、 1. QとRが大きくなる(つまりノイズの成分が増える)とPが大きくなる 2. Pが大きくなるとカルマンゲインが小さくなる 3. カルマンゲインが小さくなると、観測出力への収束が緩やかになる という感じです。 GPSでたとえた場合、RはGPSの半径精度をあらわしていると考えてみてください。Rが大きくなれば精度は劣化するということです。そのような場合、上記手順で、GPS観測値への収束は緩やかになります。逆にRが小さい場合は速やかに観測値に収束します。 ところで上記ページによれば、QやRを1と仮定しているのは定常フィルタの項目で、自変フィルタの項目では、Q=E(w[t] w[t]^T), R=E(v[t]*v[t]^T) と、分散の定義どおり雑音の自乗の平均値で求めていますね。 QやRを正しい値にすることは、実際に応用する場合は非常に難しいです。 w や v の値がわかっているシミュレーションではこの定義どおりプログラムを組めばとりあえずは希望がかなうのではないでしょうか?

  • 306lov
  • ベストアンサー率0% (0/0)
回答No.1

時変カルマンフィルタの状態推定値の共分散行列 P の遷移を表す方程式の中から、時変な要素(n を添字に持つ値)に注目してみてください。 外的に時間変化する要因と言えば、プロセスノイズの共分散行列 Q と観測ノイズの共分散行列 R しかないことが分かると思います。 v と w を変化させたとき、Q と R の値が変化していることは確認できましたか?これらが変化することで状態推定値の共分散行列 P が変化し、それに伴ってゲイン M も変化します。 Q と R が変わっていなければ、定常解に収束して行くので定常カルマンフィルタと等価になります。 現実的にはノイズの真の共分散など分かるものではないので、Q や R はチューニングパラメータとして扱われます。観測手段によっては R を求めることができる場合があります(GPS の観測値など)

kkkkk12319
質問者

お礼

返信が遅れてしまい申し訳ございませんでした。 回答ありがとうございます。 ノイズが変わればQ,Rも変わることはわかったのですが、質問に示したURLのページでは、Q,Rをはじめに1と仮定して、変化のないものだとしています。Q,Rを正しく取ることで、推定誤差を減らすことができると理解しているのですが、これの理解は正しいですか?そして、Q,Rを正しい値に収束させるようなことは可能なのでしょうか?もし可能であるならそれを質問に示したURLのページで使われているプログラムに手を加えてあらわしていただけないでしょうか。 度重なる質問すいません。

関連するQ&A

  • c言語のプログラムにMATLABを入れたい

    CプログラムからのMATLABの呼び出しを行いたいのですが その環境設定の方法が http://dl.cybernet.co.jp/matlab/support/manual/r14/toolbox/matlab/matlab_external/?/matlab/support/manual/r14/toolbox/matlab/matlab_external/ch_c_mex.shtml 上記ページに書かれているのですが icudt24b.dat,or icudt24l.datがないので手に入れたく探したのですが 見当たらないので入手先をご存知の方がいたら教えていただきたいのと 自分のシステムがbig-endian、little-endianのどちらのシステムか判別する方法を教えて頂きたいです。

  • Matlabのspdiags関数

    Matlabのspdiags関数に関してわからないところがあります。以下はMatlabのヘルプWebページから持ってきた例です。http://dl.cybernet.co.jp/matlab/support/manual/r2006/toolbox/matlab/math/?/matlab/support/manual/r2006/toolbox/matlab/math/sparse4.shtml B = [ 41 11 0 52 22 0 63 33 13 74 44 24 ]; d = [-3 0 2];、m=7, n=4のとき A = spdiags(B,d,7,4) A = (1,1) 11 (4,1) 41 (2,2) 22 (5,2) 52 (1,3) 13 (3,3) 33 (6,3) 63 (2,4) 24 (4,4) 44 (7,4) 74 これに対応するフル行列Aは、つぎのようになります。 full(A) ans = 11 0 13 0 0 22 0 24 0 0 33 0 41 0 0 44 0 52 0 0 0 0 63 0 0 0 0 74 mやnというのはfull(A)がm行n列の行列であるというイメージの対応がわかるのですが、d = [-3 0 2]とfull(A)の行列の関係がわかりません。-3,0,2というのはfull(A)のどこを見れば良いのでしょうか。

  • 統計の検定と信頼区間について

    統計学で検定,信頼区間について勉強しています。 参考書を読んで理解に努めているのですが,どうもよく分かりません。 <信頼区間> http://dl.cybernet.co.jp/matlab/support/manual/r2007/toolbox/matlab/data_analysis/?/matlab/support/manual/r2007/toolbox/matlab/data_analysis/bqm3cio-1.shtml 上記リンクにおける2次多項式の信頼区間について, 信頼区間とは,データを発生した真の回帰式のパラメータに対して, 推定したパラメータがどれだけ信頼できる値であるかを示しているという 解釈でよろしいのでしょうか? <検定>(http://case.f7.ems.okayama-u.ac.jp/statedu/hbw2-book/node9.html) 回帰における検定で,回帰係数の真の値がゼロでないかどうかを調べる とあるのですが,なぜこれを調べるのでしょうか? また,検定は上記の信頼区間の推定とどう関っているのでしょうか?

  • ヒストグラム

    C++で画像を読み込みヒストグラムを出すようにしたいのですが、いまいち何をヒストグラムに表したらよくわかりません。BMPのRGBで読み込んだ場合、読み込んだRGBをそのままにグラフにしたらいいのでしょうか?(グレイレベルの場合です)以下のサイトのグラフ結果のようにしたいです。(0から1までのほうのグラフです)回答お願いします。 http://www.cybernet.co.jp/matlab/support/manual/r14/toolbox/images/enhanc17.shtml#19234

  • カルマンフィルタで困っています。

    初心者です。 急に仕事でカルマンフィルタを扱うことになって困っています。 初心者ように詳しく書かれた書籍・文献を至急教えてください。 よろしくお願い申し上げます。

  • iフィルターの削除についてなんですが・・・・

    iフィルターを削除しようとネットで調べてみて これだ!と思った方法があって(こちらです↓) 解除手順 サービスを起動させる(以下のどちらかの方法を用いる) 「ファイル名を指定して実行」へ「services.msc」と入力して OK をクリックする 「コントロールパネル」-「管理ツール」ー「サービス」をダブルクリックする i-フィルター 5.0 Main をダブルクリックしてプロパティを表示させる スタートアップの種類を「自動」から「手動」に変更して OK をクリックする i-フィルター 5.0 Support に対しても同様の処理を行う 再起動する 以上の操作で永久的に解除される。 ↑ 復元手順 解除手順と同様にしてサービスを起動させる i-フィルター 5.0 Main をダブルクリックしてプロパティを表示させる スタートアップの種類を「手動」から「自動」に変更して OK をクリックする i-フィルター 5.0 Support に対しても同様の処理を行う 再起動する 以上の手順で元の状態に復元される。 やろうとおもったのですが、「手動」にしようとしたら 「ローカルコンピューターでサービスIFP5Watchserviceを書き込み用に開けません エラー5 アクセスが拒否されました」 と出るんです。なんか 設定できないようロックされてるみたいで・・・・そのロックを解除する方法はないでしょうか?? どうか お願いします。

  • 線形計画法について

    min w1+w2+0*z1+0*z2 s.t. z1>=w1+w2+1    z2>=w1-w2+1    w1+w2=0    z1+z2=0    z1>=0、z2>=0、w1>=0、w2>=0 を考える. いま、Matlabの線形計画問題を解く関数linprog() http://dl.cybernet.co.jp/matlab/support/manual/r13/toolbox/optim/linprog.shtml を使って解くことをしたいので、 上記リンク先において、  X=[w1,w2,z1,z2]  f=[1,1,0,0]  Aeq=[1,1,0,0;    0,0,1,1]  Beq=[0,0] となると思います。 問題は、Ax>=B の箇所なのですが、    z1>=w1+w2+1    z2>=w1-w2+1 を移項して、    -z1+w1+w2<=-1    -z2+w1-w2<=-1 として、    A=[-1,0,1,1;     0,-1,1,-1]    B=[-1,-1]; とするのでしょうか? どうも、このようにしてlinprog()に走らせると、最適化は終了するのですが、得られたパラメータが等式制約をみたしていない状態になります。 (実際、走らせた問題は微妙に違うものですが・・・) 原因として、この「Ax<=B」の入れ方だと思うのですが、上記のやり方では間違いなのでしょうか? 実行可能解の領域が閉空間でなく開空間になってしまっているのではないか思っています。

  • カルマン渦のカルマンさんはどんな人

    でしょうか?

  • 定常波と定在波の違いについて

    定常波と定在波の違いは何でしょうか?また超伝導と超電導の違いは?

  • フィルター と フィルタ の違いって?

    フィルター・ブレーカー・スピーカー・メンバーなど 尾に"er"などが付く言葉は語尾を延ばすのと延ばさないのが有りますが、略してるだけでしょうか? <本当の違いは何なんでしょう・・・?> あまり気にしてなかったのですが、何年経っても気になるので教えてください。