パッチアンテナ(マイクロストリップアンテナ)の理論を解説

パッチアンテナ(マイクロストリップアンテナ)は、誘電体基板の上に薄い金属パッチを配置した平面アンテナです。軽量・薄型・製造容易という特徴から、携帯電話、GPS受信機、衛星通信端末、レーダーなど極めて幅広い用途で使用されています。

パッチアンテナの解析には主に3つのモデルが用いられます。伝送線路モデルキャビティモデルフルウェーブ解析です。本記事では最も直感的な伝送線路モデルを中心に、共振周波数・入力インピーダンス・放射パターンを導出します。

本記事の内容

  • パッチアンテナの構造と特徴
  • 実効誘電率 $\varepsilon_{\text{eff}}$ の計算
  • 実効長 $L_{\text{eff}}$ とフリンジング効果
  • 伝送線路モデルによる共振周波数の導出
  • 入力インピーダンスと整合
  • 等価磁流モデルによる放射パターンの解析
  • 帯域幅の制約と改善法
  • 円偏波パッチアンテナ
  • Pythonで共振周波数の設計計算と放射パターンの可視化

前提知識

この記事を読む前に、以下の記事を読んでおくと理解が深まります。

パッチアンテナの構造と特徴

基本構造

パッチアンテナは以下の3層構造を持ちます。

  1. 接地面(ground plane): 金属の平面。裏面の反射板として機能
  2. 誘電体基板(substrate): 比誘電率 $\varepsilon_r$、厚さ $h$ の基板
  3. 放射パッチ(patch): 基板上面に配置された金属パッチ(通常は矩形)

矩形パッチの場合、パッチの長さを $L$(共振方向)、幅を $W$(共振方向に直交する方向)と定義します。

特徴

利点: – 薄型・軽量で表面実装が可能 – プリント基板技術で大量製造が容易 – アレイ化が容易(フェーズドアレイの素子として最適) – 多周波・広帯域化の工夫がしやすい

欠点: – 帯域幅が狭い(典型的に1〜5%) – 利得が比較的低い(5〜8 dBi程度) – 基板損失がある – 表面波の励起による効率低下

実効誘電率

フリンジング効果

マイクロストリップ線路では、電界が基板内部だけでなく、パッチの端から基板外(空気中)にも漏れ出します。これをフリンジング(fringing)効果と呼びます。

フリンジングにより、電界は一部が誘電体中($\varepsilon_r$)、一部が空気中($\varepsilon_0$)を通過するため、実効的な比誘電率は $1$ と $\varepsilon_r$ の間の値になります。

実効誘電率の計算式

$W/h \gg 1$(パッチ幅が基板厚さに比べて十分大きい)の条件下で、実効誘電率 $\varepsilon_{\text{eff}}$ は次の近似式で求められます。

$$ \varepsilon_{\text{eff}} = \frac{\varepsilon_r + 1}{2} + \frac{\varepsilon_r – 1}{2} \cdot \frac{1}{\sqrt{1 + 12h/W}} $$

この式を理解しましょう。

  • 第1項 $\frac{\varepsilon_r + 1}{2}$: 誘電体($\varepsilon_r$)と空気($1$)の算術平均
  • 第2項: $W/h$ による補正。$W/h$ が大きいほど電界が基板内に集中し $\varepsilon_{\text{eff}} \to \varepsilon_r$ に近づく。逆に $W/h$ が小さいと空気中の電界の割合が増え $\varepsilon_{\text{eff}} \to (\varepsilon_r + 1)/2$ に近づく

特殊なケースを確認します。

  • $W/h \to \infty$ のとき: $\varepsilon_{\text{eff}} \to \varepsilon_r$(完全に基板内に閉じ込められる)
  • $W/h \to 0$ のとき: $\varepsilon_{\text{eff}} \to (\varepsilon_r + 1)/2$(空気と誘電体の平均)

フリンジング長と実効長

フリンジング長

パッチの端ではフリンジング電界が存在するため、電気的な長さは物理的な長さ $L$ よりも少し長くなります。この延長分をフリンジング長 $\Delta L$ と呼びます。

