马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
报错在sdevice的仿真中,偶然会出现NaN的报错。
原理解释
所谓NaN在软件中,是Not A Number的缩写,是在运算过程中出现了无法计算或者无意义的数学结果,比如说log(-1),3/0等计算。这种计算的原因很大概率是因为求解过程中的数值精度不够导致的,比如:假如b=0.3211 c=0.3212,采用3位精度求解a/(b+c)=a/(0.321-0.321)=a/(0)=NaN,和 四位精度求解=a/(0.3211-0.3212)=a/(0.0001)=1e4*a。由此可见,计算精度不够时,可能会在差异极小的情况下,出现NaN的错误,这种情况常出现在宽禁带材料、极低温度仿真、以及低频交流小信号分析中。
解决方法
math中提高求解精度(位宽),采用ExtendedPrecision命令。
math{
ExtendedPrecision(80) # 80为位宽,可以设置为64 80 128 256。
}
|