《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于COMS圖像傳感器的太陽自動跟蹤控制器設(shè)計(jì)與實(shí)現(xiàn)
基于COMS圖像傳感器的太陽自動跟蹤控制器設(shè)計(jì)與實(shí)現(xiàn)
摘要: 太陽跟蹤的方法很多,,主要可以分為兩種方式,,即光電跟蹤和根據(jù)視日運(yùn)動軌跡跟蹤,。光電跟蹤裝置優(yōu)點(diǎn)是靈敏度高,結(jié)構(gòu)設(shè)計(jì)簡單,,能通過反饋消除累計(jì)誤差,,具有較大的優(yōu)勢。其關(guān)鍵部件是光電傳感器,,常用的是光敏電阻,。由于光敏電阻安放位置的不連續(xù)和環(huán)境散射光的影響,系統(tǒng)不能連續(xù)跟蹤太陽,,精度有限,。
Abstract:
Key words :

       太陽跟蹤的方法很多,主要可以分為兩種方式,,即光電跟蹤和根據(jù)視日運(yùn)動軌跡跟蹤,。光電跟蹤裝置優(yōu)點(diǎn)是靈敏度高,結(jié)構(gòu)設(shè)計(jì)簡單,,能通過反饋消除累計(jì)誤差,,具有較大的優(yōu)勢。其關(guān)鍵部件是光電傳感器" title="傳感器">傳感器,,常用的是光敏電阻,。由于光敏電阻安放位置的不連續(xù)和環(huán)境散射光的影響,系統(tǒng)不能連續(xù)跟蹤太陽,,精度有限,。

  因此需對光敏電阻的結(jié)構(gòu)進(jìn)行優(yōu)化,而通過增加光敏電阻個數(shù)的方法則會造成裝置結(jié)構(gòu)復(fù)雜,,成本提高,。通過分析,,采用圖像傳感器代替了光敏電阻檢測太陽位置的變化,可以準(zhǔn)確,、快速地獲得太陽位置信息,,從而提高了跟蹤精度。同時其結(jié)構(gòu)簡化,,成本降低,。

  1 系統(tǒng)總體設(shè)計(jì)

  該系統(tǒng)主要由平面鏡跟蹤裝置、控制和驅(qū)動電路,、方位限位電路,、CMOS圖像傳感器(附巴德膜濾波片)等部分組成。系統(tǒng)總體設(shè)計(jì)框圖如圖1所示,。跟蹤裝置實(shí)物圖如圖2所示,,圖像傳感器固定在平面鏡中心。圖像傳感器產(chǎn)品主要分為CCD,,CMOS以及CIS傳感器三種,。目前CMOS型不僅價(jià)格低廉,而且已經(jīng)實(shí)現(xiàn)數(shù)字化輸出,,軟件可編程控制,,大大降低系統(tǒng)設(shè)計(jì)的難度,提高系統(tǒng)設(shè)計(jì)的靈活性,、抗干擾性和穩(wěn)定性,。

  CMOS圖像傳感器滿足系統(tǒng)設(shè)計(jì)要求。跟蹤控制器" title="控制器">控制器采用羅技公司的QuickCam系列網(wǎng)絡(luò)攝像頭,,具有功耗小,、成本低、單一電源驅(qū)動,、易于實(shí)現(xiàn)片上系統(tǒng)集成等特點(diǎn),。其開窗特征可以根據(jù)實(shí)際需要設(shè)置有效圖像數(shù)據(jù)窗口的大小,從而避免了對無效數(shù)據(jù)的采集,,減小存儲空間,。

  由于太陽光十分強(qiáng)烈,因此在圖像采集時,,需要給攝像頭加上巴德膜濾波片,。實(shí)驗(yàn)表明加兩層濾波片后,所得到的圖像效果較佳,。

  系統(tǒng)工作過程為:啟動時,,上位機(jī)VC++調(diào)用視日運(yùn)動規(guī)律中的sun函數(shù),獲取太陽的高度角與方位角,并轉(zhuǎn)化為俯仰和水平步進(jìn)電機(jī)的運(yùn)行步數(shù),,通過RS 485總線與單片機(jī)通信,,驅(qū)動跟蹤裝置運(yùn)轉(zhuǎn),確保太陽光斑裝入CMOS圖像傳感器視角內(nèi),。

  通過MCC實(shí)現(xiàn)VC++與Matlab聯(lián)合編程,,實(shí)時控制圖像傳感器采集太陽光斑圖像。VC++程序設(shè)置為每隔5 min自動調(diào)用傳感器拍一次照,,傳回的圖像經(jīng)Matlab處理,,計(jì)算出太陽光斑質(zhì)心坐標(biāo)與圖像中心坐標(biāo)的偏差,轉(zhuǎn)化為水平和俯仰電機(jī)需調(diào)整的步數(shù),,返回給 VC++,,再次送給單片機(jī),驅(qū)動步進(jìn)電機(jī)動作,,進(jìn)而細(xì)微調(diào)整平面鏡跟蹤裝置,,使太陽光斑始終在圖像中心位置。

  當(dāng)厚云層擋住太陽時,,或者由于其他原因太陽光斑無法出現(xiàn)在傳感器視角內(nèi),,則VC++調(diào)用時鐘跟蹤算法,繼續(xù)跟蹤,,直到云層過去后,,再重新使用圖像傳感器跟蹤,。

  2 圖像傳感器實(shí)時跟蹤太陽的設(shè)計(jì)

  2.1跟蹤控制器的首次定位

  啟動時,,上位機(jī)中VC++程序首先調(diào)用視日運(yùn)動規(guī)律中的sun函數(shù)(此后跟蹤過程中無需再調(diào)用),返回此時的太陽高度角和方位角,,換算成俯仰和方位步進(jìn)電機(jī)所需的步數(shù),,數(shù)據(jù)送給單片機(jī),驅(qū)動跟蹤裝置運(yùn)轉(zhuǎn),,確保太陽光斑裝入圖像傳感器視角內(nèi),。子程序得到所需要運(yùn)行的步數(shù),列出部分代碼:


  sun()函數(shù)中各個變量的含義:


  而PC與單片機(jī)通信協(xié)議如下:


  狀態(tài)各位定義如下:


  其中:6,,5必須同時為1時,,系統(tǒng)復(fù)位。

  2.2 圖像傳感器的自動跟蹤" title="自動跟蹤">自動跟蹤原理

  VC++設(shè)置為每隔5 min自動調(diào)用傳感器拍一次照,,傳回的圖像經(jīng)Matlab處理,,計(jì)算出太陽質(zhì)心坐標(biāo)與圖像中心坐標(biāo)的偏差,并轉(zhuǎn)化為水平和俯仰電機(jī)需調(diào)整的步數(shù),,再次送給單片機(jī)驅(qū)動步進(jìn)電機(jī),,進(jìn)而細(xì)微調(diào)整平面鏡跟蹤裝置,實(shí)現(xiàn)對太陽連續(xù)自動跟蹤。

  FYP定義為俯仰步進(jìn)電機(jī)應(yīng)運(yùn)行步數(shù),,F(xiàn)WP表示方位步進(jìn)電機(jī)應(yīng)運(yùn)行步數(shù),。方位步進(jìn)電機(jī)每動作一步實(shí)際為(1.8/100)°,俯仰步進(jìn)電機(jī)每動作一步實(shí)際為(1.8/52)°,。當(dāng)系統(tǒng)實(shí)際運(yùn)行時,,光斑在圖像中心時設(shè)定坐標(biāo)為(160,120),,向下移動出圖像FYP為50,;向右移動出圖像FWP為 160。若太陽光斑不在中心點(diǎn)時,,如圖3所示,,經(jīng)Matlab程序執(zhí)行結(jié)果為光斑圖像坐標(biāo)(115,117),,光斑個數(shù)為1,,對應(yīng)FYP為1,F(xiàn)WP為 -46,。

  圖像處理過程中運(yùn)用了最大類間方差法Otsu,,是根據(jù)最小二乘原理推導(dǎo)出來的,它基于直方圖來選取閾值,,其基本思路是將直方圖在某一閾值處分割成兩組,,當(dāng)被分成的兩組的方差為最大時,得到閾值,。方差是灰度分布均勻性一種量度,,方差值越大說明構(gòu)成圖像的兩部分差別越大,當(dāng)部分目標(biāo)錯分為背景,,或部分背景錯分為目標(biāo)都會導(dǎo)致兩部分差別變小,,所以使類間方差最大的分割意味著錯分概率最小。Otsu算法具有簡單,、分割速度快等優(yōu)點(diǎn),,對噪音和目標(biāo)大小十分敏感,對于信噪比較高的圖像具有很好的分割效果,,被認(rèn)為閾值自動選取的最優(yōu)方法之一,。

  圖4為拍攝到太陽光斑存在干擾時的圖像,對比圖4(a)和圖4(b)可發(fā)現(xiàn)用Otsu法分割處理后,,能有效消除圖像中細(xì)微干擾,。圖4(c)由Otsu法處理后得到圖4(d),光斑圖像坐標(biāo)(160,,120),,光斑個數(shù)為2,對應(yīng)FYP和FWP為O。由此判斷拍攝的圖像存在明顯干擾,,程序?qū)YP和FWP置為O,,確保系統(tǒng)的可靠性。


  一般情況下使用圖像傳感器跟蹤,,但當(dāng)陰天或出現(xiàn)厚云層時,,太陽光斑無法出現(xiàn)在傳感器視角內(nèi),VC++立即調(diào)用時鐘算法,,根據(jù)太陽在天空中每分鐘運(yùn)動的角度,,計(jì)算出跟蹤控制器5 min應(yīng)轉(zhuǎn)動的角度,從而確定出步進(jìn)電機(jī)的轉(zhuǎn)速,,使得裝置根據(jù)太陽位置而相應(yīng)變動,。

  2.3 系統(tǒng)軟件設(shè)計(jì)

  軟件的主要部分為PC機(jī)部分,PC機(jī)環(huán)境為Windows XP,,使用軟件Microsoft Visual C++6.0和Matlab 7.0,。啟動時VC++負(fù)責(zé)調(diào)用一次sun函數(shù),返回當(dāng)前時刻太陽的高度角和方位角,,并轉(zhuǎn)化為FYP和FWP運(yùn)行步數(shù),。通過調(diào)用Windows API函數(shù),實(shí)現(xiàn)上位機(jī)與單片機(jī)間數(shù)據(jù)的傳遞,。通過MCC實(shí)現(xiàn)VC++與Matlab的聯(lián)合編程,,控制攝像頭采集太陽光斑圖像,根據(jù)太陽光斑質(zhì)心坐標(biāo)與圖像中心坐標(biāo)的偏差轉(zhuǎn)化為FYP和FWP校正步數(shù),。

  上位機(jī)可執(zhí)行程序控制界面如圖5所示,,上位機(jī)控制平臺具有實(shí)現(xiàn)復(fù)位,太陽位置的跟蹤,、手動校準(zhǔn),。其中“設(shè)置”按鈕,可進(jìn)行波特率,、調(diào)整時間間隔等的設(shè)置。


  3 實(shí)驗(yàn)數(shù)據(jù)分析

  實(shí)驗(yàn)在蘇州大學(xué)現(xiàn)代光學(xué)所內(nèi)進(jìn)行,,數(shù)據(jù)觀察時間為12月下旬至1月上旬,。因數(shù)據(jù)量大,表1只列出2010年1月7日記錄的部分?jǐn)?shù)據(jù),。具體測試方法如下:


  (1)參數(shù)設(shè)置,。包括設(shè)置當(dāng)前時間、波特率,、通信端口,、圖像傳感器運(yùn)行時間間隔等。

  (2)運(yùn)行VC++程序。上位機(jī)中VC++程序首先調(diào)用sun函數(shù),,返回此時的太陽高度角和方位角,,換算成俯仰和方位步進(jìn)電機(jī)所需的步數(shù)。只記錄下由Matlab生成txt文件中的需要校正的步數(shù),。

  (3)系統(tǒng)自動校正完成后,,Matlab再次寫txt文件,保存校正后太陽光斑的圖像坐標(biāo),,以及光斑質(zhì)心坐標(biāo)與圖像中心坐標(biāo)的偏差,。此時記錄。

  (4)每隔5 min重復(fù)(2),,(3)步驟,。


  圖6和圖7給出了太陽高度角和方位角的誤差曲線。由曲線看出,,采用基于圖像傳感器的太陽自動跟蹤控制器后絕對誤差較小且保持相對穩(wěn)定,。通過對實(shí)測數(shù)據(jù)的分析表明:在該系統(tǒng)中,高度角跟蹤絕對誤差小于0.12°,,方位角跟蹤絕對誤差小于0.08°,,采用圖像傳感器對太陽進(jìn)行跟蹤后,得到了很高的精度,,且可靠性提高,。

  4 結(jié)語

  該跟蹤控制器可以連續(xù)跟蹤太陽的角度變化,更準(zhǔn)確實(shí)現(xiàn)對太陽運(yùn)動的跟蹤,。當(dāng)出現(xiàn)陰天或多云情況下,,系統(tǒng)調(diào)用時鐘算法,使得裝置連續(xù)跟蹤,。經(jīng)過實(shí)驗(yàn)測試,,各項(xiàng)指標(biāo)均達(dá)到了設(shè)計(jì)要求。

  控制器采用低速處理器實(shí)現(xiàn)了對太陽光斑的采集及定位,,可應(yīng)用于各種太陽能設(shè)備,,提高太陽能的利用率。如果使用步進(jìn)電動機(jī)的微步距控制技術(shù),,即用細(xì)分技術(shù)實(shí)現(xiàn)將步進(jìn)電動機(jī)一個整步均分為若干個更細(xì)的微步,,可以使整個控制系統(tǒng)更加精準(zhǔn),可用來實(shí)現(xiàn)對各種點(diǎn)光源的檢測,。

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。