$$ \Delta L = 0.412 \, h \cdot \frac{(\varepsilon_{\text{eff}} + 0.3)(W/h + 0.264)}{(\varepsilon_{\text{eff}} – 0.258)(W/h + 0.8)} $$

この式はHammerstad の経験式として知られています。

実効長

パッチの両端でフリンジングが生じるため、実効長 $L_{\text{eff}}$ は次のようになります。

$$ L_{\text{eff}} = L + 2\Delta L $$

共振周波数の導出

伝送線路モデル

伝送線路モデルでは、矩形パッチをその長さ $L$ 方向に伝搬するマイクロストリップ伝送線路と見なします。パッチの両端($x = 0$ と $x = L$)は開放端であり、電界の腹(電圧最大)が位置します。

基本モード(TM$_{010}$ モード)では、パッチの長さ方向に半波長の定在波が立ちます。

$$ L_{\text{eff}} = \frac{\lambda_g}{2} $$

ここで $\lambda_g$ はマイクロストリップ線路中のガイド波長です。

ガイド波長と自由空間波長の関係

マイクロストリップ線路中の伝搬速度は $v = c / \sqrt{\varepsilon_{\text{eff}}}$ なので、ガイド波長は次のようになります。

$$ \lambda_g = \frac{v}{f} = \frac{c}{f\sqrt{\varepsilon_{\text{eff}}}} = \frac{\lambda_0}{\sqrt{\varepsilon_{\text{eff}}}} $$

共振周波数

$L_{\text{eff}} = \lambda_g / 2$ の条件から、

$$ L + 2\Delta L = \frac{c}{2f_r\sqrt{\varepsilon_{\text{eff}}}} $$

$$ \boxed{f_r = \frac{c}{2L_{\text{eff}}\sqrt{\varepsilon_{\text{eff}}}} = \frac{c}{2(L + 2\Delta L)\sqrt{\varepsilon_{\text{eff}}}}} $$

設計手順(逆問題)

目標周波数 $f_r$ が与えられたとき、パッチの寸法を設計する手順は以下の通りです。

Step 1: パッチ幅 $W$ を決める(効率的な放射のための推奨値)。

$$ W = \frac{c}{2f_r}\sqrt{\frac{2}{\varepsilon_r + 1}} $$

この式は、パッチ幅方向に効率よく放射するための経験的な最適値です。

Step 2: $W$ から実効誘電率 $\varepsilon_{\text{eff}}$ を計算。

Step 3: フリンジング長 $\Delta L$ を計算。

Step 4: パッチ長 $L$ を決める。

$$ L = \frac{c}{2f_r\sqrt{\varepsilon_{\text{eff}}}} – 2\Delta L $$

入力インピーダンスと整合

パッチ端部のインピーダンス

パッチの端($x = 0$ または $x = L$)では開放端であり、入力インピーダンスは非常に高い値(数百オーム)になります。パッチの一辺を2つのスロット放射器と見なしたとき、各スロットのコンダクタンスは次のように近似されます。

$$ G_1 = \frac{1}{90}\left(\frac{W}{\lambda_0}\right)^2 \quad (W \ll \lambda_0 \text{ の場合}) $$

より一般的には、

$$ G_1 = \frac{1}{120\lambda_0}\left[W – \frac{1}{12}\left(\frac{2\pi W}{\lambda_0}\right)^2 + \cdots\right] $$

2つのスロット間の相互コンダクタンスを $G_{12}$ とすると、パッチ端部の入力抵抗は次のようになります。

$$ R_{\text{in}}(\text{edge}) = \frac{1}{2(G_1 + G_{12})} $$

典型的な値は $150 \sim 300 \; \Omega$ です。

インセットフィード

$50 \; \Omega$ の伝送線路に整合させるために、インセットフィード(inset feed)が広く用いられます。パッチの端から距離 $y_0$ だけ内側の点で給電すると、入力インピーダンスは次のように変化します。

