Beamforming Question on Phased Array System Toolbox

1 view (last 30 days)
Hi there,
I am encountering one problem that I don't know how to put the influence of one antenna array's beamforming direction using the spherical coordinate system "az" and "el" (phased.PhaseShiftBeamformer) on a transmitter's rotation in the global coordinate system (phased.platform). In detail, when I use the function "phased.platform", I set the input "OrientationAxes" as some rotation, like "rotz(30)", however, the beamforming direction will not companion this transmitter's self rotation, instead, the beamforming direction seems not to be changed in this global coordinate system, independent to the transmitter's self rotation, set by "OrientationAxes".
We would like to simulate an antenna array's beamforming, 1) with diffrent beamforming direction, 2) with same relative beamforming direction but diffrent self position/rotation. So at this point, we stuck in how to make an effective connection between "phased.PhaseShiftBeamformer" and "phased.platform".
Thanks, Ralph

Accepted Answer

Honglei Chen
Honglei Chen on 28 May 2014
Hi Ralph,
I'm not hundred percent clear what you are trying to model, but I'll try to get the discussion going
You are right that the OreientationAxes in Platform specifies the rotation of the radar itself. But to use it in the computation, you need to set OrientationAxesOutputPort to true so that you get the correct orientation at each simulation time step. This being said, currently there is no direct support for self rotation in the platform, thus this approach doesn't work very well for your use case.
If you really want to track the self rotation, I would suggest to do it yourself. For example, assume that the angular velocity is 1 degree a second around z axis, the axes can be obtained by using
omega = 1; % angular speed 1 degree/sec
dt = 1; % simulation step in second
for m = 0:9 % simulation step
axes_current = rotz((m-1)*omega*dt);
end
Then you can use this axes to derive the corresponding az and el from the target. Let's say target is located at (100,100,100) and the radar is at (0,0,0), based on the script above, the pointing angle can be derived as
omega = 1; % angular speed 1 degree/sec
dt = 1; % simulation step in second
tgt_pos = 100*ones(3,1); % target position
radar_pos = zeros(3,1); % radar position
for m = 0:9 % simulation step
axes_current = rotz((m-1)*omega*dt); % current axes
azel_direction = rangeangle(tgt_pos,radar_pos,axes_current); % current target direction
end
You can use azel_direction to form the beam that points to the target.
I hope this is close to what you are looking for. Please let me know if you need any additional information.
  1 Comment
Honglei Chen
Honglei Chen on 28 May 2014
Hi Ralph, if you have more information regarding this question, feel free to update it here. This is a good topic so I prefer to answer it here for now so other people can reference to this in the future. Thanks.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!