用Ansys System Coupling进行耦合分析的方法
思路:连接不同的求解器
概述
我用System Coupling搭建了流固耦合,但几步之后就发散了。该从哪里查起?
先检查耦合迭代和松弛设置。分区耦合中,流体求解器算出力传给结构,结构求解器算出位移再传回流体,这个交换在一个时间步内重复多次(耦合迭代)。结构轻而周围流体重时,这种交换会修正过头、振幅增大而发散。基本对策是加入只采纳部分修正量的“松弛”。
一个时间步的流程
- 流体求解器按当前边界形状求解流场,求出边界力(压力和剪切力)。
- 把力映射到结构网格,结构求解器求出位移。
- 对位移施加松弛后传回流体侧,移动流体网格。
- 重复1~3直到力和位移的变化足够小,再进入下一时间步。
松弛公式
$g$ 为依次求解流体和结构各一次的操作,$\omega$ 为松弛因子(0~1),$\omega = 1$ 即不松弛。第二个公式是Aitken法,根据前后两次修正量(残差 $\mathbf{r}$)的变化自动确定下一次的系数。
“附加质量效应”这道坎
21世纪初人们明确发现,像血管中的血液、水中的薄板、轻膜周围的空气这样结构与周围流体一样轻的问题,分区耦合很难收敛。原因是“附加质量效应”:推动流体所需的力超过了结构自身的惯性。减小时间步长不仅没用,有时反而更糟。以此为契机,Aitken法和准牛顿法(如IQN-ILS)等巧妙加速迭代的方法得到了广泛应用。
算例:模型问题的迭代次数
把边界位移分为20个模态,第i个模态的附加质量比为 $r_{max}/i$(波长越长耦合越强),对线性模型问题 $x = c - R\,x$ 比较误差降到百万分之一所需的耦合迭代次数:
| 最大附加质量比 | 不松弛 | ω = 0.5 | ω = 0.1 | 最佳固定值 | Aitken法 |
|---|---|---|---|---|---|
| 0.5 | 18 | 19 | 125 | 8(ω=0.79) | 8 |
| 2 | 发散 | 17 | 114 | 18(ω=0.49) | 12 |
| 10 | 发散 | 发散 | 81 | 48(ω=0.16) | 22 |
| 50 | 发散 | 发散 | 发散 | 95(ω=0.037) | 35 |
我以为松弛因子设小就安全,没想到迭代次数增加这么多。
对。ω = 0.1在附加质量比小时需要125次,大时则发散。固定值必须按“耦合最强的模态”取小,这样弱耦合模态的收敛就变慢。Aitken法每次迭代都调整系数,附加质量比50时也只需35次。实际工具常可选择这类自动调整或准牛顿法,发散时值得先试。但这是线性模型问题的结果,实际问题中次数和最佳值都会不同。
设置步骤
检查项目
- 先确认各求解器单独能收敛;单独不收敛的设置耦合后也不会收敛。
- 确认边界网格映射后合力是否守恒。
- 确定耦合迭代的收敛判据(力、位移的变化量),记录每步是否满足。
- 附加质量比大的问题,使用自动调整松弛或准牛顿法。
- 是否只用弱耦合(不迭代)就够,要像强耦合与弱耦合中那样与强耦合结果比较一次再定。
计算时间的考虑
- 一次迭代=两个求解器各算一次:耦合迭代5次,每步计算时间约为5倍。
- 求解器内部迭代:在耦合迭代内,各求解器的内部迭代次数往往可以少一些,只要整体收敛即可。
“减小时间步长反而发散了”
流固耦合不稳定,于是把时间步长减半,结果反而更早发散——附加质量效应强的问题中很常见。时间步长变小时,相对于结构每步能移动的量,流体反力的比例增大,分区迭代更不稳定。按单纯流体分析的直觉“步长越小越稳定”去做会适得其反。此时应重新审视的不是步长,而是松弛方法或耦合方法(强耦合、准牛顿法或整体法)。
常见错误
错误与对策
| 错误 | 后果 | 对策 |
|---|---|---|
| 不松弛就开始 | 附加质量大时发散 | 加入松弛或自动调整 |
| 松弛因子过小 | 迭代次数庞大 | Aitken或准牛顿法 |
| 减小步长求稳定 | 反而更不稳定 | 重新审视耦合方法 |
| 不确认映射守恒 | 力或能量偏差 | 比较边界合力 |
| 不记录耦合收敛 | 未收敛就前进 | 每步检查残差 |
我想进一步了解耦合方法。