You are on page 1of 6

求解器的设置经验

连续写了不少流程化的东西,后面还有很多的内容需要完善,是个长期的事

儿,今天想分享一些关于求解器的小技巧。

求解器这一块儿的内容在之前的分享中基本没有提及,实际上求解器是我们

完成模型计算的根本。先来看看研究的基本界面:

在 锂 离 子 电 池 仿 真 中 , 我 们 最 常 用 到 的 是 “ Time Dependent with

Initialization”,也就是带初始化的瞬态这个研究方法。

这个求解器中包含了两个求解步骤:

第一个步骤是电流分布初始化,第二个就是瞬态。

我以最常用的热电耦合模型来说明,明确一点,耦合一定是发生在不同物理

场之间的,通过一些参数或变量交换产生影响的过程,耦合的两个或多个物理场

可以是同一维度,也可以是不同维度。

打开第一个步骤,如下图所示:
这里可以看到物理场与变量选择下方的固体传热物理场前方有一个叹号,这

是因为固体传热物理场中没有与电流分布初始化相关的模型变量,在进行计算前

要把固体传热物理场从第一个求解步骤中删去。

接下来看看瞬态步骤:
这需要注意的是时间单位与时间范围的设置。

下面就开始干货时间,上面两个只是求解步骤,并不是求解器,真正有用的

东西都在求解器的设置中,在求解前是不显示求解器的,这需要我们选择“显示

默认求解器”来把这个家伙找出来。
终于看到瞬态求解器了,今天分享两个小技巧,一个和分离式求解器有关,

一个与全耦合求解器有关。
当我们同时将两个物理场全部搭建,我们自动生成的求解器就会默认使用分

离式求解器,这种求解器在求解热电耦合模型的时候,会将温度作为分离步进行

求解计算,我们可能会遇到这样一个问题:构建的模型在低倍率下计算的很顺利,

但是电流倍率提高以后(10C 或 30C 以上),就不能计算了,错误提示是找不到

一致的初始值或者是除以 0,又或者是哪个参数关系式会报错。此时可以用阶跃

函数作为大电流边界条件的过渡,如果还是不行,就要通过分离步动手了。

默认的非线性方法是常数(牛顿),在求解的边界条件比较极端的时候,可

能会因为初始的非线性过大而导致在设定的非线性方法里找不到初始值,改为自

动可以极大地改善这种情况,同时能够加快模型的计算速度,同时不影响精度。

在做内短路这种短时间大倍率的模型时,这是改善模型收敛性的重要方法。

另一种情况是:我们先建立了电化学模型,想先计算一下,确定模型是不是

能够顺利计算,此时发现求解器发生了变化,“Fully Coupled”(全耦合)代替

了分离式求解器,这个时候即使添加完耦合关系,求解器也不会更新,解决的方

法有两个:
1. 删除求解器,重新生成的求解器会回到默认的分离式求解器,按照上述

方法进行调整;

2. 调整全耦合求解设置:

改动非线性方法或将最大迭代次数加一。

如果上述的方法都不适用,考虑是模型设置或者参数有问题。

You might also like