Оценка состояний линейной системы в дискретном времени или в непрерывном времени
Оценщики
Используйте блок 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)