Se sei già registrato           oppure    

Orario: 28/03/2024 11:08:30  

 

Energia Alternativa ed Energia Fai Da Te > Arduino

VISUALIZZA L'ALBUM


[aiuto] Gestione surplus PWM per fotovoltaico a isola
FinePagina

Alain

Avatar
KiloWatt


Gruppo:Utente
Messaggi:203

Stato:



Inviato il: 23/05/2019 16:33:43

Avendo recentemente aggiunto un paio di stringhe al mio impianto a isola per avere meno sofferenza sulle batterie in inverno, ora che la stagione volge al bello mi ritrovo un cospicuo surplus che vorrei sfruttare in qualche modo.

Una delle soluzioni che mi piacerebbe adottare è quella di parzializzare la potenza di una resistenza di uno scaldabagno elettrico in AC, modulandola in PWM tramite un relè allo stato solido zero crossing gestito da un arduino o altro microcontrollore in grado di calcolare istantaneamente la quantità del surplus.

Purtroppo sono un profano di arduino e similari e in giro si trovano progetti esclusivamente orientati all'utilizzo su impianti SSP, dove il calcolo del surplus è dato dalla differenza di lettura di potenza di una coppia di contatori digitali.
Nel caso di un impianto ad isola (nella fattispecie io ho un inverter/regolatore PIP) tale procedura non è utilizzabile perchè con contatori AC si può misurare quanto esce dall'inverter (senza alcuna distinzione tra fonte solare o rete) oppure quanto entra dalla rete ma non l'energia istantaneamente prodotta (o meglio producibile) che dipende anche dallo stato di carica dell'accumulo.

Però c'è un parametro che si presta bene come base di calcolo di un possibile algoritmo ed è la tensione lato pannelli: questa varia continuamente in un range di 10-15V attorno ad un certo valore (nel mio caso circa 90V) e sale sempre quando la disponibilità di energia solare supera la richiesta istantanea del regolatore/inverter per poi decrescere quando la situazione si inverte.
L'idea sarebbe quella di monitorare appunto questa tensione con uno shunt un partitore resistivo su un ingresso analogico di arduino e sviluppare un algoritmo che in base al valore misurato moduli il duty cycle di un'uscita PWM collegata all' SSR che alimenta la resistenza, con un paio di altri paletti tipo la tensione del banco che deve essere sopra la soglia di float e/o la corrente verso il banco batterie che sia positiva e superiore a 1 o 2 Ampere.

Se qualcuno di voi esperti arduinisti mi potesse dare qualche indicazione per iniziare a imbastire la cosa penso che ne potrebbe uscire una cosa utile a molti.Faccine/bye1.gif



Modificato da Alain - 23/05/2019, 19:48:01
 

Luca450Mhz

Avatar
GigaWatt


Gruppo:Utente
Messaggi:3204

Stato:



Inviato il: 23/05/2019 20:56:55

Ciao Alain,
facciamo un po' di chiarezza su alcuni concetti espressi.

CITAZIONE

scaldabagno elettrico in AC, modulandola in PWM tramite un relè allo stato solido zero crossing

Un relè allo stato solido è un relè, che ha due possibili stati: aperto e chiuso. Non puoi pilotarlo come faresti con MOSFET in DC. Zero crossing significa solamente che l'aggancio e sgancio viene fatto quando la sinusoide passa per lo zero, e lavorano al contrario della tipologia ad innesco immediato, a prescindere dalla posizione della sinusoide.
La tensione dei pannelli cambia in continuazione, e spesso nella fase di float (batteria cariche) può salire anche di 10V. Non c'è modo di sapere quale possa essere la produzione potenziale in un dato istante. Puoi saperlo solo aumentando il carico e monitorando la tensione della batteria.
Se tu volessi usare una resistenza in DC allora sì che potresti modulare la potenza verso la resistenza in modo graduale tenendo monitorata la tensione del banco, e fino a quando la tensioni non scende dal valore di float, sei sicuro che c'è potenza a sufficienza per alimentare la resistenza solo dal sole.



---------------
Pannelli: 6975 Wp (poli e mono). Inverter UPS PSW7 6kW 48V toroidale con switch comandato dal mio sistema di domotica (RaspberryPi + vari Wemos D1 Mini - ESP8266). Regolatore di carica: Mpp Solar PCM8048.
Batterie: 24 elementi trazione pesante 315Ah C5 48V.

 

