ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:219.68KB ,
资源ID:26001840      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26001840.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(双向DCDC变换器.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

双向DCDC变换器.docx

1、双向DCDC变换器2015年全国大学生电子设计竞赛双向DC-DC变换器(A题)学号:吕刚2015年12月30日摘要本设计主要由双向DC-DC变换电路、测控显示电路、辅助电源三部分构成,其中双向DC-DC变换电路降压部分采用XL4016开关降压型DC-DC转换芯片,最高转换效率可达93%,升压部分采用XL6019开关型升压/降压芯片,具有低纹波,输入范围广,转换效率高的特点。恒流部分采用PWM控制原理,形成一个闭环回路,控制电流恒定,恒压部分完全由硬件控制,单片机辅助控制的方式。以上部分确保系统满足题目要求,实现恒流充电,恒压放电,过压保护功能,并且有着较高的转换效率。在本次设计中恒压部分完全有

2、硬件控制,硬件自身形成一个闭环控制回路,对电压进行调节使其恒定题目要求的精度范围。单片机通过光耦电路的工作与停止,恒流部分由PWM调节占空比,使其恒流。关键字电池充放电升压降压XL4016XL6019STM32双向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,具有较高的输入电压范围,内置过电流保护功能与EN引脚逻辑电平关断功能。综合

4、以上两种方案,考虑到时间的限制,选择了比较容易实现的方案2。2、测量控制方案和辅助电源的论证与选择由于瑞萨单片机开发套件数量有限,所以我们选择了一款相对便宜,速度快,性价比较高的STM32103V8T6作为控制器,显示部分由于收到题目对作品重量的要求,选择了质量轻,分辨率较高的寸OLED屏幕显示。由于市场上所售开关电源模块的,纹波大的因素,所以辅助电源选择了一个较小的9V变压器,进行,整流滤波作为辅助电源。3、控制方法的论证与选择方案1:采用PWM调节占空比的方法控制降压芯片的控制端,达到控制恒流和控制恒压的目的,采用PWM调节软件较为复杂,而且PWM调节较为缓慢,软件控制难度大。方案2:恒压

5、部分完全有硬件控制,硬件自身形成一个闭环控制回路,对电压进行调节使其恒定题目要求的精度范围。单片机通过光耦电路的工作与停止,恒流部分由PWM调节占空比,使其恒流。综合以上两种方案,选择软件较为简单,硬件较为复杂的方案2。二、系统理论分析与计算1、充电电路设计分析充电电路也就是一个降压电路,并且要求是一个恒流源,本次竞赛选取XL4016为核心降压芯片,其结构如图所示。管脚定义如下典型应用电路如下放电电路设计分析XL6019是一款专为升压、升降压设计的单片集成电路,可工作在DC5V到40V输入电压范围,低纹波,内置功率MOS。XL6019内置固定频率振荡器与频率补偿电路,简化了电路设计。PWM控制

6、环路可以调节占空比从090%之间线性变化。内置过电流保护功能与EN脚逻辑电平关断功能。典型应用电路如下充电电路设计分析充电电路也就是一个降压电路,并且要求是一个恒流源,本次竞赛选取XL4016为核心降压芯片,其结构如图所示。XL4016降压模块电路图如下所示放电电路设计分析XL6019是一款专为升压、升降压设计的单片集成电路,可工作在DC5V到40V输入电压范围,低纹波,内置功率MOS。XL6019内置固定频率振荡器与频率补偿电路,简化了电路设计。PWM控制环路可以调节占空比从090%之间线性变化。内置过电流保护功能与EN脚逻辑电平关断功能。典型应用电路如下三、电路与程序设计1、电路的设计(1

7、)系统总体框图(图3-1)系统总体框图如图3-1所示,主要由辅助电源、测控电路、双向DC-DC变换电路等组成,辅助电源为测控电路供电,测控电路用于检测和控制双向DC-DC电路,以及电压电流的采集与控制。(2)降压电路原理降压电路采用XL4016型8A,180KHz,40V,PWM降压型直流对直流转换器,最大效率可达96%。输出到36V可调,8A恒定输出电流能力。如下图3-2所示为XL4016降压部分电路图,通过对FB引脚的控制,可有效的实现电流及电压的控制。该转换器外围器件少,低纹波,调节简单,内置短路保护功能。PWM占空比0%到100%连续可调。(图3-2)(3)升压电路原理图 升压电路使用

8、XL6019型220KHz、60V、5A开关电流升压/降压型DC-DC转换器。可工作在DC5V到40V输入电压范围,低纹波,内置功率MOS、XL6019内置固定频率振荡器与频率补偿电路,简化了电路设计。PWM控制环路可以调节占空比从090%之间线性变化。内置过流保护功能与EN脚逻辑电平关断功能。使用单片机控制EN引脚实现对升压模块开启与关断。(图3-3)(4)测控电路电路原理图测控电路如图3-4所示,通过电阻分压滤波后,使用单片机ADC采样,得到输入、输出电压,以及电流和基准电压,使用TL431产生基准电压用于矫正。恒压恒流控制使用单片机输出PWM,经滤波后使用LM358跟随,增强驱动能力,同

9、时可减小输入控制端的能量消耗。使用比较器比较设定值与输出值,再控制芯片的工作状态。(图3-4)电源为减小高频干扰,辅助电源使用220V到9V普通变压器,经整流滤波后使用7812和HT7333分别输出12V和电压为LM358和单片机小系统板供电。2、程序的设计(1)程序功能描述与设计思路1、程序功能描述根据题目要求,软件部分实现测量显示,切换模式,充电过压保护,控制调节系统。2、程序设计思路(1)、首先进行,按键,OLED各个内设初始化;(2)、进行按键扫描;(3)、判断模式;(4)、进行PWM控制电流,让输出为横流模式;(5)、扫描按键;(6)进行打开光耦,让升压模块工作;3程序流程图1、系统

10、总框图Vin/Vout2、程序流程图四、测试仪器与数据分析测试仪器5位半数字万用表,4位半万用表42测试数据与分析(1)U2=30V条件下对电池恒流充电,电流I1在1-2A变化过程中测量值如下表:按按键次数12345678910I1测量值(A)1,(2)设定I1=2A,使U2在24-36V范围内变化时,测量记录I1的值。数据如下:U2(V)24252627282930313236I1(A)(3)设定I1=2A,在U2=30V,测量U1,I2,计算效率。数据如下:当I1=2A,U2=30V时,测得I2=,U1=20V,由此计算效率为97%。(4)放电模式下,保持U2=30V,计算效率,数据如下:

11、当U2=30V时,I2=,U1=,I1=,由此计算效率为98%。(5)使US在32-38V范围内变化时U2记录如下:Us/V32333334353637U2/V以上数据可以说明,本次设计的双向DCDC变换器,各项指标均在题设范围内,是符合要求的。附录1:电路原理图附录2:源程序#include#include#includeunsignedcharReadADC(unsignedcharChl);/AD采样,有返回值voidDAC(unsignedcharData);/DA输出voiddelay(unsignedcharj);/unsignedintdatpro(void);/电压采样数据处理

12、voidled(intg,inta);/数码管显示voidout_AD_led();/输出采样电压1voidDA_out();/DA输出控制sbitkey_1=P34;sbitkey_2=P35;sbitduan=P26;sbitwei=P27;sbitin0=P32;unsignedcharcodetable=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;unsignedcharnum=102;/DA数模输出变量初始值intmain() while(1) DA_out(); DAC(num); out_AD_led(); voi

13、dout_AD_led()/ led(1,datpro()/1000); led(2,datpro()%1000/100); led(3,datpro()%100/10);unsignedcharReadADC(unsignedcharCh)/读取AD模数转换的值,有返回值 unsignedcharData; Start();/写入芯片地址 Send(AddWr); Ack(); Send(0x40|Ch);/写入选择的通道,本程序只用单端输入,差分部分需要自行添加 /Ch的值分别为0、1、2、3,分别代表1-4通道 Ack(); Start(); Send(AddRd);/读入地址 Ack(

14、); Data=Read();/读数据 Scl=0; NoAck(); Stop(); returnData;/返回值unsignedintdatpro(void)/ unsignedintdianyah,dianyal; unsignedintdianya=0; unsignedcharx; for(x=0;x4; dianyal=dianya&0x0f; dianya=dianyal*20+dianyah*310; return(dianya);voidDA_out()/ if(key_1=0) delay(10); while(key_1=0); num=num-1; if(key_2=

15、0) delay(10); while(key_2=0); num=num+1; voidDAC(unsignedcharData)/ Start(); Send(AddWr);/写入芯片地址 Ack(); Send(0x40);/写入控制位,使能DAC输出 Ack(); Send(Data);/写数据 Ack(); Stop();voidled(intg,inta)/ if(g=1) P0=0Xfe; wei=1; wei=0; P0=tablea; duan=1; delay(2); duan=0; if(g=2) P0=0Xfd; wei=1; wei=0; P0=tablea|0x80

16、; duan=1; delay(2); duan=0; if(g=3) P0=0Xfb; wei=1; wei=0; P0=tablea; duan=1; delay(2); duan=0; P0=0Xf7; wei=1; wei=0; P0=0x3e; duan=1; duan=0;voiddelay(unsignedcharj)/ unsignedinti; for(;j0;j-) for(i=0;i125;i+);#include#defineAddWr0x90/写数据地址#defineAddRd0x91/读数据地址sbitRST=P24;/关掉时钟芯片输出sbitSda=P20;/定义

17、总线连接端口sbitScl=P21;/时钟信号voidStart(void)/启动IIC总线Sda=1;_nop_();Scl=1;_nop_();Sda=0;_nop_();Scl=0;voidStop(void)/停止IIC总线Sda=0;_nop_();Scl=1;_nop_();Sda=1;_nop_();Scl=0;voidAck(void)/应答IIC总线Sda=0; _nop_(); Scl=1; _nop_(); Scl=0; _nop_(); voidNoAck(void)/非应答IIC总线 Sda=1; _nop_(); Scl=1; _nop_(); Scl=0; _no

18、p_(); voidSend(unsignedcharData)/发送一个字节 unsignedcharBitCounter=8; unsignedchartemp; do temp=Data; Scl=0; _nop_(); if(temp&0x80)=0x80) Sda=1; else Sda=0; Scl=1; temp=Data1; Data=temp; BitCounter-; while(BitCounter); Scl=0; unsignedcharRead(void)/读入一个字节并返回 unsignedchartemp=0; unsignedchartemp1=0; unsignedcharBitCounter=8; Sda=1; do Scl=0;_nop_(); Scl=1; _nop_(); if(Sda) temp=temp|0x01; else temp=temp&0xfe; if(BitCounter-1) temp1=temp1; temp=temp1; BitCounter-; while(BitCounter); return(temp);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1