仿真不收敛,提示ERROR(ORPSIM-15138): Convergence problem in transient analysis at Time = 116.4E-21. Time step = 116.4E-21, minimum allowable step size = 1.000E-18
就是在计算时迭代还没有达到计算的精度要求,但是步长已经小于要求的最小步长了,所以计算不出来。
试一试下面的仿真配置:
发生不收敛的原因:
在分析过程中不收敛的根本原因是因为软件在电路分析时都是将电路的电流电压问题转换为方程组来求解,这些方程组分为线性方程组和非线性方程组。线性方程组可以采用直接肖元法,高斯消元法和LU分解法等,非线性方程组更多采用迭代法。而迭代法不可避免会产生不收敛问题。
以PSPICE中使用普遍的牛顿-拉夫逊迭代法为例说明,对于某一非线性方程,f(x)=0,N-R迭代关系为:
当给一个恰当迭代初值x0时,带入上式进行迭代,产生一个迭代序列{x(k+1)},直到x(k+1)和x(k)之间差的绝对值小于某个给定的允许误差为止。当K足够大时,序列会收敛于真值x*。判断迭代结束的依据是x(k+1)和x(k)之间差小于给定误差值,或者是迭代数超过规定的最大迭代次数。
由此可见,迭代过程出现不收敛的情况有以下几类:1,初值选取不恰当,导致不收敛。2,迭代次数过长,如果规定的迭代次数为30次,但是实际迭代30次还没有达到真值x*,迭代被迫中止,也同样造成不收敛。3,规定的误差精度过高,也同样会造成迭代次数溢出。
处理不收敛的对策:
1,设置适当的初值:
pspice有三种设置初值的方法:
(1)采用IC符号(initical condition,在special.olb库里面),永来设置某一个节点或则两个节点间的初始电压值,电压值即为IC符号额设置值。
(2)采用NODESET符号(在special.olb库里面),此即为设置该节点迭代过程的初始迭代值,既迭代初值x0,帮助收敛用的。
(3)电容,电感元件属性的IC值,表示其初始电压,电流值。
2,修改迭代次数
ITL1:在DC分析和偏置点计算时以随机方式进行迭代次数上限,内定值为150;
ITL2:在DC分析和偏置点计算时根据以往情况选择初值进行的迭代次数上限,内定值为20;
ITL4:瞬态分析中任一点的迭代次数上限,注意,在SPice程序中有ITL3任选项,PSpice软件中则未采用ITL3,内定值为10;
在进行DC分析时出现不收敛,可以将ITL1和ITL2值调大,如果在瞬态分析时出现不收敛,可以将ITL4值改大。当然迭代次数变大意味着计算时间更长啦。
3,修改计算精度
RELTOL:设置计算电压和电流时的相对精度,内定值为0.001%;
VNTOL:设置计算电压时的精度,内定值为1.0μV;
ABSTOL:设置计算电流时的精度,内定值为1.0pA;
Maximum Step Size:步长决定了仿真点的密集程度,需要自己设置
计算精度越高表明仿真结果越精密,但是当电流或电压为大信号时,并不需要过高的计算精度,所以在出现不收敛时,可以适当牺牲计算精度,以保证仿真正常进行。
更多解决方法: