1题目:单相AC-DC变换电路(A题)摘要本设计综合考虑题目基本部分和发挥部分的指标要求,系统在AC-DC变换电路中采用基于SG3525的推挽式升压对交流信号经过整流滤波后的直流信号进行升压变换;由AD芯片TLC549和单片机STC89C51组成系统测控与显示单元,采用液晶显示器1602作为系统的状态和运行数据显示屏。该系统由AC-DC变换电路,功率因数提高电路,测量与显示等几个模块构成。通过实际测试,该系统在指定条件下能够使输出直流电压稳定在36V,输出电流额定值为2A;负载调整率,电压调整率,功率因数的测量与误差控制,输出过流保护功能等基本要求均得以实现;功率因数的校正达到了发挥部分的要求。另外,系统还增加了实时输出电压电流数据显示等实用功能。2一方案论证1.DC-DC升压方式的比较与选择在AC-DC变换电路中,先对交流电压进行整流滤波得到直流电压,在对其进行DC-DC升压变换。因此首先选择DC-DC升压方式。方案一:全桥加DC-DC变换方式。脉冲变压器原边是两个对称线圈,两只开关管接成对称关系,轮流通断。推挽式电源电压利用率高、输出功率大、能实现较大的升压比、两管基极均为低电平、输入输出隔离,驱动电路简单。主要缺点:变压器绕组利用率低、对开关管的耐压要求比较高(至少是电源电压的两倍)。方案二:全桥加滤波器变换方式。由四只相同的开关管接成电桥结构驱动脉冲变压器原边。与推挽结构相比,原边绕组减少了一半,开关管耐压降低一半。主要缺点:使用的开关管数量多,且要求参数一致性好,驱动电路较复杂。方案三:全桥和PFC以及DC-DC变换方式。利用控制芯片输出的PWM波形来控制开关管的通断,并设计合理的主电路上的电感电容值来控制开关管的通断时间,从而达到升压的目的。这种电路使用的外部原件最少、调试容易、成本低、效率高。缺点:负载侧电流波动大。综合考虑,我们选择方案一。2.功率因数调整方案的比较与选择方案一:有源功率因数校正电路。其得到的功率因数较高,可接近于1。而且有源功率因数校正电路工作于高频开关状态,体积小,重量轻,效率高。方案二:无源有源功率因数校正电路。其得到的功率因数较低,只可使功率因数提高到0.7-0.8,因此只适用于小功率电源。综合考虑,我们选择方案一。二理论分析与计算在理论分析中,综合考虑题目的基本要求和发挥部分,本设计着重考虑效率的提高,功率因素数的调整以及稳压控制。1.提高效率的方法使用高效率的MOSFET管IRF540代替传统的双极型晶体管,因为它的开关速度高、导通和关断时间短,开关损耗小,并且是电压控制型元件,驱动功率小,可以用专用集成电路直接驱动,不存在二次击穿。使用高速整流双肖特二极管STPS20150,它导通电压小,损耗小。2.功率因数调整的方法提高功率因数有两个途径:使输入电压,电流同相;使输入电流正弦化。本设计利用第二种方法。使用临界模式的功率因数校正芯片ICLL6562,自制耦合变压器,75639开关管,双肖特二极管STPS20150组成一个功率因素校正电路,并供给L6562一个13.5VDC电压。13.5VDC电源单独设计了一个电路。先由24VAC电压经变压器变换,再用四只1N4007组成的整流桥进行整流,然后用LM317对其稳压得到。33.稳压控制方法在输出回路上设计一个电压反馈电路,将反馈电压()送给运放LM358的2管脚,再将LM358的输出端接到SG3525的2端,从而控制开关管IRFP260开关管的通断来保证电压稳定。三电路与程序设计1.主电路与器件选择主电路主要部分为:整流滤波电路,推挽升压电路,滤波电路,其连接方式如图1所示。图1主回路电路图整流桥的选择:隔离变压器输出的交流电压为24V,整流桥的电流最大可达5~6A,为了得到较好的直流量,用全桥整流,整流桥的耐压应为50V以上,正向电流大于等于8A,实际电路中采用35A/1000V整流桥。滤波电容器选择:要求输出的最大电流为2A,最大电压为36V,所以输出最大功率约为72W,按照电路效率为80%计算。可得整个电路输入的功率约为90W。电路自身功率达18W,根据P=U2/R,可求得整流滤波电路的等效负载电阻R≈6欧姆,滤波电路的基波周期10ms,按一般要求,滤波电路的时间常数,所以,滤波电容C选用4700µF/50V和1000µF/50V并联。2.控制回路与控制程序4控制回路包括两部分:反馈电压通过控制SG3525的输出PWM波形的占空比改变开关管的通断时间,进而改变输出电压;反馈电压通过控制ICLI6562的输出PWM波形的占空比改变开关管的通断时间,进而改变功率因数。控制电路如图3,图4所示。图2SG3525控制回路图3ICLI6562控制回路3.保护电路主要由INA201构成的输出过流保护电路,并带有报警作用。当输出电流过大时,INA201的6端输出高电平,从而使SG3525端为高电平,芯片停止工作。同时,三极管s8050导通,led灯亮,蜂鸣器报警。电路图如图4所示。5图4INA201保护电路取样电阻为0.024Ω,过流时。INA201的2端的输出电压,因此电位器的阻值调到.四测试方案与测试结果1.测试仪器调压器,控制变压器,8793F数字参数测量仪,万用表,DS1062E-EDU数字示波器。2.测试方法AC-DC电路效率的测试方法:在隔离变压器输出为24V,直流输出电压为36V、输出电流为2A的条件下,测得隔离变压器输出电流,AC-DC电路效率.电压调整率的测试方法:在输出电流为2A的条件下,调整变压器使隔离变压器的输出在20V到30V之间取几个值然后测量相应的直流输出电压值,根据公式可求得电压调整率。定义电压调整率,为时的直流输出电压,为时的直流输出电压。负载调整率的测试方法:在隔离变压器输出为24V、输出直流电压36V,分别测量负载电流为0.2A和2A所对应的输出电压值。负载调整率就是输出电压的相对变化量与标准电压的比值,定义负载调整率,其为时的直流输出电压,为时的直流输出电压。3.测试结果(1)AC-DC电路效率的测量(Us=24V、Io=2A、Uo=36V)测量得到:Is=4.4AAC-DC变换器效率。6(2)负载调整率的测试(Us=24V、Uo=36V)负载电流(A)0.22输出电压(V)36.036.0负载调整率。(3)电压调整率的测试(IO=2A)变压器输出电压(V)2030直流稳压电路输出电压(V)36.036.1电压调整率。7附件程序:#includereg52.h#includeintrins.h#includemath.h#defineuintunsignedint#defineucharunsignedcharfloatt;//countfloatnum[4];ucharjishu=0;floatto=0;floatPF=0;//countsbitrs=P3^5;sbitrw=P3^6;sbiten=P3^7;sbitclk=P1^0;sbitdout=P1^1;sbitcs=P1^2;uchari;ucharj;ucharline[4];ucharb[4];voiddelay(ucharms){while(ms--){{uchara,b;for(b=199;b0;b--)for(a=1;a0;a--);}}}voidwcmd(ucharcmd){rs=0;rw=0;en=0;P2=cmd;en=1;delay(5);en=0;}voidposition(ucharpos){8wcmd(pos|0x80);}voidwdata(uchardat){rs=1;rw=0;en=0;P2=dat;en=1;delay(5);en=0;}voidinit(){wcmd(0x38);wcmd(0x08);wcmd(0x01);wcmd(0x06);wcmd(0x0c);}voidconvert(){longnum=0;longresult;cs=1;clk=0;cs=0;for(j=0;j20;j++)_nop_();for(i=0;i8;i++){if(dout)num|=0x01;clk=1;clk=0;num=1;}cs=1;result=num*5000/510;line[0]=result/1000;line[1]=result%1000/100;line[2]=result%100/10;line[3]=result%10;}voiddisplay()9{uintmed;PF=cos(3.1415926*to/10000)*1000.0;PF=abs(PF);med=(int)PF;b[0]=med/1000%10;b[1]=med/100%10;b[2]=med/10%10;b[3]=med%10;position(0x05);wdata(0xe4);wdata(0x3d);for(i=0;i4;i++){if(i==1)wdata(0x2e);wdata(0x30|b[i]);}}voidmain(){init();EX0=1;//外部中断0开IT0=1;//边沿触发EX1=1;//外部中断1开IT1=1;//边沿触发TR0=0;TMOD|=0x01;TH0=0x00;TL0=0x00;EA=1;while(1){convert();position(0x44);wdata('U');wdata('L');wdata(0x3d);for(i=0;i4;i++){if(i==1)wdata(0x2e);wdata(0x30|line[i]);}wdata('V');display();}}10voidISR_EX0(void)interrupt0{TH0=0;//重新初始化定时器TL0=0;TR0=1;//打开定时器0}voidISR_EX1(void)interrupt2{TR0=0;//关闭定时器0t=TH0*256+TL0;//计算时间差num[jishu]=t;jishu++;if(jishu==4){to=(num[0]+num[1]+num[2]+num[3])/4;jishu=0;}}