exponenta event banner

Расширенные и незараженные алгоритмы фильтра Калмана для оценки состояния в режиме онлайн

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

В командной строке функции используются для построения extendedKalmanFilter или unscentedKalmanFilter объект для требуемого алгоритма и указать, являются ли члены шума процесса и измерения в функциях аддитивными или неаддитивными. После создания объекта используется predict и correct команды для оценки состояний с использованием данных в реальном времени. Для получения информации о порядке выполнения этих команд см. predict и correct справочные страницы.

В Simulink эти функции задаются в блоках Расширенный фильтр Калмана (Extended Kalman Filter) и Фильтр Калмана (Uncented Kalman Filter). Кроме того, можно указать, являются ли условия шума процесса и измерения в функциях аддитивными или неаддитивными. В блоках программное обеспечение определяет порядок, в котором выполняется прогнозирование и коррекция оценок состояния.

Расширенный алгоритм фильтра Калмана

extendedKalmanFilter команда и расширенный блок фильтра Калмана реализуют алгоритм дискретного фильтра Калмана первого порядка. Предположим, что уравнения перехода состояния и измерения для дискретно-временной нелинейной системы имеют неаддитивные условия процесса и шума измерения с матрицами Q и R среднего нуля и ковариации соответственно:

x [k + 1] = f (x [k], w [k], us [k]) y [k] = h (x [k], v [k], um [k]) w [k] ~ (0, Q [k]) v [k] ~ (0, R [k])

Здесь f - нелинейная функция перехода состояний, описывающая эволюцию состояний x от одного временного шага к следующему. Нелинейная функция измерения h x к измерениям y на шаге времени k. Эти функции могут также иметь дополнительные входные аргументы, которые обозначаются us и um. Уровень технологического и измерительного шума: w и vсоответственно. Вы предоставляете Q и R.

В блоке программное обеспечение решает порядок предсказания и коррекции оценок состояния. В командной строке определяется порядок. Для получения информации о порядке выполнения этих команд см. predict и correct справочные страницы. Предполагая, что вы реализуете correct команда перед predict, программное обеспечение реализует алгоритм следующим образом:

  1. Инициализируйте объект фильтра с начальными значениями состояния, x[0]и ковариационная матрица ошибки оценки состояния, P.

    x ^ [0 | 1] = E (x [0]) P [0 | 1] = E (x [0] x ^ [0 | − 1]) (x [0] − x ^ [0 | − 1]) T

    Здесь x ^ - оценка состояния, а x ^ [ka 'kb] - оценка состояния на шаге времени.ka использование измерений на временных этапах 0,1,...,kb. Таким образом, x ^ [0 | − 1] является наилучшим предположением значения состояния перед выполнением любых измерений. Это значение задается при построении фильтра.

  2. Для временных шагов k = 0,1,2,3,... выполните следующее:

    1. Вычислите якобиан функции измерения и обновите ковариацию ошибок оценки состояния и состояния, используя измеренные данные. y[k]. В командной строке correct выполняет это обновление.

      C[k]=∂h∂x'x^[k'k−1]S[k]=∂h∂v'x^[k'k−1]

      Программа вычисляет эти матрицы якобиана численно, если не указан аналитический якобиан.

      K [k] = P [k 'k 1] C [k] T (C [k] P [k' k 1] C [k] T + S [k] R [k] S [k] T) 1x ^ [k 'k] = x ^ [k' k 1] + K [k] (y [k]  − h ( x ^ [

      Здесь K это выигрыш Калмана.

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

      A[k]=∂f∂x'x^[k'k]G[k]=∂f∂w'x^[k'k]

      Программа вычисляет эти матрицы якобиана численно, если не указан аналитический якобиан. Это численное вычисление может увеличить время обработки и численную неточность оценки состояния.

      P [k + 1 | k] = A [k] P [k 'k] A [k] T + G [k] Q [k] G [k] Tx ^ [k + 1 | k] = f (x ^ [k' k], 0, us [k])

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

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

