YaChudo

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

Переглядів: 0. Оновлено 10.10.2026.

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

У статистиці та теорії керування ка́лманове фільтрува́ння (англ. Kalman filtering, відоме також як ліні́йно-квадрати́чне оці́нювання, англ. linear quadratic estimation) — це алгоритм, який використовує ряд спостережуваних у часі вимірювань, що містять статистичний шум та інші неточності, для вироблення оцінок невідомих змінних, зазвичай точніших за ті, що ґрунтуються на самих лише вимірюваннях, шляхом оцінювання спільного розподілу ймовірності цих змінних для кожного такту. Цей фільтр побудовано як мінімізатор середньоквадратичної похибки, але наведено також й альтернативне виведення цього фільтра, яке показує його зв'язок зі статистикою максимальної правдоподібності.[1] Цей фільтр названо на честь Рудольфа Е. Калмана.

Калманове фільтрування має численні технологічні застосування. Поширеним застосуванням є наведення, навігація та керування транспортними засобами, зокрема літаками, космічними апаратами та динамічно позиційованими суднами.[2] Крім того, калманове фільтрування широко застосовують у задачах аналізу часових рядів, як-от обробці сигналів та економетрії. Калманове фільтрування важливе також для планування руху роботів і керування ними,[3][4] і його можуть використовувати для оптимізування траєкторії.[5] Калманове фільтрування працює також і для моделювання керування рухом центральною нервовою системою. Через часову затримку між поданням рухових команд і отриманням сенсо́рного зворотного зв'язку використання фільтрів Калмана дає реалістичну модель для оцінювання поточного стану рухової системи та подавання уточнених команд.[6]

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

Оптимальність калманового фільтрування передбачає, що похибки мають нормальний (ґауссів) розподіл. За словами Рудольфа Е. Калмана, «Щодо випадкових процесів зроблено такі припущення: Фізичні випадкові явища можна розглядати як наслідок дії первинних випадкових джерел, що збуджують динамічні системи. Вважається, що первинні джерела є незалежними ґауссовими випадковими процесами з нульовим середнім; динамічні системи будуть лінійними».[7] Проте незалежно від ґауссовості, якщо коваріації процесу та вимірювання відомі, фільтр Калмана є найкращим можливим лінійним оцінювачем у сенсі мінімальної середньоквадратичної похибки,[8] хоча можуть існувати й кращі нелінійні оцінювачі. Поширеною хибною думкою (яку відтворюють у літературі) є твердження, буцімто фільтр Калмана неможливо застосовувати строго, якщо не вважати всі шумові процеси ґауссовими.[9]

Було розроблено також розширення та узагальнення цього методу, як-от розширений фільтр Калмана та сигма-точковий фільтр Калмана, які працюють із нелінійними системами. В їхній основі лежить прихована марковська модель, у якій простір станів латентних змінних неперервний, а всі латентні та спостережувані змінні мають ґауссові розподіли. Калманове фільтрування успішно застосовують у багатодавачевому злитті даних,[10] а також у розподілених давачевих мережах для розробки розподіленого або консенсусного калманового фільтрування.[11]

Історія

Цей метод фільтрування названо на честь угорського емігранта Рудольфа Е. Калмана, хоча Торвальд Тіле[12][13] та Пітер Сверлінг розробили подібний алгоритм раніше. Річард Б'юсі (англ. Richard S. Bucy) з Лабораторії прикладної фізики Університету Джонса Гопкінса зробив свій внесок до цієї теорії, унаслідок чого цей метод іноді називають фільтруванням Калмана — Б'юсі. На виведення цього фільтра Калмана надихнуло застосування змінних стану до задачі вінерового фільтрування.[14] Розробником першого втілення фільтра Калмана зазвичай вважають Стенлі Шмідта. Він усвідомив, що цей фільтр можливо розділити на дві окремі частини: одну для проміжків часу між виходами давачів, а іншу — для врахування вимірювань.[15] Саме під час відвідин Калманом Дослідницького центру Еймса НАСА Шмідт побачив застосовність ідей Калмана до нелінійної задачі оцінювання траєкторії для програми «Аполлон», що привело до їх упровадження до навігаційного комп'ютера «Аполлона».[16]:16

Цей цифровий фільтр іноді називають фільтром Стратоновича — Калмана — Б'юсі, оскільки він є окремим випадком загальнішого нелінійного фільтра, розробленого радянським математиком Русланом Стратоновичем.[17][18][19][20] Насправді деякі рівняння лінійного фільтра цього окремого випадку з'явилися у працях Стратоновича, опублікованих до літа 1961 року, коли Калман зустрівся зі Стратоновичем під час конференції в Москві.[21][22]

Калманове фільтрування вперше було описано й частково розроблено в технічних працях Сверлінга (1958), Калмана (1960), а також Калмана та Б'юсі (1961).

Комп'ютер «Аполлона» використовував 2 К оперативної пам'яті на магнітних осердях і 36 К пам'яті на прошитих осердях [...]. Центральний процесор було побудовано на інтегральних схемах [...]. Тактова частота становила менше ніж 100 кГц [...]. Те, що інженери МТІ змогли вмістити таке якісне програмне забезпечення (одне з найперших застосувань фільтра Калмана) в настільки малому комп'ютері, справді вражає.

— Інтерв'ю Джека Креншоу, проведене Метью Рідом, TRS-80.org (2009) [1]

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

Огляд обчислення

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

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

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

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

Приклад застосування

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

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

Технічний опис і контекст

Фільтр Калмана — це ефективний рекурсивний фільтр, який оцінює внутрішній стан лінійної динамічної системи за послідовністю зашумлених вимірювань. Його використовують у широкому колі інженерних та економетричних задач — від радарів і комп'ютерного зору до оцінювання структурних макроекономічних моделей,[25][26] і він є важливою темою теорії керування та інженерії систем керування. Разом із лінійно-квадратичним регулятором (ЛКР, англ. LQR) фільтр Калмана розв'язує задачу лінійно-квадратично-ґауссового керування (ЛКҐ, англ. LQG). Фільтр Калмана, лінійно-квадратичний регулятор і лінійно-квадратично-ґауссів регулятор є розв'язками чи не найфундаментальніших задач теорії керування.

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

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

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

Базова модель динамічної системи

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

Щоби використовувати фільтр Калмана для оцінювання внутрішнього стану процесу за наявності лише послідовності зашумлених спостережень, цей процес необхідно змоделювати відповідно до наведеної нижче схеми. Це означає, що для кожного такту k {\displaystyle k} потрібно задати такі матриці:

  • F k {\displaystyle \mathbf {F} _{k}}  — модель переходу станів;
  • H k {\displaystyle \mathbf {H} _{k}}  — модель спостереження;
  • Q k {\displaystyle \mathbf {Q} _{k}}  — коваріація шуму процесу;
  • R k {\displaystyle \mathbf {R} _{k}}  — коваріація шуму спостереження;
  • а іноді й B k {\displaystyle \mathbf {B} _{k}}  — модель керувального входу, описану нижче; якщо включено B k {\displaystyle \mathbf {B} _{k}} , то задають також
  • u k {\displaystyle \mathbf {u} _{k}}  — вектор керування, який подає керувальний вхід до моделі керувального входу.

Як показано нижче, у багатьох застосуваннях матриці F {\displaystyle \mathbf {F} } , H {\displaystyle \mathbf {H} } , Q {\displaystyle \mathbf {Q} } , R {\displaystyle \mathbf {R} } і B {\displaystyle \mathbf {B} } сталі в часі, в такому разі їхній індекс k {\displaystyle k} можливо опустити.

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

Модель фільтра Калмана передбачає, що істинний стан на такті k {\displaystyle k} змінюється відносно стану на такті k − 1 {\displaystyle k-1} відповідно до рівняння

x k = F k x k − 1 + B k u k + w k {\displaystyle \mathbf {x} _{k}=\mathbf {F} _{k}\mathbf {x} _{k-1}+\mathbf {B} _{k}\mathbf {u} _{k}+\mathbf {w} _{k}}

де

  • F k {\displaystyle \mathbf {F} _{k}}  — модель переходу станів, яку застосовують до попереднього стану xk−1;
  • B k {\displaystyle \mathbf {B} _{k}}  — модель керувального входу, яку застосовують до вектора керування u k {\displaystyle \mathbf {u} _{k}} ;
  • w k {\displaystyle \mathbf {w} _{k}}  — шум процесу, який, за припущенням, має багатовимірний нормальний розподіл N {\displaystyle {\mathcal {N}}} із нульовим середнім і коваріацією Q k {\displaystyle \mathbf {Q} _{k}} : w k ∼ N ( 0 , Q k ) {\displaystyle \mathbf {w} _{k}\sim {\mathcal {N}}\left(0,\mathbf {Q} _{k}\right)} .

Якщо Q {\displaystyle \mathbf {Q} } не залежить від часу, то, за Ровейсом і Ґарамані,[27]:307 замість w k {\displaystyle \mathbf {w} _{k}} можна записувати w ∙ {\displaystyle \mathbf {w} _{\bullet }} , щоби підкреслити відсутність явної залежності шуму від часу.

На такті k {\displaystyle k} спостереження (або вимірювання) z k {\displaystyle \mathbf {z} _{k}} істинного стану x k {\displaystyle \mathbf {x} _{k}} здійснюють відповідно до рівняння

z k = H k x k + v k {\displaystyle \mathbf {z} _{k}=\mathbf {H} _{k}\mathbf {x} _{k}+\mathbf {v} _{k}}

де

  • H k {\displaystyle \mathbf {H} _{k}}  — модель спостереження, яка відображає простір істинних станів у простір спостережень;
  • v k {\displaystyle \mathbf {v} _{k}}  — шум спостереження, який, за припущенням, є ґауссовим білим шумом із нульовим середнім і коваріацією R k {\displaystyle \mathbf {R} _{k}} : v k ∼ N ( 0 , R k ) {\displaystyle \mathbf {v} _{k}\sim {\mathcal {N}}\left(0,\mathbf {R} _{k}\right)} .

Аналогічно ситуації з w k {\displaystyle \mathbf {w} _{k}} , якщо R {\displaystyle \mathbf {R} } не залежить від часу, замість v k {\displaystyle \mathbf {v} _{k}} можна писати v ∙ {\displaystyle \mathbf {v} _{\bullet }} .

Початковий стан і вектори шуму на кожному такті { x 0 , w 1 , … , w k , v 1 , … , v k } {\displaystyle \{\mathbf {x} _{0},\mathbf {w} _{1},\dots ,\mathbf {w} _{k},\mathbf {v} _{1},\dots ,\mathbf {v} _{k}\}} , за припущенням, усі взаємно незалежні.

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

Подробиці

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

Стан фільтра подають двома змінними:

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

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

Зазвичай ці два етапи чергуються: на етапі передбачення стан просувають до моменту наступного запланованого спостереження, а на етапі уточнення це спостереження враховують. Проте це не обов'язково: якщо спостереження з якоїсь причини недоступне, етап уточнення можна пропустити й виконати декілька процедур передбачення. Так само, якщо одночасно доступні декілька незалежних спостережень, можна виконати декілька процедур уточнення (зазвичай з різними матрицями спостереження Hk).[31][32]

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

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

Уточнення

Нововведення, або залишок відносно попереднього допасування y ~ k = z k − H k x ^ k ∣ k − 1 {\displaystyle {\tilde {\mathbf {y} }}_{k}=\mathbf {z} _{k}-\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1}}
Коваріація нововведення (залишку відносно попереднього допасування) S k = H k P k ∣ k − 1 H k T + R k {\displaystyle \mathbf {S} _{k}=\mathbf {H} _{k}{\mathbf {P} }_{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}+\mathbf {R} _{k}}
Оптимальний передавальний коефіцієнт Калмана K k = P k ∣ k − 1 H k T S k − 1 {\displaystyle \mathbf {K} _{k}={\mathbf {P} }_{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\mathbf {S} _{k}^{-1}}
Уточнена (апостеріорна) оцінка стану x ^ k ∣ k = x ^ k ∣ k − 1 + K k y ~ k {\displaystyle {\hat {\mathbf {x} }}_{k\mid k}={\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {K} _{k}{\tilde {\mathbf {y} }}_{k}}
Уточнена (апостеріорна) коваріація оцінки (звичайна форма) P k ∣ k = ( I − K k H k ) P k | k − 1 {\displaystyle \mathbf {P} _{k\mid k}=\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\mathbf {P} _{k|k-1}}
Уточнена (апостеріорна) коваріація оцінки (форма Джозефа) P k ∣ k = ( I − K k H k ) P k ∣ k − 1 ( I − K k H k ) T + K k R k K k T {\displaystyle \mathbf {P} _{k\mid k}=\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\mathbf {P} _{k\mid k-1}\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)^{\textsf {T}}+\mathbf {K} _{k}\mathbf {R} _{k}\mathbf {K} _{k}^{\textsf {T}}}
Залишок вимірювання після допасування y ~ k ∣ k = z k − H k x ^ k ∣ k {\displaystyle {\tilde {\mathbf {y} }}_{k\mid k}=\mathbf {z} _{k}-\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k}}

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

Інтуїтивніше уточнену оцінку стану ( x ^ k ∣ k {\displaystyle {\hat {\mathbf {x} }}_{k\mid k}} ) можливо виразити так:

x ^ k ∣ k = ( I − K k H k ) x ^ k ∣ k − 1 + K k z k {\displaystyle {\hat {\mathbf {x} }}_{k\mid k}=(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}){\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {K} _{k}\mathbf {z} _{k}}

Цей вираз нагадує лінійну інтерполяцію, x = ( 1 − t ) ( a ) + t ( b ) {\displaystyle x=(1-t)(a)+t(b)} для t {\displaystyle t} у проміжку [0,1]. У нашому випадку:

  • t {\displaystyle t}  — це матриця K k H k {\displaystyle \mathbf {K} _{k}\mathbf {H} _{k}} , яка набуває значень від 0 {\displaystyle 0} (велика похибка давача) до I {\displaystyle I} або проєкції (мала похибка).
  • a {\displaystyle a}  — це внутрішній стан x ^ k ∣ k − 1 {\displaystyle {\hat {\mathbf {x} }}_{k\mid k-1}} , оцінений за моделлю.
  • b {\displaystyle b}  — це внутрішній стан H k − 1 z k {\displaystyle \mathbf {H} _{k}^{-1}\mathbf {z} _{k}} , оцінений за вимірюванням за припущення, що H k {\displaystyle \mathbf {H} _{k}} невироджена (у багатьох застосуваннях це припущення необґрунтоване, наприклад коли розмірність стану перевищує розмірність спостереження).

Цей вираз також нагадує етап уточнення альфа-бета-фільтра.

Інваріанти

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

E ⁡ [ x k − x ^ k ∣ k ] = E ⁡ [ x k − x ^ k ∣ k − 1 ] = 0 E ⁡ [ y ~ k ] = 0 {\displaystyle {\begin{aligned}\operatorname {E} [\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k}]&=\operatorname {E} [\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k-1}]=0\\\operatorname {E} [{\tilde {\mathbf {y} }}_{k}]&=0\end{aligned}}}

де E ⁡ [ ξ ] {\displaystyle \operatorname {E} [\xi ]}  — математичне сподівання ξ {\displaystyle \xi } . Тобто всі оцінки мають нульову середню похибку.

Також:

P k ∣ k = cov ⁡ ( x k − x ^ k ∣ k ) P k ∣ k − 1 = cov ⁡ ( x k − x ^ k ∣ k − 1 ) S k = cov ⁡ ( y ~ k ) {\displaystyle {\begin{aligned}\mathbf {P} _{k\mid k}&=\operatorname {cov} \left(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k}\right)\\\mathbf {P} _{k\mid k-1}&=\operatorname {cov} \left(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k-1}\right)\\\mathbf {S} _{k}&=\operatorname {cov} \left({\tilde {\mathbf {y} }}_{k}\right)\end{aligned}}}

тож коваріаційні матриці відображають коваріації оцінок точно.

Оцінювання коваріацій шумів Qk та Rk

Практичне втілення фільтра Калмана часто ускладнюється труднощами отримання добрих оцінок матриць коваріацій шумів Qk та Rk. Було проведено широкі дослідження з оцінювання цих коваріацій за даними. Одним із практичних методів є метод автоковаріаційних найменших квадратів (АНК, англ. autocovariance least-squares, ALS), який для оцінювання цих коваріацій використовує автоковаріації штатних робочих даних із часовим запізненням.[33][34] Код для GNU Octave та MATLAB, який використовують для обчислення матриць коваріацій шумів методом АНК, доступний онлайн на умовах GNU General Public License.[35]

