购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3 求解器

本节将介绍JMAG内电磁场求解器的一些设置,通过理解这些设置的细节,可以帮助用户在计算时算得更快更准。

在JMAG中的[Study]-[Properties]下可以看到,与求解器相关的设置有4个区域(图3-20),分别是Parallel(并行)、Solver(求解器)、Linear Solver(线性求解器)和Nonlinear(非线性)。下面将逐个介绍其内容及功能。

图3-20 JMAG中的求解器设置

3.3.1 并行

并行功能是一种实现电磁场仿真高速计算的方法,可以实现单个模型的加速计算。通过多线程、多核计算,实现短时间内对大规模模型的计算。并行设置界面如图3-21所示,该功能分为“Do Not Use”“Shared Memory Multiprocessing(SMP)”“Massively Parallel Processing(MPP)”以及“Use GPU”4个部分。

图3-21 并行设置界面

(1)Do Not Use即不使用并行功能。

(2)Shared Memory Multiprocessing(SMP)SMP是共用内存型加速,是以线程为单位进行加速计算的方法。SMP最主要的特征是它限定于一台计算机上进行计算,无法实现多台计算机共同加速。因此,无法实现大于计算机线程数的加速。此外,JMAG中将并行度限定为2~36之间的偶数。

针对SMP的加速效果,使用10个不同规模、不同种类的模型进行2~36并行度的测试(表3-1),并计算出以非并行为基准的加速效果(图3-22)。

表3-1 10个不同的模型

图3-22 10个模型的SMP加速效果对比

可以看出,大部分模型的加速效果都随着并行度的增加而增加,并且并行度在20以下时效果最为明显,之后慢慢趋于稳定。同时也可以发现,IPM2S模型和BM模型在高并行度下效果非常不好,甚至出现了下降。引起这一现象的主要原因是这2个模型规模不大,具体来说有以下两点:

1)无法并行的处理。CAE的计算除了可以用中央处理器(CPU)加速的部分以外,还有一些文件写入写出等无法使用并行处理的部分。当模型规模不大时,这些部分占有的比重就会增大。如图3-23所示,无法并行的处理约占4%,即便是并行处理加速了10倍,实际的加速效果也只有7倍左右。

图3-23 无法并行处理的影响

2)CPU等待。JMAG在进行并行计算时会进行如图3-24所示的模型分割,分割的单位被称为Part,各个Part由各个CPU/线程负责处理。而Part与Part之间交接的部分被称为内部区域,该部分的计算需要在相邻2个Part都计算完成后进行。因此,当模型规模不大,并且分割出的Part数很多(并行度很高)时,内部区域的占比就会很大,极易引起CPU等待的问题,从而导致计算时间增大。

图3-24 JMAG并行下的模型分割

综上所述,对于小规模的模型,并不推荐使用过高的并行度。通常,2D模型选择4~8的并行度就可以了。具体可以参考表3-1中10个模型的网格数,选择合适的并行度。

(3)Massively Parallel Processing(MPP)MPP是大规模并行处理功能,需要基于英特尔MPI库进行计算机之间的通信。相比SMP,MPP最主要的特征是可以实现多个计算机协同加速的功能,多用于超大规模的模型计算。当然,也可以将其用于单个计算机进行36并列度以上的加速计算。此外,JMAG中将并行度限定为2~512之间的偶数。与SMP相同,小规模模型使用较高的并行度会起到相反的效果,因此我们推荐仅仅在计算超大规模模型(大于100万网格)时,才使用高并行度。

(4)Use GPU(GPU加速)通过GPU强大的处理能力来进行大规模模型计算。近年来,GPU的性能提升已经在多核计算、并行计算上超过了CPU。除了GPU本身擅长的图像处理以外,计算机的计算处理中也常常使用GPU。JMAG自从2012年开始提供GPU计算求解器,并且一直在改善其性能。利用表3-2的两款硬件进行CPU与GPU计算速度的对比,并对一个永磁同步电机进行计算,其结果如图3-25所示。以单核非并行计算为参照,使用1个GPU计算,加速约10倍;使用2个GPU计算,加速约14倍。此外,与SMP及MPP相似,小模型的计算并不适合用GPU进行,GPU适合大于100万网格的大规模模型计算。