$$ R_{\text{in}}(y_0) = R_{\text{in}}(\text{edge}) \cdot \cos^2\left(\frac{\pi y_0}{L}\right) $$

$50 \; \Omega$ に整合するためのインセット距離 $y_0$ は次のように求まります。

$$ \cos^2\left(\frac{\pi y_0}{L}\right) = \frac{50}{R_{\text{in}}(\text{edge})} $$

$$ y_0 = \frac{L}{\pi}\cos^{-1}\sqrt{\frac{50}{R_{\text{in}}(\text{edge})}} $$

等価磁流モデルによる放射パターン

等価磁流

伝送線路モデルでは、パッチの両端($x = 0$ と $x = L$)のフリンジング電界を等価磁流 $\bm{M}_s$ で置き換えて放射を計算します。

スロット(パッチ端)の電界が $\bm{E}_a$ であるとき、等価磁流は次のように定義されます。

$$ \bm{M}_s = -2\hat{n} \times \bm{E}_a $$

ここで $\hat{n}$ はスロット面の法線ベクトルです。係数の2は、接地面の鏡像効果を考慮したものです。

E面(xz面)の放射パターン

TM$_{010}$モードにおいて、パッチの両端のスロットからの放射を重ね合わせると、E面のパターンは次のようになります。

$$ F_E(\theta) = \cos\left(\frac{kL_{\text{eff}}}{2}\sin\theta\right) $$

ただし基本モードでは $kL_{\text{eff}} \approx \pi$ なので、

$$ F_E(\theta) \approx \cos\left(\frac{\pi}{2}\sin\theta\right) $$

H面(yz面)の放射パターン

H面のパターンは、幅 $W$ のスロットからの放射として次のように得られます。

$$ F_H(\theta) = \frac{\sin\left(\frac{kW}{2}\sin\theta\right)}{\frac{kW}{2}\sin\theta} $$

これは一様開口のsinc関数パターンです。

全放射パターン

3次元の放射パターンは、E面とH面のパターンの積として近似されます。

$$ F(\theta, \phi) \approx F_E(\theta)\big|_{\phi=0} \cdot F_H(\theta)\big|_{\phi=90°} $$

帯域幅の制約と改善法

帯域幅の近似式

パッチアンテナの帯域幅(VSWR $\leq 2$)は、おおよそ次のように表されます。

$$ BW \approx \frac{3.77(\varepsilon_r – 1)}{Q_T \cdot \varepsilon_r^2} \times 100 \quad [\%] $$

ここで $Q_T$ は全体のQ値で、放射Q値 $Q_r$、導体損 $Q_c$、誘電体損 $Q_d$ から決まります。

$$ \frac{1}{Q_T} = \frac{1}{Q_r} + \frac{1}{Q_c} + \frac{1}{Q_d} $$

基板が薄い($h$ が小さい)と $Q_r$ が大きくなり帯域幅は狭くなります。より実用的な近似として次の式が知られています。

$$ BW \approx \frac{16}{3\sqrt{2}} \cdot \frac{\varepsilon_r – 1}{\varepsilon_r^2} \cdot \frac{h}{\lambda_0} \times 100 \quad [\%] $$

この式から、帯域幅を広げるためには次の方法が有効であることがわかります。

帯域幅改善法

方法 効果 トレードオフ
基板厚さ $h$ を増やす BW増大 表面波増加、効率低下
低誘電率基板を使う BW増大 パッチサイズ増大
U字スロットを入れる 二重共振で広帯域化 設計が複雑
積層パッチ 多重共振で広帯域化 製造コスト増
アパーチャ結合給電 BW増大 構造が複雑

円偏波パッチアンテナ

円偏波の生成方法

パッチアンテナで円偏波を実現する方法は大きく2つあります。

方法1: 2点給電(デュアルフィード)

正方形パッチの隣接する2辺の中央から、90度位相差で給電します。90度ハイブリッドカプラを用いるのが一般的です。

$$ V_1 = V_0, \quad V_2 = V_0 e^{j\pi/2} = jV_0 $$

