,
(南京工程學院,南京 211167)
太陽能作為綠色、可再生能源,它的合理使用不會對環(huán)境產生污染,可以源源不斷地使用。很多國家都在改革太陽能的采集技術,以便更高效地利用太陽能源,但目前太陽能采集技術比較傳統(tǒng),存在很多弊端。太陽能板是固定裝置,而太陽的位置時刻在變化,這種方式無法充分利用太陽資源,轉換效率較低。另外,太陽能板安裝在室外,容易受粉塵污染,如果不及時清理,會導致發(fā)電效率降低,被遮蔽的光伏電池會變成不發(fā)電的負載電阻,消耗相連電池產生的電力,造成發(fā)熱,這就是“熱斑效應”。此過程會加劇電池板老化,減少光電轉化率,嚴重時會引起火災。本文提出了一種基于圖像處理的嵌入式太陽能自動跟蹤控制系統(tǒng)設計,一方面可以實時調整太陽能板的方位角與傾斜角,使太陽能板始終正對著太陽,從而使太陽能板獲得最大的發(fā)電量,確保提高光電轉換效率,有效提高太陽能的利用率;另一方面,也可以實時觀察太陽能板灰塵度,及時清理,延長太陽能板的壽命。
系統(tǒng)方案總體框圖如圖1所示。系統(tǒng)主要由處理器Smart210開發(fā)平臺、電機、單片機、GPS模塊等組成。主要工作原理是:處理器通過讀取GPS模塊輸出的緯度及時間等參數(shù),大致計算出此時太陽的高度角和方位角,再計算出電機轉動次數(shù),實現(xiàn)對太陽方位的初始定位,然后通過對攝像頭采集的太陽圖片進行圖像信息處理,計算得到跟蹤系統(tǒng)的誤差,驅動電機再次定位,從而實現(xiàn)對太陽的精確跟蹤。這個跟蹤過程分為以下兩個步驟完成:
圖1 太陽方位跟蹤系統(tǒng)總體框圖
① 跟蹤裝置初始位置確定—視日運動軌跡跟蹤策略,由于太陽軌跡有一定規(guī)律,所以通過視日運動跟蹤算法能夠計算某地任意時刻的太陽高度角和方位角,進而驅動電機使裝置正對太陽。采用視日運動軌跡跟蹤有兩個主要原因: 一是實現(xiàn)跟蹤設備的初始定位;二是當天氣陰天沒有太陽出現(xiàn)時,系統(tǒng)也可以正常工作。
② 攝像頭拍攝太陽圖像以形成閉環(huán)反饋,通過攝像頭收集太陽斑點圖像,并對太陽斑點圖像進行計算,求出太陽圖像的質心,獲取太陽位置的偏差,反饋給跟蹤系統(tǒng),校正跟蹤裝置,然后完成對太陽位置的精確跟蹤。
太陽的高度角、方位角通過一定的算法處理后,將此加載到控制系統(tǒng)中,控制邏輯電路計算出對應太陽移動的位置,最后控制器控制電路驅動電機旋轉,從而使太陽能板保持與太陽光垂直。設計采用雙軸追蹤模型,一個電機控制水平轉動,另外一個電機控制垂直方向,這樣可以實現(xiàn)水平方向和垂直方向調整,實現(xiàn)了全方位追蹤。系統(tǒng)工作時,根據(jù)太陽軌跡算法和太陽質心識別算法得到太陽的高度角和方位角,方位角參數(shù)控制水平轉軸,高度角參數(shù)控制垂直轉軸,從而使得太陽能板始終對著太陽。精密攝像頭與太陽能板安裝在一個平面上,便于采集太陽圖像[1-3]。
系統(tǒng)有兩種控制模式:時間控制模式和圖像處理模式。軟件設計環(huán)境采用嵌入式QT編程,系統(tǒng)上電, QT系統(tǒng)啟動后,先讀取GPS模塊,得到當前時間,通過時間判是白晝還是夜晚。如果是夜晚,系統(tǒng)進入休眠狀態(tài);如果是白晝,系統(tǒng)讀取GPS模塊得到此地的經緯度和時間,再通過視日運動算法計算此時太陽的方位角和仰角,然后驅動電機定位太陽最開始的位置,接下來就是圖像處理模塊。初始定位后,攝像頭采集此時的太陽圖像,通過圖像處理,精確定位太陽位置。由于篇幅限制,這里對于基于視日運動軌跡計算太陽的方位角與高度角的方法和實現(xiàn)不做詳細描述,重點講述圖像處理跟蹤方法。
2.2.1 圖像處理算法流程圖
利用圖像處理的方法實現(xiàn)太陽跟蹤,需要通過攝像頭采集太陽圖像,再對圖片進行去噪聲處理,處理完成后,圖像中只有單一的太陽光斑,接下來進行質心定位,計算中心偏差,然后計算電機轉動的次數(shù)。軟件流程圖如圖2所示。
圖2 太陽圖像處理操作流程圖
2.2.2 太陽光斑圖像預處理
(1)太陽光斑圖像采集方案的設計
太陽光照很強,攝像頭直接采集太陽圖像,得到的圖像比較模糊,時間較長會損壞攝像頭,所以在采集太陽圖像時要加保護措施,使太陽光間接在攝像頭內成像。
本文采用在攝像頭前加上專用薄膜的方法,目前最常用的專用薄膜是德國發(fā)明的巴德膜,借用巴德膜采集太陽圖像更加有效,更能顯現(xiàn)太陽的真實色彩,還能濾除云朵等反射的較弱光。實驗選擇密度為5.0、透光性約為十萬分之一的巴德膜。
由于巴德膜的透光性弱,可以得到質量良好的太陽光斑圖像。圖3中左圖是沒有加巴德膜攝像頭采集的太陽圖像,右圖是增加保護膜后拍攝的太陽圖像。對比兩圖可以看出,使用巴德膜作為太陽濾鏡可以取得更好的像質,噪聲點較少,有利于后續(xù)的圖像處理,另外,對攝像頭也起到保護作用,避免燒傷。
圖3 兩次拍攝的太陽圖像對比圖
(2)太陽圖像的預處理
由于巴德膜的折痕導致圖像處理過程中會產生不可避免的噪聲點,這些噪聲點會影響到最終的識別效果,因此需要對這些噪聲點進行濾除,這里采取開運算與閉運算[4-6]。開運算就是先腐蝕后膨脹,用來消除小物體、在纖細點處分離物體、平滑較大物體的邊界的同時并不明顯改變其面積。閉運算是先膨脹后腐蝕,用來填充物體內細小空洞、連接鄰近物體、平滑其邊界的同時并不明顯改變其面積。
① 腐蝕。兩組集合A、B,結構元素B對A的整個腐蝕過程如下:用B結構元素掃描圖像A的每一個像素,結構元素中的每一個像素與其覆蓋的像素進行“與”運算,如果結果均為1,該像素為1,否則為0。腐蝕過程的結果是將原始二值圖像縮少一圈。
② 膨脹。用B結構元素掃描圖像A的每一個像素,結構元素中的每一個像素與其覆蓋的像素進行“與”運算,如果兩者均為0,則圖像的該像素為0,否則為1,膨脹過程使二值圖像大一圈。
本文對原始圖像先進行開運算填充太陽圖像中的孔,再閉運算去除噪點。圖4中,左圖和右圖是經過開閉運算前后的對比圖。對比兩圖可知,運用開運算和閉運算等方法能夠完善噪聲濾除、形態(tài)識別、圖像分割等問題。
圖4 開閉運算前后的太陽圖像
2.2.3 光斑質心定位
上述所做的預處理工作都是為了找到太陽質心的精確位置,而能否找到質心的位置是整個太陽跟蹤系統(tǒng)的關鍵。光斑質心定位的辦法有很多種,比如圖像匹配算法、圖像邊界跟蹤算法等。由于本文中預處理之后的光斑比較單一,所以采用圖像輪廓跟蹤算法求質心[7-8]。
(1)圖像輪廓跟蹤算法——Canny算法
Canny算法實現(xiàn)分為幾個步驟:利用高斯濾波器來消除噪聲,達到平滑圖像的目的;計算圖像中的強度梯度;應用非最大抑制(non-maximum suppression)技術消除邊誤檢;應用雙閾值方法來檢測可能的(潛在的)邊界;利用滯后技術來跟蹤邊界[9-10]。具體步驟如下:
① 圖像平滑-高斯去噪
圖像信息的原始數(shù)據(jù)要經過高斯去噪聲來減少對邊界檢測的影響,采用的方法是原始數(shù)據(jù)與高斯mask作卷積,得到的圖像與原始圖像相比有點模糊。高斯濾波器核的生成方程式為:
1≤i,j?(2k-1)
(1)
假設圖像數(shù)據(jù)矩陣為A,則經過高斯濾波(卷積)之后,平滑后的像素點亮度值為:
(2)
② 尋找圖像中的梯度和方向
Canny算法的核心是尋找一幅圖片中灰度強度變化最強的位置,即梯度和方向。濾波后的圖像每個像素點的梯度可由不同的算子(例如Roberts、Prewitt、Sobel等)來計算,這里采用Sobel算子來獲得。用于邊緣檢測的Sobel算子返回水平Gx和垂直Gy方向的一階導數(shù)值,由此確定像素的梯度和方向,如下式(G表示梯度強度,θ表示梯度的方向):
(3)
(4)
在水平x和垂直y方向的Sobel算子是:
(5)
圖5 Sobel算子的方向坐標圖
其中Sx用于檢測垂直方向的邊緣算子,Sy表示用于檢測水平方向的邊緣算子。在笛卡爾坐標中,Sobel算子的方向坐標如圖5所示。
假設圖像矩陣為A,利用Sobel算子進行卷積計算后,像素e點在x和y軸方向上的梯度值分別是Gx和Gy,表達式如下:
(6)
(7)
所以,計算結果x方向Gx值和y方向的梯度值Gy,代入式(3)和式(4),計算出梯度和方向。
③ 非極大值抑制
非極大值抑制采用邊緣稀疏技術,目的是削薄邊緣。非極大值抑制就是保留每個像素點上梯度強度的最大值,而刪除其他值。梯度圖像中每個像素點的非極大值抑制操作如下:
a. 將當前像素的梯度強度與梯度方向為正負梯度的兩個像素進行比較;
b. 如果當前像素的梯度強度與其他兩個像素梯度相比最大,則該像素點保留,否則刪除該像素點。
④ 雙閾值檢測
經過非極大值抑制后圖像仍有很多噪聲點,Canny算法采用了一種雙閾值技術來進一步降低這些噪聲。即設定一個閾值的上限和一個閾值的下限;圖像中的像素點強度如果大于閾值的上限,則認為是強邊界;小于閾值的下限,則不是邊界;如果像素點的梯度值大于低閾值小于高閾值,則認為是弱邊界,需要進一步處理。
⑤ 抑制孤立的弱邊界點
經過雙閾值檢測得到了強邊緣和弱邊緣,對于強邊緣,可以認為它是實際的輪廓。對于弱邊緣,它不一定是實際邊緣,需要抑制孤立邊緣。原理為:如果弱邊界的8個鄰域邊緣中存在強邊緣,則保留邊緣;反之,則抑制該弱邊緣。
通過上述步驟完成了Canny算法對圖像進行邊緣檢測,圖6為Canny算法之后的邊緣圖。
圖6 Canny算法之后的邊緣圖像
(2)計算太陽輪廓的質心
獲取到太陽輪廓后,計算太陽質心就比較簡單了,步驟如下:查找最大的輪廓;計算輪廓的空間矩;計算質心。
圖7所示為太陽圖像的質心檢測結果,圖中小圓圈為太陽質心位置。
圖7 光斑質心檢測結果
2.2.4 控制電機運轉實現(xiàn)太陽跟蹤
攝像頭安裝在太陽能板上,攝像頭采集太陽圖像的大小為320×240,圖像左下角為坐標原點,圖像中心位置的坐標是(160,120),當太陽光斑位于圖像中心時,太陽能板正對著太陽。太陽光斑移動示意圖如圖8所示。
圖8 太陽光斑運動示意圖
通過實驗測試得知步進電機轉動的角度與質心像素點的移動存在線性關系,步進電機轉動1個單位,質心像素點移動5個像素點。假設太陽光斑圖像某一刻坐標為(X,Y),步進電機轉動次數(shù)設為Cx、Cy(分別表示水平、垂直轉動次數(shù)),則有:
Gx=(X-160)/5
(8)
Gy=(Y-120)/5
(9)
步進電機轉動相應次數(shù),完成跟蹤。
2.2.5 計算太陽能板粉塵覆蓋率
截取太陽能板圖像,計算太陽能板的面積,對太陽能板圖像二值化,進行Canny算法,尋找粉塵覆蓋輪廓,計算輪廓面積,求取灰塵覆蓋率。由于篇幅有限,這里不做詳細介紹。
圖9 系統(tǒng)晴天時跟蹤太陽的圖像
實驗測試需要在晴天環(huán)境下操作,通過GPS模塊知道此地的經緯度為北緯31.55度,東經118.52度。首先將裝置面朝正北方,將轉臺復位,然后開啟系統(tǒng)。系統(tǒng)每隔15分鐘追蹤太陽,系統(tǒng)的工作步驟為:每次跟蹤之前,先通過太陽軌跡運動規(guī)律算法定位太陽大致方位,然后通過圖像處理算法找到太陽精確位置,這里為了減小誤差,進行了5次圖像處理,以達到更高的精確性。圖9為系統(tǒng)晴天時跟蹤太陽的圖像,圖9(a)是太陽圖像初始位置,圖9(b)是根據(jù)太陽圖像分析處理調整電機旋轉后的位置,接近坐標的中心位置,說明太陽能板已經正對著太陽。注:(144.2,143.7)代表太陽初始位置坐標,(157.7,121.4)是調整后的坐標。