exponenta event banner

поэтапный. Платформа

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

Описание

phased.Platform Система object™ моделирует поступательное движение одной или нескольких платформ в пространстве. Платформа может быть целью, такой как транспортное средство или самолет, или гидролокатором или радиолокационным передатчиком и приемником. Модель предполагает, что платформа подвергается поступательному движению с постоянной скоростью или постоянным ускорением во время каждого этапа моделирования. Положения и скорости всегда определяются в глобальной системе координат.

Для моделирования движущейся платформы:

  1. Определите и настройте платформу с помощью процедуры конструирования.

  2. Многократный вызов step способ перемещения платформы по траектории, определяемой phased.Platform свойства.

    Поведение step относится к каждому объекту на панели инструментов.

Примечание

Начиная с R2016b, вместо использования step для выполнения операции, определенной объектом System, можно вызвать объект с аргументами, как если бы это была функция. Например, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.

Строительство

sPlat = phased.Platform создает системный объект платформы, sPlat. Объект моделирует стационарную платформу с нулевым положением в начале координат и скоростью.

sPlat = phased.Platform(Name,Value) создает объект, sPlat, с каждым указанным свойством Name, имеющим указанное значение. Можно указать дополнительные аргументы пары имя-значение в любом порядке как (Name1,Value1,...,NameN,ValueN).

sPlat = phased.Platform(pos,vel,Name,Value) создает объект платформы, sPlat, с InitialPosition установить в значение pos и Velocity установить в значение vel. Для другого указанного свойства «Имена» задано значение «Значения». pos и vel аргументы - только значение. Аргументы только значения не требуют указанного имени, но интерпретируются в соответствии с позициями аргументов. Чтобы указать любой аргумент только для значения, укажите все предшествующие аргументы только для значения.

Модель движения представляет собой постоянную скорость, постоянное ускорение или пользовательскую траекторию. Можно выбрать одну из двух моделей движения, используя MotionModel собственность.

Значение MotionModelИспользование
'Velocity'

Если установить VelocitySource свойство для 'Property'платформа движется с постоянной скоростью, определяемой Velocity собственность. Можно указать InitialPosition или оставьте для него значение по умолчанию. Можно изменить настраиваемый Velocity свойство на любом этапе моделирования.

При установке VelocitySource свойство для 'Input port', вы можете ввести мгновенную скорость в качестве аргумента для step способ. Укажите исходное положение с помощью InitialPosition или оставьте его в качестве значения по умолчанию.

'Acceleration'

При установке AccelerationSource свойство для 'Property', платформа движется с постоянным ускорением, определяемым Acceleration собственность. Можно указать InitialPosition и InitialVelocity или оставьте для них значения по умолчанию. Можно изменить настраиваемый Acceleration свойство на любом этапе моделирования.

При установке AccelerationSource свойство для 'Input port', вы можете ввести мгновенное ускорение в качестве аргумента для step способ. Укажите InitialPosition и InitialVelocity или оставьте их в качестве значений по умолчанию.

'Обычай'Укажите движение платформы с помощью ряда ППМ в CustomTrajectory собственность.

Свойства

MotionModel

Модель движения объекта

Модель движения объекта, указанная как 'Velocity', 'Acceleration', или 'Custom'. При установке для этого свойства значения 'Velocity'платформа следует траектории постоянной скорости во время каждого этапа моделирования. При установке для этого свойства значения 'Acceleration'платформа следует по траектории постоянного ускорения во время каждого этапа моделирования. При установке для свойства значения 'Custom', движение платформы следует последовательности ППМ, определенных CustomTrajectory собственность. Объект выполняет кусочно-кубическую интерполяцию на ППМ для получения положения и скорости на каждом временном шаге.

По умолчанию: 'Velocity'

InitialPosition

Исходное положение платформы

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

По умолчанию: [0;0;0]

InitialVelocity

Начальная скорость платформы

Начальная скорость платформы, заданная как действительный вектор столбца 3 на 1 в виде [vx;vy;vz] или вещественно-значная матрица 3-by-N, где N - число платформ. Каждый столбец принимает форму [vx;vy;vz]. Единицы измерения скорости - метры в секунду.

Это свойство применяется только при установке MotionModel свойство для 'Velocity' и VelocitySource кому 'Input port'или при установке MotionModel свойство для 'Acceleration'.

По умолчанию: [0;0;0]

VelocitySource

Источник данных о скорости

Источник данных о скорости, указанный как один из 'Property' или 'Input port'. Если для этого свойства задано значение 'Property', использовать Velocity для установки скорости. При установке для этого свойства значения 'Input port', используйте входной аргумент step способ установки скорости.

Это свойство применяется при установке MotionModel свойство для 'Velocity'.

По умолчанию: 'Property'

Velocity

Текущая скорость платформы

