草庐IT

开关电源-TL431与光耦组成的电压反馈电路-TL431工作过程分析

ltqshs 2023-07-25 原文

开关电源:TL431与光耦组成的电压反馈电路

#开关电源#开关电源最基本的要求是输入电压变化时,输出电压保持恒定,而与此相关的测试如电压调整率、负载调整率等也是衡量开关电源性能的重要指标,实现输出电压恒定的方式是反馈,即输出电压的改变可以反馈至电源管理芯片FB脚(feedback),再通过调节开关管的脉宽实现输出电压动态平衡。
绝大多数开关电源都是使用TL431与光耦组成的反馈电路,非常经典,也应用了很多年。它的优点是精度能满足大多数场合要求,成本低,环路稳定成熟。

箭头所指框内就是TL431与光耦组合

在分析反馈电路之前,先来了解一下TL431的工作原理,TL431内部是一个十分复杂且细致的晶体管电路,电路符号与等效电路如下:

由图可知:TL431内部主要包括2.5V基准源、误差放大器、三极管等。
2.5V的基准电压接在误差放大器的反相输入端,参考电压接在同相输入端,误差放大器的输出端接三极管。注意这里是误差放大器而不是比较器,所谓误差放大器,是通过比较反馈电压与基准电压的差值来产生误差电压,进而调节晶体管的压降。这里晶体管工作在线性区而不是饱和区.

上图为TL431的典型接法,通过配置不同的R1 和R2 的值可以得到从2.5V 到36V 范围内的任意电压输出(Vo<Vin), 输出电压公式:Vout = (R1+R2)*2.5/R2,特别地,当R1=R2 时,Vo=5V。另外,如此应用需要注意两点,一是在选择电阻时必须保证TL431 工作的必要条件,即通过阴极的电流要大于1 mA 。二是这个电路输出电压只能作为作为参考电压,不能用作电源带负载。

开关电源的稳压反馈通常都使用TL431 和PC817,如输出电压要求不高,也可以使用稳压二极管和PC817,下面以典型应用图来分析动态过程。

首先明确两个问题:①此处光耦主要起到两个作用:反馈和隔离。
②这里应用的光耦为线性光耦(普通光电耦合器只能传输数字信号,不适合传输模拟信号。线性光电耦合器是一种新型的光电隔离器件,能够传输连续变化的模拟电压或电流信号,这样随着输入信号的强弱变化会产生相应的光信号,从而使光敏晶体管的导通程度也不同,输出的电压或电流也随之不同。
动态过程分析:
Vo输出电压增大→TL431参考极电压增大→TL431阴极与阳极压降降低、电流增大→光耦初级电流增大→光耦次级电流增大→FB脚电压升高→电源管理芯片降低MOS管的占空比→Vo输出电压减小。反之亦然,如此保障输出电压平稳。
参数选择:
①R1和R2配置输出电压,取值过小,待机功耗过大,取值过大,无法满足TL431 参考输入端电流要求,一般R1取值几K,R2取值在几K到几十K。
②C1与R4串接于TL431控制端和输出端,用来压制低频(100Hz)纹波和提高输出调整率。
③R5的作用是对TL431额外注入一个电流,避免TL431因注入电流过小而不能正常工作,实际上如适当选取电阻值R3,电阻R5可以省略。

参考原文:《开关电源:TL431与光耦组成的电压反馈电路》

有关开关电源-TL431与光耦组成的电压反馈电路-TL431工作过程分析的更多相关文章

  1. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  2. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  3. ruby - 无法让 RSpec 工作—— 'require' : cannot load such file - 2

    我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳

  4. ruby-on-rails - rspec should have_select ('cars' , :options => ['volvo' , 'saab' ] 不工作 - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request

  5. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  6. ruby - JetBrains RubyMine 3.2.4 调试器不工作 - 2

    使用Ruby1.9.2运行IDE提示说需要gemruby​​-debug-base19x并提供安装它。但是,在尝试安装它时会显示消息Failedtoinstallgems.Followinggemswerenotinstalled:C:/ProgramFiles(x86)/JetBrains/RubyMine3.2.4/rb/gems/ruby-debug-base19x-0.11.30.pre2.gem:Errorinstallingruby-debug-base19x-0.11.30.pre2.gem:The'linecache19'nativegemrequiresinstall

  7. Unity 3D 制作开关门动画,旋转门制作,推拉门制作,门把手动画制作 - 2

    Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u

  8. ruby - `rescue $!` 是如何工作的? - 2

    我知道全局变量$!包含最新的异常对象,但我对下面的语法感到困惑。谁能帮助我理解以下语法?rescue$! 最佳答案 此构造可防止异常停止您的程序并使堆栈跟踪冒泡。它还会将该异常作为值返回,这很有用。a=get_me_datarescue$!在此行之后,a将保存请求的数据或异常。然后您可以分析该异常并采取相应措施。defget_me_dataraise'Nodataforyou'enda=get_me_datarescue$!puts"Executioncarrieson"pa#>>Executioncarrieson#>>#更现实的

  9. ruby - File.read ("| echo mystring") 是如何工作的? - 2

    我在我正在处理的一些代码中发现了这一点。它旨在解决从磁盘读取key文件的要求。在生产环境中,key文件的内容位于环境变量中。旧代码:key=File.read('path/to/key.pem')新代码:key=File.read('|echo$KEY_VARIABLE')这是如何工作的? 最佳答案 来自IOdocs:Astringstartingwith“|”indicatesasubprocess.Theremainderofthestringfollowingthe“|”isinvokedasaprocesswithappro

  10. ruby - 这个 ruby​​ 注入(inject)魔术是如何工作的? - 2

    我今天看到了一个ruby​​代码片段。[1,2,3,4,5,6,7].inject(:+)=>28[1,2,3,4,5,6,7].inject(:*)=>5040这里的注入(inject)和之前看到的完全不一样,比如[1,2,3,4,5,6,7].inject{|sum,x|sum+x}请解释一下它是如何工作的? 最佳答案 没有魔法,符号(方法)只是可能的参数之一。这是来自文档:#enum.inject(initial,sym)=>obj#enum.inject(sym)=>obj#enum.inject(initial){|mem

随机推荐