Описанные выше шаги алгоритма предполагают, что в функциях перехода и измерения состояния имеются неаддитивные шумовые члены. Если в функциях есть аддитивные шумовые члены, изменения в алгоритме:

  • Если технологический шум w является аддитивным, то есть уравнение перехода состояния имеет вид x [k] = f (x [k 1], us [k 1]) + w [k − 1], то якобовская матрицаG[k] является единичной матрицей.

  • Если шум измерения v является аддитивным, то есть уравнение измерения имеет вид y [k] = h (x [k], um [k]) + v [k], затем матрица ЯкобианаS[k] является единичной матрицей.

Аддитивные шумовые члены в функциях состояния и перехода сокращают время обработки.

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

Алгоритм фильтра Калмана без запаха

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

Предположим, что уравнения перехода и измерения состояния для дискретно-временной нелинейной системы M-состояния имеют аддитивные условия процесса и шума измерения с нулевым средним значением и ковариациями Q и R соответственно:

x [k + 1] = f (x [k], us [k]) + w [k] y [k] = h (x [k], um [k]) + v [k] w [k] ~ (0, Q [k]) v [k] ~ (0, R [k])

Вы предоставляете начальные значения Q и R в ProcessNoise и MeasurementNoise свойства объекта фильтра Калмана без запаха.

