摘 要:在簡要介紹地日運行規(guī)律的基礎上,確定了視日運動跟蹤法的計算模型及跟蹤裝置的機械結(jié)構(gòu)。采用FPGA芯片XC3S1500為處理器,以步進電機為執(zhí)行機構(gòu),采用Verilog語言設計實現(xiàn)了高度角-方位角太陽跟蹤系統(tǒng)。根據(jù)系統(tǒng)的要求建立了計時模塊、太陽高度角方位角計算模塊、日出日落時間計算模塊和步進電機脈沖控制模塊。通過實驗測試該系統(tǒng)能夠達到預期的性能指標,對提高太陽能的利用率具有重要的現(xiàn)實意義。
關(guān)鍵詞:太陽跟蹤; FPGA; 步進電機; Verilog
中圖分類號:TP274 文獻標識碼:A
文章編號:1004-373X(2010)13-0174-03
Design and Realization of Automatic Solar-tracker Based on FPGA
QI Hui,TIAN Wei-juan
(College of Electronic Information and Control Engineering, Beijing University of Technology, Beijing100124, China)
Abstract: The computational model of the sun tracking system and the mechanical structure of tracking devices are constructed based on the operating law between sun and moon is introduced. An altitude-azimuth sun tracking system was designed by Verilog and using FPGA as microprocessor, the step motor as the executing agency. The timing module, solar altitude and azimuth calculation module, sunrise and sunset time calculation module and step motor pulse control module were built according to the requirement of the system. Experiments show that the sun tracking system can achieve the expected performance index, and has a great practical value for improving the utilization of solar energy.
Keywords:sun tracking; FPGA; step motor; Verilog
0 引 言
太陽能是一種清潔無污染的能源,取之不盡,用之不竭,發(fā)展前景廣闊。但是太陽能具有間歇性及強度和方向不確定的特點,給太陽能的收集帶來了一定困難。采用太陽跟蹤裝置可以使太陽光線始終與接收面保持垂直,提高太陽能設備的能量接收效率,從而提高太陽能利用率。
本設計采用傳統(tǒng)的視日運動跟蹤法,利用Xilinx公司提供的FPGA開發(fā)環(huán)境ISE,設計完成了基于XC3S1500開發(fā)板的太陽能自動跟蹤系統(tǒng),以實現(xiàn)對太陽的全天候、全自動、實時精確控制。
1 視日運動跟蹤法
視日運動跟蹤法是根據(jù)地日運行軌跡,采用赤道坐標系或地平坐標系描述太陽相對地球的位置。一般在雙軸跟蹤中極軸式跟蹤采用赤道坐標系,高度角-方位角式跟蹤采用地平坐標系。
1.1 極軸式跟蹤
赤道坐標系是人在地球以外的宇宙空間里,觀測太陽相對于地球的位置。這時太陽位置是相對于赤道平面而言,用赤緯角和時角這兩個坐標表示。太陽中心與地球中心的連線,即太陽光線在地球表面直射點與地球中心的連線與在赤道平面上的投影的夾角稱為太陽赤緯角[1]。它描述地球以一定的傾斜度繞太陽公轉(zhuǎn)而引起二者相對位置的變化。一年中,太陽光線在地球表面上的垂直照射點的位置在南回歸線、赤道和北回歸線之間往復運動,使該直射點與地心連線在赤道面上的夾角也隨之重復變化[2]。赤緯角在一年中的變化用式(1)計算:
δ=23.45°sin[360(284+n)/365]
(1)
式中:δ為一年中第n天的赤緯角,單位:(°);n為一年中的日期序號,單位:日。
時角是描述地球自轉(zhuǎn)而引起的日地相對位置的變化。地球自轉(zhuǎn)一周為360°,對應的時間為24 h,故每小時對應的時角為15°。日出、日落時間的時角最大,正午時角為零。計算公式如下:
ω=(12-T)×15°
(2)
式中:ω為時角,單位:(°);T為當?shù)貢r間,單位:h。
根據(jù)上述方法可以計算出地球上任意地點和時刻的太陽的赤緯角和時角,由此可建立極軸式跟蹤,對于太陽跟蹤系統(tǒng)來說,采光板的一軸與地球自轉(zhuǎn)軸相平行,稱為極軸,另外一軸與其垂直。工作時采光板繞地球自轉(zhuǎn)軸旋轉(zhuǎn),其轉(zhuǎn)速的設定為與地球的自轉(zhuǎn)速度相同,方向相反。為了適應太陽赤緯角的變化,采光板圍繞與地球自轉(zhuǎn)軸垂直的軸做俯仰運動。此種跟蹤方式原理簡單,但是由于采光板的重量不通過極軸軸線,極軸支撐結(jié)構(gòu)的設計比較困難,因此本設計沒有選用極軸式跟蹤。
1.2 地平坐標系
地平坐標系用高度角和方位角來描述太陽的位置,已知太陽赤道坐標系中的赤緯角和時角,可以通過球面三角形的變換關(guān)系得到地平坐標系的太陽的高度角和方位角。如圖1所示,該天球是以觀測者為球心,任意距離為半徑的假想球,對于天球上各點之間的距離,只討論它們之間的角距而不考慮它們的線長。M和N分別為天球上的南北天極。P點為觀測者的鉛垂線與天球的交點,P點的地理緯度為φ,S為太陽在天球中的位置。S的赤緯度為δ,觀測者的鉛垂線OP與地心與太陽連線的夾角叫做天頂角,天頂角和太陽的高度角互補。角A為太陽的方位角[3]。
圖1 地平坐標系和赤道坐標系
根據(jù)球面三角形的邊的余弦公式描述,即一邊的余弦等于其他兩邊余弦的乘積,加上這兩邊正弦及其夾角余弦的乘積,在天球的半徑不是確定值。因此描述天球上的圓弧通常用圓弧所對應的角度來表示弧長。在球面三角形NPS中,三邊為弧NP、弧NS、弧SP,分別用角度90-φ,90-δ,τ表示。采用球面三角形邊的余弦公式:
cos τ=cos(90-φ)cos(90-δ)+
sin(90-φ)sin(90-δ)cos ω
(3)
若符號α代表太陽的高度角,α=90-τ,式(3)可以寫成:
sin τ=sin φsin δ+cos φcos δcos ω
(4)
根據(jù)球面三角形的正弦公式,可得:
sin(90-δ)/sin(180-A)=sin τ/sin ω
(5)
即:
cos δ/sin A=sin τ/sin ω
(6)
因此太陽的方位角為:
sin A=(cos δsin ω)/sin τ
(7)
高度角-方位角跟蹤又叫做地平坐標系雙軸跟蹤系統(tǒng),采光板的方位軸垂直于地平面,另一根軸與方位軸垂直,稱為俯仰軸。工作時采光板根據(jù)太陽的視日運動繞方位軸轉(zhuǎn)動改變方位角,繞俯仰軸作俯仰運動改變采光板的傾斜角,從而使采光板與太陽光線垂直。這種跟蹤系統(tǒng)的特點是跟蹤精度高,而且采光板裝置的重量保持在垂直軸所在的平面內(nèi),支承結(jié)構(gòu)的設計比較容易。在本文中采用了高度角-方位角跟蹤進行設計[4-5]。
2 太陽跟蹤控制系統(tǒng)設計
根據(jù)上文介紹的高度角-方位角跟蹤系統(tǒng)的整體框架,本文基于Xilinx公司的FPGA開發(fā)板,設計了基于FPGA的太陽跟蹤系統(tǒng)的各功能模塊。主要包括計時模塊、太陽高度角方位角計算模塊、日出日落時間計算模塊和步進電機脈沖控制模塊等幾部分。
基于FPGA的太陽跟蹤控制系統(tǒng)的流程圖如圖2和圖3所示。
圖2 太陽跟蹤系統(tǒng)主程序框圖
圖3 太陽跟蹤系統(tǒng)子程序框圖
首先系統(tǒng)根據(jù)計時模塊計算出當前的時間,包括當日在一年中的日期序數(shù)dn(單位:日)及當前的時刻T(單位:h),然后再根據(jù)日出日落時間計算模塊確定當日的日出和日落時間,以便判斷當時時間是否在日出后日落前。在程序計算過程中,利用太陽高度角和方位角計算模塊計算當前太陽的位置,并與上次計算的太陽的位置作差,分別計算出當前跟蹤裝置高度和方位需要調(diào)整的角度及其旋轉(zhuǎn)方向,并隨后進入步進電機脈沖驅(qū)動模塊。首先調(diào)整高度角,判斷高度角差值的正負,驅(qū)動高度方向的步進電機旋轉(zhuǎn)。高度角步進電機停止旋轉(zhuǎn)后調(diào)整方位角。判斷方位角正負,驅(qū)動方位角步進電機按照偏差旋轉(zhuǎn)相應的角度。一次跟蹤后,在一定的時間間隔T后,系統(tǒng)再次提取時間計算、判斷、旋轉(zhuǎn)電機。當日落時間到時,控制步進電機旋轉(zhuǎn)至次日太陽升起的位置并恢復初始狀態(tài)。由此本系統(tǒng)就實現(xiàn)了對太陽的全天候、實時跟蹤[6-8]。
3 基于FPGA的太陽跟蹤系統(tǒng)各模塊設計
太陽跟蹤系統(tǒng)模塊圖如圖4所示。這里對基于FPGA的太陽實時跟蹤系統(tǒng)建立的計時模塊、日出日落時間計算模塊、高度角方位角計算模塊、步進電機脈沖產(chǎn)生模塊的設計及結(jié)果進行詳細的介紹。
圖4 太陽跟蹤系統(tǒng)模塊圖
3.1 計時模塊
視日運動跟蹤方法需要時間和地理緯度信息,一般的太陽跟蹤系統(tǒng)的位置固定,可以自行設定其地理緯度值。對于時間建立了計時模塊,通過對時鐘進行多級分頻輸出視日運動跟蹤算法所需的間信息。
3.2 太陽日出日落時間計算模塊
此模塊計算每天太陽的日出日落時間,據(jù)此保證在太陽的照射時間范圍內(nèi),太陽跟蹤系統(tǒng)正常運行,在非照射時間,太陽跟蹤系統(tǒng)處于休眠狀態(tài)。太陽的日出日落時間即太陽的高度角為零的時間。由高度角計算公式(8)和時角計算公式(9)推出太陽的日出日落時間公式(10)。
α=arcsin(sin φsin δ+cos φcos δcos ω)=0
(8)
ω=(12-T)×15°
(9)
T=12-115°arccos(-tan δtan φ)
(10)
太陽日出日落時間計算模塊仿真波形如圖5所示,輸出為10 b Q4格式,dn為時間序號,其中richu代表日出時刻,riluo代表日落時刻。
對太陽日出日落模塊輸出結(jié)果分析如表1所示,dn為仿真隨機選取的日期,太陽日出日落時間只與dn有關(guān)。對該模塊輸出的10 b Q4格式的時間計算其實際的代表值,并與理論計算值做比較,經(jīng)計算其輸出時間誤差很小,該模塊能夠準確計算出日出日落時間[9]。
3.3 太陽高度角方位角計算模塊
當時間為正常光照時間時,太陽跟蹤系統(tǒng)每隔5 min就會進入太陽高度角方位角進行計算。計時模塊輸出給太陽高度角方位角模塊所需的時間信息,然后計算赤道坐標系下的赤緯角和時角,最后計算高度角方位角坐標系下的高度角和方位角值,并輸出高度角和方位角值如圖6所示,仿真波形如圖7所示。高度角和方位角輸出均為 10 b Q7格式。
圖5 太陽日出日落時間計算仿真波形
圖6 太陽高度角方位角計算模塊
圖7 太陽高度角方位角計算仿真波形
在視日運動跟蹤算法中最重要的是準確計算出當前的太陽相對于地球的高度角和方位角,其計算準確性影響太陽能裝置的能量接受效率。表2表示在dn=100時,不同的時間輸出的太陽的高度角及方位角值,都為10 b Q7格式,計算其實際代表值,并與理論值相比較,誤差很小,說明該模塊能夠準確計算出太陽的高度角和方位角。
表1 太陽日出日落時間計算結(jié)果
dn /日日出輸出/(4Q 10 b)日落輸出/(4Q 10 b)代表日出/h代表日落/h理論日出/h理論日落/h日出誤差/h日落誤差/h
501022826.37517.6256.36317.6370.015-0.015
1001162687.2516.757.216.80.05-0.05
1501072776.687 517.3136.62817.3720.059 5-0.059 5
2001182667.37516.6257.33316.6670.042-0.042
2501162687.2516.757.21316.7870.037-0.037
表2 太陽高度角方位角計算結(jié)果
T/h高度角輸出/(7Q 10 b)方位角輸出/(7Q 10 b)高度角代表值/(°)方位角代表值/(°)高度角理論值/(°)方位角理論值/(°)高度角偏差/(°)方位角偏差/(°)
1284014617.965.38618.0864.84-0.180.546
160798435.3537.636.236.2-0.950.6
19297-143.44-0.44843.900-0.54-0.448
22480-8535.8-3836.2-36.2-0.6-1.8
25640-14417.9-64.4917.9-64.8400.35
3.4 步進電機脈沖控制模塊
步進電機驅(qū)動芯片選擇了3955SB,本設計選擇步進電機的1/8步運行模式,即每步可以達到0.225°。由太陽的高度角方位角計算模塊輸出的高度角和方位角及上一次輸出的高度角方位角值,決定高度和方位需要轉(zhuǎn)動的角度,然后確定高度角步進電機和方位角步進電機的脈沖個數(shù)。根據(jù)步進電機的步進順序輸出16位數(shù)字信號來控制實現(xiàn)兩臺兩相步進電機高度和方位上旋轉(zhuǎn)的角度及其旋轉(zhuǎn)方向。由實驗結(jié)果可知,該模塊能夠按照輸入的電機轉(zhuǎn)動的脈沖個數(shù)進行輸出,并在電機完成旋轉(zhuǎn)要求后能夠保持穩(wěn)定狀態(tài)。當有新的轉(zhuǎn)動輸入后能夠在原來的狀態(tài)上輸出[10]。
4 結(jié) 語
本文設計的太陽跟蹤系統(tǒng)適用于太陽能熱水器、太陽能灶、太陽能電池等需要跟蹤太陽地裝置。跟蹤控制系統(tǒng)采用了視日運動跟蹤方法,通過基于FPGA的高度角方位角計算模塊準確計算出太陽的高度角和方位角。利用轉(zhuǎn)動精確的步進電機驅(qū)動,可以精確地跟蹤太陽,有效提高太陽跟蹤裝置的太陽能吸收效率。
參考文獻
[1]苗永寬.球面天文學[M].北京:科學出版社,1983.
[2]CUCUMO M, KALIAKATSOS D, MARINELLI V. Gen-eral calculation methods for solar trajectories[J]. Renewable Energy, 1997, 30(3): 223-234.
[3]鄭小年,黃巧燕.太陽跟蹤方法及應用[J].能源技術(shù),2003(24):149-151.
[4]李建英,呂文華,賀曉雷,等.一種智能全自動太陽跟蹤裝置的機械設計[J].太陽學報,2003,24(3):1-3.
[5]劉振起.太陽能集能器自動跟蹤裝置[ J] .節(jié)能,2003(9):22-24.
[6]趙麗偉.太陽自動追蹤系統(tǒng)的研究[D].長春:吉林大學,2006.
[7]饒鵬,孫勝利,葉虎勇.兩維程控太陽跟蹤器控制系統(tǒng)的研制[J].控制工程,2004(6):542-545.
[8]劉四洋,伍春生,彭燕昌,等.主動式雙軸太陽跟蹤控制器[J].可再生能源,2007(6):69-72.
[9]張翌翀.基于DSP的太陽跟蹤控制系統(tǒng)研究[D].上海:上海交通大學,2008.
[10]夏宇聞.Verilog數(shù)字系統(tǒng)設計教程[M].北京:北京航空航天大學出版社,2008.
[11]孫炎輝,丁紀峰.基于FPGA的數(shù)據(jù)采集控制模塊設計[ J] .現(xiàn)代電子技術(shù),2009,32(22):189-191.