资源描述
基于STC系列单片机的串联型开关电源设计与实现【实用文档】doc
文档可直接使用可编辑,欢迎下载
单片机及模数综合系统设计
课题名称:基于STC12系列单片机的串联型开关电源设计与实现
—-单片机控制部分
一、实验目的:本模拟电路课程设计要求制作开关电源的模拟电路部分,在掌握原理的基础上将其与单片机相结合,完成开关电源的设计。本报告旨在详述开
关电源的原理分析、计算、仿真波形、相关控制方法以及程序展示.
二、总体设计思路
本设计由开关电源的主电路和控制电路两部分组成,主电路主要处理电能,控制电路主要处理电信号,采用负反馈构成一个自动控制系统。开关电源采用PWM控制方式,通过给定量与反馈量的比较得到偏差,通过调节器控制PWM输出,从而控制开关电源的输出。当键盘输入预置电压后,单片机通过PWM输出一个固定频率的脉冲信号,作用于串联开关电源的二极管和三极管,使三极管以一定的频率导通与断开,然后输出进行AD转化,转化后的结果再给单片机进行输出,进行数码管显示.
系统的基本框图及控制部分如下:
控制过程原理分析:单片机所采用的芯片为STC12C5A60S2,该芯片在拥有8051内核的基础上加入了10为AD和PWM发生器。通过程序,即可控制单片机产生一定占空比的PWM脉冲,将此脉冲输入到模拟电路部分,在模拟电路的输出端即可产生一定的输出电压,可比较容易的通过程序来实现对输出电压的控制。但上述的开环控制是无法达到精确的调节电压,因此需要采用闭环控制来精确调制。即,对输出电压进行AD采样,将其输入回单片机中进行数据处理。单片机根据处理的结果来对输出电压做出修正,经过这样的逐步调节即可达到闭环的精密输出。由此原理,可以将整个过程分成一下模块:PWM波形输出模块,模拟电路模块,AD转换模块,数码管显示模块,键盘输入模块。
控制过程基本思路为:首先从键盘输入一个电压值,并把该电压值在数码管上面显示出来,再由A/D转换模块对串联开关电源电路的输出端进行电压采集,将采集到的电压值与键盘输入的电压值进行比较,通过闭环算法,控制PWM的脉宽输出,由此控制串联开关电压电源电路,改变输出的电压值,使得输出值与设定的电压值相等。
三、 系统各单元模块电路设计
1、 键盘输入数据部分
分别接到单片机的P2.4,P2.5,P2.6,P2.7。每路通过电阻进行上拉,可以编程实现控制单片机运行不同程序。为了判断键盘上面的按键是否有按下的,可以事先对P2.4,P2。5,P2。6,P2。7端口赋值,便可以知道具体是哪个按键被按下了。例如:P2。4=0,便可知道P2.4对应的按键已经按下了。
键盘输入模块程序如下:
void key( ) //键盘扫描函数
{
if(P2_6== 0)
{
delay(10);//延时去抖动
if(P2_6== 0)
{
while(P2_6== 0)
if(a<9)
{a++; }
else a=0;}
}
if(P2_5 == 0)
{
delay(10);//延时去抖动
if(P2_5 == 0)
{
while(P2_5== 0);
if(b<9)
{b++; }
else(b=0);}
if(P2_4 == 0)
{
delay(10);//延时去抖动
if(P2_4 == 0)
{
while(P2_4== 0);
if(c<5)
{c++;}
else c=0;}}
if(P2_7==0)
{
delay(10);
if(P2_7==0)
{
while(P2_7==0);
P1_5=!P1_5;
} }}
2、数码管数据显示部分
知道了上面在键盘输入的数值后,便要在数码管上面显示出来。
该实验板的8位数码管是共阴极的数码管,使用端口为P0和P2.0—P2.4口,且为动态数码管,因此在同一时间,只有一个数码管是亮着,但由于人眼的视觉残留,使得看上去是全部一起亮着的.8位分别有段选和位选,段选就是要一个数码管显示的字型,而位选则是由低电平选中所要那一个数码管,该数码管才能亮.因此要使得数码管亮并显示数字,则必须在位选时该数码管的位选管脚出于低电平,然后再通过段选显示字型。如下图所示的数码管:
数码管显示模块程序为:
void display(float x)
{
uint M,N,I;
I=100*x/100;
N=(100*x-100*I)/10;
M=100*x—100*I-10*N;
P2_0=0;
P0=table[0];
delay(10);
P2_0=1;
P2_1=0;
P0=gao_table[I];
delay(10);
P2_1 =1;
P2_2=0;
P0=table[N];
delay(10);
P2_2= 1;
P2_3=0;
P0=table[M];
delay(10);
P2_3=1;}
3、控制PWM输出部分
STC12C5A60S2系列单片机集成了两路可编程计数器阵列(PCA)模块,可用于软件定时器,外部脉冲的捕捉,高速输出以及脉宽调制(PWM)输出.在该实验中主要用到PWM脉宽调制输出,通过对特殊功能寄存器初始化,就可以在P1.3(选择模式0时) 或P1。4(选择模式1时)端口输出可调占空比的高速脉冲。
PWM模块程序如下:
void PWM_Drv_Init(void)
{
CCON = 0;//初始化PCA控制寄存器
CL = 0;//初始化PCA计数器
CH = 0;
CMOD = 0x08;
CR = 1;}
void PWM0_Drv_SetDuty(unsigned char DutyValue)
{
CCAP0H = CCAP0L = DutyValue;//设置看空比
CCAPM0 = 0x42;
CR = 1;}
PWM 仿真图为:
4、AD转换模块(完成万用表功能,即测量开关电源输出电压)
STC12C5A60S2系列单片机自带有8路10位高速A/D转换器,在本实验中只用到其中的一路,故可以通过软件设计选择其中的一路用来测量电压。在不需作为A/D转换的端口可以继续作为I/O口使用。
AD转换对特殊功能寄存器的初始化主要有ADC_CONTR和A/D转换结果寄存器ADC_RES(用来存放高八位) ﹑ADC_RESL(用来存放低两位);在ADC_CONTR中包含有ADC电源控制位ADC_POWER,模数转换器转换速度控制位SPEED1 ﹑SPEED0,模数转换器转换结束标志位ADC_FLAG,模数转换器(ADC)转换启动控制位ADC_START,模拟输入通道选择CHS1/CHS2/CHS3。
由于是2套时钟,在设置ADC_CONTR控制寄存器的语句执行之后,要经过4个CPU时钟的延时,其值才能够保证被这只进ADC_CONTR控制寄存器,所以设置ADC_CONTR控制寄存器后,要加4个空操作延时才能正确读到ADC_CONTR寄存器的值.
ADC的结构如下图所示:
AD转化模块的程序为:
void ADC_Drv_Demo(void)
{
if(ADC_Finish_Flag == TRUE)
{
ADC_Finish_Flag = FALSE;
ADC_Drv_StartCh(ADC_channel);
m=ADC_Result[ADC_channel]*5。0/1024;
}}
5、闭环控制算法
这部分是整个实验中最重要的部分,该部分主要是通过A/D采集数据控制PWM输出,PWM控制开关电源输出,以达到稳定,即让开关电源输出电压稳定在键盘输入的电压值。针对前面的要求,则需要用单片机来完成所有的控制与计算。
在该实验中,作为AD采集的端口为P1.7,PWM输出端口为P1。3,在采集完电压数据的时候把数据存放在ADC之中,而从键盘输入数值时,键盘上显示的是一个小数,但在单片机中存在中间变量temp的是一个整数,为小数的1000倍,因此在引用数码管显示的数值时要将temp除以1000才能得到实际的设置电压数值Vs;另一方面,采集回来的电压ADC要转换成实际的电压数值,则由下面的算法得出:
真实值 Vr = ADV*5。0/1024.0
在得到这两个数值之后对他们进行比较,要是Vr<Vs,说明采集回来的电压偏低,此时则要降低PWM输出脉冲的占空比;同理,当Vr〉Vs时,则要增大PWM输出脉冲的占空比,由此而使得串联开关电路的输出电压与事先所设置的电压值相同。
实际测得的电压与设置的电压对比表格如下:
Vs
<0.8
0。8
0。9
1。0
1.1
1.2
1。3
1。4
1.5
1.6
1.7
Vr
—
0.79
0.89
0.98
1.08
1.18
1.28
1。39
1。49
1.59
1.7
1.8
1。9
2。0
2。1
2.2
2。3
2.4
2。5
2.6
2。7
2.8
2。9
1。78
1.88
2。02
2。08
2。17
2.28
2.38
2。51
2.58
2。68
2。78
2.91
3.0
3.1
3。2
3.3
3.4
3。5
3.6
3。7
3.8
3.9
4.0
>4.0
2.98
3。12
3。19
3.28
3.39
3。48
3.59
3。68
3。79
3。96
3.98
-
通过上面的表格可以看出来,虽然实际测出来的电压Vr和设置的电压Vs有一定的误差,但是总体还是在设置的电压附近波动,所能输出地电压范围为0.8v~4.0v。
误差原因分析:(1)单片机电源不够稳定,在接入电脑后给单片机提供的电压小于5V(2)提供给AD转换的参考电压不够精确,使转化存在误差。
四、 心得体会
通过这次实验让我知道理论需要联合实际,只有将自己所掌握的知识真正应用于实际才算真正的掌握了知识。在刚开始做的时候我对于单片机的知识理论只是有一些模糊的印象,不能真正掌握单片机的知识,比如用AD采样需要用单片机的哪些管脚,还有数码管需要用哪些管脚控制,并且哪些管脚控制段选,哪些控制位选。这些我都不太清楚,但通过请教才会用程序写出来。虽然这次实验做出来了,但是我还是有些知识无法真正掌握,比如定时器中断或定时,所以这次实验我只能用delay延时来写.
通过这次实验我还注意到细节决定一个程序是否能成功运行,比如我在写程序是应用了if……else格式,可是因为在写的过程中括号没对齐,使程序没能成功运行,经过同学帮忙才成功运行.还有的细节就是关于键盘的防抖动问题。
总体来说,我通过这次课程设计不单单学到了很多单片机和C51编程的的知识,更多的是学会了学习的方法,能够将所学到的知识用到实验上面,可以把知识记得更清楚。这还更多地提高了在遇到实际问题时该怎样解决实际问题的能力.更深入地学习C语言,又可以更多地提高自己的逻辑,思考能力,使思维结构更严谨。希望在以后的学习之中可以更多地接触到这样的实验,那样就可以更好地提高自己的动手能力与对所学知识的运用能力
本实验C程序源代码:
/******************************************************************************/
/***文件名:开关稳压电源.c*****************************************************/
/***功能:设定电压初始值,使得输出电压值与数码管显示值相同*********************/
/***单片机型号:STC12C5A60S2(带AD转换与PWM脉宽调制输出功能)**************/
/******************************************************************************/
/******************************************************************************/
#include ”stc12c5a60s2。h"
#include 〈intrins。h〉
#define uint unsigned int
#define uchar unsigned char
#define TRUE 1
#define FALSE 0
void delay( uint z);//延时函数声明
void display(float m ); //显示函数声明
void key( );//键盘扫描函数
void ADC_Drv_InitCh(unsigned char ChNo);
void ADC_Drv_StartCh(unsigned char ChNo);
void ADC_Drv_Service(void);
void ADC_Drv_Demo(void);
void PWM_Drv_Init(void);
void PWM0_Drv_SetDuty(unsigned char DutyValue);
uchar ADC_channel =7;//选中哪一个通道的变量(范围 0 -- 7)
uint ADC_Result[8]=0; //保存ADC转换结果
float m,n;
uchar D;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code gao_table[]={0x40,0x79,0x24,0x30,0x19,0x12};
sbit P2_0=P2^0;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
sbit P2_4=P2^4;
sbit P2_5=P2^5;
sbit P2_6=P2^6;
sbit P2_7=P2^7;
sbit PWM0=P1^3;//定义PWM0的输出端
sbit P1_5=P1^5;
bit ADC_Finish_Flag=FALSE;//ADC完成标志
uint a,b,c;
void main( )
{
a=0,b=0,c=0,D=100;
P1_5=0;
ADC_Drv_InitCh(7);
ADC_Drv_StartCh(7);
PWM_Drv_Init( );
while(1)
{
key( );
n=c+0。1*b+0.01*a;
ADC_Drv_Service();
ADC_Drv_Demo();
PWM0_Drv_SetDuty(D);
if(m<n)
{
if((m+0。05)>n);
else
{
if(D<=0)
D=0;
else
D——;
}
}
if(m>n)
{
if((m—0。05)〈n);
else
{
if(D〉=255)
D=255;
else
D++;
}
}
if(P1_5)
display(m);
else
display(n);
}
}
void delay(uint z) //延时函数
{
uint x,y;
for(x=z;x〉0;x—-)
for(y=110;y>0;y--);
}
void key( ) //键盘扫描函数
{
if(P2_6== 0)
{
delay(10);//延时去抖动
if(P2_6== 0)
{
while(P2_6== 0);
if(a<9)
{a++; }
else a=0;
}
}
if(P2_5 == 0)
{
delay(10);//延时去抖动
if(P2_5 == 0)
{
while(P2_5== 0);
if(b<9)
{b++; }
else(b=0);
}
}
if(P2_4 == 0)
{
delay(10);//延时去抖动
if(P2_4 == 0)
{
while(P2_4== 0);
if(c<5)
{c++;}
else c=0;
}
}
if(P2_7==0)
{
delay(10);
if(P2_7==0)
{
while(P2_7==0);
P1_5=!P1_5;
}
}
}
void display(float x)
{
uint M,N,I;
I=100*x/100;
N=(100*x-100*I)/10;
M=100*x-100*I—10*N;
P2_0=0;
P0=table[0];
delay(10);
P2_0=1;
P2_1=0;
P0=gao_table[I];
delay(10);
P2_1 =1;
P2_2=0;
P0=table[N];
delay(10);
P2_2= 1;
P2_3=0;
P0=table[M];
delay(10);
P2_3=1;
}
void ADC_Drv_InitCh(unsigned char ChNo)
{
P1ASF = P1ASF | (0x01 << ChNo);//初始化相应通道工作在AD模式下
}
void ADC_Drv_StartCh(uchar ChNo) //转换启动
{
uint Delay = 0x00;
P1ASF = P1ASF | (0x01 << ChNo);//初始化相应通道工作在AD模式下
ADC_RES = 0;//Clear previous result
ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ChNo; //
for(Delay = 0x00;Delay < 500;Delay++);//ADC power-on and delay
IE = 0xA0 | IE; //可位寻址中断允许寄存器用于AD中断
EA = 1;//单片机CPU总中断
}
void ADC_Drv_Service(void)
{
ADC_Result[ADC_channel] = ADC_RES;
ADC_Result[ADC_channel] = (ADC_Result[ADC_channel] 〈〈 2) | ADC_RESL;
ADC_Finish_Flag = TRUE;
}
void ADC_Drv_Demo(void)
{
if(ADC_Finish_Flag == TRUE)
{
ADC_Finish_Flag = FALSE;
ADC_Drv_StartCh(ADC_channel);
m=ADC_Result[ADC_channel]*5。0/1024;
}
}
void PWM_Drv_Init(void)
{
CCON = 0;//初始化PCA控制寄存器
CL = 0;//初始化PCA计数器
CH = 0;
CMOD = 0x08;
CR = 1;
}
void PWM0_Drv_SetDuty(unsigned char DutyValue)
{
CCAP0H = CCAP0L = DutyValue;//设置看空比
CCAPM0 = 0x42;
CR = 1;
}
摘 要:高功率密度是当今开关电源发展的主要趋势,要做到这一点,必须提高磁元件的功率密度平面变压器因为特殊的平面结构和绕组的紧密耦合,使得高频寄生参数大大降低,极大地改进了开关电源的工作状态,因此近年来得到了广泛的使用研究了几种不同的平面结构和绕组制作的方式,介绍了设计平面变压器的一个标准方法,从而使得设计过程变得更加简单,大大降低了设计成本.最后,比较了平面变压器和传统变压器的一些参数,并给出了设计方针.
关键词:平面变压器;漏感;插入技术
0 引言
磁性元件的设计是开关电源的重要部分,因为平面变压器在提高开关电源的特性方面有着很大的优势,因此近年来得到了广泛的应用.对于一个理想的变压器来说,初级线圈所产生的磁通都穿过次级线圈,即没有漏磁通.而对普通变压器来说,初级线圈所产生的磁通并非都穿过次级线圈,于是就产生了漏感,电磁耦合的紧密要求也无法满足.而平面变压器只有一匝网状次级绕组,这一匝绕组也不同于传统的漆包线,而是一片铜皮,贴绕在多个同样大小的冲压铁氧体磁芯表面上.所以,平面变压器的输出电压取决于磁芯的个数,而且平面变压器的输出电流可以通过并联进行扩充,以满足设计的要求.因此,平面变压器的特点就显而易见了:平面绕组的紧密耦合使得漏感大大地减小;平面变压器特殊的结构使得它的高度非常的低,这使变换器做在一个板上的设想得到实现.但是,平面结构存在很高的容性效应等问题,大大限制了它的大规模使用,不过,这些缺点在某些应用中,也有可能转换为一种优点.另外,平面的磁芯结构增大了散热面积,有利于变压器散热.
1 平面变压器的特性研究
如前所述,平面变压器的优点主要集中在较低的漏感值和交流阻抗.绕组问的间隙越大意味着漏感越大,也就产生更高的能量损失.平面变压器利用铜箔与电路板间的紧密结合,使得在相邻的匝数层间的间隙非常的小,因此能量损耗也就很小了.
在平面型变压器里,其“绕组”是做在印制电路板上的扁平传导导线或是直接用铜泊.扁平的几何形状降低了开关频率较高时趋肤效应的损耗,也就是涡流损耗.因此,能最有效地利用铜导体的表面导电性能,效率要比传统变压器高得多.图1给出了一个平面变压器的剖面图,并且利用两层绕组间距离的不同,而获得在不同间隙下的漏感和交流阻抗值.
图2与图3给出了在不同的间隙下漏感和交流阻抗的变化,可以明显地看出间隙越大,漏感越大,交流阻抗越小.在间隙增加1mm的状况下漏感值增加了5倍之多.因此,在满足电气绝缘的情况下,应该选用最薄的绝缘体来获得最小的漏感值.
然而,容性效应在平面变压器中是非常重要的,在印制电路板上紧密绕制的导线使得容性效应非常的明显.而且绝缘材料的选取对容性值也有着非常大的影响,绝缘材料的介电常数越高,变压器的容性值越高.而容性效应会引起EMI,因为从初级到次级的绕组中只有容性回路的绕组传播这种干扰.为了验证,笔者做了一个试验,在铜导线的间隙增加O.2mm的情况下,而电容值就减少了20%.因此,如果需要一个比较低的电容值,则必须在漏感和电容值之间做出一个折中的选择.
2 插入技术
插入技术是指在布置变压器原、副边绕组时,使原边绕组与副边绕组交替放置,增加原、副边绕组的耦合以减小漏感,同时使得电流平均分布,减小变压器损耗.
现在插入技术的研究被分为两个方面,即应用于变压器的插入(正激电路)和应用于连接电感器的插入(反激电路).因此,插入技术现在已经被放在不同的拓扑中作为不同的磁性部件来研究.
2.1 应用于平面变压器的插入技术
应用于变压器中的插入技术的主要优点如下:
1)使变压器中磁性能量储存的空间减少,导致漏感的减少;
2)使电流传输过程中在导体上理想分布,导致交流阻抗的减少;
3)绕组间更好的耦合作用,导致更低的漏感.
为了说明插入技术的特征,图4给出了应用3种不同插入技术的结构,P代表初级绕组,s代表次级绕组.试验显示SPSP结构是最好的,因为初级和次级的绕组都是间隔插人的.图5显示了在500 kHz时,3种结构的交流阻抗和漏感值,通过比较可以很容易地发现应用了插入技术的变压器,交流阻抗和漏感值都有了很大的减少.
2.2 多绕组变压器中平面结构的优势
平面变压器另一个重要的优点是高度很低,这使得在磁芯上可以设置比较多的匝数.一个高功率密度的变换器需要一个体积比较小的磁性元件,平面变压器很好地满足了这一要求.例如,在多绕组的变压器中需要非常多的匝数,如果是普通的变压器将会造成体积和高度过大,影响电源的整体设计,而平面变压器则不存在这一问题.
另外,对于多绕组的变压器来说,绕组间保持很好的耦合非常重要.如果耦合不理想则漏感值增大,将会使得次级电压的误差增大.而平面变压器因为具有很好的耦合,使得它成为最佳的选择.
2.3 在不同拓扑中平面变压器的作用
在不同的拓扑中,磁性元件的作用也是不同的.在正激变换器中的变压器,磁性能量在主开关管开通的时候由初级绕组传递到次级绕组中.然而,在反激变换器中的“变压器”并不完全是一个变压器,而是两个连接的电感器.在反激拓扑中的“变压器”在主开关管开通的时候初级绕组储存能量,而在关闭的时候将能量传送到次级绕组.因此,这种插入技术的优点同上面相比是不同的.应用于这种变压器的插入技术的特点如下:
1)在磁芯中储存的能量没有减少,因为电流在某时刻只能在一个绕组中流动,并且没有电流补偿;
2)电流的分布并不理想,原因同上,因此交流阻抗也没有减小;
3)插入使得绕组间产生较好的耦合,因此有比较小的漏感值.
3 平面变压器的标准化设计
平面变压器的优点如上所述,同样它也有缺点,其最主要的缺点就是设计的过程非常复杂,而且设计成本也非常高.
下面介绍一种标准的设计平面变压器的程序步骤[3];它通过提供一个标准的匝数模型的设计,使之能够被使用于不同的平面变压器中,从而使得设计过程大大简化,费用大大降低.
在双面PCB板的每一层都是由一到多匝的绕组组成的,而且所有的层都保持着一样的物理特性:即相同的形状和相同的外部连接点.在有些多匝的层次中,这个外部连接点是不同匝数间的电气连接点.如果有些层只有一匝,它也可以被印制在PCB的双面来降低交流阻抗.使用铜箔直接印制在PCB板上来替代传统的导线,即使在许多需要很多匝数的开关电源中,变压器依旧能保持一个很小的体积,这便大大减小了整机的体积.具体的设计步奏和注意事项请参阅文献[3].图6显示了一个顶层的标准匝数设计的例子,它使用的是罐形(RM)磁芯.
铜箔高度按照对应于最大开关频率时的趋肤深度选取,这样可以使铜箔的所有部分都成为电流通路,大大减少集肤效应的影响.因此,应该使每一种开关频率对应于不同的铜箔高度.
4 实验论证
为了比较平面变压器和传统变压器,分别做了两种变压器的模型,一种使用平面结构并使用了插入技术,另一种使用铜线分别在初级和次级绕制而成.两种变压器都被运用于一个互补控制的半桥变换器中.两个变压器的参数如下:
初级 12匝:
次级两个l匝的绕组(1:1中心抽头).
传统变压器使用漆包线作为绕组,虽然在这些线圈中电流密度不尽相同,选择电流密度小于7.5A/mm.
平面变压器初级绕组做成4层,有4个并列的次级.这个变压器的最终结构如图7所示.
两种变压器都使用了同样的磁芯RM10,比较了两种变压器的漏感,交流阻抗和占用的面积,结果列于表1.
由表1可知,平面变压器的漏感仅为传统变压器的1/5,交流阻抗也仅为l/3,由此可见这将大大提高变换器的工作特性.而且,由于结构的更加紧凑,使得可以使用更小的RM8磁芯.
5 结语
平面变压器在减小漏感、交流阻抗等方面有着非常大的优点,并且因为体积的小巧使之成为一种非常好的磁性元件.给出了一种标准的设计平面变压器的方法,使得设计平面变压器变得更加容易,成本也将大大降低.可以预见,平面变压器将有着相当好的应用前景.
基于PID控制方式9A开关电源Psim仿真研究
学院:电气与光电工程学院
专业:电气工程及其自动化
班级:13电卓
姓名:唐修亮
学号: 13020425
绪论
开关电源是利用现代电力电子技术,控制开关管开通和关断的时间比率,维持稳定输出电压的一种电源,开关电源一般由脉冲宽度调制(PWM)控制IC和MOSFET构成。随着电力电子技术的发展和创新,使得开关电源技术也在不断地创新。目前,开关电源以高效率、小体积、重量轻、安全可靠等特点,以用来作为电脑、家电、通信设备等现代化用电设备的电源,为世界电子工业产品的小型化、轻型化、集成化作出了很大的贡献,是当今电子信息产业飞速发展不可缺少的一种电源方式。
开关调节系统常见的控制对象,包括单极点型控制对象、双重点型控制对象等。为了使某个控制对象的输出电压保持恒定,需要引入一个负反馈。粗略的讲,只要使用一个高增益的反相放大器,就可以达到使控制对象输出电压稳定的目的。但就一个实际系统而言,对于负载的突变、输入电压的突升或突降、高频干扰等不同情况,需要系统能够稳、准、快地做出合适的调节,这样就使问题变得复杂了.例如,已知主电路的时间常数较大、响应速度相对缓慢,如果控制的响应速度也缓慢,使得整个系统对外界变量的响应变得很迟缓;相反如果加快控制器的响应速度,则又会使系统出现振荡。所以,开关调节系统设计要同时解决稳、准、快、抑制干扰等方面互相矛盾的稳态和动态要求,这就需要一定的技巧,设计出合理的控制器,用控制器来改造控制对象的特性.
常用的控制器有比例积分(PI)、比例微分(PD)、比例—积分-微分(PID)等三种类型。PI控制器可以提供超前的相位,对于提高系统的相位裕量、减少调节时间等十分有利,但不利于改善系统的控制精度;PI控制器能够保证系统的控制精度,但会引起相位滞后,是以牺牲系统的快速性为代价提高系统的稳定性。PID控制器兼有二者的优点,可以全面提高系统的控制性能,但实现与调试要复杂一些。本文中介绍基于PID控制器的Buck电路设计。
一.设计要求及设计背景
1。设计要求
依据技术指标设计主功率电路,采用参数扫描法,对所设计的主功率电路进行仿真;
掌握小信号建模的方法,建立Buck变换器原始回路增益函数;
采用Matlab绘制控制对象的Bode图;
根据控制对象的Bode图,分析所需设计的补偿网络特性进行补偿网络设计。
采用所选择的仿真软件进行系统仿真,要求有突加、突卸80%负载和满载时的负载特性,分析系统的静态稳压精度和动态响应速度。
2.设计背景
Buck变换器最常用的变换器,工程上常用的拓扑如正激、半桥、全桥、推挽等也属于Buck族,其优点有输出电流纹波小,结构简单,变比可调,实现降压的功能等。然而其输出电压纹波较大,buck电路系统的抗干扰能力也不强。为了使其具抗干扰能力,输出电流达到所需的等级,减小其电压纹波,现设计校正网络使其闭环,提高系统的能力。
二.Buck变换器主电路设计
1技术指标:
输入直流电压(VIN):12V;
输出电压(VO):5V;
输出电流(IN):9A;
输出电压纹波(Vrr):50mV;
基准电压(Vref):1。5V;
开关频率(fs):100kHz;
2主电路及参数计算
2。1主电路
图1 buck主电路
2.2滤波电容计算
输出纹波电压只与电容容量及ESR有关:
(1)
电解电容生产厂商很少给出ESR,而且ESR随着电容的容量和耐压变化很大,但C与RC的乘积趋于常数,约为50~80μ·ΩF。本次设计中取为75μ·ΩF,由式(1)可得:RC=27.78mΩ,C=2700μF。
1.2.3滤波电感的计算
(2)
(3)
(4)
图2 开关管开通及关断时的等效电路
由基尔霍夫电压定律可知开关管导通关断满足下列方程
假设: 其中L中串联电阻
得
当L=16.60uH时,输出电流为:
当L=16.60uH时,输出电压为:
输出电压和电流以及输出电压纹波如下图所示:
当L=16.60μH时,
电感电流在9.6~10。8之间波动,
符合△iL≤0.2IN=1。8A的设计要求,并且理论分析与仿真结果一致。
三.补偿网络设计
图7 Buck变换器控制图
3.1 原始回路增益函数
采用小信号模型分析方法可得buck变换器原始回路增益函数
则(4)
假设:PWM锯齿波幅值
再假设采样电阻Rx=3KΩ,Ry=1.3KΩ
则采样网络传递函数
(5)
当S=0时,原始函数增益为:
所以极点频率
根据原始系统的传递函数可以得到的波特图如图8所示,MATLAB的程序如下:
num=[1.8*10^(—4) 2。4];
den=[4。48*10^(-8) 29.6*10^(-6) 1];
H=tf(num,den);
bode(H);
[mag,phase,w]=bode(H);
[gm,wcg,wcp]=margin(mag,phase,w);
[pm,wcg,wcp]=margin(mag,phase,w);
margin(H);
display(pm);
display(gm);
图8 原始回路传递函数波特图
从图8中可以得出起初的相位裕度:40。5°
穿越频率:1.49e3Hz
根据要求相位裕度应达到50°-55°
穿越频率提升到(即10kHz—20kHz)
均不满足,因此需提高其相位裕度,穿越频率。
3.2补偿网络的设计
原始系统主要问题是相位裕度太低、穿越频率太低。改进的思路是在远低于穿越频率fc处,给补偿网络
展开阅读全文