4、热仿真方法:有限元热仿真基础、COMSOL热仿真入门、热仿真边界条件设置

做硅光集成,热管理是绕不开的坎。你想想看,硅波导的折射率随温度变化,一个微小的温度波动,就能让MZI的干涉谱漂移好几个自由光谱范围。我刚开始做硅光芯片测试那会儿,就吃过这个亏——明明设计好的分束比,一上电全变了。后来才明白,不是设计错了,是热没管好。

那怎么管?靠手算肯定不行。硅光芯片的结构太复杂了,波导、加热器、衬底、封装,层层叠叠。这时候就需要热仿真。说白了,就是用计算机帮我们解热传导方程。

4.1 有限元热仿真基础

热仿真的核心,是求解热传导方程:

ρ·Cp·∂T/∂t = ∇·(k·∇T) + Q

这个方程看着唬人,其实意思很简单:温度随时间的变化,等于热扩散加上内部热源。ρ是密度,Cp是比热容,k是热导率,Q是热源功率密度。

有限元法(FEM)是怎么解这个方程的呢?我打个比方。你要测量一块地的温度分布,不可能每寸都测。那就把地分成很多小格子,每个格子内假设温度是线性变化的。然后只计算格子顶点(节点)的温度。格子越小,结果越准,但计算量也越大。

我个人习惯,在硅光芯片的热仿真中,网格尺寸控制在波导宽度的1/3到1/2。比如2μm宽的波导,网格取0.7-1μm。太粗了算不准,太细了算不动。

关键参数速查表:

材料 热导率 k (W/m·K) 比热容 Cp (J/kg·K) 密度 ρ (kg/m³)
硅 (Si) 130 700 2329
二氧化硅 (SiO₂) 1.4 730 2200
氮化硅 (Si₃N₄) 30 710 3100
铜 (Cu) 400 385 8960

注意看,二氧化硅的热导率只有1.4,而硅是130。差了将近100倍。这就是为什么硅光芯片的埋氧层(BOX)会严重阻碍热量向下传导。我曾经做过一个对比仿真,同样的加热功率,有BOX层和没有BOX层,芯片表面温度能差30%以上。

4.2 COMSOL热仿真入门

COMSOL是我最常用的热仿真工具。为什么选它?因为它的多物理场耦合做得好。硅光芯片的热仿真,往往不是单纯的热问题,还要考虑电热耦合(焦耳热)、热力耦合(热膨胀)。COMSOL把这些都整合在一起了。

下面我带你走一遍COMSOL热仿真的基本流程。嗯,这里要注意,版本不同界面可能略有差异,但核心步骤是一样的。

第一步:选择物理场

打开COMSOL,新建模型向导。在「传热」模块下,选择「固体传热」。如果你要模拟加热器,还需要添加「电流」接口,做电热耦合。

第二步:建立几何模型

硅光芯片的几何结构,我建议从简到繁。先建一个2D截面模型,跑通了再加厚度变成3D。2D模型计算快,适合参数扫描。3D模型更准,但一次仿真可能要跑几个小时。

// 一个典型的硅光芯片热仿真几何参数(单位:μm)
// 硅衬底厚度:500
// 埋氧层厚度:2
// 硅波导厚度:0.22
// 上包层厚度:1
// 加热器宽度:2
// 加热器厚度:0.1

第三步:设置材料属性

COMSOL的材料库里有硅、二氧化硅等常用材料。但要注意,材料属性是随温度变化的。比如硅的热导率,在300K时是130,到了500K就降到80左右了。如果你仿真的温度范围比较大,建议用温度相关的材料属性。

我的小技巧:在COMSOL中,材料属性可以定义为表达式。比如硅的热导率,我常用这个拟合公式:k(T) = 130 * (T/300)^(-1.3)。虽然不是特别精确,但比常数好多了。

第四步:划分网格

网格划分是热仿真的关键。我一般用「用户控制网格」,在加热器和波导附近加密。具体来说:

  • 加热器区域:最大单元尺寸0.5μm
  • 波导区域:最大单元尺寸1μm
  • 衬底区域:最大单元尺寸50μm
  • 过渡区域:使用自由三角形网格,增长率1.3

第五步:求解与后处理

点击「研究」→「稳态」,开始求解。求解完成后,用「温度」图看整体温度分布,用「切面图」看特定截面的温度梯度。我习惯在加热器正下方取一条线,看温度沿深度的衰减曲线。

COMSOL热仿真流程图 选择物理场 固体传热+电流 建立几何模型 2D→3D 从简到繁 设置材料属性 温度相关参数 划分网格 局部加密 设置边界条件 热源/对流/热沉 求解与后处理 稳态/瞬态分析 温度分布结果 参数调整

4.3 热仿真边界条件设置

边界条件设错了,仿真结果就是废的。我见过太多人,模型建得漂漂亮亮,结果因为边界条件设错,算出来的温度差了十万八千里。

常见的边界条件有三种:

  1. 恒温边界(Dirichlet条件):指定边界上的温度值。比如芯片底部贴在热沉上,温度固定为25°C。
  2. 热流边界(Neumann条件):指定边界上的热流密度。比如加热器表面施加一个热流。
  3. 对流边界(Robin条件):指定边界与周围流体的换热系数。比如芯片表面与空气的自然对流。

⚠️ 常见陷阱:

  • 不要把所有边界都设成恒温。芯片侧面和上表面应该是自然对流,不是恒温。
  • 对流换热系数不要乱设。自然对流一般是5-25 W/m²·K,强制对流可以到100以上。
  • 热沉的热阻要算进去。我曾经偷懒没算,结果仿真温度比实测低了15°C。

在COMSOL中设置边界条件,我建议这样操作:

// 典型边界条件设置(COMSOL界面操作)
// 1. 芯片底部:温度 25°C(恒温边界)
// 2. 芯片上表面:对流换热系数 10 W/m²·K,环境温度 25°C
// 3. 芯片侧面:对流换热系数 5 W/m²·K,环境温度 25°C
// 4. 加热器区域:热源功率密度 1e12 W/m³(对应1mW功率,1μm²截面)
// 5. 对称面:绝热边界(如果模型有对称性)

这里有个细节。加热器的热源功率密度怎么算?加热器功率除以加热器体积。比如加热器长100μm,宽2μm,厚0.1μm,体积就是20μm³。如果功率是1mW,功率密度就是1e-3 / (20e-18) = 5e13 W/m³。这个数值很大,但别怕,COMSOL能处理。

我的经验:做热仿真时,一定要先跑一个简单模型验证边界条件。比如只加热一个加热器,看温度分布是否合理。我曾经有一次,把对流换热系数设成了1000,结果芯片温度跟室温一样,完全不对。后来才发现是单位搞错了。

最后说一句,热仿真不是一次就能搞定的。你需要反复调整网格、边界条件、材料参数,直到结果与实验吻合。我一般会做一个加热器测试结构,实测温度-功率曲线,然后用仿真去拟合。拟合上了,再去做复杂结构的仿真。这样心里才有底。