999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于COMS圖像傳感器的太陽自動跟蹤控制器設計與實現

2010-04-12 00:00:00杜偉巍,鄒麗新,尤金正,周
現代電子技術 2010年11期

摘 要:設計一種基于COMS圖像傳感器的太陽自動跟蹤控制器,上位機通過MCC實現VC++與Matlab聯合編程,實時控制圖像傳感器獲取太陽光斑圖像。經Matlab計算,得到太陽光斑質心坐標與圖像中心坐標的偏差,轉化為水平和俯仰的步進電機需調整的步數,進而實時調整平面鏡跟蹤裝置,使太陽光斑始終在圖像中心位置。實驗結果表明,該裝置實現了太陽自動跟蹤的目的,具有較高的跟蹤精度。

關鍵詞:太陽自動跟蹤; CMOS圖像傳感器; 步進電機; VC++

中圖分類號:TK513.4 文獻標識碼:A

文章編號:1004-373X(2010)11-0125-04

Design and Realization of Solar Auto-tracking Controller Based on CMOS Image Sensor

DU Wei-wei,ZOU Li-xin,YOU Jin-zheng,ZHOU Tong

(Department of Physics Science and Technology, Soochow University, Suzhou 215006, China)

Abstract: A solar automatic tracking controller based on CMOS image sensor is designed. Its host computer achieves a joint programming of VC++ and Matlab based on MCC, and obtains the sun spot image by real-timely controlling the image sensor. The deviation between sun′s mass center coordinates and image center coordinates is calculated by Matlab. The calculation is converted into the steps of the level and pitch stepper motor to be adjusted. Real-time adjustment of plane mirror tracking device is achieved, so that sun spot has always being the center of the image. The experimental results show that the device automatically tracks the sun,and has high tracking accuracy.

Keywords: solar automatic tracking; CMOS image sensor; stepper motor; VC++

太陽跟蹤的方法很多,主要可以分為兩種方式,即光電跟蹤和根據視日運動軌跡跟蹤。光電跟蹤裝置優點是靈敏度高,結構設計簡單,能通過反饋消除累計誤差,具有較大的優勢。其關鍵部件是光電傳感器,常用的是光敏電阻[1]。由于光敏電阻安放位置的不連續和環境散射光的影響,系統不能連續跟蹤太陽,精度有限。因此需對光敏電阻的結構進行優化,而通過增加光敏電阻個數的方法則會造成裝置結構復雜,成本提高。通過分析,采用圖像傳感器代替了光敏電阻檢測太陽位置的變化,可以準確、快速地獲得太陽位置信息,從而提高了跟蹤精度。同時其結構簡化,成本降低。

1 系統總體設計

該系統主要由平面鏡跟蹤裝置、控制和驅動電路、方位限位電路、CMOS圖像傳感器(附巴德膜濾波片)等部分組成。系統總體設計框圖如圖1所示。

跟蹤裝置實物圖如圖2所示,圖像傳感器固定在平面鏡中心。圖像傳感器產品主要分為CCD,CMOS以及CIS傳感器三種。目前CMOS型不僅價格低廉,而且已經實現數字化輸出,軟件可編程控制,大大降低系統設計的難度,提高系統設計的靈活性、抗干擾性和穩定性。

圖1 系統的總體框圖

圖2 太陽自動跟蹤裝置實物圖

CMOS圖像傳感器滿足系統設計要求。跟蹤控制器采用羅技公司的QuickCam系列網絡攝像頭,具有功耗小、成本低、單一電源驅動、易于實現片上系統集成等特點。其開窗特征可以根據實際需要設置有效圖像數據窗口的大小,從而避免了對無效數據的采集,減小存儲空間。

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

系統工作過程為:啟動時,上位機VC++調用視日運動規律中的sun函數,獲取太陽的高度角與方位角[2],并轉化為俯仰和水平步進電機的運行步數,通過RS 485總線與單片機通信,驅動跟蹤裝置運轉,確保太陽光斑裝入CMOS圖像傳感器視角內。

通過MCC實現VC++與Matlab聯合編程,實時控制圖像傳感器采集太陽光斑圖像。VC++程序設置為每隔5 min自動調用傳感器拍一次照,傳回的圖像經Matlab處理,計算出太陽光斑質心坐標與圖像中心坐標的偏差,轉化為水平和俯仰電機需調整的步數,返回給VC++, 再次送給單片機,驅動步進電機動作,進而細微調整平面鏡跟蹤裝置,使太陽光斑始終在圖像中心位置。

當厚云層擋住太陽時,或者由于其他原因太陽光斑無法出現在傳感器視角內,則VC++調用時鐘跟蹤算法,繼續跟蹤,直到云層過去后,再重新使用圖像傳感器跟蹤。

2 圖像傳感器實時跟蹤太陽的設計

2.1 跟蹤控制器的首次定位

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

void CTimertestDlg::GetParam()

{

CTime time(CTime::GetCurrentTime());

tm t=*(time.GetGmtTm()); //得到格林威治時間

sun(t.tm_year+1900,t.tm_mon+1,t.tm_mday,t.tm_hour+t.tm_min/60.+t.tm_sec/3600.,Elong,Lat,SH,SA);

//返回此時太陽方位角和高度角,啟動時調用一次sun函數,此后跟蹤過程不調用

….

fA_Step= SH /double(AR);// AR值是(1.8/100)°

%即經過減速箱之后的方位電機步距角;

fH_Step= SA /double(HR); //HR的值為(1.8/52)°

%即經過減速箱之后的俯仰電機步距角;

modf(fA_Step,fInteger); TRACE(″uA_Step :″);

uA_Step=GetInteger(fInteger);

//方位步進電機需要運行的步數保存在uA_Step

modf(fH_Step,fInteger); TRACE(″uH_Step :″);

uH_Step=GetInteger(fInteger); //俯仰步進電機需要運行的步數保存在uH_Step

…}

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

**t.tm_year+1900,t.tm_mon+1,t.tm_mday, %格林威治日歷

**t.tm_hour+t.tm_min/60.+t.tm_sec/3600., %具體到時分秒

**Elong, Lat%當地的經度和緯度

** SH,SA %返回此時太陽高度角和方位角

而PC與單片機通信協議如下:

void CTimertestDlg::AssembleData(BOOL bReset)

{

Command[0]=(unsigned char)0xAA; //包頭1,固定為0xAA

Command[1]=(unsigned char)0x55; //包頭2,固定為0x55

Command[2]=(unsigned char)Addr(unsigned char)0x1f;//狀態

Command[3]=(unsigned char)(uA_Step0xff);//方位低8位

Command[4]=(unsigned char)((uA_Step0xff00)>>8);//高8位

Command[5]=(unsigned char)(uH_Step0xff); //俯仰低8位

Command[6]=(unsigned char)((uH_Step0xff00)>>8);//高8位

TRACE(″AH is %x AL is %x HH is %x HL is %x″,Command[2],Command[1],Command[4],Command[3]);}

%這里要求先傳送包頭,最后傳送包尾

狀態各位定義如下:

76543210

保留0:正常;

1:水平復位0:正常;

1:俯仰復位地址

其中:6,5必須同時為1時,系統復位。

2.2 圖像傳感器的自動跟蹤原理

VC++設置為每隔5 min自動調用傳感器拍一次照,傳回的圖像經Matlab處理,計算出太陽質心坐標與圖像中心坐標的偏差,并轉化為水平和俯仰電機需調整的步數,再次送給單片機驅動步進電機,進而細微調整平面鏡跟蹤裝置,實現對太陽連續自動跟蹤。

FYP定義為俯仰步進電機應運行步數,FWP表示方位步進電機應運行步數。方位步進電機每動作一步實際為(1.8/100)°,俯仰步進電機每動作一步實際為(1.8/52)°。當系統實際運行時,光斑在圖像中心時設定坐標為(160,120),向下移動出圖像FYP為50;向右移動出圖像FWP為160。若太陽光斑不在中心點時,如圖3所示,經Matlab程序執行結果為光斑圖像坐標(115,117),光斑個數為1,對應FYP為1,FWP為-46。

圖3 太陽光斑不在中心點的圖像

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

圖4為拍攝到太陽光斑存在干擾時的圖像,對比圖4(a)和圖4(b)可發現用Otsu法分割處理后,能有效消除圖像中細微干擾。圖4(c)由Otsu法處理后得到圖4(d),光斑圖像坐標(160,120),光斑個數為2,對應FYP和FWP為0。由此判斷拍攝的圖像存在明顯干擾,程序將FYP和FWP置為0,確保系統的可靠性。

圖4 跟蹤過程中存在干擾時的太陽光斑圖像

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

2.3 系統軟件設計

軟件的主要部分為PC機部分,PC機環境為Windows XP,使用軟件Microsoft Visual C++6.0和Matlab 7.0。啟動時VC++負責調用一次sun函數,返回當前時刻太陽的高度角和方位角,并轉化為FYP和FWP運行步數。通過調用Windows API函數,實現上位機與單片機間數據的傳遞。通過MCC實現VC++與Matlab的聯合編程,控制攝像頭采集太陽光斑圖像,根據太陽光斑質心坐標與圖像中心坐標的偏差轉化為FYP和FWP校正步數。

上位機可執行程序控制界面如圖5所示,上位機控制平臺具有實現復位,太陽位置的跟蹤、手動校準。其中“設置”按鈕,可進行波特率、調整時間間隔等的設置。

圖5 上位機主控界面

3 實驗數據分析

實驗在蘇州大學現代光學所內進行,數據觀察時間為12月下旬至1月上旬。因數據量大,表1只列出2010年1月7日記錄的部分數據。具體測試方法如下[4]:

(1) 參數設置。包括設置當前時間、波特率、通信端口、圖像傳感器運行時間間隔等。

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

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

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

圖6和圖7給出了太陽高度角和方位角的誤差曲線。由曲線看出,采用基于圖像傳感器的太陽自動跟蹤控制器后絕對誤差較小且保持相對穩定。

圖6 俯仰(高度角)實際絕對誤差值曲線

表1 太陽自動跟蹤系統實測數據

時間FYP/步校正FWP/步校正太陽光斑圖像坐標(校正以后)FYD/步誤差FWD/步誤差

11:0017(161,118)-21

11:1518(164,122)-14

11:30014(162,118)-22

11:4505(162,119)02

12:0018(160,120)02

12:15-111(161,121)10

12:30-110(160,119)00

12:45-18(163,121)03

13:00-17(162,120)02

13:1506(162,121)-12

13:30-17(161,121)01

13:45-19(159,121)1-1

14:00-29(159,121)0-1

14:15-15(159,128)-3-2

14:30-15(162,121)02

圖7 方位(方位角)跟蹤誤差曲線

通過對實測數據的分析表明:在該系統中,高度角跟蹤絕對誤差小于0.12°,方位角跟蹤絕對誤差小于0.08°,采用圖像傳感器對太陽進行跟蹤后,得到了很高的精度,且可靠性提高。

4 結 語

該跟蹤控制器可以連續跟蹤太陽的角度變化,更準確實現對太陽運動的跟蹤。當出現陰天或多云情況下,系統調用時鐘算法,使得裝置連續跟蹤。經過實驗測試,各項指標均達到了設計要求。

控制器采用低速處理器實現了對太陽光斑的采集及定位,可應用于各種太陽能設備,提高太陽能的利用率。如果使用步進電動機的微步距控制技術,即用細分技術實現將步進電動機一個整步均分為若干個更細的微步,可以使整個控制系統更加精準,可用來實現對各種點光源的檢測。

參考文獻

[1]苑瑋琦,劉麗微.基于視覺的太陽方位檢測裝置的研究[J].計算機測量與控制,2008,16(7):911-913.

[2]吳靜.太陽自動跟蹤系統的研究[D].重慶:重慶大學,2008.

[3]付忠良.圖像閾值選取方法——Otsu方法的推廣[J].計算機應用,2000,20(5):37-39.

[4]劉京誠,任松林,李敏,等.智能型雙軸太陽跟蹤控制系統的設計[J].傳感器與微系統,2008,27(9):69-71.

[5]劉巍,王志超,沈垣,等.太陽自動跟蹤系統的研究與設計[J].水電能源科學,2009(27):215-218.

[6]呂文華,賀曉雷,于賀軍,等.全自動太陽跟蹤器的研制和應用[J].光學精密工程,2008,12(16):2544-2550.

[7]HOSSAIN Eklas,MUHIDA Riza,ALI Ahad. Efficiency improvement of solar cell using compound parabolic concentrator and sun tracking system[C]//IEEE Electrical Power Energy Conference,2008.

主站蜘蛛池模板: 亚洲av成人无码网站在线观看| 国产一区二区三区夜色| 永久毛片在线播| 亚洲人妖在线| 国产毛片高清一级国语| 久久久久国产精品嫩草影院| 亚洲天堂久久久| 国产成人精品2021欧美日韩| 1级黄色毛片| 国产乱子伦无码精品小说 | 久久久波多野结衣av一区二区| 亚洲天堂网2014| 在线视频亚洲欧美| 91亚洲免费视频| 国产91透明丝袜美腿在线| 视频一区亚洲| 国产精品区视频中文字幕| 精品国产成人a在线观看| 国产日韩欧美视频| 亚洲国产精品一区二区第一页免 | 日本一区二区三区精品AⅤ| 国产精品一线天| 国产一国产一有一级毛片视频| 性69交片免费看| 欧美视频在线观看第一页| 国产精品美乳| 亚洲福利视频网址| 最新精品久久精品| 一本色道久久88| 久久鸭综合久久国产| 国产精品999在线| 黄色一级视频欧美| 91蝌蚪视频在线观看| 国产又色又爽又黄| 青青草原国产一区二区| 午夜一区二区三区| 凹凸精品免费精品视频| 毛片视频网| 亚洲无码免费黄色网址| 亚洲资源站av无码网址| 午夜日本永久乱码免费播放片| 国产精品免费入口视频| 九九九精品视频| 国产欧美日韩另类| 激情综合网址| 手机成人午夜在线视频| 播五月综合| 欧美一级99在线观看国产| 国产一级片网址| 99在线观看精品视频| 国产欧美另类| 国产白浆一区二区三区视频在线| 亚洲 欧美 偷自乱 图片| 免费网站成人亚洲| a级毛片免费网站| 一本一道波多野结衣一区二区| 欧美19综合中文字幕| 国产精品制服| 亚洲精品无码AV电影在线播放| 毛片免费高清免费| 91伊人国产| 亚洲第一视频免费在线| 国产素人在线| 久久天天躁狠狠躁夜夜躁| 香蕉精品在线| 久久鸭综合久久国产| 久久精品嫩草研究院| 免费看a毛片| 97se亚洲| 久久精品中文字幕免费| 少妇精品在线| 国产精品护士| 久久午夜影院| 无码啪啪精品天堂浪潮av| 中文字幕永久在线看| 国产精品人成在线播放| 91视频区| 高清亚洲欧美在线看| 黄色网页在线播放| 91精品久久久无码中文字幕vr| 国产精品久线在线观看| 福利在线不卡|