前言
大家好,我是大昌,今天给大家分析PFC的工作原理,妥妥的干货,马上开始。
传统应用中输入侧交流电源经全波整流后,一般接一个大电容器,以得到波形较为平直的直流电压。整流器-滤波电路是一种非线性元件和储能元件的组合,因此,虽然输入交流电压是正弦的,但输入交流电流却严重畸变,呈现脉冲状。如下图:

由此可见,大量应用整流电路,会在电网端引畸变的非正弦电流,造成严重的后果就是,谐波电流对电网有很高危害作用,同时,设备的输入端功率因数会大大下降。同时对于AC-DC场合,DC输出端通常要求具备稳定的直流母线电压,甚至要求可调节。
因此应用PFC具备三大作用:
A)改善输入电流谐波
B)改善输入PF值
C)稳定输出电压
本节以应用范围较宽的CCM Boost PFC为例,说明功率因数校正电路(PFC)的基本工作原理。下图1所示为一个Boost有源功率因数校正器的主功率电路图,主电路由单相桥式整流器和Boost变换器(由电感LPFC,开关管Qp,二极管D,母线电容Cbus)组成,单相交替整流器(整流桥)将输入正负交替的交流电转换成馒头波形直流电(无负值),后级BOOST电路在特定占空比的控制作用下,将馒头波型直流电压变换成脉动量较小稳定的母线直流电压,同时保证输入侧电感电流呈现与输入电压波形包络线一致的正弦电流。
图1:

由上述图1可知PFC的电路核心组成为BOOST电路,在需要解析PFC拓扑和控制前有必要先分析BOOST电路工作原理与控制逻辑。
直流变换器电路工作在BOOST模式下时,输出电压V大于输入电压Vg,其主电路结构如下图2所示。Vg为输入直流电源电压,L为Boost电感,Q为BOOST开关管,以特定占空比d导通,D为续流二极管,C为输出滤波电容,R为负载电阻,V为输出电压。
图2:

BOOST电路在开关管开通区间与关断区间时工作模式不同,其电路各个关键节点的电流与电压波形因工作状态不同而呈现不同。因此可根据BOOST电路中MOS的工作状态,将Boost电路的工作状态过程分为两种。
1)工作状态1
当MOS管Q开通时,其等效电路如下图3所示。输入直流电压Vg通过Q直接加载于电感L两端,电感两端的电压等于输入电压Vg,电感电流呈线性增加趋势,电流方向如图中所示,驱动波形和电感电流波形如图2.6中的阶段所示。由于Q导通,二极管D的正极被MOS管钳住电位为地,二极管D反向截止,输出负载R继续由电容C供电。
图3:

工作状态1过程中为输入电源为电感储能,此时,输入电压Vg与电感电流满足:

2)工作状态2
当MOS管Q关断时,由于上一阶段电感电流不能强制换向,续流二极管D正式导通。若忽略续流二极管D的导通管压降,则电感L两端得电压为,其中电压大于,电感电流呈线性减小趋势。电流方向如下图2.5中所示,驱动波形和电感电流不波形如图4所示:

工作状态2过程中为电感放能,同时在该阶段输入电源Vg补偿输出电容在上一阶段损失的能量,此时,输入电压,输出电压与电感电流满足:

BOOST电路开关管驱动与电感电流如图5所示:

在一个开关周期内,Q导通的时间为ton,关断的时间为toff,PWM的开关周期时间为TPWM,定义占空比为D,则:

根据电感能量在一个开关周期内平衡定理:

则可计算工作于BOOST模式下输入电压输出电压和占空比得关系:

通常BOOST的输出恒压闭环控制采用电压外环电流内环的控制架构,如图6所示。其中电压外环为慢速环,电流内环为快速环,两则在控制带宽上成数量级的倍数差别。
将输出电压V转换后,与参考电压(目标电压)Vref共同送入电压环路计算,电压环的控制逻辑为:当检测到输出电压小于Vref时,经过电压外环计算后电压环输出量增加;反之,当当检测到输出电压大于Vref时,经过电压外环计算后电压环输出量减小。
电压外环的输出与电感电流转换共同送入电流内环,其整体控制逻辑如下,当检测到输出电压小于Vref时,经过电压外环计算后电压环输出量增加,即参考电流Iref增加,经过电流内环的计算,电流环输出控制量增加,占空比增加,使得电感电流增加,输出电压增加;反之,当检测到输出电压大于Vref时,经过电压外环计算后电压环输出量降低,即参考电流Iref降低,经过电流内环的计算,电流环输出控制量降低,占空比减小,使得电感电流降低,输出电压降低。

常规的PFC控制均含为双闭环控制方式,分别为输出电压环和电流环,其中,电压环的作用用以保证输出侧直流母线电压的稳定,电流环的作用保证输入电感电流呈现正弦包络线,如下图8所示为简化后的PFC工作原理。

PFC的工作原理如下:输出电压Vbus和参考电压Vref相比较后经电压环计算后得到电压环的输出量Vr,送入乘法器中与Boost输入电压Vdc相乘得到馒头波形状的电流参考值iref。参考电流iref与开关电流is检测比较后经过电流环后得到开关管的占空比信号d,经驱动电路后控制开关管的通断,从而使得输入电流(即电感电流iL)的波形与整流后的电压波形Vdc的波形基本一致。
由上述控制策略可知,当输出电压小于参考电压Vref时,电压环输出Vr增加,即经过乘法器后参考电流值iref增加,在电流环的作用下增加开关管占空比,使得输出电压往上调节。
下图给出输人电压波形Vdc、和Vi经过校正的电感电流iL,输人电流ii波形。由图可见,输人电流被PWM频率调制,使原来呈脉冲状的波形,调制成接近正弦(含有高频纹波)的波形。图中所示电路中在一个开关周期内,当开关管导通时,io=0,iL=is;当开关管关断时,is=0,iL = io,is为流经过开关管的电流波形,具有高频纹波的输入电流,取每个开关周期的平均值,则可得到光滑的近似正弦波。

我有一个字符串input="maybe(thisis|thatwas)some((nice|ugly)(day|night)|(strange(weather|time)))"Ruby中解析该字符串的最佳方法是什么?我的意思是脚本应该能够像这样构建句子:maybethisissomeuglynightmaybethatwassomenicenightmaybethiswassomestrangetime等等,你明白了......我应该一个字符一个字符地读取字符串并构建一个带有堆栈的状态机来存储括号值以供以后计算,还是有更好的方法?也许为此目的准备了一个开箱即用的库?
我在从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""-
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我正在使用ruby1.9解析以下带有MacRoman字符的csv文件#encoding:ISO-8859-1#csv_parse.csvName,main-dialogue"Marceu","Giveittohimóhe,hiswife."我做了以下解析。require'csv'input_string=File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")#=>"Name,main-dialogue\r\n\"Marceu\",\"Giveittohim\x97he,hiswife.\"\
我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request
在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
简而言之错误:NOTE:Gem::SourceIndex#add_specisdeprecated,useSpecification.add_spec.Itwillberemovedonorafter2011-11-01.Gem::SourceIndex#add_speccalledfrom/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:91./opt/local/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/rails/gem_dependency.rb:275:in`==':und
使用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