表3-2 CPU与GPU对比用硬件

图3-25 CPU与GPU加速性能对比

3.3.2 求解器

在求解器计算控制的界面内(图3-26),JMAG针对一些特殊应用,设置了一些加快求解器收敛速度的功能,其中主要有3块设置内容:①“Steady-State Approximate Transient Analysis”——近似稳态仿真;②“Time Periodic Explicit Error Correction(TP-EEC)”——时间周期补正;③“Treat Convergence Failure as Error”——不收敛时视为报错。

需要注意的是,此处的设置并非适用于所有模型,而是针对一些特殊应用场景能起到很大效果的设置。

图3-26 求解器计算控制的界面

(1)Steady-State Approximate Transient Analysis(近似稳态仿真)该功能主要针对感应电机、变压器及电抗器这类产品。例如,感应电机在起动后需要一定的时间到达稳定状态,通过此处的设置可以在第一个Step就进行一个十分接近于稳定状态的计算,从而将这个过程缩短,节省计算时间。如图3-27所示,通过使用近似稳态仿真,可以看到第一个Step处的值就已经十分接近稳定状态,从而加速了感应电机的转矩稳定速度,不再需要计算大量周期。

图3-27 近似稳态仿真在感应电机仿真中的效果

(2)Time Periodic Explicit Error Correction(TP-EEC,时间周期补正)这是一个与近似稳态仿真类似的功能,但是其适用范围更广。TP-EEC可以通过人为输入1个周期或半个周期的电源频率,将计算结果与输入频率进行对比,加快收敛速度的功能。如图3-28所示,通过使用TP-EEC可以实现感应电机仿真的快速稳定。此处需要提及的是,近似稳态仿真与TP-EEC的目的是相同的,均是加快需要稳定仿真的稳定速度,缩短计算时间,但是两者的实现方法及适用范围有所不同。此外,如果仿真对象满足两者的要求,则可以同时使用这两种方法。

图3-28 TP-EEC在感应电机仿真中的效果

(3)Treat Convergence Failure as Error(不收敛时视为报错)这是一个计算报错选项。勾选这个选项后,如果仿真过程中某一个Step的计算不收敛,则直接报错停止计算。大部分情况下,我们不推荐勾选该选项。

3.3.3 线性求解器

JMAG中的电磁场仿真典型代表流程如图3-29所示。其中,反复迭代计算的部分有两处,分别是决定了材料特性的非线性迭代以及线性化的方程反复迭代求解这两处。在这两处反复处理的过程中,如果判定方法及判定值设置不当,则会引起计算精度的下降或计算时间的浪费。

图3-29 电磁场仿真典型代表流程

因此,JMAG将求解器设置分成了线性求解器和非线性求解器两个部分。此处的线性求解器是针对线性化的方程求解,用于计算场的分布,其界面如图3-30所示。

图3-30 3D磁场仿真下线性求解器界面

此处的算法主要为ICCG法,即预处理不完全Cholesky共轭梯度法。关于算法内容,本书不会涉及,大部分情况下用户只需要使用默认选项即可。此外,JMAG在17.0版本中加入了直接法。直接法是用于ICCG法出现问题不收敛时使用的替代法,通常还是以ICCG法为主。需要介绍的是,在3D仿真的情况下,我们需要根据计算内容设定ICCG方法选项,而2D时并不需要设置。如图3-31所示,ICCG解法分为“A Method”“A-phi Method 1”和“A-phi Method 2”3种。

图3-31 3D仿真时ICCG的解法选项

区分使用的标准如下:

1)如果不考虑涡流,则选用“A Method”。

2)如果考虑涡流,则选用“A-phi Method 2”。

3)如果考虑涡流并且“A-phi Method 2”不收敛,则选用“A-phi Method 1”。