В блоке программное обеспечение решает порядок предсказания и коррекции оценок состояния. В командной строке определяется порядок. Для получения информации о порядке выполнения этих команд см. predict и correct справочные страницы. Предполагая, что вы реализуете correct команда перед predict, программное обеспечение реализует алгоритм следующим образом:

  1. Инициализируйте объект фильтра с начальными значениями состояния, x[0]и ковариация ошибок оценки состояния, P.

    x ^ [0 | 1] = E (x [0]) P [0 | 1] = E (x [0] x ^ [0 | − 1]) (x [0] − x ^ [0 | − 1]) T

    Здесь x ^ - оценка состояния, а x ^ [ka 'kb] - оценка состояния на шаге времени.ka использование измерений на временных этапах 0,1,...,kb. Таким образом, x ^ [0 | − 1] является наилучшим предположением значения состояния перед выполнением любых измерений. Это значение задается при построении фильтра.

  2. Для каждого временного шага k обновите ковариацию состояния и ошибки оценки состояния, используя измеренные данные, y[k]. В программном обеспечении, correct выполняет это обновление.

    1. Выберите сигма-точки x ^ (i) [k 'k − 1] на временном шаге k.

      x ^ (0) [k 'k  − 1] = x ^ [k' k 1] x  ^ ( i ) [k 'k 1] = x  ^  [   k' k  − 1] + Δx (i) i  =  1 , .. . , 2MΔx (i) = (  cP [k 'k 1]) i =  1,..., MΔx (M  +  i) =

      Где c = α2 (M + start) - масштабный коэффициент, основанный на количестве состояний M, и параметрах α и Дополнительные сведения о параметрах см. в разделе Эффект параметров альфа, бета и каппа. cP является квадратным корнем матрицы из cP, так  что cP (cP) T = cP и (cP) i является i-м столбцом cP.

    2. Функция нелинейных измерений используется для вычисления прогнозируемых измерений для каждой из сигма-точек.

      y ^ (i) [k 'k 1] = h (x ^ (i) [ k' k  −  1 ] , um [k]) i = 0,1,..., 2M

    3. Объедините предсказанные измерения, чтобы получить предсказанное измерение в момент времени k.

      y^[k]=∑i=02MWM (i) y ^ (i) [k 'k 1] WM (0) = 1 Mα2 (M +       

    4. Оцените ковариацию прогнозируемого измерения. Добавить R[k] для учета шума измерения присадки.

      Py=∑i=02MWc (i) (y ^ (i) [k 'k 1] y ^ [k]) (y ^ (i) [k' k 1] y ^ [k]) T + R [k] Wc (0) = (2    α2  +  β) Mα2 (M +

      Сведения о параметре β см. в разделе Эффект параметров альфа, бета и каппа.

    5. Оцените перекрестную ковариацию между x ^ [k 'k − 1] и y ^ [k].

      Pxy = 12α2 (m + λ) ∑i=12M (x ^ (i) [k 'k 1] x ^ [k' k 1]) (y ^ (i) [k 'k − 1] − y ^ [k]) T

      Суммирование начинается от i = 1, поскольку x ^ (0) [k 'k 1] x ^ [k' k − 1] = 0.

    6. Получить ковариацию оцененного состояния и ошибки оценки состояния на временном шаге k.

      K = PxyPy 1x ^ [k 'k] = x ^ [k' k 1] + K (y [k] y ^ [k]) P [k 'k] = P [k' k − 1] − KPyKkT

      Здесь K это выигрыш Калмана.

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

    1. Выберите сигма-точки x ^ (i) [k 'k] на временном шаге k.

      x ^ (0) [ k 'k ] = x ^ [k' k] x ^ ( i )  [  k 'k ] = x ^ [k' k]  +   Δx  ( i ) i = 1,...,  2MΔx  ( i )  = (cP [k 'k] )  i  = 1,..., MΔx (M  + i) = (cP  [ k' k]) i = 1,

    2. Функция перехода нелинейного состояния используется для вычисления прогнозируемых состояний для каждой из сигма-точек.

      x ^ (i) [k + 1 | k] = f (x ^ (i)  [k 'k], us [k])

    3. Объединение предсказанных состояний для получения предсказанных состояний в момент времени k + 1. Эти значения используются correct на следующем шаге времени.

      x^[k+1|k]=∑i=02MWM (i) x ^ (i) [k + 1 | k] WM (0) = 1 Mα2 (M  +   

    4. Вычислите ковариацию предсказанного состояния. Добавить Q[k] для учета аддитивного технологического шума. Эти значения используются correct на следующем шаге времени.

      P[k+1|k]=∑i=02MWc (i) (x ^ (i) [k + 1 | k] x ^ [k + 1 | k]) (x ^ (i) [k + 1 | k] x ^ [k + 1 | k]) T + Q [k]  Wc  (0) = (2 − α2 + β) − Mα2 (M +

Блок «Фильтр Калмана без запаха» поддерживает несколько функций измерения. Эти измерения могут иметь разное время выборки, если их время выборки кратно целому числу времени выборки перехода состояния. В этом случае выполняется отдельный этап коррекции, соответствующий измерениям из каждой функции измерения.

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

Если шумовые члены не являются аддитивными, основными изменениями алгоритма являются:

  • correct команда генерирует 2*(M+V)+1 сигма-точки с использованием P[k|k-1] и R[k], где V - количество элементов в шуме измерения v[k]. R[k] термин больше не добавляется в шаге 2 (d) алгоритма, поскольку дополнительные сигма-точки фиксируют влияние шума измерения наPy.

  • predict команда генерирует 2*(M+W)+1 сигма-точки с использованием P[k|k] и Q[k], где W - количество элементов в технологическом шуме w[k]. Q[k] термин больше не добавляется в шаге 3 (d) алгоритма, поскольку дополнительные сигма-точки фиксируют влияние шума процесса наP[k+1|k].

Влияние параметров альфа, бета и каппа

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

Разброс сигма-точек вокруг среднего значения состояния управляется двумя параметрами α и λ. Третий параметр, β, влияет на веса преобразованных точек во время вычислений ковариации состояния и измерения.

  • α - Определяет разброс сигма-точек вокруг среднего значения состояния. Обычно это небольшое положительное значение. Разброс сигма-точек пропорционален α. Меньшие значения соответствуют сигма-точкам, более близким к среднему состоянию.

  • start- второй параметр масштабирования, который обычно устанавливается равным 0. Меньшие значения соответствуют сигма-точкам, более близким к среднему состоянию. Разброс пропорционален квадратному корню, составляющему

  • β - Включает в себя предварительное знание распределения государства. Для гауссовых распределений β = 2 является оптимальным.

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

Ссылки

[1] Саймон, Дан. оптимальная оценка состояния: Калман, H Бесконечность и нелинейные подходы. Хобокен, Нью-Джерси: Джон Уайли и сыновья, 2006.

[2] Ван дер Мерве, Рудольф и Эрик А. Ван. Международная конференция IEEE 2001 по акустике, речи и обработке сигналов. Разбирательство (Cat. № 01CH37221), 6:3461–64. Солт-Лейк-Сити, УТ, США: IEEE, 2001. https://doi.org/10.1109/ICASSP.2001.940586.

См. также

Функции

Блоки

Внешние веб-сайты