《双向DC-DC变换器(全国大学生电子设计竞赛全国二等奖作品)剖析(共14页).doc》由会员分享,可在线阅读,更多相关《双向DC-DC变换器(全国大学生电子设计竞赛全国二等奖作品)剖析(共14页).doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上2015年全国大学生电子设计竞赛双向DC-DC变换器(A题)2015年8月15日专心-专注-专业摘 要 本设计主要由双向DC-DC变换电路、测控显示电路、辅助电源三部分构成,其中双向DC-DC变换电路降压部分采用XL4016开关降压型DC-DC转换芯片,最高转换效率可达93%,升压部分采用XL6019开关型升压/降压芯片,具有低纹波,输入范围广,转换效率高的特点。恒流部分采用PWM控制原理,形成一个闭环回路,控制电流恒定,恒压部分完全由硬件控制,单片机辅助控制的方式。以上部分确保系统满足题目要求,实现恒流充电,恒压放电,过压保护功能,并且有着较高的转换效率。在本次设计
2、中恒压部分完全有硬件控制,硬件自身形成一个闭环控制回路,对电压进行调节使其恒定题目要求的精度范围。单片机通过光耦电路的工作与停止,恒流部分由PWM调节占空比,使其恒流。关键字 电池充放电 升压降压 XL4016 XL6019 STM32目 录 双向DC-DC变换器(A题)【本科组】一、系统方案本设计主要由双向DC-DC变换电路、测控显示电路、辅助电源三部分构成,其中双向DC-DC变换电路降压部分采用XL4016开关降压型DC-DC转换芯片,最高转换效率可达93%,升压部分采用XL6019开关型升压/降压芯片,具有低纹波,输入范围广,转换效率高的特点。恒流部分采用PWM控制原理,形成一个闭环回路
3、,控制电流恒定,恒压部分完全由硬件控制,单片机辅助控制的方式。以上部分确保系统满足题目要求,实现恒流充电,恒压放电,过压保护功能,并且有着较高的转换效率。 1、双向DC-DC变换电路的论证与选择 方案1:由降压斩波变换电路(即Buck变换电路)和升压斩波变换电路(即Boost电路)组成双向DC-DC变换电路,分别各使用一个全控型器件VT(IGBT或MOSFET),对输入直流电源进行斩波控制通过调整全控型器件VT的控制信号占空比来调整输出电压。 方案2:采用XL4016开关型降压芯片和XL6019开关型升压/降压芯片构成升压、降压电路具有低纹波,内助功率MOS,具有较高的输入电压范围,内置过电流
4、保护功能与EN引脚逻辑电平关断功能。 综合以上两种方案,考虑到时间的限制,选择了比较容易实现的方案2。2、测量控制方案和辅助电源的论证与选择由于瑞萨单片机开发套件数量有限,所以我们选择了一款相对便宜,速度快,性价比较高的STM32103V8T6作为控制器,显示部分由于收到题目对作品重量的要求,选择了质量轻,分辨率较高的0.96寸OLED屏幕显示。由于市场上所售开关电源模块的,纹波大的因素,所以辅助电源选择了一个较小的9V变压器,进行,整流滤波作为辅助电源。3、 控制方法的论证与选择 方案1:采用PWM调节占空比的方法控制降压芯片的控制端,达到控制恒流和控制恒压的目的,采用PWM调节软件较为复杂
5、,而且PWM调节较为缓慢,软件控制难度大。 方案2:恒压部分完全有硬件控制,硬件自身形成一个闭环控制回路,对电压进行调节使其恒定题目要求的精度范围。单片机通过光耦电路的工作与停止,恒流部分由PWM调节占空比,使其恒流。 综合以上两种方案,选择软件较为简单,硬件较为复杂的方案2。二、系统理论分析与计算1、充电电路设计分析 充电电路也就是一个降压电路,并且要求是一个恒流源,本次竞赛选取XL4016为核心降压芯片,其结构如图所示。管脚定义如下典型应用电路如下2.2 放电电路设计分析XL6019是一款专为升压、升降压设计的单片集成电路,可工作在DC5V到40V输入电压范围,低纹波,内置功率MOS。XL
6、6019内置固定频率振荡器与频率补偿电路,简化了电路设计。PWM控制环路可以调节占空比从090%之间线性变化。内置过电流保护功能与EN脚逻辑电平关断功能。典型应用电路如下2.1 充电电路设计分析 充电电路也就是一个降压电路,并且要求是一个恒流源,本次竞赛选取XL4016为核心降压芯片,其结构如图所示。XL4016降压模块电路图如下所示2.2 放电电路设计分析XL6019是一款专为升压、升降压设计的单片集成电路,可工作在DC5V到40V输入电压范围,低纹波,内置功率MOS。XL6019内置固定频率振荡器与频率补偿电路,简化了电路设计。PWM控制环路可以调节占空比从090%之间线性变化。内置过电流
7、保护功能与EN脚逻辑电平关断功能。典型应用电路如下三、电路与程序设计1、电路的设计(1)系统总体框图辅助电源 测控电路直流稳压电源 双向DC-DC变换电路电池组(图3-1)系统总体框图如图3-1所示,主要由辅助电源、测控电路、双向DC-DC变换电路等组成,辅助电源为测控电路供电,测控电路用于检测和控制双向DC-DC电路,以及电压电流的采集与控制。(2) 降压电路原理 降压电路采用XL4016型8A,180KHz,40V,PWM降压型直流对直流转换器,最大效率可达96%。输出1.25V到36V可调,8A恒定输出电流能力。 如下图3-2所示为XL4016降压部分电路图,通过对FB引脚的控制,可有效
8、的实现电流及电压的控制。该转换器外围器件少,低纹波,调节简单,内置短路保护功能。PWM占空比0%到100%连续可调。(图3-2)(3)升压电路原理图 升压电路使用XL6019型220KHz、60V、5A开关电流升压/降压型DC-DC转换器。可工作在DC5V到40V输入电压范围,低纹波,内置功率MOS、XL6019内置固定频率振荡器与频率补偿电路,简化了电路设计。PWM控制环路可以调节占空比从090%之间线性变化。内置过流保护功能与EN脚逻辑电平关断功能。使用单片机控制EN引脚实现对升压模块开启与关断。(图3-3)(4) 测控电路电路原理图 测控电路如图3-4所示,通过电阻分压滤波后,使用单片机
9、ADC采样,得到输入、输出电压,以及电流和2.5V基准电压,使用TL431产生2.5V基准电压用于矫正。恒压恒流控制使用单片机输出PWM,经滤波后使用LM358跟随,增强驱动能力,同时可减小输入控制端的能量消耗。使用比较器比较设定值与输出值,再控制芯片的工作状态。(图3-4)电源 为减小高频干扰,辅助电源使用220V到9V普通变压器,经整流滤波后使用7812和HT7333分别输出12V和3.3V电压为LM358和单片机小系统板供电。2、程序的设计(1)程序功能描述与设计思路 1、程序功能描述根据题目要求,软件部分实现测量显示,切换模式,充电过压保护,控制调节系统。2、 程序设计思路 (1)、首
10、先进行,按键,OLED各个内设初始化; (2)、进行按键扫描; (3)、判断模式; (4)、进行PWM控制电流,让输出为横流模式; (5)、扫描按键; (6)进行打开光耦,让升压模块工作;3程序流程图电池降压升压 1、系统总框图 Vin/Vout2、程序流程图四、测试仪器与数据分析4.1 测试仪器5位半数字万用表,4位半万用表42测试数据与分析(1)U2=30V条件下对电池恒流充电,电流I1在1-2A变化过程中测量值如下表:按按键次数12345678910I1测量值(A)10.991.011.061.071.101.121.141.161.17, (2)设定I1=2A,使U2在24-36V范围
11、内变化时,测量记录I1的值。数据如下:U2(V)24252627282930313236I1(A)1.991.981.981.991.971.981.991.962.011.99(3)设定I1=2A,在U2=30V,测量U1,I2,计算效率。数据如下:当I1=2A,U2=30V时,测得I2=1.47A,U1=20V,由此计算效率为97%。(4)放电模式下,保持U2=30V,计算效率,数据如下:当U2=30V时,I2=1.02A,U1=18.9V,I1=0.63A,由此计算效率为98%。(5)使US在32-38V范围内变化时U2记录如下:Us/V32333334353637U2/V29.729.
12、829.829.929.830.330.4以上数据可以说明,本次设计的双向DCDC变换器,各项指标均在题设范围内,是符合要求的。附录1:电路原理图附录2:源程序#include adc.h#include delay.h #include sys.h#include usart.h#include delay.h#include led.h #include beep.h #include key.h #include exti.h #include wdg.h #include myiic.h#include timer.h Int main() void Adc_Init(void) RC
13、C-APB2ENR|=1CRL&=0XFFFF0000;/10/11 RCC-APB2ENR|=1APB2RSTR|=1APB2RSTR&=(1CFGR&=(3CFGR|=2CR1&=0XF0FFFF; ADC1-CR1|=0CR1&=(1CR2&=(1CR2&=(7CR2|=7CR2|=1SQR1|=0SMPR2&=(7SMPR2|=7CR2|=1CR2|=1CR2&1CR2|=1CR2&1SQR3&=0XFFFFFFE0;ADC1-SQR3|=ch; ADC1-CR2|=1SR&1DR;u16 Get_Adc_Average(u8 ch,u8 times)u32 temp_val=0;u8 t;for(t=0;ttimes;t+)temp_val+=Get_Adc(ch);delay_ms(5);return temp_val/times;