带MPPT技术的光伏路灯控制系统探析
摘 要:太阳能最大功率点跟踪技术(MPPT)是光伏发电领域中一项非常具有价值的技术。使用Silicon Labs公司的C8051F330单片机,结合MPPT技术,设计了一套太阳能光伏路灯控制系统。系统除了具有蓄电池充、放电等常用功能外;为了节约电能,还设计了主、副路灯分时控制功能。系统软件利用RTX51多任务实时操作系统实现。 关键词:单片机;光伏发电;最大功率点跟踪;RTX 1 光伏路灯控制系统组成及功能 本路灯控制系统由太阳能电池板、蓄电池、路灯和系统控制器四大部分组成。其结构如图1所示。整个系统的关键部分是系统控制器,它不仅要实现普通光伏路灯的基本功能,如:路灯定时;蓄电池充放电的管理;蓄电池的过充、过
放保护;太阳能电池反接保护等,还要实现太阳能最大功率点跟踪的功能。 系统为了适应机动车道和非机动车道照明不同的情况,设计了双路路灯控制,即主灯主要为机动车道照明,副灯主要为非机动车道照明。并且两路路灯控制
互相独立,可根据需要分别进行定时。 2 主要功能单元及原理 2.1 主控单元 本系统选用的主控器件为美国Silicon Labs公司的
C8051F330型8位单片机。该单片机具有双路独立8/16位PWM输出功能;10位A/D;8K FLASH和768 Bytes的内部数据RAM;内部高频晶振频率最高可达
24.5 MHz;还有17个标准I/O口,是一款性价比很高的单片机。 图2中,S1为8位拨码开关,用来设定主、副路灯定时时间。因为主、副灯定时各占用4位拨码开关,所以可定时时间范围为1~15小时。 2.2 最大功率点跟踪控制 恒压跟踪方式(CVT)是一种具有控制简单、可靠性较高、稳定性好、易于实现等优点的太阳能最大功率点跟踪方法。但是由于它受温度影响较大,只能在一定的温度条件下进行最大功率点跟踪,而一些路灯的使用环境是较为恶劣的,所以,本系统使用了扰动观察法来实现太阳能最大功率点的跟踪。 扰动法是通过对太阳能电池在某一时刻的输出电压、输出电流进行检测,得到该状态下太阳能电池的输出功率,再将它与前一时刻的功率值比较,根据两次(也可多次采样)功率值的差值来确定下一步给定负载端参考电压调整的方向。 从功率比较的角度分析,假设两次采样的功率分别为P1,P2,ΔP=P2-P1。当ΔP>0时,说明参考电压调整的方向是正确的,需继续按原方向调整;当ΔP=0时,说明参考电压调整方向与预期的方向是相反的,需要反向调整。 一般来说,仅从功率比较的结果是不容易反映出系统变化的真实情况的。但是,如果将参考电压和功率结合起来考虑就比较理想了。本系统采用了比值比较的方式来判断参考电压和功率的变化情况,这里设定了一个比较标志Flag, 在实现MPPT算法时,为了增加系统响应的快速性,可以采用变步长的寻优法。由于光伏系统的特性较软,在正常情况下变化不是特别剧烈,所以一般都使用定步长寻优法,这样也利于程序的实现。 2.3 蓄电池充、放电控制 系统使用铅酸蓄电池作为储能元件,由于太阳能电池板发出的电能受天气情况影响较大,这就对蓄电池的充、放电提出了较高的要求,因此,本系统采用双标三阶段方法来给蓄电池充电。 双标三阶段充电法的充电步骤是:(1)当蓄电池端电压低于额定开路电压时,用太阳能电池所能提供的最大电流给蓄电池
充电,一直充到蓄电池端电压达到额定开路电压为止;(2)以额定开路电压为蓄电池充电,直到充电电流下降至额定浮充电流;(3)当蓄电池经过第2个充电状态后,再以额定浮充电压为标准给蓄电池充电。浮充电压的选择十分重要,因为根据蓄电池相关理论,如果浮充电压出现5%的误差就会导致蓄电池使用寿命缩短一半,所以在使用时一定要精确的对浮充电压进行定标。 系统在白天工作时使用霍尔电压、电流传感器对蓄电池的端电压和充电电流进行采样,单片机根据采样值与设定值的比较结果来产生PWM控制信号,对蓄电池充、放电的全过程进行监控。在夜间,由于没有了阳光,系统会自动关闭PWM信号输出,停止对蓄电池充电,这样也可以降低系统的总体功耗。当遇上阴雨天气,连续几天无法给蓄电池充电时,系统将根据设定的蓄电池最低放电电压来判断是否需要切断负载,以避免蓄电池由于过放电而损坏。 3 系统软件设计 在白天,系统正常工作时要进行以下主要任务操作:(1)蓄电池的充、放电控制;(2)稳定输出电压;(3)对太阳能电池板进行最大功率点跟踪;(4)判断是否天黑。夜间,系统进行的操作除了上述1、2两项外,还要进行路灯定时控制和判断是否天亮等操作。为了提高系统的实时性,故本系统采用了多任务并行的软件结构,即以上多个任务在处理器的控制下同时进行操作,这样就大大提高了系统的实时特性。3.1 RTX51多任务实时操作系统 RTX51是一个用于8051系列处理器的多任务实时操作系统,它可以简化那些复杂而且对时间要求较为严格的工程软件的设计工作。RTX51有两个版本:RTX51 Full和RTX51 Tiny。Full版本的RTX51使用四个任务优先权完成同时存在时间片轮转调度和抢先的任务切换。Tiny版本的RTX51是Full的一个子集,它可以很容易地在没有外部存储器的单片8051系统上运行,但它仅支持时间片轮转任务切换和使用信号量进行任务切换。由于本系统所设定的各任务之间的切换和调用不是十分复杂,所以采用的是Tiny RTX51,这样也不用再添加外部存储设备。 3.2 系统软件结构 光伏路灯控制 /***********************************************/ # include # include …… job0 () _task_ 0 //任务0——系统初始化;建立其他分任务 { os_create_task (1); os_create_task (2); os_create_task (3); while (1) { …… } } job1 () _task_ 1 //任务1——蓄电池充、放电控制子程序 { while (1) { …… } Os_wait(N); } job2 () _task_ 2 //任务2——路灯定时控制子程序 { while (1) { …… } Os_wait(N); } job3 () _task_ 3 //任务3——MPPT控制子程序 { while (1) { …… }
Os_wait(N); } …… 以上为本系统软件的主要结构。 系统软件主要执行的任务有:① 蓄电池的充、放电;② 稳定输出电压;③ 太阳能最大功率点跟踪;④ 负载定时控制。这些任务之间有着信号量和执行条件的约束等关系,如系统输出稳压值是依据蓄电池的端电压来确定的;当负载开始定时,就要关闭太阳能最大功率点跟踪功能等等。但是,它们在功能上又具有独立性,所以,在将它们分成独立的任务段的同时,还要保证各任务之间的信号量和约束条件参数的正确传递。 在以上的软件结构中,任务0的主要作用是初始化系统和建立其他几个独立的任务程序,在
RTX51系统中,可以利用os_create_task () 函数来建立新任务。每个新任
务都由一段无限循环的操作来实现,其中,os_wait (N) 函数为各个任务规定了运行时间,防止任务进入死循环,N为设定的时钟常数。各个任务之间利用RTX51中的其他系统函数来进行信号量的传递等操作。 4 结语 本文设计了一套具有MPPT功能的光伏路灯控制系统,并制作了实验板,经过一段时间的测试表明,添加了MPPT技术后,使太阳能电池板的发电效率提高了近25%,按市场均价40元/瓦来计算,一块100W的太阳能板就可以增加效益1000元左右,因此具有很高的实用推广价值。 参考文献 [1]欧阳名三.独立光伏系统中蓄电池管理的研究[博士学位论文][D].合肥工业大学,2004. [2]王长贵,王斯成.太阳能光伏发电实用技术[M].北京:化学工业出版社,2005. [3]周志敏,周纪海等.充电器电路设计与应用[M].北京:人民邮电出版社,2005,(10). [4]戴佳,苗龙,陈斌. 51单片机应用系统开发典型实例[M].北京:中国电力出版社,2005,(9).