关于 matlab-manage-pcb-material
这是一项用于 RF PCB Toolbox 的 MATLAB 技能,可在设计中定义介电材料和导体材料。它帮助 RF PCB 设计者选择目录或自定义材料、构建多层基板,并建模随频率变化的介电属性。
主要功能
- 01创建目录或自定义介电材料
- 02定义导体材料
- 03构建多层基板
- 04配置介电色散模型
- 05浏览材料目录及属性
适用场景
- 01为 RF PCB 元件设置材料
- 02建模多层介电堆叠
- 03表示随频率变化的基板损耗
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ matlab/ matlab-agentic-toolkit --skill matlab-manage-pcb-material安装后在 Claude Code 中输入/matlab-manage-pcb-material确认已加载。
附带文件manifest.yaml
详细介绍
管理 RF PCB Toolbox 的材料
适用场景
- 为传输线、滤波器、耦合器或自定义 pcbComponent 设计创建介电基板
- 选择金属(铜、金等),以便逼真地模拟导体损耗
- 为带状线或嵌入式设计构建多层介电叠层
- 为宽带精度选择与频率相关的色散模型(DjordjevicSarkar)
- 查询目录材料属性或添加自定义材料
不适用场景
- 构建 PCB 本身的层结构——请使用
matlab-assemble-pcb-layout - 定义材料后运行 EM 分析——请使用
matlab-analyze-em - 设计需要基板的传输线——请使用
matlab-design-pcb-transmission-line(该工具会引用此技能获取材料详情) - 从现有电路板文件导入材料属性——请使用
matlab-read-pcb-layout
典型工作流
- 此技能: 定义基板、导体和叠层——通常是任何 RF PCB 设计的第一步
- 之后: 使用任何设计技能(
matlab-design-pcb-filter、matlab-design-pcb-transmission-line、matlab-assemble-pcb-layout、matlab-model-via)——将材料传递给组件
快速参考
| 任务 | 代码 |
|---|---|
| 目录介电材料 | sub = dielectric("FR4") |
| 自定义介电材料 | sub = dielectric(Name="MyMat", EpsilonR=4.4, LossTangent=0.02, Thickness=1.6e-3) |
| 多层介电材料 | sub = dielectric("FR4","Teflon"); sub.Thickness = [0.8e-3 0.4e-3] |
| 目录金属 | cond = metal("Copper") |
| 自定义金属 | cond = metal(Name="MyMetal", Conductivity=5.8e7, Thickness=35e-6) |
| 浏览介电材料 | DielectricCatalog |
| 浏览金属 | MetalCatalog |
| 与频率相关 | sub = dielectric(..., Frequency=1e9) |
| 获取指定频率下的属性 | [epsr, tand, f] = getMaterialProperties(sub, freqVector) |
创建介电材料
dielectric 对象用于定义基板属性。可从内置目录创建,也可指定自定义参数。
从目录创建
sub = dielectric("FR4");
sub = dielectric("Teflon");
sub = dielectric("RO4730JXR");
sub = dielectric("TMM10");
查看目录中的所有名称:
dc = DielectricCatalog;
disp(dc.Materials)
可用目录名称(R2026a):Air、FR4、Teflon、Foam、Polystyrene、Plexiglas、Fused quartz、E glass、RO4725JXR、RO4730JXR、TMM3、TMM4、TMM6、TMM10、TMM10i、Taconic RF-35。如果列表中没有所需材料,可使用 add(dc, ...) 添加自定义材料。
自定义属性
sub = dielectric(Name="Rogers4350B", EpsilonR=3.66, LossTangent=0.0037, Thickness=0.508e-3);
主要属性
| 属性 | 说明 | 单位 |
|---|---|---|
Name | 材料标识符 | 字符串 |
EpsilonR | 相对介电常数 | 无量纲 |
LossTangent | 介电损耗角正切(tan δ) | 无量纲 |
Thickness | 层厚度 | 米 |
Frequency | 损耗角正切的参考频率 | Hz |
FrequencyModel | 'Constant'、'DjordjevicSarkar'、'MeanDjordjevicSarkar' 或 'TableDriven' | — |
浏览目录
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
创建金属
metal 对象用于定义导体属性。
从目录创建
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
可用目录金属(R2026a):PEC、Copper、Aluminium、Gold、Silver、Zinc、Tungsten、Lead、Iron、Steel、Brass。
自定义属性
cond = metal(Name="ThickCopper", Conductivity=5.8e7, Thickness=70e-6);
浏览目录
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
分配给组件
mline = microstripLine;
mline.Conductor = metal("Copper");
多层基板
许多 RF PCB 组件支持多层介电叠层。传入多个材料名称,或使用向量属性。
简写语法(目录名称)
sub = dielectric("FR4", "Teflon");
sub.Thickness = [0.0016 0.0008];
显式指定多层结构
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]);
重要: Name 请使用元胞数组 {...},不要使用字符串数组 [...]。字符串数组拼接(["FR4","Foam"])会生成单个字符串 "FR4Foam",而不是包含多个元素的数组。
分配给组件
balun = balunMarchand;
balun.Height = 0.0016;
balun.Substrate = sub;
show(balun);
所有具有 Substrate 或 Height 属性的目录组件(传输线、滤波器、耦合器、分路器等)均支持多层基板。
pcbComponent 中的介质
使用 pcbComponent 构建自定义结构时,介质会作为层出现在 Layers 元胞数组中:
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};
对于多介质 pcbComponent 堆叠(5 层):
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};
频率相关损耗模型
为实现精确的宽带建模,请为损耗角正切指定参考频率:
sub = dielectric(Name="FR4", EpsilonR=4.4, LossTangent=0.02, ...
Thickness=1.6e-3, Frequency=1e9);
指定 Frequency 后,FrequencyModel 属性会自动变为 'DjordjevicSarkar'。该因果模型会在整个分析带宽内外推介电常数和损耗角正切,从而确保结果符合物理规律。如果未指定 Frequency,模型将使用 'Constant'(与频率无关)。
可用的色散模型:
"Constant"——(默认)介电常数和损耗角正切与频率无关"DjordjevicSarkar"—— 宽带因果模型,最适合 PCB 基板"MeanDjordjevicSarkar"—— DjordjevicSarkar 的平均版本"TableDriven"—— 用户提供的厂商数据手册中的频率相关数据
频率模型选择指南
| 频率范围 | 推荐模型 | 用途 |
|---|---|---|
| DC — 1 GHz | Constant(默认) | 低频、快速估算 |
| 1 — 40 GHz | DjordjevicSarkar | 大多数 RF PCB 设计、FR4/Rogers |
| 厂商提供宽带数据 | TableDriven | 导入制造商提供的介电常数随频率变化曲线 |
| 宽带模型拟合 | MeanDjordjevicSarkar | 用于宽带扫描的平均因果模型 |
查询感知色散的属性
使用 getMaterialProperties() 计算特定频率下的介电常数和损耗角正切,并考虑当前启用的色散模型:
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)");
常见材料参数
介质目录值(R2026a)
| 材料 | EpsilonR | LossTangent | 频率(Hz) | 备注 |
|---|---|---|---|---|
| FR4 | 4.8 | 0.026 | 1e8 | 标准 PCB |
| Teflon | 2.1 | 0.0002 | 1e8 | 低损耗 PTFE |
| Foam | 1.03 | 0.00015 | 5e7 | 类似空气的间隔层 |
| RO4725JXR | 2.55 | 0.0022 | 2.5e9 | Rogers,无卤 |
| RO4730JXR | 3.0 | 0.0023 | 2.5e9 | Rogers,无卤 |
| TMM10 | 9.8 | 0.0022 | 1e10 | 陶瓷填充 PTFE |
| Taconic RF-35 | 3.5 | 0.0018 | 1.9e9 | 低损耗 RF |
目录中未包含、必须手动创建的材料:
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);
金属目录值(R2026a)
| 金属 | 电导率(S/m) | 目录厚度 | 备注 |
|---|---|---|---|
| PEC | Inf | 0 | 理想导体(默认) |
| Copper | 5.96e7 | 35.56 μm(1.4 mil,1 oz) | 最常见 |
| Aluminium | 3.77e7 | 762 μm(30 mil) | |
| Gold | 4.11e7 | 0.2 μm | 镀层 |
| Silver | 6.3e7 | 0.2 μm | 电导率最高 |
注意事项
-
先设置 BoardThickness,再设置 Layers:
pcbComponent.BoardThickness必须等于所有介质厚度之和。始终先设置BoardThickness,再设置Layers——反过来设置会触发警告,并静默覆盖介质厚度。 -
默认导体为 PEC:如果不指定
Conductor,组件会使用理想电导体(无损)。要真实模拟损耗,务必指定metal("Copper")。 -
目录中没有大多数 Rogers 材料:
DielectricCatalog中只有 RO4725JXR 和 RO4730JXR。RO4003C、RO4350B 和 RO3003 等常见基板必须根据数据手册中的数值手动创建。调用dielectric("RO4003C")会报错。 -
多层结构的 Thickness 必须与元素数量一致:使用向量形式的
Thickness时,元素数量必须与名称或 EpsilonR 值的数量相等。长度不匹配会报错。 -
单位始终为 SI 单位:厚度以米为单位(不是 mm 或 mil)。1.6 mm 的电路板应写为
1.6e-3,而不是1.6。 -
FrequencyModel 可以在设计完成后设置。
design()使用默认的常数介质创建组件后,可以切换为 DjordjevicSarkar:obj.Substrate.FrequencyModel = 'DjordjevicSarkar'; obj.Substrate.Frequency = 1e9;。当设计步骤不接受频率相关基板时,这种方法很有用。 -
命名的目录介质为单层介质:
dielectric("FR4")会创建一个具有固定目录属性的 1 层对象。对于多层 pcbComponent 叠层,请为每一层分别创建未命名的dielectric对象,并明确指定EpsilonR、LossTangent和标量Thickness。如果需要在Layers单元格数组中控制每层厚度,请勿使用命名的目录条目。 -
viaSingleEnded的介质层数:为viaSingleEnded构建多层基板时,介质层数必须等于叠层中导电层数 N-1(例如,Signal=[1 5]、Ground=[3 7] → 4 个金属层 → 3 个介质层)。使用viaSingleEnded(N)构造函数时,会自动添加阻焊层——具体要求请参阅matlab-model-via的注意事项 #17。所有介质属性数组(Name、EpsilonR、LossTangent、Thickness、Frequency)的大小都必须一致。
相关技能
matlab-assemble-pcb-layout— 在自定义 pcbComponent 结构中使用材料matlab-analyze-em— 材料属性如何影响求解器精度matlab-design-pcb-transmission-line— 用于阻抗控制的基板选择
版权所有 2026 The MathWorks, Inc.