Оценка состояний нелинейной системы дискретного времени с использованием сигма-точечного фильтра Калмана
Набор инструментов системы управления/оценка состояния
Набор средств идентификации/оценки системы
Блок 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
когда измеренные данные недоступны. Точно так же, если измеренные выходные данные недоступны во всех временных точках порта 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
в блок 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
- Инвариантный по времени процесс шумовой ковариации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' |
Alpha
- Распределение точек сигмы1e-3
(по умолчанию) | скалярное значение в диапазоне от 0 до 1Сигма-точечный фильтр Калмана обрабатывает состояние системы как случайную переменную со средним значением состояния и отклонением. Чтобы вычислить состояние и его статистические свойства на следующем временном шаге, алгоритм сначала генерирует набор значений состояния, распределенных вокруг среднего значения, используя неароматизированное преобразование. Эти значения сгенерированного состояния называются точки. Алгоритм использует каждую из точек сигмы как вход в функции перехода и измерения состояния, чтобы получить новый набор преобразованных точек состояния и измерений. Преобразованные точки используются, чтобы вычислить состояние и ковариационное значение ошибки расчета состояния на следующем временном шаге.
Разброс точек сигмы вокруг среднего значения состояния управляется двумя параметрами Alpha и Kappa. Третий параметр, Beta, влияет на веса преобразованных точек во время ковариационных вычислений состояния и измерения:
Alpha - Определяет разброс точек сигмы вокруг среднего значения состояния. Задайте как скалярное значение от 0 до 1 (0
<Alpha <= 1
). Обычно это небольшое положительное значение. Разброс точек сигмы пропорционален Alpha. Меньшие значения соответствуют точкам сигмы ближе к среднему состоянию.
Kappa - второй параметр масштабирования, который обычно устанавливается на 0. Меньшие значения соответствуют точкам сигмы ближе к среднему состоянию. Спред пропорционален квадратному корню Kappa
.
Beta - Включает в себя предварительные знания о распределении состояния. Для Гауссовых распределений Beta = 2 оптимально.
Если вы знаете распределение ковариации состояний и состояний, можно настроить эти параметры, чтобы захватить преобразование моментов более высокого порядка распределения. Алгоритм может отслеживать только один пик в распределение вероятностей состояния. Если в распределении состояний вашей системы есть несколько пиков, можно настроить эти параметры так, чтобы точки сигмы оставались около одного пика. Для примера выберите небольшую Alpha, чтобы сгенерировать сигму точек близкую к среднему значению состояния.
Для получения дополнительной информации см. Сигма-точечный фильтр Калмана алгоритма.
Параметры блоков: Alpha |
Тип: Вектор символов, строка |
По умолчанию: '1e-3' |
Beta
- Характеристика распределения состояний2
(по умолчанию) | скалярное значение, больше или равное 0Характеристика распределения состояний, которая используется для регулировки весов преобразованных точек сигмы, заданная как скалярное значение, больше или равное 0. Для Гауссовых распределений, Beta
= 2 является оптимальным выбором.
Для получения дополнительной информации см. описание для Alpha.
Параметры блоков: Beta |
Тип: Вектор символов, строка |
По умолчанию: '2' |
Kappa
- Распределение точек сигмы0
(по умолчанию) | скалярное значение в диапазоне от 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
- Инвариантная по времени шумовая ковариация измерения1
(по умолчанию) | матрицаИнвариантная по времени шумовая ковариация измерения, заданная в виде матрицы. Размер матрицы зависит от значения параметра Measurement noise:
Measurement noise Additive
- Задайте ковариацию как N -by - N матрицу, где N - количество измерений системы.
Measurement noise Nonadditive
- Задайте ковариацию как V -by - V матрицу, где V - количество членов шума измерения.
Если измерение шумовая ковариация изменяется во времени, выберите Time-varying. Блок генерирует входной порт R i
чтобы задать изменяющуюся во времени ковариацию для ith функции измерения.
Этот параметр включен, если вы не задаете Time-Varying шум процесса.
Параметры блоков: MeasurementNoise1 , MeasurementNoise2 , MeasurementNoise3 , MeasurementNoise4 , MeasurementNoise5 |
Тип: Вектор символов, строка |
По умолчанию: '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, численные улучшения в алгоритме Unscented Kalman Filter могут привести к результатам, которые отличаются от результатов, полученных в предыдущих версиях.
Заданные вами функции перехода и измерения должны использовать только команды MATLAB и блоки Simulink, которые поддержка генерацию кода. Список блоков, поддерживающих генерацию кода, см. во встроенных блоках Simulink, поддерживающих генерацию кода (Simulink Coder). Список команд, поддерживающих генерацию кода, см. в разделах Функции и Объекты, поддерживаемые для генерации кода C/C + + (MATLAB Coder).
Сгенерированный код использует алгоритм, который отличается от алгоритма, который использует сам блок Unscented Kalman Filter. Вы можете увидеть некоторые числовые различия в результатах, полученных с помощью двух методов.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.