现在的位置: 首页 > 综合 > 正文

关于time step too small的含义

2013年10月19日 ⁄ 综合 ⁄ 共 1420字 ⁄ 字号 评论关闭

关于time step too small的含义

所有SPICE仿真都有可能会出现这种问题,从数学上讲,是因为迭代运算在步长很小的迭代中都无法找到允许误差下的解。也就是SPICE的方程组不收敛。
为什么会这样呢?一方面有可能是设计上不合理,如前面有兄弟说到的问题;另一方面可能是模型设计的问题,特别是某些数字模拟混合设计,或存在开关器件时(一般开关器件不能理想化设置Ton=0就是为了避免出现这个问题)。
如何解决这个问题?需要对症下葯,一般由简到繁来处理:先检查电路设计上有没低级错误;更换器件模型(如三极管)试验;如果以上都无效,还可以尝试修改SPICE仿真参数,这个比较繁琐,最好先记录原始值,以便恢复。大体修改的思路是放宽误差容限,一般以整数量级为单位来改动。但是误差大了仿真也就不准确了。

浅论至此,欢迎指正!

[ 本帖最后由 浅蓝 于 2007-7-31 08:47 编辑 ]

以下为摘录的另外一段内容:
“Timestep too small”出错信息

0

如果 LTspice 在假设的 time step 下不能求出一个解,那么程序将减小 time step,然后再次尝试。这不会永远做下去。如果 time step 达到一个特定的限制值(1fs?),那么 LTspice 将停止仿真并显示这条出错信息。
 
“Alternate”解析器会计算地更准确一些,可以把 time step 减小到一个更小的水平。但即便如此,也会出现失败情况。
 
对于这个问题,很难给出一个通用的解决办法。我一般会做如下尝试。
 
1. 在“.tran”行设置一个有用的最大 time step。可以多试几个值。不管是否还出错,都要使用最大 time step。
 
下面的大部分设置都是在 Control Panel 中完成。
Control Panel -> SPICE
 
如果还是出错:
2. 试试 Alternate solver
 
如果还是出错:
3.  回到 Normal solver
试试方法:Gear
 
如果还不行:
4. 返回默认设置。
尝试在“.TRAN”设置中使用“startup”。
 
如果还不行:
5. 返回默认设置。
试着设置 Gmin,但不要小于 1e-10
 
还不行:
6. 恢复默认设置。
试设置 Reltol=0.01
 
还不行:
7. 恢复默认设置。
试着用 6 和 7 的组合(罗亩按,此处不明白是何意,仍设为 Reltol=0.01?)
 
还不行:
8. 恢复默认设置。
试设置 .options Tseed=maxtimestep/10
 
还不行:
9. 有元件的真实值吗?在电容器(ESR)或电感器中串一个电阻器。
 
还不行:
10. 试设置 .ic 和 .nodeset
 
还不行:
11. 试设置 .options gshunt=... 和/或 .options cshunt=...
 
还不行:
12. 再问问别人吧。:)
 
不要低估了第11条提示。
 
下面是我在一次仿真中做的最多的一次设置
 
复位 SPICE 设置:
Control Panel -> SPICE
 
在 Control Panel 中设置特殊 GMIN 选项如下:
Control Panel -> Hacks Add GMIN across current sources
 
设置一个最大 time step。
.tran  0  10m  0  1u  startup
 
.options gmin=1e-10
.options abstol=1e-10
.options reltol=0.003
.options method=gear
.options cshunt=1e-12
.options gshunt=1e-9
 
 

抱歉!评论已关闭.