geoTrajectory

Траектория Waypoint в геодезических координатах

Описание

geoTrajectory Система object™ генерирует траектории на основе waypoints в геодезических координатах. Когда вы создаете Системный объект, можно задать время прибытия, скорость и ориентацию в каждом waypoint. geoTrajectory Системный объект включает три системы координат. Для получения дополнительной информации смотрите Координатные Системы координат в Гео Траектории.

Сгенерировать сосредоточенную Землей waypoint траекторию в геодезических координатах:

  1. Создайте geoTrajectory объект и набор его свойства.

  2. Вызовите объект, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?.

Создание

Описание

trajectory = geoTrajectory(Waypoints,TimeOfArrival) возвращает geoTrajectory Системный объект, trajectory, на основе заданного геодезического waypoints, Waypoints, и соответствующее время, TimeOfArrival.

trajectory = geoTrajectory(Waypoints,TimeOfArrival,Name,Value) наборы каждый аргумент создания или свойство Name к заданному Value. Незаданные свойства и аргументы создания имеют значение по умолчанию или выведенные значения.

Пример: trajectory = geoTrajectory([10,10,1000;10,11,1100],[0,3600) создает геодезический waypoint Системный объект траектории, geojectory, это перемещает одну степень в области долготы и 100 метров в высоте через один час.

Аргументы создания

Аргументы создания являются свойствами, которые установлены во время создания Системного объекта и не могут быть изменены позже. Если вы явным образом не устанавливаете значение аргумента создания, значение свойства выведено.

Можно задать Waypoints и TimeOfArrival в качестве аргументов только для значения или пар "имя-значение".

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Частота дискретизации траектории в Гц в виде положительной скалярной величины.

Настраиваемый: да

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

Количество выборок на выход структурирует в виде положительного целого числа.

Настраиваемый: да

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

Положения в геодезических координатах в виде N-by-3 матрица. N является количеством waypoints. В каждой строке эти три элемента представляют широту в градусах, долгота в градусах и высота выше ссылочного эллипсоида WGS84 в метрах геодезического waypoint. Когда N = 1, траектория в стационарном положении.

Зависимости

Чтобы установить это свойство, необходимо также установить допустимые значения для TimeOfArrival свойство.

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

Время в каждом waypoint в секундах в виде N - вектор-столбец элемента. Количество выборок, N, должно совпасть с количеством выборок (строки), заданные Waypoints. Если траектория является стационарной (только один waypoint, заданный в Waypoints свойство), затем заданное значение свойства для TimeOfArrival проигнорирован и значение по умолчанию, Inf, используется.

Зависимости

Чтобы установить это свойство, необходимо также установить допустимые значения для Waypoints свойство.

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

Скорость в локальной ссылке структурирует в каждом waypoint в метрах в секунду в виде N-by-3 матрицу. Количество выборок, N, должно совпасть с количеством выборок (строки), заданные Waypoints.

  • Если вы не задаете скорость, объект выводит скорости из waypoints.

  • Если вы задаете скорость как ненулевое значение, объект получает курс траектории соответственно.

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

Угол между скоростным направлением и Северным направлением в виде N - вектор элемента из скаляров в градусах. Количество выборок, N, должно совпасть с количеством выборок (строки), заданные Waypoints. Если никакой Velocities ни Course задан, курс выведен из waypoints.

Зависимости

Чтобы установить это свойство, не задавайте Velocities свойство во время создания объекта.

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

Groundspeed в каждом waypoint в виде N - вектор действительных чисел элемента в m/s. Если вы не задаете свойство, оно выведено из waypoints. Количество выборок, N, должно совпасть с количеством выборок (строки), заданные Waypoints.

Зависимости

Чтобы установить это свойство, не задавайте Velocities свойство во время создания объекта.

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

Скороподъемность в каждом waypoint в виде N - вектор действительных чисел элемента в градусах. Количество выборок, N, должно совпасть с количеством выборок (строки), заданные Waypoints. Если никакой Velocities ни Course задан, скороподъемность выведена из waypoints.

Зависимости

Чтобы установить это свойство, не задавайте Velocities свойство во время создания объекта.

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

Ориентация в каждом waypoint в виде N - элемент quaternion вектор-столбец или как 3 3 N массивом вещественных чисел, в которых каждый массив 3х3 является матрицей вращения. Количество кватернионов или матриц вращения, N, должно совпасть с количеством выборок (строки), заданные Waypoints.

Каждая матрица кватерниона или вращения является вращением системы координат от системы координат локальной ссылки (NED или ENU) в waypoint к системе координат тела платформы на траектории.

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

Выровняйте угол подачи с направлением движения в виде true или false. Когда задано как true, угол подачи выравнивается с направлением движения. Если задано как false, угол подачи обнуляется.

Зависимости

Установить это свойство, Orientation свойство не должно быть задано во время создания объекта.

Выровняйте угол вращения, чтобы противодействовать центростремительной силе в виде true или false. Когда задано как true, угол вращения автоматически противодействует центростремительной силе. Если задано как false, угол вращения обнуляется (плоская ориентация).

Зависимости

Чтобы установить это свойство, не задавайте Orientation свойство во время создания объекта.

Система координат локальной ссылки траектории в виде 'NED' (Северо-восток вниз) или 'ENU' (Восточный Север). Система координат локальной ссылки соответствует текущему waypoint траектории. О скорости, ускорении и ориентации платформы сообщают в системе координат локальной ссылки. Для получения дополнительной информации смотрите Координатные Системы координат в Гео Траектории.

Использование

Описание

пример

[positionLLA,orientation,velocity,acceleration,angularVelocity,ecef2ref] = trajectory() выводит систему координат данных о траектории на основе заданных аргументов создания и свойств, где trajectory geoTrajectory объект.

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

развернуть все

Геодезические положения в широте, долготе, и высоте, возвратились как M-by-3 матрица. В каждой строке эти три элемента представляют широту в градусах, долгота в градусах и высота выше ссылочного эллипсоида WGS84 в метрах геодезического waypoint.

M задан SamplesPerFrame свойство.

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

Ориентация в системе координат локальной ссылки, возвращенной как M-by-1 quaternion вектор-столбец или как 3 3 M действительным массивом, в котором каждый массив 3х3 является матрицей вращения.

Каждая матрица кватерниона или вращения является вращением системы координат от системы координат локальной ссылки (NED или ENU) к системе координат тела.

M задан SamplesPerFrame свойство.

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

Скорость в системе координат локальной ссылки в метрах в секунду, возвращенный как M-by-3 матрица.

M задан SamplesPerFrame свойство.

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

Ускорение в системе координат локальной ссылки в метрах в секунду придало квадратную форму, возвращенный как M-by-3 матрица.

M задан SamplesPerFrame свойство.

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

Скорость вращения в системе координат локальной ссылки в радианах в секунду, возвращенный как M-by-3 матрица.

M задан SamplesPerFrame свойство.

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

Ориентация локальной ссылки структурирует относительно ECEF (Земля Фиксированная Земля В центре) систему координат, возвращенную как M-by-1 quaternion вектор-столбец или как 3 3 M действительным массивом, в котором каждый массив 3х3 является матрицей вращения.

Каждый кватернион или 3х3 матрица вращения являются вращением системы координат от системы координат ECEF до системы координат локальной ссылки (NED или ENU) соответствие текущему waypoint.

M задан SamplesPerFrame свойство.

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

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

lookupPoseПолучите положение геодезической траектории в течение определенного времени
perturbationsВозмущение задано на объекте
perturbПримените возмущения, чтобы возразить
cloneСоздайте объект дублированной системы
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта
isDoneСостояние конца данных

Примеры

свернуть все

Создайте geoTrajectory со стартовым LLA в [15 15 0] и конечным LLA в [75 75 100]. Установите время полета на десять часов. Производите траекторию каждые 1000 секунд.

startLLA = [15 15 0];
endLLA = [75 75 100];
timeOfTravel = [0 3600*10];
sampleRate  = 0.001;

trajectory = geoTrajectory([startLLA;endLLA],timeOfTravel,'SampleRate',sampleRate);

Выведите LLA waypoints траектории.

positionsLLA = startLLA;
while ~isDone(trajectory)
    positionsLLA = [positionsLLA;trajectory()];  
end
positionsLLA
positionsLLA = 37×3

   15.0000   15.0000         0
   16.6667   16.6667    2.7778
   18.3333   18.3333    5.5556
   20.0000   20.0000    8.3333
   21.6667   21.6667   11.1111
   23.3333   23.3333   13.8889
   25.0000   25.0000   16.6667
   26.6667   26.6667   19.4444
   28.3333   28.3333   22.2222
   30.0000   30.0000   25.0000
      ⋮

Ищите Декартов waypoints траектории в системе координат ECEF с помощью lookupPose функция.

sampleTimes = 0:1000:3600*10;
n = length(sampleTimes);
positionsCart = lookupPose(trajectory,sampleTimes,'ECEF');

Визуализируйте результаты в системе координат ECEF.

figure()
km = 1000;
plot3(positionsCart(1,1)/km,positionsCart(1,2)/km,positionsCart(1,3)/km, 'b*');
hold on;
plot3(positionsCart(end,1)/km,positionsCart(end,2)/km,positionsCart(end,3)/km, 'bo');
plot3(positionsCart(:,1)/km,positionsCart(:,2)/km,positionsCart(:,3)/km,'b');

plot3([0 positionsCart(1,1)]/km,[0 positionsCart(1,2)]/km,[0 positionsCart(1,3)]/km,'k:');
plot3([0 positionsCart(end,1)]/km,[0 positionsCart(end,2)]/km,[0 positionsCart(end,3)]/km,'k:');
xlabel('x (km)'); ylabel('y (km)'); zlabel('z (km)');
legend('Start position','End position', 'Trajectory')

Алгоритмы

развернуть все

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

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

|

Введенный в R2020b