PSpice仿真教程之蒙特卡洛分析

电子说

1.3w人已加入

描述

从上次更新至今又悄悄过去三个月了,看到公众号后台有很多需要“PSpice”的新伙伴留言:

小电觉得还是需要把PSpice的教程续写下去,否则实在不好意思面对热情满满的新伙伴们

前面我们已经讲了PSpice提供的三种最基本的分析方法:直流分析交流扫描分析瞬态分析,也讲了一种进阶分析:参数扫描分析,今天我们讲一种统计分析方法——蒙特卡洛分析(Monte Carlo)

蒙特卡洛方法得名于欧洲著名赌城——摩纳哥的蒙特卡洛,大概是因为赌博游戏与概率有着很深的内在联系。蒙特卡洛方法也被称为计算机随机模拟方法,是一种使用随机抽样统计来估算数学函数的计算方法,它适用于对离散系统进行计算仿真试验。

那电路仿真软件中的蒙特卡洛分析是做什么用的呢?

大家知道仿真软件中用到的器件都是认为它是精确的,仿真时都是取其标称值下分析其响应,然而对于电阻、电容和电感等实际分立元件,以及半导体器件,其参数值均有一定的容差,例如当选择容差是5%,阻值是10kΩ的电阻,仿真就按标称值10kΩ进行分析,但在实际中你可能买到的电阻会9.5kΩ~10.5 kΩ之间。当所有元器件的容差效果组合一起时,可能对电路的输出响应造成巨大偏差。这就使得仿真结果和实际相差很远.

因此在电路仿真中有两种统计分析:蒙特卡洛分析和最坏情况分析,是用于研究元器件参数值变化(容差),或者影响元器件参数值的物理参数变化(比如温度有容差)时,对某些电路特性的影响。

概 述

蒙特卡洛分析是一种统计模拟方法,它是对选择的分析类型(包括直流分析、交流分析、瞬态分析)多次运行后进行的统计分析。第一次运行采用所有元器件的标称值进行运算,最后将各次运行结果同第一次运行结果进行比较,得出由于元器件的容差而引起输出结果偏离的统计分析,如电路性能的中心值、方差,以及电路合格率、成本等等。用此结果作为是否修正设计的参考,增加了模拟的可信度。

直观的理解就是: 蒙特卡洛分析是在模拟实际搭建的电路可能出现的偏差,毕竟实际中的元器件可不是理想的,而蒙特卡洛分析是在容差内随机选取,可以让机器随机算几千次或更多,把实际中可能出现的情况都包含上。

本期以双运放窄带通滤波器为例,设计指标要求:中心频率为50Hz,品质因数为20。电路如图1所示。希望利用蒙特卡洛分析方法分析电路元器件容差对滤波器的频率特性产生的偏差,选择最合适的器件将技术指标的误差控制在10%以内。

仿真

图1 本期实例电路

元器件容差设置

图1的电路图大家看到电阻电容数值的旁边都标着5%或10%,这就是该元件的容差,一般元件从元件库中选取放置时,容差默认是0,也就是都是取其标称值,在进行蒙特卡洛分析和最坏情况分析时需要额外设置元器件的容差。

有下面几种方法设置元器件容差:

1、属性编辑器中添加容差参数

新版本中分立元件R、L和C均具有容差参数,通过双击器件,打开属性编辑器就可以对其容差进行添加和设置。但输入容差参数时,务必在数值后面输入%,例如10%,否则会出现偏差。图2是对电容C的属性编辑框中直接输入容差值。若需要在电路图上显示容差数值,需要选择整个TOLERANCE容差行,然后右键选择Display,在随后的对话框中选择Value only即可只对数值进行显示。

仿真

图2 属性编辑器中添加容差值

2、BREAKOUT库元件添加容差参数

早期的版本中只有通过选择breakout元件库中的元件,通过模型编辑器为分立元件添加容差。例如对电容添加容差,首先从breakout库中选择Cbreak元件,然后通过点击右键选择Edit PSpice Model打开模型编辑器,最后通过设置语句对其容差进行添加。如下图所示:

仿真

其中:Cbreak为模型名称;CAP为PSpice模型类型;C=1表示数值因子为1,用于设置电容参数值的倍率;LOT和DEV是两种容差类型:

