Оцените состояния линейной системы дискретного времени или непрерывного времени
Средства оценки
Используйте блок 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
.
Используйте текущий вариант средства оценки Фильтра Калмана дискретного времени. Если не выбранный, задержанное средство оценки (вариант) используется.
Эта опция доступна только, когда 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 Задайте матрицу 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.
Ковариационная матрица шума измерения в виде одного из следующего:
Действительная положительная скалярная величина. R является матрицей диагонали ny ny со скаляром на диагоналях. Ny является количеством измеренных выходных параметров в модели.
Вектор из действительных положительных скалярных величин. R является матрицей диагонали ny ny с элементами вектора на диагоналях R.
Ny ny положительно-определенная матрица.
Задайте, независима ли матрица R от времени. Если вы отменяете эту опцию, блок включает дополнительный входной порт R.
Процесс и перекрестная ковариационная матрица шума измерения. Задайте его как СЗ ny матрица. Матрица [Q N; NT R] должен быть положителен определенный.
Задайте, независима ли матрица N от времени. Если вы отменяете эту опцию, блок включает дополнительный входной порт N.
Выберите эту опцию, если ваша модель содержит известные входные параметры u(t)
или u[k]
. Опция выбрана по умолчанию. Отмена выбора этой опции удаляет входной порт u
от блока и удаляет B, D и параметры Number of inputs от диалогового окна блока.
Выберите эту опцию, если вы хотите управлять обновлениями измерения. Блок включает дополнительный импорт Enable
. Enable
входной порт берет скалярный сигнал. Эта опция очищена по умолчанию.
По умолчанию блок делает обновления измерения на каждом временном шаге, чтобы улучшить состояние и вывести оценки и на основе измеренных выходных параметров. Обновление измерения пропущено для текущего шага расчета, когда сигнал в порте Enable 0. Конкретно, уравнение для оценок состояния становятся для Фильтра Калмана непрерывного времени и в течение дискретного времени.
Опция, чтобы сбросить оцененные состояния и ковариационную матрицу параметра с помощью заданных начальных значений.
Предположим, что вы сбрасываете блок на временном шаге, t
. Если блок включен в t
, программное обеспечение использует начальные значения параметров, заданные или в диалоговом окне блока или во входных портах P0 и X0, чтобы оценить состояния. Другими словами, в t
, блок выполняет обновление времени и если он включен, обновление измерения после сброса. Блок выводит эти обновленные оценки.
Задайте одно из следующего:
None
(Значение по умолчанию) — Предполагаемые состояния и ошибочная ковариационная матрица оценки состояния P значения не сбрасывается.
Rising
— Инициировал сброс, когда управляющий сигнал повышается с отрицательной величины или нулевого значения к положительному значению. Если начальное значение отрицательно, повышение, чтобы обнулить инициировало сброс.
Falling
— Инициировал сброс, когда управляющий сигнал падает от положительного или нулевого значения к отрицательной величине. Если начальное значение положительно, падание на нуль инициировало сброс.
Either
— Инициировал сброс, когда управляющий сигнал или повышается или падает.
Level
— Инициировал сброс в любом из этих случаев:
Управляющий сигнал является ненулевым на шаге текущего времени.
Управляющий сигнал изменяется от ненулевого на предыдущем временном шаге, чтобы обнулить на шаге текущего времени.
Level hold
— Триггерный сброс, когда управляющий сигнал является ненулевым на шаге текущего времени.
Когда вы выбираете опцию кроме None
, Reset
входной порт добавляется к блоку, чтобы обеспечить входной сигнал управления сбросом.
Добавление выходной порт с блоком, чтобы вывести предполагаемые выходные параметры модели. Опция очищена по умолчанию.
Добавьте выходной порт 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 (Необязательно) | \in | B матрица в виде действительной матрицы. |
C (Необязательно) | \in | C матрица в виде действительной матрицы. |
D (Необязательно) | \in | D матрица в виде действительной матрицы. |
G (Необязательно) | \in | G матрица в виде действительной матрицы. |
H (Необязательно) | \in | H матрица в виде действительной матрицы. |
Q (Необязательно) | \in | Q матрица в виде действительного скаляра, вектора или матрицы. |
R (Необязательно) | \in | R матрица в виде действительного скаляра, вектора или матрицы. |
N (Необязательно) | \in | N матрица в виде действительной матрицы. |
P0 (Необязательно) | \in | P матрица в начальное время в виде действительного скаляра, вектора или матрицы. |
X0 (Необязательно) | \in | Начальное состояние оценивает в виде действительного скаляра или вектора. |
Включите (Необязательно) | \in | Управляющий сигнал включить обновления измерения в виде действительного скаляра. |
Сбросьте (Необязательно) | \in | Управляющий сигнал сбросить оценки состояния в виде действительного скаляра. |
Плавающая точка двойной точности
Плавающая точка с одинарной точностью (только для Фильтра Калмана дискретного времени)
Примечание
Все входные порты кроме Enable и Reset должны иметь совпадающий тип данных (один или двойной).
Порты Enable и Reset поддерживают single
'double'
int8
uint8
int16
uint16
int32
uint32
, и булевы типы данных.
Объект и шумовые данные должны удовлетворить:
(C, A) обнаруживаемый
и
не имеет никакого неконтролируемого режима на мнимой оси (или модульный круг в дискретное время) с обозначением
Фильтр Калмана непрерывного времени не может использоваться в Подсистемах вызова функций или Триггируемых подсистемах.
[1] Франклин, G.F., степень доктора юридических наук Пауэлл и M.L. Рабочий, цифровое управление динамических систем, второго выпуска, Аддисона-Уэсли, 1990.
[2] Льюис, F., оптимальная оценка, John Wiley & Sons, Inc, 1986.
kalman
(Control System Toolbox) | extendedKalmanFilter
| unscentedKalmanFilter
| particleFilter