浅谈如何解决Saber中的收敛性问题
如何解决Saber中收敛性问题
如何解决Saber中收敛性问题网友的问题如下: domono 老师,saber 仿真中遇到最多,最复杂的一个问题---不收敛.这是对我们初学者最大的困难.今天又遇到,做DC 分析出现如下错误:*** ERROR \”ALG_SINGULAR_JACOBIAN\”*** Singular Jacobian matrix. Some possible causes for a singular Jacobian matrix: - Model operating outside of its intended region of operation. - Node/subsystem with no connection to the reference (floating). - Current loops (voltage sources/inductors in parallel). - Missing equation and/or missing variable reference.出现不收敛是不是由于接地、接口的问题产生的?还是其它原因?能否具体讲解一下吗?谢谢! 其实错误信息里面就含有可能引起不收敛的原因,下面来逐条看看. - Model operating outside of its intended region of operation 模型运行越界,即运算出的结果使得模型超出了它正常的运行范围,对于仿真器来说就是某个或者某一些节点、变量的运算结果在某一个时刻(通常也就是仿真中断的时刻)出现了奇异点,这些点和原来的计算结果出现了非常大的变化(通常是10 的n 次方的数量级),导致仿真器无法得到一个在误差允许范围内的系统解,所以就不收敛了. - Node/subsystem with no connection to the reference (floating).节点或者子系统缺少参考点. 这条意思非常明显,在目标系统中的某个节点处于悬空状态,仿真器无法得到该节点的正确解.这种情况下要仔细查找系统,看看有没有这种情况出现.如果有,需要为该节点添加一个上拉或者下拉偏置.Current loops (voltage sources/inductors in parallel). 系统中出现了电流环路.电流源只能并联不能串联,如果一个环路中出现了两个以上的电流源,仿真器也无法得到正常的解,将会出现不收敛.有意思的是上面还括弧中还列举了另外一种情况,就是电压源和电感直接并联.这种情况下,DC 分析是没法收敛的,因为电感。
ANSYS非线性分析收敛性
假如不收敛是由于数值计算导致的,可以采用下述方法来加强收敛性:1、使用小的时间步长2、如果自适应下降因子是关闭的,打开它,相反,如果它是打开的,且割线模量刚度正在被连续地使用,那么关闭它。
3、使用线性收索,特别是当大变形或大应变被激活时4、预测器选项有助于加速缓慢收敛的问题,但也可能使其他的问题变的不稳定。
5、可以将缺省的牛顿-拉普森选项转换成修正的或初始刚度牛顿-拉普森选项,这两个选项比全牛顿-拉普森选项更稳定,但这两个选项仅在小挠度和小应变塑性分析中有效荷载子步数的调整,荷载子步数的调整要根据自己的经验了,这里很难找到确切的规律,可以按照20、50、100、200、400、800等去试算,一般可以得到较好的收敛解。
描述:计算收敛过程图图片:CNVTOL, Lab, V ALUE, TOLER, NORM, MINREFANSYS中,非线性收敛准则主要有力的收敛,位移的收敛,弯矩的收敛和转角的收敛。
一般用力的控制加载时,可以使用残余力的2-范数控制收敛;而位移控制加载时,最好用位移的范数控制收敛。
When SOLCONTROL, ON, TOLER Defaults to 0.005 (0.5%) for force and moment, and 0.05 (5%) for displacement when rotational DOFs are not present.When SOLCONTROL, OFF, defaults to 0.001 (0.1%) for force and moment.收敛精度一般可放宽至 5%,以提高收敛速度。
加快收敛的方法有一下几种:1可以增大荷载子步数,nsubst,nsbstp,nsbmn,carry2修改收敛准则,cnvtol,lab,value,toler,norm,minref3 打开优化的非线性默认求解设置和某些强化的内部求解算法,solcontrol,key1,key2,key3,vtol(一般情况下,默认是打开的)4重新划分网格,网格的单元不宜太大或太小, 一般在5~10厘米左右5 检查模型的正确性下面计算收敛过程图中的各个曲线的具体含义是什么?非线性计算是一个迭代计算的过程,曲线表示两次迭代之间的误差,图中分别表示力和位移在迭代过程中的每次迭代之间的误差关于ansys中收敛准则(cnvtol)理解ansys中依据缺省的收敛准则,程序将对不平衡力SRSS与VALUE*TOLER的值进行比较;而VALUE的缺省值是在SRSS和MINREF中取较大值。
SABER仿真中6种常犯错误的解决
SABER仿真中6种常犯错误的解决SABER仿真中6种常犯错误的解决Saber是目前电子设计领域当中应用较为广泛的也是功能最为全面的仿真软件之一。
但对于新手来说,在Saber软件的使用过程中总会遇到这样或那样的问题,阻碍设计与学习。
在本文中,小编特意为大家总结了一些在saber仿真中常见的问题及解决方法。
1、设置元件属性时误加单位。
这当然会导致Saber出现错误。
此问题经常出现在初学者身上。
2、元件名文件名路径名有重复,saber也会报错。
3、***errorAlg_no_solution***Cannotfindnonlinearsystemsolution ***errorAlg_iterations***Toomanyiterations常用的方法是增大targetiterations和maxnewtoniterations,有时减小trunctionerror也同样可行,一般都能解决报错的问题。
4、***ERRORALG_SINGULAR_JACOBIAN***SingularJacobianmatrix 遇到此问题时最好先看是否有自建的模型,有极大的可能性是模型错误,如果确定无误或没有,再对接地进行确认,saber中无法存在独立的系统,因此即使隔离也需要共地。
5、出现电压环路电流环路。
解决方法:给电容电感加初始值;或者并联一个很大的电阻串联很小的电阻进行仿真,再将电阻去掉后就会恢复正常。
6、模型越界。
遇到此类情况就需要仔细检查电路了。
saber用户指南dc一章也对调试方法进行了讲解,感兴趣的朋友可以看一看。
以上六点就是新手们在使用saber仿真时非常常见的几种问题,本文对这6 个问题逐一进行了介绍,并附上有效地解决方案。
大家在进行saber仿真之前不妨花上几分钟来阅读本文,以此来避免一些不必要的错误发生。
abaqus分析收敛的个人经验整理
abaqus分析收敛的个人经验整理说一下自己在分析收敛方面的一些经验接触分析收敛不管怎么总还是一个很大的问题,而我们经常在一个地方卡了很长的时间,怎么也找不到解决和提高的办法。
而aba_aba在abaqus常见问题汇总中给了我们模型改进的方向和一些方法。
在我分析的过程当中,怎么找到模型中的影响收敛的关键问题所在也是一个很让我迷茫了很长时间。
下面谈一下我个人的一些经验和看法。
如有错误还望大家指出,也希望大家给出自己更多的经验分享。
abaqus的隐式求解的就是求算出一个很大的刚度矩阵的解,这个方程能否通过一次一次的迭代到最后达到一个系统默认的收敛准则标准的范围之内,就决定了这一次计算能否收敛。
因此要收敛的话,系统与上一个分析步的边界条件区别越小的话,系统就越容易找到收敛解。
针对这一点,我们可以得到下面的几种方法来尽可能的使系统的方程的解尽可能的接近上一步,以达到收敛。
下面的方法的指导思想是:尽可能小的模型,前后两个分析步的改变尽可能的少。
1. 接触分析真正加载之前,设置一个接触步让两个面接触上来,在这个步骤里面,接触面的过盈小一点好,比如0.001.接下去再把作用与两个接触体的力及接触方向的自由度放开。
2. 如果系统的载荷很多的话,将系统的载荷分做多步进行加载,一次性全上可能使系统无法在规定的迭代次数内收敛。
所以根据需要分开,让abaqus的内核慢慢消化去。
少吃多餐在这边好像也是成立的。
3. 系统有多个接触的话,也最好如载荷一样,分成几个step让他们接触上。
这样的做法会让你以后在模型的修改中更有方向性。
4. 模型还是不收敛的话,你可以看一下是在哪一步或者那个inc不收敛。
对于第一步直接不收敛的话,如果模型是像我上面把载荷和接触分成很多步建立的话,可以把载荷加载的顺序换一下。
如果你把第二个加载的载荷换到第一步以后,计算收敛了,那影响收敛的主要问题应该就是原来第一个加载或着接触影响的。
这种情况下面一般算到这个加载的时候还是不会收敛。
Flotherm软件求解收敛常见问题及处理方法
1. 引言随着电子设备向高集成度方向发展,系统的热功率密度越来越大,因此热设计技术在电子设备中显得越来越重要。
目前公司主要采用Flotherm商业热分析软件进行系统级、板级的热分析。
热分析过程主要分为建造模型、为模型添加物性、网格划分、求解与后处理几个过程。
在热分析的过程当中,准确的建造模型、添加物性固然重要,它将直接影响到结果的准确性,然而网格划分对于初学者来说也很重要,劣质的网格可能会导致求解发散,甚至会导致得到错误的结果。
所有的错误都会体现在残差曲线中,本文主要讲述各种有问题的残差曲线,并详细讲述处理的方法。
2. Flotherm软件默认求解收敛设置Flotherm软件实际上是采用Patankar与Spalding1972年提出的在计算流体力学及计算传热学中得到了广泛应用的SIMPLE算法来迭代求解一组由Navier—Stokes方程导出的耦合偏微分非线性方程,这种迭代自然伴随着收敛的相关判定与设置问题.Flotherm终止标准是基于系统的质量、动量和能量三个方面来设定的:•质量平衡(压力场残差)–终止标准= 0。
005M(kg/s)–强迫对流: M = Total Inlet or Outlet Flow Rate–自然对流:M = ρ。
EFCV。
Aρ:Air densityEFCV: Estimated Free Convection VelocityA: Area perpendicular to the vertical•动量平衡(速度场残差)–终止标准= 0.005MV(N)–强迫对流:V = Fan or Fixed Flow maximum velocity–自然对流: V = EFCV•能量平衡(温度场残差)–终止标准= 0。
005 Q (W)–如果在系统中有热源或热沉:Q = Total Heat Sources or Sinks–如果系统中无热源或热沉:Q = M Cp ∆Ttyp ∆Ttyp = 20 °C3. 常见残差曲线分类在利用Flotherm进行求解中,我们直观的判断求解是否收敛的依据则是依靠残差曲线,通过残差曲线我们可以了解求解是发散、振荡还是收敛,如下图所示.图一:残差曲线1) 对于大多数残差曲线收敛且监控点温度稳定的情况下,我们可以认为得到了稳定正确的数值 解,当然有时也会由于温度梯度较大的位置网格数量不足或者两种不同的物体划分到同一网格得到具有较大误差的结果。
eclipse模型不收敛的原因很多
模型不收敛的原因很多,网格参数,属性参数,流体PVT参数,岩石相渗曲线,毛管压力曲线,相渗曲线端点标定,初始化,井轨迹,垂直管流表都会造成模型不收敛,下面分别介绍各部分如何造成不收敛及如何解决。
1。
网格部分:网格正交性差和网格尺寸相差太大是导致不收敛的主要原因之一。
正交性差会给矩阵求解带来困难,而网格尺寸相差大会导致孔隙体积相差很大,大孔隙体积流到小孔隙体积常会造成不收敛。
解决办法:网格正交性差通常是在建角点网格时为描述断层或裂缝的走向而造成的。
在此情况下,最好能使边界与主断层或裂缝走向平行,这样一方面网格可以很好地描述断层或裂缝,另一方面正交性也很好。
在平面上最好让网格大小能够较均匀,在没有井的地方网格可以很大,但最好能够从大到小均匀过渡。
纵向上有的层厚,有的薄,最好把厚层能再细分。
在检查模型时应该每层每层都在三维显示中检查。
径向局部网格加密时里面最小的网格不要太小。
在ECLIPSE里用MINPV关键字可以把小于设定孔隙体积的网格设为死网格,这样通常会有用。
2。
属性参数:不合理的插值计算会导致属性分布很差,如果是从地质模型粗化为数模模型,通常问题不大,只是有时候数模人员自己插值时会有问题。
解决办法:有可能尽量用地质模型的数据,自己插值时可以加一些控制点使属性合理分布。
X,Y方向的渗透率最好相等或级差不大。
在井连通网格的Z方向渗透率不要设为0,如果想控制垂向流动,可给一个很小的值。
3。
流体PVT参数流体PVT参数会有两种可能的问题,一是数据不合理导致了负总压缩系数,二是压力或气油比范围给的不够导致模型对PVT参数进行了外插。
解决办法:检查PRT文件中的WARNING信息,如果在油藏压力范围内有负总压缩系数的警告,应该修改PVT 参数,否则的化会有收敛性问题。
如果负总压缩系数是在油藏压力范围之外,可以忽略该警告。
此部分的修改主要可以小规模修改油和气的FVF和RS。
关于ECLIPSE如何计算负总压缩系数,参照ECLIPSE技术手册第936页。
FLOTHERM不收敛原因与对策
Flotherm 求解不收敛的原因和对策1、求解收敛的判断Flotherm求解器在仿真计算时,主要计算五个量:流场中的X、Y 和Z 方向的空气流速、空气压力;温度场中各点的温度。
求解器在进行迭代时,如果相邻的两次迭代中,这五个参数中的那一个变化率小于0.5%,系统就认为该参数收敛了。
(当然,收敛条件可以改变),只有当这五个参数全部收敛后,计算才结束,否则,系统会继续迭代。
Flotherm模型中,可以建立一些监控点,这些监控点在求解时,会反映随着时间(或迭代)的进行,上述五个量的变化情况。
一般地,只有求解收敛了,计算的结果才有意义;但由于Flotherm 对收敛的判定较严格,我们可以认为,在收敛曲线中,当残余量小于10,且监控点中的参数基本不变时,也认定计算的结果有意义。
2、求解中的一些控制参数控制求解的参数主要包括:求解器、求解步长(Flase Time Step)、内部迭代数(Inner itreations)和外部迭代数(Outer itreations)。
Flotherm中,根据算法的不同,有三种求解器:Segregated、Segregated Conjugate Residual 和Multe Grid。
通常我们就用系统默认的Segregated Conjugate Residual,如果为了加快收敛速度,可以选用Multe Grid。
求解步长(Flase Time Step)用在动量方程和能量方程中控制迭代时五种参数的变化,其影响就象阻尼,阻尼越大,两次迭代时的变化就越小。
而步长越大,阻尼就越小;步长越小,阻尼就越大;步长非常大,就没有阻尼;步长非常小,求解就没有变化。
它们的定义是:强迫对流:步长=1/2 的机箱(柜)平均尺寸/风机的最大速度;自然对流:步长=1/10 的机箱(柜)平均尺寸/估算的空气自然对流速度;一般地,使用系统自动(Automatic)计算的值就足够,也可以自己控制。
回转器-电容非线性磁芯模型及其仿真实现
1、引言
近年来,计算机仿真在电力电子中的应用十分广 泛,尤其是含有磁性元件的电力系统,因为它解决了 磁场参数不易观测的难题,并能节省硬件损耗、降低 研发成本,所以逐渐成为了含磁件的电力电子系统设 计、优化的重要手段。各种仿真软件中,Saber 以其收 敛性好、电路瞬态仿真准确性高、多软件协同仿真能 力强等优点越来越受到人们青睐。 Saber 是面向混合信 号的系统仿真软件,具有很大的通用模型库和较为精 确 的元件模型, 并且 提 供 了 开放 式 的 硬 件 描述 语言 ——MAST 语言,允许用户根据自己的要求编写元件 模板,用于系统仿真。 目前, Saber 软件中的磁件仿真模型可以分为两类, 第一类是线性模型,这种磁件模型应用最为广泛,如 线性变压器(linear-transformer)等,只包含磁件中的 电路信息如电感、耦合系数、匝比等,忽略铁心的饱 和、磁滞等非线性。另一类是铁心模型(core model) , 包括铁心模型中的 Jiles-Atherton 模型 (简称 JA model) 和 Preisach 模型(简称 P model) ,由于磁件中绕组和 铁心独立,因此铁心的非线性特性易于加入。遗憾的 是,Jiles-Atherton 模型和 Preisach 模型的内核本身过 于复杂,模型输入参数的物理意义不明确,电力电子 工程师很难将其与已知铁心的 B-H 曲线的物理参数相 对应。此外,JA model 和 P model 存在收敛性问题, 大系统闭环仿真困难。因此,JA model 和 P model 的 应用有限。 David C. Hamill 于 1993 年提出了回转器电容等效 电路,该模型根据 Buntenbach 提出的磁路与电路参数 的类比关系(如表 1 所示) ,用回转器等效绕组、用电 容等效磁导,从而建立回转器和电容表征的磁件等效 电路模型[1],如图 1。
SABER实践教程(关于saber在电源仿真中的几个技巧)
1,知道了传递函数,如何得出bode图?2,如何测量波形的THD、PF值以及各次谐波?3,测电压、电流各种方法小结。
4,实现变压器的功能:耦合电感的用法。
(技巧分享就到此了,有什么问题可留言,推荐去看看107楼的内容)刚才Q上有人问我关于混合仿真的,这里增加个:5,控制系统与模拟系统下的混合仿真。
比如说现在要画下面传递函数的bode图:首先,在saber的搜索栏里输入“tf_rat”,出来如下图:可以选择第一个:两个串联即可,如下图:这样就实现了上面的传递函数。
这里的source需要用到控制系统下的,可搜“c_sin”,选择第一个,如下:当然了,不一定非要这个,因为可以通过接口转换来实现,这是后话。
关于tf_rat的设置如下:这样就实现了函数:1/(s+1)最后的连接图:先netlist再DC分析然后小信号分析,看下面设置:最后的bode图:至此,bode图已经画出来了,很简单哈,剩下的就是自己去分析了~这里附上上面仿的附件,方便下载。
双击轴线,AXIS ATTRIBUTE对话框里的GRID increment可以调制轴线等分间距!!路径中不能有中文,要在全英文下看波形可以放大的,选中托一下即可。
要恢复回来,按下面按钮:不错,既然你仿出来了,你再试试这个传递函数哈:怎么跟上图差不多呢关于区别,你看看:这样看就出来区别了,哈哈怎么把两个波形放在同一个图中的?讲讲波形计算器吧,比如如何把某一个电流扩大十倍,电压扩大十倍便找个简单的电流扩大十20倍的小例子这是一个电流波形,点出计算器来点击图形右侧的电流标号i(l.lr),标号呈现白色表示选中,然后在计算器光标处左键按一下,右键再按一下,至此i(l.lr)添加到计算器中了。
其次在光标处输出20*,再次输入内容的话,以前的内容自动清除,从而计算器自动生成了i(l.lr)*20,这样计算器完成了计算。
计算其中delete为删除键。
最后点击Δ左边的绿色波形图,电流扩大十倍后如下图所示在saber,常用的电容就一种,可以不分极性的,如下:,如何测量波形的THD、PF值以及各次谐波在PFC的仿真以及并网逆变中,经常需要测量波形的THD,PF值,看各次谐波的大小。
收敛性等问题
1:数模计算的收敛性在了解收敛性之前,应该首先了解几个基本概念:1。
报告步:一个数模作业包括多个报告步,报告步是用户设置要求多长时间输出运行报告,比如可以每个月,每季度或每年输出运行报告,运行报告包括产量报告和动态场(重启)报告。
在ECLIPSE软件中,报告步是通过DATES和TSTEP关键字来设置的。
2。
时间步:一个报告步包括多个时间步,时间步是软件自动设置(VIP需要用户设置)即通过多个时间步的计算来达到下一个报告步,以ECLIPSE为例,假如报告步为一个月,在缺省条件下,ECLISPE第一个时间步取一天,然后以三倍增加,即第二个时间步取三天,然后取九天,下一个时间步是17天来达到30天的报告步,然后会以每30天的时间步来计算。
时间步可以通过TUNING关键字来修改。
3。
非线形迭代:一个时间步包括多次非线形迭代。
在缺省情况下,ECLIPSE如果通过12次的非线形迭代没有收敛,ECLIPSE将对时间步减小10倍。
比如下一个时间步应该是30天,如果通过12次的迭代计算不能达到收敛,ECLIPSE将把时间步缩短为3天。
下一个时间步将以1.25倍增长,即3.75天,4.68天,。
如果在计算过程中经常发生时间步的截断,计算将很慢。
4。
线形迭代:一个非线形迭代包括多次线形迭代。
线形迭代是解矩阵。
在ECLIPSE输出报告PRT文件中可以找到时间步,迭代次数的信息,STEP 10 TIME= 100.00 DAYS ( +10.0 DAYS REPT 5 ITS) (1-FEB-2008)“STEP 10” : 说明这是第10个时间步。
“TIME= 100.00 DAYS”:说明现在模拟到第100天。
“+10.0 DAYS”:说明这个时间步是10天。
“REPT" :说明为什么选10天做为时间步,REPT是指由于到了下一个报告步。
“5 ITS": 说明此10天时间步需要5次非线形迭代。
”(1-FEB-2008)“:现在的模拟时间。
synopsys ic compiler 介绍、安装、调试和设计流程
synopsys ic compiler 介绍、安装、调试和设计流程加入该小组相关分类:petery (组长) 2007/9/23 顶楼举报一、介绍synopsys ic compiler (v2005.linux)是基于Galaxy设计平台开发的产品。
主要的工具有:LEDALEDA是可编程的语法和设计规范检查工具,它能够对全芯片的VHDL和Verilog描述、或者两者混合描述进行检查,加速SoC的设计流程。
LEDA预先将IEEE可综合规范、可仿真规范、可测性规范和设计服用规范集成,提高设计者分析代码的能力VCSVCS是编译型Verilog模拟器,它完全支持OVI标准的Verilog HDL语言、PLI和SDF。
VCS具有目前行业中最高的模拟性能,其出色的内存管理能力足以支持千万门级的ASIC设计,而其模拟精度也完全满足深亚微米ASIC Sign-Off 的要求。
VCS结合了节拍式算法和事件驱动算法,具有高性能、大规模和高精度的特点,适用于从行为级、RTL到Sign-Off等各个阶段。
VCS已经将CoverMeter 中所有的覆盖率测试功能集成,并提供VeraLite、CycleC等智能验证方法。
VCS 和Scirocco也支持混合语言仿真。
VCS和Scirocco都集成了Virsim图形用户界面,它提供了对模拟结果的交互和后处理分析。
SciroccoScirocco是迄今为止性能最好的VHDL模拟器,并且是市场上唯一为SoC验证度身定制的模拟工具。
它与VCS一样采用了革命性的模拟技术,即在同一个模拟器中把节拍式模拟技术与事件驱动的模拟技术结合起来。
Scirocco的高度优化的VHDL编译器能产生有效减少所需内存,大大加快了验证的速度,并能够在一台工作站上模拟千万门级电路。
这一性能对要进行整个系统验证的设计者来说非常重要。
VeraVera验证系统满足了验证的需要,允许高效、智能、高层次的功能验证。
Abaqus收敛准则
Abaqus收敛准则有限元计算中,经常会遇到解的收敛性问题,要解决这个,首先需知道,什么是解的收敛性。
在有限元法中,场函数的总体泛函是由单元泛函集成的。
如果采用完全多项式作为单元的插值函数(即试探函数),则有限元解在一个有限尺寸的单元内可以精确地和真正解一致。
但是实际上有限元的试探函数只能取有限项多项式,因此有限元解只能是真正解的一个近似解答。
每一个单元的泛函有可能趋于它的精确值。
如果试探函数还满足连续性要求,则整个系统的泛函将趋近于它的精确值。
有限元解就趋近于精确解,也就是说解是收敛的。
最书面的理解是:当选取的单元既完备又协调时,有限元解是收敛的。
即当单元尺寸趋于零时,有限元解趋于真正解。
(关于单元的完备、协调性概念可以参考清华大学王勖成老师的书《有限单元法》,2003年)这就是有限元的收敛性,需要说明的是:由于数学微分方程的精确解往往不一定能够得到,甚至问题的数学微分方程并未建立(例如对于复杂型式的结构)。
同时有限元解中通常包含多种误差(例如计算机的截断误差和舍入误差),因此有限元解收敛于精确解,在更严格意义上说是问题的有限元解的离散误差趋于零。
abaqus的隐式求解的目的是求解一个很大的刚度矩阵的解,这个方程能否迭代得到一个系统默认的收敛准则的范围内的数值,决定了这次的收敛是否成功。
因此,要收敛的话,系统与上一个分析步的边界条件区别越小,越容易找到收敛解。
有如下方式:1.接触分析真正加载之前,设置一个接触步让两个面接触,且接触面的过盈小,接下来再把作用和俩哥哥接触体的力及接触方向的自由度放开。
2.如果系统加载的载荷很多,可以将载荷分为多步加载。
3.系统有多个接触的画,可以分多个step进行接触。
4.若仍然不收敛,直接查看那一步,若果载荷和接触是多步加载,可以尝试调换顺序5.查看模型的接触面是否是overclosure,若是,可以在assemble中将相对位置移动。
或者是接触的定义几何出现了问题。
PSpice仿真中收敛问题研究
PSpice仿真中收敛问题研究PSpice是一个全功能的仿真工具,随着版本的不断革新,可以实现严格的电路模拟和电路优化,并成为工业标准工具。
目前所有的电路仿真工具在进行直流分析和瞬态分析时都会遇到不收敛的问题。
PSpice虽然已经采用了最可靠的算法,但仍未能杜绝不收敛问题。
从仿真器采用的算法出发,分析不收敛产生的原因,针对各种原因提出相应的处理方法,最后通过一个存在收敛问题的实际电路,应用文中提及的方法解决了不收敛的问题,证明该文研究的处理方法的有救性和可行性。
1 引言用于模拟电路仿真的SPice(Simulation Program with integrated circuit emphasis)软件是1972年由美国加州大学伯克利分校利用FORTRAN语言开发而成的。
为了能在PC机上运行,MicroSim公司在1983年SPice 2G.6版本的基础上推出PSpice仿真器。
PSpice仿真器经过不断的革新,到2007年已发展到16.0版本,它不是一般意义的教学演示软件,而是为严肃的模拟设计而特性化的仿真器。
在使用仿真器进行DC分析和瞬态分析时,经常会遇到电路设计完全正确,却无法得到仿真结果的情况,也就是不会运行到所设定的终止条件,同时输出文件会给出出错信息,这就是程序不收敛的问题。
该问题是执行仿真中最难解决的问题之一。
PSpice程序虽然采用了最可靠的算法,但仍不能完全避免不收敛现象的发生。
本文就这一难点问题提供一些可供参考的方法。
2 发生不收敛问题的原因在分析过程中不收敛的根本原因是因为软件在电路分析时都是将电路的电流电压问题转换为方程组来求解,这些方程组分为线性方程组和非线性方程组。
线性方程组可以采用直接消元法、高斯消元法和LU分解法等,非线性方程组更多的使用迭代法。
而迭代法不可避免的会产生不收敛的问题。
以PSpice中使用最普遍的牛顿-拉夫逊(N-R)迭代法为例来说明。
对于某一非线性方程,f(x)=0,N-R迭代关系式为;点击图片查看大图当给定一个恰当迭代初值x0,代入式(1)进行迭代,产生一个迭代序列{xk+1),直到xk+1和xk之间差的绝对值小于某个给定的允许误差ε为止。
PSpice仿真中的收敛问题及解决方法
写在前面:本文是作者平常学习和工作中记录的一些笔记,有些零碎,但是很有用,主要是从原理的角度阐述了PSpice仿真中的收敛性,以及应对仿真不收敛的方法。
适合使用PSpice仿真很久并且碰到过较多问题的高手!注意:有些东西是最原始的spice语言的,在OrCAD PSpice 中不一定有相应的选项。
By: Michael Wang 2010年12月17简介PSpice在设定的仿真次数内,如果不能得到满足精度要求的解,就会出现收敛性问题,该问题可能有两大类原因导致:第一:容许的仿真次数太少或者仿真精度要求太高。
第二:电路方程本身无解。
针对不同的仿真类型,都会有一些问题的探讨和分析以及相应的应对策略。
DC分析:在PSpice执行一些定制的仿真前,首先执行DC工作点分析,PSpice通过特定数量的迭代得到DC静态工作点,否则PSpice会有电路不收敛的提醒,并且退出仿真程序。
默认收敛限定描述如下:.options ITL1=100如果不收敛,上式中的ITL1可以增加到大于500更多的DC收敛参数:GMIN步长设置、信号源步长设置、初始电容电压设置及伪瞬态设置。
.NODESET可以设置电路节点的DC电压值,PSpice会识别这个电压值作为电路仿真的初始电压值,可以减少对收敛的迭代次数。
如果不能通过节点设置和ITL1来得到收敛结果,可以设置ITL6=100或者其他非零值,这个设定时运用信号源步长算法,从一个开始值逐渐减少信号源电压直到0电平,或者减少得到一个收敛解,这时,信号源再逐渐减回设置的初始设置。
这个方法可以解决所有DC偏置点不收敛的问题,但是ITL6函数本身有缺陷,所以在最后万不得已才能用。
(OrCAD没有引入这个参数)如果电路包含半导体器件,该器件导电区域会包含零电导率。
这样仿真会出现一个“把零作除”的错误。
为了消除这个错误的产生,在每个半导体器件的PN结点处用GMIN跨导与每个PN结点处并联。
GMIN是一个全局参数,默认值100PΏ,GMIN的参数值越大,牛顿拉夫申算法会越快完成收敛计算。
从原理的角度阐述了PSpice仿真中的收敛性,以及应对仿真不收敛的方法
写在前面:本文是作者平常学习和工作中记录的一些笔记,有些零碎,但是很有用,主要是从原理的角度阐述了PSpice仿真中的收敛性,以及应对仿真不收敛的方法。
适合使用PSpice仿真很久并且碰到过较多问题的高手!注意:有些东西是最原始的spice语言的,在OrCAD PSpice中不一定有相应的选项。
By: Michael Wang 2010年12月17简介PSpice在设定的仿真次数内,如果不能得到满足精度要求的解,就会出现收敛性问题,该问题可能有两大类原因导致,第一:容许的仿真次数太少或者仿真精度要求太高。
第二:电路方程本身无解。
针对不同的仿真类型,都会有一些问题的探讨和分析以及相应的应对策略。
DC分析:在PSpice执行一些定制的仿真前,首先执行DC工作点分析,PSpice通过特定数量的迭代得到DC静态工作点,否则PSpice会有电路不收敛的提醒,并且推出仿真程序。
默认收敛限定描述如下:.options ITL1=100如果不收敛,上式中的ITL1可以增加到大于500更多的DC收敛参数:GMIN步长设置、信号源步长设置、初始电容电压设置及伪瞬态设置。
.NODESET可以设置电路节点的DC电压值,PSpice会识别这个电压值作为电路仿真的初始电压值,可以减少对收敛的迭代次数。
如果不能通过节点设置和ITL1来得到收敛结果,可以设置ITL6=100或者其他非零值,这个设定时运用信号源步长算法,从一个开始值逐渐减少信号源电压直到0电平,或者减少得到一个收敛解,这时,信号源再逐渐减回设置的初始设置。
这个方法可以解决所有DC偏置点不收敛的问题,但是ITL6函数本身有缺陷,所以在最后万不得已才能用。
(OrCAD没有引入这个参数)如果电路包含半导体器件,该器件导电区域会包含零电导率。
这样仿真会出现一个“把零作除”的错误。
为了消除这个错误的产生,在每个半导体器件的PN结点处用GMIN跨导与每个PN结点处并联。
GMIN是一个全局参数,默认值100PΏ,GMIN的参数值越大,牛顿拉夫申算法会越快完成收敛计算。
ansys解决非线性分析不收敛的技巧
解决非线性分析不收敛的技巧大家都提到了收敛困难的问题为加速收敛应该注意一下几个问题: 1收敛容差ANSYS缺省的收敛准则会根据单元的不同而检查不同的收敛力素和容差例如当采用solid65和link8时,缺省的要检查F和DISP两个力素其容差也是缺省的(Help中有)对于钢筋混凝土结构一般而言其位移比较小仅使用F力素收敛即可但其容差也同时放松一般采用5%即可(缺省是5)命令:cnvtol,f,,0.05,22 其它选项的设置自动时间步打开此选择可以让程序决定子步间荷载增量的大小及其是增加或是减小收敛速度较快(命令autots,1)打开后似乎定义的子步数不起控制作用了打开线性搜索可以帮助收敛的速度(命令:lnsrch,1)打开预测器可以帮助收敛的速度(命令red,on)平衡迭代次数在每一子步中的迭代次数缺省是25,将其增加例如改为50(命令: neqit,50)NSUBST此值不宜过小否则计算过程中老是调整影响计算速度当然对于比较简单的算例或是分布模型可能不需要如此多的选项但对于复杂的模型是需要的各位可以试试影响非线性收敛稳定性及其速度的因素很多:1、模型——主要是结构刚度的大小。
对于某些结构,从概念的角度看,可以认为它是几何不变的稳定体系。
但如果结构相近的几个主要构件刚度相差悬殊,在数值计算中就可能导致数值计算的较大误差,严重的可能会导致结构的几何可变性——忽略小刚度构件的刚度贡献。
如出现上述的结构,要分析它,就得降低刚度很大的构件单元的刚度,可以加细网格划分,或着改用高阶单元(BEAM->SHELL, SHELL->SOLID)。
构件的连接形式(刚接或铰接)等也可能影响到结构的刚度。
2、线性算法(求解器)。
ANSYS中的非线性算法主要有:稀疏矩阵法(SPARSE DIRECT SOLVER)、预共轭梯度法(PCG SOLVER)和波前法(FRONT DIRECT SLOVER)。
稀疏矩阵法是性能很强大的算法,一般默认即为稀疏矩阵法(除了子结构计算默认波前法外)。
开关电源Pspice仿真技巧及收敛性问题
开关电源Pspice仿真技巧及收敛性问题摘要:本文主要讲述了开关电源的Pspice仿真中,速度与精度的权衡,收敛性问题的常规解决方法。
收敛性问题快速解决办法目前最最快速的办法,就是用16.0以上的版本,有自动收敛功能,能解决至少95%以上的收敛性问题。
但对于原理,还是要需要了解下面一些知识。
在做开关电源仿真时,经常会遇到收敛性的问题。
我也在其中遇到各种各样的收敛性问题,根据我的经验和前辈的传授,下面我对这个问题进行一个说明。
如果在仿真时遇到收敛性问题,快速解决办法如下:设置.OPTION设置里的一些选项。
_ ABSTOL = 0.01μ (Default=1p)_ VNTOL = 10μ (Default=1μ)_ GMIN = 0.1n (Default=1p)_ RELTOL = 0.05 (Default=0.001)_ ITL4 = 500 (Default=10)这些设置可以解决大多收敛性问题,当然如果电路中的错误,它是解决不了的。
如果模型不够精确,上面的设置需要实时调整才能得到想要的结果。
开关仿真中速度与精度的权衡开关仿真就是仿真时有很多重复的周期性的上升下降信号的仿真,比如开关电源的仿真。
在这种仿真中,需要丢弃一些仿真时间点,不然仿真将会非常慢。
而尽管如此,开关电源的仿真还是非常慢。
这种仿真中,pspice的时间步长会在一个很大的步长范围内波动。
这个波动范围主要由一些设置限定,比如RELTOL,ABSTOL,VNTOL等。
因为它是线性迭代算法,为了在信号的上升沿和下降沿得到限定精度范围内的值,在沿处理时,它需要提高步长细度,否则难以得到限定的仿真精度。
因为一般可信的仿真精度是不可能有太大的误差的。
为解决这种问题,通常可以通过设置TRTOL=25(DEFAULT 7),和TMAX,将时间步长限定在开关周期的1/10到1/100之间。
这样做基本可以提高一倍的仿真速度。
当然精度应该在可接受范围内。
saber仿真软件下载
saber仿真软件下载几种电源仿真软件介绍(转摘)IsSpice是美国Intusoft 公司推出的一种商业仿真软件,是ICAP/4软件集成系统的重要组成部分。
ICAP/4软件集成系统主要由SpiceNet、PreSPice、InSpice和IntuScope四大功能模块组成。
ICAP/4的工作流程是:首先进入SpiceNet绘制电路图,并生成相应的Netlist文件,然后执行IsSpice仿真软件模块,在仿真之前系统将自动连接PreSpice仿真资料库中的元件模型,仿真完成之后利用IntuScope波形分析处理模块对仿真模型进行分析处理。
SpiceNet是电路原理图绘制模块,主要实现电路原理图的绘制、Netlist文件的自动生成、瞬态波形显示以及交互式仿真控制。
SpiceNet与当前流行的各种仿真系统兼容,其输出文档格式适用于Mentor、OrCAD和Protel系统。
ICAP/4工业版的PreSpice元件资料库中包含10,000种以上的元件模型,以ASCⅡ格式保存,用户可以随时通过仿真模型浏览器Parts Browser对不同元器件供应商提供的元件模型进行浏览。
同时,ICAP/4系统还提供了100多个通用模型,输入相应的元件参数后即可直接调用。
另外,用户可以即时通过Internet下载最新的元件库。
InSpice是具有完善的仿真控制功能的交互式仿真软件,其主要特点包括:(1)瞬态波形显示;(2)电路元件电压、电流、功耗及模型参数显示;(3)采用ICL交互式编程语言控制仿真过程;(4)可进行成组参数扫描;(5)可进行交流、直流、瞬态、噪声、傅立叶、失真度、温度、直流灵敏度、蒙特卡罗分析和最佳化分析;(6)可测量电路参数临界值。
IntuScope波形分析处理软件能够实现数字式存储示波器和频谱分析仪的功能,能够对仿真结果进行实时分析和计算处理。
主要能够实现:(1)显示各种分析类型的仿真波形;(2)波形分析参数包括:有效值、峰-峰值、平均值、最大值、最小值;(3)允许同时显示和分析大量波形;(4)可进行回归、滤波、增益、相位、上升/下降时间分析和计算。
如何处理接触收敛性问题
接触收敛
解决收敛困难的建议 收敛困难的原因有:
• 在大变形之后的刚体运动
14) 对于金属成型过程,在模拟的最后阶段,如果分析没有显示收敛特性,就需要查看变形图,
Stable
© 2004 ANSYS, Inc.
instable
ANSYS, Inc. Proprietary
Phase 1
© 2004 ANSYS, Inc.
Phase 2
Phase 3
ANSYS, Inc. Proprietary
接触收敛
解决收敛困难的建议 收敛困难的原因有:
• 不合理的定义塑性材料
11) 在使用塑性材料准则时,把切向刚度定义为零,并不总是好的选择.如果整个横截面都达到了 屈服应力,将会没有材料能够抵抗载荷。这时会出现塑性铰,求解会一直不收敛。 这时需要输入适当的切向刚度
接触收敛
解决收敛困难的建议 收敛困难的原因有:
• 载荷步长太大,
5) 如果对于大变形问题,通常需要较多的子步。如果旋转不是很大(小于180度),5到10的子 步比较合适。 对于小变形问题,可以减小法向刚度(FKN),因为FKN×d产生很大的力会破坏单元.
NLGEO,ON NSUB,1,1,1
NLGEO,ON NSUB,10,100,1
MU=0
MU=0.1
© 2004 ANSYS, Inc.
ANSYS, Inc. Proprietary
接触收敛
解决收敛困难的建议 收敛困难的原因有:
• 不合理的定义接触对
8) 有时考虑可能接触的地方非常重要:哪些面或点会与其它面接触, 下面这个图显式了目标面或接触面的定义会影响收敛特性的情况.
STARCD计算结果不收敛怎么办
计算结果不收敛的原因——模型、网格、边界条件、迭代方法等都有可能导致结果不收敛。
有时候要让计算结果收敛需要凭经验调整参数,但有时候收敛的计算结果不一定就是一个好的结果。
计算结果不收敛的解决方法——<1>、一般首先是改变初值,尝试不同的初始化,事实上好像初始化很关键,对于收敛。
<2>、查找网格问题,改善网格质量。
<3>、有时边界条件的设置严重影响收敛性。
<4>、重算至发散前几步,看presure分布,看不出来的话,再算几步, 看看问题大概出在那个区域。
然后对这个区域(加密或变稀)进行网格的改善。
<5>、设几个监测点,比如出流或参数变化较大的地方,若这些地方的参数变化很小,就可以认为是收敛了,尽管此时残值曲线还没有降下来。
<6>、调节松弛因子。
怎样判断计算结果是否收敛——1、监测点处的值不再随计算步骤的增加而变化;2、各个参数的残差随计算步数的增加而降低,最后趋于平缓;3、要满足质量守恒(计算中不牵涉到能量)或者是质量与能量守恒(计算中牵涉到能量)。
特别要指出的是——即使前两个判据都已经满足了,也并不表示已经得到合理的收敛解了,因为如果松弛因子设置得太紧,各参数在每步计算的变化都不是太大,也会使前两个判据得到满足。
此时就要再看第三个判据了。
还需要说明的就是,一般我们都希望在收敛的情况下,残差越小越好,但是残差曲线是全场求平均的结果,有时其大小并不一定代表计算结果的好坏,有时即使计算的残差很大,但结果也许是好的,关键是要看计算结果是否符合物理事实,即残差的大小与模拟的物理现象本身的复杂性有关,必须从实际物理现象上看计算结果。
比如说本斑最近在算的一个全机模型,在大攻角情况下,解震荡得非常厉害,而且残差的量级也总下不去,但这仍然是正确的,为什么呢,因为大攻角下实际流动情形就是这样的,不断有涡的周期性脱落,流场本身就是非定常的,所以解也是波动的,处理的时候取平均就可以了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈如何解决Saber中的收敛性问题
2008-01-04 10:09 分类:Saber软件使用技巧
一直都有很多网友提到仿真收敛性的问题,Saber中出现收敛性问题主要集中在DC,DT和TR 分析中,其中绝大多数问题都与TR分析有关,今天借一位网友的提问来简单谈谈Saber中收敛性问题.网友的问题如下:
domono老师,saber仿真中遇到最多,最复杂的一个问题---不收敛.这是对我们初学者最大
的困难.今天又遇到,做DC分析出现如下错误:
*** ERROR \"ALG_SINGULAR_JACOBIAN\" *** Singular Jacobian matrix.
Some possible causes for a singular Jacobian matrix:
- Model operating outside of its intended region of operation.
- Node/subsystem with no connection to the reference (floating).
- Current loops (voltage sources/inductors in parallel).
- Missing equation and/or missing variable reference.
出现不收敛是不是由于接地、接口的问题产生的?还是其它原因?能否具体讲解一下吗?谢谢!
其实错误信息里面就含有可能引起不收敛的原因,下面来逐条看看.
- Model operating outside of its intended region of operation
模型运行越界,即运算出的结果使得模型超出了它正常的运行范围,对于仿真器来说就是某
个或者某一些节点、变量的运算结果在某一个时刻(通常也就是仿真中断的时刻)出现了奇异点,这些点和原来的计算结果出现了非常大的变化(通常是10的n次方的数量级),导致仿真器无法得到一个在误差允许范围内的系统解,所以就不收敛了.
- Node/subsystem with no connection to the reference (floating).
节点或者子系统缺少参考点. 这条意思非常明显,在目标系统中的某个节点处于悬空状态,仿真器无法得到该节点的正确解.这种情况下要仔细查找系统,看看有没有这种情况出现.如果有,需要为该节点添加一个上拉或者下拉偏置.
- Current loops (voltage sources/inductors in parallel).
系统中出现了电流环路.电流源只能并联不能串联,如果一个环路中出现了两个以上的电流源,仿真器也无法得到正常的解,将会出现不收敛.有意思的是上面还括弧中还列举了另外一种情况,就是电压源和电感直接并联.这种情况下,DC分析是没法收敛的,因为电感的阻抗在DC分析时被视为0,而电压源与它直接并联,此时就会造成电感电流无穷大,引起DC分析不收敛.
- Missing equation and/or missing variable reference.
确实系统方程或者缺少系统变量参考.这种情况在自己写MAST语言建模的时候容易出现(Saber自带的模型都是经过验证的,不会出现这种情况),主要是指在自建的模型中,定义的系统变量没有相关的系统方程,造成仿真器无法计算该系统变量,导致仿真不收敛.
在提示的这四种情况中,第四种主要和自建模型有关,如果没有自己写的MAST程序,就不必
考虑.第二和第三种容易在DC分析或者TR分析一开始就出现不收敛的情况,诊断起来也相对容易.第一种可能出现在TR分析的任何时刻,这种情况在仿真结果中会有所体现,打开仿真结果文件,仔细查看各个节点的变量波形,能找到波形仿真突变的节点变量.此时就需要研究与该变量相关的模型,通过调整系统结构或者模型参数来避免这种收敛性问题.。