Использование фильтров Калмана. Фильтр Калмана – Руководство по практической реализации (с кодом!)

Детские товары 17.05.2019
Детские товары

Пусть имеется некоторая система, состояние которой однозначно характеризуется определенным набором величин, как правило, недоступных для измерения (аектор состояния системы).

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

Особенности фильтра Калмана:

    Позволяет получит решение задачи, сформулированной в пр……………сост

    Фильтр является не стационарным

    Имеет рекурентную форму, то есть удобен для программирования. Новые оценки получаются корректировкой старых на основе новых наблюдений.

В общем случае задано п – мерное гильбертово пр – во.

Задан процесс, формируемый линейной динамичной системой, названной формирующим фильтром

Dx/dt =A(t) x(t) +B(t)u(t)+V(t)

    X(t) - случайный п – мерный процесс.

- U(t) - c куч. процесс в виде б.ш.с ковариационной матрицей

K u (t , M (t) (t- )

Х(t) наблюдается с помощью измерителя:

Y(t) = c(t)x(t) +n(t)

n(t) = Б.Ш.

K n (t , ) = M=R(t) (t- )

Основываясь на наблюдениях у в течение интервала времени , нужно найти оценку сигнала x(t) tx(t))

x (t)=x(t) – x(t) - ошибка оценивания

Критерием оптимальности является ее кв. Форма

//X(t) // 2 min

Процессы u(t) иx(t) иV(t) и n(t) не коррелированы, а формирующий фильтр удовлетворяет условиям физической реализуемости.

U(t)x(t) x(t)n(t)

Фф – формирующий фильтр

u

U(t) y(t)

L

x(t) x(t)

Динамические свойства системы зависят от L, выбор L обеспечивает

X(t) – x(t) o

t 

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

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

Рассмотрим многомерный фильтр Калмана для стационарного случая. Должно быт известно само описание объекта:

X(K+1) = Ax(K)+Bu(K)+V(k)

