Оценка состояний линейной системы в дискретном времени или в непрерывном времени
Оценщики
Используйте блок 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
. Они являются необязательными и отдельными.
The kalman
выходы команды [yhat;xhat]
по умолчанию. Блок выводит только xhat
по умолчанию.
В следующей таблице приведены параметры блоков Фильтр Калмана, доступные через диалоговое окно Параметры Блоков.
Задача | Параметры |
---|---|
Задайте настройки фильтра | |
Задайте системную модель | 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 в качестве входных сигналов к блоку Фильтр Калмана. Если вы выбираете эту опцию, блок включает дополнительные входные порты А, 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 является диагональной матрицей Ns-на-Ns со скаляром на диагоналях. Ns - количество состояний в модели.
Вектор действительных неотрицательных скаляров. P является диагональной матрицей Ns-на-Ns с элементами вектора на диагоналях P.
Ns-на-Ns положительная полуопределенная матрица.
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 является диагональной матрицей Nw-на-Nw со скаляром на диагоналях. Nw - количество входов технологического шума в модели.
Вектор действительных неотрицательных скаляров. Q является диагональной матрицей Nw-на-Nw с элементами вектора на диагоналях Q.
Nw-на-Nw положительная полуопределенная матрица.
Задайте, является ли Q- матрицы инвариантным по времени. Если вы отменяете выбор этой опции, блок включает дополнительный входной порт Q.
Матрица ковариации шума измерения, заданная как одно из следующего:
Настоящая положительная скалярная величина. R является диагональной матрицей Ny на Ny со скаляром на диагоналях. Ny - количество измеренных выходов в модели.
Вектор реальных положительных скалярных величин. R является Ny-на-Ny диагональной матрицей с элементами вектора на диагоналях R.
Ny-на-Ny положительно-определенная матрица.
Задайте, является ли матрица R инвариантной по времени. Если отменить выбор этой опции, блок включает дополнительный входной порт R.
Перекрестная ковариационная матрица шума процесса и измерения. Задайте его как матрицу Nw-by-Ny. Матрица [Q N; NT R] должен быть положительно определен.
Задайте, является ли N матрицы инвариантом времени. Если вы отменяете выбор этой опции, блок включает дополнительный входной порт N.
Выберите эту опцию, если ваша модель содержит известные входы u(t)
или u[k]
. Опция выбрана по умолчанию. Отмена выбора этой опции удаляет вход порт u
и удаляет параметры B, D и Number of inputs из диалогового окна блока.
Выберите эту опцию, если вы хотите управлять обновлениями измерений. Блок включает дополнительный входной порт Enable
. The 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, как описано в разделе «Описание».
Опция по умолчанию отменена.
Имя порта | Тип порта (Вход/Выход) | Описание |
---|---|---|
u (необязательно) | В | Известные входы, заданные как действительный скаляр или вектор. |
y | В | Измеренные выходы, заданные как действительный скаляр или вектор. |
xhat | Из | Предполагаемые состояния, возвращенные как действительный скаляр или вектор. |
yhat (необязательно) | Из | Предполагаемые выходы, возвращенные как действительный скаляр или вектор. |
P или Z (опционально) | Из | Ошибка расчета состояния, возвращенная как матрица. |
A (необязательно) | В | Матрица, заданная как действительная матрица. |
B (необязательно) | В | Матрица B, заданная как действительная матрица. |
C (необязательно) | В | Матрица C, заданная как действительная матрица. |
D (необязательно) | В | D-матрица, заданная как действительная матрица. |
G (необязательно) | В | Матрица G, заданная как действительная матрица. |
H (необязательно) | В | Матрица H, заданная как действительная матрица. |
Q (необязательно) | В | Q-матрица, заданная как действительный скаляр, вектор или матрица. |
R (необязательно) | В | Матрица R, заданная как действительный скаляр, вектор или матрица. |
N (необязательно) | В | N матрица, заданная как действительная матрица. |
P0 (необязательно) | В | Матрица P в начальный момент времени, заданная как действительный скаляр, вектор или матрица. |
X0 (необязательно) | В | Начальные оценки состояния, заданные как действительный скаляр или вектор. |
Включить (необязательно) | В | Управляющий сигнал для включения обновлений измерения, заданный как действительный скаляр. |
Сброс (необязательно) | В | Сигнал управления для сброса оценок состояния, заданный как действительный скаляр. |
Плавающая точка двойной точности
Плавающая точка с одной точностью (только для фильтра Калмана в дискретном времени)
Примечание
Все входные порты, кроме Enable и Reset, должны иметь совпадающий тип данных (одинарный или двойной).
Enable и Reset порты поддерживают single
, double
, int8
, uint8
, int16
, uint16
, int32
, uint32
, и логические типы данных.
Объект и данные о шуме должны удовлетворять:
(C, A) обнаруживаемый
и
не имеет неконтролируемого режима на мнимой оси (или единичного круга в дискретном времени) с обозначением
Фильтр Калмана в непрерывном времени не может использоваться в Подсистемы вызова функций или Триггируемые подсистемы.
[1] Франклин, G.F., J.D. Powell, and M.L. Workman, Digital Control of Динамические Системы, Second Edition, Addison-Wesley, 1990.
[2] Lewis, F., Optimal Estimation, John Wiley & Sons, Inc, 1986.
extendedKalmanFilter
| particleFilter
| unscentedKalmanFilter
| kalman
(Control System Toolbox)