电路分析与设计 Spice 仿真指南:蒙特卡罗分析
扫描二维码
随时随地手机看文章
蒙特卡罗分析是电子模拟中使用的一种技术,用于运行一系列具有随机参数的模拟。它的名字源于这种技术利用随机性,灵感来自著名的蒙特卡罗赌场。在电子模拟中,蒙特卡罗分析用于评估电子元件(电阻器、电容器、电感器等)和操作条件的变化对电路的影响。换句话说,模拟运行多次,每次都有一组针对所考虑参数的随机值。这些随机值可以使用表示元件值变化的概率分布来获得。
蒙特卡罗分析的实际应用
通常,电子模拟使用电子元件的恒定值。实际上,这些值可能会有所不同,因为每个电子元件都不是理想的,而且外部工作条件总是不同的。例如,电阻的标称值可能是 100 欧姆,偏差为 5 欧姆,而蒙特卡罗模拟将考虑从正态分布中抽取的随机值,平均值为 100 欧姆,偏差为 5 欧姆,因此随机取值在 95 到 105 欧姆之间。使用 100 欧姆电阻器和 5 欧姆偏差对电路进行蒙特卡罗模拟可能会生成以下电阻值:96、102、100、97 和 103 欧姆。蒙特卡罗分析可用于估计元件值变化对电路行为的影响。它对于评估具有公差或不确定性组件的系统特别有用。蒙特卡罗分析可用于改进电路设计,提高其可靠性。为此,可以设计电路,使其行为即使在最极端的条件下也能满足所需的规格。由于组件值的变化是随机的,因此这种类型的分析可以提供更真实的模拟系统结果。它涉及大量分析的模拟,其中每个组件的值在所需范围内随机变化。随机生成算法应保证最高的随机率。可以设计电路,使其行为即使在最极端的条件下也能满足所需的规格。由于组件值的变化是随机的,因此这种类型的分析可以提供更真实的模拟系统结果。它涉及大量分析的模拟,其中每个组件的值在所需范围内随机变化。随机生成算法应保证最高的随机率。可以设计电路,使其行为即使在最极端的条件下也能满足所需的规格。由于组件值的变化是随机的,因此这种类型的分析可以提供更真实的模拟系统结果。它涉及大量分析的模拟,其中每个组件的值在所需范围内随机变化。随机生成算法应保证最高的随机率。但期望的范围。随机生成算法应该保证尽可能高的随机率。但期望的范围。随机生成算法应该保证尽可能高的随机率。
简单电源示例
图 1 显示了由以下元素组成的经典电源图:
· 13 V AC正弦电压源(V1)。实际上,它是 230 V AC至 13 V AC的电压变压器。频率为 50 Hz
· 四个整流二极管(D1、D2、D3 和 D4)。它们构成了经典的格雷茨电桥
· 2200 uF 电解电容(C1)。其作用是平整二极管的脉动电压,降低纹波信号的纹波和速率
· 50 欧姆的电阻负载 (R1)。
该方案采用了4个1N4007二极管,其SPICE模型如下:
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)
图 1:经典低压电源
该图显示了四个元素:
· 最上面第一个是电源的电气图
· 第二张图显示负载上的电压,可以看出,它受到纹波信号的影响
· 第三张图表示流过负载的电流,它也受到纹波信号的影响
· 最后,第四张图被大大放大,显示了负载上电压和电流的总体趋势。
在示例图中,假设组件值是理想的。在这种情况下,图表也是理想的,没有考虑电子元件可能的变化,尤其是电解电容器的变化。使用 LTspice 提出的示例的 NETLIST 如下:
* Montecarlo – by laocuo
V1 N001 N002 SINE(0 13 50)
D1 0 N001 1N4007
D2 N001 load 1N4007
D3 0 N002 1N4007
D4 N002 load 1N4007
C1 load 0 2200µF
R1 load 0 50
.model D D
.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)
.tran 0 100mS 0
.backanno
.end
市场上有各种分立元件,公差为 1%、5%、10%、20% 等。此外,电容器的特点是其值非常有弹性,有时甚至与元件本身标称的值相差甚远。工作温度也会显著影响器件的固有值。出于这些原因,设计人员需要一个更真实的图表,该图表可以考虑所用元件值的实际变化,以便他们能够观察系统的实际行为。因此,假设电解电容器 C1 的公差为 50%,则电容器的电容值可能在 1100 微法拉和 3300 微法拉之间。必须同时处理容量和任何其他元件的变化,并且可能的操作条件的理论组合是多种多样的。为了生成随机值,我们使用mc(value, tolerance)函数。其语法如下:
mc(x,y)
它随机生成 x*(1+y) 和 x*(1-y) 之间的一个均匀分布的值。LTspice 电气图中要包含的指令如下:
.param Capacitance=mc( 2200u , 50/100 )
.step param Simulations 1 10 1
在这种情况下,电解电容 C1 不能具有 2200 uF 的固定值,而必须包含变量后缀{Capacitance}这样模拟器就能够始终为组件分配不同的值,但在指定的范围内。变化间隔也可以输入为十进制数,而不仅仅是分数。在图 2 所示的电源仿真中,显示了与电解电容器的不同容量有关的纹波率的不同值。下图突出显示了信号一个周期的缩放。为简洁起见,仿真仅执行十次,但建议执行更多次,特别是如果要改变的电子元件很多,但要考虑到仿真时间和 PC 内存会随着执行的步骤数成比例增加。模拟中生成了十个不同的值。如您所见,图表显示了不同的曲线,元件值的变化让我们了解它们如何显著影响和改变电子电路的行为。在图表中,非常有趣的是,位于 6 毫秒的时间点不受电解电容器值的影响。可以说这个点每 10 毫秒定位一次,这个值很容易从 50 Hz 信号的半周期持续时间中推断出来。该值可从 50 Hz 信号的半周期持续时间轻松推导出来。该值可从 50 Hz 信号的半周期持续时间轻松推导出来。
图 2:具有各种电解电容值组合的电源电子模拟
温度蒙特卡罗分析
温度也可以受到随机变化的影响,以便与其他组件的变化一起很好地模拟。蒙特卡罗温度分析的一个典型例子是观察配置为共射极放大器的晶体管。在共射极放大器中,输出电流与输入电流成正比。电气图使用双电阻配置,这是一种故意受热漂移影响的解决方案。然而,两个电压之间的关系受多种因素的影响,包括温度。温度会影响晶体管的特性,这些变化可能会导致放大器出现故障。
温度蒙特卡罗分析可用于估计温度变化对电路行为的影响。为此,需要运行大量的电路模拟,每个模拟的温度都不同。模拟结果可用于创建放大器输出电压和电流的概率分布。该分布可用于确定输出值大于某个值的概率。温度蒙特卡罗分析是一种重要的技术,可用于改进电子电路的设计和评估。运行模拟后,结果可用于创建电路节点处所有值的概率分布。图 3 显示了该放大器的电气图,其增益约为 400,与 1 kHz 和 10 mV 幅度的正弦信号有关。晶体管温度升高可能会变得危险,并导致集电极电流增加,直至雪崩效应。假设您想在蒙特卡洛模拟中测试 0° C 至 60°C 之间的温度。要设置的指令如下:
.param T=mc(30,100/100)
.temp {T}
.step param 模拟 1 10 1
第一个指令的目的是为变量 T 分配一个介于以下之间的温度值:
30 – (30*100/100) = 0°C
和:
30 + (30*100/100) = 60°C
第二条指令有效地将温度设置为变量 T 的值。最后,第三条指令执行十次模拟,始终在设定的间隔范围内不时改变温度值。
图 3:动态状态下晶体管集电极上的电压随温度变化
结论
通过适当的操作,可以随机改变所有可以想象到的元件电气参数。通常,电子模拟是完美无误的,指定唯一且精确的值,但使用蒙特卡罗方法可以提高测试的真实性,从而使模拟电路的行为更接近真实电路。使用这种方法,可以观察当电子元件的值处于允许的最小值和最大值时系统的行为。模拟结果通常以所用值的概率分布形式呈现。这种技术在设计阶段非常有用,因为在设计阶段,评估电路在电子元件值不确定性方面的稳健性和可变性非常重要。在这种类型的模拟中,进行的测试次数越多,最终结果就越好,即使这会大大增加处理时间和由于存在临时文件而占用的硬盘空间。最后,当要处理的变量数量很多时,蒙特卡罗模拟特别有用。