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

matlab-manage-pcb-material

This skill defines dielectric substrates, metal conductors, and multi-layer stackups for RF PCB designs in MATLAB. Use it first when setting up any PCB component to establish material properties (FR4, Rogers, Teflon, or custom materials), configure frequency-dependent loss models, and specify conductor characteristics before invoking transmission line, filter, or layout assembly skills that depend on these material definitions.

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

SKILL.md

# Managing Materials for RF PCB Toolbox

## When to Use

- Creating dielectric substrates for transmission lines, filters, couplers, or custom pcbComponent designs
- Selecting metals (Copper, Gold, etc.) for realistic conductor loss modeling
- Building multi-layer dielectric stacks for stripline or embedded designs
- Choosing frequency-dependent dispersion models (DjordjevicSarkar) for wideband accuracy
- Looking up catalog material properties or adding custom materials

## When NOT to Use

- Building the PCB layer structure itself — use `matlab-assemble-pcb-layout`
- Running EM analysis after materials are defined — use `matlab-analyze-em`
- Designing transmission lines that happen to need substrates — use `matlab-design-pcb-txline` (it references this skill for material details)
- Importing material properties from an existing board file — use `matlab-read-pcb-layout`

## Typical Workflow

1. **This skill:** Define substrate, conductor, and stackup — typically the first step in any RF PCB design
2. **After:** Any design skill (`matlab-design-pcb-filter`, `matlab-design-pcb-txline`, `matlab-assemble-pcb-layout`, `matlab-model-via`) — pass materials to the component

## Quick Reference

| Task | Code |
|------|------|
| Catalog dielectric | `sub = dielectric("FR4")` |
| Custom dielectric | `sub = dielectric(Name="MyMat", EpsilonR=4.4, LossTangent=0.02, Thickness=1.6e-3)` |
| Multi-layer dielectric | `sub = dielectric("FR4","Teflon"); sub.Thickness = [0.8e-3 0.4e-3]` |
| Catalog metal | `cond = metal("Copper")` |
| Custom metal | `cond = metal(Name="MyMetal", Conductivity=5.8e7, Thickness=35e-6)` |
| Browse dielectrics | `DielectricCatalog` |
| Browse metals | `MetalCatalog` |
| Frequency-dependent | `sub = dielectric(..., Frequency=1e9)` |
| Get properties at freq | `[epsr, tand, f] = getMaterialProperties(sub, freqVector)` |

## Creating Dielectrics

The `dielectric` object defines substrate properties. Create from the built-in catalog or specify custom parameters.

### From Catalog

```matlab
sub = dielectric("FR4");
sub = dielectric("Teflon");
sub = dielectric("RO4730JXR");
sub = dielectric("TMM10");
```

To see every name in the catalog:

```matlab
dc = DielectricCatalog;
disp(dc.Materials)
```

Available catalog names (R2026a): Air, FR4, Teflon, Foam, Polystyrene, Plexiglas, Fused quartz, E glass, RO4725JXR, RO4730JXR, TMM3, TMM4, TMM6, TMM10, TMM10i, Taconic RF-35. Add custom materials with `add(dc, ...)` if your material is not listed.

### Custom Properties

```matlab
sub = dielectric(Name="Rogers4350B", EpsilonR=3.66, LossTangent=0.0037, Thickness=0.508e-3);
```

### Key Properties

| Property | Description | Units |
|----------|-------------|-------|
| `Name` | Material identifier | string |
| `EpsilonR` | Relative permittivity | dimensionless |
| `LossTangent` | Dielectric loss tangent (tan δ) | dimensionless |
| `Thickness` | Layer thickness | meters |
| `Frequency` | Reference frequency for loss tangent | Hz |
| `FrequencyModel` | `'Constant'`, `'DjordjevicSarkar'`, `'MeanDjordjevicSarkar'`, or `'TableDriven'` | — |

### Browsing the Catalog

```matlab
dc = DielectricCatalog;
open(dc)               % Opens interactive catalog viewer
disp(dc.Materials)     % List all materials as a table
s = find(dc, "FR4");   % Returns struct with Name, Relative_Permittivity, Loss_Tangent, Frequency, Comments
```

## Creating Metals

The `metal` object defines conductor properties.

### From Catalog

```matlab
cond = metal("Copper");       % Conductivity=5.96e7, Thickness=35.56e-6 (1 oz)
cond = metal("Aluminium");    % Conductivity=3.77e7, Thickness=762e-6
cond = metal("Gold");         % Conductivity=4.11e7, Thickness=0.2e-6
```

Available catalog metals (R2026a): PEC, Copper, Aluminium, Gold, Silver, Zinc, Tungsten, Lead, Iron, Steel, Brass.

### Custom Properties

```matlab
cond = metal(Name="ThickCopper", Conductivity=5.8e7, Thickness=70e-6);
```

### Browsing the Catalog

```matlab
mc = MetalCatalog;
open(mc)                    % Opens interactive catalog viewer
disp(mc.Materials)          % List all metals as a table
s = find(mc, "Aluminium");  % Returns struct with Name, Conductivity, Thickness, Units, Comments
```

### Assigning to Components

```matlab
mline = microstripLine;
mline.Conductor = metal("Copper");
```

## Multi-Layer Substrates

Many RF PCB components support multi-layer dielectric stacks. Pass multiple material names or use vector properties.

### Shorthand Syntax (catalog names)

```matlab
sub = dielectric("FR4", "Teflon");
sub.Thickness = [0.0016 0.0008];
```

### Explicit Multi-Layer

```matlab
sub = dielectric(Name={"FR4","Foam","FR4"}, ...
    EpsilonR=[4.4 1.05 4.4], ...
    LossTangent=[0.02 0.001 0.02], ...
    Thickness=[0.4e-3 0.8e-3 0.4e-3]);
```

**Important**: Use a cell array `{...}` for `Name`, not a string array `[...]`. String array concatenation (`["FR4","Foam"]`) produces a single string `"FR4Foam"`, not a multi-element array.

### Assigning to Components

```matlab
balun = balunMarchand;
balun.Height = 0.0016;
balun.Substrate = sub;
show(balun);
```

Multi-layer substrates are supported by all catalog components that have a `Substrate` or `Height` property (transmission lines, filters, couplers, splitters, etc.).

## Dielectrics in pcbComponent

When building custom structures with `pcbComponent`, dielectrics appear as layers in the `Layers` cell array:

```matlab
pcb = pcbComponent;
substrate = dielectric("RO4730JXR");
substrate.Thickness = 1.52e-3;
ground = traceRectangular(Length=20e-3, Width=10e-3);

pcb.BoardThickness = substrate.Thickness;
pcb.Layers = {signalTrace, substrate, ground};
```

For multi-dielectric pcbComponent stacks (5-layer):

```matlab
sub1 = dielectric(Name="FR4", EpsilonR=4.4, LossTangent=0.02, Thickness=0.8e-3);
sub2 = dielectric(Name="FR4", EpsilonR=4.4, LossTangent=0.02, Thickness=0.8e-3);

pcb.BoardThickness = sub1.Thickness + sub2.Thickness;
pcb.Layers = {topTrace, sub1, groundPlane, sub2, bottomTrace};
```

## Frequenc
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-rcsSkill

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.