Modulazione automatica resistenza boiler PWM [GUIDA]

Progetti domotici con il Raspberry .... con o senza il supporto di MeterN e 123Solar
Avatar utente
Flane
Messaggi: 2460
Iscritto il: 16/01/2016, 15:02

Modulazione automatica resistenza boiler PWM [GUIDA]

Messaggioda Flane » 07/05/2016, 0:00

Vediamo di seguito come sia possibile ottimizzare o meglio massimizzare l'autoconsumo, utilizzando il nostro sistema di monitoraggio energetico con 123solar e Metern.

Quello che andremo a fare è di dirottare l'esubero di produzione del nostro impianto fotovoltaico verso una resistenza del boiler ACS per produrre acqua calda, andando a modulare il consumo della resistenza per sfruttare il più possibile l'esubero.


In pratica, sempre con lo stesso raspberry su cui è installato 123solar e metern, si usa anche per fare una modulazione della resistenza del boiler mediante l'uscita PWM del raspberry con un semplice relè SSR zero crossing (acquistato per pochi euro sulla baia).
In questo modo si riesce a fare una regolazione a treni di sinusoidi, regolando la potenza con 20 step (che su 1200W di resistenza significa gradini incrementali da 60W).
La scelta dei 200ms di periodo non è casuale ma deriva da una sperimentazione che ho fatto confrontando l'energia immessa rilevata dal contatore di scambio, in quanto utilizzando periodi più lunghi si rilevavano delle immissioni in rete che non dovevano esserci, per via dei "buchi" troppo lunghi della regolazione a treni d'onda.

Servono:
• Raspberry con 123solar e MeterN
• Un relè SSR zero crossing FOTEK SSR-25DA
• una resistenza R1=1Kohm 1/4W
• una resistenza R2=100Kohm 1/4W
• un transistor NPN tipo P2N2222A o BC238B
• una basetta millefori, saldatore e un minimo di buona volontà
• tocco finale ...... il mio script per la regolazione PWM .... ;)

Il transistor e le due resistenze montate opportunamente su una basetta millefori, servono per convertire i 3,3V del raspi a 5V perchè ogni tanto l'SSR non rilevava lo stato logico 1 in ingresso in quanto i 3,3V sono al limite per attivare l'SSR e con attivazioni così veloci ogni tanto ne fallava qualcuna (da datasheet danno 4-32V per l'ingresso dell'SSR). In soldoni è un semplice transistor che lavora in saturazione facendo la semplice funzione di un interruttore ON-OFF.

Questo è lo schema del circuito montato sulla basetta:
P2N2222A.png

e questo il circuitino finito:
Circuito P2N2222A.jpg

Il tutto andrà collegato come da schema seguente:
Raspberry_PWM.jpg


Per chi non se la cava bene con il saldatore, in sostituzione della schedina con il transistor appena vista è anche possibile utilizzare l'integrato ULN2003A, che è un array di 7 transistor darlington, che sopportano correnti fino a 0,5A e tensioni fino a 50V.
Potete prendere direttamente l'integrato e saldarvi i fili, oppure utilizzare queste schedine che si trovano facilmente ad a basso costo in rete:
ULN2003A.jpg

Questo è lo schema della schedina con l'ULN2003A:
SCH_ULN2003.jpg
SCH_ULN2003.jpg (21.47 KiB) Visto 27589 volte

e questo lo schema interno di funzionamento dell'integrato ULN2003A
uln2003a schema.gif
uln2003a schema.gif (5.97 KiB) Visto 27588 volte

Di seguito invece lo schema di collegamento al Raspberry e SSR:
Schema_PWM_ULN2003.jpg

Il positivo (+) per l'SSR eventualmente è possibile prenderlo anche dal secondo pin a +5V del Raspberry

Normalmente, queste schedine sono utilizzate per pilotare i motori passo passo, ma vanno benissimo anche al nostro scopo.

Regolazione a treni d'onda
Il software invece provvede mediante l'uscita PWM del raspberry (GPIO18) ad effettuare una regolazione della resistenza a TRENI DI SEMIONDE (QUI spiegano come funziona questo metodo di regolazione)

La regolazione della potenza a treni d'onda presenta notevoli vantaggi.
Rispetto ai sistemi che parzializzano la sinusoide della tensione (sistemi a taglio di fase) presenta infatti i seguenti vantaggi:
• funzionamento del sistema a fattore di potenza (cos fi) unitario se il carico è resistivo;
• assenza di armoniche in rete;
• assenza di disturbi a radio frequenza reiettati in rete;
• l'SSR scalda molto poco (non servono alette per 1200-1500W regolati)

Il mio software
Considerato che una semionda della tensione di rete a 50Hz dura 10ms si devono fare degli intervalli di accensione multipli di 10ms.
Infatti per poter lavorare su periodi PWM più brevi (200ms) ma avere un sufficiente numero di regolazioni (20step) la mia regolazione lavora sulla singola semionda e non su un'onda completa. Questo mi permette appunto di avere 20 step da 10ms su un periodo PWM di 200ms.
In questo modo ci si assicura di beccare un passaggio per lo zero della sinusoide e quindi l'SSR si accende, e così non serve la sincronizzazione dei comandi con la frequenza di rete (una complicazione circuitale in meno).
Di seguito è schematizzato il funzionamento di un relè SSR zero crossing, che si attiva e disattiva sempre e solo al passaggio per lo zero della tensione.
PWM_1.jpg
PWM_1.jpg (11.6 KiB) Visto 30408 volte

Quindi usando un periodo PWM di 200ms si possono fare 20 intervalli di accensione (20 gradini di regolazione della resistenza cioè incrementi del 5%):
• accendi per 10ms (1 semionda) e spegni per 190ms (19 semionde) e la potenza è 1/20 (5%) P resistenza
• accendi per 20ms (2 semionde) e spegni per 180ms (18 semionde) e la potenza è 2/20 (10%) P resistenza
• accendi per 100ms (10 semionde) e spegni per 100ms (10 semionde) e la potenza è 10/20 = 1/2 (50%)P resistenza
• accendi per 150ms (15 semionde) e spegni per 50ms (5 semionde) e la potenza è 15/20 = 3/4 (75%) P resistenza
• accendi per 200ms (20 semionde) e spegni per 0ms (0 semionde) e la potenza è 100% P resistenza

Con il PWM la cosa è semplice, solo che tutti i parametri del PWM devono essere impostati correttamente:
• modo funzionamento PWM: Mark Space (di default il raspberry è impostato in modalità "Balanced")
• impostare correttamente PWM range e PWM clock ed utilizzare il corretto multiplo del duty cycle, per far si di avere degli intervalli multipli di 10 ms

Di seguito le impostazioni per avere una regolazione su 200ms da 20 step di 10ms ciascuno
PWM_2.jpg

dove il "duty cycle" è il valore che si invia all'uscita PWM.

Trovate il mio script su GITHUB: Raspberry-PWM-Water-heater
Su Github troverete anche una guida all'installazione del software.

Risultato finale
Questo è quello che si ottiene in una giornata tipo:
Grafico.jpg

Ovviamente quando la produzione e alta, la resistenza da 1200W non è sufficiente per mangiarsi tutta la produzione, ma comunque basta ed avanza visto che mi ritrovo 600l di acqua a 75°C ...


paolomasse
Messaggi: 85
Iscritto il: 11/04/2016, 8:31

Re: Gestione resistenza boiler PWM

Messaggioda paolomasse » 07/05/2016, 7:29

Grande.....comincio subito a procurarmi l hw....tanto dalla baia impiega minimo un mese.....nel frattempo spero ci darai indicazioni dove prendere il sw o come scriverlo. ....può darsi riuscirai a scrivere la guida....

..ma intanto grazie che già ci hai chiarito molto....

...veramente ieri avevo ordinato il fotek ..perchè dai post avevo capito.....ora porto i fili dal raspberry al boiler ....quanti ne servono ? .....

E poi studio quanto sopra e attendo.......

Inviato dal mio SM-N910F utilizzando Tapatalk
Inverter Aurora PVI 6000 OUTD - IT - connesso rasp tramite interfaccia rs485-usb - cavo twistato di 20m
25 pannelli sanyo 2HIT40HDE4 su due stringhe
contatore sdm120c - indirizzo 2 - connesso tramite convertitore usb-rs485 (vestito nero due fili)

paolomasse
Messaggi: 85
Iscritto il: 11/04/2016, 8:31

Re: Gestione resistenza boiler PWM

Messaggioda paolomasse » 08/05/2016, 8:42

paolomasse ha scritto:..ora porto i fili dal raspberry al boiler ....quanti ne servono ? ...
Inviato dal mio SM-N910F utilizzando Tapatalk


..scusate la domanda stupida...ma dallo smartphone non avevo visualizzato l'immagine dove si vede chiaramente il numero dei fili che devono essere collegati sulla GPIO del rasp....

..si può usare come +5V il piedino che esce dal raspberry ....intendo dire se a livello di carico si riesce....ma penso di si....
Inverter Aurora PVI 6000 OUTD - IT - connesso rasp tramite interfaccia rs485-usb - cavo twistato di 20m
25 pannelli sanyo 2HIT40HDE4 su due stringhe
contatore sdm120c - indirizzo 2 - connesso tramite convertitore usb-rs485 (vestito nero due fili)


paolomasse
Messaggi: 85
Iscritto il: 11/04/2016, 8:31

