3. 收敛性数学本质:非线性方程组求解、雅可比矩阵、迭代步长控制与收敛判据

SPICE 仿真的核心任务是在给定的偏置条件下,求解由半导体器件模型(如 MOSFET、BJT、二极管)与电路网表共同构成的大规模非线性代数方程组。收敛失败的本质,是数值求解算法在迭代过程中无法找到满足精度要求的解。本章从数学底层剖析收敛性的三个支柱:非线性方程组求解框架、雅可比矩阵的作用、迭代步长控制与收敛判据。

3.1 非线性方程组求解:从电路方程到牛顿-拉夫逊法

任何 SPICE 仿真在直流(DC)或瞬态(TRAN)的每个时间点,最终都归结为求解如下形式的方程组:

F(x) = 0





其中:


x = [V_1, V_2, ..., V_n]^T  —— 节点电压向量(n 维)


F(x) = [f_1(x), f_2(x), ..., f_n(x)]^T —— 由 KCL/KVL 和器件模型构成的非线性残差向量


SPICE 采用牛顿-拉夫逊法(Newton-Raphson, NR)作为标准求解器。其迭代格式为:

J(x^k) · Δx^k = -F(x^k)


x^{k+1} = x^k + Δx^k





其中:


k —— 迭代步数


J(x^k) —— 在 x^k 处的雅可比矩阵(n×n)


Δx^k —— 第 k 步的电压修正量


NR 法的收敛速度是二次的(接近解时),但对初始猜测敏感,且要求雅可比矩阵在每一步非奇异。

关键认知: 收敛失败通常发生在以下三种数学场景:
(1) 雅可比矩阵奇异或接近奇异(器件进入击穿、饱和区边界);
(2) 迭代步长 Δx 过大,导致解“飞”出收敛域;
(3) 残差 F(x) 在迭代过程中振荡,无法单调下降。
牛顿-拉夫逊法迭代求解流程(SPICE 内核) 迭代 k = k+1 初始猜测 x⁰ 计算残差向量 F(xᵏ) 构建雅可比矩阵 J(xᵏ) 求解线性系统 J·Δx = -F 更新解 xᵏ⁺¹ = xᵏ + Δxᵏ 收敛判据检查点(每轮迭代后判定) ① ‖F(xᵏ)‖ < ε_rel ② ‖Δxᵏ‖ < ε_abs ③ 迭代次数 k < ITL1

3.2 雅可比矩阵:收敛性的“刚度”决定者

雅可比矩阵 J 的每个元素定义为残差对节点电压的偏导数:

J_{ij} = ∂f_i / ∂x_j





对于 MOSFET 模型,典型雅可比元素包括:


- 跨导项:g_m = ∂I_D / ∂V_GS


- 输出电导:g_ds = ∂I_D / ∂V_DS


- 衬底跨导:g_mb = ∂I_D / ∂V_BS


- 电容项:C_gs = ∂Q_G / ∂V_GS  (瞬态分析中)


雅可比矩阵的条件数(Condition Number)直接决定收敛难度:

条件数量级 收敛性特征 典型场景
κ(J) < 10³ 良态,NR 法 3~5 步收敛 线性区 MOSFET、电阻网络
10³ ≤ κ(J) ≤ 10⁶ 中等病态,需步长控制 饱和区 MOSFET、亚阈值区
κ(J) > 10⁶ 严重病态,极易发散 击穿区、Gm 极大变化、接近不连续点
工程陷阱: 当器件模型在某个偏置点出现 g_m 突变(如 BSIM4 模型在 V_DS 接近 0 时的线性-饱和过渡区),雅可比矩阵的数值微分近似会产生巨大误差,导致 NR 迭代方向错误。这是“收敛失败”最常见的数学根源之一。

3.3 迭代步长控制:防止“解飞出界”

标准 NR 法可能产生过大的 Δx,导致下一迭代点的器件模型进入非物理区域(如负电压、过电流)。SPICE 采用步长阻尼(Damping)和限幅(Limiting)策略:

修正后的更新公式:


x^{k+1} = x^k + λ · Δx^k





其中 λ ∈ (0, 1] 为阻尼因子





常用限幅策略:


1. 电压限幅:|ΔV| ≤ V_max_limit(通常 0.1~2 V)


2. 电流限幅:|ΔI| ≤ I_max_limit


3. 电荷限幅(瞬态):|ΔQ| ≤ Q_max_limit


SPICE 中常见的步长控制方法对比:

控制方法 实现机制 收敛稳定性 收敛速度
无阻尼 NR λ ≡ 1 低(易振荡) 快(仅近解区)
固定阻尼 λ = 0.5 ~ 0.8 中 中
自适应阻尼 λ 根据残差下降率动态调整 高 快(全局)
信赖域法 限制 Δx 在信赖半径内 最高 中(需额外计算)
步长控制对牛顿-拉夫逊收敛路径的影响(一维示意) xᵏ⁺¹ = xᵏ + λ · Δxᵏ , λ ∈ (0, 1] x(电压) F(x) 残差 F(x) 残差曲线 无阻尼(λ=1,振荡发散) 自适应阻尼(λ 动态调整,平滑收敛) x⁰ 初始猜测 解 x* 步长过大 → 越过解区 → 器件进入非物理区 → 雅可比奇异 → NR 发散;阻尼与限幅是收敛性的“安全气囊”

3.4 收敛判据:何时停止迭代

SPICE 使用双重收敛判据确保精度与效率的平衡:

判据 1(残差判据):||F(x^k)||_∞ < RELTOL · max(||I||, ||V||) + ABSTOL


判据 2(更新判据):||Δx^k||_∞ < RELTOL · max(||x^k||, ||x^{k-1}||) + ABSTOL





其中:


RELTOL —— 相对误差容限(默认 1e-3)


ABSTOL —— 误差容限(默认 1e-12 ~ 1e-6,取决于量纲)


VNTOL —— 电压容限(默认 1e-6)


各容限参数的工程推荐值:

参数 默认值 收敛困难时建议值 风险
RELTOL 1e-3 1e-2 ~ 5e-3 精度下降
ABSTOL 1e-12 (电流) 1e-9 ~ 1e-6 小电流误差增大
VNTOL 1e-6 1e-4 ~ 1e-3 电压精度降低
ITL1 (DC 迭代上限) 100 200 ~ 500 仿真时间增加
调试技巧: 当遇到“No convergence in DC analysis”错误时,首先检查 RELTOL 和 ITL1。将 RELTOL 从 1e-3 放宽到 5e-3,同时将 ITL1 从 100 增加到 300,可以解决约 60% 的简单收敛失败案例。但需注意:放宽容限会掩盖模型本身的数值问题,后续应定位根本原因。

3.5 收敛性数学本质总结

从数学视角看,SPICE 收敛性可归纳为以下核心关系:

收敛性 = f( 雅可比条件数, 初始猜测质量, 步长控制策略, 收敛判据松紧 )





数学本质:


1. 雅可比矩阵 J 的条件数 κ(J) 决定了 NR 法的局部收敛半径


2. 步长控制 λ 将全局收敛性从“局部”扩展为“半全局”


3. 收敛判据 ε 决定了“近似解”与“真解”的工程距离


收敛性数学本质:四要素耦合关系 四要素彼此耦合,任一要素出现“短板”都会导致收敛失败 SPICE 收敛性 牛顿-拉夫逊法迭代求解 初始猜测 x0 影响起始方向 雅可比条件数 κ(J) 决定收敛半径 步长控制 λ 防止发散 收敛判据 ε 决定停止时机 数学本质:收敛性 = g( κ(J), x0, λ, ε ) 四要素耦合,任一短板都会导致收敛失败 调试顺序:雅可比条件数 → 步长控制 → 初始猜测 → 收敛判据