草庐IT

运算放大器(运放)介绍

风正豪 2023-09-04 原文

注意,此处我们采用的是Multisim软件仿真 ,链接中有详细安装教程。

注意:仿真只是数学运算,实际情况的话,就不是数学运算那么简单,有很多复杂的因数在里面。所以具体情况要参照实际电路搭建。比如说,之前我们搭建蔡氏电路的时候,明明1700欧左右就能产生双周期的波形,但是按照仿真搭建的电路,具体确实1430欧左右才产生双周期的波形。这是需要注意的!!!

目录

运放内部结构简单介绍,及其供电

内部结构

V+V-供电

VpVn输出电压

ri虚断虚短

ro内阻

总结:

运放电压传输特性及其输出电流介绍

运放的三个区域

正负饱和区

 输出端负载阻值影响

线性区 

总结:

反馈介绍

 正负反馈的简单介绍


运放内部结构简单介绍,及其供电

内部结构

V+V-供电

我们先看V+和V-,这个地方就是运放芯片的供电电源。V+很好理解,就是一节电池正极接V+,负极接地。V-就是电源的正极利用一根杜邦线丢到地上,负极接V-,负压就产生了。

在Multisim中运放的寻找位置(因为LM358P内部是存在两个运放的,所以弹出的哪个选项点击A还是B都可以)。

在Multisim中直流电源位置。

这里我们需要注意一个点,输入电压范围是不一定要求正负对称的。如果V+为6V,那么V-不是必须是-6V。我尝试在Multisim中尝试V+12V,V-为-6V,发现可以正常运行。询问老师之后得知,正负端电压不对称只会影响输出信号的最大动态范围,只要输出信号在最大动态范围内,电源不对称对输出没有影响。

VpVn输出电压

然后我们需要知道,运放内部你可以理解为有一个电压受控源,它由(Vp-Vn)控制,实际的输出电压为Avo(Vp-Vn)。Avo是电压增益量,它的值一般都非常大。我们通过控制Vp和Vn的差值,来控制输出电压。但是由于Avo的值一般都非常大,那么我们需要输出一个几V的电压的时候,(Vp-Vn)的值就会非常非常的小,所以我们一般都会设置一个负反馈的系统(这个放在后面讲)。有了负反馈系统之后,我们就可以设置放大的倍数了。

ri虚断虚短

 运放内部的电阻ri是非常大的,而我们的(Vp-Vn)的值又非常非常的小。那么此时流经ri的电流将会非常小,我们可以看作没有。而我们知道,电路处于断路状态就是没有电流的,那么现在运放的这个状态我们称之为虚断

如下为一个同向放大电路,我们测量输入端两侧的电流可以知道流经输入端的电流仅仅只有-19.496nA(1nA=10^-9A)。所以我们可以认为此时处于虚断。

我们上面说了,因为Avo的值一般都非常大,那么(Vp-Vn)的值我们可以看成是为0。我们可以知道,当一个电阻被短路了,那么这个电阻两端电压相同。而现在(Vp-Vn)值约为0的这种状态,我们称之为虚短

如下为一个同向放大电路,我们测量输入端两侧的电压可以知道,两者压差为323.073uV(1V=1000mV,而1mV=1000uV)。这个值毫无疑问是非常非常小的,几乎可以忽略不记,所以我们可以认为此时处于虚短。

在我们这里需要选择V,——,表示测量直流电压。

 注意:我们这里的电源和上面供电的哪个地方电源好像不一样啊?的确有些许不一样,但都是电源。为了让电路美观,我们才这么画。

我们需要注意的是,虚断是一直存在的,虚短并不是。后面线性区讲。

ro内阻

ro称之为输出电阻,他的阻值非常非常的小,一般直接忽略,与导线等价即可。

总结:

V+接正电压,V-接负压。

V+V-不需要正负对称。

运放的放大可以理解为一个由(Vp-Vn)控制的电压受控源。

虚断一直有,虚短不一定。

运放电压传输特性及其输出电流介绍

运放的三个区域

首先我们需要知道运放是有三个区域的,分别是负饱和区,线性区,正饱和区。

正负饱和区

首先我们介绍正负饱和区,我们需要知道,运放电路的放大作用是有极限的,而这个极限就是饱和区。那么我们如何知道这个饱和的电压大概是在什么范围呢?一般来说,这个饱和电压由V+和V-决定。我们的这个放大电压是不可能超过V+的电压,低于V-的电压。所以说,这个饱和电压就是V+和V-的值吗?不是的,运放电路中是存在饱和压降∆V,那么我们的放大电路的范围就应该是(V-+∆V,V+-∆V),而把V-+∆V,V+-∆V用Vom来表示,放大电压范围就是(-Vom,+Vom)。

首先我提前告知,这个电路为一个同向放大3倍的同向放大电路,此电路的饱和区在10.495V。我们正向输入端一开始为3.3V,3.3V*3=9.9V,而9.9V小于10.495V,是可行的。

