exponenta event banner

геотраектория

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

Описание

geoTrajectory Система object™ формирует траектории на основе ППМ в геодезических координатах. При создании объекта «Система» можно указать время прибытия, скорость и ориентацию для каждого ППМ. geoTrajectory Системный объект включает три системы координат. Дополнительные сведения см. в разделе Рамки координат в Geo Trajectory.

Для формирования траектории ППМ с центром Земли в геодезических координатах:

  1. Создать geoTrajectory и задайте его свойства.

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

Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.

Создание

Описание

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

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

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

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

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

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

Свойства

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

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

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

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

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

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

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

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

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

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

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

Зависимости

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

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

Зависимости

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

Локальная опорная система траектории, указанная как 'NED' (Север-Восток-вниз) или 'ENU' (Восток-Север-Вверх). Локальная опорная система соответствует текущей ППМ траектории. Скорость, ускорение и ориентация платформы сообщаются в локальной системе координат. Дополнительные сведения см. в разделе Рамки координат в Geo Trajectory.

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

Описание

пример

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

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

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

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

M определяется SamplesPerFrame собственность.

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

Ориентация в локальной системе координат привязки, возвращаемая как M-by-1 quaternion вектор столбца или как 3-by-3-by-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 (Earth-Centered-Earth-Fixed), возвращаемой в виде M-by-1 quaternion вектор столбца или как 3-by-3-by-M вещественный массив, в котором каждый массив 3 на 3 является матрицей вращения.

Каждая матрица вращения кватерниона или 3 на 3 - это поворот кадра от кадра ECEF к локальному опорному кадру (NED или ENU), соответствующему текущему ППМ.

M определяется SamplesPerFrame собственность.

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

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

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

release(obj)

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

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

Примеры

свернуть все

Создать geoTrajectory с запуском ЛЛА при [15 15 0] и окончанием ЛЛА при [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 траектории.

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
      ⋮

Найдите декартовы ППМ траектории в кадре 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')

Figure contains an axes. The axes contains 5 objects of type line. These objects represent Start position, End position, Trajectory.

Алгоритмы

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

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

.
Представлен в R2021a