方法2: 1点給電+摂動(シングルフィード)

ほぼ正方形のパッチの対角を切り取る(トランケーテッドコーナー)か、パッチの寸法を微小に変えることで、直交する2つのモードを同時に励振し、寸法差による位相差を90度に設定します。

正方形パッチの一辺を $a$、摂動量を $\Delta a$ とすると、

$$ a_1 = a + \Delta a, \quad a_2 = a – \Delta a $$

軸比(AR)を最小にする条件は、

$$ \frac{\Delta a}{a} = \frac{1}{2Q_T} $$

ここで $Q_T$ はパッチのQ値です。

Pythonでの実装

共振周波数の設計計算

import numpy as np

def patch_design(f_r, eps_r, h):
    """
    矩形パッチアンテナの設計計算を行う。

    Parameters
    ----------
    f_r : float
        目標共振周波数 [Hz]
    eps_r : float
        基板の比誘電率
    h : float
        基板の厚さ [m]

    Returns
    -------
    result : dict
        設計パラメータの辞書
    """
    c = 3e8  # 光速 [m/s]
    lam0 = c / f_r  # 自由空間波長

    # Step 1: パッチ幅 W
    W = c / (2 * f_r) * np.sqrt(2 / (eps_r + 1))

    # Step 2: 実効誘電率
    eps_eff = (eps_r + 1) / 2 + (eps_r - 1) / 2 / np.sqrt(1 + 12 * h / W)

    # Step 3: フリンジング長 ΔL
    delta_L = 0.412 * h * ((eps_eff + 0.3) * (W / h + 0.264)) / \
                           ((eps_eff - 0.258) * (W / h + 0.8))

    # Step 4: パッチ長 L
    L = c / (2 * f_r * np.sqrt(eps_eff)) - 2 * delta_L

    # 実効長
    L_eff = L + 2 * delta_L

    # 検証: 共振周波数の逆算
    f_check = c / (2 * L_eff * np.sqrt(eps_eff))

    # スロットコンダクタンス(簡易式)
    G1 = (W / lam0)**2 / 90
    # 相互コンダクタンス(近似的に無視可能な場合が多い)
    G12 = 0  # 簡略化

    # パッチ端部の入力抵抗
    R_edge = 1 / (2 * (G1 + G12))

    # 50Ω整合のインセット距離
    y0 = L / np.pi * np.arccos(np.sqrt(50 / R_edge))

    # 帯域幅の近似
    BW_pct = 16 / (3 * np.sqrt(2)) * (eps_r - 1) / eps_r**2 * (h / lam0) * 100

    return {
        'W': W, 'L': L, 'L_eff': L_eff,
        'eps_eff': eps_eff, 'delta_L': delta_L,
        'f_check': f_check, 'lam0': lam0,
        'R_edge': R_edge, 'y0': y0,
        'BW_pct': BW_pct
    }

# --- 設計例 ---
# GPS L1バンド: 1575.42 MHz, FR-4基板 (εr=4.4, h=1.6mm)
print("=" * 60)
print("設計例1: GPS L1バンド (1575.42 MHz)")
print("=" * 60)
res1 = patch_design(1575.42e6, 4.4, 1.6e-3)
for key, val in res1.items():
    if key in ['W', 'L', 'L_eff', 'delta_L', 'lam0', 'y0']:
        print(f"  {key:>10}: {val*1e3:.3f} mm")
    elif key == 'f_check':
        print(f"  {key:>10}: {val/1e6:.2f} MHz")
    elif key == 'R_edge':
        print(f"  {key:>10}: {val:.1f} Ω")
    elif key == 'BW_pct':
        print(f"  {key:>10}: {val:.2f} %")
    else:
        print(f"  {key:>10}: {val:.4f}")

