关于 matlab-design-antenna
面向 MATLAB 用户的 Antenna Toolbox 天线与阵列设计技能,涵盖目录天线、自定义几何、PCB、阵列及优化工作流,并可使用 AI 代理模型探索设计。
主要功能
- 01设计并分析目录天线
- 02构建自定义与 PCB 天线
- 03设计阵列并分析波束
- 04使用 AI 代理模型探索
- 05优化天线尺寸与性能
适用场景
- 01按目标频率设计目录天线
- 02为 PCB 天线创建版图并导出 Gerber
- 03评估阵列波束转向与互耦
- 04探索参数并优化天线指标
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ matlab/ matlab-agentic-toolkit --skill matlab-design-antenna安装后在 Claude Code 中输入/matlab-design-antenna确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
manifest.yamlreferences/ai-antenna-workflows.mdarrays.mdcatalog-antennas.mdcustom-antennas.mdoptimization.mdpcb-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. 目录天线设计
- 解析 — 确定天线类型、频率、基板和约束条件
- 创建 — 设置基板(如有),调用
design(ant, freq) - 网格划分 — 对基板天线使用
mesh(ant, MaxEdgeLength=lambda/8) - 分析 — 阻抗、S 参数、3D 方向图,以及使用
polarpattern绘制的 2D 切面 - 报告 — 列出关键指标及单位(Z、BW、增益、波束宽度)
2. 自定义天线设计
- 构建形状 — 使用
shape.*基元(Rectangle、Box、Cylinder、Polygon) - 变换 — 使用
translate、rotate、scale(处理对象时请先复制) - 组合 — 布尔运算:
+(并集)、-(相减)、&(交集) - 拉伸 — 使用
extrudeLinear(锥形)或extrudeRotate(旋转体) - 组装 — 使用
customAntenna(Shape=...)、createFeed(ant, loc, numEdges) - 网格划分与分析 — 使用
mesh(ant, MaxEdgeLength=lambda/6),分析阻抗和方向图
3. PCB 天线设计
- 定义层叠结构 — 使用
pcbStack,先设置BoardThickness,再设置Layers - 创建图形 — 使用布尔运算组合
antenna.*形状 - 配置馈电 — 设置
FeedLocations = [x, y, sigLayer, gndLayer] - 分析 — S 参数(使用
SweepOption="interp")和方向图 - 导出 — 使用 PCBWriter、PCBServices、PCBConnectors 和
gerberWrite
4. 阵列设计
- 构建阵列 — 设置类型、尺寸/单元,然后调用
design(arr, freq, element) - 波束扫描 — 有限阵列使用
phaseShift(),无限阵列使用ScanAzimuth/ScanElevation - 加权 — 使用
AmplitudeTaper(矩形阵列按列优先排列) - 分析 —
arrayFactor(快速)→patternMultiply→pattern(精确) - 耦合 — 使用
sparameters、correlation和隔离度指标
5. AI 加速设计
- 创建 — 对支持的类型使用
design(ant, freq, ForAI=true) - 探索 — 使用
tunableRanges、参数扫描、resonantFrequency、bandwidth - 验证 — 使用
exportAntenna+ 全波阻抗/方向图分析 - 重建 — 根据 2D 切片使用
patternFromAI(行向量,间隔 1 度)
6. 优化
- 制定方案 — 选择目标函数、设计变量、边界和约束条件
- 选择层级 — 目录天线 + 内置目标函数 → Tier 1;否则 → Tier 2
- 运行 — 使用
optimize()或OptimizerSADEA/OptimizerTRSADEA - 提取结果 — 使用
getBestMemberData、showConvergenceTrend、isConverged - 验证 — 对优化后的设计执行完整分析扫描
关键类
| 类 | 用途 |
|---|---|
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