广告

用于电路分析和设计的Spice仿真指南–第10部分:蒙特卡罗分析

2024-03-13 15:06:11 Giovanni Di Maria 阅读:
蒙特卡罗分析是电子仿真中使用的一种技术,用于使用随机参数进行一系列仿真。

蒙特卡罗分析是电子仿真中使用的一种技术,用于使用随机参数进行一系列仿真。该技术利用了随机性,它的名字灵感来源于著名的蒙特卡罗赌场。在电子仿真中,蒙特卡罗分析用于评估电子元件(电阻器、电容器、电感器等)和工作条件的变化对电路的影响。换句话说,仿真运行多次,每次都要对所考虑的参数设定一组随机值。这些随机值可通过代表元件值变化的概率分布来获得。vJ1ednc

蒙特卡罗分析的实际应用

通常,电子仿真使用电子元件的恒定值。实际上,由于每个电子元件并不理想,外部工作条件也总是不同,因此这些值可能会有变化。例如,电阻器的标称值为100Ω,偏差为5Ω,蒙特卡罗仿真会考虑从平均值为100Ω、偏差为5Ω的正态分布中随机抽取值,因此随机值在95和105Ω之间。比如说,使用偏差为5Ω的100Ω电阻器对电路进行蒙特卡罗仿真可能会生成以下电阻值:96、102、100、97和103Ω。vJ1ednc

蒙特卡罗分析可用于估计元件值变化对电路行为的影响。它对于评估具有公差或不确定性的组件的系统特别有用。蒙特卡罗分析可用于改进电路的设计,提高其可靠性。为此,可以设计电路,使其行为即使在最极端的条件下也能满足所需的规格。由于元件值的变化是随机的,这种类型的分析提供了更真实的仿真系统结果。它涉及大量的仿真分析,其中每个元件的值都在所需范围内随机变化。随机生成算法应保证尽可能高的随机率。vJ1ednc

简单电源示例

图1显示了由以下元件组成的经典电源图:vJ1ednc

  • 13VAC(V1)正弦电压源。实际上,它是一个230VAC至13VAC的电压互感器。频率为50Hz
  • 四个整流二极管(D1、D2、D3和D4)。它们形成了经典的格雷茨桥
  • 一个2200uF(C1)的电解电容。其作用是使二极管的脉动电压平整,减少纹波和纹波信号的速率。
  • 一个50Ω的电阻负载(R1)。

该方案使用4个1N4007二极管,其SPICE模型如下:vJ1ednc

model 1N4007 D(IS=7.02767n RS=0.0341512 N=1.80803 EG=1.05743 XTI=5 BV=1000 IBV=5e-08 CJO=1e-11 VJ=0.7 M=0.5 FC=0.5 TT=1e-07 type=silicon)vJ1ednc

vJ1ednc

图1:经典低压电源vJ1ednc

该图显示了四个要素:vJ1ednc

  • 顶部第一个是电源的电气图
  • 第二张图表示负载上存在的电压,可以看出,该电压受到纹波信号的影响
  • 第三张图表示流过负载的电流,它也受到纹波信号的影响
  • 最后,大幅放大的第四张图显示了负载上电压和电流的总体趋势。

在示例图中,假设元件值是理想的。在这种情况下,该图表也是理想的,并且没有考虑到电子元件,特别是电解电容器可能的变化。使用LTspice提出的示例的NETLIST如下:vJ1ednc

* Montecarlo – by Giovanni Di MariavJ1ednc

V1 N001 N002 SINE(0 13 50)vJ1ednc

D1 0 N001 1N4007vJ1ednc

D2 N001 load 1N4007vJ1ednc

D3 0 N002 1N4007vJ1ednc

D4 N002 load 1N4007vJ1ednc

C1 load 0 2200µFvJ1ednc

R1 load 0 50vJ1ednc

.model D DvJ1ednc

.model 1N4007 D(IS=7.02767n RS=0.0341512 N=1.80803 EG=1.05743 XTI=5 BV=1000 IBV=5e-08 CJO=1e-11 VJ=0.7 M=0.5 FC=0.5 TT=1e-07 type=silicon)vJ1ednc

.tran 0 100mS 0vJ1ednc

.backannovJ1ednc

.endvJ1ednc

所有分立元件均可在市场上购买到,公差为1%、5%、10%、20%等。此外,电容器还具有极高的弹性值,有时甚至与元件本身标注的值相差甚远。工作温度也会严重影响器件的固有值。由于这些原因,设计人员需要一个更真实的图表,可以研究所用组件值的真实变化,以便他们可以观察系统的真实行为。因此,假设电解电容C1的容差为50%,则电容值可在1100 uF至3300 uF之间。电容和所有其他组件的变化都必须同时处理,并且可能的理论运行条件组合非常多。为了生成随机值,我们使用mc(value, tolerance)函数。其语法如下:vJ1ednc

