geoTrajectory

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

Описание

The geoTrajectory Системная object™ генерирует траектории на основе путевых точек в геодезических координатах. При создании системного объекта можно задать время прибытия, скорость и ориентацию в каждой путевой точке. The 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 метров высоты за один час.

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

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

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

Свойства

расширить все

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

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

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

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

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

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

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

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

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

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

Зависимости

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

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

Время в каждой путевой точке в секундах, заданное как вектор-столбец N-element. Количество выборок, 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 на 3-байт- 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-на-3. В каждой строке три элемента представляют широту в степенях, долготу в степенях и высоту над WGS84 эталонным эллипсоидом в метрах геодезической путевой точки.

M определяется SamplesPerFrame свойство.

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

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

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

M определяется SamplesPerFrame свойство.

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

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

M определяется SamplesPerFrame свойство.

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

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

M определяется SamplesPerFrame свойство.

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

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

M определяется SamplesPerFrame свойство.

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

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

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

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 траектории.

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