Документация Engee

EngeePhased.Platform

Страница в процессе разработки.

Движение платформы.

Библиотека

EngeePhased

Блок

Движение платформы

Описание

Системный объект EngeePhased.Platform моделирует поступательное движение одной или нескольких платформ в пространстве. Платформа может быть целью, например, автомобилем или самолетом, а также передатчиком и приемником гидролокатора или радара. В модели предполагается, что платформа совершает поступательное движение с постоянной скоростью или постоянным ускорением на каждом шаге моделирования. Позиции и скорости всегда задаются в глобальной системе координат.

Чтобы смоделировать движущуюся платформу, выполните следующие действия:

  1. Создайте объект EngeePhased.Platform и установите его свойства.

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

Чтобы узнать подробнее о том, как работать с системными объектами, см. Системные объекты Engee.

Синтаксис

Создание

  • sPlat = phased.Platform() — создает объект движущейся платформы со значениями свойств по умолчанию.

  • sPlat = phased.Platform(Name=Value) — создает объект движущейся платформы с заданными свойствами в виде пары Name=Value, где Name — имя свойства, а Value — соответствующее значение. Можно указать несколько пар «имя-значение», порядок пар не имеет значения. Неуказанные свойства сохраняют свои значения по умолчанию.

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

  • Pos,Vel = sPlat(T) — возвращает текущее положение Pos и скорость Vel платформы. Затем обновляет положение и скорость. Когда для свойства MotionModel установлено значение "Velocity", а для свойства VelocitySource — значение "Property", положение обновляется в соответствии с уравнением Pos = Pos + Vel * T, где T — прошедшее время (в секундах) для текущего шага. Когда для свойства MotionModel установлено значение "Acceleration", а для свойства AccelerationSource — значение "Property", положение и скорость обновляются в соответствии с уравнением Pos = Pos + Vel * T + 1/2 Acl * T^2 и Vel = Vel + Acl * T, где T — прошедшее время (в секундах) для текущего шага.

  • Pos,Vel = sPlat(T,V) — возвращает текущее положение Pos и скорость Vel платформы. Положение обновляется в соответствии с уравнением Pos = Pos + Vel * T, где T — прошедшее время (в секундах) для текущего шага. Этот синтаксис применяется, если для свойства MotionModel установлено значение "Velocity", а для свойства VelocitySource — значение "Input port".

  • Pos,Vel = sPlat(T,A) — возвращает текущее положение Pos и скорость Vel платформы. Положение обновляется в соответствии с уравнением Pos = Pos + Vel * T + 1/2 Acl * T^2 и Vel = Vel + Acl * T, где T — прошедшее время (в секундах) для текущего шага. Этот синтаксис применяется, если для свойства MotionModel установлено значение "Acceleration", а для свойства AccelerationSource — значение "Input port".

  • Pos,Vel,Laxes = sPlat(___) — также возвращает направления осей ориентации платформы Laxes. Этот синтаксис применяется, если для свойства OrientationAxesOutputPort установлено значение true.

Аргументы

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

T — шаг времени
скаляр

Details

Шаг времени, заданный в виде вещественного скаляра.

Единицы измерения — секунды.

V — скорость платформы
вещественная матрица 3 на N

Details

Скорость платформы, заданная как вещественная матрица на , где — количество моделируемых платформ.

Единицы измерения — метры в секунду.

Зависимости

Чтобы использовать этот аргумент, установите для свойства MotionModel значение "Velocity", а для свойства VelocitySource — значение "Input port".

A — ускорение платформы
вещественная матрица 3 на N

Details

Ускорение платформы, заданная как вещественная матрица на , где — количество моделируемых платформ.

Единицы измерения — метры в секунду.

Зависимости

Чтобы использовать этот аргумент, установите для свойства MotionModel значение "Acceleration", а для свойства AccelerationSource — значение "Input port".

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

Pos — текущее положение платформы
вещественный вектор-столбец 3 на 1 | вещественная матрица 3 на N

Details

Текущее положение платформы, возвращаемое в виде вещественного вектора-столбца размером на в форме [x, y, z] или вещественной матрицы размером на , где — количество моделируемых платформ. Каждый столбец имеет вид [x, y, z]. Единицы измерения — метры.

