基于单片机的太阳自动跟踪系统的研究
扫描二维码
随时随地手机看文章
0 引言
随着社会经济的快速发展,人类所面临的能源问题越来越突出,太阳能作为一种清洁能源,无疑受到各国的普遍重视。在相同条件下,光照强度越大,太阳能电池输出功率越大。因而增大太阳能电池受光面的光照强度,就可增大太阳能电池输出功率。除了提高太阳光电池本身的转换效应和提高蓄电池充放电效应外,对太阳的自动跟踪是太阳光伏发电系统中另一种提高转换效率的有效手段。因此,在太阳能的利用过程中,实施太阳跟踪是很有必要的。
对太阳进行跟踪的方法很多,但不外乎为采用确定太阳位置所用的两种坐标系统,即赤道坐标系和地平坐标系,并分为双轴跟踪和单轴跟踪。单轴跟踪已在很多文献作了介绍,本文要讨论的为双轴跟踪。为了叙述方便,在以后的陈述中将两种坐标系下的整个系统统称为太阳能板。
本文采用在地平坐标系下的太阳跟踪及程序跟踪和传感器跟踪相结合的控制方式,即采用程序控制,利用光学传感器对太阳能板做自动定位和误差校正,而通过单片机控制步进电机来实现。单片机利用时钟提供的日期和时间,计算出太阳能板的预期位置,与编码器提供的当前位置比较,输出控制信号。驱动装置根据单片机提供的信号控制俯仰角电机和方位角电机使太阳能板运行至太阳垂直照射点,从而进行跟踪。传感器在太阳能板位置出现误差时进行校正。
1 系统组成
系统由时钟、单片机、驱动装置、编码器、太阳能板和传感器6部分组成。系统的核心部件是传感器和单片机。太阳跟踪系统原理见图1。
1.1 智能单元与双坐标步进电机控制系统
本文的控制系统选用了AT89C51单片机作为智能单元。AT89C51是一种低功耗、低电压、高性能的8位单片机。片内带有一个4 KB的FLASH可编程、可擦除只读存储器。文中所述系统为地平坐标系的双轴自动跟踪控制系统,因此采用双坐标步进电机控制,双坐标步进电机控制就是在x轴方向控制1台步进电机,在y轴方向控制1台步进电机。这2台步进电机同时驱动同一个对象,使对象在一个平面上以任意曲线运动。二维步进电机控制系统原理如图2所示。
AT89C51单片机通过P2口输出控制脉冲信号,P2.0~P2.3为一路,P2.4~P2.7为一路,分两路各控制1台步进电机。P3.2~P3.5设置为行程保护开关,作二维步进电机正反向最大行程保护。功率放大电路中采用74LS05将单片机P2口脉冲信号进行放大,经9014控制光电耦合器,隔离后,由功率管DK63驱动步进电机的各相绕组,图中L11,L12即为步进电机的各相线圈。
1.2 光电传感器
本控制系统中所采用光电传感器为6块相同的硅光电池,其中4块用来制作四象限硅光电池,进行误差校正。2块作为判断光照强弱的信号输出传感器。
太阳跟踪传感器是本系统的关键部件。为了保证太阳能板的受光面始终与太阳光线保持垂直而不发生偏离,采用特制的四象限硅光电池作为太阳跟踪误差校正用传感器。
如图3所示为四象限跟踪太阳传感器原理图。当光轴对准太阳时,光斑的中心在光轴上。四个象限接收到相同的光功率,输出相同的电压信号。当光轴未对准太阳时即太阳光与光轴成一角度θ时,光线经光学系统照射到四象限光电池上形成的光斑必然发生偏移即(x≠O,y≠O)。由于各象限的光功率与各象限的光斑面积成正比,每个象限被光斑覆盖的面积不同,因此各象限光电池产生的电压不尽相同。根据上述将Vx,Vy进行模数转换,然后送入单片机。单片机通过驱动设备可控制俯仰角电机和方位角电机转动,直到Vx=Vy=O,即x=O,y=O,则表明系统光轴已经对准太阳,根据以上原理即可对太阳能板位置误差进行校正。
判断光强信号传感器由两块光电池组成,一块接受太阳辐射,另外一块受光面背光。如图4所示,前一块光电池的作用是:判断太阳直射辐射的强度,在直射辐射较弱时不启动跟踪程序,从而避免多云天气的盲目跟踪。后一块光电池的作用是当长时间阴天或多云转晴后太阳重新出现时,判断太阳直射辐射的强度,来决定是否启动跟踪程序。
1.3 采样保持与A/D转换电路
本系统选用的A/D转换为MAXIM公司生产的MAXl86转换器,是串行输出CMOS芯片。其转换速度快,精度高,耗电省,接线简单,适用于各种仪器仪表和自动控制系统中的数据采集。MAXl86转换器自带有采样保持器,因而系统不再设计采样保持电路。而且与AT89C51为串行连接,接口电路如图5所示。
1.4 时钟芯片DSl302
DSl302与AT89C51单片机接口采用3线(RST,SCLK和I/O)连接,AT89C51为主芯片负责控制2芯片之间的数据通讯。RST为数据通讯的使能信号,为O则允许通讯;为1则禁止通讯。SCLK为数据通讯的位同步脉冲信号,I/O是双向串行数据传输线。RST,SCLK都是单片机发出的控制信号,如图6所示。
2 软件设计
本文介绍的控制系统的软件设计采用了结构化、模块化的程序设计方法。主程序初始化完毕之后,即进入等待状态,单片机控制运行交由中断服务程序控制。所需完成的功能主要由子模块实现。各部分独立完成一定的功能,又有机的结合为一个整体,完成所要求的控制任务。
程序的结构如图7所示。主程序包括初始化、最初的A/D转换程序。整个程序周期里,初始化程序只在主程序第一次执行时执行一次。初始化之后,进行最初A/D转换,实际上等于对A/D转换滤波器置初始值。
2.1 定时器1溢出中断服务程序
定时器1溢出中断服务程序包含多个模块,先后在一个T1溢出周期内执行完毕。这些模块包括:控制算法、控制量输出、A/D转换、转换结果处理和分析、异常处理等部分。通过每次T1溢出,周期性的采样、反馈比较、调整、输出,从而实现控制策略。
2.2 控制算法
编制控制算法子程序包括以下几个步骤:计算当前期望位置;计算补偿通道输出值;计算当前实际位置;计算误差和误差通道输出值;补偿通道输出值和误差通道输出值相加。
2.3 控制量输出
单片机输出的控制量为脉冲输出,脉冲量的输出可以通过软件定时器,规定脉冲输出的问隔时间,从而规定了脉冲输出的频率。
2.4 A/D转换及其转换结果处理和分析
虽然硬件上对模拟输入进行了低通滤波,但是仍然会有一些因素可能造成模拟输入量出现较大的误差。为了防止这种情况的发生,需要进行软件滤波,即数字滤波处理。数字滤波有许多优点:
(1)数字滤波器是由程序实现的,不需增加硬件设备,数字滤波可以有多个输入通道共用,因而成本低。
(2)数字滤波由程序实现,不需要硬件设备,因而可靠性好,稳定性高,不存在阻抗匹配问题。
(3)数字滤波使用灵活,修改方便。而本文采用了算术平均值滤波方法。
2.5 异常处理
程序运行中会发生多种异常情况,有些可以通过检查输入数据判断,而有一些情况系统可以自行校正。光电传感器误差信号超出死区也应视为异常情况。可能的原因是出现了一干扰光源或太阳能板与太阳位置发生偏离。为了避免在多云情况下的盲目跟踪,如果辐射强度没有达到特定值,则对于误差信号超出死区不作任何操作。太阳能板与太阳位置发生偏离的情况下,系统有能力自动的回复运行状态。
在每次定时器T1中断时,系统都检查控制字。当控制字表明系统在校正状态时,输出控制量的值由预期位置量和光电传感器误差信号共同计算产生。
3 结语
系统采用特制的四象限硅光电池作为太阳跟踪误差校正用传感器,并且采用AT89C51单片机作为智能单元,可以实现成本较低的全自动太阳跟踪系统。系统具备较好的稳定性,并能够达到相当好的精确度和灵活性。理论分析和设计结果表明,本方法可以满足太阳跟踪控制的要求。