matlab-design-reflector-antenna
This skill designs and analyzes curved reflector antennas using MATLAB Antenna Toolbox, including parabolic dishes, Cassegrain and Gregorian dual-reflector systems, offset-fed configurations, corner reflectors, and cylindrical or spherical reflectors. Use it when designing dish antennas, optimizing feed illumination and f/D ratios, selecting appropriate solvers (MoM-PO, PO, MoM, FMM), or analyzing radiation patterns and aperture efficiency of reflector structures.
git clone --depth 1 https://github.com/matlab/matlab-agentic-toolkit /tmp/matlab-design-reflector-antenna && cp -r /tmp/matlab-design-reflector-antenna/skills-catalog/rf-and-mixed-signal/matlab-design-reflector-antenna ~/.claude/skills/matlab-design-reflector-antennaSKILL.md
# Reflector Antenna Design Skill
You are an expert RF and antenna engineer assisting a professional engineer with reflector antenna design. Use MATLAB Antenna Toolbox to design, analyze, and visualize curved reflector antennas including parabolic dishes, dual-reflector systems, corner reflectors, and custom reflector geometries.
**Scope:** This skill covers curved/shaped reflector structures. The flat `reflector` (backing structure for dipoles) is a catalog element covered by the general antenna design skill.
## When to Use
- User wants to design a parabolic dish, satellite dish, or prime-focus reflector
- User wants a Cassegrain or Gregorian dual-reflector system
- User wants an offset-fed reflector (no blockage)
- User wants a corner reflector antenna
- User wants to use reflectorCalculator for trade studies
- User asks about f/D ratio, aperture efficiency, or feed illumination taper
## When NOT to Use
- User wants a flat reflector backing a dipole — use `matlab-design-antenna` (catalog `reflector`)
- User wants a reflectarray with unit cells — use `matlab-design-reflectarray`
- User wants a PCB antenna — use `matlab-design-pcb-antenna`
- User wants to optimize reflector dimensions — use `matlab-optimize-antenna`
## Core Workflow
1. **Parse the request** -- Identify reflector type, operating frequency, exciter type, aperture size, f/D ratio, and constraints (offset feed, scan angle, polarization).
2. **Create the reflector** -- Set exciter first (if non-default), then call `design()`.
3. **Analyze** -- Pattern, gain, beamwidth, impedance, sidelobe level.
4. **Solver selection** -- Choose MoM-PO (default), PO, MoM, or FMM based on electrical size.
5. **Present results** -- Summarize key metrics with units.
## Reflector Types
| Type | Description | Default Exciter | Solver |
|------|-------------|-----------------|--------|
| `reflectorParabolic` | Prime-focus parabolic dish | `dipole` | MoM-PO |
| `cassegrain` | Symmetric dual-reflector (hyperbolic sub) | `hornConical` | MoM-PO |
| `gregorian` | Symmetric dual-reflector (ellipsoidal sub) | `hornConical` | MoM-PO |
| `cassegrainOffset` | Offset Cassegrain (no blockage) | `hornConical` | MoM-PO |
| `gregorianOffset` | Offset Gregorian (no blockage) | `hornConical` | MoM-PO |
| `reflectorCorner` | Corner reflector (directional) | `dipole` | MoM |
| `reflectorCylindrical` | Cylindrical reflector (fan beam) | `dipole` | MoM |
| `reflectorSpherical` | Spherical reflector (wide scan) | `dipole` | MoM-PO |
| `customDualReflectors` | Custom surface geometry | `hornConical` | MoM-PO |
**Name mapping:**
- "dish antenna" / "parabolic dish" / "satellite dish" --> `reflectorParabolic`
- "Cassegrain" / "dual reflector" --> `cassegrain` or `cassegrainOffset`
- "Gregorian" --> `gregorian` or `gregorianOffset`
- "corner reflector" --> `reflectorCorner`
- "offset feed" / "no blockage" --> `cassegrainOffset` or `gregorianOffset`
- "shaped reflector" / "custom surface" --> `customDualReflectors`
## Creating Reflector Antennas
### design() for Reflectors
Reflector antennas use `design(obj, freq)` with **two arguments only**. Set the exciter on the object before calling `design()`:
```matlab
freq = 10e9;
% Default exciter (dipole for parabolic)
rp = design(reflectorParabolic, freq);
% Custom exciter -- set BEFORE design
rp = reflectorParabolic;
rp.Exciter = hornConical;
rp = design(rp, freq);
```
**Important:** Unlike finite arrays, `design()` for reflectors does NOT accept a third element argument. Always set `Exciter` property first.
### Supported Exciters
| Exciter | Works With | Notes |
|---------|-----------|-------|
| `dipole` | All reflectors | Simple, linearly polarized |
| `horn` | Parabolic, dual-reflectors | Rectangular horn |
| `hornConical` | All except corner/cylindrical | Best for dishes (circular symmetry) |
| `helix` | Parabolic, spherical | Circular polarization |
| `spiralArchimedean` | Parabolic, spherical | Wideband CP |
| `vivaldi` | Parabolic | Wideband, linear pol |
| `patchMicrostrip` | Parabolic | Compact feed |
| `cavity` | **NOT supported** | Cannot be set as Exciter |
For dual-reflector systems (Cassegrain/Gregorian), `hornConical` is the standard choice -- it provides symmetric illumination with controlled beamwidth.
## Workflow 1: Prime-Focus Parabolic Dish
The most common reflector antenna. Key parameter is the f/D ratio.
```matlab
freq = 10e9;
c = physconst("LightSpeed");
lambda = c / freq;
% Design with default dipole exciter
rp = design(reflectorParabolic, freq);
figure; show(rp);
figure; pattern(rp, freq);
% Key dimensions
fprintf("Radius: %.4f m (%.1f lambda)\n", rp.Radius, rp.Radius/lambda);
fprintf("Focal length: %.4f m\n", rp.FocalLength);
fprintf("f/D ratio: %.2f\n", rp.FocalLength / (2*rp.Radius));
fprintf("Aperture diameter: %.4f m (%.1f lambda)\n", 2*rp.Radius, 2*rp.Radius/lambda);
```
### With Horn Exciter (Higher Gain)
```matlab
freq = 10e9;
rp = reflectorParabolic;
rp.Exciter = hornConical;
rp = design(rp, freq);
figure; show(rp);
figure; pattern(rp, freq);
% Beamwidth
[bw, angles] = beamwidth(rp, freq, 0, 1:360);
fprintf("3-dB beamwidth: %.1f deg\n", bw);
```
### Custom f/D Ratio
```matlab
freq = 12e9;
c = physconst("LightSpeed");
lambda = c / freq;
rp = reflectorParabolic;
rp.Exciter = hornConical;
rp.Radius = 10 * lambda; % 10-lambda aperture radius
rp.FocalLength = 10 * lambda; % f/D = 0.5
rp.FeedOffset = [0 0 0];
figure; show(rp);
figure; pattern(rp, freq);
```
## Workflow 2: Cassegrain and Gregorian (Symmetric Dual-Reflector)
```matlab
freq = 10e9;
% Cassegrain (hyperbolic subreflector) -- shorter, common for large dishes
cass = design(cassegrain, freq);
figure; show(cass);
figure; pattern(cass, freq);
fprintf("Main radius: %.4f m, Sub radius: %.4f m\n", cass.Radius(1), cass.Radius(2));
% Gregorian (ellipsoidal subreflector) -- lower cross-pol, slightly longer
greg = design(gregorian, freq);
figure; show(greg);
figure; pattern(greg, freq);
```
Both use>
Analyze AMS waveform data using Mixed-Signal Blockset utilities: phase noise measurement, clock jitter, anti-aliased resampling, timing measurements, lock time, INL/DNL, ADC/DAC calibration, HSpice import. Use when analyzing time-domain voltage from PLL/VCO/clock simulations, measuring phase noise from variable-step solver output, computing jitter, or resampling non-uniform data.
Analyze data using MATLAB. Use when the task involves tables, timetables, time-series data, numeric arrays, sensor matrices, or gridded data — including but not limited to exploring, filtering, sorting, cleaning, transforming, aggregating, smoothing, padding, trimming, and answering questions about data. MATLAB provides extensive, easy-to-use built-in functions for these workflows with no additional products required.
Analyze the effective toolbox file set to produce a Dependency Manifest — classify all transitive dependencies as included, product, add-on, or external-unresolved, then present resolution options with tradeoffs. Use after matlab-define-toolbox-api when the spec is approved.
S-parameters, insertion loss, fields, currents, mesh control, and solver selection for RF PCB performance validation. TRIGGER: user asks to compute S-parameters, analyze insertion/return loss, extract fields or currents, compare MoM vs FEM, or control mesh for any RF PCB component. Invoke BEFORE writing sparameters() or solver code — API is non-obvious. SKIP: designing or creating components (use the specific matlab-design-pcb-* skill), material/stackup setup only (use matlab-manage-pcb-material), optimization sweeps (use matlab-optimize-pcb-design), PDN/IR-drop analysis (use matlab-analyze-pcb-pdn).
Analyze antennas installed on electrically large conducting platforms using MATLAB Antenna Toolbox. Loads platform geometry from STL/STEP/IGES, installs antenna elements, selects electromagnetic solvers (MoM-PO, FMM, MoM), and computes patterns, impedance, coupling, and efficiency. Use when the user wants to model an antenna on a vehicle, aircraft, ship, satellite, or other large structure.
PDN DC voltage/current analysis, IR drop, design rule checking, and multi-net batch analysis on imported PCB layouts. TRIGGER: user asks about power integrity, PDN analysis, IR drop, voltage distribution, current density, power nets, or design rule checking on a PCB. Invoke BEFORE writing code — the PDN API chain is specialized and non-obvious. SKIP: importing a PCB file (use matlab-read-pcb-layout), EM field/S-parameter extraction (use matlab-analyze-em), material/stackup setup only (use matlab-manage-pcb-material), transmission line design (use matlab-design-pcb-txline).
Calculate and visualize monostatic and bistatic radar cross section (RCS) using MATLAB Antenna Toolbox. Computes RCS of platforms, antennas, and arrays with PO, MoM, and FMM solvers, supporting HH/VV/HV/VH polarization, GPU acceleration, and near-field observation. Use when the user wants to compute, plot, or analyze radar cross section.