Sommario:

Inverter Grid Tie: 10 passaggi (con immagini)
Inverter Grid Tie: 10 passaggi (con immagini)

Video: Inverter Grid Tie: 10 passaggi (con immagini)

Video: Inverter Grid Tie: 10 passaggi (con immagini)
Video: COSTA POCO ma è L'INVERTER MIGLIORE del 2023? IBRID 6.2KW FOTOVOLTAICO OFF-GRID 27A 500V PV 2024, Dicembre
Anonim
Image
Image
Invertitore di collegamento alla rete
Invertitore di collegamento alla rete
Invertitore di collegamento alla rete
Invertitore di collegamento alla rete

Questo è un progetto carnoso, quindi allacciati le cinture!

Gli inverter di collegamento alla rete ti consentono di spingere l'alimentazione in una presa di rete che è un'abilità straordinaria. Trovo interessanti l'elettronica di potenza e i sistemi di controllo coinvolti nella loro progettazione, quindi ho costruito il mio. Questo rapporto condivide ciò che ho imparato e documenta come ho fatto le cose. Sarei interessato a tutti i commenti che hai avuto (a parte quelli sul non scherzare con l'elettricità di rete).

Tutti i concetti sono scalabili, ma questa configurazione aveva una potenza massima di 40 watt prima che gli induttori del filtro iniziassero a saturarsi. La corrente di uscita era sinusoidale con THD < 5%.

Guarda il software sul mio GitHub

Forniture

  • Ho usato la scheda di sviluppo STM32F407. Funziona a 168 MHz e dispone di 3 ADC integrati in grado di fornire una risoluzione di 12 bit a oltre 2,4 MSPS (milioni di campioni al secondo) ciascuno. È folle!
  • Ho usato la scheda di sviluppo DRV8301. Questo ospita un H-Bridge da 60 V insieme ai driver di gate necessari, agli shunt di corrente e agli amplificatori di shunt di corrente. Bello!
  • Ho usato un trasformatore toroidale 230-25v con 2 prese di uscita. Ciò significava che non dovevo produrre direttamente la tensione di rete, ma potevo invece lavorare con tensioni di picco di 40 volt. Molto più sicuro!
  • Ho collegato un carico di induttori e condensatori insieme per ottenere i valori L e C che volevo per il filtro.
  • Un oscilloscopio e una sonda differenziale sono fondamentali per un progetto come questo. Ho un Picoscope

Passaggio 1: cos'è l'alimentazione di rete?

Che cos'è l'alimentazione di rete?
Che cos'è l'alimentazione di rete?
Che cos'è l'alimentazione di rete?
Che cos'è l'alimentazione di rete?

Quello che ottieni da una presa di corrente (nel Regno Unito) è un segnale sinusoidale a 50 Hz 230 V RMS con un'impedenza molto bassa. Alcune cose da dire a riguardo:

50Hz - La frequenza di rete è mantenuta in modo molto preciso a 50Hz. Varia leggermente ma il 90% delle volte è compreso tra 49,9-50,1 Hz. Vedere qui. Potete immaginare tutti gli enormi generatori nelle centrali elettriche su e giù per il paese che girano all'unisono. Ruotano in modo sincrono producendo per noi un segnale sinusoidale a 50Hz. La loro massiccia inerzia rotazionale combinata richiede tempo per rallentare o accelerare.

In teoria, se un carico ENORME fosse collegato alla rete, inizierebbe a rallentare i generatori del paese. Tuttavia, in risposta, i ragazzi dell'ufficio di controllo della National Grid avrebbero richiesto alle centrali elettriche di alimentare le loro caldaie, aumentare il riscaldamento e costringere quei generatori a tenere il passo con la domanda. Così l'offerta e la domanda sono in una danza continua l'una con l'altra.

Un'altra cosa da dire sul segnale a 50Hz. Sebbene vari leggermente circa 50Hz, i ragazzi in alto si assicurano che la frequenza media durante il giorno sia esattamente 50Hz. Quindi, se la griglia è a 49,95 Hz per 10 minuti, si assicureranno che funzioni a 50,05 Hz in seguito per portare il numero esatto di cicli a 50 Hz x 60 secondi x 60 minuti x 24 ore = 4, 320, 000/giorno. Lo fanno proprio usando il Tempo Atomico Internazionale. Gli elettrodomestici, gli uffici e gli elettrodomestici possono quindi utilizzare la frequenza di rete per tenere il tempo. Questo è comunemente fatto, ad esempio, con timer a presa meccanica.

230v - Questa è la tensione RMS (Root Mean Square) del segnale a 50Hz. Il segnale effettivo oscilla fino a un picco di 325 V. Questo è importante da sapere perché se stai costruendo un inverter devi produrre tensioni così alte se vuoi che la corrente fluisca nelle spine.

In realtà, i voltaggi visti a una presa di casa tua sono piuttosto variabili. Ciò è dovuto alla caduta di tensione attraverso la resistenza in cavi, connettori, fusibili, trasformatori ecc. C'è resistenza ovunque. Se accendi una doccia elettrica tirando 11 kilowatt (cioè ~ 50 Ampere), anche 0,2 ohm di resistenza ti faranno scendere di 10 volt. Potresti vedere questo come le luci che si attenuano leggermente. I motori grandi, come quelli degli aspirapolvere, assorbono enormi correnti mentre il motore si avvia. Quindi spesso vedi un leggero sfarfallio delle luci quando le accendi.

Il mio punto è che la tensione di rete è molto più variabile. Qui nel Regno Unito dovrebbe essere 230v con una tolleranza +10%/-6%. Puoi aspettarti di vedere cambiamenti e fluttuazioni improvvisi quando grandi carichi nelle vicinanze si accendono / si spengono. Pensa ad asciugatrici, bollitori, forni, aspirapolveri, ecc.

Sinusoidale - Il segnale dovrebbe essere una bella onda sinusoidale pulita, ma in realtà alcuni apparecchi non lineari assorbono la loro potenza da determinati punti del ciclo dell'onda sinusoidale. Questo introduce distorsione ed è per questo che il segnale non è un'onda sinusoidale perfetta. I carichi non lineari in genere includono alimentatori per computer, luci fluorescenti, caricabatterie, TV, ecc.

La distorsione armonica totale (THD) la quantifica nella forma d'onda. Ci sono regole per quanto deve essere pulita l'uscita di un inverter. Se non è in grado di produrre un segnale sufficientemente pulito, non sarà approvato per la vendita. Questo è importante perché il contenuto di armoniche nella rete riduce l'efficienza di alcuni dispositivi ad essa collegati (soprattutto le armoniche dispari). Credo che il THD massimo consentito sia dell'8%

Bassa impedenza - Quando si pensa a un inverter di collegamento alla rete, questo sarà importante da considerare. Ci sono tutti i tipi di carichi collegati alla rete inclusi carichi induttivi, resistivi e occasionalmente capacitivi. Quindi l'impedenza è sconosciuta e variabile. La resistenza è molto piccola, il che significa che se colleghi un carico di corrente elevata, la tensione non diminuirà affatto.

Passaggio 2: come spingere la potenza nella rete

Come spingere la potenza nella rete
Come spingere la potenza nella rete

Per immettere potenza in rete dobbiamo sintetizzare un segnale che corrisponda esattamente alla frequenza e alla fase della rete ma con una tensione sempre leggermente superiore.

A causa della bassa resistenza della rete, è difficile sapere esattamente di quanto aumentare tale tensione. E poiché la tensione RMS fluttua, dobbiamo assicurarci di fluttuare con essa. La semplice produzione di un segnale di tensione fisso a 50Hz leggermente superiore alla tensione di rete non funzionerà!

PI Controllo della corrente di uscita

Ciò di cui abbiamo bisogno è un circuito di controllo in base al quale misuriamo la corrente istantanea che stiamo spingendo nella rete e regoliamo automaticamente la nostra tensione di uscita per guidare la corrente che vogliamo. Questo trasformerà efficacemente la nostra uscita in una sorgente di corrente (piuttosto che una sorgente di tensione) che è più appropriata per pilotare basse impedenze. Possiamo ottenere ciò utilizzando un anello di controllo PI (Proportional Integral):

