Skip to content

模拟电路里最重要的一个器件就是运算放大器(Operational Amplifier,简称运放)。传感器信号太弱要放大、ADC 采样前要调理信号、输出要带得动负载——都靠它。这篇讲透运放最核心的三个概念:虚短、虚断、负反馈,以及由它们推导出的三大基本电路。

文中的电路公式用 Python 理想运放模型做了数值仿真验证(4 项 PASS),不是纸面推导。

一、运放是什么:一个"黑盒"放大器

运放是一个集成芯片,从外面看就是一个黑盒:两个输入端、一个输出端、两根电源线:

运算放大器黑盒模型

  • V+(同相输入):输入增大 → 输出增大
  • V-(反相输入):输入增大 → 输出减小
  • Vout:输出 = A × (V+ − V-),A 是开环增益(理想无穷大,实际 10⁵ ~ 10⁶)

理想运放有三个特性(图里右边三块):

  1. 增益无穷大:输入差一点点,输出就顶到电源轨
  2. 输入阻抗无穷大:输入端几乎不吸取电流——不拖累前级信号源
  3. 输出阻抗为零:输出像理想电压源,带多重负载都不塌

关键问题来了:增益无穷大,那输出不就要么 +VS 要么 -VS 吗?怎么控制放大倍数?——靠负反馈

二、核心概念:负反馈 → 虚短虚断

把输出接一部分回到 V-(反相输入端),就构成负反馈:输出大了 → 反馈回去让 V- 变大 → 输出被拉回来。系统自动稳定在一个平衡点。

负反馈稳定后,得出两个"虚"结论——这是分析运放电路的万能钥匙

概念内容为什么
虚短V+ ≈ V-(两端"看起来短路")输出自动调整,直到 V+ 和 V- 相等才稳定(否则会一直放大差值)
虚断输入端"看起来断路"输入阻抗无穷大,几乎不吸取电流

⚠️ 注意是""短、""断——不是真的短路/断路。V+ 和 V- 之间有极小电压差(Vout/A),只是小到可以忽略;输入端有极小电流(V+/输入阻抗),小到可以当作没有。虚短虚断只在负反馈闭环下成立,开环(没反馈)时 V+、V- 差别很大。

有了虚短虚断,任何运放电路都能直接"算"出来——这是运放题的标准解法。

三、三大基本电路

运放三大基本电路

① 反相放大器:Vout = −(Rf/Rin) × Vin

  • Vin 经 Rin 接 V-,V+ 接地
  • 虚地:虚短 → V- ≈ V+ = 0V(反相输入端是"虚地",不是真接地)
  • 虚断:V- 不吸电流 → 流过 Rin 的电流 = 流过 Rf 的电流
  • 推导:(Vin − 0)/Rin = (0 − Vout)/RfVout = −(Rf/Rin) × Vin

用途:信号放大(带负号,反相)。Rf/Rin 决定增益,精确且与运放本身无关

② 同相放大器:Vout = (1 + Rf/Rin) × Vin

  • Vin 直接接 V+(同相输入)
  • 虚短 → V- = V+ = Vin
  • Rin、Rf 分压:V- = Vout × Rin/(Rin+Rf)Vout = (1 + Rf/Rin) × Vin

用途:放大且不反相。输入阻抗极高(直接接 V+,信号源几乎不带负载)——传感器信号放大首选

③ 电压跟随器:Vout = Vin

  • 输出直接接 V-(100% 负反馈,Rf=∞、Rin=0 的同相放大器特例)
  • 虚短 → V- = V+ = Vin → Vout = Vin

不放大?那它有什么用——缓冲:输入阻抗无穷(不拖累信号源)、输出阻抗为零(带得动负载)。比如 ADC 采样前接跟随器,隔离传感器和 ADC 的相互影响。

四、仿真验证(Python 实跑)

用理想运放模型(Vout = A×(V+−V-),A=10⁶)解节点方程,验证三个公式:

python
def solve_inverting(Rin, Rf, Vin, A=1e6):
    # 节点法:V- = (Vin/Rin + Vout/Rf) / (1/Rin + 1/Rf)
    # Vout = -A * V-
    denom = (1/Rin + 1/Rf) + A/Rf
    return -A * Vin / Rin / denom

def solve_non_inverting(Rin, Rf, Vin, A=1e6):
    beta = Rin / (Rin + Rf)          # 反馈系数
    return A * Vin / (1 + A * beta)  # Vout = A(Vin - beta*Vout)

def solve_follower(Vin, A=1e6):
    return A * Vin / (1 + A)         # Vout = A(Vin - Vout)

实跑结果(4 PASS 0 FAIL):

PASS  反相放大器 Vout=-(Rf/Rin)*Vin: 仿真=-0.999989V 理论=-1.000000V 误差=0.0011%
PASS  反相放大器(负输入):            仿真=1.999978V  理论=2.000000V  误差=0.0011%
PASS  同相放大器 Vout=(1+Rf/Rin)*Vin: 仿真=1.999980V 理论=2.000000V  误差=0.0010%
PASS  电压跟随器 Vout=Vin:           仿真=3.299997V 理论=3.300000V  误差=0.0001%

还验证了"为什么开环增益要大"——A 越大越接近理想公式:

反相 A=1000  → Vout=-0.989120V(误差 1.088%)
反相 A=1e6   → Vout=-0.999989V(误差 0.0011%)

结论:运放靠"超大增益 + 负反馈"把电路行为收敛到只由外部电阻决定——这就是"运算放大器"里"运算"二字的由来:增益是精确的"算"出来的,不是靠运放本身。

五、和 ADC 的关系(嵌入式前置)

运放最常见的实际应用之一就是 ADC 采样前置。传感器(温度、压力、光敏)输出往往是毫伏级小信号,直接进 ADC 会被分辨率/噪声吃掉,需要先经过:

传感器(mV 级) → 同相放大器放大(×10~×100) → 电压跟随器缓冲 → ADC 输入
  • 同相放大器:放大到 ADC 满量程附近,充分利用分辨率
  • 电压跟随器:ADC 采样电容会"吸取"电流(拉低信号),跟随器隔离它,保证 ADC 读到的是真实信号
  • 后面还可以加 RC 低通滤波滤掉高频噪声(讲滤波时再展开)

这正是"模拟电路 → 嵌入式"衔接的关键点——以后做 STM32 传感器采集会反复用到。

小结

  • 运放 = 高增益差分放大器(Vout = A×(V+−V-)),理想特性:增益无穷、输入阻抗无穷、输出阻抗零
  • 负反馈让电路稳定,虚短虚断是分析一切运放电路的钥匙(只在闭环成立)
  • 三大基本电路:反相(−Rf/Rin)、同相(1+Rf/Rin)、跟随器(缓冲)——增益只由外部电阻决定
  • Python 仿真 4 项 PASS 验证公式,开环增益越大误差越小
  • ADC 前置 = 同相放大 + 跟随器缓冲,是模拟→嵌入式衔接的关键

想继续深入,接下来可以看《数字电路》(运放之后是数字世界的门电路与触发器)、《嵌入式》(STM32 的 ADC 采样,运放输出最终进这里),或者先看《树莓派实践》的摄像头模拟信号处理。