89C51单片机为控制核心的开关电源优化设计
扫描二维码
随时随地手机看文章
关键词:开关电源;单片机;软件编程
引言
开关电源是利用现代电力电子技术控制功率开关管(MOSFET,IGBT)开通和关断的时间比率来稳定输出电压的一种新型稳压电源。从上世纪90年代以来开关电源相继进入各种电子、电器设备领域,计算机、程控交换机、通讯、电子检测设备电源、控制设备电源等都已广泛地使用了开关电源。利用单片机控制的开关电源,可使开关电源具备更加完善的功能,智能化进一步提高,便于实时监控。其功能主要包括对运行中的开关电源进行检测、自动显示电源状态;可以通过按键进行编程控制;可以进行故障自诊断,对电源功率部分实现自动监测;可以对电源进行过压、过流保护;可以对电池充放电进行实时控制。
开关电源的系统结构
通信用-48V开关电源结构图如图1所示:
图1开关电源结构图
市电经整流滤波和功率因数校正后得到高压直流电,然后通过DC/DC变换电路得到所需要的直流电压。控制回路从输出端取样并与设定基准进行比较,然后去控制逆变器,改变功率开关管的导通频率或导通/截止时间进行输出稳定;另一方面,根据检测电路提供的数据,经保护电路鉴别,利用控制电路对整机进行各种保护和蓄电池的充放电控制。控制电路是整个开关电源的核心部分,一般开关电源的控制电路主要有检测比较放大电路、电压—脉冲宽度转换电路(或电压—频率转化电路)、时钟振荡器(或恒脉宽发生器)、基极驱动电路、过压过流保护电路以及辅助电源等电路组成。存在着电路复杂,功耗大,灵敏度差,不能实现很好的控制等缺点。
采用单片机89C51模块组成的控制电路,它具有可编程、功能强、控制简单、集成度高等诸多优点,并对原来的电路存在的不足进行改进,其原理方框图如图2所示。
图2单片机控制电源结构图
本智能开关电源利用通信用开关电源的基础电路,以高性能单片机89C51为控制核心,组成数据处理电路,在检测与控制软件支持下,通过对开关电源输出电流、电压进行数据采样与给定数据比较,从而调整和控制开关功率管的工作状态,同时监测输出电流大小,进行电流控制。其电路的工作原理为:市电经整流滤波、功率校正电路PFC(Power Factor Correct)变成直流电送入功率变换电路(DC/DC),功率变换电路在脉冲宽度调制电路(PWM)和单片机的控制下输出稳定的直流电压。用户可根据需要通过键盘设定开关电源输出的电压值及最大输出电流值,单片机系统自动对电源输出电压和电流进行数据采样,并与用户给定数据进行比较,然后根据设置的调整算法控制开关调整电路,使电源输出电压符合给定值。单片机在调整电源输出电压的同时还要检测电路的输出电流,当输出电流超过给定值时,就启动保护电路,实现保护功能。为了使智能开关电源能可靠、安全地工作,本系统设置了多重监测和保护系统,主要包括过流保护和短路保护。单片机系统通过电流传感器检测开关功率管的输出电流,当电流超过给定值,单片机系统切断开关激励信号并发出声光报警,并对电池工作状况实施检测。
控制电路
控制电路采用ATMEL公司的89C51单片机,扩展了A/D、D/A、键盘显示、RS232通讯口电路。原理结构如图3所示。
图3控制电路原理结构图
控制系统通过I/O输入端口经D/A转换控制功率转换的开关的导通与关断时间,完成对输出电压的稳定,通过A/D转换完成对开关电源输出电压和电流的采样,通过系统软件实现了过压、过流保护及限流功能。同时采用双闭环控制系统,开关电源工作时,采用电压反馈由PWM控制实现对输出电压的稳压功能,控制闭环为电压环或电流环;在电池充电或过载时采用电流信号作为反馈,控制电池的充放电电流并实现过载保护的功能。为了精确控制开关电路的电压输出,把单片机的高频脉冲信号分频后变成适宜的开关脉冲信号,作为89C51的计数脉冲和门控信号。单片机把给定值与传感器采集的信号进行比较,产生误差信号。根据电压控制算法设置89C51产生不同占空比(0~90%)的方波信号,经过光电耦合器控制开关调整电路电压输出。输出端与开关电路进行光电隔离,从而避免了来自开关电源电路的骚扰信号对单片机系统正常工作的影响。
鉴于受控的开关电路输出电压的高精度和快速调整特性,可采用改进的 PID控制算法,该算法具有电压调整快、超调量小、性能稳定等优点。键盘与显示部分装在仪器操作面板上,由8位LED数码管,3个LED指示灯以及16个键构成,其中4位数码管显示电源电压,4位数码管显示电流,3个LED指示灯作为报警显示。
系统软件设计
本软件主要完成对信号采样,各种数据处理、以及对功率转换部分的控制等。本系统软件主要包括键开关扫描程序、故障判别子程序、均充及浮充子程序、中断检测子程序和通信子程序等。主程序流程图如图4所示。
图4 主程序流程图
在初始化过程中,先是将89C51各个输入端口复位,然后从EEROM中读出上次关机前存入的数据,控制开关电路,并进行显示。初始化完成后,开中断程序。若有中断请求则响应,否则进行数据采样并读取给定值,然后进行数据处理;若有短路或过流情况发生,则调用报警保护子程序;若要对电池浮一定的动态性,能在一定程度上反映出电池内部的变化及SoC的大小,但该方法在推导过程中是假设电流是时变的,若电池在一个较长时间段内恒流放电,则会大大降低SoC预测的准确性。基于状态空间的动态模型以反应物的动态变化建立模型,以测量的电流和电压作为输入量计算SoC,同时考虑了活性物质的扩散现象,以此提高SoC的精度,是一种较好的方法;但由于电池模型阶数较高,计算比较困难,模型的建立需要确定相当多的经验参数,给应用带来较大麻烦。
基于能量模型的SoC定义修正了原来 SoC模型的不足,考虑到电池的可恢复性,综合了电流、电压、电阻判断,在一定程度上提高了SoC的判断精度,但它没考虑温度的影响,需要大量试验数据。由于电池是密封的,所以外部可测参数只有电流和电压,采用Randels Ershler电池模型对电池建模,并通过精确的安时积分估算SoC,同时进行容量老化补偿、温度补偿、自放电补偿及放电率补偿,也不失为一种可行的方法。
上述方法能够在一定程度上反映剩余电量的多少,适用于电动车用电池SoC的预测,但是这些模型参数确定需要许多反复的迭代步骤,并且重要的是,这些算法必须知道电池的SoC初值。因为要实时计算显示SoC的值,这是需要时间的。模型越复杂,计算SoC所需时间也越多。 SoC的预测方法很多,但要达到较高的精度,在电池建模及SoC预测方法方面还有大量的工作可做。