一种基于FPGA的太阳跟踪器的设计及实现
随后进入步进电机脉冲驱动模块。首先调整高度角,判断高度角差值的正负,驱动高度方向的步进电机旋转。高度角步进电机停止旋转后调整方位角。判断方位角正负,驱动方位角步进电机按照偏差旋转相应的角度。一次跟踪后,在一定的时间间隔T后,系统再次提取时间计算、判断、旋转电机。当日落时间到时,控制步进电机旋转至次日太阳升起的位置并恢复初始状态。由此本系统就实现了对太阳的全天候、实时跟踪。
3 基于FPGA的太阳跟踪系统各模块设计
太阳跟踪系统模块图如图4所示。这里对基于FPGA的太阳实时跟踪系统建立的计时模块、日出日落时间计算模块、高度角方位角计算模块、步进电机脉冲产生模块的设计及结果进行详细的介绍。
3.1 计时模块
视日运动跟踪方法需要时间和地理纬度信息,一般的太阳跟踪系统的位置固定,可以自行设定其地理纬度值。对于时间建立了计时模块,通过对时钟进行多级分频输出视日运动跟踪算法所需的间信息。
3.2 太阳日出日落时间计算模块
此模块计算每天太阳的日出日落时间,据此保证在太阳的照射时间范围内,太阳跟踪系统正常运行,在非照射时间,太阳跟踪系统处于休眠状态。太阳的日出日落时间即太阳的高度角为零的时间。由高度角计算公式(8)和时角计算公式(9)推出太阳的日出日落时间公式(10)。
太阳日出日落时间计算模块仿真波形如图5所示,输出为10 b Q4格式,dn为时间序号,其中richu代表日出时刻,riluo代表日落时刻。对太阳日出日落模块输出结果分析如表1所示,dn为仿真随机选取的日期,太阳日出日落时间只与dn有关。对该模块输出的10 b Q4格式的时间计算其实际的代表值,并与理论计算值做比较,经计算其输出时间误差很小,该模块能够准确计算出日出日落时间。
3.3 太阳高度角方位角计算模块
当时间为正常光照时间时,太阳跟踪系统每隔5 min就会进入太阳高度角方位角进行计算。计时模块输出给太阳高度角方位角模块所需的时间信息,然后计算赤道坐标系下的赤纬角和时角,最后计算高度角方位角坐标系下的高度角和方位角值,并输出高度角和方位角值如图6所示,仿真波形如图7所示。高度角和方位角输出均为10 b Q7格式。
在视日运动跟踪算法中最重要的是准确计算出当前的太阳相对于地球的高度角和方位角,其计算准确性影响太阳能装置的能量接受效率。表2表示在dn=100时,不同的时间输出的太阳的高度角及方位角值,都为10 b Q7格式,计算其实际代表值,并与理论值相比较,误差很小,说明该模块能够准确计算出太阳的高度角和方位角。
3.4 步进电机脉冲控制模块
步进电机驱动芯片选择了3955SB,本设计选择步进电机的1/8步运行模式,即每步可以达到0.225°。由太阳的高度角方位角计算模块输出的高度角和方位角及上一次输出的高度角方位角值,决定高度和方位需要转动的角度,然后确定高度角步进电机和方位角步进电机的脉冲个数。根据步进电机的步进顺序输出16位数字信号来控制实现两台两相步进电机高度和方位上旋转的角度及其旋转方向。由实验结果可知,该模块能够按照输入的电机转动的脉冲个数进行输出,并在电机完成旋转要求后能够保持稳定状态。当有新的转动输入后能够在原来的状态上输出。
4 结语
本文设计的太阳跟踪系统适用于太阳能热水器、太阳能灶、太阳能电池等需要跟踪太阳地装置。跟踪控制系统采用了视日运动跟踪方法,通过基于FPGA的高度角方位角计算模块准确计算出太阳的高度角和方位角。利用转动精确的步进电机驱动,可以精确地跟踪太阳,有效提高太阳跟踪装置的太阳能吸收效率。
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)