exponenta event banner

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

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

Описание

Используйте блок Калмана (Kalman Filter) для оценки состояний модели установки в пространстве состояний с данными ковариации процессов и измерений шума. Модель «состояние-пространство» может изменяться во времени. Стационарная реализация фильтра Калмана используется, если модель состояния-пространства и ковариационные матрицы шума все являются инвариантными по времени. В противном случае используется изменяющийся во времени фильтр Калмана.

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

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

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

Блок фильтра Калмана отличается от kalman командой следующими способами:

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

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

  • Kalman Filter block

Параметры

В следующей таблице представлены параметры блока фильтра Калмана, доступные в диалоговом окне «Параметр блока».

ЗадачаПараметры
Укажите параметры фильтра
Укажите модель системы

Источник модели на вкладке «Параметры модели»

Укажите начальные оценки состояния

Источник на вкладке «Параметры модели»

Определение характеристик шума

На вкладке Параметры модели (Model Parameters):

Укажите дополнительные входные данные

На вкладке «Параметры»:

Укажите дополнительные выходы

На вкладке «Параметры»:

Временная область

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

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

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

    Если блок фильтра Калмана находится в модели с синхронным управлением состоянием (см. блок управления состоянием (HDL Coder)), вы не можете выбрать Continuous-time.

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

n]

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

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

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

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

  • Dialog: LTI State-Space Variable - использовать значения, указанные в переменной state-space LTI. Необходимо также указать имя переменной в поле Переменная. Время выборки модели должно совпадать с настройкой в опции Временная область, т.е. модель должна быть дискретной, если временная область является дискретной.

  • 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 в качестве входных сигналов для блока фильтра Калмана. При выборе этой опции блок включает дополнительные входные порты 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 а источник модели - Dialog: Individual A, B, C, D matrices или External. Время выборки получается из переменной состояния-пространства LTI, если источник модели Dialog: LTI State-Space Variable.

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

Источник

Укажите способ ввода оценок начального состояния и ковариации ошибок оценки начального состояния:

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

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

    • Ковариация ошибок оценки состояния P [0] (только при использовании изменяющегося во времени фильтра Калмана) - задает ковариацию ошибок оценки начального состояния P [0] для дискретного фильтра Калмана или P (0) для непрерывного фильтра Калмана. Необходимо указать одно из следующих значений:

      • Реальный неотрицательный скаляр. P - диагональная матрица Ns-by-Ns со скаляром на диагоналях. Ns - количество состояний в модели.

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

      • Ns-по-Ns положительная полуопределённая матрица.

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

Использовать коэффициент Калмана (Kalman Gain K) из переменной модели

Укажите, следует ли использовать предварительно определенный коэффициент усиления Калмана, содержащийся в модели государственного космического завода. Эта опция доступна только в следующих случаях:

  • Источник модели: Dialog: LTI State-Space Variable и Переменная является идентифицированной моделью состояния-пространства (idss (System Identification Toolbox)) с ненулевой матрицей K.

  • Выбраны опции Инвариант времени Q, Инвариант времени R и Инвариант времени N.

Если выбрана опция Использовать матрицы G и H (по умолчанию G = I и H = 0), также должны быть выбраны опции инвариант времени G и инвариант времени H.

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

= 0)

Укажите, следует ли использовать нестандартные значения для матриц G и H. При выборе этого параметра необходимо указать:

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

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

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

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

  • Количество входов технологического шума - количество входов технологического шума в модели. Значение по умолчанию - 1.

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

Q

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

  • Реальный неотрицательный скаляр. Q - диагональная матрица Nw-by-Nw со скаляром на диагоналях. Nw - количество входных сигналов технологического шума в модели.

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

  • Nw-by-Nw положительная полуопределённая матрица.

Инвариант времени Q

Укажите, является ли матрица Q инвариантной по времени. При отмене выбора этой опции блок включает дополнительный входной порт Q.

R

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

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

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

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

Инвариант времени R

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

N

Матрица перекрестной ковариации шума процесса и измерения. Укажите его как матрицу Nw-by-Ny. Матрица [Q N; NT R] должен быть положительным определенным.

Инвариант времени N

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

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

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

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

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

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

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

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

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

Укажите одно из следующих значений:

  • None (По умолчанию) - Оценочные состояния x ^ и ковариационная матрица P ошибок оценки состояния не сбрасываются.

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

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

  • Either - Запускает сброс, когда управляющий сигнал поднимается или падает.

  • Level - инициирует сброс в любом из следующих случаев:

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

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

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

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

Выходные оценочные выходные данные модели y

Добавьте выходной порт y ^ к блоку для вывода расчетных выходных данных модели. По умолчанию флажок снят.

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

Добавьте в блок выходной порт P или выходной порт Z. Z-матрица предоставляется только тогда, когда Time Domain имеет значение Discrete Time и выбран параметр Использовать текущее измерение y [n] для улучшения 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, должны иметь один и тот же тип данных (одинарный или двойной).

  • Поддержка включения и сброса портов single, double, int8, uint8, int16, uint16, int32, uint32и логические типы данных.

Ограничения

  • Данные по установке и шуму должны удовлетворять:

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

    • R > 0 и Q¯−N¯R¯−1N¯T≥0

    • (A N пР пр , Q пр N пр Р пр − 1Н Т) не имеет неуправляемого режима на воображаемой оси (или единичной окружности в дискретное время) с обозначением

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

  • Фильтр Калмана непрерывного времени не может использоваться в подсистемах Function-Call или Triggered Subsystems.

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

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

В R2021a изменилось поведение

Ссылки

[1] Франклин, Г.Ф., Джей Ди. Пауэлл и М.Л. Уоркман, Digital Control of Dynamic Systems, Second Edition, Addison-Wesley, 1990.

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.

Создание кода ПЛК
Создание структурированного текстового кода с помощью Coder™ Simulink ® PLC

.
Представлен в R2014b