Loading AI tools
З Вікіпедії, вільної енциклопедії
Фільтр Калмана (англ. Kalman filter), відомий також як лінійно-квадратичне оцінювання (англ. linear quadratic estimation, LQE), — це алгоритм, що використовує послідовності вимірювань протягом часу, які містять шум (випадкові відхилення) та інші неточності, й видає оцінки невідомих змінних, що є потенційно точнішими за базовані на самих лише вимірюваннях. Формальніше, фільтр Калмана працює рекурсивно на потоках зашумлених вхідних даних, і видає статистично оптимальну оцінку базового стану системи. Фільтр названо на честь Рудольфа Калмана, одного з головних розробників його теорії.
Фільтр Калмана має численні застосування у технології. Поширеним є застосування для наведення, навігації та керування транспортними засобами, особливо літаками та космічними апаратами. Крім того, фільтр Калмана є широко застосовуваною концепцією в аналізі часових рядів, що використовується у таких галузях як обробка сигналів та економетрія. Фільтри Калмана також є однією з головних тем у плануванні та керуванні роботизованим рухом, й іноді включаються до оптимізації траєкторії[en].
Цей алгоритм працює як двокроковий процес. На кроці передбачення фільтр Калмана видає оцінки змінних поточного стану, разом із їхніми невизначеностями. Щойно отримано спостереження виходу наступного вимірювання (неодмінно якоюсь мірою спотворене відхиленням, включно з випадковим шумом), ці оцінки уточнюються з використанням середнього зваженого, в якому більше ваги надається оцінкам з вищою визначеністю. Через рекурсивну природу алгоритму він може працювати в реальному часі, використовуючи лише наявні вхідні вимірювання, попередньо обчислений стан та його матрицю невизначеності; ніякої додаткової інформації не потрібно.
Поширеним є хибне уявлення, що фільтр Калмана передбачає, що всі вектори помилок та вимірювання мають нормальний розподіл. Оригінальна робота Калмана виводила цей фільтр з використанням теорії прямокутної проєкції, щоби показати, що коваріація мінімізується, і цей результат не вимагає жодного припущення, наприклад, що похибки мають нормальний розподіл.[1] Він потім показав, що цей фільтр видає точну оцінку умовної ймовірності в особливому випадку, коли похибки мають нормальний розподіл.
Також було розроблено розширення та узагальнення цього методу, такі як розширений фільтр Калмана (англ. Extended Kalman filter, EKF) та беззапаховий фільтр Калмана (англ. Unscented Kalman filter, UKF), що працюють на нелінійних системах. Базовою моделлю є баєсова модель, подібна до прихованої марковської моделі, але в якій простір станів латентних змінних є безперервним, і де всі латентні та спостережувані змінні мають нормальні розподіли.
Фільтр названо на честь угорського емігранта Рудольфа Калмана, хоча Торвальд Тіле[en][2][3] та Пітер Сверлінг[en] розробили подібний алгоритм раніше. Річард Бюсі (англ. Richard S. Bucy) з Університету Південної Каліфорнії також зробив внесок до цієї теорії, тому її часто називають фільтром Калмана-Бюсі. Стенлі Шмідт[en] вважається розробником першої реалізації фільтра Калмана. Під час свого візиту до Дослідницького центру Еймса НАСА Калман побачив застосовність своїх ідей до задачі оцінювання траєкторії для програми «Аполлон», що призвело до їхнього включення до навігаційного комп'ютера Аполлону. Цей фільтр Калмана було вперше описано та частково розроблено в технічних працях Сверлінга (1958), Калмана (1960) та Калмана і Бюсі (1961).
Фільтри Калмана були життєво важливими в реалізації навігаційних систем атомних підводних човнів з балістичними ракетами ВМС США та в системах наведення і навігації крилатих ракет, таких як ракета Томагавк ВМС США та крилаті ракети класу «повітря-земля» ВПС США. Він також використовується в системах наведення і навігації космічних човників НАСА та системах керування орієнтацією та навігації Міжнародної космічної станції.
Цей цифровий фільтр іноді називають фільтром Стратоновича-Калмана-Бюсі, оскільки він є окремим випадком загальнішого нелінійного фільтру, розробленого дещо раніше радянським математиком Русланом Стратоновичем.[4][5][6][7] Фактично, деякі з рівнянь окремих випадків лінійних фільтрів з'явилися у цих працях Стратоновича, що було опубліковано до літа 1960 року, коли Калман зустрівся зі Стратоновичем під час конференції в Москві.
Фільтр Калмана використовує модель динаміки системи (наприклад, фізичні закони руху), відомі впливи керування на цю систему, та багатократні послідовні вимірювання (наприклад, від давачів) для формування оцінки змінних величин системи (її стану), що є кращою за оцінку, отриману з використанням самих лише вимірювань. По суті, він є загальним алгоритмом злиття давачів та злиття даних.
Всі вимірювання, та обчислення на базі моделей є до певної міри оцінками. Зашумлені дані давачів, наближення в рівняннях, що описують, як система змінюється, та не враховувані зовнішні фактори вводять деяку невизначеність стосовно виведених значень стану системи. Фільтр Калмана усереднює передбачення стану системи з новим вимірюванням за допомогою середнього зваженого. Призначенням вагових коефіцієнтів є те, що значенням з кращою (тобто, меншою) оціненою невизначеністю «довіряється» більше. Вагові коефіцієнти обчислюються з коваріації, міри оціненої невизначеності передбачення стану системи. Результатом середнього зваженого є оцінка нового стану, що лежить між передбаченим та виміряним станами, і має кращу оцінену невизначеність, ніж кожен з них окремо. Цей процес повторюється на кожному такті, і нова оцінка та її коваріація інформують передбачення, що використовується на наступній ітерації. Це означає, що фільтр Калмана працює рекурсивно, і вимагає для обчислення нового стану лише крайнього «найкращого припущення» про стан системи, а не всієї його історії.
Оскільки визначеність вимірювань часто складно виміряти точно, є звичним розглядати поведінку фільтру в термінах передавального коефіцієнту (англ. gain, рос. коэффициент усиления). Передавальний коефіцієнт Калмана є функцією відносної визначеності вимірювань та оцінки поточного стану системи, і може «налаштовуватися» для досягнення певної продуктивності. При високому передавальному коефіцієнті фільтр віддає більше ваги вимірюванням, і, отже, точніше слідує ним. При низькому передавальному коефіцієнті фільтр щільніше слідує передбаченням моделі, згладжуючи шум, але знижуючи швидкість реагування. У граничних випадках, одиничний передавальний коефіцієнт призводить до повного ігнорування фільтром оцінки стану, тоді як нульовий передавальний коефіцієнт призводить до ігнорування вимірювань.
При виконанні фактичних розрахунків для фільтру (див. нижче) оцінка стану та коваріації для обробки декількох вимірів, залучених в одному наборі розрахунків, кодуються у матриці. Це дозволяє представляти лінійні взаємозв'язки між різними змінними стану (такими як положення, швидкість та прискорення) у будь-яких моделях переходу чи коваріаціях.
Як приклад застосування, розгляньмо задачу визначення точного положення вантажівки. Вантажівку може бути обладнано пристроєм GPS, що надає оцінку положення в межах кількох метрів. Оцінка GPS, ймовірно, буде зашумленою; зчитування швидко «стрибають довкола», проте завжди залишаючись в межах кількох метрів від дійсного положення. Крім того, оскільки вантажівка, як очікується, слідує законам фізики, її положення також може бути оцінене шляхом інтегрування її швидкості за часом, визначеної відстежуванням обертів коліс та кута повороту керма. Цей прийом відомий як зчислення. Як правило, зчислення надаватиме дуже плавну оцінку положення вантажівки, але вона дрейфуватиме[en] з часом у процесі накопичення маленьких помилок.
У цьому прикладі фільтр Калмана можна розглядати як такий, що працює у дві окремі фази: передбачення та уточнення. У фазі передбачення старе положення вантажівки модифікуватиметься відповідно до фізичних законів руху (динамічна модель, або модель «переходу стану»), плюс будь-які зміни, створені педаллю газу та кермом. Обчислюватиметься не лише оцінка нового положення, але й нова коваріація. Можливо, коваріація пропорційна швидкості вантажівки, оскільки ми менш впевнені у точності оцінки положення зчисленням на високих швидкостях, але дуже впевнені в такій оцінці положення при повільному русі. Далі, у фазі уточнення з пристрою GPS отримується вимірювання положення вантажівки. Разом з цим вимірюванням надходить певна невизначеність, і її коваріація по відношенню до невизначеності передбачення з попередньої фази визначає, наскільки нове вимірювання вплине на оновлене положення. В ідеалі, якщо оцінки зчислення, як правило, дрейфують від дійсного стану, то вимірювання GPS повинні притягувати оцінку положення назад до дійсного положення, але не збурювати її до такої міри, що вона стане швидко змінюваною та зашумленою.
Фільтр Калмана є ефективним рекурсивним фільтром, що оцінює внутрішній стан лінійної динамічної системи з послідовності зашумлених вимірювань. Він використовується у широкому спектрі інженерних та економічних застосувань, від радарів та комп'ютерного зору до оцінювання структурних макроекономічних моделей,[8][9] і є важливою темою в теорії керування та в проектуванні систем керування. Поряд з лінійно-квадратичним регулятором[en] (англ. LQR), фільтр Калмана розв'язує задачу лінійно-квадратичного ґаусового керування[en] (англ. LQG). Фільтр Калмана, лінійно-квадратичний регулятор та лінійно-квадратичний ґаусів контролер є рішеннями чи не найфундаментальніших задач теорії керування.
У більшості застосувань внутрішній стан є набагато більшим (має більше ступенів вільності) за нечисленні «спостережувані» параметри, що вимірюються. Однак, комбінуючи послідовності вимірювань, фільтр Калмана може оцінювати весь внутрішній стан.
У теорії Демпстера — Шафера[en] кожне рівняння стану або спостереження розглядається як особливий випадок лінійної функції довіри[en], і фільтр Калмана є особливим випадком поєднання лінійних функцій довіри на дереві з'єднань, або дереві Маркова. Додаткові підходи включають фільтри переконань, що використовують Баєсове або доказове уточнення рівнянь стану.
Наразі розроблено найрізноманітніші фільтри Калмана, починаючи від первісного формулювання Калмана, що тепер називається «простим» фільтром Калмана, фільтру Калмана-Бюсі, «розширеного» фільтру Шмідта, інформаційного фільтру, та низки «квадратно-кореневих» фільтрів, розроблених Бірманом, Торнтон та багатьма іншими. Чи не найширше застосовуваним типом дуже простого фільтру Калмана є фазове автопідстроювання частоти, що наразі є повсюдним у радіоприймачах, особливо у радіоприймачах із частотною модуляцією (FM), телевізорах, приймачах супутникового зв'язку, системах зв'язку у відкритому космосі, та майже в будь-якому іншому електронному обладнанні зв'язку.
Цей розділ потребує доповнення. (лютий 2014) |
Фільтри Калмана базуються на дискретизованих за часом лінійних динамічних системах. Вони моделюються ланцюгами Маркова, побудованими на лінійних операторах, що збурюються похибками, що можуть включати ґаусів шум. Стан системи представляється вектором дійсних чисел. На кожному такті дискретного часу[en] до стану застосовується лінійний оператор для продукування нового стану, з домішуванням якогось шуму, і, опціонально, якоїсь інформації від засобів керування системою, якщо вони відомі. Відтак інший лінійний оператор, змішаний з іще додатковим шумом, застосовується до справжнього («прихованого») стану для продукування спостережуваних виходів. Фільтр Калмана можна розглядати як аналог прихованої марковської моделі, з тією ключовою відмінністю, що змінні прихованого стану приймають значення у безперервному просторі (на відміну від дискретного простору стану, як у прихованій марковській моделі). Між рівняннями фільтру Калмана та прихованої марковської моделі існує сильна дуальність. Огляд цієї та інших моделей наводять Ровейс та Ґарамані[en] (1999),[10] та Гамільтон[en] (1994), глава 13.[11]
Для того, щоби використовувати фільтр Калмана для оцінювання внутрішнього стану процесу, маючи лише послідовність зашумлених спостережень, необхідно змоделювати процес відповідно до моделі фільтру Калмана. Це означає задання наступних матриць: Fk, моделі переходу станів; Hk, моделі спостереження; Qk, коваріації шуму процесу; Rk, коваріації шуму спостереження; та іноді Bk, моделі керування, для кожного моменту часу, k, як описано нижче.
Модель фільтру Калмана припускає, що справжній стан у момент часу k виводиться зі стану в (k − 1) відповідно до
де
У момент часу k спостереження (або вимірювання) zk справжнього стану xk робиться відповідно до
де Hk є моделлю спостереження, що відображає простір справжнього стану у спостережуваний простір, і vk є шумом спостереження, що, як вважається, є ґаусовим білим шумом з нульовим середнім значенням і з коваріацією Rk.
Початковий стан і вектори шуму на кожному такті {x0, w1, …, wk, v1 … vk} вважаються взаємно незалежними.
Багато реальних динамічних систем не вписуються до цієї моделі точно. Насправді, неврахована динаміка здатна значно погіршити продуктивність фільтру, навіть якщо він мав працювати з невідомими випадковими сигналами як входами. Причиною цього є те, що ефект від неврахованої динаміки залежить від входу, і, отже, може привести алгоритм оцінювання до нестабільності (він розходиться). З іншого боку, сигнали незалежного білого шуму не призводитимуть до розходження алгоритму. Задача відокремлення шуму вимірювань та не змодельованої динаміки є складною, і трактується у теорії керування в рамках робастного керування.[12][13]
Фільтр Калмана є рекурсивним оцінювачем. Це означає, що для обчислення оцінки поточного стану необхідні лише оцінка стану з попереднього кроку та поточні вимірювання. На відміну від пакетних методів оцінювання, історія спостережень та/або оцінок не потрібні. Надалі запис представляє оцінку в момент часу n при заданих спостереженнях по момент часу m ≤ n включно.
Стан фільтру представляється двома змінними:
Фільтр Калмана може бути записано у вигляді одного рівняння, однак найчастіше його представляють як дві окремі стадії: передбачення (англ. prediction, рос. экстраполяция) та уточнення (англ. update, рос. коррекция). Стадія передбачення використовує оцінку стану з попереднього моменту часу для отримання оцінки стану в поточний момент часу. Передбачена оцінка стану також відома як апріорна оцінка стану, оскільки, хоча це й оцінка стану в поточний момент часу, вона не включає інформацію про спостереження з поточного моменту часу. У фазі уточнення поточне апріорне передбачення об'єднується з поточною інформацією спостереження для уточнення оцінки стану. Ця поліпшена оцінка називається апостеріорною оцінкою стану.
Як правило, ці дві фази чергуються: передбачення просуває стан до наступного запланованого спостереження, а уточнення включає і це спостереження. Проте, це не є обов'язковим; якщо спостереження з якоїсь причини не доступне, уточнення може бути пропущено, і виконано декілька кроків передбачення. Аналогічно, якщо в один і той же момент часу доступно декілька незалежних спостережень, може бути виконано декілька кроків уточнення (як правило, з різними матрицями спостереження Hk).[14][15]
Передбачена (апріорна) оцінка стану | ||
Коваріація передбаченої (апріорної) оцінки |
Нововведення (відхилення) вимірювання | ||
Коваріація нововведень (відхилення) | ||
Оптимальний передавальний коефіцієнт Калмана | ||
Оновлена (апостеріорна) оцінка стану | ||
Коваріація оновленої (апостеріорної) оцінки |
Наведені вище формули оновленої оцінки та коваріації є справедливими лише для оптимального передавального коефіцієнту Калмана. Використання інших значень передавального коефіцієнту вимагає складнішої формули, що знаходиться у розділі Виведення.
Якщо модель є точною, і значення та точно відображають розподіл значень початкового стану, то зберігаються наступні інваріанти: (всі оцінки мають нульове середнє значення)
де є математичним сподіванням , і матриці коваріацій точно відображають коваріацію оцінок
Практична реалізація фільтру Калмана часто ускладнюється важкістю отримання гарної оцінки матриць коваріацій шумів Qk та Rk. У цій галузі було зроблено широкі дослідження для отримання цих коваріацій з даних. Одним з найперспективніших та найпрактичніших підходів до виконання цього є прийом автоковаріаційних найменших квадратів (англ. Autocovariance Least-Squares, ALS), що використовує автоковаріації із затримкою звичайних робочих даних для оцінювання цих коваріацій.[16][17] Код GNU Octave та Matlab, що використовується для обчислення матриць коваріацій шумів з використанням прийому автоковаріаційних найменших квадратів, доступний для завантаження під ліцензією GNU General Public License.[18]
З теорії випливає, що фільтр Калмана є оптимальним у випадках, коли а) модель точно відповідає справжній системі, б) вхідний шум є білим, та в) коваріації шуму відомі точно. Протягом крайніх десятиліть було запропоновано декілька методів визначення коваріацій шуму, включно з автоковаріаційними найменшими квадратами, що їх було згадано у попередньому розділі. Після того, як коваріації оцінено, корисно оцінювати продуктивність фільтру, тобто, чи можливо поліпшити якість оцінювання стану. Якщо фільтр Калмана працює оптимально, то послідовність нововведень (похибка передбачення виходу) є білим шумом, отже, властивість білизни нововведень вимірює продуктивність фільтру. Для цього може застосовуватися кілька різних методів. Три перевірки оптимальності з числовими прикладами описано у [19].
Уявімо вагонетку на нескінченно довгих ідеальних прямих рейках за повної відсутності тертя. Початково ця вагонетка стоїть нерухомо у положенні 0, але її штовхають туди й сюди випадковими неконтрольованими силами. Ми вимірюємо положення вагонетки кожні Δt секунд, але ці вимірювання є неточними; ми хочемо підтримувати модель того, де знаходиться вагонетка, і якою є її швидкість. Тут ми покажемо, як ми отримаємо модель, з якої ми зробимо наш фільтр Калмана.
Оскільки є сталими, їхні часові індекси опущено.
Положення та швидкість вагонетки описуються лінійним простором стану
де є швидкістю, тобто, похідною положення по відношенню до часу.
Вважатимемо, що між моментами часу (k − 1) та k неконтрольовані сили спричиняють стале прискорення ak, що має нормальний розподіл із нульовим середнім значенням, та стандартним відхиленням σa. Із законів руху Ньютона ми робимо висновок, що
(зазначте, що тут немає члена , оскільки ми не маємо відомих впливів керування); натомість ми вважаємо, що ak є наслідком невідомого впливу, і прикладає цей вплив до вектора стану), де
та
так що
де та
На кожному такті робиться зашумлене вимірювання справжнього положення вагонетки. Припустімо, що шум вимірювання vk також має нормальний розподіл із нульовим середнім значенням, та стандартним відхиленням σz.
де
та
Ми знаємо початковий стан вагонетки з бездоганною точністю, тому ми встановлюємо
і, щоби повідомити фільтрові, що ми знаємо точне положення та швидкість, ми даємо йому нульову коваріаційну матрицю:
Якщо початкове положення та швидкість відомі лише приблизно, то коваріаційну матрицю має бути заповнено із відповідною дисперсією на її діагоналі
Фільтр тоді надасть перевагу інформації з першого вимірювання перед інформацією, що вже є у моделі.
Починаючи з нашого інваріанту коваріації похибки Pk | k, як наведено вище,
підставмо визначення
і підставмо
та
і, зібравши вектори похибки, ми отримаємо
Оскільки вектор вимірювань vk є некорельованим з іншими членами, це перетворюється на
за властивостями векторної коваріації це перетворюється на
що, з використанням нашого інваріанту на Pk | k-1 та визначення Rk, стає
Ця формула (іноді відома як «форма Джозефа» рівняння коваріації уточнення) є чинною для будь-якого значення Kk. Виявляється, що, якщо Kk є оптимальним передавальним коефіцієнтом Калмана, то вона підлягає подальшому спрощенню, як показано нижче.
Фільтр Калмана є оцінювачем з мінімальною середньоквадратичною похибкою[en]. Похибкою в апостеріорній оцінці стану є
Ми прагнемо звести до мінімуму очікуване значення квадрату величини цього вектора, . Це еквівалентне мінімізації сліду коваріаційної матриці апостеріорної оцінки . Розкриваючи члени наведеного вище рівняння та збираючи, ми отримуємо:
Слід мінімізовано, коли його матрична похідна[en] по відношенню до матриці передавального коефіцієнту є нульовою. Використовуючи правила градієнтних матриць[en] та симетрію задіяних матриць, ми знаходимо, що
Розв'язання цього для Kk дає передавальний коефіцієнт Калмана:
Цей передавальний коефіцієнт, відомий як оптимальний передавальний коефіцієнт Калмана, є таким, що при застосуванні дає оцінки з мінімальною середньоквадратичною похибкою[en].
Формулу, що використовується для обчислення коваріації апостеріорної похибки, може бути спрощено, коли передавальний коефіцієнт Калмана дорівнює оптимальному значенню, виведеному вище. При домножуванні обох частин нашої формули передавального коефіцієнту Калмана вище на SkKkT випливає, що
Повертаючись до нашої розширеної формули коваріації апостеріорної похибки
ми виявляємо, що останні два члени скорочуються, даючи
Ця формула є обчислювально простішою, і тому майже завжди використовується на практиці, але вона є правильною лише для оптимального передавального коефіцієнта. Якщо арифметична точність є незвичайно низькою, викликаючи проблеми із обчислювальною стійкістю, або якщо свідомо застосовується не оптимальний передавальний коефіцієнт Калмана, це спрощення застосовувати не можна; повинна застосовуватися формула коваріації апостеріорної похибки, описана вище.
Фільтрувальні рівняння Калмана надають оцінку стану та коваріацію її похибки рекурсивно. Оцінка та її якість залежать від параметрів системи та статистик шуму, поданих до оцінювача як вхідні дані. Цей розділ аналізує вплив невизначеностей у статистичних вхідних даних до фільтру.[20] За відсутності надійних статистик або істинних значень мартиць коваріації шуму та вираз
більше не надає справжньої коваріації похибки. Іншими словами, . У більшості застосунків реального часу матриці коваріацій, що використовуються при розробці фільтру Калмана, відрізняються від фактичних матриць коваріації шуму.[джерело?] Аналіз вразливості описує поведінку коваріації похибки оцінки, коли коваріації шуму, а також системні матриці та , що подаються як вхідні дані до фільтру, є невірними. Отже, цей аналіз вразливості описує стійкість (або вразливість) оцінювача до невірно визначених статистичних та параметричних вхідних даних.
Це обговорення обмежене аналізом вразливості похибки для випадку статистичних невизначеностей. Тут фактичні коваріації шуму позначаються як та відповідно, тоді як проектними значеннями, що використовуються в оцінювачі, є та відповідно. Коваріація фактичної похибки позначається як , та як — обчислювана фільтром Калмана, що згадується як змінна Ріккаті[en]. Коли та , це означає, що . При обчисленні коваріації фактичної похибки з використанням підставлення для та використання того факту, що та , дає в результаті наступні рекурсивні рівняння для :
та
При обчисленні фільтр умисно неявно припускає, що та . Зверніть увагу, що рекурсивні вирази для та є ідентичними, за винятком наявності та на місці проектних значень та відповідно.
Однією з проблем фільтру Калмана є його обчислювальна стійкість. Якщо коваріація шуму процесу Qk є малою, то похибка округлення часто призводить до обчислення малих додатних власних значень як від'ємних. Це робить числове представлення матриці коваріації стану P невизначеним, хоча його справжня форма є додатньовизначеною.
Додатньовизначені матриці мають таку властивість, що вони мають квадратний корінь трикутної матриці P = S·ST. Це може обчислюватися ефективно з використанням алгоритму розкладу Холецького, але що важливіше, якщо коваріація зберігається в такому вигляді, вона ніколи не матиме від'ємної діагоналі, та не стане асиметричною. Еквівалентною формою, що дозволяє уникати численних операцій добування квадратного кореня, потрібних для квадратного кореня з матриці, проте зберігаючи бажані числові властивості, є форма U-D-розкладу, P = U·D·UT, де U є унітрикутною матрицею (з одиничною діагоналлю), а D є діагональною матрицею.
Між цими двома, U-D факторизація використовує такий самий об'єм пам'яті, й почасти менше обчислювань, і є найчастіше застосовуваною квадратнокореневою формою. (Рання література з відносної ефективності є дещо оманливою, оскільки вона виходить з того, що квадратні корені були значно витратнішими за часом, ніж ділення,[21] , тоді як у комп'ютерах XXI сторіччя вони лише трохи витратніші.)
Ефективні алгоритми для стадій передбачення й уточнення Калмана у квадратнокореневій формі було розроблено Джеральдом Бірманом та Катериною Торнтон.[21][22]
Основою іншого типу обчислювально ефективного та стійкого квадратнокореневого фільтра є L·D·LT-розклад матриці коваріації нововведень Sk.[23] Алгоритм починає з LU-розкладу, реалізованого як у Linear Algebra PACKage (LAPACK). Ці результати розкладаються далі у структуру L·D·LT методами, запропонованими Голубом[en] та Ван Лоаном[en] (алгоритм 4.1.2) для симетричної невиродженої матриці.[24] У будь-якій виродженій матриці коваріації робиться таке переставлення[en], щоби блок головної діагоналі був невиродженим та добре обумовленим. Алгоритм переставлення повинен зберігати будь-яку частину матриці коваріацій нововведень, що безпосередньо відповідає спостережуваним змінним стану Hk·xk|k-1, що пов'язані з допоміжними спостереженнями в yk. Квадратнокореневий L·D·LT-фільтр вимагає ортогоналізації вектора спостережень.[22][23] Це може робитися за допомогою оберненого квадратного кореня[en] матриці коваріацій для допоміжних змінних з використанням методу 2 з Хаяма[en] (2002, с. 263).[25]
Фільтр Калмана може бути представлено як одну з найпростіших динамічних баєсових мереж. Фільтр Калмана рекурсивно обчислює оцінки справжніх значень станів протягом часу, використовуючи вхідні вимірювання та математичну модель процесу. Подібним чином, рекурсивне баєсове оцінювання рекурсивно обчислює оцінку невідомої функції густини ймовірності протягом часу, використовуючи вхідні вимірювання та математичну модель процесу.[26]
У рекурсивному баєсовому оцінюванні справжній стан вважається неспостережуваним марковським процесом, а вимірювання є спостережуваними станами прихованої марковської моделі (ПММ).
Через марковське припущення справжній стан є умовно незалежним від усіх станів, раніших за безпосередньо попередній.
Аналогічно, вимірювання на k-тому такті залежить лише від поточного стану, і є умовно незалежним від усіх інших станів до нього.
Використовуючи ці припущення, розподіл ймовірності над усіма станами прихованої марковської моделі можна записати просто як:
Однак, коли фільтр Калмана використовується для оцінки стану x, то розподіл ймовірності, що шукається, є пов'язаним з поточним станом, що обумовлений вимірюваннями по поточний такт. Це досягається за рахунок ізолювання та поділу попередніх станів ймовірністю множини вимірювань.
Це призводить до того, що стадії передбачення та уточнення фільтру Калмана записуються ймовірнісно. Розподіл ймовірності, пов'язаний із передбачуваним станом, є сумою (інтегралом) добутків розподілів ймовірностей, пов'язаних із переходом від (k − 1)-го такту до k-того, та розподілу ймовірностей, пов'язаного з попереднім станом, за всіма можливими .
Множина вимірювань по час t є
Розподіл ймовірності уточнення є пропорційним до добутку ймовірності вимірювання та передбаченого стану.
Знаменник
є членом нормалізації.
Рештою функцій густини ймовірності є
Зауважте, що функція густини ймовірності на попередньому такті індуктивно вважається оціненим станом та коваріацією. Це виправдано, оскільки фільтр Калмана, як оптимальний оцінювач, робить найкраще використання вимірювань, отже, функція густини ймовірності для при заданих вимірюваннях є оцінкою фільтру Калмана.
У зв'язку із наведеною вище рекурсивною баєсовою інтерпретацією, фільтр Калмана можна розглядати як породжувальну модель, тобто як процес для породження потоку випадкових спостережень z = (z0, z1, z2, …). Конкретніше, цим процесом є
Зауважте, що цей процес має ідентичну структуру до прихованої марковської моделі, за тим винятком що дискретні стани та спостереження замінено безперервними змінними, що вибираються з ґаусових розподілів.
У деяких застосуваннях корисно обчислювати ймовірність того, що фільтр Калмана із заданим набором параметрів (апріорним розподілом, моделями переходу та спостереження, та впливами керування) згенерує певний спостережуваний сигнал. Ця ймовірність відома як відособлена правдоподібність, оскільки вона інтегрує над значеннями змінних прихованого стану («відособлює» їх), так що її може бути обчислено з використанням лише спостережуваного сигналу. Ця відособлена правдоподібність є корисною для оцінювання різних варіантів параметрів, або для порівняння фільтру Калмана з іншими моделями за допомогою баєсового порівняння моделей.
Відособлену правдоподібність просто обчислювати як побічний ефект рекурсивного обчислення фільтрування. За ланцюговим правилом цю правдоподібність може бути розкладено як добуток ймовірностей кожного спостереження за умови попередніх спостережень,
і, оскільки фільтр Калмана описує марковський процес, уся доречна інформація з попередніх спостережень міститься в оцінці поточного стану . Отже, відособлена правдоподібність задається як
тобто, добуток ґаусових густин, кожна з яких відповідає густині одного спостереження zk за поточного розподілу фільтрування . Це може легко обчислюватися як просте рекурсивне уточнення; однак, для уникнення зникнення порядку, у практичних реалізаціях зазвичай бажано натомість обчислювати логарифмічну відособлену правдоподібність . Покладаючи, що , це може бути зроблено через правило рекурсивного уточнення
Важливим застосуванням, де використовується така (логарифмічна) правдоподібність спостережень (за заданих параметрів фільтру), є багатоцільове відстежування. Наприклад, розгляньмо сценарій відстежування об'єктів, у якому потік спостережень є входом, проте не відомо, скільки об'єктів є на сцені (або кількість об'єктів є відомою, але більшою за один). За такого сценарію може бути не відомо апріорі, які спостереження/вимірювання яким об'єктом було породжено. Багатогіпотезний відстежувач (англ. Multiple Hypothesis Tracker, MHT) типово формуватиме різні гіпотези пов'язаності слідів, де кожна гіпотеза розглядатиметься як фільтр Калмана (у лінійному ґаусовому випадку) з особливим набором параметрів, пов'язаних із об'єктом, стосовно якого будується гіпотеза. Таким чином, важливо обчислювати правдоподібність спостережень з точки зору різних гіпотез, з тих міркувань, що може бути знайдено найправдоподібнішу.
В інформаційному, або обернено-коваріаційному, фільтрі оцінювану коваріацію та оцінюваний стан заступають інформаційна матриця та інформаційний вектор відповідно. Вони визначаються як:
Аналогічно, передбачувана коваріація та стан мають рівноцінні інформаційні форми, що визначаються як
як мають і коваріація вимірювання та вектор вимірювання, що визначаються як
Оновлення інформації тепер стає простою сумою.
Головною перевагою інформаційного фільтру є те, що на кожному такті може бути відфільтровано N вимірювань, просто додаванням їхніх інформаційних матриць та векторів.
Для передбачення інформаційним фільтром інформаційну матрицю та вектор може бути перетворено назад до їхніх еквівалентів простору станів, або, як варіант, може використовуватися передбачення інформаційного простору.
Зауважте, що F та Q не залежать від часу, і їх може бути кешовано. Зауважте також, що F and Q мають бути оберненими.
Оптимальний згладжувач із фіксованим запізнюванням (англ. fixed-lag smoother) надає оптимальну оцінку для заданого фіксованого запізнювання , використовуючи вимірювання з по . Його може бути виведено з використанням попередньої теорії через поповнений стан, і головним рівнянням цього фільтру є наступне:
де
Якщо коваріацію похибки оцінки визначено так, що
тоді ми маємо, що поліпшення оцінки визначається за формулою:
Оптимальний згладжувач з фіксованим інтервалом надає оптимальну оцінку (), використовуючи вимірювання з фіксованого інтервалу з по . Це також називається згладжуванням Калмана. У загальному користуванні є кілька алгоритмів згладжування.
Згладжувач Рауха-Дуна-Штрібеля (англ. Rauch–Tung–Striebel, RTS) є ефективним двопрохідним алгоритмом для згладжування з фіксованим інтервалом.[27]
Поступальний прохід такий самий, як і алгоритм звичайного фільтру Калмана. Ці відфільтровані оцінки станів та коваріації зберігаються для використання на зворотньому проході.
На зворотньому проході ми обчислюємо згладжені оцінки станів та коваріації . Ми починаємо з крайнього такту, і просуваємося у зворотньому напрямку часу, використовуючи наступні рекурсивні рівняння:
де
Альтернативою алгоритмові Рауха-Дуна-Штрібеля є видозмінений фіксовано-інтервальний згладжувач Брайсона-Фрейзера (англ. modified Bryson–Frazier, MBF), розроблений Бірманом.[22] Він також використовує зворотній прохід, що обробляє дані фільтру Калмана, збережені на поступальному проході. Рівняння для зворотнього проходу включають рекурсивне обчислення даних, що використовуються на кожному моменті часу спостереження для обчислення згладженого стану та коваріації.
Цими рекурсивними рівняннями є
де є залишковою коваріацією, а . Згладжений стан та коваріацію може бути знайдено підстановкою в рівняннях
або
Важливою перевагою видозміненого згладжувача Брайсона-Фрейзера є те, що він не вимагає знаходження оберненої матриці до коваріаційної.
Мінімально-дисперсійний згладжувач (англ. minimum-variance smoother) може досягати найкращої можливої продуктивності відносно похибки, за умови, якщо моделі є лінійними, а їхні параметри та статистики шуму відомі точно.[28] Цей згладжувач є залежним від часу стано-просторовим узагальненням оптимального непричинного (англ. non-causal) фільтру Вінера[en].
Обчислення цього згладжувача виконуються у два проходи. Поступальні обчислення включають передбачувач на один крок вперед, і задаються рівняннями
Наведена вище система відома як обернений фактор Вінера — Хопфа. Зворотня рекурсія є спряженою до наведеної вище поступальної системи. Результат зворотнього проходу може розраховуватися використанням поступальних рівнянь на оберненому в часі , і оберненні результату в часі. У випадку оцінювання виходу згладжена оцінка задається як
Взяття причинної (англ. causal) частини цього мінімально-дисперсійного згладжувача дає
що ідентично мінімально-дисперсному фільтрові Калмана. Наведені вище рішення мінімізують дисперсію похибки оцінки виходу. Зауважте, що виведення згладжувача Рауха-Дуна-Штрібеля передбачає, що базові розподіли є нормальними, тоді як мінімально-дисперсні рішення — ні. Оптимальні згладжувачі для оцінки стану та оцінки входу може бути побудовано аналогічно.
Версію наведеного вище згладжувача для безперервного часу описано в [29][30].
Для обчислення приблизних оцінок максимальної вірогідності невідомих параметрів простору станів у межах мінімально-дисперсійних фільтрів та згладжувачів можуть застосовуватися алгоритми очікування-максимізації. Часто у припущеннях моделі залишаються невизначеності. Згладжувач, що залишає простір для невизначеностей, може бути сконструйовано додаванням додатньовизначеного члену до рівняння Ріккаті.[31]
У випадках, коли моделі є нелінійними, у рекурсіях мінімально-дисперсійного фільтру та згладжувача можуть бути покрокові лінеаризації (розширене фільтрування Калмана).
У 1930-х роках Флетчером (англ. Fletcher) та Мансоном (англ. Munson) було проведено піонерське дослідження зі сприйняття звуків на різних частотах. Їхня праця привела до стандартного способу зваженого вимірювання рівнів звуку в дослідженнях промислового шуму та втрати слуху. Відтоді частотні зважування використовувалися при розробці фільтрів та контролерів для керування продуктивністю в межах цільових частотних смуг.
Зазвичай, функція формування частоти використовується для зважування середньої потужності похибки спектральної щільності у визначеній смузі частот. Нехай — позначає похибку вихідної оцінки, що проявляє звичайний фільтр Калмана. Також, нехай позначає причинну функцію передачі частотного зважування. Оптимальний розв'язок, що мінімізує дисперсію ( — ), виникає просто через побудову .
Будова залишається відкритим питанням. Одним зі шляхів просування є визначити систему, що генерує похибку оцінки, і встановити рівною зворотньому тієї системи.[32] Ця процедура може повторюватися для отримання покращення середньоквадратичної похибки ціною зростання порядка фільтру. Такий самий прийом може застосовуватися і до згладжувачів.
Основний фільтр Калмана обмежено припущенням лінійності. Складніші системи, однак, можуть бути і нелінійними. Нелінійність може бути пов'язана або з моделлю процесу, або з моделлю спостереження, або з обома.
У розширеному фільтрі Калмана (англ. extended Kalman filter, EKF) моделі переходу стану та спостереження не повинні бути обов'язково лінійними функціями стану, натомість вони можуть бути нелінійними диференційовними функціями.
Функція f може використовуватися для обчислення передбачуваного стану з попередньої оцінки, і, аналогічно, функція h може використовуватися для обчислення передбачуваного вимірювання з передбаченого стану. Проте, f та h не можуть застосовуватися до коваріації безпосередньо. Натомість обчислюється матриця часткових похідних (матриця Якобі).
На кожному такті матриця Якобі обчислюється для поточних передбачених станів. Ці матриці можуть використовуватися у рівняннях фільтру Калмана. Цей процес, по суті, лінеаризує нелінійну функцію навколо поточної оцінки.
Коли моделі переходу стану та спостереження, — тобто, функції передбачення та уточнення та , — є сильно нелінійними, розширений фільтр Калмана може демонструвати особливо погану роботу.[33] Це відбувається тому, що коваріація передається через лінеаризацію базової нелінійної моделі. Беззапаховий фільтр Калмана (англ. unscented Kalman filter, UKF)[33] використовує метод детерміністичної вибірки, відомий як беззапахове перетворення, для вибору мінімального набору опорних точок (що називаються сигма-точками) навколо середнього значення. Ці сигма-точки (англ. sigma points) потім пропускаються через нелінійні функції, з чого отримуються середнє значення та коваріація оцінки. Результатом є фільтр, що точніше захоплює справжнє середнє значення та коваріацію. (Це можна перевіряти за допомогою вибірки Монте-Карло, або розкладу апостеріорної статистики в ряд Тейлора.) На додачу, цей метод усуває вимогу явного обчислення матриць Якобі, що для складних функцій може бути саме по собі складною задачею (наприклад, вимагаючи складних похідних при аналітичній реалізації, або будучи обчислювально витратним при реалізації чисельній).
Як і з розширеним фільтром Калмана, передбачення беззапахового фільтру Калмана може використовуватися незалежно від уточнення беззапахового фільтру Калмана, у комбінації з лінійним (або навіть розширеним) уточненням, або навпаки.
Оцінюваний стан та коваріація поповнюються середнім значенням та коваріацією шуму процесу.
Множина 2L + 1 сигма-точок отримується з поповнених стану та коваріації, де L є розмірністю поповненого стану.
де
є i-тим стовпцем матричного квадратного кореню виразу
за визначенням, квадратний корінь матриці задовольняє
Матричний квадратний корінь повинен обчислюватися за допомогою обчислювально ефективних та стабільних методів, таких як розклад Холецького.
де . Зважені сигма-точки рекомбінуються для отримання передбаченого стану та коваріації.
де ваги для стану та коваріації задаються як:
та контролюють розкид сигма-точок. пов'язане з розподілом . Звичайними значеннями є , та . Якщо справжній розподіл є нормальним, то є оптимальним.[34]
Передбачений стан та коваріація поповнюються як раніше, але тепер середнім значенням та коваріацією шуму вимірювання.
Як і раніше, множина 2L + 1 сигма-точок отримується з поповнених стану та коваріації, де L є розмірністю поповненого стану.
Або ж, якщо використовувалося передбачення беззапахового фільтру Калмана, то можуть поповнюватися самі сигма-точки, відповідно до наступних рядків
де
Сигма-точки пропускаються через функцію спостереження h.
Зважені сигма-точки рекомбінуються для отримання передбаченого вимірювання та передбаченої коваріації вимірювання.
Матриця взаємної коваріації стану та вимірювання
використовується для обчислення передавального коефіцієнту Калмана беззапахового фільтру Калмана.
Як і з фільтром Калмана, уточнений стан є передбаченим станом плюс нововведення, зважене передавальним коефіцієнтом Калмана,
А уточнена коваріація є передбаченою коваріацією мінус передбачена коваріація вимірювання, зважена передавальним коефіцієнтом Калмана.
Фільтр Калмана-Бюсі (англ. Kalman–Bucy filter), названий на честь Річарда Сноудена Бюсі (англ. Richard Snowden Bucy), є версією фільтру Калмана для безперервного часу.[35][36]
Він базується на моделі простору стану
де та представляють інтенсивності двох членів з білим шумом та відповідно.
Цей фільтр складається з двох диференційних рівнянь, одного для оцінки стану, та одного для коваріації:
де передавальний коефіцієнт Калмана задається як
Зауважте, що в цьому виразі для коваріація шуму спостереження представляє одночасно й коваріацію похибки передбачення (або нововведення) ; ці коваріації є рівними лише у випадку безперервного часу.[37]
Поділу на кроки передбачення та уточнення фільтрування Калмана для дискретного часу в безперервному часі не існує.
Друге диференційне рівняння, що для коваріації, є прикладом рівняння Ріккаті.
Більшість фізичних систем представляються моделями безперервного часу, тоді як вимірювання для оцінки стану цифровим обробником часто беруться в дискретному часі. Тому модель системи та модель вимірювання задаються як
де
Рівнняння передбачення виводяться з рівнянь фільтру Калмана для безперервного часу без уточнення на підставі вимірювань, тобто, з . Передбачений стан та коваріація обчислюються відповідно розв'язанням системи диференційних рівнянь з початковим значенням, рівним оцінці на попередньому кроці.
Рівняння уточнення ідентичні тим же рівнянням фільтру Калмана для дискретного часу.
Нещодавно традиційний фільтр Калмана було застосовано для відновлення розріджених, можливо, динамічних сигналів із зашумлених спостережень. Обидві праці [38] та [39] використовують поняття теорії стисненого сприйняття[en]/вибірки, такі як властивість обмеженої ізометрії[en] та пов'язані ймовірнісні аргументи відновлення, для послідовної оцінки розрідженого стану в системах, яким притаманна низька розмірність.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.