馮 濤,李 擎,王常策,崔家瑞,潘月斗,庫都斯
(北京科技大學a.自然科學基礎實驗中心;b.自動化學院,北京 100083)
資源枯竭已經成為當前制約人類經濟社會持續發展的重大困擾和難題,太陽能熱發電技術因其顯著的優點而成為新能源開發和利用的重要發展方向[1-4]。太陽能熱發電系統有多種形式,其中塔式太陽能發電系統是通過大規模的反射鏡群將太陽光聚焦到發電場中央集熱塔頂部的接收器上,對其中的工質進行高溫加熱產生蒸汽來驅動發電機發電,實現太陽能到電能的轉換。這種太陽能熱發電形式因其熱傳輸路徑短、發電效率高、熱損耗小等特點成為世界各國研究的重點[5-6],其中定日鏡對太陽位置及光線角度的持續精確跟蹤是塔式太陽能熱發電系統中的重點和難點[7-9]。由于需要對太陽的高度角和方位角進行同步跟蹤,塔式太陽能熱發電的定日鏡需要實現雙軸獨立控制,由獨立的步進電機分別控制定日鏡的水平角度和俯仰角度以實現對太陽追蹤。
目前市面上成品的運動控制器均采用ARM/DSP+CPLD/FPGA的架構,這種架構具有極強的運算能力,能夠實現4 軸甚至6 軸的曲線、圓弧插補[10-11]。定日鏡的運動控制只需要2 軸插補,使用成品運動控制器性能嚴重過剩。對于塔式太陽能熱發電場來說,其定日鏡規模龐大,考慮到鏡群組網和遠程控制的要求,定日鏡運動控制系統占電場總體建設成本的比例較大,采用這種成品的運動控制器會造成極大的成本壓力。因此有必要專門針對塔式太陽能發電場的定日鏡控制需求,開發一款成本低、控制靈活、易于大規模組網的雙軸運動控制系統。
定日鏡需要根據當前所在的經度、緯度,以及當前的時間和季節,利用太陽在天空的軌跡運行規律調整自身的角度來實現對太陽的追蹤,整體控制流程如圖1 所示。

圖1 定日鏡太陽追蹤控制流程圖
根據地球繞太陽旋轉的規律,可以得到太陽的高度角為[12]

式中:H為太陽高度角;φ為定日鏡當前所在位置的緯度;α為赤緯角;ω為太陽時角。
太陽方位角為

式中,β為太陽方位角。通過式(1)、(2),系統可以計算出當前太陽的所在高度角和方位角,驅動步進電動機實現對太陽的追蹤。
根據定日鏡控制流程,定日鏡雙軸控制系統的總體要求如下:
(1)要求實現Modbus-TCP工業總線協議,并且數據響應延遲要低于50 ms,能夠與中央控制主機進行實時穩定通信;
(2)能夠驅動兩路步進電動機,分別控制定日鏡的俯仰角度和水平旋轉角度,并要求根據步進電動機的機械特性,對步進電動機實現平滑加減速控制,避免步進電動機失步與過沖;
(3)要求具備非易失性數據存儲和完善的過熱報警、保護功能。
系統方案整體框圖如圖2 所示。

圖2 系統整體框圖
系統主要由微控制器及其外圍電路、WiFi 通信模塊、步進電動機驅動器等組成。系統可以實現Modbus-TCP通信協議,具備現場大規模組網和通信能力,以集中對發電場內所有定日鏡進行遠程控制。系統可產生兩路脈沖及方向信號輸出給專用的步進電動機驅動器,以驅動兩臺步進電動機分別控制定日鏡的俯仰角度和水平角度,并能實現步進電機的平滑加減速。系統帶有RS-232 接口,以和專用的手持操作器通信,方便維護人員對定日鏡進行現場控制。此外,系統還集成有非易失性數據存儲器,以存儲經緯度、通信地址和其他控制參數。系統同時還帶有溫度傳感和報警功能,以監測當前環境溫度,防止系統在室外工作過程中出現過熱等現象。
根據上面的總體設計要求,選用STM32F407VGT6單片機作為主控芯片。STM32F407VGT6 單片機集成的是高性能的Cortex-M4 內核,工作頻率在168 MHz,并且帶有浮點計算功能,運算能力得到進一步加強[13]。該單片機內部集成了極為豐富的外設資源,如I/O口、定時器、UART、I2C接口等,各個外設模塊可以與多個I/O口進行功能復用,使用相當靈活。在本系統中單片機的內部資源分配如表1 所示。

表1 系統功能與資源分配
系統使用EEPROM 芯片24LC02 來存儲經緯度、通信地址等非易失性參數。24LC02 內部包含有256 Byte的存儲空間,采用I2C 接口,并帶有寫保護功能,可防止系統出現意外故障使得程序意外寫入導致數據損壞。24LC02 的電路原理圖如圖3 所示。

圖3 24LC02電路原理圖
在軟件實現上,這里使用STM32 單片機I/O口軟件模擬的方式來實現與24LC02 芯片之間的I2C 總線通信和數據讀寫。I2C協議使用SCL與SDA兩根線來實現雙向數據傳輸,SCL 作為時鐘線,SDA 作為數據線。將STM32 的對應I/O 口進行相應的配置,根據I2C總線協議規范和24LC02 的手冊要求,來實現對SCL和SDA 線的控制,從而實現對24LC02 的數據讀寫。
為了對塔式太陽能熱發電場的定日鏡進行統一的控制和狀態監測,要求控制系統具有較強的數據通信能力,這里采用的是Modbus-TCP 協議來實現定日鏡控制系統的大規模組網。Modbus-TCP 協議是運行在TCP/IP網絡協議上的Modbus 通信規約,廣泛地應用于工業控制領域,能夠與多種PLC、通用控制器實現對接[14]。
本系統中Modbus-TCP 協議的實現以WiFi 模塊USR-WiFi232-B作為物理層。USR-WiFi232-B 模塊是一款一體化的802.11 b/g/n WiFi模塊,采用工業級高性能嵌入式架構,在本系統中它的電路如圖4 所示。

圖4 USR-WIFI232-B模塊電路原理圖
USR-WiFi232-B模塊已經處理了WiFi 數據通信中的大部分細節,系統根據Modbus 通信規約要求來實現Modbus-TCP通信協議。Modbus-TCP協議的實現采用有限狀態機模型來實現,狀態轉移圖如圖5 所示。

圖5 Modbus-TCP數據處理狀態轉移圖
沒有收到網絡數據時,系統處于“空閑”狀態。收到網絡數據后,系統轉移到“數據接收”狀態,此時隨著數據傳輸的不斷進行,會根據Modbus-TCP 的協議約定,對數據幀完整性進行持續判斷。當接收到完整的數據幀之后,進入“數據幀解析”狀態,會對數據幀的正確及有效性進行進一步的判斷,驗證訪問的寄存器有沒有超過范圍等。如果數據幀驗證通過,則對其中的功能碼進行對應的處理。Modbus 協議支持多種功能碼,針對不同的功能碼,系統對相應地址的寄存器進行讀寫,然后把讀寫結果組成回復數據幀進行數據發送。數據發送完畢,再次進入“空閑”狀態,一次通信即告結束,等待遠程控制主機發起下一次Modbus通信。
Modbus協議支持多種功能碼,在本系統中實現的功能碼見表2。

表2 系統已實現的Modbus功能碼
本系統中,對步進電機的控制需要由系統提供相應頻率的脈沖輸出,脈沖輸出的頻率決定了電動機的旋轉速度,脈沖輸出的數量決定了步進電機的旋轉角度,因此需要實現脈沖頻率、數量的可控輸出[15-16]。相對于采用CPLD/FPGA 的較為復雜的方案,本系統采用STM32 單片機內部的高級多功能定時器進行相互級聯使用,實現步進電機脈沖信號頻率和數量的可控輸出。該方案的組成框圖如圖6 所示。

圖6 STM32單片機定時器級聯框圖
圖6 中,定時器1 由STM32 的內部高頻時鐘提供時鐘源,時鐘經過分頻和定時器1 的計數器計數,產生PWM信號輸出到外部。同時定時器2 對PWM信號進行計數,當計數個數達到設定值時,進入定時器2 的ISR,改變定時器1 的寄存器設置,從而改變脈沖輸出的頻率。脈沖輸出都是由定時器硬件完成,軟件只需要在預設的脈沖個數輸出完畢時才會介入以對后續的脈沖頻率、個數進行修改,實現了系統的軟硬件優化,對硬件結構實現了簡化,在保證系統性能的基礎上,實現了系統成本的顯著降低。
在實驗室環境下,采用數字存儲數字示波器以及專用的通信測試軟件對系統進行了詳盡的實驗測試。控制系統電路板及測試環境如圖7 所示。

圖7 定日鏡雙軸控制系統電路板及實驗室測試環境
將系統與上位機接入同一個局域網,然后在上位機上運行Modbus Poll 測試軟件,對系統進行連續的Modbus寄存器讀寫操作,同時讓系統對24LC02 芯片進行連續的讀寫操作,并與此同時輸出頻率、數量可控的脈沖信號。使用這樣的方式,對系統的Modbus-TCP通信、24LC02 芯片讀寫、脈沖信號可控輸出等功能進行完整的壓力測試。
Modbus通信波形如圖8 所示,圖中,通道1 是中央主機發送過來的控制和查詢指令,通道2 是本系統的回復數據。由圖可見,從主機指令發送結束到本系統數據回復起始之間的時間延遲約為10 ms,滿足系統的實時性要求。Modbus通信測試界面如圖9所示。經過24h的連續測試運行,上位機與系統總計進行了6.5 ×105包的Modbus-TCP 通信數據交換,出錯次數為0,這說明本系統實現的Modbus-TCP具有較高的通信穩定性,滿足系統的穩定性需求。

圖8 Modbus-TCP通信波形圖
用示波器抓取的系統對24LC02 芯片進行讀寫操作的I2C通信波形如圖10 所示,波形滿足I2C 協議中所規定的操作時序要求和建立保持時間條件。測試過程中,對24LC02 芯片整個數據區域進行了連續104余次的讀寫操作,數據讀取與寫入均成功,達到系統設計要求。

圖9 Modbus-TCP通信測試界面圖

圖10 I2C總線操作波形圖
在系統進行Modbus-TCP通信與EEPROM數據讀寫操作的同時,讓系統周期性地輸出兩路頻率、數量可控的脈沖信號,如圖11 所示。

圖11 脈沖可控輸出波形圖
對上面兩路輸出脈沖的數量、周期進行統計分析,結果見表3~5。

表3 兩路脈沖輸出數量統計
由上面的測試可見,系統穩定的實現了Modbus-TCP協議通信、EEPROM 數據讀寫、脈沖信號可控輸出等各項功能。由于使用了STM32單片機內部的高級定時器,以硬件的方式來產生可控的脈沖輸出,將CPU的工作負載大大降低,使得CPU有足夠的時間去處理Modbus-TCP 通信、24LC02 的I2C 讀寫操作等其他功能,使系統的整體穩定性和響應速度得到了有效保證。

表4 兩路脈沖最大輸出周期統計

表5 兩路脈沖最小輸出周期統計
本系統已經成功應用于位于北京某太陽能熱發電實驗電站。該實驗電站是國家“十一五”863 計劃重點項目的一部分,是我國首個、同時也是亞洲最大的塔式太陽能熱發電電站。電站總占地面積約19 200 m2,集熱塔高119 m,鏡場安裝有100 面定日鏡,總發電規模為1 MW,年可發電量達2 ×107kW·h。經過實驗電站長期的運行測試表明,本系統能夠對定日鏡群實現平滑穩定的逐日跟蹤,并且能夠在中央控制室調度下對定日鏡群實現實時遠程統一控制,達到了預期的設計目標。應用調試現場如圖12 所示。

圖12 定日鏡控制系統應用現場
本文基于STM32F407 單片機,設計了一套定日鏡雙軸運動控制系統,實現了定日鏡對太陽的獨立連續跟蹤。系統實現了Modbus-TCP 遠程通信、步進電機脈沖信號可控輸出、EEPROM 參數本地存儲等功能。相對于成熟的通用運動控制器,該系統結構精簡,能大幅降低塔式太陽能熱發電場的建設成本,同時具有運行穩定、響應速度快、聯網能力強的特點,取得了明顯的經濟社會效益。