А́льфа-бе́та-фільтр (також f-g-фільтр або g-h-фільтр, ) — це спрощена форма , яку застосовують для оцінювання, згладжування даних і керування. Він тісно пов'язаний із фільтрами Калмана та лінійними спостережниками стану, які використовують у теорії керування. Його принципова перевага полягає в тому, що він не потребує докладної моделі системи.

Рівняння фільтра Альфа-бета-фільтр виходить з того, що систему можливо достатньо точно наближувати моделлю з двома внутрішніми змінними стану, де першу змінну отримують інтегруванням значення другої за часом. Виміряні значення виходу системи відповідають спостереженням першої змінної стану з додаванням збурень. Таке наближення дуже низького порядку достатнє для багатьох простих систем, наприклад механічних систем, у яких положення отримують як інтеграл швидкості за часом. За аналогією з механічною системою ці дві змінні стану можливо назвати положенням x і швидкістю v. Якщо припустити, що швидкість залишається приблизно сталою протягом малого інтервалу часу ΔT між вимірюваннями, стан положення екстраполюють уперед, щоби за рівнянням 1 передбачити його значення в наступний момент дискретизації.

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

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

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

Припустімо, що залишок r додатний. Це може бути наслідком того, що попередня оцінка x була заниженою, попереднє значення v було заниженим, або мало місце певне поєднання цих двох чинників. В альфа-бета-фільтрі використовують обрані сталі альфа і бета (від яких і походить назва фільтра): добуток альфа на відхилення r використовують для коригування оцінки положення, а добуток бета на відхилення r — для коригування оцінки швидкості. Додатковий множник ΔT традиційно слугує для узгодження розмірностей цих множників.

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

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

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

Опис алгоритму Початковий стан. Задати початкові значення оцінок стану x і v, використовуючи апріорну інформацію або додаткові вимірювання; інакше задати початкові значення стану рівними нулю. Обрати значення коригувальних передавальних коефіцієнтів альфа і бета.

Уточнення. Повторювати для кожного часового кроку ΔT: Екстраполювати оцінки стану x і v за рівняннями 1 і 2. Отримати поточне вимірювання вихідного значення. Обчислити залишок r за рівнянням 3. Скоригувати оцінки стану за рівняннями 4 і 5. Подати оновлене значення x і, за потреби, v на виходи фільтра.

Приклад програми Альфа-бета-фільтр може бути втілено мовою C так:

#include <stdio.h> #include <stdlib.h>

int main() { float dt = 0.5; float xk_1 = 0, vk_1 = 0, a = 0.85, b = 0.005;

float xk, vk, rk; float xm;

while (1) { xm = rand() % 100; // вхідний сигнал

xk = xk_1 + (vk_1 * dt); vk = vk_1;

rk = xm - xk;

xk += a * rk; vk += (b * rk) / dt;

xk_1 = xk; vk_1 = vk;

printf("%f \t %f\n", xm, xk_1); sleep(1);

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

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

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

лінійного спостережника Люнбергера зводяться до рівнянь альфа-бета-фільтра за таких спеціалізацій і спрощень:

Дискретна матриця переходу стану A є квадратною матрицею розміру 2, в якій усі елементи головної діагоналі дорівнюють 1, а елементи першої наддіагоналі — ΔT. Матриця рівняння спостереження C має один рядок, який виділяє значення першої змінної стану як вихід. Матриця коригувальних передавальних коефіцієнтів фільтра L має один стовпець, що містить значення передавальних коефіцієнтів альфа і бета. Будь-який відомий керувальний сигнал для другого складника вектора стану подають як частину вектора сигналу входу u; інакше вектор u прирівнюють до нуля. Матриця зв'язку зі входом B має ненульовий передавальний коефіцієнт як останній елемент, якщо вектор u ненульовий.

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

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

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

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

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

Дисперсію нововведення у стаціонарному режимі можливо виразити так:

Варіанти

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

з оптимальним параметром, який обчислюють так:

Цей розрахунок однаковий для ковзного середнього та фільтра низьких частот. Експоненційне згладжування математично тотожне запропонованому альфа-фільтру.

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

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

Обчислення оптимальних параметрів альфа-бета-гамма-фільтра дещо складніше, ніж для альфа-бета-фільтра:

Див. також Фільтр Калмана Теорія керування Простір станів (теорія керування) Ковзне середнє

Примітки

Джерела

Посилання Приклад вихідного коду альфа-бета-фільтра мовою C# Приклад вихідного коду альфа-бета-фільтра мовою C Характеристики простежування альфа-бета-спостережника порівняно з фільтром Калмана The alpha-beta-gamma Filter  — онлайн-посібник Алекса Беккера з численними числовими прикладами та інтуїтивними поясненнями.