电路仿真器中的交流分析

前言

前面已经介绍了电路仿真器中 DC 分析和瞬态分析的基本机制与流程。可以看到,仿真器的核心任务始终是构造并求解由电路节点方程得到的代数方程组。对于包含非线性器件的电路,该方程组本质上是非线性的,通常通过 Newton 迭代在每一步将其线性化,并求解相应的线性子问题。

在瞬态仿真中,电路的微分方程通过数值积分方法(如后向欧拉法)在时间上离散,将时间微分算子替换为由当前时刻未知量和历史状态共同构成的代数表达式,例如

xn+1=xn+Δtf(xn+1),x^{n+1} = x^n + \Delta t\, f(x^{n+1}) ,

从而把瞬态问题转化为一系列离散时间点上的非线性代数方程,并通过 Newton 迭代逐步求解。

J(xk)Δx=f(xk)xk+1=xk+Δxxk+1=xkJ1(xk)f(xk)\begin{aligned} J(x_k)\,\Delta x &= -f(x_k)\\ x_{k+1}&=x_k+\Delta x \end{aligned} \quad\Rightarrow\quad x_{k+1}=x_k-J^{-1}(x_k)f(x_k)

无论是 DC 分析还是瞬态分析,其本质都是在不同约束条件下求解电路的工作点:前者对应静态平衡状态,后者对应随时间演化的一系列瞬时工作点。而 AC 分析则是在已求得的直流工作点附近,对电路进行小信号线性化,并在频域中求解其线性响应,从而刻画电路对不同频率激励的幅频和相频特性。


AC 分析流程概述

先给一句总定义

AC 分析 = 在 DC 工作点附近,对电路做线性化,然后在频域直接解线性 MNA 方程

所以它不是时域仿真,也不是 transient 的傅里叶变换,而是频域下的线性系统求解

从工程的视角来看 AC 分析的总流程:

1
2
3
4
5
6
7
8
9
10
11
(1) DC Operating Point (dcOp)

(2) 器件小信号线性化

(3) 构建频域 MNA 矩阵

(4) 施加 AC 激励(复数)

(5) 对每个频点求解线性方程

(6) 输出幅频 / 相频响应

AC 分析流程详解

首先,我们先明确为什么需要进行 AC 分析。

  1. 在某一直流工作点附近,我们通常关心电路对微小扰动的响应特性,即电路在不同频率激励下的幅度和相位变化,这正是 AC 分析所刻画的对象。
  2. 在高速与射频电路中,信号往往包含宽频谱成分,而电路对不同频率的增益和衰减并不一致。为了定量分析这种频率相关的传输特性,通常需要借助 AC 分析在频域中对电路进行评估。

DC Operating Point(这是 AC 的地基)

为什么 AC 分析一定要先算 DC?

因为:

  • 电容、电感、MOS、BJT 都是非线性器件
  • AC 分析的前提是:在某个偏置点附近做“小信号扰动”

数学上就是:

x(t)=x0+x~(t),x~x0x(t) = x_0 + \tilde{x}(t), \quad |\tilde{x}| \ll |x_0|

其中:

  • x0x_0:DC 工作点
  • x~\tilde{x}:小信号

如果没有 DC 点,小信号模型根本无从谈起

DC 阶段仿真器做了什么?

和我们前面了解的完全一样:

  • 建立 非线性 MNA 方程
  • Newton–Raphson 解:

F(x)=0F(x)=0

得到:

  • 每个节点的 DC 电压
  • 每条支路的 DC 电流

这些数值会被 缓存下来,供 AC 使用。

器件小信号线性化(最核心的一步)

核心思想:在 DC 工作点处,对所有非线性器件做一阶泰勒展开

非线性器件

以 MOS 为例,MOS 的漏极电流:

ID=f(VGS,VDS)I_D = f(V_{GS}, V_{DS})

在 DC 点 (VGS0,VDS0)(V_{GS0}, V_{DS0}) 附近线性化:

I~D=gmV~GS+gdsV~DS\tilde{I}_D = g_m \tilde{V}_{GS} + g_{ds} \tilde{V}_{DS}

其中:

  • gm=IDVGSDCg_m = \frac{\partial I_D}{\partial V_{GS}}\big|_{DC}
  • gds=IDVDSDCg_{ds} = \frac{\partial I_D}{\partial V_{DS}}\big|_{DC}

于是:

  • MOS 不再是非线性的
  • 而是 受控电流源 + 电阻

