基于STC单片机的太阳能跟踪控制器设计
2012-10-24杨家荣
杨家荣
(上海电气集团股份有限公司 中央研究院,上海200070)
当前,人类面临的能源危机问题越来越突出,使得人们将目光逐渐转向了各种新型的清洁能源,而太阳能作为已知的最原始的能源,具有干净、可再生、丰富而且分布范围非常广等特点。近年来,太阳能的应用范围日益广泛,诸如太阳能热水器、太阳能发电、海水淡化、太阳能制氢等,都希望高效接收和利用太阳能。目前,太阳能发电主要分为两种:① 光伏发电;②光热发电(见图1)。无论哪种形式的太阳能热利用,都希望能有效提高太阳能的效率;因此,实施太阳光跟踪是很有必要的。现有的几种太阳能利用方式中,一般都需要配置一套具有双轴旋转机构的跟踪装置来跟踪太阳。香港大学教授研究了太阳光照角度与太阳能接收率的关系,理论分析表明:对太阳光线运动的跟踪与非跟踪,太阳能设备能量的接收率相差37.7%,精确地跟踪太阳可使太阳能设备的能量利用率大大提高[1]。
图1 太阳能发电
本文通过利用国内市场通用型STC 89C52单片机作为控制核心,设计了一种基于单片机的双轴太阳能跟踪控制器,通过驱动步进电动机实现对太阳的精确跟踪,具有结构简单、运行可靠等优点,可大幅度降低跟踪系统的成本,具有广阔的应用前景。
1 系统模块组成及架构
本文所设计的跟踪系统主要由核心单片机控制模块、液晶显示模块、时钟模块、步进电动机驱动模块、光电反馈模块、通讯模块以及系统的外围电路等组成,如图2所示。其中单片机控制模块主要用于太阳高度角及方位角的计算,并转换为步进电动机控制信号;液晶显示模块主要是作为一个当前位置的显示、时间显示等;时钟模块主要用于产生计算太阳当前位置所需的时间数据,向系统提供精确的时钟;步进电动机驱动模块用来接受单片机的输出脉冲,经光电隔离后放大循环输出,驱动步进电动机运转;光电反馈模块通过光敏电阻来检测环境光线强弱程度,接受来自不同角度的入射光,并经过AD采样后发送给单片机,当对应的两个光敏电阻接受到的光强差值大于一定范围时,单片机控制电动机转动,从而使采光面板在竖直方向上始终正对着太阳光;通讯模块主要完成单片机与外部的信息交互以及数据传输。
图2 系统原理框图
2 太阳能跟踪控制器设计
2.1 硬件设计
STC 89C52是一种低功耗、高性能CMOS 8位微控制器,具有8KB的系统可编程Flash存储器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC 89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52单片机的18、19引脚XTAL1和XTAL2是单片机的外接时钟引脚端,XTAL1为片内震荡电路的输入端,XTAL2为片内震荡电路的输出端。一般来说,可采取外接晶体谐振器(12MHz)以及2个电容构成并联谐振电路,电容取值一般为10~30pF。在焊接刷电路板时,晶振和电容应尽可能与单片机芯片靠近,以减少寄生电容的影响,更好地保证系统的稳定运行,如图3所示。
(1)复位电路。STC 89C52单片机和AVR单片机的复位电平不同,前者为高电平复位,后者为低电平复位。复位电路通常采用上电自动复位和按钮复位两种方式。在晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。设计复位电路如图4所示,电阻R1和电容C3组成简单的上电自动复位电路,按钮手动复位则通过手动按下S1(SW-PB)按钮来实现。
图3 单片机时钟振荡电路
图4 复位电路
(2)光电检测电路。光电检测模块主要是利用光敏电阻接收光照时阻值发生变化的原理,一般需要4个,采用十字方式排列,分别放置在东、南、西、北平面的4个方位;若光敏电阻的阻值相等,说明此时太阳光线与平面相垂直,电动机无需运动。随着太阳的移动,必然会有一个方向的光敏电阻接受的光照强,与之对应方向的光敏电阻接受的光照弱,相应的阻值就存在差异。此时,控制电路将光敏电阻的阻值变动转换为控制信号,经单片机驱动电动机运转,直至对应方向的2个光敏电阻上的光照强度再次相等,系统所设计的光电检测电路如图5(a)所示。其中检测模拟量信号由AD采样芯片ADC 0809采集后将数据传递给单片机,如图5(b)所示。ADC 0809是一个逐次逼近型的A/D转换器,由外部供给基准电压,有8个模拟量的输入端,带有三态输出锁存器,转换结束时,可由单片机控制打开三态门,读出转换结果。
图5 光电检测电路
(3)步进电动机驱动电路。步进电动机是将电脉冲转化为角位移或线位移的执行机构。其结构简单,控制方便,可以通过控制单片机发送出来的脉冲个数来控制角位移量,从而达到精确定位。通俗地说,就是给电动机加一个脉冲信号,则电动机转过一个固定的角度,即步距角。电动机的转速及停止的位置只取决于脉冲信号的频率和脉冲数。控制上,主要是需要实现电平的匹配;因此,需要设计功率驱动电路,如图6所示。
图6 步进电动机驱动电路
(4)时钟电路。由于系统的软件开发中涉及太阳轨迹的计算,而这需要通过精确的时间来计算该时刻太阳所处的理论位置,因此需要使用时钟电路。虽然单片机内部也可以采用定时/计数器的方式来进行时间的推算,但这种方式需要占用大量的系统时间和资源,且时间不够精确,长时间运行存在累积误差。目前,通用的做法是采用时钟芯片,因此,本文采用了美国DALLAS公司推出的高性能、低功耗、带RAM的实时时钟电路芯片DS 1302。它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据[2]。该芯片采用双电源(VCC1和VCC2)供电,由VCC1和VCC2两者中较大者供电,当VCC2>VCC1+0.2 V时,VCC2给DS 1302供电。当VCC2<VCC1时,VCC1给DS 1302供电,使系统在没有主电源的情况下也能保持时钟的连续运行。系统设计的时钟电路如图7所示。
图7 时钟电路
2.2 软件设计
目前,跟踪太阳的方法可概括为2种[3]:视日运动轨迹法和光电跟踪法。光电跟踪的灵敏度较高,结构简单,但容易受光强和天气的影响,如天空中的云层飘过会让系统产生误判;而视日运动轨迹法是按照天文学法推算出的太阳运动轨迹运行,属开环控制,这种方法的程序计算较复杂,且没有考虑执行机构的误差情况,无法消除累计误差。因此,设计的跟踪控制器结合了以上两种方法,先由视日运动轨迹法进行粗跟踪,再利用光电跟踪法进行精确定位。
系统在上电运行时,首先进行系统初始化。然后,系统先判断是否在工作时间段内,如每天的18∶00以后,已经日落,则系统自动进入待机状态;而如果系统时间在6∶00~18∶00,则系统先进行回零,确认一个参考点之后,进行视日运动轨迹的计算,并运转到计算结果位置处。最后,根据光电传感器反馈的信号进行微调,如果光电传感器反馈的偏差值过大,则认为此时可能有乌云遮挡等情况发生,可切换到视日运动轨迹状态运转,待给出下一个步进电动机运转信号之前,重复上述判断。系统的流程图如图8所示。
图8 系统运行流程
虽然太阳的位置时刻都在变化,但其运行具有严格的规律性,视日运动轨迹计算主要是根据天体的运行规律计算出太阳运行规律,其流程如图9所示,主要涉及太阳的高度角和方位角,并根据系统时钟计算出步进电动机的转角。通过分别建立太阳的运行轨迹的时角坐标系和地平坐标系,以及跟踪控制系统的运动规律的坐标系,对这些坐标系的变换来建立太阳能跟踪控制系统的运动方程[4]。在地平坐标系中,太阳的位置可用如下方程描述:
式中,α为太阳的高度角;γ为太阳的方位角,通常以正南方向为0°,向西为正,向东为负;δ为太阳赤纬角;ω为太阳时角;φ为安装地点的维度角。根据Cooper方程,每天的太阳赤纬角为
图9 视日运动轨迹计算流程
式中,n为日期在年内的序号,称作积日。
除此以外,系统的软件设计还包括时钟模块、数码管显示模块、光电传感器数据采集模块等,共同构成一个完整的系统,实现对系统的控制。
2.3 视日运动轨迹仿真
系统设计完成后,为校验视日运动轨迹算法的正确性,利用Proteus进行了仿真。Proteus是英国Labcenter公司开发的嵌入式系统仿真与开发平台,支持当前流行的单片机开发环境,该软件功能强大,性能非常卓越,非常适合单片机系统的仿真和实验。图10为视日运动轨迹的仿真系统图,系统主要由单片机(U1)、DS1302时钟电路(U2)、步进电动机驱动芯片(U3、U4)步进电动机以及相应的外围电路组成,C1~C4为电容,X1为单片机时钟所需的晶振,X2为DS1302运行所需的晶振,RP1为排阻。由单片机根据与DS1302通讯取得的时钟数据进行运算,计算出某时刻的太阳高度角和方位角,驱动步进电动机运转,Proteus仿真系统中,可方便地显示出当前步进电动机的转角,如某日某时刻,经过仿真运行的太阳高度角和方位角如图11所示。从结果看,仿真结果与实际运算结果一致,证明所设计的视日运动轨迹算法是正确的。
图10 系统仿真图
图11 太阳高度角与方位角仿真结果
本文开发的基于STC89C52单片机的双轴太阳跟踪控制器实验装置如图12所示。
图12 控制器实验装置硬件
3 结 语
本文设计了一种基于单片机的双轴太阳能跟踪控制器,经实验验证,步进电动机运转结果与仿真结果一致,可顺利实现双轴太阳跟踪。该控制器可根据太阳高度角及方位角不断变化的特点,以视日运动轨迹跟踪为主,结合光电跟踪作为校正,驱动作为高度角和方位角两个轴向转动的电动机运转,跟踪更为精确。系统结构简单,成本低廉,有效地提高了太阳能的利用率,可直接用于太阳能光伏装置的跟踪,对软件稍作修改后,也可用于其他如太阳能碟式装置追日跟踪,具有较好的应用和推广价值。
[1]尤金正.基于图像传感器的闭环式太阳跟踪控制器的研究与实现[D].苏州:苏州大学,2010:4-5.
[2]韩旖旎.基于过采样技术的动态汽车称重仪的设计[D].太原:太原理工大学,2010:47-49.
[3]马正华,孔 丹,徐守坤.基于步进电机的太阳自动跟踪系统的研究[J].电气传动,2012,42(3):37-40.
[4]杨培环.高精度太阳跟踪传感器与控制器的研究[D].武汉:武汉理工大学,2010:8-10.