Matlab Manage Pcb Material
MathWorksOfficialCreated by MathWorks
- Skill
- Tool integration
- Software development
- BSD-2-Clause
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a comprehensive guide for managing material properties within the MATLAB RF PCB Toolbox. It covers the creation and configuration of dielectric substrates and metal conductors, including both built-in catalog materials and custom specifications. It details how to define multi-layer stackups, apply frequency-dependent dispersion models like DjordjevicSarkar for wideband accuracy, and assign these materials to various RF components and custom PCB structures.
What it does
- Defines dielectric substrate properties including permittivity, loss tangent, and thickness.
- Configures metal conductor properties such as conductivity and thickness for loss modeling.
- Constructs multi-layer dielectric stackups for complex PCB designs.
- Implements frequency-dependent dispersion models for wideband simulation accuracy.
- Provides access to built-in material catalogs for dielectrics and metals.
- Guides the assignment of material objects to RF components and custom pcbComponent structures.
When to use it
- When setting up the material foundation for a new RF PCB design project.
- When you need to define custom substrate materials not found in the standard catalog.
- When modeling multi-layer PCB stackups for stripline or embedded designs.
- When you need to account for frequency-dependent material losses in wideband simulations.
- When assigning realistic conductor materials to ensure accurate loss modeling.
Advantages
- Ensures physically consistent simulation results using causal dispersion models.
- Simplifies the transition from catalog materials to custom datasheet-based properties.
- Provides clear syntax for handling multi-layer dielectric configurations.
- Facilitates accurate loss modeling by replacing default perfect conductors with real-world materials.
Usage examples
- “How do I define a custom Rogers 4350B substrate in MATLAB?”
- The agent provides the dielectric constructor syntax: sub = dielectric(Name='Rogers4350B', EpsilonR=3.66, LossTangent=0.0037, Thickness=0.508e-3);
- “How do I set up a multi-layer dielectric stack for a PCB?”
- The agent explains using a cell array for names and vector properties for thickness, such as sub = dielectric(Name={'FR4','Foam','FR4'}, EpsilonR=[4.4 1.05 4.4], Thickness=[0.4e-3 0.8e-3 0.4e-3]);
- “How can I model frequency-dependent losses for my substrate?”
- The agent shows how to set the Frequency and FrequencyModel properties to 'DjordjevicSarkar' to enable wideband causal modeling.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/matlab/matlab-manage-pcb-material/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip matlab-manage-pcb-material.zip -d .agents/skills
Documentation by MathWorks
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-layoutRunning EM analysis after materials are defined — use
matlab-analyze-emDesigning 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
This skill: Define substrate, conductor, and stackup — typically the first step in any RF PCB design
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
| 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
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
| 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
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, CommentsCreating 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-6Available 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, CommentsAssigning 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 Range | Recommended Model | Use Case |
|---|---|---|
| DC -- 1 GHz | Constant (default) | Low-frequency, quick estimates |
| 1 -- 40 GHz | DjordjevicSarkar | Most RF PCB designs, FR4/Rogers |
| Broadband with vendor data | TableDriven | Import manufacturer permittivity vs. frequency curves |
| Wideband model fitting | MeanDjordjevicSarkar | Averaged 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)
| Material | EpsilonR | LossTangent | Freq (Hz) | Notes |
|---|---|---|---|---|
| FR4 | 4.8 | 0.026 | 1e8 | Standard PCB |
| Teflon | 2.1 | 0.0002 | 1e8 | Low-loss PTFE |
| Foam | 1.03 | 0.00015 | 5e7 | Air-like spacer |
| RO4725JXR | 2.55 | 0.0022 | 2.5e9 | Rogers, halogen-free |
| RO4730JXR | 3.0 | 0.0023 | 2.5e9 | Rogers, halogen-free |
| TMM10 | 9.8 | 0.0022 | 1e10 | Ceramic-filled PTFE |
| Taconic RF-35 | 3.5 | 0.0018 | 1.9e9 | Low-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)
| Metal | Conductivity (S/m) | Catalog Thickness | Notes |
|---|---|---|---|
| PEC | Inf | 0 | Perfect conductor (default) |
| Copper | 5.96e7 | 35.56 μm (1.4 mil, 1 oz) | Most common |
| Aluminium | 3.77e7 | 762 μm (30 mil) | |
| Gold | 4.11e7 | 0.2 μm | Plating |
| Silver | 6.3e7 | 0.2 μm | Highest conductivity |
Pitfalls
Set BoardThickness before Layers:
pcbComponent.BoardThicknessmust equal the sum of all dielectric thicknesses. Always assignBoardThicknessbeforeLayers— reversing the order triggers a warning and silently overwrites dielectric thicknesses.Default conductor is PEC: If you don't assign a
Conductor, components use perfect electric conductor (lossless). Always assignmetal("Copper")for realistic loss modeling.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. Callingdielectric("RO4003C")will error.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.Units are always SI: Thickness in meters (not mm or mils). A 1.6 mm board is
1.6e-3, not1.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.Named catalog dielectrics are single-layer:
dielectric("FR4")creates a 1-layer object with fixed catalog properties. For multi-layer pcbComponent stacks, create separate unnameddielectricobjects with explicitEpsilonR,LossTangent, and scalarThicknessfor each layer. Do NOT use a named catalog entry when you need to control per-layer thickness in aLayerscell array.Dielectric layer count for
viaSingleEnded: When building a multi-layer substrate forviaSingleEnded, 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 theviaSingleEnded(N)constructor, soldermask layers are added automatically — seematlab-model-viaPitfall #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 structuresmatlab-analyze-em— How material properties affect solver accuracymatlab-design-pcb-transmission-line— Substrate selection for impedance control
Copyright 2026 The MathWorks, Inc.
Files
- ATTRIBUTION.mdAdded by AutoGineer1.0 KiB
- LICENSELicence file added by AutoGineer1.4 KiB
- SKILL.md12.3 KiB
- 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-layoutRunning EM analysis after materials are defined — use
matlab-analyze-emDesigning 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
This skill: Define substrate, conductor, and stackup — typically the first step in any RF PCB design
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
| 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
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
| 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
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, CommentsCreating 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-6Available 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, CommentsAssigning 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 Range | Recommended Model | Use Case |
|---|---|---|
| DC -- 1 GHz | Constant (default) | Low-frequency, quick estimates |
| 1 -- 40 GHz | DjordjevicSarkar | Most RF PCB designs, FR4/Rogers |
| Broadband with vendor data | TableDriven | Import manufacturer permittivity vs. frequency curves |
| Wideband model fitting | MeanDjordjevicSarkar | Averaged 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)
| Material | EpsilonR | LossTangent | Freq (Hz) | Notes |
|---|---|---|---|---|
| FR4 | 4.8 | 0.026 | 1e8 | Standard PCB |
| Teflon | 2.1 | 0.0002 | 1e8 | Low-loss PTFE |
| Foam | 1.03 | 0.00015 | 5e7 | Air-like spacer |
| RO4725JXR | 2.55 | 0.0022 | 2.5e9 | Rogers, halogen-free |
| RO4730JXR | 3.0 | 0.0023 | 2.5e9 | Rogers, halogen-free |
| TMM10 | 9.8 | 0.0022 | 1e10 | Ceramic-filled PTFE |
| Taconic RF-35 | 3.5 | 0.0018 | 1.9e9 | Low-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)
| Metal | Conductivity (S/m) | Catalog Thickness | Notes |
|---|---|---|---|
| PEC | Inf | 0 | Perfect conductor (default) |
| Copper | 5.96e7 | 35.56 μm (1.4 mil, 1 oz) | Most common |
| Aluminium | 3.77e7 | 762 μm (30 mil) | |
| Gold | 4.11e7 | 0.2 μm | Plating |
| Silver | 6.3e7 | 0.2 μm | Highest conductivity |
Pitfalls
Set BoardThickness before Layers:
pcbComponent.BoardThicknessmust equal the sum of all dielectric thicknesses. Always assignBoardThicknessbeforeLayers— reversing the order triggers a warning and silently overwrites dielectric thicknesses.Default conductor is PEC: If you don't assign a
Conductor, components use perfect electric conductor (lossless). Always assignmetal("Copper")for realistic loss modeling.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. Callingdielectric("RO4003C")will error.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.Units are always SI: Thickness in meters (not mm or mils). A 1.6 mm board is
1.6e-3, not1.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.Named catalog dielectrics are single-layer:
dielectric("FR4")creates a 1-layer object with fixed catalog properties. For multi-layer pcbComponent stacks, create separate unnameddielectricobjects with explicitEpsilonR,LossTangent, and scalarThicknessfor each layer. Do NOT use a named catalog entry when you need to control per-layer thickness in aLayerscell array.Dielectric layer count for
viaSingleEnded: When building a multi-layer substrate forviaSingleEnded, 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 theviaSingleEnded(N)constructor, soldermask layers are added automatically — seematlab-model-viaPitfall #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 structuresmatlab-analyze-em— How material properties affect solver accuracymatlab-design-pcb-transmission-line— Substrate selection for impedance control
Copyright 2026 The MathWorks, Inc.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- MathWorks
- Publisher
- MathWorks (Official)
- Source
- matlab/matlab-agentic-toolkit · skills-catalog/rf-and-mixed-signal/matlab-manage-pcb-material · commit 2a7f215
- Licence
- BSD 2-Clause License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE.md)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by MathWorks.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download matlab-manage-pcb-material.zip