switchimm

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

Описание

пример

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 задан:

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

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

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

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

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

Объекты

Функции

Введенный в R2018b