蒙特卡罗在SPICE中的基础:理论与演示

Zachariah Peterson
|  已创建:April 14, 2022  |  已更新:September 2, 2024
蒙特卡罗在SPICE中

每当你在PCB上放置一个组件时,这几乎就像你在赌博。所有的组件都有容差,有些组件的容差非常精确(例如电阻),但其他组件的名义值容差可能非常大(例如,绕线电感或铁氧体)。如果这些组件的容差变得太大,你如何预测这些容差将如何影响你的电路?

虽然你可以手动计算围绕名义电气值(电压、电流或功率)的变化,但手动运行这些计算非常耗时,尤其是在大型电路中。然而,SPICE模拟器借鉴了概率论中一种非常有用的模拟类型来帮助你回答这些问题。这种模拟被称为蒙特卡罗模拟,现在你可以在Altium Designer中使用SPICE包来执行这种模拟。

在本文中,我将提供有关理解和构建蒙特卡罗模拟的理论概述,然后我将展示一个电源调节器电路的一些示例结果,以及公差如何影响结果。蒙特卡罗模拟生成大量数据,您可以使用这些数据为您的电路操作取统计数据,这给您一个好的概念,即由于元件值的公差,您的产品是否很可能按照您的规格进行性能表现。

在SPICE模拟中的蒙特卡罗

蒙特卡罗模拟操作一个简单的过程:随机生成一组数字,然后使用这些随机数字在数学模型中计算一些有用的东西。当在SPICE中使用蒙特卡罗模拟时,模拟将根据您定义的公差随机生成电路中的元件值。然后,它使用这些随机生成的元件值来运行标准的SPICE模拟。这个过程重复多次(有时是100次以上),以给您提供一组描述由于元件公差导致的电路行为变化的数据。

SPICE包通过一个简单的过程实现蒙特卡罗模拟。这涉及随机数生成和在标准SPICE算法中计算电压和电流,然后通过表格或图形显示结果:

  1. 选择您希望体验随机变化的组件,并定义组件的容差。
  2. 为组件容差选择一个分布(高斯分布最为常用)以及模拟运行的次数。
  3. SPICE模拟器使用在原理图中定义的标称值和第2步中定义的容差/分布来生成随机组件值。
  4. SPICE模拟器使用第3步中的随机组件值计算电路中每个点的目标电压/电流/功率。
  5. 重复第3步和第4步,直到达到所需的模拟运行次数。
  6. 第5步的结果被汇编成图表或表格,以便进一步检查或分析。

示例:电压调节器的蒙特卡罗模拟

在即将展示的示例中,我使用了下面显示的降压转换器电路。这个电路在主要部分使用了一个相对较大的电感(L1),接着是输出端的L滤波器,以进一步减少开关噪声。输出电容器有一个消谐电阻,以帮助减少瞬态响应的强度并平滑输出电压。

Monte Carlo SPICE buck converter
我将在本次仿真示例中使用的降压转换器电路。

此电路旨在将输入的25V降至大约6.75V。在我的模拟中,我将允许电感值变化高达30%,并将进行15次运行。这种大的变化可能会在一些线绕电感和铁氧体中发现,使用如此大的变化可以帮助您看到纹波和超调的极端值。

电感是变化组件的另一个原因是它是输出纹波的主要决定因素,当转换器在连续导电模式下工作时。如果我们真的需要验证最坏情况下的电气行为,我们甚至可以更进一步,查看电感电流本身,看看电感电流接近连续导电的程度。

结果

一些初步结果显示了在元件值变化30%时的瞬态响应,如下所示。从这个窗口中,我们可以看到,转换器已经表现出一些超调,根据电感的值,范围从8.37V到8.56V不等。下图标出了下轮廓(绿色,L1 = 91.9 uH,L2 = 6.16 uH)和上轮廓(紫色,L1 = 122uH,L2 = 7.64 uH)的值。

Monte Carlo SPICE simulation
使用SPICE中的蒙特卡洛方法生成的降压转换器瞬态分析结果。

每条曲线对应一对随机生成的电感值。从结果中,我们可以清楚地看到电感变化的影响:

  1. 随着调节器启动,上升时间、超调和瞬态响应有一些变化。
  2. 每个可能的电感值都会在输出电压波形的纹波上产生非常小的变化。

输出纹波保持如此低的事实是令人鼓舞的;这意味着我们可以依赖这个设计在所有其他参数有小的变化时输出一致的纹波。

为什么纹波的变化如此之低?

不看输出纹波作为输出电感函数的方程,人们自然会假设电感的变化 +/- 30% 会产生类似大的输出电感变化。然而,如果我们查看在连续导电模式下工作的降压转换器的输出电流电压波形纹波的方程,我们可以看到为什么情况并非如此:

