基于FPGA的太阳跟踪器的设计及实现
扫描二维码
随时随地手机看文章
0 引言
太阳能是一种清洁无污染的能源,取之不尽,用之不竭,发展前景广阔。但是太阳能具有间歇性及强度和方向不确定的特点,给太阳能的收集带来了一定困难。采用太阳跟踪装置可以使太阳光线始终与接收面保持垂直,提高太阳能设备的能量接收效率,从而提高太阳能利用率。
本设计采用传统的视日运动跟踪法,利用Xilinx公司提供的FPGA开发环境ISE,设计完成了基于XC3S1500开发板的太阳能自动跟踪系统,以实现对太阳的全天候、全自动、实时精确控制。
1 视日运动跟踪法
视日运动跟踪法是根据地日运行轨迹,采用赤道坐标系或地平坐标系描述太阳相对地球的位置。一般在双轴跟踪中极轴式跟踪采用赤道坐标系,高度角-方位角式跟踪采用地平坐标系。
1.1 极轴式跟踪
赤道坐标系是人在地球以外的宇宙空间里,观测太阳相对于地球的位置。这时太阳位置是相对于赤道平面而言,用赤纬角和时角这两个坐标表示。太阳中心与地球中心的连线,即太阳光线在地球表面直射点与地球中心的连线与在赤道平面上的投影的夹角称为太阳赤纬角。它描述地球以一定的倾斜度绕太阳公转而引起二者相对位置的变化。一年中,太阳光线在地球表面上的垂直照射点的位置在南回归线、赤道和北回归线之间往复运动,使该直射点与地心连线在赤道面上的夹角也随之重复变化。赤纬角在一年中的变化用式(1)计算:
式中:δ为一年中第n天的赤纬角,单位:(°);n为一年中的日期序号,单位:日。
时角是描述地球自转而引起的日地相对位置的变化。地球自转一周为360°,对应的时间为24 h,故每小时对应的时角为15°。日出、日落时间的时角最大,正午时角为零。计算公式如下:
式中:ω为时角,单位:(°);T为当地时间,单位:h。
根据上述方法可以计算出地球上任意地点和时刻的太阳的赤纬角和时角,由此可建立极轴式跟踪,对于太阳跟踪系统来说,采光板的一轴与地球自转轴相平行,称为极轴,另外一轴与其垂直。工作时采光板绕地球自转轴旋转,其转速的设定为与地球的自转速度相同,方向相反。为了适应太阳赤纬角的变化,采光板围绕与地球自转轴垂直的轴做俯仰运动。此种跟踪方式原理简单,但是由于采光板的重量不通过极轴轴线,极轴支撑结构的设计比较困难,因此本设计没有选用极轴式跟踪。
1.2 地平坐标系
地平坐标系用高度角和方位角来描述太阳的位置,已知太阳赤道坐标系中的赤纬角和时角,可以通过球面三角形的变换关系得到地平坐标系的太阳的高度角和方位角。如图1所示,该天球是以观测者为球心,任意距离为半径的假想球,对于天球上各点之间的距离,只讨论它们之间的角距而不考虑它们的线长。M和N分别为天球上的南北天极。P点为观测者的铅垂线与天球的交点,P点的地理纬度为φ,S为太阳在天球中的位置。S的赤纬度为δ,观测者的铅垂线OP与地心与太阳连线的夹角叫做天顶角,天顶角和太阳的高度角互补。角A为太阳的方位角。
根据球面三角形的边的余弦公式描述,即一边的余弦等于其他两边余弦的乘积,加上这两边正弦及其夹角余弦的乘积,在天球的半径不是确定值。因此描述天球上的圆弧通常用圆弧所对应的角度来表示弧长。在球面三角形NPS中,三边为弧NP、弧NS、弧SP,分别用角度90-φ,90-δ,τ表示。采用球面三角形边的余弦公式:
高度角-方位角跟踪又叫做地平坐标系双轴跟踪系统,采光板的方位轴垂直于地平面,另一根轴与方位轴垂直,称为俯仰轴。工作时采光板根据太阳的视日运动绕方位轴转动改变方位角,绕俯仰轴作俯仰运动改变采光板的倾斜角,从而使采光板与太阳光线垂直。这种跟踪系统的特点是跟踪精度高,而且采光板装置的重量保持在垂直轴所在的平面内,支承结构的设计比较容易。在本文中采用了高度角一方位角跟踪进行设计。
2 太阳跟踪控制系统设计
根据上文介绍的高度角-方位角跟踪系统的整体框架,本文基于Xilinx公司的FPGA开发板,设计了基于FPGA的太阳跟踪系统的各功能模块。主要包括计时模块、太阳高度角方位角计算模块、日出日落时间计算模块和步进电机脉冲控制模块等几部分。
基于FPGA的太阳跟踪控制系统的流程图如图2和图3所示。
首先系统根据计时模块计算出当前的时间,包括当日在一年中的日期序数dn(单位:日)及当前的时刻T(单位:h),然后再根据日出日落时间计算模块确定当日的日出和日落时间,以便判断当时时间是否在日出后日落前。在程序计算过程中,利用太阳高度角和方位角计算模块计算当前太阳的位置,并与上次计算的太阳的位置作差,分别计算出当前跟踪装置高度和方位需要调整的角度及其旋转方向,并随后进入步进电机脉冲驱动模块。首先调整高度角,判断高度角差值的正负,驱动高度方向的步进电机旋转。高度角步进电机停止旋转后调整方位角。判断方位角正负,驱动方位角步进电机按照偏差旋转相应的角度。一次跟踪后,在一定的时间间隔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的高度角方位角计算模块准确计算出太阳的高度角和方位角。利用转动精确的步进电机驱动,可以精确地跟踪太阳,有效提高太阳跟踪装置的太阳能吸收效率。