Оцените состояния дискретного времени нелинейная система с помощью сигма-точечного фильтра Калмана
Control System Toolbox / Оценка состояния
System Identification Toolbox / средства оценки
Блок Unscented 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) блоки. Никакие входные порты не сгенерированы для дополнительных входных параметров в блоке Unscented 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],v[k],MeasurementFcn1Inputs)
y2[k] = h2(x[k],v[k],MeasurementFcn2Inputs)
y3[k] = h3(x[k],v[k])
Здесь k
временной шаг и MeasurementFcn1Inputs
и MeasurementFcn2Inputs
дополнительные входные параметры к h1
и h2
.
Если вы задаете h1
, h2
, и h3
использование функций MATLAB (.m
файлы) в Function, программное обеспечение генерирует порты MeasurementFcn1Inputs и MeasurementFcn2Inputs, когда вы нажимаете Apply. Можно задать входные параметры к этим портам как скаляры, векторы или матрицы.
Если ваши функции измерения имеют больше чем один дополнительный вход, используйте Simulink Function (Simulink) блоки, чтобы задать функции. Когда вы используете блок Simulink Function, вы предоставляете дополнительные входные параметры непосредственно блоку Simulink Function с помощью Inport (Simulink) блоки. Никакие входные порты не сгенерированы для дополнительных входных параметров в блоке Unscented 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
когда результаты измерений не доступны. Точно так же, если измеренные выходные данные не доступны во всех моментах времени в порте yi
для функции измерения ith задайте соответствующий порт Enablei
как значение кроме 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
с блоком Unscented Kalman Filter.
Параметры блоков: StateTransitionFcn |
Ввод: вектор символов, строка |
Значение по умолчанию: 'myStateTransitionFcn' |
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
— Независимая от времени ковариация шума процесса
(значение по умолчанию) | скаляр | вектор | матрицаНезависимая от времени ковариация шума процесса в виде скаляра, вектора или матрицы в зависимости от значения параметра 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
— Оценка начального состояния
(значение по умолчанию) | векторОценочное значение начального состояния в виде Ns - вектор элемента, где Ns является количеством состояний в системе. Задайте значения начального состояния на основе своего знания системы.
Параметры блоков: InitialState |
Ввод: вектор символов, строка |
Значение по умолчанию: '0' |
Initial covariance
— Ошибочная ковариация оценки состояния
(значение по умолчанию) | скаляр | вектор | матрицаОшибочная ковариация оценки состояния в виде скаляра, Ns - вектор элемента или Ns-by-Ns матрица, где Ns является количеством состояний системы. Если вы задаете скаляр или вектор, программное обеспечение создает Ns-by-Ns диагональная матрица со скалярными или векторными элементами на диагонали.
Задайте высокое значение для ковариации, когда вы не уверены в значениях начального состояния, что задаете в Initial state.
Параметры блоков: InitialStateCovariance |
Ввод: вектор символов, строка |
Значение по умолчанию: '1' |
Alpha
— Распространение точек сигмы1e-3
(значение по умолчанию) | скалярное значение между 0 и 1Алгоритм сигма-точечного фильтра Калмана обрабатывает состояние системы как случайная переменная со средним значением состояния и отклонением. Чтобы вычислить состояние и его статистические свойства на следующем временном шаге, алгоритм сначала генерирует набор значений состояния, распределенных вокруг среднего значения при помощи недушистого преобразования. Эти сгенерированные значения состояния называются точками сигмы. Алгоритм использует каждую из точек сигмы как вход к функциям изменения состояния и измерения, чтобы получить новый набор преобразованных точек состояния и измерений. Преобразованные точки используются для расчета ошибочное значение ковариации оценки состояния и оценки состояния на следующем временном шаге.
Распространением точек сигмы вокруг среднего значения состояния управляют два параметра Alpha и Kappa. Третий параметр, Beta, влияет на веса преобразованных точек во время состояния и вычислений ковариации измерения:
\alpha Определяет распространение точек сигмы вокруг среднего значения состояния. Задайте как скалярное значение между 0 и 1 (0
<Alpha <= 1
). Это обычно - маленькое положительное значение. Распространение точек сигмы пропорционально Alpha. Меньшие значения соответствуют точкам сигмы ближе к среднему состоянию.
\kappa Второй масштабный коэффициент, который обычно устанавливается в 0. Меньшие значения соответствуют точкам сигмы ближе к среднему состоянию. Распространение пропорционально квадратному корню Kappa
.
\beta Включает предварительные знания распределения состояния. Для Распределений Гаусса Beta = 2 оптимален.
Если вы знаете распределение ковариации состояния и состояния, можно настроить эти параметры, чтобы получить преобразование моментов высшего порядка распределения. Алгоритм может отследить только один пик в вероятностном распределении состояния. Если существует несколько peaks в распределенности вашей системы, можно настроить эти параметры так, чтобы точки сигмы остались вокруг одного пика. Например, выберите маленький Alpha, чтобы сгенерировать точки сигмы близко к среднему значению состояния.
Для получения дополнительной информации см. Алгоритм Сигма-точечного фильтра Калмана.
Параметры блоков: Alpha |
Ввод: вектор символов, строка |
Значение по умолчанию: '1e-3' |
Beta
— Характеристика распределенности
(значение по умолчанию) | скалярное значение, больше, чем или равный 0Характеристика распределенности, которая используется, чтобы настроить веса преобразованных точек сигмы в виде скалярного значения, больше, чем или равный 0. Для Распределений Гаусса, Beta
= 2 оптимальный выбор.
Для получения дополнительной информации см. описание для Alpha.
Параметры блоков: Beta |
Ввод: вектор символов, строка |
Значение по умолчанию: '2' |
Kappa
— Распространение точек сигмы
(значение по умолчанию) | скалярное значение между 0 и 3Распространение сигмы указывает вокруг среднего значения состояния в виде скалярного значения между 0 и 3 (0
<= Kappa <= 3
). Kappa обычно задается как 0
. Меньшие значения соответствуют точкам сигмы ближе к среднему состоянию. Распространение пропорционально квадратному корню из Kappa. Для получения дополнительной информации см. описание для Alpha.
Параметры блоков: Kappa |
Ввод: вектор символов, строка |
Значение по умолчанию: '0' |
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))
Программное обеспечение генерирует дополнительный входной порт MeasurementFcnInput, чтобы задать этот аргумент.
Если вы используете блок Simulink Function, задаете x
и v
использование Argument Inport (Simulink) блокируется и дополнительные входные параметры Um1,...,Umn
использование Inport (Simulink) блокируется в блоке Simulink Function. Вы не обеспечиваете Um1,...,Umn
с блоком Unscented Kalman Filter.
Если у вас есть несколько датчиков в вашей системе, можно задать несколько функций измерения. Можно задать до пяти функций измерения с помощью кнопки Add Measurement. Чтобы удалить функции измерения, используйте Remove Measurement.
Параметры блоков: MeasurementFcn1 , MeasurementFcn2 , MeasurementFcn3 , MeasurementFcn4 , MeasurementFcn5 |
Ввод: вектор символов, строка |
Значение по умолчанию: 'myMeasurementFcn' |
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
— Независимая от времени ковариация шума измерения
(значение по умолчанию) | матрицаНезависимая от времени ковариация шума измерения в виде матрицы. Размер матрицы зависит от значения параметра Measurement noise:
Measurement noise является Additive
— Задайте ковариацию как N-by-N матрица, где N является количеством измерений системы.
Measurement noise является Nonadditive
— Задайте ковариацию как V-by-V матрица, где V является количеством условий шума измерения.
Если ковариация шума измерения является изменяющейся во времени, выберите Time-varying. Блок генерирует входной порт Ri
задавать изменяющуюся во времени ковариацию для функции измерения ith.
Этот параметр включен, если вы не задаете шум процесса как Time-Varying.
Параметры блоков: MeasurementNoise1 , MeasurementNoise2 , MeasurementNoise3 , MeasurementNoise4 , MeasurementNoise5 |
Ввод: вектор символов, строка |
Значение по умолчанию: '1' |
Time-varying
— Изменяющаяся во времени ковариация шума измеренияoff
(значение по умолчанию) | on
Если вы выбираете этот параметр для ковариации шума измерения первой функции измерения, блок включает дополнительный входной порт R1. Вы задаете изменяющуюся во времени ковариацию шума измерения в R1. Точно так же, если вы выбираете Time-varying для функции измерения ith, блок включает дополнительный входной порт Ri
задавать изменяющуюся во времени ковариацию шума измерения для этой функции.
Параметры блоков: HasTimeVaryingMeasurementNoise1 , HasTimeVaryingMeasurementNoise2 , HasTimeVaryingMeasurementNoise3 , HasTimeVaryingMeasurementNoise4 , HasTimeVaryingMeasurementNoise5 |
Ввод: символьный вектор |
Значения: 'off' on |
Значение по умолчанию: 'off' |
Add Enable Port
— Включите коррекцию предполагаемых состояний только, когда результаты измерений будут доступныoff
(значение по умолчанию) | on
Предположим, что измеренные выходные данные не доступны во всех моментах времени в порте y1, который соответствует первой функции измерения. Выберите Add Enable port, чтобы сгенерировать входной порт Enable1. Используйте сигнал в этом порте, чтобы включить коррекцию предполагаемых состояний только, когда результаты измерений будут доступны. Точно так же, если измеренные выходные данные не доступны во всех моментах времени в порте yi
для функции измерения 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
— Блокируйте шаг расчета
(значение по умолчанию) | положительная скалярная величинаБлокируйте шаг расчета в виде положительной скалярной величины. Если шаги расчета ваших функций изменения состояния и измерения отличаются, выберите 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. Задайте шаги расчета для функций измерения как положительные целочисленные множители шага расчета изменения состояния. Шаги расчета, которые вы задаете, соответствуют следующим входным портам:
Порты, соответствующие функции изменения состояния — вход Additional к изменению состояния, функционируют StateTransitionFcnInputs и изменяющаяся во времени ковариация шума процесса Q. Шаги расчета этих портов должны всегда равняться шагу расчета функции изменения состояния, но могут отличаться от шага расчета функций измерения.
Порты, соответствующие функции измерения ith — Measured выход yi
, дополнительный вход к измерению функционирует MeasurementFcni
Входные параметры, включите сигнал в порте Enablei
, и изменяющаяся во времени ковариация шума измерения Ri
. Шаги расчета этих портов для той же функции измерения должны всегда быть тем же самым, но могут отличаться от шага расчета для функции изменения состояния и других функций измерения.
Этот параметр доступен, если во вкладке 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 числовые улучшения алгоритма Unscented Kalman Filter могут привести к результатам, которые отличаются от результатов, которые вы получили в предыдущих версиях.
Функции изменения состояния и измерения, которые вы задаете, должны использовать только команды MATLAB и блоки Simulink та генерация кода поддержки. Для списка блоков, которые поддерживают генерацию кода, смотрите Simulink Встроенные Блоки Та Генерация кода Поддержки (Simulink Coder). Для списка команд, которые поддерживают генерацию кода, смотрите Функции и Объекты, Поддержанные для Генерации кода C/C++ (MATLAB Coder).
Сгенерированный код использует алгоритм, который отличается от алгоритма, который использует сам блок Unscented Kalman Filter. Вы можете видеть некоторые числовые различия в результатах, полученных с помощью этих двух методов.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.