5·06

op amp 是什么 (operational amplifier)

About 7 minLecture 10

op amp(operational amplifier)是一块现成的 amplifier 芯片,里面有几十个 transistor。这一节只讲它从外面看是什么样:三个端子,一个式子 vo=A(v+−v−)v_o = A(v_+ - v_-),输入端不取电流,输出不能超出电源(饱和)。后面所有 op amp 电路都用这一节的模型。

① 符号和端子

− + v_- 反相输入 v_+ 同相输入 vo +V 电源(常省略) −V 电源(常省略) vo = A (v_+ − v_-)
符号:左边两个输入端(+ 和 −),右边一个输出端。上下两根电源引脚通常不画。

三角形左边两个输入端,右边一个输出端。标"+"的叫同相输入 (noninverting input),它的电压记作 v+v_+;标"−"的叫反相输入 (inverting input),电压记作 v−v_-;输出端的电压记作 vov_o。三个都是节点电压,也就是对地的电压。真实的 op amp 还有两根电源引脚(例如接 +12 V 和 −12 V),符号上通常不画,但它必须接电源才能工作,放大用的能量也从这里来(5·01)。

② 线性区的模型:只放大两个输入的差

op amp 的模型

输出没有顶到电源时(线性区):

vo=A (v+−v−)=A vdv_o = A\,(v_+ - v_-) = A\,v_d

vd=v+−v−v_d = v_+ - v_- 是两个输入端之间的电压差。AA 叫开环增益 (open-loop gain),是一个非常大的正数,典型值 10510^5 左右。两个输入端都不取电流:i+=i−=0i_+ = i_- = 0。

这个式子说了三件事。第一,op amp 只看 v+v_+ 和 v−v_- 的差:两个输入都是 5 V,和两个输入都是 0 V,vdv_d 都是 0,输出一样。第二,"+"和"−"说的是方向:v+v_+ 升高,vov_o 跟着升高(同方向,所以叫"同相");v−v_- 升高,vov_o 反而降低("反相")。它们不是电源的正负极。第三,AA 极大,差值只要几微伏,输出就有零点几伏。

运放内部 + − Rin + − vd + − A vd Rout vo
同一个模型画成电路:输入端之间是 RinR_{in},输出是一个 VCVS AvdA v_d 串一个 RoutR_{out}。vdv_d 的参考方向是 + 端为正。

上图把模型画成了电路,三个元件各对应一个参数:

  • 输入电阻 RinR_{in}:接在两个输入端之间。外电路的电流要流进 op amp 的输入端,只能穿过 RinR_{in},大小是 vd/Rinv_d / R_{in}。真实值在 MΩ 以上,例如 Rin=2R_{in} = 2 MΩ、vd=1v_d = 1 mV 时,输入电流只有 0.5 nA,可以当成 0。这就是 i+=i−=0i_+ = i_- = 0 的来历。
  • VCVS AvdA v_d:op amp 放大的那一步就是一个 VCVS(5·01):它读输入端之间的电压 vdv_d,在输出端造出 AvdA v_d,读的时候不取电流。所以分析电路时可以把 op amp 整个换成一个 VCVS;具体怎么换图,见5·16"把 op amp 换成 VCVS"那一节。
  • 输出电阻 RoutR_{out}:串在 VCVS 和输出端之间。负载取电流 ii 时,RoutR_{out} 上掉 iRoutiR_{out},输出比 AvdA v_d 低这么多。真实值几十 Ω,例如 Rout=50 ΩR_{out} = 50\ \Omega、负载取 2 mA 时只掉 0.1 V。

理想 op amp 把三个参数推到极限:Rin=∞R_{in} = \infty(输入端完全不取电流)、Rout=0R_{out} = 0(输出就是 AvdA v_d,接什么负载都不变)、A→∞A \to \infty。前两条从现在起一直用;A→∞A \to \infty 在5·08用。

参数意思理想 op amp
RinR_{in}两个输入端之间的电阻:越大,op amp 从输入端取的电流越少∞\infty(不取电流)
RoutR_{out}输出端的串联电阻:越小,接负载时输出掉得越少00
AA开环增益:vdv_d 被放大的倍数→∞\to \infty

③ 饱和:输出不能超出电源

饱和 (saturation)

op amp 的输出电压只能在 −Vsat-V_{sat} 和 +Vsat+V_{sat} 之间。VsatV_{sat} 由电源决定,略低于电源电压;题目不说时就取等于电源电压(本页都取 ±12 V)。AvdA v_d 算出来超出这个范围时,输出停在边界上:

vo={+Vsat,Avd>VsatA vd,∣Avd∣≤Vsat−Vsat,Avd<−Vsatv_o = \begin{cases} +V_{sat}, & A v_d \gt V_{sat} \\ A\,v_d, & |A v_d| \le V_{sat} \\ -V_{sat}, & A v_d \lt -V_{sat} \end{cases}

中间一段叫线性区 (linear region),两边叫饱和。饱和时 vov_o 不再等于 AvdA v_d。

线性区有多宽?要 ∣Avd∣≤Vsat|A v_d| \le V_{sat},即 ∣vd∣≤Vsat/A|v_d| \le V_{sat}/A。A=105A = 10^5、Vsat=12V_{sat} = 12 V 时,∣vd∣≤12/105|v_d| \le 12/10^5 V =0.12= 0.12 mV。也就是说,两个输入只要差 0.12 mV 以上,输出就顶到电源。下面这条曲线叫 op amp 的传输特性 (transfer characteristic):横轴 vdv_d,纵轴 vov_o。

−0.24 mV −0.12 0.12 0.24 mV −12 V +12 V 0 vo
A=105A = 10^5、Vsat=12V_{sat} = 12 V:只有 ∣vd∣≤0.12|v_d| \le 0.12 mV 这一小段是斜线(斜率 AA),超出就平了,停在 ±12 V。

④ 例题:开环时输出是多少

"开环" (open loop) 指输出不接回输入,op amp 单独工作。下面两题都取理想的 RinR_{in}、RoutR_{out},A=105A = 10^5,Vsat=12V_{sat} = 12 V。

例题

例 1 只有差值起作用

v+=2.00003v_+ = 2.00003 V,v−=2.00000v_- = 2.00000 V。求 vov_o。

  1. 求差:vd=v+−v−=0.00003v_d = v_+ - v_- = 0.00003 V =30 μ= 30\ \muV。两个输入各有 2 V,但 op amp 只看这 30 µV。
  2. 代入模型:Avd=105×3×10−5=3A v_d = 10^5 \times 3 \times 10^{-5} = 3 V。
  3. 检查是否饱和:3 V 在 ±12 V 之内,在线性区,所以 vo=3v_o = 3 V。
例题

例 2 饱和

(a) v+=1v_+ = 1 mV,v−=0v_- = 0。(b) v+=0v_+ = 0,v−=0.5v_- = 0.5 mV。求 vov_o。

  1. (a) vd=1v_d = 1 mV,Avd=105×10−3=100A v_d = 10^5 \times 10^{-3} = 100 V,超过 +12+12 V。输出停在上边界:vo=+12v_o = +12 V。
  2. (b) vd=0−0.5v_d = 0 - 0.5 mV =−0.5= -0.5 mV,Avd=−50A v_d = -50 V,低于 −12-12 V。输出停在下边界:vo=−12v_o = -12 V。注意符号:是 v−v_- 比较大,所以输出往负的方向走。
  3. 两题的 ∣vd∣|v_d| 都超过了 0.12 mV,所以都在饱和区;输出只告诉你"哪一边大",不再和 vdv_d 成比例。
开环几乎没法当 amplifier 用

0.12 mV 太小了:外界的噪声、两个输入端之间的微小失配都比它大,所以开环的 op amp 输出几乎总是顶在 +12 V 或 −12 V。而且 AA 本身不准,随温度、批次能差好几倍。所以 op amp 几乎总是和 negative feedback 一起用(下一节)。唯一故意开环的用法是比较器 (comparator):它只关心输出是 +12 V 还是 −12 V,也就是"哪个输入大"。