MPPT工作流程及算法和硬件的選擇
時(shí)間:2018-04-24作者:華清遠(yuǎn)見
在光伏控制系統(tǒng)中,因?yàn)槿照铡囟鹊葪l件的變化,光伏電池的輸出功率也是在不斷變化的,為保證使得光伏電池的輸出功率保持在最大點(diǎn),需要調(diào)整光伏電池輸出電壓(日照強(qiáng)度發(fā)生變化時(shí),短路電流變化大,開路電壓受影響小;環(huán)境溫度發(fā)生變化時(shí),短路電流受影響小,開路電壓變化大)。另外,光伏電池的輸出電壓和電流也和負(fù)載有很大關(guān)系,負(fù)載大,輸出電壓大,輸出電流小;負(fù)載小,輸出電壓小,輸出電流大。光伏電池的MPP中的電壓是指光伏電池的輸出電壓。 MPPT算法選擇 目前,MPPT算法有開路電壓比率(離線)、短路電流比率(離線)、觀察調(diào)節(jié)(在線)、極限追蹤控制法(在線)。 開路電壓比率法——這可以說是非常經(jīng)典也相當(dāng)古老的方法了,又名“固定電壓法”。簡單來說,算法基于最大功率電壓和開路電壓的線性關(guān)系式 ,系數(shù) 取值由設(shè)計(jì)師決定,一般介于0.71到0.78之間,大多數(shù)設(shè)定為0.76。MPPT在追蹤時(shí),首先開路DC端來測量開路電壓,然后通過算法來計(jì)算最大功率電壓并且定位最大功率點(diǎn)。MPPT會(huì)保持在該功率點(diǎn)一段時(shí)間,然后重復(fù)開路測算并且重新定位。固定電壓法的最大優(yōu)點(diǎn)就是制作便宜并且應(yīng)用簡單。相反,缺點(diǎn)也十分明顯:精確值和追蹤效率較低。盡管固定電壓法被稱之為“追蹤”算法,事實(shí)上它依然是在整個(gè)工作循環(huán)中的一個(gè)計(jì)算設(shè)定值而非即時(shí)追蹤值。其次,此方法完全且單純依賴于組串的開路電壓值而放棄了對(duì)于工作電流的追蹤。當(dāng)局部陰影出現(xiàn)在陣列時(shí),實(shí)際最大功率點(diǎn)和MPPT設(shè)定功率點(diǎn)就會(huì)出現(xiàn)相當(dāng)大的偏差,偏差范圍取決于陰影遮蓋程度。最后,每次機(jī)器進(jìn)行開路電壓測量時(shí),太陽能系統(tǒng)是無法輸出功率的,隨著時(shí)間和次數(shù)累計(jì)此算法會(huì)造成一定量的能量流失。總體來說,差評(píng)。 短路電流比率法——和固定電壓法的算法相似,可以表述為 , 是一個(gè)變量系數(shù),通常變化范圍在0.78至0.92。和固定電壓法不同的是,短路電流比率法要求在轉(zhuǎn)換器內(nèi)置一個(gè)高頻開關(guān)來測量短路電流。比較推薦的是在組串和DC link的電容之間安裝一個(gè)FET(field-effect transistor)。由于電流受到光照強(qiáng)度的影響非常大,通常機(jī)器還需要一個(gè)DSP(digital signal processor)來保證IV曲線的全掃描和數(shù)據(jù)的準(zhǔn)確度。這也讓短路電流比率法設(shè)計(jì)更加復(fù)雜且難以應(yīng)用。差評(píng)。 觀察調(diào)節(jié)法——站在巨人肩頭發(fā)展出來的算法你敢不服?目前,P&O依然應(yīng)用在世界各大主流的逆變器中也是最廣泛的被應(yīng)用的算法,沒有之一。相比于ESC,P&O可以在更短的時(shí)間內(nèi)追蹤時(shí)觸碰更大的區(qū)域,掃描更多地?cái)?shù)據(jù)。這進(jìn)一步提高了P&O的追蹤效率和準(zhǔn)確率。由于它在短時(shí)間內(nèi)可以處理大量的數(shù)據(jù),這也一定程度抵制了突變光照強(qiáng)度對(duì)于追蹤精確度的影響。缺點(diǎn)的話,由于它掃描的范圍較大,會(huì)一定程度的導(dǎo)致輸出功率缺乏穩(wěn)定性,但是抖動(dòng)程度基本都在±4%以內(nèi)。所以我還要給它32個(gè)贊!P&O還有一個(gè)姐妹版本,還是“爬山”邏輯,但是并入了“試錯(cuò)”法(trial and error)。處理器會(huì)根據(jù)下一刻追蹤點(diǎn)的移動(dòng)趨勢(shì),比較功率的正增量或負(fù)增量。如果功率持續(xù)增加,處理器將會(huì)繼續(xù)同方向移動(dòng)追蹤點(diǎn),不停比較直到功率達(dá)到峰值。 極限追蹤控制法——該算法第一次提出在19世紀(jì)20年代,也是目前全球最流行的“觀測調(diào)節(jié)法”(Perturb and Observe)的前身。算法的創(chuàng)新點(diǎn)是引入了向量在P-V曲線中。處理器根據(jù)電壓的增量或減量來比較對(duì)應(yīng)的功率增減量,進(jìn)而確定追蹤功率點(diǎn)的移動(dòng)方向。具體判定方法請(qǐng)參照?qǐng)D二,一目了然。 ESC算法的巨大成功是相比于之前的固定電壓法,通過漸進(jìn)向量引入了“爬山法”的概念,進(jìn)而開啟了動(dòng)態(tài)追蹤的算法。ESC極大地拓寬了MPPT對(duì)于DC端輸入能量的捕捉,顯著地提高了追蹤效率。由于ESC對(duì)于后代MPPT算法的影響深遠(yuǎn),導(dǎo)致它的短板也一并被繼承下來并至今“禍害”眾多一線品牌的逆變器。ESC對(duì)于陡然變化的光照反應(yīng)強(qiáng)烈,舉個(gè)通俗例子,MPPT正專注的比較著功率和電壓的變量,“嗯,正向移動(dòng)的電壓同步伴隨著功率的增加,明顯最大功率點(diǎn)還在正向(右邊),那我繼續(xù)向右移動(dòng)”。此時(shí)云層擋住了陽光,稍稍影響了輸入的直流功率,使之略微下降,“慢著!正向移動(dòng)的電壓竟然導(dǎo)致功率減小了!我肯定錯(cuò)過了最大功率點(diǎn),快掉頭!”于是,追蹤點(diǎn)就離它的歸宿越來越遠(yuǎn)的地方飄去。。。我在實(shí)驗(yàn)室模擬測試時(shí),親眼看到最多達(dá)到70%左右的偏差。基于ESC這種一級(jí)(first stage)追蹤的設(shè)計(jì)理念,這種現(xiàn)象,無解。但是欣賞它對(duì)后世的正面影響以及理念創(chuàng)新,還是好評(píng)! 綜合考慮,MPPT的算法采用極限追蹤控制法來進(jìn)行軟件實(shí)現(xiàn),即采集PN側(cè)電壓、流向PN側(cè)的電流數(shù)據(jù),計(jì)算 、 和 ,判斷 與 的關(guān)系, 大于 ,此時(shí)應(yīng)按 減小PN側(cè)的目標(biāo)電壓;若 小于 ,此時(shí)應(yīng)按 增加PN側(cè)的目標(biāo)電壓。 MPPT硬件選擇 MPPT的實(shí)現(xiàn)是通過調(diào)節(jié)光伏電池輸出電壓來實(shí)現(xiàn)的,若光伏電池輸出電壓直接連接到DC/AC的PN側(cè),那么光伏電池輸出電壓波動(dòng)就會(huì)直接影響PN側(cè)電壓,最好是在光伏電池和DC/AC之間加一個(gè)中間環(huán)節(jié),通過這個(gè)中間環(huán)節(jié)來調(diào)整輸入電壓,保持輸出電壓穩(wěn)定,增加或減小輸出電流。這個(gè)功能一般有BUCK、BOOST、BUCK-BOOST、CUK電路和開關(guān)電路可以選擇,但BUCK電路是連續(xù)向負(fù)載供電、間接從電源取電;BOOST電路時(shí)間接向負(fù)載供電、連續(xù)從電源取電,為保證光伏電池板的發(fā)電效率得到較好使用,一般選擇BOOST電路來實(shí)現(xiàn)MPPT。 選擇BOOST電路來實(shí)現(xiàn)MPPT算法,其結(jié)構(gòu)拓?fù)淙缦聢D。
考慮成本問題,再加上光伏電池輸出的所有最大功率點(diǎn)對(duì)應(yīng)的輸出電壓差別不是很大,MPPT不使用DC/DC電路來實(shí)現(xiàn),在現(xiàn)有的DC/AC平臺(tái)上進(jìn)行實(shí)現(xiàn)。 MPPT程序?qū)崿F(xiàn) 變流器的工作流程為: 啟動(dòng)——預(yù)充電——PN側(cè)抬壓——接入光伏電池——輸出(MPPT)。 可以確定,MPPT的作用是在電壓環(huán)上作用,并且是在變流器進(jìn)入工作狀態(tài)后開始工作。 采用現(xiàn)有的DC/AC平臺(tái)來實(shí)現(xiàn)MPPT,存在兩個(gè)問題:控制步長(時(shí)間間隔)問題、擾動(dòng)步長 問題、判斷精度問題。 控制步長問題——PN側(cè)電壓在MPPT過程中會(huì)產(chǎn)生一定的波動(dòng),但因?yàn)閷?duì)于光伏電池來說(結(jié)合下面兩圖),其最大功率點(diǎn)對(duì)應(yīng)的電壓大致都在一個(gè)不大的范圍內(nèi),并且都接近開路電壓,所以,對(duì)于在DC/AC上實(shí)現(xiàn)MPPT,要考慮多長時(shí)間對(duì)PN側(cè)目標(biāo)電壓進(jìn)行一次更新。目前State Manage函數(shù)是0.1ms進(jìn)入一次,可以考慮MPPT的控制步長為0.2~0.5ms,步長暫定為0.3ms。
相同光照、不同溫度
相同溫度,不同光照 擾動(dòng)步長問題——考慮在變流器進(jìn)入工作狀態(tài)后,其PN側(cè)電壓為較穩(wěn)定的值,即使光照強(qiáng)度、環(huán)境溫度發(fā)生變化,光伏電池的最大功率點(diǎn)電壓的變動(dòng)范圍不會(huì)很大。根據(jù)其采集回來的PN側(cè)電壓和光伏電池輸出電流,并計(jì)算和前一時(shí)刻的功率差值 ,根據(jù)電導(dǎo)增量法進(jìn)行判斷,然后在目標(biāo)跟蹤電壓上增加或減小一定的步長 。因?yàn)樵诠夥姵亻_始工作后,PN側(cè)電壓不是從0開始的,而是在光伏電池最大功率點(diǎn)對(duì)應(yīng)電壓附近,所以 的值會(huì)比較小,K值的設(shè)置通過調(diào)試程序獲得,K暫定為5。 判斷精度問題——由導(dǎo)納法的工作流程圖(下圖)可以知道,在流程中存在 、 與0的關(guān)系的判斷,程序中總是會(huì)存在誤差,并且檢測中也會(huì)存在,如果以0為判斷準(zhǔn)值,考慮實(shí)際應(yīng)用中的誤差因素,用一個(gè)小的閥值來替代0。閥值暫定為0.1V和0.1A。
MPPT算法C程序?qū)崿F(xiàn) #include "16F877.h" #device ADC = 8 // 一個(gè)8位寄存器ADC模式 #fuses HS, NOWDT, PUT, NOPROTECT, BROWNOUT, NODEBUG, NOLVP // High-Speed 20MHz, No Watchdog, No Protection, Brownout Protection, #use delay(clock=20000000) // 20MHz Crystal //int is defined as 8-bit unsigned integer using CCS compiler void main (void) { signed int direction; int delta; int pwm; int upperbound; int lowerbound; float power; float powerold; float voltage; float voltagedrop; float voltagedifference; float currentma; float measuredvoltage; float measuredvoltagedrop; direction = 1; // Set initial direction to positive delta = 1; // Amount by which to adjust the PWM - 7-bit resolution so duty step of 2% pwm = 26; // Initial position of the PWM - 50% Duty Cycle with 7-bit resolution. upperbound = 49; // Upper bound of the PWM % lowerbound = 1; // Lower bound of the PWM % power = 0; // Initial Value of Power setup_adc(ADC_CLOCK_DIV_32); // ADC clock setup_adc_ports(ALL_ANALOG); // Set all inputs to analog output_low(PIN_C1); // Set CCP1 output low setup_ccp1(ccp_pwm); // setup pin CCP1 (RC2) to do PWM setup_timer_2(T2_DIV_BY_1,12,1); // 384.615kHz while (1) { //delay_ms(1000) // Wait 1 Second set_adc_channel(0); // Select RA0 //delay_ms(20); // Wait to Read ADC measuredvoltage = read_adc(); // Read the voltage input from ADC channel 0 set_adc_channel(1); // Select RA1 //delay_ms(20); // Wait to Read ADC measuredvoltagedrop = read_adc(); // Read the Voltage dropped across the R from ADC channel 1 voltage = measuredvoltage/51; // Measured Voltage is 51 steps per Volt at a Reference Voltage of 5V voltagedrop = measuredvoltagedrop/51; voltagedifference = voltage - voltagedrop; currentma = voltagedifference; // Calculating Current using 1K Resistance powerold = power; // Calculate the Power from the inputs power = voltage * currentma; pwm = pwm + direction*delta; // Adjust Pulse Width Modulation Value by Delta value if (power < powerold) // If at top of curve, change direction { direction = -direction; continue; } if (pwm > upperbound) // If at maximum PWM, Stop here { pwm = upperbound; continue; } if (pwm < lowerbound) // If at mi nimum PWM, Stop here { pwm = lowerbound; continue; } set_pwm1_duty(pwm); // Set PWM Mark-Space Radio to approx 50% } } 相關(guān)資訊
發(fā)表評(píng)論
|
全國咨詢電話:400-611-6270,雙休日及節(jié)假日請(qǐng)致電值班手機(jī):15010390966
在線咨詢: 曹老師QQ(3337544669), 徐老師QQ(1462495461), 劉老師 QQ(3108687497)
企業(yè)培訓(xùn)洽談專線:010-82600901,院校合作洽談專線:010-82600350,在線咨詢:QQ(248856300)
Copyright 2004-2018 華清遠(yuǎn)見教育科技集團(tuán) 版權(quán)所有 ,京ICP備16055225號(hào),京公海網(wǎng)安備11010802025203號(hào)