Розширений фільтр Калмана

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

У теорії статистичного оцінювання[en] розширений фільтр Калмана (англ. extended Kalman filter, EKF) — це нелінійна[en] версія фільтру Калмана, що лінеаризується навколо оцінки поточного середнього значення та коваріації. У випадку гарно визначених моделей переходу розширений фільтр Калмана було визнано[1] стандатом де-факто у теорії оцінювання нелінійних станів, навігаційних системах[en] та GPS.[2]

Історія[ред.ред. код]

Праці, що встановлюють математичні основи фільтрів типу фільтра Калмана, було опубліковано між 1959 та 1961 роками.[3][4][5] Головною вадою фільтру Калмана є те, що він є оптимальною оцінкою для моделей лінійних систем з додатковим незалежним білим шумом як у системі переходу, так і в системі вимірювання. На жаль, більшість систем у техніці є нелінійними, тому одразу було зроблено певну спробу застосування цього методу фільтрування до нелінійних систем. Більшість цієї роботи було зроблено у дослідницькому центрі Еймса НАСА.[6][7] Робочим рішенням став розширений фільтр Калмана, що пристосував прийоми з числення, а саме багатовимірні розклади в ряди Тейлора, для лінеаризації навколо робочої точки. Якщо модель системи (як описано нижче) не достатньо добре відома, або є неточною, то для оцінювання застосовуються методи Монте-Карло, зокрема частинкові фільтри[en]. Методи Монте-Карло передують існуванню розширеного фільтру Калмана, але є обчислювально витратнішими для будь-якого простору станів[en] з помірною кількістю вимірів.

Формулювання[ред.ред. код]

У розширеному фільтрі Калмана моделі переходу стану та спостереження не повинні бути обов'язково лінійними функціями стану, натомість вони можуть бути нелінійними диференційовними функціями.

\boldsymbol{x}_{k} = f(\boldsymbol{x}_{k-1}, \boldsymbol{u}_{k-1}) + \boldsymbol{w}_{k-1}
\boldsymbol{z}_{k} = h(\boldsymbol{x}_{k}) + \boldsymbol{v}_{k}

де wk та vk є шумами процесу та спостереження, що обидва вважаються шумами з багатовимірним нормальним розподілом з нульовим середнім значенням з коваріаціями Qk та Rk відповідно.

Функція f може використовуватися для обчислення передбачуваного стану з попередньої оцінки, і, аналогічно, функція h може використовуватися для обчислення передбачуваного вимірювання з передбаченого стану. Проте, f та h не можуть застосовуватися до коваріації безпосередньо. Натомість обчислюється матриця часткових похідних (матриця Якобі).

На кожному такті матриця Якобі обчислюється для поточних передбачених станів. Ці матриці можуть використовуватися у рівняннях фільтру Калмана. Цей процес, по суті, лінеаризує нелінійну функцію навколо поточної оцінки.

Рівняння передбачення та уточнення для дискретного часу[ред.ред. код]

Передбачення[ред.ред. код]

Передбачена оцінка стану \hat{\boldsymbol{x}}_{k|k-1} = f(\hat{\boldsymbol{x}}_{k-1|k-1}, \boldsymbol{u}_{k-1})
Коваріація передбаченої оцінки  \boldsymbol{P}_{k|k-1} =  {\color{Red}{\boldsymbol{F}_{k-1}}} \boldsymbol{P}_{k-1|k-1}{\color{Red} {\boldsymbol{F}_{k-1}^\top}} + \boldsymbol{Q}_{k-1}

Уточнення[ред.ред. код]

Нововведення, або відхилення вимірювання \tilde{\boldsymbol{y}}_{k} = \boldsymbol{z}_{k} - h(\hat{\boldsymbol{x}}_{k|k-1})
Коваріація нововведення (або відхилення) \boldsymbol{S}_{k} = {\color{Red}{\boldsymbol{H}_{k}}}\boldsymbol{P}_{k|k-1}{\color{Red}{\boldsymbol{H}_{k}^\top}} + \boldsymbol{R}_{k}
Близький до оптимального передавальний коефіцієнт Калмана \boldsymbol{K}_{k} = \boldsymbol{P}_{k|k-1}{\color{Red}{\boldsymbol{H}_{k}^\top}}\boldsymbol{S}_{k}^{-1}
Уточнена оцінка стану \hat{\boldsymbol{x}}_{k|k} = \hat{\boldsymbol{x}}_{k|k-1} + \boldsymbol{K}_{k}\tilde{\boldsymbol{y}}_{k}
Коваріація уточненої оцінки  \boldsymbol{P}_{k|k} = (\boldsymbol{I} - \boldsymbol{K}_{k} {\color{Red}{\boldsymbol{H}_{k}}}) \boldsymbol{P}_{k|k-1}

де матриці переходу стану та спостереження визначено як наступні матриці Якобі

 {\color{Red}{\boldsymbol{F}_{k-1}}} = \left . \frac{\partial f}{\partial \boldsymbol{x} } \right \vert _{\hat{\boldsymbol{x}}_{k-1|k-1},\boldsymbol{u}_{k-1}}
 {\color{Red}{\boldsymbol{H}_{k}}} = \left . \frac{\partial h}{\partial \boldsymbol{x} } \right \vert _{\hat{\boldsymbol{x}}_{k|k-1}}

Розширені фільтри Калмана вищих порядків[ред.ред. код]

Наведена вище рекурсія є розширеним фільтром Калмана першого порядку. Розширені фільтри Калмана вищих порядків може бути отримано збереженням більшої кількості членів розкладу в ряд Тейлора. Наприклад, розширені фільтри Калмана другого та третього порядків описано у [8]. Однак, розширеним фільтрам Калмана вищих порядків властиво забезпечувати перевагу в продуктивності лише за малого шуму вимірювання.

Формулювання та рівняння для неадитивного шуму[ред.ред. код]

Типове формулювання розширеного фільтру Калмана включає припущення про адитивність шуму процесу та вимірювання. Однак, це припущення не є обов'язковим для реалізації розширеного фільтру Калмана.[9] Натомість, розгляньмо загальнішу систему вигляду:

\boldsymbol{x}_{k} = f(\boldsymbol{x}_{k-1}, \boldsymbol{u}_{k-1}, \boldsymbol{w}_{k-1})
\boldsymbol{z}_{k} = h(\boldsymbol{x}_{k}, \boldsymbol{v}_{k})

Де wk та vk є шумами процесу та спостереження, що, як вважається, обидва мають багатовимірні нормальні розподіли з нульовими середнім значенням з коваріаціями Qk та Rk відповідно. Тоді рівняннями коваріації передбачення та нововведення стають

 \boldsymbol{P}_{k|k-1} =  {{\boldsymbol{F}_{k-1}}} \boldsymbol{P}_{k-1|k-1}{{\boldsymbol{F}_{k-1}^\top}} + \boldsymbol{L}_{k-1} \boldsymbol{Q}_{k-1}\boldsymbol{L}^{T}_{k-1}
 \boldsymbol{S}_{k} = {\boldsymbol{H}_{k}}\boldsymbol{P}_{k|k-1}{\boldsymbol{H}_{k}^\top} + \boldsymbol{M}_{k} \boldsymbol{R}_{k} \boldsymbol{M}_{k}^{T}

де матриці \boldsymbol{L}_{k-1} та \boldsymbol{M}_{k} є матрицями Якобі:

 {\boldsymbol{L}_{k-1}} = \left . \frac{\partial f}{\partial \boldsymbol{w} } \right \vert _{\hat{\boldsymbol{x}}_{k-1|k-1},\boldsymbol{u}_{k-1}}
 {\boldsymbol{M}_{k}} = \left . \frac{\partial h}{\partial \boldsymbol{v} } \right \vert _{\hat{\boldsymbol{x}}_{k|k-1}}

Передбачена оцінка стану та відхилення вимірювання обчислюються на середньому значенні виразів шумів процесу та вимірювання, що вважаються нульовими. Інакше реалізується формулювання для неадитивного шуму в такий самий спосіб, як і розширений фільтр Калмана з адитивним шумом.

Розширений фільтр Калмана для безперервного часу[ред.ред. код]

Модель


\begin{align}
\dot{\mathbf{x}}(t) &= f\bigl(\mathbf{x}(t), \mathbf{u}(t)\bigr) + \mathbf{w}(t), &\mathbf{w}(t) &\sim N\bigl(\mathbf{0},\mathbf{Q}(t)\bigr) \\
\mathbf{z}(t) &= h\bigl(\mathbf{x}(t)\bigr) + \mathbf{v}(t),   &\mathbf{v}(t) &\sim N\bigl(\mathbf{0},\mathbf{R}(t)\bigr)
\end{align}

Ініціалізація


\hat{\mathbf{x}}(t_0)=E\bigl[\mathbf{x}(t_0)\bigr] \text{, } \mathbf{P}(t_0)=Var\bigl[\mathbf{x}(t_0)\bigr]

Передбачення-уточнення


