在关于直流扫描分析的文章的这一部分中,我们将深入研究一些基本概念,这些概念可以提高分析的可能性,并实现自动测量,因为如果手动完成操作,将需要进行大量额外的工作。
回想一下SPICE中的直流扫描分析功能,它可以仿真电子电路中发生器的电压或电流值变化,此过程可以在单个图表中获得一个或多个所需的变化趋势。在这种情况下,x轴代表的不是时间而是变化的电压值,而y轴则代表设计者所需的任何其他电气量。它是使用“.DC”指令实现的。在实践中,这就好比在运行多个仿真时改变单个参数的值。例如,如果要以1V的增量运行从0V到5V的输入电压分析,可以在电路描述文件中使用以下指令:
.DC VIN 0V 5V 1V
事实证明,这肯定比以下仿真更快:
.DC VIN 0V 5V 50uV
后者需要将待分析电压的步长变为50uV,并且软件生成的分析文件将占用更多的大容量存储器空间。因此,在进行此类分析时,设计人员必须谨慎设置步长。最好提供一个较大的初始步长,然后在仿真过程中减小步长,以获得更精确、更优化的结果。
“.DC”指令的更专业的用途是改变多个发生器的电压(或电流)。图1中显示了一个晶体管偏置的示例。它由以下组件组成:
尽管两个发生器V1和V2在图中显示的电压是固定的,但实际上,仿真过程中电压的变化越来越大。
图1:通过使用.DC指令,可以同时改变仿真中多个发生器的值
从电路图中可以看出,有一个指令允许在电压域中进行电子仿真,其中更改和处理了两个发生器的值。使用的指令如下:
.DC V1 0 12 100m V2 0 6 2
下面我们来分析一下指令所提供的参数:
为V1和V2指定的所有值执行扫描分析,计算扫描中每个电压值对应的电流、电压和电路中的其他量。在这种情况下,软件会构建一个方块矩阵,根据两个电压值的组合计算出最终值。运行仿真时,集电极处的电压(v(out),会随着两个电压的变化而变化,如图2所示。根据指令中设定的间隔,可以读取集电极电压v(out)随电压V1和V2变化而变化的四种不同图形。
图2:多参数.DC仿真可实现多种测量曲线
上一节中研究的示例使用了一种线性扫描,其中电压或电流的增加是根据一次线性方程进行的,如下所示:
y=ax+b
其中指定了初始值、最终值和增量步长。例如,这个指令:
.DC V1 5 8 0.5
生成7个测量点,其中电压V1从5V到8V线性变化,增量为0.5V(5V、5.5V、6V、6.5V、7V、7.5V、8V)。步长越小,分析的分辨率越高,仿真所需的时间也越长。LTspice提供的分析类型如下:
最后一个选项非常有趣,因为它允许在不遵循特定顺序的情况下指定任意值。
例如,以下指令:
.DC V1 list 1 1.5 3 3.5 8
通过指定输入电压值列表而不是连续范围,对电路执行电压扫描分析。在本例中,指定值为1V、1.5V、3V、3.5V和8V,并在输出端提供五种不同的关键电压,如图3中的图表所示。在分析过程中,将根据列表中指定的每个电压值计算电路的电流、电压和其他量。当用户想要分析电路在特定点的行为或对特定电压值执行有针对性的测试时,这种使用离散值的扫描分析非常有用。
图3:使用五个预定义电压进行的仿真
刚刚研究过的电路的NETLIST如下所示。请注意通过“.MODEL”指令配置的晶体管模型的存在。
* DC Simulation by Giovanni Di Maria for LTspice
R1 N002 N003 220k
Q1 out N003 0 0 2N2222A
R2 N001 out 2.2k
V2 N002 0 10V
.dc V1 list 1 1.5 3 3.5 8
.model 2N2222A NPN(IS=1E-14 VAF=100 BF=200 IKF=0.3 XTB=1.5 BR=3 CJC=8E-12 CJE=25E-12 TR=100E-9 TF=400E-12 ITF=1 VTF=2 XTF=3 RB=10 RC=.3 RE=.2 Vceo=30 Icrating=800m mfg=NXP)
.backanno
.end
通过使用.DC指令,结合工作温度,可以在扫描分析过程中评估温度对电路参数的影响。事实上,可以扫描特定范围内的温度,从而研究电路对温度变化的响应,并确定所有临界点或异常点。在电路承受变化的工作条件或极端温度的应用中,工作温度分析的重要性变得尤为重要。为此,我们研究一下图4中的简单电路图,该电路图代表共发射极晶体管放大器。对于该解决方案类型,由于电阻器R1值为844489Ω,使晶体管正好极化,并将其工作点置于电源电压的一半,温度为 22 °C,因此v(out)点已完美配置为VCC/2电压,即6V。
图4:844489Ω的电阻器R1将集电极电压置于线性区,正好是电源电压的一半
现在,我们将了解温度是如何影响晶体管的静态行为的。作为要改变的变量,.DC指令提供了温度和电压或是电流。如果要研究电路在-10°C至+80°C温度范围内的行为,我们可以在LTspice软件中向电路图中添加以下指令:
.DC temp -10 80 100m
它用于对电路进行温度扫描分析。让我们详细看看指令中指定的参数代表什么:
在分析过程中,将根据扫描中指定的每个温度值计算电流、电压和其他电路量。因此,这类分析有助于评估温度对电路行为的影响,并识别临界点或热异常。有趣的是,在图5的图表中,由于流过半导体的电流同时增加,集电极电压随着晶体管工作温度的升高而降低。用LTspice和ngspice得到的图如图所示,后一个软件的NETLIST如下:
* Temperature Sweep with ngspice
V1 N001 0 12V
R1 N001 N002 844489
Q1 out N002 0 0 2N2222A
R2 N001 out 2.2k
.model 2N2222A NPN(IS=1E-14 VAF=100 BF=200 IKF=0.3 XTB=1.5 BR=3 CJC=8E-12 CJE=25E-12 TR=100E-9 TF=400E-12 ITF=1 VTF=2 XTF=3 RB=10 RC=.3 RE=.2)
.control
dc temp -10 80 100m
plot v(out)
.endc
.end
图5:集电极电压随着晶体管工作温度的升高而降低
此时,观察晶体管功耗随温度变化的图表也是非常有趣的。图6中的图表显示了晶体管在-10°C至+80°C温度范围内的功耗曲线。在这种情况下,晶体管的最大功耗为16.372866mW,出现在温度约为22 °C时。该图显示了LTspice分析(上图)和ngspice分析(下图)。这两个图实际上是相同的。ngspice的NETLIST与LTspice的略有不同,建议参考如下:
* Temperature Sweep for ngspice
V1 N001 0 12V
R1 N001 N002 844489
Q1 out N002 0 0 2N2222A
R2 N001 out 2.2k
.model 2N2222A NPN(IS=1E-14 VAF=100 BF=200 IKF=0.3 XTB=1.5 BR=3 CJC=8E-12 CJE=25E-12 TR=100E-9 TF=400E-12 ITF=1 VTF=2 XTF=3 RB=10 RC=.3 RE=.2)
.probe alli
.control
dc temp -10 80 100m
plot V(out)*I(R2)+V(N002)*I(R1)
.endc
.end
具体来说,LTspice中的电流测量是通过以下指令进行的:
V(out)*Ic(Q1)+V(N002)*Ib(Q1)
Ngspice则是这样:
plot V(out)*I(R2)+V(N002)*I(R1)
另请注意“.probe alli”这个ngspice指令,该指令可以测量和处理所有电流,但默认情况下不具备这一功能。
图6:晶体管功耗随温度变化的图表
本文是对使用SPICE进行直流扫描分析的最后一部分。下一期将介绍使用SPICE电子仿真器的其他有用和有趣的主题。
(原文刊登于EDN姊妹网站Power Electronics News,参考链接:Guide to Spice Simulation for Circuit Analysis and Design – Part 6: In-depth DC Sweep Analysis,由Ricardo Xie编译。)
用于电路分析和设计的SPICE仿真指南-第1部分:简介和网表
用于电路分析和设计的Spice仿真指南-第3部分:时间常数的进一步研究
用于电路分析和设计的Spice仿真指南–第4部分:用于多重仿真的.STEP指令
用于电路分析和设计的Spice仿真指南–第5部分:直流扫描分析