主题052:频率选择表面(FSS)设计

摘要

频率选择表面(Frequency Selective Surface, FSS)是一种具有频率选择特性的二维周期性结构,能够对入射电磁波产生特定的传输或反射响应。本教程系统介绍FSS的基本理论、分析方法、单元设计技术以及工程应用。内容涵盖FSS的电磁散射机理、等效电路模型、全波数值仿真方法、常见单元结构(如贴片型、缝隙型、分形结构等)的设计原理,以及可调FSS和有源FSS的实现技术。通过Python仿真实例,展示FSS传输特性的计算、带宽优化、角度稳定性分析等关键技术,为雷达罩、电磁屏蔽、隐身技术等应用提供理论基础和设计指导。

关键词

频率选择表面;周期性结构;电磁带隙;等效电路;传输特性;雷达罩;电磁屏蔽;可调FSS


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1. 频率选择表面基础理论

1.1 FSS的定义与分类

频率选择表面(FSS)是由大量相同单元按一定规律排列组成的二维周期性结构。根据单元的几何特征,FSS可分为两大类:

贴片型FSS(Patch-Type FSS):由导体贴片单元组成,呈现带阻特性。在谐振频率附近,入射电磁波被反射,而在其他频率则透射。常见的贴片单元包括:

  • 方形贴片
  • 圆形贴片
  • 环形贴片
  • 耶路撒冷十字
  • 分形结构

缝隙型FSS(Aperture-Type FSS):由导体屏上的缝隙单元组成,呈现带通特性。在谐振频率附近,电磁波通过缝隙透射,而在其他频率被反射。常见的缝隙单元包括:

  • 方形缝隙
  • 圆形缝隙
  • 十字缝隙
  • 环形缝隙

1.2 FSS的电磁散射机理

FSS的频率选择特性源于单元结构的谐振行为。当电磁波入射到FSS时,导体单元上感应出电流,这些电流产生的散射场与入射场相互作用,形成特定的传输/反射特性。

对于贴片型FSS,单元上的感应电流在谐振频率处达到最大,产生强烈的反射。谐振频率主要由单元的电长度决定:

f0=c2Leffεefff_0 = \frac{c}{2L_{eff}\sqrt{\varepsilon_{eff}}}f0=2Leffεeff c

其中,LeffL_{eff}Leff是单元的有效长度,εeff\varepsilon_{eff}εeff是有效介电常数,ccc是光速。

对于缝隙型FSS,缝隙作为波导,在谐振频率处支持强烈的电磁场传输。缝隙的谐振频率同样取决于其几何尺寸:

f0=c2lεrf_0 = \frac{c}{2l\sqrt{\varepsilon_r}}f0=2lεr c

其中,lll是缝隙长度,εr\varepsilon_rεr是基底介电常数。

1.3 Floquet定理与周期边界条件

FSS的周期性结构使得Floquet定理成为分析其电磁特性的基础。Floquet定理指出,在周期性结构中,场分布可以表示为空间谐波(Floquet模式)的叠加:

E⃗(x,y,z)=∑m=−∞∞∑n=−∞∞E⃗mn(z)e−j(kx,mx+ky,ny)\vec{E}(x,y,z) = \sum_{m=-\infty}^{\infty}\sum_{n=-\infty}^{\infty} \vec{E}_{mn}(z) e^{-j(k_{x,m}x + k_{y,n}y)}E (x,y,z)=m=n=E mn(z)ej(kx,mx+ky,ny)

其中,kx,m=kx0+2πmDxk_{x,m} = k_{x0} + \frac{2\pi m}{D_x}kx,m=kx0+Dx2πmky,n=ky0+2πnDyk_{y,n} = k_{y0} + \frac{2\pi n}{D_y}ky,n=ky0+Dy2πnDxD_xDxDyD_yDy是周期。

Floquet波数满足色散关系:

kz,mn2=k02−kx,m2−ky,n2k_{z,mn}^2 = k_0^2 - k_{x,m}^2 - k_{y,n}^2kz,mn2=k02kx,m2ky,n2

kz,mnk_{z,mn}kz,mn为实数时,对应传播模式;当kz,mnk_{z,mn}kz,mn为虚数时,对应倏逝模式。

1.4 等效电路模型

等效电路模型为理解FSS的电磁行为提供了直观的物理图像。贴片型FSS可等效为并联LC谐振电路,缝隙型FSS可等效为串联LC谐振电路。

贴片型FSS等效电路

  • 电容CCC:由相邻贴片之间的边缘场产生
  • 电感LLL:由贴片上的电流路径产生
  • 谐振频率:f0=12πLCf_0 = \frac{1}{2\pi\sqrt{LC}}f0=2πLC 1

电容近似公式:
C=Dε0(εr+1)πcosh⁡−1(Dg)C = \frac{D\varepsilon_0(\varepsilon_r+1)}{\pi}\cosh^{-1}\left(\frac{D}{g}\right)C=πDε0(εr+1)cosh1(gD)

其中,DDD是周期,ggg是间隙宽度。

电感近似公式:
L=μ0D2πln⁡(1sin⁡(πw/2D))L = \frac{\mu_0 D}{2\pi}\ln\left(\frac{1}{\sin(\pi w/2D)}\right)L=2πμ0Dln(sin(πw/2D)1)

其中,www是贴片宽度。

缝隙型FSS等效电路

  • 串联LC电路,谐振时阻抗为零,实现全透射
  • 非谐振频率处呈现高阻抗,实现反射

1.5 传输线模型

将FSS嵌入多层介质结构中,可以使用传输线模型进行分析。每层介质等效为传输线段,FSS等效为集总元件(并联或串联)。

对于贴片型FSS嵌入两层介质之间:

Zin=Z1ZL+jZ1tan⁡(β1d1)Z1+jZLtan⁡(β1d1)Z_{in} = Z_1\frac{Z_L + jZ_1\tan(\beta_1 d_1)}{Z_1 + jZ_L\tan(\beta_1 d_1)}Zin=Z1Z1+jZLtan(β1d1)ZL+jZ1tan(β1d1)

其中,ZL=Z2∥ZFSSZ_L = Z_2 \parallel Z_{FSS}ZL=Z2ZFSSZFSSZ_{FSS}ZFSS是FSS等效阻抗。

传输系数:
T=2ZinZin+Z0T = \frac{2Z_{in}}{Z_{in} + Z_0}T=Zin+Z02Zin


2. FSS单元结构设计

2.1 方形贴片单元

方形贴片是最基本的FSS单元之一,具有设计简单、带宽适中的特点。

几何参数

  • 贴片边长:www
  • 周期:DDD
  • 间隙:g=D−wg = D - wg=Dw

设计公式
谐振频率近似为:
f0≈c2wεefff_0 \approx \frac{c}{2w\sqrt{\varepsilon_{eff}}}f02wεeff c

有效介电常数:
εeff=εr+12\varepsilon_{eff} = \frac{\varepsilon_r + 1}{2}εeff=2εr+1

带宽特性
方形贴片FSS的带宽较窄(通常3-5%),由Q值决定:
Q=ω0LRQ = \frac{\omega_0 L}{R}Q=Rω0L

其中,RRR是等效电阻,包括导体损耗和辐射损耗。

2.2 环形单元

环形单元(方形环或圆环)提供双谐振特性,可实现宽带或双频响应。

几何参数

  • 外环尺寸:woutw_{out}wout
  • 内环尺寸:winw_{in}win
  • 环宽度:t=(wout−win)/2t = (w_{out} - w_{in})/2t=(woutwin)/2

双谐振机理

  • 低频谐振:由外环周长决定
  • 高频谐振:由内环周长决定

谐振频率:
flow≈c2woutεefff_{low} \approx \frac{c}{2w_{out}\sqrt{\varepsilon_{eff}}}flow2woutεeff c
fhigh≈c2winεefff_{high} \approx \frac{c}{2w_{in}\sqrt{\varepsilon_{eff}}}fhigh2winεeff c

通过调节内外环尺寸比,可以控制两个谐振频率的间隔和带宽。

2.3 耶路撒冷十字

耶路撒冷十字单元由交叉臂和端帽组成,具有稳定的角度特性和较宽的带宽。

几何参数

  • 臂长:LLL
  • 臂宽:www
  • 端帽长度:ccc
  • 端帽宽度:ddd

设计特点

  • 交叉臂提供电感
  • 端帽增加电容
  • 通过调节端帽尺寸可以优化带宽

2.4 分形FSS

分形结构通过自相似性实现多频响应或尺寸缩减。

Sierpinski垫片

  • 迭代次数nnn产生nnn个谐振频率
  • 谐振频率比:fn/f0≈2nf_n/f_0 \approx 2^nfn/f02n

Koch雪花

  • 增加边缘长度,提高电容
  • 实现尺寸缩减(约30-40%)

分形维数:
Df=log⁡(N)log⁡(1/r)D_f = \frac{\log(N)}{\log(1/r)}Df=log(1/r)log(N)

其中,NNN是子单元数,rrr是缩放因子。

2.5 三维FSS结构

三维FSS通过层叠结构实现更复杂的频率响应。

级联FSS

  • 两层或多层FSS级联
  • 层间距控制耦合强度
  • 可实现宽带或多频响应

蘑菇型EBG

  • 贴片+过孔+地平面
  • 产生电磁带隙
  • 抑制表面波

3. FSS性能分析与优化

3.1 传输特性分析

FSS的传输特性通常用传输系数(S21)和反射系数(S11)描述。

传输系数计算
S21=EtransEincS_{21} = \frac{E_{trans}}{E_{inc}}S21=EincEtrans

插入损耗
IL=−20log⁡10∣S21∣(dB)IL = -20\log_{10}|S_{21}| \quad \text{(dB)}IL=20log10S21(dB)

回波损耗
RL=−20log⁡10∣S11∣(dB)RL = -20\log_{10}|S_{11}| \quad \text{(dB)}RL=20log10S11(dB)

3.2 带宽优化技术

增加带宽的方法

  1. 级联结构:两层FSS级联,层间距λ/4\lambda/4λ/4,带宽可增加2-3倍

  2. 加载元件:在单元中加载集总元件(电容或电感)

    • 加载电容降低谐振频率,增加带宽
    • 加载电感提高谐振频率,增加带宽
  3. 优化单元形状:使用环形、分形等复杂形状

  4. 渐变结构:单元尺寸渐变,实现宽带响应

3.3 角度稳定性分析

FSS的传输特性随入射角度变化,这是实际应用中的重要考虑因素。

入射角影响

  • 谐振频率偏移:随入射角增大,谐振频率向高频移动
  • 带宽变化:TE和TM极化响应不同

TE极化(电场垂直于入射平面)
fTE(θ)=f01−sin⁡2θ/εefff_{TE}(\theta) = \frac{f_0}{\sqrt{1 - \sin^2\theta/\varepsilon_{eff}}}fTE(θ)=1sin2θ/εeff f0

TM极化(磁场垂直于入射平面)
fTM(θ)=f01−sin⁡2θ/εefff_{TM}(\theta) = f_0\sqrt{1 - \sin^2\theta/\varepsilon_{eff}}fTM(θ)=f01sin2θ/εeff

提高角度稳定性的方法

  1. 使用高介电常数基底
  2. 优化单元形状(如耶路撒冷十字)
  3. 采用三维结构

3.4 极化特性

FSS的极化特性取决于单元的对称性。

单极化FSS

  • 单元具有一个对称轴
  • 仅对特定极化响应
  • 应用:极化滤波器

双极化FSS

  • 单元具有两个正交对称轴
  • 对两个正交极化相同响应
  • 应用:双极化天线罩

圆极化FSS

  • 单元具有旋转对称性
  • 或采用旋转排列
  • 应用:圆极化系统

3.5 有源与可调FSS

通过集成可调元件,FSS可以实现动态频率调谐。

变容二极管加载

  • 电容变化范围:CminC_{min}CminCmaxC_{max}Cmax
  • 频率调谐范围:Δf=fmax−fmin\Delta f = f_{max} - f_{min}Δf=fmaxfmin
  • 调谐比:τ=fmax/fmin≈Cmax/Cmin\tau = f_{max}/f_{min} \approx \sqrt{C_{max}/C_{min}}τ=fmax/fminCmax/Cmin

MEMS开关

  • 开关状态改变等效电路
  • 实现离散频率切换
  • 低损耗、高线性度

液晶调谐

  • 利用液晶的各向异性
  • 连续调谐
  • 适合大面积FSS

4. FSS数值仿真方法

4.1 矩量法(MoM)

矩量法是分析FSS的常用全波方法,特别适用于无限大周期结构。

积分方程
对于贴片型FSS,使用电场积分方程(EFIE):
E⃗inc+E⃗scat=0on patches\vec{E}^{inc} + \vec{E}^{scat} = 0 \quad \text{on patches}E inc+E scat=0on patches

格林函数
周期结构的格林函数是周期性的:
Gp(r⃗,r⃗′)=∑m=−∞∞∑n=−∞∞G0(r⃗,r⃗′+mD⃗x+nD⃗y)e−jk⃗inc⋅(mD⃗x+nD⃗y)G_p(\vec{r}, \vec{r}') = \sum_{m=-\infty}^{\infty}\sum_{n=-\infty}^{\infty} G_0(\vec{r}, \vec{r}' + m\vec{D}_x + n\vec{D}_y)e^{-j\vec{k}_{inc}\cdot(m\vec{D}_x + n\vec{D}_y)}Gp(r ,r )=m=n=G0(r ,r +mD x+nD y)ejk inc(mD x+nD y)

基函数
常用的基函数包括:

  • rooftop函数
  • 三角形贴片基函数
  • 全域基函数(正弦/余弦)

4.2 有限元法(FEM)

FEM适用于有限大FSS或复杂多层结构。

变分形式
Π=∫V[1μ(∇×E⃗)2−k02εE⃗2]dV\Pi = \int_V \left[\frac{1}{\mu}(\nabla \times \vec{E})^2 - k_0^2\varepsilon \vec{E}^2\right]dVΠ=V[μ1(×E )2k02εE 2]dV

周期边界条件
在FSS单元边界上应用Floquet边界条件:
E⃗(x+Dx,y)=E⃗(x,y)e−jkx0Dx\vec{E}(x + D_x, y) = \vec{E}(x, y)e^{-jk_{x0}D_x}E (x+Dx,y)=E (x,y)ejkx0Dx

4.3 时域有限差分法(FDTD)

FDTD适用于分析FSS的瞬态响应和非线性效应。

周期边界实现
使用Bloch边界条件:
E⃗n+1(i+Nx,j)=E⃗n+1(i,j)e−jkx0Dx\vec{E}^{n+1}(i + N_x, j) = \vec{E}^{n+1}(i, j)e^{-jk_{x0}D_x}E n+1(i+Nx,j)=E n+1(i,j)ejkx0Dx

近场到远场变换
通过等效原理,将FSS近场转换为远场散射:
E⃗far=−jωμ0e−jk0r4πr∫SJ⃗sejk⃗⋅r⃗′dS′\vec{E}^{far} = -j\omega\mu_0 \frac{e^{-jk_0r}}{4\pi r} \int_S \vec{J}_s e^{j\vec{k}\cdot\vec{r}'}dS'E far=jωμ04πrejk0rSJ sejk r dS

4.4 模式匹配法

模式匹配法特别适用于分析缝隙型FSS。

模式展开
在缝隙区域,场展开为波导模式:
E⃗=∑nAne⃗n\vec{E} = \sum_{n} A_n \vec{e}_nE =nAne n

连续性条件
在缝隙-自由空间界面,切向场连续:
E⃗aperture=E⃗free\vec{E}_{aperture} = \vec{E}_{free}E aperture=E free
H⃗aperture=H⃗free\vec{H}_{aperture} = \vec{H}_{free}H aperture=H free


5. FSS工程应用

5.1 雷达罩设计

FSS雷达罩允许工作频段信号通过,同时反射带外干扰。

设计要求

  • 通带插入损耗:<0.5< 0.5<0.5 dB
  • 阻带衰减:>20> 20>20 dB
  • 角度稳定性:±45°\pm 45°±45°内频移<5%< 5\%<5%

设计实例
X波段雷达罩(8.5-10.5 GHz通带):

  • 单元:耶路撒冷十字
  • 周期:8 mm
  • 基底:εr=2.2\varepsilon_r = 2.2εr=2.2,厚度1.5 mm

5.2 电磁屏蔽

FSS用于选择性电磁屏蔽,允许通信频段通过,屏蔽干扰频段。

屏蔽效能
SE=20log⁡10∣EincEtrans∣SE = 20\log_{10}\left|\frac{E_{inc}}{E_{trans}}\right|SE=20log10 EtransEinc

设计考虑

  • 阻带带宽覆盖干扰频段
  • 通带损耗最小化
  • 机械强度和散热

5.3 隐身技术

FSS用于雷达吸波材料(RAM)和频率选择雷达罩,降低目标的RCS。

** Salisbury屏**:

  • 电阻层+四分之一波长间隔
  • 窄带吸波

Jaumann吸波体

  • 多层FSS结构
  • 宽带吸波

RCS缩减
RCSreduction=10log⁡10(σwithFSSσwithoutFSS)RCS_{reduction} = 10\log_{10}\left(\frac{\sigma_{with FSS}}{\sigma_{without FSS}}\right)RCSreduction=10log10(σwithoutFSSσwithFSS)

5.4 天线应用

FSS在天线设计中有多重应用:

反射面

  • 替代抛物面反射器
  • 重量轻、成本低
  • 可共形

极化器

  • 线极化到圆极化转换
  • 极化分集

去耦结构

  • 降低天线单元间耦合
  • 提高阵列效率

5.5 无线通信

FSS在5G/6G通信中的应用:

智能表面(RIS)

  • 可编程反射/透射
  • 波束赋形和波束控制
  • 覆盖增强

频率复用

  • 空间滤波
  • 干扰抑制
  • 频谱效率提升

6. Python仿真实例

6.1 方形贴片FSS传输特性分析

# -*- coding: utf-8 -*-
"""
方形贴片FSS传输特性分析
"""
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from scipy import special
import warnings
warnings.filterwarnings('ignore')
import os

# 创建输出目录
output_dir = os.path.dirname(os.path.abspath(__file__))

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei', 'DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False

print("开始FSS仿真分析...")

# FSS参数
D = 10e-3  # 周期 (m)
w = 8e-3   # 贴片宽度 (m)
t = 35e-6  # 铜箔厚度 (m)
epsilon_r = 2.2  # 基底介电常数
h = 1.6e-3  # 基底厚度 (m)

# 频率范围
freq = np.linspace(1e9, 20e9, 1000)
c = 3e8

# 等效电路参数计算
g = D - w  # 间隙
epsilon_eff = (epsilon_r + 1) / 2

# 电容计算
C = D * 8.854e-12 * (epsilon_r + 1) / np.pi * np.arccosh(D / g)

# 电感计算
L = 4e-7 * np.pi * D / (2 * np.pi) * np.log(1 / np.sin(np.pi * w / (2 * D)))

# 谐振频率
f0 = 1 / (2 * np.pi * np.sqrt(L * C))
print(f"理论谐振频率: {f0/1e9:.2f} GHz")

# 计算传输特性
def calculate_transmission(freq, L, C, R=1.0):
    """计算FSS传输系数"""
    omega = 2 * np.pi * freq
    Z_L = 1j * omega * L
    Z_C = 1 / (1j * omega * C)
    Z_FSS = R + 1 / (1/Z_L + 1/Z_C)
    
    Z0 = 377  # 自由空间阻抗
    
    # 传输系数
    T = 2 * Z_FSS / (2 * Z_FSS + Z0)
    S21 = np.abs(T)
    
    # 反射系数
    Gamma = -Z0 / (2 * Z_FSS + Z0)
    S11 = np.abs(Gamma)
    
    return S21, S11

# 计算传输和反射
S21, S11 = calculate_transmission(freq, L, C)

# 绘制结果
fig, axes = plt.subplots(2, 2, figsize=(14, 10))
fig.suptitle('Square Patch FSS Analysis', fontsize=14, fontweight='bold')

# 1. 传输特性
ax1 = axes[0, 0]
ax1.plot(freq/1e9, 20*np.log10(S21), 'b-', linewidth=2, label='Transmission (S21)')
ax1.plot(freq/1e9, 20*np.log10(S11), 'r--', linewidth=2, label='Reflection (S11)')
ax1.axvline(x=f0/1e9, color='g', linestyle=':', linewidth=1.5, label=f'f0={f0/1e9:.2f} GHz')
ax1.set_xlabel('Frequency (GHz)')
ax1.set_ylabel('Magnitude (dB)')
ax1.set_title('Transmission and Reflection Characteristics')
ax1.legend()
ax1.grid(True, alpha=0.3)
ax1.set_xlim(1, 20)
ax1.set_ylim(-40, 5)

# 2. 等效电路阻抗
ax2 = axes[0, 1]
omega = 2 * np.pi * freq
Z_FSS = 1 / (1/(1j*omega*L) + 1j*omega*C)
ax2.plot(freq/1e9, np.real(Z_FSS), 'b-', linewidth=2, label='Real Part')
ax2.plot(freq/1e9, np.imag(Z_FSS), 'r--', linewidth=2, label='Imaginary Part')
ax2.axvline(x=f0/1e9, color='g', linestyle=':', linewidth=1.5)
ax2.set_xlabel('Frequency (GHz)')
ax2.set_ylabel('Impedance (Ohm)')
ax2.set_title('Equivalent Circuit Impedance')
ax2.legend()
ax2.grid(True, alpha=0.3)

# 3. 不同贴片宽度对比
ax3 = axes[1, 0]
widths = [6e-3, 7e-3, 8e-3, 9e-3]
colors = ['blue', 'green', 'red', 'purple']
for w_var, color in zip(widths, colors):
    g_var = D - w_var
    C_var = D * 8.854e-12 * (epsilon_r + 1) / np.pi * np.arccosh(D / g_var)
    L_var = 4e-7 * np.pi * D / (2 * np.pi) * np.log(1 / np.sin(np.pi * w_var / (2 * D)))
    S21_var, _ = calculate_transmission(freq, L_var, C_var)
    ax3.plot(freq/1e9, 20*np.log10(S21_var), color=color, linewidth=2, 
             label=f'w={w_var*1e3:.0f} mm')
ax3.set_xlabel('Frequency (GHz)')
ax3.set_ylabel('Transmission (dB)')
ax3.set_title('Effect of Patch Width')
ax3.legend()
ax3.grid(True, alpha=0.3)
ax3.set_xlim(1, 20)
ax3.set_ylim(-40, 5)

# 4. 不同介电常数对比
ax4 = axes[1, 1]
epsilon_values = [1.0, 2.2, 4.4, 10.0]
for eps, color in zip(epsilon_values, colors):
    C_eps = D * 8.854e-12 * (eps + 1) / np.pi * np.arccosh(D / g)
    L_eps = L  # 电感基本不变
    S21_eps, _ = calculate_transmission(freq, L_eps, C_eps)
    ax4.plot(freq/1e9, 20*np.log10(S21_eps), color=color, linewidth=2, 
             label=f'εr={eps}')
ax4.set_xlabel('Frequency (GHz)')
ax4.set_ylabel('Transmission (dB)')
ax4.set_title('Effect of Substrate Permittivity')
ax4.legend()
ax4.grid(True, alpha=0.3)
ax4.set_xlim(1, 20)
ax4.set_ylim(-40, 5)

plt.tight_layout()
plt.savefig(f'{output_dir}/square_patch_fss.png', dpi=150, bbox_inches='tight')
plt.close()
print("✓ 方形贴片FSS分析图已保存")

6.2 环形FSS双频响应分析

# -*- coding: utf-8 -*-
"""
环形FSS双频响应分析
"""
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
import os

output_dir = os.path.dirname(os.path.abspath(__file__))
plt.rcParams['font.sans-serif'] = ['SimHei', 'DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False

print("分析环形FSS双频响应...")

# 环形FSS参数
D = 12e-3  # 周期
w_out = 10e-3  # 外环尺寸
w_in = 6e-3    # 内环尺寸
epsilon_r = 2.2

# 频率范围
freq = np.linspace(1e9, 25e9, 1000)
c = 3e8

# 计算等效电路参数
def ring_fss_parameters(w_out, w_in, D, epsilon_r):
    """计算环形FSS的等效电路参数"""
    # 外环参数(低频谐振)
    g_out = D - w_out
    C_out = D * 8.854e-12 * (epsilon_r + 1) / np.pi * np.arccosh(D / max(g_out, 1e-6))
    L_out = 4e-7 * np.pi * D / (2 * np.pi) * np.log(1 / np.sin(np.pi * w_out / (2 * D)))
    f0_out = 1 / (2 * np.pi * np.sqrt(L_out * C_out))
    
    # 内环参数(高频谐振)
    g_in = w_out - w_in
    C_in = D * 8.854e-12 * (epsilon_r + 1) / np.pi * np.arccosh(D / max(g_in, 1e-6))
    L_in = 4e-7 * np.pi * D / (2 * np.pi) * np.log(1 / np.sin(np.pi * w_in / (2 * D)))
    f0_in = 1 / (2 * np.pi * np.sqrt(L_in * C_in))
    
    return (L_out, C_out, f0_out), (L_in, C_in, f0_in)

# 计算参数
outer_params, inner_params = ring_fss_parameters(w_out, w_in, D, epsilon_r)
L_out, C_out, f0_out = outer_params
L_in, C_in, f0_in = inner_params

print(f"外环谐振频率: {f0_out/1e9:.2f} GHz")
print(f"内环谐振频率: {f0_in/1e9:.2f} GHz")

# 双谐振传输特性
def dual_resonance_transmission(freq, L1, C1, L2, C2, coupling=0.1):
    """计算双谐振FSS传输特性"""
    omega = 2 * np.pi * freq
    
    # 两个谐振回路
    Z1 = 1 / (1/(1j*omega*L1) + 1j*omega*C1)
    Z2 = 1 / (1/(1j*omega*L2) + 1j*omega*C2)
    
    # 耦合阻抗
    Z_couple = 1j * omega * coupling * np.sqrt(L1 * L2)
    
    # 总阻抗
    Z_total = 1 / (1/Z1 + 1/Z2 + 1/Z_couple)
    
    Z0 = 377
    T = 2 * Z_total / (2 * Z_total + Z0)
    return np.abs(T)

S21_ring = dual_resonance_transmission(freq, L_out, C_out, L_in, C_in)

# 绘制结果
fig, axes = plt.subplots(2, 2, figsize=(14, 10))
fig.suptitle('Ring FSS Dual-Band Response', fontsize=14, fontweight='bold')

# 1. 双频传输特性
ax1 = axes[0, 0]
ax1.plot(freq/1e9, 20*np.log10(S21_ring), 'b-', linewidth=2)
ax1.axvline(x=f0_out/1e9, color='r', linestyle='--', linewidth=1.5, label=f'f1={f0_out/1e9:.2f} GHz')
ax1.axvline(x=f0_in/1e9, color='g', linestyle='--', linewidth=1.5, label=f'f2={f0_in/1e9:.2f} GHz')
ax1.set_xlabel('Frequency (GHz)')
ax1.set_ylabel('Transmission (dB)')
ax1.set_title('Dual-Band Transmission Characteristics')
ax1.legend()
ax1.grid(True, alpha=0.3)
ax1.set_xlim(1, 25)
ax1.set_ylim(-40, 5)

# 2. 不同内外环尺寸比
ax2 = axes[0, 1]
ratios = [0.4, 0.5, 0.6, 0.7]
colors = ['blue', 'green', 'red', 'purple']
for ratio, color in zip(ratios, colors):
    w_in_var = w_out * ratio
    outer_p, inner_p = ring_fss_parameters(w_out, w_in_var, D, epsilon_r)
    S21_var = dual_resonance_transmission(freq, outer_p[0], outer_p[1], 
                                           inner_p[0], inner_p[1])
    ax2.plot(freq/1e9, 20*np.log10(S21_var), color=color, linewidth=2,
             label=f'ratio={ratio}')
ax2.set_xlabel('Frequency (GHz)')
ax2.set_ylabel('Transmission (dB)')
ax2.set_title('Effect of Inner/Outer Ring Ratio')
ax2.legend()
ax2.grid(True, alpha=0.3)
ax2.set_xlim(1, 25)
ax2.set_ylim(-40, 5)

# 3. 等效电路模型
ax3 = axes[1, 0]
# 绘制双谐振等效电路示意图
ax3.text(0.5, 0.8, 'Dual-Resonance Equivalent Circuit', ha='center', fontsize=12, fontweight='bold')
ax3.text(0.5, 0.6, 'L1 -- C1 (Outer Ring)', ha='center', fontsize=10)
ax3.text(0.5, 0.5, '  ||', ha='center', fontsize=10)
ax3.text(0.5, 0.4, 'L2 -- C2 (Inner Ring)', ha='center', fontsize=10)
ax3.text(0.5, 0.2, f'L1={L_out*1e9:.2f} nH, C1={C_out*1e12:.2f} pF', ha='center', fontsize=9)
ax3.text(0.5, 0.1, f'L2={L_in*1e9:.2f} nH, C2={C_in*1e12:.2f} pF', ha='center', fontsize=9)
ax3.set_xlim(0, 1)
ax3.set_ylim(0, 1)
ax3.axis('off')
ax3.set_title('Equivalent Circuit Parameters')

# 4. 频率比与尺寸比关系
ax4 = axes[1, 1]
ratio_range = np.linspace(0.3, 0.8, 20)
freq_ratios = []
for r in ratio_range:
    w_in_temp = w_out * r
    _, inner_temp = ring_fss_parameters(w_out, w_in_temp, D, epsilon_r)
    freq_ratio = inner_temp[2] / f0_out
    freq_ratios.append(freq_ratio)

ax4.plot(ratio_range, freq_ratios, 'bo-', markersize=6, linewidth=2)
ax4.set_xlabel('Inner/Outer Ring Size Ratio')
ax4.set_ylabel('Frequency Ratio (f2/f1)')
ax4.set_title('Frequency Ratio vs Size Ratio')
ax4.grid(True, alpha=0.3)

plt.tight_layout()
plt.savefig(f'{output_dir}/ring_fss_analysis.png', dpi=150, bbox_inches='tight')
plt.close()
print("✓ 环形FSS分析图已保存")

6.3 FSS角度稳定性分析

# -*- coding: utf-8 -*-
"""
FSS角度稳定性分析
"""
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
import os

output_dir = os.path.dirname(os.path.abspath(__file__))
plt.rcParams['font.sans-serif'] = ['SimHei', 'DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False

print("分析FSS角度稳定性...")

# FSS参数
D = 10e-3
w = 8e-3
epsilon_r = 2.2
f0 = 10e9  # 设计谐振频率
c = 3e8

# 入射角范围
theta_deg = np.linspace(0, 60, 100)
theta = np.deg2rad(theta_deg)

# 频率范围
freq = np.linspace(5e9, 15e9, 500)

# 计算角度相关的传输特性
def fss_angle_response(freq, theta, phi, epsilon_r, f0, polarization='TE'):
    """
    计算FSS的角度依赖传输特性
    polarization: 'TE' or 'TM'
    """
    # 角度相关的有效介电常数
    if polarization == 'TE':
        epsilon_eff = epsilon_r - np.sin(theta)**2
    else:  # TM
        epsilon_eff = epsilon_r / (1 - (1 - 1/epsilon_r)*np.sin(theta)**2)
    
    # 角度相关的谐振频率偏移
    f_res = f0 * np.sqrt(epsilon_r / epsilon_eff)
    
    # 计算传输(简化模型)
    Q = 50  # 品质因数
    S21 = np.sqrt(1 / (1 + (Q * (freq/f_res - f_res/freq))**2))
    
    return S21

# 绘制结果
fig, axes = plt.subplots(2, 2, figsize=(14, 10))
fig.suptitle('FSS Angle Stability Analysis', fontsize=14, fontweight='bold')

# 1. TE极化角度稳定性
ax1 = axes[0, 0]
theta_values = [0, 15, 30, 45, 60]
colors = ['blue', 'green', 'red', 'purple', 'orange']
for theta_val, color in zip(theta_values, colors):
    theta_rad = np.deg2rad(theta_val)
    S21_TE = fss_angle_response(freq, theta_rad, 0, epsilon_r, f0, 'TE')
    ax1.plot(freq/1e9, 20*np.log10(S21_TE), color=color, linewidth=2,
             label=f'θ={theta_val}°')
ax1.axvline(x=f0/1e9, color='k', linestyle=':', linewidth=1.5, alpha=0.5)
ax1.set_xlabel('Frequency (GHz)')
ax1.set_ylabel('Transmission (dB)')
ax1.set_title('TE Polarization Angle Stability')
ax1.legend()
ax1.grid(True, alpha=0.3)
ax1.set_xlim(5, 15)
ax1.set_ylim(-30, 5)

# 2. TM极化角度稳定性
ax2 = axes[0, 1]
for theta_val, color in zip(theta_values, colors):
    theta_rad = np.deg2rad(theta_val)
    S21_TM = fss_angle_response(freq, theta_rad, 0, epsilon_r, f0, 'TM')
    ax2.plot(freq/1e9, 20*np.log10(S21_TM), color=color, linewidth=2,
             label=f'θ={theta_val}°')
ax2.axvline(x=f0/1e9, color='k', linestyle=':', linewidth=1.5, alpha=0.5)
ax2.set_xlabel('Frequency (GHz)')
ax2.set_ylabel('Transmission (dB)')
ax2.set_title('TM Polarization Angle Stability')
ax2.legend()
ax2.grid(True, alpha=0.3)
ax2.set_xlim(5, 15)
ax2.set_ylim(-30, 5)

# 3. 谐振频率偏移 vs 入射角
ax3 = axes[1, 0]
f_res_TE = []
f_res_TM = []
for theta_val in theta_deg:
    theta_rad = np.deg2rad(theta_val)
    # TE
    epsilon_eff_TE = epsilon_r - np.sin(theta_rad)**2
    f_res_TE.append(f0 * np.sqrt(epsilon_r / epsilon_eff_TE))
    # TM
    epsilon_eff_TM = epsilon_r / (1 - (1 - 1/epsilon_r)*np.sin(theta_rad)**2)
    f_res_TM.append(f0 * np.sqrt(epsilon_r / epsilon_eff_TM))

ax3.plot(theta_deg, np.array(f_res_TE)/1e9, 'b-', linewidth=2, label='TE Polarization')
ax3.plot(theta_deg, np.array(f_res_TM)/1e9, 'r--', linewidth=2, label='TM Polarization')
ax3.axhline(y=f0/1e9, color='k', linestyle=':', linewidth=1.5, alpha=0.5, label='Normal Incidence')
ax3.set_xlabel('Incident Angle (degrees)')
ax3.set_ylabel('Resonant Frequency (GHz)')
ax3.set_title('Resonant Frequency Shift vs Angle')
ax3.legend()
ax3.grid(True, alpha=0.3)

# 4. 不同介电常数的角度稳定性对比
ax4 = axes[1, 1]
epsilon_values = [1.0, 2.2, 4.4, 10.0]
colors_eps = ['blue', 'green', 'red', 'purple']
for eps, color in zip(epsilon_values, colors_eps):
    f_res_eps = []
    for theta_val in theta_deg:
        theta_rad = np.deg2rad(theta_val)
        epsilon_eff = eps - np.sin(theta_rad)**2
        f_res_eps.append(f0 * np.sqrt(eps / epsilon_eff))
    # 归一化频率偏移
    freq_shift = (np.array(f_res_eps) - f0) / f0 * 100
    ax4.plot(theta_deg, freq_shift, color=color, linewidth=2, label=f'εr={eps}')

ax4.set_xlabel('Incident Angle (degrees)')
ax4.set_ylabel('Frequency Shift (%)')
ax4.set_title('Effect of Substrate Permittivity on Angle Stability')
ax4.legend()
ax4.grid(True, alpha=0.3)

plt.tight_layout()
plt.savefig(f'{output_dir}/angle_stability.png', dpi=150, bbox_inches='tight')
plt.close()
print("✓ 角度稳定性分析图已保存")

6.4 可调FSS设计仿真

# -*- coding: utf-8 -*-
"""
可调FSS设计仿真 - 变容二极管加载
"""
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
import os

output_dir = os.path.dirname(os.path.abspath(__file__))
plt.rcParams['font.sans-serif'] = ['SimHei', 'DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False

print("分析可调FSS特性...")

# FSS参数
D = 10e-3
w = 7e-3
epsilon_r = 2.2
L = 2e-9  # 等效电感 (H)

# 变容二极管参数
C_min = 0.5e-12  # 最小电容 (F)
C_max = 5.0e-12  # 最大电容 (F)

# 频率范围
freq = np.linspace(2e9, 15e9, 1000)

# 计算不同电容值的传输特性
def tunable_fss_transmission(freq, L, C_var):
    """计算变容二极管加载FSS的传输特性"""
    omega = 2 * np.pi * freq
    # 总电容 = 几何电容 + 变容二极管电容
    Z_FSS = 1 / (1/(1j*omega*L) + 1j*omega*C_var)
    Z0 = 377
    T = 2 * Z_FSS / (2 * Z_FSS + Z0)
    return np.abs(T)

# 计算几何电容
C_geom = 0.5e-12  # 几何电容估计值

# 绘制结果
fig, axes = plt.subplots(2, 2, figsize=(14, 10))
fig.suptitle('Tunable FSS with Varactor Diodes', fontsize=14, fontweight='bold')

# 1. 不同调谐电压下的传输特性
ax1 = axes[0, 0]
C_values = np.linspace(C_min, C_max, 6)
colors = plt.cm.viridis(np.linspace(0, 1, len(C_values)))
for C_var, color in zip(C_values, colors):
    C_total = C_geom + C_var
    S21 = tunable_fss_transmission(freq, L, C_total)
    f_res = 1 / (2 * np.pi * np.sqrt(L * C_total))
    ax1.plot(freq/1e9, 20*np.log10(S21), color=color, linewidth=2,
             label=f'C={C_total*1e12:.1f} pF, f0={f_res/1e9:.2f} GHz')
ax1.set_xlabel('Frequency (GHz)')
ax1.set_ylabel('Transmission (dB)')
ax1.set_title('Transmission vs Tuning Capacitance')
ax1.legend(fontsize=8)
ax1.grid(True, alpha=0.3)
ax1.set_xlim(2, 15)
ax1.set_ylim(-30, 5)

# 2. 调谐范围
ax2 = axes[0, 1]
C_range = np.linspace(C_min, C_max, 50)
f_res_range = []
for C_var in C_range:
    C_total = C_geom + C_var
    f_res = 1 / (2 * np.pi * np.sqrt(L * C_total))
    f_res_range.append(f_res)

ax2.plot(C_range*1e12, np.array(f_res_range)/1e9, 'b-', linewidth=2)
ax2.fill_between(C_range*1e12, np.array(f_res_range)/1e9, alpha=0.3, color='blue')
ax2.set_xlabel('Varactor Capacitance (pF)')
ax2.set_ylabel('Resonant Frequency (GHz)')
ax2.set_title('Tuning Range')
ax2.grid(True, alpha=0.3)

# 添加调谐比标注
tuning_ratio = f_res_range[0] / f_res_range[-1]
ax2.text(0.7, 0.8, f'Tuning Ratio: {tuning_ratio:.2f}:1', 
         transform=ax2.transAxes, fontsize=10, 
         bbox=dict(boxstyle='round', facecolor='wheat', alpha=0.5))

# 3. 带宽变化
ax3 = axes[1, 0]
bandwidths = []
for C_var in C_values:
    C_total = C_geom + C_var
    S21 = tunable_fss_transmission(freq, L, C_total)
    # 计算-10dB带宽
    f_res = 1 / (2 * np.pi * np.sqrt(L * C_total))
    # 简化的带宽估计
    Q = 30  # 品质因数
    BW = f_res / Q
    bandwidths.append(BW/1e6)  # MHz

ax3.bar(range(len(C_values)), bandwidths, color=colors, edgecolor='black', alpha=0.7)
ax3.set_xlabel('Tuning State')
ax3.set_ylabel('Bandwidth (MHz)')
ax3.set_title('Bandwidth vs Tuning State')
ax3.set_xticks(range(len(C_values)))
ax3.set_xticklabels([f'{C*1e12:.1f}' for C in C_values], rotation=45)
ax3.grid(True, alpha=0.3, axis='y')

# 4. 插入损耗分析
ax4 = axes[1, 1]
# 考虑变容二极管的串联电阻
R_series = 2.0  # 欧姆

def tunable_fss_with_loss(freq, L, C_var, R):
    """考虑损耗的可调FSS"""
    omega = 2 * np.pi * freq
    Z_L = 1j * omega * L
    Z_C = 1 / (1j * omega * C_var)
    Z_FSS = R + 1 / (1/Z_L + 1/Z_C)
    Z0 = 377
    T = 2 * Z_FSS / (2 * Z_FSS + Z0)
    return np.abs(T)

insertion_losses = []
for C_var in C_values:
    C_total = C_geom + C_var
    S21 = tunable_fss_with_loss(freq, L, C_total, R_series)
    # 找到谐振频率处的插入损耗
    f_res = 1 / (2 * np.pi * np.sqrt(L * C_total))
    idx = np.argmin(np.abs(freq - f_res))
    IL = -20 * np.log10(S21[idx])
    insertion_losses.append(IL)

ax4.plot(C_values*1e12, insertion_losses, 'ro-', markersize=8, linewidth=2)
ax4.set_xlabel('Capacitance (pF)')
ax4.set_ylabel('Insertion Loss (dB)')
ax4.set_title('Insertion Loss vs Capacitance')
ax4.grid(True, alpha=0.3)

plt.tight_layout()
plt.savefig(f'{output_dir}/tunable_fss.png', dpi=150, bbox_inches='tight')
plt.close()
print("✓ 可调FSS分析图已保存")

6.5 FSS雷达罩设计实例

# -*- coding: utf-8 -*-
"""
FSS雷达罩设计实例
"""
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
import os

output_dir = os.path.dirname(os.path.abspath(__file__))
plt.rcParams['font.sans-serif'] = ['SimHei', 'DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False

print("FSS雷达罩设计分析...")

# 雷达罩参数
f_pass_low = 8.5e9   # 通带下限
f_pass_high = 10.5e9  # 通带上限
f_stop_low = 6.0e9    # 阻带下限
f_stop_high = 12.0e9  # 阻带上限

# 频率范围
freq = np.linspace(4e9, 16e9, 1000)

# 设计FSS响应
def radome_fss_response(freq, f_center, BW, rejection=20):
    """
    雷达罩FSS响应模型
    BW: 通带带宽 (Hz)
    rejection: 阻带抑制 (dB)
    """
    # 通带响应(二阶带通)
    Q = f_center / BW
    S21_pass = np.sqrt(1 / (1 + (Q * (freq/f_center - f_center/freq))**4))
    
    # 阻带抑制
    S21_stop = np.ones_like(freq)
    S21_stop[freq < f_pass_low] = 10**(-rejection/20)
    S21_stop[freq > f_pass_high] = 10**(-rejection/20)
    
    # 组合响应
    S21 = np.minimum(S21_pass, S21_stop)
    
    return S21

f_center = (f_pass_low + f_pass_high) / 2
BW = f_pass_high - f_pass_low
S21_radome = radome_fss_response(freq, f_center, BW, 25)

# 绘制结果
fig, axes = plt.subplots(2, 2, figsize=(14, 10))
fig.suptitle('FSS Radome Design Example', fontsize=14, fontweight='bold')

# 1. 雷达罩传输特性
ax1 = axes[0, 0]
ax1.plot(freq/1e9, 20*np.log10(S21_radome), 'b-', linewidth=2.5, label='FSS Response')
ax1.axvline(x=f_pass_low/1e9, color='g', linestyle='--', linewidth=1.5, alpha=0.7, label='Pass Band')
ax1.axvline(x=f_pass_high/1e9, color='g', linestyle='--', linewidth=1.5, alpha=0.7)
ax1.axvline(x=f_stop_low/1e9, color='r', linestyle=':', linewidth=1.5, alpha=0.7, label='Stop Band')
ax1.axvline(x=f_stop_high/1e9, color='r', linestyle=':', linewidth=1.5, alpha=0.7)
ax1.axhspan(-3, 0, xmin=(f_pass_low-4e9)/12e9, xmax=(f_pass_high-4e9)/12e9, alpha=0.2, color='green')
ax1.axhspan(-40, -20, xmin=0, xmax=(f_stop_low-4e9)/12e9, alpha=0.2, color='red')
ax1.axhspan(-40, -20, xmin=(f_stop_high-4e9)/12e9, xmax=1, alpha=0.2, color='red')
ax1.set_xlabel('Frequency (GHz)')
ax1.set_ylabel('Transmission (dB)')
ax1.set_title('X-Band Radome FSS Response')
ax1.legend()
ax1.grid(True, alpha=0.3)
ax1.set_xlim(4, 16)
ax1.set_ylim(-35, 5)

# 2. 不同入射角下的雷达罩性能
ax2 = axes[0, 1]
theta_values = [0, 15, 30, 45]
colors = ['blue', 'green', 'red', 'purple']
for theta, color in zip(theta_values, colors):
    # 角度相关的频移
    shift = 1 + 0.05 * np.sin(np.deg2rad(theta))**2
    f_center_shifted = f_center * shift
    S21_angle = radome_fss_response(freq, f_center_shifted, BW, 25)
    ax2.plot(freq/1e9, 20*np.log10(S21_angle), color=color, linewidth=2,
             label=f'θ={theta}°')
ax2.set_xlabel('Frequency (GHz)')
ax2.set_ylabel('Transmission (dB)')
ax2.set_title('Angle of Incidence Effect')
ax2.legend()
ax2.grid(True, alpha=0.3)
ax2.set_xlim(4, 16)
ax2.set_ylim(-35, 5)

# 3. 雷达罩设计参数
ax3 = axes[1, 0]
ax3.text(0.5, 0.9, 'X-Band Radome Design Parameters', ha='center', fontsize=12, fontweight='bold')
ax3.text(0.5, 0.8, 'Operating Band: 8.5 - 10.5 GHz', ha='center', fontsize=10)
ax3.text(0.5, 0.7, 'Center Frequency: 9.5 GHz', ha='center', fontsize=10)
ax3.text(0.5, 0.6, 'Bandwidth: 2.0 GHz (21%)', ha='center', fontsize=10)
ax3.text(0.5, 0.5, 'Passband Insertion Loss: < 0.5 dB', ha='center', fontsize=10)
ax3.text(0.5, 0.4, 'Stopband Rejection: > 20 dB', ha='center', fontsize=10)
ax3.text(0.5, 0.3, 'Angle of Incidence: ±45°', ha='center', fontsize=10)
ax3.text(0.5, 0.15, 'FSS Unit: Jerusalem Cross', ha='center', fontsize=10)
ax3.text(0.5, 0.05, 'Substrate: εr=2.2, h=1.6mm', ha='center', fontsize=10)
ax3.set_xlim(0, 1)
ax3.set_ylim(0, 1)
ax3.axis('off')
ax3.set_title('Design Specifications')

# 4. 性能对比:FSS vs 传统雷达罩
ax4 = axes[1, 1]
# 传统雷达罩(介质板)
epsilon_r = 3.5
h = 5e-3  # 厚度
c = 3e8

# 计算介质板的反射
Z0 = 377
Z1 = Z0 / np.sqrt(epsilon_r)
beta = 2 * np.pi * freq * np.sqrt(epsilon_r) / c

# 传输系数
Gamma = (Z1 - Z0) / (Z1 + Z0)
T_interface = 1 - np.abs(Gamma)**2
T_total = T_interface**2  # 简化模型

ax4.plot(freq/1e9, 20*np.log10(S21_radome), 'b-', linewidth=2.5, label='FSS Radome')
ax4.plot(freq/1e9, 20*np.log10(np.sqrt(T_total)), 'r--', linewidth=2, label='Conventional Radome')
ax4.axvline(x=f_pass_low/1e9, color='g', linestyle=':', linewidth=1.5, alpha=0.5)
ax4.axvline(x=f_pass_high/1e9, color='g', linestyle=':', linewidth=1.5, alpha=0.5)
ax4.set_xlabel('Frequency (GHz)')
ax4.set_ylabel('Transmission (dB)')
ax4.set_title('FSS vs Conventional Radome')
ax4.legend()
ax4.grid(True, alpha=0.3)
ax4.set_xlim(4, 16)
ax4.set_ylim(-15, 5)

plt.tight_layout()
plt.savefig(f'{output_dir}/radome_design.png', dpi=150, bbox_inches='tight')
plt.close()
print("✓ 雷达罩设计图已保存")

print("\n" + "="*60)
print("FSS仿真分析完成!")
print("="*60)
print("\n生成的仿真图:")
print("1. square_patch_fss.png - 方形贴片FSS分析")
print("2. ring_fss_analysis.png - 环形FSS双频响应")
print("3. angle_stability.png - 角度稳定性分析")
print("4. tunable_fss.png - 可调FSS设计")
print("5. radome_design.png - 雷达罩设计实例")

7. FSS设计流程与优化策略

7.1 设计流程

FSS的标准设计流程包括以下步骤:

步骤1:需求分析

  • 确定工作频段(通带/阻带)
  • 明确带宽要求
  • 确定入射角范围
  • 指定插入损耗和抑制水平

步骤2:单元选择

  • 根据带宽选择单元类型
  • 窄带(<5%):简单贴片/缝隙
  • 宽带(>20%):环形、分形、级联结构
  • 双频/多频:环形、分形结构

步骤3:初始设计

  • 使用等效电路模型估算尺寸
  • 确定周期(通常λ/4<D<λ/2\lambda/4 < D < \lambda/2λ/4<D<λ/2
  • 选择基底材料和厚度

步骤4:全波仿真

  • 建立周期结构模型
  • 应用Floquet边界条件
  • 扫频分析传输/反射特性

步骤5:优化调整

  • 参数化扫描关键尺寸
  • 优化带宽、损耗、角度稳定性
  • 考虑制造公差

步骤6:实验验证

  • 制作样品
  • 波导或自由空间测试
  • 与仿真结果对比

7.2 优化算法

遗传算法优化

1. 编码:将FSS参数(尺寸、周期)编码为染色体
2. 初始种群:随机生成N组参数
3. 适应度评估:全波仿真计算目标函数
4. 选择:保留适应度高的个体
5. 交叉和变异:产生新一代
6. 迭代:重复3-5步直到收敛

粒子群优化(PSO)

1. 初始化粒子群(每组参数代表一个粒子)
2. 计算每个粒子的适应度
3. 更新个体最优和全局最优
4. 更新粒子速度和位置
5. 迭代直到收敛

7.3 制造考虑

加工精度

  • 光刻:±5 μm精度,适合高频FSS
  • 印刷电路板:±50 μm,适合低频
  • 激光切割:±20 μm,适合柔性基底

材料选择

  • 导体:铜(成本低)、金(耐腐蚀)、银(高导电)
  • 基底:FR4(低成本)、Rogers(高频)、聚酰亚胺(柔性)

公差分析
制造公差会导致谐振频率偏移:
Δff≈−ΔLL\frac{\Delta f}{f} \approx -\frac{\Delta L}{L}fΔfLΔL

通常要求制造精度优于设计尺寸的2%。


8. FSS前沿研究与发展趋势

8.1 可重构智能表面(RIS)

可重构智能表面(Reconfigurable Intelligent Surface, RIS)是FSS技术的最新发展,通过集成大量可调单元实现电磁环境的智能调控。

关键技术

  • 大规模可调单元阵列
  • 实时控制算法
  • 信道状态信息获取
  • 低功耗设计

应用场景

  • 5G/6G通信覆盖增强
  • 无线能量传输优化
  • 电磁干扰抑制
  • 雷达隐身

8.2 超表面FSS

超表面(Metasurface)是亚波长厚度的二维超材料,可实现对电磁波相位、幅度的精确控制。

相位调控

  • 几何相位(Pancharatnam-Berry相位)
  • 传播相位
  • 共振相位

应用

  • 异常反射/折射
  • 波束赋形
  • 极化转换
  • 完美吸收

8.3 3D打印FSS

增材制造技术为复杂FSS结构的制作提供了新途径。

优势

  • 复杂三维结构
  • 快速原型制作
  • 低成本小批量
  • 多功能集成

挑战

  • 导电材料打印
  • 表面粗糙度
  • 精度控制
  • 可重复性

8.4 柔性FSS

柔性FSS可应用于曲面和非平面结构。

基底材料

  • 聚酰亚胺(PI)
  • 聚对苯二甲酸乙二醇酯(PET)
  • 纺织物
  • 纸基材料

应用

  • 可穿戴设备
  • 共形天线罩
  • 智能服装
  • 柔性电子

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