matlab-design-antenna
GitHub使用 MATLAB Antenna Toolbox 进行天线及阵列的设计、建模、分析与优化。涵盖目录天线、自定义几何结构、PCB 天线、AI 加速探索及多种优化算法,适用于天线创建与仿真任务。
Trigger Scenarios
Install
npx skills add matlab/matlab-agentic-toolkit --skill matlab-design-antenna -g -y
SKILL.md
Frontmatter
{
"name": "matlab-design-antenna",
"license": "https:\/\/www.mathworks.com\/content\/dam\/mathworks\/license\/pmrl\/license.md",
"metadata": {
"author": "MathWorks",
"version": "2.0"
},
"description": "Design antennas, arrays, and PCB antennas using MATLAB Antenna Toolbox. Covers catalog antenna design and pattern analysis, custom antenna construction (customAntenna + shape.*), PCB antenna design (pcbStack + antenna.*), finite and infinite array design, AI-accelerated design exploration (AIAntenna, patternFromAI), and optimization (SADEA\/TR-SADEA). Use when the user wants to design, create, model, analyze, optimize, or fabricate an antenna or array.\n"
}
Antenna and Array Design
Design, analyze, and optimize antennas and arrays using MATLAB Antenna Toolbox — from catalog elements to custom shapes, PCB fabrication, AI-accelerated exploration, and surrogate-assisted optimization.
When to Use
Catalog antenna design
- Design a standard antenna at a frequency (dipole, patch, horn, helix, Yagi, etc.)
- Analyze radiation pattern (3D, 2D cuts, polarization, beamwidth, sidelobes)
- Compute impedance, S-parameters, or return loss
- Set substrate material before design
- Compare patterns across antennas or frequencies
Custom antenna design
- Build non-catalog antennas from geometric primitives (shape.*)
- Construct 3D structures (waveguides, horns, cavities) via extrusion
- Import STL/CAD geometry and add feeds
- Configure delta-gap or probe feeds on custom structures
PCB antenna design
- Build multi-layer PCB antenna stackups (pcbStack)
- Create custom metal patterns with boolean operations (antenna.*)
- Configure probe, edge, or aperture-coupled feeds
- Export Gerber files for fabrication
- Convert catalog antennas to pcbStack
Array design
- Design linear, rectangular, circular, or conformal arrays
- Beam steering, amplitude tapering, grating lobe analysis
- Infinite array analysis (scan impedance, scan blindness, Floquet BC)
- MIMO/handset multi-antenna isolation and ECC
- Mutual coupling analysis
AI-accelerated design
- Rapid parametric sweeps with AIAntenna surrogate models
- Reconstruct 3D patterns from 2D slices (patternFromAI)
- Full-factorial design space exploration
- Export AI-tuned designs for full-wave validation
Optimization
- Optimize antenna dimensions for gain, bandwidth, SLL, or F/B ratio
- Built-in optimize() for catalog antennas with string objectives
- SADEA/TR-SADEA with custom evaluation functions for pcbStack/customAntenna
- Geometric constraints (linear and nonlinear)
When NOT to Use
- Reflector antennas, reflectarrays, installed antennas, or RCS — use
matlab-analyze-antenna-structures - Impedance matching networks, measuredAntenna, RF propagation, or SAR — use
matlab-integrate-antenna
Must-Follow Rules
Catalog Antennas
- Prefer catalog antennas over
customAntenna— usecustomAntennaonly when no catalog antenna or system antenna matches the requested geometry - Always use
design()unless user provides explicit dimensions or antenna lacks design() support - Set substrate BEFORE
design()— design() adapts dimensions to the substrate - Mesh at lambda/8 for substrate antennas after design() and before analysis
- Use
SweepOption="interp"only withsparameters(notimpedance) on substrate antennas
Custom Antennas (customAntenna)
- Use
shape.*namespace (NOTantenna.*) withcustomAntenna - All dimensions in meters — not mm or cm
- Always define a feed —
customAntennawithoutcreateFeedcannot be analyzed - Feed must be at a geometric discontinuity — not middle of flat plate
- Extrude first, rotate second —
extrudeLinearrequires XY-plane shapes - Shapes are handle objects — use
copy()to preserve before transforming
PCB Antennas (pcbStack)
- Set
BoardThicknessBEFORELayers— otherwise dielectric gets wrong thickness - Use
antenna.*namespace (NOTshape.*) for pcbStack metal patterns - Layer indices are cell array positions — in
{M,D,M}, ground is index 3 design()does not work on pcbStack — design catalog antenna first, then convert- Gerber
Filenamemust be char ('single quotes'), not "string"
Arrays
- Always pass element as 3rd argument to
design(arr, freq, element)— omitting resets to dipole AmplitudeTaperfor rectangularArray is column-major order- Infinite arrays have no NumElements/ElementSpacing — unit cell = ground plane size
- Use
phaseShift()for finite steering,ScanAzimuth/ScanElevationfor infinite
AI Workflows
- Use
design(..., ForAI=true)— directem.ai.AIAntenna()constructor not supported - Only 12 antenna types have pretrained AI models
- Input slices for
patternFromAImust be row vectors with 1-degree integer spacing - Always validate AI predictions with
exportAntenna+ full-wave simulation
Optimization
- Start from
design()to get physically reasonable initial dimensions - Tier 1 bounds: cell array
{lb1,lb2; ub1,ub2}, Tier 2 bounds: numeric matrix[lb;ub] - Negate metrics for maximization in custom evaluation functions (SADEA minimizes)
- Wrap custom eval in try/catch — return 1e6 penalty for invalid geometry
- Set
FrequencyRangeexplicitly for bandwidth optimization (default +/-5% may not match target)
Workflow
1. Catalog Antenna Design
- Parse — Identify antenna type, frequency, substrate, constraints
- Create — Set substrate (if any), call
design(ant, freq) - Mesh —
mesh(ant, MaxEdgeLength=lambda/8)for substrate antennas - Analyze — Impedance, S-parameters, 3D pattern, 2D cuts with
polarpattern - Report — Key metrics with units (Z, BW, gain, beamwidth)
2. Custom Antenna Design
- Build shapes —
shape.*primitives (Rectangle, Box, Cylinder, Polygon) - Transform —
translate,rotate,scale(handle objects — copy first) - Combine — Boolean:
+(union),-(subtract),&(intersect) - Extrude —
extrudeLinear(taper) orextrudeRotate(revolution) - Assemble —
customAntenna(Shape=...),createFeed(ant, loc, numEdges) - Mesh & analyze —
mesh(ant, MaxEdgeLength=lambda/6), impedance, pattern
3. PCB Antenna Design
- Define stackup —
pcbStack, setBoardThicknessFIRST, thenLayers - Create patterns —
antenna.*shapes with boolean operations - Configure feed —
FeedLocations = [x, y, sigLayer, gndLayer] - Analyze — S-parameters (with
SweepOption="interp"), pattern - Export —
gerberWritewith PCBWriter, PCBServices, PCBConnectors
4. Array Design
- Build array — Set type, size/elements, then
design(arr, freq, element) - Steer —
phaseShift()finite,ScanAzimuth/ScanElevationinfinite - Taper —
AmplitudeTaper(column-major for rectangular) - Analyze —
arrayFactor(fast) →patternMultiply→pattern(accurate) - Coupling —
sparameters,correlation, isolation metrics
5. AI-Accelerated Design
- Create —
design(ant, freq, ForAI=true)for supported types - Explore —
tunableRanges, parametric sweep,resonantFrequency,bandwidth - Validate —
exportAntenna+ full-wave impedance/pattern - Reconstruct —
patternFromAIfrom 2D slices (row vectors, 1-deg spacing)
6. Optimization
- Formulate — Choose objective, design variables, bounds, constraints
- Select tier — Catalog + built-in objective → Tier 1; else → Tier 2
- Run —
optimize()orOptimizerSADEA/OptimizerTRSADEA - Extract —
getBestMemberData,showConvergenceTrend,isConverged - Validate — Full analysis sweep on optimized design
Key Classes
| Class | Purpose |
|---|---|
design() |
Scale catalog antennas to frequency |
customAntenna |
Arbitrary geometry from shape.* primitives |
pcbStack |
Multi-layer PCB antenna with antenna.* shapes |
linearArray / rectangularArray / circularArray |
Finite arrays |
conformalArray |
Arbitrary element positions (MIMO, custom) |
infiniteArray |
Unit cell with Floquet BC |
em.ai.AIAntenna |
Pretrained surrogate for instant prediction |
patternFromAI |
3D pattern from 2D slices |
optimize() |
Built-in SADEA for catalog antennas |
OptimizerSADEA / OptimizerTRSADEA |
Custom optimization |
Conventions
Coding Standards
- 4-space indentation, lowerCamelCase variables, UpperCamelCase Name-Value args
"double quotes"for strings (except GerberFilenamewhich requires'char')fprintffor formatted output- Do not add titles to Antenna Toolbox plots (
pattern,show,rfplot,impedance) - Do add titles to manual
plotfigures andTitleToptopolarpattern - Show all plots in separate figures. Include units in all output.
- Use
physconst("LightSpeed")— never hardcode 3e8
Script-First Workflow
For design, analysis, or sweep tasks — write code to .m files, run via run_matlab_file, iterate by editing and re-running. Use inline evaluate_matlab_code for quick one-off checks.
References
| Load when... | Reference |
|---|---|
| Designing catalog antennas (types, design(), substrate, patterns) | references/catalog-antennas.md |
| Building custom antennas (shape.*, extrusion, feeds, substrate) | references/custom-antennas.md |
| Designing PCB antennas (pcbStack, layers, boolean, Gerber) | references/pcb-antennas.md |
| Designing arrays (finite, infinite, steering, taper, MIMO) | references/arrays.md |
| AI design exploration (AIAntenna, patternFromAI, surrogates) | references/ai-antenna-workflows.md |
| Optimizing antennas (SADEA, bounds, constraints, custom eval) | references/optimization.md |
Copyright 2026 The MathWorks, Inc.
Version History
-
2026.08.13
Current 2026-08-16 07:21
从单一设计分析扩展为完整设计工作流,新增自定义天线、PCB设计、阵列综合、AI加速及优化模块,并细化了使用规则与边界排除条件。
- 2026.07.16 2026-07-24 16:21


