Фільтр Калмана

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Фільтр Калмана відстежує оцінюваний стан системи та дисперсію або невизначеність оцінки. Оцінка оновлюється з використанням моделі переходу, та вимірювань. \hat{x}_{k\mid k-1} позначає оцінку стану системи у момент часу k до того, як k-те вимірювання yk було взято до уваги; P_{k\mid k-1} є відповідною невизначеністю.

Фільтр Калмана (англ. Kalman filter), відомий також як лінійно-квадратичне оцінювання (англ. linear quadratic estimation, LQE), — це алгоритм, що використовує послідовності вимірювань протягом часу, які містять шум[en] (випадкові відхилення) та інші неточності, й видає оцінки невідомих змінних, що є потенційно точнішими за базовані на самих лише вимірюваннях. Формальніше, фільтр Калмана працює рекурсивно на потоках зашумлених вхідних даних, і видає статистично оптимальну оцінку[en] базового стану системи[en]. Фільтр названо на честь Рудольфа Калмана[en], одного з головних розробників його теорії.

Фільтр Калмана має численні застосування у технології. Поширеним є застосування для наведення, навігації та керування[en] транспортними засобами, особливо літаками та космічними апаратами. Крім того, фільтр Калмана є широко застосовуваною концепцією в аналізі часових рядів, що використовується у таких галузях як обробка сигналів?! та економетрія.

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

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

Також було розроблено розширення та узагальнення цього методу, такі як розширений фільтр Калмана (англ. Extended Kalman filter, EKF) та беззапаховий фільтр Калмана (англ. Unscented Kalman filter, UKF), що працюють на нелінійних системах. Базовою моделлю є баєсова модель, подібна до прихованої марковської моделі, але в якій простір станів прихованих змінних[en] є неперервним, і де всі приховані та спостережувані змінні мають нормальні розподіли.

Зміст

Найменування та історичний розвиток[ред.ред. код]

Фільтр названо на честь угорського емігранта Рудольфа Калмана[en], хоча Торвальд Тіле[en][2][3] та Пітер Сверлінг[en] розробили подібний алгоритм раніше. Річард Бюсі (англ. Richard S. Bucy) з Університету Південної Каліфорнії також зробив внесок до цієї теорії, тому її часто називають фільтром Калмана-Бюсі. Стенлі Шмідт[en] вважається розробником першої реалізації фільтра Калмана. Під час свого візиту до Дослідницькього центру Еймса НАСА Калман побачив застосовність своїх ідей до задачі оцінювання траєкторії для програми «Аполлон», що призвело до їхнього включення до навігаційного комп'ютера Аполлону. Цей фільтр Калмана було вперше описано та частково розроблено в технічних працях Сверлінга (1958), Калмана (1960) та Калмана і Бюсі (1961).

Фільтри Калмана були життєво важливими в реалізації навігаційних систем атомних підводних човнів з балістичними ракетами[en] ВМС США та в системах наведення і навігації крилатих ракет, таких як ракета Томагавк[en] ВМС США та крилаті ракети класу «повітря-земля»[en] ВПС США. Він також використовується в системах наведення і навігації космічних човників НАСА та системах керування орієнтацією[en] та навігації Міжнародної космічної станції.

Цей цифровий фільтр іноді називають фільтром Стратоновича-Калмана-Бюсі, оскільки він є окремим випадком загальнішого нелінійного фільтру, розробленого дещо раніше радянським математиком Русланом Стратоновичем[en].[4][5][6][7] Фактично, деякі з рівнянь окремих випадків лінійних фільтрів з'явилися у цих працях Стратоновича, що було опубліковано до літа 1960 року, коли Калман зустрівся зі Стратоновичем під час конференції в Москві.

Огляд обчислення[ред.ред. код]

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

Всі вимірювання, та обчислення на базі моделей є до певної міри оцінками. Зашумлені дані давачів, наближення в рівняннях, що описують, як система змінюється, та не враховувані зовнішні фактори вводять деяку невизначеність стосовно виведених значень стану системи. Фільтр Калмана усереднює передбачення стану системи з новим вимірюванням за допомогою середнього зваженого. Призначенням вагових коефіцієнтів є те, що значенням з кращою (тобто, меншою) оціненою невизначеністю «довіряється» більше. Вагові коефіцієнти обчислюються з коваріації, міри оціненої невизначеності передбачення стану системи. Результатом середнього зваженого є оцінка нового стану, що лежить між передбаченим та виміряним станами, і має кращу оцінену невизначеність, ніж кожен з них окремо. Цей процес повторюється на кожному такті, і нова оцінка та її коваріація інформують передбачення, що використовується на наступній ітерації. Це означає, що фільтр Калмана працює рекурсивно, і вимагає для обчислення нового стану лише крайнього «найкращого припущення» про стан системи, а не всієї його історії.

Оскільки визначеність вимірювань часто складно виміряти точно, є звичним розглядати поведінку фільтру в термінах передавального коефіцієнту (англ. gain, рос. коэффициент усиления). Передавальний коефіцієнт Калмана є функцією відносної визначеності вимірювань та оцінки поточного стану системи, і може «налаштовуватися» для досягнення певної продуктивності. При високому передавальному коефіцієнті фільтр віддає більше ваги вимірюванням, і, отже, точніше слідує ним. При низькому передавальному коефіцієнті фільтр щільніше слідує передбаченням моделі, згладжуючи шум, але знижуючи швидкість реагування. У граничних випадках, одиничний передавальний коефіцієнт призводить до повного ігнорування фільтром оцінки стану, тоді як нульовий передавальний коефіцієнт призводить до ігнорування вимірювань.

При виконанні фактичних розрахунків для фільтру (див. нижче) оцінка стану та коваріації для обробки декількох вимірів, залучених в одному наборі розрахунків, кодуються у матриці. Це дозволяє представляти лінійні взаємозв'язки між різними змінними стану (такими як положення, швидкість та прискорення) у будь-яких моделях переходу чи коваріаціях.

Приклад застосування[ред.ред. код]

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

У цьому прикладі фільтр Калмана можна розглядати як такий, що працює у дві окремі фази: передбачення та уточнення. У фазі передбачення старе положення вантажівки модифікуватиметься відповідно до фізичних законів руху (динамічна модель, або модель «переходу стану»), плюс будь-які зміни, створені педаллю газу та кермом. Обчислюватиметься не лише оцінка нового положення, але й нова коваріація. Можливо, коваріація пропорційна швидкості вантажівки, оскільки ми менш впевнені у точності оцінки зчислення на високих швидкостях, але дуже впевнені у положенні при повільному русі. Далі, у фазі уточнення з пристрою GPS отримується вимірювання положення вантажівки. Разом з цим вимірюванням надходить певна невизначеність, і її коваріація по відношенню до невизначеності передбачення з попередньої фази визначає, наскільки нове вимірювання вплине на оновлене положення. В ідеалі, якщо оцінки зчислення, як правило, дрейфують від дійсного стану, то вимірювання GPS повинні притягувати оцінку положення назад до дійсного положення, але не збурювати її до такої міри, що вона стане швидко змінюваною та зашумленою.

Технічний опис та контекст[ред.ред. код]

Фільтр Калмана є ефективним рекурсивним фільтром, що оцінює внутрішній стан лінійної динамічної системи[en] з послідовності зашумлених вимірювань. Він використовується у широкому спектрі інженерних та економічних застосувань, від радарів та комп'ютерного зору до оцінювання структурних макроекономічних моделей,[8][9] і є важливою темою в теорії керування та в проектуванні систем керування. Поряд з лінійно-квадратичним регулятором[en] (англ. LQR), фільтр Калмана розв'язує задачу лінійно-квадратичного ґаусовова керування[en] (англ. LQG). Фільтр Калмана, лінійно-квадратичний регулятор та лінійно-квадратичний ґаусів контролер є рішеннями чи не найфундаментальніших задач теорії керування.

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

У теорії Демпстера — Шафера[en] кожне рівняння стану або спостереження розглядається як особливий випадок лінійної функції довіри[en], і фільтр Калмана є особливим випадком поєднання лінійних функцій довіри на дереві з'єднань[en], або дереві Маркова.

Наразі розроблено найрізноманітніші фільтри Калмана, починаючи від первісного формулювання Калмана, що тепер називається «простим» фільтром Калмана, фільтру Калмана-Бюсі, «розширеного» фільтру Шмідта, інформаційного фільтру, та низки «квадратно-кореневих» фільтрів, розроблених Бірманом, Торнтон та багатьма іншими. Чи не найширше застосовуваним типом дуже простого фільтру Калмана є фазове автопідстроювання частоти, що наразі є повсюдним у радіоприймачах, особливо у радіоприймачах із частотною модуляцією (FM), телевізорах, приймачах супутникового зв'язку, системах зв'язку у відкритому космосі, та майже в будь-якому іншому електронному обладнанні зв'язку.

Базова модель динамічної системи[ред.ред. код]

Фільтри Калмана базуються на дискретизованих за часом лінійних динамічних системах[en]. Вони моделюються ланцюгами Маркова, побудованими на лінійних операторах, що збурюються помилками, що можуть включати ґаусів шум. Стан[en] системи представляється вектором дійсних чисел. На кожному такті дискретного часу[en] до стану застосовується лінійний оператор для продукування нового стану, з домішуванням якогось шуму, і, опціонально, якоїсь інформації від засобів керування системою, якщо вони відомі. Відтак інший лінійний оператор, змішаний з іще додатковим шумом, застосовується до справжнього («прихованого») стану для продукування спостережуваних виходів. Фільтр Калмана можна розглядати як аналог прихованої марковської моделі, з тією ключовою відмінністю, що змінні прихованого стану приймають значення у безперервному просторі (на відміну від дискретного простору стану, як у прихованій марковській моделі). Крім того, прихована марковська модель може представляти довільний розподіл для наступних значень змінних стану, на відміну від моделі шуму з нормальним розподілом, що використовується для фільтру Калмана. Між рівняннями фільтру Калмана та прихованої марковської моделі існує сильна дуальність. Огляд цієї та інших моделей наводять Ровейс та Ґарамані[en] (1999),[10] та Гамільтон[en] (1994), глава 13.[11]

Для того, щоби використовувати фільтр Калмана для оцінювання внутрішнього стану процесу, маючи лише послідовність зашумлених спостережень, необхідно змоделювати процес відповідно до моделі фільтру Калмана. Це означає задання наступних матриць: Fk, моделі переходу станів; Hk, моделі спостереження; Qk, коваріації шуму процесу; Rk, коваріації шуму спостереження; та іноді Bk, моделі керування, для кожного моменту часу, k, як описано нижче.

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

Модель фільтру Калмана припускає, що справжній стан у момент часу k виводиться зі стану в (k−1) відповідно до

 \textbf{x}_{k} = \textbf{F}_{k} \textbf{x}_{k-1} + \textbf{B}_{k} \textbf{u}_{k} + \textbf{w}_{k}

де

  • Fk є моделлю переходу стану, що застосовується до попереднього стану xk−1;
  • Bk є моделлю впливів керування, що застосовується до вектору керування uk;
  • wk є шумом процесу, що, як вважається, має багатовимірний нормальний розподіл з нульовим середнім значенням і з коваріацією Qk.
\textbf{w}_{k} \sim N(0, \textbf{Q}_k)

У момент часу k спостереження (або вимірювання) zk справжнього стану xk робиться відповідно до

\textbf{z}_{k} = \textbf{H}_{k} \textbf{x}_{k} + \textbf{v}_{k}

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

\textbf{v}_{k} \sim N(0, \textbf{R}_k)

Початковий стан і вектори шуму на кожному такті {x0, w1, …, wk, v1vk} вважаються взаємно незалежними.

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

Деталі[ред.ред. код]

Фільтр Калмана є рекурсивним оцінювачем. Це означає, що для обчислення оцінки поточного стану необхідні лише оцінка стану з попереднього кроку та поточні вимірювання. На відміну від пакетних методів оцінювання, історія спостережень та/або оцінок не потрібні. Надалі запис \hat{\textbf{x}}_{n\mid m} представляє оцінку \textbf{x} в момент часу n при заданих спостереженнях по момент часу m включно.

Стан фільтру представляється двома змінними:

  • \hat{\textbf{x}}_{k\mid k}, апостеріорною оцінкою стану в момент часу k при заданих спостереженнях по момент часу k включно;
  • \textbf{P}_{k\mid k}, апостеріорною коваріаційною матрицею помилок (мірою оцінки точності отриманої оцінки стану).

Фільтр Калмана може бути записано у вигляді одного рівняння, однак найчастіше його представляють як дві окремі стадії: передбачення (англ. prediction, рос. экстраполяция) та уточнення (англ. update, рос. коррекция). Стадія передбачення використовує оцінку стану з попереднього моменту часу для отримання оцінки стану в поточний момент часу. Передбачена оцінка стану також відома як апріорна оцінка стану, оскільки, хоча це й оцінка стану в поточний момент часу, вона не включає інформацію про спостереження з поточного моменту часу. У фазі уточнення поточне апріорне передбачення об'єднується з поточною інформацією спостереження для уточнення оцінки стану. Ця поліпшена оцінка називається апостеріорною оцінкою стану.

Як правило, ці дві фази чергуються: передбачення просуває стан до наступного запланованого спостереження, а уточнення включає і це спостереження. Проте, це не є обов'язковим; якщо спостереження з якоїсь причини не доступне, уточнення може бути пропущено, і виконано декілька кроків передбачення. Аналогічно, якщо в один і той же момент часу доступно декілька незалежних спостережень, може бути виконано декілька кроків уточнення (як правило, з різними матрицями спостереження Hk).

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

Передбачена (апріорна) оцінка стану   \hat{\textbf{x}}_{k\mid k-1} = \textbf{F}_{k-1}\hat{\textbf{x}}_{k-1\mid k-1} + \textbf{B}_{k-1} \textbf{u}_{k-1}
Коваріація передбаченої (апріорної) оцінки   \textbf{P}_{k\mid k-1} =  \textbf{F}_{k-1} \textbf{P}_{k-1\mid k-1} \textbf{F}_{k}^{\text{T}} + \textbf{Q}_{k}

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

Нововведення (відхилення) вимірювання   
\tilde{\textbf{y}}_k = \textbf{z}_k - \textbf{H}_k\hat{\textbf{x}}_{k\mid k-1}
Коваріація нововведень (відхилення)   \textbf{S}_k = \textbf{H}_k \textbf{P}_{k\mid k-1} \textbf{H}_k^\text{T} + \textbf{R}_k
Оптимальний передавальний коефіцієнт Калмана   \textbf{K}_k = \textbf{P}_{k\mid k-1}\textbf{H}_k^\text{T}\textbf{S}_k^{-1}
Оновлена (апостеріорна) оцінка стану   \hat{\textbf{x}}_{k\mid k} = \hat{\textbf{x}}_{k\mid k-1} + \textbf{K}_k\tilde{\textbf{y}}_k
Коваріація оновленої (апостеріорної) оцінки   \textbf{P}_{k|k} = (I - \textbf{K}_k \textbf{H}_k) \textbf{P}_{k|k-1}

Наведені вище формули оновленої оцінки та коваріації є справедливими лише для оптимального передавального коефіцієнту Калмана. Використання інших значень передавального коефіцієнту вимагає складнішої формули, що знаходиться у розділі Виведенння.

Інваріанти[ред.ред. код]

Якщо модель є точною, і значення \hat{\textbf{x}}_{0\mid 0} та \textbf{P}_{0\mid 0} точно відображають розподіл значень початкового стану, то зберігаються наступні інваріанти: (всі оцінки мають нульове середнє значення)

  • \textrm{E}[\textbf{x}_k - \hat{\textbf{x}}_{k\mid k}] = \textrm{E}[\textbf{x}_k - \hat{\textbf{x}}_{k\mid k-1}] = 0
  • \textrm{E}[\tilde{\textbf{y}}_k] = 0

де \textrm{E}[\xi] є математичним сподіванням \xi, і матриці коваріацій точно відображають коваріацію оцінок

  • \textbf{P}_{k\mid k} = \textrm{cov}(\textbf{x}_k - \hat{\textbf{x}}_{k\mid k})
  • \textbf{P}_{k\mid k-1} = \textrm{cov}(\textbf{x}_k - \hat{\textbf{x}}_{k\mid k-1})
  • \textbf{S}_{k} = \textrm{cov}(\tilde{\textbf{y}}_k)

Оцінювання коваріацій шумів Qk та Rk[ред.ред. код]

Практична реалізація фільтру Калмана часто ускладнюється неможливістю отримання гарної оцінки матриць коваріацій шумів Qk та Rk. У цій галузі було зроблено широкі дослідження для отримання цих коваріацій з даних. Одним з найперспективніших підходів до виконання цього є прийом автоковаріаційних найменших квадратів (англ. Autocovariance Least-Squares, ALS), що використовує автоковаріації[en] звичайних робочих даних для оцінювання цих коваріацій.[12][13] Код GNU Octave, що використовується для обчислення матриць коваріацій шумів з використанням прийому автоковаріаційних найменших квадратів, доступний для завантаження під ліцензією GNU General Public License.[14]

Оптимальність та продуктивність[ред.ред. код]

З теорії відомо, що фільтр Калмана оптимальний у випадку, якщо а) модель точно відповідає справжній системі, б) вхідний шум є білим, та в) коваріації шуму відомі точно. Протягом крайніх десятиліть було запропоновано декілька методів визначення коваріацій шуму. Один з них, автоковаріаційні найменші квадрати, було згадано у попередньому розділі. Після ідентифікації коваріацій корисно оцінювати продуктивність фільтру, тобто, чи можливо поліпшити якість оцінювання стану. Добре відомо, що, якщо фільтр Калмана працює оптимально, то послідовність нововведень (помилка передбачення виходу) є білим шумом. Властивість білизни віддзеркалює якість оцінювання стану. Для визначення продуктивності фільтру необхідно досліджувати властивість білизни нововведень. Для цього може застосовуватися кілька різних методів. Три перевірки оптимальності з числовими прикладами описано у [15].

Приклад застосування, технічний[ред.ред. код]

