Оценка состояний нелинейной системы дискретного времени с использованием расширенного фильтра Калмана
Набор инструментов системы управления/оценка состояния
Набор средств идентификации/оценки системы
Блок Extended Kalman Filter оценивает состояния нелинейной системы дискретного времени, используя алгоритм расширенного фильтра Калмана первого порядка в дискретном времени.
Рассмотрим объект с x состояниями, входными u, выходными y, технологическими шумовыми w и шумовыми v измерения. Предположим, что можно представлять объект как нелинейную систему.
Используя функции перехода и измерения состояния системы и расширенный алгоритм фильтра Калмана, блок производит оценки состояния для текущего временного шага. Для получения информации об алгоритме см. «Расширенные и нераскрытые алгоритмы фильтра Калмана для оценки состояния в режиме онлайн».
Вы создаете нелинейную функцию перехода состояния и функции измерения для системы и задаете эти функции в блоке. Блок поддерживает оценку состояния системы с несколькими датчиками, которые работают с различными частотами дискретизации. Можно задать до пяти функций измерения, каждая из которых соответствует датчику в системе. Можно также задать якобианы функций перехода и измерения состояния. Если вы их не задаете, программа численно вычисляет якобианов. Для получения дополнительной информации смотрите Функции перехода и измерения.
y1,y2,y3,y4,y5
- Выходные выходы измеренной системыИзмеренные выходы системы, соответствующие каждой функции измерения, которую вы задаете в блоке. Количество портов равняется количеству функций измерения в вашей системе. Можно задать до пяти функций измерения. Для примера, если ваша система имеет два датчика, вы задаете две функции измерения в блоке. Первый y1 порта доступен по умолчанию. Когда вы нажимаете Apply, программное обеспечение генерирует y2 порта, соответствующий второй функции измерения.
Задайте порты как N -мерные векторы, где N - количество величин, измеренных соответствующим датчиком. Например, если в вашей системе есть один датчик, который измеряет положение и скорость объекта, то существует только один y1 порта. Порт задается как 2-мерный вектор со значениями, соответствующими положению и скорости.
Первый y1 порта доступен по умолчанию. Порты, y2 к y5, генерируются при нажатии кнопки Add Measurement и нажатии кнопки Apply.
Типы данных: single
| double
StateTransitionFcnInputs
- Дополнительный необязательный входной параметр в функцию перехода состоянияДополнительный необязательный входной параметр для функции перехода состояния f
кроме состояния x
и технологический шум w
. Для получения информации о функциях перехода состояний см., Функции перехода состояний и измерения.
Предположим, что ваша система имеет неаддитивный шум процесса и функцию перехода состояния f
имеет следующую форму:
x(k+1) = f(x(k),w(k),StateTransitionFcnInputs)
Вот k
является временным шагом и StateTransitionFcnInputs
является дополнительным входным параметром, отличным от x
и w
.
Если вы создаете f
использование MATLAB® функция (.m
файл), программное обеспечение генерирует порт StateTransitionFcnInputs при нажатии кнопки Apply. Можно задать входы к этому порту в виде скаляра, вектора или матрицы.
Если ваша функция перехода состояния имеет более одного дополнительного входа, используйте Simulink Function (Simulink) блок, чтобы задать функцию. Когда вы используете блок Simulink Function, вы предоставляете дополнительные входы непосредственно блоку Simulink Function с помощью блоков Inport (Simulink). Никакие входные порты для дополнительных входов в блоке Extended Kalman Filter не генерируются.
Этот порт генерируется только в том случае, если оба из следующих условий удовлетворены:
Вы задаете f
в Function с помощью функции MATLAB и f
находится в пути MATLAB.
f
требует только один дополнительный входной параметр, кроме x
и w
.
Типы данных: single
| double
MeasurementFcn1Inputs,MeasurementFcn2Inputs,MeasurementFcn3Inputs,MeasurementFcn4Inputs,MeasurementFcn5Inputs
- Дополнительный необязательный входной параметр для каждой функции измеренияДополнительные необязательные входы для функций измерения, отличных от состояния x
и измерительный шум v
. Для получения информации о функциях измерения см., Функции перехода и измерения состояния.
MeasurementFcn1Inputs соответствует первой заданной функции измерения и так далее. Например, предположим, что ваша система имеет три датчика и неаддитивный измерительный шум, и три функции измерения h1
, h2
, и h3
иметь следующую форму:
y1[k] = h1(x[k],v1[k],MeasurementFcn1Inputs)
y2[k] = h2(x[k],v2[k],MeasurementFcn2Inputs)
y3[k] = h3(x[k],v3[k])
Вот k
является временным шагом и MeasurementFcn1Inputs
и MeasurementFcn2Inputs
являются ли дополнительные входные параметры h1
и h2
.
Если вы задаете h1
, h2
, и h3
использование функций MATLAB (.m
файлы) в Function программное обеспечение генерирует порты MeasurementFcn1Inputs и MeasurementFcn2Inputs при клике Apply. Можно задать входы к этим портам как скаляры, векторы или матрицы.
Если ваши функции измерения имеют больше чем один дополнительный вход, используйте Simulink Function (Simulink) блоки, чтобы задать функции. Когда вы используете блок Simulink Function, вы предоставляете дополнительные входы непосредственно блоку Simulink Function с помощью блоков Inport (Simulink). Никакие входные порты для дополнительных входов в блоке Extended Kalman Filter не генерируются.
Порт, относящийся к функции измерения h
генерируется только в том случае, если оба из следующих условий удовлетворены:
Вы задаете h
в Function с помощью функции MATLAB и h
находится в пути MATLAB.
h
требует только один дополнительный входной параметр, кроме x
и v
.
Типы данных: single
| double
Q
- Изменяющийся во времени процесс шумовой ковариацииИзменяющаяся во времени шумовая ковариация процесса, заданная в виде скаляра, вектора или матрицы в зависимости от значения параметра Process noise:
Process noise Additive
- Задайте ковариацию как скаляр, Ns вектор -элемент или Ns матрицу -by Ns, где Ns - количество состояний системы. Задайте скаляр, если нет перекрестной корреляции между терминами шума процесса, и все члены имеют одинаковое отклонение. Задайте вектор длины Ns, если нет перекрестной корреляции между терминами шума процесса, но все члены имеют различные отклонения.
Process noise Nonadditive
- Задайте ковариацию как W -by - W матрицу, где W - количество членов технологического шума в функции перехода состояния.
Этот порт генерируется, если вы задаете ковариацию шума процесса следующим Time-Varying. Порт появляется при нажатии кнопки Apply.
Типы данных: single
| double
R1,R2,R3,R4,R5
- Изменяющаяся во времени шумовая ковариация измеренияИзменяющиеся во времени шумовые ковариации измерения для до пяти функций измерения системы, заданные как матрицы. Размеры матриц зависят от значения параметра Measurement noise для соответствующей функции измерения:
Measurement noise Additive
- Задайте ковариацию как N -by - N матрицу, где N - количество измерений системы.
Measurement noise Nonadditive
- Задайте ковариацию как V -by - V матрицу, где V - количество членов шума измерения в соответствующей функции измерения.
Порт генерируется, если вы задаете ковариацию шума измерения как Time-Varying для соответствующей функции измерения. Порт появляется при нажатии кнопки Apply.
Типы данных: single
| double
Enable1,Enable2,Enable3,Enable4,Enable5
- Включить коррекцию предполагаемых состояний, когда доступны измеренные данныеПредположим, что измеренные выходные данные недоступны во всех временных точках в y1 порта, которая соответствует первой функции измерения. Используйте значение сигналов, отличное от 0
в Enable1 порте, чтобы включить коррекцию предполагаемых состояний, когда измеренные данные доступны. Задайте значение порта следующим 0
когда измеренные данные недоступны. Точно так же, если измеренные выходные данные недоступны во всех временных точках порта y i
для ith функции измерения, задайте соответствующий порт Enable i
как значение, отличное от 0
.
Порт, относящийся к функции измерения, генерируется, если вы выбираете Add Enable port для этой функции измерения. Порт появляется при нажатии кнопки Apply.
Типы данных: single
| double
| Boolean
xhat
- Предполагаемые состоянияПредполагаемые состояния, возвращенные как вектор размера Ns, где Ns - количество состояний системы. Для доступа к индивидууму состояниям используйте блок Selector (Simulink).
Когда параметр Use the current measurements to improve state estimates выбран, блок выводит исправленную оценку состояния в временной шаг k
, оцененный с использованием измеренных выходов до времени k
. Если вы очистите этот параметр, блок вернёт предсказанную оценку состояния для временных k
, оцененный с использованием измеренного выхода до предыдущего временного k-1
. Очистите этот параметр, если ваш фильтр находится в цикле обратной связи, и в вашем Simulink есть алгебраический цикл® модель.
Типы данных: single
| double
P
- Ковариация ошибки расчета состоянияКовариация ошибки расчета состояния, возвращенная как Ns -by - Ns матрица, где Ns - количество состояний системы. Для доступа к отдельным ковариациям используйте блок Selector (Simulink).
Этот порт генерируется, если вы выбираете Output state estimation error covariance на вкладке System Model и нажимаете Apply.
Типы данных: single
| double
Function
- Имя функции перехода к состояниюmyStateTransitionFcn
(по умолчанию) | имя функцииФункция перехода между состояниями вычисляет вектор Ns - элемент состояния системы на временной шаг k + 1, учитывая вектор состояния на временной шаг k. Ns - количество состояний нелинейной системы. Вы создаете функцию перехода между состояниями и задаете имя функции в Function. Для примера, если vdpStateFcn.m
является функцией перехода состояния, которую вы создали и сохранили, задайте Function как vdpStateFcn
.
Входы функции, которую вы создаете, зависят от того, задаете ли вы технологический шум как аддитивный или неаддитивный в Process noise.
Process noise Additive
- функция f перехода состояния задает, как состояния развиваются как функция от значений состояния на предыдущем временном шаге:
x(k+1) = f(x(k),Us1(k),...,Usn(k))
,
где x(k)
- расчетное состояние во времени k
, и Us1,...,Usn
- любые дополнительные входные аргументы, требуемые функцией перехода вашего состояния, такие как входы или шаг расчета. Чтобы увидеть пример функции перехода состояния с аддитивным технологическим шумом, введите edit vdpStateFcn
в командной строке.
Process noise Nonadditive
- функция перехода состояния также задает, как состояния развиваются как функция технологического шума w
:
x(k+1) = f(x(k),w(k),Us1(k),...,Usn(k))
.
Для получения дополнительной информации смотрите Функции перехода и измерения.
Можно создать f с помощью блока Simulink Function (Simulink) или как функцию MATLAB (.m
файл).
Вы можете использовать функцию MATLAB, только если у f есть один дополнительный входной параметр Us1
кроме x
и w
.
x(k+1) = f(x(k),w(k),Us1(k))
Программное обеспечение генерирует дополнительный входной порт StateTransitionFcnInputs чтобы задать этот аргумент.
Если вы используете блок Simulink Function, задайте x
и w
использование Argument Inport (Simulink) блоков и дополнительных входов Us1,...,Usn
использование Inport (Simulink) блоков в блоке Simulink Function. Вы не предоставляете Us1,...,Usn
в блок Extended Kalman Filter.
Параметры блоков: StateTransitionFcn |
Тип: Вектор символов, строка |
По умолчанию: 'myStateTransitionFcn' |
Jacobian
- якобиан переходной функции государстваoff
(по умолчанию) | on
Якобиан функции f перехода состояния, заданный как одно из следующего:
off
- программа вычисляет якобиан численно. Этот расчет может увеличить время вычислений и числовую неточность оценки состояния.
on
- Вы создаете функцию для вычисления якобиана и задаете имя функции в Jacobian. Для примера, если vdpStateJacobianFcn.m
- якобианская функция, задайте Jacobian как vdpStateJacobianFcn
. Если вы создаете функцию перехода между состояниями f используя блок Simulink Function (Simulink), то создайте якобиан с помощью блока Simulink Function. Если вы создаете f с помощью функции MATLAB (.m
файл), затем создайте якобиан с помощью функции MATLAB.
Функция вычисляет частные производные функции перехода состояния относительно состояний и технологического шума. Количество входов в функцию Якобяна должно равняться количеству входов функции перехода состояния и должно быть задано в том же порядке в обеих функциях. Количество выходов якобианской функции зависит от параметра Process noise:
Process noise Additive
- функция вычисляет частную производную функции перехода состояния, f относительно состояний (). Выходом является Ns -by Ns якобианская матрица, где Ns - количество состояний.
Чтобы увидеть пример якобианской функции для аддитивного технологического шума, введите edit vdpStateJacobianFcn
в командной строке.
Process noise Nonadditive
- Функция должна также вернуть второй выход, который является частной производной функции перехода состояния, f относительно членов шума процесса (). Второй выход возвращается как Ns -by - W матрица, где W - количество членов технологического шума в функции перехода состояния.
Параметры блоков: HasStateTransitionJacobianFcn |
Тип: Вектор символов |
Значения: 'off' , 'on' |
По умолчанию: 'off' |
Параметры блоков: StateTransitionJacobianFcn |
Тип: Вектор символов, строка |
По умолчанию: '' |
Process noise
- Характеристики технологического шумаAdditive
(по умолчанию) | Nonadditive
Характеристики технологического шума, заданные как одно из следующих значений:
Additive
- Технологический шум w
является аддитивной, и переходная функция состояния f, которую вы задаете в Function, имеет следующую форму:
x(k+1) = f(x(k),Us1(k),...,Usn(k))
,
где x(k)
- расчетное состояние во времени k
, и Us1,...,Usn
- любые дополнительные входные параметры, требуемые функцией перехода состояния.
Nonadditive
- Шум процесса неаддитивен, и функция перехода состояния задает, как состояния развиваются как функция состояния и технологического шума на предыдущем временном шаге:
x(k+1) = f(x(k),w(k),Us1(k),...,Usn(k))
.
Параметры блоков: HasAdditiveProcessNoise |
Тип: Вектор символов |
Значения: 'Additive' , 'Nonadditive' |
По умолчанию: 'Additive' |
Covariance
- Инвариантный по времени процесс шумовой ковариации1
(по умолчанию) | скалярный вектор | | матрицаИнвариантная по времени шумовая ковариация процесса, заданная в виде скаляра, вектора или матрицы в зависимости от значения Process noise параметра:
Process noise Additive
- Задайте ковариацию как скаляр, Ns вектор -элемент или Ns матрицу -by Ns, где Ns - количество состояний системы. Задайте скаляр, если нет перекрестной корреляции между терминами шума процесса и все члены имеют одинаковое отклонение. Задайте вектор длины Ns, если нет перекрестной корреляции между терминами шума процесса, но все члены имеют различные отклонения.
Process noise Nonadditive
- Задайте ковариацию как W -by - W матрицу, где W - количество членов технологического шума.
Если ковариация шума процесса изменяется во времени, выберите Time-varying. Блок генерирует входной порт Q, чтобы задать изменяющуюся во времени ковариацию.
Этот параметр включен, если вы не задаете Time-Varying шум процесса.
Параметры блоков: ProcessNoise |
Тип: Вектор символов, строка |
По умолчанию: '1' |
Time-varying
- Изменяющийся во времени процесс шумовой ковариации'off'
(по умолчанию) | 'on'
Если вы выбираете этот параметр, блок включает дополнительный входной порт Q чтобы задать изменяющуюся во времени шумовую ковариацию процесса.
Параметры блоков: HasTimeVaryingProcessNoise |
Тип: Вектор символов |
Значения: 'off' , 'on' |
По умолчанию: 'off' |
Initial state
- Оценка начального состояния0
(по умолчанию) | векторНачальное значение оценки состояния, заданное как Ns элемент, где Ns - количество состояний в системе. Задайте начальные значения состояния на основе ваших знаний о системе.
Параметры блоков: InitialState |
Тип: Вектор символов, строка |
По умолчанию: '0' |
Initial covariance
- Ковариация ошибки расчета состояния1
(по умолчанию) | скалярный вектор | | матрицаКовариация ошибки расчета состояния, заданная как скаляр, Ns вектор -элемент или Ns матрица -by Ns, где Ns - количество состояний системы. Если вы задаете скаляр или вектор, программа создает Ns -by Ns диагональную матрицу с скалярными или векторными элементами на диагонали.
Задайте высокое значение для ковариации, когда у вас нет доверия в начальных значениях состояния, которые вы задаете в Initial state.
Параметры блоков: InitialStateCovariance |
Тип: Вектор символов, строка |
По умолчанию: '1' |
Function
- Имя функции измеренияmyMeasurementFcn
(по умолчанию) | имя функцииФункция измерения вычисляет выходной вектор измерения N-элемента нелинейной системы на временном шаге k, учитывая вектор состояния на временном шаге k. Вы создаете функцию измерения и задаете имя функции в Function. Для примера, если vdpMeasurementFcn.m
является функцией измерения, которую вы создали и сохранили, задайте Function как vdpMeasurementFcn
.
Входы функции, которую вы создаете, зависят от того, задаете ли вы шум измерения как аддитивный или неаддитивный в Measurement noise.
Measurement noise Additive
- Функция h измерения задает, как измерения развиваются как функция от Значений состояния:
y(k) = h(x(k),Um1(k),...,Umn(k))
,
где y(k)
и x(k)
- это расчетный выход и расчетное состояние во времени k
, и Um1,...,Umn
все необязательные входные параметры, требуемые вашей функцией измерения. Для примера, если вы используете датчик для отслеживания объекта, дополнительным входом может стать положение датчика.
Чтобы увидеть пример функции измерения с аддитивным технологическим шумом, введите edit vdpMeasurementFcn
в командной строке.
Measurement noise Nonadditive
- Функция измерения также задает, как формируется выходное измерение как функция от шума измерения v
:
y(k) = h(x(k),v(k),Um1(k),...,Umn(k))
.
Чтобы увидеть пример функции измерения с неаддитивным шумом процесса, введите edit vdpMeasurementNonAdditiveNoiseFcn
.
Для получения дополнительной информации смотрите Функции перехода и измерения.
Можно создать h с помощью блока Simulink Function (Simulink) или как функцию MATLAB (.m
файл).
Вы можете использовать функцию MATLAB, только если у h есть один дополнительный входной параметр Um1
кроме x
и v
.
y[k] = h(x[k],v[k],Um1(k))
Программное обеспечение генерирует дополнительный входной порт MeasurementFcn i
Входы для задания этого аргумента для i-й функции измерения.
Если вы используете блок Simulink Function, задайте x
и v
использование Argument Inport (Simulink) блоков и дополнительных входов Um1,...,Umn
использование Inport (Simulink) блоков в блоке Simulink Function. Вы не предоставляете Um1,...,Umn
в блок Extended Kalman Filter.
Если в вашей системе есть несколько датчиков, можно задать несколько функций измерения. Вы можете задать до пяти функций измерения с помощью кнопки Add Measurement. Чтобы удалить функции измерения, используйте Remove Measurement.
Параметры блоков: MeasurementFcn1 , MeasurementFcn2 , MeasurementFcn3 , MeasurementFcn4 , MeasurementFcn5 |
Тип: Вектор символов, строка |
По умолчанию: 'myMeasurementFcn' |
Jacobian
- якобиан функции измеренияoff
(по умолчанию) | on
Якобиан функции h измерения, заданный как одно из следующего:
off
- программа вычисляет якобиан численно. Этот расчет может увеличить время вычислений и числовую неточность оценки состояния.
on
- Вы создаете функцию, чтобы вычислить Якобиан h функции измерения и задать имя функции в Jacobian. Для примера, если vdpMeasurementJacobianFcn.m
- якобианская функция, задайте MeasurementJacobianFcn
как vdpMeasurementJacobianFcn
. Если вы создаете h с помощью блока Simulink Function (Simulink), то создайте якобиан с помощью блока Simulink Function. Если вы создаете h с помощью функции MATLAB (.m
файл), затем создайте якобиан с помощью функции MATLAB.
Функция вычисляет частные производные h функции измерения относительно состояний и шума измерения. Количество входов в функцию Якобяна должно равняться количеству входов в функцию измерения и должно быть задано в том же порядке в обеих функциях. Количество выходов якобианской функции зависит от параметра Measurement noise:
Measurement noise Additive
- функция вычисляет частные производные функции измерения относительно состояний (). Вывод как N -by - Ns якобианской матрицы, где N - количество измерений системы и Ns - количество состояний.
Чтобы увидеть пример якобианской функции для аддитивного шума измерения, введите edit vdpMeasurementJacobianFcn
в командной строке.
Measurement noise Nonadditive
- Функция также возвращает второй выход, который является частной производной функции измерения относительно членов шума измерения (). Второй выход возвращается как N -by V якобианская матрица, где V - количество членов шума измерения.
Параметры блоков: HasMeasurementJacobianFcn1 , HasMeasurementJacobianFcn2 , HasMeasurementJacobianFcn3 , HasMeasurementJacobianFcn4 , HasMeasurementJacobianFcn5 |
Тип: Вектор символов |
Значения: 'off' , 'on' |
По умолчанию: 'off' |
Параметры блоков: MeasurementJacobianFcn1 , MeasurementJacobianFcn2 , MeasurementJacobianFcn3 , MeasurementJacobianFcn4 , MeasurementJacobianFcn5 |
Тип: Вектор символов |
По умолчанию: '' |
Measurement noise
- Характеристики шума измеренияAdditive
(по умолчанию) | Nonadditive
Характеристики шума измерения, заданные как одно из следующих значений:
Additive
- Измерительный шум v
является аддитивной, и функция измерения h, которую вы задаете в Function, имеет следующую форму:
y(k) = h(x(k),Um1(k),...,Umn(k))
,
где y(k)
и x(k)
- это расчетный выход и расчетное состояние во времени k
, и Um1,...,Umn
все необязательные входные параметры, требуемые вашей функцией измерения.
Nonadditive
- Шум измерения является неаддитивным, и функция измерения определяет, как развитие выходного измерения как функции состояния и шума измерения:
y(k) = h(x(k),v(k),Um1(k),...,Umn(k))
.
Параметры блоков: HasAdditiveMeasurementNoise1 , HasAdditiveMeasurementNoise2 , HasAdditiveMeasurementNoise3 , HasAdditiveMeasurementNoise4 , HasAdditiveMeasurementNoise5 |
Тип: Вектор символов |
Значения: 'Additive' , 'Nonadditive' |
По умолчанию: 'Additive' |
Covariance
- Инвариантный по времени процесс шумовой ковариации1
(по умолчанию) | скалярный вектор | | матрицаИнвариантная по времени шумовая ковариация процесса, заданная в виде скаляра, вектора или матрицы в зависимости от значения Process noise параметра:
Process noise Additive
- Задайте ковариацию как скаляр, Ns вектор -элемент или Ns матрицу -by Ns, где Ns - количество состояний системы. Задайте скаляр, если нет перекрестной корреляции между терминами шума процесса и все члены имеют одинаковое отклонение. Задайте вектор длины Ns, если нет перекрестной корреляции между терминами шума процесса, но все члены имеют различные отклонения.
Process noise Nonadditive
- Задайте ковариацию как W -by - W матрицу, где W - количество членов технологического шума.
Если ковариация шума процесса изменяется во времени, выберите Time-varying. Блок генерирует входной порт Q, чтобы задать изменяющуюся во времени ковариацию.
Этот параметр включен, если вы не задаете Time-Varying шум процесса.
Параметры блоков: ProcessNoise |
Тип: Вектор символов, строка |
По умолчанию: '1' |
Time-varying
- Изменяющаяся во времени шумовая ковариация измеренияoff
(по умолчанию) | on
Если вы выбираете этот параметр для ковариации шума измерения первой функции измерения, блок включает дополнительный входной R1 порта. Вы задаете изменяющуюся во времени шумовую ковариацию измерения в R1. Точно так же, если вы выбираете Time-varying для ith функции измерения, блок включает дополнительный входной порт R i
для определения изменяющейся во времени шумовой ковариации измерения для этой функции.
Параметры блоков: HasTimeVaryingMeasurementNoise1 , HasTimeVaryingMeasurementNoise2 , HasTimeVaryingMeasurementNoise3 , HasTimeVaryingMeasurementNoise4 , HasTimeVaryingMeasurementNoise5 |
Тип: Вектор символов |
Значения: 'off' , 'on' |
По умолчанию: 'off' |
Add Enable Port
- Включить коррекцию предполагаемых состояний только при наличии измеренных данныхoff
(по умолчанию) | on
Предположим, что измеренные выходные данные недоступны во всех временных точках в y1 порта, которая соответствует первой функции измерения. Выберите Add Enable port, чтобы сгенерировать Enable1 входного порта. Используйте сигнал в этом порте, чтобы включить коррекцию предполагаемых состояний, только когда измеренные данные доступны. Точно так же, если измеренные выходные данные недоступны во всех временных точках порта y i
для ith функции измерения, выберите соответствующую Add Enable port.
Параметры блоков: HasMeasurementEnablePort1 , HasMeasurementEnablePort2 , HasMeasurementEnablePort3 , HasMeasurementEnablePort4 , HasMeasurementEnablePort5 |
Тип: Вектор символов |
Значения: 'off' , 'on' |
По умолчанию: 'off' |
Use the current measurements to improve state estimates
- Выбор между скорректированной или предсказанной оценкой состоянияon
(по умолчанию) | off
Когда этот параметр выбран, блок выводит исправленную оценку состояния в временной шаг k
, оцененный с использованием измеренных выходов до времени k
. Если вы очистите этот параметр, блок вернёт предсказанную оценку состояния для временных k
, оцененный с использованием измеренного выхода до предыдущего временного k-1
. Очистите этот параметр, если ваш фильтр находится в цикле обратной связи, и в вашей модели Simulink есть алгебраический цикл.
Параметры блоков: UseCurrentEstimator |
Тип: Вектор символов |
Значения: 'off' , 'on' |
По умолчанию: 'on' |
Output state estimation error covariance
- Ковариация ошибки расчета выходного состоянияoff
(по умолчанию) | on
Если вы выбираете этот параметр, в блоке генерируется ковариационный выходной P ошибки расчета состояния.
Параметры блоков: OutputStateCovariance |
Тип: Вектор символов |
Значения: 'off' , 'on' |
По умолчанию: 'off' |
Data type
- Тип данных для блочных параметровdouble
(по умолчанию) | single
Используйте этот параметр, чтобы задать тип данных для всех параметров блоков.
Параметры блоков: DataType |
Тип: Вектор символов |
Значения: 'single' , 'double' |
По умолчанию: 'double' |
Sample time
- Блокируйте шаг расчета1
(по умолчанию) | положительная скалярная величинаБлок шаг расчета, заданный как положительная скалярная величина. Если шаги расчета вашего перехода и функции измерения различны, выберите Enable multirate operation на вкладке Multirate и укажите шаги расчета на вкладке Multirate.
Этот параметр доступен, если на вкладке Multirate, параметр Enable multirate operation off
.
Параметры блоков: SampleTime |
Тип: Вектор символов, строка |
По умолчанию: '1' |
Enable multirate operation
- Включите спецификацию различных шагов расчета для функций перехода и измерения состоянияoff
(по умолчанию) | on
Выберите этот параметр, если шаги расчета переходов состояний и функций измерения различны. Вы задаете шаги расчета на вкладке Multirate, в Sample time.
Параметры блоков: EnableMultirate |
Тип: Вектор символов |
Значения: 'off' , 'on' |
По умолчанию: 'off' |
Sample times
- Время дискретизации переходов и функций измеренияЕсли шаги расчета для функций перехода и измерения различны, задайте Sample time. Задайте шаги расчета для функций измерения как положительное целое число множителей переходного шага расчета состояния. Заданные вами шаги расчета соответствуют следующим входным портам:
Порты, соответствующие функции перехода состояния - Дополнительный вход в функцию перехода состояния StateTransitionFcnInputs и изменяющиеся во времени ковариационные Q шума процесса. Шаги расчета этих портов должно всегда равняться шага расчета функции перехода состояния, но может отличаться от шага расчета функций измерения.
Порты, соответствующие ith функция измерения - Измеренный выход y i
, дополнительный вход в функцию измерения MeasurementFcn i
Входы, разрешающий сигнал в порте Enable i
и изменяющуюся во времени шумовую ковариацию R i
. Шаги расчета этих портов для одной и той же функции измерения должно всегда быть одинаковым, но может отличаться от шага расчета для функции перехода состояния и других функций измерения.
Этот параметр доступен, если на вкладке Multirate, параметр Enable multirate operation on
.
Параметры блоков: StateTransitionFcnSampleTime , MeasurementFcn1SampleTime1 , MeasurementFcn1SampleTime2 , MeasurementFcn1SampleTime3 , MeasurementFcn1SampleTime4 , MeasurementFcn1SampleTime5 |
Тип: Вектор символов, строка |
По умолчанию: '1' |
Алгоритм вычисляет оценки состояния нелинейной системы с использованием заданных Вами функций перехода и измерения. Можно задать до пяти функций измерения, каждая из которых соответствует датчику в системе. Программа позволяет вам задать шум в этих функциях как аддитивный или неаддитивный.
Условия аддитивного шума - Переходы состояний и уравнения измерений имеют следующую форму:
Здесь f является нелинейной функцией перехода состояния, которая описывает эволюцию состояний x
от одного временного шага до следующего. Нелинейная функция измерения h связана x
к измерениям y
в временной шаг k
. w
и v
являются нулевым средним, некоррелированным процессом и измерительными шумами, соответственно. Эти функции могут также иметь дополнительные необязательные входные параметры, которые обозначаются us
и um
в уравнениях. Для примера дополнительные аргументы могут быть временным шагом k
или входы u
в нелинейную систему. Таких аргументов может быть несколько.
Обратите внимание, что условия шума в обоих уравнениях аддитивны. То есть x(k+1)
линейно связан с технологическим шумом w(k)
, и y(k)
линейно связан с шумом измерения v(k)
. Для членов аддитивного шума не нужно задавать условия шума в функциях перехода и измерения состояния. Программа добавляет условия к выходу функций.
Неаддитивные Условия Шума - Программное обеспечение также поддерживает более комплексный переход состояния и функции измерения, где x состояния [k] и y измерения [k] являются нелинейными функциями технологического шума и шума измерения, соответственно. Когда члены шума неаддитивны, переход состояния и уравнение измерений имеют следующую форму:
Поведение изменено в R2020b
Начиная с R2020b, численные улучшения в алгоритме Extended Kalman Filter могут привести к результатам, которые отличаются от результатов, полученных в предыдущих версиях.
Заданные вами функции перехода, измерения и якобианы должны использовать только команды MATLAB и блоки Simulink, которые поддерживают генерацию кода. Список блоков, поддерживающих генерацию кода, см. во встроенных блоках Simulink, поддерживающих генерацию кода (Simulink Coder). Список команд, поддерживающих генерацию кода, см. в разделах Функции и Объекты, поддерживаемые для генерации кода C/C + + (MATLAB Coder).
Сгенерированный код использует алгоритм, который отличается от алгоритма, который использует сам блок Extended Kalman Filter. Вы можете увидеть некоторые числовые различия в результатах, полученных с помощью двух методов.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.