Jump to content
PLC Forum


mading

Alternativa a Variac per controllo potenza carico resistivo (autoclave)

Recommended Posts

mading


Ciao a tutti!

Spero di aver azzeccato il posto giusto per la mia domanda.


Allora: vorrei realizzare un circuito di regolazione continua della potenza dissipata dalla resistenza di un'autoclave.
https://www.ebay.it/itm/18L-24L-New-Lab-Dental-Stainless-Electric-Heated-Autoclave-Steam-Sterilizer-Pot/401744829690?hash=item5d89db9cfa:m:mC6laziEjBX7PS-_FgloFcA

 

Si tratta scheda arduino che controlla un relais a stato solido (SSR) come descritto qui:

http://www.micheleardito.info/ma/it/arduino-it/controllo-pid-arduino-on-off/


La partizione del carico viene fatta aprendo e chiudendo il relais con tempi superiori al periodo di 20ms, e compresi tra 0-5s.


Il feedback è dato da una termocoppia K condizionata con questo: https://www.ebay.it/itm/Termocoppia-K-Modulo-MAX6675-Sensore-di-rilevamento-temperatura-tipo-K/222566762620?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649

 

L'autoclave ha una resistenza da 2 kW, e il Relais è quello in foto. Lo piloterei direttamente da arduino, se i 5 V sono sufficienti.

 

Alcune domande: un circuito del genere quanto impegna la rete domestica? Ho 3.5 kW di contratto, immagino che di spunto arrivi a 2kW.

Esiste una soluzione migliore per regolare il carico resistivo, magari evitando picchi di tensione sulla linea?

Devo fare cicli di 6-8 ore per trattamento termico del legno.

 

 

SSR.png

Share this post


Link to post
Share on other sites

patatino59
Quote

un circuito del genere quanto impegna la rete domestica? Ho 3.5 kW di contratto, immagino che di spunto arrivi a 2kW.

Esiste una soluzione migliore per regolare il carico resistivo, magari evitando picchi di tensione sulla linea?

L'impiego di tale regolazione (chiamiamola PWM, anche se il periodo è lungo, è esattamente quello) comporta l'accensione alla massima potenza intervallata a spegnimenti.

Secondo me è più semplice ed efficace una regolazione continua a Triac, e un termostato di massima.

Share this post


Link to post
Share on other sites
Livio Orsini
1 ora fa, mading ha scritto:

Spero di aver azzeccato il posto giusto per la mia domanda.

 

No,non è la sezione giusta; per questa volta sistemo io la discussione.

 

1 ora fa, mading ha scritto:

Alcune domande: un circuito del genere quanto impegna la rete domestica?

 

1 ora fa, mading ha scritto:

L'autoclave ha una resistenza da 2 kW

 

Ogni volta che accendi il resistore di riscaldo assorbi 2kW quindi, considerando anche il 10% in più che ammette il contatore, ti rimangono 1.1kW per tutti gli altri usi domestici.

Alcune considerazioni sul progetto.

Per prima cosa il comandio dello SSR con 5V (molto) teorici è proprio al limite. Sarebbe opportuno usare un fotoaccoppiatore o almeno un transistore per pilotarlo con una tensione maggiore; l'ideal sarebbero 24Vcc.

La regolazione a cui fa riferimento il link è a "pacchetti" ottima per i disturbi ma fa lavorare il resitore a piena potenza.

Usando una regolazione sulla fase, invece, puoi fare in modo che il ressistore non lavori mai a piena potenza; in questo modo ti aumenta il margine disponibile.

 

Da ultimo, ma non ultimo.

Arduino è un bel giochino, ma ha un'immunità ai distrubi praticamente inesistente quindi è facilmente previdibile che il regolatore incorra in blocchi o vada "per farfalle", molto spesso e frequentemente.

Alla finfine un termostato come quelli degli scadabagni finirà per costarti meno ed molto, ma veramente molto, più affidabile.

 

Share this post


Link to post
Share on other sites
Adelino Rossi

Oltre alle considerazioni già fatte aggiungo di montarlo in un capace dissipatore di calore.

 

Share this post


Link to post
Share on other sites
incus

 

