Go Down

Topic: Cercasi Volontari Per Automazione Camera Fermentazione "Birra" Con Arduino (Read 34361 times) previous topic - next topic

arzaman


Solo un'appunto (non sulla birra, che sono "quasi astemio" :P XD) sulla cella di Peltier, che ne ho usate a decine ...

Noto dall'ultimo grafico che l'alimentazione della cella la togli completamente, se interpreto correttamente (pid output) ...


Grazie per il suggerimento in effetti si vede proprio che raggiunto il set point ho un primo picco a quasi 10 gradi sopra dopdiche' il PID reagisce portando a 0 l'uscita.. in seguito il sistema si stabilizza e entra in quel livello di oscillazione  dove si vede che periodicamente taglia la potenza a 0. Nel caso frigo invece continua rimanere su livelli intorno al'80% dove le celle di peltier lavorano correttamente.

Nel mio codice ho preso brutalmente uscita del PID e l'ho passata in ingresso alla AnalogWrite() che controlla il ponte di H

Sicuramente impedire un trasferimento di calore (in questo caso di freddo) dall'esterno all'interno manentendo alimentato un minimo la cella e' una idea da implementare ma tieni anche conto che il mio ambiente di prototipazione e' tutto "empirico" nel senso che non e' assolutamente detto che la risposta termica al caldo e al freddo sia la stessa (banalmente le due alette e le ventole sono dimensionate diversamente) per cui credo che si debba agire anche sulle 3 costanti ottimizzandole per i due versi di funzionamento del PID

Se ricordo bene dal mio esame di "controlli automatici" la parte che innesca le oscillazioni e quella integrativa che somma nel tempo gli errori volta per volta...mentre la parte derivativa tende a limitare le oscillazioni
Il setting del grafico e' 2,5,1...Potrei provare a ridurre Ki e aumentare un pelo Kd 

Etemenanki vista la tua esperienza hai qualche setting da suggerire ?
Apprestandomi a mettere insieme i due pezzi sono ancora piu' preoccupato della stabilita' del tutto in prossimita' di temperature esterne vicino al set point dove si deve decidere se far lavorare il PID caldo o quello freddo....il semplice approccio di un paio di IF innestati con inversione della logica del PID non mi convince (e' come un controllo on/off con isteresi con qualche complicazione in piu')
Qualche idea per avere un PID intrinsecamente "bidirezionale"  o "termostatico"?  anche idea del Locked Anti-phase (usata con successo sui motori) non mi dispiace.. qualche esperienza in merito sulle celle ?

Davide

Etemenanki

Be', io posso darti suggerimenti "hardware", non sono un programmatore ... a livello di usare la cella sia come refrigeratore che come riscaldatore, avrai sempre il problema dei dissipatori dimensionati male, perche' per sua stessa natura la cella scalda molto piu di quanto raffreddi (in realta', e' quello il principale errore che la gente fa comunemente pensando alle celle di Peltier, e cioe' che "raffreddino" ... mentre invece sono semplicemente "pompe di calore", che spostano il calore dal lato "freddo" a quello "caldo", e ovviamente devono dissipare sul lato "caldo" anche l'energia che utilizzano per il procedimento) ... anche usando due dissipatori identici per le due facce, ci sara' sempre molto piu riscaldamento che refrigerazione ... la cosa piu pratica sarebbe di usare un'elemento riscaldante a parte, dimensionando la cella per la sola refrigerazione ...
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

arzaman


Be', io posso darti suggerimenti "hardware", non sono un programmatore ...


chiaro il principio sulla asimmetria tra caldo e freddo...va tentuto in conto nel dimensionamento considerando che nella maggior parte dei casi (ma gli amici birrofili mi smentiranno...) il sistema viene usato come frigo per abbattere di qualche grado le temperature tipiche delle nostre case/cantine alle temperature tipiche di fermentazione 14-20 gradi. Piu' raramente ci si trova con una cantina troppo fredda e la necessita' di alzare la temperatura di qualche grado.

Ne approfitto sul tema HW per porti una domanda contando sulla tua esperienza....fino ad ora abbiamo ragionato su un controllo PWM a duty cycle variabile e frequenza fissata e arduino nativamente ha frequenze del PWM di qualche centinaio di HZ.
Il tema della frequenza del PWM ho capito che per la cella di peltier,che non e' puramente resistiva, puo' essere un problema.
Qualche suggerimento ?
Altri metodi di controllo efficaci ?

Davide

Etemenanki

A livello di funzionamento "intrinseco", la cella di Peltier si comporta come (ed in effetti, cosi e') una serie di giunzioni a semiconduttore "parzialmente e nonlinearmente resistive" (lo so che non e' una descrizione accurata, ma il modello e le formule occupano troppo spazio :P) ... comunque a livello di funzionamento pratico, il sistema a PWM e' uno dei migliori, a condizione che le frequenze non siano troppo basse (il che permetterebbe alla cella di "rovesciare" parte del trasferimento in modo passivo) ne troppo alte ... io le ho usate a frequenze che andavano da 500 a 1500 Hz senza alcun problema (ovviamente solo in un senso), al massimo per alcuni sistemi che richiedevano funzionamenti specifici e dove non era possibile regolare il duty-cycle su un minimo fisso, sovrapponevo una componente continua al PWM, in modo che anche con il PWM a zero la cella funzionasse almeno al 10% della corrente nominale, ma questo non e' indispensabile nel tuo caso, perche' se usi il PWM di Arduino, che dovrebbe essere sugli 800Hz, se non sbaglio, l'inerzia termica della cella non gli da comunque il tempo per dissipare in modo passivo in reverse (sempre se il PWM non va a zero, oviamente ... imposta un minimo, anche solo il 3 o 4 % del duty cycle del PWM attivo, e quel problema praticamente si azzera, senza bisogno di sovrapporci della continua)  ...

I sistemi piu "efficaci" (a livello di controllo, non di energia risparmiata) sono quelli analogici proporzionali, ma in un caso come il tuo non credo siano necessari (si usano in laboratorio, per precisioni estreme, con reti di feedback multiple e controlli incrociati fra lato caldo e freddo della cella, ma, costi a parte, per fermentarci della birra non avrebbero comunque senso)

Quello che invece puo "aiutare", e' uno spessore sulla cella ... un blocchetto di allumunio da 3 o 4 cm di spessore e largo come la cella (o rame, ma costa di piu) fra la cella ed uno dei dissipatori, in genere quello freddo (il sistema migliore sarebbe due blocchetti, uno per lato, ma complica l'assemblaggio) consente di migliorare l'isolamento, mettendoo piu materiale termoisolante fra i due dissipatori ... in quel modo si possono anche usare due dissipatori grandi uguale, e le superfici interne non in contatto con le celle interferiscono di meno ... basta che le superfici di contatto siano parallele e piu piane possibile ...
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

leo72

PS:
non so se conosci questo articolo:
http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid-introduction/

Ti spiega come migliorare il PID.

arzaman


... comunque a livello di funzionamento pratico, il sistema a PWM e' uno dei migliori, a condizione che le frequenze non siano troppo basse (il che permetterebbe alla cella di "rovesciare" parte del trasferimento in modo passivo) ne troppo alte ... io le ho usate a frequenze che andavano da 500 a 1500 Hz senza alcun problema (ovviamente solo in un senso), al massimo per alcuni sistemi che richiedevano funzionamenti specifici e dove non era possibile regolare il duty-cycle su un minimo fisso, sovrapponevo una componente continua al PWM, in modo che anche con il PWM a zero la cella funzionasse almeno al 10% della corrente nominale, ma questo non e' indispensabile nel tuo caso, perche' se usi il PWM di Arduino, che dovrebbe essere sugli 800Hz, se non sbaglio, l'inerzia termica della cella non gli da comunque il tempo per dissipare in modo passivo in reverse (sempre se il PWM non va a zero, oviamente ... imposta un minimo, anche solo il 3 o 4 % del duty cycle del PWM attivo, e quel problema praticamente si azzera, senza bisogno di sovrapporci della continua)  ...



grazie per l'ulteriore conferma, mi torna con la cultura che mi sono fatto e con una serie di prodotti commerciali analizzati che gestiscono le celle in PWM con frequenze cha vanno da qualche centinaio di HZ a un paio di KhZ
Per cui direi per il nostro progetto fissiamo il controllo a PWM e la frequenza di uscita su arduino della Analog Write e' di 490Hz e in prima battuta potrebbe andare. Lavorando sui timer si puo' eventualmente cambiare la frequenza