# 5 GHz Wi-Fi, Rogers RO4003C (εr=3.38, h=0.813mm)
print("\n" + "=" * 60)
print("設計例2: 5 GHz Wi-Fi")
print("=" * 60)
res2 = patch_design(5.8e9, 3.38, 0.813e-3)
for key, val in res2.items():
    if key in ['W', 'L', 'L_eff', 'delta_L', 'lam0', 'y0']:
        print(f"  {key:>10}: {val*1e3:.3f} mm")
    elif key == 'f_check':
        print(f"  {key:>10}: {val/1e6:.2f} MHz")
    elif key == 'R_edge':
        print(f"  {key:>10}: {val:.1f} Ω")
    elif key == 'BW_pct':
        print(f"  {key:>10}: {val:.2f} %")
    else:
        print(f"  {key:>10}: {val:.4f}")

# 基板パラメータの比較
print("\n" + "=" * 60)
print("基板パラメータによる影響(f = 2.4 GHz)")
print("=" * 60)
print(f"{'基板':>15} {'εr':>6} {'h [mm]':>8} {'W [mm]':>8} {'L [mm]':>8} {'BW [%]':>8}")
print("-" * 60)

substrates = [
    ('FR-4', 4.4, 1.6e-3),
    ('Rogers 4003', 3.38, 0.813e-3),
    ('Rogers 5880', 2.2, 1.575e-3),
    ('Air (foam)', 1.07, 3.0e-3),
]

for name, eps_r, h in substrates:
    res = patch_design(2.4e9, eps_r, h)
    print(f"{name:>15} {eps_r:>6.2f} {h*1e3:>8.3f} {res['W']*1e3:>8.2f} "
          f"{res['L']*1e3:>8.2f} {res['BW_pct']:>8.2f}")

放射パターンの可視化

import numpy as np
import matplotlib.pyplot as plt

def patch_radiation_pattern(theta, W, L_eff, lam0):
    """
    矩形パッチアンテナの放射パターンを計算する。

    Parameters
    ----------
    theta : array
        天頂角 [rad]
    W : float
        パッチ幅 [m]
    L_eff : float
        パッチ実効長 [m]
    lam0 : float
        自由空間波長 [m]

    Returns
    -------
    F_E : array
        E面パターン(正規化)
    F_H : array
        H面パターン(正規化)
    """
    k0 = 2 * np.pi / lam0

    # E面パターン
    F_E = np.cos(k0 * L_eff / 2 * np.sin(theta))

    # H面パターン(sincパターン)
    x = k0 * W / 2 * np.sin(theta)
    F_H = np.where(np.abs(x) < 1e-10, 1.0, np.sin(x) / x)

    return np.abs(F_E), np.abs(F_H)

# GPS L1バンドの設計結果を使用
res = patch_design(1575.42e6, 4.4, 1.6e-3)
W = res['W']
L_eff = res['L_eff']
lam0 = res['lam0']

# 角度
theta = np.linspace(-np.pi/2, np.pi/2, 1001)

F_E, F_H = patch_radiation_pattern(theta, W, L_eff, lam0)

# 正規化
F_E_norm = F_E / np.max(F_E)
F_H_norm = F_H / np.max(F_H)

# 電力パターン
P_E = F_E_norm**2
P_H = F_H_norm**2

# --- 直交座標プロット ---
fig, axes = plt.subplots(1, 2, figsize=(14, 5))

# リニアスケール
ax = axes[0]
ax.plot(np.degrees(theta), P_E, 'b-', label='E-plane', linewidth=2)
ax.plot(np.degrees(theta), P_H, 'r--', label='H-plane', linewidth=2)
ax.set_xlabel('Angle [deg]', fontsize=12)
ax.set_ylabel('Normalized Power Pattern', fontsize=12)
ax.set_title('Patch Antenna Pattern (Linear)', fontsize=12)
ax.legend(fontsize=11)
ax.grid(True, alpha=0.3)
ax.set_xlim([-90, 90])

# dBスケール
ax = axes[1]
P_E_dB = 10 * np.log10(np.clip(P_E, 1e-6, None))
P_H_dB = 10 * np.log10(np.clip(P_H, 1e-6, None))
ax.plot(np.degrees(theta), P_E_dB, 'b-', label='E-plane', linewidth=2)
ax.plot(np.degrees(theta), P_H_dB, 'r--', label='H-plane', linewidth=2)
ax.set_xlabel('Angle [deg]', fontsize=12)
ax.set_ylabel('Pattern [dB]', fontsize=12)
ax.set_title('Patch Antenna Pattern (dB)', fontsize=12)
ax.legend(fontsize=11)
ax.grid(True, alpha=0.3)
ax.set_xlim([-90, 90])
ax.set_ylim([-30, 0])

plt.tight_layout()
plt.savefig('patch_radiation_pattern.png', dpi=150, bbox_inches='tight')
plt.show()

極座標での放射パターン

import numpy as np
import matplotlib.pyplot as plt

def patch_design(f_r, eps_r, h):
    """矩形パッチアンテナの設計計算"""
    c = 3e8
    lam0 = c / f_r
    W = c / (2 * f_r) * np.sqrt(2 / (eps_r + 1))
    eps_eff = (eps_r + 1) / 2 + (eps_r - 1) / 2 / np.sqrt(1 + 12 * h / W)
    delta_L = 0.412 * h * ((eps_eff + 0.3) * (W / h + 0.264)) / \
                           ((eps_eff - 0.258) * (W / h + 0.8))
    L = c / (2 * f_r * np.sqrt(eps_eff)) - 2 * delta_L
    L_eff = L + 2 * delta_L
    return {'W': W, 'L': L, 'L_eff': L_eff, 'lam0': lam0, 'eps_eff': eps_eff}

# 設計
res = patch_design(1575.42e6, 4.4, 1.6e-3)
W, L_eff, lam0 = res['W'], res['L_eff'], res['lam0']
k0 = 2 * np.pi / lam0

# 角度(上半球のみ: -90°〜+90°、極座標表示用に全周に拡張)
theta_half = np.linspace(-np.pi/2, np.pi/2, 1001)

# E面パターン
F_E = np.abs(np.cos(k0 * L_eff / 2 * np.sin(theta_half)))**2

# H面パターン
x_H = k0 * W / 2 * np.sin(theta_half)
F_H = np.where(np.abs(x_H) < 1e-10, 1.0, np.sin(x_H) / x_H)**2

# 正規化
F_E /= np.max(F_E)
F_H /= np.max(F_H)

# 極座標用に変換(thetaを角度軸に直接使用)
# 上半球のみの放射を表現
theta_polar = theta_half + np.pi / 2  # 0がzenith

fig, axes = plt.subplots(1, 2, figsize=(14, 6),
                         subplot_kw=dict(projection='polar'))

# E面
ax = axes[0]
# dBスケール
F_E_dB = np.where(F_E > 1e-6, 10 * np.log10(F_E), -30)
F_E_plot = np.clip(F_E_dB, -30, 0) + 30
ax.plot(theta_polar, F_E_plot, 'b-', linewidth=2)
ax.set_title('E-plane (dB, floor=-30dB)', pad=20, fontsize=12)
ax.set_theta_zero_location('N')  # 0°を上に
ax.set_thetamin(0)
ax.set_thetamax(180)

# H面
ax = axes[1]
F_H_dB = np.where(F_H > 1e-6, 10 * np.log10(F_H), -30)
F_H_plot = np.clip(F_H_dB, -30, 0) + 30
ax.plot(theta_polar, F_H_plot, 'r-', linewidth=2)
ax.set_title('H-plane (dB, floor=-30dB)', pad=20, fontsize=12)
ax.set_theta_zero_location('N')
ax.set_thetamin(0)
ax.set_thetamax(180)

plt.suptitle('Rectangular Patch Antenna Radiation Pattern\n'
             f'(GPS L1: {1575.42} MHz, FR-4, h=1.6mm)', fontsize=13)
plt.tight_layout()
plt.savefig('patch_polar_pattern.png', dpi=150, bbox_inches='tight')
plt.show()

共振周波数の基板パラメータ依存性

import numpy as np
import matplotlib.pyplot as plt

def resonant_freq(L, eps_r, h):
    """パッチ長と基板パラメータから共振周波数を計算"""
    c = 3e8
    W = 1.5 * L  # W/L = 1.5 と仮定
    eps_eff = (eps_r + 1) / 2 + (eps_r - 1) / 2 / np.sqrt(1 + 12 * h / W)
    delta_L = 0.412 * h * ((eps_eff + 0.3) * (W / h + 0.264)) / \
                           ((eps_eff - 0.258) * (W / h + 0.8))
    L_eff = L + 2 * delta_L
    return c / (2 * L_eff * np.sqrt(eps_eff))

# パッチ長を変化させて共振周波数を計算
L_range = np.linspace(10e-3, 60e-3, 200)  # 10mm〜60mm

fig, ax = plt.subplots(figsize=(10, 6))

substrates = [
    ('FR-4 ($\\varepsilon_r$=4.4)', 4.4, 1.6e-3, 'b'),
    ('Rogers 4003 ($\\varepsilon_r$=3.38)', 3.38, 0.813e-3, 'r'),
    ('Rogers 5880 ($\\varepsilon_r$=2.2)', 2.2, 1.575e-3, 'g'),
    ('Air ($\\varepsilon_r$=1.07)', 1.07, 3.0e-3, 'k'),
]

for label, eps_r, h, color in substrates:
    f_r = np.array([resonant_freq(L, eps_r, h) for L in L_range])
    ax.plot(L_range * 1e3, f_r / 1e9, color=color, linewidth=2, label=label)

ax.set_xlabel('Patch Length $L$ [mm]', fontsize=12)
ax.set_ylabel('Resonant Frequency [GHz]', fontsize=12)
ax.set_title('Resonant Frequency vs Patch Length', fontsize=13)
ax.legend(fontsize=10)
ax.grid(True, alpha=0.3)
ax.set_xlim([10, 60])
ax.set_ylim([0, 10])

# 代表的な周波数帯をマーク
ax.axhline(1.575, color='gray', linestyle=':', alpha=0.5)
ax.text(55, 1.7, 'GPS L1', fontsize=9, color='gray')
ax.axhline(2.4, color='gray', linestyle=':', alpha=0.5)
ax.text(55, 2.5, 'Wi-Fi 2.4G', fontsize=9, color='gray')
ax.axhline(5.8, color='gray', linestyle=':', alpha=0.5)
ax.text(55, 5.9, 'Wi-Fi 5G', fontsize=9, color='gray')

plt.tight_layout()
plt.savefig('patch_freq_vs_length.png', dpi=150, bbox_inches='tight')
plt.show()

この結果から以下のことがわかります。

  • 比誘電率が高いほど、同じ共振周波数に対してパッチサイズが小さくなる(小型化のメリット)
  • 一方、比誘電率が低いほど帯域幅が広くなる(性能のメリット)
  • パッチアンテナの設計は「小型化」と「帯域幅」のトレードオフの中で行われる

まとめ

本記事では、パッチアンテナ(マイクロストリップアンテナ)の理論を解説しました。

  • パッチアンテナは接地面・誘電体基板・金属パッチの3層構造を持つ平面アンテナである
  • 実効誘電率 $\varepsilon_{\text{eff}}$ はフリンジング効果により $1 < \varepsilon_{\text{eff}} < \varepsilon_r$ の値をとる
  • フリンジング長 $\Delta L$ によりパッチの電気的長さが伸び、実効長 $L_{\text{eff}} = L + 2\Delta L$ となる
  • 共振周波数は $f_r = c / (2L_{\text{eff}}\sqrt{\varepsilon_{\text{eff}}})$ で決まる
  • 入力インピーダンスは端部で高く、インセットフィードにより $50 \; \Omega$ に整合できる
  • 放射パターンは等価磁流モデルから導かれ、E面は $\cos$ 型、H面は $\text{sinc}$ 型となる
  • 帯域幅は基板厚さ $h$ に比例し、通常 1〜5% と狭い
  • 円偏波は2点給電や摂動構造で実現できる

次のステップとして、以下の記事も参考にしてください。