这可能会让人感到意外,但工程师们进行蒙特卡罗分析并评估其结果的方式有可能是不正确的。错误理解蒙特卡罗分析结果可能导致不正确的技术和商业决策。当然,蒙特卡罗分析法是有帮助的,实际上有多种蒙特卡罗分析方法可以使用,你感到惊讶吗?
蒙特卡罗分析法是一种多变量建模技术,你可以将其视为一系列的“假设”场景。它允许工程师进行多次实验,并对一组给定结果定义概率分布或完成风险评估。在电路蒙特卡罗分析中,分析人员设定了会影响结果的每个元件特性的概率(一些元件具有很多不同的特性),并运行多个电路仿真来找出给定函数的各种可能的结果。
许多电路函数的参数变化不是单调的。因此,蒙特卡罗分析对于最坏情况电路分析(WCCA)很重要。仅进行极值分析(EVA)评估是不够的,因为这会使许多分析不产生最坏的结果。最坏的情况往往不是在参数极端的情况下产生的,所以如果只做EVA,会错过某些情况。
关于分析的顺序存在许多错误观念和错误的WCCA指南。要使用哪种分析方法取决于几个因素,其中包括待评估函数的参数容差是否单调变化。
分析的顺序并不一定是极值分析(EVA)、统计平方公差(RSS)和蒙特卡罗分析,即使这是许多指南所给出的顺序。实际上,并没有正式的“分析顺序”。容差和分析方法基本上是相互独立的,RSS容差可以应用于灵敏度、参数EVA或蒙特卡罗分析方法。尽管极值分析可以是有价值的第一步,通常可以让你了解哪些参数对输出函数有最大影响,但它并不一定是第一或唯一使用的方法。
如果一个分析结果不合规,不要将蒙特卡洛分析视为“后备”。在许多情况下,降低保守性当然是有用的,但这不是最坏情况分析(为什么要进行最坏情况分析,请参见另一篇文章,《Why worst-case circuit analysis is challenging to perform》。对于许多类型的分析,包括稳定性和总线/阶跃负载瞬态分析,或者分析哪里存在大量参数容差,蒙特卡罗才是首选,也许是唯一需要完成的分析。
另一个误解是蒙特卡洛分析需要完成大量的实验。这不一定是对的。
图1显示了一个使用状态空间平均模型的蒙特卡罗分析示例,用来分析一个开关电源的稳定性。仿真运行AC分析,看控制回路是否符合普遍接受的10dB增益裕度(顶部曲线)、30°相位裕度(中心曲线)的航天工业指南。图中还显示了与不稳定奇点(-1,0)(底部图)的距离。
图1:开关电源的蒙特卡罗分析显示了(从上到下)增益裕度、相位裕度以及与不稳定奇点的距离。
在这个例子中,我们为影响待分析输出函数的每个元件指定了一个容差范围和分布——通常是高斯分布或均匀分布。然后仿真一些(非任意)情况,其中容差特性根据它们的分布而变化,并把待分析输出函数的结果记录下来。
我们记录了对图1中12V~1.8V稳压器进行AC稳定性分析期间在到不稳定奇点的距离上得到的增益、相位和稳定性裕度。记录每个输出函数的统计数据(平均值和标准偏差)和最坏情况(终点)。若只做稳定性分析,从图2显示的稳定性裕度可以看出其性能。
图2:稳定性示例结果通常仅涉及相位和增益裕度。然而,稳定性裕度可以更好更准确地评估稳定性。为了方便起见,将与不稳定奇点的距离转换为度数,并与30°需求进行比较。
蒙特卡罗结果必须在有效的统计框架中进行评估。该框架包括一个置信区间以及一个与具体实例相关的置信水平(或确定性)组合。没有此框架,就无法正确评估结果。
一个函数的容差区间基于总体的测量样本,是一个存在某种可能性(或者感觉到某种程度的置信度)的区间,这种可能性就是总体的指定部分的值。
使用任意次运行后的最大和最小结果作为“最坏情况”,并不是执行和评估蒙特卡罗分析的正确方法。这是因为,从统计学角度来说,你并不知道计算了什么样的性能范围。例如,不应该只完成500次(或100或1000次等)实验,并为了满足规范要求而将终点作为“最坏情况”结果。以这种方式完成的蒙特卡罗分析很容易导致不正确的设计决策,因为结果有可能比预期更差,也有可能比预期更好。
对于航空航天和汽车领域的WCCA,可以使用以下两种方法中的一种来执行蒙特卡罗分析:正态分布容差区间法,其结果是平均值±几个西格玛;或与分布无关的容差区间法(非参数统计),其结果是最坏情况结果。在这两种情况下,运行次数都与具体的确定性和总体覆盖率相关联。
对终点值的使用是有特殊规则的。根据所选择的蒙特卡罗方法,结果的分布情况有可能重要,也可能并不重要。在图2的情况下(稳定性裕度直方图),结果不是正态分布。因此,应该使用与分布无关的方法。
对于正态分布容差区间法,被仿真的函数(稳定性,阶跃负载,纹波等)的平均值和标准偏差是根据蒙特卡罗结果计算得出的。然后使用范围(平均值±几个σ)计算性能,其中西格玛的个数基于总体(概率)覆盖率/置信水平(确定性),通常为99.73%/99%,99.73%/95%,或99%/90%。航空航天读者可能会看出99/90与用于小样本辐射评估的统计数据相同。要使蒙特卡洛评估有效,这两个数都必须定义,因为我们是在处理采样数据系统。必须遵循“3σ”准则进行分析这种说法是不全面的。
我们可以使用免费的在线工具来计算概率置信水平组合,表1对50个案例进行了蒙特卡罗分析,显示了容差区间计算的结果。这个免费的Excel/在线工具可以设定总体覆盖率和确定性的案例个数,确定标准偏差的正确个数。这里显示了一个常用组合——50例,±4(3.942)σ,相当于99.73%/99%。输出函数的分布必须是高斯分布。
表1:50个例子的容差区间——99.73/99≈4σ,99/90≈3σ。
置信水平和总体覆盖率互为反比。因此,给定相同的西格玛数量可以表示无限数量的置信度/总体覆盖率组合。对于99.9%的置信水平,总体覆盖率为99.315%,例如,使用30个例子,其中均值=0,标准差=1。
在线Excel计算器根据有限样本的均值和标准差,在假设最后的总体是正态分布(高斯)的情况下,计算出给定总体比例和任何指定置信水平的容差区间。在该示例中,99.73%/99%相当于大约4σ,99%/90%相当于3σ。
50个例子是随便选的。运行的例子数量可以是任意的,对于选定的置信区间/总体覆盖率,将产生特定数量的标准差。但50是一个比较实际的数字,它不会因为太大而在SPICE仿真过程中遇到收敛问题,也不会因太小而引起不熟悉这种方法的评审人的质疑。对于最常选择的置信区间和总体覆盖率,它也恰好产生西格玛约整数。
如上所述,对于正态分布容差区间法,最坏情况性能不是最大和最小终点仿真结果,而是平均值加上或减去指定的标准偏差数。
正态分布容差区间法的关键在于它只有在输出函数结果的分布是正态或非常接近正态(例如不是偏态的)时才有效。正态性是可以测试的。如果分布是非正态的,则应该使用与分布无关的容差区间法,因为输出变量总体的去偏是一个很具挑战的数学过程。
底层元件容差分布和输出函数的灵敏度会极大地影响输出函数的分布。例如,控制回路稳定性通常高度依赖等效串联电阻(ESR),其变化可达数量级。当ESR接近其最小值或规范最大值时,稳定性的仿真结果可能会高度偏斜。
因此,蒙特卡罗稳定性分析通常通过与分布无关的方法完成。均匀容差(分布平坦但被截断)可以得出与高斯分布不同的结果(假定高斯具有无限概率尾)。显然,如果已经知道元件的容差分布,尽管这种情况很少发生,就应采用它们。
在给定确定性和总体覆盖率时,与分布无关的容差区间法提供了一种基础,来选择作为最差情况结果的仿真终点运行次数。与正态分布的容差区间不同,与分布无关指的是输出函数的分布形态不会影响结果。然而,底层容差将影响结果,并且均匀概率分布将产生与高斯元件容差分布不同的结果(倒不一定更差)。
图3中的曲线由R统计软件包(distfree.cr)生成,它显示了与分布无关的置信水平的适当运行次数。“与分布无关”意味着输出结果的分布不必是高斯分布。使用指定的概率和确定性,将表现最差的情况(终点)视为性能范围。
图3:构建与分布无关的双侧容差区间所需的最小样本量。蒙特卡罗运行数量随总体覆盖率和确定性而变化。
表2显示了使用99.73%/90%总体覆盖率/确定性对最差情况范围的计算,运行次数必须为1440。最差性能结果定义了范围。
表2:常用的与分布无关的蒙特卡罗运行计数和标准偏差范围,与总体覆盖率和确定性的关系。
那么,什么是正确的总体覆盖率和确定性呢?这通常取决于应用、程序以及待评估的给定函数的性能期望水平。
最差情况分析是一项很具挑战的工作,它需要许多的专业知识。获得结果的最佳方法并不总是显而易见的。如果没有选择或使用正确的方法,就可能浪费大量时间并且结果还不正确。对于输出与所有底层容差变量不是单调关系的任何评估,蒙特卡罗分析几乎是必不可少的。通常,单调性是未知的。如果执行蒙特卡洛分析,则必须定义总体覆盖率和确定性以正确评估结果。无论是使用正态分布容差区间法还是与分布无关的容差区间法,都是如此。
(原文刊登于ASPENCORE旗下EDN英文网站,参考链接:Monte Carlo gone wrong?)
本文为《电子技术设计》2019年5月刊杂志文章。