COMSOL多物理场方法
理论:一次全部求解还是交替求解
概述
用COMSOL这样的通用工具求解耦合问题时,求解器设置应该选什么?
大致分为全耦合(整体式)和分离两种求解方式。全耦合把电位、温度、位移等所有未知量合成一个方程,连同相互影响一起用牛顿法求解。收敛快而稳定,但矩阵变大,内存和每次计算时间增加。分离求解按物理依次求解并反复,每次计算轻,但物理间联系强时迭代次数增加,有时不收敛。选哪种由耦合强度和问题规模决定。这里用升温后更易导电的元件这一强耦合例子比较两者。
例题:热敏电阻的电-热耦合
在长10 mm的棒两端加电压U,两端温度保持300 K。σ₀ = 1 S/m,B = 3000 K,热导率k = 2 W/mK,分为41个点。温度越高电导率越高(电阻越低)。
全耦合牛顿法
右上和左下的项分别是温度对电的影响和电对温度的影响。分离求解不用这两项,逐一求解并反复。
牛顿与拉夫森
用切线反复逼近方程根的方法,牛顿在约1669年的手稿中写过,但到1711年才出版。其间的1690年,拉夫森以更易用的形式发表,所以至今称为“牛顿-拉夫森法”。三百多年前的方法,如今是求解有数百万未知量的耦合问题的核心。
算例
例1:电压与收敛所需迭代次数(容差10⁻⁸ K)
| 电压 | 最高温度 | 分离求解 | 全耦合 |
|---|---|---|---|
| 10 V | 307.0 K | 11次 | 4次 |
| 15 V | 318.7 K | 18次 | 5次 |
| 20 V | 347.5 K | 38次 | 6次 |
| 22 V | 377.4 K | 69次 | 8次 |
| 23 V | 415.6 K | 166次 | 9次 |
| 23.5 V | — | 发散 | 不收敛 |
例2:解存在的范围(延拓法)
电压每次提高0.1 V,以前一个解为初值继续用牛顿法求解,到23.2 V(最高温度443.3 K)都能得到解,23.3 V时解消失。此后不存在稳态,温度持续上升。
23.5 V时两者都不收敛,不是求解设置不好,而是因为没有解。
没错。耦合计算不收敛时,很多人首先改变松弛系数或缩小时间步,但像这样物理上没有稳态解时,任何设置都不会收敛。勉强收敛的答案反而更危险。要区分,可以逐步加严条件追踪解(延拓法),看最高温度是否急剧上升后中断。本例从22 V到23 V的1 V内最高温度升高38 K,再过约0.3 V就中断了。这种形态下,设计应在其前面留足余量。分离求解迭代次数急增也是接近分界的信号。全耦合的优势在于能用少量迭代一直追踪到分界边缘,正确估计极限的位置。
建模流程
- 先在弱条件(低电压、低负荷)下求解,确认收敛。
- 问题小且耦合强选全耦合,问题大且耦合弱选分离求解。
- 逐步提高条件,以前一个解为初值推进求解。
- 迭代次数或最高值突然增加时,怀疑解存在的分界。
- 不收敛的条件下,用瞬态计算确认实际发生什么。
“怎么降低松弛系数都不收敛的分析”
某电源元件的电-热耦合分析中,只有1.3倍额定负荷的工况怎么也不收敛。负责人多次降低分离求解的松弛系数、增加迭代上限,结果都没变。改用全耦合并逐步提高负荷追踪解,发现约1.25倍额定时最高温度急剧上升,此后没有解。元件材料具有电阻随温度下降的特性,正处在热失控分界上。设计改为加强散热。
常见错误
错误与对策
| 错误 | 后果 | 对策 |
|---|---|---|
| 直接在最终条件下求解 | 初值太远不收敛 | 分阶段提高条件 |
| 只从设置找不收敛原因 | 漏掉热失控 | 调查解是否存在 |
| 强耦合用分离求解 | 迭代增加、发散 | 使用全耦合 |
| 大问题用全耦合 | 内存不足 | 分离+预处理 |
| 放宽容差当作收敛 | 错误答案 | 用残差和物理量确认 |
我想了解相关内容。
详细
报告