Obsah:

Arduino - solární nabíječka PV MPPT: 6 kroků (s obrázky)
Arduino - solární nabíječka PV MPPT: 6 kroků (s obrázky)

Video: Arduino - solární nabíječka PV MPPT: 6 kroků (s obrázky)

Video: Arduino - solární nabíječka PV MPPT: 6 kroků (s obrázky)
Video: Solární napájení pro ESP8266, Arduino, atd. 2024, Listopad
Anonim
Image
Image
Buck Converter
Buck Converter

Na trhu je k dispozici mnoho regulátorů nabíjení. běžné levné regulátory nabíjení nejsou efektivní pro využití maximálního výkonu ze solárních panelů. Ty, které jsou efektivní, jsou velmi nákladné.

Rozhodl jsem se tedy vytvořit si vlastní regulátor nabíjení, který je efektivní a dostatečně chytrý, aby porozuměl potřebám baterie a slunečním podmínkám. vyžaduje náležitá opatření k tomu, aby ze sluneční energie čerpal maximální dostupný výkon a velmi efektivně jej vložil do baterie.

POKUD SE VÁM MÉ ÚSILÍ LÍBÍ, NEŽ PROSÍM HLASUJTE TYTO INSTRUKCE.

Krok 1: Co je MPPT a proč ho potřebujeme?

Naše solární panely jsou hloupé a nerozumné, aby porozuměly podmínkám baterie. Předpokládejme, že máme solární panel 12 V/100 W a bude poskytovat výkon mezi 18 V-21 V závisí na výrobcích, ale baterie jsou dimenzovány na jmenovité napětí 12 V, při plném nabití budou 13,6 V a při plném 11,0 V vybít. nyní předpokládejme, že se naše baterie nabíjí 13 V, panely dávají 18 V, 5,5 A při 100% pracovní účinnosti (není možné mít 100%, ale předpokládejme). běžné ovladače mají regulátor napětí PWM ckt, který snižuje napětí na 13,6, ale žádný proudový zisk. poskytuje ochranu pouze před přetížením a svodovým proudem do panelů během nocí.

Máme tedy 13,6 V*5,5 A = 74,8 W.

Ztratili jsme asi 25 wattů.

K tomuto problému jsem použil smps buck converter. tyto druhy konverzí mají účinnost přes 90%.

Druhým problémem, který máme, je nelineární výkon solárních panelů. musí být provozovány při určitém napětí, aby se sklidil maximální dostupný výkon. Jejich produkce se v průběhu dne mění.

K vyřešení tohoto problému se používají algoritmy MPPT. MPPT (Maximum Power Point Tracking), jak název napovídá, tento algoritmus sleduje maximální dostupný výkon z panelů a mění výstupní parametry, aby udržel podmínku.

Díky použití MPPT budou naše panely generovat maximální dostupný výkon a převodník buck bude tento náboj efektivně vkládat do baterií.

Krok 2: JAK MPPT FUNGUJE?

Nebudu to podrobně rozebírat. Pokud to tedy chcete pochopit, podívejte se na tento odkaz -Co je MPPT?

V tomto projektu jsem sledoval také vstupní V-I charakteristiky a výstupní V-I. vynásobením vstupu V-I a výstupu V-I můžeme mít výkon ve wattech.

řekněme, že máme 17 V, 5 A, tj. 17 x 5 = 85 W, kdykoli během dne. zároveň je náš výkon 13 V, 6 A, tj. 13x6 = 78 Watt.

Nyní MPPT zvýší nebo sníží výstupní napětí ve srovnání s předchozím vstupním/výstupním výkonem.

pokud byl předchozí vstupní výkon vysoký a výstupní napětí nižší než současné, výstupní napětí bude opět nižší, aby se vrátilo k vysokému výkonu, a pokud bylo výstupní napětí vysoké, současné napětí se zvýší na předchozí úroveň. takže stále osciluje kolem bodu maximálního výkonu. tyto oscilace jsou minimalizovány účinnými algoritmy MPPT.

Krok 3: Implementace MPPT na Arduino

Toto je mozek této nabíječky. Níže je kód Arduino pro regulaci výstupu a implementaci MPPT v jednom bloku kódu.

// Iout = výstupní proud

// Vout = výstupní napětí

// Vin = vstupní napětí

// Pin = vstupní výkon, Pin_previous = poslední vstupní výkon

// Vout_last = poslední výstupní napětí, Vout_sense = současné výstupní napětí

void regulate (float Iout, float Vin, float Vout) {if ((Vout> Vout_max) || (Iout> Iout_max) || ((Pin> Pin_previous && Vout_sense <Vout_last) || (PinVout_last)))

{

if (duty_cycle> 0)

{

duty_cycle -= 1;

}

analogWrite (buck_pin, duty_cycle);

}

else if ((VoutVout_last) || (Pi

{

if (cyklus_zásilky <240)

{duty_cycle+= 1;

}

analogWrite (buck_pin, duty_cycle);

}

Pin_previous = Pin;

Vin_last = Vin;

Vout_last = Vout;

}

Krok 4: Buck Converter

Použil jsem N-kanálový mosfet k vytvoření převodníku buck. obvykle lidé volí P-kanálový mosfet pro přepínání na vyšší straně a pokud zvolí N-kanálový mosfet pro stejný účel, než bude vyžadováno IC ovladače, nebo bootovací páskování ckt.

ale upravil jsem převodník buck ckt tak, aby měl přepínání na nízké straně pomocí N-kanálového mosfetu. Používám N-kanál, protože se jedná o nízké náklady, vysoké jmenovité výkony a nižší ztrátový výkon. tento projekt používá mosfet logické úrovně IRFz44n, takže jej lze přímo řídit pinem arduino PWM.

pro vyšší proud zátěže je třeba použít tranzistor k aplikaci 10V na bránu, aby se mosfet zcela nasytil a minimalizoval ztrátový výkon, také jsem udělal to samé.

jak můžete vidět v ckt výše, umístil jsem mosfet na -ve napětí, tedy pomocí +12v z panelu jako země. tato konfigurace mi umožňuje použít N-kanálový mosfet pro převodník buck s minimem komponent.

ale má také některé nevýhody. protože máte obě strany -ve napětí oddělené, již nemáte společnou referenční zem. takže měření napětí je velmi složité.

Připojil jsem Arduino na solární vstupní terminály a používal jeho -ve linku jako zem pro arduino. v tomto bodě můžeme snadno změřit vstupní volateg pomocí rozdělovače napětí ckt podle našeho požadavku. ale nemůže měřit výstupní napětí tak snadno, protože nemáme společnou zem.

Nyní k tomu existuje trik. místo měření výstupního kondenzátoru napětí accros jsem změřil napětí mezi dvěma -ve vedení. pomocí solar -ve jako země pro arduino a výstupu -ve jako signálu/napětí, které se má měřit. hodnota, kterou jste získali tímto měřením, by měla být odečtena od naměřeného vstupního napětí a dostanete skutečné výstupní napětí přes výstupní kondenzátor.

Vout_sense_temp = Vout_sense_temp*0,92+float (raw_vout)*volt_factor*0,08; // měření volatility napříč vstupním GND a výstupním GND.

Vout_sense = Vin_sense-Vout_sense_temp-diode_volt; // změna rozdílu napětí mezi dvěma důvody na výstupní napětí..

Pro měření proudu jsem použil moduly pro snímání proudu ACS-712. Byly napájeny arduino a připojeny ke vstupu gnd.

interní časovače jsou upraveny tak, aby na pinu D6 získaly PWM 62,5 Khz. který slouží k pohonu mosfetu. výstupní blokovací dioda bude vyžadována pro zajištění reverzního úniku a ochrany proti přepólování, pro tento účel použijte schottkyho diodu požadovaného jmenovitého proudu. Hodnota induktoru závisí na požadavcích na frekvenci a výstupním proudu. můžete použít online dostupné kalkulačky převodníku bucků nebo použít zátěž 100uH 5A-10A. nikdy nepřekračujte maximální výstupní proud induktoru o 80%-90%.

Krok 5: Poslední úprava -

Image
Image

do nabíječky můžete také přidat další funkce. jako moje má také LCD displej pro zobrazení parametrů a 2 přepínače pro vstup od uživatele.

Brzy aktualizuji konečný kód a kompletní ckt diagram.

Krok 6: AKTUALIZACE:- Schéma skutečného obvodu, kusovník a kód

Lights Contest 2017
Lights Contest 2017

AKTUALIZACE:-

Nahrál jsem kód, bom a obvod. je trochu odlišný od mého, protože je snazší ho vyrobit.

Doporučuje: