mcpField
M
matlab-design-antenna

matlab-design-antenna

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

关于 matlab-design-antenna

面向 MATLAB 用户的 Antenna Toolbox 天线与阵列设计技能,涵盖目录天线、自定义几何、PCB、阵列及优化工作流,并可使用 AI 代理模型探索设计。

主要功能

  1. 01设计并分析目录天线
  2. 02构建自定义与 PCB 天线
  3. 03设计阵列并分析波束
  4. 04使用 AI 代理模型探索
  5. 05优化天线尺寸与性能

适用场景

  1. 01按目标频率设计目录天线
  2. 02为 PCB 天线创建版图并导出 Gerber
  3. 03评估阵列波束转向与互耦
  4. 04探索参数并优化天线指标

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/matlab/matlab-agentic-toolkit --skill matlab-design-antenna

安装后在 Claude Code 中输入/matlab-design-antenna确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

manifest.yaml
references/
ai-antenna-workflows.md
arrays.md
catalog-antennas.md
custom-antennas.md
optimization.md
pcb-antennas.md

详细介绍

天线与阵列设计

使用 MATLAB Antenna Toolbox 设计、分析和优化天线与阵列 — 从目录中的单元到自定义形状、PCB 制造、AI 加速探索 和代理模型辅助优化。

适用场景

目录天线设计

  • 设计指定频率下的标准天线(偶极子、贴片、喇叭、螺旋、八木等)
  • 分析辐射方向图(3D、2D 切面、极化、波束宽度、旁瓣)
  • 计算阻抗、S 参数或回波损耗
  • 设计前设置基板材料
  • 比较不同天线或频率下的方向图

自定义天线设计

  • 使用几何图元(shape.*)构建目录中没有的天线
  • 通过拉伸构建 3D 结构(波导、喇叭、腔体)
  • 导入 STL/CAD 几何体并添加馈电
  • 为自定义结构配置间隙馈电或探针馈电

PCB 天线设计

  • 构建多层 PCB 天线叠层(pcbStack)
  • 使用布尔运算创建自定义金属图案(antenna.*)
  • 配置探针馈电、边缘馈电或孔径耦合馈电
  • 导出 Gerber 文件以供制造
  • 将目录天线转换为 pcbStack

阵列设计

  • 设计线性、矩形、圆形或共形阵列
  • 波束扫描、幅度加权、栅瓣分析
  • 无限阵列分析(扫描阻抗、扫描盲区、Floquet 边界条件)
  • MIMO/手机多天线隔离度和 ECC
  • 互耦分析

AI 加速设计

  • 使用 AIAntenna 代理模型快速进行参数扫描
  • 从 2D 切片重建 3D 方向图(patternFromAI)
  • 全因子设计空间探索
  • 导出经 AI 调优的设计以进行全波验证

优化

  • 优化天线尺寸,以提升增益、带宽、SLL 或 F/B 比
  • 使用内置的 optimize(),通过字符串目标优化目录天线
  • 使用自定义评估函数,为 pcbStack/customAntenna 执行 SADEA/TR-SADEA
  • 几何约束(线性和非线性)

不适用场景

  • 反射面天线、反射阵、安装天线或 RCS — 请使用 matlab-analyze-antenna-structures
  • 阻抗匹配网络、measuredAntenna、RF 传播或 SAR — 请使用 matlab-integrate-antenna

必须遵循的规则

目录天线
  • 优先使用目录天线,而不是 customAntenna — 只有在没有目录天线或系统天线符合所需几何形状时,才使用 customAntenna
  • 始终使用 design(),除非用户提供了明确尺寸,或天线不支持 design()
  • 在 design() 之前设置基板 — design() 会根据基板调整尺寸
  • design() 后、分析前,对基板天线使用 lambda/8 网格
  • 仅在基板天线的 sparameters 中使用 SweepOption="interp"(不要用于 impedance)
自定义天线(customAntenna)
  • 与 customAntenna 搭配使用 shape.* 命名空间(不要使用 antenna.*)
  • 所有尺寸均以米为单位 — 不要使用 mm 或 cm
  • 始终定义馈电 — 未使用 createFeed 的 customAntenna 无法进行分析
  • 馈电必须位于几何不连续处 — 不要放在平板中间
  • 先拉伸,再旋转 — extrudeLinear 要求形状位于 XY 平面
  • 形状是句柄对象 — 变换前使用 copy() 保留副本
PCB 天线(pcbStack)
  • 先设置 BoardThickness,再设置 Layers — 否则电介质厚度会不正确
  • pcbStack 金属图案使用 antenna.* 命名空间(不要使用 shape.*)
  • 层索引对应元胞数组中的位置 — 在 {M,D,M} 中,地层索引为 3
  • design() 不适用于 pcbStack — 先设计目录天线,再进行转换
  • Gerber 的 Filename 必须是 char('single quotes'),不能是 "string"
阵列
  • 始终将单元作为第 3 个参数传入 design(arr, freq, element) — 省略时会重置为偶极子
  • rectangularArray 的 AmplitudeTaper 按列优先顺序排列
  • 无限阵列没有 NumElements/ElementSpacing — 单元尺寸等于地平面尺寸
  • 有限阵列扫描使用 phaseShift(),无限阵列扫描使用 ScanAzimuth/ScanElevation
AI 工作流
  • 使用 design(..., ForAI=true) — 不支持直接构造 em.ai.AIAntenna()
  • 只有 12 种天线类型拥有预训练 AI 模型
  • patternFromAI 的输入切片必须是行向量,且间隔为 1 度整数
  • 始终验证 AI 预测结果:使用 exportAntenna + 全波仿真
优化
  • 从 design() 开始,获取物理上合理的初始尺寸
  • Tier 1 边界:单元数组 {lb1,lb2; ub1,ub2},Tier 2 边界:数值矩阵 [lb;ub]
  • 在自定义评估函数中,对最大化指标取负值(SADEA 执行最小化)
  • 使用 try/catch 包装自定义评估函数——几何无效时返回 1e6 惩罚值
  • 显式设置 FrequencyRange 以优化带宽(默认值 +/-5% 可能与目标不符)

工作流

1. 目录天线设计
  1. 解析 — 确定天线类型、频率、基板和约束条件
  2. 创建 — 设置基板(如有),调用 design(ant, freq)
  3. 网格划分 — 对基板天线使用 mesh(ant, MaxEdgeLength=lambda/8)
  4. 分析 — 阻抗、S 参数、3D 方向图,以及使用 polarpattern 绘制的 2D 切面
  5. 报告 — 列出关键指标及单位(Z、BW、增益、波束宽度)
2. 自定义天线设计
  1. 构建形状 — 使用 shape.* 基元(Rectangle、Box、Cylinder、Polygon)
  2. 变换 — 使用 translate、rotate、scale(处理对象时请先复制)
  3. 组合 — 布尔运算:+(并集)、-(相减)、&(交集)
  4. 拉伸 — 使用 extrudeLinear(锥形)或 extrudeRotate(旋转体)
  5. 组装 — 使用 customAntenna(Shape=...)、createFeed(ant, loc, numEdges)
  6. 网格划分与分析 — 使用 mesh(ant, MaxEdgeLength=lambda/6),分析阻抗和方向图
3. PCB 天线设计
  1. 定义层叠结构 — 使用 pcbStack,先设置 BoardThickness,再设置 Layers
  2. 创建图形 — 使用布尔运算组合 antenna.* 形状
  3. 配置馈电 — 设置 FeedLocations = [x, y, sigLayer, gndLayer]
  4. 分析 — S 参数(使用 SweepOption="interp")和方向图
  5. 导出 — 使用 PCBWriter、PCBServices、PCBConnectors 和 gerberWrite
4. 阵列设计
  1. 构建阵列 — 设置类型、尺寸/单元,然后调用 design(arr, freq, element)
  2. 波束扫描 — 有限阵列使用 phaseShift(),无限阵列使用 ScanAzimuth/ScanElevation
  3. 加权 — 使用 AmplitudeTaper(矩形阵列按列优先排列)
  4. 分析 — arrayFactor(快速)→ patternMultiply → pattern(精确)
  5. 耦合 — 使用 sparameters、correlation 和隔离度指标
5. AI 加速设计
  1. 创建 — 对支持的类型使用 design(ant, freq, ForAI=true)
  2. 探索 — 使用 tunableRanges、参数扫描、resonantFrequency、bandwidth
  3. 验证 — 使用 exportAntenna + 全波阻抗/方向图分析
  4. 重建 — 根据 2D 切片使用 patternFromAI(行向量,间隔 1 度)
6. 优化
  1. 制定方案 — 选择目标函数、设计变量、边界和约束条件
  2. 选择层级 — 目录天线 + 内置目标函数 → Tier 1;否则 → Tier 2
  3. 运行 — 使用 optimize() 或 OptimizerSADEA/OptimizerTRSADEA
  4. 提取结果 — 使用 getBestMemberData、showConvergenceTrend、isConverged
  5. 验证 — 对优化后的设计执行完整分析扫描

关键类

类用途
design()将目录天线缩放至指定频率
customAntenna根据 shape.* 基元构建任意几何形状
pcbStack使用 antenna.* 形状构建多层 PCB 天线
linearArray / rectangularArray / circularArray有限阵列
conformalArray任意单元位置(MIMO、自定义阵列)
infiniteArray使用 Floquet 边界条件的单元
em.ai.AIAntenna用于即时预测的预训练代理模型
patternFromAI根据 2D 切片生成 3D 方向图
optimize()用于目录天线的内置 SADEA
OptimizerSADEA / OptimizerTRSADEA自定义优化

约定

编码规范
  • 使用 4 个空格缩进,变量采用 lowerCamelCase,名称-值参数采用 UpperCamelCase
  • 字符串使用 "double quotes"(Gerber 的 Filename 除外,它要求使用 'char')
  • 使用 fprintf 输出格式化内容
  • 不要为 Antenna Toolbox 绘图添加标题(pattern、show、rfplot、impedance)
  • 手动创建的 plot 图必须添加标题,polarpattern 必须添加 TitleTop
  • 所有绘图都应显示在单独的图窗中。所有输出都应包含单位。
  • 使用 physconst("LightSpeed")——切勿将 3e8 硬编码
脚本优先工作流

对于设计、分析或扫描任务,将代码写入 .m 文件,通过 run_matlab_file 运行,并通过编辑后重新运行来迭代。快速的一次性检查请使用内联 evaluate_matlab_code。

参考资料
加载时机参考资料
设计目录天线(类型、design()、基板、方向图)references/catalog-antennas.md
构建自定义天线(shape.*、拉伸、馈电、基板)references/custom-antennas.md
设计 PCB 天线(pcbStack、层、布尔运算、Gerber)references/pcb-antennas.md
设计阵列(有限、无限、波束转向、渐变、MIMO)references/arrays.md
AI 设计探索(AIAntenna、patternFromAI、代理模型)references/ai-antenna-workflows.md
优化天线(SADEA、边界、约束、自定义评估)references/optimization.md

版权所有 2026 The MathWorks, Inc.

评论

支持 Markdown