Укажите текущую скорость платформы как действительный вектор столбца 3 на 1 в виде [vx;vy;vz] или 3-by-N матрицу вещественных значений для нескольких платформ. Каждый столбец принимает форму [vx;vy;vz]. Единицы скорости - метр/сек. Размерность N - количество платформ.

Это свойство применяется при установке MotionModel свойство для 'Velocity' и VelocitySource кому 'Property'. Это свойство можно настроить.

По умолчанию: [0;0;0]

AccelerationSource

Источник данных ускорения

Источник данных ускорения, указанный как один из 'Property' или 'Input port'. Если для этого свойства задано значение 'Property', укажите ускорение с помощью Acceleration собственность. При установке для этого свойства значения 'Input port', используйте входной аргумент step способ установки ускорения.

Это свойство применяется при установке MotionModel свойство для 'Acceleration'.

По умолчанию: 'Property'

Acceleration

Ускорение платформы

Укажите текущее ускорение платформы как действительный вектор столбца 3 на 1 в форме [ax;ay;az] или вещественно-значная матрица 3-by-N с каждым столбцом, принимающим вид [ax;ay;az]. Размерность N - количество платформ. Единицы разгона - метр/с/с.

Это свойство применяется при установке MotionModel свойство для 'Acceleration' и AccelerationSource кому 'Property'. Это свойство можно настроить.

По умолчанию: [0;0;0]

CustomTrajectory

Пользовательские ППМ траектории.

Пользовательские ППМ траектории, заданные как вещественно-значная матрица M-by-L или массив M-by-L-by-N. M - количество ППМ. L равно либо 4, либо 7.

  • Когда L равно 4, первый столбец указывает время, в которое измеряется положение платформы. 2-й - 4-й столбцы представляют собой измерения положения в координатах x, y и z. Скорость определяется на основе измерений положения.

  • Когда L равно 7, 5-й - седьмой столбцы в матрице являются измерениями скорости в координатах x, y и z.

При установке CustomTrajectory свойство для трехмерного массива, число страниц, N, представляет количество платформ. Единицы времени - в секундах, единицы положения - в метрах, а единицы скорости - в метрах в секунду.

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

ScanMode

Режим механического сканирования

Режим механического сканирования платформы, указанный как 'None', 'Circular'', или 'Sector', где 'None' является значением по умолчанию. При установке ScanMode свойство для 'Circular'сканирование платформы по часовой стрелке на 360 градусов непрерывно в азимутальном направлении осей ориентации платформы. При установке ScanMode свойство для 'Sector', платформа сканирует по часовой стрелке в азимутальном направлении по осям ориентации платформы в диапазоне, заданном AzimuthSpan собственность. Когда сканирование платформы достигает предельных значений, оно изменяет направление на противоположное и выполняет сканирование до другого предельного значения. Сканирование происходит в пределах осей ориентации платформы.

InitialScanAngle

Начальный угол обзора площадки

Начальный угол обзора платформы, определяемый как вектор 1-by-N, где N - количество платформ. Сканирование происходит в локальной системе координат платформы. InitialOrientationAxes определяет исходную локальную систему координат. В начале моделирования оси ориентации, указанные InitialOrientationAxes поворачиваются на угол, указанный в InitialScanAngle собственность. Значение по умолчанию равно нулю. Единицы измерения в градусах. Это свойство применяется при установке ScanMode свойство для 'Circular' или 'Sector'.

Пример: [30 40]

AzimuthSpan

Азимутальный пролет

Диапазон азимутальных углов, определяемый как N-by-2 матрица, где N - количество платформ. Каждая строка матрицы определяет диапазон сканирования соответствующей платформы в форме [ScanAngleLowerBound ScanAngleHigherBound]. Значение по умолчанию: [-60 60]. Единицы измерения в градусах. Чтобы включить это свойство, установите значение ScanMode кому 'Sector'.

AzimuthScanRate

Скорость сканирования азимута

Скорость сканирования азимута, заданная как вектор 1-by-N, где N - количество платформ. Каждая запись в векторе представляет собой азимутальную скорость сканирования для соответствующей платформы. Значение по умолчанию - 10 градусов в секунду. Единицы измерения в градусах/секунду. Чтобы включить это свойство, установите значение ScanMode свойство для 'Circular' или 'Sector'.

InitialOrientationAxes

Исходные оси ориентации платформы

Начальные оси ориентации платформы, определяемые как действительная ортонормальная матрица 3 на 3 для одной платформы или как 3-by-3-by-N действительная матрица для нескольких платформ. Размерность N - количество платформ. Если матрица ориентации 3 на 3, три столбца представляют оси локальной системы координат (xyz). При 3-by-3-by-N матрицы ориентации для каждого индекса страницы результирующая матрица 3 на 3 представляет оси локальной системы координат.

По умолчанию: [1 0 0;0 1 0;0 0 1]

OrientationAxesOutputPort

Выходные оси ориентации

Чтобы получить мгновенные оси ориентации платформы, задайте для этого свойства значение true и использовать соответствующий выходной аргумент при вызове step. Если не требуется получать оси ориентации платформы, задайте для этого свойства значение false.

По умолчанию: false

Методы

сбросСброс платформы в исходное положение
шагОси выходного тока, скорости и ориентации платформы
Общие для всех системных объектов
release

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

Примеры

свернуть все

Создайте платформу в начале координат со скоростью (100,100,0) метров в секунду. Имитировать движение платформы в течение двух временных шагов, предполагая, что время, прошедшее для каждого шага, составляет одну секунду. Положение платформы обновляется после каждого шага.

sPlat = phased.Platform([0; 0; 0],[100; 100; 0]);
T = 1;

При первом вызове на шаг позиция находится на начальном значении.

[pos,v] = step(sPlat,T);
pos
pos = 3×1

     0
     0
     0

При втором вызове на шаг положение изменяется.

[pos,v] = step(sPlat,T);
pos
pos = 3×1

   100
   100
     0

Начать с самолета, движущегося со скоростью 150 км/ч по кругу радиуса 10 км и одновременно спускающегося со скоростью 20 м/с. Вычислить движение самолета по его мгновенному ускорению в качестве аргумента для step способ. Установите начальную ориентацию платформы на идентичность, совпадающую с глобальной системой координат.

Настройка сценария

Укажите исходное положение и скорость самолета. Самолёт имеет наземную дальность 10 км и высоту 20 км.

range = 10000;
alt = 20000;
initPos = [cosd(60)*range;sind(60)*range;alt];
originPos = [1000,1000,0]';
originVel = [0,0,0]';
vs = 150.0;
phi = atan2d(initPos(2)-originPos(2),initPos(1)-originPos(1));
phi1 = phi + 90;
vx = vs*cosd(phi1);
vy = vs*sind(phi1);
initVel = [vx,vy,-20]';
platform = phased.Platform('MotionModel','Acceleration',...
    'AccelerationSource','Input port','InitialPosition',initPos,...
    'InitialVelocity',initVel,'OrientationAxesOutputPort',true,...
    'InitialOrientationAxes',eye(3));
relPos = initPos - originPos;
relVel = initVel - originVel;
rel2Pos = [relPos(1),relPos(2),0]';
rel2Vel = [relVel(1),relVel(2),0]';
r = sqrt(rel2Pos'*rel2Pos);
accelmag = vs^2/r;
unitvec = rel2Pos/r;
accel = -accelmag*unitvec;
T = 0.5;
N = 1000;

Вычислить траекторию

Укажите ускорение объекта, движущегося по окружности в плоскости x-y. Ускорение составляет v ^ 2/r по направлению к началу координат.

posmat = zeros(3,N);
r1 = zeros(N);
v = zeros(N);
for n = 1:N
    [pos,vel,oax] = platform(T,accel);
    posmat(:,n) = pos;
    vel2 = vel(1)^2 + vel(2)^2;
    v(n) = sqrt(vel2);
    relPos = pos - originPos;
    rel2Pos = [relPos(1),relPos(2),0]';
    r = sqrt(rel2Pos'*rel2Pos);
    r1(n) = r;
    accelmag = vel2/r;
    accelmag = vs^2/r;
    unitvec = rel2Pos/r;
    accel = -accelmag*unitvec;
end

Отображение окончательной ориентации локальной системы координат.

disp(oax)
   -0.3658   -0.9307   -0.0001
    0.9307   -0.3658   -0.0010
    0.0009   -0.0005    1.0000

Постройте график траектории и исходного положения

posmat = posmat/1000;
figure(1)
plot3(posmat(1,:),posmat(2,:),posmat(3,:),'b.')
hold on
plot3(originPos(1)/1000,originPos(2)/1000,originPos(3)/1000,'ro')
xlabel('X (km)')
ylabel('Y (km)')
zlabel('Z (km)')
grid
hold off

Figure contains an axes. The axes contains 2 objects of type line.

В этом примере показано

Создание ППМ из параболического движения.

x0 = 100;
y0 = -150;
z0 = 0;
vx = 5;
vy = 10;
vz = 0;
ax = 1;
ay = -1;

t = [0:2:20];
x = x0 + vx*t + ax/2*t.^2;
y = y0 + vy*t + ay/2*t.^2;
z = z0*ones(size(t));
wpts = [t.' x.' y.' z.'];

Создайте объект-платформу с движением, определяемым с помощью ППМ.

pltfm = phased.Platform('MotionModel','Custom','CustomTrajectory',wpts);
tstep = .5;
nsteps = 40;
X = [];

Продвижение платформы во временных шагах в полсекунды;.

for k = 1:nsteps
    [pos,vel] = pltfm(tstep);
    X = [X;pos'];    
end
plot(x,y,'o'); hold on
plot(X(:,1),X(:,2),'.')
hold off;

Figure contains an axes. The axes contains 2 objects of type line.

Подробнее

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

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

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