




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
G题:高功率因数电源报告摘要:本系统以TI公司的PFC芯片UCC28019为核心,控制BOOST拓步结构实现DC-DC转换。其Vins脚和Isense脚实时监测输入电压、电流相位,实现功率因数矫正。并采用TI公司MSP430单片机控制N5110实现电压电流的显示功能。另外选用TLV5616高精度DA转化器实现步进可调输出。该系统还具有完善的保护措施和负载识别等功能。关键词:PFC BOOST DC-DC MSP430 N5110 TLV5616 负载识别一、方案论证与比较 方案一:采用专业PFC功率因数矫正芯片UCC28019,可简化电路的制作难度。官方电路图如下。该芯片通过检测电压和电流的相位以及反馈电压,并通过内部的误差放大器实时调节,输出近似正弦规律变化的PWM波形,实现功率因数矫正的目的。方案二:数字PFC矫正 采用数字芯片DSP、FPGA或者MCU等,检测整流后的电压和电感中的电流相位差,程序根据相位差的变化实时调节PWM波形,来调节电感中的电流相位,实现矫正的目的。方案比较:方案二虽然硬件简单,但编程难度太大,并且稳定性也难于驾驭。方案一相对来说制作简单,稳定性高,采用方案一。论证:一般的DC-DC变换器,交流电压经整流桥之后,大电容滤波,其直接结果是输入端电压信号畸变,不再是标准的正弦波,污染电网。UCC28019控制器,检测整流桥之后的电压,无大电容滤波,仅从这一点来看,至少输入端电压不会畸变,从而功率因数将得以提升。 2、 理论分析与计算1) UCC28019最大开启电压11V,使用7812稳定输出12V供电,可以满足要求。2)整流桥桥输入峰值电流=7.4A, =4.7448A PF=0.99 整流桥最大功耗:9.5W需要加散热片才能正常工作。3) 输入滤波电容计算: f=65khZ,Cin=2.2uF。耐压值大于50V.4) 电感值的计算: 电感值:116uH,实际取值为200uH.采用PQ磁芯绕制,0.38铜线8股并绕。5) 开关MOS管的选取: 加上开机冲刷效应,选取耐压值大于100V,15A的MOS管IRF540N。6)电流检测电阻: 实际选取R050贴片封装采样电阻。7)输入电压采样电阻: 实际去R1=750K、R2=130K8) 输出滤波电容: C=2200uF,实际取值6900uF,多个电容并联减小波纹电压。 三、系统整体框图 1)主电路原理图2) 辅助电源原理图3) 反馈网络电路图说明:UCC28019内部参考电压5.0V,,输出分压比为1:5,输出电压计算公式:题目中要求每次步进1V,则DA每次步进166.66mV即可满足要求。选用TI公司的TLV5616高精度DA实现mV级的步进。4)单片机电压电流采样电路详见系统主电路。4) 相位测量电路此处略去。 整体思路:电压信号电流信号为50Hz的正弦波,经LM393双比较器整形后给CD4070异或门运算,将相位差转换为占空比给单片机测量,或者说将PFC转换为占空比之后由单片机测量。4、 程序文件:详见本论文结尾。5、 测试方法与测试仪器输出不变给变输入电压在15V-19V之间波动,测试输出电压的变化。输入电压不变改变输出电压30V-36V之间步进,测试电源性能。输入电压18V时,改变负载电阻,测试电压电流相位,确定功率因数。同时测试电压值的设定功能,每次步进1V,并读取5110显示屏的数据。测试仪器:Tektronix示波器,UNI-T UT58E型万用表。6、 测试数据及结果分析设定值30.0V31.0V32.0V33.0V34.0V35.0V36.0V输出值30.1931.031.932.933.735.936.0显示值29.7630.5031.5032.533.435.736.1输入电压18V输出电流0A0.5A0.75A1.0A1.25A1.5A1.75A2.0A输出电压33.7633.7033.6033.4933.3833.2733.1533.05数据分析:1)测试电压数据,在电流0-2A波动时,有33.76V,下降到33.05V压降为720mV,题目中要求压降小于5%,及33.76*5%=1.68V,可知该系统可以满足要求。另外随负载的变化,电压会偏离设定值,是因为电感储和电容储能能的下降,理论上增加输出滤波电容可以缓解这种问题。 2)5110显示的电流值,750mA一下可以测得准,之后的测不准,误差较大。原因分析:输出端噪声电压波动Vpp=2V,经过采用电阻之后转换成电流文波,仪放之后输出的电压波动会更大,所以导致测试不准确。程序文件: /*/*2013微芯杯*/*/#include msp430xG46x.h#include nokia_5110.h#include math.h/#define uchar unsigned char#define uint unsigned int#define DIN_1 P7OUT|= BIT0#define DIN_0 P7OUT&=BIT0#define SCLK_1 P7OUT|= BIT1#define SCLK_0 P7OUT&=BIT1#define CS_1 P7OUT|= BIT2#define CS_0 P7OUT&=BIT2#define FS_1 P7OUT|= BIT3#define FS_0 P7OUT&=BIT3#define delay() _NOP();_NOP()/uint i=0,count=0;uint count_v,count_i;uint lvbo,lvbo_count;uchar adc_flag;uint ADCTEMP_V,ADCTEMP_I;long ADC_V,ADC_I;long ADC_I_MIN; /电流最小值long ADC_I_MAX;double V_OUT,I_OUT; /电压、电流平均值long vol,cur; /电压、电流转换unsigned int v7,c7; /电压、电流显示数据double ave_i;uint ave_count;int value=0;uint xianshi; /功率因数显示计数/-/unsigned long int width33;/测脉宽数据unsigned int w=0;unsigned long int AverageTB0;unsigned int f3;uint power;/-函数声明-/void init_clk(void);void DA_TLV5616(uint datanum);void init_adc(void);void init_display(void);void display_v(double volt);void display_i(double curr);uint key(void);void init_timer_b(void);/定时器B捕获脉宽void process(void);/-/void main(void) WDTCTL = WDTPW + WDTHOLD; init_clk(); init_adc(); P7DIR|= 0x1f;/P7.4作为负载识别 P8DIR&=0x03;/0,1键盘输入 LCD_Init(); init_display(); init_timer_b(); _EINT(); while(1) DA_TLV5616(1706); /process(); ADC12CTL0 |= ADC12SC; / Start conversion delay(); if(adc_flag=1) adc_flag=0; ADC12CTL0 &= ADC12SC; / Close conversion ADC_V += ADCTEMP_V; count+; if(count=27) count=0; V_OUT = (double)(ADC_V / 28); /取平均值 ADC_V=0; V_OUT = V_OUT /4096; /ADC_V=ADC_V/4096 /V_OUT = V_OUT+0.02; /校正20mV V_OUT = V_OUT*37.5; /2.5基准,15倍 display_v(V_OUT); if(lvbo=0)/滤波存取最大、最小值 ADC_I_MIN = ADCTEMP_I; ADC_I_MAX = ADCTEMP_I; lvbo+; if(ADCTEMP_IADC_I_MAX) ADC_I_MAX = ADCTEMP_I; ADC_I += ADCTEMP_I; if(lvbo=27) lvbo=0; ADC_I = ADC_I - ADC_I_MAX; /去掉最大值 ADC_I = ADC_I - ADC_I_MIN; /去掉最小值 I_OUT = (double)(ADC_I / 26); /取平均值 ADC_I=0; I_OUT = I_OUT /4096; /ADC_I=ADC_I/4096 I_OUT = I_OUT*2.5; if(I_OUT=0.2) P7OUT|= BIT4;/负载识别,点亮LED else P7OUT&=BIT4; display_i(I_OUT); I_OUT=0; /LCD显示初始化/void init_display(void) display_string(0,0,Vol:); display_string(12,0, V); display_string(0,2,Cur:); display_string(12,2,mA); display_string(0,4,PFC:); display_string(10,4, %);/void init_clk(void) uchar i; FLL_CTL1&=XT2OFF; /turn on XT2 do IFG1 &= OFIFG; /Clear sign oscillation for(i=0;i100;i+) _NOP(); /wait while(IFG1 & OFIFG) !=0); FLL_CTL1|=SELM1+SELS; /MCLK=SMCLK=8MHz,SELM1=0X10 /*ACLK TEST*/ /P1SEL|= BIT5; /P1DIR|= BIT5;/DA转换函数/void DA_TLV5616(uint datanum) uint data=0; uchar i=0; SCLK_1; CS_0; FS_0 ; /片选有效 for(i=0;i16;i+) /写入16为Bit的控制位和数据 data=datanum& 0x8000; if(data) DIN_1; else DIN_0; SCLK_0; delay(); datanum=1; SCLK_1; delay(); SCLK_1; CS_1; FS_1; /片选无效 /AD转换函数/void init_adc(void) uint i; P6SEL |= 0x03; P6DIR &= 0X03; / Enable A/D channel inputs(1,2,) ADC12CTL0=ADC12ON+MSC+SHT0_8+REFON+REF2_5V;/ Turn on ADC12, set sampling time / Vr+=VREF+ / Turn on ref ref=2.5v delay(); ADC12CTL1 = SHP + CONSEQ_1; / Use sampling timer, single sequ ADC12MCTL0 |= INCH_0 +SREF_1; / ref+=AVcc, channel = A0 ADC12MCTL1 = INCH_1 +SREF_1+ EOS; / ref+=AVcc, channel = A1 end seq for ( i=0; i0x300; i+); / Delay for reference start-up ADC12IE = 0x03; / Enable ADC12IFG.0,1,2 delay(); ADC12CTL0 |= ENC; / Enable conversions#pragma vector=ADC12_VECTOR_interrupt void ADC12ISR(void) adc_flag = 1; ADCTEMP_V = ADC12MEM0; ADCTEMP_I = ADC12MEM1; _NOP();/显示函数/void display_v(double volt) count_v+; if(count_v=256) count_v=0; vol=(long int)(volt*100000); v6=(unsigned int)(vol/1000000); v5=(unsigned int)(vol%1000000/100000); v4=(unsigned int)(vol%100000/10000); v3=(unsigned int)(vol%10000/1000); v2=(unsigned int)(vol%1000/100); v1=(unsigned int)(vol%100/10); v0=(unsigned int)(vol%10); display_char(11,0,v0+0x30); display_char(10,0,v1+0x30); display_char( 9,0,v2+0x30); display_char( 8,0,v3+0x30); display_char( 7,0,v4+0x30); display_char( 6,0, 0-2+0x30);/小数点 display_char( 5,0,v5+0x30); display_char( 4,0,v6+0x30); volt=0;void display_i(double curr) count_i+; if(count_i=128) count_i=0; ave_count+; ave_i += curr; if(ave_count=5) ave_count=0; cur=(long int)(ave_i*200000); c6=(unsigned int)(cur/1000000); c5=(unsigned int)(cur%1000000/100000); c4=(unsigned int)(cur%100000/10000); c3=(unsigned int)(cur%10000/1000); c2=(unsigned int)(cur%1000/100); c1=(unsigned int)(cur%100/10); c0=(unsigned int)(cur%10); display_char(11,2,c0+0x30); display_char(10,2,c1+0x30); display_char( 9,2,c2+0x30); display_char( 8,2, 0-2+0x30);/小数点 display_char( 7,2,c3+0x30); display_char( 6,2,c4+0x30); display_char( 5,2,c5+0x30); display_char( 4,2,c6+0x30); ave_i=0; /uint key(void) uint key; if(P8IN&0X03) delay(); delay(); if(P8IN&0X03) if(P8IN&BIT0) while(P8IN&BIT0)!=0); /wait for key up key=1; else if(P8IN&BIT1) while(P8IN&BIT1)!=0); /wait for key up key=2; return key;void bujin(void) uint keyvalue; /int value; keyvalue=key(); switch(keyvalue) case 1:value -= 283;break; case 2:value += 283;break; default :break; if(value1706) value=1706; /*校正*/ if(value275|value555|value840|value1125|value1410|value1690|value1710) value=1698; /*/ DA_TLV5616(value);void init_timer_b(void) P2SEL|= BIT1; P2DIR&=BIT1; TBCCTL0&=(CCIS1+CCIS0); / 捕获源为P2.1,即CCI0A(也是CCI0B) TBCCTL0|=CM_2+SCS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 时间时刻课件
- 农业资源开发使用权出让合同
- 农业经济管理责任与目标达成合同书
- 早期康复体位摆放课件
- 农村家禽养殖责任与技术协议签订
- 2025年美术教师招聘考试专业知识试卷(美术教育评价评价评价论文写作)
- 2025年事业单位招聘考试综合类专业知识试题解析技巧集
- 七下新领程数学试卷
- 2024年甘肃新高原农牧发展有限公司招聘笔试真题
- 年度小升初数学试卷
- 助产专业介绍
- 2025年国企运维岗笔试题目及答案
- 2025年职业卫生培训试题及答案
- 新学期教学工作会议上校长讲话:把功夫下在课堂里把心思放在学生上把质量落到细节中
- DB42T 1655-2021 湖北省建设项目文物影响评估报告编制规范
- 愚公移山英文 -中国故事英文版课件
- NBT-4701焊接工艺评定中英文格式-填写范本-20
- 人教版高中化学教材必修1解读
- 远洋航线设计、航法及气象导航
- 内部审计常用表格文书
- 项目二 FANUC 0i 数控系统的连接及调试
评论
0/150
提交评论