Включение экзогенных (управляющих) входов в линейный фильтр без фильтра Калмана в PyKalman
Я очень плохо знаком с библиотекой pykalman, поэтому извиняюсь за наивность моего вопроса. Моя проблема похожа на проблему 48. Мне было интересно, была ли добавлена явная экзогенная (управляющая) функция ввода в pykalman.
Если нет, то будет полезен минимальный рабочий пример, показывающий, как правильно включать экзогенные входные данные в фильтр. Из вышеупомянутого вопроса, хотя решение было предоставлено, мне не было ясно, что именно автор имел в виду, "добавляя управляющие входы в вектор шума". Также я пытаюсь добавить управляющий вход в линейный фильтр Калмана.
Если мы рассмотрим x(t+1)
быть n
мерный вектор, представляющий предсказанное среднее x
вовремя t+1
, затем:
- Текущая настройка
x(t+1) = Ax(t) + Noise
(уравнение состояния) - А будет n X n
матрица.
Если я сейчас хочу добавить еще k
размерный входной вектор z(t)
как экзогенный (он же контрольный) вход для прогнозирования x
вовремя t+1
- Альтернативная формулировка
[x(t+1), z(t+1)] = A[x(t),z(t)] + Noise
(уравнение состояния с управляющим входом z(t))
Я мог бы по существу использовать метод, предложенный в 2, но в этом случае оценка состояния будет рассматриваться как весь вектор [x(t+1), z(t+1)]
который будет включать в себя вектор z(t+1)
в последующей процедуре моделирования. В отличие от того, если бы я должен был включить контроль следующим образом:
- Предпочтительная формулировка
[x(t+1)] = Ax(t) + Bz(t) + Noise
(уравнение состояния с управляющим входом z(t))
Я хочу знать, как я смогу достичь эффекта, требуемого в формулировке 3, с использованием стандартного (линейного) фильтра Калмана в Pykalman?
Проблема также была открыта в хранилище