1 ora fa, patatino59 ha scritto:

Secondo me è più semplice ed efficace una regolazione continua a Triac, e un termostato di massima

 

Concordo con @patatino59.

 

Provo a darti un'altra chiave di lettura alternativa al triac, per diminuire l'assorbimento ed avere più margine sul contatore, oltre alla sostituzione della resistenza ovviamente 😆, potresti alimentare la resistenza tramite un trasformatore 220V->110V, in questo modo la tua resistenza da 2kW assorbirebbe una potenza di circa 458W, tieni in considerazione che questa modifica impatta notevolmente sulla velocità di riscaldamento.

La regolazione della temperatura puoi farla in due modi, con un semplice termostato se hai tolleranze alte (±10°C), con un termoregolatore ed un relè statico se hai la necessità di essere più preciso (±2°C).

 

Ciaoooooo 😄

Edited by incus

Share this post


Link to post
Share on other sites
mading

Grazie a tutti, anche per lo spostamento del post.

Per "regolazione di fase" si intende anche un triac o ci sono altri sistemi?

nella guida di Mirko Ceronti vengono citati solo Triac e Variac (tralasciando il reostato: https://www.luceforum.com/fm/upload/link_forum/Tutorial_Mirko/Principi_di_regolazione_della_Potenza_in_corrente_alternata.pdf)

 

Come termoregolarore potrei usare qualcosa tipo questo: http://www.willhi.com/data/product_en/20181018_204812.pdf

Il relais regge 10 A, ma potrei usarlo con un alimentatore da 12 per pilotare il relais a stato solido.

Questi regolatori usano un termistore, meno facile per me da cablare nell'autoclave di una sonda K.

 

Proprio perchè Arduino non è pensato per l'elettronica di potenza ho pensato di chiedere qui.

Mi piacerebbe evitare un sistema ON-OFF (anche se PWM) in modo da impegnare meno la rete domestica e da parzializzare la potenza dissipata dalla resistenza.

 

Il mio obiettivo è stare su una temperatura prestabilita come 124+-2, appena sotto la soglia di intervento della valvola di sfiato dell'autoclave per poter stare 6-8 ore con un consumo minino di acqua.

 

Share this post


Link to post
Share on other sites
incus

 

16 ore fa, mading ha scritto:

Arduino non è pensato per l'elettronica di potenza

se vuoi realizzare il sistema utilizzando Arduino per imparare ad usarlo puoi farlo...ma se non é cosí ti conviene utilizzare un termoregolatore commerciale...

 

16 ore fa, mading ha scritto:

temperatura prestabilita come 124+-2

se vuoi una precisione di piú o meno 2°C devi optare per forza ad un termoregolatore con uscita PID analogica o digitale, il semplice termostato non fa al caso tuo...

 

16 ore fa, mading ha scritto:

Mi piacerebbe evitare un sistema ON-OFF (anche se PWM) in modo da impegnare meno la rete domestica e da parzializzare la potenza dissipata dalla resistenza

quando accendi il riscaldamento fino a che la temperatura non si avvicina al set point, avrai l'uscita PID (qualsiasi tipo di PID) al 100%, quindi la resistenza lavorerà al massimo della sua potenza anche se utilizzi un sistema di regolazione della potenza con triac...a livello di consumi, PID analogico (con triac) o PID digitale (on\off) non cambia nulla, il contatore interverrebbe solo se superi i 3,5kw per diversi minuti.

Il PID con uscita digitale, quando la temperatura si avvicina al set point accende per brevissimo tempo la resistenza, quindi il contatore non interverrebbe.

E' una cosa che puoi simulare accendendo diversi elettrodomestici fino al raggiungimento del limite massimo della potenza, in questa condizione se accendessi anche il fono per brevi intervalli contatore non scatterebbe...non so se mi sono spiegato!

Non consumi meno energia con un triac, altrimenti tutti installerebbero dei sistemi cosi per consumare meno potenza, non trovi?!

Ricapitolando:

  • con temperatura molto distante dal set point, entrambi i PID (analogico e digitale) avrebbero l'uscita al 100%
  • con temperatura vicina al setpoint il PID analogico accenderebbe la resistenza al "minimo", il PID digitale accenderebbe la resistenza al "massimo" ma per brevissimi periodi di tempo

 

P.S. giusto per precisazione l'algoritmo del PID ha sempre un'uscita "analogica" 0..100%, il PID digitale ha dei calcoli in più, un "generatore di impulsi", che in sostanza trasformano l'uscita del PID 0..100% in transizioni digitali on/off. 

 

Edited by incus

Share this post


Link to post
Share on other sites
incus
1 ora fa, incus ha scritto:

quando accendi il riscaldamento fino a che la temperatura non si avvicina al set point, avrai l'uscita PID (qualsiasi tipo di PID) al 100%, quindi la resistenza lavorerà al massimo della sua potenza anche se utilizzi un sistema di regolazione della potenza con triac...a livello di consumi, PID analogico (con triac) o PID digitale (on\off) non cambia nulla, il contatore interverrebbe solo se superi i 3,5kw per diversi minuti.

 

1 ora fa, incus ha scritto:

Non consumi meno energia con un triac,

 

a meno che non imposti un limite massimo all'uscita del PID, allora sarebbe diverso....

Share this post


Link to post
Share on other sites
mading

Grazie Incus,

farò delle prove con il Willhi 7016D che pilota direttamente il relais da 50A, e con Arduino (che lavora in modalità PWM) che pilota il relais tramite fotoaccoppiatore o transistor (come suggerito da Livio).

Di arduino ne ho diversi in casa, sto aspettando il condizionatore delle sonde K.

Se può essere interessante posto i risultati.

 

Come alternativa "seria" ho visto questi della RS:

https://it.rs-online.com/web/p/controllori-di-temperatura-pid/1885167/

https://it.rs-online.com/web/p/controllori-di-temperatura-pid/1974090/

 

 

Share this post


Link to post
Share on other sites
incus

La condivisione degli esiti delle prove è sempre ben vista.

Se compri un termoregolatore la prova con Arduino puoi evitarla a mio avviso! Io ne o utilizzati diversi di termoregolatori, i più semplici ed efficaci sono gli Omron e gli Eliwell...Ascon e Gefran sono ottimi ma la programmazione è un po' più rognosa.

Ricordati che se proprio devi abbassare la potenza della resistenza puoi alimentarla con una tensione più bassa tramite trasformatore o autotrasformatore(più economico).

 

Giusto per curiosità che trattamento devi fare al legno nell'autoclave?

 

 

 

 

Share this post


Link to post
Share on other sites
incus
1 ora fa, incus ha scritto:

Io ne o utilizzati diversi

 

 io ne ho....🤫

Edited by incus

Share this post


Link to post
Share on other sites
Livio Orsini
4 ore fa, mading ha scritto:

e con Arduino (che lavora in modalità PWM) che pilota il relais tramite fotoaccoppiatore o transistor (come suggerito da Livio).

 

Il PWM di Arduino non va bene per regolare la potenza tramite triac o SSR, che non è altro che un triac con relitivo pilotaggio.

Un triac od uno SSR una volta che lo hai acceso non lo spegni più, si spegne solo quando la corrente di anodo va a zero. Questo fatto è automatico con la corrente alternata perchè ogni 10ms la tensione passa per lozero, quindi su un carico resistivo si annulla anche la corrente ed il triac, o lo SSR, si spegne.

Il PWM di arduino alla freqeunza minima lavora attorno a 600 Hz (cito a memoria) un po più di 1 ms di periodo. Quindi non riuscirai mai a modulare. Tutti quelli che pubblicano fantomatici, sistemi basati su arduino, che modulano in PWM tramite triac, un carico in ca, raccontan balle. Fanno solo un gran guazzabuglio senza capo ne coda.

Anni fa ci fu un tizio che aveva proposta una regolazione simile, qua sul forum; dopo aver ricevuto una serie di commenti, con dimostrazioni al simulatore, della sua errata strategia, si adontò e lasciò il forum.

 

Se vuoi usare il PWM, devi usare un mosfet ed un ponte raddrizzatore.

Alimenti i resistori, tramite un ponte raddrizzatore ed usi il mosfte per chiudere il circuito di ritorno,, quasi fosse un interruttore tradizionale. In questo modo puoi lavorare in PWM ed anche con buoni risultati.

 

Io comunque ti suggerirei, se vuoi provare arduino, di usare uno SSR con tecnica "burst", che ideale per la termoregolazione, ed emette pochissimi disturbi, rispetto alle altre tecniche.

Questo anche grazie al fatto che lo SSR accende sul passaggio per lo zero, anche se il comando lo dai prima, mentre lo spegnimento avviene naturalmente sullo zero, come ho scritto prima.

 

La tecnica burst è semplicissima, in pratica è come fosse un PWM ma con periodo di 1" o anche più. (nel tuo caso penserei a 10").

 