DEV称为器件容差

指同一模型名称的元件其参数值在该容差范围内独立变化;

LOT 称为批容差

指同一模型名称的元件其参数值在该容差范围内统一变化,即它们的值同时变大或变小。

如何设置模型参数的变化模式应根据实际情况确定。如果设计的电路要用印刷电路板(PCB)装配,则不同PCB中针对电路设计中同一个元器件采用的元器件参数将独立随机变化,就只需要选用DEV。但是如果在集成电路生产中,不同批次之间的元器件参数还存在起伏波动,就还应该用LOT。

方法一属性编辑框设置的容差其实就是DEV容差;而breakout中同时设置DEV和LOT,比如DEV=10%,LOT=5%,那么共同作用下这个电容的总容差将达到±15%。

3、半导体器件的参数容差设置

分立元件的参数主要就是它的数值,但半导体器件有着很多参数,容差设置只能针对某一个参数进行设置。比如需要对晶体管的放大倍数添加容差值,可以点击晶体管,右键找到Edit PSpice Model,进入模型编辑器,如图4所示,直接在Bf值后添加DEV容差。

仿真

图4 晶体管的放大倍数设置容差

4、分布类型的设置

蒙特卡洛分析过程中元器件参数值的改变是遵循特定的统计分布的,一般分立元件是默认均匀分布,在元件属性编辑器中可以看到默认项:

仿真

如果需要修改为高斯分布,可以直接双击后将FLAT改为GAUSS。

对于晶体管的参数,比如图4中晶体管的电流放大倍数,通常情况下更符合高斯分布,那么可以在模型编辑窗口中如图4下,将dev=50%增加为dev/gauss=50%,这样就把Bf的概率分布设置为高斯分布了。

电路中所有具有容差的元器件都设置好容差和统计分布后,就可以进行仿真参数设置。

蒙特卡洛分析的基本操作

蒙特卡洛分析和参数扫描分析一样,属于进阶分析,它需要在基础分析(比如交流扫描分析)的基础上附加的一种分析。

本期实例电路的设计指标明确表示是要看中心频率,于是先对电路进行交流扫描分析,频率范围从1Hz至1kHz,每十倍频1000个点。并在Options对话框中选择Monte Carlo/Worst Case分析

仿真

图5 蒙特卡洛分析设置对话框

分析参数设置

对于蒙特卡洛分析,我们需要做如下几个设置:

01设置输出变量

仿真输出变量由用户制定,可以为节点电压值、独立电流源或者独立电压源。在本例中输出变量设置为V(out)。

02设置运行次数

运行次数(Number of runs)是用来设置电路进行直流分析、交流分析或者瞬态分析的仿真次数。在最新版本中,最大运行数量已经从4000次增加至10000次,数量大大扩展,以满足用户的需求。电路运行第一次仿真时使用的元器件参数为其标称值。

03参数分布规律的选择

在“Use distribution”中提供了三种分布供选择,用于反映实际生产中元器件参数的分布情况。

Ø  Gaussian:正态分布,又称高斯分布,选用该分布时,PSpice采取将元器件的标称值设为均值,DEV容差作为标准偏差,从而产生一组随机数代表元件的分布情况;

Ø Uniform:指均匀分布,即元器件取的每个值的概率相等;

Ø  GaussUser:也是随机分布,但是如果选用此项分布,还需要在右侧下拉列表中选择一个数值,表示元件值分散范围对应几倍DEV的容差设置值。

04随机“种子数”的选定

与通用随机数发生器一致,PSpice软件也需要利用初始种子数生成随机数。“Random number seed”一栏设置的数值就是用于指定蒙特卡罗分析中进行随机抽样时产生随机数所用的“种子数”。其值必须在1~32767之间的奇数,若未指定,采用内定值为17533。如果种子数相同,则产生的随机数是完全相同的,若使用者希望模拟不同批次生产的电子产品参数分布情况,则每次应该在设置蒙特卡罗分析时,采用不同的种子值。

05数据保存形式

按照指定的运行方式对仿真数据进行保存。

None:只保存标称值运行的电路响应

All:保存每一次运行的数据

