双向DCDC变换器.docx

上传人:b****8 文档编号:13006303 上传时间:2023-06-10 格式:DOCX 页数:18 大小:219.02KB
下载 相关 举报
双向DCDC变换器.docx_第1页
第1页 / 共18页
双向DCDC变换器.docx_第2页
第2页 / 共18页
双向DCDC变换器.docx_第3页
第3页 / 共18页
双向DCDC变换器.docx_第4页
第4页 / 共18页
双向DCDC变换器.docx_第5页
第5页 / 共18页
双向DCDC变换器.docx_第6页
第6页 / 共18页
双向DCDC变换器.docx_第7页
第7页 / 共18页
双向DCDC变换器.docx_第8页
第8页 / 共18页
双向DCDC变换器.docx_第9页
第9页 / 共18页
双向DCDC变换器.docx_第10页
第10页 / 共18页
双向DCDC变换器.docx_第11页
第11页 / 共18页
双向DCDC变换器.docx_第12页
第12页 / 共18页
双向DCDC变换器.docx_第13页
第13页 / 共18页
双向DCDC变换器.docx_第14页
第14页 / 共18页
双向DCDC变换器.docx_第15页
第15页 / 共18页
双向DCDC变换器.docx_第16页
第16页 / 共18页
双向DCDC变换器.docx_第17页
第17页 / 共18页
双向DCDC变换器.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

双向DCDC变换器.docx

《双向DCDC变换器.docx》由会员分享,可在线阅读,更多相关《双向DCDC变换器.docx(18页珍藏版)》请在冰点文库上搜索。

双向DCDC变换器.docx

双向DCDC变换器

2015年全国大学生电子设计竞赛

双向DC-DC变换器(A题)

学号:

吕刚

2015年12月30日

摘要

本设计主要由双向DC-DC变换电路、测控显示电路、辅助电源三部分构成,其中双向DC-DC变换电路降压部分采用XL4016开关降压型DC-DC转换芯片,最高转换效率可达93%,升压部分采用XL6019开关型升压/降压芯片,具有低纹波,输入范围广,转换效率高的特点。

恒流部分采用PWM控制原理,形成一个闭环回路,控制电流恒定,恒压部分完全由硬件控制,单片机辅助控制的方式。

以上部分确保系统满足题目要求,实现恒流充电,恒压放电,过压保护功能,并且有着较高的转换效率。

在本次设计中恒压部分完全有硬件控制,硬件自身形成一个闭环控制回路,对电压进行调节使其恒定题目要求的精度范围。

单片机通过光耦电路的工作与停止,恒流部分由PWM调节占空比,使其恒流。

关键字电池充放电升压降压XL4016XL6019STM32

双向DC-DC变换器(A题)

【本科组】

一、系统方案

本设计主要由双向DC-DC变换电路、测控显示电路、辅助电源三部分构成,其中双向DC-DC变换电路降压部分采用XL4016开关降压型DC-DC转换芯片,最高转换效率可达93%,升压部分采用XL6019开关型升压/降压芯片,具有低纹波,输入范围广,转换效率高的特点。

恒流部分采用PWM控制原理,形成一个闭环回路,控制电流恒定,恒压部分完全由硬件控制,单片机辅助控制的方式。

以上部分确保系统满足题目要求,实现恒流充电,恒压放电,过压保护功能,并且有着较高的转换效率。

1、双向DC-DC变换电路的论证与选择

方案1:

由降压斩波变换电路(即Buck变换电路)和升压斩波变换电路(即Boost电路)组成双向DC-DC变换电路,分别各使用一个全控型器件VT(IGBT或MOSFET),对输入直流电源进行斩波控制通过调整全控型器件VT的控制信号占空比来调整输出电压。

方案2:

采用XL4016开关型降压芯片和XL6019开关型升压/降压芯片构成升压、降压电路具有低纹波,内助功率MOS,具有较高的输入电压范围,内置过电流保护功能与EN引脚逻辑电平关断功能。

综合以上两种方案,考虑到时间的限制,选择了比较容易实现的方案2。

2、测量控制方案和辅助电源的论证与选择

由于瑞萨单片机开发套件数量有限,所以我们选择了一款相对便宜,速度快,性价比较高的STM32103V8T6作为控制器,显示部分由于收到题目对作品重量的要求,选择了质量轻,分辨率较高的0.96寸OLED屏幕显示。

由于市场上所售开关电源模块的,纹波大的因素,所以辅助电源选择了一个较小的9V变压器,进行,整流滤波作为辅助电源。

3、控制方法的论证与选择

方案1:

采用PWM调节占空比的方法控制降压芯片的控制端,达到控制恒流和控制恒压的目的,采用PWM调节软件较为复杂,而且PWM调节较为缓慢,软件控制难度大。

方案2:

恒压部分完全有硬件控制,硬件自身形成一个闭环控制回路,对电压进行调节使其恒定题目要求的精度范围。

单片机通过光耦电路的工作与停止,恒流部分由PWM调节占空比,使其恒流。

综合以上两种方案,选择软件较为简单,硬件较为复杂的方案2。

二、系统理论分析与计算

1、充电电路设计分析

充电电路也就是一个降压电路,并且要求是一个恒流源,本次竞赛选取XL4016为核心降压芯片,其结构如图所示。

管脚定义如下典型应用电路如下

2.2放电电路设计分析

XL6019是一款专为升压、升降压设计的单片集成电路,可工作在DC5V到40V输入电压范围,低纹波,内置功率MOS。

XL6019内置固定频率振荡器与频率补偿电路,简化了电路设计。

PWM控制环路可以调节占空比从0~90%之间线性变化。

内置过电流保护功能与EN脚逻辑电平关断功能。

典型应用电路如下

2.1充电电路设计分析

充电电路也就是一个降压电路,并且要求是一个恒流源,本次竞赛选取XL4016为核心降压芯片,其结构如图所示。

XL4016降压模块电路图如下所示

2.2放电电路设计分析

XL6019是一款专为升压、升降压设计的单片集成电路,可工作在DC5V到40V输入电压范围,低纹波,内置功率MOS。

XL6019内置固定频率振荡器与频率补偿电路,简化了电路设计。

PWM控制环路可以调节占空比从0~90%之间线性变化。

内置过电流保护功

能与EN脚逻辑电平关断功能。

典型应用电路如下

三、电路与程序设计

1、电路的设计

(1)系统总体框图

 

(图3-1)

系统总体框图如图3-1所示,主要由辅助电源、测控电路、双向DC-DC变换电路等组成,辅助电源为测控电路供电,测控电路用于检测和控制双向DC-DC电路,以及电压电流的采集与控制。

(2)降压电路原理

降压电路采用XL4016型8A,180KHz,40V,PWM降压型直流对直流转换器,最大效率可达96%。

输出1.25V到36V可调,8A恒定输出电流能力。

如下图3-2所示为XL4016降压部分电路图,通过对FB引脚的控制,可有效的实现电流及电压的控制。

该转换器外围器件少,低纹波,调节简单,内置短路保护功能。

PWM占空比0%到100%连续可调。

(图3-2)

(3)升压电路原理图

升压电路使用XL6019型220KHz、60V、5A开关电流升压/降压型DC-DC转换器。

可工作在DC5V到40V输入电压范围,低纹波,内置功率MOS、XL6019内置固定频率振荡器与频率补偿电路,简化了电路设计。

PWM控制环路可以调节占空比从0~90%之间线性变化。

内置过流保护功能与EN脚逻辑电平关断功能。

使用单片机控制EN引脚实现对升压模块开启与关断。

(图3-3)

(4)测控电路电路原理图

测控电路如图3-4所示,通过电阻分压滤波后,使用单片机ADC采样,得到输入、输出电压,以及电流和2.5V基准电压,使用TL431产生2.5V基准电压用于矫正。

恒压恒流控制使用单片机输出PWM,经滤波后使用LM358跟随,增强驱动能力,同时可减小输入控制端的能量消耗。

使用比较器比较设定值与输出值,再控制芯片的工作状态。

(图3-4)

电源

为减小高频干扰,辅助电源使用220V到9V普通变压器,经整流滤波后使用7812和HT7333分别输出12V和3.3V电压为LM358和单片机小系统板供电。

2、程序的设计

(1)程序功能描述与设计思路

1、程序功能描述

根据题目要求,软件部分实现测量显示,切换模式,充电过压保护,控制调节系统。

2、程序设计思路

(1)、首先进行,按键,OLED各个内设初始化;

(2)、进行按键扫描;

(3)、判断模式;

(4)、进行PWM控制电流,让输出为横流模式;

(5)、扫描按键;

(6)进行打开光耦,让升压模块工作;

3程序流程图

1、系统总框图

Vin/Vout

2、程序流程图

四、测试仪器与数据分析

4.1测试仪器

5位半数字万用表,4位半万用表

4.2测试数据与分析

(1)U2=30V条件下对电池恒流充电,电流I1在1-2A变化过程中测量值如下表:

按按键次数

1

2

3

4

5

6

7

8

9

10

I1测量值(A)

1

0.99

1.01

1.06

1.07

1.10

1.12

1.14

1.16

1.17

(2)设定I1=2A,使U2在24-36V范围内变化时,测量记录I1的值。

数据如下:

U2(V)

24

25

26

27

28

29

30

31

32

36

I1(A)

1.99

1.98

1.98

1.99

1.97

1.98

1.99

1.96

2.01

1.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/V

32

33

33

34

35

36

37

U2/V

29.7

29.8

29.8

29.9

29.8

30.3

30.4

以上数据可以说明,本次设计的双向DCDC变换器,各项指标均在题设范围内,是符合要求的。

附录1:

电路原理图

附录2:

源程序

#include

#include

#include

unsignedcharReadADC(unsignedcharChl);//AD采样,有返回值

voidDAC(unsignedcharData);//DA输出

voiddelay(unsignedcharj);//

unsignedintdatpro(void);//电压采样数据处理

voidled(intg,inta);//数码管显示

voidout_AD_led();//输出采样电压1

voidDA_out();//DA输出控制

sbitkey_1=P3^4;

sbitkey_2=P3^5;

sbitduan=P2^6;

sbitwei=P2^7;

sbitin0=P3^2;

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();

}

}

voidout_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();

Data=Read();//读数据

Scl=0;

NoAck();

Stop();

returnData;//返回值

}

unsignedintdatpro(void)//

{

unsignedintdianyah,dianyal;

unsignedintdianya=0;

unsignedcharx;

for(x=0;x<6;x++)

{

dianya=ReadADC

(1)+dianya;//输入通道选择通道

}

dianya=dianya/6;

dianyah=dianya&0xf0;

dianyah=dianyah>>4;

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==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=table[a];

duan=1;

delay

(2);

duan=0;

}

if(g==2)

{

P0=0Xfd;

wei=1;

wei=0;

P0=table[a]|0x80;

duan=1;

delay

(2);

duan=0;

}

if(g==3)

{

P0=0Xfb;

wei=1;

wei=0;

P0=table[a];

duan=1;

delay

(2);

duan=0;

}

P0=0Xf7;

wei=1;

wei=0;

P0=0x3e;

duan=1;

duan=0;

}

voiddelay(unsignedcharj)//

{

unsignedinti;

for(;j>0;j--)

for(i=0;i<125;i++);

}

#include

#defineAddWr0x90//写数据地址

#defineAddRd0x91//读数据地址

sbitRST=P2^4;//关掉时钟芯片输出

sbitSda=P2^0;//定义总线连接端口

sbitScl=P2^1;//时钟信号

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;

_nop_();

}

voidSend(unsignedcharData)//发送一个字节

{

unsignedcharBitCounter=8;

unsignedchartemp;

do

{

temp=Data;

Scl=0;

_nop_();

if((temp&0x80)==0x80)

Sda=1;

else

Sda=0;

Scl=1;

temp=Data<<1;

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=temp<<1;

temp=temp1;

}

BitCounter--;

}

while(BitCounter);

return(temp);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2