Se la cosa ti interessa ti do maggiori informazioni sulla sua realizzazione tramite arduino.

Share this post


Link to post
Share on other sites
incus
16 ore fa, Livio Orsini ha scritto:

Se la cosa ti interessa ti do maggiori informazioni sulla sua realizzazione tramite arduino

Buongiorno @Livio Orsini, a me interessa!! Qualsiasi linguaggio di programmazione va bene...

Share this post


Link to post
Share on other sites
Livio Orsini

Se hai un poco di pazienza tra oggi pomenriggio e domani ti metto qualche cosa.

Intanto potresti leggere il mio tutorial sulle regolazioni; lo trovi nella sezione "didattica" (il link è anche nella mia firma), sottosezione elettrotecnica.

 

Share this post


Link to post
Share on other sites
mading

Grazie Livio,

aspetto con piacere il tuo contributo sulla tecnica Burst.

 

Devo però fare una precisazione:

 

Credo di aver contribuito a fare confusione su un punto.

Nell'articolo da me citato nel post iniziale: http://www.micheleardito.info/ma/it/arduino-it/controllo-pid-arduino-on-off/

la gestione della potenza in uscita non è come PulseModulationWidth, ma proprio come periodo di accensione (parametrato a 5s).

Nella fretta ho ripreso il termine PWM uscito nei post successivi.

 