Уявімо вагонетку на нескінченно довгих ідеальних рейках за відсутності тертя. Початково ця вагонетка стоїть нерухомо у положенні 0, але її штовхають туди й сюди з випадковим прискоренням. Ми вимірюємо положення вагонетки кожні Δt секунд, але ці вимірювання є неточними; ми хочемо підтримувати модель того, де знаходиться вагонетка, і якою є її швидкість. Тут ми покажемо, як ми отримаємо модель, з якої ми зробимо наш фільтр Калмана.

Оскільки F, H, R та Q є сталими, їхні часові індекси опущено.

Положення та швидкість вагонетки описуються лінійним простором стану

\textbf{x}_{k} = \begin{bmatrix} x \\ \dot{x} \end{bmatrix}

де \dot{x} є швидкістю, тобто, похідною положення по відношенню до часу.

Вважатимемо, що між моментами часу (k−1) та k вагонетка зазнає сталого прискорення ak, що має нормальний розподіл із нульовим середнім значенням, та стандартним відхиленням σa. Із законів руху Ньютона ми робимо висновок, що

\textbf{x}_{k} = \textbf{F} \textbf{x}_{k-1} + \textbf{G}a_{k}

(зазначте, що тут немає члена \textbf{B}u, оскільки ми не маємо відомих впливів керування), де

\textbf{F} = \begin{bmatrix} 1 & \Delta t \\ 0 & 1 \end{bmatrix}

та

\textbf{G} = \begin{bmatrix} \frac{\Delta t^{2}}{2} \\ \Delta t \end{bmatrix}

так що

\textbf{x}_{k} = \textbf{F} \textbf{x}_{k-1} +  \textbf{w}_{k}

де \textbf{w}_{k} \sim N(0,  \textbf{Q}) та

\textbf{Q}=\textbf{G}\textbf{G}^{\text{T}}\sigma_a^2 =\begin{bmatrix} \frac{\Delta t^4}{4} & \frac{\Delta t^3}{2} \\ \frac{\Delta t^3}{2} & \Delta t^2 \end{bmatrix}\sigma_a^2.

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

\textbf{z}_{k} = \textbf{H x}_{k} + \textbf{v}_{k}

де

\textbf{H} = \begin{bmatrix} 1 & 0 \end{bmatrix}

та

\textbf{R} = \textrm{E}[\textbf{v}_k \textbf{v}_k^{\text{T}}] = \begin{bmatrix} \sigma_z^2 \end{bmatrix}

Ми знаємо початковий стан вагонетки з бездоганною точністю, тому ми встановлюємо

\hat{\textbf{x}}_{0\mid 0} = \begin{bmatrix} 0 \\ 0 \end{bmatrix}

і, щоби повідомити фільтрові, що ми знаємо точне положення, ми даємо йому нульову коваріаційну матрицю:

\textbf{P}_{0\mid 0} = \begin{bmatrix} 0 & 0 \\ 0 & 0 \end{bmatrix}

Якщо початкове положення та швидкість відомі лише приблизно, то коваріаційну матрицю має бути заповнено із достатньо великим числом, скажімо, L, на її діагоналі.

\textbf{P}_{0\mid 0} = \begin{bmatrix} L & 0 \\ 0 & L \end{bmatrix}

Фільтр тоді віддасть перевагу інформації з першого вимірювання перед інформацією, що вже є у моделі.

Виведення[ред.ред. код]

Виведення коваріаційної матриці апостеріорної оцінки[ред.ред. код]

Починаючи з нашого інваріанту коваріації помилки Pk | k, як наведено вище,

\textbf{P}_{k\mid k}  = \textrm{cov}(\textbf{x}_{k} - \hat{\textbf{x}}_{k\mid k})

підставмо визначення \hat{\textbf{x}}_{k\mid k}

\textbf{P}_{k\mid k} = \textrm{cov}(\textbf{x}_{k} - (\hat{\textbf{x}}_{k\mid k-1} + \textbf{K}_k\tilde{\textbf{y}}_{k}))

і підставмо \tilde{\textbf{y}}_k

\textbf{P}_{k\mid k} = \textrm{cov}(\textbf{x}_{k} - (\hat{\textbf{x}}_{k\mid k-1} + \textbf{K}_k(\textbf{z}_k - \textbf{H}_k\hat{\textbf{x}}_{k\mid k-1})))

та \textbf{z}_{k}

\textbf{P}_{k\mid k} = \textrm{cov}(\textbf{x}_{k} - (\hat{\textbf{x}}_{k\mid k-1} + \textbf{K}_k(\textbf{H}_k\textbf{x}_k + \textbf{v}_k - \textbf{H}_k\hat{\textbf{x}}_{k\mid k-1})))

і, зібравши вектори помилки, ми отримаємо

\textbf{P}_{k|k} = \textrm{cov}((I - \textbf{K}_k \textbf{H}_{k})(\textbf{x}_k - \hat{\textbf{x}}_{k\mid k-1}) - \textbf{K}_k \textbf{v}_k )

Оскільки вектор вимірювань vk є некорельованим з іншими членами, це перетворюється на

\textbf{P}_{k|k} = \textrm{cov}((I - \textbf{K}_k \textbf{H}_{k})(\textbf{x}_k - \hat{\textbf{x}}_{k\mid k-1}))  + \textrm{cov}(\textbf{K}_k \textbf{v}_k )

за властивостями векторної коваріації це перетворюється на

\textbf{P}_{k\mid k} = (I - \textbf{K}_k \textbf{H}_{k})\textrm{cov}(\textbf{x}_k - \hat{\textbf{x}}_{k\mid k-1})(I - \textbf{K}_k \textbf{H}_{k})^{\text{T}}  + \textbf{K}_k\textrm{cov}(\textbf{v}_k )\textbf{K}_k^{\text{T}}

що, з використанням нашого інваріанту на Pk | k-1 та визначення Rk, стає

\textbf{P}_{k\mid k} = 
(I - \textbf{K}_k \textbf{H}_{k}) \textbf{P}_{k\mid k-1} (I - \textbf{K}_k \textbf{H}_{k})^\text{T} +
\textbf{K}_k \textbf{R}_k \textbf{K}_k^\text{T}

Ця формула (іноді відома як «форма Джозефа» рівняння коваріації уточнення) є чинною для будь-якого значення Kk. Виявляється, що, якщо Kk є оптимальним передавальним коефіцієнтом Калмана, то вона підлягає подальшому спрощенню, як показано нижче.

Виведення передавального коефіцієнту Калмана[ред.ред. код]

Фільтр Калмана є оцінювачем з мінімальною середньоквадратичною помилкою[en]. Помилкою в апостеріорній оцінці стану є

\textbf{x}_{k} - \hat{\textbf{x}}_{k\mid k}

Ми прагнемо звести до мінімуму очікуване значення квадрату величини цього вектору, \textrm{E}[\|\textbf{x}_{k} - \hat{\textbf{x}}_{k|k}\|^2]. Це еквівалентне мінімізації сліду коваріаційної матриці апостеріорної оцінки  \textbf{P}_{k|k} . Розкриваючи члени наведеного вище рівняння та збираючи, ми отримуємо:


\begin{align}
\textbf{P}_{k\mid k} & = \textbf{P}_{k\mid k-1} - \textbf{K}_k \textbf{H}_k \textbf{P}_{k\mid k-1} - \textbf{P}_{k\mid k-1} \textbf{H}_k^\text{T} \textbf{K}_k^\text{T} + \textbf{K}_k (\textbf{H}_k \textbf{P}_{k\mid k-1} \textbf{H}_k^\text{T} + \textbf{R}_k) \textbf{K}_k^\text{T} \\[6pt]
& = \textbf{P}_{k\mid k-1} - \textbf{K}_k \textbf{H}_k \textbf{P}_{k\mid k-1} - \textbf{P}_{k\mid k-1} \textbf{H}_k^\text{T} \textbf{K}_k^\text{T} + \textbf{K}_k \textbf{S}_k\textbf{K}_k^\text{T}
\end{align}

Слід мінімізовано, коли його матрична похідна[en] по відношенню до матриці передавального коефіцієнту є нульовою. Використовуючи правила градієнтних матриць[en] та симетрію задіяних матриць, ми знаходимо, що

\frac{\partial \; \mathrm{tr}(\textbf{P}_{k\mid k})}{\partial \;\textbf{K}_k} = -2 (\textbf{H}_k \textbf{P}_{k\mid k-1})^\text{T} + 2 \textbf{K}_k \textbf{S}_k  = 0.

Розв'язання цього для Kk дає передавальний коефіцієнт Калмана:

\textbf{K}_k \textbf{S}_k = (\textbf{H}_k \textbf{P}_{k\mid k-1})^\text{T} = \textbf{P}_{k\mid k-1} \textbf{H}_k^\text{T}
 \textbf{K}_{k} = \textbf{P}_{k\mid k-1} \textbf{H}_k^\text{T} \textbf{S}_k^{-1}

Цей передавальний коефіцієнт, відомий як оптимальний передавальний коефіцієнт Калмана, є таким, що при застосуванні дає оцінки з мінімальною середньоквадратичною помилкою[en].

Спрощення формули коваріації апостеріорної помилки[ред.ред. код]

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

\textbf{K}_k \textbf{S}_k \textbf{K}_k^T = \textbf{P}_{k\mid k-1} \textbf{H}_k^T \textbf{K}_k^T