这里解释一下为什么 MOS 的漏极电流会和漏源电压有关,这个现象其实被称为沟道长度调制效应 (Channel Length Modulation, CLM),这个效应与 BJT 的 Early 效应很像,但两者物理机制存在区别:

  • BJT (Early 效应):靠的是耗尽层挤压基区宽度。基区是载流子扩散的“走廊”,走廊变短了,扩散梯度变大。

  • MOSFET (CLM 效应):靠的是耗尽层挤压沟道长度

    • 当 MOSFET 进入饱和区时,漏端附近的沟道会发生“夹断”(Pinch-off)。

    • 随着 VDSV_{DS} 继续增大,夹断点会向源极方向移动。

    • 有效沟道长度 LeffL_{eff} 变短: 虽然器件几何上的 LL 没变,但实际受栅极控制的导电沟道缩短了。

虽然结果都是“有效尺寸变短导致电流增加”,但有一个核心差异:

  • BJT 的基区是载流子扩散(Diffusion)的区域。
  • MOSFET 的沟道是载流子在电场下漂移(Drift)的区域。

电容

时域:

i=Cdvdti = C \frac{dv}{dt}

频域(拉普拉斯 / 傅里叶):

I(jω)=jωCV(jω)I(j\omega) = j\omega C \, V(j\omega)

等效为复数导纳

YC=jωCY_C = j\omega C

电感

v=LdidtV(jω)=jωLI(jω)v = L \frac{di}{dt} \quad\Rightarrow\quad V(j\omega) = j\omega L I(j\omega)

等效为复数阻抗(实际操作还是作为导纳 stamp 到 MNA 里):

ZL=jωLZ_L = j\omega L

与瞬态分析的区别

分析类型 电容/电感
Transient 用数值积分 → 引入历史项
AC 直接变成 jωj\omega

AC 分析没有“历史项”,因为它假设系统已经是 稳态正弦响应

构建频域 MNA 方程

MNA 结构没有变

仍然是:

[G(jω)AATD][V(jω)I(jω)]=[Is(jω)Es(jω)]\begin{bmatrix} G(j\omega) & A \\ A^{\mathsf T} & D \end{bmatrix} \begin{bmatrix} V(j\omega) \\ I(j\omega) \end{bmatrix} = \begin{bmatrix} I_s(j\omega) \\ E_s(j\omega) \end{bmatrix}

在统一 MNA 拓扑的情况下:

  • GG:电阻导纳 1/R1/R、电容导纳 jωCj\omega C、以及器件线性化导纳(如 MOS 的 gdsg_{ds}、BJT 的 gπg_\pi 等)
  • AA:拓扑连接(+1/-1 把支路电流注入 KCL)
  • DD:电感本构关系那一格,  DLL=jωL\;D_{LL} = -j\omega L
  • E=0E=0(电感支路没有 RHS,其他电流源电压源的有 RHS)

未消元时,电感不在 GG 里,在 DD 里。

消元时从支路约束(AC):

ATv+Di=0i=D1ATvA^{\mathsf T} v + D i = 0 \quad\Rightarrow\quad i = -D^{-1} A^{\mathsf T} v

ii 代回 KCL

Gv+A(D1ATv)=IGv + A(-D^{-1} A^{\mathsf T} v) = I

整理:

(GAD1AT)v=I\boxed{ \big(G - A D^{-1} A^{\mathsf T}\big) v = I }

这样子才并入了 GG 中等效为一个导纳。

没有 Newton 迭代了!

因为:

  • 所有器件已线性化
  • 整个系统是 线性代数方程

每个频点只需求解一次线性方程

施加 AC 激励

AC 源 ≠ transient 源

在 netlist 里:

1
V1 in 0 DC 1 AC 1

含义是:

  • DC 分析:用 DC=1

  • AC 分析:

    Vac=10V_{ac} = 1 \angle 0^\circ

AC 源本身就是复数幅值,上面的意思是在 DC 工作点 V1=1V_1=1 下施加正弦幅值为 1,相位为 0 的交流信号。

为什么常用 AC=1?

因为:

H(jω)=VoutVinH(j\omega) = \frac{V_{out}}{V_{in}}

设输入 = 1,输出自然就是传递函数。

频率扫描(核心计算循环)

仿真器做的事情本质上是:

1
2
3
4
for ω in frequency_list:
构建 MNA(ω)
解 Ax = b
保存 x(ω)

每个频点是 独立的

没有时间相关性

可高度并行(Spectre 很擅长)

输出结果(Bode 图)

