本文へ移動
cccskills
無料GitHub で公開

matlab-manage-pcb-material

Dielectric substrates, metal conductors, multi-layer stackups, and loss models (FR4, Rogers, Teflon) for RF PCB simulation. TRIGGER: user asks to set up a substrate, define dielectric properties, create a stackup, select a PCB material (FR4, Rogers, Teflon, etc.), or configure metal conductors. Invoke BEFORE writing dielectric() or metal() code — the API for named vs custom materials differs significantly. SKIP: PCB layout assembly (use matlab-assemble-pcb-layout), transmission line design (use matlab-design-pcb-transmission-line), EM analysis (use matlab-analyze-em), importing a PCB file (use matlab-read-pcb-layout).

インストール方法を見る

含まれるファイル(2)

  • SKILL.md12.3 KB
  • manifest.yaml483 B

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-transmission-line (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-transmission-line, matlab-assemble-pcb-layout, matlab-model-via) — pass materials to the component

Quick Reference

TaskCode
Catalog dielectricsub = dielectric("FR4")
Custom dielectricsub = dielectric(Name="MyMat", EpsilonR=4.4, LossTangent=0.02, Thickness=1.6e-3)
Multi-layer dielectricsub = dielectric("FR4","Teflon"); sub.Thickness = [0.8e-3 0.4e-3]
Catalog metalcond = metal("Copper")
Custom metalcond = metal(Name="MyMetal", Conductivity=5.8e7, Thickness=35e-6)
Browse dielectricsDielectricCatalog
Browse metalsMetalCatalog
Frequency-dependentsub = 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

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

To see every name in the catalog:

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

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

Key Properties

PropertyDescriptionUnits
NameMaterial identifierstring
EpsilonRRelative permittivitydimensionless
LossTangentDielectric loss tangent (tan δ)dimensionless
ThicknessLayer thicknessmeters
FrequencyReference frequency for loss tangentHz
FrequencyModel'Constant', 'DjordjevicSarkar', 'MeanDjordjevicSarkar', or 'TableDriven'—

Browsing the Catalog

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

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

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

Browsing the Catalog

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

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)

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

Explicit Multi-Layer

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

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:

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

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};

Frequency-Dependent Loss Models

For accurate wideband modeling, specify a reference frequency for the loss tangent:

sub = dielectric(Name="FR4", EpsilonR=4.4, LossTangent=0.02, ...
    Thickness=1.6e-3, Frequency=1e9);

When Frequency is specified, the FrequencyModel property automatically becomes 'DjordjevicSarkar'. This causal model extrapolates permittivity and loss tangent across the analysis bandwidth, ensuring physically consistent results. Without Frequency, the model uses 'Constant' (frequency-independent).

Available dispersion models:

  • "Constant" -- (default) frequency-independent permittivity and loss tangent
  • "DjordjevicSarkar" -- wideband causal model, best for PCB substrates
  • "MeanDjordjevicSarkar" -- averaged version of DjordjevicSarkar
  • "TableDriven" -- user-supplied frequency-dependent data from vendor datasheets

Frequency Model Selection Guide

Frequency RangeRecommended ModelUse Case
DC -- 1 GHzConstant (default)Low-frequency, quick estimates
1 -- 40 GHzDjordjevicSarkarMost RF PCB designs, FR4/Rogers
Broadband with vendor dataTableDrivenImport manufacturer permittivity vs. frequency curves
Wideband model fittingMeanDjordjevicSarkarAveraged causal model for broadband sweeps

Querying Dispersion-Aware Properties

Use getMaterialProperties() to calculate permittivity and loss tangent at specific frequencies, accounting for the active dispersion model:

sub = dielectric("FR4");
sub.FrequencyModel = "DjordjevicSarkar";
sub.Frequency = 1e9;

% Get properties across a frequency sweep
freq = linspace(1e8, 10e9, 100);
[epsr, tand, f] = getMaterialProperties(sub, freq);

% Plot frequency-dependent permittivity
plot(f/1e9, epsr);
xlabel("Frequency (GHz)"); ylabel("\epsilon_r");
title("FR4 Permittivity (DjordjevicSarkar)");

Common Material Parameters

Dielectric Catalog Values (R2026a)

MaterialEpsilonRLossTangentFreq (Hz)Notes
FR44.80.0261e8Standard PCB
Teflon2.10.00021e8Low-loss PTFE
Foam1.030.000155e7Air-like spacer
RO4725JXR2.550.00222.5e9Rogers, halogen-free
RO4730JXR3.00.00232.5e9Rogers, halogen-free
TMM109.80.00221e10Ceramic-filled PTFE
Taconic RF-353.50.00181.9e9Low-loss RF

Materials not in catalog that must be created manually:

sub = dielectric(Name="RO4003C", EpsilonR=3.38, LossTangent=0.0027, Thickness=0.508e-3);
sub = dielectric(Name="RO4350B", EpsilonR=3.66, LossTangent=0.0037, Thickness=0.508e-3);

Metal Catalog Values (R2026a)

MetalConductivity (S/m)Catalog ThicknessNotes
PECInf0Perfect conductor (default)
Copper5.96e735.56 μm (1.4 mil, 1 oz)Most common
Aluminium3.77e7762 μm (30 mil)
Gold4.11e70.2 μmPlating
Silver6.3e70.2 μmHighest conductivity

Pitfalls

  1. Set BoardThickness before Layers: pcbComponent.BoardThickness must equal the sum of all dielectric thicknesses. Always assign BoardThickness before Layers — reversing the order triggers a warning and silently overwrites dielectric thicknesses.

  2. Default conductor is PEC: If you don't assign a Conductor, components use perfect electric conductor (lossless). Always assign metal("Copper") for realistic loss modeling.

  3. Most Rogers materials not in catalog: Only RO4725JXR and RO4730JXR are in DielectricCatalog. Common substrates like RO4003C, RO4350B, and RO3003 must be created manually from datasheet values. Calling dielectric("RO4003C") will error.

  4. Multi-layer Thickness must match element count: When using vector Thickness, the number of elements must equal the number of names/EpsilonR values. Mismatched lengths throw an error.

  5. Units are always SI: Thickness in meters (not mm or mils). A 1.6 mm board is 1.6e-3, not 1.6.

  6. FrequencyModel can be set post-design. After design() creates a component with a default constant dielectric, you can switch to DjordjevicSarkar: obj.Substrate.FrequencyModel = 'DjordjevicSarkar'; obj.Substrate.Frequency = 1e9;. This is useful when the design step doesn't accept frequency-dependent substrates.

  7. Named catalog dielectrics are single-layer: dielectric("FR4") creates a 1-layer object with fixed catalog properties. For multi-layer pcbComponent stacks, create separate unnamed dielectric objects with explicit EpsilonR, LossTangent, and scalar Thickness for each layer. Do NOT use a named catalog entry when you need to control per-layer thickness in a Layers cell array.

  8. Dielectric layer count for viaSingleEnded: When building a multi-layer substrate for viaSingleEnded, the number of dielectric layers must equal N-1 where N is the number of conductive layers in the stackup (e.g., Signal=[1 5], Ground=[3 7] → 4 metal layers → 3 dielectric layers). When using the viaSingleEnded(N) constructor, soldermask layers are added automatically — see matlab-model-via Pitfall #17 for exact requirements. All dielectric property arrays (Name, EpsilonR, LossTangent, Thickness, Frequency) must match in size.

Related Skills

  • matlab-assemble-pcb-layout — Using materials in custom pcbComponent structures
  • matlab-analyze-em — How material properties affect solver accuracy
  • matlab-design-pcb-transmission-line — Substrate selection for impedance control

Copyright 2026 The MathWorks, Inc.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Guide for accessing financial and economic data in MATLAB using the Datafeed Toolbox. Covers Bloomberg (market data via bloomberg/blp/bloombergHypermedia), FRED (Federal Reserve economic data via fredrs), Haver Analytics (economic data via haver/haverdirect/haverview), and LSEG Datastream (historical data via datastreamws). Use when connecting to any of these data providers from MATLAB.

日本語の概要は準備中です。原文の説明を表示しています。

matlab/matlab-agentic-toolkit1,1512026年10月9日 更新

Read BEFORE writing any code that adds Additive White Gaussian Noise (AWGN) to signals and converts between SNR, Eb/No, Es/No, and per-subcarrier SNR for communications simulations, using awgn(), convertSNR(), berawgn(). The default MATLAB patterns for AWGN (e.g., 'measured' option, manual SNR formulas) produce subtly incorrect results. This skill specifies the correct calling conventions, required function usage, and critical anti-patterns that must be avoided.

日本語の概要は準備中です。原文の説明を表示しています。

matlab/matlab-agentic-toolkit1,1512026年10月9日 更新

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/matlab-agentic-toolkit1,1512026年10月9日 更新

Design and analyze electrically large antenna structures using MATLAB Antenna Toolbox. Covers reflector antennas (parabolic, Cassegrain, Gregorian, offset, corner, cylindrical, spherical, custom STL), reflectarrays and reconfigurable intelligent surfaces (RIS), antennas installed on platforms (vehicles, aircraft, ships, satellites), and radar cross section (RCS) analysis. Includes solver selection (MoM-PO, PO, MoM, FMM), mesh control, and GPU acceleration. Use when the user wants to design a dish/reflector antenna, reflectarray, analyze an antenna on a platform, or compute RCS.

日本語の概要は準備中です。原文の説明を表示しています。

matlab/matlab-agentic-toolkit1,1512026年10月9日 更新

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, row 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/matlab-agentic-toolkit1,1512026年10月9日 更新

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/matlab-agentic-toolkit1,1512026年10月9日 更新

matlab のスキルをすべて見る

このスキルの問題を報告する