I circuiti di controllo PI sono fantastici! Ci sono 3 parti in loro:

  • Il valore misurato - La corrente che mettiamo in rete
  • Il setpoint - La corrente che vogliamo immettere in rete
  • L'uscita - La tensione del segnale da generare

Ogni volta che chiamiamo l'algoritmo PID, passiamo alla misura di corrente più recente e al setpoint che desideriamo. Restituirà un numero arbitrario (proporzionale alla tensione di uscita da generare).

Il nostro algoritmo di controllo PID ci permette di scegliere la corrente di uscita che vogliamo in un dato momento. Per produrre una corrente di uscita sinusoidale di 50Hz, dobbiamo cambiare continuamente la nostra corrente richiesta in modo sinusoidale.

L'algoritmo PID viene chiamato ogni 100us (equivalenti a 200 volte per ciclo a 50Hz). Ogni volta che viene chiamato è in grado di effettuare regolazioni dirette alla tensione di uscita e quindi regolare indirettamente la corrente di uscita. Di conseguenza produciamo un'uscita di corrente a gradini simile a quella mostrata nell'immagine con ogni passaggio che si verifica ogni 100 us. Ciò fornisce una risoluzione sufficiente.

Controllo feedforward

Possiamo ridurre notevolmente il carico di lavoro del controller PI aggiungendo anche un controller feedforward. Questo è facile! Conosciamo la tensione di uscita approssimativa che dovremo generare (uguale alla tensione di rete istantanea). Il controller PI può quindi essere lasciato per aggiungere la piccola tensione extra necessaria per pilotare una corrente di uscita.

Di per sé il controller feedforward abbina la tensione di uscita dell'inverter alla tensione di rete. Nessuna corrente dovrebbe fluire se ci abbiniamo abbastanza bene. Il controllo feedforward esegue quindi il 99% del controllo dell'uscita.

A causa della bassa resistenza della rete, qualsiasi differenza tra la nostra tensione di uscita FF e la tensione di rete comporterebbe una corrente elevata. Ho quindi aggiunto una resistenza tampone da 1ohm tra inverter e rete. Questo introduce perdite, ma sono piuttosto piccole nel grande schema.

Passaggio 3: produzione della tensione di uscita utilizzando PWM

Produzione della tensione di uscita utilizzando PWM
Produzione della tensione di uscita utilizzando PWM
Produzione della tensione di uscita utilizzando PWM
Produzione della tensione di uscita utilizzando PWM
Produzione della tensione di uscita utilizzando PWM
Produzione della tensione di uscita utilizzando PWM

Sebbene stiamo controllando indirettamente la corrente di uscita, è una tensione di uscita che stiamo generando in un dato momento. Usiamo PWM (Pulse Width Modulation) per produrre la nostra tensione di uscita. I segnali PWM possono essere facilmente prodotti da microcontrollori e possono essere amplificati utilizzando un H-Bridge. Sono semplici forme d'onda caratterizzate da 2 parametri, la frequenza F e il duty cycle D.

Una forma d'onda PWM commuta tra 2 tensioni, nel nostro caso 0v e Vsupply

  • Con D = 1.0 la forma d'onda PWM è semplicemente DC a Vsupply
  • Con D = 0,5, otteniamo un'onda quadra con una tensione media di 0,5 x Valimentazione, (cioè D x Valimentazione)
  • Con D = 0.1, otteniamo una forma d'onda pulsata con una media di periodo di 0.1 x Vsupply
  • Con D = 0.0, l'uscita è una linea piatta (DC a 0v)

La tensione media è ciò che è fondamentale. Con un filtro passa-basso possiamo rimuovere tutto tranne la componente media DC. Quindi, variando il ciclo di lavoro PWM D, siamo in grado di realizzare qualsiasi tensione CC desiderata. Dolce!

Impiegare un H-Bridge

Un H-Bridge è composto da 4 elementi di commutazione. Questi possono essere BJT, MOSFET o IGBT. Per produrre la prima metà (0 - 180 gradi) dell'onda sinusoidale, impostiamo la fase B bassa disattivando Q3 e attivando Q4 (ovvero applicando PWM con D = 0). Quindi eseguiamo il nostro PWMing sulla fase A. Per la seconda metà, dove VAB è negativo, impostiamo la Fase A su un livello basso e applichiamo il nostro PWM alla fase B. Questo è noto come commutazione bipolare.

