Kalman Filter

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

Библиотека

Фильтрация/адаптивность фильтров

dspadpt3

  • Kalman Filter block

Описание

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

xk=Axk1+wk1zk=Hxk+vk

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

xk=Ax^k1Pk=AP^k1AT+Q

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

Kk=PkHT(HPkHT+R)1x^k=xk+Kk(zkHxk)P^k=(IKkH)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)
IТождества матрицаН/Д

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

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

Используйте параметр Enable filters, чтобы указать, какие фильтры включены или отключены на каждом временном шаге. Если вы выбираете Alwaysфильтры всегда включены. Если вы выбираете Specify via input port <Enable>порт Enable появляется на блоке. Входом для этого порта должен быть вектор-строка 1с и 0с, длина которого равна количеству фильтров. Например, если существует 3 фильтра и вход в порт Enable равен [1 0 1], на данном временном шаге активируются только первый и третий фильтры. Если установлен флажок Reset the estimated state and estimated error covariance when filters are disabled, предполагаемое и предсказанное состояния, а также предполагаемая ковариация ошибок, которые соответствуют отключенным фильтрам, сбрасываются на их начальные значения.

Примечание

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

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

Пример Radar Tracking демонстрирует, как использовать этот блок. Вы можете открыть этот пример, введя

aero_radmod_dsp

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

Параметры

Number of filters

Задайте количество фильтров, которые будут использоваться для предсказания или оценки текущего значения.

Enable filters

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

Reset the estimated state and estimated error covariance when filters are disabled

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

Initial condition for estimated state

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

Initial condition for estimated error covariance

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

State transition matrix

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

Process noise covariance

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

Measurement matrix source

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

Measurement matrix

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

Measurement noise covariance

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

Output estimated measurement <Z_est>

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

Output estimated state <X_est>

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

Output MSE of estimated state <MSE_est>

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

Output predicted measurement <Z_prd>

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

Output predicted state <X_prd>

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

Output MSE of predicted state <MSE_prb>

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

Ссылки

[1] Хайкин, Симон. Теория адаптивных фильтров. Upper Saddle River, NJ: Prentice Hall, 1996.

[2] Welch, Greg and Gary Bishop, «An Introduction to the Фильтр Калмана», TR 95-041, Департамент компьютерных наук, Университет Северной Каролины.

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

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

Z

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

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

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

Позволить

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

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

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

  • Булев

H

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

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

Z_est

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

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

X_est

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

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

MSE_est

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

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

Z_prd

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

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

X_prd

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

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

MSE_prd

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

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

См. также

LDL Solver

DSP System Toolbox

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.
Введенный в R2007a