数控直流电源设计

系统简介

在这个设计的结构中,stc12c5a32s2在整个设备中是发挥控制中心作用,xl6012以及xl4016在整个设备中上发挥动力模块的关键作用。借助LCD1602液晶模块,从而发挥显示屏幕作用,通过该模块可以清晰看到输入电压、输出电压、输出电流以及控制模式。结合电流检测电路,电压检测电路,运放反馈回路,ADC采样电路,DAC采样电路以及其他外围辅助电路,以此充分发挥基于升压芯片和降压芯片的数控稳压电源调整速度快,电压调整率低,负载调整率低等优势,实现高精度低纹波输出,大功率输出等功能。这个结构有两种控制模式,依次为数字控制模式和手动控制模式。前者借助键盘输入的值,从而控制电压值变化,另外,能借助键盘,准确的控制输出电压。后者办法是,借助电位计能直接控制输出电压。此结构具备这些特点,方便操作,能实现过电压,以及电流过载的功能。
关键词:数控电源;单片机;升压;降压

1绪论

1.1选题的意义
随着经济社会不断发展,国民生活水准稳步提高,人们对电力的需求量越越来越大。然而现阶段,电源在长期工作当中易出现老化现象,误差较大,可调节性不足,对整个电力系统的日常运转带来了一系列负面影响。因此,对现有数控电源做出改进对于企业而言具有重要意义。
自上世纪90年代以来,数字电源管理技术取得了重大进展。但其产品的缺陷在于控数控程度较低、精度较差、纹波较高,在实际运行当中并不可靠。因此,现代数控电源主要是在此基础上进行完善与创新。
该设计对当下数控电源所存在的不足之处加以完善,以提高数控程度,减少能源消耗,增强负载能力为研究重点。
1.2国内外发展现状
1.2.1国内现状
自上世纪六十年代以来我国就已经开始开关电源的研发工作,发展到中期已经初步投入运用,并在七十年代取得突破性进展。发展至九十年代,由于电子设备数量激增,对电力系统工作效率提出了更高的要求,传统开关电源已经无法满足实际需求,智能化开关电源成为新的发展方向。就目前来看,中国科技水平虽然已经发生质的飞跃,可是与其他发达国家相比,我国的技术水平仍存在很多短板,开关电源的研发与生产仍相对落后。中国是一个人口大国,随着国民生活水平不断提高,人们对电子产品的需求量越来越大,对电力系统也提出了更高的要求,高质量的脉冲电源对于电力系统的稳定运转具有重要意义。近些年,开关电源的重要性愈发凸显出来,越来越多的学者投身到该领域的研究当中。现阶段,我国的直流恒流网络仍不够完善,电源数控程度相较于欧美等发达国家仍较为落后。华中科技大学和电子科技大学近些年来在数控电源研究领域取得一系列突破,主要倾向于CED的学习及使用,未来国内需要更多科研平台投入至该领域的研究,促使数控电源向智能化方向发展。
1.2.2国外发展状况
上世纪五十年代科学技术得到了飞速发展,晶体管也在该阶段诞生于世,罗娜也在该55年研发出晶体管直流变化器。它的产生是通过直流电整流器,经滤波后输入,工频无需进行重复操作,促使其应用范围越来越广,对开关电源的研究起到极大促进作用。然而,我国在领域的研究仍处于相对落后的阶段,所以我们仍需要不断探索与创造缩小差距。步入新时代以来,机遇与挑战并存,我们必须战胜困难,攻克技术难关,获得进步与创新。随着外国的技术的不断的飞速发展,自二十世纪七十年代以来,很多和这项技术有关的高科技电子与电子产品得到开发与生产,脉冲电源技术取得突破性进展。它在人们的生产与生活中不断的被应用,尤其是在工业的发展中扮演着重要角色。所以,在这个领域依然还有更多探究与进步的可能。不能否定的是,外国所有方面都具有超然的领导地位,它们不断在探究与创新脉冲电源。所以,我们能够应用更准确、更高效的脉冲电源。所以,各个行业的脉冲电源位置是非常明显的。由于在国外应用脉冲电源的时间比在我国要早。即使科学领域是无穷尽的,但我们依然渴望我国的科学家可以发明更好的的脉冲能源,从而得到很多认可。所以,脉冲电源将替代原来的线性电源,不分国界。
1.3课题研究的内容
本次设计是基于单片机、升压芯片和降压芯片的数控直流电源系统,主要以解决数控电源的高效转换输出, 高精度数控输出,大功率等问题为出发点,研究以单片机为核心,结合电流检测电路,电压检测电路,运放反馈回路,ADC采样电路,DAC采样电路以及其他外围辅助电路,以此充分发挥基于升压芯片和降压芯片的数控稳压电源调整速度快,电压调整率低,负载调整率低等优势,实现高精度低纹波输出,大功率输出等功能。
1.4本章小结
该文章列出了这个主题的目的和意义,并解释了市场上直流电源的生产和使用以及项目的内容。

2方案论证

在该结构中,主要包括两单元,分别是数字控制以及电源这两个单元,在这两单元中,具有独立运行的功能。
2.1电源部分
2.1.1方案一
在电源单元的构建中,主要选择线性稳压器件作为电压输出,在该单元中占据着十分重要的地位。对于线性稳压器件而言,在本文电源系统构建中,选择使用LM317,其输出电压主要在1.23伏特至36伏特之间,电流强度不超过1.50安培,其电压纹波坡度较小,十分稳定,且对电路有一定的保护作用,避免出现温度过高,电路出现短路问题的发生。同时,在该电源单元中,对于电压的设置,采用电阻的数目仅仅为2个,设置较为简单,便于操作,同时,在一定程度上降低了系统设置的成本,便于设计开发。究其原因,主要在于LM317正电压稳定器的引脚之间的电压差为1.24伏特,具体如下所示:
Vout=(1.24/R1)(R1+R2)+IadjR2 (2.1)
因为,通过芯片使得ladj的电流的强度不超过100微安,因此,ladj*R2的数值极小,可以对其进行忽略,不影响整体计算,因此,从上述公式得知以下公式:
Vout=1.24(1+R2/R1)(2.2)
从上述公式可以得知,通过对R1的数值进行确定,仅需要改变R2的数值便可以对电压进行调整。总而言之,对于
通过对XL6012开关电源管理芯片以及XL4016开关降压型芯片的相关特点进行分析,可以得知,通过对R1与R3的比值进行调整,能够使得电压上升至31伏特之上,通过对R2与R4的比值进行调节,能够使得电压下降至31伏特之下。因此,三方案也是符合本文系统设计要求的。
2.2数控部分方案
数控部分采用是以宏晶科技的STC12C5A32S2为主,以其他电路为辅的一个控制部分。STC12C5A32S2的性能特点如下:
(1)对于STC12C5A32S2单片机而言,其属于增强型类型,其一个周期为一个时钟,进而代表着一个机器的周期,运行效率较快,与传统8051单片机相比,其速度是它的12倍。
(2)对于该单片机而言,其工作电压主要在3.50伏特至5.30伏特之间,2.1伏特至3.60伏特的范围之间。
(3)对于该单片机而言,其工作频率处于0赫兹至34赫兹之间。
(4)在该单片机中,其flash主要是32k字节。
(5)该单片机拥有一定的编程功能,不需要通过编译器进行编程,可通过对程序代码下载完成。
(6)具有一定的定时功能,包括多个定时器。
(7)在该单片机中,其ADC主要为8路以及10位,对于PWM而言,主要为2路。
(8)在该单片机中,其I/O口主要采有4种模式进行相应的设置。
示意图如下图可以得知:

在这里插入图片描述

图2.4 总体的控制示意图
2.5本章小结
在这一章里,分别对几种设计方案的电路进行说明,经过各方面优缺点的比对,采用方案三作为数控直流电源系统的设计方案。
在对数控直流电源系统进行设计的过程中,主要涉及三个方案,对于方案一而言,主要采用LM317进行设计,虽然其一些特点满足本系统设计的相关要求,但其电流参数、电压调节无法满足本系统设计的相关要求,因此排除方案一。对于其余两个方案而言,其相关特点满足本系统的相关要求,但通过实验得知,在方案二中,其对电压、负荷的调整能力无法满足本系统相关要求,因此对于方案二进行排除。对于方案三而言,其相关特点满足本系统相关要求的同时,且其具有较为简单的结构组成,操作较为简单,成本投入较低,因此,选择方案三对数控直流电源进行设计。

3硬件设计

3.1硬件电路的总体设计方案
图3.1 总体的设计框图
选择方案三进行设计,其具体的设计结构图如上所示。在该系统设计中,主要根据STC12C5A32S2单片机对电压的相关要求,采用分压电路对电压进行调节。并可以通过对2个电阻的比值,测算出电压的大小。通过LCD1602作为显示模块,并设置五个按钮,分别对应电压的输出、输入、选择模式、电流的输出以及对电压的记录等,进而完成相应的操作。具体操作流程如上图所示。
3.2 STC12C5A32S2单片机最小系统电路

在这里插入图片描述

图3.2 STC12C5A32S2单片机最小系统
通过上图可以得知,对于STC12C5A32S2单片机而言,其系统的构造主要包括芯片、复位电路、晶振电路等器件。在上述系统电路中,S2 代表着复位按键,其工作主要触发芯片完成的。对于C10而言,其主要的作用是使得高电平复位持续在两个时钟以上,即两个周期以上,进而确保单片机留有充足的时间决定是否复位。对于R16而言,其主要为C10提供电流,促使高电平逐步进行下降,直至电平为0数值时,单片机发挥作用。
对于该单片机而言,在其结构中的PO口主要为了连接开关电源管理芯片,对于P2.7以及P2.6而言,主要的功能是对开关电源管理芯片的引脚进行连接。对于P2.5而言,其主要是对蜂鸣器控制端进行相应的链接,对于P2.2而言,其主要是对继电器控制端进行相应的连接,对指示灯进行连接的是P2.1以P2.0,对于ADC而言,其输入引脚主要包括三个,分别是P1.0、P.1.1以及P1.2。在上述内容中,对电压的输出、输入、选择模式、电流的输出以及对电压的记录功能的实现主要通过五个独立按钮连接6号至11号引脚完成。对于晶振电路而言,其主要通过18号以及19号引脚进行连接,确保该系统的精准度以及稳定性,也正因为如此,选择外部晶振电路进行相应的设计,如选择11.059兆赫的晶振进行系统的设计。

在这里插入图片描述

图3.4 LCD1602液晶显示模块实物

如图3.15所示,降压变换器(Buck converter),其工作原理图。当开关,处于闭合状态下,电源电压,开始充电,二极管(diode)断开,因此,此时电感电压值是,如果开关闭合时长为t,则其磁通量值为。当开关S,关闭时,由于电感上的电流,没有变化,电流(Electric current),仍然从下向上,进行流动,二极管导通,磁通值减小,同时,电感内,磁通减少值是:,如果,开关的关闭,开放状态,达到稳定条件时,则有,这是因为,负载比D不超过1,所以,Vo>Vi,然后实现,降压的功能。
如图3.11所示,为电源部分,其内部原理图,同时,改图为图3.12,图3.14两图的整合。根据图3.12中,输出电压公式(Output voltage formula),得出:
如果R1值为定量,就可以调节R2,来得出输出电压。根据该设计要求,要求XL6012的输出电压,超出31V以上。 如图3.14中, R2和R1值,实际上对应于,如图3.11中,R41和R23值。如图3.11中,其引脚2,即FB引脚,与如图3.9中,FB引脚,进行连接。这样,电源的工作模式,可以通过如图3.9所示继电器,进行控制。
3.3本章小结
本章是硬件系统的设计部分,设计说明从硬件系统总设计框图开始,然后对各部分电路进行较为详细的论述,论述内容是电路的工作原理,工作流程。

4 软件设计

使用Keil Software生产的Keil4 C语言软件开发系统,用C编写毕业设计程序。
4.1主函数程序设计
在这里插入图片描述

图4.1 主函数流程图
主函数的流程图如图4.1所示:
如图4.1所示,系统初始化部分(System initialization part),涵盖IO端口(型号为STC12C5A32S2),进行设置。ADC转换模式(ADC conversion mode),既P3.1,P3.2引脚设置,然后,对外部中断0,定时器中断0,进行设置, 接着,对LCD1602,进行初始化设置,同时有固定字符,进行显示 ,最后,读取内部EEPROM,并恢复之前的输出电压。
输入电压显示屏(Input voltage display),是LCD1602显示屏,部分内容,它在LCD屏幕左上方,即“IV:00.00V”,其中“IV”,为输入电压,“00.00V”,为液晶显示屏的电压值。输出电压显示屏位于LCD1602 LCD屏幕的左下角,即“ OV00.00V”,同时,“OV”代表输出电压,“00.00V”代表显示器的电压值。在屏幕右上方,为系统工作。 例如,“CV DAC”,表示系统,正为数控模式(CNC mode)。“CV DAC”,表示系统,正为手动模式(Manual mode)。输出电流(输出电流),位于屏幕右下方,其单位为安培。
如果,Key1_num值为0时,此时,该键进入,输入电压模式(Input voltage mode),如果按下键1,则启动外部中断0,然后更改键1,当Key1_num为非零时,便进入输入电压模式,此时,可以通过键1,键2,键3,设置输出电压,而键0,,为“确认并返回”按钮。
程序代码:


void main(void)
{
AUXR = AUXR|0x80;  // T0, 1T Mode
delayms(10);
P1M1=0x07;  //P1.0,P1.1,P1.2
P1M0=0x08;// //P1.3 P1.4
P2M1 =0x00;
P2M0 =0x3f;
//P2=((P2&0xf8)|0x07);
ADC_int(ADC0);
ADC_int(ADC1);
ADC_int(ADC2);
TCON=0x01;
IE=0x81;
//Vref=4.950;
LCD_Initial();
pwminit();
InitTimer0();
GotoXY(0,0);
coutstr("IV:");
GotoXY(1,0);
coutstr("OV:");
GotoXY(0,10);
coutstr("CV DAC");
mode_choose(0);

delayms(200);
Vol_10=EeProm_Read(1,1);
Vol_1=EeProm_Read(2,1);
Mvol_10=EeProm_Read(3,1);
Mvol_1=EeProm_Read(4,1);
Out_Vol=Vol_10*1000+Vol_1*100+Mvol_10*10+Mvol_1;
goto_out_vol(Out_Vol);
	delayms(200);
while(1)
{
GetADC_to_shuzu(ADC1,BUBbling_num,BUBbling1);
in_vol_1602=(BUBbling1[BUBbling_num/2])*Vref/1023*1000*(24.98/3.28);//,o;

if(in_vol_1602>23000)
{
in_vol_1602=in_vol_1602-230;
}
GotoXY(0,3);
lcd_5_char(in_vol_1602);//24.98/3.28   in_vol_1602
GetADC_to_shuzu(ADC2,BUBbling_num,BUBbling2);
out_vol_1602=(BUBbling2[BUBbling_num/2])*Vref/1023*1000*(24.98/3.28);
GotoXY(1,3);
lcd_5_char(out_vol_1602);
GetADC_to_shuzu(3,BUBbling_num,BUBbling3);
TL5615_NUM=(BUBbling3[BUBbling_num/2])*3.000/1023/10.150/0.112*1000;
GotoXY(1,10);
lcd_4_char(TL5615_NUM);
warn(35,35,3);
Screen_Toggle=1;
		while(key1_num)  		{
			if(Screen_Toggle==1)
				{ //uchar ii=0;
					Screen_Toggle=0;
					mode_choose(2);
LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);
					LCD_SetDisplay(LCD_SHOW|LCD_CURSOR|LCD_FLASH);
				LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);  

4.2外部中断程序设计
在这里插入图片描述

图4.2 外部中断程序流程图

程序代码

Out_Vol=Vol_10*1000+Vol_1*100+Mvol_10*10+Mvol_1;
GotoXY(0,8);
lcd_5_char(Out_Vol*10);
				}
				switch(key1_num)
				{  //Vol_10,Vol_1,Mvol_10,Mvol_1;
				case 1:GotoXY(0,8);
						break;
				case 2:GotoXY(0,9);
						break;
					case 3:GotoXY(0,11);
						break;
					case 4:GotoXY(0,12);
						break;
				}
		}
}
}

4.4本章小结
本章是系统的软件设计部分,分别对各功能模块设计了流程图,同时,依据流程,对各功能块,及主程序,进行了设计。`软件设计主函数代码:
void main(void)
{
AUXR = AUXR|0x80; // T0, 1T Mode
delayms(10);
P1M1=0x07; //P1.0,P1.1,P1.2
P1M0=0x08;// //P1.3 P1.4
P2M1 =0x00;
P2M0 =0x3f;
//P2=((P2&0xf8)|0x07);
ADC_int(ADC0);
ADC_int(ADC1);
ADC_int(ADC2);
TCON=0x01;
IE=0x81;
//Vref=4.950;
LCD_Initial();
pwminit();
InitTimer0();
GotoXY(0,0);
coutstr(“IV:”);
GotoXY(1,0);
coutstr(“OV:”);
GotoXY(0,10);
coutstr(“CV DAC”);
mode_choose(0);
/
delayms(200);
Vol_10=EeProm_Read(1,1);
Vol_1=EeProm_Read(2,1);
Mvol_10=EeProm_Read(3,1);
Mvol_1=EeProm_Read(4,1);
Out_Vol=Vol_101000+Vol_1100+Mvol_1010+Mvol_1;
goto_out_vol(Out_Vol);
delayms(200);
while(1)
{
GetADC_to_shuzu(ADC1,BUBbling_num,BUBbling1);
in_vol_1602=(BUBbling1[BUBbling_num/2])Vref/10231000
(24.98/3.28);//,o;
//
if(in_vol_1602>23000)
{
in_vol_1602=in_vol_1602-230;
}
GotoXY(0,3);
lcd_5_char(in_vol_1602);//24.98/3.28 in_vol_1602

GetADC_to_shuzu(ADC2,BUBbling_num,BUBbling2);
out_vol_1602=(BUBbling2[BUBbling_num/2])Vref/10231000*(24.98/3.28);

GotoXY(1,3);
lcd_5_char(out_vol_1602);

GetADC_to_shuzu(3,BUBbling_num,BUBbling3);
TL5615_NUM=(BUBbling3[BUBbling_num/2])3.000/1023/10.150/0.1121000;
GotoXY(1,10);
lcd_4_char(TL5615_NUM);

warn(35,35,3);
Screen_Toggle=1;
while(key1_num) {
if(Screen_Toggle==1)
{ //uchar ii=0;
Screen_Toggle=0;
mode_choose(2);
LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);
LCD_SetDisplay(LCD_SHOW|LCD_CURSOR|LCD_FLASH);
LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); GotoXY(0,0);
coutstr(“Out_Vol: . V”);
GotoXY(1,0);
coutstr(“<05.00—30.00V>”);

Vol_10=EeProm_Read(1,1);
Vol_1=EeProm_Read(2,1);
Mvol_10=EeProm_Read(3,1);
Mvol_1=EeProm_Read(4,1);

Out_Vol=Vol_101000+Vol_1100+Mvol_1010+Mvol_1;
GotoXY(0,8);
lcd_5_char(Out_Vol
10);
}
switch(key1_num)
{ //Vol_10,Vol_1,Mvol_10,Mvol_1;
case 1:GotoXY(0,8);
break;
case 2:GotoXY(0,9);
break;
case 3:GotoXY(0,11);
break;
case 4:GotoXY(0,12);
break;
}
}
}
}`

5 系统测试与数据分析

5.1系统指标测试
5.1.1手动输出电压
在此测试中,输入电压设置为定值,负载设置为40 ohms,系统处于手动模式,UT39B数字万用表用作测试表,将万用表连接至可调电源模块的输出,控制部分处于手动模式,并且通过调节电位器大小来控制输出电压范围。
数控直流电源通电后图示如图5.1所示。
在这里插入图片描述

图5.1数控直流电源测试

由于UT39B万用表的精度,当输出电压超过20V时,被测电压的精度仅为3位数,根据表中所显示的误差可以得出:万用表测得的输出电压与单片机测得的输出电压几乎相同,正反向的最大误差范围分别为0.07V和-0.02V。从绝对误差的角度分析来看:最大正相对误差仅为0.71%,因此输出电压范围和精度在数控模式下还是能满足要求的。

由于UT39B万用表在20V时的精度的影响,因此被测电压的精度仅为3位数字,根据表中所显示的误差可以得出:用该万用表测量的输出电压几乎与单片机测量的输出电压相同,正反向的最大误差范围分别为0.07V和-0.08V,因此输出电压范围和精度在数控模式下还是能满足要求的。
5.1.3输入电压
在此测试中,输入电压设置为15v,负载电阻设置在40欧姆,系统处于数控模式,输入电压由电源设备YB1731控制,测试结果如表5.3所示:

由于万用表VC890D的精度要求,只能使用“ 20A”档位输出电流,并且测得的电压精度仅3位数,即小数点后仅2位。由于YB1731电源设备可提供的电压范围为0〜30V,因此提供的最大电流可达3A,考虑到系统内部本身的使用,当电源设备使用时,该测试的最大电流值无法测量得3A。 YB1731的电流约为2.5A,它是自动关闭并受保护的,因此无法进行测量。根据表中所提供的误差可以了解到:万用表测量的输出电压与单片机检测到的输出电压不同,最大误差为0.06A,即总误差范围可以控制在60mA以下,因此参数测得的时间能够满足需求。
5.2误差分析
这种设计对误差的要求不是很高。但是在要求输出电压高于输入电压的精度就不那么容易了,在此情况下,输出电流误差非常大,主要原因如下:
(1)YB1731电源设备比较陈旧,输出电流也比较小,高于25V时输出电压不够稳定,容易引起振动。
(2)这次设计的测量仪是一个三位半的数字万用表,对其测量精度有一定的范围,其中对电流的测量精度影响比较突出。
(3)由流经采样电阻的电流引起的压降过小且不够稳定,仅放大10倍后仍无法消除误差。电压放大是通过使用LM358放大器来完成的,模块自身设计时精度就不高,所以对误差的影响很大。
(4)该设计使用开关电源模块,工作频率高达400KHz,很容易对相邻电路造成干扰。
(5)由于电源和控制器两个模块没有在一起设计,因此两者之间需要额外的连接,当然杜邦电缆的内部电阻和接触电阻的质量很有可能会影响数据的测量和控制精度。
由于这些问题引起的误差,我将通过改善程序补偿周期和合理的设计电路等其他方法,以使这些精度符合正常的标准。
5.3本章小结
本章主要是调试数控电源的设计和制造,调试中分别对设计要求的各项输出指标进行的测试及数据采集,对调试数据也进行误差分析和总结。

6总结

该设计使用STC12C5A32S2单片机作为机器控制的主要组件,并使用XL6012升压模块和XL4016降压模块作为电源的核心模块。可以同时完成数字控制和手动模式。在数字控制模式下可以完成相应的电压控制按钮。手动模式可以通过电位器的大小来进行改变输出电压。设计制作的数控主流电源的调试,调试中分别对设计要求的各项输出指标进行的测试及数据采集,对调试数据也进行误差分析和总结。经过实物制作的实际调试,本设计性能可靠、有过压、过流报警、掉电保存等特点。
在制作过程中,遇到的第一个问题就是元器件的采购,由于是第一次自己动手制作,只能从淘宝网上查找,但面对众多的同类产品,不知道哪种更适合自己的设计,在采购回来后才发现,同类产品在应用上也是有不小的区别的。另外,在制作中,焊接技术差,看似焊牢的元件,在调试中才发现是虚焊,引起实物不能正常工作。因此还是要加强专业知识的积累和动手能力的培养,才有可能在以后的工作中有所建树。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值