I MOSFET nel ponte H devono essere pilotati da un gate driver. Questo è un argomento a sé stante, ma un semplice chip può occuparsene. La scheda di sviluppo DRV8301 ospita comodamente l'H-Bridge, i gate driver e gli shunt di corrente per noi, rendendo questo progetto molto più semplice.

Passaggio 4: misurazione della corrente

Misurazione della corrente
Misurazione della corrente
Misurazione della corrente
Misurazione della corrente
Misurazione della corrente
Misurazione della corrente

Ogni gamba dell'H-Bridge ha un resistore shunt e un amplificatore differenziale. I nostri shunt sono 0,01 ohm e i nostri amplificatori sono impostati per un guadagno di 40. Quindi 1 Amp sviluppa 10 mV attraverso lo shunt che viene successivamente amplificato a 400 mV.

Le uscite degli amplificatori shunt vengono lette dagli ADC a 12 bit sull'STM32F407 in esecuzione in modalità di conversione continua. Gli ADC sono impostati per campionare ogni shunt a 110KSPS e il controller DMA scrive automaticamente le conversioni in un buffer circolare di 11 parole nella RAM. Quando si desidera una misurazione corrente, chiamiamo una funzione che restituisce il valore mediano di questo buffer di 11 parole.

Poiché richiediamo misurazioni correnti ogni iterazione PID (a 10 KHz) ma riempiendo i nostri buffer ADC di 11 parole a una velocità di 110 KHz, dovremmo ottenere dati completamente aggiornati ogni iterazione PID. Il motivo per l'utilizzo di un filtro mediano è perché la commutazione PWM può introdurre picchi nel mix e i filtri mediani eliminano i campioni ADC spuri in modo molto efficace.

Un punto importante da fare qui: quale gamba dell'H-Bridge usiamo per le misurazioni della corrente? Beh, dipende da quale gamba stiamo attualmente utilizzando PWM e quale è appena tenuta bassa. La gamba tenuta bassa è quella da cui vogliamo misurare la nostra corrente poiché la corrente scorre sempre attraverso il resistore di shunt su quel lato. In confronto, sul lato PWMed, quando il MOSFET high-side è acceso e il low-side è spento, nessuna corrente scorre attraverso lo shunt low-side. Quindi, cambiamo la gamba su cui misuriamo la corrente in base alla polarità di uscita dell'inverter. Puoi vederlo chiaramente nell'immagine, che mostra l'uscita da uno degli amplificatori shunt per un periodo. Ovviamente vogliamo prendere le letture durante il bit regolare.

Per aiutare a eseguire il debug delle nostre letture correnti. Ho impostato il convertitore digitale-analogico sull'STM32F407. Ho scritto le letture correnti che stavo ottenendo e ho esaminato l'output. Puoi vederlo nell'immagine finale, il blu è la tensione attraverso il resistore del buffer di uscita (cioè la corrente di uscita/1,1 ohm) e il segnale rosso è la nostra uscita DAC.

Passaggio 5: filtraggio dell'output

Filtraggio dell'output
Filtraggio dell'output
Filtraggio dell'output
Filtraggio dell'output

Il filtro di uscita è una parte fondamentale del design. Abbiamo bisogno di queste caratteristiche da esso:

  1. Blocca tutte le commutazioni ad alta frequenza ma passa un segnale a 50Hz
  2. Perdite basse
  3. Per non risuonare!
  4. Per far fronte alle correnti e alle tensioni coinvolte

La trasformata di Fourier di un segnale PWM di frequenza F, ciclo di lavoro D, tra 0 - Valimentazione volt è: (D x Valimentazione) + Onde sinusoidali alla frequenza fondamentale F, e successivamente le armoniche

È brillante! Significa che se mettiamo il nostro segnale PWM attraverso un filtro passa basso che blocca il fondamentale PWM e tutto quanto sopra. Siamo rimasti solo con il termine di tensione CC. Variando il duty cycle possiamo facilmente produrre qualsiasi tensione che vogliamo tra 0 - Vsupply come spiegato.