Було запропоновано польовий фільтр Калмана (ПФК, англ. Field Kalman Filter, FKF) — баєсів алгоритм, який уможливлює одночасне оцінювання стану, параметрів і коваріації шуму.[36] Алгоритм ПФК має рекурсивне формулювання, добру спостережувану збіжність і відносно низьку складність, що вказує на його можливу доцільність як альтернативи методам автоковаріаційних найменших квадратів.

Іншим підходом є оптимізований фільтр Калмана (ОФК, англ. Optimized Kalman Filter, OKF), у якому матриці коваріації розглядають не як характеристики шуму, а як параметри, призначені для досягнення якомога точнішого оцінювання стану.[37] За припущень ФК ці два погляди збігаються, але в реальних системах вони часто суперечать один одному. Тому оцінювання стану за допомогою ОФК стійкіше до неточностей моделювання.

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

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

Протягом останніх десятиліть було запропоновано декілька методів оцінювання коваріацій шумів, зокрема АНК, згаданий у попередньому розділі. Загальніше, якщо припущення моделі не цілком відповідають реальній системі, встановлення Qk та Rk рівними коваріаціям шумів не обов'язково забезпечує оптимальне оцінювання стану. Натомість у такому разі параметри Qk та Rk можливо встановлювати так, щоби явно оптимізувати оцінювання стану,[37] наприклад за допомогою стандартного керованого навчання.

Після встановлення коваріацій корисно оцінити продуктивність фільтра, тобто визначити, чи можливо поліпшити якість оцінювання стану. Якщо фільтр Калмана працює оптимально, послідовність нововведень (похибок передбачення виходу) є білим шумом, тому мірою продуктивності фільтра слугує властивість білості нововведень. Для цього можливо використовувати декілька різних методів.[39] Якщо складові шуму мають неґауссів розподіл, у літературі відомі методи оцінювання продуктивності оцінок фільтра, у яких використовують імовірнісні нерівності або теорію великих вибірок.[40][41]

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

                     Справжнє значення                      Профільтрований процес                      Спостереження

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

Оскільки F , H , R , Q {\displaystyle \mathbf {F} ,\mathbf {H} ,\mathbf {R} ,\mathbf {Q} } сталі, їхні часові індекси опущено.

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

x k = [ x x ˙ ] {\displaystyle \mathbf {x} _{k}={\begin{bmatrix}x\\{\dot {x}}\end{bmatrix}}}

де x ˙ {\displaystyle {\dot {x}}}  — швидкість, тобто похідна положення за часом.

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

x k = F x k − 1 + G a k {\displaystyle \mathbf {x} _{k}=\mathbf {F} \mathbf {x} _{k-1}+\mathbf {G} a_{k}}

(члена B u {\displaystyle \mathbf {B} u} немає, оскільки відсутні відомі керувальні входи. Натомість ak є впливом невідомого входу, а G {\displaystyle \mathbf {G} } відображає цей вплив на вектор стану), де

F = [ 1 Δ t 0 1 ] G = [ 1 2 Δ t 2 Δ t ] {\displaystyle {\begin{aligned}\mathbf {F} &={\begin{bmatrix}1&\Delta t\\0&1\end{bmatrix}}\\[4pt]\mathbf {G} &={\begin{bmatrix}{\frac {1}{2}}{\Delta t}^{2}\\[6pt]\Delta t\end{bmatrix}}\end{aligned}}}

тож

x k = F x k − 1 + w k {\displaystyle \mathbf {x} _{k}=\mathbf {F} \mathbf {x} _{k-1}+\mathbf {w} _{k}}

де

w k ∼ N ( 0 , Q ) Q = G G T σ a 2 = [ 1 4 Δ t 4 1 2 Δ t 3 1 2 Δ t 3 Δ t 2 ] σ a 2 . {\displaystyle {\begin{aligned}\mathbf {w} _{k}&\sim N(0,\mathbf {Q} )\\\mathbf {Q} &=\mathbf {G} \mathbf {G} ^{\textsf {T}}\sigma _{a}^{2}={\begin{bmatrix}{\frac {1}{4}}{\Delta t}^{4}&{\frac {1}{2}}{\Delta t}^{3}\\[6pt]{\frac {1}{2}}{\Delta t}^{3}&{\Delta t}^{2}\end{bmatrix}}\sigma _{a}^{2}.\end{aligned}}}

Матриця Q {\displaystyle \mathbf {Q} } не має повного рангу (її ранг дорівнює одиниці, якщо Δ t ≠ 0 {\displaystyle \Delta t\neq 0} ). Отже, розподіл N ( 0 , Q ) {\displaystyle N(0,\mathbf {Q} )} не є абсолютно неперервним і не має функції густини ймовірності. Інший спосіб виразити це, уникаючи явного використання вироджених розподілів, має вигляд

w k ∼ G ⋅ N ( 0 , σ a 2 ) . {\displaystyle \mathbf {w} _{k}\sim \mathbf {G} \cdot N\left(0,\sigma _{a}^{2}\right).}

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

z k = H x k + v k {\displaystyle \mathbf {z} _{k}=\mathbf {Hx} _{k}+\mathbf {v} _{k}}

де

H = [ 1 0 ] {\displaystyle \mathbf {H} ={\begin{bmatrix}1&0\end{bmatrix}}}

та

R = E [ v k v k T ] = [ σ z 2 ] {\displaystyle \mathbf {R} =\mathrm {E} \left[\mathbf {v} _{k}\mathbf {v} _{k}^{\textsf {T}}\right]={\begin{bmatrix}\sigma _{z}^{2}\end{bmatrix}}}

Початковий стан вагонетки відомий нам точно, тож задаємо

x ^ 0 ∣ 0 = [ 0 0 ] {\displaystyle {\hat {\mathbf {x} }}_{0\mid 0}={\begin{bmatrix}0\\0\end{bmatrix}}}

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

P 0 ∣ 0 = [ 0 0 0 0 ] {\displaystyle \mathbf {P} _{0\mid 0}={\begin{bmatrix}0&0\\0&0\end{bmatrix}}}

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

P 0 ∣ 0 = [ σ x 2 0 0 σ x ˙ 2 ] {\displaystyle \mathbf {P} _{0\mid 0}={\begin{bmatrix}\sigma _{x}^{2}&0\\0&\sigma _{\dot {x}}^{2}\end{bmatrix}}}

Тоді фільтр надаватиме перевагу інформації з перших вимірювань перед інформацією, вже закладеною до моделі.

Асимптотична форма

Для простоти припустімо, що керувальний вхід u k = 0 {\displaystyle \mathbf {u} _{k}=\mathbf {0} } . Тоді фільтр Калмана можна записати так:

x ^ k ∣ k = F k x ^ k − 1 ∣ k − 1 + K k [ z k − H k F k x ^ k − 1 ∣ k − 1 ] . {\displaystyle {\hat {\mathbf {x} }}_{k\mid k}=\mathbf {F} _{k}{\hat {\mathbf {x} }}_{k-1\mid k-1}+\mathbf {K} _{k}[\mathbf {z} _{k}-\mathbf {H} _{k}\mathbf {F} _{k}{\hat {\mathbf {x} }}_{k-1\mid k-1}].}

Подібне рівняння справедливе й у разі ненульового керувального входу. Матриці передавального коефіцієнта K k {\displaystyle \mathbf {K} _{k}} та коваріаційні матриці P k ∣ k {\displaystyle \mathbf {P} _{k\mid k}} змінюються незалежно від вимірювань z k {\displaystyle \mathbf {z} _{k}} . Із наведеного вище випливають такі чотири рівняння, потрібні для оновлення матриць:

P k ∣ k − 1 = F k P k − 1 ∣ k − 1 F k T + Q k , S k = H k P k ∣ k − 1 H k T + R k , K k = P k ∣ k − 1 H k T S k − 1 , P k | k = ( I − K k H k ) P k | k − 1 . {\displaystyle {\begin{aligned}\mathbf {P} _{k\mid k-1}&=\mathbf {F} _{k}\mathbf {P} _{k-1\mid k-1}\mathbf {F} _{k}^{\textsf {T}}+\mathbf {Q} _{k},\\\mathbf {S} _{k}&=\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}+\mathbf {R} _{k},\\\mathbf {K} _{k}&=\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\mathbf {S} _{k}^{-1},\\\mathbf {P} _{k|k}&=\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\mathbf {P} _{k|k-1}.\end{aligned}}}

Оскільки вони залежать лише від моделі, а не від вимірювань, їх можливо обчислювати заздалегідь. Збіжність матриць передавального коефіцієнта K k {\displaystyle \mathbf {K} _{k}} до асимптотичної матриці K ∞ {\displaystyle \mathbf {K} _{\infty }} відбувається за умов, установлених Волрандом і Дімакісом.[42] Якщо послідовність P k ∣ k {\displaystyle \mathbf {P} _{k\mid k}} збігається, то, за припущення ненульового шуму об'єкта керування, вона експоненційно збігається до асимптотичної матриці P ∞ {\displaystyle \mathbf {P} _{\infty }} .[43] Нещодавній аналіз показав, що темп і характер цього збігання можуть охоплювати декілька рівнозначних мод, зокрема коливальні складові, залежно від структури власних значень і власних векторів матриці Якобі наведеного вище відображення Ріккаті в точці P ∞ {\displaystyle \mathbf {P} _{\infty }} .[44] Для описаного вище прикладу з рухомою вагонеткою, за Δ t = 1 {\displaystyle \Delta t=1} та σ a 2 = σ z 2 = σ x 2 = σ x ˙ 2 = 1 {\displaystyle \sigma _{a}^{2}=\sigma _{z}^{2}=\sigma _{x}^{2}=\sigma _{\dot {x}}^{2}=1} , моделювання показує збіжність за 10 {\displaystyle 10} ітерацій.

Із використанням асимптотичного передавального коефіцієнта та за припущення, що H k {\displaystyle \mathbf {H} _{k}} і F k {\displaystyle \mathbf {F} _{k}} не залежать від k {\displaystyle k} , фільтр Калмана стає лінійним стаціонарним фільтром:

x ^ k = F x ^ k − 1 + K ∞ [ z k − H F x ^ k − 1 ] . {\displaystyle {\hat {\mathbf {x} }}_{k}=\mathbf {F} {\hat {\mathbf {x} }}_{k-1}+\mathbf {K} _{\infty }[\mathbf {z} _{k}-\mathbf {H} \mathbf {F} {\hat {\mathbf {x} }}_{k-1}].}

Асимптотичний передавальний коефіцієнт K ∞ {\displaystyle \mathbf {K} _{\infty }} , якщо він існує, можливо обчислити, спершу розв'язавши таке дискретне рівняння Ріккаті відносно асимптотичної коваріації стану P ∞ {\displaystyle \mathbf {P} _{\infty }} :[42]

P ∞ = F ( P ∞ − P ∞ H T ( H P ∞ H T + R ) − 1 H P ∞ ) F T + Q . {\displaystyle \mathbf {P} _{\infty }=\mathbf {F} \left(\mathbf {P} _{\infty }-\mathbf {P} _{\infty }\mathbf {H} ^{\textsf {T}}\left(\mathbf {H} \mathbf {P} _{\infty }\mathbf {H} ^{\textsf {T}}+\mathbf {R} \right)^{-1}\mathbf {H} \mathbf {P} _{\infty }\right)\mathbf {F} ^{\textsf {T}}+\mathbf {Q} .}

Після цього асимптотичний передавальний коефіцієнт обчислюють як і раніше:

K ∞ = P ∞ H T ( R + H P ∞ H T ) − 1 . {\displaystyle \mathbf {K} _{\infty }=\mathbf {P} _{\infty }\mathbf {H} ^{\textsf {T}}\left(\mathbf {R} +\mathbf {H} \mathbf {P} _{\infty }\mathbf {H} ^{\textsf {T}}\right)^{-1}.}

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

x ^ k + 1 = F x ^ k + B u k + K ¯ ∞ [ z k − H x ^ k ] , {\displaystyle {\displaystyle {\hat {\mathbf {x} }}_{k+1}=\mathbf {F} {\hat {\mathbf {x} }}_{k}+\mathbf {B} \mathbf {u} _{k}+\mathbf {\overline {K}} _{\infty }[\mathbf {z} _{k}-\mathbf {H} {\hat {\mathbf {x} }}_{k}],}}

де

K ¯ ∞ = F P ∞ H T ( R + H P ∞ H T ) − 1 . {\displaystyle {\overline {\mathbf {K} }}_{\infty }=\mathbf {F} \mathbf {P} _{\infty }\mathbf {H} ^{\textsf {T}}\left(\mathbf {R} +\mathbf {H} \mathbf {P} _{\infty }\mathbf {H} ^{\textsf {T}}\right)^{-1}.}

Це дає оцінювач вигляду

x ^ k + 1 = ( F − K ¯ ∞ H ) x ^ k + B u k + K ¯ ∞ z k . {\displaystyle {\displaystyle {\hat {\mathbf {x} }}_{k+1}=(\mathbf {F} -{\overline {\mathbf {K} }}_{\infty }\mathbf {H} ){\hat {\mathbf {x} }}_{k}+\mathbf {B} \mathbf {u} _{k}+\mathbf {\overline {K}} _{\infty }\mathbf {z} _{k}.}}

Виведення

Фільтр Калмана можливо вивести як узагальнений метод найменших квадратів, що працює на основі попередніх даних.[45]

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

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

P k ∣ k = cov ⁡ ( x k − x ^ k ∣ k ) {\displaystyle \mathbf {P} _{k\mid k}=\operatorname {cov} \left(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k}\right)}

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

P k ∣ k = cov ⁡ [ x k − ( x ^ k ∣ k − 1 + K k y ~ k ) ] {\displaystyle \mathbf {P} _{k\mid k}=\operatorname {cov} \left[\mathbf {x} _{k}-\left({\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {K} _{k}{\tilde {\mathbf {y} }}_{k}\right)\right]}

а потім y ~ k {\displaystyle {\tilde {\mathbf {y} }}_{k}}

P k ∣ k = cov ⁡ ( x k − [ x ^ k ∣ k − 1 + K k ( z k − H k x ^ k ∣ k − 1 ) ] ) {\displaystyle \mathbf {P} _{k\mid k}=\operatorname {cov} \left(\mathbf {x} _{k}-\left[{\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {K} _{k}\left(\mathbf {z} _{k}-\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1}\right)\right]\right)}

і z k {\displaystyle \mathbf {z} _{k}}

P k ∣ k = cov ⁡ ( x k − [ x ^ k ∣ k − 1 + K k ( H k x k + v k − H k x ^ k ∣ k − 1 ) ] ) {\displaystyle \mathbf {P} _{k\mid k}=\operatorname {cov} \left(\mathbf {x} _{k}-\left[{\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {K} _{k}\left(\mathbf {H} _{k}\mathbf {x} _{k}+\mathbf {v} _{k}-\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1}\right)\right]\right)}

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

P k ∣ k = cov ⁡ [ ( I − K k H k ) ( x k − x ^ k ∣ k − 1 ) − K k v k ] {\displaystyle \mathbf {P} _{k\mid k}=\operatorname {cov} \left[\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\left(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k-1}\right)-\mathbf {K} _{k}\mathbf {v} _{k}\right]}

Оскільки похибка вимірювання vk некорельована з іншими членами, цей вираз набуває вигляду

P k ∣ k = cov ⁡ [ ( I − K k H k ) ( x k − x ^ k ∣ k − 1 ) ] + cov ⁡ [ K k v k ] {\displaystyle \mathbf {P} _{k\mid k}=\operatorname {cov} \left[\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\left(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k-1}\right)\right]+\operatorname {cov} \left[\mathbf {K} _{k}\mathbf {v} _{k}\right]}

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

P k ∣ k = ( I − K k H k ) cov ⁡ ( x k − x ^ k ∣ k − 1 ) ( I − K k H k ) T + K k cov ⁡ ( v k ) K k T {\displaystyle \mathbf {P} _{k\mid k}=\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\operatorname {cov} \left(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k-1}\right)\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)^{\textsf {T}}+\mathbf {K} _{k}\operatorname {cov} \left(\mathbf {v} _{k}\right)\mathbf {K} _{k}^{\textsf {T}}}

що з використанням нашого інваріанта для Pk | k−1 та визначення Rk перетворюється на

P k ∣ k = ( I − K k H k ) P k ∣ k − 1 ( I − K k H k ) T + K k R k K k T {\displaystyle \mathbf {P} _{k\mid k}=\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\mathbf {P} _{k\mid k-1}\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)^{\textsf {T}}+\mathbf {K} _{k}\mathbf {R} _{k}\mathbf {K} _{k}^{\textsf {T}}}

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

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

Фільтр Калмана є оцінювачем з мінімальною середньоквадратичною похибкою (МСКП, англ. minimum mean-square error, MMSE). Похибка апостеріорного оцінювання стану дорівнює

x k − x ^ k ∣ k {\displaystyle \mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k}}

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

P k ∣ k = P k ∣ k − 1 − K k H k P k ∣ k − 1 − P k ∣ k − 1 H k T K k T + K k ( H k P k ∣ k − 1 H k T + R k ) K k T = P k ∣ k − 1 − K k H k P k ∣ k − 1 − P k ∣ k − 1 H k T K k T + K k S k K k T {\displaystyle {\begin{aligned}\mathbf {P} _{k\mid k}&=\mathbf {P} _{k\mid k-1}-\mathbf {K} _{k}\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}-\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\mathbf {K} _{k}^{\textsf {T}}+\mathbf {K} _{k}\left(\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}+\mathbf {R} _{k}\right)\mathbf {K} _{k}^{\textsf {T}}\\[6pt]&=\mathbf {P} _{k\mid k-1}-\mathbf {K} _{k}\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}-\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\mathbf {K} _{k}^{\textsf {T}}+\mathbf {K} _{k}\mathbf {S} _{k}\mathbf {K} _{k}^{\textsf {T}}\end{aligned}}}

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

∂ tr ⁡ ( P k ∣ k ) ∂ K k = − 2 ( H k P k ∣ k − 1 ) T + 2 K k S k = 0. {\displaystyle {\frac {\partial \;\operatorname {tr} (\mathbf {P} _{k\mid k})}{\partial \;\mathbf {K} _{k}}}=-2\left(\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}\right)^{\textsf {T}}+2\mathbf {K} _{k}\mathbf {S} _{k}=0.}

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

K k S k = ( H k P k ∣ k − 1 ) T = P k ∣ k − 1 H k T ⇒ K k = P k ∣ k − 1 H k T S k − 1 {\displaystyle {\begin{aligned}\mathbf {K} _{k}\mathbf {S} _{k}&=\left(\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}\right)^{\textsf {T}}=\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\\\Rightarrow \mathbf {K} _{k}&=\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\mathbf {S} _{k}^{-1}\end{aligned}}}

Цей передавальний коефіцієнт, відомий як оптимальний передавальний коефіцієнт Калмана (англ. optimal Kalman gain), при застосуванні забезпечує отримання оцінок із МСКП.

Спрощення формули коваріації апостеріорної похибки

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

K k S k K k T = P k ∣ k − 1 H k T K k T {\displaystyle \mathbf {K} _{k}\mathbf {S} _{k}\mathbf {K} _{k}^{\textsf {T}}=\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\mathbf {K} _{k}^{\textsf {T}}}

Повернувшись до розгорнутої формули коваріації апостеріорної похибки,

P k ∣ k = P k ∣ k − 1 − K k H k P k ∣ k − 1 − P k ∣ k − 1 H k T K k T + K k S k K k T {\displaystyle \mathbf {P} _{k\mid k}=\mathbf {P} _{k\mid k-1}-\mathbf {K} _{k}\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}-\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\mathbf {K} _{k}^{\textsf {T}}+\mathbf {K} _{k}\mathbf {S} _{k}\mathbf {K} _{k}^{\textsf {T}}}

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

P k ∣ k = P k ∣ k − 1 − K k H k P k ∣ k − 1 = ( I − K k H k ) P k ∣ k − 1 {\displaystyle \mathbf {P} _{k\mid k}=\mathbf {P} _{k\mid k-1}-\mathbf {K} _{k}\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}=(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k})\mathbf {P} _{k\mid k-1}}

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

Аналіз чутливості

Рівняння калманового фільтрування дають оцінку стану x ^ k ∣ k {\displaystyle {\hat {\mathbf {x} }}_{k\mid k}} та коваріацію її похибки P k ∣ k {\displaystyle \mathbf {P} _{k\mid k}} рекурсивно. Ця оцінка та її якість залежать від параметрів системи й статистик шуму, поданих на вхід оцінювача. У цьому розділі проаналізовано вплив невизначеностей у статистичних вхідних даних фільтра.[46] За відсутності надійних статистик або справжніх значень матриць коваріацій шумів Q k {\displaystyle \mathbf {Q} _{k}} та R k {\displaystyle \mathbf {R} _{k}} вираз

P k ∣ k = ( I − K k H k ) P k ∣ k − 1 ( I − K k H k ) T + K k R k K k T {\displaystyle \mathbf {P} _{k\mid k}=\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\mathbf {P} _{k\mid k-1}\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)^{\textsf {T}}+\mathbf {K} _{k}\mathbf {R} _{k}\mathbf {K} _{k}^{\textsf {T}}}

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

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

P k ∣ k − 1 a = F k P k − 1 ∣ k − 1 a F k T + Q k a {\displaystyle \mathbf {P} _{k\mid k-1}^{a}=\mathbf {F} _{k}\mathbf {P} _{k-1\mid k-1}^{a}\mathbf {F} _{k}^{\textsf {T}}+\mathbf {Q} _{k}^{a}}

та

P k ∣ k a = ( I − K k H k ) P k ∣ k − 1 a ( I − K k H k ) T + K k R k a K k T {\displaystyle \mathbf {P} _{k\mid k}^{a}=\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\mathbf {P} _{k\mid k-1}^{a}\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)^{\textsf {T}}+\mathbf {K} _{k}\mathbf {R} _{k}^{a}\mathbf {K} _{k}^{\textsf {T}}}

Під час обчислення P k ∣ k {\displaystyle \mathbf {P} _{k\mid k}} фільтр за своєю побудовою неявно припускає, що E [ w k w k T ] = Q k {\displaystyle E\left[\mathbf {w} _{k}\mathbf {w} _{k}^{\textsf {T}}\right]=\mathbf {Q} _{k}} та E [ v k v k T ] = R k {\displaystyle E\left[\mathbf {v} _{k}\mathbf {v} _{k}^{\textsf {T}}\right]=\mathbf {R} _{k}} . Рекурсивні вирази для P k ∣ k a {\displaystyle \mathbf {P} _{k\mid k}^{a}} та P k ∣ k {\displaystyle \mathbf {P} _{k\mid k}} однакові, за винятком того, що замість розрахункових значень Q k {\displaystyle \mathbf {Q} _{k}} та R k {\displaystyle \mathbf {R} _{k}} у них наявні відповідно Q k a {\displaystyle \mathbf {Q} _{k}^{a}} та R k a {\displaystyle \mathbf {R} _{k}^{a}} . Було проведено дослідження стійкості систем із фільтром Калмана.[47]

Форма з розкладом коваріаційної матриці

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

Додатно визначені матриці мають властивість розкладатися в добуток невиродженої нижньотрикутної матриці S та її транспозиції: P = S·ST. Множник S можливо ефективно обчислювати за допомогою алгоритму розкладу Холецького. Таке подання матриці коваріації P у вигляді добутку гарантовано симетричне, і для всіх 1 ≤ k ≤ n k-й діагональний елемент Pkk дорівнює квадрату евклідової норми k-го рядка S, а отже, обов'язково додатний. Рівносильним поданням, яке дає змогу уникнути багатьох операцій добування квадратного кореня, потрібних в алгоритмі розкладу Холецького, але зберігає бажані числові властивості, є форма U-D-розкладу: P = U·D·UT, де U — унітрикутна матриця (з одиничною діагоналлю), а D — діагональна матриця.

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

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

Розклад L·D·LT матриці коваріації нововведення Sk лежить в основі іншого різновиду чисельно ефективного та стійкого квадратнокореневого фільтра.[50] Цей алгоритм починається з LU-розкладу у втіленні пакета лінійної алгебри LAPACK. Ці результати далі розкладають у структуру L·D·LT методами, наведеними Голубом і ван Лоаном (алгоритм 4.1.2) для симетричної невиродженої матриці.[51] Для будь-якої виродженої коваріаційної матриці обирають опорний елемент таким чином, щоби перший діагональний блок був невиродженим і добре обумовленим. Алгоритм вибору опорного елемента повинен зберігати будь-яку частину матриці коваріації нововведення, яка безпосередньо відповідає спостережуваним змінним стану Hk·xk|k-1, пов'язаним із допоміжними спостереженнями в yk. Квадратнокореневий фільтр l·d·lt потребує ортогоналізації вектора спостережень.[49][50] Її можливо виконувати за допомогою оберненого квадратного кореня коваріаційної матриці допоміжних змінних, використовуючи метод 2 із праці Гаєма (2002, с. 263).[52]

Паралельна форма

Фільтр Калмана ефективний для послідовної обробки даних на центральних процесорах (ЦП), але у своїй первісній формі він неефективний на паралельних архітектурах, як-от графічних процесорах (ГП). Проте процедуру уточнення цього фільтра можливо виразити через асоціативний оператор, використовуючи формулювання Сярккя та Гарсії-Фернандеса (2021).[53] Тоді розв'язок фільтра можливо отримати за допомогою алгоритму префіксної суми, який можливо ефективно втілити на графічному процесорі.[54] Це знижує обчислювальну складність за кількістю часових кроків із O ( N ) {\displaystyle O(N)} до O ( log ⁡ ( N ) ) {\displaystyle O(\log(N))} .

Зв'язок із рекурсивним баєсовим оцінюванням

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

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

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

З огляду на марковське припущення справжній стан, за умови відомого безпосередньо попереднього стану, умовно незалежний від усіх раніших станів.

p ( x k ∣ x 0 , … , x k − 1 ) = p ( x k ∣ x k − 1 ) {\displaystyle p(\mathbf {x} _{k}\mid \mathbf {x} _{0},\dots ,\mathbf {x} _{k-1})=p(\mathbf {x} _{k}\mid \mathbf {x} _{k-1})}

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

p ( z k ∣ x 0 , … , x k ) = p ( z k ∣ x k ) {\displaystyle p(\mathbf {z} _{k}\mid \mathbf {x} _{0},\dots ,\mathbf {x} _{k})=p(\mathbf {z} _{k}\mid \mathbf {x} _{k})}

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

p ( x 0 , … , x k , z 1 , … , z k ) = p ( x 0 ) ∏ i = 1 k p ( z i ∣ x i ) p ( x i ∣ x i − 1 ) {\displaystyle p\left(\mathbf {x} _{0},\dots ,\mathbf {x} _{k},\mathbf {z} _{1},\dots ,\mathbf {z} _{k}\right)=p\left(\mathbf {x} _{0}\right)\prod _{i=1}^{k}p\left(\mathbf {z} _{i}\mid \mathbf {x} _{i}\right)p\left(\mathbf {x} _{i}\mid \mathbf {x} _{i-1}\right)}

Проте, коли фільтр Калмана використовують для оцінювання стану x, становить інтерес розподіл імовірності, пов'язаний із поточним станом за умови вимірювань по поточний такт (включно). Його отримують знеособленням попередніх станів і діленням на імовірність набору вимірювань.

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

p ( x k ∣ Z k − 1 ) = ∫ p ( x k ∣ x k − 1 ) p ( x k − 1 ∣ Z k − 1 ) d x k − 1 {\displaystyle p\left(\mathbf {x} _{k}\mid \mathbf {Z} _{k-1}\right)=\int p\left(\mathbf {x} _{k}\mid \mathbf {x} _{k-1}\right)p\left(\mathbf {x} _{k-1}\mid \mathbf {Z} _{k-1}\right)\,d\mathbf {x} _{k-1}}

Набір вимірювань до моменту часу t включно має вигляд

Z t = { z 1 , … , z t } {\displaystyle \mathbf {Z} _{t}=\left\{\mathbf {z} _{1},\dots ,\mathbf {z} _{t}\right\}}

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

p ( x k ∣ Z k ) = p ( z k ∣ x k ) p ( x k ∣ Z k − 1 ) p ( z k ∣ Z k − 1 ) {\displaystyle p\left(\mathbf {x} _{k}\mid \mathbf {Z} _{k}\right)={\frac {p\left(\mathbf {z} _{k}\mid \mathbf {x} _{k}\right)p\left(\mathbf {x} _{k}\mid \mathbf {Z} _{k-1}\right)}{p\left(\mathbf {z} _{k}\mid \mathbf {Z} _{k-1}\right)}}}

Знаменник

p ( z k ∣ Z k − 1 ) = ∫ p ( z k ∣ x k ) p ( x k ∣ Z k − 1 ) d x k {\displaystyle p\left(\mathbf {z} _{k}\mid \mathbf {Z} _{k-1}\right)=\int p\left(\mathbf {z} _{k}\mid \mathbf {x} _{k}\right)p\left(\mathbf {x} _{k}\mid \mathbf {Z} _{k-1}\right)\,d\mathbf {x} _{k}}

є нормувальним членом.

Решта функцій густини імовірності мають вигляд

p ( x k ∣ x k − 1 ) = N ( F k x k − 1 + B k u k , Q k ) p ( z k ∣ x k ) = N ( H k x k , R k ) p ( x k − 1 ∣ Z k − 1 ) = N ( x ^ k − 1 , P k − 1 ) {\displaystyle {\begin{aligned}p\left(\mathbf {x} _{k}\mid \mathbf {x} _{k-1}\right)&={\mathcal {N}}\left(\mathbf {F} _{k}\mathbf {x} _{k-1}+\mathbf {B} _{k}\mathbf {u} _{k},\mathbf {Q} _{k}\right)\\p\left(\mathbf {z} _{k}\mid \mathbf {x} _{k}\right)&={\mathcal {N}}\left(\mathbf {H} _{k}\mathbf {x} _{k},\mathbf {R} _{k}\right)\\p\left(\mathbf {x} _{k-1}\mid \mathbf {Z} _{k-1}\right)&={\mathcal {N}}\left({\hat {\mathbf {x} }}_{k-1},\mathbf {P} _{k-1}\right)\end{aligned}}}

ФГІ на попередньому такті індуктивно вважають оцінкою стану та коваріацією. Це обґрунтовано тим, що фільтр Калмана як оптимальний оцінювач використовує вимірювання якнайкраще, тож ФГІ для x k {\displaystyle \mathbf {x} _{k}} за заданих вимірювань Z k {\displaystyle \mathbf {Z} _{k}} є оцінкою фільтра Калмана.

Відособлена правдоподібність

Відповідно до описаного вище рекурсивного баєсового тлумачення фільтр Калмана можливо розглядати як породжувальну модель, тобто процес породження потоку випадкових спостережень z = (z0, z1, z2, …). Зокрема, цей процес має такий вигляд:

  1. Взяти прихований стан x 0 {\displaystyle \mathbf {x} _{0}} із ґауссового апріорного розподілу p ( x 0 ) = N ( x ^ 0 ∣ 0 , P 0 ∣ 0 ) {\displaystyle p\left(\mathbf {x} _{0}\right)={\mathcal {N}}\left({\hat {\mathbf {x} }}_{0\mid 0},\mathbf {P} _{0\mid 0}\right)} .
  2. Взяти спостереження z 0 {\displaystyle \mathbf {z} _{0}} із моделі спостережень p ( z 0 ∣ x 0 ) = N ( H 0 x 0 , R 0 ) {\displaystyle p\left(\mathbf {z} _{0}\mid \mathbf {x} _{0}\right)={\mathcal {N}}\left(\mathbf {H} _{0}\mathbf {x} _{0},\mathbf {R} _{0}\right)} .
  3. Для k = 1 , 2 , 3 , … {\displaystyle k=1,2,3,\ldots } виконати:
    1. Взяти наступний прихований стан x k {\displaystyle \mathbf {x} _{k}} із моделі переходу p ( x k ∣ x k − 1 ) = N ( F k x k − 1 + B k u k , Q k ) . {\displaystyle p\left(\mathbf {x} _{k}\mid \mathbf {x} _{k-1}\right)={\mathcal {N}}\left(\mathbf {F} _{k}\mathbf {x} _{k-1}+\mathbf {B} _{k}\mathbf {u} _{k},\mathbf {Q} _{k}\right).}
    2. Взяти спостереження z k {\displaystyle \mathbf {z} _{k}} із моделі спостережень p ( z k ∣ x k ) = N ( H k x k , R k ) . {\displaystyle p\left(\mathbf {z} _{k}\mid \mathbf {x} _{k}\right)={\mathcal {N}}\left(\mathbf {H} _{k}\mathbf {x} _{k},\mathbf {R} _{k}\right).}

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

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

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

p ( z ) = ∏ k = 0 T p ( z k ∣ z k − 1 , … , z 0 ) {\displaystyle p(\mathbf {z} )=\prod _{k=0}^{T}p\left(\mathbf {z} _{k}\mid \mathbf {z} _{k-1},\ldots ,\mathbf {z} _{0}\right)} ,

