Моделирование движения в системах фазированных решеток

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

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

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

Моделирование движения поступательной платформы требует спецификации вектора положения и скорости. Спецификация вектора положения подразумевает систему координат. В наборе инструментов 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

The 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, чтобы подтвердить, что это уменьшение происходит.

Похожие темы