Повертаючись до нашої розширеної формули коваріації апостеріорної помилки

 \textbf{P}_{k\mid k} = \textbf{P}_{k\mid k-1} - \textbf{K}_k \textbf{H}_k \textbf{P}_{k\mid k-1}  - \textbf{P}_{k\mid k-1} \textbf{H}_k^T \textbf{K}_k^T + \textbf{K}_k \textbf{S}_k \textbf{K}_k^T

ми виявляємо, що останні два члени скорочуються, даючи

 \textbf{P}_{k\mid k} = \textbf{P}_{k\mid k-1} - \textbf{K}_k \textbf{H}_k \textbf{P}_{k\mid k-1} = (I - \textbf{K}_{k} \textbf{H}_{k}) \textbf{P}_{k\mid k-1}.

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

Аналіз вразливості[ред.ред. код]

Фільтрувальні рівняння Калмана надають оцінку стану \hat{\textbf{x}}_{k\mid k} та коваріацію її помилки \textbf{P}_{k\mid k} рекурсивно. Оцінка та її якість залежать від параметрів системи та статистик шуму, поданих до оцінювача як вхідні дані. Цей розділ аналізує вплив невизначеностей у статистичних вхідних даних до фільтру.[16] За відсутності надійних статистик або істинних значень мартиць коваріації шуму \textbf{Q}_{k} та \textbf{R}_{k} вираз

\textbf{P}_{k\mid k} = (\textbf{I} - \textbf{K}_k\textbf{H}_k)\textbf{P}_{k\mid k-1}(\textbf{I} - \textbf{K}_k\textbf{H}_k)^T + \textbf{K}_k\textbf{R}_k\textbf{K}_k^T

більше не надає справжньої коваріації помилки. Іншими словами, \textbf{P}_{k\mid k} \neq E[(\textbf{x}_k - \hat{\textbf{x}}_{k\mid k})(\textbf{x}_k - \hat{\textbf{x}}_{k\mid k})^T]. У більшості застосунків реального часу матриці коваріацій, що використовуються при розробці фільтру Калмана, відрізняються від фактичних матриць коваріації шуму.[Джерело?] Аналіз вразливості описує поведінку коваріації помилки оцінки, коли коваріації шуму, а також системні матриці \textbf{F}_{k} та \textbf{H}_{k}, що подаються як вхідні дані до фільтру, є невірними. Отже, цей аналіз вразливості описує стійкість (або вразливість) оцінювача до невірно визначених статистичних та параметричних вхідних даних.

Це обговорення обмежене аналізом вразливості помилки для випадку статистичних невизначеностей. Тут фактичні коваріації шуму позначаються як \textbf{Q}^{a}_k та \textbf{R}^{a}_k відповідно, тоді як проектними значеннями, що використовуються в оцінювачі, є \textbf{Q}_k та \textbf{R}_k відповідно. Коваріація фактичної помилки позначається як \textbf{P}_{k\mid k}^a, та як \textbf{P}_{k\mid k} — обчислювана фільтром Калмана, що згадується як змінна Ріккаті[en]. Коли \textbf{Q}_k \equiv \textbf{Q}^{a}_k та \textbf{R}_k \equiv \textbf{R}^{a}_k, це означає, що \textbf{P}_{k\mid k} = \textbf{P}_{k\mid k}^a. При обчисленні коваріації фактичної помилки з використанням \textbf{P}_{k\mid k}^a = E[(\textbf{x}_k - \hat{\textbf{x}}_{k\mid k})(\textbf{x}_k - \hat{\textbf{x}}_{k\mid k})^T] підставлення для \widehat{\textbf{x}}_{k\mid k} та використання того факту, що E[\textbf{w}_k\textbf{w}_k^T] = \textbf{Q}_{k}^a та E[\textbf{v}_k\textbf{v}_k^T] = \textbf{R}_{k}^a, дає в результаті наступні рекурсивні рівняння для \textbf{P}_{k\mid k}^a :

\textbf{P}_{k\mid k-1}^a = \textbf{F}_k\textbf{P}_{k-1\mid k-1}^a\textbf{F}_k^T + \textbf{Q}_k^a

та

\textbf{P}_{k\mid k}^a = (\textbf{I} - \textbf{K}_k\textbf{H}_k)\textbf{P}_{k\mid k-1}^a(\textbf{I} - \textbf{K}_k\textbf{H}_k)^T + \textbf{K}_k\textbf{R}_k^a\textbf{K}_k^T

При обчисленні \textbf{P}_{k\mid k} фільтр умисно неявно припускає, що E[\textbf{w}_k\textbf{w}_k^T] = \textbf{Q}_{k} та E[\textbf{v}_k\textbf{v}_k^T] = \textbf{R}_{k}. Зверніть увагу, що рекурсивні вирази для \textbf{P}_{k\mid k}^a та \textbf{P}_{k\mid k} є ідентичними, за виключенням наявності \textbf{Q}_{k}^a та \textbf{R}_{k}^a на місці проектних значень \textbf{Q}_{k} та \textbf{R}_{k} відповідно.

Квадратнокоренева форма[ред.ред. код]

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

Додатньовизначені матриці мають таку властивість, що вони мають квадратний корінь[en] трикутної матриці P = S·ST. Це може обчислюватися ефективно з використанням алгоритму розкладу Холецького, але що важливіше, якщо коваріація зберігається в такому вигляді, вона ніколи не матиме від'ємної діагоналі, та не стане асиметричною. Еквівалентною формою, що дозволяє уникати численних операцій добування квадратного кореня, потрібних для квадратного кореня з матриці, проте зберігаючи бажані числові властивості, є форма U-D-розкладу, P = U·D·UT, де U є унітрикутною матрицею (з одиничною діагоналлю), а D є діагональною матрицею.