\begin{align}
\dot{\hat{\mathbf{x}}}(t) &= f\bigl(\hat{\mathbf{x}}(t),\mathbf{u}(t)\bigr)+\mathbf{K}(t)\Bigl(\mathbf{z}(t)-h\bigl(\hat{\mathbf{x}}(t)\bigr)\Bigr)\\
\dot{\mathbf{P}}(t) &= \mathbf{F}(t)\mathbf{P}(t)+\mathbf{P}(t)\mathbf{F}(t)^{\top}-\mathbf{K}(t)\mathbf{H}(t)\mathbf{P}(t)+\mathbf{Q}(t)\\
\mathbf{K}(t) &= \mathbf{P}(t)\mathbf{H}(t)^{\top}\mathbf{R}(t)^{-1}\\
\mathbf{F}(t) &= \left . \frac{\partial f}{\partial \mathbf{x} } \right \vert _{\hat{\mathbf{x}}(t),\mathbf{u}(t)}\\
\mathbf{H}(t) &= \left . \frac{\partial h}{\partial \mathbf{x} } \right \vert _{\hat{\mathbf{x}}(t)} 
\end{align}

На відміну від розширеного фільтру Калмана для дискретного часу, в розширеному фільтрі Калмана для безперервного часу кроки передбачення та уточнення спарюються.

Розширений фільтр Калмана для дискретного часу[ред.ред. код]

Більшість фізичних систем представляються моделями безперервного часу, тоді як вимірювання для оцінки стану цифровим обробником часто беруться в дискретному часі. Тому модель системи та модель вимірювання задаються як


\begin{align}
\dot{\mathbf{x}}(t) &= f\bigl(\mathbf{x}(t), \mathbf{u}(t)\bigr) + \mathbf{w}(t), &\mathbf{w}(t) &\sim N\bigl(\mathbf{0},\mathbf{Q}(t)\bigr) \\
\mathbf{z}_k &= h(\mathbf{x}_k) + \mathbf{v}_k,   &\mathbf{v}_k &\sim N(\mathbf{0},\mathbf{R}_k)
\end{align}

де \mathbf{x}_k=\mathbf{x}(t_k).

Ініціалізація


\hat{\mathbf{x}}_{0|0}=E\bigl[\mathbf{x}(t_0)\bigr], \mathbf{P}_{0|0}=Var\bigl[\mathbf{x}(t_0)\bigr]

Передбачення


\begin{align}
&\begin{cases}
\dot{\hat{\mathbf{x}}}(t) = f\bigl(\hat{\mathbf{x}}(t), \mathbf{u}(t)\bigr), \\
\dot{\mathbf{P}}(t) = \mathbf{F}(t)\mathbf{P}(t)+\mathbf{P}(t)\mathbf{F}(t)^\top + \mathbf{Q}(t),
\end{cases}\qquad
\text{ }
\begin{cases}
\hat{\mathbf{x}}(t_{k-1}) = \hat{\mathbf{x}}_{k-1|k-1}, \\
\mathbf{P}(t_{k-1}) = \mathbf{P}_{k-1|k-1},
\end{cases} \\
\Rightarrow
&\begin{cases}
\hat{\mathbf{x}}_{k|k-1} = \hat{\mathbf{x}}(t_k) \\
\mathbf{P}_{k|k-1} = \mathbf{P}(t_k)
\end{cases}
\end{align}

де

 \mathbf{F}(t) = \left. \frac{\partial f}{\partial \mathbf{x} } \right \vert _{\hat{\mathbf{x}}(t),\mathbf{u}(t)}

Уточнення

\mathbf{K}_{k} = \mathbf{P}_{k|k-1}\mathbf{H}_{k}^{\top}\bigl(\mathbf{H}_{k}\mathbf{P}_{k|k-1}\mathbf{H}_{k}^{\top} + \mathbf{R}_{k}\bigr)^{-1}
\hat{\mathbf{x}}_{k|k} = \hat{\mathbf{x}}_{k|k-1} + \mathbf{K}_{k}\bigl(\mathbf{z}_{k} - h(\hat{\mathbf{x}}_{k|k-1})\bigr)
\mathbf{P}_{k|k} = (\mathbf{I} - \mathbf{K}_{k}\mathbf{H}_{k})\mathbf{P}_{k|k-1}

де

 \textbf{H}_{k} = \left . \frac{\partial h}{\partial \textbf{x} } \right \vert _{\hat{\textbf{x}}_{k|k-1}}

Рівняння уточнення ідентичні тим же рівнянням фільтру Калмана для дискретного часу.

Недоліки розширеного фільтру Калмана[ред.ред. код]

На відміну від свого лінійного двійника, розширений фільтр Калмана не є оптимальним оцінювачем (звісно, він є оптимальним, якщо моделі як вимірювання, так і переходу стану є лінійними, і в цьому випадку розширений фільтр Калмана є ідентичним звичайному). На додачу, якщо початкова оцінка стану є невірною, або якщо процес змодельовано некоректно, фільтр може швидко розходитися внаслідок своєї лінеаризації. Іншою проблемою розширеного фільтру Калмана є те, що оціненій матриці коваріації властиво недооцінювати справжню матрицю коваріації, і відтак призводити до ризику неузгодженості[en] у статистичному сенсі без додавання «стабілізувального шуму».

При всьому цьому, розширений фільтр Калмана може пропонувати прийнятну продуктивність, і вірогідно є стандартом де-факто у навігаційних системах та GPS.

Робастні розширені фільтри Калмана[ред.ред. код]

Розширений фільтр Калмана створюється лінеаризацією моделі сигналу навколо оцінки поточного стану та використанням лінійного фільтру Калмана для передбачення наступної оцінки. Це є намаганням зробити локальний оптимальний фільтр, однак, воно не є обов'язково стабільним, оскільки розв'язки базового рівняння Ріккаті не є гарантовано додатньовизначеними. Одним зі способів покращення продуктивності є штучний алгебраїчний метод Ріккаті,[10] що покращує стабільність ціною оптимальності. Зберігається звична структура розширеного фільтру Калмана, але стабільність досягається вибором додатньовизначеного розв'язку штучного алгебраїчного рівняння Ріккаті для моделі функції передавального коефіцієнту.

Іншим шляхом покращення продуктивності розширеного фільтру Калмана є застосування результатів H-нескінченності з робастного керування. Робастні фільтри отримуються додаванням додатньовизначеного члену до рівняння Ріккаті.[11] Цей додатковий член параметризується скаляром, що розробник може налаштовувати для отримання компромісу між двома критеріями продуктивності, середньоквадратичною помилкою, та піковою помилкою.

Беззапахові фільтри Калмана[ред.ред. код]

Нелінійним фільтром Калмана, що обіцяє поліпшення відносно розширеного фільтру Калмана, є беззапаховий фільтр Калмана (англ. unscented Kalman filter, UKF). У беззапаховому фільтрі Калмана щільність ймовірності наближується детермінованою вибіркою точок, що представляють базовий розподіл як нормальний. Нелінійне перетворення цих точок призначене бути оцінкою апостеріорного розподілу, моменти якого потім можна буде вивести з перетвореної вибірки. Це перетворення також відоме як беззапахове перетворення. Беззапаховому фільтрові Калмана властиво бути надійнішим (робастнішим) та точнішим за розширений фільтр Калмана у його оцінці помилки.

« Розширений фільтр Калмана є чи не найуживанішим алгоритмом оцінювання для нелінійних систем. Однак, понад 35 років досвіду в спільноті оцінювання показали, що він є складним для реалізації, складним для налаштування, і є надійним лише для систем, що є майже лінійними на масштабі часових проміжків уточнень. Багато з цих складнощів виникають з причини використання ним лінеаризації.[1]
Оригінальний текст (англ.)

The extended Kalman filter (EKF) is probably the most widely used estimation algorithm for nonlinear systems. However, more than 35 years of experience in the estimation community has shown that is difficult to implement, difficult to tune, and only reliable for systems that are almost linear on the time scale of the updates. Many of these difficulties arise from its use of linearization.

 »

Нещодавня праця включає результати моделювання, що наводять на думку, що деякі опубліковані варіанти беззапахового фільтру Калмана не здатні бути настільки ж точними, як розширений фільтр Калмана другого порядку (англ. Second Order Extended Kalman Filter, SOEKF), що також називається доповненим фільтром Калмана (англ. augmented Kalman filter).[12] Розширений фільтр Калмана другого порядку передує беззапаховому фільтрові Калмана приблизно на 35 років, динамікою моментів, що вперше описали Басс та інші.[13] Складність у реалізації будь-яких фільтрів типу Калмана для нелінійних переходів станів походить від проблем обчислювальної стійкості, необхідної для точності[14], однак беззапаховий фільтр Калмана не уникає цієї складності, оскільки він також використовує лінеаризацію, а саме лінійну регресію. Проблеми стабільності для беззапахового фільтру Калмана загалом походять від обчислювального наближення квадратного кореня матриці коваріації, тоді як проблеми стабільності для розширеного фільтру Калмана та розширеного фільтру Калмана другого порядку походять від можливих проблем у наближенні рядами Тейлора вздовж траєкторії.

Інваріантний розширений фільтр Калмана[ред.ред. код]