Sulla base delle caratteristiche desiderate sopra menzionate possiamo progettare il filtro di uscita. Abbiamo bisogno di un filtro passa basso realizzato con una resistenza minima per evitare perdite. Quindi usiamo solo induttori e condensatori. Se scegliamo una frequenza di risonanza tra 1 - 2KHz eviteremo la risonanza poiché non stiamo iniettando alcun segnale vicino a quella frequenza. Ecco il nostro design del filtro. Prendiamo la nostra uscita come la tensione attraverso C1.

Scegliendo L1 = L2 = 440uH, C1 = 8.4uF calcoliamo una frequenza di risonanza di 1.85KHz. Anche questi sono valori realistici dei componenti.

È fondamentale garantire che i nostri induttori non inizino a saturarsi alle correnti che ci aspettiamo. Gli induttori che ho usato hanno una corrente di saturazione di 3A. Questo sarà il fattore limitante della potenza di uscita del nostro circuito. Anche la tensione nominale del condensatore è importante da considerare. Sto usando alcune ceramiche da 450 V che sono molto eccessive in questo caso!

Il diagramma di bode (per valori L/C leggermente diversi) è stato generato utilizzando LTspice. Ci mostra l'attenuazione inflitta alle diverse frequenze di ingresso. Possiamo vedere chiaramente la frequenza di risonanza a 1.8KHz. Dimostra che un segnale a 50Hz è quasi del tutto inalterato mentre posso dirti che un segnale a 45 KHz è attenuato di 54dB!

Quindi scegliamo che la nostra frequenza portante PWM sia ~ 45KHz. Scegliendo frequenze portanti PWM più elevate, è possibile aumentare la frequenza del filtro. Questo è positivo perché rende i valori L e C più piccoli. Ciò significa componenti più piccoli ed economici. Lo svantaggio è che frequenze di commutazione PWM più elevate introducono maggiori perdite negli interruttori a transistor.

Passaggio 6: sincronizzazione di fase e frequenza

Sincronizzazione di fase e frequenza
Sincronizzazione di fase e frequenza
Sincronizzazione di fase e frequenza
Sincronizzazione di fase e frequenza
Sincronizzazione di fase e frequenza
Sincronizzazione di fase e frequenza

La sincronizzazione con la fase e la frequenza di rete è ciò che rende un inverter connesso alla rete. Usiamo un'implementazione digitale di un PLL (Phase Locked Loop) per ottenere un accurato tracciamento di fase del segnale di rete. Lo facciamo:

  1. Campionamento della tensione di rete
  2. Produrre un nostro segnale sinusoidale locale a 50Hz
  3. Confronto della fase tra il nostro segnale locale e il segnale di rete
  4. Regolazione della frequenza del segnale locale fino a quando la differenza di fase tra i 2 segnali è zero

1) Campionamento della tensione di rete

Configuriamo un 3° canale ADC per leggere la tensione di linea. Questo lo otteniamo dividendo la tensione di una presa del trasformatore come mostrato. Ciò fornisce una tensione scalata che varia circa 1,65 V che rappresenta esattamente la tensione di rete.

2) Produrre un segnale sinusoidale locale a 50Hz Produrre la nostra onda sinusoidale locale a 50Hz è facile. Archiviamo una tabella di ricerca di 256 valori del seno. Il nostro valore del seno simulato si ottiene facilmente utilizzando un indice di ricerca che ruota in modo incrementale attraverso la tabella.

Dobbiamo incrementare il nostro indice esattamente alla giusta velocità per ottenere un segnale a 50Hz. Vale a dire 256 x 50 Hz = 12, 800/s. Lo facciamo usando il timer9 con clock a 168MHz. Aspettando 168 MHz/12800 = 13125 tick di clock, faremo un passo il nostro indice alla giusta velocità.

3) Confrontare la fase tra il nostro segnale locale e il segnale di rete Questa è la parte interessante! Se integri il prodotto di cos(wt) x sin(wt) su 1 periodo il risultato è zero. Se la differenza di fase è diversa da 90 gradi, ottieni un numero diverso da zero. Matematicamente:

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

Questo è fantastico! Ci permette di confrontare il segnale di rete, sin(ωt) con il nostro segnale locale, sin(⍵t + φ) e ottenere un valore.

C'è tuttavia un problema che deve essere affrontato: se vogliamo che i nostri segnali rimangano in fase, dobbiamo regolare la nostra frequenza locale per mantenere il termine Ccos(φ) massimo. Questo non funzionerà molto bene e avremo un monitoraggio di fase scadente. Questo perché il d/dφ di ɑcos(φ) è 0 a φ = 0. Ciò significa che il termine Ccos(φ) non varierà molto con i cambiamenti di fase. Ha senso?

Sarebbe molto meglio sfasare il segnale di rete campionato di 90 gradi in modo che diventi cos(ωt + φ). Allora abbiamo questo:

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

Introdurre uno sfasamento di 90 gradi è facile, inseriamo semplicemente i nostri campioni di tensione ADC di rete in un'estremità di un buffer e li estraiamo un numero di campioni in seguito, corrispondente a uno sfasamento di 90 gradi. Poiché la frequenza di rete varia appena da 50Hz, una semplice tecnica di ritardo temporale funziona brillantemente.

Ora moltiplichiamo il nostro segnale di rete sfasato di 90 gradi con il nostro segnale locale e manteniamo un integrale funzionante del prodotto nell'ultimo periodo (cioè negli ultimi 256 valori).

Il risultato che sappiamo sarà zero se i 2 segnali vengono mantenuti con precisione a 90 gradi l'uno dall'altro. Questo è fantastico perché annulla lo sfasamento che abbiamo appena applicato al segnale di rete. Giusto per chiarire, invece di massimizzare il termine integrale stiamo cercando di mantenerlo zero e stiamo sfasando il nostro segnale di rete. Gli sfasamenti di 90 gradi introdotti da questi 2 cambiamenti si annullano a vicenda.

Quindi se Integral_Result < 0 sappiamo che dobbiamo aumentare la nostra frequenza dell'oscillatore locale per riportarla in fase con la rete e viceversa.

4) Regolazione della frequenza del segnale localeQuesto bit è facile. Regoliamo semplicemente il periodo tra l'incremento attraverso il nostro indice. Limitiamo la velocità con cui possiamo correggere la differenza di fase essenzialmente filtrando qualsiasi cosa spuria. Lo facciamo utilizzando un controller PI con un termine I molto piccolo.

E questo è tutto. Abbiamo bloccato il nostro oscillatore sinusoidale locale (che imposta il setpoint della corrente di uscita) in modo che sia in fase con la tensione di rete. Abbiamo implementato un algoritmo PLL e funziona come un sogno!

Aumentando la frequenza del nostro oscillatore locale si riduce anche lo sfasamento applicato al segnale di rete. Poiché stiamo limitando la regolazione della frequenza a +/-131 tick (+/- ~1%) influenzeremo lo sfasamento di +/- 1° al massimo. Questo non avrà alcuna importanza mentre le fasi si sincronizzano.

Teoricamente se la frequenza di rete deviasse di più di 0,5Hz perderemmo il nostro aggancio di fase. Ciò è dovuto al nostro vincolo di cui sopra su quanto possiamo regolare la nostra frequenza dell'oscillatore locale. Tuttavia, ciò non accadrà a meno che la rete non stia per guastarsi. La nostra protezione anti-isola si attiverà comunque a questo punto.

Eseguiamo un rilevamento del passaggio per lo zero all'avvio per fare del nostro meglio per avviare i segnali in fase dall'offset.

Passaggio 7: Anti-isolazione

Anti-isola
Anti-isola

Wikipedia ha un fantastico articolo tutto sulle tecniche di isolazione e anti-isola. Implica anche che le persone sibilano e si agitano più del necessario quando si tratta di questo argomento. "Oh, non puoi costruire il tuo inverter di collegamento alla rete, ucciderai qualcuno ecc. ecc."

Come spiegato meglio dall'articolo di wikipedia, utilizziamo un paio di precauzioni di sicurezza che insieme forniscono una protezione adeguata (secondo me):

  1. Sotto/Sovratensione
  2. Sotto/sovrafrequenza

Possiamo rilevare queste situazioni semplicemente analizzando la nostra tensione di rete scalata campionata. Se qualcosa va storto, disabilita il ponte H e attendi che le cose tornino alla normalità.

Consigliato: