pspice仿真老不收敛怎么办?

摘要:
尝试以下模拟配置:不收敛的原因:分析过程中不收敛的根本原因是软件将电路的电流和电压问题转换为方程,以便在电路分析期间解决这些问题。这些方程分为线性方程和非线性方程。然而,迭代方法不可避免地会导致不收敛的问题。NODESET符号用于设置节点迭代过程的初始迭代值,即初始迭代值x0,以帮助收敛。

仿真不收敛,提示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

就是在计算时迭代还没有达到计算的精度要求,但是步长已经小于要求的最小步长了,所以计算不出来。

试一试下面的仿真配置:

pspice仿真老不收敛怎么办?第1张

 pspice仿真老不收敛怎么办?第2张

发生不收敛的原因:

在分析过程中不收敛的根本原因是因为软件在电路分析时都是将电路的电流电压问题转换为方程组来求解,这些方程组分为线性方程组和非线性方程组。线性方程组可以采用直接肖元法,高斯消元法和LU分解法等,非线性方程组更多采用迭代法。而迭代法不可避免会产生不收敛问题。

以PSPICE中使用普遍的牛顿-拉夫逊迭代法为例说明,对于某一非线性方程,f(x)=0,N-R迭代关系为:

pspice仿真老不收敛怎么办?第3张

当给一个恰当迭代初值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符号额设置值。

pspice仿真老不收敛怎么办?第4张

(2)采用NODESET符号(在special.olb库里面),此即为设置该节点迭代过程的初始迭代值,既迭代初值x0,帮助收敛用的。

pspice仿真老不收敛怎么办?第5张

(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:步长决定了仿真点的密集程度,需要自己设置

计算精度越高表明仿真结果越精密,但是当电流或电压为大信号时,并不需要过高的计算精度,所以在出现不收敛时,可以适当牺牲计算精度,以保证仿真正常进行。

更多解决方法:

pspice仿真老不收敛怎么办?第6张

 pspice仿真老不收敛怎么办?第7张

 pspice仿真老不收敛怎么办?第8张

 pspice仿真老不收敛怎么办?第9张

免责声明:文章转载自《pspice仿真老不收敛怎么办?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇读取文件将 Excel 文件 转换成 CSV 文件 解决方案【canvas学习笔记四】绘制文字下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[转]走近 STL

原文:http://www.vckbase.com/document/viewdoc/?id=1461   本文面向的读者:学习过C++程序设计语言(也就是说学习过Template),但是还没有接触过STL的STL的初学者。这实际上是我学习STL的一篇笔记,老鸟就不用看了。 什么是泛型程序设计我们可以简单的理解为:使用模板的程序设计就是泛型程序设计。就像我...

Redis源码解析03: 字典的遍历

  遍历一个稳定的字典,当然不是什么难事,但Redis中的字典因为有rehash的过程,使字典可能扩展,也可能缩小。这就带来了问题,如果在两次遍历中间,字典的结构发生了变化(扩展或缩小),字典中的元素所在的位置相应的会发生变化,那如何保证字典中原有的元素都可以被遍历?又如何能尽可能少的重复迭代呢?   Redis使用的遍历算法非常精妙,使用该算法,可以做到...

C++ 迭代器(STL迭代器)iterator详解

要访问顺序容器和关联容器中的元素,需要通过“迭代器(iterator)”进行,迭代器是一个变量,相当于容器和操作容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。从这一点上看,迭代器和指针类型。 迭代器按照定义方式分为以下四种: 正向迭代器,定义方式: 容器类名::iterator 迭代器名; 常量正向迭代器,定义方式...

预训练模型专题_GPT2_模型代码学习笔记

此文转载自:https://blog.csdn.net/qq_35128926/article/details/111399679 最近将huggingface的transformers(v4.0.1)库中的GPT2模型源码详细学习了一遍,因此将学习过程中,对于GPT2模型源码的一些学习笔记记录在此篇博客之中,以供之后参考。 GPT2模型是OpenAI组织...

接触力的计算

  游戏或者仿真中要提供接近于真实世界的完整触觉反馈体验,需要VR头戴设备、控制器、外骨骼甚至是行走模拟装置的配合。然而,人类的触觉系统极其敏感,普通人打麻将就能用手指轻轻松松地摸出牌面。在目前的技术基础上,机器很难还原真实的人类触觉反馈,能做的只是在特定的内容和场景中尽量满足用户的反馈体验。比如在VR游戏中抓取武器和物品时,几厘米的偏差,没有准确还原物体...

quartus FIR仿真笔记

第一章:   最近百度了一些fir滤波器的资料,都没有自己想要的。容我吐槽一大段文字>。。   在旧版的quartus中,比如13.0,有两个fir滤波器的选项,如下所示: 网上很多都是讲不带II的那个,而在新版的quartus已经找不到这个IP了,如下所示:   对于第一版的FIT滤波器,在旧的版本中,经常生成不了fir这个滤波器(quartus...