Skip to main content
ClaudeWave
Skill618 repo starsupdated 8d ago

matlab-analyze-installed-antenna

This MATLAB Antenna Toolbox skill models and analyzes antennas mounted on electrically large conducting platforms like vehicles, aircraft, ships, and satellites. It loads platform geometry from CAD files (STL, STEP, IGES), installs antenna elements at specified positions, selects appropriate electromagnetic solvers (MoM-PO, FMM, MoM), and computes radiation patterns, impedance, coupling, and efficiency. Use this when analyzing how platform geometry affects antenna performance rather than designing standalone antennas or studying platform RCS characteristics.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/matlab/matlab-agentic-toolkit /tmp/matlab-analyze-installed-antenna && cp -r /tmp/matlab-analyze-installed-antenna/skills-catalog/rf-and-mixed-signal/matlab-analyze-installed-antenna ~/.claude/skills/matlab-analyze-installed-antenna
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Installed Antenna Skill

You are an expert RF and antenna engineer assisting a professional antenna engineer or RF system designer. Use MATLAB Antenna Toolbox to model and analyze antennas installed on electrically large conducting platforms.

## When to Use

- User wants to mount an antenna on a vehicle, aircraft, ship, satellite, or other large platform
- User asks about installed antenna patterns, coupling, or efficiency on a structure
- User needs to select a solver (MoM-PO, FMM, MoM) for platform-antenna analysis
- User has a CAD file (STL/STEP/IGES) and wants to analyze antenna performance on it

## When NOT to Use

- User wants standalone antenna design (no platform) — use `matlab-design-antenna`
- User wants RCS of the platform — use `matlab-analyze-rcs`
- User wants plane wave excitation on a platform — use `matlab-analyzing-plane-wave-excitation`
- User wants a PCB antenna with stackup — use `matlab-designing-pcb-antennas`

## Core Workflow

1. **Parse the request** -- Identify the platform geometry (STL/STEP/IGES file or default plate), antenna element(s), operating frequency, element positions on the platform, and any solver preference or constraints.

2. **Create the platform** -- Load geometry from a CAD file:
   ```matlab
   plat = platform(FileName="aircraft.stl", Units="m");
   figure;
   show(plat);
   ```

3. **Install the antenna** -- Mount element(s) on the platform:
   ```matlab
   ant = installedAntenna;
   ant.Platform = plat;
   ant.Element = design(dipole, freq);
   ant.ElementPosition = [0 0 0.5];
   ```

4. **Select the solver** -- Choose based on platform electrical size and geometry (see Solver Selection Guide):
   ```matlab
   ant.SolverType = "MoM-PO";
   ```

5. **Mesh and display** -- Generate the mesh and show the installed geometry:
   ```matlab
   c = physconst("LightSpeed");
   lambda = c / freq;
   mesh(ant, MaxEdgeLength=lambda/10);
   figure;
   show(ant);
   ```

6. **Analyze and report** -- Compute pattern, impedance, and other metrics. Summarize key results in a table with units.

## Platform Creation

The `platform` object loads 3D geometry from CAD files for use as the conducting structure.

### Supported File Formats

| Format | Extensions | Units |
|--------|-----------|-------|
| STL | `.stl` | User-configurable via `Units` (default: `"mm"`) |
| STEP | `.step`, `.stp` | Read-only (embedded in file) |
| IGES | `.igs`, `.iges` | Read-only (embedded in file) |

### Platform Units

**The `platform` object defaults to millimeters (`"mm"`), but `ElementPosition` in `installedAntenna` is always in meters.** Mismatched units place the antenna in the wrong location or scale the platform incorrectly. Always set `Units` explicitly when loading STL files:

```matlab
% Correct -- explicit units
plat = platform(FileName="vehicle.stl", Units="m");

% Built-in plate geometry (ships with Antenna Toolbox)
plat = platform(FileName="plate.stl", Units="m");
```

**`platform` requires a `FileName`** -- calling `platform()` with no file and then `show()` or `mesh()` produces an error. Always provide a geometry file. The built-in `"plate.stl"` is available for quick tests.

STEP and IGES files carry their own units, so the `Units` property is read-only for those formats.

### Generating Platform STL Programmatically

When no CAD file exists, generate the platform geometry in MATLAB using `triangulation` + `stlwrite`:

```matlab
% Open-ended metal tube (cylinder without end caps)
radius = 0.05; height = 0.15; nPts = 24;
theta = linspace(0, 2*pi, nPts+1); theta(end) = [];
xBot = radius*cos(theta); yBot = radius*sin(theta);
zBot = -height/2 * ones(size(theta));
xTop = radius*cos(theta); yTop = radius*sin(theta);
zTop = height/2 * ones(size(theta));
verts = [xBot(:), yBot(:), zBot(:); xTop(:), yTop(:), zTop(:)];
faces = [];
for i = 1:nPts
    j = mod(i, nPts) + 1;
    faces = [faces; i, i+nPts, j; j, i+nPts, j+nPts];
end
TR = triangulation(faces, verts);
stlwrite(TR, fullfile(tempdir, "tube.stl"));
plat = platform(FileName=fullfile(tempdir, "tube.stl"), Units="m");
```

For plates, boxes, and mesh quality tips, see `references/programmatic-stl-generation.md`.

### Using the STL Mesh Directly

By default, `platform` remeshes the imported geometry. To skip remeshing and use the STL triangulation as-is (useful when the file comes from a dedicated mesh generator):

```matlab
plat = platform(FileName="premeshed_body.stl", Units="m");
plat.UseFileAsMesh = true;
```

### Platform Tilt

Rotate the platform orientation before installing antennas:

```matlab
plat.Tilt = 90;
plat.TiltAxis = "Y";
```

## Element Installation

### installedAntenna Properties

| Property | Type | Default | Description |
|----------|------|---------|-------------|
| `Platform` | `platform` object | rectangular plate | Conducting structure |
| `Element` | antenna, array, or cell array | `dipole` | Antenna element(s) to install |
| `ElementPosition` | N-by-3 matrix (meters) | `[0 0 0.075]` | [x, y, z] per element |
| `Reference` | `"feed"` or `"origin"` | `"feed"` | Position reference point |
| `FeedVoltage` | scalar or vector (V) | 1 | Excitation amplitude per element |
| `FeedPhase` | scalar or vector (deg) | 0 | Excitation phase per element |
| `Tilt` | scalar or vector (deg) | 0 | Element rotation angle |
| `TiltAxis` | vector, matrix, or string | `[1 0 0]` | Element rotation axis |
| `SolverType` | string | `"MoM-PO"` | `"MoM-PO"`, `"MoM"`, or `"FMM"` |

### Substrate Limitation

**`installedAntenna` only supports pure metal antennas.** Antennas with a dielectric substrate other than air are **not supported** as elements. This means you cannot install a `patchMicrostrip` with FR4 or Teflon substrate on a platform.

Use metal-only antenna types:
- Wire: `dipole`, `monopole`, `dipoleFolded`, `dipoleMeander`, `invertedF`, `invertedL`, etc.
- Horn: `horn`, `hornConical`, `hornCorrugated`, `hornPotter`, `hornScrimp`
- Spiral/helix: `spiralArchimedean`, `spiralEquiangular`, `helix`
- Slot: `slot`,
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.