INHOUDSOPGAWE:

Grid Tie Inverter: 10 stappe (met foto's)
Grid Tie Inverter: 10 stappe (met foto's)

Video: Grid Tie Inverter: 10 stappe (met foto's)

Video: Grid Tie Inverter: 10 stappe (met foto's)
Video: configuration oundulor INVT injection on grid 10 kw 2024, Julie
Anonim
Image
Image
Grid Tie Omskakelaar
Grid Tie Omskakelaar
Grid Tie Omskakelaar
Grid Tie Omskakelaar

Dit is 'n vlesige projek, so hou vas!

Omvormers met roosterbande stel u in staat om die krag in 'n netaansluiting te druk, wat 'n wonderlike vermoë is. Ek vind die kragelektronika en beheerstelsels wat by die ontwerp betrokke is, interessant, daarom het ek my eie gebou. Hierdie verslag deel wat ek geleer het en dokumenteer hoe ek dinge gedoen het. Ek sal belangstel in enige kommentaar wat u het (afgesien van die opmerkings oor die feit dat u nie met die elektrisiteit praat nie).

Al die konsepte is skaalbaar, maar hierdie opstelling het 'n maksimum uitset van 40 watt gehad voordat die filterinduktors begin versadig het. Die uitsetstroom was sinusvormig met THD <5%.

Sien die sagteware op my GitHub

Voorrade

  • Ek het die ontwikkelingsbord STM32F407 gebruik. Dit werk op 168MHz en het 3 ingeboude ADC's wat elk 'n resolusie van 12 bit kan lewer teen meer as 2,4 MSPS (miljoen monsters per sekonde). Dis kranksinnig!
  • Ek het die ontwikkelingsbord DRV8301 gebruik. Dit huisves 'n 60v H-brug saam met die nodige hekbestuurders, stroomversnellings en stroomversterkers. Super lekker!
  • Ek het 'n toroidale transformator van 230-25v met 2 uitsetkrane gebruik. Dit het beteken dat ek nie netspanning direk hoef te produseer nie, maar eerder met piekspannings van 40 volt kan werk. Baie veiliger!
  • Ek het 'n klomp induktors en kapasitors saam gekoppel om die L- en C -waardes te kry wat ek vir die filter wou hê.
  • 'N Osilloskoop en differensiële sonde is die sleutel vir 'n projek soos hierdie. Ek het 'n Picoscope

Stap 1: Wat is hoofkrag?

Wat is hoofkrag?
Wat is hoofkrag?
Wat is hoofkrag?
Wat is hoofkrag?

Wat u by 'n stopcontact kry (in die Verenigde Koninkryk) is 'n sinusvormige sein van 50Hz 230v RMS met 'n baie lae impedansie. 'N Paar dinge om hieroor te sê:

50Hz - Netfrekwensie word baie presies by 50Hz gehandhaaf. Dit wissel effens, maar 90% van die tyd is dit tussen 49,9-50,1Hz. Sien hier. U kan u voorstel dat die enorme kragopwekkers in kragstasies op en af in die land in 'n eenheid draai. Hulle draai sinchroon en produseer vir ons 'n sinusvormige sein van 50Hz. Hulle gesamentlike massiewe rotasie -traagheid neem tyd om te vertraag of te versnel.

In teorie, as 'n GROOT vrag aan die netwerk gekoppel word, sal dit die land se kragopwekkers begin vertraag. In reaksie hierop sou die ouens in die National Grid se beheerkantoor kragstasies versoek om hul ketels op te gaar, die hitte te versnel en die kragopwekkers harder te dwing om aan die vraag te voldoen. Vraag en aanbod is dus in 'n deurlopende dans met mekaar.

Nog 'n ding om te sê oor die 50Hz -sein. Alhoewel dit baie effens wissel oor 50Hz, sorg die ouens dat die gemiddelde frekwensie oor die dag presies 50Hz is. As die netwerk dus 10 minute by 49,95Hz is, sal hulle verseker dat dit later op 50,05Hz loop om die presiese aantal siklusse op 50Hz x 60sekondes x 60minute x 24 uur = 4, 320, 000/dag te bring. Hulle doen dit presies met behulp van International Atomic Time. Huishoudelike, kantoor- en industriële toestelle kan dus die netfrekwensie gebruik om tyd te hou. Dit word gewoonlik gedoen met byvoorbeeld meganiese sokkeltydtellers.

230v - Dit is die RMS (Root Mean Square) spanning van die 50Hz sein. Die werklike sein swaai tot 'n piek van 325v. Dit is belangrik om te weet, want as u 'n omskakelaar bou, moet u hierdie spanning so hoog produseer as u stroom in die proppe kan laat vloei.

In werklikheid is die spanning wat by 'n prop in u huis gesien word, baie veranderlik. Dit is te wyte aan spanningsval oor die weerstand in drade, verbindings, sekuriteite, transformators, ens. Daar is oral weerstand. As u 'n elektriese stort aansit wat 11 kilowatt trek (dit is ~ 50Amps), sal selfs 0,2 ohm weerstand u 10 volt laat daal. U kan dit sien as die ligte so effens verdof. Groot motors, soos dié in hoovers, trek groot strome terwyl die motor vinnig opdaag. U sien dus gereeld 'n effense flikkering van die ligte as u dit aanskakel.

My punt is dat die netspanning baie meer veranderlik is. In die Verenigde Koninkryk moet dit 230V wees met 'n toleransie van +10%/-6%. U kan verwag dat u skielike veranderinge en skommelinge sal sien as groot vragte in die omgewing aan/af skakel. Dink aan tuimeldroërs, ketels, oonde, hoenders ens.

Sinusvormig - Die sein moet 'n mooi skoon sinusgolf wees, maar in werklikheid suig sommige nie -lineêre toestelle hul krag van sekere punte in die sinusgolfsiklus. Dit lei tot vervorming en daarom is die sein nie 'n perfekte sinusgolf nie. Nie -lineêre vragte sluit gewoonlik rekenaarkragbronne, fluoresserende ligte, laaiers, TV's, ens.

Totale harmoniese vervorming (THD) kwantifiseer dit in die golfvorm. Daar is regulasies oor hoe skoon die uitset van 'n omskakelaar moet wees. As dit nie 'n skoon genoeg sein kan lewer nie, word dit nie te koop goedgekeur nie. Dit is belangrik, want harmoniese inhoud in die rooster verminder die doeltreffendheid van sommige toestelle wat daaraan gekoppel is (veral vreemde harmonieë). Ek glo dat die maksimum toelaatbare THD 8% is

Lae impedansie - dit is belangrik om dit te oorweeg as u aan 'n omskakelaar vir netwerke dink. Daar is allerhande vragte wat aan die net gekoppel is, insluitend induktiewe, weerstandbiedende en soms kapasitiewe las. Die impedansie is dus onbekend en veranderlik. Die weerstand is baie klein, wat beteken dat as u 'n hoë stroomlas aansluit, die spanning glad nie daal nie.

Stap 2: Hoe om krag in die rooster te druk

Hoe om krag in die rooster te druk
Hoe om krag in die rooster te druk

Om krag in die net te druk, moet ons 'n sein sintetiseer wat presies ooreenstem met die frekwensie en fase van die net, maar met 'n effens hoër spanning.

Vanweë die lae weerstand van die net, is dit moeilik om presies te weet hoeveel hoër om die spanning te maak. En namate die RMS -spanning wissel, moet ons verseker dat ons daarmee wissel. Net die vervaardiging van 'n vaste 50Hz -spanningssein wat effens hoër is as die netspanning, werk nie!

PI Beheer van die uitsetstroom

Wat ons nodig het, is 'n kontrolelus waardeur ons die oombliklike stroom wat ons in die rooster druk, meet en outomaties ons uitsetspanning aanpas om die stroom wat ons wil hê, aan te dryf. Dit sal ons uitset effektief omskakel in 'n stroombron (eerder as 'n spanningsbron) wat meer geskik is vir die bestuur van lae impedansies. Ons kan dit bereik deur 'n PI (Proportional Integral) -beheerlus te gebruik:

PI -kontrolelusse is fantasties! Daar is 3 dele daarvan:

  • Die gemete waarde - die stroom wat ons in die netstroom plaas
  • Die setpoint - die stroom wat ons in die net wil druk
  • Die uitset - Die seinspanning wat genereer moet word

Elke keer as ons die PID -algoritme noem, slaag ons die mees onlangse huidige meting en die gewenste setpoint. Dit gee 'n willekeurige getal (eweredig aan die uitgangsspanning om te genereer) terug.

Ons PID -beheeralgoritme stel ons in staat om op enige gegewe tydstip die gewenste uitsetstroom te kies. Om 'n sinusvormige uitgangsstroom van 50Hz te produseer, moet ons die gevraagde stroom voortdurend sinusvormig verander.

Die PID -algoritme word elke 100us genoem (gelykstaande aan 200 keer per 50Hz siklus). Elke keer as dit genoem word, kan dit die uitgangsspanning regstreeks aanpas en dus die uitsetstroom indirek aanpas. As gevolg hiervan lewer ons 'n trappe stroomuitset soortgelyk aan die in die prentjie, met elke stap elke 100 us. Dit bied genoeg resolusie.

Feedforward beheer

Ons kan die werklading van die PI -beheerder aansienlik verminder deur ook 'n feedforward -kontroleerder by te voeg. Dit is maklik! Ons weet wat die benaderde uitgangsspanning is wat ons moet genereer (dieselfde as die onmiddellike netspanning). Die PI -kontroleerder kan dan gelaat word om die klein ekstra spanning by te voeg wat nodig is om 'n uitsetstroom aan te dryf.

Op sigself pas die feedforward -kontroleerder die uitgangsspanning van die omvormer by die spanning van die netwerk. Geen stroom moet vloei as ons goed genoeg pas nie. Die feedforward -beheer doen dus 99% van die uitsetbeheer.

As gevolg van die lae weerstand van die netwerk, sou enige verskil in ons FF -uitgangsspanning en die netspanning 'n groot stroom tot gevolg hê. Ek het dus 'n bufferweerstand van 1 ohm bygevoeg tussen die omskakelaar en die rooster. Dit bring wel verliese mee, maar hulle is redelik klein in die groot skema.

Stap 3: Vervaardiging van die uitsetspanning met behulp van PWM

Die vervaardiging van die uitsetspanning met behulp van PWM
Die vervaardiging van die uitsetspanning met behulp van PWM
Die vervaardiging van die uitsetspanning met behulp van PWM
Die vervaardiging van die uitsetspanning met behulp van PWM
Die vervaardiging van die uitsetspanning met behulp van PWM
Die vervaardiging van die uitsetspanning met behulp van PWM

Alhoewel ons die uitsetstroom indirek beheer, is dit 'n uitsetspanning wat ons op 'n gegewe oomblik genereer. Ons gebruik PWM (Pulse Width Modulation) om ons uitgangsspanning te produseer. PWM-seine kan maklik deur mikrobeheerders geproduseer word en dit kan versterk word met behulp van 'n H-brug. Dit is eenvoudige golfvorme wat gekenmerk word deur 2 parameters, die frekwensie F en die werksiklus D.

'N PWM -golfvorm skakel tussen 2 spannings, in ons geval 0v en Vsupply

  • Met D = 1.0 is die PWM -golfvorm eenvoudig DC by Vsupply
  • Met D = 0,5 kry ons 'n vierkantgolf met 'n gemiddelde spanning van 0,5 x Vsupply (dws D x Vsupply)
  • Met D = 0,1 kry ons 'n gepulseerde golfvorm met 'n periode -gemiddelde van 0,1 x V -aanbod
  • Met D = 0.0 is die uitset 'n platlyn (gelykstroom by 0v)

Die belangrikste spanning is die gemiddelde spanning. Met 'n laagdeurlaatfilter kan ons alles behalwe die gemiddelde DC-komponent verwyder. Dus, deur die PWM -dienssiklus D te verander, kan ons die gewenste DC -spanning maak. Soet!

Gebruik 'n H-brug

'N H-brug bestaan uit 4 skakelelemente. Dit kan BJT's, MOSFET's of IGBT's wees. Om die eerste helfte (0 - 180 grade) van die sinusgolf te produseer, stel ons fase B laag deur Q3 af te skakel en Q4 aan (dws PWM toe te pas met D = 0). Ons voer dan ons PWMing uit op fase A. Vir die tweede helfte, waar VAB negatief is, stel ons Fase A laag en pas ons PWM toe op fase B. Dit staan bekend as bipolêre skakel.

Die MOSFET's in die H-brug moet deur 'n hekbestuurder bestuur word. Dit is 'n onderwerp op sy eie, maar 'n eenvoudige chip kan daarvoor sorg. Die DRV8301 dev-bord huisves gerieflik die H-Bridge, hekbestuurders en huidige shunts, sodat ons hierdie projek baie makliker kan maak.

Stap 4: Meet stroom

Meetstroom
Meetstroom
Meetstroom
Meetstroom
Meetstroom
Meetstroom

Elke been van die H-brug het 'n shuntweerstand en 'n differensiële versterker. Ons shunts is 0,01 ohm en ons versterkers is ingestel op 'n wins van 40. Vandaar ontwikkel 1 Amp 10mV oor die shunt wat daarna tot 400mV versterk word.

Die uitsette van die shuntversterkers word gelees deur die 12bit ADC's op die STM32F407 wat in 'n deurlopende omskakelingsmodus loop. Die ADC's moet elke shunt op 110KSPS bemonster en die DMA -kontroleerder skryf die omskakelings outomaties in 'n sirkelbuffer van 11 woorde in RAM. As 'n stroommeting verlang word, noem ons 'n funksie wat die mediaanwaarde van hierdie buffer van 11 woorde gee.

Aangesien ons elke PID -iterasie (by 10KHz) vir huidige metings versoek, maar ons ADC -buffers van 11 woorde teen 'n snelheid van 110KHz vul, moet ons elke PID -iterasie heeltemal nuwe data kry. Die rede vir die gebruik van 'n mediaanfilter is omdat PWM -skakeling spykers in die mengsel kan inbring en dat mediaanfilters vals ADC -monsters baie effektief kan uitroei.

'N Belangrike punt om hier te maak: Watter been van die H-brug gebruik ons vir huidige metings? Dit hang af van watter been ons tans PWMing is en watter net laag gehou word. Die been wat laag gehou word, is die een waaruit ons ons stroom wil meet, aangesien die stroom altyd deur die shuntweerstand aan die kant vloei. In vergelyking, aan die kant wat PWMed is, vloei daar geen stroom deur die lae-kant shunt as die MOSFET aan die hoë kant aan is en die lae kant af is nie. Ons verander dus op watter been ons die stroom meet, gebaseer op die uitsetpolariteit van die omskakelaar. U kan dit duidelik op die foto sien, wat die uitset van een van die shuntversterkers oor 'n tydperk toon. Dit is duidelik dat ons die lesings tydens die gladde bietjie wil neem.

Om ons huidige lesings te ontfout. Ek het die digitaal-na-analoog-omskakelaar op die STM32F407 opgestel. Ek het die huidige lesings wat ek kry, geskryf en die uitset bereik. U kan dit in die finale beeld sien; die blou is die spanning oor die uitgangsbufferweerstand (dws die uitsetstroom/1.1 ohm) en die rooi sein is ons DAC -uitset.

Stap 5: Filter die uitvoer

Filter die uitvoer
Filter die uitvoer
Filter die uitvoer
Filter die uitvoer

Die uitsetfilter is 'n belangrike deel van die ontwerp. Ons benodig hierdie eienskappe daaruit:

  1. Blokkeer alle hoëfrekwensie -skakelaars, maar gee 'n 50Hz -sein deur
  2. Lae verliese
  3. Om nie te resoneer nie!
  4. Om die betrokke strome en spannings die hoof te bied

Die viervormige transformasie van 'n PWM -sein van frekwensie F, Duty cycle D, tussen 0 - Vs supply volt is: (D x Vsupply) + Sinusgolwe by die fundamentele frekwensie F, en harmonieke daarna

Dit is briljant! Dit beteken dat as ons ons PWM -sein deur 'n laagdeurlaatfilter plaas, wat die PWM -fundamentele en alles hierbo blokkeer. Ons het net die term DC spanning oor. Deur die dienssiklus te verander, kan ons maklik die spanning produseer wat ons wil tussen 0 - Vsupply soos verduidelik.

Op grond van die gewenste eienskappe hierbo genoem, kan ons die uitsetfilter ontwerp. Ons benodig 'n laagdeurlaatfilter met 'n minimale weerstand om verliese te voorkom. Daarom gebruik ons net induktors en kapasitors. As ons 'n resonante frekwensie tussen 1 - 2KHz kies, sal ons resonansie vermy, aangesien ons geen seine naby die frekwensie inspuit nie. Hier is ons filterontwerp. Ons neem ons uitset as die spanning oor C1.

Deur L1 = L2 = 440uH, C1 = 8.4uF te kies, bereken ons 'n resonante frekwensie van 1.85KHz. Dit is ook realistiese komponentwaardes.

Dit is noodsaaklik om te verseker dat ons induktors nie versadig word by die strome wat ons verwag nie. Die induktors wat ek gebruik het, het 'n 3A -versadigingsstroom. Dit is die beperkende faktor vir die krag van ons stroombaan. Die kondensatorspanning is ook belangrik om in ag te neem. Ek gebruik 450v keramiek, wat in hierdie geval baie te veel is!

Die bode -plot (vir effens verskillende L/C -waardes) is gegenereer met LTspice. Dit wys ons die verswakking wat verskillende insetfrekwensies veroorsaak. Ons kan die resonante frekwensie by 1.8KHz duidelik sien. Dit toon aan dat 'n 50Hz -sein byna heeltemal onvervalste is, terwyl ek kan sê dat 'n 45 KHz -sein met 54dB verswak is!

Laat ons dus kies dat ons PWM -draerfrekwensie ~ 45KHz is. Deur hoër PWM -draerfrekwensies te kies, kan die filterfrekwensie hoër gemaak word. Dit is goed, want dit maak die L- en C -waardes kleiner. Dit beteken kleiner en goedkoper komponente. Die nadeel is dat hoër PWM -skakelfrekwensies groter verliese in die transistor -skakelaars meebring.

Stap 6: Sinchroniseer fase en frekwensie

Sinchroniseer fase en frekwensie
Sinchroniseer fase en frekwensie
Sinchroniseer fase en frekwensie
Sinchroniseer fase en frekwensie
Sinchroniseer fase en frekwensie
Sinchroniseer fase en frekwensie

Die sinchronisasie met die netfase en frekwensie maak 'n omskakelaar van 'n rooster. Ons gebruik 'n digitale implementering van 'n PLL (Phase Locked Loop) om akkurate faseopsporing van die hoofsignaal te verkry. Ons doen dit deur:

  1. Monsterneming van die netspanning
  2. Ons produseer 'n plaaslike sinusvormige sein van 50Hz
  3. Die vergelyking van die fase tussen ons plaaslike sein en die hoofsignaal
  4. Die aanpassing van die frekwensie van die plaaslike sein totdat die faseverskil tussen die 2 seine nul is

1) Bepaal die netspanning

Ons stel 'n derde ADC -kanaal op om die lynspanning te lees. Dit word verkry deur die spanning van 'n transformatorkraan te verdeel, soos getoon. Dit bied 'n skaalspanning van ongeveer 1,65v wat presies die netspanning verteenwoordig.

2) Dit is maklik om 'n plaaslike sinusvormige sein van 50 Hz te produseer. Ons stoor 'n opsoekstabel met 256 sinuswaardes. Ons gesimuleerde sinuswaarde word maklik verkry met behulp van 'n opsoekindeks wat inkrementeel deur die tabel draai.

Ons moet ons indeks presies op die regte koers verhoog om 'n 50Hz -sein te kry. Naamlik 256 x 50Hz = 12, 800/s. Ons doen dit met behulp van timer9 wat op 168MHz geklok is. Deur 168MHz/12800 = 13125 horlosies te wag, stap ons ons indeks teen die regte koers.

3) Vergelyking van die fase tussen ons plaaslike sein en die hoofsignaal Dit is 'n goeie deel! As u die produk van cos (wt) x sin (wt) oor 1 tydperk integreer, is die resultaat nul. As die faseverskil iets anders as 90 grade is, kry u 'n nommer sonder nul. Wiskundig:

Integraal [Asin (t) x Bsin (t + φ)] = Ccos (φ)

Dit is wonderlik! Dit stel ons in staat om die hoofsignaal, sin (ωt) te vergelyk met ons plaaslike sein, sin (⍵t + φ) en 'n waarde te kry.

Daar is egter 'n probleem wat aangespreek moet word: as ons wil hê dat ons seine in fase moet bly, moet ons ons plaaslike frekwensie aanpas om die Ccos (φ) term maksimum te hou. Dit sal nie baie goed werk nie en ons sal swak fase -opsporing kry. Dit is omdat die d/dφ van ɑcos (φ) 0 by φ = 0. is. Dit beteken dat die term Ccos (φ) nie baie sal wissel met faseveranderinge nie. Maak dit sin?

Dit sou baie beter wees om die bemonsterde hoofsignaal in fase te verskuif, sodat dit cos (ωt + φ) word. Dan het ons hierdie:

Integraal [Asin (t) Bcos (t + φ)] = Csin (φ)

Dit is maklik om 'n faseverskuiwing van 90 grade in te voer, ons plaas net ons hoofstroom -ADC -spanningsmonsters in die een kant van 'n buffer en haal dit later 'n aantal monsters uit, wat ooreenstem met 'n faseverskuiwing van 90 grade. Aangesien die netfrekwensie skaars van 50Hz wissel, werk 'n eenvoudige tydvertragingstegniek uitstekend.

Ons vermenigvuldig nou ons 90 grade faseverskuiwde hoofsignaal met ons plaaslike sein en hou 'n lopende integraal van die produk gedurende die laaste periode (dws oor die laaste 256 waardes).

Die resultaat wat ons weet, sal nul wees as die 2 seine presies 90 grade uitmekaar gehou word. Dit is fantasties, want dit maak die faseverskuiwing wat ons pas op die netnet gemaak het, ongedaan. Net om dit te verduidelik, probeer ons om die integrale term te maksimeer, en probeer ons ons hoofsignaal fase -verskuif. Die 90 grade faseverskuiwings wat deur hierdie 2 veranderinge ingestel is, kanselleer mekaar.

Dus, as Integral_Result <0 ons weet, moet ons ons plaaslike ossillatorfrekwensie verhoog om dit terug te keer in fase met die hoofleiding, en omgekeerd.

4) Dit is maklik om die frekwensie van die plaaslike sein aan te pas. Ons pas eenvoudig die tydperk tussen die verhoging deur ons indeks aan. Ons beperk hoe vinnig ons die faseverskil kan regstel, in wese om verkeerde watertjies uit te filter. Ons doen dit met behulp van 'n PI -kontroleerder met 'n baie klein I -term.

En dit is dit. Ons het ons plaaslike sinusgolf -ossillator (wat die uitgangstroom se setpoint stel) gesluit om in fase te wees met die netspanning. Ons het 'n PLL -algoritme geïmplementeer en dit werk soos 'n droom!

Die verhoging van die frekwensie van ons plaaslike ossillator verminder ook die faseverskuiwing wat op die hoofsignaal geplaas word. Aangesien ons die frekwensie-aanpassing tot +/- 131 bosluise (+/- ~ 1%) beperk, beïnvloed ons die faseverskuiwing hoogstens met +/- 1 °. Dit gaan glad nie saak maak terwyl die fases sinchroniseer nie.

Teoreties sou die fasslot verloor as die netfrekwensie met meer as 0.5Hz afwyk. Dit is as gevolg van ons beperking hierbo op hoeveel ons ons plaaslike ossillatorfrekwensie kan aanpas. Dit sal egter nie gebeur nie, tensy die netwerk op die punt staan om te misluk. Ons beskerming teen eilande sal in elk geval op hierdie punt begin.

Ons doen wel 'n nulkruising -opsporing by die aanvang om ons bes te probeer om die seine vanaf die begin in fase te begin.

Stap 7: Anti-eiland

Anti-eiland
Anti-eiland

Wikipedia bevat 'n wonderlike artikel oor tegnieke oor eiland- en eilandbestryding. Dit impliseer ook dat mense meer as nodig oor hierdie onderwerp sis en flap. 'O, u kan nie u eie omskakelaar bou nie, u sal iemand doodmaak, ens.'

Soos beter verduidelik deur die wikipedia -artikel, gebruik ons 'n paar veiligheidsmaatreëls wat saam voldoende beskerming bied (na my mening):

  1. Onder-/oorspanning
  2. Onder/oor frekwensie

Ons kan hierdie situasies opspoor deur eenvoudig ons bemonsterde netspanning te analiseer. As iets tevergeefs gaan, skakel die H-brug uit en wag totdat alles weer normaal is.

Aanbeveel: