Skip to main content
ClaudeWave
ES, Spanish
Skill1.2k estrellas del repoactualizado 6d ago

matlab-analyze-rcs

The matlab-analyze-rcs skill computes and visualizes monostatic and bistatic radar cross section (RCS) for platforms, antennas, and arrays using MATLAB Antenna Toolbox with selectable electromagnetic solvers (PO, MoM, FMM). Use this skill when engineers need to calculate RCS values, compare performance across polarizations (HH/VV/HV/VH), analyze scattering characteristics, or generate RCS plots for antenna systems and targets.

Instalar en Claude Code
Copiar
git clone --depth 1 https://github.com/matlab/matlab-agentic-toolkit /tmp/matlab-analyze-rcs && cp -r /tmp/matlab-analyze-rcs/skills-catalog/rf-and-mixed-signal/matlab-analyze-rcs ~/.claude/skills/matlab-analyze-rcs
Después abre una sesión nueva de Claude Code; el skill carga automáticamente.

SKILL.md

# RCS Analysis Skill

You are an expert RF and antenna engineer assisting a professional engineer with radar cross section analysis. Use MATLAB Antenna Toolbox to compute and visualize monostatic and bistatic RCS.

## When to Use

- User wants to compute monostatic or bistatic radar cross section
- User asks about RCS of a platform, antenna, or array
- User wants to compare RCS across polarizations (HH, VV, HV, VH)
- User needs to select an EM solver (PO, MoM, FMM) for RCS computation
- User wants to analyze RCS of a dielectric target

## When NOT to Use

- User wants antenna radiation pattern (not scattering) — use `matlab-design-antenna` or `matlab-design-array`
- User wants to install an antenna on a platform and compute its pattern — use `matlab-analyzing-installed-antennas`
- User wants plane wave excitation analysis (induced currents, DOA) — use `matlab-analyzing-plane-wave-excitation`

## Core Workflow

1. **Parse the request** -- Identify the target object (platform, antenna, or array), frequency, angular sweep, polarization, and monostatic vs. bistatic mode.

2. **Create the target** -- Load or build the scattering object:
   ```matlab
   % Platform from STL file
   plat = platform(FileName="target.stl", Units="m");

   % Or use an antenna/array object directly
   ant = design(horn, freq);
   ```

3. **Compute RCS** -- Call `rcs()` with appropriate arguments:
   ```matlab
   figure;
   rcs(plat, freq, azimuth, elevation, Polarization="VV");
   ```

4. **Report results** -- Summarize peak RCS, angular location, and polarization. Include units (dBsm).

## Supported Objects

The `rcs` function works on all of these object types:

| Object Type | Examples |
|-------------|---------|
| Platform | `platform` (STL/STEP/IGES geometry) |
| Installed antenna | `installedAntenna` (antenna on platform) |
| Antenna elements | `dipole`, `horn`, `patchMicrostrip`, `reflectorParabolic`, `cassegrain`, etc. |
| Arrays | `linearArray`, `rectangularArray`, `circularArray` |

## rcs Function Reference

### Syntax

```matlab
% Plot mode (no outputs -- generates polar plot automatically)
rcs(object, freq)
rcs(object, freq, azimuth, elevation)
rcs(___, Name=Value)

% Data mode (capture values)
[rcsval, azimuth, elevation] = rcs(object, freq)
[rcsval, azimuth, elevation] = rcs(___, Name=Value)
```

When called with no output arguments, `rcs` generates a polar plot. When outputs are captured, no plot is created.

### Input Arguments

| Argument | Type | Default | Description |
|----------|------|---------|-------------|
| `object` | platform, antenna, or array | -- | Target for RCS computation |
| `freq` | positive scalar (Hz) | -- | Analysis frequency |
| `azimuth` | scalar or vector (deg) | 0 | Azimuth angle(s) for monostatic sweep |
| `elevation` | scalar or vector (deg) | 0:5:360 | Elevation angle(s) for monostatic sweep |

### Name-Value Arguments

| Name | Values | Default | Description |
|------|--------|---------|-------------|
| `Polarization` | `"VV"`, `"HH"`, `"HV"`, `"VH"` | `"VV"` | Transmit-receive polarization |
| `Solver` | `"PO"`, `"MoM"`, `"FMM"` | `"PO"` | Electromagnetic solver |
| `CoordinateSystem` | `"polar"`, `"rectangular"` | `"polar"` | Plot coordinate system |
| `Scale` | `"log"`, `"linear"` | `"log"` | Output scale (dBsm or m^2) |
| `Type` | `"Magnitude"`, `"Complex"` | `"Magnitude"` | Return magnitude or complex value |
| `UseGPU` | `"off"`, `"on"`, `"auto"` | `"off"` | GPU acceleration for PO solver |
| `TransmitAngle` | 2-by-1 vector [az; el] | `[0; 0]` | Bistatic transmit direction (deg) |
| `ReceiveAngle` | 2-by-M matrix [az; el] | -- | Bistatic receive directions (deg) |
| `Range` | positive scalar (m) | far-field | Observation distance for near-field RCS |

## Monostatic RCS

In monostatic mode, the transmitter and receiver are co-located. Sweep azimuth or elevation to map the RCS pattern.

**One of `azimuth` or `elevation` must be a scalar.** You cannot sweep both simultaneously -- `rcs` only produces 1D angular cuts, not 2D maps.

### Elevation Sweep (Fixed Azimuth)

```matlab
freq = 10e9;
plat = platform(FileName="plate.stl", Units="m");

az = 0;
el = 0:1:90;

% Auto-plot
figure;
rcs(plat, freq, az, el, Polarization="HH");

% Or capture data
[sigma, ~, ~] = rcs(plat, freq, az, el, Polarization="HH");
```

### Azimuth Sweep (Fixed Elevation)

```matlab
az = 0:1:360;
el = 45;

figure;
rcs(plat, freq, az, el, Polarization="VV");
```

### Comparing Polarizations

```matlab
az = 0:1:180;
el = 0;

sigma_hh = rcs(plat, freq, az, el, Polarization="HH");
sigma_vv = rcs(plat, freq, az, el, Polarization="VV");

figure;
plot(az, sigma_hh, az, sigma_vv, LineWidth=1.5);
grid on;
xlabel("Azimuth (deg)");
ylabel("RCS (dBsm)");
legend("HH", "VV", Location="best");
```

### 2D RCS Map

To produce a 2D azimuth-elevation RCS map, loop over one angle and collect 1D cuts:

```matlab
az = 0:5:355;
el = 0:5:90;
sigmaMap = zeros(numel(az), numel(el));
for i = 1:numel(az)
    sigmaMap(i, :) = rcs(plat, freq, az(i), el, Polarization="VV");
end

figure;
imagesc(el, az, sigmaMap);
xlabel("Elevation (deg)");
ylabel("Azimuth (deg)");
colorbar;
title(sprintf("RCS Map at %.1f GHz (VV, dBsm)", freq/1e9));
```

This can be slow for fine angular resolution. Use coarse steps (5-10 deg) first, then refine regions of interest.

## Bistatic RCS

In bistatic mode, the transmitter and receiver are at different locations. Use `TransmitAngle` and `ReceiveAngle` instead of the `azimuth`/`elevation` positional arguments.

```matlab
% Incident wave from broadside (az=0, el=90)
txAngle = [0; 90];

% Sweep receive direction in elevation at az=0
rxEl = 0:5:360;
rxAngle = [zeros(size(rxEl)); rxEl];

figure;
rcs(plat, freq, TransmitAngle=txAngle, ReceiveAngle=rxAngle, Polarization="HH");
```

`TransmitAngle` is a 2-by-1 vector `[azimuth; elevation]`. `ReceiveAngle` is a 2-by-M matrix where each column is one receive direction `[azimuth; elevation]`.

## Solver Selection

| Solver | Best For | Mesh Requirement | Speed
matlab-access-datafeedSkill

>

matlab-analyze-ams-waveformSkill

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.

matlab-analyze-dataSkill

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.

matlab-analyze-dependenciesSkill

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.

matlab-analyze-emSkill

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).

matlab-analyze-installed-antennaSkill

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.

matlab-analyze-pcb-pdnSkill

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).

matlab-analyze-rf-amplifierSkill

>