ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

COMSOL声子晶体复能带建模全攻略:从实能带到带隙衰减

COMSOL声子晶体复能带建模全攻略:从实能带到带隙衰减 做声子晶体的人都知道能带图里最让人兴奋的东西叫带隙。带隙之外色散关系清清楚楚哪里能传、哪里截止一眼就能看明白可一旦把频率扫进带隙内部标准能带方法给出的结果就是一片空白。我第一次看到这种空白时心里直犯嘀咕带隙里真的一点模式都没有吗后来才弄明白不是没有模式而是传播模式变成了倏逝模式信息全藏在复能带里。这篇博文就聊聊我如何在COMSOL里从零起步把声子晶体的复能带模型逐步搭起来包括思路、复现步骤、踩过的坑以及给刚接触这个方向的朋友的几点建议。无论你是做声学超材料的研究生还是搞隔振减振的仿真工程师只要手上已经能跑通普通能带计算这篇文章应该能帮你往前再走一步。1. 动手之前先理清声子晶体能带与复能带的关系1.1 实能带只能告诉你“哪些频率能传”声子晶体的本质是周期性弹性介质核心物理是布洛赫定理。在周期性结构中弹性波解可以写成周期函数与平面波的乘积u(r) U(r) e^{i k·r}其中 U(r) 具有与晶格同周期的空间变化k 为波矢。把这种形式代入弹性波方程再把波矢 k 作为参数扫过不可约布里渊区每个 k 点对应一系列特征频率把这些频率连成线就是实能带结构。实能带最大的价值是告诉你哪些频率段存在可以传播的 Bloch 模式哪些频率段任何实波矢都对应不上那个频段就是带隙。带隙内没有实波矢意味着稳态传播波无法穿过周期性结构这就是声子晶体隔振、减振、滤波等众多应用的物理基础。但实能带只回答了一半问题。带隙内没有稳态传播模式不代表带隙内没有波动行为实际上在带隙频率范围内结构内部依然存在波动响应只是这些响应以指数衰减的形式出现也就是倏逝波。这种波的波矢不再是纯实数而是复数k k_real i·k_imag。实部反映了空间振荡周期虚部反映了指数衰减率。所以要想完整理解带隙内部的物理过程必须跳出实能带进入复能带。1.2 复能带藏在带隙里的衰减信息复能带模型本质上是把能带求解从实波矢扩展到复波矢平面。在一个无损耗的周期结构中系统本征方程在实数频率下依然可以存在非零解但这种解对应的波矢带有虚部空间上呈现指数形式的衰减或增长。这个虚部不是数值噪声它对应带隙内倏逝波的能量衰减。虚部越大单位长度内波幅衰减越快结构的隔离效果越强。对有限尺寸的声子晶体板或有限周期数的隔振结构带隙内的隔离性能正是由这些倏逝波的衰减系数决定的。我在做实际隔振方案时就遇到过“理论带隙很宽实测隔离效果却不理想”的情况后来一查复能带发现问题出在带隙边缘附近虚部太小有限周期数的结构根本来不及把波衰减到足够低。复能带的信息还有助于理解缺陷态和边界态。带隙内引入缺陷后缺陷处允许局域模式这种模式本质上可以理解为两个倏逝波的线性组合在缺陷区域形成驻波。如果不算复能带很难说清楚一个缺陷态为什么能存在、能存在多深。所以复能带不只是一个理论玩具它对实际器件设计有直接指导意义。1.3 为什么最终选COMSOL来摸这个模型做复能带的方法不止一种。学术圈常用传递矩阵法、平面波展开法、有限元法也可以用商业软件配合脚本实现。我最终选择 COMSOL Multiphysics主要有三点考虑。COMSOL 支持单胞建模加 Floquet 周期边界条件做标准实能带非常顺手几何、材料、网格全在 GUI 里完成后处理也很直观。COMSOL 的 PDE 自定义能力足够强可以构造以复波矢为特征值的自定义特征值问题这是很多通用有限元软件不容易做到的地方。整个工作流能在同一个平台内从实能带推进到复能带不需要把数据导来导去。唯一要提醒的是COMSOL 自带的标准特征频率研究不会直接给你复能带你需要额外做设置这部分我会在第四节详细展开。2. 单胞建模与周期边界最容易被基础设置拖后腿2.1 几何参数与材料参数怎么定先用一个二维正方形晶格声子晶体做例子这类模型收敛快、能带特征明显、后处理直观适合作为复能带学习的第一站。我用的几何参数是晶格常数 a 10 mm散射体为圆形截面半径 r 2 mm填充率约 12.6%。散射体和基体选经典的钢-环氧树脂组合。钢散射体杨氏模量 E 210 GPa泊松比 ν 0.3密度 ρ 7850 kg/m³。环氧树脂基体杨氏模量 E 4.35 GPa泊松比 ν 0.37密度 ρ 1150 kg/m³。钢和环氧树脂之间的弹性模量差异接近两个数量级阻抗失配足够大能带图中会出现明显的带隙后续复能带的虚部特征也更容易观察。这个组合在文献里很常见参数也好找别人复现起来不费劲。几何这一步有个容易踩的坑散射体和基体的交界面必须做布尔并集操作然后保留“形成联合体”设定这样才能让网格在界面处自然连续。如果你偷懒用“形成装配体”后面施加 Floquet 周期条件时边界选择会平白多出很多内部面很容易选错。选材料归属时散射体区域选钢基体区域选环氧树脂两个域的材料属性要分清这一步看不仔细会影响能带位置。2.2 Floquet周期边界条件的三处关键设置Floquet 周期条件的设置在固体力学接口下“周期性”子节点里激活周期性类型选择“Floquet周期性”。表面上看起来简单实际操作中有三处容易出问题。第一处是边界选择。2D 正方形单胞有四条外边界左边界-右边界是一对周期对下边界-上边界是另一对周期对。COMSOL 要求成对选择而且需要指定源边界和目标边界方向不能搞反。如果方向反了计算出的能带会在某些波矢处出现错误的简并或反常开口。第二处是波矢分量定义。COMSOL 中 Floquet 周期边界会要求输入波矢在 x 和 y 方向的分量通常命名为 kx、ky这两个量建议直接定义为全局参数方便后面参数化扫描。要注意 COMSOL 的相位约定不同版本对波矢正负号的处理可能存在差异判断方法很简单先算一个带外频段观察能带是否关于 Γ 点对称如果左右不对称说明符号约定有问题把波矢整体取负再试。第三处是研究类型。标准能带扫描应该选“特征频率”研究Eigenfrequency而不是“频域”研究。很多新手在这里选错导致后续无法扫出能带。特征频率研究中的“所需特征值数”建议设置为 8 到 12 个太少会漏掉目标频段内的平直带太多会拖慢求解速度。2.3 网格与特征频率求解器的搭配经验声子晶体单胞的网格划分我的经验是每波长至少 6 到 8 个单元。但在扫能带之前你并不知道目标频率段的波长到底多少所以更实用的做法是先用“物理场控制网格”默认的细化级别跑一遍看前几个频带是否光滑如果个别点出现抖动或者频带断裂再把网格细化一级。对二维模型优先考虑“映射”网格虽然单胞是圆孔不好直接映射但可以把单胞分成多个四边形的子域来划分。映射网格的好处是网格数量少、排列规整特征频率求解的收敛性和稳定性都比自由三角形网格好。我测试过同一个单胞自由三角形网格在较高频段下会出现假频带映射网格则干净很多。对于圆形散射体可以把圆分割成四分之一或者八分之一块再对每块进行映射划分操作成本不高收益很明显。特征频率求解器方面COMSOL 默认配置一般够用。如果扫描到某个波矢点时提示特征值求解失败优先检查网格质量再考虑调整求解器的容差设置。不要一上来就换求解器多数情况下问题出在模型设置。3. 先把实能带跑通带隙位置要有谱3.1 沿不可约布里渊区扫描波矢二维正方形晶格的标准能带计算需要沿着不可约布里渊区的边界路径扫描也就是 Γ → X → M → Γ。对正方形晶格来说这些高对称点分别对应Γ 点kx 0ky 0。X 点kx π/aky 0。M 点kx π/aky π/a。在 COMSOL 中实现路径扫描最直接的办法是定义一个“路径参数”s由 s 线性映射到波矢 k 的坐标。比如将路径分为三段每一段设置对应的 kx 和 ky 表达式第一段 Γ→Xs 从 0 到 1kx s·π/a。第二段 X→Ms 从 1 到 2kx π/aky (s-1)·π/a。第三段 M→Γs 从 2 到 3kx (3-s)·π/aky (3-s)·π/a。参数化扫描的步数建议每段至少 40 步三段共 120 个波矢点。步数太少的话带隙边缘位置看不准后续复能带的虚实转换点也很难对齐。步数太多则求解时间翻倍意义不大40 到 60 步是性价比区间。3.2 从特征频率结果整理带结构数据特征频率研究完成后COMSOL 会为每个波矢点输出一组特征频率。这里有一个常见困惑COMSOL 输出的特征频率默认是对“特征值”做开方单位同样是 Hz但它的值可能是虚数也可能是负数开方出来虚数这取决于方程形式。对无损耗弹性介质特征频率基本都是实数可以直接用。把数据完整导出来我习惯在“派生值”里选择“全局计算”表达式输入 sqrt(freq) 或者直接使用特征频率变量然后在表格中把同一波矢点的多个频带值整理成多行再在外部绘图工具里画能带曲线。也可以用 COMSOL 内置的一维绘图组直接在参数化扫描的结果上以 s 为横轴以特征频率为纵轴绘图一个图组就能把所有频带画出来非常省事。绘图时建议把横轴还原为实际波矢路径把三段路径的累计波矢长度作为横坐标这样图表更符合文献惯例。如果横轴只是 0 到 120 的扫描步数能带图也能看但和文献对比时会比较别扭。3.3 带隙的识别与验证技巧从能带图中找到带隙本质上是找两个相邻频带之间是否存在频率空白。但“空白”不等于一定没有模式在扫描路径之外的布里渊区内部可能存在某些态所以严格确认带隙最好再做一个布里渊区内部的选点扫描看看带隙频率范围内是否真的没有实波矢解。一个更快速的工程验证方法是把单胞替换为 3×3 或 5×5 的超胞施加常规周期边界计算特征频率。如果某个频率范围内超胞的特征频率数量为零对应频率段就是带隙。超胞法计算成本高但验证结果非常可靠我在带隙边界拿不准的时候都会补一次超胞检查。带隙识别出来后我建议立刻记下带隙的上下边界频率这对后续复能带计算有直接影响。此外观察带隙边缘对应的模态形变也很有用通常带隙下边缘对应散射体的刚体振动模式上边缘对应基体的局部形变模式。理解这两个模态的物理图像有助于解释复能带虚部曲线为什么呈现特定形状。4. 复能带模型实现带隙内的“看不见”模式4.1 复波矢的数学定义与物理含义复能带计算要回答的核心问题是在带隙频率范围内周期结构中能存在什么样的波矢解把波矢写为复数k k_real i·k_imag对应空间波动项 e^{i k x} 变成 e^{i k_real x}·e^{-k_imag x}。k_real 决定波场在空间中的振荡特征k_imag 决定衰减率且 k_imag 为正时波沿正 x 方向衰减。在无损耗周期结构里带隙内的复波矢通常是成对出现的一个虚部为正一个虚部为负很像色散关系在禁止频段里被“剪断”后两根尾巴掰开延伸到复波矢平面。带隙中心附近通常以纯衰减模式为主k_real 等于带边波矢或者根本为零靠近带隙边缘时k_imag 逐渐变小最终在带边处归零此时衰减模式过渡为传播模式。这也是复能带和实能带在带边处自然衔接的物理原因。如果只是定性了解带隙内部衰减快慢最简单的做法是在 COMSOL 中做“扫掠复数波矢”的特征频率计算固定波矢方向让波矢虚部 ki 从零逐步增大看看每个 ki 下带隙内是否出现实数特征频率当出现实数频率时ki 和该特征频率共同构成复能带数据点。这个方法实现简单且可以与标准 Floquet 条件无缝配合唯一的限制是它得到的是“给定衰减率下存在哪种振荡模式”和严格数学意义上的复本征值问题视角略有不同但用于工程带宽评估足够。4.2 用PDE模块构造并求解复波矢特征问题如果你希望得到更严格的复能带曲线也就是固定实频率 ω直接求解复波矢 k那就需要跳出固体力学接口改用 COMSOL 的偏微分方程模块来自行构造方程。思路是这样的弹性波时谐方程可以写成∇·(C : ∇u) ρ ω² u 0。根据 Bloch 定理令 u(x,y) U(x,y) e^{-i kx x}其中 U 为关于 x 方向周期的函数。把这个形式代入弹性波方程经过整理后会出现关于 kx 的一次项和二次项最终得到一个关于 kx 的二次特征值问题(K0 kx K1 kx² K2 - ω² M) U 0。当 ω 取带隙内的某个实数值时kx 就是待求的特征值它自然会出现复数解。COMSOL 默认的特征值求解器通常处理一次特征值问题也就是 (A - λB) X 0 的形式所以上面的二次特征值问题需要先降阶。标准做法是引入辅助变量 V kx·U把方程改写为(K0 - ω² M) U kx K1 U kx² K2 V 0 kx U - V 0。这样方程组就变成以 kx 为特征值的线性特征值问题可以在 COMSOL 的“弱解型 PDE”或“系数型 PDE”接口中实现。实际操作中我用的是“弱形式 PDE 接口”把位移分量 Ux、Uy 以及辅助变量 Vx、Vy 作为待求的因变量在弱表达式中显式写出与 kx 相关的各项。COMSOL 的研究类型选择“特征值”特征值即对应 kx。这个方案实现门槛比扫掠虚部方法高不少但得到的结果更干净能直接画出带隙内完整的 k_real-k_imag 关系曲线并且和实能带无缝拼接。建议你先在简单的 1D 链模型上验证一遍 PDE 公式推导是否正确再迁移到 2D 单胞上否则方程写错一个符号排查起来会非常费劲。4.3 超胞衰减拟合法工程上最容易上手的替代方案如果不想碰 PDE 自定义还有一个非常工程化的复能带验证方法构造有限周期超胞直接在带隙频率下激励通过位移衰减曲线拟合 k_imag。具体做法是在 COMSOL 中建立 x 方向 5 到 10 个单胞的超胞模型y 方向仍然使用周期性边界然后在超胞左端施加指定频率的简谐位移激励。频率选在带隙中心附近时波的幅值沿 x 方向会呈现指数衰减。提取超胞中心线上的位移幅值沿 x 方向的分布用指数函数 exp(-α x) 拟合α 就是 k_imag 的绝对值。这个方法操作起来非常直观用的全是 COMSOL 基础功能。唯一的陷阱是超胞的右端会产生反射波导致衰减曲线末端出现翘起拟合时不要把所有区域都纳入拟合范围只取前几个单胞的数据点反射影响会小很多。如果想更干净可以在末端加一段低反射边界条件但即使不加带隙频率下反射波本身就弱影响完全可控。频域研究中还有一个附带收获直接扫描从带外到带内的频率范围保存左端和右端的位移幅值比值就能得到“传输损耗谱”这个谱的陡峭程度和复能带虚部曲线高度相关。我个人在做工程方案时经常先用传输损耗谱看大致趋势再用衰减拟合法确认关键频率点的衰减系数效率非常高。4.4 两种方法的结果对比与讨论扫掠虚部法和超胞衰减拟合法得到的结果本质上是同一物理量的两种观测角度一个是本征值分析一个是受迫响应。理论上如果模型正确、网格足够密两者的 k_imag 对频率曲线应该非常接近。我在钢-环氧体系的二维声子晶体上做过对比。带隙中心频率处扫掠虚部法得到的 k_imag 大约在 0.8/a 到 1.2/a 之间超胞衰减拟合法得到的结果也落在这个区间内两条曲线在带隙内部吻合良好。在带隙边缘附近两种方法都会出现数值波动原因是带边处衰减率趋近于零受迫响应中传播成分占了上风指数拟合的信噪比下降。对比时还有一点需要留意超胞模型的横向周期边界条件会影响衰减模式的极化特性。如果你的超胞在 y 方向只放了一排单胞周期边界条件会把 y 方向的波矢限定为零这相当于只考虑了布里渊区路径上的特定截面和复能带图中固定 ky0 的截面是对应的。对比之前要确认两种方法设定的波矢路径一样否则风马牛不相及。5. 常见问题与排查技巧实录5.1 求解器不收敛与特征值漏解扫实能带时最常碰到的问题是某些波矢点特征频率求解失败或者某一支频带突然断掉。这不是物理问题多数是网格质量或者特征值个数设置太少造成的。排查顺序我建议这样先看网格尤其是散射体周围和周期边界附近是否有畸形单元再检查特征频率数是否足够频率范围如果覆盖前几条带最好设置比预期频带数多两到三个特征值最后看周期边界方向定义方向反了会导致某些模式被错误地排除在求解域之外。还有一种情况是在带隙频率范围内求解特征频率时COMSOL 可能把虚数特征频率也输出出来。遇到这种情况先别慌看虚频的绝对值大小如果虚部接近零可以直接取实部作为近似频率如果虚部很大那大概率是求解到了非物理的数值模式需要通过模态形变后处理来剔除正常弹性本构下几乎不会出现这种问题。5.2 周期边界方向错误导致的能带错乱Floquet 周期边界条件中源边界和目标边界选反是最常见的低级错误但它的危害不容易被察觉。错误设置通常不会导致求解失败而是表现为能带在 X 点或者 M 点出现不应有的能带开口或者在对称点处的简并度不对。有一次我帮学生排查一个能带异常他用了周五下午改的模型周一来求助能带图在高对称点处出现了一个小缺口怎么看都不对。最后发现就是周期边界配对选反了左右边界配对时源和目标反了波矢取负之后能带就正常了。从那以后我养成了一个习惯每次建立新单胞第一件事就是在一个非高对称的波矢点用周期边界的源边界和目标边界分别检查位移场的相位确认 COMSOL 内部的相位约定和我的波矢定义一致。5.3 复波矢符号约定与虚部解释复波矢计算中最容易产生混淆的是符号约定。COMSOL 的 Floquet 条件中波矢的相位因子到底是 e^{ikx} 还是 e^{-ikx}不同物理场接口可能存在差异甚至在同一个接口的不同版本间也有微调。我的建议是不要死记 COMSOL 的约定而是用一个一维简单算例验证跑一个均匀介质的频散关系如果算出来波传播方向和激励方向一致说明你的波矢符号与软件约定相符否则取负号重新试。这个方法五分钟就能完成能帮你省下后续复查的大量时间。另外一个常见疑惑是复能带中 k_imag 的正负分别代表什么意思实际上正负只代表衰减方向带隙中始终存在相反方向的一对衰减解。实际结构中用哪一支取决于你关注的是从左往右衰减还是从右往左衰减。不要把 k_imag 的符号理解为“增益”或“损耗”模拟中材料是无损耗的。5.4 后处理中的细节复位移数据的呈现COMSOL 在频域求解中得到的位移场是复数。很多人习惯于直接用“位移模”来看场图但在复能带分析中单独看模会丢失相位信息。如果你想直观展示倏逝波的指数衰减特征建议绘制实部位移场或者虚部位移场这样能同时看到空间振荡和指数包络的两个特征。如果要绘制传输方向上的衰减曲线建议提取一个位移分量在网格节点上的复数值取模后放到一维绘图中。注意位移模在端部激励源附近会有近场效应近场范围内位移幅值并不严格遵循指数衰减拟合时要主动剔除这一段。5.5 与文献数据对比时的对表技巧把 COMSOL 算出的复能带与论文中的结果对比时有一个很容易被忽略的换算问题很多文献用无量纲频率 fa/c 或者 ωa/(2πc) 表示纵轴而 COMSOL 默认输出频率单位是 Hz画图前要先统一折算。另外横轴 k_imag 有些文献写成 1/m有些用 k_imag·a无量纲表示两种表示法画出来的曲线形状相同但刻度完全不一样别直接叠加比较。我每次保存数据时都会同时保留原始频率和 a 值方便后续做无量纲处理。再有一个小技巧文献中复能带的颜色或线形常常表示不同的极化模式纵波、横波还是混合模式COMSOL 中可以通过特征模态的极化率分析来分类也就是计算位移场的散度和旋度占比。如果暂时不想做这么细致的模态分析至少可以从带隙边缘的本征模形变去推断对应上之后对比起来会更有意义。做了这么多轮复能带探索我个人最深的体会是实能带告诉你“能不能传”复能带告诉你“不能传的频段里到底发生了什么”。这两个层次的信息合在一起才能完整描述声子晶体对弹性波行为的调控能力。COMSOL 的开放性让复能带模型不再只停留在论文公式里它能成为工程设计的日常工具。如果你正准备做类似方向建议先从实能带和带隙确认做起接着用扫掠波矢虚部的方法快速摸一遍带隙内的衰减趋势最后再手写 PDE 拿严格曲线。后面每一步都建立在前一步的验证之上出了问题也好定位。这个方法我用了很久稳而且省时间。
返回列表