Критическим компонентом в системных приложениях фазированных решеток является способность моделировать движение в пространстве. Такое моделирование включает движение массивов, целей и источников интерференции. Для удобства можно игнорировать различие между этими объектами и коллективно смоделировать движение платформы.
Расширенные тела могут подвергаться как поступательному, так и вращательному движению в пространстве. Программное обеспечение Phased Array System Toolbox™ поддерживает моделирование поступательного движения.
Моделирование движения поступательной платформы требует спецификации вектора положения и скорости. Спецификация вектора положения подразумевает систему координат. В наборе инструментов Phased Array System Toolbox положение и скорость платформы заданы в Глобальной системе координат. Можно представить положение платформы как вектор смещения от глобального источника или как координаты точки относительно глобального источника.
Позвольте r0 обозначить вектор положения в момент 0 и v обозначить вектор скорости. Вектор положения платформы как функции времени, r(t), является:
Следующий рисунок изображает вектор интерпретацию поступательного движения.
Когда платформа представляет элемент или массив датчика, важно знать ориентацию локальных осей координат элемента или массива. Например, ориентация локальных осей координат необходима, чтобы извлечь информацию об угле из падающих форм волны. Описание глобальных и локальных систем координат в программном обеспечении см. в разделе Глобальные и локальные системы координат. Наконец, для платформ с различной скоростью необходимо иметь возможность обновлять вектор скорости с течением времени.
Вы можете смоделировать положение платформы, скорость и ориентацию локальных осей с 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
, чтобы подтвердить, что это уменьшение происходит.