Kalman Filter

Оцените состояния линейной системы дискретного времени или непрерывного времени

Библиотека

Средства оценки

  • Kalman Filter block

Описание

Используйте блок Kalman Filter, чтобы оценить состояния модели объекта управления пространства состояний, данной процесс и данные о ковариации шума измерения. Модель в пространстве состояний может быть изменяющейся во времени. Установившаяся реализация Фильтра Калмана используется, если модель в пространстве состояний и шумовые ковариационные матрицы все независимы от времени. Изменяющийся во времени Фильтр Калмана используется в противном случае.

Фильтр Калмана предоставляет оптимальное решение следующих непрерывных или дискретных проблем оценки:

 Оценка непрерывного времени

 Оценка дискретного времени

Блок Kalman Filter отличается от kalman (Control System Toolbox) команда следующими способами:

  • При вызове kalman(sys,...), sys включает G и H матрицы. А именно, sys.B имеет [B G] и sys.D имеет [D H]. Когда вы предоставляете переменную LTI блоку Kalman Filter, это не принимает, что обеспеченная переменная LTI содержит G и H. Они являются дополнительными и отдельными.

  • kalman команда выходные параметры [yhat;xhat] по умолчанию. Блок только выходные параметры xhat по умолчанию.

Параметры

Следующая таблица обобщает параметры блоков Фильтра Калмана, доступные через диалоговое окно Block Parameter.

ЗадачаПараметры
Задайте настройки фильтра
Задайте системную модель

Model source во вкладке Model Parameters

Задайте оценки начального состояния

Source во вкладке Model Parameters

Задайте шумовые характеристики

Во вкладке Model Parameters:

Задайте дополнительный импорт

Во вкладке Options:

Задайте дополнительные выходные порты

Во вкладке Options:

Временной интервал

Задайте, оценить ли состояния непрерывного времени или дискретного времени:

  • Discrete-Time (Значение по умолчанию) — Блок оценивает состояния дискретного времени

  • Continuous-Time — Блокируйте оценочные состояния непрерывного времени

    Когда блок Kalman Filter находится в модели с синхронным государственным контролем (см. блок State Control (HDL Coder)), вы не можете выбрать Continuous-time.

Используйте текущее измерение y [n], чтобы улучшить xhat [n]

Используйте текущий вариант средства оценки Фильтра Калмана дискретного времени. Если не выбранный, задержанное средство оценки (вариант) используется.

Эта опция доступна только, когда Time Domain является Discrete-Time.

Источник модели

Задайте, как A, B, C, D матрицы предоставляются блоку. Должно быть одно из следующего:

  • Dialog: LTI State-Space Variable — Используйте значения, заданные в переменной пространства состояний LTI. Необходимо также задать имя переменной в Variable. Шаг расчета модели должен совпадать с установкой в опции Time domain, т.е. модель должна быть дискретным временем, если Time domain является дискретным временем.

  • Dialog: Individual A, B, C, D matrices — Задайте значения в следующих параметрах блоков:

    • A Задайте матрицу A. Это должно быть действительным и квадратным.

    • B Задайте матрицу B. Это должно быть действительно и иметь столько же строк сколько матрица A. Эта опция доступна только, когда Add input port u выбран во вкладке Options.

    • C Задайте матрицу C. Это должно быть действительно и иметь столько же столбцов сколько матрица A.

    • D Задайте матрицу D. Это должно быть действительно. Это должно иметь столько же строк сколько матрица C и столько же столбцов сколько матрица B. Эта опция доступна только, когда Add input port u выбран во вкладке Options.

  • External — Задайте A, B, C, D матрицы как входные сигналы с блоком Kalman Filter. Если вы выбираете эту опцию, блок включает дополнительные входные порты A, B, C и D. Необходимо также задать следующее в параметрах блоков:

    • Number of states — Количество состояний, которые будут оценены в виде положительного целого числа. Значение по умолчанию равняется 2.

    • Number of inputs — Количество известных входных параметров в модели в виде положительного целого числа. Значение по умолчанию равняется 2. Эта опция только доступна, когда Add input port u выбран.

    • Number of outputs — Количество измеренных выходных параметров в модели в виде положительного целого числа. Значение по умолчанию равняется 2.

Размер шага

Блокируйте шаг расчета в виде-1 или положительная скалярная величина.

Эта опция доступна только, когда Time Domain является Discrete Time и Model Source является Dialog: Individual A, B, C, D matrices или External. Шаг расчета получен из переменной пространства состояний LTI, если Источником Модели является Dialog: LTI State-Space Variable.

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

Источник

