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

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

Библиотека

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

dspadpt3

Описание

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

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 с и 0s, длина которого равна количеству фильтров. Например, если существует 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 появляется на блоке. Используйте этот порт, чтобы задать вашу матрицу измерения.

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

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] Haykin, Саймон. Адаптивная теория фильтра. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1996.

[2] Валлийцы, Грег и Гэри Бишоп, “Введение в фильтр Калмана”, TR 95–041, факультет информатики, Университет Северной Каролины.

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

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

Z

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

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

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

Включить

Вектор 1 на n 1 с и 0s, где N является количеством фильтров.

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

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

  • Булевская переменная

H

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

То же самое как порт Z

Z_est

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

То же самое как порт Z

X_est

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

То же самое как порт Z

MSE_est

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

То же самое как порт Z

Z_prd

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

То же самое как порт Z

X_prd

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

То же самое как порт Z

MSE_prd

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

То же самое как порт Z

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

Решатель LDL

DSP System Toolbox

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

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

Представленный в R2007a