Інваріантний розширений фільтр Калмана[en] (англ. invariant extended Kalman filter, IEKF) є видозміненою версією розширеного фільтру Калмана для нелінійних систем, що володіють симетріями (або інваріантностями). Він об'єднує переваги як розширеного фільтру Калмана, так і нещодавно представлених фільтрів зі збереженням симетрії[en]. Дійсно, замість використання лінійного члена уточнення на базі лінійної помилки виходу він використовує геометрично пристосований член уточнення на базі інваріантної помилки виходу; аналогічно, матриця передавального коефіцієнту уточнюється не з лінійної, а з інваріантної помилки стану. Головною вигодою є те, що рівняння передавального коефіцієнту та коваріації сходяться до сталих значень на значно більшій множині траєкторій, ніж точки рівноваги, як це є у випадку розширеного фільтру Калмана, що призводить до кращого сходження оцінювання.

Див. також[ред.ред. код]

Примітки[ред.ред. код]

  1. а б Julier, S.J., Uhlmann, J.K. Unscented filtering and nonlinear estimation // Proceedings of the IEEE, (2004) С. 401–422. (англ.)
  2. Courses, E., Surveys, T. Sigma-Point Filters: An Overview with Applications to Integrated Navigation and Vision Assisted Control // Nonlinear Statistical Signal Processing Workshop, 2006 IEEE, (2006) С. 201–202. — DOI:10.1109/NSSPW.2006.4378854. Процитовано 2008-07-14. (англ.)
  3. R.E. Kalman Contributions to the theory of optimal control // Bol. Soc. Mat. Mexicana, (1960) С. 102–119. (англ.)
  4. R.E. Kalman A New Approach to Linear Filtering and Prediction Problems // Journal of Basic Engineering, (1960) С. 35–45. (англ.)
  5. R.E. Kalman, R.S. Bucy New results in linear filtering and prediction theory // Journal of Basic Engineering, (1961) С. 95–108. (англ.)
  6. Bruce A. McElhoe An Assessment of the Navigation and Course Corrections for a Manned Flyby of Mars or Venus // Aerospace and Electronic Systems, IEEE Transactions on, (1966) С. 613–623. (англ.)
  7. G.L. Smith, S.F. Schmidt and L.A. McGee Application of statistical filter theory to the optimal estimation of position and velocity on board a circumlunar vehicle National Aeronautics and Space Administration (1962). (англ.)
  8. Einicke, G.A. (2012). Smoothing, Filtering and Prediction: Estimating the Past, Present and Future. Rijeka, Croatia: Intech. ISBN 978-953-307-752-9.  (англ.)
  9. Simon, Dan (2006). Optimal State Estimation. Hoboken, NJ: John Wiley & Sons. ISBN 978-0-471-70858-2.  (англ.)
  10. Eiugg The Use of Fake Algebraic Riccati Equations for Co-channel Demodulation // IEEE Trans. Signal Processing, 51 (September 2003) (9) С. 2288–2293. (англ.)
  11. Einicke G.A. Robust Extended Kalman Filtering // IEEE Trans. Signal Processing, 47 (September 1999) (9) С. 2596–2599. (англ.)
  12. Gustafsson, F., Hendeby, G. Some Relations Between Extended and Unscented Kalman Filters // Signal Processing, IEEE Transactions on, 60 (лютий 2012) (2) С. 545-555. (англ.)
  13. R. Bass, V. Norum, L. Schwartz Optimal multichannel nonlinear filtering(optimal multichannel nonlinear filtering problem of minimum variance estimation of state of n- dimensional nonlinear system subject to stochastic disturbance) // J. Mathematical Analysis and Applications, 16 (1966) С. 152–164. (англ.)
  14. M. Grewal, A. Andrews (січень 2001). Kalman Filtering : Theory and Practice Using MATLAB (вид. 2). Wiley-Interscience.  (англ.)

Література[ред.ред. код]

  • B.D.O.Anderson, J.B.Moore (1979). Optimal Filtering. Englewood Cliffs, New Jersey: Prentice–Hall.  (англ.)
  • Gelb, A. (1974). Applied Optimal Estimation. MIT Press.  (англ.)
  • Jazwinski, Andrew H. (1970). Stochastic Processes and Filtering. Mathematics in Science and Engineering. New York: Academic Press[en]. с. 376. ISBN 0-12-381550-9.  (англ.)
  • Maybeck, Peter S. (1979). Stochastic Models, Estimation, and Control. Mathematics in Science and Engineering. 141-1. New York: Academic Press[en]. с. 423. ISBN 0-12-480701-1.  (англ.)

Посилання[ред.ред. код]