Між цими двома, U-D факторизація використовує такий самий об'єм пам'яті, й почасти менше обчислювань, і є найчастіше застосовуваною квадратнокореневою формою. (Рання література з відносної ефективності є дещо оманливою, оскільки вона виходить з того, що квадратні корені були значно витратнішими за часом, ніж ділення,[17]:69, тоді як у комп'ютерах XXI сторіччя вони лише трохи витратніші.)

Ефективні алгоритми для стадій передбачення й уточнення Калмана у квадратнокореневій формі було розроблено Джеральдом Бірманом та Катериною Торнтон.[17][18]

Основою іншого типу обчислювально ефективного та стійкого квадратнокореневого фільтра є L·D·LT-розклад[en] матриці коваріації нововведень Sk.[19] Алгоритм починає з LU-розкладу, реалізованого як у Linear Algebra PACKage (LAPACK). Ці результати розкладаються далі у структуру L·D·LT методами, запропонованими Голубом[en] та Ван Лоаном[en] (алгоритм 4.1.2) для симетричної невиродженої матриці.[20] У будь-якій виродженій матриці коваріації робиться таке переставлення[en], щоби блок головної діагоналі був невиродженим та добре обумовленим. Алгоритм переставлення повинен зберігати будь-яку частину матриці коваріацій нововведень, що безпосередньо відповідає спостережуваним змінним стану Hk·xk|k-1, що пов'язані з допоміжними спостереженнями в yk. Квадратнокореневий L·D·LT-фільтр вимагає ортогоналізаціі[en] вектору спостережень.[18][19] Це може робитися за допомогою оберненого квадратного кореня[en] матриці коваріацій для допоміжних змінних з використанням методу 2 з Хаяма[en] (2002, с. 263).[21]

Взаємозв'язок із рекурсивним баєсовим оцінюванням[ред.ред. код]

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

У рекурсивному баєсовому оцінюванні справжній стан вважається неспостережуваним марковський процесом, а вимірювання є спостережуваними станами прихованої марковської моделі (ПММ).

Прихована марковська модель

Через марковське припущення[en] справжній стан є умовно незалежним від усіх станів, раніших за безпосередньо попередній.

p(\textbf{x}_k\mid \textbf{x}_0,\dots,\textbf{x}_{k-1}) = p(\textbf{x}_k\mid \textbf{x}_{k-1})

Аналогічно, вимірювання на k-тому такті залежить лише від поточного стану, і є умовно незалежним від усіх інших станів до нього.

p(\textbf{z}_k\mid\textbf{x}_0,\dots,\textbf{x}_{k}) = p(\textbf{z}_k\mid \textbf{x}_{k} )

Використовуючи ці припущення, розподіл ймовірності над усіма станами прихованої марковської моделі можна записати просто як:

p(\textbf{x}_0,\dots,\textbf{x}_k\mid \textbf{z}_1,\dots,\textbf{z}_k) = p(\textbf{x}_0)\prod_{i=1}^k p(\textbf{z}_i\mid \textbf{x}_i)p(\textbf{x}_i\mid \textbf{x}_{i-1})

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

Це призводить до того, що стадії передбачення та уточнення фільтру Калмана записуються ймовірнісно. Розподіл ймовірності, пов'язаний із передбачуваним станом, є сумою (інтегралом) добутків розподілів ймовірностей, пов'язаних із переходом від (k − 1)-го такту до k-того, та розподілу ймовірностей, пов'язаного з попереднім станом, за всіма можливими x_{k-1}.

 p(\textbf{x}_k\mid \textbf{Z}_{k-1}) = \int p(\textbf{x}_k \mid  \textbf{x}_{k-1}) p(\textbf{x}_{k-1} \mid  \textbf{Z}_{k-1} )  \, d\textbf{x}_{k-1}

Множина вимірювань по час t є

 \textbf{Z}_{t} = \left \{ \textbf{z}_{1},\dots,\textbf{z}_{t} \right \}

Розподіл ймовірності уточнення є пропорційним до добутку ймовірності вимірювання та передбаченого стану.

 p(\textbf{x}_k\mid \textbf{Z}_{k}) = \frac{p(\textbf{z}_k\mid \textbf{x}_k) p(\textbf{x}_k\mid \textbf{Z}_{k-1})}{p(\textbf{z}_k\mid \textbf{Z}_{k-1})}

Знаменник

p(\textbf{z}_k\mid \textbf{Z}_{k-1}) = \int p(\textbf{z}_k\mid \textbf{x}_k) p(\textbf{x}_k\mid \textbf{Z}_{k-1}) d\textbf{x}_k

є членом нормалізації.

Рештою функцій густини ймовірності є

 p(\textbf{x}_k \mid  \textbf{x}_{k-1}) = \mathcal{N}(\textbf{F}_k\textbf{x}_{k-1}, \textbf{Q}_k)
 p(\textbf{z}_k\mid \textbf{x}_k) = \mathcal{N}(\textbf{H}_{k}\textbf{x}_k, \textbf{R}_k)
 p(\textbf{x}_{k-1}\mid \textbf{Z}_{k-1}) = \mathcal{N}(\hat{\textbf{x}}_{k-1},\textbf{P}_{k-1} )

Зауважте, що функція густини ймовірності на попередньому такті індуктивно вважається оціненим станом та коваріацією. Це виправдано, оскільки фільтр Калмана, як оптимальний оцінювач, робить найкраще використання вимірювань, отже, функція густини ймовірності для \mathbf{x}_k при заданих вимірюваннях \mathbf{Z}_k є оцінкою фільтру Калмана.

Інформаційний фільтр[ред.ред. код]

В інформаційному, або обернено-коваріаційному, фільтрі оцінювану коваріацію та оцінюваний стан заступають інформаційна матриця[en] та інформаційний вектор відповідно. Вони визначаються як:

\textbf{Y}_{k\mid k} =  \textbf{P}_{k\mid k}^{-1}
\hat{\textbf{y}}_{k\mid k} =  \textbf{P}_{k\mid k}^{-1}\hat{\textbf{x}}_{k\mid k}

Аналогічно, передбачувана коваріація та стан мають рівноцінні інформаційні форми, що визначаються як

\textbf{Y}_{k\mid k-1} =  \textbf{P}_{k\mid k-1}^{-1}
\hat{\textbf{y}}_{k\mid k-1} =  \textbf{P}_{k\mid k-1}^{-1}\hat{\textbf{x}}_{k\mid k-1}

як мають і коваріація вимірювання та вектор вимірювання, що визначаються як

\textbf{I}_{k} = \textbf{H}_{k}^{\text{T}} \textbf{R}_{k}^{-1} \textbf{H}_{k}
\textbf{i}_{k} = \textbf{H}_{k}^{\text{T}} \textbf{R}_{k}^{-1} \textbf{z}_{k}

Оновлення інформації тепер стає простою сумою.

\textbf{Y}_{k\mid k} = \textbf{Y}_{k\mid k-1} + \textbf{I}_{k}
\hat{\textbf{y}}_{k\mid k} = \hat{\textbf{y}}_{k\mid k-1} + \textbf{i}_{k}

Головною перевагою інформаційного фільтру є те, що на кожному такті може бути відфільтровано N вимірювань, просто додаванням їхніх інформаційних матриць та векторів.

\textbf{Y}_{k\mid k} = \textbf{Y}_{k\mid k-1} + \sum_{j=1}^N \textbf{I}_{k,j}
\hat{\textbf{y}}_{k\mid k} = \hat{\textbf{y}}_{k\mid k-1} + \sum_{j=1}^N \textbf{i}_{k,j}

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

\textbf{M}_{k} = 
  [\textbf{F}_{k}^{-1}]^{\text{T}} \textbf{Y}_{k-1\mid k-1} \textbf{F}_{k}^{-1}
\textbf{C}_{k} = 
  \textbf{M}_{k} [\textbf{M}_{k}+\textbf{Q}_{k}^{-1}]^{-1}
\textbf{L}_{k} = 
  I - \textbf{C}_{k}
\textbf{Y}_{k\mid k-1} = 
  \textbf{L}_{k} \textbf{M}_{k} \textbf{L}_{k}^{\text{T}} +
  \textbf{C}_{k} \textbf{Q}_{k}^{-1} \textbf{C}_{k}^{\text{T}}
\hat{\textbf{y}}_{k\mid k-1} = 
  \textbf{L}_{k} [\textbf{F}_{k}^{-1}]^{\text{T}}\hat{\textbf{y}}_{k-1\mid k-1}

Зауважте, що F та Q не залежать від часу, і їх може бути кешовано. Зауважте також, що F and Q мають бути оберненими.

Згладжувач з фіксованим запізнюванням[ред.ред. код]

Оптимальний згладжувач з фіксованим запізнюванням (англ. fixed-lag smoother) надає оптимальну оцінку \hat{\textbf{x}}_{k-N \mid  k} для заданого фіксованого запізнювання N, використовуючи вимірювання з \textbf{z}_{1} по \textbf{z}_{k}. Його може бути виведено з використанням попередньої теорії через доповнений стан, і головним рівнянням цього фільтру є наступне:


	\begin{bmatrix}
		\hat{\textbf{x}}_{t\mid t} \\
		\hat{\textbf{x}}_{t-1\mid t} \\
		\vdots \\
		\hat{\textbf{x}}_{t-N+1\mid t} \\
	\end{bmatrix}
	=
	\begin{bmatrix}
		I \\
		0 \\
		\vdots \\
		0 \\
	\end{bmatrix}
	\hat{\textbf{x}}_{t\mid t-1}
	+
	\begin{bmatrix}
		0		& \ldots	& 0 \\
		I		& 0		& \vdots \\
		\vdots		& \ddots	& \vdots \\
		0		& \ldots	& I \\
	\end{bmatrix}
	\begin{bmatrix}
		\hat{\textbf{x}}_{t-1\mid t-1} \\
		\hat{\textbf{x}}_{t-2\mid t-1} \\
		\vdots \\
		\hat{\textbf{x}}_{t-N+1\mid t-1} \\
	\end{bmatrix}
	+
	\begin{bmatrix}
		K^{(0)} \\
		K^{(1)} \\
		\vdots \\
		K^{(N-1)} \\
	\end{bmatrix}
	y_{t\mid |t-1}

де

  •  \hat{\textbf{x}}_{t\mid t-1} оцінюється стандартним фільтром Калмана;
  •  y_{t\mid t-1} = z(t) - H\hat{\textbf{x}}_{t\mid t-1} це нововведення, що створюється виходячи з оцінки стандартного фільтру Калмана;
  • різні  \hat{\textbf{x}}_{t-i\mid t} з  i = 0,\ldots,N є новими змінними, тобто, їх немає у стандартному фільтрі Калмана;
  • передавальні коефіцієнти обчислюються за наступною схемою:

K^{(i)} =
P^{(i)} H^{T}
\left[
	H P H^{T} + R
\right]^{-1}
та

P^{(i)} =
P
\left[
	\left[
		F - K H
	\right]^{T}
\right]^{i}
де  P та  K є коваріацією помилки передбачення та передавальними коефіцієнтами стандартного фільтру Калмана (тобто,  P_{t\mid t-1} ).

Якщо коваріацію помилки оцінки визначено так, що


P_{i} :=
E
\left[
	\left(
		\textbf{x}_{t-i} - \hat{\textbf{x}}_{t-i\mid t}
	\right)^{*}
	\left(
		\textbf{x}_{t-i} - \hat{\textbf{x}}_{t-i\mid t}
	\right)
	\mid
	z_{1} \ldots z_{t}
\right],

тоді ми маємо, що поліпшення оцінки  \textbf{x}_{t-i} визначається за формулою:


P-P_{i} =
\sum_{j = 0}^{i}
\left[
	P^{(j)} H^{T}
	\left[
	H P H^{T} + R
	\right]^{-1}
	H \left( P^{(i)} \right)^{T}
\right]

Згладжувачі з фіксованим інтервалом[ред.ред. код]

Оптимальний згладжувач з фіксованим інтервалом надає оптимальну оцінку \hat{\textbf{x}}_{k \mid  n} (k < n), використовуючи вимірювання з фіксованого інтервалу з \textbf{z}_{1} по \textbf{z}_{n}. Це також називається згладжуванням Калмана. У загальному користуванні є кілька алгоритмів згладжування.

Рауха-Дуна-Штрібеля[ред.ред. код]

Згладжувач Рауха-Дуна-Штрібеля (англ. Rauch–Tung–Striebel, RTS) є ефективним двопрохідним алгоритмом для згладжування з фіксованим інтервалом.[23]

Поступальний прохід такий самий, як і алгоритм звичайного фільтру Калмана. Ці відфільтровані оцінки станів \hat{\textbf{x}}_{k\mid k} та коваріації \textbf{P}_{k\mid k} зберігаються для використання на зворотньому проході.

На зворотньому проході ми обчислюємо згладжені оцінки станів \hat{\textbf{x}}_{k\mid n} та коваріації \textbf{P}_{k\mid n}. Ми починаємо з крайнього такту, і просуваємося у зворотньому напрямку часу, використовуючи наступні рекурсивні рівняння:

\hat{\textbf{x}}_{k\mid n} = \hat{\textbf{x}}_{k\mid k} + \textbf{C}_k ( \hat{\textbf{x}}_{k+1\mid n} - \hat{\textbf{x}}_{k+1\mid k} )
\textbf{P}_{k\mid n} = \textbf{P}_{k\mid k} + \textbf{C}_k ( \textbf{P}_{k+1\mid n} - \textbf{P}_{k+1\mid k} ) \textbf{C}_k^T

де

 \textbf{C}_k = \textbf{P}_{k\mid k} \textbf{F}_k^T \textbf{P}_{k+1\mid k}^{-1}

Видозмінений згладжувач Брайсона-Фрейзера[ред.ред. код]

Альтернативою алгоритмові Рауха-Дуна-Штрібеля є видозмінений фіксовано-інтервальний згладжувач Брайсона-Фрейзера (англ. modified Bryson–Frazier, MBF), розроблений Бірманом.[18] Він також використовує зворотній прохід, що обробляє дані фільтру Калмана, збережені на поступальному проході. Рівняння для зворотнього проходу включають рекурсивне обчислення даних, що використовуються на кожному моменті часу спостереження для обчислення згладженого стану та коваріації.

Цими рекурсивними рівняннями є

\tilde{\Lambda}_k =  \textbf{H}_k^T \textbf{S}_k^{-1} \textbf{H}_k + \hat{\textbf{C}}_k^T \hat{\Lambda}_k \hat{\textbf{C}}_k
\hat{\Lambda}_{k-1} = \textbf{F}_k^T\tilde{\Lambda}_{k}\textbf{F}_k
\hat{\Lambda}_n = 0
\tilde{\lambda}_k =  -\textbf{H}_k^T \textbf{S}_k^{-1} \textbf{y}_k + \hat{\textbf{C}}_k^T \hat{\lambda}_k
\hat{\lambda}_{k-1} = \textbf{F}_k^T\tilde{\lambda}_{k}
\hat{\lambda}_n = 0

де \textbf{S}_k є залишковою коваріацією, а \hat{\textbf{C}}_k = \textbf{I} - \textbf{K}_k\textbf{H}_k. Згладжений стан та коваріацію може бути знайдено підстановкою в рівняннях

\textbf{P}_{k\mid n} = \textbf{P}_{k\mid k} - \textbf{P}_{k\mid k}\hat{\Lambda}_k\textbf{P}_{k\mid k}
\textbf{x}_{k\mid n} = \textbf{x}_{k\mid k} - \textbf{P}_{k\mid k}\hat{\lambda}_k

або

\textbf{P}_{k\mid n} = \textbf{P}_{k\mid k-1} - \textbf{P}_{k\mid k-1}\tilde{\Lambda}_k\textbf{P}_{k\mid k-1}
\textbf{x}_{k\mid n} = \textbf{x}_{k\mid k-1} - \textbf{P}_{k\mid k-1}\tilde{\lambda}_k.

Важливою перевагою видозміненого згладжувача Брайсона-Фрейзера є те, що він не вимагає знаходження оберненої матриці до коваріаційної.

Мінімально-дисперсійний згладжувач[ред.ред. код]

Мінімально-дисперсійний згладжувач (англ. minimum-variance smoother) може досягати найкращої можливої продуктивності відносно помилки, за умови, якщо моделі є лінійними, а їхні параметри та статистики шуму відомі точно.[24] Цей згладжувач є залежним від часу стано-просторовим узагальненням оптимального непричинного (англ. non-causal) фільтру Вінера[en].

Обчислення цього згладжувача виконуються у два проходи. Поступальні обчислення включають передбачувач на один крок вперед, і задаються рівняннями

\hat{\textbf{x}}_{k+1\mid k} = \textbf{(F}_{k}-\textbf{K}_{k}\textbf{H}_{k})\hat{\textbf{x}}_{k\mid k-1} + \textbf{K}_{k} \textbf{z}_{k}
{\alpha}_{k} = -\textbf{S}_k^{-1/2} \textbf{H}_{k}\hat{\textbf{x}}_{k\mid k-1} +
\textbf{S}_k^{-1/2} \textbf{z}_{k}

Наведена вище система відома як обернений фактор Вінера-Хопфа. Зворотня рекурсія є спряженою до наведеної вище поступальної системи. Результат зворотнього проходу \beta_{k} може розраховуватися використанням поступальних рівнянь на оберненому в часі \alpha_{k}, і оберненні результату в часі. У випадку оцінювання виходу згладжена оцінка задається як

\hat{\textbf{y}}_{k\mid N} = \textbf{z}_{k} - \textbf{R}_{k}\beta_{k}

Взяття причинної (англ. causal) частини цього мінімально-дисперсійного згладжувача дає

\hat{\textbf{y}}_{k\mid k} = \textbf{z}_{k} - \textbf{R}_{k} \textbf{S}_k^{-1/2} \alpha_{k}

що ідентично мінімально-дисперсному фільтрові Калмана. Наведені вище рішення мінімізують дисперсію помилки оцінки виходу. Зауважте, що виведення згладжувача Рауха-Дуна-Штрібеля передбачає, що базові розподіли є нормальними, тоді як мінімально-дисперсні рішення — ні. Оптимальні згладжувачі для оцінки стану та оцінки входу може бути побудовано аналогічно.

Версію наведеного вище згладжувача для безперервного часу описано в [25][26].

Для обчислення приблизних оцінок максимальної вірогідності невідомих параметрів простору станів у межах мінімально-дисперсійних фільтрів та згладжувачів можуть застосовуватися алгоритми очікування-максимізації[en]. Часто у припущеннях моделі залишаються невизначеності. Згладжувач, що залишає простір для невизначеностей, може бути сконструйовано додаванням додатньовизначеного члену до рівняння Ріккаті.[27]

У випадках, коли моделі є нелінійними, у рекурсіях мінімально-дисперсійного фільтру та згладжувача можуть бути покрокові лінеаризації (розширене фільтрування Калмана).

Нелінійні фільтри[ред.ред. код]

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

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

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

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

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

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

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

Коли моделі переходу стану та спостереження, — тобто, функції передбачення та уточнення f та h, — є сильно нелінійними, розширений фільтр Калмана може демонструвати особливо погану роботу.[28] Це відбувається тому, що коваріація передається через лінеаризацію базової нелінійної моделі. Беззапаховий фільтр Калмана (англ. unscented Kalman filter, UKF)[28] використовує метод детерміністичної вибірки, відомий як беззапахове перетворення, для вибору мінімального набору опорних точок (що називаються сигма-точками) навколо середнього значення. Ці сигма-точки (англ. sigma points) потім пропускаються через нелінійні функції, з чого отримуються середнє значення та коваріація оцінки. Результатом є фільтр, що точніше захоплює справжнє середнє значення та коваріацію. (Це можна перевіряти за допомогою вибірки Монте-Карло, або розкладу апостеріорної статистики в ряд Тейлора.) На додачу, цей метод усуває вимогу явного обчислення матриць Якобі, що для складних функцій може бути саме по собі складною задачею (наприклад, вимагаючи складних похідних при аналітичній реалізації, або будучи обчислювально витратним при реалізації чисельній).

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

Як і з розширеним фільтром Калмана, передбачення беззапахового фільтру Калмана може використовуватися незалежно від уточнення беззапахового фільтру Калмана, у комбінації з лінійним (або навіть розширеним) уточненням, або навпаки.

Оцінюваний стан та коваріація доповнюються середнім значенням та коваріацією шуму процесу.

 \textbf{x}_{k-1\mid k-1}^{a} = [ \hat{\textbf{x}}_{k-1\mid k-1}^{T} \quad E[\textbf{w}_{k}^{T}] \ ]^{T}
 \textbf{P}_{k-1\mid k-1}^{a} = \begin{bmatrix} & \textbf{P}_{k-1\mid k-1} & & 0 & \\ & 0 & &\textbf{Q}_{k} & \end{bmatrix}

Множина 2L + 1 сигма-точок отримується з доповнених стану та коваріації, де L є розмірністю стану.

\chi_{k-1\mid k-1}^{0} = \textbf{x}_{k-1\mid k-1}^{a}
\chi_{k-1\mid k-1}^{i} =\textbf{x}_{k-1\mid k-1}^{a} + \left ( \sqrt{ (L + \lambda) \textbf{P}_{k-1\mid k-1}^{a} } \right )_{i}, \qquad i = 1,\ldots,L
\chi_{k-1\mid k-1}^{i} = \textbf{x}_{k-1\mid k-1}^{a} - \left ( \sqrt{ (L + \lambda) \textbf{P}_{k-1\mid k-1}^{a} } \right )_{i-L}, \qquad i = L+1,\dots{},2L

де

\left ( \sqrt{ (L + \lambda) \textbf{P}_{k-1\mid k-1}^{a} } \right )_{i}

є i-тим стовпцем матричного квадратного кореню виразу

(L + \lambda) \textbf{P}_{k-1\mid k-1}^{a}

за визначенням, квадратний корінь A матриці B задовольняє

B \triangleq A A^T. \,

Матричний квадратний корінь повинен обчислюватися за допомогою обчислювально ефективних та стабільних методів, таких як розклад Холецького.

\chi_{k\mid k-1}^{i} = f(\chi_{k-1\mid k-1}^{i}) \quad i = 0,\dots,2L

де f : R^{L} \rightarrow R^{|\textbf{x}|} . Зважені сигма-точки рекомбінуються для отримання передбаченого стану та коваріації.

\hat{\textbf{x}}_{k\mid k-1} = \sum_{i=0}^{2L} W_{s}^{i} \chi_{k\mid k-1}^{i}
\textbf{P}_{k\mid k-1} = \sum_{i=0}^{2L} W_{c}^{i}\ [\chi_{k\mid k-1}^{i} - \hat{\textbf{x}}_{k\mid k-1}] [\chi_{k\mid k-1}^{i} - \hat{\textbf{x}}_{k\mid k-1}]^{T}

де ваги для стану та коваріації задаються як:

W_{s}^{0} = \frac{\lambda}{L+\lambda}
W_{c}^{0} = \frac{\lambda}{L+\lambda} + (1 - \alpha^2 + \beta)
W_{s}^{i} = W_{c}^{i} = \frac{1}{2(L+\lambda)}
\lambda = \alpha^2 (L+\kappa) - L\,\!

\alpha та \kappa контролюють розкид сигма-точок. \beta пов'язане з розподілом x. Звичайними значеннями є \alpha=10^{-3}, \kappa=0 та \beta=2. Якщо справжній розподіл x є нормальним, то \beta=2 є оптимальним.[29]

Уточнення

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

 \textbf{x}_{k\mid k-1}^{a} = [ \hat{\textbf{x}}_{k\mid k-1}^{T} \quad E[\textbf{v}_{k}^{T}] \ ]^{T}
 \textbf{P}_{k\mid k-1}^{a} = \begin{bmatrix} & \textbf{P}_{k\mid k-1} & & 0 & \\ & 0 & &\textbf{R}_{k} & \end{bmatrix}

Як і раніше, множина 2L + 1 сигма-точок отримується з доповнених стану та коваріації, де L є розмірністю стану.


\begin{align}
\chi_{k\mid k-1}^{0} & = \textbf{x}_{k\mid k-1}^{a} \\[6pt]
\chi_{k\mid k-1}^{i} & = \textbf{x}_{k\mid k-1}^{a} + \left ( \sqrt{ (L + \lambda) \textbf{P}_{k\mid k-1}^{a} } \right )_{i}, \qquad i = 1,\dots,L \\[6pt]
\chi_{k\mid k-1}^{i} & = \textbf{x}_{k\mid k-1}^{a} - \left ( \sqrt{ (L + \lambda) \textbf{P}_{k\mid k-1}^{a} } \right )_{i-L}, \qquad i = L+1,\dots,2L
\end{align}

Або ж, якщо використовувалося передбачення беззапахового фільтру Калмана, то можуть доповнюватися самі сигма-точки, відповідно до наступних рядків

 \chi_{k\mid k-1} := [ \chi_{k\mid k-1}^T \quad E[\textbf{v}_{k}^{T}] \ ]^{T} \pm \sqrt{ (L + \lambda) \textbf{R}_{k}^{a} }

де

 \textbf{R}_{k}^{a} = \begin{bmatrix} & 0 & & 0 & \\ & 0 & &\textbf{R}_{k} & \end{bmatrix}

Сигма-точки пропускаються через функцію спостереження h.

\gamma_{k}^{i} = h(\chi_{k\mid k-1}^{i}) \quad i = 0..2L

Зважені сигма-точки рекомбінуються для отримання передбаченого вимірювання та передбаченої коваріації вимірювання.

\hat{\textbf{z}}_{k} = \sum_{i=0}^{2L} W_{s}^{i} \gamma_{k}^{i}
\textbf{P}_{z_{k}z_{k}} = \sum_{i=0}^{2L} W_{c}^{i}\ [\gamma_{k}^{i} - \hat{\textbf{z}}_{k}] [\gamma_{k}^{i} - \hat{\textbf{z}}_{k}]^{T}

Матриця взаємної коваріації стану та вимірювання

\textbf{P}_{x_{k}z_{k}} = \sum_{i=0}^{2L} W_{c}^{i}\ [\chi_{k\mid k-1}^{i} - \hat{\textbf{x}}_{k\mid k-1}] [\gamma_{k}^{i} - \hat{\textbf{z}}_{k}]^{T}

використовується для обчислення передавального коефіцієнту Калмана беззапахового фільтру Калмана.

K_{k} = \textbf{P}_{x_{k}z_{k}} \textbf{P}_{z_{k}z_{k}}^{-1}

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

\hat{\textbf{x}}_{k\mid k} = \hat{\textbf{x}}_{k\mid k-1} + K_{k}( \textbf{z}_{k} - \hat{\textbf{z}}_{k} )

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

\textbf{P}_{k\mid k} = \textbf{P}_{k\mid k-1} - K_{k} \textbf{P}_{z_{k}z_{k}} K_{k}^{T}

Фільтр Калмана-Бюсі[ред.ред. код]

Фільтр Калмана-Бюсі (англ. Kalman–Bucy filter), названий на честь Річарда Сноудена Бюсі (англ. Richard Snowden Bucy), є версією фільтру Калмана для безперервного часу.[30][31]

Він базується на моделі простору стану

\frac{d}{dt}\mathbf{x}(t) = \mathbf{F}(t)\mathbf{x}(t) + \mathbf{B}(t)\mathbf{u}(t) + \mathbf{w}(t)
\mathbf{z}(t) = \mathbf{H}(t) \mathbf{x}(t) + \mathbf{v}(t)

де \mathbf{Q}(t) та \mathbf{R}(t) представляють інтенсивності двох членів з білим шумом \mathbf{w}(t) та \mathbf{v}(t) відповідно.

Цей фільтр складається з двох диференційних рівнянь, одного для оцінки стану, та одного для коваріації:

\frac{d}{dt}\hat{\mathbf{x}}(t) = \mathbf{F}(t)\hat{\mathbf{x}}(t) + \mathbf{B}(t)\mathbf{u}(t) + \mathbf{K}(t) (\mathbf{z}(t)-\mathbf{H}(t)\hat{\mathbf{x}}(t))
\frac{d}{dt}\mathbf{P}(t) = \mathbf{F}(t)\mathbf{P}(t) + \mathbf{P}(t)\mathbf{F}^{T}(t) + \mathbf{Q}(t) - \mathbf{K}(t)\mathbf{R}(t)\mathbf{K}^{T}(t)

де передавальний коефіцієнт Калмана задається як

\mathbf{K}(t)=\mathbf{P}(t)\mathbf{H}^{T}(t)\mathbf{R}^{-1}(t)

Зауважте, що в цьому виразі для \mathbf{K}(t) коваріація шуму спостереження \mathbf{R}(t) представляє одночасно й коваріацію помилки передбачення (або нововведення) \tilde{\mathbf{y}}(t)=\mathbf{z}(t)-\mathbf{H}(t)\hat{\mathbf{x}}(t); ці коваріації є рівними лише у випадку безперервного часу.[32]

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

Друге диференційне рівняння, що для коваріації, є прикладом рівняння Ріккаті.

Гібридний фільтр Калмана[ред.ред. код]

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


\begin{align}
\dot{\mathbf{x}}(t) &= \mathbf{F}(t)\mathbf{x}(t)+\mathbf{B}(t)\mathbf{u}(t)+\mathbf{w}(t), &\mathbf{w}(t) &\sim N\bigl(\mathbf{0},\mathbf{Q}(t)\bigr) \\
\mathbf{z}_k &= \mathbf{H}_k\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\mid 0}=E\bigl[\mathbf{x}(t_0)\bigr], \mathbf{P}_{0\mid 0}=Var\bigl[\mathbf{x}(t_0)\bigr]
Передбачення

