向 平,袁 博,曹煜國
(西北工業(yè)大學(xué),陜西西安710072)
為提高光伏發(fā)電系統(tǒng)的發(fā)電量,需要提高光伏陣列吸收太陽輻射能量的能力。通常工程中采用的方法是為光伏陣列安裝跟蹤裝置,而雙軸跟蹤方式是目前國內(nèi)外比較流行的太陽跟蹤系統(tǒng)裝置。因此,本文從現(xiàn)有的研究基礎(chǔ)上,將設(shè)計(jì)采用視日軌跡跟蹤和雙軸跟蹤的方法,以ARM為控制核心,步進(jìn)電動(dòng)機(jī)為執(zhí)行元件,通過對跟蹤裝置的水平和俯仰兩個(gè)方向的控制,實(shí)現(xiàn)對太陽的全天候跟蹤。該跟蹤控制系統(tǒng)不僅對于大型光伏發(fā)電具有現(xiàn)實(shí)的意義,并能對改善和推廣利用太陽能起到積極的推動(dòng)作用。
S3C2410的CPU內(nèi)核采用的是ARM公司設(shè)計(jì)的16/32位ARM920T RISC處理器。ARM920T實(shí)現(xiàn)了MMU(內(nèi)存管理單元)、AMBA(先進(jìn)的微控制器總線體系結(jié)構(gòu))總線和Harvard高速緩存體系結(jié)構(gòu),該結(jié)構(gòu)具有獨(dú)立的16 kB指令Cache和16 kB數(shù)據(jù)Cache,每個(gè)Cache都是由8個(gè)字長的行組成的。此外,S3C2410還集成了豐富的片上資源,開發(fā)者可以盡可能地減少外圍設(shè)備部件,從而大大減少了整個(gè)系統(tǒng)的成本,減少了開發(fā)周期。
系統(tǒng)的構(gòu)成原理框圖如圖1所示。根據(jù)天文太陽軌跡計(jì)算方法,微控制器MCU計(jì)算出太陽的高度角和方位角,轉(zhuǎn)換成步進(jìn)電動(dòng)機(jī)轉(zhuǎn)過相應(yīng)角度所需的步數(shù),通過I/O口進(jìn)行脈沖和方向信號(hào)的發(fā)送至步進(jìn)電動(dòng)機(jī)的驅(qū)動(dòng)器,驅(qū)動(dòng)器進(jìn)行一定的功率放大,驅(qū)動(dòng)跟蹤裝置轉(zhuǎn)動(dòng),使光伏板時(shí)刻保持與太陽的光線垂直,完成實(shí)時(shí)跟蹤太陽的功能。
圖1 系統(tǒng)構(gòu)成原理圖
系統(tǒng)的硬件設(shè)計(jì)方框圖如圖2所示。
(1)工作電壓及復(fù)位電路
系統(tǒng)的工作電壓有 1.8 V/2.0 V、5V 與 3.3 V三種。系統(tǒng)內(nèi)核供電1.8 V/2.0 V,1.8 V 內(nèi)核供時(shí),最高工作頻率為200 MHz,本系統(tǒng)采用2.0 V內(nèi)核供電,最高工作頻率可達(dá)266 MHz。獨(dú)立直流5V電源供USB接口、LCD等使用。存儲(chǔ)器和I/O口所需電壓為3.3 V,可由5 V電源經(jīng)過降壓獲得。
圖2 系統(tǒng)硬件設(shè)計(jì)方框圖
系統(tǒng)復(fù)位采用專門的復(fù)位芯片MAX708構(gòu)成復(fù)位電路,且?guī)в惺謩?dòng)復(fù)位的引腳,穩(wěn)定可靠。
(2)存儲(chǔ)模塊
系統(tǒng)采用了3種存儲(chǔ)器,即:NOR Flash、NAND Flash和SDRAM。NOR Flash存儲(chǔ)器具有速度快,數(shù)據(jù)不易丟失等特點(diǎn),因此用于存放引導(dǎo)程序、操作系統(tǒng)和用戶程序。NAND Flash價(jià)格低廉、數(shù)據(jù)不易丟失,考慮到用戶不可對其直接操作的特點(diǎn),將其作為文件存儲(chǔ)器,用于存放系統(tǒng)運(yùn)行時(shí)所使用的程序代碼、堆棧和數(shù)據(jù),以提高系統(tǒng)的運(yùn)行速度。SDRAM為系統(tǒng)內(nèi)存,主要用于執(zhí)行主程序。
(3)人機(jī)交互模塊
液晶顯示器(LCD)、觸摸屏、矩陣鍵盤構(gòu)成了系統(tǒng)的人機(jī)交互模塊,液晶顯示和觸摸屏部分用于顯示系統(tǒng)的狀態(tài)信息,鍵盤用于進(jìn)行手動(dòng)校正或系統(tǒng)的復(fù)位。S3C2410集成了256K色的TFT LCD(薄膜場效應(yīng)晶體管)控制器,系統(tǒng)采用分辨率為320*240,3.5英寸TFT液晶屏,帶有觸摸屏功能。鍵盤選用4*5矩陣小鍵盤與控制器的I/O口相連。
(4)通用I/O口
S3C2410具有24通道外部中斷源和117個(gè)通用輸入輸出口(GPIO)引腳,分為8組,即 PORTA(GPA)~PORTH(GPH)。8組I/O口按照其位數(shù)不同,可分為:1個(gè)23位輸出口(PORTA),2個(gè)11位I/O口(PORTB和 PORTH)),4個(gè)16位 I/O口(PORTC、PORTD、PORTE、PORTG),1 個(gè)8位 I/O 口(PORTF)。為滿足不同系統(tǒng)設(shè)計(jì)的需要,可以很容易地通過軟件對這些I/O口進(jìn)行配置。本系統(tǒng)選用端口PORTF(GPF),包括管腳GPF0~GPF7,由于只需四個(gè)端口即可完成系統(tǒng)的功能,因此選用GPF0~GPF3作為控制信號(hào)。
(5)其它
本系統(tǒng)選用了一個(gè)USB1.1 HOST接口和一個(gè)USB1.1 Device接口,USBDevice口與PC機(jī)相連,可與PC機(jī)進(jìn)行通信。在燒寫Flash的時(shí)候,可通過USB下載,速度要比串口快得多。應(yīng)注意的是在采用USB下載時(shí),需保證USB連接好,如不能下載需將USB重新插拔。
本系統(tǒng)選用的步進(jìn)電機(jī)為兩相四線型的永磁感應(yīng)式,其型號(hào)為 130BYG系列,配套驅(qū)動(dòng)器為SH20822M,工作電壓為市電220 V,其連接采用共陰極接法(CP接 CP+,DIR接 DIR+,F(xiàn)REE接FREE+,共陰端分別接 CP-、DIR -、FREE-),如圖3所示。步進(jìn)電機(jī)單步走角為1.8°。
圖3 步進(jìn)電動(dòng)機(jī)與驅(qū)動(dòng)器連接
通過控制脈沖個(gè)數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。方向電平信號(hào)DIR由端口GPF1和GPF3來控制步進(jìn)電動(dòng)機(jī)的旋轉(zhuǎn)方向;脈沖個(gè)數(shù)CP由端口GPF0和GPF2給出;脫機(jī)電平信號(hào)FREE,本系統(tǒng)不需要此信號(hào)功能,所以此端不接,懸空。此外,由于S3C2410的I/O輸出高電平為3.3 V,而SH20822M驅(qū)動(dòng)電壓為5 V,兩者電平無法兼容,因此設(shè)計(jì)了3.3 V轉(zhuǎn)5 V電平轉(zhuǎn)換電路,保證控制器驅(qū)動(dòng)電機(jī)正常工作。其實(shí)現(xiàn)電路如圖4所示。
圖4 電平轉(zhuǎn)化電路
基于WinCE 6.0的嵌入式系統(tǒng)采用4層體系結(jié)構(gòu),具有層次性強(qiáng)、可移植性好、組件可裁剪、強(qiáng)調(diào)編程接口和支持上層應(yīng)用等特點(diǎn)。光伏發(fā)電跟蹤控制系統(tǒng)從下而上可分為4層:硬件平臺(tái)、驅(qū)動(dòng)程序、WinCE 6.0操作系統(tǒng)和應(yīng)用程序。具體系統(tǒng)架構(gòu)如圖5所示。軟件部分主要分為操作系統(tǒng)內(nèi)核的定制、應(yīng)用程序的開發(fā)。
圖5 系統(tǒng)架構(gòu)
WinCE 6.0是微軟開發(fā)的、可升級的32位嵌入式操作系統(tǒng),具有模塊化、結(jié)構(gòu)化和基于Win32應(yīng)用程序接口以及與處理器無關(guān)等特點(diǎn)。Visual Studio2005專業(yè)版作為WinCE 6.0的一部分一并被推出,而Visual Studio 2005專業(yè)版包括一個(gè)被稱為Platform Builder的功能強(qiáng)大的插件,可作為嵌入式平臺(tái)的“集成開發(fā)環(huán)境(IDE)”。本文就是選用WinCE 6.0+VS2005為開發(fā)環(huán)境,兩者的結(jié)合可滿足控制跟蹤系統(tǒng)的實(shí)時(shí)性、穩(wěn)定性的要求。
本系統(tǒng)所需的操作系統(tǒng)是通過對WinCE 6.0系統(tǒng)結(jié)構(gòu)進(jìn)行配置與裁剪后安裝運(yùn)行在ARM9硬件平臺(tái)上的,其定制與移植過程大致簡述如下。
首先,確保PC機(jī)上已安裝好WinCE 6.0開發(fā)環(huán)境,利用其生成的開發(fā)工具Platform Builder進(jìn)行操作系統(tǒng)IDE的定制,且附帶有基于WinCE 6.0平臺(tái)的所有創(chuàng)建、設(shè)計(jì)、編譯、測試和調(diào)試等一體的其它開發(fā)工具。
其次,創(chuàng)建板級支持包(BSP)即OAL層、Boot Loader和驅(qū)動(dòng)程序的開發(fā)。再者,下載官方的EBOOT(在開發(fā)的過程中使用EBOOT,可以提高開發(fā)效率),加載 BOOTLOADER的 Startup函數(shù),EBOOT依次調(diào)用函數(shù) OEMDebugInit()、OEMPlatformInit()、OEMPreDownload()、OEMLaunch()完成內(nèi)核的初始化工作。最后,加載系統(tǒng)所需的驅(qū)動(dòng)程序,如系統(tǒng)終端和系統(tǒng)時(shí)鐘驅(qū)動(dòng)、實(shí)時(shí)時(shí)鐘驅(qū)動(dòng)、USB驅(qū)動(dòng)、液晶(LCD)驅(qū)動(dòng)和觸摸屏驅(qū)動(dòng)等。
WinCE 6.0內(nèi)核的定制與移植以及相應(yīng)驅(qū)動(dòng)程序詳細(xì)過程這里不再贅述,應(yīng)用程序的開發(fā)是在Platform Builder導(dǎo)出的軟件開發(fā)工具包(SDK)上進(jìn)行的,采用C/C++語言編寫。
系統(tǒng)應(yīng)用軟件方框圖如圖6所示。包括系統(tǒng)初始化模塊、高度角和方位角計(jì)算模塊、步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)模塊以及人機(jī)界面模塊等。采用面向?qū)ο蠓椒?,按照模塊化結(jié)構(gòu)進(jìn)行系統(tǒng)應(yīng)用程序的設(shè)計(jì)與開發(fā)。
圖6 應(yīng)用軟件方框圖
(1)系統(tǒng)初始化模塊
該模塊的主要作用是確定機(jī)械裝置的基準(zhǔn)位置以及控制機(jī)械裝置的行程和限位保護(hù)。將精密限位開關(guān)安裝在系統(tǒng)高度角和方位角方向的零點(diǎn)位置,當(dāng)機(jī)械運(yùn)動(dòng)到基準(zhǔn)位置的時(shí)候,通過觸發(fā)開關(guān)向控制器端口發(fā)送切斷信號(hào),控制器接收到信號(hào)后,立即終止脈沖信號(hào)的發(fā)送。這種模式主要是針對系統(tǒng)工作異常和復(fù)位自動(dòng)返回基準(zhǔn)零點(diǎn)位置而設(shè)置的,此外,也可以同時(shí)減小因機(jī)械結(jié)構(gòu)加工和步進(jìn)電動(dòng)機(jī)傳動(dòng)所產(chǎn)生的誤差累計(jì)。
(2)高度角和方位角計(jì)算模塊
該模塊根據(jù)太陽運(yùn)行軌跡的算法,由當(dāng)?shù)氐牡乩砦恢煤蜆?biāo)準(zhǔn)時(shí)間來確定太陽每時(shí)每刻的位置,且由相應(yīng)的公式可得出。在實(shí)際應(yīng)用中,手動(dòng)輸入當(dāng)?shù)氐乩砭暥?,?dāng)?shù)貢r(shí)間則由高精度控制器的時(shí)鐘模塊來提供,以保證系統(tǒng)的準(zhǔn)確定位和跟蹤。
(3)步進(jìn)電機(jī)驅(qū)動(dòng)模塊
步進(jìn)電機(jī)是一種用電脈沖信號(hào)進(jìn)行控制,并將電脈沖信號(hào)轉(zhuǎn)換成相應(yīng)角位移的控制元件。驅(qū)動(dòng)模塊是控制器與步進(jìn)電動(dòng)機(jī)的接口,三者共同作用實(shí)現(xiàn)雙軸的轉(zhuǎn)向、轉(zhuǎn)角和轉(zhuǎn)速的控制。對于本系統(tǒng)的驅(qū)動(dòng)器而言,轉(zhuǎn)向取決于控制器送出的方向電平的高或低,轉(zhuǎn)角取決于控制器送出的步進(jìn)脈沖的個(gè)數(shù),而轉(zhuǎn)速則取決于控制器發(fā)出的步進(jìn)脈沖之間的時(shí)間間隔。
本系統(tǒng)的主程序完成實(shí)時(shí)太陽高度角和方位角的計(jì)算,并對高度角和方位角按照每累計(jì)1.8°發(fā)出一次脈沖信號(hào),這樣既可以滿足步進(jìn)電動(dòng)機(jī)參數(shù),又不會(huì)累計(jì)誤差。并且對于水平方向進(jìn)行20細(xì)分,俯仰方向進(jìn)行10細(xì)分,使步進(jìn)電動(dòng)機(jī)的控制精度進(jìn)一步提高,又能降低電機(jī)低頻振蕩。控制器端口按照步進(jìn)電動(dòng)機(jī)穩(wěn)定工作的脈沖頻率200 Hz發(fā)出脈沖信號(hào),同時(shí)發(fā)送方向電平來控制跟蹤裝置的運(yùn)動(dòng)方向,送至SH2088M驅(qū)動(dòng)步進(jìn)電動(dòng)機(jī)按照控制策略運(yùn)動(dòng)。其控制程序主流程圖如圖7所示。
圖7 控制程序主流程圖
(4)人機(jī)交互界面
系統(tǒng)的人機(jī)交互界面是在WinCE 6.0提供的圖形界面服務(wù)下開發(fā)的,由圖形化窗口與事件子系統(tǒng)(GWES.EXE)實(shí)現(xiàn)??稍诖私缑嫱ㄟ^設(shè)置相應(yīng)的參數(shù)進(jìn)行手動(dòng)校正和異常復(fù)位,還可以顯示太陽的高度角和方位角及時(shí)間等狀態(tài)信息。其顯示界面如圖8所示。
圖8 系統(tǒng)顯示界面
本文以S3C2410與WinCE 6.0為硬軟件平臺(tái),以步進(jìn)電動(dòng)機(jī)為執(zhí)行元件,完成了光伏發(fā)電跟蹤控制系統(tǒng)的整體功能設(shè)計(jì),整個(gè)系統(tǒng)能滿足系統(tǒng)微型化、高性能和實(shí)時(shí)性的要求,而且還可以對光伏發(fā)電系統(tǒng)其它功能進(jìn)行擴(kuò)展,具有很好的推廣性。
[1]Stine W B,Harrigan R W.Solar energy fundamentals and design[M].New York:John Wiley,1985.
[2]饒鵬.兩緯程控太陽跟蹤器控制系統(tǒng)的研制[J].控制工程,2004,11(6):542 -545.
[3]竇偉.跟蹤式光伏發(fā)電系統(tǒng)研究 [J].太陽能學(xué)報(bào),2007,28(2):169-173.
[4]尤金正.太陽自動(dòng)跟蹤系統(tǒng)的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2009(19):139-142.
[5]Cucumo M,Kaliakatsos D,Marinelli V.General calculation methods for solar trajectories[J].Renewable Energy,1997,30(3):223-234.
[6]何宗建.Windows CE嵌入式系統(tǒng)[M].北京:北京航空航天大學(xué)出版社,2006.
[7]周立功.ARM & WinCE實(shí)驗(yàn)與實(shí)踐 - 基于 S3C2410[M].北京:北京航空航天大學(xué)出版社,2007.