а оскільки фільтр Калмана описує марковський процес, уся суттєва інформація з попередніх спостережень міститься в поточній оцінці стану x ^ k ∣ k − 1 , P k ∣ k − 1 . {\displaystyle {\hat {\mathbf {x} }}_{k\mid k-1},\mathbf {P} _{k\mid k-1}.} Тож відособлену правдоподібність задає

p ( z ) = ∏ k = 0 T ∫ p ( z k ∣ x k ) p ( x k ∣ z k − 1 , … , z 0 ) d x k = ∏ k = 0 T ∫ N ( z k ; H k x k , R k ) N ( x k ; x ^ k ∣ k − 1 , P k ∣ k − 1 ) d x k = ∏ k = 0 T N ( z k ; H k x ^ k ∣ k − 1 , R k + H k P k ∣ k − 1 H k T ) = ∏ k = 0 T N ( z k ; H k x ^ k ∣ k − 1 , S k ) , {\displaystyle {\begin{aligned}p(\mathbf {z} )&=\prod _{k=0}^{T}\int p\left(\mathbf {z} _{k}\mid \mathbf {x} _{k}\right)p\left(\mathbf {x} _{k}\mid \mathbf {z} _{k-1},\ldots ,\mathbf {z} _{0}\right)d\mathbf {x} _{k}\\&=\prod _{k=0}^{T}\int {\mathcal {N}}\left(\mathbf {z} _{k};\mathbf {H} _{k}\mathbf {x} _{k},\mathbf {R} _{k}\right){\mathcal {N}}\left(\mathbf {x} _{k};{\hat {\mathbf {x} }}_{k\mid k-1},\mathbf {P} _{k\mid k-1}\right)d\mathbf {x} _{k}\\&=\prod _{k=0}^{T}{\mathcal {N}}\left(\mathbf {z} _{k};\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1},\mathbf {R} _{k}+\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\right)\\&=\prod _{k=0}^{T}{\mathcal {N}}\left(\mathbf {z} _{k};\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1},\mathbf {S} _{k}\right),\end{aligned}}}

тобто добуток ґауссових густин, кожна з яких відповідає густині одного спостереження zk за поточного розподілу фільтрування H k x ^ k ∣ k − 1 , S k {\displaystyle \mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1},\mathbf {S} _{k}} . Це легко обчислювати простим рекурсивним уточненням; проте, щоби уникнути зникнення порядку, у практичному втіленні зазвичай бажано натомість обчислювати логарифмічну відособлену правдоподібність ℓ = log ⁡ p ( z ) {\displaystyle \ell =\log p(\mathbf {z} )} . Прийнявши домовленість ℓ ( − 1 ) = 0 {\displaystyle \ell ^{(-1)}=0} , це можливо зробити за таким рекурсивним правилом уточнення:

ℓ ( k ) = ℓ ( k − 1 ) − 1 2 ( y ~ k T S k − 1 y ~ k + log ⁡ | S k | + d y log ⁡ 2 π ) , {\displaystyle \ell ^{(k)}=\ell ^{(k-1)}-{\frac {1}{2}}\left({\tilde {\mathbf {y} }}_{k}^{\textsf {T}}\mathbf {S} _{k}^{-1}{\tilde {\mathbf {y} }}_{k}+\log \left|\mathbf {S} _{k}\right|+d_{y}\log 2\pi \right),}

де d y {\displaystyle d_{y}}  — розмірність вектора вимірювання.[56]

Важливим застосуванням, у якому використовують таку (логарифмічну) правдоподібність спостережень за заданих параметрів фільтра, є супровід багатьох цілей. Наприклад, розгляньмо сценарій супроводу об'єктів, у якому на вхід надходить потік спостережень, але невідомо, скільки об'єктів перебуває у сцені (або кількість об'єктів відома, але перевищує один). У такому сценарії може бути апріорі невідомо, які спостереження чи вимірювання породжено яким об'єктом. Система супроводу з множинними гіпотезами (англ. multiple hypothesis tracker, MHT) зазвичай формує різні гіпотези пов'язування траєкторій, кожну з яких у лінійному ґауссовому випадку можливо розглядати як фільтр Калмана з певним набором параметрів, пов'язаних із гіпотетичним об'єктом. Тож важливо обчислювати правдоподібність спостережень для різних розглядуваних гіпотез, щоби знаходити найправдоподібнішу.

Інформаційний фільтр

У випадках, коли розмірність вектора спостережень y більша за розмірність вектора простору станів x, інформаційний фільтр (англ. information filter) дає змогу уникнути обернення матриці більшого розміру під час обчислення передавального коефіцієнта Калмана ціною обернення меншої матриці на етапі передбачення, заощаджуючи таким чином обчислювальний час. Крім того, інформаційний фільтр уможливлює ініціалізацію інформації про систему як I 1 | 0 = P 1 | 0 − 1 = 0 {\displaystyle {I_{1|0}=P_{1|0}^{-1}=0}} , що було би неможливим для звичайного фільтра Калмана.[57] В інформаційному фільтрі, або обернено-коваріаційному фільтрі (англ. inverse covariance filter), оцінювані коваріацію та стан замінюють відповідно інформаційною матрицею та інформаційним вектором. Їх визначають як

Y k ∣ k = P k ∣ k − 1 y ^ k ∣ k = P k ∣ k − 1 x ^ k ∣ k {\displaystyle {\begin{aligned}\mathbf {Y} _{k\mid k}&=\mathbf {P} _{k\mid k}^{-1}\\{\hat {\mathbf {y} }}_{k\mid k}&=\mathbf {P} _{k\mid k}^{-1}{\hat {\mathbf {x} }}_{k\mid k}\end{aligned}}}

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

Y k ∣ k − 1 = P k ∣ k − 1 − 1 y ^ k ∣ k − 1 = P k ∣ k − 1 − 1 x ^ k ∣ k − 1 {\displaystyle {\begin{aligned}\mathbf {Y} _{k\mid k-1}&=\mathbf {P} _{k\mid k-1}^{-1}\\{\hat {\mathbf {y} }}_{k\mid k-1}&=\mathbf {P} _{k\mid k-1}^{-1}{\hat {\mathbf {x} }}_{k\mid k-1}\end{aligned}}}

а коваріація вимірювання та вектор вимірювання — як

I k = H k T R k − 1 H k i k = H k T R k − 1 z k {\displaystyle {\begin{aligned}\mathbf {I} _{k}&=\mathbf {H} _{k}^{\textsf {T}}\mathbf {R} _{k}^{-1}\mathbf {H} _{k}\\\mathbf {i} _{k}&=\mathbf {H} _{k}^{\textsf {T}}\mathbf {R} _{k}^{-1}\mathbf {z} _{k}\end{aligned}}}

Уточнення інформації відтак зводиться до простого додавання.[58]

Y k ∣ k = Y k ∣ k − 1 + I k y ^ k ∣ k = y ^ k ∣ k − 1 + i k {\displaystyle {\begin{aligned}\mathbf {Y} _{k\mid k}&=\mathbf {Y} _{k\mid k-1}+\mathbf {I} _{k}\\{\hat {\mathbf {y} }}_{k\mid k}&={\hat {\mathbf {y} }}_{k\mid k-1}+\mathbf {i} _{k}\end{aligned}}}

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

Y k ∣ k = Y k ∣ k − 1 + ∑ j = 1 N I k , j y ^ k ∣ k = y ^ k ∣ k − 1 + ∑ j = 1 N i k , j {\displaystyle {\begin{aligned}\mathbf {Y} _{k\mid k}&=\mathbf {Y} _{k\mid k-1}+\sum _{j=1}^{N}\mathbf {I} _{k,j}\\{\hat {\mathbf {y} }}_{k\mid k}&={\hat {\mathbf {y} }}_{k\mid k-1}+\sum _{j=1}^{N}\mathbf {i} _{k,j}\end{aligned}}}

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

M k = [ F k − 1 ] T Y k − 1 ∣ k − 1 F k − 1 C k = M k [ M k + Q k − 1 ] − 1 L k = I − C k Y k ∣ k − 1 = L k M k + C k Q k − 1 C k T y ^ k ∣ k − 1 = L k [ F k − 1 ] T y ^ k − 1 ∣ k − 1 {\displaystyle {\begin{aligned}\mathbf {M} _{k}&=\left[\mathbf {F} _{k}^{-1}\right]^{\textsf {T}}\mathbf {Y} _{k-1\mid k-1}\mathbf {F} _{k}^{-1}\\\mathbf {C} _{k}&=\mathbf {M} _{k}\left[\mathbf {M} _{k}+\mathbf {Q} _{k}^{-1}\right]^{-1}\\\mathbf {L} _{k}&=\mathbf {I} -\mathbf {C} _{k}\\\mathbf {Y} _{k\mid k-1}&=\mathbf {L} _{k}\mathbf {M} _{k}+\mathbf {C} _{k}\mathbf {Q} _{k}^{-1}\mathbf {C} _{k}^{\textsf {T}}\\{\hat {\mathbf {y} }}_{k\mid k-1}&=\mathbf {L} _{k}\left[\mathbf {F} _{k}^{-1}\right]^{\textsf {T}}{\hat {\mathbf {y} }}_{k-1\mid k-1}\end{aligned}}}

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

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

[ x ^ t ∣ t x ^ t − 1 ∣ t ⋮ x ^ t − N + 1 ∣ t ] = [ I 0 ⋮ 0 ] x ^ t ∣ t − 1 + [ 0 … 0 I 0 ⋮ ⋮ ⋱ ⋮ 0 … I ] [ x ^ t − 1 ∣ t − 1 x ^ t − 2 ∣ t − 1 ⋮ x ^ t − N + 1 ∣ t − 1 ] + [ K ( 0 ) K ( 1 ) ⋮ K ( N − 1 ) ] y t ∣ t − 1 {\displaystyle {\begin{bmatrix}{\hat {\mathbf {x} }}_{t\mid t}\\{\hat {\mathbf {x} }}_{t-1\mid t}\\\vdots \\{\hat {\mathbf {x} }}_{t-N+1\mid t}\\\end{bmatrix}}={\begin{bmatrix}\mathbf {I} \\0\\\vdots \\0\\\end{bmatrix}}{\hat {\mathbf {x} }}_{t\mid t-1}+{\begin{bmatrix}0&\ldots &0\\\mathbf {I} &0&\vdots \\\vdots &\ddots &\vdots \\0&\ldots &\mathbf {I} \\\end{bmatrix}}{\begin{bmatrix}{\hat {\mathbf {x} }}_{t-1\mid t-1}\\{\hat {\mathbf {x} }}_{t-2\mid t-1}\\\vdots \\{\hat {\mathbf {x} }}_{t-N+1\mid t-1}\\\end{bmatrix}}+{\begin{bmatrix}\mathbf {K} ^{(0)}\\\mathbf {K} ^{(1)}\\\vdots \\\mathbf {K} ^{(N-1)}\\\end{bmatrix}}\mathbf {y} _{t\mid t-1}}

де:

  • x ^ t ∣ t − 1 {\displaystyle {\hat {\mathbf {x} }}_{t\mid t-1}} оцінюють за допомогою звичайного фільтра Калмана;
  • y t ∣ t − 1 = z t − H x ^ t ∣ t − 1 {\displaystyle \mathbf {y} _{t\mid t-1}=\mathbf {z} _{t}-\mathbf {H} {\hat {\mathbf {x} }}_{t\mid t-1}}  — нововведення, отримане з урахуванням оцінки звичайного фільтра Калмана;
  • різні x ^ t − i ∣ t {\displaystyle {\hat {\mathbf {x} }}_{t-i\mid t}} за i = 1 , … , N − 1 {\displaystyle i=1,\ldots ,N-1} є новими змінними, тобто вони не з'являються у звичайному фільтрі Калмана;
  • передавальні коефіцієнти обчислюють за такою схемою:
    K ( i + 1 ) = P ( i ) H T [ H P H T + R ] − 1 {\displaystyle \mathbf {K} ^{(i+1)}=\mathbf {P} ^{(i)}\mathbf {H} ^{\textsf {T}}\left[\mathbf {H} \mathbf {P} \mathbf {H} ^{\textsf {T}}+\mathbf {R} \right]^{-1}}
та
P ( i ) = P [ ( F − K H ) T ] i {\displaystyle \mathbf {P} ^{(i)}=\mathbf {P} \left[\left(\mathbf {F} -\mathbf {K} \mathbf {H} \right)^{\textsf {T}}\right]^{i}}
де P {\displaystyle \mathbf {P} } та K {\displaystyle \mathbf {K} }  — відповідно коваріація похибки передбачення та передавальні коефіцієнти звичайного фільтра Калмана (тобто P t ∣ t − 1 {\displaystyle \mathbf {P} _{t\mid t-1}} ).

Якщо коваріацію похибки оцінювання визначено так, що

P i := E [ ( x t − i − x ^ t − i ∣ t ) ∗ ( x t − i − x ^ t − i ∣ t ) ∣ z 1 … z t ] , {\displaystyle \mathbf {P} _{i}:=E\left[\left(\mathbf {x} _{t-i}-{\hat {\mathbf {x} }}_{t-i\mid t}\right)^{*}\left(\mathbf {x} _{t-i}-{\hat {\mathbf {x} }}_{t-i\mid t}\right)\mid z_{1}\ldots z_{t}\right],}

то поліпшення оцінки x t − i {\displaystyle \mathbf {x} _{t-i}} задається як

P − P i = ∑ j = 0 i [ P ( j ) H T ( H P H T + R ) − 1 H ( P ( i ) ) T ] {\displaystyle \mathbf {P} -\mathbf {P} _{i}=\sum _{j=0}^{i}\left[\mathbf {P} ^{(j)}\mathbf {H} ^{\textsf {T}}\left(\mathbf {H} \mathbf {P} \mathbf {H} ^{\textsf {T}}+\mathbf {R} \right)^{-1}\mathbf {H} \left(\mathbf {P} ^{(i)}\right)^{\textsf {T}}\right]}

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

Оптимальний згладжувач із фіксованим інтервалом забезпечує оптимальну оцінку x ^ k ∣ n {\displaystyle {\hat {\mathbf {x} }}_{k\mid n}} ( k < n {\displaystyle k<n} ), використовуючи вимірювання з фіксованого інтервалу з z 1 {\displaystyle \mathbf {z} _{1}} по z n {\displaystyle \mathbf {z} _{n}} . Це також називають «калмановим згладжуванням» (англ. Kalman smoothing). Існує декілька широко вживаних алгоритмів згладжування.

Рауха — Дуна — Стрібел

Згладжувач Рауха — Дуна — Стрібел (РДС, англ. Rauch–Tung–Striebel smoother, RTS) — це ефективний двопрохідний алгоритм згладжування з фіксованим інтервалом.[60]

Поступальний прохід збігається зі звичайним алгоритмом фільтра Калмана. Ці профільтровані апріорні й апостеріорні оцінки стану x ^ k ∣ k − 1 {\displaystyle {\hat {\mathbf {x} }}_{k\mid k-1}} , x ^ k ∣ k {\displaystyle {\hat {\mathbf {x} }}_{k\mid k}} та коваріації P k ∣ k − 1 {\displaystyle \mathbf {P} _{k\mid k-1}} , P k ∣ k {\displaystyle \mathbf {P} _{k\mid k}} зберігають для використання під час зворотного проходу (для ретробачення).

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

x ^ k ∣ n = x ^ k ∣ k + C k ( x ^ k + 1 ∣ n − x ^ k + 1 ∣ k ) P k ∣ n = P k ∣ k + C k ( P k + 1 ∣ n − P k + 1 ∣ k ) C k T {\displaystyle {\begin{aligned}{\hat {\mathbf {x} }}_{k\mid n}&={\hat {\mathbf {x} }}_{k\mid k}+\mathbf {C} _{k}\left({\hat {\mathbf {x} }}_{k+1\mid n}-{\hat {\mathbf {x} }}_{k+1\mid k}\right)\\\mathbf {P} _{k\mid n}&=\mathbf {P} _{k\mid k}+\mathbf {C} _{k}\left(\mathbf {P} _{k+1\mid n}-\mathbf {P} _{k+1\mid k}\right)\mathbf {C} _{k}^{\textsf {T}}\end{aligned}}}

де

C k = P k ∣ k F k + 1 T P k + 1 ∣ k − 1 . {\displaystyle \mathbf {C} _{k}=\mathbf {P} _{k\mid k}\mathbf {F} _{k+1}^{\textsf {T}}\mathbf {P} _{k+1\mid k}^{-1}.}

x k ∣ k {\displaystyle \mathbf {x} _{k\mid k}}  — апостеріорна оцінка стану на такті k {\displaystyle k} , а x k + 1 ∣ k {\displaystyle \mathbf {x} _{k+1\mid k}}  — апріорна оцінка стану на такті k + 1 {\displaystyle k+1} . Такі самі позначення застосовують і до коваріацій.

Видозмінений згладжувач Брайсона — Фрейзера

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

Ці рекурсивні рівняння мають вигляд

Λ ~ k = H k T S k − 1 H k + C ^ k T Λ ^ k C ^ k Λ ^ k − 1 = F k T Λ ~ k F k Λ ^ n = 0 λ ~ k = − H k T S k − 1 y k + C ^ k T λ ^ k λ ^ k − 1 = F k T λ ~ k λ ^ n = 0 {\displaystyle {\begin{aligned}{\tilde {\Lambda }}_{k}&=\mathbf {H} _{k}^{\textsf {T}}\mathbf {S} _{k}^{-1}\mathbf {H} _{k}+{\hat {\mathbf {C} }}_{k}^{\textsf {T}}{\hat {\Lambda }}_{k}{\hat {\mathbf {C} }}_{k}\\{\hat {\Lambda }}_{k-1}&=\mathbf {F} _{k}^{\textsf {T}}{\tilde {\Lambda }}_{k}\mathbf {F} _{k}\\{\hat {\Lambda }}_{n}&=0\\{\tilde {\lambda }}_{k}&=-\mathbf {H} _{k}^{\textsf {T}}\mathbf {S} _{k}^{-1}\mathbf {y} _{k}+{\hat {\mathbf {C} }}_{k}^{\textsf {T}}{\hat {\lambda }}_{k}\\{\hat {\lambda }}_{k-1}&=\mathbf {F} _{k}^{\textsf {T}}{\tilde {\lambda }}_{k}\\{\hat {\lambda }}_{n}&=0\end{aligned}}}

де S k {\displaystyle \mathbf {S} _{k}}  — коваріація залишку, а C ^ k = I − K k H k {\displaystyle {\hat {\mathbf {C} }}_{k}=\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}} . Згладжені стан і коваріацію відтак можливо знайти підставленням до рівнянь

