4. 电路仿真基础回顾

在三维全波与电路协同仿真中,电路侧通常由 SPICE 类仿真器承担。理解它的求解机制,是判断协同仿真结果是否可信的前提。SPICE(Simulation Program with Integrated Circuit Emphasis)的核心思想是:把电路抽象为一组节点电压与支路电流满足的代数—微分方程,再用数值方法在离散时间点上逐步求解。对线性电阻、电容、电感,方程可直接写成导纳形式;对二极管、BJT、MOSFET 等非线性器件,则需要在每个时间步内反复线性化并迭代。

SPICE 类仿真器的基本求解框架

以改进节点分析(MNA)为例,未知量包括除参考地以外的节点电压和独立电压源支路电流。每个时间步内,仿真器先根据当前解计算非线性器件的等效电导和等效电流源,形成雅可比矩阵,再求解线性方程组。若解的变化量小于设定容差,则判定该时间步收敛,否则更新解并继续迭代。瞬态分析中,电容和电感还要用数值积分公式离散,例如后向欧拉或梯形法,把储能元件转化为等效电导与历史电流源。

因此,SPICE 的“仿真”并不是一次求解,而是“时间步进 + 非线性迭代 + 线性求解”的三层嵌套。任何一层设置不当,都可能表现为不收敛、结果振荡或仿真时间异常。

非线性器件模型:从物理到参数

非线性器件模型决定了电路仿真的精度和收敛难度。以二极管为例,其电流与电压关系为:

Id = Is * (exp(Vd / (N * Vt)) - 1)

其中 Is 为饱和电流,N 为发射系数,Vt 为热电压,室温下约 25.85 mV。当 Vd 较大时,指数项急剧上升,导数变化极快,容易导致牛顿迭代发散。实际仿真中常在 PN 结上并联一个电导 Gmin,默认约 1e-12 S,用来避免完全断开的节点悬空。MOSFET 模型则更复杂,Level 1、BSIM3、BSIM4 等不同级别对应不同精度和参数集,协同仿真中若只关心端口阻抗和开关行为,可优先选用收敛性更好的简化模型。

需要特别注意的是,模型参数必须与工作条件一致。例如温度参数 TNOM、沟道长度、阈值电压等,若直接套用默认值,可能在直流工作点就偏离真实器件,后续频域结果也会失真。

瞬态分析与频域分析的分工

瞬态分析用于观察时域波形,如开关瞬态、振铃、上升沿和过冲。它需要设置合理的最大时间步长 Tmax,通常取信号最高频率对应周期的 1/10 到 1/20。若 Tmax 过大,会漏掉快速变化;过小则仿真时间急剧增加。瞬态分析还依赖初始条件,可用 .ic 或 .nodeset 指定关键节点初值,帮助收敛。

频域分析包括交流小信号分析和噪声分析。交流分析先在直流工作点处对非线性器件线性化,再在指定频率范围内扫描。它不能反映大信号非线性,但非常适合看增益、带宽、相位裕度和阻抗匹配。在三维全波与电路协同中,常把全波提取的 S 参数或等效阻抗作为电路的一部分,再通过交流分析评估整体传输特性。

SPICE 求解流程与收敛控制要点 电路网表与模型 R / L / C 线性元件 二极管 / BJT / MOSFET .model 参数与温度 分析类型设置 .tran Tstep Tstop Tmax .ac DEC N Fstart Fstop .op 直流工作点 牛顿—拉夫逊迭代(每个时间步) ① 计算非线性器件等效电导与电流源 ② 组装雅可比矩阵 J 与右端项 ③ 求解 J·Δx = -F,更新节点电压 ④ 判断 |Δx| < 容差?否则回到① 不收敛 收敛成功 时域波形 / 频谱 直流工作点 S 参数 / 阻抗 收敛失败常见原因 时间步过大 / 模型突变 节点悬空 / 无直流通路 初值不合理 / 容差过严 收敛性问题处理策略 ① 放宽容差 RELTOL 1e-3 → 1e-2 ABSTOL 1e-12 → 1e-9 ② 增加迭代上限 ITL1 / ITL4 调大 GMINSTEP 辅助 ③ 设置初值 .nodeset 关键节点 .ic 强制初始条件 ④ 分段与斜坡 电源用 PWL 缓升 先 .op 再 .tran

收敛性问题处理:从现象到动作

收敛失败通常表现为“no convergence”“timestep too small”或迭代次数超限。处理时不要盲目改参数,而应按顺序排查。第一步,检查电路是否存在无直流通路的节点,例如电容两端悬空、变压器次级未接地。第二步,确认电源和激励是否从零突跳到高电平,若是,改用 PWL 分段线性源,让电压在有限时间内上升。第三步,适当放宽 RELTOL 和 ABSTOL,例如把 RELTOL 从 1e-3 调到 1e-2,ABSTOL 从 1e-12 调到 1e-9,先让仿真跑通,再逐步收紧。第四步,增加 ITL1 和 ITL4 迭代上限,或启用 GMINSTEP 和 SOURCESTEP 等辅助收敛选项。

如果仍不收敛,可先单独运行 .op 直流分析,观察哪个节点电压异常。常见做法是在关键节点加 .nodeset 给出近似初值,例如给 MOS 管栅极设 1.5 V,帮助牛顿迭代从合理区域开始。对于强非线性电路,还可以把瞬态分析拆成两段:先用较大 Tmax 跑通整体趋势,再用较小 Tmax 重跑关键时间段。

与三维全波协同仿真的衔接

在协同仿真中,全波部分通常输出频率相关的 S 参数、Y 参数或等效电路,电路部分则包含非线性器件和激励。此时要特别注意端口参考阻抗和接地定义必须一致,否则频域结果会出现系统性偏差。瞬态协同仿真中,全波模型若用宽带等效电路拟合,需检查拟合阶数是否足够,避免在时域产生非物理振铃。建议先用 .ac 扫描验证全波模型与电路连接后的传输特性,再进入 .tran 观察非线性响应。

实际调试时,可把收敛容差、迭代上限、初始条件、时间步长视为四个可调旋钮。每次只改一个,记录仿真是否通过以及波形是否合理,避免同时调整导致无法定位原因。
不要为了“跑通”而无限放宽容差。RELTOL 调到 1e-1 以上时,结果可能已经失去工程参考价值。正确做法是先定位不收敛的物理原因,再决定是否放宽数值设置。

掌握 SPICE 的求解框架、非线性模型行为、瞬态与频域分析的分工以及收敛处理顺序,才能在三维全波与电路协同仿真中判断结果是否可信,并在出现异常时快速定位到模型、设置或连接层面的具体问题。