广告

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

2023-04-25 16:02:29 Giovanni Di Maria 阅读:
本文对Spice仿真中时间常数的使用进行了深入分析。还讨论了可视化输出数据的方法。

在上一篇关于SPICE仿真语言的文章中,我们分析了基本RC电路的行为并研究了它的时间常数。在这新一篇文章中,将探讨对时间常数分析有用的其他指令,我们将实施更有效的策略来可视化和解释从仿真中获得的结果。特别是,我们将研究如何可视化随时间变化的各种电气量,以及如何推导出将它们联系起来的数学方程。uR7ednc

Spice仿真中值的即时分析

观察信号的图形对于一般分析是有用的,但对于精确的数学分析是不够的。对于后者,事实上,有必要知道每时每刻测量的准确数值。这个时间间隔可以是可变的,这取决于测量的需要。了解每个时刻信号的准确值对于验证电路的行为很有用,但更重要的是,它可以有效地确定描述信号本身趋势的数学规律。在上一篇文章中,我们开始使用两种不同的软件程序进行电路仿真,二者都是免费软件:uR7ednc

  • LTspice;
  • ngspice。

下面,将使用本课程中使用的两个软件程序来研究准确确定各种瞬态测量的方法。为此,将使用与前一篇文章(见图1)相同的电路图,其中涉及电解电容器的充电问题。它由以下电子元件组成:uR7ednc

  • V1:12V理想电压发生器;
  • R1:22k限流电阻;
  • C1:860uF电解电容。

电路图中并未标明电容器的极性,但通过对其两端电压的动态行为进行仿真分析可以很容易地确定。uR7ednc

uR7ednc

图1:用于时间常数分析的电路图。uR7ednc

LTspice与其他SPICE程序略有不同,它没有在每个所需时间段显示瞬态信号值的直接功能。请注意,时间常数表示将电阻两端的电容器充电(或放电)到其总充电容量的63.2%所需的时间。通过以下关系确定:uR7ednc

uR7ednc

符号分别为:uR7ednc

  • τ是时间常数,单位是秒;
  • R为电阻阻值,单位是欧姆;
  • C是电容器的值,单位是法拉。

在此示例中,在电容器开始充电后的18.92秒,其电势以指数形式达到最大可用电压(即12V电压发生器的电压)的63.2%。uR7ednc

使用ngspice确定瞬态值

我们从更简单的ngspice程序开始讨论,因为该软件具有“.PRINT”指令。它是基于SPICE语言语法的电子电路仿真程序中的一项功能,允许指定在电路仿真期间要在输出中显示哪些电气量。具体来说,“.PRINT”指令的语法涉及指定要显示的电气量的名称,包括电压、电流和功率。uR7ednc

该指令可用于详细显示仿真电路的行为,并分析各个元器件的运行情况。例如,可以显示电容器或电阻器两端的电压、流过二极管或晶体管的电流,或者元器件在仿真的不同时刻消耗的功率。此外,“.PRINT”指令可用来生成用于后续数据分析的输出,例如生成图形或比较不同仿真的结果。值得一提的是,ngspice提供了两种可执行程序:一种带有GUI(图形用户界面),称为“ngspice.exe”,另一种带有控制台,称为“ngspice_con.exe”。对于文本输出,就像我们正在研究的那样,控制台软件可能是最合适的,因为它在数据显示方面要快得多。现在输入下面的SPICE列表并使用以下命令启动仿真:一种带有GUI(图形用户界面),称为“ngspice.exe”,另一种带有控制台,称为“ngspice_con.exe”。对于文本输出,就像我们正在研究的那样,控制台软件可能是最合适的,因为它在数据显示方面要快得多。现在输入下面的SPICE列表并使用以下命令启动仿真:uR7ednc

source MySource.ciruR7ednc

uR7ednc

现在,我们将逐行详细解释SPICE代码的各行:uR7ednc

  • 注释“*Charge of a capacitor”表示SPICE代码将仿真电容器的电荷;
  • “V1 Vcc 0 12V”行定义了一个直流电压源,值为12V,连接在“Vcc”节点和“0”接地节点之间;
  • “R1 Vcc Out 22k”这一行定义了一个连接在“Vcc”和“Out”节点之间的22Ω电阻;
  • “C1 Out 0 860uF”行定义了连接在节点“Out”和接地节点“0”之间的860uF电容器;
  • “.IC v(Out)=0”行定义了仿真的初始条件,强制“Out”节点中的电压最初为0V(无负载电容);
  • “.control”行表示控制部分的开始,将由SPICE程序执行;
  • “tran 100m 360s”行指定瞬态仿真,持续时间为360秒,采样间隔为100毫秒;
  • “print v(out)”行告诉SPICE程序在仿真期间根据采样间隔的规范在“Out”节点输出电压;
  • “.endc”行表示控制部分的结束;
  • “.end”行表示SPICE输入文件的结束。

使用以下定义,输出中预计会有大约3600行结果,如图2所示。具体来说,使用“.PRINT”指令创建的报告包含以下列:uR7ednc

  • 序列号(index);
  • 测量的瞬间(time);
  • 实际测量值,单位为伏特v(out)。 

结果以科学记数法或指数记数法表示。在这种格式中,数字表示为尾数并乘以10的幂,用术语“e+”表示。选择所有结果并将其粘贴到文本文件中非常容易,即使是在控制台窗口中也是如此。uR7ednc

uR7ednc

图2:ngspice的输出显示了仿真期间不同时间的电压v(out)值uR7ednc

使用LTspice确定瞬态值

LTspice没有“.PRINT”指令,因此必须找到一个可行的替代方案。解决方案是通过“.STEP”指令在最小值和最大值之间迭代一个数值,并通过“.MEAS”指令测量特定可变时间的电压。这是一种稍微复杂一些的方法,但就时间而言,它可能比“.PRINT”指令提供的方法更好、更准确。因此,在LTspice接线图中,插入以下两个指令:uR7ednc

.step param moment 0 360 1uR7ednc

.meas TRAN Out FIND v(out) AT momentuR7ednc

我们现在将详细解释这两个SPICE指令:uR7ednc

  • “.step param moment 0 360 1”指令告诉程序使用“moment”参数运行参数仿真。仿真的“moment”值范围从0到360,增量为1秒。换句话说,“moment”参数在仿真的每一步都增加1。在仿真过程中,SPICE输入文件中指定的所有其他参数保持不变;
  • 指令“.meas TRAN Out FIND v(out) AT moment”告诉程序在仿真期间在“Out”节点执行电压测量。具体而言,“TRAN”指令指定应在瞬态仿真期间进行测量,而“FIND v(out)”指示测量应在“Out”节点中找到电压值。“AT moment”部分使用“moment”参数的当前值,指定在仿真中应执行测量的时刻。换句话说,该指令在瞬态仿真期间,以“moment”参数的当前值测量“Out”节点中的电压。

使用指令后,预计将输出大约360行结果,如图3所示。具体来说,按[CTRL]+[L]键显示的报告包括以下列:uR7ednc

  • 序列号(step);
  • 实际测量值,单位为伏特v(out);
  • 测量时刻(at)。 

uR7ednc

图3:LTspice的输出显示了仿真不同时间的电压v(out)值uR7ednc

有了这两种方法,设计人员就可以掌握所有文本格式的仿真数据。它们可用于许多外部应用程序,并可以用多种不同方式进行处理。我们在下面列出了其中的一些:uR7ednc

  • 创建自定义图表(见图4);
  • 统计和数学分析;
  • 预测;
  • 创建打印输出、报告和文档;
  • 以及许多其他方式。

uR7ednc

图4:使用外部程序根据仿真中收集的数据创建的电容器电荷图uR7ednc

使用Spice仿真输出确定数学规律

要确定电容器充电的数学规律,必须进行统计分析。常见的程序包括以下步骤:uR7ednc

  • 从仿真或实际测试中收集数据;
  • 将数据组织在表格中,以便于理解和可视化;
  • 计算描述性统计数据,例如均值、中位数、众数和标准差。这些统计数据可以让人了解数据的分布情况;
  • 使用适当的统计方法分析数据,并确定最能描述数据的数学规律。常见统计方法的一些示例包括线性回归、逻辑回归、方差分析等。或者,可以使用曲线拟合软件;
  • 使用收集的数据检查所获得的数学规律的有效性。这可以通过比较公式预测的结果和实验数据来完成;
  • 使用回归公式进行预测或更好地理解收集的数据。例如,数学规律可用于进行预测或识别变量之间的相关性。