Vel — текущая скорость платформы
вещественный вектор-столбец 3 на 1 | вещественная матрица 3 на N

Details

Текущая скорость платформы, возвращаемая в виде вещественного вектора-столбца размером на в форме [vx, vy, vz] или вещественной матрицы размером на , где — количество моделируемых платформ. Каждый столбец имеет вид [vx, vy, vz]. Единицы измерения — м/c.

Laxes — оси ориентации платформы
вещественный массив 3 на 3 на N

Details

Текущие оси ориентации платформы, возвращаемые в виде вещественного массива на на , где N — количество моделируемых платформ. Каждая подматрица на является ортонормированной матрицей.

Текущие оси платформы вращаются вокруг вектора нормали к траектории платформы.

Зависимости

Чтобы использовать этот аргумент, установите для свойства OrientationAxesOutputPort значение true.

Свойства

# MotionModel — модель движения объекта
Строка

Details

Модель движения объекта, заданная как "Velocity" (по умолчанию), "Acceleration" или "Custom":

  • "Velocity" — платформа движется по траектории с постоянной скоростью на каждом шаге моделирования.

  • "Acceleration" — платформа движется по траектории с постоянным ускорением на каждом шаге моделирования.

  • "Custom" — движение платформы происходит по последовательности точек траектории движения, заданных параметром CustomTrajectory. Для получения положения и скорости на каждом временном шаге объект выполняет кусочно-кубическую интерполяцию по точкам траектории.

# InitialPosition — начальное положение платформы
Вектор / матрица вещественных чисел

Details

Начальное положение платформы в метрах, заданное как матрица на , где каждый столбец представляет собой начальное положение платформы в виде [x, y, z]. Число — количество платформ.

Значение по умолчанию — [0.0, 0.0, 0.0].

# OrientationAxesOutputPort — вывод осей ориентации
Логический тип

Details

Установите для этого свойства значение true для получения мгновенных осей ориентации платформы через выходной аргумент Laxes.

Значение по умолчанию — false.

# AzimuthScanRate — скорость сканирования по азимутальному углу
Скаляр / вектор / матрица вещественных чисел

Details

Скорость сканирования по азимутальному углу, заданная как вектор на , где — количество платформ.

Каждая запись в векторе — это скорость сканирования по азимуту для соответствующей платформы.

Значение по умолчанию — 10.

Единицы измерения — град/с.

Зависимости

Чтобы использовать это свойство, установите для свойства ScanMode значение "Circular" или "Sector".

# InitialVelocity — начальная скорость платформы
Вектор / матрица вещественных чисел

Details

Начальная скорость платформы в м/с, заданная как матрица на , где каждый столбец представляет собой начальную скорость платформы в виде [vx, vy, vz]. Число — количество платформ.

Значение по умолчанию — [0.0, 0.0, 0.0].

Зависимости

Чтобы использовать это свойство, установите для свойств VelocitySource или AccelerationSource значение "Input port".

# Acceleration — текущее ускорение
Вектор / матрица вещественных чисел

Details

Текущее ускорение в м/с2, заданное как матрица на , где каждый столбец представляет собой ускорение в виде [ax, ay, az]. Число — количество платформ.

Значение по умолчанию — [0.0, 0.0, 0.0].

Зависимости

Чтобы использовать это свойство, установите для свойства MotionModel значение "Acceleration" и для свойства AccelerationSource — значение "Property".

# Velocity — текущая скорость платформы
Вектор / матрица вещественных чисел

Details

Текущая скорость платформы (в м/с), заданная как матрица на , где каждый столбец представляет собой начальную скорость платформы в виде [vx, vy, vz]. Число — количество платформ.

Значение по умолчанию — [0.0, 0.0, 0.0].

Зависимости

Чтобы использовать это свойство, установите для свойства MotionModel значение "Velocity" и для свойства VelocitySource — значение "Property".

# VelocitySource — источник данных о скорости
Строка

Details

Это свойство используется только при установке свойства MotionModel в значение "Velocity". В этом случае для модели необходимо предоставить данные о скорости. В качестве источника данных о скорости укажите "Property" (по умолчанию) или "Input port".

