Я построил (несколько) дискретных расширенных фильтров Калмана (EKF). Модель системы, которую я строю, имеет 9 состояний и 10 наблюдений. Я вижу, что большинство государств сходятся, кроме одного. Все, кроме 1-2 оценки состояния EKF, похоже, дрейфуют. Поскольку EKF зависит от всех сходящихся состояний, остальные состояния очень ошибочны после расхождения.
Как я могу проверить наблюдаемость EKF? Должен ли я просто проверить ранг измерения якобиана и посмотреть, меньше ли он максимального ранга измерения якобиана?
После добавления большего количества измерений в мою симуляцию я смог заставить вещи сходиться. Однако мой вопрос о наблюдаемости все еще остается!
Выпуск:
Графики оценки истинности и EKF можно найти здесь или посмотреть ниже.
Ноты:
- Модель довольно нелинейна между временными шагами 400-600, следовательно, существует некоторое расхождение некоторых состояний
- Рисунок / Состояние 6 - это то, что, кажется, расходится
- Пожалуйста, игнорируйте графики «показания датчика» для рисунков 8/9.
Вещи, которые я пробовал:
- Я знаю, что для линейных систем пространства состояний вы можете использовать теорему Кэли Гамильтона для проверки наблюдаемости.
- Я попытался проверить остаток инновации / измерения,
e
и все инновации сходятся к 0 - Я также проверил различные входные данные, и они, кажется, не влияют на сходимость расходящихся состояний
- Я настроил EKF без каких-либо признаков конвергенции для расходящихся состояний
- Графики для другого входного сигнала: или см. Ниже
- После разговора с коллегой он предложил мне изучить еще одну проблему, которая может заключаться в том, что существует наблюдение, которое линейно зависит от 2 состояний, например
y = x1 + x2
. Существует бесконечное число значений, которые могут удовлетворять одному и тому жеy
, но разве не должна наблюдательность также охватить эту проблему?
Пожалуйста, дайте мне знать, если что-нибудь еще я могу предоставить.
Графики наземной правды и оценки EKF:
нажмите на картинку для увеличения
Дополнительный входной сигнал:
нажмите на картинку для увеличения
rank(O) = [H; HA...] = n
. Единственная проблема состоит в том, что у меня есть что-то вродеsin( x(3) )
или синус состояния 3. Я линеаризую этоx(3)
и рассматриваю как часть матрицы A? Я сделаю снимок утром и доложу. cwrucutter.wordpress.com/2012/11/12/…