stringtranslate.com

Альфа-бета-фильтр

Альфа -бета-фильтр (также называемый альфа-бета-фильтром, фильтром fg или фильтром gh [1] ) представляет собой упрощенную форму наблюдателя для приложений оценки, сглаживания данных и управления. Он тесно связан с фильтрами Калмана и наблюдателями линейного состояния, используемыми в теории управления . Его основным преимуществом является то, что он не требует подробной модели системы.

Уравнения фильтра

Альфа-бета-фильтр предполагает, что система адекватно аппроксимируется моделью, имеющей два внутренних состояния, причем первое состояние получается путем интегрирования значения второго состояния по времени. Измеренные выходные значения системы соответствуют наблюдениям первого состояния модели плюс возмущения. Это приближение очень низкого порядка адекватно для многих простых систем, например, механических систем, где положение определяется как интеграл скорости по времени. Основываясь на аналогии механической системы, эти два состояния можно назвать положением x и скоростью v . Предполагая, что скорость остается примерно постоянной в течение небольшого интервала времени ΔT между измерениями, состояние положения проецируется вперед, чтобы спрогнозировать его значение в следующий момент выборки с помощью уравнения 1.

Поскольку переменная скорости v предполагается постоянной, ее прогнозируемое значение в следующий момент выборки равно текущему значению.

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

Ожидается, что результаты измерения будут отклоняться от прогноза из-за шума и динамических эффектов, не включенных в упрощенную динамическую модель. Эту ошибку прогнозирования r также называют остатком или инновацией , на основе статистической интерпретации или интерпретации фильтрации Калмана.

Предположим, что невязка r положительна. Это могло произойти из-за того, что предыдущая оценка x была низкой, предыдущая оценка v была низкой или какая-то комбинация этих двух. Альфа-бета-фильтр принимает выбранные альфа- и бета- константы (от которых фильтр получил свое название), использует альфа -умноженное на отклонение r для корректировки оценки положения и использует бета -умноженное на отклонение r для корректировки оценки скорости. Дополнительный коэффициент ΔT обычно служит для нормализации величин множителей.

Поправки можно рассматривать как небольшие шаги по оценке направления градиента. По мере накопления этих корректировок ошибка в оценках состояния уменьшается. Для сходимости и стабильности значения множителей альфа и бета должны быть положительными и небольшими: [2]

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

Значения альфа и бета обычно подбираются экспериментально. В целом, больший коэффициент усиления альфа- и бета-фактора имеет тенденцию обеспечивать более быструю реакцию при отслеживании переходных изменений, в то время как меньший коэффициент усиления альфа- и бета-версии снижает уровень шума в оценках состояния. Если найден хороший баланс между точным отслеживанием и снижением шума и алгоритм эффективен, отфильтрованные оценки будут более точными, чем прямые измерения. Это мотивирует называть альфа-бета-процесс фильтром .

Краткое описание алгоритма

Инициализируйте.

  1. Установите начальные значения оценок состояния x и v , используя предварительную информацию или дополнительные измерения; в противном случае установите значения начального состояния равными нулю.
  2. Выберите значения коэффициентов усиления альфа- и бета- коррекции.