Quote

Quello che invece puo "aiutare", e' uno spessore sulla cella ... un blocchetto di allumunio da 3 o 4 cm di spessore e largo come la cella (o rame, ma costa di piu) fra la cella ed uno dei dissipatori, in genere quello freddo (il sistema migliore sarebbe due blocchetti, uno per lato, ma complica l'assemblaggio) consente di migliorare l'isolamento, mettendoo piu materiale termoisolante fra i due dissipatori ... in quel modo si possono anche usare due dissipatori grandi uguale, e le superfici interne non in contatto con le celle interferiscono di meno ... basta che le superfici di contatto siano parallele e piu piane possibile ...


Chiaro il suggerimento per uno scambiatore aria -aria tipo quello che sto usando per prototipare.
In generale la parte "meccanica" e' tutta da definire e  ciascun homebrewer e' libero di realizzare la sua "cella" con sistema di scambio che piu' preferisce...aria-aria, aria-h20, h20-h20 e con la costruzione meccanica che riesce a reallizzare.
Lo scopo del progetto e' infatti realizzare una shield di controllo general pourpouse che vada bene per ogni soluzione comprese quello con motore frigo per raffreddare e resistenza per riscaldare.


arzaman


PS:
non so se conosci questo articolo:
http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid-introduction/

Ti spiega come migliorare il PID.


Si grazie lo avevo letto qundo cercavo di capire il funzionamento della PID library di arduino
Probabilmente partendo dal codice delle librerie si puo' realizzare quello che continua a frullarmi per la testa...ovvero un meccanismo/algoritmo/funzione che consenta di passare dal caldo al freddo in maniera continua e soft non in maniera binaria decidendo a priori la DIRECTION (direct o reverse) del PID come richiedono ora le librerie.

In altre parole le librerie PID sono usate O per una elemento riscaldante O per un elemento raffreddante e il verso e' un parametro di input della funzione (e di pilotaggio del PIN opportuno del H-bridge) vorrei qualcosa che cercasse di raggiungere il set point minimizzando errore rispetto al valore misurato e fornisse in uscita un segnale PWM unico e un bit per indicare se attivare frigo o stufa o ancora meglio variando il duty cycle in continuo secondo la tecnica Locked Anti-phase

any suggestion ?
grazie
Davide

arzaman


Ho trovato un altro di articoli interessanti sul tema PID - H-bridge e controllo termostatico bidrezionale

Le librerie PID consentono di definire un "OutputLimit e definendo un range -255,255 e una verifica del segno +- del Output dovrebbe essere semplice fare un controllo bidirezionale

Code: [Select]

myPID.SetOutputLimits(-255,255);
void loop()
if(Output>0)
{
   analogWrite(hotPin, Output);
}
else
{
   analogWrite(coldPin, -1*Output);


da aggiungere un po' di isteresi e il controllo del PIN di direzione del h-bridge ma mi piace come idea


un' altra possibilità' interessante e' usare un integrato dedicato al controllo tipo il MAX1968

allego descrizione sintetica

highly integrated and cost-effective, high-efficiency, switch-mode drivers for Peltier thermoelectric cooler (TEC) modules. Both devices utilize direct current control to eliminate current surges in the TEC. On-chip FETs minimize external components while providing high efficiency. A 500kHz/1MHz switching frequency and a unique ripple cancellation scheme reduce component size and noise.
The MAX1968 operates from a single supply and provides bipolar ±3A output by biasing the TEC between the outputs of two synchronous buck regulators. Bipolar operation allows for temperature control without "dead zones" or other nonlinearities at low load currents. This arrangement ensures that the control system does not hunt when the set point is very close to the natural operating point, requiring a small amount of heating or cooling. An analog control signal precisely sets the TEC current


diciamo che nell'ottica di una shield dedicata un integratino di questo tipo non e' male (a parte i 3A un po' scarsi) pilotato direttamente dal DAC di arduino

Continuo a ragionarci e provare..

Davide


saviothecnic

Bene nelfrattempo che troviamo un aiuto per il PCB e Firmware
oggi sono andato avanti con la parte meccanica



Finito la parte scambiatore doppio h20 h20 se domani ho tempo faccio delle misure per adesso ho solo assemblato.

A qui la Pompa è un tre fili pwm oltre che alcune ventole quindi la neccessita di vere questo PCB base di comando
diventa sempre più necessaria se qualche volontario visto che tra poco si va in ferie e si ha piu tempo
bene venga io saro lieto di montare e testare :D

Grazie

saviothecnic

So rimasto fregato la Pompa con tanica che ho preso in foto su
e PWM ovviamente alimentado con + - 12V non gira
"spero di non averla bruciata in questa prova maldestra che gia sapevo non andare"
E mo ho prendo un regolatore di motori da modellismo e un provaservi e la faccio girare
o avete gia qualche pezzo di codice tipo quello che stava provando Davide dove posso anche far attivare la pompa in PWM
prelevata da arduino per comandare anche la pompa in PWM provare se il tutto va ?

Grazie

saviothecnic

Se puo essere utile dopo mesi autore di questo video

https://www.youtube.com/watch?v=hWR24hynjXc

Ha postato il link del codice

http://richmondreefers.com/phpbb/viewtopic.php?f=21&t=13510&sid=971a076c42d074ac212e9dbeec09cc4c#p121647

Magari parti di esso possono torarci utili per questo progetto :D

saviothecnic

Aggiornamento :D

Il Nuovo PCB per la gestione camera fermentazione grazie all' aiuto dell' utente di forum Etemenanki
E pressoche questo manca qualche affinatura



Breve sunto di cosa ha :

Ingressi sensoristica totali 8 per ora da A2 >A7 solo 6 ne mancano 2

N° 1 Audio LM393
N°2 Umidità/Temp DHT22 RHT03
N°1 Sensore Consumo Corrente Analogico 20A range ACS712
N°2 Sensori temperature facce Cella Peltier
N°1 Misura diretta Liquido DALLAS DS18B20
N°1 Porta Aperta

Ingressi utente Tastiera membrana schema a griglia 4x4 N°8 16 tasti
Pin Usati 23 25 27 29 31 33 35 37

Ingressi Pulsanti Analogici con resistenze su ingresso Analogico compatibile BirraDuino A?? 5 Pulsanti Analogici

Modulo per Data Ora corrente in IC2 RTC DS1307 AT24C32

Uscite5 PWM attuali 6 possiamo levarne una
Pin Usati da 4 >9
Per Cella Peltier al massimo Due PWM + Uno Inversione Polarità
Possibile Ventone in PWM Due
Possibile Pompa PWM 1
Possibile Resistenza PWM

5 Digitali 1 Buzzer 4 Relè "Transistor BC337 anche pilotaggio SSR" A14 >A19 attuale 6 possiamo levarne Una

LCD Basati su Hitachi HD44780 o I2C
Pin 22 = DB4
Pin 24 = DB6
Pin 26 = DB7
Pin 28 = DB5
Pin 30 = EN
Pin 32 = RS
Pin 34 = comando del backlight

La scheda per la SD prende i pin di controllo dalla Mega, che corrispondono a: 53 (SS, o CS), 51 (MOSI), 52 (SCK) , 50 (MISO) ,
quindi questi pin non vanno usati per niente altro.

La W5100, oltre ai pin MOSI, MISO e SCK che prende dal connettore ICSP, prende anche i seguenti pin: 10 (al 10 della W5100),
13 (al 13 della W5100), 17 (al 4 della W5100) 18 (al 2 della W5100), A0 (ad A0 della W5100), A1 (ad A1 della W5100),
quindi anche questi non vanno usati per niente altro.

Ieri è arrivato anche a me il modulo di Potenza



Se i test di Davide sullo stesso sono positivi metitamo questo come ufficiale e mettiamo il connettore flat diretot sul PCB

E possiamo iniziare a testare due righe di codice sul nuovo HW :D

Grazie

EDIT BY MOD: usare dimensioni per le immagini più ridotte

arzaman

Savio

sinceramente mi sono un po' perso ...e non sto solo parlando dei test dell'algoritmo per il controllo delle celle dove sono rimasto indietro causa "troppa carne al fuoco" ma non mi e' chiaro il senso della scheda che proponi.
Gran bel lavoro ma sulla base di quali specifiche? requisiti ? disegno ?
Probabilemnte colpa mia che ho perso qualche puntata...stavamo discutendo di uno schema a blocchi di massima e di quali funzioni inserire e congelare per poi passare al disegno del circuito, allo sviluppo del SW etc...come siamo arrivati gia' alla fine ?

capisco tua "fretta" di procedere ma condivido parzialmente l'approccio...forse ne abbiamo discusso in precedenza e sul forum ho visto qualche commento in merito ma per ottenere un qualche risultato bisognerebbe procedere in maniera piu' strutturata, lineare, definendo bene le specifiche iniziali di cosa si vuole fare, facendo una analisi, un disegno di massima e poi raffinandolo dal punto di vista HW e SW. Magari documentando e tracciano i vari step e fasi su qualche sito tipo surceforge e non su un forum che a un certo punto diventa illeggibile.

massima disponibilita' a contribuire ma o strutturiamo bene la cosa o miei contributi saranno sempre spot e poco utili in un progetto che e' gia' alla fine prima ancora di iniziare  ;)

Davide

saviothecnic


" ma non mi e' chiaro il senso della scheda che proponi.
Gran bel lavoro ma sulla base di quali specifiche? requisiti ? disegno ?


In Base allo schema a Blocchi che ho postato ad Inizio Topic nella richiesta di scrittura Software

Avevo premesso che avei seguito la parte HW e Strutturale e di test e cosi sto facendo :D

Il senso e di avere una Base HW univoca ovvio la si puo montare tutta o in parte e testare solo la parte che interessa

Tipo piazzarci su Arduino e saldare solo i compo per un Ingresso Sonda e un Uscita PWM e testare quella parte di codice

Ma almeno cosi si ha una base di librerie da caricare PIN Out di configurazione e moduli da usare
su HW simili o uguali almeno i risutlati dei test dal lato HW sono basati di HW simile/identico

Probabilemnte colpa mia che ho perso qualche puntata...stavamo discutendo di uno schema a blocchi di massima e di quali funzioni inserire e congelare per poi passare al disegno del circuito, allo sviluppo del SW etc...come siamo arrivati gia' alla fine ?


Non siamo alla fine ma all' inizio :D
Tu stavi facendo dei test e prove e io non potevo replicarli perche a lavorare con fili volanti non mi trovo :(
Adesso con un HW a supportarmi se qualcuno propone una stringa di codice la carico nel hw e possiamo subito provare
e se altri lo vogliono fare hanno un riferimonto hw di test

In questo HW ci sta il massimo che puo servire come IO nel progetto
ma non è detto che si debba usare montare tutto  e perforza tutto assieme

Come premesso me la cavo un po nella parte pratica montagigo HW sia elettornico che strututrare
quindi per mie capacita parto per forza da quello che capisco che probabilmente tutti gli altri partono dal disegno
o SF quindi questo mio approccio puo sembrare inverso ma almeno cosi chi vuole giocherellare ha una base almeno
sul lato HW definita :D


capisco tua "fretta" di procedere ma condivido parzialmente l'approccio...forse ne abbiamo discusso in precedenza e sul forum ho visto qualche commento in merito ma per ottenere un qualche risultato bisognerebbe procedere in maniera piu' strutturata, lineare, definendo bene le specifiche iniziali di cosa si vuole fare, facendo una analisi, un disegno di massima e poi raffinandolo dal punto di vista HW e SW. Magari documentando e tracciano i vari step e fasi su qualche sito tipo surceforge e non su un forum che a un certo punto diventa illeggibile.Davide


Si certo la mia diciamo fretta è data dal fatto che indipendentemente da questo progetto questo PCB che appunto l'ho definisco universale per i progetti brassicoli già da subbito appena lo terminerò con le dovute modifiche FW
lo usero in BirraDuino/BrauDuino E quasi subito nella gestione dello spillatore protatile dove mi servirà
una mano ma apriprò un topic separato per adattare il soft a questo HW ed eventuale traduzione menu.

E visto che la prima parte da testare quella dove stavi lavorando era appunto la cella di peltier con il modulo per motori da 43A
volevo sapere come eri messo con i test perche se quesdta parte era definita erano gia due punto Software e HW definiti e finiti e si poteva passare avanti.

Grazie

saviothecnic

Buona Sera avendo finito finalmente la parte brassatura con Open ArdBir

Adesso ci manca solo questa per la gestione camera fermentazione allora qualche news in merito ?

Grazie

Go Up