基于UPML边界条件的二维TE波传播FDTD仿真系统
项目介绍
本项目是一款专为二维电磁波模拟研制的数值仿真系统。系统基于时域有限差分算法(FDTD),针对TE极化(涉及Ex、Ey电场分量及Hz磁场分量)实现电磁波在复杂介质环境中的动态演化过程。特别引入了非分裂式完全匹配层(UPML)技术,通过坐标拉伸张量处理,能高效吸收向外传播的电磁波,从而在有限的仿真区域内精确模拟无限大自由空间的波传播特性。该工具可广泛应用于天线辐射、介质散射、电磁波反射与绕射等物理现象的科学研究及教学演示。
功能特性
- 完整TE波模型:同步迭代计算电场分量Ex、Ey和磁场分量Hz,准确描述横电波的演化。
- 非分裂式UPML:集成复频移坐标拉伸算法,无需对场分量进行分裂,在处理非均匀媒质时具备更高的计算稳定性和精度。
- 复杂媒质定义:支持在计算区域内自定义媒质分布,如设置特定相对介电常数和磁导率的介质方块。
- 动态激励源:内置高斯脉冲激励,可模拟时域宽频带信号的辐射与演变。
- 三维联合可视化:实时同步展示瞬时磁场分布云图、全空间合成电场强度图以及指定监测点的时域信号波形。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 硬件建议:具备基本图形加速能力的PC,内存4GB及以上,以确保实时绘图的流畅性。
功能实现逻辑说明
仿真系统通过执行主控逻辑,按照以下步骤完成电磁演化计算:
1. 参数初始化
定义物理常数(光速、真空介电常数及磁导率)。根据设定的2GHz最高频率计算最小波长,进而确定$200 times 200$的离散网格步长。利用Courant稳定条件计算时间步长dt,并引入0.95的缩放因子确保数值稳定性。
2. UPML梯度参数预计算
在计算区域的边缘(默认15层)配置UPML区域。程序通过幂次规律($m=3$)计算电导率sigma和坐标拉伸因子kappa的分布。为了适配Yee网格的交替采样特性,程序分别计算了整数步点和半步点的梯度参数,以精确对应电场和磁场的物理位置。
3. 环境与辅助变量配置
构建$200 times 200$的材质网格,在特定物理坐标(120:150, 80:120)定义一个相对介电常数为4.0的介质障碍物。同时初始化用于处理UPML张量系数的辅助变量Dx、Dy、Bz及其积分项,以解决由于拉伸算子引入的频率相关项。
4. 场量迭代循环
程序核心为一个600次的时间步迭代,每个步长内包含以下计算:
- Bz与Hz更新:依据电场分量Ex和Ey计算旋度,利用UPML系数方程更新辅助磁感应强度Bz,进而解析出磁场Hz。
- 硬源激励:在坐标(50, 100)处叠加上一时刻的高斯脉冲值。
- Dx与Ex更新:根据Hz的y方向空间差分,配合UPML系数更新辅助变量Dx,再由此推导电场Ex。
- Dy与Ey更新:根据Hz的x方向空间差分,配合UPML系数更新辅助变量Dy,再由此推导电场Ey。
5. 实时监测与绘图
在迭代过程中,实时提取位置(155, 100)处的磁场强度进行时域记录。每迭代10个步长,刷新一次可视化窗口:
- 子图1:显示Hz场的二维伪彩色云图,并叠加介质方块的边界虚线框。
- 子图2:计算并显示$|E| = sqrt{Ex^2 + Ey^2}$的总电场强度分布。
- 子图3:动态绘制监测点处的Hz随时间(ns)变化的信号曲线。
关键算法及技术细节分析
- UPML张量方程实现:代码未采用传统的场分裂PML,而是通过引入Dx、Dy、Bz变量,分两步实现麦克斯韦方程的演化。这种方法在处理包含介质交界面的网格时具有更好的数值适应性。
- 坐标拉伸因子计算:sigma_max的选取基于设定的目标反射率(1e-6),通过理论公式确保波在穿过PML层并返回时已被降低到可忽略的水平。
- 二阶精度空间差分:在更新麦克斯韦旋度方程时,严格遵循Yee网格的空间位置偏移(i+1, i, j+1, j),确保了离散格式的空间对称性和计算精度。
- 硬源激励技术:直接在Hz场对应的网格点注入时间函数值,简单有效地激发模拟区域内的电磁波动。
- 自动化分析输出:仿真结束时,程序会自动统计并汇总UPML厚度及所涉及的介质参数,为仿真结果的可靠性提供参考。
使用指引
- 启动MATLAB,将当前目录切换至程序所在路径。
- 在命令行输入主函数名称并回车。
- 仿真窗口将自动弹出,用户可实时观测高斯脉冲从源点扩散、穿过介质方块产生延迟与反射,以及最终进入边界层被平滑吸收的完整过程。
- 右侧波形图可用于观察波到达监测点的准确时刻以及波形包络的变化。