合理地选用方法可以改善ICCG的收敛性,对计算精度及速度有一定的帮助。那么,如何查看仿真中ICCG的收敛性呢?可以通过[Report]-[Solver Report]查看求解器报告。在报告中的[[Magnetic Field Analysis] Convergence List]处可以看到每一个Step的迭代情况。如图3-32所示,第一个Step的非线性求解器显示Yes,表示收敛;后方数字表示迭代次数,即7次迭代完成收敛。第4列表示线性求解器的结果,Yes同样代表收敛但是需要进行239次迭代。如果计算中出现了某一个求解器的结果显示为No,则表示计算不收敛,会对计算精度产生影响。针对ICCG的收敛性问题常见的有:考虑涡流的仿真中没有使用“A-phi Method 2”、网格过粗或者网格质量低。

图3-32 求解器报告

3.3.4 非线性

非线性求解器主要负责材料及电路中非线性计算的部分,设置界面如图3-33所示。

1.界面设置

非线性求解器的算法主要为牛顿-拉夫逊算法,在仿真超导材料时才使用“Successive(逐次逼近法)”。在该界面中有3处设置需要用户根据需求进行调整:①“Maximum Nonlinear Iterations”——最大非线性迭代次数;②“Use Strict Criteria for Convergence Tolerance”——严格收敛判断;③“Use High Speed Solver”——使用高速求解。

图3-33 非线性设置界面

(1)Maximum Nonlinear Iterations(最大非线性迭代次数)其代表的是JMAG进行非线性计算时最多迭代的次数。当到了最大迭代次数时还没有收敛,则会判定为收敛失败。如3.3.2节所述,如果求解器设置处的“Treat Convergence Failure as Error”没有被勾选上的话,则软件不会报错,并会直接使用最终结果,从而导致计算精度出现问题。此处的默认值为“15”,我们推荐改为“50”或“100”。

(2)Use Strict Criteria for Convergence Tolerance(严格收敛判断)通常计算中不用勾选,仅在针对计算高精度涡流时勾选即可。该选项虽然会增加计算时间,但是对精度会有一定的提升,属于对精度的要求高于计算速度时选用的方法。

(3)Use High Speed Solver(使用高速求解)这是在非线性计算中,使用前一个Step的结果作为基础来计算后一个Step的方法。因此作为限制,如果运动变化等因素导致Step之间的差异过大,则不适合使用该方法。此外,在电机的空载仿真中,由于电路端子开路导致非线性计算在Step之间差异较大,也不推荐使用该方法。

2.不收敛问题的解决方法

针对非线性求解器不收敛的问题,常见的解决方法如下。

(1) B-H 曲线存在问题 如上文所述,非线性求解器主要用于材料的非线性计算,其中, B-H 曲线是电磁场仿真中极其重要的材料数据。当自定义材料时,往往通过实测得到 B-H 曲线,而实测的误差往往会导致 B-H 曲线出现问题,从而导致非线性计算不收敛。具体如图3-34所示,当 B-H 曲线斜率单调减小时或者仅存在一个拐点增加后单调减小时,可以用于电磁场仿真。而当 B-H 曲线存在多个拐点甚至毫无单调性时,则不可用于计算,会引起计算不收敛的问题。因此,许多时候在获得 B-H 曲线后需要人为地对其进行微调,以保证 B-H 曲线少于2个拐点。

(2)电路使用二极管 二极管是一个非线性元件,它的存在会引起电路计算的不收敛。因此,我们推荐尽量不使用二极管,如果非要使用二极管元件的话,则将二极管的属性设为理想二极管,并将非线性设置中的[Relaxation Factor]设为[Relaxation Factor 1],如图3-35所示。

(3)电位源(1 Terminal)直接连接FEM coil或FEM conductor由于FEM元件是将电路与电磁场进行连接的元件,通常第一个Step的仿真会很难收敛,此时再外接电位源有可能导致第一个Step不收敛。如果不发生问题,则可以不进行修改。当发生问题时,可以尝试在第一个Step不输出电位或者增加一个开关在电位源和FEM元件之间,断开第一个Step,闭合第二个Step。

图3-34 B-H 曲线是否可以用于仿真的判定图

图3-35 推荐的二极管设定 dbfHnP3zvGTnSEoIuHtEG+2XarEQ45fBmG/qE1nS8PUI0+0IRoKINzKc+elZpg+n

点击中间区域
呼出菜单
上一章
目录
下一章
×