自包含的 MATLAB 算例,模拟 2.5D 周期单元(SP)SAW 谐振器:单个 IDT 周期 + 27 节点六面体(Hex27)高阶单元,前后 / 左右施加 Bloch 周期边界,等效模拟有限孔径下的无限长周期叉指阵列。叠层结构:LiTaO₃ + Al;底部布置复坐标拉伸 PML 吸收外行波。
频域扫频输出 Y₁₁ 导纳曲线。
本 demo 与同系列其它 demo(../SP_3D_1ceng/ ~ ../SP_3D_4ceng/)共享同一套求解器核心,仅在叠层结构、pitch、扫频范围上差异。
仓库采用共享的顶层 codes/ 与 mesh/,驱动脚本会自动把它们加入 MATLAB 路径。
cd SP_3D_1ceng
matlab -batch "Solve3DSAW"或在 MATLAB 交互会话中:
cd SP_3D_1ceng
Solve3DSAW输出
| 文件 / 图窗 | 内容 |
|---|---|
Y11.mat |
fre(1201 个频点)、Q、Y |
| 图 1 | 网格(按材料分区) |
| 图 2 | 位移场 |
| 图 3 | 电势场 |
| 图 4 | Y₁₁ 导纳曲线 |
1201 频点扫频在典型工作站上耗时 约 30 分钟以上(单进程,无需 Parallel Computing Toolbox);Hex27 节点数 ≈ 8 100,内存峰值受网格规模影响。
| 项 | 值 |
|---|---|
| 压电衬底 | LiNbO₃ |
| 叠层结构(衬底 → 上) | LiTaO₃ + Al |
| 电极 | Al(单个 IDT 周期) |
| 周期(pitch) | 1.085 µm |
| 单元 | Hex27(27 节点六面体高阶单元) |
| 边界 | Bloch 周期(左右 / 前后) |
| 底部边界 | PML(复坐标拉伸) |
| 扫频范围 | 1.50 – 2.70 GHz |
| 频点数 | 1201 |
| 网格节点数 | ≈ 8 100 |
MATLAB 网格 .m 文件因体积较大且容易重生成,未随仓库分发。请通过 Gmsh .py 源脚本一次性生成:
# 需要 Gmsh (https://gmsh.info) 及带 gmsh 模块的 Python
python mesh/SP_3D_1ceng.py
# 该脚本输出 mesh/SP_3D_1ceng.m, 驱动脚本 Solve3DSAW.m 通过
# SP_3D_1ceng; % 调用该 .m 加载网格如果运行机器上没有 Gmsh / Python,也可以在其它地方预先生成好 SP_3D_1ceng.m 再拷贝到 mesh/ 目录。
SP_3D_1ceng/
├── Solve3DSAW.m 主驱动脚本(开头自动 addpath ../codes、../mesh)
├── initial_material_parameters.m 材料参数
├── initialPML.m PML 初始化(复坐标拉伸)
└── readGmsh.m 网格读取
(共享的顶层 codes/ 和 mesh/, 请见仓库根 README)
- MATLAB R2023a 或更高版本
- 无需任何附加 Toolbox(单进程顺序扫频)
- Gmsh + Python(一次性,仅用于重新生成
.m网格,见上)
基于 MIT License 发布 · 版权所有 © 2026 Shaoqing Duan