#智能开关电源论文.docx
《#智能开关电源论文.docx》由会员分享,可在线阅读,更多相关《#智能开关电源论文.docx(26页珍藏版)》请在冰豆网上搜索。
![#智能开关电源论文.docx](https://file1.bdocx.com/fileroot1/2023-6/22/d85b6b89-7c9d-42b7-a8d0-0c6122f129b7/d85b6b89-7c9d-42b7-a8d0-0c6122f129b71.gif)
#智能开关电源论文
开关电源设计报告
名称智能数显----开关稳压电源
学生姓名李文贞陈宝杰吴东艳
专业电子电科电子
指导教师张福安葛汝明董文慧
二OO八年六月六日
智能数显开关稳压电源
摘要:
以SPCE061A单片机为控制核心,具有电压可预置;可步进调整;输出电压、预置电压、输出电流同时显示;过流保护及自动恢复功能。
以及语音播报功能。
输出电压0V-36V精确调整、语音播报及人性化的声光警示功能。
系统主要包括:
SPCE061A精简开发板、键盘与LCD显示电路、整流滤波电路、开关控制电路、反馈控制电路等。
关键词:
SPCE061A,TL494,闭环控制,PWM
Abstract:
Thispaperdesignsaswitchpowersupply,usingSunplusSPCE061Aascentreofthecontrol,whichcansetthevoltageinadvance,adjustthevalueinstep,displaytheoutputvoltage,thepre-setvoltageandtheoutputcurrentatthesametimeandhasthesageguardforthecurrent.Boththebasicandtheadvancedrequirementshavebeenfinishedperfectly.Inaddition,weaddsomeextrafunctionssuchasadjustingthevoltagefrom0Vto60Vexactly,voicebroadcastingandwarningfunctionusingsoundandlight.ThesystemcontainsSunplusSPCE061A,keyboardandLCDcircuit,switchcontrolcircuit,commutationandfilteringcircuit,feedbackcontrolcircuit,andsoon.
Keyword:
SPCE061A,TL494,closedloopcontrol,PWM
引言:
此电源集开关电源的优点和先进的程控技术于一身,既可以实现高效大功率输出,又可以实现输出电压的连续精确可调。
该电源的主要功能有:
输出电压可步进调整(既能手动调节又能程控调节);同时显示输出电压、预置电压、输出电流;过流保护、声光警示及自动恢复功能。
以及语音播报当前电压电流值功能。
输出电压0V-36V精确调整的功能。
该电源的高效大功率表现在:
一般线性电源效率最大不超过50%,输出电流在30V以下仅为1A左右,而此电源效率以超过80%,输出电流在36V时输出可达4A。
先进的程控技术表现在:
普通的开关电源输出电压的可调节性差,而该电源在程序控制下可实现精度为0.05V的电压调节;普通电源的过流保护是通过保险丝或保险管的熔断来实现的,保险丝或保险管熔断后更换起来既浪费时间又浪费此电源是通过程序使芯片停振实现过流保护的不存在保险丝或保险管损金钱,而坏问题,在电路故障排除后程序又可使电源继续供电,不须在电源上浪费时间;程序又可实现对当前电压、电流、预置电压的显示和语音播报,使电源更具人性化。
系统主要包括:
SPCE061A精简开发板、键盘与LCD显示电路、整流滤波电路、开关控制电路、反馈控制电路等。
1系统框图
图1系统框图
2方案比较与论证
2.1DC-DC变换电路的选择
方案一:
单端正激式变换器
该种方式电路结构简单,但其变压器利用率低且结构复杂,不适合自己绕制,体积也较大。
方案二:
双管正激式变换器
双管正激变换器因为具有开关电压应力低,内在抗桥臂直通能力强,可靠性高,变压器利用率高体积小等优点,被广泛应用于高输入电压的中、大功率等级的电源产品中。
因此系统采用方案二。
2.2控制方案的选择
方案一:
采用AT89C51作为控制器
采用AT89C51单片机进行控制。
AT89C51价格低廉,结构简单,且资料丰富;但是51单片机系统资源有限,8位控制器,运算能力有限,且没有内置AD/DA转换器,需要外接大量外围电路,编程需要价格昂贵的编程器及仿真器,不便于系统开发。
方案二:
采用凌阳SPCE061A作为控制器
采用SPCE061A单片机进行控制。
SPCE061A凌阳单片机具有强大功能的16位微控制器,它内部集成7路10位ADC和2通道10位DAC,可以直接用于电流电压采集,以及数字控制输出;且其存储空间大,能配合LCD液晶显示的字模数据存储及语音的存储。
采用SPCE061A单片机,能将相当一部分外围器件结合到一起,使用方便,抗干扰性能提高。
本设计需要使用的软件资源比较简单,只需要完成数控部分、键盘输入、语音播报以及显示输出功能。
系统采用方案三
2.3PWM直接驱动与模拟图腾柱驱动的论证
方案一:
TL494PWM输出直接驱动
TL494内置功率驱动晶体管,可提供500mA驱动能力,足以满足开关管方案二:
模拟图腾柱输出驱动
因为采用模拟图腾柱驱动电路,使PWM波的上升下降沿时间短,降低其在开关管上的功耗,从而提高其输出效率。
故采用方案二。
2.4PWM产生方式
方案一:
由单片机直接产生
SPCE061A单片机可以直接输出可调PWM波,虽然应用简单,但是其输出脉宽最小调节范围较大,不利于精确控制。
方案二:
由三角波比较产生
采用三角波与可调电压经比较器比较,也可以实现脉宽可调,但是驱动能力有限,用运算放大后,可以满足要求,但是电路结构复杂,不便于制作。
方案三:
使用PWM集成控制器
使用单芯片的PWM集成控制器,电路结构简单,便于用单片机进行控制,配合模拟图腾柱电路,驱动开关管较为理想。
故系统采用方案三。
2.5电流取样电阻的选择方案
产生电流可以采用在电阻两端加电压的方法,测量电流一般采用的方法是测量电流流经电阻两端的电压进行间接计算得到的。
因此在产生电流或者测量电流值时,取样电阻的选择非常重要。
方案一:
采用普通电阻
在电流比较小的情况下,普通的1/4W或者1/8W的电阻可以被用作电流测量,但是本电源需要测量的是最大输出电流需要达到4A的电源。
因此即使是比较小的电阻,通过4A电流时功率也会大大超过普通电阻的额定功率,电阻将被烧断。
因此在本系统中,测量电流的取样电阻不能使用普通电阻。
方案二:
采用大功率电阻
为了满足流过大电流的要求,可以采用大功率电阻,通过4A电流时一定不会被烧断。
但是此时流过的大电流将会使电阻大量发热,导致电阻温度急剧上升,将产生很大的测量误差。
因此不能使用温度漂移严重的普通大功率电阻。
方案三:
采用康锰铜电阻丝
康锰铜电阻丝是电流测量中很常用取样电阻,其特点在于温度漂移量非常小。
经过测试,在1Ω的康锰铜电阻丝上通过约4A电流,因为产生的热量引起的升温,只会引起0.02Ω左右的阻值变化,对电流的稳定起了很重要的作用。
另一方面,1Ω的康锰铜电阻丝约长1m,因为和外界接触面积大,即使通过大电流也能很快的散热,进一步的减小温度漂移带来的影响。
鉴于上面分析,本设计采用方案三。
2.6电压预置方案的论证
方案一:
采用数模转换模块
DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器,输出的模拟量与输入的数字量成正比DAC0832输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。
可以通过单片机输入不同的数值量来输出不同的电压以控制TL494从而实现电压预置。
方案二:
由单片机直接完成数模转换
SPCE061A单片机内置数模转换模块可以通过编程实现可变电流的输出再经过电阻转换可以实现输出不同的电压控制TL494从而实现电压的预置。
经比较选用方案二
3系统硬件设计与实现
3.1系统硬件的整体组成部分
系统硬件整体分为电源电路和控制电路两部分,通过单片机实现电源输出的采样及显示,过流保护,及闭环控制。
两部的有机结合,将单调的电源变得更加智能化,人性化。
电源电路工作原理,220V市电首先进入150W变压器,12V交流输出,经过大功率整流桥整流,后又经二个4700uf的电容并联滤波,输出大功率直流电源,通过双管正激式结构,采用TL494作为PWM控制芯片,产生27K交流电压,再经升压变压器,整流滤波电路,使其输出要求值电压。
电压调节为脉宽调制型,并引入反馈调节,使主电路输出更加稳定。
下图为DC-DC主回路的拓扑结构
图2DC-DC主回路拓扑结构
控制电路采用凌阳61单片机,加外围采样电路,PWM产生控制电路,键盘、显示电路及一些指示电路,组成一个完整闭环控制系统。
电源因为凌阳SPCE061A内置AD/DA,不需要设计此部分电路;外围采样电路采用比例电压采样电路,康铜电阻电流采样电路,可以较准确地采集到电源输出信号;PWM产生及控制采用TL494加单片机控制方式;显示电路采用SPLC501液晶模组;键盘为四按键式,设置键、确认键、上调整键、下调整键;另外加有输入指示灯,按键指示灯。
整个系统经过测试,单元电路能够很好的协调工作。
3.2各单元电路的设计
3.2.1主电源电路的设计
图3主电源电路图
在进行电源设计初期,考虑到有4A动作电流的功率,一切器件均以大功率要求进行计算设计。
下表为部分器件选用的参数。
器件名称
器件型号
功率参数
隔离变压器
BK-150
150W
整流或二极管
Kbpc3510
35A
电解滤波电容
4700uF(二个并联>
滑动变阻器
J2354
100Ω/3A
开关管
FPQ55n10
55A
表1器件参数表
开关电路的设计,开关电路采用双管正激式变换设计,其属于双端式变换电路它的高频变压器工作于磁滞回线两侧,是一种设计简单,工作合理的线路,适用范围比较广,MOSFET开关管驱动电路采用TL494,是一种衡频脉宽调制控制器,内置线性锯齿波振荡器震荡频率可通过一个外部的电阻和一个电容进行调节,其震荡频率计算公式为:
系统使用的电阻为2kΩ,电容为0.01uF,故其震荡频率为27KHz.芯片内部内置误差放大器内置5V基准参考电压,对于PWM脉宽调制非常方便。
但是其输出不为图腾柱输出,故电路模拟图腾柱输出,使其上升下降沿时间变短,提高开关管的导通效率,其应用电路图见附录。
3.2.2闭环反馈电路的设计
该部分的设计采用电阻比例电路,考虑到功耗,及检测吸收能力,通过实验测试,R2=150K,R11=5K(可调>,R4=10K, 在既满足反馈要求,且功耗低。
3.2.3过流保护及自动恢复电路的设计
本电路采用温度漂移小的康铜锰铜丝作为采样电阻,其电阻率为1.3Ω/m,考虑到单片机的识别能力及功耗问题,经反复测试,选用电阻值为0.4Ω,可以精确采样到其两端电压,经过公式:
计算输出电流值,当其输出达到4A时,控制TL494进行过流动作保护。
当电流故障排除后,电源输出自动恢复。
4系统的软件设计
图4为系统主程序流程图。
系统初始化后,当预设键按下,系统进入预设调整,通过步加、步减调整键1V步进、步减调整,完成按确定键,系统输出预设值并语音播报输出电压、电流;当系统输出电流达到4A,系统自动断开输出,进行保护动作,并且在排除过流保护后,电源自动恢复正常状态。
图4系统主程序流程图
5系统测试
5.1测试方法与数据分析
负载调整率的测试方法:
通过一个大功率可调电阻及数字万用表将输入电压调节到12v,改变功率电阻的阻值测量输出端电压,其测得数据如表1所示。
表1负载调整率测试
负载阻值
输出电压
输出电流
70
33.0
0.46
50
33.0
0.66
40
32.9
0.84
34
32.8
0.94
由上表可算出电源的电压调整率为0.02。
原因可能是变压器没有工作在最好状态另外线圈手工绕制较粗糙,可以改变变压器的加工精度提高负载调整率。
5.2输出纹波的测定:
将输出端的信号输入DS5102CA型数字示波器可以直接读到纹波的大小。
我们测得的纹波峰峰值为600mv。
5.3电源效率的测量:
测量DC-DC输入端电压和电流,从而得到输入的功率;在电源的输出端接可编程电子负载,测得其输出的电流、电压值,从而得到电源的效率。
通过这种方法我们测得该电源的效率在80%左右。
开关管变压器功耗过高,改进方法提高开关管的开关状态,改进变压器。
5.4不同负载下输出电压的测量
用可编程电子负载接电源的输出可以测得不同负载下的输出电压测试情况如下表:
Uo
30V
RL(Ω>
214
150
100
75
60
55
50
40
30
25
UL(V>
30.1
30.1
30.16
30.04
30.01
29.94
29.85
29.65
29.33
29.12
Uo
31V
RL(Ω>
500
300
200
100
80
70
60
50
40
35
30
UL(V>
31.1
31.13
31.11
30.96
30.88
30.88
30.80
30.67
30.54
30.41
30.3
Uo
32V
RL(Ω>
500
300
200
100
80
70
60
50
40
35
30
UL(V>
32.10
32.12
32.09
31.93
31.83
31.83
31.74
31.61
31.47
31.38
31.27*
Uo
33V
RL(Ω>
500
300
200
100
80
70
60
50
40
35
30
UL(V>
33.09
33.11
33.1
32.9
32.8
32.7
32.6
32.59
32.46
32.38
31.99
Uo
34V
RL(Ω>
500
300
200
100
80
75
60
50
40
35
33
UL(V>
34.09
34.11
34.1
33.9
33.78
33.76
33.65
33.57
33.44
33.28
32.97
Uo
35V
RL(Ω>
500
300
200
100
80
70
60
50
40
35
30
UL(V>
35.08
35.28
35.16
34.9
34.78
34.72
34.66
34.56
34.07
33.37
32.00
6.总结
本文设计的开关稳压电源以凌阳SPCE061A为控制核心,较好的实现了电源的各项功能指标。
输出电压0V—36V精确可调,并且有输出电压可预置,可以实现步加、步减,过流保护以及过流后自动恢复和语音播报功能。
该系统电路实用,功率相对较高,设计更加智能化,人性化。
参考书目
1罗亚非.凌阳十六位单片机应用基础.北京:
北京航空航天大学出版社,2003.12
2张占松.开关电源的原理与设计.电子工业出版社.2004.9
3曲学基等.新编高频开关稳压电源.电子工业出版社.2005.11
附录
图1系统总原理图
图2TL494内部结构图
图3PWM控制电路
图4主程序流程图
图5DA转换流程图图6AD转换流程图
附部分源代码:
#include"spce061a.h"
#include"splc501user.h"
#include"Chinese_Table.h"
#include"Key.h"
#include"AD.h"//AD采集程序头文件
#include"AD1.h"//AD1采集程序头文件
#include"s480.h"
unsignedintda。
voidDA(>。
voidPlayS480(intResult>。
voiddelay1(charn>
{
inti,j。
for(i=0。
ii++>
{
*P_Watchdog_Clear=0x0001。
//清看门狗
for(j=0。
j<50。
j++>。
}
}
intmain(>
{
intliw[7]={0x1280,0x1340,0x13c0,0x14e0,0x1940,0x2dc0,0x59c0}。
staticintm=0。
intn=0。
intk。
unsignedintda1。
unsignedintEnt_Flag=0。
unsignedintEnt_Flag1=0。
unsignedinti,j。
unsignedintKey。
unsignedintAD_Data。
unsignedintAD1_Data。
floatAD_Result。
floatAD1_Result。
unsignedintsw。
unsignedintgw。
unsignedinty=0。
unsignedintx=0。
unsignedintdyzh1。
unsignedintdyzh2。
unsignedintdy。
unsignedintde。
unsignedintdlzh222。
unsignedintdlzh333。
unsignedintyszh=30。
floatdlzh。
floatdlzh1。
floatdlzh11。
floatdlzh2。
floatdlzh22。
floatdlzh3。
floatdlzh33。
floatdyzh22。
Key_Init(>。
LCD501_Init(0xff>。
da=0x1280。
da1=0x000e。
*P_IOA_Dir=*P_IOA_Dir|0x0010。
*P_IOA_Attrib=*P_IOA_Attrib|0x0010。
*P_IOA_Data=*P_IOA_Data&0xffef。
LCD501_ClrScreen(0>。
LCD501_FontSet(1>。
LCD501_Bitmap(17,0,(unsignedint*>encoding_00>。
//显示"开"
LCD501_Bitmap(33,0,(unsignedint*>encoding_01>。
//显示"关"
LCD501_Bitmap(49,0,(unsignedint*>encoding_02>。
//显示"稳"
LCD501_Bitmap(65,0,(unsignedint*>encoding_03>。
//显示"压"
LCD501_Bitmap(81,0,(unsignedint*>encoding_04>。
//显示"电"
LCD501_Bitmap(97,0,(unsignedint*>encoding_05>。
//显示"源"
*P_Watchdog_Clear=0x0001。
LCD501_Bitmap(0,16,(unsignedint*>encoding_06>。
//显示"预"
LCD501_Bitmap(16,16,(unsignedint*>encoding_07>。
//显示"设"
LCD501_Bitmap(32,16,(unsignedint*>encoding_04>。
//显示"电"
LCD501_Bitmap(48,16,(unsignedint*>encoding_03>。
//显示"压"
LCD501_PutChar(64,16,58>。
if(y==0>
{
y=1。
LCD501_PutChar(70,16,'3'>。
LCD501_PutChar(78,16,'0'>。
LCD501_PutChar(86,16,'V'>。
}
LCD501_Bitmap(0,32,(unsignedint*>encoding_08>。
//显示"实"
LCD501_Bitmap(16,32,(unsignedint*>encoding_09>。
//显示"测"
LCD501_Bitmap(32,32,(unsignedint*>encoding_04>。
//显示"电"
LCD501_Bitmap(48,32,(unsignedint*>encoding_03>。
//显示"压"
LCD501_PutChar(64,32,58>。
*P_Watchdog_Clear=0x0001。
//清看门狗
LCD501_Bitmap(0,48,(unsignedint*>encoding_0a>。
//显示"输"
LCD501_Bitmap(16,48,(unsignedint*>encoding_0b>。
//显示"出"
LCD501_Bitmap(32,48,(unsignedint*>encoding_04>。
//显示"电"
LCD501_Bitmap(48,48,(unsignedint*>encoding_0c>。
//显示"流"
LCD501_PutChar(64,48,58>。
DA(>。
while(1>
{
*P_Watchdog_Clear=0x0001。
Key=Key_Get(>。
switch(Key>
{
n=m。
case0x0001:
Ent_Flag1=1。
break。
case0x0002:
//if(Ent_Flag1==0>
//{
x=1。
m++。
if(m>6>
m=6。
LCD501_PutChar(78,16,m+48>。
break。
case0x0004:
{
x=1。
m--。
if(m<0>
m=0。
LCD501_PutChar(78,16,m+48>。
break。
case0x0008:
if(Ent_Flag1==1>
{
Ent_Flag1=0。
x=0。
Ent_Flag=1。
da=liw[m]。
DA(>。
delay1(10>。
}
break。
default:
break。
}
ADC_Ini