SPICE仿真:蒙特卡洛分析方法
蒙特卡洛方法是使用随机数进行仿真和数值计算的手法总称。实际上构成电路的电阻、电容、电感、二极管、晶体管、IC等几乎所有的部件都具有特性波动。例如,电阻器是有容差的,±5%精度的100Ω电阻器的电阻值处于95Ω~105Ω之间。这种波动(误差)存在于各种部件中,这就导致由各种部件组成的电路因各种波动(误差)累加而导致电路特性存在波动。
采用蒙特卡洛仿真,通过执行多次仿真,并将各种电路元素的波动反映在仿真中,可以对整体特性的波动进行评估。这在电路整体的特性受多个电路元素影响时是非常有效的分析方法。其实方法有很多,一般采用的方法是围绕对整体特性有较大影响的电路元素来模拟波动。
蒙特卡洛分析方法示例
波动的设置方法因模拟器的类型而异。蒙特卡洛仿真的设置方法也分两种,即可以在电阻等符号中直接描述波动时不能直接描述时两种情况。分别举例如下。
・可直接在符号中描述波动的情况
在该示例中,向100Ω的电阻施加电压,并对电阻值(电压/电流)进行仿真。电阻值描述为{100*(1+tol)}。这是在设置电阻值时直接写入阻值栏的。使用随机数使其中的tol产生波动,并进行300次仿真。
在示例中,使用了2种随机数,它们的分布如下。在①中,定义为tol=flat(0.05),这表示波动范围±5%的均匀随机数。在②中,定义为tol=gauss(0.05),这表示标准差σ=5%的高斯随机数。仿真结果为:使用均匀随机数的均匀分布,使用高斯随机数的则呈正态分布。
・无法直接在符号中描述波动时
有些SPICE模型,可能无法像上述电阻一样能够直接在符号中描述波动。下面是NPN双极晶体管的hFE-IC特性仿真示例,双极晶体管的符号无法直接描述波动,因此采用在SPICE模型中添加波动描述的方法。
由于没有必要具体介绍如何描述,所以在此省略具体的描述内容,对于该模拟器,在电路图内插入了一个模型(Model),即在双极晶体管的参数中增加hFE=400±50这个波动描述的模型。图中绿线框起来的部分即是该模型(Model),除了产生波动的参数以外还描述了所有参数。2SC4081的原模型lib中输入的是不含波动的模型,但会优先使用电路图中插入的模型,所以会反映出所描述的波动。
至此,我们了解了两种蒙特卡洛仿真的设置方法,一种是可直接在电阻等符号中描述波动,另一种是无法直接在符号中描述波动,此时还有在SPICE模型中直接描述波动的方法。