exponenta event banner

Моделирование движения в системах с поэтапными массивами

Поддержка моделирования движения

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

Удлиненные тела могут подвергаться как поступательному, так и вращательному движению в пространстве. Программное обеспечение Phased Array System Toolbox™ поддерживает моделирование поступательного движения.

Моделирование поступательного движения платформы требует указания положения и вектора скорости. Определение вектора положения подразумевает систему координат. В панели инструментов системы фазированных массивов положение платформы и скорость задаются в глобальной системе координат. Положение платформы можно рассматривать как вектор смещения от глобального начала координат или как координаты точки относительно глобального начала координат.

Пусть r0 обозначает вектор положения в момент времени 0, а v обозначает вектор скорости. Вектор положения платформы как функции времени, r (t), является:

r (t) = r0 + vt

На следующем рисунке показана векторная интерпретация поступательного движения.

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

Можно моделировать положение платформы, скорость и ориентацию локальных осей с помощью phased.Platform объект.

Движение платформы с постоянной скоростью

Начните с простого примера, смоделируйте движение платформы в течение десяти шагов времени. Чтобы определить временной шаг, предположим, что у вас есть передатчик импульсов с частотой повторения импульсов (PRF) 1 килогерц. Соответственно, интервал времени между каждым импульсом составляет 1 миллисекунду. Установите временной шаг равным интервалу повторения импульсов.

PRF = 1e3;
Tstep = 1/PRF;
Nsteps = 10;

Затем создайте объект платформы, определяющий исходное положение и скорость платформы. Предположим, что исходное положение платформы находится в 100 метрах от начала координат (60,80,0). Предположим, что скорость составляет приблизительно 30 метров в секунду (м/с) с вектором постоянной скорости, заданным (15,25,98,0).

platform = phased.Platform('InitialPosition',[60;80;0],'Velocity',[15;25.98;0]);

Ориентация локальных координатных осей платформы - это значение InitialOrientationAxes собственность. Можно просмотреть значение этого свойства, введя hplat.InitialOrientationAxes в командной строке MATLAB™. Потому что InitialOrientationAxes свойство не указано при строительстве phased.Platform Системный object™, свойству присваивается значение по умолчанию [1 0 0;0 1 0;0 0 1]. Используйте step способ моделирования поступательного движения платформы.

initialPos = platform.InitialPosition;
for k = 1:Nsteps
    pos = platform(Tstep);
end
finalPos = pos + platform.Velocity*Tstep;
distTravel = norm(finalPos - initialPos)
distTravel = 0.3000

step возвращает текущее положение платформы, а затем обновляет положение платформы на основе временного шага и скорости. Эквивалентно, при первом вызове step выход - положение платформы при t = 0.

Напомним, платформа движется с постоянной скоростью примерно 30 м/с. Общее прошедшее время составляет 0,01 секунды. Вызов step возвращает текущее положение платформы, а затем обновляет это положение. Соответственно, ожидается, что конечное положение будет отличаться от исходного на 0,30 метра. Подтвердите эту разницу, проверив значение distTravel.

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

Большинство платформ в приложениях с фазированными массивами не перемещаются с постоянной скоростью. Если временной интервал, описанный количеством временных шагов, мал по отношению к скорости платформы, часто можно аппроксимировать скорость как постоянную. Однако бывают ситуации, когда необходимо обновлять скорость платформы с течением времени. Вы можете сделать это с помощью phased.Platform Object™ системы, поскольку Velocity свойство настраивается.

В этом примере первоначально моделируется цель при восстановлении. Начальный вектор скорости равен (0,0,0). Предположим, что шаг времени равен 1 миллисекунде. Через 500 миллисекунд платформа начинает движение со скоростью примерно 10 м/с. Вектор скорости равен (7.07.7.07,0). Платформа продолжает работать с этой скоростью в течение дополнительных 500 миллисекунд.

Tstep = 1e-3;
Nsteps = 1/Tstep;
platform = phased.Platform('InitialPosition',[100;100;0]);
for k = 1:Nsteps/2
    [tgtpos,tgtvel] = platform(Tstep);
end
platform.Velocity = [7.07; 7.07; 0];
for k = Nsteps/2+1:Nsteps
    [tgtpos,tgtvel] = platform(Tstep);
end

Изменение диапазона и угла между платформами

В этом примере используется phased.Platform Система object™ для моделирования изменения дальности между стационарной РЛС и движущейся целью. Радар расположен в точке (1000,1000,0) и имеет скорость (0,0,0). Цель имеет начальное положение (5000 8000 0) и движется с постоянной скоростью (? 30,? 45,0). Частота повторения импульсов (PRF) составляет 1 кГц. Предположим, что радар излучает десять импульсов.

PRF = 1e3;
Tstep = 1/PRF;
radar = phased.Platform('InitialPosition',[1000;1000;0]);
target = phased.Platform('InitialPosition',[5000;8000;0],...
    'Velocity',[-30;-45;0]);

Рассчитайте начальный целевой диапазон и угол.

[initRng, initAng] = rangeangle(target.InitialPosition,radar.InitialPosition);

Вычислите относительную радиальную скорость.

v = radialspeed(target.InitialPosition,target.Velocity,...
    radar.InitialPosition);

Моделирование движения цели.

Npulses = 10;
for num = 1:Npulses
    tgtpos = target(Tstep);
end

Вычислить последнюю целевую позицию.

tgtpos = tgtpos + target.Velocity*Tstep;

Рассчитайте окончательный целевой диапазон и угол.

[finalRng,finalAng] = rangeangle(tgtpos,radar.InitialPosition);
deltaRng = finalRng - initRng
deltaRng = -0.5396

Постоянная скорость цели составляет приблизительно 54 м/с. Общее прошедшее время составляет 0,01 секунды. Дальность между целью и РЛС должна уменьшиться примерно на 54 сантиметра. Сравните начальную дальность цели, initRng, до конечного диапазона, finalRng, чтобы подтвердить, что это снижение происходит.

Связанные темы