Skip to main content
ClaudeWave
Skill618 estrellas del repoactualizado 8d ago

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.

Instalar en Claude Code
Copiar
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-antenna
Después abre una sesión nueva de Claude Code; el skill carga automáticamente.

SKILL.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
matlab-train-networkSkill

>

matlab-driving-data-importerSkill

Import recorded driving sensor data (GPS, camera, lidar, actor tracks, lanes) into scenariobuilder.* objects (GPSData, CameraData, LidarData, ActorTrackData, Trajectory, laneData) and run preprocessing — synchronize, offset correction, crop, normalizeTimestamps, convertTimestamps. Also: compute actor tracks from lidar when no annotations exist, attach camera/lidar mounting + intrinsics, export to MAT/workspace/timetable/script. Use for raw driving dataset files (KITTI, nuScenes, Waymo, Pandaset, ROS/ROS2 bags, .mat, .csv, .mp4) or driving/vehicle/sensor logs that need wrapping. drivingLogAnalyzer (DLA) is OPT-IN ONLY — invoke only on explicit user request ('DLA', 'open in DLA', 'inspect/explore/analyze the recording') or reported sensor problem (sync drift, timestamp mismatch, overlay misalignment). NEVER auto-launch DLA after wrapping (Rule 0). For 'build scenario / export to RoadRunner / drivingScenario / OpenSCENARIO / Unreal / simulate', hand off to matlab-scenario-builder.

matlab-scenario-builderSkill

Generate driving scenes, scenarios, road surfaces, and 3D content from already-wrapped scenariobuilder.* sensor data (GPS, camera, lidar, actor tracks) using Scenario Builder for Automated Driving Toolbox. Use to BUILD, EXPORT, or AUGMENT a virtual scenario/scene/map: ego or actor trajectories, trajectory smoothing, OpenCRG road-surface extraction, 3D asset generation, static-object placement, point-cloud georeferencing + elevation, lane-based ego localization, sensor-fusion tracking, scenario-event extraction (cut-ins, hard brakes, near-misses, ADAS disengagements), or export to RoadRunner, drivingScenario, OpenDRIVE, OpenCRG, OpenSCENARIO, or Unreal Engine. Also: log-to-scenario, scenario harvesting, accident/near-miss reconstruction, SOTIF (ISO 21448) and ISO 26262 scenario coverage, USGS-aerial-lidar scene augmentation, traffic-sign placement from camera+lidar logs. NOT for raw-data import or multi-sensor sync/crop/offset/timestamp normalization — route those to matlab-driving-data-importer.

roadrunner-asset-mappingSkill

>

roadrunner-convert-lanelet2-to-rrhdSkill

>

roadrunner-import-sceneSkill

>

roadrunner-rrhd-authoringSkill

>

matlab-build-simbiology-modelSkill

Build, modify, and diagram SimBiology models — API reference, helper functions, and layout patterns. Use when constructing or editing models programmatically or visually.