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.
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-antennaSKILL.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`,>
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).
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.
>