Задайте, как ввести оценки начального состояния и ковариацию ошибки расчета начального состояния:

  • Dialog — Задайте значения непосредственно в диалоговом окне. Необходимо также задать следующие параметры:

    • Initial states x[0] — Задайте оценку начального состояния как действительный скаляр или вектор. Если вы задаете скаляр, все оценки начального состояния установлены в этот скаляр. Если вы задаете вектор, длина вектора должна соответствовать с количеством состояний в модели.

    • State estimation error covariance P[0] (только, когда изменяющийся во времени Фильтр Калмана используется) — Задает ковариацию ошибки расчета начального состояния P [0] для Фильтра Калмана дискретного времени или P (0) для Фильтра Калмана непрерывного времени. Должен быть задан как одно из следующего:

      • Действительный неотрицательный скаляр. P является матрицей диагонали нс нс со скаляром на диагоналях. Не уточнено количество состояний в модели.

      • Вектор из действительных неотрицательных скаляров. P является матрицей диагонали нс нс с элементами вектора на диагоналях P.

      • Нс нс положительная полуопределенная матрица.

  • External — Наследуйте значения от входных портов. Блок включает дополнительный входной порт X0. Второй дополнительный P0 входного порта добавляется, когда изменяющийся во времени Фильтр Калмана используется. X0 и P0 должны удовлетворить тем же условиям, описанным ранее, когда вы задаете их в диалоговом окне.

Используйте Кальмана Гэйна К от переменной модели

Задайте, использовать ли предварительно идентифицированного Кальмана Гэйна, содержавшегося в модели объекта управления пространства состояний. Эта опция доступна только когда:

  • Model Source является Dialog: LTI State-Space Variable и Variable является идентифицированной моделью в пространстве состояний (idss) с ненулевой матрицей K.

  • Time Invariant Q, Time Invariant R и опции Time Invariant N выбраны.

Если опция Use G and H matrices (default G=I and H=0) выбрана, Time Invariant G и опции Time Invariant H должны также быть выбраны.

Используйте G и матрицы H (G=I по умолчанию и H=0)

Задайте, использовать ли значения не по умолчанию для G и матриц H. Если вы выбираете эту опцию, необходимо задать:

  • G Задайте матрицу G. Это должна быть действительная матрица со столькими же строк сколько матрица A. Значение по умолчанию равняется 1.

  • Time-invariant G — Задайте, независима ли матрица G от времени. Если вы отменяете эту опцию, блок включает дополнительный входной порт G.

  • H Задайте матрицу H. Это должна быть действительная матрица со столькими же строк сколько матрица C и столько же столбцов сколько матрица G. Значение по умолчанию 0.

  • Time-invariant H — Задайте, независима ли матрица H от времени. Если вы отменяете эту опцию, блок включает дополнительный входной порт G.

  • Number of process noise inputs — Задайте количество входных параметров шума процесса в модели. Значение по умолчанию равняется 1.

    Эта опция доступна только, когда Time-invariant G и Time-invariant H очищены. В противном случае эта информация выведена из G или матрицы H.

Q

Ковариационная матрица шума процесса в виде одного из следующего:

  • Действительный неотрицательный скаляр. Q является СЗ СЗ диагональная матрица со скаляром на диагоналях. СЗ является количеством входных параметров шума процесса в модели.

  • Вектор из действительных неотрицательных скаляров. Q является СЗ СЗ диагональная матрица с элементами вектора на диагоналях Q.

  • СЗ СЗ положительная полуопределенная матрица.

Независимый от времени Q

Задайте, независима ли матрица Q от времени. Если вы отменяете эту опцию, блок включает дополнительный входной порт Q.

R

Ковариационная матрица шума измерения в виде одного из следующего:

  • Действительная положительная скалярная величина. R является матрицей диагонали ny ny со скаляром на диагоналях. Ny является количеством измеренных выходных параметров в модели.

  • Вектор из действительных положительных скалярных величин. R является матрицей диагонали ny ny с элементами вектора на диагоналях R.

  • Ny ny положительно-определенная матрица.

Независимый от времени R

Задайте, независима ли матрица R от времени. Если вы отменяете эту опцию, блок включает дополнительный входной порт R.

N

Процесс и перекрестная ковариационная матрица шума измерения. Задайте его как СЗ ny матрица. Матрица [Q N; NT R] должен быть положителен определенный.

Независимый от времени N

Задайте, независима ли матрица N от времени. Если вы отменяете эту опцию, блок включает дополнительный входной порт N.

Добавьте входной порт u

Выберите эту опцию, если ваша модель содержит известные входные параметры u(t) или u[k]. Опция выбрана по умолчанию. Отмена выбора этой опции удаляет входной порт u от блока и удаляет B, D и параметры Number of inputs от диалогового окна блока.

Добавьте, что входной порт Включает к обновлениям контрольного измерения

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

По умолчанию блок делает обновления измерения на каждом временном шаге, чтобы улучшить состояние и вывести оценки x^ и y^ на основе измеренных выходных параметров. Обновление измерения пропущено для текущего шага расчета, когда сигнал в порте Enable 0. Конкретно, уравнение для оценок состояния становятся x^˙(t)=A(t)x^(t)+B(t)u(t) для Фильтра Калмана непрерывного времени и x^[n+1|n]=A[n]x^[n|n1]+B[n]u[n] в течение дискретного времени.

