LTspice 实用技巧:数值积分

如何在 LTspice 波形查看器中绘制积分

这是一个变通方案,LTspice 的波形查看器(WaveForm Viewer)中并没有直接可用的“积分函数”。然而,在电路图中的任意源(默认库元件 “bi” 和 “bv”)中可以使用 idt() 函数及等效的 sdt() 函数。通过少量的额外操作和一点点电路图的复杂度,我们就能完成这项任务。请注意,瞬态(.tran)仿真是必要的,因为在所有情况下,积分变量都是时间。我们基于上一篇文章的一个示例进行扩展,利用积分来确定仿真中任意给定时刻电容器中存储的总能量(焦耳)。关于如何手动输入/编辑波形查看器函数的解释,请参阅后续文章

由于 V(Vout) 是电容器 C1 两端的电压,那么 C1 的瞬时功率就是 V(Vout)*I(C1),如顶部绘图的浅蓝色线条所示。瞬时功率对时间积分即可得到总能量,这可以直接通过原理图中任意电压源 B2 的电压输出在名为 NRG 的节点上获得,公式为 V={idt(V(Vout)*I(C1))}。在绘图中,我们对 V(NRG) 应用了一个单位换算补丁(1J/1V),将最终标度从 B2 源的“伏特”转换为我们实际想要的单位“焦耳”。


下载LTspice 文档 Capacitor_Energy_Via_Integration.asc

电容 C1 两端电压为 V (Vout),C1 瞬时功率 = *V(Vout)I(C1 ),对应上方波形浅蓝色曲线。瞬时功率对时间积分即为储能;自定义电压源 B2 输出至 NRG 节点,表达式: V={idt(V(Vout)*I(C1))},直接完成功率积分。绘图时做简易单位换算:1 焦耳 / 1 伏特,把 B2 输出的电压量纲换算成实际能量单位焦耳。

LTspice 波形查看器中的“快速窗口积分”

有一种方法可以让 LTspice 波形查看器提供某些信号(瞬时功率即为其一)的快速定积分计算。如果您希望对非零下限的时间段进行定积分,这会非常有用。只需将相关绘图的 X 轴设置为所需的时间范围,然后在波形查看器中按住 Ctrl 键并左键点击该信号的标签即可。


对于 0 到 10 ms 的完整时间段,报告的积分值略高于 5 µJ,这与 10 ms 处积分绘图给出的值一致。对于 7 到 10 ms 这个缩短的(且非从零开始的)时间段,报告的积分值约为 2.55 µJ,这表明在 10 ms 时累计的总能量中,超过一半是由电压逐渐升高的最后三个脉冲提供的。

重要提醒

理解这一点非常重要:所执行的积分是下限从时间零点开始、上限为仿真当前时间的定积分。例如,当查看 5 ms 处的积分波形值时,它是 0 到 5 ms 范围内的定积分值(即使仿真运行的时间远超过 5 ms);在 6 ms 时,它是 0 到 6 ms 的定积分值,依此类推。这可能会导致一些困惑,尤其是对于无限重复信号,因为积分波形实际上只是仿真中截止到该时刻曲线下方区域的“运行和”(running sum)。

以积分 cos() 信号与积分同频率、同幅度的 sin() 信号为例。如果对积分结果进行 2\pi f 常数引起的幅度偏移调整,cos() 函数的积分应该是一个同幅度和频率的 sin() 函数,而 sin() 函数的积分应该是同幅度和频率的 -cos() 函数。这两种情况都成立;然而,后者有一个等于被积 sin() 函数幅度的正直流偏移。

下载LTspice 文档 1 Integral.asc
下载LTspice 文档 2 Integral_2.asc

那么,第二个例子中到底发生了什么来解释这种现象呢?结果完全符合数学预期:在两种情况下,积分波形都提供了截止到仿真中该时刻为止的曲线下方区域的运行和。直观地观察:左侧的 cos() 信号在时间零点从 1V 峰值开始并向下减小,在最初的 0.5 ms 内恰好提供了其正波形的一半和负波形的一半;而右侧的 sin() 信号在时间零点从 0V 开始,在最初的 0.5 ms 内立即完整展现了其整个正半周。换句话说,由于右侧 sin() 信号的边界方式,其以时间零点为设定下限的定积分始终产生零或正值。

可用 Wolfram 等数学计算软件核验积分结果。

wolfram_sin

wolfram_cos