LTspice 中的变换器
- 打开并运行 SPICE 库的 LTspice 原理图,并绘制其 README 中列出的波形。
- 算出从零初始状态开始的仿真要运行多久,其最后几个周期才能反映稳态(steady state)。
- 了解原理图中带有哪些仿真指令(directive)及其原因。
LTspice 中的 SPICE 库
Section titled “LTspice 中的 SPICE 库”仓库的 sim/ltspice/ 文件夹以 LTspice 原理图(schematic)的形式收录了五种基本变换器 [Analog Devices, LTspice simulator],每种变换器一个文件夹,其中的 README 说明应绘制哪些波形、应得到什么结果。每个原理图与 sim/ngspice/ 中同名的 ngspice 网表(netlist)是同一电路:库的脚本把每个原理图读回为网表,逐个元件、逐个节点地与 ngspice 网表比较,原理图中的网络(net)也带有网表的节点名。打开原理图并按下 Run:原理图自带其仿真指令。
.param设置合成(synthetic)示例的数值,仿真器中同名的预设也使用这些数值。.model给出接近理想的开关管和二极管。.tran从零初始状态开始运行,即所有电容都未充电、所有电感都没有电流,视算例不同运行 400 到 2500 个周期,时间步长(time step)不超过周期的二百分之一。.options method=gear reltol=1e-4选择积分方法(integration method)和容差(tolerance)。原因见 ngspice 页面。
ngspice 网表中还带有 .meas 语句,用于求出每个物理量在最后一个周期内的平均值和极值。在 LTspice 中,可放大查看最后一个周期,或把同样的语句加入原理图。
需要运行多久
Section titled “需要运行多久”从零初始状态开始的运行必须经历整个启动过程,其最后一个周期才能反映稳态。只要变换器保持在 CCM,启动后其输出滤波器与负载就会振铃(ring);元件理想时,振铃的包络(envelope)按仅由负载和电容决定的时间常数(time constant)衰减:
- 包络时间常数
- 电容(输出电容)
- 负载电阻
假设、约定与出处
- 假设
- 理想(无损)开关器件与无源元件
- 连续导通模式(CCM)
- 固定占空比,无反馈环路(开环)
- 输出滤波器发生振铃:其品质因数 Q 大于 1/2
- 电阻负载 R
- 备注
- 元件理想且降压变换器的源保持恒定时,滤波器由电感、电容和负载并联构成,即并联 RLC 电路,其振铃按 衰减,与电感无关。负载越轻( 越大),振铃持续时间越长。升压和升降压变换器的平均模型给出相同的衰减率 。实际元件会改变衰减:绕组和开关管的电阻总是使振铃衰减更快,电容的串联电阻在 Q 大于 1 时也是如此,此时电感也会产生影响。CCM 下开环变换器的输出在启动或阶跃之后正是这样趋于稳定的;有反馈环路时,稳定过程由环路决定;而在 DCM 下,电感不会把能量从一个周期带到下一个周期,输出则改为以单一时间常数在稳态附近趋于稳定
- 出处
- Alexander & Sadiku 2017, Ch. 8 (Second-Order Circuits: the source-free parallel RLC circuit); derived here; Erickson & Maksimović 2020, Ch. 8 (Converter Transfer Functions: the boost and buck-boost resonances, whose omega_0/(2Q) is also 1/(2RC)); Erickson & Maksimović 2020, Ch. 15 (AC and DC Equivalent Circuit Modeling of the Discontinuous Conduction Mode: a single low-frequency pole)
- 推导
- sympy 逐步推导
- 公式 id
filter.tau_env· equations.yaml 条目
启动后残留的误差在每个包络时间常数内按相同的比例减小。要把它减小到起始时的某一比例,需要的周期数为:
- 趋于稳定所需的周期数
- 开关周期
- 剩余的启动误差(比例)
- 包络时间常数
假设、约定与出处
- 假设
- 启动误差以单一时间常数衰减,即最慢模态的时间常数
- 备注
- 按 衰减的误差降至比例 需要 的时间,再除以 即得周期数。精度每提高十倍,就要多花 即约 2.3 个包络时间常数。从零初始状态开始的瞬态仿真至少要运行这么长时间,其最后几个周期才能反映稳态
- 出处
- Alexander & Sadiku 2017, Ch. 8 (Second-Order Circuits: the natural response decays as the exponential of minus the neper frequency times t); derived here
- 推导
- sympy 逐步推导
- 公式 id
sim.periods_settle· equations.yaml 条目
负载越轻,振铃持续越久;精度每提高十倍,所需周期数就增加相同的数量。实际元件会使振铃衰减得更快一些:绕组和开关管的电阻总是如此,电容的串联电阻在品质因数(quality factor)大于 1 时也是如此。启动过程也可能暂时离开 CCM:在库中的降压变换器中,输出第一次过冲之后,最初 20 个周期中有若干个周期电感电流降到零。这时该公式只是估计值,而不是精确的周期数。在 DCM 下,电感电流每个周期都回到零,因此电感不会把任何东西从一个周期带到下一个周期:滤波器不再发生 L-C 振铃,输出改为以单一时间常数在稳态附近趋于稳定 [Erickson & Maksimović 2020, Ch. 15]。
库中每个算例的运行时长都是其最慢时间常数的许多倍,库的脚本在每次运行结束时检查该次运行:输出在最后一个周期内的平均值与前一个周期的平均值相比,相差必须在万分之一以内,否则该算例判为未稳定而失败。这项检查只能发现远远过短的运行。一个周期内,衰减中的误差只减小其自身的一小部分,这一比例约等于周期与时间常数之比;因此,当时间常数为 100 个周期时(如库中的 DCM 反激变换器),万分之一的变化仍允许约 1 % 的误差。输出振铃时,在振铃的波峰附近,即输出平均值停止上升、开始下降的地方,即使振铃仍然很大,相邻两个周期的平均值也可能相符。SPICE 自身的精度也设定了下限:在库的 ngspice 运行中,启动过程早已消失之后,平均值仍会跳变多达千分之一到千分之二。
在 LTspice 的默认设置下,库中 DCM 反激变换器的漏极电压出现低于零数十伏的下冲(dip),而电路本身并没有这种下冲:其深度与 ngspice 在默认容差下用 Gear 法绘出的下冲大致相当,远不及 ngspice 梯形法(trapezoidal rule)振铃时的一千伏。.options 行可以消除它,在 ngspice 中也是如此。库中记录了一次用 LTspice 26.1.1 所做的核对:LTspice 自己生成的网表与库中的网表一致,其结果与 ngspice 的结果相差不超过各物理量最大绝对值的 0.3 %。ngspice 页面描述了这两种效应:每一步乘在快速模态上的放大因子(梯形法的放大因子),以及容差较松时二极管电流越过零点的过冲。
采用降压变换器示例的滤波器、负载和开关频率,从零初始状态开始运行,直到启动误差只剩千分之一:
| 符号 | 数值 | 求法 |
|---|---|---|
| 开关频率 | 100 kHz | 已知 |
| 电感 | 100 µH | 已知 |
| 电容(输出电容) | 10 µF | 已知 |
| 负载电阻 | 10 Ω | 已知 |
| 剩余的启动误差(比例) | 0.001 | 已知 |
| 开关周期 | 10 µs | 开关周期 |
| 品质因数(quality factor) | 3.16 | 降压变换器:LC 极点的品质因数 |
| 包络时间常数 | 200 µs | 带电阻负载的 L-C 滤波器振铃包络的时间常数 |
| 趋于稳定所需的周期数 | 138 | 启动误差衰减所需的开关周期数 |
其品质因数为 3.16,远大于 1/2,因此滤波器会振铃。包络时间常数为 200 µs,即 20 个周期,输出需要 138 个周期才能稳定到千分之一,这远在库的 1 % 以内,与库中 ngspice 运行所能分辨的精度大致相当。库中的降压变换器算例运行 400 个周期后才测量最后一个周期。
▶ 在公式浏览器中打开:启动误差衰减所需的开关周期数
预设取自例题 sim-settle
扫描剩余比例:精度每提高十倍,所需周期数都增加相同的数量。
▶ 在公式浏览器中打开:带电阻负载的 L-C 滤波器振铃包络的时间常数
预设取自例题 sim-settle
扫描负载:负载越轻,振铃持续越久。本站的仿真器无需经过启动过程即可求得稳态:
▶ 在仿真器中打开:降压
预设取自例题 buck-basic
让一台降压变换器以固定占空比、无反馈环路带电阻负载启动,从它开始开关的那一刻起捕获其输出。若电感电流在最初几个周期中触及零,则待其不再触及零之后,用振铃中相隔已知时间的两个峰值测量包络的衰减,并把所得时间常数与负载电阻和输出电容之积的两倍比较:绕组和开关管的电阻会使振铃进一步衰减,品质因数大于 1 时电容的串联电阻也是如此,因此预计测得的时间常数会稍短一些。数出输出保持在终值 1 % 以内之前所经过的周期数,并与剩余比例为 1 % 时的公式结果比较。然后用你的数值和相同的启动条件运行库中的原理图。
- 对尚未稳定的周期所做的测量,测到的是启动过程。先运行公式所要求的周期数,再像库中那样检查输出平均值是否已不再逐周期变化:仅凭变化很小,并不能证明缓慢的振铃已经稳定。
- 包络公式适用于元件理想、无反馈环路且滤波器会振铃的 CCM。在 DCM 下、滤波器阻尼大到不振铃时,或在闭环控制下,输出以其他方式趋于稳定(包络时间常数)。
- 电路不可能产生的尖峰往往是数值性的:先检查
.options行,再到电路中寻找原因。
- 视频 LTspice Basics (video series)
关于 LTspice 的短视频:第一张原理图、瞬态与 AC 仿真,以及波形查看器。 - 工具 LTspice
Analog Devices 提供的免费 SPICE 仿真器。
元件理想时,降压变换器的输出滤波器在 10 ohm 负载和 10 µF 电容下振铃。振铃包络的时间常数是多少?
答案与解析
正确答案:B 无论电感多大,包络都以负载电阻与电容之积的两倍为时间常数衰减:2 × 10 ohm × 10 µF 为 200 µs。
包络时间常数为 20 个开关周期。从零初始状态开始运行,大约需要多少个周期,启动误差才只剩百分之一?
答案与解析
正确答案:C 误差在每个包络时间常数内衰减为原来的 1/e。降到百分之一需要 ln 100,约 4.6 个时间常数,因此约为 92 个周期。
把启动误差从百分之一继续降到万分之一,还要多花多少?
答案与解析
正确答案:A 每缩小十倍都花费相同的时间,即 ln 10,约 2.3 个包络时间常数,因此再缩小两个十倍与最初两个十倍所花的一样多。
为什么包络公式不能说明 DCM 算例需要运行多久?
答案与解析
正确答案:D 电感电流每个周期都回到零,因此决定包络的 L-C 振铃不复存在;输出改为以单一时间常数在稳态附近趋于稳定。
库的检查在认定一次运行已稳定之前,要求满足什么条件?
答案与解析
正确答案:C 仍在稳定过程中的运行会逐周期变化,而该检查比较最后两个周期的平均值。由于缓慢的振铃每个周期变化很小,这项检查只能发现远远过短的运行,因此库还让每个算例运行许多个时间常数。
DCM 反激变换器的一次运行显示漏极电压下冲到远低于零,而电路本身不可能这样。首先应检查什么?
答案与解析
正确答案:A 在默认设置下,ngspice 和 LTspice 都会在库中的 DCM 反激变换器上绘出这种下冲;采用 Gear 法并收紧容差即可消除。
本站例题、预设和练习中的数值均为合成值:为教学而凑整的数值,并非来自任何实际设计的数据。