gnssSensor

Симулируйте GNSS, чтобы сгенерировать показания положения и скорости

Описание

gnssSensor Система object™ симулирует глобальную навигационную спутниковую систему (GNSS), чтобы сгенерировать показания положения и скорости на основе локальных данных о положении и скорости.

Сгенерировать показания положения и скорости GNSS:

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

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

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

Создание

Описание

GNSS = gnssSensor возвращает gnssSensor Системный объект GNSS это вычисляет показания приемника глобальной навигационной спутниковой системы на основе локального входа положения и скорости.

GNSS = gnssSensor('ReferenceFrame',frame) задает систему координат, в которой сообщают о показаниях GNSS. Задайте frame как 'NED' (северо-восток вниз) или 'ENU' (восточный север). Значением по умолчанию является 'NED'.

пример

GNSS = gnssSensor(___,Name,Value) свойства наборов с помощью одной или нескольких пар "имя-значение". Например, gnssSensor('SampleRate',2) создает симулированный GNSS с частотой дискретизации 2 Гц. Заключите каждое имя свойства в кавычки.

Свойства

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

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

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

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

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

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

Начальное время приемника GNSS в виде datetime объект. Объект считает в течение секунд прыжка в преобразовании между UTC и время GNSS.

Источник локальной системы координат навигации в виде трехэлементного вектора-строки из скаляров в геодезических координатах (широта в градусах, долгота в градусах и высота в метрах). Высота является высотой выше ссылочной модели WGS84 эллипсоида.

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

Угол маски вертикального изменения в виде скаляра в области значений [0, 90] в градусах. Спутники в поле зрения, но ниже угла маски не используются в оценке положения приемника.

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

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

Стандартное отклонение шума измерения псевдообласти значений в виде неотрицательного скаляра в метрах.

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

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

Стандартное отклонение шума измерения уровня псевдообласти значений в виде неотрицательного скаляра в метрах в секунду.

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

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

Источник случайных чисел в виде одной из этих опций::

  • 'Global stream' – Случайные числа сгенерированы с помощью текущего глобального потока случайных чисел.

  • 'mt19937ar with seed' – Случайные числа сгенерированы с помощью mt19937ar алгоритма с seed, заданным Seed свойство.

Типы данных: char | string

Начальный seed mt19937ar алгоритма генератора случайных чисел в виде неотрицательного целого числа.

Зависимости

Чтобы включить это свойство, установите RandomStream к 'mt19937ar with seed'.

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

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

Описание

[positionReading,velocityReading,status] = GNSS(position,velocity) вычисляет показания приемника глобальной навигационной спутниковой системы из входных параметров положения и скорости.

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

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

Декартово положение приемника GNSS в локальной системе координат навигации в виде N-by-3 матрица скаляров в метрах. N является количеством выборок.

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

Скорость приемника GNSS в локальной системе координат навигации в виде N-by-3 матрица в метрах в секунду. N является количеством выборок.

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

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

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

Показания положения приемника GNSS в геодезической широте, долготе, и высоте (LLA) система координат, возвратились как N-by-3 матрица скаляров. N является количеством выборок во входном параметре. Широта и долгота в градусах. Высота исчисляется в метрах.

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

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

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

Информация о статусе видимых спутников, возвращенных как N - массив элемента структур. N является количеством выборок во входных параметрах. Каждая структура содержит эти четыре поля:

Имя поляОписание
SatelliteAzimuthУглы азимута видимых спутников, возвращенных как M - вектор элемента из скаляров в градусах. M является количеством видимых спутников.
SatelliteElevationУглы возвышения видимых спутников, возвращенных как M - вектор элемента из скаляров в градусах. M является количеством видимых спутников.
HDOPГоризонтальное растворение точности, возвращенной как скаляр.
VDOPВертикальное растворение точности, возвращенной как скаляр.

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

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

release(obj)

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

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

Примеры

свернуть все

Сгенерируйте целевые положения и скорости на основе waypoint траектории.

rng(2020) % For repeatable results
fs = 0.1;
tArrival = 50;
tspan = 0:1/fs:tArrival;
% Create a waypoint trajectory.
trajectory = waypointTrajectory([0,0,0;1,1,1]*500,[0,tArrival]);
[positions,~,velocities] = lookupPose(trajectory,tspan)
positions = 6×3

         0         0         0
  100.0000  100.0000  100.0000
  200.0000  200.0000  200.0000
  300.0000  300.0000  300.0000
  400.0000  400.0000  400.0000
  500.0000  500.0000  500.0000

velocities = 6×3

   10.0000   10.0000   10.0000
   10.0000   10.0000   10.0000
   10.0000   10.0000   10.0000
   10.0000   10.0000   10.0000
   10.0000   10.0000   10.0000
   10.0000   10.0000   10.0000

Создайте Системный объект GNSS. Используйте положение LLA для Натика, MA как система координат локальной ссылки траектории.

refLocNatick = [42.2825 -71.343 53.0352];
gnss = gnssSensor('SampleRate',fs, ...
    'ReferenceLocation',refLocNatick);

Сгенерируйте показания положения и скорости на основе объекта GNSS.

[llaReadings,velocityReadings,status] = gnss(positions,velocities)
llaReadings = 6×3

   42.2825  -71.3430   52.3728
   42.2834  -71.3418  -48.6565
   42.2843  -71.3406 -146.9982
   42.2852  -71.3394 -246.3241
   42.2861  -71.3382 -348.5439
   42.2870  -71.3369 -449.8394

velocityReadings = 6×3

    9.9779    9.9998   10.0486
   10.0026   10.0144   10.0019
    9.9771   10.0047   10.0343
    9.9733   10.0232   10.0025
   10.0123    9.9849    9.9887
   10.0038    9.9904   10.0719

status=6×1 struct array with fields:
    SatelliteAzimuth
    SatelliteElevation
    HDOP
    VDOP

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

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

|

Введенный в R2020b
Для просмотра документации необходимо авторизоваться на сайте