找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[单片机/DSP] 基于PIC16F877A自动太阳跟踪器的设计

[复制链接]
admin 发表于 2013-6-5 12:35:31 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
光伏发电能为人类提供可持续能源,并保护赖以生存的环境,但其发电效率低,发电成本相对较高仍然足制约其大规模应用的重要因素。
         在没有出现高效的光伏电池材料之前,研制具有实用价值太阳聚光器及自动跟踪系统以实现低成本,则是促进太阳能广泛应用的主要途径之一。一般双轴系统可提高发电量35%左右,单轴系统可提高20%左右,聚光型跟踪系统会更高。
         国外在20世纪80年代就对太阳跟踪系统进行了研究,如美国、德国在单双轴自动跟踪、F1本在聚光菲立尔透镜跟踪、西班牙在2倍聚光反射跟踪等方面均开发出了相应的商品化自动太阳跟踪器。我国于20世纪90年代左右也对其进行了大量的研究,2006年10月在西藏羊八井安装了4套共计13.2 kW不同形式的单、双轴并网发电太阳自动跟踪系统。之前一直没有稳定可靠的商品化的产品出现,究其原因主要有:
        (1)系统可靠性不能满足要求
        由于大部分光伏电站都安装在偏远地区,环境非常恶劣,维护困难,跟踪系统增加了旋转机构与相应的机械机构,可靠性明显下降,如果不能保证整个系统的在各种环境下都能可靠稳定运行,对整个光伏电站来说都可能将是灾难性的打击。
        (2)跟踪误差大
         尤其对反射聚光的跟踪系统,如果跟踪误差大,不但不能提高发电效率,反而会使电池板受光小均,产乍热斑等影响,大大缩短了电池板的使用寿命。
        (3)成本过高
        全部购买国外成熟的技术,将大大提高系统的硬件成本与维护成本。
         本文基于PIC16F877微处理器为核心,针对光伏发电系统,开发出一种双轴自动自动太阳跟踪器,他具有运行稳定可靠、跟踪误差小、成本低等优点。
         1 自动太阳跟踪器的基本原理[1-3]
        自动太阳跟踪器,故名思意基本功能就是使光伏阵列随着太阳而转动,基本原理框图如图1所示。
0801141506372302011060819541216377.jpg
          该系统时刻检测太阳与光伏阵列的位置并将其输入到控制单元,控制单元对这2个信号进行比较并产生相应的输出信号来驱动旋转机构,使太阳光时刻垂直入射到光伏阵列的表面上。
        虽然太阳在太空中的位置时刻都在变化,但其运行却具有严格的规律性,在地平坐标系中,太阳的位置可由高度角a与方位角φ来确定,公式如下[2-3]:
0801141506378412011060819541216378.jpg
         式中: δ为太阳赤纬角;φ为当地的纬度角;ω为时角。
        太阳赤纬角与时角可以由本地时间确定,而对确定的地点,本地的纬度角也是确定,因此只要输入当地相关地理位置与时间信息就可以确定此时此刻的太阳位置。

   0801141506379522011060819541216379.jpg
        2 系统的整体设计方案
        PIC16F877A是一款具有RISC结构的高性能中档单片机,仅有35条单字指令,8 k×14个字节FLASH程序存储器,368×8个字节RAM数据存储器,256×8个字节E2PROM数据存储器,14个中断源,8级深度的硬件堆栈,内部看门狗定时器,低功耗休眠模式,高达25 mA的吸入/拉出电流,外部具有3个定时器模块,2个16位捕捉器/16位比较器/10位PWM模块,10位多通道A/D转换器,通用同步异步接收/发送器等功能模块[5]。
        自动太阳跟踪器的控制方式主要有微处理器控制、PLC控制、DSP控制与模拟电路控制4种形式,根据以上原理,本文选择性价比较高的PIC16F877A单片机为控制核心,系统实现的具体原理框图如图2所示。

   0801141506383732011060819541216380.jpg
          整个控制器主要由控制单元与驱动执行机构2部分组成。控制单元由角度计算及反馈控制、启动信号产生、电机驱动信号产生、保护信号处理与人机通讯5个部分组成。
         系统功能说明如下:单片机循环检测光伏阵列的位置,并将其与计算出的此时本地太阳的高度角与方位角进行比较来确定光伏阵列是否跟踪上太阳的位置,如果没有且启动信号满足启动条件,单片机就发出指令驱动电机转动;保护信号是保证系统在外界以及其他非人为因素情况下所执行的一种操作指令,以确保系统不受损坏,从而提高了整个系统的可靠性。驱动执行单元主要功能是用来实现电机驱动与旋转,并通过机械传动机构带动光伏电池阵列转动。
        2.1控制单元硬件设计
         由于采用了单片机作为主控制单元,大部分工作都由单片机在软件中实现,从而简化了控制电路的硬件设计,简要说明主要控制部分的实现过程。
         (1)角度计算及反馈控制
         单片机通过外扩三态锁存器输入口获取时钟模块产生的时间信号与光电旋转编码器的位置信号后,利用单片机快速运算处理能力用软件加以实现;
         (2)电机驱动信号生成
         本文采用的是步进电机,其驱动脉冲由单片机内部自带的10位PWM波发生模块产生,只需在软件中设置相应的有关参数就可改变电机的转速;
         (3)上位机监控系统是利用单片机内部自带的异步接受/发送器等功能模块,硬件部分只需加MAX 232加以电平转换,便可实现PC机与单片机的数据传输;
         (4)考虑到光伏发电只有在太阳光强满足一定强度的时候才能发电,启动信号主要是利用光敏二极管检测光强,保证系统在夜间或阴雨天不满足发电条件的情况下,系统停止跟踪,检测电路如图3所示。主要由放大、比较与光耦隔离3个部分组成。
         (5)系统的保护功能主要包括大风保护、电网掉电保护、振动过大保护、限位开关与接近开关保护组成,单片机检测到保护信号产生时,便发出指令将系统停放在安全的位置上,确保整个系统不受损坏。图4是电网掉电检测电路原理图,主要由降压、整流与光耦隔离3个部分组成。
         3 控制单元软件设计
         软件是该控制系统的核心,除一些保护自锁功能通过硬件实现外,大部分功能均通过软件来实现,整个软件采用C语言模块化编程方式,易于系统的移植与集成。
         主程序与中断服务子程序流程如图5所示。首先对单片机进行初始化,之后读取系统初始校验值作为光电旋转编码器的位置基准。
         主循环程序不断检测系统的运行状态,如果满足复位条件便发出指令转入复位子程序,迅速将电池板转到适当的位置后待机以等待新的指令;校验子程序对系统重新进行校验,并将新的位置检验值存储到单片机内部自带的E2PROM中作为新的位置基准,他可以用来消除系统的累积误差,同时也方便了系统的安装与调试;系统通常运行在自动跟踪状态,单片机时刻检测太阳与电池板实际位置间的差值并结合启动条件发出相应的PWM脉冲,来控制电机转动;此外主循环程序还不断检测当前太阳与电池板的位置,将位置信息通过数据总线与RS 232分别送到液晶显示与PC机监控软件系统中,并将有关位置参数及时存到单片机的E2PROM中。
         为了充分利用PIC16F877单片机的系统资源,提高单片机的检测速度,单片机接收PC机的数据采用中断来实现,流程框图如图5所示。
0801141506385942011060819541216381.jpg
0801141506388352011060819541216382.jpg
         4 系统的抗干扰措施
         能够可靠稳定的运行是自动太阳跟踪器成为成熟产品的前提,该系统从软件与硬件两个方面来增强抗干扰措施,主要手段有:
        (1)外部输入信号与控制系统信号不共地;
        (2)有的外部输入信号输入到单片机内部之前都经过严格的光耦电路加以隔离;
         (3)优化PCB布线结构,减少过孔,以降低寄生电容杂散电感的影响;
         (4)保证整个系统可靠接地;
         (5)外部信号采用屏蔽电缆线传输;
         (6)软件上增加软件滤波、看门口定时器与软件陷阱等措施,保证软件在出现死机、跑飞等故障时能够自我恢复。
         (7)系统重要保护如限位保护均从软件与硬件上加以双重保护,以提高其可靠性。

       5 结 语
         自动太阳跟踪器的稳定性与可靠性一直是其没有被大规模应用的主要问题之一。
         本文基于PIC16F877A单片机为控制核心,设计了一种自动跟踪太阳高度角与方位角转动的自动太阳跟踪器,现场运行结果表明该系统跟踪准确、能耗低、可靠性高、系统性能稳定,发电效率提高35%以上,对以后建设大型戈壁沙漠并网电站具有指导性意义。
smartfx 发表于 2016-6-3 11:13:11 | 显示全部楼层
mark
好好学习,哇哈哈
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-22 01:48 , Processed in 0.061213 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表