广告

用于电路分析和设计的Spice仿真指南–第5部分:直流扫描分析

2023-08-22 15:36:04 Giovanni Di Maria 阅读:
使用这一仿真功能可获得一个或多个所需电压/电流值的变化趋势。

SPICE中的直流扫描分析是一种可以仿真电子电路的功能,在该电路中,发生器的电压或电流值是逐渐变化的。通过这一程序,可以在一张图表中获得一个或多个所需值的变化趋势。对于这种类型的仿真,x轴不代表时间,而是代表可变电压的值,而y轴代表设计人员所需的任何其他量。Ws2ednc

DC指令

通过该指令,可以在仿真电路时逐步改变发生器的电压或电流值,从而评估其对电路行为的影响。.DC指令的分析用途广泛,包括评估电路工作特性、识别最佳工作点和设计优化。其一般使用语法如“.DC srcnam Vstart Vstop Vincr”,其中:Ws2ednc

  • srcnam是独立电压源或电流源的名称。
  • Vstart指定要改变的参数的初始值。
  • Vstop指定要改变的参数的最终值。
  • Vincr指定每次迭代时应用于要变化的参数的增量。

例如,如果要以1V的增量对0V至5V的输入电压进行扫描分析,可以在电路描述文件中使用以下命令:Ws2ednc

.DC VIN 0V 5V 1VWs2ednc

在这种类型的仿真中,电容器被视为开路,而电感器被视为短路。一旦定义了电路和扫描参数,SPICE就会运行仿真并生成一个数据集,表示指定范围内每个电压或电流值的电路响应。这些数据可用于创建图表、分析电路行为和评估电子元件的性能。它还可用于绘制晶体管的特性曲线或测试不同的电源电压电平。Ws2ednc

一个非常简单的LTspice示例

考虑一个由以下两个元器件组成的电路(见图1):Ws2ednc

  • V1是理想电压发生器。
  • R1为330Ω电阻,最大功耗为15W。

如果电阻器功耗超过15W,则会损坏。设计人员想知道,在不烧毁该元件的情况下,可以施加多大的电压。该问题可以通过欧姆定律或普通瞬态仿真(使用.TRAN指令)来解决,但在这种情况下,就必须测试发生器的各种电压值,直到达到相当于15 W的最大功耗值。有了.DC指令,一切就都变得更加简单和快捷。检查电路的各个元件:Ws2ednc

  • 电路的“hot”线标记为“R”。
  • 由于使用了“.dc V1 0 100 1”指令,所以可以执行仿真。它建立了一个仿真,其中发生器V1的值以1V的增量从0V变化到100V。

Ws2ednc

图1:该电路由发生器和电阻器组成。Ws2ednc

开始仿真时会显示电阻器消耗的功率值,如下所示,该值等于:Ws2ednc

Ws2ednc

其中P是功耗,V是元器件两端的电压,I是流过元器件的电流。Ws2ednc

由于施加到元器件上的电压没有固定值,而是从最小值到最大值线性增加,因此可以在图2中观察到电阻器功耗呈二次趋势的图表。从图中可以很快发现,为使电阻器消耗的功率不超过15W的发生器电压最大值为70.356236V。更高的电压值会导致电阻器损坏。Ws2ednc

Ws2ednc

  • 图2:使用.DC指令,可以非常简单地仿真可变电压发生器。

ngspice运行相同的示例

在ngspice软件中,正如我们在前几期课程中所看到的,操作步骤稍显复杂,但仍然有效。对于上述相同的电路,需要在扩展名为“.CIR”的文本文件中键入以下SPICE源代码:Ws2ednc

* DC directiveWs2ednc

V1 R 0 12Ws2ednc

R1 R 0 330Ws2ednc

.controlWs2ednc

   dc V1 0 100 1Ws2ednc

   plot V(R)*(V(R)/330)Ws2ednc

.endcWs2ednc

.endWs2ednc

请注意,分配给V1的12V电压与仿真本身无关,但由于它是强制参数,因此无论如何都必须指定。使用以下命令执行脚本会生成图3中的图表:Ws2ednc

source sweep01.cirWs2ednc

在脚本中,电流值是通过电压除以电阻来间接计算的,因为它不能以简单的方式直接计算。使用以下指令可以获得相同的结果:Ws2ednc

plot v(R)*-i(v1)或者plot -v1#branch*v(R)Ws2ednc

强烈建议查阅ngspice官方手册。可以看出,两条曲线完全相同,并且x轴还是代表电压值而不是时间值。Ws2ednc

Ws2ednc

图3:使用ngspice生成的电阻功耗图Ws2ednc

第二个例子:晶体管的正确极化

第二个例子很有趣,因为它可以让我们找出晶体管基极的正确极化,从而使集电极上的电压等于VCC/2。通常,基极和集电极电压保持固定,而基极电阻变化,但在本例中,实际上是为晶体管基极供电的发生器电压是未知的。主要电路图如图4所示,是一种经典的不带温度补偿的共发射极放大器。组成电路的元件如下:Ws2ednc

  • V1是为电路的集电极负载供电的电压。
  • V2是通过电阻器R1为晶体管基极供电的(未知)电压。
  • V3是要放大的信号,2mV、100Hz的正弦信号。
  • C1是将输入信号与电路其余部分去耦的电容器。
  • R1是220kΩ固定电阻器,用于偏置晶体管的基极。
  • R2是代表电路负载的2.2kΩ固定电阻器。
  • Q1为NPN晶体管,型号为2N2222。

Ws2ednc

图4:共发射极放大器原理图Ws2ednc

该图包含以下SPICE指令,旨在执行直流扫描仿真:Ws2ednc

.dc V2 0 12 0.1Ws2ednc

该指令中可以读到以下内容:Ws2ednc

  • .dc是实际的指令。
  • V2是改变电压的发生器。
  • 0是V2的初始值。
  • 12是V2的最终值。
  • 0.1是V2值的增量间隔,即100mV。

如前所述,仿真的目的是找到V2发生器的正确极化电压,使得电路的输出电压v(out)等于VCC/2,即等于6V。运行仿真会生成图5中的可观察图表,其中可以看出,发生器V2的电压必须为3.5537632V,输出电压才恰好为6V。该图表包含以下内容信息:Ws2ednc

  • x轴显示“.dc”指令中指定的扫描参数值,即0V和12V之间的V2值。因此,该图不在时域中。
  • y轴显示的是晶体管基极极化电压变化时放大器输出v(out)的值。

Ws2ednc

图5:直流扫描仿真在一种解决方案中测试了0V至12V之间的所有V2电压。Ws2ednc

LTspice的NETLIST SPICE导出生成以下文本文件:Ws2ednc

* The correct polarization of a transistorWs2ednc

V1 N001 0 12VWs2ednc

R1 N002 N004 220kWs2ednc

Q1 out N004 0 0 2N2222Ws2ednc

R2 N001 out 2.2kWs2ednc

V2 N002 0 12Ws2ednc

V3 N003 0 SINE(0 2mV 100)Ws2ednc

C1 N004 N003 47µFWs2ednc

.model NPN NPNWs2ednc

.model PNP PNPWs2ednc

.lib C:\Users\calim\Documents\LTspiceXVII\lib\cmp\standard.bjtWs2ednc

.dc V2 0 12 0.1Ws2ednc

* ?Ws2ednc

.backannoWs2ednc

.endWs2ednc

ngspice中运行相同的示例

在ngspice中,程序非常相似。就元器件而言,NETLIST是相同的。与LTspice的一些不同之处在于晶体管模型的定义和显示图形的操作命令。插入软件的脚本如下:Ws2ednc

* The correct polarization of a transistorWs2ednc

V1 N001 0 12VWs2ednc

R1 N002 N004 220kWs2ednc

Q1 out N004 0 0 2N2222Ws2ednc

R2 N001 out 2.2kWs2ednc

V2 N002 0 12Ws2ednc

V3 N003 0 SINE(0 2mV 100)Ws2ednc

C1 N004 N003 47µFWs2ednc

.model 2N2222 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)Ws2ednc

.controlWs2ednc

   dc V2 0 12 0.1Ws2ednc

   plot v(out)Ws2ednc

.endcWs2ednc

.endWs2ednc

启动电路仿真后,会生成一个与之前的图表几乎完全相同的图表,如图6所示。在该图表中,可以通过单击图表上的所需的精确点来读取正确的极化电压。相同的报告证明仿真在软件内部产生了121行数据。0V到12V之间的间隔数量(间隔大小为0.1V)正好是121,包括初始零点。Ws2ednc

Ws2ednc

图6:使用ngspice,直流扫描仿真也会检查V2在0V和12V之间的所有电压。Ws2ednc

要逐个获取这些点并将其输入到电子表格中,只需键入以下指令,即可获得如图7所示的数据列表:Ws2ednc

print v(out)Ws2ednc

其中,第一列标识电压V2,该电压遵循恒定的线性增加。第二列标识电路的输出电压。Ws2ednc

Ws2ednc

图7:使用“print”指令,可以逐个显示所需的值。Ws2ednc

通过在LTspice和ngspice中运行输出信号的瞬态仿真,并将电压V2设置为3.5537632V,可以观察到正弦输出信号恰好位于GND和VCC之间的中间位置,图8中用LTspice和ngspice生成的波形图清楚地表明了这一点。Ws2ednc

Ws2ednc

图8:电压V2设置为3.5537632V时,输出信号位于GND和VCC之间。Ws2ednc

有关此主题的更多信息将在本系列的下一部分中介绍。Ws2ednc

(原文刊登于EDN姊妹网站Power Electronics News,参考链接:Guide to Spice Simulation for Circuit Analysis and Design – Part 5: The DC Sweep Analysis,由Ricardo Xie编译。)Ws2ednc

相关阅读:

用于电路分析和设计的SPICE仿真指南-第1部分:简介和网表Ws2ednc

用于电路分析和设计的SPICE仿真指南-第2部分:时间常数Ws2ednc

用于电路分析和设计的Spice仿真指南-第3部分:时间常数的进一步研究Ws2ednc

用于电路分析和设计的Spice仿真指南–第4部分:用于多重仿真的.STEP指令Ws2ednc

责编:Ricardo
本文为电子技术设计原创文章,未经授权禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了