\begin{align}
&\dot{\hat{\mathbf{x}}}(t) = \mathbf{F}(t) \hat{\mathbf{x}}(t) + \mathbf{B}(t) \mathbf{u}(t)
\text{, with }
\hat{\mathbf{x}}(t_{k-1}) = \hat{\mathbf{x}}_{k-1\mid k-1} \\
\Rightarrow
&\hat{\mathbf{x}}_{k\mid k-1} = \hat{\mathbf{x}}(t_k)\\
&\dot{\mathbf{P}}(t) = \mathbf{F}(t)\mathbf{P}(t)+\mathbf{P}(t)\mathbf{F}(t)^T+\mathbf{Q}(t)
\text{, with }
\mathbf{P}(t_{k-1}) = \mathbf{P}_{k-1\mid k-1}\\
\Rightarrow
&\mathbf{P}_{k\mid k-1} = \mathbf{P}(t_k)
\end{align}

Рівнняння передбачення виводяться з рівнянь фільтру Калмана для безперервного часу без уточнення на підставі вимірювань, тобто, з  \mathbf{K}(t)=0 . Передбачений стан та коваріація обчислюються відповідно розв'язанням системи диференційних рівнянь з початковим значенням, рівним оцінці на попередньому кроці.

Уточнення
\mathbf{K}_{k} = \mathbf{P}_{k\mid k-1}\mathbf{H}_{k}^T\bigl(\mathbf{H}_{k}\mathbf{P}_{k\mid k-1}\mathbf{H}_{k}^T+\mathbf{R}_{k}\bigr)^{-1}
\hat{\mathbf{x}}_{k\mid k} = \hat{\mathbf{x}}_{k\mid k-1} + \mathbf{K}_k(\mathbf{z}_k-\mathbf{H}_k\hat{\mathbf{x}}_{k\mid k-1})
\mathbf{P}_{k\mid k} = (\mathbf{I} - \mathbf{K}_{k}\mathbf{H}_{k})\mathbf{P}_{k\mid k-1}

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