但是如果我们输入端电压为5V呢?会不会是5V*3=15V呢 ?显然不会,因为饱和区的存在,此时的电压应该是10.495V。这个时候就说明放大电路处于饱和状态了。

 输出端负载阻值影响

而我们的放大电压范围仅受V+V-的影响吗?不是的,一般来说,运放的输出端最大电流为±20mA。如果负载RL阻值过小会导致|V0|的最大值变小。例如,RL为200欧,|V0|的变化范围只有20mA*200欧=0.02A*200欧=4V。所以我们RL一般要选择大一点的值,但又不能过大

如下,我们正常接入3.3V电压,而R1R2从5K欧10K欧,变成5欧10欧。这个时候,我们就会发现,输出端的电压就不是9.9V了,而是608.929mV,很明显不可能是误差导致的。所以我们可以得出结论外界电阻不能过小。

如下,我们正常接入3.3V电压,而R1R2从5K欧10K欧,变成5M欧10M欧。可以看到,输出电压值为9.7,距离9.9V有0.2V的偏差,很明显这个偏差还是非常大的。所以阻值也不能选择过大。

我们需要知道,放大电路其实是一种弱电系统,具有高灵敏度,容易受到环境和内部噪声的干扰。而当实际电路中电阻过大,会增加其热噪声,容易引入干扰。所以我们外界的电阻尽量以千欧作为单位最佳。

线性区 

但是我们使用放大电路的时候,需要避免接触到饱和区,我们所使用的范围就是线性区。线性区的范围,也就是我们上面所说的最大动态范围。这里的放大公式为Avo(Vp-Vn),靠经V+端的是Vp,靠近V-端的是Vn。(看上图2.1.3)

上面说了虚断一直有,虚短不一定。为什么呢?因为虚断主要是因为运放内阻非常大所导致的,所以说,它会一直存在。

以下分别是运放工作在线性区和饱和区的电流值,虽然值不同,但是很明显。两者测量出来的值的是十分小的,都可以忽略不计。故虚断在线性区和饱和区都会存在。

而虚短不一样,它依赖于电压增益Avo非常非常的大,但是我们需要注意的一个地方就是,当输出电压已经处于饱和状态的时候,Avo的值并不是无穷大的。这样就做不到虚短的效果。

举个例子,假设当前运放电路为饱和电压12V,Vp为6V,Avo为4,那么Vn就是6-(12/4)=3V。但是我们换一个假设,此时运放电路的输出电压10V,Vp为6V,Avo为10000,那么Vn就是6-(10/10000)=5.9999V,此时Vp和Vn几乎相等。就是虚短。

以下分别是运放工作在线性区和饱和区的电压值。我们可以看到,线性区的电压依旧是非常小的,可以忽略不记。但是饱和区这个时候的电压我们看到了有将近1.5V的电压,这个肯定就做不到忽略不计了。

所以说,虚短线性区才有,饱和区没有。

总结

运放有负饱和区,线性区,正饱和区。

饱和区的值受V+V-,以及输出端RL影响。

我们使用运放进行放大的时候,是使用的线性区,注意不要因为饱和区导致无法进行电压放大。虚断一直有,虚短只有在线性区才存在。

反馈介绍

 我们将输出信号V0再返回输入端的过程称为反馈。一般来说,只要是输入端和输出端有联系就称之为反馈,而输入端和输出端没有联系就一定没有返回。

为什么说一般有联系就称之为反馈呢?先看上图,我们可以知道输出电压u0经过R1R2的分压,流回电压信号到了反向端。但是看下图,因为仅仅只有一个R存在,所以运放的正向输入端电压永远为0V,运放的输出信号没有反馈到运放的输入端。那么我们可以得出结论,上面是存在反馈电路的,下面没有反馈电路。

 正负反馈的简单介绍

正负反馈我们可以简单的理解,当输出信号接到反向输入端就是负反馈,接到正向输入端就是正反馈。但是我们需要知道,这对单级放大电路来说是对的,对多级放大电路不一定。那么我们怎么知道一个比较绝对的判断方法呢?就是使运放Vp-Vn减小是叫做负反馈,那么让Vp-Vn增大的是不是就叫做正反馈。因此,我们也就可以知道了何时采用正反馈,何时采用负反馈了。

注意:本文仅简单介绍负反馈,之后我会专门写一篇关于反馈的博客。

我们之前说了在电压放大时候,放大增益Avo是非常大的。这样我们就需要Vp和Vn值非常接近,差值可能只有几微伏到几十微伏这样给实际电路操作时候增加了很大的难度。于是就我们就要减少Vp-Vn,采用负反馈。

负反馈系统如下

有关运算放大器(运放)介绍的更多相关文章

  1. ruby - 触发器 ruby​​ 中 3 点范围运算符和 2 点范围运算符的区别 - 2

    请帮助我理解范围运算符...和..之间的区别,作为Ruby中使用的“触发器”。这是PragmaticProgrammersguidetoRuby中的一个示例:a=(11..20).collect{|i|(i%4==0)..(i%3==0)?i:nil}返回:[nil,12,nil,nil,nil,16,17,18,nil,20]还有:a=(11..20).collect{|i|(i%4==0)...(i%3==0)?i:nil}返回:[nil,12,13,14,15,16,17,18,nil,20] 最佳答案 触发器(又名f/f)是

  2. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  3. ruby - 带括号和 splat 运算符的并行赋值 - 2

    我明白了:x,(y,z)=1,*[2,3]x#=>1y#=>2z#=>nil我想知道为什么z的值为nil。 最佳答案 x,(y,z)=1,*[2,3]右侧的splat*是内联扩展的,所以它等同于:x,(y,z)=1,2,3左边带括号的列表被视为嵌套赋值,所以它等价于:x=1y,z=23被丢弃,而z被分配给nil。 关于ruby-带括号和splat运算符的并行赋值,我们在StackOverflow上找到一个类似的问题: https://stackoverflow

  4. ruby - 定义自定义 Ruby 运算符 - 2

    问题是:除了在“OperatorExpressions”?例如:1%!2 最佳答案 是的,可以创建自定义运算符,但有一些注意事项。Ruby本身并不直接支持它,但是superatorsgem做了一个巧妙的把戏,将运算符链接在一起。这允许您创建自己的运算符,但有一些限制:$geminstallsuperators19然后:require'superators19'classArraysuperator"%~"do|operand|"#{self}percent-tilde#{operand}"endendputs[1]%~[2]#Out

  5. ruby - Ruby 中 <=> 运算符的名称是什么?他们怎么调用它? - 2

    在Ruby中有运算符(operator)。在API中,他们没有命名它的名字,只是:Theclassmustdefinetheoperator...Comparableusestoimplementtheconventionalcomparison......theobjectsinthecollectionmustalsoimplementameaningfuloperator...它叫什么名字? 最佳答案 参见上面的@Tony。然而,它也被称为(俚语)“宇宙飞船运算符(operator)”。

  6. ruby - 将运算符传递给函数? - 2

    也许这听起来很荒谬,但我想知道这对Ruby是否可行?基本上我有一个功能...defadda,bc=a+breturncend我希望能够将“+”或其他运算符(例如“-”)传递给函数,这样它就类似于...defsuma,b,operatorc=aoperatorbreturncend这可能吗? 最佳答案 两种可能性:以方法/算子名作为符号:defsuma,b,operatora.send(operator,b)endsum42,23,:+或者更通用的解决方案:采取一个block:defsuma,byielda,bendsum42,23,

  7. ruby - OR 运算符和 Ruby where 子句 - 2

    可能真的很简单,但我很难在网上找到关于这个的文档我在Ruby中有两个activerecord查询,我想通过OR运算符连接在一起@pro=Project.where(:manager_user_id=>current_user.id)@proa=Project.where(:account_manager=>current_user.id)我是ruby​​的新手,但我自己尝试使用||@pro=Project.where(:manager_user_id=>current_user.id||:account_manager=>current_user.id)这没有用,所以1.我想知道如何在

  8. ruby - Ruby 中字符串运算符 + 和 << 的区别 - 2

    我是Ruby和这个网站的新手。下面两个函数是不同的,一个在函数外修改变量,一个不修改。defm1(x)x我想确保我理解正确-当调用m1时,对str的引用被复制并传递给将其视为x的函数。运算符当调用m2时,对str的引用被复制并传递给将其视为x的函数。运算符+创建一个新字符串,赋值x=x+"4"只是将x重定向到新字符串,而原始str变量保持不变。对吧?谢谢 最佳答案 String#+::str+other_str→new_strConcatenation—ReturnsanewStringcontainingother_strconc

  9. ruby - 我可以在 Ruby 中动态调用数学运算符吗? - 2

    ruby中有这样的东西吗?send(+,1,2)我想让这段代码看起来不那么冗余ifop=="+"returnarg1+arg2elsifop=="-"returnarg1-arg2elsifop=="*"returnarg1*arg2elsifop=="/"returnarg1/arg2 最佳答案 是的,只需像这样使用send(或者更好的是public_send):arg1.public_send(op,arg2)这是可行的,因为Ruby中的大多数运算符(包括+、-、*、/、andmore)只需调用方法。所以1+2与1.+(2)相同

  10. H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档) - 2

    目录H2数据库入门以及实际开发时的使用1.H2数据库的初识1.1H2数据库介绍1.2为什么要使用嵌入式数据库?1.3嵌入式数据库对比1.3.1性能对比1.4技术选型思考2.H2数据库实战2.1H2数据库下载搭建以及部署2.1.1H2数据库的下载2.1.2数据库启动2.1.2.1windows系统可以在bin目录下执行h2.bat2.1.2.2同理可以通过cmd直接使用命令进行启动:2.1.2.3启动后控制台页面:2.1.3spring整合H2数据库2.1.3.1引入依赖文件2.1.4数据库通过file模式实际保存数据的位置2.2H2数据库操作2.2.1Mysql兼容模式2.2.2Mysql模式

随机推荐