Alain

Avatar
KiloWatt


Gruppo:Utente
Messaggi:203

Stato:



Inviato il: 23/05/2019 22:06:54

Ciao Luca, fai bene a ricordare quale sia il funzionamento "canonico" di un rele però in questo caso quello che intenderei fare io prevede un minimo di "astrazione".
Purtroppo non ho sufficiente competenza per spiegarti in maniera dettagliata come funziona ma in risposta alla tua perplessità ti indico un paio di progetti già sperimentati che vorrei adattare al mio caso specifico.

QUI ad esempio una realizzazione su Wemos D1 con monitoraggio del surplus attraverso 2 contatori a impulsi e modulazione carichi resistivi con SSR.

QUI invece una cosa simile realizzata però su piattaforma Raspberry Pi e contatori modbus, con in più qualche spiegazione tecnica relativa alla modulazione PWM "a treni d'onda".

 

Luca450Mhz

Avatar
GigaWatt


Gruppo:Utente
Messaggi:3204

Stato:



Inviato il: 23/05/2019 23:14:46

In realtà non è un vero e proprio PWM. Il relè viene usato in modalità on/off. Per avere una potenza del 10%, viene tenuto ON per 20 millisecondi, e off per 180 millisecondi. Con questa spiegazione ha un senso.
Cmq con Arduino è semplice controllare la potenza in uscita dall'inverter, la tensione delle batterie e controllare un carico esterno. Io lo faccio con un WeMosD1. Per leggere la tensione e corrente lato 230V uso il PZEM-004 (primo link uscito su Google), molto comodo e senza avere a che fare con protocolli particolari come il modbus ecc. La tensione del banco si legge con un semplice partitore, e per avere delle letture precise uso l'ADS1115. Per controllare carichi in PWM utilizzo il PCA9685.



---------------
Pannelli: 6975 Wp (poli e mono). Inverter UPS PSW7 6kW 48V toroidale con switch comandato dal mio sistema di domotica (RaspberryPi + vari Wemos D1 Mini - ESP8266). Regolatore di carica: Mpp Solar PCM8048.
Batterie: 24 elementi trazione pesante 315Ah C5 48V.

 

Alain

Avatar
KiloWatt


Gruppo:Utente
Messaggi:203

Stato:



Inviato il: 24/05/2019 10:06:26

Luca, ti sono grato per le indicazioni che mi hai dato.

Pensavo di partire dagli esempi che ti ho linkato (soprattutto il primo) per avere una base certa su cui lavorare nella speranza di raggiungere il mio scopo con poche modifiche, anche se mi rendo conto che sarà di certo una gestione più complessa rispetto a un impianto SSP dove in sostanza il surplus è semplicemente una differenza tra 2 grandezze già note.
Purtroppo sono ancora talmente digiuno che anche solo interpretare lo sketch, che l'autore rende disponibile su github, mi crea non poche difficoltà.

Resta il fatto che dai monitoraggi che eseguo continuamente sull'impianto mi sono ormai convinto che il valore della tensione dei pannelli sia la chiave per questa realizzazione.
Se hai modo anche tu di monitorare questo valore in tempo reale puoi verificare quanto le sue variazioni siano strettamente legate alla differenza tra potenza disponibile ai pannelli e assorbimenti lato regolatore e inverter.
Tu per caso hai già realizzato qualcosa che riguarda specificamente la modulazione di un carico istante per istante?

 

Luca450Mhz

Avatar
GigaWatt


Gruppo:Utente
Messaggi:3204

Stato:



Inviato il: 24/05/2019 11:49:41

I pannelli hanno un range di lavoro ben specifico, che dipende anche dalla temperatura dei pannelli stessi. In tutte le fasi, tranne in absorption e float la tensione dei pannelli viene regolata dal regolatore intorno al valore ottimale di lavoro (questo punto può variare tra 90 e 100V a seconda delle condizioni), ma in absorption e float il regolatore fa lavorare i pannelli con tensioni più alte. Almeno questo avviene nel mio regolatore.
Io con il mio impianto di domotica (con ESP8266, gli Arduino WiFi) controllo dei carichi DC in PWM, non AC. Gli AC li controllo solo in modalità ON/OFF



---------------
Pannelli: 6975 Wp (poli e mono). Inverter UPS PSW7 6kW 48V toroidale con switch comandato dal mio sistema di domotica (RaspberryPi + vari Wemos D1 Mini - ESP8266). Regolatore di carica: Mpp Solar PCM8048.
Batterie: 24 elementi trazione pesante 315Ah C5 48V.

 

Alain

Avatar
KiloWatt


Gruppo:Utente
Messaggi:203

Stato:



Inviato il: 24/05/2019 13:01:32

Secondo me è proprio questo il punto: il motivo per cui in absoprtion e float il regolatore fa salire il voltaggio lato pannelli è perchè deve parzializzare la potenza disponibile altrimenti la corrente e/o la tensione supererebbero le soglie impostate.

E' come se aumentasse la resistenza lato pannelli provocandone l'innalzamento della tensione e, a mio modo di vedere, lo fa in maniera molto lineare in base alla richiesta istantanea, tanto da renderlo un parametro perfetto per la regolazione del duty cycle.

Se tu decidessi di pilotare in PWM in base al surplus alcuni carichi (in continua come già stai facendo) , quale parametro ti parrebbe più adeguato? O ti limiteresti a monitorare la tensione del banco soltanto dopo essere passato in float?

 

Luca450Mhz

Avatar
GigaWatt


Gruppo:Utente
Messaggi:3204

Stato:



Inviato il: 24/05/2019 14:50:41

La tensione dei pannelli può variare, e comunque a priori non possiamo sapere quale possa essere la produzione potenziale in un dato istante.
Potendo pilotare in PWM un carico, io a step aumenterei la potenza del carico fino a quando la tensione rimane stabile (dopo la fase di absorption). Fino a quando la tensione rimane nell'intorno del valore di float, la produzione copre il consumo. Quando la tensione tende ad abbassarsi, diminuirei la percentuale di PWM.



---------------
Pannelli: 6975 Wp (poli e mono). Inverter UPS PSW7 6kW 48V toroidale con switch comandato dal mio sistema di domotica (RaspberryPi + vari Wemos D1 Mini - ESP8266). Regolatore di carica: Mpp Solar PCM8048.
Batterie: 24 elementi trazione pesante 315Ah C5 48V.

 

Alain

Avatar
KiloWatt


Gruppo:Utente
Messaggi:203

Stato:



Inviato il: 24/05/2019 17:51:20

Mah... non so...potrebbe non essere fattibile come dici tu ma non riesco a convircemene .

Spero che arrivino anche altri pareri chiarificatori, intanto continuo a "studiare"Faccine/mf_pcwhack.gif

 

Alain

Avatar
KiloWatt


Gruppo:Utente
Messaggi:203

Stato:



Inviato il: 01/03/2021 22:01:17

Ahimé è già passato un sacco di tempo e questo progetto è ancora work in progress .

Comunque qualche passo avanti è stato fatto e, se non altro, ho potuto appurare ormai in maniera definitiva che, anche in un apparato FV offgrid come il mio, è possibile massimizzare istante per istante la produzione e convertire il surplus potenziale in energia termica, modulando l'assorbimento di una resistenza proporzionalmente alla tensione dei pannelli,
con buona pace di Luca450Mhz .

Per fare delle prove, visto che già uso un raspberry pi per monitorare l'impianto, ho imbastito la parte hardware copiando bovinamente lo schema allegato, reso pubblico da Flavio Anesi su un altro forum.

Quello che mi è riuscito di fare fino ad ora è stato di inviare a manina l'istruzione "gpio pwm 1 xxxx" dalla riga di comando del raspi e variare il valore del duty cycle in modo da mantenere la tensione dei pannelli e del banco di accumulo in un range predefinito.

Ora mancherebbe giusto il tassello finale, cioè automatizzare il tutto attraverso un algoritmo da far eseguire al raspberry, ma in questo sono alquanto carente e sarei molto lieto di ricevere un po d'aiuto dai numerosi "softwaristi" che bazzicano il forum.
Tanto per fissare qualche paletto orientativo stavo pensando ad una logica del tipo:
dutycyclePWM = dutycyclePWM + (TensioneBanco-(TensioneBulk-1)) + (TensionePannelli-TensioneSoglia)

PS: nel caso la discussione fosse OT in questa sezione prego i mod di spostarla in una che dovessero ritenere più appropriata



Immagine Allegata: schema_PWM_ULN2003.jpg
 
ForumEA/U/schema_PWM_ULN2003.jpg



Modificato da Alain - 01/03/2021, 22:04:42
 
 InizioPagina
 

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum