mcpField
M
matlab-manage-pcb-material

matlab-manage-pcb-material

github.com/matlab其他1.2k72 次安装1 天前更新
代码仓库

关于 matlab-manage-pcb-material

这是一项用于 RF PCB Toolbox 的 MATLAB 技能,可在设计中定义介电材料和导体材料。它帮助 RF PCB 设计者选择目录或自定义材料、构建多层基板,并建模随频率变化的介电属性。

主要功能

  1. 01创建目录或自定义介电材料
  2. 02定义导体材料
  3. 03构建多层基板
  4. 04配置介电色散模型
  5. 05浏览材料目录及属性

适用场景

  1. 01为 RF PCB 元件设置材料
  2. 02建模多层介电堆叠
  3. 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

典型工作流

  1. 此技能: 定义基板、导体和叠层——通常是任何 RF PCB 设计的第一步
  2. 之后: 使用任何设计技能(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 GHzConstant(默认)低频、快速估算
1 — 40 GHzDjordjevicSarkar大多数 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)
材料EpsilonRLossTangent频率(Hz)备注
FR44.80.0261e8标准 PCB
Teflon2.10.00021e8低损耗 PTFE
Foam1.030.000155e7类似空气的间隔层
RO4725JXR2.550.00222.5e9Rogers,无卤
RO4730JXR3.00.00232.5e9Rogers,无卤
TMM109.80.00221e10陶瓷填充 PTFE
Taconic RF-353.50.00181.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)目录厚度备注
PECInf0理想导体(默认)
Copper5.96e735.56 μm(1.4 mil,1 oz)最常见
Aluminium3.77e7762 μm(30 mil)
Gold4.11e70.2 μm镀层
Silver6.3e70.2 μm电导率最高

注意事项

  1. 先设置 BoardThickness,再设置 Layers:pcbComponent.BoardThickness 必须等于所有介质厚度之和。始终先设置 BoardThickness,再设置 Layers——反过来设置会触发警告,并静默覆盖介质厚度。

  2. 默认导体为 PEC:如果不指定 Conductor,组件会使用理想电导体(无损)。要真实模拟损耗,务必指定 metal("Copper")。

  3. 目录中没有大多数 Rogers 材料:DielectricCatalog 中只有 RO4725JXR 和 RO4730JXR。RO4003C、RO4350B 和 RO3003 等常见基板必须根据数据手册中的数值手动创建。调用 dielectric("RO4003C") 会报错。

  4. 多层结构的 Thickness 必须与元素数量一致:使用向量形式的 Thickness 时,元素数量必须与名称或 EpsilonR 值的数量相等。长度不匹配会报错。

  5. 单位始终为 SI 单位:厚度以米为单位(不是 mm 或 mil)。1.6 mm 的电路板应写为 1.6e-3,而不是 1.6。

  6. FrequencyModel 可以在设计完成后设置。 design() 使用默认的常数介质创建组件后,可以切换为 DjordjevicSarkar:obj.Substrate.FrequencyModel = 'DjordjevicSarkar'; obj.Substrate.Frequency = 1e9;。当设计步骤不接受频率相关基板时,这种方法很有用。

  7. 命名的目录介质为单层介质:dielectric("FR4") 会创建一个具有固定目录属性的 1 层对象。对于多层 pcbComponent 叠层,请为每一层分别创建未命名的 dielectric 对象,并明确指定 EpsilonR、LossTangent 和标量 Thickness。如果需要在 Layers 单元格数组中控制每层厚度,请勿使用命名的目录条目。

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

评论

支持 Markdown