# InitialOrientationAxes — начальная ориентация платформы
Двумерная / Трехмерная матрица вещественных чисел

Details

Три оси, определяющие начальную локальную систему координат платформы, заданные как матрица на на . Каждый столбец матрицы представляет собой ось локальной системы координат. Все три оси должны быть ортогональными.

Значение по умолчанию — [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0].

# AzimuthSpan — диапазон угла сканирования по азимуту
Матрица вещественных чисел

Details

Диапазон угла сканирования по азимуту, заданный как матрица на 2, где — количество платформ.

Каждая строка матрицы задает диапазон сканирования соответствующей платформы в виде [ScanAngleLowerBound ScanAngleHigherBound]. По умолчанию используется значение [−60 60].

Единицы измерения — градусы.

Зависимости

Чтобы использовать это свойство, установите для свойства ScanMode значение "Sector".

# AccelerationSource — источник данных об ускорении
Строка

Details

Это свойство используется только при установке свойства MotionModel в значение "Acceleration". В этом случае для модели необходимо предоставить данные об ускорении. В качестве источника данных об ускорении укажите "Property" (по умолчанию) или "Input port".

# CustomTrajectory — точки траектории движения
Двумерная / Трехмерная матрица вещественных чисел

Details

Точки траектории движения, заданные как вещественная матрица на или массив на на , где — количество точек, — количество платформ. Значение — 4 или 7.

Если равно 4, то в первом столбце указываются моменты времени, в которые измеряется положение платформы. Столбцы со 2 по 4 — это измерения положения в координатах , и . Скорость определяется на основе измерений положения.

Если равно 7, то столбцы c 5 по 7 матрицы представляют собой измерения скорости по осям , и .

Единицы времени — секунды, единицы положения — метры, единицы скорости — метры в секунду.

Значение по умолчанию — [0 0 0 0 0 0 0; 1 0 0 0 0 0 0].

Зависимости

Чтобы использовать это свойство, установите для свойства MotionModel значение "Custom".

# InitialScanAngle — начальный угол сканирования платформы
Скаляр / вектор / матрица вещественных чисел

Details

Начальный угол сканирования платформы, заданный как вектор на , где — количество платформ.

Сканирование происходит в локальной системе координат платформы. Параметр InitialOrientationAxes задает исходную локальную систему координат. В начале моделирования оси ориентации, заданные параметром InitialOrientationAxes, поворачиваются на угол, указанный в параметре InitialScanAngle. Значение по умолчанию равно нулю. Единицы измерения — градусы.

Значение по умолчанию — 0.

Зависимости

Чтобы использовать это свойство, установите для свойства ScanMode значение "Circular" или "Sector".

# ScanMode — режим механического сканирования
Строка

Details

Режим механического сканирования для платформы, задаваемый как "None" (по умолчанию), "Circular" или "Sector":

  • "Circular" — платформа непрерывно сканирует по часовой стрелке на 360 градусов в азимутальном направлении по осям ориентации платформы.

  • "Sector" — платформа сканирует по часовой стрелке в азимутальном направлении по осям ориентации платформы в диапазоне, заданном параметром AzimuthSpan. Когда сканирование платформы достигает границы диапазона, сканирование меняет направление и возвращается к другой границе сканирования. Сканирование происходит в пределах осей ориентации платформы.

Методы

Общие для всех системных объектов

step!

Запустить алгоритм работы системного объекта

release!

Разрешить изменение значения свойства системного объекта

reset!

Сброс внутренних состояний системного объекта

Дополнительно

Ориентация платформы

Details

Платформа имеет связанную с ней локальную систему координат, определяемую тремя ортонормированными векторами осей. Направление и величина вектора скорости могут изменяться при каждом вызове этого объекта. Когда платформа совершает криволинейное движение, ориентация осей локальной системы координат поворачивается вместе с движением платформы. Изменение направления вектора скорости определяет матрицу поворота. Эта же матрица поворота затем используется для поворота локальной системы координат. Когда вектор скорости сохраняет постоянное направление, матрица поворота является единичной матрицей. Начальная ориентация локальной системы координат задается с помощью свойства InitialOrientationAxes. При указании нескольких платформ каждая платформа вращается независимо.