Zbudowałem (kilka) dyskretnych rozszerzonych filtrów Kalmana (EKF). Model systemu, który buduję, ma 9 stanów i 10 obserwacji. Widzę, że większość stanów zbiega się z wyjątkiem jednego. Wszystkie z wyjątkiem 1-2 oszacowania stanu EKF wydają się dryfować. Ponieważ EKF zależy od zbieżności wszystkich stanów, pozostałe stany są bardzo błędne po rozbieżności.
Jak sprawdzić obserwowalność EKF? Czy po prostu sprawdzam rangę pomiaru jakobińskiego i sprawdzam, czy jest ona mniejsza niż maksymalna ranga pomiaru jakobińskiego?
Po dodaniu kolejnych pomiarów w mojej symulacji udało mi się doprowadzić do zbieżności. Jednak moje pytanie dotyczące obserwowalności wciąż pozostaje!
Kwestia:
Podstawowe informacje o prawdzie i wykresy szacunkowe EKF można znaleźć tutaj lub zobaczyć poniżej.
Uwagi:
- Model jest dość nieliniowy między przedziałami czasowymi 400–600, stąd pewne rozbieżności niektórych stanów
- Rycina / stan 6 wydaje się rozbieżna
- Proszę zignorować wykresy „odczytów czujników” dla rysunków 8/9
Rzeczy, których próbowałem:
- Wiem, że w przypadku liniowych systemów przestrzeni stanów można użyć twierdzenia Cayleya Hamiltona do sprawdzenia obserwowalności.
- Próbowałem sprawdzić resztkową wartość innowacji / pomiaru
e
i wszystkie innowacje są zbieżne do zera - Testowałem również różne dane wejściowe i wydaje się, że nie wpływają one na zbieżność stanów rozbieżnych
- Dostroiłem EKF bez żadnych oznak zbieżności dla stanów rozbieżnych
- Wykresy dla innego sygnału wejściowego: lub patrz poniżej
- Po rozmowie z kolegą zasugerował, żebym zbadał inną kwestię, która może polegać na obserwacji, która jest liniowo zależna od 2 stanów, np
y = x1 + x2
. Istnieje nieskończona liczba wartości, które mogłyby spełnić to samoy
, ale czy obserwowalność nie powinna również uchwycić tego problemu?
Daj mi znać, jeśli mogę coś jeszcze dostarczyć.
Podstawowe wykresy szacunków i EKF:
Kliknij obraz, aby powiększyć
Dodatkowy sygnał wejściowy:
Kliknij na zdjęcie, aby powiększyć
rank(O) = [H; HA...] = n
. Jedynym problemem jest to, że mam coś w rodzajusin( x(3) )
stanu sinus 3. Czy linearyzuję tox(3)
i traktuję jako część macierzy A? Zrobię to rano i zdam raport. cwrucutter.wordpress.com/2012/11/12/…