一些用于表示电容器电荷的优秀模型(参见图5)如下所示:uR7ednc

  • 指数加线性;
  • 韦布尔模型;
  • 指数关联2;
  • 指数关联3。

uR7ednc

图5:一些描述电容器充电模式的数学模型uR7ednc

结论

本文对使用SPICE仿真语言分析基本RC电路的时间常数提供了进一步的见解。我们已经说明了更有效的可视化和解释仿真结果的策略,包括可视化随时间变化的各种电气量,以及创建将数据趋势联系在一起的数学方程。这些信息可用于了解电路的行为并预测其在特定情况下的运行方式。uR7ednc

(原文刊登于EDN姊妹网站Power Electronics News,参考链接:Guide to Spice Simulation for Circuit Analysis and Design -Part 3 : Further investigation of the time constant,由Ricardo Xie编译。)uR7ednc

相关阅读:

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

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

责编:Ricardo
本文为电子技术设计原创文章,未经授权禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • IAR推出新版IAR Embedded Workbench for Arm功能 IAR宣布:推出其旗舰产品IAR Embedded Workbench for Arm功能安全版的最新版本9.50.3。此次发布进一步加强了IAR支持开发人员创建安全、可靠和符合标准的嵌入式应用程序的承诺,涵盖了汽车、医疗设备、工业自动化和消费电子等多个行业。该版本中最重要的新功能是经过认证的C-STAT,这是专为安全关键应用程序设计的静态代码分析工具。
  • 把三角波压扁可得正弦波,但有谐波怎么办? 这篇文章中,我们将开始探索如何伪造一个精确的三角波,并用它来帮助设定伪正弦波的黄金标准。那么,我们的成果如何呢?
  • 利用带MEMS麦克风的高带宽加速度计获得更好的声学性能 本文探讨了如何利用MEMS麦克风和音频加速度计的组合,通过固体材料捕获小于2kHz的低频振动,从而检测由说话者的声音引起的头骨振动。
  • 工业4.0中的传感器:振动监测 在工业4.0中,传感器发挥着关键作用,因为它们用于收集制造过程中的各类数据,并将其传输到其他系统进行分析和决策。振动传感器是一个重要的子集,特别是在机器自动化领域。
  • 千兆以太网:符合EMC标准的实现 无论是在办公室还是在工厂,千兆以太网都是首选的网络标准。Würth Elektronik的两款新千兆以太网参考设计提供了如何从RF和EMC角度应对挑战的实例。
  • 基于RLD的非稳态555定时器电路 在非稳态555多谐振荡器电路的经典配置和大多数变体中,定时特性都是基于电容器的充放电。不过,可以认为,由于电容器的指数电压与电感器电流在性质上相似,因此后者可以作为555的替代定时元件。
  • 加个二极管,解决地铁车尾灯的失效问题! 我们的客户——一家地铁车辆制造商——为他们的地铁车厢采购了一种新型红色尾灯。问题是,这种灯在正常工作几次后就失灵了。尾灯设计人员来了也搞不定。客户只好转而求助于我……
  • 电子卡尺的工作原理 很多人都使用过(电子)游标卡尺,我所依据的美国专利是1986年的。波兰YouTube上的博主RS elektronika已经讨论过这个话题,但在我看来,那里并没有讲完所有的内容,甚至可以说这只是故事的一半。
  • 矩形波和三角波函数发生器 本文给出了具有正弦波和矩形波波形的四相RC振荡器的描述。将两个相对于彼此相位偏移90°的正弦半波信号反相相加,即可获得三角波信号。
  • Supermicro推出适用于AI存储的机柜级全方位解决方案  适用于大规模AI训练和推理的一站式数据存储解决方案──数百PB的多层式解决方案提供能支持可扩充式AI工作负载所需的庞大数据容量和高性能数据带宽
  • Pickering推出业界首款具有5kV隔离能力的微型SIP舌簧 这是迄今为止市场上最小的SIP高压舌簧继电器,具有5kV隔离能力,PCB面积仅为之前同类产品的1/6。
  • 具有灵活TLVR结构的变压器式稳压器可实现极快的动态响 本文介绍了基于变压器的稳压器,其具有跨电感稳压器结构,旨在在负载瞬态期间实现极快的响应
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了