Quella proposta da Michele Ardito è la tecnica del "burst" di cui stai parlando?

 

Oggi mi sono arrivate le termocoppie con condizionatori di segnale 🙂

 

Francesco

 

 

 

Share this post


Link to post
Share on other sites
Livio Orsini
1 ora fa, mading ha scritto:

Quella proposta da Michele Ardito è la tecnica del "burst" di cui stai parlando

 

Ho letto molto velocemente l'articolo e la tecnica sembra assomigliare molto alla tecnica "burst".

 

Per come deve funzionare un regolatore PID rimando al mio tutorial che ho scitato prima (il suo niome è "Corso pratico su controlli e regolazioni").

 

Un regolatore di tipo "burst" assomiglia ad un controllo PWM, ma con tempi decisamente più lunghi.

Traduciamo in numeri così da avere un esempio più facile.

Pensiamo ad un sitema monofase con frequenza di rete pari a 50 Hz,ogni 20ms si completa una sinusoide.

Se consideriamo un intervallo di tempo pari a 2", nella nostra finestra, che per comodità consideriamo sia sincrona con la rete, saranno contenuti esattamente 100 sinusoidi complete.

Se noi regoliamo attivando l'interruttore (il relè statico) per multipli di 20 ms daremo la possibilità al sistema di inviara una percentuale variabile delle sininusoidi contenute nella "finestra".

Si andrà da un minimo di 1 sinusoide, sino ad un massimo di 99 sinusoidi se il comando dura 1980 ms.

 

Per il tipo di apparato da regolare un tempo di campionamento di 2" sembra adatto: ne troppo lento, ne inutilemente troppo rapido.

 

Come si realizza un controllo simile con arduino?

 

Per prima cosa si deve progtammare un timer per 20 ms che costituirà la base tempi per tutto il nostro sistema.

Si usa il timer1 che è a 16 bit e non viene usato dal sistema per altri lavori come i cicli di delay.

Allo scadere del timer si attiva un routine di interrupt.

