开关电源反馈环路重要参数设计,PC817和TL431实例计算和取值详解

author:小高霸气
data:2021.04.16

下面介绍开关电源重要的反馈电路PC817和TL431设计和应用。
在开关电源当中,对稳压反馈电路的设计通常会使用TL431和PC817来配合使用。在TOP 及3842等单端反激电路中的反馈电路很多都采用TL431和PC817作为参考、隔离、取样。现以典型应用电路来说明开关电源反馈电路TL431和PC817取值、设计、计算。使开关电源反馈电路能稳定可靠地工作。
在这里插入图片描述

开关电源电路简图
一:占空比与控制电流
该电路利用输出电压与TL431构成的基准电压比较,通过光电耦合器PC817二极管-三极管的电流变化去控制TOP管的C极,从而改变PWM宽度,达到稳定输出电压的目的。因为被控对象是TOP管,因此首先要搞清TOP管的控制特性。从TOPSwicth的技术手册可知流入控制脚C的电流Ic与占空比D成反比关系,如下图所示。
在这里插入图片描述

TOPSwicth占空比与控制电流关系图
二:光电耦合器集射电压与正向电流
PC817光电耦合器广泛用在开关电源、LED电源、LED驱动器、影印机、自动售票、家用电器、测量仪器等电路之间的信号传输,使之前端与负载完全隔离,目的在于增加安全性,减小电路干扰,简化电路设计。
Ic的电流应在2-6mA之间,PWM会线性变化,因此PC817三极管的电流Ice也应在这个范围变化。而Ice是受二极管电流If控制的,我们通过PC817的Vce与If的关系曲线(如图3所示)可以正确确定PC817二极管正向电流If。从图3可以看出,当PC817二极管正向电流If在3mA左右时,三极管的集射电流Ice在4mA左右变化,而且集射电压Vce在很宽的范围内线性变化。符合TOP管的控制要求。
在这里插入图片描述

PC817:Vce与If关系曲线
PC817二极管正向电流If可以确定为3mA,If=3mA。
三:光电耦合器与TL431取值
TL431是可控精密稳压源。它的输出电压用两个电阻就可以任意的设置到从Vref(2.5V)到36V范围内的任何值。该器件的典型动态阻抗为0.2Ω,在很多应用中用它代替稳压二极管,例如,开关电源、LED电源、LED驱动器、可调压电源、数字电压表、运放电路等。
TL431电压基准器,基准电压2.5V,通过取样电阻取样后与基准电压进行比较,比较的结果通过PC817进行工作,控制开关管进行开关动作。
从TL431的技术参数查到:
Vka在2.5V-37V变化时,Ika可以在从1mA到100mA以内很大范围里变化,一般选20mA即可,既可以稳定工作,又能提供一部分死负载。不过对于TOP器件因为死负载很小,只选3-5mA左右就可以了。
确定了上面几个关系后,R4、R5、R7、R8这4个关键电阻值就可以计算出来了。
根据TL431的性能,R7、R8、Vo、Vr有固定的关系:
Vo=(1+ R7/R8) Vr
式中,Vo为输出电压,Vr为参考电压,Vr=2.50V。
四:实例计算与取值
R8电阻取值参考:
TL431参考输入端电流一般为2uA左右,为了避免参考输入端电流影响分压比和避免噪音的影响,一般取流过电阻R6的电流为参考输入端的100倍以上,以就是200uA。
所以R8电阻要小于2.5V/200uA=12.5K。
如果待机功耗有要求,建议在满足小于12.5K的情况下尽量取大值。
在这里R8取值为10K。
根据Vo的值就可以算出R7了。
例如:输出电压Vo=10V
1:先计算R7电阻值:
R7=(Vo/Vr-1)R8
R7=(10/2.5-1)10
R7=30K
2:再计算R4和R5电阻值:
R4电阻取值参考:
TL431要求有1mA的工作电流,也就是R4的电流接近于零时,也要保证TL431有1mA。
所以R5≤1.2V/1mA=1.2K即可。
R4的取值要保证TOP控制端取得所需要的电流,假设用PC817A,其CTR=0.8-1.6,取低限0.8,要求流过光耦二极管的最大电流为 6/0.8=7.5mA。
所以R4的值≤(10-2.5-1.2)/7.5=840Ω,光耦二极管能承受的最大电流在50mA左右,TL431为100mA,所以我们取流过R4的电流为21mA。
R4=(10-2.5-1.2)/21=300Ω;
则R4的压降为VR4=If
R1。
VR4=If* R4=0.003*300=0.9V;
查PC817技术手册,其光耦二极管的正向压降Vf典型值为1.2V,则可以确定R5上的压降VR5=VR4+Vf。
VR5=VR4+Vf=0.9+1.2=2.1V;
又知流过R5的电流IR5=Ika-If,因此R5的值可以计算出来:
R5= Vr5/ Ir5= (Vr4+Vf)/( Ika-If);
根据以上计算可以知道TL431的阴极电压值Vka,Vka=Vo’-Vr3。
式中Vo’取值比Vo大0.1-0.2V即可。
取Ika =20mA。
IR5=Ika-If=20-3=17;
R5= VR5/ IR5=2.1/17=123Ω≈120Ω
TL431的阴极电压值Vka,Vka=Vo’-VR3=10.2-2.61=7.59V;
结果:R4=300Ω、R5=120Ω、R7=30KΩ、R8=10K。
3:输出电压计算
Vo=(1+ R7/R8) Vr
Vo=(1+30/10)2.5
Vo=10V
五:R6、C7元件作用和取值
为了提升低频上的增益以及压制低频波纹,就需要R6、C7制造一个原点上的极点。也就是静态误差,R4C4形成一个零点,来提升相位,要放在带宽频率的前面来增加相位裕度,具体位置要看其余功率部分在设计带宽处的相位是多少,R6、C7的频率越低,其提升的相位越高,当然最大只有90度,但其频率很低时低频增益也会减低,一般放在带宽的1/5处,约提升相位78度。
一般R6电阻参考取值为:10K,C7电容参考取值:104(0.1uf)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/283508.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue中目录以及文件内容简单分析

src文件下目录分析&#xff1a; App.vue文件中内容&#xff1a; vue文件中基本的三个结构&#xff0c;template&#xff08;结构&#xff09;、script&#xff08;行为&#xff09; 、style&#xff08;样式&#xff09;。 <template><!-- html结构 --><div cl…

记一次Oracle Cloud计算实例ssh恢复过程

#ssh秘钥丢失# &#xff0c; #Oracle Cloud# 。 电脑上的ssh秘钥文件不知道什么时候丢失了&#xff0c;直到用的时候才发现没有了&#xff0c;这下可好&#xff0c;Oracle Cloud的计算实例连不上了&#xff0c;这个实例只能通过ssh连接上去&#xff1a; 以下是解决步骤&#x…

Linux常用命令大全总结及讲解(超详细版)

前言&#xff1a; Linux 是一个基于Linux 内核的开源类Unix 操作系统&#xff0c;Linus Torvalds于 1991 年 9 月 17 日首次发布的操作系统内核。Linux 通常打包为Linux 发行版。 Linux 最初是为基于Intel x86架构的个人计算机开发的&#xff0c;但此后被移植到的平台比任何其…

Ubuntu系统上TensorBoard使用方式

Ubuntu系统上TensorBoard使用方式 Tensorboard 启动TensorBoard 后台开启TensorBoard访问权限 执行命令&#xff1a;nohup tensorboard --logdirlogs/ >>tensorboard.log & 查看访问链接和登录token 执行命令&#xff1a;cat tensorboard.log&#xff0c;打开ten…

typore自定义删除线快捷键

打开高级设置 设置快捷键 重新打开typore

在高并发场景下,缓存“雪崩”了怎么办

1. 缓存雪崩的常见原因 缓存“雪崩”是指&#xff0c;因为部分缓存节点不可用&#xff0c;而导致整个缓存系统&#xff08;甚至是整个服务系统&#xff09;不可用。缓存“雪崩”主要分为以下两种情况&#xff1a; 因缓存不支持 rehash 而导致的缓存“雪崩”缓存支持 rehash 时…

【Java】ThreadLocal原理与使用场景

ThreadLocal原理&#xff1a; 字段&#xff1a; //ThreadLocal对象的哈希码 private final int threadLocalHashCode nextHashCode();//生成ThreadLocal对象的哈希码时&#xff0c;需要用到该对象&#xff0c;从0开始 private static AtomicInteger nextHashCode new Atomic…

使用docker build构建image

文章目录 环境步骤准备例1&#xff1a;基本用法例2&#xff1a;缓存layer例3&#xff1a;Multi-stage例4&#xff1a;Mountcache mountbind mount 例5&#xff1a;参数例6&#xff1a;Export文件例7&#xff1a;测试 参考 环境 RHEL 9.3Docker Community 24.0.7 步骤 在Dock…

Pix2Pix如何工作?

一、说明 在本指南中&#xff0c;我们将重点介绍 Pix2Pix [1]&#xff0c;它是用于配对图像翻译的著名且成功的深度学习模型之一。在地理空间科学中&#xff0c;这种方法可以帮助传统上不可能的广泛应用&#xff0c;在这些应用中&#xff0c;我们可能希望从一个图像域转到另一个…

认识Linux基本指令之 “touch mkdir rm”

01.touch指令 语法:touch [选项]... 文件... 功能&#xff1a;touch命令参数可更改文档或目录的日期时间&#xff0c;包括存取时间和更改时间&#xff0c;或者新建一个不存在的文件 常用选项&#xff1a; -a 或--timeatime或--timeaccess或--timeuse只更改存取时间。 -c…

JAVA:利用JUnit进行高效的单元测试

1、简述 在软件开发中&#xff0c;单元测试是确保代码质量和可维护性的关键步骤。JUnit作为Java领域最流行的单元测试框架之一&#xff0c;提供了简单而强大的测试工具&#xff0c;可以帮助开发者在项目开发过程中及时发现和修复代码中的问题。本文将介绍JUnit的基本用法以及一…

3D视觉-3D测量技术对比

从前面四种主流的 3D 测量技术来看&#xff0c;其优点和缺点都很明显&#xff0c;没有单独一种技术可以适用于所有的三维测量场景&#xff0c;从实际应用来看&#xff0c;双目与结构光在人脸识别&#xff0c;拆码垛定位&#xff0c;静态尺寸测量等应用上最为广泛。激光三角法因…

【CISSP学习笔记】6. 安全开发

该知识领域涉及如下考点&#xff0c;具体内容分布于如下各个子章节&#xff1a; 理解安全并将其融入软件开发生命周期 (SDLC) 中在软件开发环境中识别和应用安全控制评估软件安全的有效性评估获得软件对安全的影响定义并应用安全编码准则和标准 6.1. 系统开发控制 6.1.1. 软…

数据转换的三剑客:Pandas 中 apply、map 和 applymap 方法的应用指南

数据转换的三剑客&#xff1a;Pandas 中 apply、map 和 applymap 方法的应用指南 ​ 在 Pandas 中&#xff0c;apply、map 和 applymap 是常用的数据转换和处理方法&#xff0c;它们为数据分析和数据处理提供了灵活的功能。这些方法可以根据具体的需求选择合适的方法进行操作。…

如何使用ModuleShifting测试Module Stomping和Module Overloading注入技术

关于ModuleShifting ModuleShifting是一款针对Module Stomping和Module Overloading注入技术的安全测试工具&#xff0c;该工具基于Python ctypes实现其功能&#xff0c;因此可以通过Python解释器或Pyramid在内存中完整执行&#xff0c;这样就可以避免使用编译加载器了。 需要…

普中STM32-PZ6806L开发板(HAL库函数实现-按键扫描)

简介 实现按键扫描, 实现四个按键按下控制灯的亮灭 电路原理图 按键电路原理图 按键与主芯片引脚原理图 其他知识 原理图分析 Key_UP按下会有高电平输入, 所以电路设置应该是默认低电平, 初始化为下拉输入 Key_Left/Right/Down按下会有低电平&#xff0c; 初始化为下拉输…

鸿蒙开发 - 认证账号

注册成功后&#xff0c;进行账号认证 认证成功后就可以进行开发了

2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项样题卷②

2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项&#xff08;高职组&#xff09; 样题&#xff08;第2套&#xff09; 目录 2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项&#xff08;高职组&#xff09; 样题&#xff08;第2套&#xff09; 模块…

【pandas_不重复项计数】

听说WPS没有非重复项计数的功能&#xff0c;而office需要添加到数据模型之后&#xff0c;才可以使用该功能。而用pandas&#xff0c;既可以对重复项计数&#xff0c;又可以对非重复项计数。 # 使用提醒: # 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能 # 2. pack…

【C++】手撕 Vector类

目录 1&#xff0c;vector类框架 2&#xff0c;vector () 3&#xff0c;pinrt() 4&#xff0c;vector(int n, const T& value T()) 5&#xff0c;vector(const vector& v) 6&#xff0c;vector(InputIterator first, InputIterator last) 7&#xff0c;~vector…