mc(x,y)vJ1ednc

它会随机生成一个x*(1+y)和x*(1-y)之间的均匀分布值。LTspice电路图中包含的指令如下:vJ1ednc

.param Capacitance=mc( 2200u , 50/100 )vJ1ednc

.step param Simulations 1 10 1vJ1ednc

在这种情况下,电解电容器C1不得为2200uF的固定值,而必须包含变量后缀{Capacitance},这样模拟器才能始终在指定范围内为元件分配不同的值。变化区间也可以输入为十进制数,而不仅仅是分数。在图2所示的电源仿真中,根据电解电容器的不同电容,显示了不同的纹波率。vJ1ednc

下图突出显示了信号的一个周期的缩放。为简洁起见,仿真只进行了十次,但建议执行更多次,特别是当要改变的电子元件很多时,但要考虑到仿真时间以及所需的PC内存会随着步数的增加而成正比增加。仿真中会生成十个不同的值。正如您所看到的,图表显示了不同的曲线,并且元件值的变化使我们了解了元件是如何显著影响和改变电子电路的行为。在图中,值得注意的是,位于6ms处的时间点不受电解电容值的影响。可以说,该点每10ms被定位一次,该值很容易从50Hz信号的半周期持续时间推导出来。vJ1ednc

vJ1ednc

图2:具有不同电解电容器值组合的电源的电子仿真vJ1ednc

温度蒙特卡罗分析

温度也可以受到随机变化的影响,以便与其他组件的变化一起得到很好的仿真。蒙特卡罗温度分析的一个典型示例是观察配置为共发射极放大器的晶体管。在共发射极放大器中,输出电流与输入电流成正比。电路图采用双电阻配置,这是一种故意受热漂移影响的解决方案。然而,两个电压之间的关系受到多种因素的影响,包括温度。温度会影响晶体管的特性,这些变化可能会导致放大器出现故障。vJ1ednc

温度蒙特卡罗分析可用于估计温度变化对电路行为的影响。为此,需要运行大量电路仿真,每个仿真都有不同的温度。仿真结果可用于创建放大器输出电压和电流的概率分布。该分布可用于确定输出值大于某一特定值的概率。温度蒙特卡罗分析是一项重要技术,可用于改进电子电路的设计和定值。运行仿真后,结果将被用于创建电路中节点处所有值的概率分布。图3显示了该放大器的电路图,其增益约为400,与1kHz的正弦信号和10mV的幅度相关。晶体管温度的升高可能会变得危险,并导致集电极电流增加,直至出现雪崩效应。假设您想在蒙特卡罗仿真中测试0°C到60°C之间的温度。要设置的指令如下:vJ1ednc

.param T=mc(30,100/100)vJ1ednc

.temp {T}vJ1ednc

.step param Simulations 1 10 1vJ1ednc

第一个指令的目的是为变量T分配一个介于……和……之间的温度值:vJ1ednc

30 – (30*100/100) = 0°CvJ1ednc

30 + (30*100/100) = 60°CvJ1ednc

第二条指令有效地将温度设置为变量T的值。最后,第三条指令执行十次仿真,不时改变温度值,但始终在设定区间的范围内。vJ1ednc

vJ1ednc

图3:在动态条件下,晶体管集电极上的电压随温度的变化vJ1ednc

结论

通过恰当的操作,可以随机改变所有可以想象到的元件电气参数。通常,电子仿真是完美且无错误的,指定了唯一且精确的值,但使用蒙特卡罗方法可以提高测试的真实性,从而使仿真电路的行为更接近真实电路。利用这种方法,可以观察当电子元件的值处于允许的最小和最大极限时的系统的行为。仿真结果通常以所用值的概率分布的形式呈现。vJ1ednc

该技术在设计阶段非常有用,因为在设计阶段评估电路在电子元件值不确定的情况下的鲁棒性和可变性非常重要。在这种类型的仿真中,进行的测试次数越多,最终结果就越好,尽管这会大大增加处理时间和因临时文件的存在而占用的硬盘空间。最后,当要处理的变量数量较多时,蒙特卡洛仿真尤其有用。vJ1ednc

(原文刊登于EDN姊妹网站Power Electronics News,参考链接:Guide to Spice Simulation for Circuit Analysis and Design – Part 10: Monte Carlo Analysis,由Ricardo Xie编译。)vJ1ednc

相关阅读:

用于电路分析和设计的SPICE仿真指南vJ1ednc

责编:Ricardo
本文为电子技术设计原创文章,未经授权禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了