Внешний сброс

Опция, чтобы сбросить оцененные состояния и ковариационную матрицу параметра с помощью заданных начальных значений.

Предположим, что вы сбрасываете блок на временном шаге, t. Если блок включен в t, программное обеспечение использует начальные значения параметров, заданные или в диалоговом окне блока или во входных портах P0 и X0, чтобы оценить состояния. Другими словами, в t, блок выполняет обновление времени и если он включен, обновление измерения после сброса. Блок выводит эти обновленные оценки.

Задайте одно из следующего:

  • None (Значение по умолчанию) — Предполагаемые состояния x^ и ошибочная ковариационная матрица оценки состояния P значения не сбрасывается.

  • Rising — Инициировал сброс, когда управляющий сигнал повышается с отрицательной величины или нулевого значения к положительному значению. Если начальное значение отрицательно, повышение, чтобы обнулить инициировало сброс.

  • Falling — Инициировал сброс, когда управляющий сигнал падает от положительного или нулевого значения к отрицательной величине. Если начальное значение положительно, падание на нуль инициировало сброс.

  • Either — Инициировал сброс, когда управляющий сигнал или повышается или падает.

  • Level — Инициировал сброс в любом из этих случаев:

    • Управляющий сигнал является ненулевым на шаге текущего времени.

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

  • Level hold — Триггерный сброс, когда управляющий сигнал является ненулевым на шаге текущего времени.

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

Выведите оцененный выходной y модели

Добавление y^ выходной порт с блоком, чтобы вывести предполагаемые выходные параметры модели. Опция очищена по умолчанию.

Ковариация ошибки расчета состояния вывода P или Z

Добавьте выходной порт P или выходной порт Z с блоком. Матрица Z обеспечивается только, когда Time Domain является Discrete Time и Use the current measurement y[n] to improve xhat[n] выбран. В противном случае матрица P, как описано в разделе Description ранее, обеспечивается.

Опция очищена по умолчанию.

Порты

Имя порта

Тип порта

(В/)

Описание
u (Необязательно)\inИзвестные входные параметры в виде действительного скаляра или вектора.
y\inИзмеренные выходные параметры в виде действительного скаляра или вектора.
xhatПредполагаемые состояния, возвращенные как действительный скаляр или вектор.
yhat (Необязательно)Предполагаемые выходные параметры, возвращенные как действительный скаляр или вектор.
P или Z (Необязательно)Ошибочная ковариация оценки состояния, возвращенная как матрица.
(Необязательно)\inМатрица A в виде действительной матрицы.
B (Необязательно)\inB матрица в виде действительной матрицы.
C (Необязательно)\inC матрица в виде действительной матрицы.
D (Необязательно)\inD матрица в виде действительной матрицы.
G (Необязательно)\inG матрица в виде действительной матрицы.
H (Необязательно)\inH матрица в виде действительной матрицы.
Q (Необязательно)\inQ матрица в виде действительного скаляра, вектора или матрицы.
R (Необязательно)\inR матрица в виде действительного скаляра, вектора или матрицы.
N (Необязательно)\inN матрица в виде действительной матрицы.
P0 (Необязательно)\inP матрица в начальное время в виде действительного скаляра, вектора или матрицы.
X0 (Необязательно)\inНачальное состояние оценивает в виде действительного скаляра или вектора.
Включите (Необязательно)\inУправляющий сигнал включить обновления измерения в виде действительного скаляра.
Сбросьте (Необязательно)\inУправляющий сигнал сбросить оценки состояния в виде действительного скаляра.

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

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

  • Плавающая точка с одинарной точностью (только для Фильтра Калмана дискретного времени)

Примечание

  • Все входные порты кроме Enable и Reset должны иметь совпадающий тип данных (один или двойной).

  • Порты Enable и Reset поддерживают single'double'int8uint8int16uint16int32uint32, и булевы типы данных.

Ограничения

  • Объект и шумовые данные должны удовлетворить:

    • (C, A) обнаруживаемый

    • R¯>0 и Q¯N¯R¯1N¯T0

    • (AN¯R¯1C,Q¯N¯R¯1N¯T) не имеет никакого неконтролируемого режима на мнимой оси (или модульный круг в дискретное время) с обозначением

      Q¯=GQGTR¯=R+HN+NTHT+HQHTN¯=G(QHT+N)

  • Фильтр Калмана непрерывного времени не может использоваться в Подсистемах вызова функций или Триггируемых подсистемах.

Вопросы совместимости

развернуть все

Поведение изменяется в R2021a

Ссылки

[1] Франклин, G.F., степень доктора юридических наук Пауэлл и M.L. Рабочий, цифровое управление динамических систем, второго выпуска, Аддисона-Уэсли, 1990.

[2] Льюис, F., оптимальная оценка, John Wiley & Sons, Inc, 1986.

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

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

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

Введенный в R2014b