Y(K) = cx(K0+n(K)

A 1 B 1 C=const (стационарный случай)

Должна быть известна априорная информация о сигнале:

M[x] =x o u cov [x] = o

Должна быть известна априорная информация о шуме, то есть Р (v) – гаусовская плотность M[v]=o ; cov[V]=V

P(n) M[n]=o ; cov[n]=N

V - шум объекта; n - шум измерения

Алгоритм работы фильтра Калмана:

X(K+1) = Ax(k)+Bu(k)+L(K+1)

Каждая оценка получается на основании предыдущего x(K) и на основании текущего измерения y(u+1) ; предсказывает текущую выборку – Ax(u)+Bu(K) - экстраполир.состояние.

L Cbu(K) корректирует текущую оценку на основании оценки ошибки

C - новизна между наблюдавшимся и предсказанным значением.

L(K+1) - изменяющийся во времени коэффициент Калмана.

L= KoC 1 p -1 p - матрица самого сигнала; Ko - единственное положительно определенное решение алгебраичного матричного уравнения (уравнение Реккати)

Этот идентификатор должен быть устойчив, то есть собственное значение матрицы имеет «-« вещественную часть.

Уравнение фильтра Калмана однозначно определяет все коэффициенты идентификатора по данным о характерах помех в соответствии с выбором критерия min CK погрешности.

Запишем рекурентную форму:

L(K+1) = (K+1) c 1 -1 = P(K+1)C 1 N -1

(K+1) = AP(K)A 1 +V

P(K+1)= [ -1 (K+1)>C 1 N -1 C] -1 = (K+1)- (K+1)C 1 -1 c (k+1)

(K+1)- априорное значение ковариац.матрицы сигнала x , основанное на k наблюдениях.

Сначала вычисляется:

1. (k+1)

2. P(k+1)

3. L(k+1)

4. x(k+1)

Пример: упрощенный т.к.: априорный случай (скамерный фильтр Калмана); и с=1

Рассматривание стационарных случайных сигнал x(k) с известными статистическими характерами, искажается стац.б.ш. max / наилучшим образом оценить х(и)

X(k+1) = ax(k) +v(k)

Y(k) = x(k)+n(k)

X(o)= x o P(o)=P o

M[v]=o M=V ij

M[k]=o M=N ij

M=O

x^(n+1)=ax(k)+L(k+1)

l(k+1)= (k+1)[ (k+1)+N] -1 = (k+1)/ (k+1)+N

(k+1)=AP(k)A 1 +V=a 2 P(k)+v

P(k+1)=[ -1 (k+1)+N -1 ] -1 = (k+1)N/ (k+1)+N

X(k+1)=(1-l(k+1))ax(k)+l(k+1)y(k+1)=N / (k+1)+N ax(k)+ (k+1)/ (k+1)+N y(k+1)

L

L(k+1)+ (k+1)=1

Предположим, что есть априорная информация:

X o =o P o =o N=V =

K (k) l(k) P(k)

1 N 0,5 0,5N

2 1 ,25 N 0 ,555 0,555 N

3 1 ,28 N 0,56 0,56N

4 1 ,28 N 0,56 0,56N

x o =o P o = N=V a=

k (k) l(k) P(k)

o

1 1 N

2 1 ,5 N 0 ,6 0,6 N

3 1,3N 0 ,565 0,565 N

4 1 ,283 N 0 ,56 0,565 N

5 1 ,28 N 0 ,56 0,56 N

0 ,56 N

P(k) =P(k-1)=P - условие стационарности фильтра

Р = N/ +N =(a 2 P+V)N/ a 2 P +N+V

(a 2 P +V)N =PN+P(a 2 P+V)

P 2 + N+V-a 2 N/a 2 P – VN/a 2 =O

P 2 +3Np – 2N 2 =O

P = 0 ,56 N

    Коэффициент усиления L не зависит от наблюдений и может быть вычислен заранее для всей процедуры.

    Зависимость от времени матриц A , B , С не вносит принципиальных изменений (когда эти матрицы полностью известны)

    Фильтр Калмана реализует процесс паралистического оценивания.

    При порциальном распределении случайных величин в стационарном случае рассматриваемый фильтр оптимален, в смысле метода полим. Квадратов, если система не стационарна, то фильтр оптимален.

Одновременное оценивание параметров и состояние объекта

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

U(t) x 1 (t)

Y 1 (t)

Y 2 (t)

Необходимо оценить состояние х и среднее значение помехи п по доступным наблюдениям сигналов у 1 и у 2 при этом а неизвестен.

Составим расширенный вектор состояния, который мы будем определять:

X 1 (t) x 1 (t)

X(t)= a = x 2 (t)

N x 3 (t)

A=n=o (так как не являются фильтрами времени)

X 1 (t)/u(t) = 1/a+s x 1 o (t) = -x 1 (t)x 2 (t)+u(t)

X 1 (t) = u(t)/a+s

X 1 (t)(a+s)= u(t) x 1 x 2 +sx 1 =u

Для вектора состояния записать уравнение связи x(t) и u(t) невозможно.

X = A(x(t)+B(x(t),t) u(t)

-x 1 +x 2 (t) 1

A = o B = o

Рассмотрим вектор наблюдений

Y(t) =c(x(t) , t) + v(t)

C(x(t) , t) =

V(t) =

Пусть объект описывается

X = j (x,u , a , v , t)

Y = g(x,u ,с, n , t)

X (x ,u, a , v , t)

[x/a ] нельзя преобразовать к M - линейная форма, где М не зависит от х и а .

Даже для линейного объекта задача совместная.

Оценивание параметров и состояний относительно этого вектора параметров и состояния. Все подходы должны осуществляться на основе настраивания модели и иметь итеративный характер.

Рассмотрим на основании выборочных сигналов:

X(k+1) = t(x(k), u(k) , a(k), v(k), k)

Y9k) = g(x(k) , n(k) ,с(k ), n(k) , k)

Используется нелинейный нестационарный объект

(x(k), u(k) , a(k), k) + G(k)V(k)g(x(k)u(k)c(k)k)+n(k)

(шум объекта аддитивный) (шум наблюдений аддетивный)

A(k)x(k) +B(k)u(k) c(k)x(k)+D(k)u(k)

(линейный объект) наблюдаемое линейно-относительных переменных состояний

Ax(k)+Bu(k) cx(k) + Du(k)

(стационарный объект) матрица наблюдений постоянная)

(k)=o

В таком виде задача называется двухточечной.

Идентификация нелинейных объектов

Тип нелинейности Гаммерштейна.

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

U(t) y(t)

Y(t) = d

В одномерном сигнале надо идентифицировать 2 функции. Эти функции представляются в виде разложения по некоторым заданным системой функциям.

(u)= aj j (u) ; w(t) = b i w i (t)

j=1 i=1

Введем следующие обозначения:

Y ij (t) = i () j }

Рекомендуем почитать

Наверх