P k ∣ n = P k ∣ k − P k ∣ k Λ ^ k P k ∣ k x k ∣ n = x k ∣ k − P k ∣ k λ ^ k {\displaystyle {\begin{aligned}\mathbf {P} _{k\mid n}&=\mathbf {P} _{k\mid k}-\mathbf {P} _{k\mid k}{\hat {\Lambda }}_{k}\mathbf {P} _{k\mid k}\\\mathbf {x} _{k\mid n}&=\mathbf {x} _{k\mid k}-\mathbf {P} _{k\mid k}{\hat {\lambda }}_{k}\end{aligned}}}

або

P k ∣ n = P k ∣ k − 1 − P k ∣ k − 1 Λ ~ k P k ∣ k − 1 x k ∣ n = x k ∣ k − 1 − P k ∣ k − 1 λ ~ k . {\displaystyle {\begin{aligned}\mathbf {P} _{k\mid n}&=\mathbf {P} _{k\mid k-1}-\mathbf {P} _{k\mid k-1}{\tilde {\Lambda }}_{k}\mathbf {P} _{k\mid k-1}\\\mathbf {x} _{k\mid n}&=\mathbf {x} _{k\mid k-1}-\mathbf {P} _{k\mid k-1}{\tilde {\lambda }}_{k}.\end{aligned}}}

Важливою перевагою ВБФ є те, що він не потребує знаходження обернення коваріаційної матриці. Виведення Бірмана ґрунтується на згладжувачі РДС, який виходить з ґауссовості розподілів в основі. Проте Ґіббз навів виведення ВБФ на основі поняття згладжувача з фіксованою точкою, яке не потребує припущення ґауссовості.[61]

ВБФ можливо також використовувати для перевірки узгодженості залишків фільтра та різниці між значенням стану фільтра після уточнення і згладженим значенням стану, тобто x k ∣ k − x k ∣ n {\displaystyle \mathbf {x} _{k\mid k}-\mathbf {x} _{k\mid n}} .[62]

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

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

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

x ^ k + 1 ∣ k = ( F k − K k H k ) x ^ k ∣ k − 1 + K k z k α k = − S k − 1 2 H k x ^ k ∣ k − 1 + S k − 1 2 z k {\displaystyle {\begin{aligned}{\hat {\mathbf {x} }}_{k+1\mid k}&=(\mathbf {F} _{k}-\mathbf {K} _{k}\mathbf {H} _{k}){\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {K} _{k}\mathbf {z} _{k}\\\alpha _{k}&=-\mathbf {S} _{k}^{-{\frac {1}{2}}}\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {S} _{k}^{-{\frac {1}{2}}}\mathbf {z} _{k}\end{aligned}}}

Наведена вище система відома як обернений множник Вінера — Гопфа. Зворотна рекурсія є спряженою до наведеної вище поступальної системи. Результат зворотного проходу β k {\displaystyle \beta _{k}} можливо обчислити, застосувавши поступальні рівняння до оберненої в часі α k {\displaystyle \alpha _{k}} , а потім обернувши в часі отриманий результат. У разі оцінювання виходу згладжену оцінку задає

y ^ k ∣ N = z k − R k β k {\displaystyle {\hat {\mathbf {y} }}_{k\mid N}=\mathbf {z} _{k}-\mathbf {R} _{k}\beta _{k}}

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

y ^ k ∣ k = z k − R k S k − 1 2 α k {\displaystyle {\hat {\mathbf {y} }}_{k\mid k}=\mathbf {z} _{k}-\mathbf {R} _{k}\mathbf {S} _{k}^{-{\frac {1}{2}}}\alpha _{k}}

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

Неперервний у часі варіант наведеного вище згладжувача описано в [64][65].

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

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

Частотно зважені фільтри Калмана

Піонерські дослідження сприйняття звуків на різних частотах провели у 1930-х роках Флетчер і Мансон.[67] Їхня праця привела до стандартного способу зважування виміряних рівнів звуку в дослідженнях промислового шуму та втрати слуху. Відтоді частотне зважування використовували у проєктуванні фільтрів і регуляторів для керування робочими характеристиками в межах цільових частотних смуг.

Зазвичай для зважування середньої потужності спектральної густини похибки в заданій частотній смузі використовують функцію частотного формування (англ. frequency shaping function). Нехай y − y ^ {\displaystyle \mathbf {y} -{\hat {\mathbf {y} }}} позначає похибку оцінювання виходу, властиву звичайному фільтрові Калмана. Також нехай W {\displaystyle \mathbf {W} } позначає причинну частотно-зважувальну передавальну функцію. Оптимальний розв'язок, який мінімізує дисперсію W ( y − y ^ ) {\displaystyle \mathbf {W} \left(\mathbf {y} -{\hat {\mathbf {y} }}\right)} , постає просто через побудову W − 1 y ^ {\displaystyle \mathbf {W} ^{-1}{\hat {\mathbf {y} }}} .

Побудова W {\displaystyle \mathbf {W} } залишається відкритим питанням. Один зі шляхів просування полягає у визначенні системи, яка породжує похибку оцінювання, та встановленні W {\displaystyle \mathbf {W} } рівною оберненню цієї системи.[68] Цю процедуру можливо ітерувати для отримання покращення середньоквадратичної похибки ціною збільшення порядку фільтра. Таку саму методику можливо застосовувати й до згладжувачів.

Нелінійні фільтри

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

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

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

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

x k = f ( x k − 1 , u k ) + w k z k = h ( x k ) + v k {\displaystyle {\begin{aligned}\mathbf {x} _{k}&=f(\mathbf {x} _{k-1},\mathbf {u} _{k})+\mathbf {w} _{k}\\\mathbf {z} _{k}&=h(\mathbf {x} _{k})+\mathbf {v} _{k}\end{aligned}}}

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

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

Сигма-точковий фільтр Калмана

Коли моделі переходу станів і спостереження — тобто функції передбачення й уточнення f {\displaystyle f} та h {\displaystyle h}  — сильно нелінійні, розширений фільтр Калмана може демонструвати особливо погану роботу.[70][71] Це зумовлено тим, що коваріацію передають через лінеаризування базової нелінійної моделі. Си́гма-то́чковий фільтр Ка́лмана,[72][73][74][75][76][77][78][79] (СФК, англ. unscented Kalman filter, UKF[71], досл. безза́паховий фільтр Ка́лмана[80][81][82][83][84][85][86], також іноді ансцентний фільтр Калмана[87][78][79][калька]) використовує методику детермінованого вибирання вибірки, відому як сигма-точкове перетворення (СП, англ. unscented transformation, UT), для вибору мінімального набору зразків точок (званих сигма-точками) навколо середнього. Ці сигма-точки відтак пропускають через нелінійні функції, з чого формують нові оцінки середнього та коваріації. Отриманий фільтр залежить від того, як обчислюють перетворені статистики СП, і який набір сигма-точок використовують. Слід зауважити, що завжди можливо сконструювати узгодженим чином нові СФК.[88] Для певних систем отриманий СФК оцінює справжні середнє та коваріацію точніше.[89] Це можливо перевіряти за допомогою вибирання Монте-Карло або розкладу апостеріорних статистик у ряд Тейлора. Крім того, ця методика усуває потребу явно обчислювати матриці Якобі, що для складних функцій може саме собою бути задачею складною (тобто потребувати складних похідних за аналітичного виконання або бути обчислювально витратним за чисельного виконання), якщо не неможливою (якщо ці функції не диференційовні).

Сигма-точки

Для випадкового вектора x = ( x 1 , … , x L ) {\displaystyle \mathbf {x} =(x_{1},\dots ,x_{L})} сигма-точками (англ. sigma points) є будь-який набір векторів

{ s 0 , … , s N } = { ( s 0 , 1 s 0 , 2 … s 0 , L ) , … , ( s N , 1 s N , 2 … s N , L ) } {\displaystyle \{\mathbf {s} _{0},\dots ,\mathbf {s} _{N}\}={\bigl \{}{\begin{pmatrix}s_{0,1}&s_{0,2}&\ldots &s_{0,L}\end{pmatrix}},\dots ,{\begin{pmatrix}s_{N,1}&s_{N,2}&\ldots &s_{N,L}\end{pmatrix}}{\bigr \}}}

яким приписано

  • ваги першого порядку W 0 a , … , W N a {\displaystyle W_{0}^{a},\dots ,W_{N}^{a}} , що задовольняють
  1. ∑ j = 0 N W j a = 1 {\displaystyle \sum _{j=0}^{N}W_{j}^{a}=1}
  2. для всіх i = 1 , … , L {\displaystyle i=1,\dots ,L} : E [ x i ] = ∑ j = 0 N W j a s j , i {\displaystyle E[x_{i}]=\sum _{j=0}^{N}W_{j}^{a}s_{j,i}}
  • ваги другого порядку W 0 c , … , W N c {\displaystyle W_{0}^{c},\dots ,W_{N}^{c}} , що задовольняють
  1. ∑ j = 0 N W j c = 1 {\displaystyle \sum _{j=0}^{N}W_{j}^{c}=1}
  2. для всіх пар ( i , l ) ∈ { 1 , … , L } 2 : E [ x i x l ] = ∑ j = 0 N W j c s j , i s j , l {\displaystyle (i,l)\in \{1,\dots ,L\}^{2}:E[x_{i}x_{l}]=\sum _{j=0}^{N}W_{j}^{c}s_{j,i}s_{j,l}} .

Простий вибір сигма-точок і ваг для x k − 1 ∣ k − 1 {\displaystyle \mathbf {x} _{k-1\mid k-1}} в алгоритмі СФК має вигляд

s 0 = x ^ k − 1 ∣ k − 1 − 1 < W 0 a = W 0 c < 1 s j = x ^ k − 1 ∣ k − 1 + L 1 − W 0 A j , j = 1 , … , L s L + j = x ^ k − 1 ∣ k − 1 − L 1 − W 0 A j , j = 1 , … , L W j a = W j c = 1 − W 0 2 L , j = 1 , … , 2 L {\displaystyle {\begin{aligned}\mathbf {s} _{0}&={\hat {\mathbf {x} }}_{k-1\mid k-1}\\-1&<W_{0}^{a}=W_{0}^{c}<1\\\mathbf {s} _{j}&={\hat {\mathbf {x} }}_{k-1\mid k-1}+{\sqrt {\frac {L}{1-W_{0}}}}\mathbf {A} _{j},\quad j=1,\dots ,L\\\mathbf {s} _{L+j}&={\hat {\mathbf {x} }}_{k-1\mid k-1}-{\sqrt {\frac {L}{1-W_{0}}}}\mathbf {A} _{j},\quad j=1,\dots ,L\\W_{j}^{a}&=W_{j}^{c}={\frac {1-W_{0}}{2L}},\quad j=1,\dots ,2L\end{aligned}}}

де x ^ k − 1 ∣ k − 1 {\displaystyle {\hat {\mathbf {x} }}_{k-1\mid k-1}}  — оцінка середнього x k − 1 ∣ k − 1 {\displaystyle \mathbf {x} _{k-1\mid k-1}} . Вектор A j {\displaystyle \mathbf {A} _{j}}  — це j-й стовпець A {\displaystyle \mathbf {A} } , де P k − 1 ∣ k − 1 = A A T {\displaystyle \mathbf {P} _{k-1\mid k-1}=\mathbf {AA} ^{\textsf {T}}} . Зазвичай A {\displaystyle \mathbf {A} } отримують за допомогою розкладу Холецького P k − 1 ∣ k − 1 {\displaystyle \mathbf {P} _{k-1\mid k-1}} . За певної обережності рівняння фільтра можливо виразити так, щоби обчислювати A {\displaystyle \mathbf {A} } безпосередньо, без проміжного обчислення P k − 1 ∣ k − 1 {\displaystyle \mathbf {P} _{k-1\mid k-1}} . Це називають квадратнокореневим сигма-точковим фільтром Калмана (англ. square-root unscented Kalman filter).[90]

Вагу середнього значення, W 0 {\displaystyle W_{0}} , можливо обирати довільно.

Інша поширена параметризація (яка узагальнює наведену вище) має вигляд

s 0 = x ^ k − 1 ∣ k − 1 W 0 a = α 2 κ − L α 2 κ W 0 c = W 0 a + 1 − α 2 + β s j = x ^ k − 1 ∣ k − 1 + α κ A j , j = 1 , … , L s L + j = x ^ k − 1 ∣ k − 1 − α κ A j , j = 1 , … , L W j a = W j c = 1 2 α 2 κ , j = 1 , … , 2 L . {\displaystyle {\begin{aligned}\mathbf {s} _{0}&={\hat {\mathbf {x} }}_{k-1\mid k-1}\\W_{0}^{a}&={\frac {\alpha ^{2}\kappa -L}{\alpha ^{2}\kappa }}\\W_{0}^{c}&=W_{0}^{a}+1-\alpha ^{2}+\beta \\\mathbf {s} _{j}&={\hat {\mathbf {x} }}_{k-1\mid k-1}+\alpha {\sqrt {\kappa }}\mathbf {A} _{j},\quad j=1,\dots ,L\\\mathbf {s} _{L+j}&={\hat {\mathbf {x} }}_{k-1\mid k-1}-\alpha {\sqrt {\kappa }}\mathbf {A} _{j},\quad j=1,\dots ,L\\W_{j}^{a}&=W_{j}^{c}={\frac {1}{2\alpha ^{2}\kappa }},\quad j=1,\dots ,2L.\end{aligned}}}

α {\displaystyle \alpha } та κ {\displaystyle \kappa } керують розкидом сигма-точок. β {\displaystyle \beta } пов'язаний з розподілом x {\displaystyle x} . Зауважте, що це надмірна параметризація в тому сенсі, що будь-який з параметрів α {\displaystyle \alpha } , β {\displaystyle \beta } та κ {\displaystyle \kappa } можливо обрати довільно.

Відповідні значення залежать від конкретної задачі, але типовою рекомендацією є α = 1 {\displaystyle \alpha =1} , β = 0 {\displaystyle \beta =0} та κ ≈ 3 L / 2 {\displaystyle \kappa \approx 3L/2} .[джерело?] Якщо справжній розподіл x {\displaystyle x} ґауссів, то β = 2 {\displaystyle \beta =2} оптимальне.[91]

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

Як і з РФК, передбачення СФК можливо використовувати незалежно від уточнення СФК, у поєднанні з лінійним уточненням (або ж уточненням РФК), і навпаки.

Маючи оцінки середнього та коваріації, x ^ k − 1 ∣ k − 1 {\displaystyle {\hat {\mathbf {x} }}_{k-1\mid k-1}} та P k − 1 ∣ k − 1 {\displaystyle \mathbf {P} _{k-1\mid k-1}} , отримують N = 2 L + 1 {\displaystyle N=2L+1} сигма-точок, як описано в розділі вище. Ці сигма-точки пропускають через функцію переходу f.

x j = f ( s j ) j = 0 , … , 2 L {\displaystyle \mathbf {x} _{j}=f\left(\mathbf {s} _{j}\right)\quad j=0,\dots ,2L} .

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

x ^ k ∣ k − 1 = ∑ j = 0 2 L W j a x j P k ∣ k − 1 = ∑ j = 0 2 L W j c ( x j − x ^ k ∣ k − 1 ) ( x j − x ^ k ∣ k − 1 ) T + Q k {\displaystyle {\begin{aligned}{\hat {\mathbf {x} }}_{k\mid k-1}&=\sum _{j=0}^{2L}W_{j}^{a}\mathbf {x} _{j}\\\mathbf {P} _{k\mid k-1}&=\sum _{j=0}^{2L}W_{j}^{c}\left(\mathbf {x} _{j}-{\hat {\mathbf {x} }}_{k\mid k-1}\right)\left(\mathbf {x} _{j}-{\hat {\mathbf {x} }}_{k\mid k-1}\right)^{\textsf {T}}+\mathbf {Q} _{k}\end{aligned}}}

де W j a {\displaystyle W_{j}^{a}}  — ваги першого порядку початкових сигма-точок, а W j c {\displaystyle W_{j}^{c}}  — ваги другого порядку. Матриця Q k {\displaystyle \mathbf {Q} _{k}}  — це коваріація шуму переходу, w k {\displaystyle \mathbf {w} _{k}} .

Уточнення

Маючи передбачені оцінки x ^ k ∣ k − 1 {\displaystyle {\hat {\mathbf {x} }}_{k\mid k-1}} та P k ∣ k − 1 {\displaystyle \mathbf {P} _{k\mid k-1}} , обчислюють новий набір із N = 2 L + 1 {\displaystyle N=2L+1} сигма-точок s 0 , … , s 2 L {\displaystyle \mathbf {s} _{0},\dots ,\mathbf {s} _{2L}} із відповідними вагами першого порядку W 0 a , … W 2 L a {\displaystyle W_{0}^{a},\dots W_{2L}^{a}} та вагами другого порядку W 0 c , … , W 2 L c {\displaystyle W_{0}^{c},\dots ,W_{2L}^{c}} .[92] Ці сигма-точки перетворюють функцією вимірювання h {\displaystyle h} .

z j = h ( s j ) , j = 0 , 1 , … , 2 L {\displaystyle \mathbf {z} _{j}=h(\mathbf {s} _{j}),\,\,j=0,1,\dots ,2L} .

Потім обчислюють емпіричні середнє та коваріацію перетворених точок.

z ^ = ∑ j = 0 2 L W j a z j S ^ k = ∑ j = 0 2 L W j c ( z j − z ^ ) ( z j − z ^ ) T + R k {\displaystyle {\begin{aligned}{\hat {\mathbf {z} }}&=\sum _{j=0}^{2L}W_{j}^{a}\mathbf {z} _{j}\\[6pt]{\hat {\mathbf {S} }}_{k}&=\sum _{j=0}^{2L}W_{j}^{c}(\mathbf {z} _{j}-{\hat {\mathbf {z} }})(\mathbf {z} _{j}-{\hat {\mathbf {z} }})^{\textsf {T}}+\mathbf {R_{k}} \end{aligned}}}

де R k {\displaystyle \mathbf {R} _{k}}  — коваріаційна матриця шуму спостереження, v k {\displaystyle \mathbf {v} _{k}} . Додатково потрібна також матриця взаємної коваріації

C x z = ∑ j = 0 2 L W j c ( x j − x ^ k | k − 1 ) ( z j − z ^ ) T . {\displaystyle {\begin{aligned}\mathbf {C_{xz}} &=\sum _{j=0}^{2L}W_{j}^{c}(\mathbf {x} _{j}-{\hat {\mathbf {x} }}_{k|k-1})(\mathbf {z} _{j}-{\hat {\mathbf {z} }})^{\textsf {T}}.\end{aligned}}}

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

K k = C x z S ^ k − 1 . {\displaystyle {\begin{aligned}\mathbf {K} _{k}=\mathbf {C_{xz}} {\hat {\mathbf {S} }}_{k}^{-1}.\end{aligned}}}

Уточнені оцінки середнього та коваріації мають вигляд

x ^ k ∣ k = x ^ k | k − 1 + K k ( z k − z ^ ) P k ∣ k = P k ∣ k − 1 − K k S ^ k K k T . {\displaystyle {\begin{aligned}{\hat {\mathbf {x} }}_{k\mid k}&={\hat {\mathbf {x} }}_{k|k-1}+\mathbf {K} _{k}(\mathbf {z} _{k}-{\hat {\mathbf {z} }})\\\mathbf {P} _{k\mid k}&=\mathbf {P} _{k\mid k-1}-\mathbf {K} _{k}{\hat {\mathbf {S} }}_{k}\mathbf {K} _{k}^{\textsf {T}}.\end{aligned}}}

Розрізнювальний фільтр Калмана

Коли модель спостереження p ( z k ∣ x k ) {\displaystyle p(\mathbf {z} _{k}\mid \mathbf {x} _{k})} сильно нелінійна та/або неґауссова, може виявитися вигіднішим застосовувати правило Баєса й оцінювати

p ( z k ∣ x k ) ≈ p ( x k ∣ z k ) p ( x k ) {\displaystyle p(\mathbf {z} _{k}\mid \mathbf {x} _{k})\approx {\frac {p(\mathbf {x} _{k}\mid \mathbf {z} _{k})}{p(\mathbf {x} _{k})}}}

де p ( x k ∣ z k ) ≈ N ( g ( z k ) , Q ( z k ) ) {\displaystyle p(\mathbf {x} _{k}\mid \mathbf {z} _{k})\approx {\mathcal {N}}(g(\mathbf {z} _{k}),Q(\mathbf {z} _{k}))} для нелінійних функцій g , Q {\displaystyle g,Q} . Це замінює породжувальне визначення стандартного фільтра Калмана розрізнювальною моделлю латентних станів за заданих спостережень, даючи розрізнювальний фільтр Калмана (англ. discriminative Kalman filter).

За стаціонарної моделі стану

p ( x 1 ) = N ( 0 , T ) , p ( x k ∣ x k − 1 ) = N ( F x k − 1 , C ) , {\displaystyle {\begin{aligned}p(\mathbf {x} _{1})&={\mathcal {N}}(0,\mathbf {T} ),\\p(\mathbf {x} _{k}\mid \mathbf {x} _{k-1})&={\mathcal {N}}(\mathbf {F} \mathbf {x} _{k-1},\mathbf {C} ),\end{aligned}}}

де T = F T F ⊺ + C {\displaystyle \mathbf {T} =\mathbf {F} \mathbf {T} \mathbf {F} ^{\intercal }+\mathbf {C} } , якщо

p ( x k ∣ z 1 : k ) ≈ N ( x ^ k | k − 1 , P k | k − 1 ) , {\displaystyle p(\mathbf {x} _{k}\mid \mathbf {z} _{1:k})\approx {\mathcal {N}}({\hat {\mathbf {x} }}_{k|k-1},\mathbf {P} _{k|k-1}),}

маючи нове спостереження z k {\displaystyle \mathbf {z} _{k}} , отримуємо[93]

p ( x k + 1 ∣ z 1 : k + 1 ) ≈ N ( x ^ k + 1 | k , P k + 1 | k ) {\displaystyle p(\mathbf {x} _{k+1}\mid \mathbf {z} _{1:k+1})\approx {\mathcal {N}}({\hat {\mathbf {x} }}_{k+1|k},\mathbf {P} _{k+1|k})}

де

M k + 1 = F P k | k − 1 F ⊺ + C , P k + 1 | k = ( M k + 1 − 1 + Q ( z k ) − 1 − T − 1 ) − 1 , x ^ k + 1 | k = P k + 1 | k ( M k + 1 − 1 F x ^ k | k − 1 + P k + 1 | k − 1 g ( z k ) ) . {\displaystyle {\begin{aligned}\mathbf {M} _{k+1}&=\mathbf {F} \mathbf {P} _{k|k-1}\mathbf {F} ^{\intercal }+\mathbf {C} ,\\\mathbf {P} _{k+1|k}&=(\mathbf {M} _{k+1}^{-1}+Q(\mathbf {z} _{k})^{-1}-\mathbf {T} ^{-1})^{-1},\\{\hat {\mathbf {x} }}_{k+1|k}&=\mathbf {P} _{k+1|k}(\mathbf {M} _{k+1}^{-1}\mathbf {F} {\hat {\mathbf {x} }}_{k|k-1}+\mathbf {P} _{k+1|k}^{-1}g(\mathbf {z} _{k})).\end{aligned}}}

Зауважте, що це наближення вимагає, щоби Q ( z k ) − 1 − T − 1 {\displaystyle Q(\mathbf {z} _{k})^{-1}-\mathbf {T} ^{-1}} була додатно визначеною; у випадку, коли це не так, натомість використовують

P k + 1 | k = ( M k + 1 − 1 + Q ( z k ) − 1 ) − 1 {\displaystyle \mathbf {P} _{k+1|k}=(\mathbf {M} _{k+1}^{-1}+Q(\mathbf {z} _{k})^{-1})^{-1}}

Такий підхід виявляється особливо корисним, коли розмірність спостережень набагато більша за розмірність латентних станів,[94] і його можливо використовувати для побудови фільтрів, особливо стійких до нестаціонарностей у моделі спостереження.[95]

Адаптивний фільтр Калмана

Адаптивні фільтри Калмана (англ. adaptive Kalman filters) уможливлюють пристосування до динаміки процесу, не змодельованої в моделі процесу F ( t ) {\displaystyle \mathbf {F} (t)} , що трапляється, наприклад, у контексті маневрової цілі, коли для відстежування застосовують фільтр Калмана сталої швидкості (зниженого порядку).[96]

Фільтр Калмана — Б'юсі

Фільтрування Калмана — Б'юсі (англ. Kalman–Bucy filtering, назване на честь Річарда Сноудена Б'юсі) — це версія калманового фільтрування для неперервного часу.[97][98]

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

