Альфа-бета-фильтр
Эта статья может сбивать с толку или быть непонятной читателям . ( февраль 2009 г. ) |
Альфа -бета-фильтр (также называемый альфа-бета-фильтром, фильтром fg или фильтром gh). [1] ) — это упрощенная форма наблюдателя для приложений оценки, сглаживания данных и управления. Он тесно связан с фильтрами Калмана и наблюдателями линейного состояния, используемыми в теории управления . Его главное преимущество состоит в том, что он не требует подробной модели системы.
Уравнения фильтра
[ редактировать ]Альфа-бета-фильтр предполагает, что система адекватно аппроксимируется моделью, имеющей два внутренних состояния, причем первое состояние получается путем интегрирования значения второго состояния по времени. Измеренные выходные значения системы соответствуют наблюдениям первого состояния модели плюс возмущения. Это приближение очень низкого порядка адекватно для многих простых систем, например, механических систем, где положение определяется как интеграл скорости по времени. Основываясь на аналогии механической системы, эти два состояния можно назвать положением x и скоростью v . Предполагая, что скорость остается примерно постоянной в течение небольшого интервала времени ΔT между измерениями, состояние положения проецируется вперед, чтобы спрогнозировать его значение в следующий момент выборки с помощью уравнения 1.
Поскольку переменная скорости v предполагается постоянной, ее прогнозируемое значение в следующий момент выборки равно текущему значению.
Если известна дополнительная информация о том, как управляющая функция будет изменять состояние v в течение каждого интервала времени, уравнение 2 можно изменить, включив в нее ее.
Ожидается, что результат измерения будет отклоняться от прогноза из-за шума и динамических эффектов, не включенных в упрощенную динамическую модель. Эту ошибку прогнозирования r также называют остатком или инновацией , на основе статистической интерпретации или интерпретации фильтрации Калмана.
Предположим, что невязка r положительна. Это могло произойти из-за того, что предыдущая оценка x была низкой, предыдущая оценка v была низкой или какая-то комбинация этих двух. Альфа-бета-фильтр принимает выбранные альфа- и бета- константы (от которых фильтр получил свое название), использует умноженное на альфа отклонение r для корректировки оценки положения и использует умноженное на бета отклонение r для корректировки оценки скорости. Дополнительный коэффициент ΔT обычно служит для нормализации величин множителей.
Поправки можно рассматривать как небольшие шаги по оценке направления градиента. По мере накопления этих корректировок ошибка в оценках состояния уменьшается. Для сходимости и стабильности значения множителей альфа и бета должны быть положительными и небольшими: [2]
Шум подавляется только в том случае, если , в противном случае шум усиливается.
Значения альфа и бета обычно подбираются экспериментально. В целом, большие коэффициенты усиления альфа- и бета-фактора, как правило, обеспечивают более быструю реакцию при отслеживании переходных изменений, тогда как меньшие коэффициенты усиления альфа- и бета- версии снижают уровень шума в оценках состояния. Если найден хороший баланс между точным отслеживанием и снижением шума и алгоритм эффективен, отфильтрованные оценки будут более точными, чем прямые измерения. Это мотивирует называть альфа-бета-процесс фильтром .
Краткое описание алгоритма
[ редактировать ]Инициализируйте.
- Установите начальные значения оценок состояния x и v , используя предварительную информацию или дополнительные измерения; в противном случае установите значения начального состояния равными нулю.
- Выберите значения коэффициентов альфа- и бета- коррекции. усиления
Обновлять. Повторите для каждого временного шага ΔT:
- Оценки состояния проекта x и v с использованием уравнений 1 и 2
- Получите текущее измерение выходного значения
- Вычислите невязку r, используя уравнение 3
- Исправьте оценки состояния, используя уравнения 4 и 5.
- Отправьте обновленный x и, возможно, v в качестве выходных данных фильтра.
Пример программы
[ редактировать ]Альфа-бета-фильтр может быть реализован на C. [3] следующее:
#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; // input signal
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);
}
}
Результат
[ редактировать ]На следующих изображениях показан результат работы вышеуказанной программы в графическом формате. На каждом изображении синяя кривая — это входной сигнал; выходные данные имеют красный цвет на первом изображении, желтый на втором и зеленый на третьем. Для первых двух изображений выходной сигнал заметно более плавный, чем входной, и в нем отсутствуют резкие всплески, наблюдаемые на входе. Кроме того, выходные данные перемещаются в соответствии с оценкой направления градиента входных данных.
Чем выше параметр альфа, тем сильнее влияние входа x и тем меньше затухания. Низкое значение бета эффективно контролирует внезапные скачки скорости. Кроме того, когда альфа превышает единицу, выходные данные становятся более грубыми и неравномерными, чем входные. [3]
Отношения с общими государственными наблюдателями
[ редактировать ]Более общие наблюдатели состояния, такие как наблюдатель Люенбергера для линейных систем управления, используют строгую модель системы. Линейные наблюдатели используют матрицу усиления для определения поправок к оценке состояния на основе множественных отклонений между измеряемыми переменными и прогнозируемыми выходными данными, которые представляют собой линейные комбинации переменных состояния. В случае альфа-бета-фильтров эта матрица усиления сокращается до двух членов. Не существует общей теории для определения наилучших условий усиления наблюдателя, и обычно коэффициенты усиления корректируются экспериментально для обоих случаев.
Линейные уравнения наблюдателя Люенбергера сводятся к альфа-бета-фильтру за счет применения следующих специализаций и упрощений.
- Матрица перехода дискретных состояний A представляет собой квадратную матрицу размерности 2, где все члены главной диагонали равны 1, а первые супердиагональные члены равны ΔT .
- Матрица уравнения наблюдения C имеет одну строку, которая выбирает значение первой переменной состояния для вывода.
- Матрица коэффициента усиления коррекции фильтра L имеет один столбец, содержащий значения коэффициента усиления альфа и бета.
- Любой известный управляющий сигнал для второго термина состояния представляется как часть вектора входного сигнала u , в противном случае вектор u устанавливается равным нулю.
- Входная матрица связи B имеет ненулевой коэффициент усиления в качестве последнего элемента, если вектор u не равен нулю.
Связь с фильтрами Калмана
[ редактировать ]Фильтр Калмана оценивает значения переменных состояния и корректирует их аналогично альфа-бета-фильтру или наблюдателю состояния. Однако фильтр Калмана делает это гораздо более формальным и строгим способом. Принципиальные различия между фильтрами Калмана и альфа-бета-фильтрами заключаются в следующем.
- Как и наблюдатели состояния, фильтры Калмана используют детальную динамическую модель системы, которая не ограничивается двумя переменными состояния.
- Как и наблюдатели состояния, фильтры Калмана обычно используют несколько наблюдаемых переменных для корректировки оценок переменных состояния, и они не обязательно должны быть прямыми измерениями состояний отдельных систем.
- Фильтр Калмана использует модели ковариационного шума для состояний и наблюдений. С их помощью автоматически обновляется зависящая от времени оценка ковариации состояния, и на ее основе усиления Калмана вычисляются члены матрицы . Коэффициент усиления альфа-бета-фильтра выбирается вручную и является статическим.
- Для определенных классов задач фильтр Калмана является оптимальным по Винеру , тогда как альфа-бета-фильтрация, как правило, неоптимальна.
Фильтр Калмана, предназначенный для отслеживания движущегося объекта с использованием модели целевой динамики (процесса) с постоянной скоростью (т. е. постоянной скорости между обновлениями измерений) с постоянной ковариацией шума процесса и ковариацией измерения, будет сходиться к той же структуре, что и альфа-бета-фильтр. . Однако коэффициент усиления фильтра Калмана вычисляется рекурсивно на каждом временном шаге с использованием предполагаемого процесса и статистики ошибок измерений, тогда как коэффициент усиления альфа-бета вычисляется специально.
Выбор параметров
[ редактировать ]Альфа-бета-фильтр становится установившимся фильтром Калмана, если параметры фильтра рассчитываются на основе интервала выборки. , дисперсия процесса и дисперсия шума так [4] [5]
Такой выбор параметров фильтра минимизирует среднеквадратическую ошибку.
Устойчивая инновационная дисперсия может быть выражено как:
Вариации
[ редактировать ]Альфа-фильтр
[ редактировать ]Более простым членом этого семейства фильтров является альфа-фильтр, который наблюдает только одно состояние:
с оптимальным параметром, рассчитанным следующим образом: [4]
Этот расчет идентичен для скользящего среднего и фильтра нижних частот . Экспоненциальное сглаживание математически идентично целевому альфа-фильтру.
Альфа-бета-гамма-фильтр
[ редактировать ]Когда вторая переменная состояния меняется быстро, т.е. когда ускорение первого состояния велико, может быть полезно расширить состояния альфа-бета-фильтра на один уровень. В этом расширении вторая переменная состояния v получается в результате интегрирования третьего состояния ускорения , аналогично тому, как первое состояние получается путем интегрирования второго. уравнение состояния a К системе уравнений добавляется . Третий множитель, gamma , выбирается для применения поправок к новым оценкам состояния . Это дает уравнения обновления альфа-бета-гаммы . [1]
Возможны аналогичные расширения для дополнительных более высоких порядков, но большинство систем более высокого порядка имеют тенденцию иметь значительные взаимодействия между несколькими состояниями. [ нужна ссылка ] поэтому приближение динамики системы к простой цепочке интеграторов вряд ли окажется полезным.
Расчет оптимальных параметров для альфа-бета-гамма-фильтра немного сложнее, чем для альфа-бета-фильтра: [5]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б Эли Брукнер: Отслеживание и фильтрация Калмана стали проще. Wiley-Interscience, 1-е издание, 4, 1998 г.
- ^ К. Фрэнк Асквит: Выбор веса в линейных фильтрах первого порядка. Технический отчет, Армейский лабораторный центр управления и контроля, Редстоунский арсенал, Алабама, 1969 г. https://doi.org/10.21236/ad0859332
- ^ Jump up to: а б Подавление тремора в портативных микрохирургических устройствах, TC83, Гаурав Миттал, Дипанш Сегал и Харсимран Джит Сингх, Инженерный колледж Пенджаба
- ^ Jump up to: а б Пол Р. Калата: Индекс отслеживания: обобщенный параметр для средств отслеживания целей α-β и α-β-γ. Транзакции IEEE по аэрокосмическим и электронным системам, AES-20(2):174–181, март 1984 г.
- ^ Jump up to: а б Дж. Э. Грей и У. Дж. Мюррей: вывод аналитического выражения для индекса отслеживания альфа-бета-гамма-фильтра. IEEE Транс. по аэрокосмическим и электронным системам, 29: 1064–1065, 1993.
- Источники
- «Альфа-бета-фильтр», Пенойер, Роберт; Журнал пользователей C, июль 1993 г.
- «Мониторинг частоты вращения двигателя: альфа-бета-фильтр», Microstar Laboratories
- «Согласование конструкции стационарного фильтра Калмана и альфа-бета-фильтра», Пейнтер, Дж. Х.; Керстеттер, Д.; Джоуерс, С. Транзакции IEEE по аэрокосмическим и электронным системам, том 26, выпуск 6, ноябрь 1990 г., стр. 986–991.
- Альфа-бета-фильтр с фиксированной задержкой для сглаживания целевой траектории Ogle, TL; Блэр, WD Aerospace and Electronic Systems, IEEE Transactions, том 40, выпуск 4, октябрь 2004 г., стр. 1417–1421.
- «Описание альфа-бета-фильтра в декартовых координатах», Кантрелл, Бен Х., ВМФ, ВАШИНГТОН, 21 марта 1973 г.
- «Сравнение четырех вариантов фильтрации для задачи радиолокационного слежения», Лоутон, Джон А.; Есионовский, Роберт Дж.; Зарчан, Пол. ЦЕНТР НАДВОДНОЙ ВОЙНЫ ВМФ ДАЛГРЕН, ВА, 1979 г.
- Математические методы объединения мультисенсорных данных , Дэвид Ли Холл, Соня А.Х., Artech House, 2004 г., ISBN 1-58053-335-3 , раздел 4.4.4
Внешние ссылки
[ редактировать ]- Пример исходного кода Alpha-Beta C#
- Пример исходного кода Alpha-Beta C
- Отслеживание производительности альфа-бета-трекера в сравнении с фильтром Калмана
- Альфа-бета-гамма-фильтр . Онлайн-руководство со множеством числовых примеров и интуитивно понятными объяснениями Алекса Беккера.