switchimm

Образцовая функция преобразования для объекта trackingIMM

Синтаксис

x = switchimm(modelType1,x1,modelType2)
x = switchimm(___,x2)

Описание

пример

x = switchimm(modelType1,x1,modelType2) преобразовывает свойства State или StateCovariance объекта trackingIMM от определения состояния modelType1 до определения состояния modelType2.

  • modelType1 – Задает имя строки текущей модели движения.

  • x1 Задает State или StateCovariance, соответствующий modelType1.

  • modelType2 – Задает имя строки модели движения, в которую должен быть преобразован x1.

пример

x = switchimm(___,x2) дополнительно позволяет вам задать размер и тип вывода. Если не заданный, x имеет совпадающий тип данных и размерность как x1.

x2 задает State или StateCovariance, соответствующий modelType2.

Примеры

свернуть все

Преобразуйте состояние от постоянной ускоряющей модели до постоянной скоростной модели использование функции switchimm.

Инициализация

Установите текущую модель на 'constacc' и целевую модель к 'constvel'. Переменная x1 задает состояние в текущей модели.

modelType1 = 'constacc';
modelType2 = 'constvel';
x1 = single([1;2;3;4;5;6]);

Преобразование

Функция switchimm преобразовывает 2D постоянный ускоряющий вход состояния в 2D постоянное скоростное состояние вывод. Вывод имеет ту же размерность и тип данных как вход x1.

x = switchimm(modelType1,x1,modelType2)
x = 4x1 single column vector

     1
     2
     4
     5

Преобразуйте состояние от постоянной ускоряющей модели до постоянной модели поворота использование функции switchimm. Задайте x2 как входной параметр.

Инициализация

Установите текущую модель на 'constacc' и целевую модель к 'constturn'. Переменная x1 задает состояние в текущей модели. Размер и тип данных вывода определяются дополнительным входом x2.

modelType1 = 'constacc';
modelType2 = 'constturn';
x1 = [1;2;3;4;5;6];
x2 = [0;0;0;0;0;0;0];

Преобразование

Функция switchimm преобразовывает 2D постоянный ускоряющий вход состояния в 3-D постоянное состояние модели поворота вывод. Вывод имеет тот же размер и тип данных как вход x2.

x = switchimm(modelType1,x1,modelType2,x2)
x = 7×1

     1
     2
     4
     5
     0
     0
     0

Входные параметры

свернуть все

Текущая модель движения, заданная как:

  • 'constvel' – Постоянная скоростная модель движения.

  • 'constacc' – Модель движения постоянного ускорения.

  • 'constturn' – Постоянная модель движения угловой скорости вращения.

Вектор состояния или ковариационная матрица состояния, соответствующая текущей модели в modelType1, заданном как L-by-1 вектор действительных чисел или L-by-L действительная матрица.

Размер вектора состояния должен соответствовать модели движения. Например, если modelType является 'constvel', вектор состояния должен иметь размер 2, 4, или 6. Точно так же, если modelType является 'constacc', вектор состояния должен иметь размер 3, 6, или 9. Если modelType является 'constturn', вектор состояния должен иметь размер 5, 7, 10, 15, 14, или 21. Отношение между типом модели, размером состояния и размерностью пробела дано следующей таблицей:

modelType1Поддерживаемая размерность пробелаРазмер состояния
'constvel'1D, 2D, 3-D

2 ✕ размерности Пробела

'constacc'1D, 2D, 3-D

3 ✕ размерности Пробела

'constturn'2D и 3-D

5 для 2D пробела и 7 для 3-D пробела

Тип модели 'constturn' поддерживает только 2D и 3-D пробелы, поскольку поворот не может быть сделан на 1D пробеле. Если размерность пробела вычисляется, чтобы быть 1D, то есть, размер состояния равняется 5 или 7, функция обрабатывает выходную размерность как 2, и значения, соответствующие второму измерению, установлены к 0. Например, запустите следующее в командной строке MATLAB®:

switchimm('constvel',rand(2,1),'constturn')

Типы данных: single | double

Модель Motion, в которую должен быть преобразован x1, задала как:

  • 'constvel' – Постоянная скоростная модель движения.

  • 'constacc' – Модель движения постоянного ускорения.

  • 'constturn' – Постоянная модель движения угловой скорости вращения.

Дополнительный вход x2 имеет тот же размер и тип данных как вектор состояния вывода или ковариационная матрица состояния, x. Переменная x2 не содержит фактическую информацию о состоянии вывода, но только содержит размер и тип данных состояния вывода. Например, когда x2 установлен в [0; 0; 0; 0; 0; 0; 0], функция определяет вектор состояния вывода, чтобы быть вектором размера 7 с типом данных дважды.

Размер вектора состояния должен соответствовать модели движения. Например, если modelType является 'constvel', вектор состояния должен иметь размер 2, 4, или 6. Точно так же, если modelType является 'constacc', вектор состояния должен иметь размер 3, 6, или 9. Отношение между типом модели, размером состояния и размерностью пробела дано следующей таблицей:

modelType1Поддерживаемая размерность пробелаРазмер состояния
'constvel'1D, 2D, 3-D

2 ✕ размерности Пробела

'constacc'1D, 2D, 3-D

3 ✕ размерности Пробела

'constturn'2D и 3-D

5 для 2D пробела и 7 для 3-D пробела

Пример: [0; 0; 0; 0; 0; 0; 0]

Типы данных: single | double

Выходные аргументы

свернуть все

Вектор состояния или ковариационная матрица состояния, соответствуя модели движения заданы в modelType2.

Отношение между типом модели, размером состояния и размерностью пробела дано следующей таблицей:

modelType1Поддерживаемая размерность пробелаРазмер состояния
'constvel'1D, 2D, 3-D

2 ✕ размерности Пробела

'constacc'1D, 2D, 3-D

3 ✕ размерности Пробела

'constturn'2D и 3-D

5 для 2D пробела и 7 для 3-D пробела

Если x2 не задан:

Учитывая modelType1 и x1, функция определяет размерность состояния ввода на основе отношения, заданного в таблице. Например, если modelType1 является 'constvel', и x1 4 1 вектор, размерность состояния ввода дана 4/2, который равняется 2.

Если modelType1 является 'constacc', и x1 6 1 вектор, размерность состояния ввода дана 6/3, который равняется 2.

В этом случае, когда x2 не задан, вывод x имеет совпадающий тип данных как x1, и размерность вычисляется с помощью modelType1 и x1.

Если x2 задан:

Функция вычисляет выходной пробел dimnension использование modelType2 и x2. Например, если modelType2 является 'constacc', и x2 6 1 вектор, размерность состояния вывода дана 6/3, который равняется 2.

Вывод x имеет совпадающий тип данных и размерность как x2.

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

Объекты

Функции

Введенный в R2018b