У статистиці та теорії керування ка́лманове фільтрува́ння (, відоме також як ліні́йно-квадрати́чне оці́нювання, ) — це алгоритм, який використовує ряд спостережуваних у часі вимірювань, що містять статистичний шум та інші неточності, для вироблення оцінок невідомих змінних, зазвичай точніших за ті, що ґрунтуються на самих лише вимірюваннях, шляхом оцінювання спільного розподілу ймовірності цих змінних для кожного такту. Цей фільтр побудовано як мінімізатор середньоквадратичної похибки, але наведено також й альтернативне виведення цього фільтра, яке показує його зв'язок зі статистикою максимальної правдоподібності. Цей фільтр названо на честь Рудольфа Е. Калмана.
Калманове фільтрування має численні технологічні застосування. Поширеним застосуванням є наведення, навігація та керування транспортними засобами, зокрема літаками, космічними апаратами та суднами. Крім того, калманове фільтрування широко застосовують у задачах аналізу часових рядів, як-от обробці сигналів та економетрії. Калманове фільтрування важливе також для планування руху роботів і керування ними, і його можуть використовувати для . Калманове фільтрування працює також і для моделювання керування рухом центральною нервовою системою. Через часову затримку між поданням рухових команд і отриманням сенсо́рного зворотного зв'язку використання фільтрів Калмана дає реалістичну модель для оцінювання поточного стану рухової системи та подавання уточнених команд.
Цей алгоритм працює через обробку в два етапи: етап передбачення () та етап уточнення (). На етапі передбачення фільтр Калмана виробляє оцінки поточних змінних стану, включно з їхніми невизначеностями. Щойно отримано спостереження результату наступного вимірювання (неодмінно спотворене певною похибкою, зокрема випадковим шумом), ці оцінки уточнюються за допомогою зваженого середнього, з надаванням більшої ваги оцінкам із вищою визначеністю. Цей алгоритм рекурсивний. Він може працювати в реальному часі, використовуючи лише поточні вхідні вимірювання, обчислений раніше стан і матрицю його невизначеності; жодної додаткової інформації з минулого не потрібно.
Оптимальність калманового фільтрування передбачає, що похибки мають нормальний (ґауссів) розподіл. За словами Рудольфа Е. Калмана, «Щодо випадкових процесів зроблено такі припущення: Фізичні випадкові явища можна розглядати як наслідок дії первинних випадкових джерел, що збуджують динамічні системи. Вважається, що первинні джерела є незалежними ґауссовими випадковими процесами з нульовим середнім; динамічні системи будуть лінійними». Проте незалежно від ґауссовості, якщо коваріації процесу та вимірювання відомі, фільтр Калмана є найкращим можливим оцінювачем у сенсі , хоча можуть існувати й кращі нелінійні оцінювачі. Поширеною хибною думкою (яку відтворюють у літературі) є твердження, буцімто фільтр Калмана неможливо застосовувати строго, якщо не вважати всі шумові процеси ґауссовими. У праці Ульмана та Джульєра наведено близько десятка прикладів цієї хибної думки в літературі.
Було розроблено також розширення та узагальнення цього методу, як-от розширений фільтр Калмана та сигма-точковий фільтр Калмана, які працюють із нелінійними системами. В їхній основі лежить прихована марковська модель, у якій простір станів латентних змінних неперервний, а всі латентні та спостережувані змінні мають ґауссові розподіли. Калманове фільтрування успішно застосовують у багатодавачевому злитті даних, а також у розподілених давачевих мережах для розробки розподіленого або консенсусного калманового фільтрування.
Історія Цей метод фільтрування названо на честь угорського емігранта Рудольфа Е. Калмана, хоча та розробили подібний алгоритм раніше. Річард Б'юсі () з зробив свій внесок до цієї теорії, унаслідок чого цей метод іноді називають фільтруванням Калмана — Б'юсі. На виведення цього фільтра Калмана надихнуло застосування змінних стану до . Розробником першого втілення фільтра Калмана зазвичай вважають . Він усвідомив, що цей фільтр можливо розділити на дві окремі частини: одну для проміжків часу між виходами давачів, а іншу — для врахування вимірювань. Саме під час відвідин Калманом Дослідницького центру Еймса НАСА Шмідт побачив застосовність ідей Калмана до нелінійної задачі оцінювання траєкторії для програми «Аполлон», що привело до їх упровадження до навігаційного комп'ютера «Аполлона».
Цей цифровий фільтр іноді називають фільтром Стратоновича — Калмана — Б'юсі, оскільки він є окремим випадком загальнішого нелінійного фільтра, розробленого радянським математиком Русланом Стратоновичем. Насправді деякі рівняння лінійного фільтра цього окремого випадку з'явилися у працях Стратоновича, опублікованих до літа 1961 року, коли Калман зустрівся зі Стратоновичем під час конференції в Москві.
Калманове фільтрування вперше було описано й частково розроблено в технічних працях Сверлінга (1958), Калмана (1960), а також Калмана та Б'юсі (1961).
Фільтри Калмана відіграли життєво важливу роль у втіленні навігаційних систем атомних підводних човнів із балістичними ракетами ВМС США, а також систем наведення й навігації крилатих ракет, як-от ракет «Томагавк» ВМС США та крилатих ракет повітряного базування Повітряних сил США. Їх використовують також у системах наведення й навігації багаторазових ракет-носіїв, а також у системах керування орієнтацією й навігації космічних апаратів, які стикуються з Міжнародною космічною станцією.
Огляд обчислення Калманове фільтрування використовує динамічну модель системи (наприклад, фізичні закони руху), відомі керувальні входи цієї системи та декілька послідовних вимірювань (наприклад, від давачів), щоби сформувати оцінку змінних величин системи (її стану), кращу за оцінку, отриману з використанням лише одного вимірювання. Тому воно є поширеним алгоритмом злиття давачів і злиття даних.
Зашумлені дані давачів, наближення в рівняннях, які описують поступ системи, та невраховані зовнішні чинники обмежують точність визначення стану системи. Фільтр Калмана ефективно опрацьовує невизначеність, спричинену зашумленими даними давачів, і, певною мірою, випадковими зовнішніми чинниками. Фільтр Калмана виробляє оцінку стану системи як зважене середнє передбаченого стану системи та нового вимірювання. Призначення ваг полягає в тому, що значенням із кращою (тобто меншою) оціненою невизначеністю «довіряють» більше. Ваги обчислюють із коваріації — міри оціненої невизначеності передбачення стану системи. Результатом зваженого середнього є нова оцінка стану, яка лежить між передбаченим і виміряним станами та має меншу оцінену невизначеність, ніж кожен із них окремо. Цей процес повторюється на кожному такті, причому нова оцінка та її коваріація інформують передбачення, використовуване в наступній ітерації. Це означає, що фільтр Калмана працює рекурсивно й для обчислення нового стану потребує лише останнього «найкращого припущення» щодо стану системи, а не всієї його передісторії.
Важливими міркуваннями є градація впевненості у вимірюваннях та оцінка поточного стану. Відгук фільтра зазвичай описують через передавальний коефіцієнт (), який у загальному випадку має вигляд матриці. Передавальний коефіцієнт Калмана — це вага, яку надають вимірюванням та оцінці поточного стану; його можливо «настроювати» для досягнення певних робочих характеристик. За високого передавального коефіцієнта фільтр надає більшої ваги найновішим вимірюванням і тому чутливіше підлаштовується до них. За низького передавального коефіцієнта фільтр точніше дотримується передбачень моделі. У граничних випадках високий передавальний коефіцієнт (близький до одиниці) спричинює стрибкоподібнішу оцінювану траєкторію, тоді як низький передавальний коефіцієнт (близький до нуля) згладжує шум, але знижує швидкість реагування.
Під час виконання безпосередніх обчислень фільтра (як розглянуто нижче), через наявність кількох вимірів в одному наборі обчислень, оцінку стану та коваріації подають у вигляді матриць. Це уможливлює подання лінійних залежностей між різними змінними стану (як-от положенням, швидкістю та прискоренням) у будь-яких моделях переходу чи коваріаціях.
Приклад застосування Як приклад застосування розгляньмо задачу визначення точного розташування вантажівки. Вантажівку можливо обладнати пристроєм GPS, що надає оцінку положення з точністю до декількох метрів. Оцінка GPS, імовірно, буде зашумленою: покази стрімко «стрибатимуть», хоча й залишатимуться в межах декількох метрів від справжнього положення. Крім того, оскільки вантажівка має рухатися відповідно до законів фізики, її положення можливо також оцінювати інтегруванням її швидкості за часом, визначеної шляхом відстежування обертів коліс і кута повороту керма. Цю методику називають зчисленням. Зазвичай зчислення даватиме дуже плавну оцінку положення вантажівки, проте з часом вона через накопичення малих похибок.
У цьому прикладі роботу фільтра Калмана можливо розглядати як два окремі етапи: передбачення та уточнення. На етапі передбачення попереднє положення вантажівки змінюють відповідно до фізичних законів руху (динамічної моделі, або моделі «переходу станів»). Обчислюють не лише нову оцінку положення, а й нову коваріацію. Наприклад, коваріація може бути пропорційною швидкості вантажівки, оскільки за високих швидкостей визначеність щодо точності оцінки положення зчисленням нижча, а за низьких швидкостей — вища. Далі, на етапі уточнення, отримують вимірювання положення вантажівки з пристрою GPS. Це вимірювання також має певну невизначеність, а співвідношення його коваріації з коваріацією передбачення з попереднього етапу визначає, наскільки нове вимірювання вплине на уточнене передбачення. В ідеалі, коли оцінки за зчисленням починають віддалятися від справжнього положення, вимірювання GPS має притягувати оцінку положення назад до справжнього положення, але не збурювати її настільки, щоби вона стала зашумленою й почала стрімко стрибати.
Технічний опис і контекст Фільтр Калмана — це ефективний рекурсивний фільтр, який оцінює внутрішній стан лінійної динамічної системи за послідовністю зашумлених вимірювань. Його використовують у широкому колі інженерних та економетричних задач — від радарів і комп'ютерного зору до оцінювання структурних макроекономічних моделей, і він є важливою темою теорії керування та інженерії систем керування. Разом із (ЛКР, ) фільтр Калмана розв'язує задачу (ЛКҐ, ). Фільтр Калмана, лінійно-квадратичний регулятор і лінійно-квадратично-ґауссів регулятор є розв'язками чи не найфундаментальніших задач теорії керування.
У більшості застосувань внутрішній стан значно більший (має більше ступенів вільності), ніж невелика кількість вимірюваних «спостережуваних» параметрів. Проте, поєднуючи результати послідовних вимірювань, фільтр Калмана може оцінювати внутрішній стан повністю.
У теорії Демпстера — Шейфера кожне рівняння стану або спостереження розглядають як окремий випадок лінійної функції переконання, а калманове фільтрування — як окремий випадок поєднання лінійних функцій переконань на дереві злук або марковському дереві. До додаткових методів належить фільтрування переконань, у якому для уточнення рівнянь стану використовують баєсові уточнення або уточнення на основі свідчень.
Нині існує велика кількість різновидів фільтра Калмана: первісне формулювання Калмана, яке тепер називають «простим» фільтром Калмана, фільтр Калмана — Б'юсі, «розширений» фільтр Шмідта, інформаційний фільтр, а також різноманітні «квадратнокореневі» фільтри, розроблені Бірманом, Торнтон і багатьма іншими. Можливо, найпоширенішим різновидом дуже простого фільтра Калмана є фазове автопідстроювання частоти, яке нині повсюдно застосовують у радіоприймачах, особливо приймачах із частотною модуляцією (ЧМ), телевізорах, приймачах супутникового зв'язку, системах космічного зв'язку та майже в будь-якому іншому електронному обладнанні зв'язку.
Базова модель динамічної системи