PSpice仿真中的收敛问题及解决方法.doc
5页写在前面:本文是作者平常学习和工作中记录的一些笔记,有些零碎,但是很有用,主要是从原理的角度阐述了PSpice仿真中的收敛性,以及应对仿真不收敛的方法适合使用PSpice仿真很久并且碰到过较多问题的高手!注意:有些东西是最原始的spice语言的,在OrCADPSpice中不一定有相应的选项By:MichaelWang2010年12月17简介PSpice在设定的仿真次数内,如果不能得到满足精度要求的解,就会出现收敛性问题,该问题可能有两大类原因导致:第一:容许的仿真次数太少或者仿真精度要求太高第二:电路方程本身无解针对不同的仿真类型,都会有一些问题的探讨和分析以及相应的应对策略DC分析:在PSpice执行一些定制的仿真前,首先执行DC工作点分析,PSpice通过特定数量的迭代得到DC静态工作点,否则PSpice会有电路不收敛的提醒,并且退出仿真程序默认收敛限定描述如下:.optionsITLl=100如果不收敛,上式中的ITL1可以增加到大于500更多的DC收敛参数:GMIN步长设置、信号源步长设置、初始电容电压设置及伪瞬态设置NODESET可以设置电路节点的DC电压值,PSpice会识别这个电压值作为电路仿真的初始电压值,可以减少对收敛的迭代次数。
如果不能通过节点设置和ITL1来得到收敛结果,可以设置ITL6=100或者其他非零值,这个设定时运用信号源步长算法,从一个开始值逐渐减少信号源电压直到0电平,或者减少得到一个收敛解,这时,信号源再逐渐减回设置的初始设置这个方法可以解决所有DC偏置点不收敛的问题,但是ITL6函数本身有缺陷,所以在最后万不得已才能用OrCAD没有引入这个参数)如果电路包含半导体器件,该器件导电区域会包含零电导率这样仿真会出现一个“把零作除”的错误为了消除这个错误的产生,在每个半导体器件的PN结点处用GMIN跨导与每个PN结点处并联°GMIN是一个全局参数,默认值lOOP'Q,GMIN的参数值越大,牛顿拉夫申算法会越快完成收敛计算增加GMIN的参数值会减少旁路电阻值仿真的精度在旁路电阻产生的电流小于可容忍的相对错误电流分辨率时(kielkowski1995)不受影响,对Gmin设置的建议值为.optionGMIN=1n瞬态分析:瞬态不收敛将最大迭代次数设置如下;.optionsITL4=10;useITL4=1500iftransientconvergenceproblemsoccur如果当前时刻节点不收敛,那么仿真步长会缩短到原来的1/8,如此计算直到得到收敛结果或者迭代次数溢出(ITL4),用户设置的仿真时间步长的不同,会导致瞬态收敛困难,这点在开关电路仿真时尤其明显。
仿真步长必须小于开关电平的识别时间当对瞬态仿真参数惊醒设定时,需要考虑高电平变换器或器件模型的不连续性对步长保守的估算,步长的单位最小值要小于一个开关波形一个周期的一个数量级的时间,例如,对于一个100K的振荡器(10u)的时间步长设定应该为1u左右Tmax值是最大时间步长,这个值可以省去或者指定为增大仿真精度(减小Tmax)或减小仿真精度(增大Tmax)这个设定可以让模拟器在对电路有微小变化时进行仿真计算的时间步长稍大一些避免一般性错误的步骤核对电路是否连接正确,元件极性是否连接正确,所有节点对地都有其直流路径€€核对所有元件都正确赋值核对所有模型参数都有实际意义,尤其是自己创建或者修改的€核对两个网络连接处都有节点€€核对电压和电流的发生起相应有其正确的语法和合适的数值电容或电流源的串联等效代替需串联放置€检查是否把字母O当作数字0使用€€如果行为表达式或行为元素在电路中运用,则验证电路不会出现零点分割的情况验证独立元增益正确€DC收敛的方法:1. 设置ITL1=500;2. 使用NODESET,不适当的节点设置会导致不正确的仿真结果或者不收敛,所以在对NODESET语句设置时需要注意3. 运用脉冲语句产生DC电源。
V1305DC变为V130PULSE05这样允许用户对电源进行开关控制,脉冲的上升时间可以用来设置实际电源的上电时间4. 设置GMIN,设置GMIN=ln或者0.In,不推荐设置过高的数值,这个参数设置了所有半导体器件的最小导电性5. 如果可以,设置RSHUNT参数,设置电路中所有节点对地的电阻值,通过这个收敛方法会在其他节点而不是被选节点得到仿真结果,所以仿真结果需要仔细检验(PSPICE中没有这一项的设置)6. 设置ITL6=100,信号源步进将所有直流激励递减,直到电路的DC直流偏置电确定或者电平降低到0V,然后反向迭代PSPICE中没有这一项的设置)瞬态收敛的方法:1. 验证电路的直流分析是否收敛,确认不收敛是否由瞬态分析造成2. 验证设定的时间步长的分辨率大小适当时间步长分辨率必须小于电路进行开关波形正确仿真的时间至少要比仿真电路最小周期小一个数量级3. 对于振荡电路或者开关电路,设置METHOD=GEAR,这是对顺态方程式选择的一种方法,GEAR集成化可以应用到所有的开关电路PSPICE中没有这一项的设置)4. 使用初始条件设置UIC,设置电容电感的初始值5. 设置ITL4=5006. 设置RELT0L=0.01,降低仿真精度,减小仿真时间。
需要记住的一个一般规则是:相对误差数值减少一个数量级,仿真时间就会翻倍的增加7. 减少脉冲元的上升和下降沿时间,电压值的大幅度变化会导致不收敛的问题8. 设置TRTOL=40,声明在进行瞬态仿真时对使用的步长大小可以成比例的设定无)9. 如果电流/电压值允许,减少ABSTOL/VNTOL的精度,这两个纸值以设置为大于其缺省值8个数量级的大小,要注意设置的只要小于最大电流和电压值10. 如果可以,设置RAMPTIME=10ns,这个声明设定了所有独立信号源从零值上升到瞬态分析的开始值的上升斜率无)交流收敛的方法:不要使用直流收敛解决方法中的3~5,使用这些方法将不能建立一个有效的直流工作点,而直流工作点的建立对SPICE对电路进行线形分析是非常关键的,一旦实现了电路的直流收敛,其交流分析也会收敛参考文献:SPICE电路分析,StevenM.Sandler,CharlesHymowitz著作收敛性与步长太小问题Pspice采用Newton-Raphson算法进行迭代计算,它在满足一下条件的情况下可解1. 非线性方程可解2. 方程连续3. 方程可导4. 初始值必须足够接近解析解在满足上面条件的同时,由于硬件条件的限制,电路当中的取值还要受到一定的限制。
1. 电压与电流在+-1e10之间2. 导数在lel4以内3. 15位的双精度例如1兆伏除以1豪欧,得到lel2AMP的电流,超过了电流值的最大值,因此不收敛!通常情况下,需要注意没有限制的器件模型,以及含有表达式的手控源很容易写出计算值极大的表达式在实际情况中,方程总是连续的,但是变化值有可能超出PSpice表达值得极限!导数的物理意义是小信号电导,跨导,增益,不切实际的器件模型可能会使导数超过1e14的限制,主要需要当心含有表达式的行为模型!Newton-Raphsonisguaranteedtoconvergeonlyiftheanalysisisstartedclosetotheanswer.Also,thereisnomeasurementthatcantellhowcloseiscloseenough.(FUNNY)仿真最艰难的事起步阶段,即找到偏执点!PSpice先试着按照100%的供电电压去计算偏执点,如果计算不成功,那么就把电压降到几乎为零,这样许多的非线性都被关掉了,当一个电路变为线性之后,必定可以找到一个解,然后PSpice再将偏执点反推到100%供电的情况下!(变步长)一旦得到了偏执解,那么瞬态仿真就可以进行了,他每次都从一个已知点(偏执点)开始迭代,得到下一步的解.DC扫描采用混合逼近的方法去求解,他首先采用偏执点计算逻辑起步(变电压),之后每次以上一步的解作为初始值去逼近,扫描步长不是可变的,如果某一步不能得到解的话,他就在此使用偏执点算法去求解!整个DC扫描主要依赖于连续性,同时它也要求当电源关掉时,电路是线性的,像偏执点计算那样!关于GMIN:GMIN算法不是系统默认执行的,可以在选项卡中使能这种算法,当使能这种算法的时候,如果100%供电时计算不收敛,就先采用GMIN算法,如果这种算法还不收敛的话,就再将电压降到几乎为零,再进行下一步的计算!几乎为零的电压定义为:0.001%supplypower对于半导体器件,首先要避免使用不切实际的模型参数!其次是避免出现不受限的PN结,(无串联阻抗),第三是避免出现无漏电阻的情况,比如一个电流源输出电流到一个反偏的PN结,由于反偏PN结不含有漏电阻,因此需要一个并联电阻,否则PN结的电压会超过1e10的值。
PSpice的开关在过渡区存在增益,如果多个开关级联起来的话,累计增益有可能超过导数的极值限制(lel4)这种情况可能出现在图腾柱门极的情况中或者多个开关级联的情况中!一般情况下,两个开关级联可以工作,但是多于两个就可能出现问题!表达式含有分母的尤其要注意,不能出现除零的情况!例如GLOAD3,5VALUE={2Watts/V(3,5)},当开始时,V(3,5)=0出现问题PSpice使用一种压缩算法将受控源在电压几乎为零时压缩成线性连续模式!但是这种压缩算法也不能处理以上那种除零的情况压缩算法可以很好的关掉不带分母的表达式,通常情况下,使表达式处于一个合理的物理范围将会十分有帮助!Example:Afirstapproximationtoanopampthathasanopenloopgainof100,000is:VOPAMP3,5VALUE={V(in+,in-)*1e5}Thishastheundesirablepropertythatthereisnolimitontheoutput.Abetterexpressionis:VOPAMP3,5VALUE={LIMIT(V(in+,in-)*1e5,15v,-15v}wheretheoutputislimitedto+/-15volts.。





