システムモデルのモデリング、つまり状態ベクトルと入力ベクトルの取得に行き詰まっています。私の推測では、位置と速度は状態ベクトルであり、加速度は入力ベクトルです。私の2番目の推測は、3つの量はすべて状態ベクトルにあり、入力ベクトルにはないということです。
だから...私の場合、状態ベクトルと入力ベクトルは何ですか?
-
追加情報:
位置センサーと加速度センサーから測定値を取得します。すべてが1Dで発生しています。たとえば、直線上です。これらの読み取り値をマージして(ノイズを除去して)、各タイムステップの速度の推定値を取得したいと考えています。
これらの方程式はシステムを記述します。彼らが正しくモデル化されているかどうかはわかりません。私が正しく理解していれば、加速度は一定であると予測しても安全です(実際には変化しますが)-プロセスの共分散行列がこの仮定を修正するためです(正しいですか)。
使用するサンプルデータもいくつかあります(入力値はここでは簡単にするためにノイズを加えていません)。
time pos acc what I should get as output (velocity)
[0.0s] 0.000, -0.000 | 18.850
[0.1s] 1.885, -0.113 | 18.850
[0.2s] 3.768, -0.227 | 18.839
[0.3s] 5.650, -0.340 | 18.816
[0.4s] 7.528, -0.452 | 18.782
[0.5s] 9.401, -0.565 | 18.737
追加2:
より良いコミュニケーションのために、私は新しい回答を作成していますが、最初の回答へのコメントとして扱われるべきです。ジェイソン、あなたはすでにものすごく手助けしてくれました。あなたの時間に本当に感謝しています。ただし、これでもまだ問題があります。カルマンフィルターの結果は期待どおりではありません。時間がありましたら、以下をご覧ください。ありがとうございます。私はすでにあなたに1杯または2杯のビール(または必要に応じてコーヒー)を借りています-ペイパルがある場合はprimoz [at] codehunter.euで私に連絡してください:)
Jasonが最初の回答で提案したモデルを実装しました。ジャークを4番目の状態変数として追加しました。何時間もレビューした後、私はここに戻って助けを求めることにしました。KFから得られる値は期待どおりではありません。以下の表は、アルゴリズムの最初の10回の反復からのデータを表しています。ジャークが時間ステップごとに増加しているため、他の推定が間違っていることに注意してください。1秒後、実際の加速度と推定値の差は1m /s²を超えます(表の最後の行を参照)。
real measured estimated real
time pos acc pos acc pos acc jerk vel[!] velocity
0.0 0.000 -0.000 -0.040 0.030 | -0.300 -0.060 0.000 18.850 <--> 18.850
0.1 1.885 -0.113 1.965 -0.153 | 1.585 -0.061 -0.006 18.844 <--> 18.844
0.2 3.768 -0.227 3.778 -0.247 | 3.469 -0.066 -0.035 18.835 <--> 18.827
0.3 5.650 -0.340 5.750 -0.370 | 5.351 -0.090 -0.122 18.815 <--> 18.799
0.4 7.528 -0.452 7.358 -0.452 | 7.228 -0.152 -0.291 18.769 <--> 18.759
0.5 9.401 -0.565 9.251 -0.555 | 9.094 -0.282 -0.574 18.673 <--> 18.708
0.6 11.269 -0.677 11.309 -0.717 | 10.938 -0.518 -1.006 18.494 <--> 18.646
0.7 13.130 -0.788 13.260 -0.758 | 12.752 -0.840 -1.490 18.233 <--> 18.573
0.8 14.983 -0.899 15.043 -0.949 | 14.520 -1.286 -2.096 17.854 <--> 18.488
0.9 16.827 -1.009 16.977 -1.089 | 16.235 -1.838 -2.770 17.362 <--> 18.393
1.0 18.661 -1.118 18.831 -1.168 | 17.890 -2.477 -3.476 16.762 <--> 18.287
私のマトリックスはここにあります:
ジャークの各タイムステップでこの追加の原因は何ですか?私のマトリックスのいずれかが間違っていますか?
同じことが最初の解決策(3つの状態モデルのみ)にも当てはまります-加速は必要に応じて変化していません。
最終編集:
ようやくそれを機能させることができました。実装エラーや間違ったP&Qマトリックスがあったかどうかはわかりません。