Re: Modulazione automatica resistenza boiler PWM

Messaggioda paolomasse » 09/05/2016, 8:00

A questo punto ...rimane solo il sw e le eventuali librerie da caricare/compilare sul raspberry per far funzionare il tutto......e come integrare il tutto con metern.....


Inviato dal mio SM-N910F utilizzando Tapatalk
Inverter Aurora PVI 6000 OUTD - IT - connesso rasp tramite interfaccia rs485-usb - cavo twistato di 20m
25 pannelli sanyo 2HIT40HDE4 su due stringhe
contatore sdm120c - indirizzo 2 - connesso tramite convertitore usb-rs485 (vestito nero due fili)

buemarino
Messaggi: 291
Iscritto il: 26/03/2016, 20:37

Re: Modulazione automatica resistenza boiler PWM

Messaggioda buemarino » 09/05/2016, 23:25

Flane,
nel frattempo che il rele' da te suggerito attraversa i continenti, un amico qua ha a disposizione un relè opto22 mod 240d25.
Leggendo le specifiche leggo che è uno zero crossing e mi sembra sovrapponibile al fotek.
Potresti dargli una occhiata se hai tempo?
Grazie comunque.
Qui sotto i link:
http://www.opto22.com/site/pr_details.a ... tem=240D25
http://documents.opto22.com/1417_SSR_Cr ... l_Note.pdf

Edit: vedo che con i prezzi qui in Italia ci compri 10 Fotek, ma a me verrebbe gratis ;)
Fotovoltaico 4,195 Kw (2E2S) - Inverter Aurora PO 3.6 OUTD --> RPI 2b -->SDM120c x lettura consumi su stesso bus - SolarStretch v3.1 . Boiler solare con integrazione elettrica e PWM dimmer v1.22

Avatar utente
Flane
Messaggi: 2460
Iscritto il: 16/01/2016, 15:02

Re: Modulazione automatica resistenza boiler PWM

Messaggioda Flane » 13/05/2016, 23:05

Così ad uno sguardo veloce mi sembra effettivamente molto simile al Fotek.

Se hai la possibilità lo puoi provare e magari vedi anche se questo funziona direttamente con i 3,3V del raspberry
visto che parlano di un segnale da 3V minimo ;)

Avatar utente
thx
Messaggi: 81
Iscritto il: 21/01/2016, 17:27

Re: Modulazione automatica resistenza boiler PWM

Messaggioda thx » 20/05/2016, 13:49

Ciao flane...sicuro che in una giornata tipo scaldi 600 lt a 75 gradi oppure ho letto male?

Avatar utente
Flane
Messaggi: 2460
Iscritto il: 16/01/2016, 15:02

Re: Modulazione automatica resistenza boiler PWM

Messaggioda Flane » 20/05/2016, 14:56

Non hai letto male, MA ovviamente dipende da che temperatura parti, da quanto energia avanzi e riesci a buttare nel boiler, da .....

Comunque, semplificando un pò le cose il conto è facile.
Per definizione:
1 cal (piccola caloria) = energia necessaria per innalzare da 14,5 a 15,5 °C la temperatura di 1 g di acqua distillata posta a livello del mare (pressione di 1 atm)

Considerando per semplicità che 1 cal ci permette di innalzare di 1°C 1g di acqua sempre ed ovunque, avremmo che:
1 kcal ci permette di innalzare di un grado 1l di acqua (1000g)

Essendo poi 1 Kcal = 1,1622 Wh, considerando la resistenza con rendimento unitario, significa che ci vogliono 1,1622 Wh per innalzare di 1°C un litro di H2O.
Quindi per innalzare di 1°C 100l di H2O ci vogliono 116,22Wh

Esempio: se hai un boiler da 300l e parti da 40°C e vuoi portarlo a 60°C (dT=60-40=20°C) ci vorranno: 300 * 1.1622 * 20 = 6973,2 Wh

Credo che ora hai tutti gli elementi per farti i tuoi calcolini ;)

Aggiungo comunque in allegato un semplice file excel che inserendo i litri del boiler ed i kWh che si riescono a dirottare sulla resistenza calcola l'aumento di temperatura che si riesce ad ottenere. Ovviamente il tutto è approssimato ma dà una indicazione.
Allegati
BOILER.zip
(1.73 KiB) Scaricato 701 volte

Avatar utente
thx
Messaggi: 81
Iscritto il: 21/01/2016, 17:27

Re: Modulazione automatica resistenza boiler PWM

Messaggioda thx » 20/05/2016, 15:38

Ok...io ho solo il classico da 80lt e faccio funzionare la resistenza al 50 o al 100% tramite diodo. Dove hai trovato un recipiente da 600 lt?


Torna a “Domotica”

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti