太阳能光伏发电系统控制器的设计
摘 要 : 介绍了以 89C51 系列单片机为核心的控制器的基本原理及其功能,给出了太阳能发电系统中控制器的数据采集和蓄电池控制等环节的硬件接口电路设计方法。所设计的太阳能控制器基本功能完善,性能稳定可靠、数据实时性好、功耗低且电路简单,便于维修。
关键词 : 太阳能光伏发电系统 ; 89C51 单片机 ; 控制器
0 引言:
太阳能光伏发电系统是利用太阳能电池板的光伏效应,将太阳光辐射能直接转换成电能的一种新型发电系统。一套基本的太阳能光伏发电系统一般是由太阳能电池板、太阳能控制器、逆变器和蓄电池构成。 在几个组成部分中,控制器的作用是对系统运行状态进行数据采集和监控,控制整个系统充放电回路的状态,保证供电系统能在长期无人值守的情况下可靠地运行,配以输入、输出、显示、控制等外围电路,组成一个实用控制系统。 控制器的结构框图如图 1 所示。控制器的核心是宏晶公司的 89C51 系列单片机 。该单片机配合的各种转换和驱动模块,使用方便,易于维护。 且该 A/D 转换速度快,数据实时性极好, 功耗低。对处在边远地区,交通不便的太阳能光伏发电系统的正常运行提供了更多的保障。人们对能源的需求量日益加大,致使化石能源( 石油、煤炭等 )的储量迅速接近枯竭。而且化石能源在开采、运输、使用时,会对人类的生存环境造成严重破坏。在这种背景下,太阳能的利用,特别是太阳能光伏发电,越来越受到人们的重视。在太阳能光伏发电系统中,控制器占据着极其重要的位置。但是,以往控制器因电路复杂、不规范,造成控制器故障较多,给日后的维修带来了麻烦。为此,根据市场需求,按照技术规范的要求,设计了一款性能优异、稳定可靠、电路简单、数据实时性好、功耗低的太阳能控制器。
1 控制器的基本工作原理
控制器是通过采集太阳能电池板和蓄电池的电压通过ADC0809进行转换然后送到单片机通过内部程序进行判别控制工作状态LED的亮灭还有继电器的通断,也可以通过按键提前设定好时间进行控制。
2 控制器的基本工作模块
控制器的基本工作原理及其功能电源和复位模块太阳能电池电压采样和蓄电池电压采样模块,定时模块,输出驱动模块。控制器需对太阳能光伏发电系统的运行情况和环境状况进行检测,包括光强、蓄电池电压和电池板电压等,并最终完成控制器具有的控制和保护功能。如过充和过放保护、负载过流及短路保护、过压保护、太阳能电池反接保护、蓄电池反接保护等。
太阳能电池板和蓄电池电压采集模块 图1
2.1太阳能电池板和蓄电池电压采集模块,J1为接线端子,太阳能电池板和蓄电池分别接到1、2和3、4上,因为ADC0809芯片的输入电压不能大于5V,所以经过固定电阻R1、R3和滑动变阻器R2、R4分压,得到一个小于5V的电压,然后分别从IN-0和IN-1输入。经过AD转换送到单片机进行处理。
按键定时模块
2.2定时模块,此模块是通过三个独立按键S1、S2、S3组合使用的,按下S1时对时间进行设定,S2、S3分别为加减键。然后再次按下S1时设定结束。设定过程中通过两位共阴极数码管进行动态显示,数码管用一个74LS245进行驱动,输入端统一接P2口,两个公共端经过74LS04然后接到P3口。
输出驱动模块
此模块用三个5V继电器分别控制负载、太阳能电池板、和蓄电池,把三个继电器的动触头连接在一起,三个继电器分别接Q5、Q6、Q7 NPN三极管,三极管的基极通过1k的电阻接到单片机的三个IO口,通过单片机控制三极管的通断从而控制继电器的通断,R24、R26、R25分别和R12 、R10、R11并联,R24、R26、R25是三个泄放电阻,当三极管的基极积累了电荷的时候会通过这三个电阻释放掉,从而避免三极管误动作。根据采集的太阳能电池板的电压天气晴朗的时候打开K2、K3关闭K1,天气阴暗的时候关闭K2打开K3和 K1。另外当蓄电池充满时关掉K2,反之打开K2。
2.3控制器还用了四个发光二极管来显示太阳能电池板的工作状态、蓄电池的工作状态、负载工作状态、控制其本身的工作状态。
3 控制器的软件设计
总的流程如图所示,首先复位,然后定义变量和初始化,并且进行看门狗子程序。然后处理太阳能和蓄电池的电压(每10s采集一次,采集20次,去掉两个最大值和两个最小值,然后求平均值)判断电压是否小于2V,如果小于2V,说明天黑处理天黑子程序(蓄电池给负载供电),如果大于2V说明天明,处理白天子程序(对电池进行充电)。
4 结束语
所有设计的太阳能的基本功能比较完善,数据实时性好,性能稳定、可靠。另外控制器的电路简单,便于维修,成本低廉,适合市场推广。
太阳能光伏发电控制器设计报告 - 图文
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)