How do I simulate a ground antenna with a V shaped reflector?
Ältere Kommentare anzeigen
I managed to build a ground antenna but I am not able to build a V shpaped reflector around it. This is what the code looks like for now:
tx = design(monopoleRadial, fc);
%% Adjust Rod Lengths and Radial Angles
% 1. Set the vertical monopole rod length (in meters)
tx.Height = 0.58;
% 2. Set the length of each ground radial rod (in meters)
tx.RadialLength = 0.58;
% 3. Set the angle between the radials and the horizontal plane (in degrees)
tx.RadialTilt = 45;
% 4. Set the total number of ground radials
tx.NumRadials = 4;
% Designing a reflector
rc = reflectorCorner;
rc.Exciter = tx;
rc.Spacing = 0.15;
rc.CornerAngle = 90;
rc.GroundPlaneLength = 0.86;
rc.GroundPlaneWidth = 1.05;
rc.rotate([1 0 0], 90);
figure;
show(rc)
pattern(rc, fc)
I know I have to shift it as well but the error that is showing is for rc.rotate([1 0 0], 90) and I tried to get help of the Copilot but it did not help.
Antworten (1)
Cris LaPierre
am 10 Jun. 2026
Bearbeitet: Cris LaPierre
am 10 Jun. 2026
I am not an antenna expert, but was intrigued because you said Copilot did not help. I therefore tried to understand the issue with my own prompting.
Note that we do not have your design requirements, so this response is exploratory at best.
The main issue I found is that reflectorCorner does not have a rotate method, so rc.rotate([1 0 0],90) is invalid. You probably need to use a supported property like Tilt and TiltAxis.
For testing, I used fc = 122 MHz. My goal was to get a working reflector rather than preserving all the original design parameters. The main implication is that, for your given antenna geometry, a strict 90 degree V reflector was problematic.
Working Frequency
The value below is the validated starting frequency for the stated monopole dimensions.
fc = 122e6;
fcMHz = fc/1e6
Build the Working Reflector
This section uses the construction order that solved correctly in MATLAB.
rc = reflectorCorner;
rc.Exciter = monopoleRadial;
rc = design(rc,fc);
rc.Exciter.Height = 0.58;
rc.Exciter.RadialLength = 0.58;
rc.Exciter.RadialTilt = 45;
rc.Exciter.NumRadials = 4;
rc.Spacing = 0.58;
rc.CornerAngle = 140;
rc.GroundPlaneLength = 0.86;
rc.GroundPlaneWidth = 1.05;
rc.TiltAxis = [1 0 0];
rc.Tilt = 90;
show(rc)
Resulting Reflector Geometry
The reflector panel size is left at the value generated by design because smaller manual panel sizes caused mesh intersection errors.
reflectorDesign = struct;
reflectorDesign.Spacing_m = rc.Spacing;
reflectorDesign.CornerAngle_deg = rc.CornerAngle;
reflectorDesign.GroundPlaneLength_m = rc.GroundPlaneLength;
reflectorDesign.GroundPlaneWidth_m = rc.GroundPlaneWidth;
reflectorDesign
Radiation Pattern
The updated reflector geometry solves and the pattern can be evaluated at fc.
pattern(rc,fc)
Changes from your original script
- Replaced the invalid rotate call with the supported Tilt and TiltAxis properties
- Set fc = 122e6 Hz as the working frequency for the monopole geometry with Height = 0.58 m, RadialLength = 0.58 m, RadialTilt = 45 deg, and NumRadials = 4
- Built the reflector by assigning rc.Exciter = monopoleRadial first and then calling rc = design(rc,fc)
- Reapplied the custom monopole dimensions after design because the reflector design step resized the exciter
- Increased Spacing to 0.58 m because smaller tested values produced reflector intersection errors
- Kept the original reflector panel dimensions of GroundPlaneLength = 0.86 m and GroundPlaneWidth = 1.05 m because those values do work once the spacing and corner angle are corrected
- Used CornerAngle = 140 deg because a tighter 90 deg V-shape still intersected for this monopole radial geometry
If a strict 90 deg V-reflector is still required, the built-in reflectorCorner object is not enough for this monopole radial geometry and a custom reflector geometry will be needed.
If the monopole dimensions change, rerun an S-parameter or impedance sweep and update fc before redesigning the reflector.
1 Kommentar
Cris LaPierre
am 10 Jun. 2026
So the biggest change is with the position of the V reflector. In the original code, it was too close to the monopole/radials and collided with the antenna geometry, leading to the 'Intersection detected in specified geometry.' error.

I had to move the reflector placement to fix this error when running pattern(rc,fc)
Kategorien
Mehr zu Array Catalog finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

