A critical component in phased array system applications is the ability to model motion in space. Such modeling includes the motion of arrays, targets, and sources of interference. For convenience, you can ignore the distinction between these objects and collectively model the motion of a platform.
Extended bodies can undergo both translational and rotational motion in space. Phased Array System Toolbox™ software supports modeling of translational motion.
Modeling translational platform motion requires the specification of a position and velocity vector. Specification of a position vector implies a coordinate system. In the Phased Array System Toolbox, platform position and velocity are specified in a Global Coordinate System. You can think of the platform position as the displacement vector from the global origin or as the coordinates of a point with respect to the global origin.
Let r0 denote the position vector at time 0 and v denote the velocity vector. The position vector of a platform as a function of time, r(t), is:
The following figure depicts the vector interpretation of translational motion.
When the platform represents a sensor element or array, it is important to know the orientation of the element or array local coordinate axes. For example, the orientation of the local coordinate axes is necessary to extract angle information from incident waveforms. See Global and Local Coordinate Systems for a description of global and local coordinate systems in the software. Finally, for platforms with nonconstant velocity, you must be able to update the velocity vector over time.
You can model platform position, velocity, and local axes orientation
Beginning with a simple example, model the motion of a platform over ten time steps. To determine the time step, assume that you have a pulse transmitter with a pulse repetition frequency (PRF) of 1 kilohertz. Accordingly, the time interval between each pulse is 1 millisecond. Set the time step equal to pulse repetition interval.
PRF = 1e3; Tstep = 1/PRF; Nsteps = 10;
hplat = phased.Platform('InitialPosition',[60;80;0], ... 'Velocity', [15;25.98;0]);
The initial orientation of the local coordinate axes of the
platform is the value of the
You can view the value of this property by entering
the MATLAB® command prompt. Because the
is not specified in the construction of the
the property is assigned its default value of
[1 0 0;0 1
0;0 0 1].
step method to simulate the translational
motion of the platform.
InitialPos = hplat.InitialPosition; for k = 1:Nsteps pos = step(hplat,Tstep); end FinalPos = pos+hplat.Velocity*Tstep; DistTravel = norm(FinalPos-InitialPos);
step method returns the current position
of the platform and then updates the platform position based on the
time step and velocity. Equivalently, the first time you invoke the
the output is the position of the platform at t=0.
Recall that the platform is moving with a constant velocity
of approximately 30 m/s. The total time elapsed is 0.01 seconds. Invoking
step method returns the current position
of the platform and then updates that position. Accordingly, you expect
the final position to differ from the initial position by 0.30 meters.
Confirm this difference by examining the value of
Most platforms in phased array applications do not move with
constant velocity. If the time interval described by the number of
time steps is small with respect to the platform's speed, you
can often approximate the velocity as constant. However, there are
situations where you must update the platform's velocity over
time. You can do so with
Velocity property is tunable.
See What You Cannot Change While Your System Is Running for
In this example, assume you model a target initially at rest. The initial velocity vector is (0,0,0). Assume the time step is 1 millisecond. After 500 milliseconds, the platform begins to move with a speed of approximately 10 m/s. The velocity vector is (7.07,7.07,0). The platform continues at this velocity for an additional 500 milliseconds.
Tstep = 1e-3; Nsteps = 1/Tstep; hplat = phased.Platform('InitialPosition',[100;100;0]); for k = 1:Nsteps/2 [pos,vel] = step(hplat,Tstep); end hplat.Velocity = [7.07; 7.07; 0]; for k=Nsteps/2+1:Nsteps [pos,vel] = step(hplat,Tstep); end
This example uses the
phased.Platform object to model the changes
in range between a stationary radar and a moving target. The radar
is located at (1000,1000,0) and has a velocity of (0,0,0). The target
has an initial position of (5000,8000,0) and moves with a constant
velocity of (–30,–45,0). The pulse repetition frequency
(PRF) is 1 kHz. Assume that the radar emits ten pulses.
The example uses
phased.Platform to model the
motion of the target and radar. The
translates the target's rectangular coordinates in the global
coordinate system to spherical coordinates in the local coordinate
system of the radar.
PRF = 1e3; Tstep = 1/PRF; hradar = phased.Platform('InitialPosition',[1000;1000;0]); htgt = phased.Platform('InitialPosition',[5000;8000;0],... 'Velocity',[-30;-45;0]); % Calculate initial target range and angle [InitRng, InitAng] = rangeangle(htgt.InitialPosition,... hradar.InitialPosition); % Calculate relative radial speed v = radialspeed(htgt.InitialPosition,htgt.Velocity,... hradar.InitialPosition); % Simulate target motion Npulses = 10; % Number of pulses for num = 1:Npulses tgtpos = step(htgt,Tstep); end tgtpos = tgtpos+htgt.Velocity*Tstep; % Calculate final target range and angle [FinalRng,FinalAng] = rangeangle(tgtpos,... hradar.InitialPosition); DeltaRng = FinalRng-InitRng;
The constant velocity of the target is approximately 54 m/s.
The total time elapsed is 0.01 seconds. The range between the target
and the radar should decrease by approximately 54 centimeters. Compare
the initial range of the target,
InitRng, to the
FinalRng, to confirm that this decrease