Nella rountine si decontano 2 contatori: uno fisso a 100, al suo scadere si chiamerà la funzione PID.

L'altro, variabile e presettato dalla funzione PID, contiene il tempo per chi è attivo il comando dello SSR. Al suo azzeramento si azzera l'uscita di comando.

 

La Funzione PID appena richiamata, come prima cosa, attiva l'uscita di comando dello SSR.

Poi fa il confronto tra riferimento e misura di temperatura, calcola le componenti P, I ed eventualmente D, e determina il valore del contatore di attivazione del comando.

 

La funzione PID consite in pochissime righe di istruzione.

Se non sai come implementarle te lo spiego alla prossima puntata.

Share this post


Link to post
Share on other sites
mading

Buongiorno a tutti,

ieri mi è arrivato il condizionatore, l'ho collegato ad arduino.

La temperatura misurata oscilla con ampiezza massima 0.75°C, facendo una media pesata (37 letture ogni 2") lo scarto con un termometro come il Benetech GM1312 risulta di 0.3°C.

Ho usato un display 16x2 con I2C, e la cosa che mi ha fatto perdere più tempo è stato trovare le corrette librerie ed il parametro 0x3F specifico per la mia interfaccia I2C.

 

Non ho ancora iniziato a lavorare sullo sketch, ma credo che occorra tener conto della fluttuazione della misura con una media su un periodo paragonabile a quello di burst.

Se l'obiettivo è quello di lavorare su una forcella di 4° (+-2), e parto già con fluttuazioni di misura di +-0.4°, non credo sia saggio tarare l'azione sul sistema su una risposta così ballerina.

(mi leggerò con calma la guida di Livio, promesso!)

 

Buon fine settimana a tutti

 

Francesco

 

 

 

 

 

IMG_20200423_220733.jpg

Share this post


Link to post
Share on other sites
Livio Orsini
3 ore fa, mading ha scritto:

Ho usato un display 16x2 con I2C, e la cosa che mi ha fatto perdere più tempo è stato trovare le corrette librerie ed il parametro 0x3F specifico per la mia interfaccia I2C

 

Usa le librerie "Testato", le trovi sul forum ufficiale di arduino. Per mia esperienza sono le uniche che vanno al primo colpo e non hanno alcun problema. Io le uso anche con visualizzatori 4x20 senza problemi, anche se sul bus I2C ho altri dispositivi.

 

3 ore fa, mading ha scritto:

Se l'obiettivo è quello di lavorare su una forcella di 4° (+-2), e parto già con fluttuazioni di misura di +-0.4°, non credo sia saggio tarare l'azione sul sistema su una risposta così ballerina.

 

Mediare, per mia esperienza, ha poco senso, molto meglio creare una banda morta di +/-0.5° o più.

La banda morta devi comunque metterla, tanto vale sfruttarla.

 

Toglimi una curiosità.

Tu dici:

Il 21/4/2020 alle 18:23 , mading ha scritto:

Il mio obiettivo è stare su una temperatura prestabilita come 124+-2, appena sotto la soglia di intervento della valvola di sfiato dell'autoclave per poter stare 6-8 ore con un consumo minino di acqua.

 

Questo pòiùche un autoclave mi sembra uno scaldabagno o un puffer per riscladamento.

Ad una temperatura così elevata corrisponde anche una pressione di circa 1.4 kgcm2 che non propriamente insignificante.

Potresti farci conoscere lo scopo di un simile tenepratura?

Share this post


Link to post
Share on other sites
mading
1 ora fa, Livio Orsini ha scritto:

Questo pòiùche un autoclave mi sembra uno scaldabagno o un puffer per riscladamento.

Ad una temperatura così elevata corrisponde anche una pressione di circa 1.4 kgcm2 che non propriamente insignificante.

Potresti farci conoscere lo scopo di un simile tenepratura?

 

Modificare colore e proprietà meccaniche del legno. per strumenti musicali.

Share this post


Link to post
Share on other sites
mading
1 ora fa, Livio Orsini ha scritto:

 

Usa le librerie "Testato", le trovi sul forum ufficiale di arduino. Per mia esperienza sono le uniche che vanno al primo colpo e non hanno alcun problema. Io le uso anche con visualizzatori 4x20 senza problemi, anche se sul bus I2C ho altri dispositivi.

 

Queste qui? per conferma: https://github.com/Testato/SoftwareWire/wiki/Arduino-I2C-libraries

Share this post


Link to post
Share on other sites
Livio Orsini
13 ore fa, mading ha scritto:

Queste qui?

redo di si, se il link lo hai preso dal forum di arduino.

13 ore fa, mading ha scritto:

 

Modificare colore e proprietà meccaniche del legno. per strumenti musicali.

 

Interessante!

Che capienza ha il serbatoio che usi?

Share this post


Link to post
Share on other sites
mading

Al momento è da 18l, ma deve essere tagliato e saldato aumentando la capienza di un 30% circa.

Non ho trovato in commercio autoclavi così semplici ed economiche ma di dimensioni adeguate. confido nell'abilità del saldatore (non io).

La pressione è consistente ma in linea con quella di una pentola a pressione.

 

Ecco come si comporta arduino con il mio scaldacolla.

Solo monitoraggio temperatura.

Ho in effetti usato temp1 per avere un'output pulito sul monitor seriale:

immagine.png.ae2ca4d6214f9a107526c73493671299.png

 

Ecco l'andamento della T nel tempo di uno scaldabiberon che uso per scaldare la colla animale: immagine.thumb.png.392c502a43c2648764744df28eb889f6.png

comunque sono più tranquillo dopo aver fatto questa prova: dovrebbe essere possibile fare di meglio di questo controllo ON-OFF, quindi lo scaldabiberon è il primo candidato per mettere a punto algoritmo e hardware per il mio pid.

 

Consigli per allegare lo sketch arduino sul forum?

 

grazie

 

 

Share this post


Link to post
Share on other sites
Livio Orsini
3 ore fa, mading ha scritto:

Consigli per allegare lo sketch arduino sul forum?

 

 

Premi il tasto "code" (<>) e ci incolli il listato copiato dall'IDE.

 

Dal diagramma sembra ci sia una banda di circa 8°C, con un dtemp/dt in discesa di circa 6°C/1", mentre in salita è di circa 1.25°C/1".

E' regolato da un termostato on / off?

Potrebbe costituire un modello in scala del tuo boiler, una pratica palestra di allenamento.

Share this post


Link to post
Share on other sites
mading

Si, è un semplice on-off.

 

Per l'uso di timer1 ho copiato da qui: http://perqualchebitinpiu.altervista.org/sfruttiamo-al-massimo-i-timer-di-arduino-parte-2/

 

unsigned long int global_counter;
#include "max6675.h"
#include <LiquidCrystal_I2C.h> // Libreria LCD I2C

LiquidCrystal_I2C lcd(0x3F,16,2);  // per il mio schermo va bene il codice 0x3F
int ktcSO = 8;
int ktcCS = 9;
int ktcCLK = 10;

MAX6675 ktc(ktcCLK, ktcCS, ktcSO);
  
void setup() {
  lcd.init();
  lcd.backlight();
  lcd.setCursor(1,0);
  
  Serial.begin(9600);
  // give the MAX a little time to settle
  delay(500);

  global_counter = 0;
      // initialize Timer1
      cli();             // disable global interrupts
      TCCR1A = 0;        // set entire TCCR1A register to 0
      TCCR1B = 0;
      // Set CS10 and CS12 bits so timer runs at clock speed /1024:
      TCCR1B |= (1 << CS12)|(1 << CS10);
     
      // enable Timer1 overflow interrupt:
      TIMSK1 = (1 << TOIE1);
      // enable global interrupts:
      sei();
  
}

void loop() {
   Serial.print(global_counter);
   Serial.print(" ");
      Serial.println(ktc.readCelsius());
  lcd.setCursor(0,0);
  lcd.print("Tester Temp.");
  lcd.setCursor(0,1);
   lcd.print("deg C = ");
   lcd.print(ktc.readCelsius());
   
   delay(5000);
   lcd.clear();   
    
}
ISR(TIMER1_OVF_vect)
    {
      global_counter++;
    }

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...