Варіанти для відновлення розріджених сигналів[ред.ред. код]

Нещодавно традиційний фільтр Калмана було застосовано для відновлення розріджених, можливо, динамічних сигналів із зашумлених спостережень. Обидві праці [33] та [34] використовують поняття теорії стисненого сприйняття[en]/вибірки, такі як властивість обмеженої ізометрії[en] та пов'язані ймовірнісні аргументи відновлення, для послідовної оцінки розрідженого стану в системах, яким притаманна низька розмірність.

Застосування[ред.ред. код]

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

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

  1. Kalman R.E. A new approach to linear filtering and prediction problems // Journal of Basic Engineering, 82 (1960) (1) С. 35–45. — DOI:10.1115/1.3662552. (англ.)
  2. Lauritzen Steffen L. Time series analysis in 1880. A discussion of contributions made by T.N. Thiele // International Statistical Review, 49 (1981) С. 319–333. (англ.)
  3. Lauritzen, Steffen L. (2002). Thiele: Pioneer in Statistics. Oxford University Press. ISBN 0-19-850972-3.  (англ.)
  4. Стратонович Р. Л. Оптимальные нелинейные системы, осуществляющие выделение сигнала с постоянными параметрами из шума // Радиофизика, 2 Изв. ВУЗов (1959) (6) С. 892–901. (рос.)
  5. Стратонович Р. Л. К теории оптимальной нелинейной фильтрации случайных функций // Теория вероятности и ее применения, IV (1959) (2) С. 239-241. (рос.)
  6. Стратонович Р. Л. Применение теории процессов Маркова для оптимальной фильтрации сигналов // Радиотехника и электроника, V (1960) (11) С. 1751-1763. (рос.)
  7. Стратонович Р. Л. Условные процессы Маркова // Теория вероятности и ее применения, V (1960) (2) С. 172-195. (рос.)
  8. Strid Ingvar, Walentin Karl Block Kalman Filtering for Large-Scale DSGE Models // Computational Economics, 33 Springer (квітень 2009) (3) С. 277–304. — DOI:10.1007/s10614-008-9160-4. (англ.)
  9. Martin Møller Andreasen (2008). «Non-linear DSGE Models, The Central Difference Kalman Filter, and The Mean Shifted Particle Filter» (PDF).  (англ.)
  10. Roweis S., Ghahramani Z. A unifying review of linear Gaussian models // Neural Comput., 11 (February 1999) (2) С. 305–345. (англ.)
  11. Hamilton, J. (1994). «Chapter 13, 'The Kalman Filter'». Time Series Analysis. Princeton University Press.  (англ.)
  12. Rajamani, Murali (2007). Data-based Techniques to Improve State Estimation in Model Predictive Control (PDF) (PhD Thesis). University of Wisconsin-Madison.  (англ.)
  13. Rajamani Murali R., Rawlings James B. Estimation of the disturbance structure from data using semidefinite programming and optimal weighting // Automatica, (2009) (45) С. 142–148. (англ.)
  14. Fernando V. Lima. «Autocovariance Least-Squares (ALS) Package».  (англ.)
  15. Matisko, P.; Havlena, V. (2012). Optimality tests and adaptive Kalman filter. Brussels, Belgium: Proceedings of 16th IFAC System Identification Symposium.  (англ.)
  16. Anderson, Brian D. O.; Moore, John B. (1979). Optimal Filtering. New York: Prentice Hall[en]. с. 129–133. ISBN 0-13-638122-7.  (англ.)
  17. а б Thornton Catherine L. Triangular Covariance Factorizations for Kalman Filtering (PDF) // NASA Technical Memorandum, NASA (15 жовтня 1976) (33-798). (англ.)
  18. а б в Bierman G.J. Factorization Methods for Discrete Sequential Estimation // Factorization Methods for Discrete Sequential Estimation, Academic Press (1977). — Bibcode:1977fmds.book.....B. (англ.)
  19. а б Bar-Shalom, Yaakov; Li, X. Rong; Kirubarajan, Thiagalingam (липень 2001). Estimation with Applications to Tracking and Navigation. New York: John Wiley & Sons[en]. с. 308–317. ISBN 978-0-471-41655-5.  (англ.)
  20. Golub, Gene H.; Van Loan, Charles F. (1996). Matrix Computations. Johns Hopkins Studies in the Mathematical Sciences (вид. третє). Baltimore, Maryland: Johns Hopkins University. с. 139. ISBN 978-0-8018-5414-9.  (англ.)
  21. Higham, Nicholas J. (2002). Accuracy and Stability of Numerical Algorithms (вид. друге). Philadelphia, PA: Society for Industrial and Applied Mathematics[en]. с. 680. ISBN 978-0-89871-521-7.  (англ.)
  22. Masreliez C. Johan, Martin R D Robust Bayesian estimation for the linear model and robustifying the Kalman filter // EEE Trans. Automatic Control, 22 (липень 1977) (3) С. 361 - 371. (англ.)
  23. Rauch H.E., Tung F., Striebel C. T. Maximum likelihood estimates of linear dynamic systems // AIAA J, 3 (серпень 1965) (8) С. 1445–1450. — DOI:10.2514/3.3166. (англ.)
  24. Einicke G.A. Optimal and Robust Noncausal Filter Formulations // IEEE Trans. Signal Processing, 54 (березень 2006) (3) С. 1069–1077. — Bibcode:2006ITSP...54.1069E. — DOI:10.1109/TSP.2005.863042. (англ.)
  25. Einicke G.A. Asymptotic Optimality of the Minimum-Variance Fixed-Interval Smoother // IEEE Trans. Signal Processing, 55 (квітень 2007) (4) С. 1543–1547. — Bibcode:2007ITSP...55.1543E. — DOI:10.1109/TSP.2006.889402. (англ.)
  26. Einicke G.A., Ralston J.C., Hargrave C.O., Reid D.C., Hainsworth D.W. Longwall Mining Automation. An Application of Minimum-Variance Smoothing // IEEE Control Systems Magazine, 28 (грудень 2008) (6) С. 1543–1547. (англ.)
  27. Einicke G.A. Asymptotic Optimality of the Minimum-Variance Fixed-Interval Smoother // IEEE Trans. Automatic Control, 54 (грудень 2009) (12) С. 2904–2908. — Bibcode:2007ITSP...55.1543E. — DOI:10.1109/TSP.2006.889402. (англ.)
  28. а б Julier Simon J., Uhlmann, Jeffrey K. A new extension of the Kalman filter to nonlinear systems // Int. Symp. Aerospace/Defense Sensing, Simul. and Controls, 3 С. 182. — Bibcode:1997SPIE.3068..182J. Процитовано 03.05.2008. (англ.)
  29. Wan, Eric A.; van der Merwe, Rudolph. The Unscented Kalman Filter for Nonlinear Estimation (PDF).  (англ.)
  30. Bucy, R.S.; Joseph, P.D. (2005) [1968]. Filtering for Stochastic Processes with Applications to Guidance (вид. 2). AMS Chelsea Publ. ISBN 0-8218-3782-6.  (англ.)
  31. Jazwinski, Andrew H. (1970). Stochastic processes and filtering theory. New York: Academic Press. ISBN 0-12-381550-9.  (англ.)
  32. Kailath Thomas An innovation approach to least-squares estimation Part I: Linear filtering in additive white noise // IEEE Transactions on Automatic Control, 13 (1968) (6) С. 646-655. (англ.)
  33. Carmi A., Gurfil P., Kanevsky D. Methods for sparse signal recovery using Kalman filtering with embedded pseudo-measurement norms and quasi-norms // IEEE Transactions on Signal Processing, 58 (2010) (4) С. 2405–2409. (англ.)
  34. Vaswani N. Kalman Filtered Compressed Sensing // 15th International Conference on Image Processing, (2008). (англ.)
  35. Fruhwirth R. Application of Kalman filtering to track and vertex fitting // Nucl.Instrum.Meth. A262, Vienna: OAW (1987) С. 444-450. (англ.)
  36. Wolpert D.M., Miall R.C. Forward Models for Physiological Motor Control // Neural Netw., 9 (листопад 1996) (8) С. 1265–1279. (англ.)

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

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