exponenta event banner

Фильтр Калмана

Прогнозирование или оценка состояния динамических систем

Библиотека

Фильтрация/адаптивные фильтры

dspadpt3

  • Kalman Filter block

Описание

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

xk = Axk 1 + wk 1zk = Hxk + vk

Этот блок может использовать предварительно оцененное состояние x ^ k − 1, чтобы предсказать текущее состояние в момент времени k, xk −, как показано следующим уравнением:

xk = Ax ^ k 1Pk = AP ^ k − 1AT + Q

Блок может также использовать измерение тока, zk и предсказанное состояние, xk −, для оценки значения текущего состояния в момент времени k, x ^ k, так что это более точное приближение:

Kk = Pk HT (HPk HT + R) 1x ^ k = xk + Kk (zk − Hxk −) P ^ k = (I − KkH) Pk −

Переменные в предыдущих уравнениях определены в следующей таблице.

ПеременнаяОпределениеЗначение по умолчанию или начальное условие
xГосударствоН/Д
x ^Предполагаемое состояниеzeros([6, 1])
x Прогнозируемое состояниеН/Д
AМатрица перехода состояния

[101000010100001000000100000010000001]

wТехнологический шумН/Д
zИзмерениеН/Д
HМатрица измерения

[100000010000000010000001]

vИзмерительный шумН/Д
P ^Предполагаемая ковариация ошибок10*eye(6)
P-Прогнозируемая ковариация ошибок Н/Д
QКовариация технологического шума0.05*eye(6)
KКалманский выигрышН/Д
RКовариация шума измеренияeye(4)
ЯИдентификационная матрицаН/Д

В предыдущих уравнениях z является вектором значений измерений. Большую часть времени блок обрабатывает Z, матрицу M-by-N, где M - количество измеренных значений, а N - количество фильтров.

Параметр Number of filters используется для указания количества фильтров, используемых для прогнозирования или оценки текущего значения.

Используйте параметр Enable filters, чтобы указать, какие фильтры включены или отключены на каждом шаге времени. При выборе Always, фильтры всегда включены. При выборе Specify via input port <Enable>, в блоке появится порт Enable. Вход в этот порт должен быть вектором строки 1 с и 0 с длиной, равной числу фильтров. Например, если имеется 3 фильтра, а вход в порт Enable имеет значение [1 0 1], на данном этапе активируются только первый и третий фильтры. Если установить флажок Сбросить условное состояние и условную ковариацию ошибок, когда фильтры отключены, расчетные и прогнозируемые состояния, а также условную ковариацию ошибок, которые соответствуют отключенным фильтрам, сбрасываются до их начальных значений.

Примечание

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

Параметр Источник матрицы измерения (Measurement matrix source) используется для указания способа ввода значений матрицы измерения. При выборе Specify via dialogв диалоговом окне появится параметр Матрица измерений (Measurement matrix). При выборе Input port <H>, порт H появляется на блоке. Этот порт используется для задания матрицы измерений.

См. пример радиолокационного слежения для демонстрации использования этого блока. Этот пример можно открыть, введя

aero_radmod_dsp

в командной строке MATLAB ®.

Параметры

Количество фильтров

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

Включить фильтры

Укажите, какие фильтры включаются или отключаются на каждом шаге времени. При выборе Always, фильтры всегда включены. При выборе Specify via input port <Enable>, в блоке появится порт Enable.

Сброс расчетного состояния и расчетной ковариации ошибок при отключении фильтров

Если этот флажок установлен, предполагаемые и прогнозируемые состояния, а также предполагаемая ковариация ошибок, соответствующие отключенным фильтрам, сбрасываются до их начальных значений. Этот параметр отображается, если для параметра Включить фильтры выбран параметр Specify via input port <Enable>.

Исходное условие для расчетного состояния

Введите начальное условие для расчетного состояния.

Исходное условие для предполагаемой ковариации ошибок

Введите начальное условие для предполагаемой ковариации ошибок.

Матрица перехода состояния

Введите матрицу перехода состояния.

Ковариация технологического шума

Введите ковариацию шума процесса.

Источник матрицы измерения

Укажите способ ввода значений матрицы измерений. При выборе Specify via dialogв диалоговом окне появится параметр Матрица измерений (Measurement matrix). При выборе Input port <H>, порт H появляется на блоке.

Матрица измерения

Введите значения матрицы измерений. Этот параметр отображается при выборе Specify via dialog для параметра источника матрицы измерений.

Ковариация шума измерения

Введите ковариацию шума измерения.

Выходное оценочное измерение < Z_est
>

Установите этот флажок, если требуется, чтобы блок выводил оценочное измерение.

Ожидаемое состояние вывода < X_est
>

Установите этот флажок, если требуется, чтобы блок выводил оценочное состояние.

Выходной MSE расчетного состояния < MSE_est
>

Установите этот флажок, если требуется, чтобы блок выводил среднеквадратичную ошибку расчетного состояния.

Выходные прогнозируемые измерения < Z_prd
>

Установите этот флажок, если требуется, чтобы блок выводил прогнозируемое измерение.

Прогнозируемое состояние вывода < X_prd
>

Установите этот флажок, если требуется, чтобы блок выводил прогнозируемое состояние.

Выходной MSE прогнозируемого состояния < MSE_prb
>

Установите этот флажок, если требуется, чтобы блок выводил среднеквадратичную ошибку прогнозируемого состояния.

Ссылки

[1] Хайкин, Саймон. Адаптивная теория фильтров. Река Верхнее Седло, Нью-Джерси: Прентис Холл, 1996.

[2] Уэлч, Грег и Гэри Бишоп, «Введение в фильтр Калмана», TR 95-041, факультет компьютерных наук, Университет Северной Каролины.

Поддерживаемые типы данных

ПортВвод/выводПоддерживаемые типы данных

Z

Измерение M-by-N, где M - длина вектора измерения, а N - количество фильтров.

  • Плавающая точка с двойной точностью

  • Плавающая точка с одинарной точностью

Позволить

1-by-N вектор из 1 с и 0 с, где N - число фильтров.

  • Плавающая точка с двойной точностью

  • Плавающая точка с одинарной точностью

  • Булев

H

Матрица измерения M-на-P, где M - длина вектора измерения, а P - длина векторов состояния фильтра.

То же, что и Z-порт

Z_est

M-by-N оцененная матрица измерения, где M - длина вектора измерения, а N - количество фильтров.

То же, что и Z-порт

X_est

Матрица оцененного состояния P-by-N, где P - длина векторов состояния фильтра, а N - количество фильтров.

То же, что и Z-порт

MSE_est

1-by-N вектор, который представляет среднеквадратичную ошибку оцененного состояния. N - количество фильтров.

То же, что и Z-порт

Z_prd

M-by-N предсказанная матрица измерения, где M - длина вектора измерения, а N - количество фильтров.

То же, что и Z-порт

X_prd

Матрица предсказанного состояния P-by-N, где P - длина векторов состояния фильтра, а N - количество фильтров.

То же, что и Z-порт

MSE_prd

1-by-N вектор, представляющий среднеквадратичную ошибку прогнозируемого состояния. N - количество фильтров.

То же, что и Z-порт

См. также

Решатель ЛПНП

Инструментарий системы DSP

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.
Представлен в R2007a