开关电源PFC电路原理详解及matlab仿真

        PFC全称“Power Factor Correction”,意为“功率因数校正”。PFC电路即能对功率因数进行校正,或者说能提高功率因数的电路。是开关电源中很常见的电路。

        在电学中,功率因数PF有功功率P(单位w)与视在功率S(单位VA)的比值。

        在初高中的电学中,我们所学的功率都是以w(瓦)为单位,其数值等于电压与电流的乘积

        实际上,P=UI只针对纯阻性负载才成立,而对于带感性或者带容性负载,P并不等于U乘以I。只不过初高中的电学只讨论负载为纯电阻,所以统一计算功率都是P=UI。

7882c85e756c403c865818a5f66915e4.png 对于非纯阻性负载,电压与电流的乘积计算出来的其实是视在功率(用S表示)。

其单位为VA、KVA。

        上文说到的P实际上指的是有功功率

        除了视在功率S、有功功率P,还有无功功率Q。

何为无功功率?

        我们知道,对于电感电容(不考虑内阻),他们本身是不会消耗能量的,储存了多少能量,就会释放出多少能量,有一部分能量在电感电容中循环(相当于不断充放电)。这部分能量由于没有被消耗掉,所以就可以理解为没有对外做功,这部分能量的功率我们就称之为无功功率(单位var)。


         对于纯阻性负载,有功功率=视在功率,无功功率=0。

        而对于纯感性、纯容性负载,无功功率=视在功率,有功功率=0.

        视在功率、有功功率、无功功率三者关系如下。

e27b1a1ad6b941e5b17e4321ee891484.png

 它们成三角函数关系,

        功率因数PF定义为:

        其中的Φ就是功率因数角,而且也是负载的阻抗角。        

        注意,如果电压电流为同频率的正弦波,功率因数角刚好等于电压与电流的相位差

        当负载为纯阻性负载,输出电压、电流的相位相同。

90169841499f43f68112cb2dee99c714.png

         当负载为纯容性负载,电流相位超前电压90°

83918af6affe411e98562c53a9eb67f5.png

         当负载为纯感性负载,电流相位滞后电压90°

2b8e5941d09f46b88a88ae2c3208eaa7.png

         对于电流不是正弦波的情况,功率因数计算如下:

         其中THD为电流总谐波畸变,定义为:

        其中I1表示1次谐波电流大小、In表示n次谐波电流大小。谐波畸变也会对电网造成影响,包括RFI、EMI。

        这里就不深入谈论该问题。


为什么要提高功率因数?

        电网在输电时,输电线上的功率损耗与流过的电流的平方成正比。

        所以输电线上的电流越小,损耗就越小。当用电设备从电网取电,其消耗的有功功率和无功功率都来自电网,无功功率对用电设备来说,是没有做功的,但是在电网上传输就会产生损耗。无功功率越大,发电厂和输电系统就多了很多无效的负担,甚至会影响电力系统的稳定性

        所以为了减小电网的无功负担,以及减少电网的多次谐波,国家标准基本对各种用电设备都有PF及THD值的限定要求。开关电源也不例外,否则开关电源对电网的污染非常严重(来自高频开关电流及滤波电容)。

        市电的电压为220V、50Hz的正弦波形,所以电网最希望开关电源输入电流也是正弦波形,而且跟电压同相位。

        我们先来分析开关电源中常见的桥式整流电路中的输入电流。

080aac40d3f14827962eedbc31dc6759.png

         假如Vout接入小负载,该电路的输入电压电流波形为:

370eb7c130b84a358887f5f7cc3e9a75.png

         可以看到,输出电流变成了锯齿波,相对于正弦的输出电压,电流畸变非常严重,对应的谐波失真THD值就很大,更别说功率因数。

        造成该现象的原因就是输出电容。整流桥整流后的波形为馒头波,只有当整流后的电压大于电容电压时才会有电流流过整流桥的二极管。

8a784d07e5af4bf28126c54530f4148b.png

        而输出电容电压无法突变,当输入电压达到峰值后,电容电压也会充电到峰值。当输入电压下降,电容电压并不会跟随下降(负载会消耗其能量使其电压降低)。另外由于电容的伏安特性,流过电容的电流与其两端电压的变化率成正比。即:

        所以造成输入电流并不是跟随电压的正弦波。

        如果把输出电容断开,输入电流就是标准的正弦波了。但是,输出电压就也成了正弦波。显然,输出电容是必不可少的,那就要用其他办法来对电流进行整容了。

        所以,PFC电路 应运而生


        PFC分为有源PFC无源PFC,或者叫主动式PFC与被动式PFC。无源PFC其实就是通过对无功功率进行补偿来提高功率因数。容性负载串联电感,感性负载并联电容都能对无功功率进行补偿。无源PFC对功率因数提高的效果有限,0.8已经是极限了,而且体积一般很大。所以要求高的开关电源都会采用有源PFC,例如车载充电机,充电桩。

        有源PFC又叫主动式PFC,一般由专门的IC进行控制(例如UCC28180、NCP1654、UC3854等,常把这种方式称为模拟控制)。近年来,很多开关电源开始使用数字控制,即 使用DSP来采样、计算环路、发波。不管数字控制还是模拟控制,控制原理都是一样的。都是通过对输入电压电流采样,控制开关管的通断,让输入电流跟随输入电压变化,实现功率因数的校正。当然也采样输出电压,以稳定输出电压。

上图是PFC电路校正后的电流波形实测图▲

        具体的控制逻辑取决于IC内部的设计, 不同的内部逻辑在电路设计时会有略微不同。一般在其手册可查询IC内部框图。如下是TI(德州仪器)生产的PFC控制器UC3854的内部功能框图。这是一款连续单周期控制方式的IC。

        采用主动PFC电路后,开关电源的功率因数可以达到0.99以上。

校正前▲

校正后▲


        有源PFC的主电路拓扑结构有很多,这里我只介绍下面这种由桥式整流与boost组成的拓扑结构。

d494415684a346f68b38032b1e538daf.png

        这种结构是最常用的电路之一(还有一种无桥图腾柱PFC使用也很广泛,这里暂不介绍)。

        桥式整流不用多说,正弦电流输入经过D1、D2、D3、D4构成的整流桥整流得到馒头波。注意,整流桥后没有并联大容量滤波电容。

boost电路原理

        给开关管Q1的G极输入占空比可调的PWM波。

        当Q1关断,电流通过D5流向电容C与负载,电容电压升高至输入电压的峰值。

        当Q1导通,Q1的内阻很小,相当于短路。此时二极管D5截至,电容C的电流只能流向负载,电容电压下降(环路3)。而电感L1的存在,使电流无法突变,而是慢慢增加(环路2)。

         在很短的时间内(几个us),Q1再次关断,电感电流L1电流无法突变,只能通过环路1流通。而且此时L1两端产生感应电压UL(反电动势),其方向与整流后的输入电压U1方向相同。

        根据KVL定律,可以知道在环路1中:

         所以,此时电容电压等于输入电压+L1感应电压。(正是该原因,所以boost的输出能比输入电压高)

        不断循环上述过程,就实现了boost电路的升压过程。


        boost电路的输出电压与驱动Q1的PWM占空比有关系,占空比越大,输出电压越高

        通过电感L1的安秒平衡可以推出:

                调节占空比有很多方式:比如保持频率不变,同时改变Ton与Toff;或者保持Ton不变,改变Toff时;或者保持Toff不变,改变Ton。具体的方式取决于IC内部逻辑。


        当然,单单一个boost升压电路还不能实现功率因数校正,现在我们回到PFC的控制方式,讲讲PFC到底是如何实现让电流跟随电压的。

        下面是PFC的控制逻辑框图(展示的是连续型平均电流跟踪法,其他方式暂不详说,原理类似)

         原理:首先采样输出电压值Vout,与输出电压基准值Vref(即想要的输出电压值)作差,计算出输出电压误差值。然后经电压环调节(后面我将以PI控制器进行调节),输出一个系数K。这个K值只是一个计算中间量,无实际意义。将K值与输入电压相乘,计算出电流基准值(因为电压是正弦的,所以电流基准值也是正弦变化的)。这个电流基准值就是期望的电流波形。

         期望的电流波形与输入电压是同相位、同频率的正弦波,只要让输入电流沿着期望的电流波形变化,不就能实现功率因数校正的目的了。

        所以我们将实际的输入电流与期望的电流作差,计算出电流误差值,然后经过电流环调节(后面将使用PI控制器进行调节),计算出合适的占空比,再经过PWM发波器,输出占空比变化的PWM波,从而控制Q1的开关,就能实现电流跟随电压了。

        需要注意,电流并不是”平滑“的跟随电压,而是以Q1的开关频率“快速抖动”地跟随。

      所以PFC电路的前级还需要EMI滤波电路,使输入电流变得顺滑。

CH2:输入电流  CH3:PFC输出电压  CH4:输入电压▲

关于K值的说明:

        K乘以输入电压得到的是电流,可以推出K=I/U。而I/U计算的是电导,即电阻的倒数,说明K值与输出端的负载R存在某种关系。
        假设负载为2Ω的纯电阻负载,输入电压为220V 50Hz正弦波,用数学表达式表示为U=220sin100π,其理想中的输入电流应为I=U/R=110sin100π。计算出来的K值为1/2

        假如R为1.1Ω,此时的电流应为200sin100π,计算的k值为1/1.1。

         所以可以得出结论,K值与输出端的负载R的倒数有正相关性。在负载处于稳态时,K=1/R。

        当输出电压低于输出电压基准值,PI控制器会调大K值,输出电流变大,输出电压上升直到等于电压基准值。观测输入电流,会发现波峰慢慢变大直到稳定。

        当输出电压高于输出电压基准值,PI控制器会调小K值,输出电流变小,输出电压下降直到等于电压基准值。观测输入电流,会发现波峰慢慢变小直到稳定。


         在这两个环路中,电流环必须足够快,因为输入电压已经是以50Hz的频率变化,如果电流环太慢,很难跟上电压变化,造成电流畸变。

        而电压环需要慢,否则会因为K值变化过快,使得电流环无法跟踪,同样引起电流畸变。


原理搞清楚了,就可以建模了

        在sinlink中建模如下:

 相关参数:
PFC电感:450uH;输出滤波电容:1000uF

交流电压源:220V 50Hz,输出400Vdc,负载电阻R为50Ω。

Q1参数如下


        建模完成之后就可以调PI参数了。仿真解算器:ode23tb,仿真时间0.5S

        首先是电流环的调节,为了避免电压环对电流环的调节产生干扰,直接设定一个固定的K值,改线路如下:

              这里我设置为0.5。当k=0.5,I=U*K=110sin100π。调节PI参数直到输入电流波形为该函数形式。

        由于电流环需要很快,所以Kp值可以取的很大。

最终效果如下:

可以看到输入电流波形几乎贴近正弦波,且与输入电压同相位。

如果电流环太慢,波形就会像下面这样:

仿真图▲

 实测图▲

         可以看到只有中间一部分跟随到了电压,两边有个小平台。

        电脑性能不强的要注意了,如果电流环Kp值设置越大,仿真越慢,所以差不多就行了。

        另外实际上的PFC电路输入电流波形两端其实也会有明显的小平台,参考前面的实测图。

        还有一个调试小技巧:电流环的积分环节可以不调,因为电压环会自动对电流环的静态误差进行补偿。

        注意:我这里将电流环PI控制器的输出限制在0-0.95,以模拟实际的PFC驱动PWM占空比。

        电流环调好之后,将K值的线路改回去调节电压环(如下)。

        电压环的调节在我前面的文章讲过(《反激式开关电源输出电压的PID控制》),调节方法基本一样,这里就不详细讲了。

基本顺序就是:

       先将Ki设为0,初设一个Kp值试探一下,观察输出电压是否有振荡、过冲,有则调小至不发生震荡为止。

        然后保持Kp值不变,调Ki值。同样初设一个值,观察输出是否有震荡,有震荡则调小。若无震荡,但是上升到基准值(即400V)的时间很长,则调大Ki。直到输出电压既不发生震荡过冲,又能快速上升到设定值。不过这里需要注意不能太大,否则输入电流会畸变。调试时也要观察一下输入电流波形是否异常。

         下面是调好后的输出波形可供参考。

                输入电压电流波形:

 波形非常的漂亮!

         由于输入是220V 50Hz的电流,所以输出不可避免会有工频纹波(如上输出电压波形)。我们来测量一下纹波电压(电压峰峰值)。

         如上,电压稳定后的峰峰值ΔY测量为12.86V,纹波系数计算为:

\gamma =\frac{\Delta U}{U}=\frac{12.86}{400}=3.215%

         一般来说,开关电源直流输出的纹波系数要求小于5%,所以上面的纹波系数是符合要求的。

        由于输出电压纹波存在,所以电压环调节出来的系数K也会以工频变化,这可能会导致整个系统不稳定,所以我们可以对输出电压采样信号进行滤波处理后(滤除100Hz的波形)再进行误差计算,这里就不展示了。调试电压环时也要注意分辨是震荡还是纹波。

        这样,整个PFC电路就算调好了。

其他说明:

        在第一个工频周期里,输入电流会有一个很大的尖峰,如下:

         这是因为输出滤波电容在充电导致的(零状态响应)。实际上的电路由于电容的寄生电阻以及线路上的电阻,其电流尖峰不会这么大。

        不过为了避免这么大的电流击穿PFC二极管D5,一般会通过下面的电路来给电容预充电

         即在PFC和二极管两端并联一个串有二极管的热敏电阻RT。可自行验证效果。

------------------------------------------------------------------

        注意,如果启动仿真后报错PFC电感开路了。

        可在PFC电感两端并联一个大阻值的电阻,再运行仿真就正常了。

本文主要目的是为了理解PFC电路的工作原理,所以没有对环路进行任何传递函数的分析。在实际电路设计中,还需进行环路参数的理论计算,以确保环路的稳定性。另外主电路的关键器件参数这里也没进行严格的计算,所以以上参数只供学习,不代表实际电路可行,由于上述参数造成的损失,概不负责。


觉得有用,可以点个赞哦~

                

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

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

相关文章

动态pv策略和组件

pv和pvc,存储卷: 存储卷: emptyDir 容器内部,随着pod销毁,emptyDir也会消失 不能做数据持久化 hostPath:持久化存储数据 可以和节点上的目录做挂载。pod被销毁了数据还在 NFS:一台机器&am…

centos7下升级openssh9.4p1及openssl1.1.1v版本

背景:客户服务器扫描出一些漏洞,发现和版本有关,漏洞最高的版本是9.3p2,所以我们安装一个openssh9.4p1版本及openssl1.1.1v版本 虽然我们进行了镜像备份,为了安全先安装telnet以防止升级失败无法通过ssh连接服务器 一…

大模型在广告ctr预估中的应用

背景 预训练大模型在ctr预估方面取得了不错的效果,但是应用大模型方面还主要停留在提取离线预训练,然后使用大模型的打分结果或者中间的embedding向量,这种级联的应用方式相对灵活方便。但是这种使用大模型提取特征的方式存在自身的问题&…

无法解析的外部符号 “public: virtual void * __cdecl MyTcpsocket::qt_metaca

问题:严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2001 无法解析的外部符号 "public: virtual void * __cdecl MyTcpsocket::qt_metacast(char const *)" (?qt_metacastMyTcpsocketUEAAPEAXPEBDZ) SmartTool D:\…

[软件工具]pdf多区域OCR识别导出excel工具使用教程

首先我们打开软件,界面如下: 如上图,使用非常简单,步骤如下: (1)选择工具-取模板选择一个pdf文件划定自己需要识别的区域,如果你选择第2页指定区域则软件统一识别所有pdf第2页指定区…

鸿蒙基础开发实战-(ArkTS)像素转换

像素单位转换API的使用 主要功能包括: 展示了不同像素单位的使用。展示了像素单位转换相关API的使用。 像素单位介绍页面 在像素单位介绍页面,介绍了系统像素单位的概念,并在页面中为Text组件的宽度属性设置不同的像素单位,fp…

AI副业拆解:文字生成图文绘本,赋予你的故事生命,Story Agent智能绘本创作神器震撼登场!

大家好我是在看,记录普通人学习探索AI之路。 对话即创作,颠覆传统!🚀 Story Agent,一款前所未有的开源故事绘本生成智能体,让你与科技的边界交融,以对话的形式轻松唤醒内心深处的故事精灵。&…

Object.keys()

目录 1、Object.keys() 是什么? 2、Object.keys(obj) 用法: 2.1 如果对象是一个对象,会返回对象的属性名组成的数组; 2.2 如果对象是一个数组,则返回索引组成的数组: 2.3 如果是字符串,返回…

【微服务】日志搜集es+kibana+filebeat+redis+logstash(单机)

日志搜集系统搭建 基于7.17.16版本 ps: 项目是toB的,日志量不大 前置准备 软件下载 7.17.16版本。8.x版本需要JDK11 elastic.co/downloads/past-releasesJDK java8 Linux elastic 软件不能以root用户启动,需要创建用户 sudo useradd elastic #给此…

【Redis】Redis持久化方式

Redis 中有两种持久化方式,分别为 RDB 和 AOF。 RDB RDB 全称 Redis Database Backup file,也叫做 Redis 数据快照。简单来说就是把 Redis 中的数据记录到磁盘中。当 Redis 实例故障重启后,从磁盘读取快照文件,恢复数据。 RDB有…

Vue新手村(二)

目录 1、计算属性 2、事件修饰符 2.1、stop事件修饰符 2.2、prevent事件修饰符 2.3、self事件修饰符 2.4、once事件修饰符 3、按键修饰符 3.1、enter回车键 1、计算属性 计算属性: computed:vue官方提供一个计算属性作用:在完成某种业…

文件上传进阶绕过技巧(一)和靶场实战

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 0、环境准备 请移步《文件上传靶场实战:upl…

【C语言刷题每日一题#牛客网HJ73】——计算日期到天数转换(给定日期,计算是该年的第几天)

目录 问题描述 思路分析 数据结构构建部分 计算部分 代码实现 结果测试 此问题解决方法不唯一,这里介绍的是一种使用数组和循环实现的简单办法 问题描述 思路分析 问题的要求是输入一个日期,计算这是当年的第几天——要解决这个问题,逻…

S7-200SMART实例之冒泡法排序子程序

需求分析 编写程序实现冒泡法排序的算法。 冒泡法排序是一种简单的排序算法。因其过程如同水中气泡最终会上浮到水面一样,故被形象地称为“冒泡法排序”。 实现原理 根据以上需求分析可以按以下步骤实现算法: 1.比较相邻的元素。如果第一个比第二个…

Java面试题之JVM

Java面试题之JVM 1. JVM的组成部分及其作用?2. JVM的堆和栈的区别?3. 简述一下垃圾回收机制?(垃圾回收的原理?)4. 垃圾回收器都有什么?该怎么选择?5. 如何判断垃圾可以回收了?6. 垃圾回收算法有…

c++学习笔记-STL案例-机房预约系统1-准备工作

前言 准备工作包括:需求分析、项目创建、主菜单实现、退出功能实现 目录 1 机房预约系统需求 1.1 简单介绍 1.2 身份介绍 1.3 机房介绍 1.4 申请介绍 1.5 系统具体要求 1.6 预约系统-主界面思维导图 2 创建项目 2.1 创建项目 2.2 添加文件 ​编辑 3 创建…

小程序基础学习(事件处理)

概述&#xff1a;点击某一个标题&#xff0c;使标题选中增加不同颜色。 <!--pages/four/four.wxml--> <navigation-bar title"牧原" back"{{false}}" color"black" background"#FFF"></navigation-bar> <view c…

讲讲关于跨域的问题,什么是跨域?怎么办?

文章目录 什么是跨域如果非同源&#xff0c;共有三种行为受到限浏览器客户端和向服务器跨域请求的判定流程 跨域问题演示参考 以下内容为我结合他人知识进行的自我总结, 如有错误欢迎指出~ 什么是跨域 跨域就是不同的域名下的资源访问&#xff0c;会被浏览器的本地安全策略阻…

CISP-DSG证书含金量分析

CISP-DSG证书的含金量主要体现在以下几个方面&#x1f447; 1️⃣专业知识 CISP-DSG认证要求持有者具备深入的数据an全治理知识&#xff0c;包括数据分类、数据隐私、合规性、风险管理等。&#x1f4d2;这些知识对于处理和保护组织的敏感数据至关重要&#xff0c;因此具有高含金…

ubantu中的docker安装

1.Ubuntu Docker 安装 | 菜鸟教程 (runoob.com) 我就是看这个教程进行操作的 2.执行下面两步&#xff0c;就算是安装完成了 3.启动&#xff0c;并检查是否安装成功&#xff1a; 4.安装之后&#xff0c;怎么用&#xff0c;那就是自己随便探索咯&#xff0c;可以看博客&#xf…