Monte Carlo SPICE
降压转换器的输出电流纹波。

因为电感值在分母中,这些变化的影响被减小了。你可以通过对标称电感值进行微扰,并查看纹波敏感度与电感变化成比例的方式来看到这一点:

Monte Carlo SPICE
对于电感器30%公差的输出电流纹波变化。我们可以看到,当电感值较大时,这些变化的影响较小。

这些变化的影响通过电感值被减小。换句话说,对于大电感,30% 的容差会产生比在小电感上相同的 30% 容差更小的输出纹波变化。当某些电气值(在本例中为电流)与所讨论的组件值之间的关系是非线性相关时,这种行为是典型的。

此外,输出滤波器(L2 + C2)中的3 dB下降频率已经低于调制Q1的PWM频率。这个滤波器部分的3 dB下降点名义上为41.1 kHz,而纹波频率与100 kHz的PWM频率相匹配。纹波将被显著过滤,因此下降频率的结果变化对输出纹波的影响不大。

统计分析

如果你打算进行蒙特卡罗分析,你可能需要进行一些统计分析,以真正理解由于组件值的随机变化导致的电路行为的极限。在下面的图表中,我取了上述瞬态分析结果,并提取了由于过冲在开启阶段发生的最大电压。我计算了平均值和标准差,以量化电感值变化的影响。

要以CSV或其他数据格式导出你的瞬态结果,请在Altium Designer的主菜单中使用文件 → 导出 → 绘图命令。然后,你可以将你的数据导入到Excel、MATLAB、Mathematica或其他数据分析程序中。

Monte Carlo SPICE statistics
从瞬态响应中确定的过冲电压的平均值和标准偏差。

如果我们使用收集到的数据和上述统计值构建一个置信区间,那么95%的这些电路将展示出从8.375V到8.605V的超调量。如果我们想要进行进一步的分析,比如最坏情况分析,我们可以使用这些极端值中的任何一个来理解电路行为。

使用更大数据集的可靠性评估

为了统计地评估可靠性,你可能会运行大量的模拟,这样你就会有很多数据点可以查看。有了更多的数据,你可以从提取的测量值构建直方图,并使用此来获得定义电路行为的概率分布;然后你可以使用这些值来确定电路在完全不可接受的范围内(超出我们置信区间中的极端值)运行的概率。

仅仅为了好玩,我已经将此分析中执行的模拟次数增加到了100次。下面展示了100次迭代的瞬态结果。从这些曲线中,我们可以再次提取开启阶段的最大超调电压。

Monte Carlo SPICE statistics
开启阶段前100微秒内的瞬态响应。从这100条曲线中,我们可以提取每条曲线的过冲电压,并确定一个描述最大电压的概率分布。

如果您将结果导出到Excel中,您现在将拥有足够的数据来创建一个直方图,如下所示。覆盖在上面的橙色曲线显示了从分组数据确定的累积函数;它显示了在当前分组或以下的数据百分比,并可用作衡量该电路预期操作范围的一种度量。

Monte Carlo SPICE statistics
从100次仿真中确定的过冲电压统计数据。

这里的要点是,我们有了一种快速简便的方法来检查电路性能在给定组件容差下的变化情况。如果结果不在我们的规格或安全边际内,则在创建PCB布局和组装原型之前,需要修改电路。

如果您对在Altium Designer®内为您的电路运行蒙特卡罗模拟感兴趣,您不需要外部的模拟包或专门的分析软件。您需要评估电路和执行可靠性模拟的一切都可以在Altium Designer的原理图编辑器内找到。一旦您完成了PCB,并且准备好与合作者或您的制造商分享您的设计,您可以通过Altium 365™平台分享您完成的设计。在一个软件包中可以找到设计和生产先进电子产品所需的一切。

我们只是初步探索了使用 Altium Designer 在 Altium 365 上可以做到的事情。今天就开始您的 Altium Designer + Altium 365 免费试用吧

关于作者

关于作者

Zachariah Peterson拥有学术界和工业界广泛的技术背景。在从事PCB行业之前,他曾在波特兰州立大学任教。他的物理学硕士研究课题是化学吸附气体传感器,而应用物理学博士研究课题是随机激光理论和稳定性。他的科研背景涵盖纳米粒子激光器、电子和光电半导体器件、环境系统以及财务分析等领域。他的研究成果已发表在若干经同行评审的期刊和会议论文集上,他还为多家公司撰写过数百篇有关PCB设计的技术博客。Zachariah与PCB行业的其他公司合作提供设计和研究服务。他是IEEE光子学会和美国物理学会的成员。

相关资源

相关的技术文档

返回主页
Thank you, you are now subscribed to updates.