d d t x ( t ) = F ( t ) x ( t ) + B ( t ) u ( t ) + w ( t ) z ( t ) = H ( t ) x ( t ) + v ( t ) {\displaystyle {\begin{aligned}{\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)\end{aligned}}}

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

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

d d t x ^ ( t ) = F ( t ) x ^ ( t ) + B ( t ) u ( t ) + K ( t ) ( z ( t ) − H ( t ) x ^ ( t ) ) d d t P ( t ) = F ( t ) P ( t ) + P ( t ) F T ( t ) + Q ( t ) − K ( t ) R ( t ) K T ( t ) {\displaystyle {\begin{aligned}{\frac {d}{dt}}{\hat {\mathbf {x} }}(t)&=\mathbf {F} (t){\hat {\mathbf {x} }}(t)+\mathbf {B} (t)\mathbf {u} (t)+\mathbf {K} (t)\left(\mathbf {z} (t)-\mathbf {H} (t){\hat {\mathbf {x} }}(t)\right)\\{\frac {d}{dt}}\mathbf {P} (t)&=\mathbf {F} (t)\mathbf {P} (t)+\mathbf {P} (t)\mathbf {F} ^{\textsf {T}}(t)+\mathbf {Q} (t)-\mathbf {K} (t)\mathbf {R} (t)\mathbf {K} ^{\textsf {T}}(t)\end{aligned}}}

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

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

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

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

Друге диференціальне рівняння, для коваріації, є прикладом рівняння Ріккаті. До нелінійних узагальнень фільтрів Калмана — Б'юсі належить неперервночасовий розширений фільтр Калмана (англ. continuous time extended Kalman filter).

Гібридний фільтр Калмана

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

x ˙ ( t ) = F ( t ) x ( t ) + B ( t ) u ( t ) + w ( t ) , w ( t ) ∼ N ( 0 , Q ( t ) ) z k = H k x k + v k , v k ∼ N ( 0 , R k ) {\displaystyle {\begin{aligned}{\dot {\mathbf {x} }}(t)&=\mathbf {F} (t)\mathbf {x} (t)+\mathbf {B} (t)\mathbf {u} (t)+\mathbf {w} (t),&\mathbf {w} (t)&\sim N\left(\mathbf {0} ,\mathbf {Q} (t)\right)\\\mathbf {z} _{k}&=\mathbf {H} _{k}\mathbf {x} _{k}+\mathbf {v} _{k},&\mathbf {v} _{k}&\sim N(\mathbf {0} ,\mathbf {R} _{k})\end{aligned}}}

де

x k = x ( t k ) {\displaystyle \mathbf {x} _{k}=\mathbf {x} (t_{k})} .

Початковий стан

x ^ 0 ∣ 0 = E [ x ( t 0 ) ] , P 0 ∣ 0 = Var ⁡ [ x ( t 0 ) ] {\displaystyle {\hat {\mathbf {x} }}_{0\mid 0}=E\left[\mathbf {x} (t_{0})\right],\mathbf {P} _{0\mid 0}=\operatorname {Var} \left[\mathbf {x} \left(t_{0}\right)\right]}

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

x ^ ˙ ( t ) = F ( t ) x ^ ( t ) + B ( t ) u ( t ) , with  x ^ ( t k − 1 ) = x ^ k − 1 ∣ k − 1 ⇒ x ^ k ∣ k − 1 = x ^ ( t k ) P ˙ ( t ) = F ( t ) P ( t ) + P ( t ) F ( t ) T + Q ( t ) , with  P ( t k − 1 ) = P k − 1 ∣ k − 1 ⇒ P k ∣ k − 1 = P ( t k ) {\displaystyle {\begin{aligned}{\dot {\hat {\mathbf {x} }}}(t)&=\mathbf {F} (t){\hat {\mathbf {x} }}(t)+\mathbf {B} (t)\mathbf {u} (t){\text{, with }}{\hat {\mathbf {x} }}\left(t_{k-1}\right)={\hat {\mathbf {x} }}_{k-1\mid k-1}\\\Rightarrow {\hat {\mathbf {x} }}_{k\mid k-1}&={\hat {\mathbf {x} }}\left(t_{k}\right)\\{\dot {\mathbf {P} }}(t)&=\mathbf {F} (t)\mathbf {P} (t)+\mathbf {P} (t)\mathbf {F} (t)^{\textsf {T}}+\mathbf {Q} (t){\text{, with }}\mathbf {P} \left(t_{k-1}\right)=\mathbf {P} _{k-1\mid k-1}\\\Rightarrow \mathbf {P} _{k\mid k-1}&=\mathbf {P} \left(t_{k}\right)\end{aligned}}}

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

У випадку лінійних стаціонарних систем неперервночасову динаміку можливо точно дискретувати до дискретночасової системи за допомогою матричних експонент.

Уточнення

K k = P k ∣ k − 1 H k T ( H k P k ∣ k − 1 H k T + R k ) − 1 x ^ k ∣ k = x ^ k ∣ k − 1 + K k ( z k − H k x ^ k ∣ k − 1 ) P k ∣ k = ( I − K k H k ) P k ∣ k − 1 {\displaystyle {\begin{aligned}\mathbf {K} _{k}&=\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\left(\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}+\mathbf {R} _{k}\right)^{-1}\\{\hat {\mathbf {x} }}_{k\mid k}&={\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {K} _{k}\left(\mathbf {z} _{k}-\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1}\right)\\\mathbf {P} _{k\mid k}&=\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\mathbf {P} _{k\mid k-1}\end{aligned}}}

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

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

Традиційний фільтр Калмана також застосовували для відновлення розріджених, можливо динамічних сигналів із зашумлених спостережень. У новіших працях[100][101][102] для послідовного оцінювання розрідженого стану у властиво низьковимірних системах використовують поняття з теорії стисненого сприйняття/дискретування, як-от властивість обмеженої ізометрії та пов'язані з нею аргументи ймовірнісного відновлення.

Зв'язок із ґауссовими процесами

Оскільки лінійні ґауссові моделі простору станів ведуть до ґауссових процесів, фільтри Калмана можливо розглядати як послідовні розв'язувачі регресії ґауссових процесів.[103]

Застосування

Див. також

Примітки

  1. ↑ Lacey, Tony. Chapter 11 Tutorial: The Kalman Filter (PDF) (англ.).
  2. ↑ Paul Zarchan; Howard Musoff (2000). Fundamentals of Kalman Filtering: A Practical Approach (англ.). American Institute of Aeronautics and Astronautics, Incorporated. ISBN 978-1-56347-455-2.
  3. ↑ Lora-Millan, Julio S.; Hidalgo, Andres F.; Rocon, Eduardo (2021). An IMUs-Based Extended Kalman Filter to Estimate Gait Lower Limb Sagittal Kinematics for the Control of Wearable Robotic Devices. IEEE Access (англ.). 9: 144540—144554. Bibcode:2021IEEEA...9n4540L. doi:10.1109/ACCESS.2021.3122160. hdl:10261/254265. ISSN 2169-3536. S2CID 239938971.
  4. ↑ Kalita, Diana; Lyakhov, Pavel (грудень 2022). Moving Object Detection Based on a Combination of Kalman Filter and Median Filtering. Big Data and Cognitive Computing (англ.). 6 (4): 142. doi:10.3390/bdcc6040142. ISSN 2504-2289.
  5. ↑ Ghysels, Eric; Marcellino, Massimiliano (2018). Applied Economic Forecasting using Time Series Methods (англ.). New York, NY: Oxford University Press. с. 419. ISBN 978-0-19-062201-5. OCLC 1010658777.
  6. ↑ Wolpert, Daniel; Ghahramani, Zoubin (2000). Computational principles of movement neuroscience. Nature Neuroscience (англ.). 3: 1212—7. doi:10.1038/81497. PMID 11127840. S2CID 736756.
  7. ↑ Kalman, R. E. (1960). A New Approach to Linear Filtering and Prediction Problems. Journal of Basic Engineering (англ.). 82: 35—45. doi:10.1115/1.3662552. S2CID 1242324.
  8. ↑ Humpherys, Jeffrey (2012). A Fresh Look at the Kalman Filter. SIAM Review (англ.). 54 (4): 801—823. Bibcode:2012SIAMR..54..801H. doi:10.1137/100799666.
  9. ↑ Uhlmann, Jeffrey; Julier, Simon (2022). Gaussianity and the Kalman Filter: A Simple Yet Complicated Relationship (PDF). Journal de Ciencia e Ingeniería (англ.). 14 (1): 21—26. doi:10.46571/JCI.2022.1.2. S2CID 251143915. У праці Ульмана та Джульєра наведено близько десятка прикладів цієї хибної думки в літературі.
  10. ↑ Li, Wangyan; Wang, Zidong; Wei, Guoliang; Ma, Lifeng; Hu, Jun; Ding, Derui (2015). A Survey on Multisensor Fusion and Consensus Filtering for Sensor Networks. Discrete Dynamics in Nature and Society (англ.). 2015: 1—12. doi:10.1155/2015/683701. ISSN 1026-0226.
  11. ↑ Li, Wangyan; Wang, Zidong; Ho, Daniel W. C.; Wei, Guoliang (2019). On Boundedness of Error Covariances for Kalman Consensus Filtering Problems. IEEE Transactions on Automatic Control (англ.). 65 (6): 2654—2661. doi:10.1109/TAC.2019.2942826. ISSN 0018-9286. S2CID 204196474.
  12. ↑ Lauritzen, S. L. (грудень 1981). Time series analysis in 1880. A discussion of contributions made by T.N. Thiele. International Statistical Review (англ.). 49 (3): 319—331. doi:10.2307/1402616. JSTOR 1402616. Він виводить рекурсивну процедуру для оцінювання складової регресії та передбачення броунівського руху. Нині ця процедура відома як калманове фільтрування.
  13. ↑ Lauritzen, S. L. (2002). Thiele: Pioneer in Statistics (англ.). New York: Oxford University Press. с. 41. ISBN 978-0-19-850972-1. Він розв'язує задачу оцінювання коефіцієнтів регресії та передбачення значень броунівського руху методом найменших квадратів і наводить елегантну рекурсивну процедуру виконання обчислень. Нині ця процедура відома як калманове фільтрування.
  14. ↑ Grewal, Mohinder S.; Andrews, Angus P. (2015). 1. Kalman filtering: theory and practice using MATLAB (англ.) (вид. 4th). Hoboken, New Jersey: Wiley. с. 16—18. ISBN 978-1-118-98498-7.
  15. ↑ Mohinder S. Grewal and Angus P. Andrews (PDF) (англ.). Архів оригіналу (PDF) за 7 березня 2016. Процитовано 23 квітня 2015.
  16. ↑ Jerrold H. Suddath; Robert H. Kidd; Arnold G. Reinhold (серпень 1967). A Linearized Error Analysis Of Onboard Primary Navigation Systems For The Apollo Lunar Module, NASA TN D-4027 (PDF) (NASA Technical Note) (англ.). National Aeronautics and Space Administration.
  17. ↑ Стратонович, Р.Л. (1959). Оптимальные нелинейные системы, осуществляющие выделение сигнала с постоянными параметрами из шума [Оптимальні нелінійні системи, які здійснюють виділення сигналу зі сталими параметрами з шуму] (PDF). Радиофизика. Известия высших учебных заведений (рос.). 2 (6): 892—901.
  18. ↑ Стратонович, Р.Л. (1959). К теории оптимальной нелинейной фильтрации случайных функций [До теорії оптимального нелінійного фільтрування випадкових функцій] (PDF). Теория вероятностей и её применения (рос.). 4: 223—225.
  19. ↑ Стратонович, Р.Л. (1960). Применение теории марковских процессов для оптимальной фильтрации сигналов [Застосування теорії марковських процесів до оптимального фільтрування сигналів]. Радиотехника и электроника (рос.). 5 (11): 1—19.
  20. ↑ Стратонович, Р.Л. (1960). Условные процессы Маркова (PDF). Теория вероятностей и ее применения (рос.). 5 (2): 156—178. doi:10.1137/1105015.
  21. ↑ Степанов, О.А. (2010). Фильтр Калмана. История и современность. (К 80-летию Рудольфа Эмиля Калмана) [Фільтр Калмана. Історія і сучасність. (До 80-річчя Рудольфа Еміля Калмана)] (PDF). Гироскопия и навигация (рос.). 2 (69): 107—121.
  22. ↑ Stepanov, O. A. (15 травня 2011). Kalman filtering: Past and present. An outlook from Russia. (On the occasion of the 80th birthday of Rudolf Emil Kalman) (PDF). Gyroscopy and Navigation (англ.). 2 (2): 105. Bibcode:2011GyNav...2...99S. doi:10.1134/S2075108711020076. S2CID 53120402.
  23. ↑ Gaylor, David; Lightsey, E. Glenn (2003). GPS/INS Kalman Filter Design for Spacecraft Operating in the Proximity of International Space Station. AIAA Guidance, Navigation, and Control Conference and Exhibit (англ.). doi:10.2514/6.2003-5445. ISBN 978-1-62410-090-1.
  24. ↑ Хлевной, О.В.; Райта, Д.А.; Бурак, Н.Є.; Борзов, Ю.О. (2022). Визначення параметрів руху евакуаційних потоків із застосуванням штучних нейронних мереж. Вісник Львівського державного університету безпеки життєдіяльності (укр.). 26: 40—46. doi:10.32447/20784643.26.2022.05. ISSN 2078-4643.
  25. ↑ Ingvar Strid; Karl Walentin (квітень 2009). Block Kalman Filtering for Large-Scale DSGE Models. Computational Economics (англ.). 33 (3): 277—304. CiteSeerX 10.1.1.232.3790. doi:10.1007/s10614-008-9160-4. hdl:10419/81929. S2CID 3042206.
  26. ↑ Martin Møller Andreasen (2008). Non-linear DSGE Models, The Central Difference Kalman Filter, and The Mean Shifted Particle Filter (англ.).
  27. ↑ а б Roweis, S; Ghahramani, Z (1999). A unifying review of linear gaussian models (PDF). Neural Computation (англ.). 11 (2): 305—45. Bibcode:1999NeCom..11..305R. doi:10.1162/089976699300016674. PMID 9950734. S2CID 2590898.
  28. ↑ Hamilton, J. (1994). Chapter 13, 'The Kalman Filter'. Time Series Analysis (англ.). Princeton University Press. ISBN 0-691-04289-6.
  29. ↑ Ishihara, J.Y.; Terra, M.H.; Campos, J.C.T. (2006). Robust Kalman Filter for Descriptor Systems. IEEE Transactions on Automatic Control (англ.). 51 (8): 1354. Bibcode:2006ITAC...51.1354I. doi:10.1109/TAC.2006.878741. S2CID 12741796.
  30. ↑ Terra, Marco H.; Cerri, Joao P.; Ishihara, Joao Y. (2014). Optimal Robust Linear Quadratic Regulator for Systems Subject to Uncertainties. IEEE Transactions on Automatic Control (англ.). 59 (9): 2586—2591. Bibcode:2014ITAC...59.2586T. doi:10.1109/TAC.2014.2309282. S2CID 8810105.
  31. ↑ Kelly, Alonzo (1994). A 3D state space formulation of a navigation Kalman filter for autonomous vehicles (PDF). DTIC Document (англ.): 13. Архів (PDF) оригіналу за 30 грудня 2014. Виправлена версія 2006 року [Архівовано 2017-01-10 у Wayback Machine.]
  32. ↑ Reid, Ian; Term, Hilary. Estimation II (PDF). www.robots.ox.ac.uk (англ.). Oxford University. Процитовано 6 серпня 2014.
  33. ↑ Rajamani, Murali (жовтень 2007). Data-based Techniques to Improve State Estimation in Model Predictive Control (PDF) (PhD Thesis) (англ.). University of Wisconsin–Madison. Архів оригіналу (PDF) за 4 березня 2016. Процитовано 4 квітня 2011.
  34. ↑ Rajamani, Murali R.; Rawlings, James B. (2009). Estimation of the disturbance structure from data using semidefinite programming and optimal weighting. Automatica (англ.). 45 (1): 142—148. Bibcode:2009Autom..45..142R. doi:10.1016/j.automatica.2008.05.032. S2CID 5699674.
  35. ↑ Autocovariance Least-Squares Toolbox (англ.). Jbrwww.che.wisc.edu. Процитовано 18 серпня 2021.
  36. ↑ Bania, P.; Baranowski, J. (12 грудня 2016). Field Kalman Filter and its approximation. IEEE 55th Conference on Decision and Control (CDC) (англ.). Las Vegas, NV, USA: IEEE. с. 2875—2880.
  37. ↑ а б Greenberg, Ido; Yannay, Netanel; Mannor, Shie (15 грудня 2023). Optimization or Architecture: How to Hack Kalman Filtering. Advances in Neural Information Processing Systems (англ.). 36: 50482—50505. arXiv:2310.00675.
  38. ↑ Bar-Shalom, Yaakov; Li, X.-Rong; Kirubarajan, Thiagalingam (2001). Estimation with Applications to Tracking and Navigation (англ.). New York, USA: John Wiley & Sons, Inc. с. 319 ff. doi:10.1002/0471221279. ISBN 0-471-41655-X.
  39. ↑ Три перевірки оптимальності з числовими прикладами описано в Peter, Matisko (2012). Optimality Tests and Adaptive Kalman Filter. 16th IFAC Symposium on System Identification. IFAC Proceedings Volumes (англ.). Т. 45. с. 1523—1528. doi:10.3182/20120711-3-BE-2027.00011. ISBN 978-3-902823-06-9.
  40. ↑ Spall, James C. (1995). The Kantorovich inequality for error analysis of the Kalman filter with unknown noise distributions. Automatica (англ.). 31 (10): 1513—1517. doi:10.1016/0005-1098(95)00069-9.
  41. ↑ Maryak, J.L.; Spall, J.C.; Heydon, B.D. (2004). Use of the Kalman Filter for Inference in State-Space Models with Unknown Noise Distributions. IEEE Transactions on Automatic Control (англ.). 49 (1): 87—90. Bibcode:2004ITAC...49...87M. doi:10.1109/TAC.2003.821415. S2CID 21143516.
  42. ↑ а б Walrand, Jean; Dimakis, Antonis (серпень 2006). Random processes in Systems -- Lecture Notes (PDF) (англ.). с. 69—70. Архів оригіналу (PDF) за 7 травня 2019. Процитовано 7 травня 2019.
  43. ↑ Kalman, Rudolf Emil; Englar, T. S.; Bucy, Richard S. (1962). Fundamental study of adaptive control systems (Звіт) (англ.). Clearinghouse, US Department of Commerce. doi:10.21236/AD0282873. ASD-TR-61-27.
  44. ↑ Herbst, Daniel C. (2024). Exponential Convergence Rate and Oscillatory Modes of the Asymptotic Kalman Filter Covariance. IEEE Access (англ.). 12: 188137—188153. Bibcode:2024IEEEA..12r8137H. doi:10.1109/ACCESS.2024.3508578. ISSN 2169-3536.
  45. ↑ Sant, Donald T. (1977). Generalized least squares applied to time varying parameter models (PDF). Annals of Economic and Social Measurement (англ.). NBER. 6 (3): 301—314.
  46. ↑ Anderson, Brian D. O.; Moore, John B. (1979). Optimal Filtering (англ.). New York: Prentice Hall. с. 129–133. ISBN 978-0-13-638122-8.
  47. ↑ Jingyang Lu (2014). False information injection attack on dynamic state estimation in multi-sensor systems. Fusion (англ.). ISBN 978-8-4901-2355-3.
  48. ↑ а б Thornton, Catherine L. (15 жовтня 1976). Triangular Covariance Factorizations for Kalman Filtering (PhD) (англ.). NASA. NASA Technical Memorandum 33-798.
  49. ↑ а б в Bierman, G.J. (1977). Factorization Methods for Discrete Sequential Estimation. Factorization Methods for Discrete Sequential Estimation (англ.). Bibcode:1977fmds.book.....B.
  50. ↑ а б Bar-Shalom, Yaakov; Li, X. Rong; Kirubarajan, Thiagalingam (липень 2001). Estimation with Applications to Tracking and Navigation (англ.). New York: John Wiley & Sons. с. 308–317. ISBN 978-0-471-41655-5.
  51. ↑ Golub, Gene H.; Van Loan, Charles F. (1996). Matrix Computations. Johns Hopkins Studies in the Mathematical Sciences (англ.) (вид. Third). Baltimore, Maryland: Johns Hopkins University. с. 139. ISBN 978-0-8018-5414-9.
  52. ↑ Higham, Nicholas J. (2002). Accuracy and Stability of Numerical Algorithms (англ.) (вид. Second). Philadelphia, PA: Society for Industrial and Applied Mathematics. с. 680. ISBN 978-0-89871-521-7.
  53. ↑ Särkkä, S.; Ángel F. García-Fernández (2021). Temporal Parallelization of Bayesian Smoothers. IEEE Transactions on Automatic Control (англ.). 66 (1): 299—306. arXiv:1905.13002. Bibcode:2021ITAC...66..299S. doi:10.1109/TAC.2020.2976316. S2CID 213695560.
  54. ↑ Parallel Prefix Sum (Scan) with CUDA. developer.nvidia.com/ (англ.). Процитовано 21 лютого 2020. Операція сканування є простим і потужним паралельним примітивом із широким спектром застосувань. У цьому розділі ми пояснили ефективне втілення сканування за допомогою CUDA, яке забезпечує значне прискорення порівняно з послідовним втіленням на швидкому центральному процесорі та паралельним втіленням в OpenGL на тому самому графічному процесорі. З огляду на зростання потужності поширених паралельних процесорів, як-от графічні процесори, ми очікуємо, що значущість паралельних за даними алгоритмів, як-от сканування, зростатиме протягом наступних років.
  55. ↑ Masreliez, C. Johan; Martin, R D (1977). Robust Bayesian estimation for the linear model and robustifying the Kalman filter. IEEE Transactions on Automatic Control (англ.). 22 (3): 361—371. Bibcode:1977ITAC...22..361M. doi:10.1109/TAC.1977.1101538.
  56. ↑ Lütkepohl, Helmut (1991). Introduction to Multiple Time Series Analysis (англ.). Heidelberg: Springer-Verlag Berlin. с. 435.
  57. ↑ Gustafsson, Fredrik (2018). Statistical sensor fusion (англ.) (вид. Third). Lund: Studentlitteratur. с. 160—162. ISBN 978-91-44-12724-8.
  58. ↑ а б Gabriel T. Terejanu (4 серпня 2012). Discrete Kalman Filter Tutorial (PDF) (англ.). Архів оригіналу (PDF) за 17 серпня 2020. Процитовано 13 квітня 2016.
  59. ↑ Anderson, Brian D. O.; Moore, John B. (1979). Optimal Filtering (англ.). Englewood Cliffs, NJ: Prentice Hall, Inc. с. 176–190. ISBN 978-0-13-638122-8.
  60. ↑ Rauch, H.E.; Tung, F.; Striebel, C. T. (серпень 1965). Maximum likelihood estimates of linear dynamic systems. AIAA Journal (англ.). 3 (8): 1445—1450. Bibcode:1965AIAAJ...3.1445R. doi:10.2514/3.3166.
  61. ↑ Gibbs, Richard G. (лютий 2011). Square Root Modified Bryson–Frazier Smoother. IEEE Transactions on Automatic Control (англ.). 56 (2): 452—456. Bibcode:2011ITAC...56..452G. doi:10.1109/TAC.2010.2089753.
  62. ↑ Gibbs, Richard G. (2013). New Kalman filter and smoother consistency tests. Automatica (англ.). 49 (10): 3141—3144. doi:10.1016/j.automatica.2013.07.013.
  63. ↑ Einicke, G.A. (березень 2006). Optimal and Robust Noncausal Filter Formulations. IEEE Transactions on Signal Processing (англ.). 54 (3): 1069—1077. Bibcode:2006ITSP...54.1069E. doi:10.1109/TSP.2005.863042. S2CID 15376718.
  64. ↑ Einicke, G.A. (квітень 2007). Asymptotic Optimality of the Minimum-Variance Fixed-Interval Smoother. IEEE Transactions on Signal Processing (англ.). 55 (4): 1543—1547. Bibcode:2007ITSP...55.1543E. doi:10.1109/TSP.2006.889402. S2CID 16218530.
  65. ↑ Einicke, G.A.; Ralston, J.C.; Hargrave, C.O.; Reid, D.C.; Hainsworth, D.W. (грудень 2008). Longwall Mining Automation. An Application of Minimum-Variance Smoothing. IEEE Control Systems Magazine (англ.). 28 (6): 28—37. Bibcode:2008ICSys..28f..28E. doi:10.1109/MCS.2008.929281. S2CID 36072082.
  66. ↑ Einicke, G.A. (грудень 2009). Asymptotic Optimality of the Minimum-Variance Fixed-Interval Smoother. IEEE Transactions on Automatic Control (англ.). 54 (12): 2904—2908. Bibcode:2007ITSP...55.1543E. doi:10.1109/TSP.2006.889402. S2CID 16218530.
  67. ↑ Fletcher, Harvey; Munson, W. A. (жовтень 1933). Loudness, Its Definition, Measurement and Calculation (PDF). The Bell System Technical Journal (англ.). 12 (4): 377—430. doi:10.1002/j.1538-7305.1933.tb00403.x.
  68. ↑ Einicke, G.A. (грудень 2014). Iterative Frequency-Weighted Filtering and Smoothing Procedures. IEEE Signal Processing Letters (англ.). 21 (12): 1467—1470. Bibcode:2014ISPL...21.1467E. doi:10.1109/LSP.2014.2341641. S2CID 13569109.
  69. ↑ Biswas, Sanat K.; Qiao, Li; Dempster, Andrew G. (1 грудня 2020). A quantified approach of predicting suitability of using the Unscented Kalman Filter in a non-linear application. Automatica (англ.). 122 109241. doi:10.1016/j.automatica.2020.109241. ISSN 0005-1098. S2CID 225028760.
  70. ↑ Julier, Simon J.; Uhlmann, Jeffrey K. (2004). Unscented filtering and nonlinear estimation. Proceedings of the IEEE (англ.). 92 (3): 401—422. Bibcode:2004IEEEP..92..401J. doi:10.1109/JPROC.2003.823141. S2CID 9614092.
  71. ↑ а б Julier, Simon J.; Uhlmann, Jeffrey K. (1997). New extension of the Kalman filter to nonlinear systems (PDF). У Kadar, Ivan (ред.). Signal Processing, Sensor Fusion, and Target Recognition VI. Proceedings of SPIE (англ.). Т. 3. с. 182—193. Bibcode:1997SPIE.3068..182J. CiteSeerX 10.1.1.5.2891. doi:10.1117/12.280797. S2CID 7937456. Архів оригіналу (PDF) за 26 серпня 2021. Процитовано 3 травня 2008.
  72. ↑ Кулявець, Ю.В.; Богатов, О.І.; Єрмакова, О.А.; Карлаш, П.І.; Попов, В.М. (2016). Аналіз точності оцінювання вагових коефіцієнтів в алгоритмі просторового моніторингу в умовах надлишковості. Eastern-European Journal of Enterprise Technologies (укр.). 2/4 (80): 4—10. doi:10.15587/1729-4061.2016.66195. ISSN 1729-3774.
  73. ↑ Фоков, О.А. (2023). Аналіз стану дослідження проблеми визначення параметрів відносного положення об’єктів орбітального сервісу. Технічна механіка (укр.). 1: 54—67. doi:10.15407/itm2023.01.054. ISSN 1561-9184.
  74. ↑ Зімчук, І.В.; Шапар, Т.М. (2025). Параметричний синтез алгоритмів фільтрації для інерціальних навігаційних систем безпілотних літальних апаратів. Проблеми створення, випробування, застосування та експлуатації складних інформаційних систем. Збірник наукових праць ЖВІ (укр.). 28 (I). doi:10.46972/2076-1546.2025.28.04.
  75. ↑ Романько, В.А.; Жовноватюк, Р.М. (2026). Резидуальний нейронний фільтр Калмана для підвищення завадостійкості навігації БпЛА. Технічна інженерія (укр.). 1 (97): 382—396. doi:10.26642/ten-2026-1(97)-382-396.
  76. ↑ Толкачова, М.Г. (2020). Математичні моделі та методи визначення траєкторії руху об’єкта за відеозображенням (Дипломна робота магістра) (укр.). Харків: ХНУРЕ.
  77. ↑ Бойко, Х.А. (2025). Алгоритм оптичної навігації дрона (Дипломна робота магістра) (укр.). Київ: НаУКМА.
  78. ↑ а б Зімчук, І.В.; Шапар, Т.М.; Ковба, М.В. (2024). Алгоритм фільтрації вимірювань акселерометричних датчиків у безплатформених інерціальних системах навігації безпілотних літальних апаратів. Проблеми створення, випробування, застосування та експлуатації складних інформаційних систем. Збірник наукових праць ЖВІ (укр.). 27 (I): 44—55. doi:10.46972/2076-1546.2024.27.04.
  79. ↑ а б Голодяєва, П.В.; Ходаніцький, О.О.; Гайдай, А.В.; Чмир, Р.В. (2023). Аналіз алгоритму оцінки місцеположення рухомого об’єкта за допомогою ансцентного фільтра Калмана (PDF). V Всеукраїнська науково-технічна конференція студентів та аспірантів «Радіоелектроніка в XXI столітті» (укр.). Київ: КПІ ім. Ігоря Сікорського. с. 29—31.
  80. ↑ Артамонов, Є.Б.; Жултинська, А.К.; Залозний, Т.І.; Радченко, А.В.; Радченко, К.М. (2024). Використання фільтра Калмана для інтеграції даних GPS та IMU в зашумленому середовищі. Технічна інженерія (укр.). 2 (94): 69—80. doi:10.26642/ten-2024-2(94)-69-80. ISSN 2706-5847.
  81. ↑ Фоков, О.А.; Савчук, О.П. (2021). Проблема керування кутовим рухом некооперованого об'єкта орбітального сервісу. Технічна механіка (укр.) (1): 37—50. doi:10.15407/itm2021.01.037. ISSN 1561-9184.
  82. ↑ Михалько, В.Г.; Круш, І.В. (2016). Застосування фільтру Калмана для вирішення проблеми локалізації робота (PDF). International scientific journal (укр.). 4 (1): 64—68. ISSN 2410-213X.
  83. ↑ Білозерський, В.О. (2026). Методи та засоби попередньої обробки відеоданих в комплексі завдань наведення БПЛА (PDF) (Дипломна робота доктора філософії) (укр.). Харків: ХАІ.
  84. ↑ Каталог освітніх програм / Інженерія програмного забезпечення / Забезпечення якості вбудованих систем (укр.). Національний університет «Львівська політехніка». Процитовано 20 червня 2026.
  85. ↑ Шмальцер, Р.В. (2018). Алгоритми навігації квадрокоптера з використанням інфрачервоних давачів (PDF) (Дипломна робота магістра) (укр.). Тернопіль: ТНЕУ.
  86. ↑ Клячкін, А.В. (2021). Визначення просторової орієнтації за допомогою інтеграції показів автомобільних датчиків (Дипломна робота бакалавра) (укр.). Київ: КНУ.
  87. ↑ Зімчук, І.В.; Шапар, Т.М.; Ковба, М.В.; Мірошніченко, С.І. (2024). Синтез алгоритмів комплексованої фільтрації вимірювань для систем супутникової навігації безпілотних літальних апаратів. Технічна інженерія (укр.). 1 (93): 262—271. doi:10.26642/ten-2024-1(93)-262-271.
  88. ↑ Menegaz, H. M. T.; Ishihara, J. Y.; Borges, G. A.; Vargas, A. N. (жовтень 2015). A Systematization of the Unscented Kalman Filter Theory. IEEE Transactions on Automatic Control (англ.). 60 (10): 2583—2598. Bibcode:2015ITAC...60.2583M. doi:10.1109/tac.2015.2404511. hdl:20.500.11824/251. ISSN 0018-9286. S2CID 12606055.
  89. ↑ Gustafsson, Fredrik; Hendeby, Gustaf (2012). Some Relations Between Extended and Unscented Kalman Filters. IEEE Transactions on Signal Processing (англ.). 60 (2): 545—555. Bibcode:2012ITSP...60..545G. doi:10.1109/tsp.2011.2172431. S2CID 17876531.
  90. ↑ Van der Merwe, R.; Wan, E.A. (2001). The square-root unscented Kalman filter for state and parameter-estimation. 2001 IEEE International Conference on Acoustics, Speech, and Signal Processing. Proceedings (Cat. No.01CH37221) (англ.). Т. 6. с. 3461—3464. doi:10.1109/ICASSP.2001.940586. ISBN 0-7803-7041-4. S2CID 7290857.
  91. ↑ Wan, E.A.; Van Der Merwe, R. (2000). The unscented Kalman filter for nonlinear estimation (PDF). Proceedings of the IEEE 2000 Adaptive Systems for Signal Processing, Communications, and Control Symposium (Cat. No.00EX373) (англ.). с. 153. CiteSeerX 10.1.1.361.9373. doi:10.1109/ASSPCC.2000.882463. ISBN 978-0-7803-5800-3. S2CID 13992571. Архів оригіналу (PDF) за 3 березня 2012. Процитовано 31 січня 2010.
  92. ↑ Sarkka, Simo (вересень 2007). On Unscented Kalman Filtering for State Estimation of Continuous-Time Nonlinear Systems. IEEE Transactions on Automatic Control (англ.). 52 (9): 1631—1641. Bibcode:2007ITAC...52.1631S. doi:10.1109/TAC.2007.904453.
  93. ↑ а б Burkhart, Michael C.; Brandman, David M.; Franco, Brian; Hochberg, Leigh; Harrison, Matthew T. (2020). The Discriminative Kalman Filter for Bayesian Filtering with Nonlinear and Nongaussian Observation Models. Neural Computation (англ.). 32 (5): 969—1017. doi:10.1162/neco_a_01275. PMC 8259355. PMID 32187000. S2CID 212748230. Процитовано 26 березня 2021.
  94. ↑ а б Burkhart, Michael C. (2019). A Discriminative Approach to Bayesian Filtering with Applications to Human Neural Decoding (Дипломна робота) (англ.). Providence, RI, USA: Brown University. doi:10.26300/nhfp-xv22.
  95. ↑ а б Brandman, David M.; Burkhart, Michael C.; Kelemen, Jessica; Franco, Brian; Harrison, Matthew T.; Hochberg, Leigh R. (2018). Robust Closed-Loop Control of a Cursor in a Person with Tetraplegia using Gaussian Process Regression. Neural Computation (англ.). 30 (11): 2986—3008. doi:10.1162/neco_a_01129. PMC 6685768. PMID 30216140. Процитовано 26 березня 2021.
  96. ↑ Bar-Shalom, Yaakov; Li, X.-Rong; Kirubarajan, Thiagalingam (2001). Estimation with Applications to Tracking and Navigation (англ.). New York, USA: John Wiley & Sons, Inc. с. 421 ff. doi:10.1002/0471221279. ISBN 0-471-41655-X.
  97. ↑ Bucy, R.S.; Joseph, P.D. (2005) [1st pub. 1968]. Filtering for Stochastic Processes with Applications to Guidance. AMS Chelsea Publ. (англ.) (вид. 2nd). John Wiley & Sons. ISBN 0-8218-3782-6.
  98. ↑ Jazwinski, Andrew H. (1970). Stochastic processes and filtering theory (англ.). New York: Academic Press. ISBN 0-12-381550-9.
  99. ↑ Kailath, T. (1968). An innovations approach to least-squares estimation--Part I: Linear filtering in additive white noise. IEEE Transactions on Automatic Control (англ.). 13 (6): 646—655. Bibcode:1968ITAC...13..646K. doi:10.1109/TAC.1968.1099025.
  100. ↑ Vaswani, Namrata (2008). Kalman filtered Compressed Sensing. 2008 15th IEEE International Conference on Image Processing (англ.). с. 893—896. arXiv:0804.0819. doi:10.1109/ICIP.2008.4711899. ISBN 978-1-4244-1765-0. S2CID 9282476.
  101. ↑ Carmi, Avishy; Gurfil, Pini; Kanevsky, Dimitri (2010). Methods for sparse signal recovery using Kalman filtering with embedded pseudo-measurement norms and quasi-norms. IEEE Transactions on Signal Processing (англ.). 58 (4): 2405—2409. Bibcode:2010ITSP...58.2405C. doi:10.1109/TSP.2009.2038959. S2CID 10569233.
  102. ↑ Zachariah, Dave; Chatterjee, Saikat; Jansson, Magnus (2012). Dynamic Iterative Pursuit. IEEE Transactions on Signal Processing (англ.). 60 (9): 4967—4972. arXiv:1206.2496. Bibcode:2012ITSP...60.4967Z. doi:10.1109/TSP.2012.2203813. S2CID 18467024.
  103. ↑ Särkkä, Simo; Hartikainen, Jouni; Svensson, Lennart; Sandblom, Fredrik (22 квітня 2015). On the relation between Gaussian process quadratures and sigma-point methods (англ.). arXiv:1504.05994 [stat.ME].
  104. ↑ Fruhwirth, R. (1987). Application of Kalman filtering to track and vertex fitting. Nuclear Instruments and Methods in Physics Research Section A (англ.). 262 (2—3): 444—450. Bibcode:1987NIMPA.262..444F. doi:10.1016/0168-9002(87)90887-4.
  105. ↑ Harvey, Andrew C. (1994). Applications of the Kalman filter in econometrics. У Bewley, Truman (ред.). Advances in Econometrics (англ.). New York: Cambridge University Press. с. 285f. ISBN 978-0-521-46726-1.
  106. ↑ Vasebi, Amir; Partovibakhsh, Maral; Bathaee, S. Mohammad Taghi (2007). A novel combined battery model for state-of-charge estimation in lead-acid batteries based on extended Kalman filter for hybrid electric vehicle applications. Journal of Power Sources (англ.). 174 (1): 30—40. Bibcode:2007JPS...174...30V. doi:10.1016/j.jpowsour.2007.04.011.
  107. ↑ Vasebi, A.; Bathaee, S.M.T.; Partovibakhsh, M. (2008). Predicting state of charge of lead-acid batteries for hybrid electric vehicles by extended Kalman filter. Energy Conversion and Management (англ.). 49 (1): 75—82. Bibcode:2008ECM....49...75V. doi:10.1016/j.enconman.2007.05.017.
  108. ↑ Bock, Y.; Crowell, B.; Webb, F.; Kedar, S.; Clayton, R.; Miyahara, B. (2008). Fusion of High-Rate GPS and Seismic Data: Applications to Early Warning Systems for Mitigation of Geological Hazards. AGU Fall Meeting Abstracts (англ.). 43: G43B–01. Bibcode:2008AGUFM.G43B..01B.
  109. ↑ Wolpert, D. M.; Miall, R. C. (1996). Forward Models for Physiological Motor Control. Neural Networks (англ.). 9 (8): 1265—1279. doi:10.1016/S0893-6080(96)00035-4. PMID 12662535.
  110. ↑ Boulfelfel, D.; Rangayyan, R.M.; Hahn, L.J.; Kloiber, R.; Kuduvalli, G.R. (1994). Two-dimensional restoration of single photon emission computed tomography images using the Kalman filter. IEEE Transactions on Medical Imaging (англ.). 13 (1): 102—109. Bibcode:1994ITMI...13..102B. doi:10.1109/42.276148. PMID 18218487.

Література

Посилання

Джерело: стаття у Вікіпедії та історія редагувань (автори).