First:只显示前n次的结果,n填在随后的编辑框里

Every:每n次模拟显示一次,n也填在随后的编辑框里

 Run(list):显示所有指定次数的结果,最多可在后面填入25个数字

运行查看结果

按照图5的设置,确定后,点选PSpice→Run,或其对应图标。仿真结束后,会出现如图6所示的画面。此对话框告知用户有一百项模拟结果的波形资料,可以任选一项或多项,也可以全部选择, 确认对话框后就可以得到分析结果了。

仿真

图6 分批模拟结果的波形资料

由于图1中使用了“dB Magnitude of Voltage”的探针,于是直接显示了一百条输出的幅频特性曲线。

仿真

图7 蒙特卡洛分析的结果

点选View→Output File可以看到蒙特卡洛分析的文字结果,如图8所示。从图中可以看到第44次仿真达到最大偏差。

仿真

图8 蒙特卡洛分析的输出文档

同时我们还可以得出器件随机取不同容差得到的这100次仿真结果中,每一次的中心频率和品质因数值是多大。方法:

在PSpice波形显示窗口下点选Trace--->Evaluate Measurement,或者在工具栏中找到f(x)的图标,点击即可

仿真

会出现测量函数选择的对话框,

仿真

选择计算品质因数Q_Bandpass(V(out),3)和中心频率CenterFrequency(V(out),3),确定后在波形显示窗口的下方给出了100个数值

仿真

虽然一百组的数据都已经呈现,但这些数据还需要处理才能看出是否能满足不超过10%的误差,这就需要通过直方图来呈现了

直方图的使用方法

对电路进行蒙特卡洛分析后,可以绘制描述电路特性分散情况的分布直方图,能预计该电路投入生产时的成品率。

方法是在完成分析之后启动电路性能分析(Performance Analysis),Probe窗口将转化为直方图绘制窗口,这时选用的特征值函数在显示窗口中为x轴坐标变量,y轴坐标刻度为百分数。这就是说,只要在Monte Carlo分析以后启动电路性能分析,就自动进入直方图绘制状态。

在Probe窗口下选择Trace→Performance Analysis,或直接按下菜单栏中的:

仿真

然后选择Trace→Add Trace添加需要分析的测量函数。

仿真

图9 选取中心频率函数

确定后得到图10的中心频率直方图结果。

仿真

图10 滤波器中心频率直方图

上图中重要参数的说明如下:

n samples

蒙特卡罗分析的次数,现设为100 次,上限是10000次;

n divisions

显示的长方形个数,现设为20 次,条数越多越清楚,可通过设置 Number of Divisions 值来修改

Mean

输出变量平均值,这里是中心频率的平均值为50.2437Hz

Sigma 

输出变量标准差 σ,即均方根误差

Minimum、maximum、median

输出变量的最小值、最大值、中间值

10 th %ile

按从大到小顺序排列的100个滤波器样本中第10号样本和第11号样本的带宽平均值

90 th %ile

按从大到小顺序排列的100个滤波器样本中第90号样本和第91号样本的带宽平均值。

对于直方图X轴数据范围划分的区间数,以及直方图下方是否同时显示有关信息和统计分析结果,均可以由用户通过有关任选项设置确定。具体方法是选择Tools→Options 命令,得到图11的对话框。

仿真

图11 设置直方图相关信息

用同样的方式可以得到品质因数的统计直方图。

仿真

图12 品质因数的直方图

如果设计要求指标的误差需要控制在10%以内,那么需要中心频率在45 ~55之间,品质因数在18~22之间。从图10和图12可知,成品率均未达到100%。说明选取的器件容差有些偏高,将电容容差修改为5%,电阻容差修改为1%,运行后得到图13,可知设计可以满足要求。

仿真

图13 修改器件容差后的统计结果

这里对于没有满足设计要求时是采用将所有电阻、电容都调整为精确度较高的元件。如果能够找到影响各技术指标的关键器件,那就只需要对关键元件进行修改,这可以大大节省器件成本了,这将会在后续PSpice AA模块的灵敏度分析工具中介绍。敬请期待哟O(∩_∩)O   好了,这一期就到这,下一期讲解另一种统计分析——最坏情况分析,下期见。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分