运算放大器的经典应用电路

一、基础知识

当运算放大器的增益非常高的时候,运算放大器有以下特性:

(1)虚短:认为放大器的 V_{in}- 和 V_{in}+两端的电压是相等的。

(2)虚断:由于运放的输入的输入阻抗非常大,故输出电流非常小,认为运放正负端是断路,没有电流。

故一般拿到运算,先把运放部分画成下图蓝色部分那样,再进行后续的分析。

在下面的内容中都将电路图和最后的输出公式放在第一节,后面才开始解释,这样是为了方便后续查阅。

二、反相放大器

2.1电路图与输出公式

实现对输入模拟信号的反相放大。

 2.2电路分析

上图中 V_{in}+ 接交流地,交流地并不代表该点的电位是 0V ,是从小信号的角度来说是  0V ;从直流信号的角度来说,它可能是 1V 、2V 或 0V ,这里为了简化分析,假设为 0V 。

由于虚短和虚断(没有电流流入运放),如下图,故流经 R1 和 R2  的电流相等。

\frac{V_{in}}{R_{1}}=\frac{0-V_{out}}{R_{2}}\Rightarrow V_{out}=-\frac{R_{2}}{R_{1}}V_{in}

三、反相求和电路

3.1电路图与输出公式 

3.2电路分析

该电路是对反向放大电路的拓展,在负输入端挂载了 3 个电阻故有 3 个输入,分析时采用叠加原理。

叠加原理:每一次分析假设只有一路输入,其他的输入为 0  ,按照顺序分析完所有情况后,将输出结果叠加就是所有输入一起作用的总体输出。

如下图,假设只有 V_{in1} 有输入,故只有 R1 上有电流流过,R2 和 R3 上没有电流,电路变成由 R1 和 R4 组成的反向放大电路,有: V_{out1}=-\frac{R_{4}}{R_{1}}V_{in} ;

同理有:V_{out2}=-\frac{R_{4}}{R_{2}}V_{in}V_{out3}=-\frac{R_{4}}{R_{3}}V_{in}

叠加后:V_{out}=-R4(\frac{V_{in1}}{R1}+\frac{V_{in2}}{R2}+\frac{V_{in3}}{R3})

如果让 4 个电阻相等,则有 :V_{out}=-(V_{in1}+V_{in2}+V_{in3})

3.3特别说明

电路图中的 R5 阻值为:R5=R1||R2||R3||R4

作用:R5 为匹配电阻,让运放的正负输入端外界阻抗相等,这样正负输入电流相等。
(当外围电路有 MOS 管等输入阻抗很大的器件时,可以不加 R5 。)

四、同相放大电路

4.1电路图与输出公式

4.2电路分析

类比反向放大电路,改变的地方是:将输入信号从负输入端变为正输入端。

根据虚断和虚短的特性,R1 和 R2 的电流相等: \frac{V_{in}}{R_{1}}=\frac{V_{out}-V_{in}}{R_{2}};

最后可得:V_{out}=\frac{R1+R2}{R1}V_{in}

五、同相求和电路

5.1电路图与输出公式

5.2电路分析

类比反向求和电路,在正向的输入端添加了两个输入信号 V_{in1} 和 V_{in2} 。

叠加原理:假设只有 V_{in1} 一个输入,V_{in2} 接地。

注意在前面说的都是将假设不输入的输入给叉掉了,我当时就发现老师是将不输入的输入接地,但是接连 3 次分析都是一样的,我以为假设为接地或叉掉没有区别,到这个电路发现两者存在差异,故前面也应该都是假设接地的。

\begin{aligned}&V_{in+}=\frac{R_{4}}{R_{3}+R_{4}}\cdot V_{in1} \\& V_{in-}=\frac{R_{1}}{R_{1}+R_{2}}\cdot V_{out} \\&V_{in+}=V_{in-}\Rightarrow V_{out}=\frac{R_{1}+R_{2}}{R_{1}}\cdot\frac{R_{4}}{R_{3}+R_{4}}V_{in1}\end{aligned}

假设只有 V_{in2} 输出后,叠加就可以得到最开始的公式。

六、减法电路

6.1电路图与输出公式

实现两个输入信号的减法,同时还有一个系数的放大增益。

6.2电路分析

减法电路是在正负输入端都添加输入信号 ,分别计算正输入端和负输入端的电压,最后两者相等即可得上图中第一行的公式,如下公式所示。

V_{in+}=\frac{R4}{R3+R4}\cdot V_{in2}

Vin-=Vin_{1}+(Vout-Vin_{1})\cdot\frac{R_{1}}{R_{1}+R_{2}}

V_{in+}=V_{in-}

注意负输入端电压的计算,是要在 Vin_{1} 的基础上再加上 R1 上的分压。

七、仪表放大器

7.1电路图与输出公式

7.2电路分析

仪表放大器与减法放大器类似,区别在于两个输入不是直接接电阻,而是接一个单位增益负反馈的放大器,单位增益负反馈的放大器使下图中 A 、B 两点电压相等,即

V_{A}=V_{B}=V_{imp}=V_{in2}\\V_{C}=V_{D}=U_{imn}=V_{in1}

7.3特殊说明

问:既然公式推导和减法电路并无二致那为什么要在输入端加上两个单位增益负反馈的放大器呢?

答:阻抗问题。

减法电电路从输入端向电路内部看进去,是存在一定阻抗的,阻抗不是无穷大。
如果减法电路电路的前一级电路存在一定的输出电阻,那么减法电路这里存在的阻抗和前一级电路的输出阻抗就是并联关系,很有可能影响前一级的计算和输出效果,如果前级电路对输出阻抗有要求那就更不能使用减法电路。

所以我们希望电路的输出阻抗非常的大(也可以说是:我们希望电路的是一种容性负载,当频率很高的时候,不会对前级电流造成影响。)

故有仪表放大器,这样前端电路或者说从输入看进去是运放的输入端,运放的输入阻抗是非常大的。

八、积分与微分运算电路

8.1电路图与输出公式

8.2电路分析

积分和微分运算的实现需要依靠电路中添加电容器件,电容存在公式:i=c\cdot\frac{du}{dt}

即流过电容的电流应该是电压对时间的导数再乘以容值,故电容电压到电流的计算是微分,电流到电压的计算是积分。

8.2.1积分电路

对积分电路的分析电路图如下图,电流电阻和电容的电流相等,并且注意假设的电容中电流方向如下图,而实际并不是,故有一个负号,最后可以得到上图的公式结果。

I_{c}=I_{R}=\frac{V_{in}}{R}\\0-V_{out}=V_{c}=\frac{1}{c}\int I_{c} dt\\Vout=-\frac{1}{C}\int Icdt=-\frac{1}{RC}\int V_{in}dt

8.2.2微分电路

与积分电路同理。

九、对数与指数运算电路

9.1电路图与输出公式

9.2电路分析

PN 节两端的 IU 特性为指数形式,故为实现对数和指数运算需要使用 PN 节,有 PN 节的最简单的器件就是二极管。

9.2.1对数运算

9.2.2指数运算

与对数运算同理,无需赘述。

十、乘法和除法运算电路

10.1原理图

基础的高中知识:

 \ln a+\ln b=\ln ab\rightarrow e^{\ln ab}=ab\\\ln a-\ln b=\ln\frac{a}{b}\rightarrow e^{\ln\frac{a}{b}}=\frac{a}{b}

  1. 如果红色框中为求和 → 经过绿色电路 → 乘法运算
  2. 如果红色框中为求差 → 经过绿色电路 → 除法运算

10.2电路图和输出公式

以乘法为例,其中电路图中的电阻均相等。

10.3电路分析

公式就是之间电路推导而来,比较简单,不在赘述。

将上图中间的反向求和电路换成反向求差电路就是除法电路。

十一、输入阻抗

上面所有的应用电路在分析时,都没有考虑输入阻抗,即没有考虑本电路会对前级电路的影响,但是在实际的电路设计时,一定要清晰的知道前后两个电路的阻抗问题。

11.1电路分析

下面以反向放大电路为例,将运放假设成一个最简单的单级放大器,即一个压控电流源并联一个输出阻抗,为了分析输阻抗的具体值,在输入端加上输入电压 V_{in} ,输入电流为 I_{in} ,需要计算的输入阻抗 R_{in} ,有公式:

R_{in}= \frac{V_{in}}{I_{in}}

在节点 A 用基尔霍夫电路定律:一个节点流入的电流一定等于该节点流出的电流。

(1)流出

A 点流出的电流只有向运放流入的电流,该条电流无法直接计算得到,只有通过再分析该电流。

该电流由压控电流源上的电流 g_mV_x  和输出阻抗上的电流 \frac{V_{out}}{r_o}

注意:

  1. 输出阻抗上的电压就是输出电压;
  2. 你肯定会疑惑,在 A 点的分析为什么没有输出电流。因为运放的电路中只有输出电压,没有完整的输出回路,故没有输出电流。

(2)流入

流入的只有输入电流(虚断、虚短)I_{in} 。

(3)总结

(最终的目的是得到输入电压与输入电流的比值,得到输入电阻)

最终由基尔霍夫电流定律,可得下式,其中需要消掉的参数为 V_{X} 和 V_{out}

g_mV_x+\frac{V_{out}}{r_o}=I_{in}

其中:V_x=V_{in}-I_{in}R_1V_{out}=V_{in}-I_{in}\left(R_1+R_2\right)  代入可得:

g_m\left(V_{in}-I_{in}R_1\right)+\frac{V_{in}-I_{in}\left(R_1+R_2\right)}{r_o}=I_{in}

R_{in}=\frac{V_{in}}{I_{in}}=\frac{g_mr_oR_1+R_1+R_2+r_o}{g_mr_o+1}\approx R_1

其中:

  1. 分母上: g_{m}r_{o} 是运放的增益,一般情况下运放的增益都是比较大的,故分母上的 1 可以忽略;
  2. 分子上:最大的一项为 g_{m}r_{o}R_{1} ,故分子上其他项均可忽略不计。

最后化简得到:

R_{in}\approx R_{1}

得到结论:运放电路的输入阻抗,和从输入看进去的第一个电阻的阻值一致的。

十二、输出阻抗

12.1电路图与输出阻抗公式

12.2电路分析

12.2.1输入短路

当没有电阻 R1 和 R2 的时候输出阻抗就是运放的阻抗 r_{o},但在实际中添加了  R1 和 R2 组成的反馈网络,故需要计算加上之后总体的输出阻抗是多少。

并且在分析输出阻抗的时候,需要将输入信号置零(注意:再说一遍这里的置零,不是假设输入为0 ,而是将输出端短路),观察输出电压和输出电流是多少。

关于将输入阻抗置零我是这么理解的:

由于前面计算运放的输入阻抗是用输入电压除以输入电流,不知道会不会有读者自然的以为这里输出阻抗的计算应该也在假设有输入的情况,使用输出电压除以输出电流。

但是事实确是要将输入信号都短路,这是因为:

  • 当我们计算输出阻抗时,我们需要研究电路如何对外部负载的变化作出反应。为此,我们需要考虑一个“静态”或“空载”的状态。
  • 将输入信号置零的目的是将运放的增益效应去除,以便纯粹分析电路的本身特性(特别是其内阻)对负载的影响。

12.2.2基尔霍夫电流定律

输出节点实际上有 3 路电流,但是这里只考虑运放内部自身输出阻抗 r_{o} 和反馈网络网络这两路电流。

压控电流源这一路的电流是运放自身的特性,在没有反馈网络的时候,输出阻抗只有运放内部自身输出阻抗 r_{o} ,现在有负反馈网络,故只需要分析运放内部自身输出阻抗 r_{o}  加上负反馈网络的阻抗。

故就形成了上图中的公式。

12.2.3总结

运放的输出阻抗是运放内部的阻抗 r_{o} 并联上反馈网络形成的电阻,上图中反馈网络的电阻是 R1 和 R2 的串联。

十三、一些有点口头的题外话

13.1存在的问题

当运放电路没有R1 、R2 的负反馈网络时,运放的增益是 g_{m}r_{o} ,想要运放的增益很大的话,要么使 g_{m} 很大,要么使 r_{o} 很大,实际的做法是让 r_{o} 很大,如使用 Cascode 结构。

但是这样一个本来增益很大的运放,如果用在了电阻负反馈网络上,输出阻抗变成了 r_o//\left(R_1+R_2\right),R1 和 R2 一般为 KΩ 级,r_{o} 一般在 MΩ级,故并联后电阻骤降,运放增益为g_m\left(R_1+R_2\right),也骤降。

13.2解决办法

不能让上述中的输出阻抗直接决定电路的增益,故一般有电阻反馈网络的运放通常是同时使用两级或两级以上。

让第一级作为主要增益提供的一级,第二级作为缓冲级,阻抗可以低一点。下面举一个小例子。

这也是为什么现在使用更多是开关电容电路,因为开关电容电路,反馈网络为电容,信号频率很低的时候,电容的阻抗非常大, 不会干扰到(低频)直流增益。


本文参考:运算放大器经典应用_哔哩哔哩_bilibili

  • 35
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值