beam width direction in circular motion in phased.Platform system object

5 次查看(过去 30 天)
Hello, I am using phased.Platform system object to model a circular trajectory for radar. the targets are out of circular trajectory but in the same plane as the radar. How should I check whether the radar is scanning out of the circle or inside it? I think phased.Platform in circular scan mode, scans targets that are out of circular trajectory by default but this is not mentioned in help.phased.Platform. can anyone help me with this issue? thanks for your time and consideration.

回答(1 个)

AR
AR 2025-8-12,9:31
Hi @alex,
As per my understanding, you are using the phased.Platform system object in MATLAB to simulate a radar moving along a circular trajectory, with targets outside this circle but on the same plane.
The phased.Platform object itself:
  • Models only the position and velocity of the platform over time.
  • Does not define or restrict the radar’s scan direction.
  • Allows detection of targets both inside and outside the circular path, provided your beam steering and beamwidth settings (phased.Radiator or phased.SteeringVector) cover them.
To determine whether the radar is scanning inside or outside the circle for a given target manually, follow the steps below:
  • Find the radar position on a circular path (radius 100 m, at 60°).
  • Calculate vector from the radar to the target.
  • Define radar’s scan direction vector (can be toward circle center, outward, or steered toward the target).  
  • Compute the angle θ between radar scan direction and target vector.   
  • Check if θ ≤ beamwidth / 2; if yes, the target lies within the scan sector.
Here is an example code:
% Radar platform position (on circle of radius 100m at 60 degrees)
R = 100;
theta_platform = pi/3; % 60 degrees
xp = R * cos(theta_platform);
yp = R * sin(theta_platform);
% Target position
xt = 150; % Target x coordinate
yt = 50; % Target y coordinate
% Radar scan direction: point directly at the target
theta_scan = atan2(yt - yp, xt - xp);
% Radar half-beamwidth (e.g., 30 degrees)
theta_bw = deg2rad(30);
% Vector from radar to target
dx = xt - xp;
dy = yt - yp;
% Angle from radar to target (relative to x-axis)
angle_to_target = atan2(dy, dx);
% Angle difference between scan direction and target
angle_diff = wrapToPi(angle_to_target - theta_scan);
% Display positions and angles
fprintf('Radar position: (%.1f, %.1f)\n', xp, yp);
Radar position: (50.0, 86.6)
fprintf('Target position: (%.1f, %.1f)\n', xt, yt);
Target position: (150.0, 50.0)
fprintf('Radar scan direction (deg): %.1f\n', rad2deg(theta_scan));
Radar scan direction (deg): -20.1
fprintf('Angle to target (deg): %.1f\n', rad2deg(angle_to_target));
Angle to target (deg): -20.1
fprintf('Angle difference (deg): %.1f\n', rad2deg(angle_diff));
Angle difference (deg): 0.0
fprintf('Radar half-beamwidth (deg): %.1f\n', rad2deg(theta_bw));
Radar half-beamwidth (deg): 30.0
if abs(angle_diff) <= theta_bw
disp('RESULT: Target is WITHIN the radar scan sector.');
else
disp('RESULT: Target is OUTSIDE the radar scan sector.');
end
RESULT: Target is WITHIN the radar scan sector.
  • phased.Platform does not restrict scan coverage by itself.
  • Scanning outside the circle is possible if the beam points there.
  • Use angle comparison with beamwidth to confirm if a target is inside or outside the radar scan sector.
Hope this is helpful!

Community Treasure Hunt

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

Start Hunting!

Translated by