Обновлять. Повторите для каждого временного шага ΔT:

  1. Оценки состояния проекта x и v с использованием уравнений 1 и 2
  2. Получите текущее измерение выходного значения
  3. Вычислите невязку r, используя уравнение 3
  4. Исправьте оценки состояния, используя уравнения 4 и 5.
  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 ;                плавать xk , vk , rk ; плавать хм ;    в то время как ( 1 ) { xm = rand () % 100 ; // входной сигнал      хк = хк_1 + ( вк_1 * дт ); вк = vk_1 ;        rk = хм - хк ;    хк += а * рк ; vk += ( b * rk ) / dt ;          хк_1 = хк ; вк_1 = вк ;    printf ( "%f \t %f \n " , xm , xk_1 ); спать ( 1 ); } }  

Результат

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

Чем выше параметр альфа, тем сильнее влияние входа x и тем меньше затухания. Низкое значение бета эффективно контролирует внезапные скачки скорости. Кроме того, когда альфа превышает единицу, выходные данные становятся более грубыми и неравномерными, чем входные. [3]

Отношения с общими государственными наблюдателями

Более общие наблюдатели состояния, такие как наблюдатель Люенбергера для линейных систем управления, используют строгую модель системы. Линейные наблюдатели используют матрицу усиления для определения поправок к оценке состояния на основе множественных отклонений между измеряемыми переменными и прогнозируемыми выходными данными, которые представляют собой линейные комбинации переменных состояния. В случае альфа-бета-фильтров эта матрица усиления сокращается до двух членов. Не существует общей теории для определения наилучших условий усиления наблюдателя, и обычно коэффициенты усиления корректируются экспериментально для обоих случаев.

Линейные уравнения наблюдателя Люенбергера сводятся к альфа-бета-фильтру за счет применения следующих специализаций и упрощений.

Связь с фильтрами Калмана

Фильтр Калмана оценивает значения переменных состояния и корректирует их аналогично альфа-бета-фильтру или наблюдателю состояния. Однако фильтр Калмана делает это гораздо более формальным и строгим образом. Принципиальные различия между фильтрами Калмана и альфа-бета-фильтрами заключаются в следующем.

Фильтр Калмана, предназначенный для отслеживания движущегося объекта с использованием модели целевой динамики (процесса) с постоянной скоростью (т. е. постоянной скорости между обновлениями измерений) с постоянной ковариацией шума процесса и ковариацией измерения, будет сходиться к той же структуре, что и альфа-бета-фильтр. . Однако коэффициент усиления фильтра Калмана вычисляется рекурсивно на каждом временном шаге с использованием предполагаемого процесса и статистики ошибок измерений, тогда как коэффициент усиления альфа-бета вычисляется специально.

Выбор параметров

Альфа-бета-фильтр становится устойчивым фильтром Калмана, если параметры фильтра рассчитываются на основе интервала выборки , дисперсии процесса и дисперсии шума, как показано ниже [4] [5]

Такой выбор параметров фильтра минимизирует среднеквадратическую ошибку.

Устойчивая инновационная дисперсия может быть выражена как:

Вариации

Альфа-фильтр

Более простым членом этого семейства фильтров является альфа-фильтр, который наблюдает только одно состояние:

с оптимальным параметром, рассчитанным следующим образом: [4]

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

Альфа-бета-гамма-фильтр

Когда вторая переменная состояния меняется быстро, т.е. когда ускорение первого состояния велико, может быть полезно расширить состояния альфа-бета-фильтра на один уровень. В этом расширении вторая переменная состояния v получается путем интегрирования третьего состояния ускорения , аналогично тому, как первое состояние получается путем интегрирования второго. В систему уравнений добавляется уравнение состояния a . Третий множитель, gamma , выбирается для применения поправок к новым оценкам состояния . Это дает уравнения обновления альфа-бета-гаммы . [1]

Возможны аналогичные расширения для дополнительных более высоких порядков, но большинство систем более высокого порядка имеют тенденцию иметь значительные взаимодействия между несколькими состояниями, поэтому аппроксимация динамики системы как простой цепочки интеграторов с меньшей вероятностью окажется полезной.

Расчет оптимальных параметров для альфа-бета-гамма-фильтра немного сложнее, чем для альфа-бета-фильтра: [5]

Смотрите также

Рекомендации

  1. ^ аб Эли Брукнер: Отслеживание и фильтрация Калмана стали проще. Wiley-Interscience, 1-е издание, 4, 1998 г.
  2. ^ К. Фрэнк Асквит: Выбор веса в линейных фильтрах первого порядка. Технический отчет, Армейский лабораторный центр управления и управления, Редстоунский арсенал, Алабама, 1969. https://doi.org/10.21236/ad0859332
  3. ^ ab Подавление тремора в портативных микрохирургических устройствах, TC83, Гаурав Миттал, Дипанш Сегал и Харсимран Джит Сингх, Инженерный колледж Пенджаба
  4. ^ ab Пол Р. Калата: Индекс отслеживания: обобщенный параметр для средств отслеживания целей α-β и α-β-γ. Транзакции IEEE по аэрокосмическим и электронным системам, AES-20(2):174–181, март 1984 г.
  5. ^ ab Дж. Э. Грей и У. Дж. Мюррей: вывод аналитического выражения для индекса отслеживания альфа-бета-гамма-фильтра. IEEE Транс. по аэрокосмическим и электронным системам, 29: 1064–1065, 1993.
Источники

Внешние ссылки