一个完整的 Bode 图必须包含两部分:

  1. 幅度图 (Magnitude Plot): 描述系统对不同频率信号的“放大或缩小”能力。
    • 纵轴: 幅度,单位通常是 分贝 (dB)。公式为 20log10(A)20\log_{10}(|A|)
    • 横轴: 频率,通常采用 对数刻度 (Logarithmic Scale)(以 10 倍频为单位,即 Decade)。
  2. 相位图 (Phase Plot): 描述系统对不同频率信号造成的“时间延迟”或“相位偏移”。
    • 纵轴: 相位,单位是 度 (°) 或 弧度 (rad)
    • 横轴: 频率(对数刻度)。

从解得到:

  • 节点电压:V(jω)V(j\omega)
  • 支路电流:I(jω)I(j\omega)

后处理:

  • 幅值:

V(jω)|V(j\omega)|

  • 相位:

V(jω)\angle V(j\omega)

于是得到:

  • 幅频响应
  • 相频响应
  • 增益 / 相位裕度

AC 分析 vs transient+FFT

AC 分析 ≠ transient + FFT

  • 只有在“线性、时不变、小信号、稳态、无限长时间”这五个条件同时满足时,它们才等价。
  • 任何一个条件破坏,二者就不等价。

AC 分析本质上是在算:

H(jω)=yxDC biasH(j\omega) = \left.\frac{\partial y}{\partial x}\right|_{\text{DC bias}}

也就是说:

  • DC 工作点
  • 对系统 线性化
  • 得到一个 线性、时不变(LTI)系统
  • 直接求其 频率响应

AC 分析算的是“微分意义下的传递函数”

transient + FFT 本质是在算:

Y(jω)=F{y(t)}Y(j\omega) = \mathcal{F}\{y(t)\}

其中:

  • y(t)y(t)完整的大信号、非线性、含瞬态过程 的输出
  • FFT 是 事后分析工具

它算的是“实际波形里包含了哪些频率”

等价条件

系统必须是线性的(或被严格线性化)

AC:只保留一阶项

transient:包含全部非线性

如果系统是非线性的(哪怕很弱):

  • transient 会产生:
    • 谐波
    • 互调
    • AM -> PM
  • AC 完全看不到

例子:

  • BJT / MOS 的 gm 随摆幅变化
  • 放大器进入轻微压缩

系统必须是时不变的(LTI)

AC 分析假设:

  • 参数 不随时间变化
  • 没有开关、调制、采样、时钟

transient + FFT 可以分析:

  • 开关电路
  • 采样系统
  • PLL
  • Switched-capacitor

例子:

  • SC (Switched-Capacitor) 滤波器
  • PAM / NRZ / PAM4 采样系统 -> AC 完全不适用

必须是小信号(无限小扰动)

AC 的前提是:

x(t)=x0+εejωt,ε0x(t) = x_0 + \varepsilon e^{j\omega t},\quad \varepsilon \to 0

transient 通常是:

  • 有限幅度
  • 实际信号

例子:

  • 大幅正弦
  • PRBS / PAM 信号
  • 瞬态阶跃

必须达到稳态(steady-state)

AC 分析默认:

  • 瞬态已经完全消失
  • 系统处于稳态正弦响应

transient + FFT 如果:

  • FFT 窗口包含上升沿
  • 包含充放电过程
  • 包含启动过程

则频谱 一定不等于 AC

例子:

  • RLC 启动振铃
  • PLL 锁定过程

观察时间 -> 无穷长(FFT 分辨率无限)

AC 是:

  • 理论上的连续频率响应

FFT 是:

  • 有限时间窗
  • 有窗函数
  • 有频谱泄漏

例子:

  • 高频 Q 很高的谐振器 -> FFT 频谱会被“抹宽”(频谱泄露,必然有旁瓣),AC 不会

什么时候一定不等价

非线性失真 / 谐波 / 互调

  • AC:只给基波
  • transient+FFT:出现 2f,3f,f1±f22f, 3f, f_1\pm f_2

RF PA、TIA、大信号放大器

开关 / 采样系统

  • AC:假设连续时间
  • transient:真实时序

SC 电路、ADC 前端、SerDes

调制系统(AM / FM / PM / PAM)

  • AC:看不到边带
  • transient+FFT:全出来

光通信 IM/DD、相干系统

非稳态过程

  • AC:假设稳态
  • transient:包含暂态能量

启动、锁定、突发信号

强反馈 + 非线性(极易误判)

  • AC:在 DC 点线性化
  • transient:真实动态

放大器稳定性、极限环

对比总结表

维度 AC transient + FFT
非线性 ❌ 忽略 ✅ 全保留
时变
谐波
稳态 默认 需人为截取
计算量 极小 极大
数值噪声 极低 FFT 敏感
适合做什么 传递函数、稳定性 失真、调制、动态