matlab-design-antenna について
Antenna Toolboxでアンテナやアレイを設計・解析するMATLAB向けスキルです。カタログ品、自作形状、PCB設計に加え、AIによる探索や最適化も扱います。
主な機能
- 01カタログアンテナの設計と解析
- 02カスタムアンテナとPCBアンテナの構築
- 03アレイ設計とビーム解析
- 04AIサロゲートによる設計探索
- 05寸法と性能指標の最適化
活用シーン
- 01目標周波数に合わせたカタログアンテナ設計
- 02PCBアンテナのパターン作成と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 でメッシュを生成します
- 基板アンテナでは
SweepOption="interp"をsparametersでのみ使用します(impedanceでは使用しません)
カスタムアンテナ(customAntenna)
- customAntenna では
shape.*名前空間を使用します(antenna.*は使用しません) - すべての寸法はメートル単位です — mm や cm ではありません
- 必ず給電点を定義します —
createFeedのないcustomAntennaは解析できません - 給電点は幾何学的不連続部に配置します — 平板の中央には配置しません
- 先に押し出し、その後に回転します —
extrudeLinearには XY 平面上の形状が必要です - 形状はハンドルオブジェクトです — 変換前に
copy()を使用して保持します
PCB アンテナ(pcbStack)
Layersより先にBoardThicknessを設定します — そうしないと誘電体の厚さが正しく設定されません- pcbStack の金属パターンには
antenna.*名前空間を使用します(shape.*は使用しません) - レイヤーインデックスはセル配列の位置です —
{M,D,M}では、グランドはインデックス3です design()は pcbStack では動作しません — 先にカタログアンテナを設計してから変換します- Gerber の
Filenameは char で指定する必要があります('single quotes')。"string" は使用しません
アレイ
design(arr, freq, element)の第3引数には必ずエレメントを渡します — 省略するとダイポールにリセットされます- rectangularArray の
AmplitudeTaperは列優先順です - 無限アレイには NumElements/ElementSpacing がありません — 単位セルはグランドプレーンのサイズです
- 有限アレイのステアリングには
phaseShift()、無限アレイにはScanAzimuth/ScanElevationを使用します
AI ワークフロー
design(..., ForAI=true)を使用してください —em.ai.AIAntenna()の直接コンストラクターはサポートされていません- 事前学習済み AI モデルがあるのは、12 種類のアンテナタイプのみです
patternFromAIの入力スライスは、1 度刻みの整数間隔の行ベクトルである必要がありますexportAntennaと全波シミュレーションで AI の予測を必ず検証してください
最適化
- 物理的に妥当な初期寸法を得るため、
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 スライス(行ベクトル、1 度刻み)から
patternFromAIを使用します
6. 最適化
- 定式化 — 目的関数、設計変数、境界、制約を選びます
- Tier を選択 — カタログと組み込み目的関数を使う場合は Tier 1、それ以外は Tier 2 を選択します
- 実行 —
optimize()またはOptimizerSADEA/OptimizerTRSADEAを使用します - 結果を抽出 —
getBestMemberData、showConvergenceTrend、isConvergedを使用します - 検証 — 最適化した設計に対して全解析スイープを実行します
主なクラス
| クラス | 用途 |
|---|---|
design() | カタログアンテナを周波数に合わせてスケーリングします |
customAntenna | shape.* のプリミティブから任意の形状を作成します |
pcbStack | antenna.* の形状を使った多層 PCB アンテナです |
linearArray / rectangularArray / circularArray | 有限アレイです |
conformalArray | 任意の素子位置を指定します(MIMO、カスタム) |
infiniteArray | Floquet BC を使った単位セルです |
em.ai.AIAntenna | 即時予測のための事前学習済みサロゲートです |
patternFromAI | 2D スライスから 3D パターンを作成します |
optimize() | カタログアンテナ向けの組み込み SADEA です |
OptimizerSADEA / OptimizerTRSADEA | カスタム最適化です |
規約
コーディング規約
- インデントは4スペース、変数名はlowerCamelCase、Name-Value引数は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 |
Copyright 2026 The MathWorks, Inc.
コメント
Markdown 対応