Vai al contenuto
PLC Forum


Regolazione compressore inverter circuito frigo


Wilo

Messaggi consigliati

Buonasera a tutti e complimenti per l'ottimo livello del forum,

Chiedo consiglio agli esperti per la realizzazione della logica di un regolatore ( con uscita 0-10V ) da accoppiare ad un inverter che comanderà il compressore di un gruppo frigo. Premetto che l'inverter ha già a bordo la logica di gestione dell'inviluppo del compressore e quindi la logica da implementare è solo in funzione della temperatura del fluido vettore ( acqua ) in ingresso al condensatore, ovvero il set-point del sistema.

 

Fino ad ora ho realizzato sistemi multicompressore che all'interno di una banda proporzionale ( 4°K tipicamente ) venivano caricati o scaricati seguendo una logica a gradini. La cosa più semplice sembrerebbe pensare ad un sistema con gradini "infiniti" e quindi in definitiva un controllo totalmente proporzionale. Non riesco a però a valutare se possa essere importante valutare una logica PI, usufruendo della parte integrale per migliorare il sistema e ad esempio accelerare il raggiungimento del setpoint . A questo punto il problema sarebbe determinare i corretti valori Kp e Ki da utilizzare nell'algoritmo poiché avrei difficoltà a organizzare in fase iniziale tarature ad anello aperto o chiuso.

 

Grazie per i vostri consigli

 

 

 

 

Link al commento
Condividi su altri siti


SandroCalligaro

"la logica da implementare è solo in funzione della temperatura del fluido vettore ( acqua ) in ingresso al condensatore, ovvero il set-point del sistema."

 

Sono ignorante su questo tipo di sistemi (e su tante altre cose!), potresti spiegare meglio com'è fatto il sistema? Meglio ancora con qualche schema di principio...

Link al commento
Condividi su altri siti

Quote

Non riesco a però a valutare se possa essere importante valutare una logica PI, usufruendo della parte integrale per migliorare il sistema e ad esempio accelerare il raggiungimento del setpoint .

 

la parte integrale serve solo ad annullare l'errore che altrimenti non si annullerebbe mai.

Una velocizzazione del regolatore la si può ottenere con una azione diretta (feed forward) adeguatamente dimensionata.

 

La descrizione che dai del tuo sistema non è chiara. se riesci a descrivere meglio come è composto e cosa intendi regolare, forse ti potremmo dare qaulche consiglio.

Link al commento
Condividi su altri siti

Questo  lo schema di principio

58a5bb69548e2_Schema01.png.2917459bf9123669c8fb03bcde803d1f.png

La regolazione legge la sonda PT1000 e in funzione dell'errore rispetto al setpoint, imposta la velocità di rotazione del compressore attraverso l'inverter. In questo caso mi sembra di capire che il setpoint non viene mai raggiunto con la sola parte P e l'integrale serve proprio ad ovviare a questo inconveniente. Ma come trovare Kp e Ki corretti ?

 

 

Link al commento
Condividi su altri siti

SandroCalligaro

Avendo un po' di dati e sapendo qualcosa di fisica tecnica magari si potrebbero azzardare dei calcoli, purtroppo io non ho nessuno dei due requisiti.:)

 

In assenza di altro, una prova che si fa solitamente per identificare il comportamento di un sistema in modo non troppo "pericoloso" è quella di applicare un controllo ad isteresi (come il più semplice dei termostati), con una banda di "tolleranza" abbastanza ampia. Dall'andamento di questa prova si può dedurre qualcosa (ovviamente occorrerebbe un modello, ma volendo si può dedurre anche quello).

Ovviamente il requisito qui è essere certi di conoscere qual è il segno della variazione che si ha sulla variabile controllata a fronte di una variazione positiva dell'ingresso di controllo (cioè bisogna sapere con certezza se aumentando la velocità del compressore la temperatura da controllare aumenta o diminuisce).

 

Posto che la prova in controllo ON-OFF sull'inverter (va bene anche 0%-50%) si possa fare, hai la possibilità di registrare l'andamento della temperatura?

C'è solo quella misura o ne sono disponibili anche altre?

 

Mi pare inoltre di capire che le portate dei fluidi nel condensatore ed evaporatore non siano costanti.

Questo potrebbe cambiare molto la dinamica del sistema. Conoscendole si potrebbe fare qualcosa in termini sia di adattamento dei guadagni che di feed-forward, immagino.

 

Purtroppo parlo in modo un po' troppo "teorico" (o vago!) perché non conosco l'applicazione, ma cerco di immaginare come funziona.

Link al commento
Condividi su altri siti

Quote

ma come trovare Kp e Ki corretti ?

 

nella mia firma c'èillink alla sezione didattica, nella sottosezione elettrotcnica trovi il mio tutorial sulle regolazioni.

Leggilo, gia nel primo capitolo ti spiega come funziona un regolatore PI(D) e come si ottimizzano i parametri Ki, Kd e Kp.

Il tutorial è scritto in modo pratico riducendo al mnimo indispensabile le formule.

Link al commento
Condividi su altri siti

Ho letto il tutorial di Livio , molto esaustivo grazie. Se non interpreto male, la logica PI segue, per semplificare,  due principi:

  1. quanto sono distante (parte P)
  2. quanto sono veloce ( parte I ).

Per la prima parte nulla da dire. Per la seconda però il problema che intuisco è quello in parte evidenziato anche da Sandro: il carico sul condensatore non sarà mai costante e di conseguenza l'apporto della parte I dovrebbe essere influenzato da questo. Potrei forse determinare i guadagni per carico minimo, carico medio e carico massimo e poi confrontarli per trovare un buon compromesso, ma non so se può essere una buona idea, non ho esperienza.

 

Per rispondere agli altri quesiti di Sandro. Non ho la possibilità di fare delle prove per misurare quanto tempo impiega il sistema per transitare nella zona di isteresi, che comunque esiste ed è definitiva tra valore al di quale decido di lavorare al 100% e quello in cui decido di arrestare il compressore. Oppure fare prove a diverse velocità e analizzarne il comportamento. Ma anche se avessi questa possibilità, dovrei confrontarmi con il problema del variare del carico. 

 

Ha catturato la mia attenzione quanto indicato da Livio alla pagina 3, ovvero la logica fuzzy per il controllo della temperatura. Sto cercando di approfondire, ma da una prima analisi mi sembra sia più in grado di interpretare il sistema nel suo complesso e di conseguenza più adeguata alle mie esigenze.

 

 

Link al commento
Condividi su altri siti

SandroCalligaro

Credo che, prima di addentrarti in metodi più esotici, ti convenga avere familiarità con i regolatori classici.

 

Se non hai la possibilità di fare delle prove registrando almeno l'andamento della temperatura, mi pare difficile poter tarare bene il regolatore...

Che dinamiche dovrebbe avere la regolazione? Tempi di salita dell'ordine di secondi, minuti, ore...?

Link al commento
Condividi su altri siti

 

Quote

 

la logica PI segue, per semplificare,  due principi:

  1. quanto sono distante (parte P)
  2. quanto sono veloce ( parte I ).

 

 

Diciamo meglio, anche se semplifico:

  1. La componente P da una correzione proporzionale all'errore istantaneo. In teoria con un guadagno proporzionale infinito l'errore sarebbe nullo.
  2. La componente integrale è una sommatoria delle correzioni istantanee. Nella pratica l'errore istantaneo moltiplicato per un coefficiente viene sommato continuamente sino a quando l'errore è uguale a zero.

 

Quote

Sto cercando di approfondire, ma da una prima analisi mi sembra sia più in grado di interpretare il sistema nel suo complesso e di conseguenza più adeguata alle mie esigenze.

 

Detto magsri un po' bruscamente: prima di pensare a regolatori fuzzy sarebbe il caso di conoscere a fondo le tecniche di controllo e regolazione. Quando si padroneggiano i sistemi tradizionali, che sono anche più facili da capire, si può pensare di fare regolatori fuzzy.

A meno di acquistare un controllo basato su regolatori fuzzy autoottimizzanti. Lo si applica a scatola chiusa senz doverci metter mano.

 

Quote

Per la prima parte nulla da dire. Per la seconda però il problema che intuisco è quello in parte evidenziato anche da Sandro: il carico sul condensatore non sarà mai costante e di conseguenza l'apporto della parte I dovrebbe essere influenzato da questo

 

Nel mio tutorial spiego anche il modo pratico di tarare un regolatore PI(D).

Se non nsi è più che esperti nella taratura di regolatori di quel sistema non ci sono scorciatoie: si deve applicare quella metodologia che richiede pazienza ed applicazione.

Link al commento
Condividi su altri siti

Avete ragione, approfondendo la logica fuzzy ho capito che sarebbe come sparare ad una mosca con un cannone ...

 

Nondimeno ( e  scusatemi se prendo questa discussione anche in senso didattico ) sono convinto che si possa mettere a punto qualcosa di più "cucito addosso" della regolazione PID.

 

Il sistema è stato progettato per un carico antagonista pari al 50% della potenza massima erogabile, e per mantenere la temperatura all'interno dell'isteresi di 4°K a cavallo dei 42°C. Teoricamente la curva della potenza dovrebbe seguire l'andamento della linea azzurra.

 

58a88f3326caf_Regulation01.png.e5675b128312a5d7345ec0b4fa1f79dc.png

 

Nella realtà il carico antagonista non potrà mai essere uguale a quello utilizzato nel dimensionamento. Di conseguenza per mantenere i 42°C il sistema dovrà, istante per istante, erogare una potenza diversa dal 50%. La variazione di carico è consistente, l'escursione, escludendo i transitori, varia circa dal 15% al 100% .

 

Per questo motivo temo che i guadagni possano creare anomalie quando il carico migra verso gli estremi, innescando tutte i tipici problemi conosciuti di un sistema PI non ben calibrato.

 

Ho provato a immaginare un sistema diverso, controllato direttamente dal codice.

 

  1. Il sistema parte con erogazione 100% poiché la temperatura sarà quella ambiente.

  2. Il sistema arriva alla soglia del 40°C a automaticamente imposta l'erogazione della potenza al 50% poiché è il dato corrispondente al carico teorico. Il sistema impiega circa 30" per portarsi a regime.

  3. Il sistema legge a questo punto la nuova temperatura e riproporziona l'errore rispetto alla potenza effettivamente erogata il quel momento, impostando il nuovo valore.

 

Es.

 

Lettura

Temperatura °C

Errore °C

Errore% (e1)

Velocità iniziale % (v1)

Nuova Velocità % (v2)

1

41

-1

-25

50

75

2

42,2

0,2

5

75

70

3

41,8

-0,2

-5

70

75

4

41,5

-0,5

-12,5

75

87,5

5

41

-1

-25

87,5

112,5

 

In pratica v2=v1-e1

 

In questo modo credo che, oltre a controllare l'errore rispetto al setpoint, possa gestire in maniera mirata i guadagni rispetto al carico. 

 

Link al commento
Condividi su altri siti

Quote

sono convinto che si possa mettere a punto qualcosa di più "cucito addosso" della regolazione PID.

 

Certamente. Il regolatore PID è il regolatore più semplice ed universale, facile da implementare e da ottimizzare, ma con certi limiti.

 

Un regolatore fuzzy, se ben fatto, è l'ideale per i controlli di temperatura generalizzati.

 

Modellizzando l'impianto e facendo un ottimo osservatore puoi realizzare un regolatore ottimizzato per quel processo.

Se te la senti, puoi sempre farti un simile regolatore dove la componente di reazione è ridotta al minimo e lavora quasi esclusivamente la parte di regolazione diretta.

Quanto guadagni in precisione e velocità di risposta rispetto ad un semplice PI(D)? Questo lo si può valutare solo avendo sott'occhio direttamente tutto il sistema completo.

 

Quote

In pratica v2=v1-e1

 

Se così fosse basterebbe un controllo proporzionale, cosa che non è ammissibile.

Link al commento
Condividi su altri siti

SandroCalligaro

Vedo almeno due cose fuorvianti:

  • Il calcolo dell'errore ha il segno invertito rispetto alla convenzione adottata normalmente (e per "normalmente" intendo nel quasi 100% dei casi)
  • Sei sicuro che si tratti proprio di un regolatore diverso da un PI(D) (a parte la strategia iniziale, di cui si potrebbe discutere)?
    v2 = v1-e1
    se interpreto bene la tabella significa
    v(k) = v(k-1) + (Tempref-Tempfdb) / DeltaTemp
    dove DeltaTemp è la banda di isteresi (4 K), k è l'istante di campionamento attuale, Tempref e Tempfdb sono rispettivamente riferimento (42 °C) e misura, mentre la velocità è in percentuale.
    Quell'espressione è una realizzazione discreta di un regolatore integrale puro, con guadagno pari a 1/(DeltaTemp · Tsampling) , dove Tsampling è il periodo di campionamento.

 

Non sono molto convinto che quel regolatore possa garantire di rimanere nella banda desiderata, per lo meno non lo si può dire in base ai dati che abbiamo.

Di certo è utile tenere in considerazione il fatto che il sistema è fatto per mantenere (a regime) una certa temperatura con una certa potenza (quindi immagino una certa velocità), ma non si può prescindere dalla dinamica, ossia (principalmente) dalle inerzie termiche del sistema (a dire il vero dalle costanti di tempo).

 

Se fosse possibile approssimare il sistema con una dinamica primo ordine, individuare l'inerzia termica non dovrebbe essere difficile, specie per dinamiche dell'ordine dei secondi.

A dire il vero, già il fatto di indicare che la temperatura copre un salto di 20 K in circa 30" con velocità 100% è un'indicazione approssimativa dell'inerzia del sistema.

Continuo a battere su questo tasto perché non ho capito per quale ragione tu possa fare delle prove con guadagni impostati quasi a caso (all'inizio), ma nello stesso tempo non ammetta la possibilità di fare una o due prove con regolazione ad isteresi, che come dicevo potrebbe permetterti, anche solo valutando il tempo di salita iniziale, di calcolarti un valore accettabile per il guadagno proporzionale (nell'ipotesi che il sistema si possa approssimare bene al primo ordine).

Un valore buono per il guadagno integrale probabilmente lo si può dedurre dalle curve a regime che hai postato sopra, bisognerebbe ragionarci su un momento.

 

Sarebbe importante implementare un anti-windup (che permetta di non accumulare una parte integrale eccessiva all'avvio) e si potrebbe magari aggiungere un feed-forward basato sulla curva nominale. Nel caso di un integratore puro sarebbe banalmente una saturazione del valore, nel caso di un PI è leggermente più complicato.

 

Se vorrai procedere come hai ipotizzato nell'ultimo post, comunque, ti suggerisco di applicare il feed-forward all'avvio (100%) come un valore iniziale dell'integratore, che  naturalmente dovrà essere (come dicevo sopra) opportunamente saturato, piuttosto che implementare logiche e algoritmi strani.

Link al commento
Condividi su altri siti

Vi ringrazio per la pazienza, probabilmente non mi spiego bene io. Il sistema in fondo è del tutto simile ad una caldaia con modulazione del bruciatore. Per avere un'idea della grandezza, la potenza massima erogabile è di 40kW. Deve mantenere regolata la temperatura dell'acqua nell'isteresi di 4°K a cavallo dei 42°C, misurata sul ritorno dall'impianto, il cui carico antagonista è variabile da quasi zero fino a l 100%.

 

Prove non ne posso fare perché il sistema è una macchina che deve essere consegnata già funzionante, al netto di parametri software che posso naturalmente modificare. Se con queste poche informazioni fosse possibile "trovare" i guadagni P e I a tavolino ho raggiunto il mio scopo. So per certo che altri l'hanno fatto, ma non so come ne posso saperlo.

 

- Non ho indicazioni dell'inerzia del sistema, il fluido vettore (acqua) ha un volume non predeterminabile, ma potrebbero essere necessarie ore per portare la temp. da +20°C a +42°C. 

- La modulazione del generatore di calore (compressore) è fatta tramite la velocità di rotazione, la variazione deve essere mantenuta entro i +/- 2 rps, per cui 60 sec. per passare da 0  a 100 diciamo, l'escursione della modulazione è tra 20% e 100%

- La temp. è letta sul ritorno dell'impianto e quindi l'inerzia è totale. Tuttavia potrebbe essere richiesta la lettura in uscita dal generatore, per garantire il cosiddetto "punto fisso"

 

Link al commento
Condividi su altri siti

Quote

Se con queste poche informazioni fosse possibile "trovare" i guadagni P e I a tavolino ho raggiunto il mio scopo

 

No, con queste sole informazioni non è possibile.

Quote

So per certo che altri l'hanno fatto, ma non so come ne posso saperlo.

 

Avranno avuto a disposizione più dati, magari derivati da una storia di impianti precedenti.

Daltro canto, conoscendoo i dati necessari per poter determinare i coefficienti di guadagno proporzionale e tempdo di integrale a tavolino, si potrebbe non usare un regolatore di tipo PI(D), ma implementare un osservatore con regolazione diretta e pochissima correzione di reazione.

 

Da quanto scrivi è un problema simile, molto simile, alla regolazione di temperatura ambiente di una casa tramite termosifoni.

 

Probabilmente è suffiiciente un regolotare semplicissimo, con una sogliadi non linearità.

Parti con il compressore che lavora al 100% della velocità sino ad un certo valore di temperatura, per esempio 30°C, poi riduci la velocità in modo òproporzionale sino alla temperatura di 40°C dove fermi.

 

Poi sull'analisi della derivata della temperatura in discesa riaumenti la velocità del compressore; basndoti sull'inversione di derivata riduci la velocità.

 

In pratica hai 3 zone di lavoro differente, con regolazioni differenti.

Link al commento
Condividi su altri siti

E se facessi fare al software dell misurazioni in fase iniziale e poi far determinare a lui i coefficienti ? In fondo se non sbaglio la prove che dovrei fare io sono proprio queste o sbaglio ?

Link al commento
Condividi su altri siti

Ciao Wilo, sinceramente non ho capito dove ti serva implementare (fisicamente intendo) la logica di regolazione. Premettendo che non sono mai stato un grande fan degli auto tuning, sia regolatori di discreta fascia che blocchi funzionali software di regolazione di processo, dispongono di funzioni di auto calcolo.

 

Quello che Livio e Sandro hanno cercato di spiegarti è che senza un modello ben definito, sarà difficile determinare a priori terne di parametri efficienti. 

 

La soluzione di Sandro, magari spartana, è però semplice ed efficiente dato che si adatta in sistemi non troppo dinamici. Se il tuo sistema però presenta aree disomogenee e ha un andamento non ripetitivo e determinabile, allora vi sono svariati modi e tecniche per poter regolare il processo.

 

Quanto descrivi sembra più l'esigenza di creare una "centralina" di controllo ad hoc con una elettronica custom.

 

Ciao Ennio

Link al commento
Condividi su altri siti

Ciao Ennio,

 

Quote

Quanto descrivi sembra più l'esigenza di creare una "centralina" di controllo ad hoc con una elettronica custom.

 

Certo che è così ! La centralina esiste già ed è parte di un sistema molto più complesso della parte che io ho estrapolato.

 

Esistono in commercio centraline che fanno già queste regolazione ( ad esempio mi viene in mente Carel ) . So che usano una logica PI con guadagni modificabili. Però normalmente, così come escono dalla fabbrica, per il 90% delle applicazioni vanno già bene, almeno per questa parte di cui discutiamo. Volevo solo cercare di capire se potevo diventare padrone della logica di regolazione PI e poi adattarla alle mie esigenze, poiché i succitati controlli, essendo fatti per un uso distribuito e generale, non possono essere più di tanto adattati a logiche specifiche ( a meno di riscrivere il firmware ).

 

Il punto per me poco chiaro in definitiva è questo. Come fanno loro a inserire dei guadagni "all-purpose" e farli andare bene per il 90% dei casi ? Certo che avranno fatto i test, ma le applicazioni reali su cui vanno poi sono infinite ( e potenzialmente tutte diverse ) e quindi per forza ci devono essere di criteri standard su cui basarsi.

 

Io sono di estrazione informatica e come tutti noi tendo a percorrere i sentieri conosciuti. Forse per questo faccio un po' fatica a capire l'essenza di questa arte. 

 

 

 

Link al commento
Condividi su altri siti

Quote

Come fanno loro a inserire dei guadagni "all-purpose" e farli andare bene per il 90% dei casi ?

 

Perchè se l'ottimizzazione del controllo è blanda funziona discretamente con una larga banda di sistemi dello stesso tipo.

Più ottimizzi le prestazioni del regolatore e più restringi la banda delle applicazioni.

Poi pesa molto lo storico delle esperienze su quel determinato tipo di impianto.

 

Quote

Io sono di estrazione informatica e come tutti noi tendo a percorrere i sentieri conosciuti. Forse per questo faccio un po' fatica a capire l'essenza di questa arte. 

 

La cibernetica, ovvero lo studio dei controlli automatici, è una scienza che presuppone conoscenze varie e diversificate di fisica e di matematica, oltre ad avere un buona esperienza nel campo specifico.

Il progredire della potenza delle tecnologie numeriche a volte permette di mascherare molte lacune di base, però le lacune, se ci sono, rimangono.

Link al commento
Condividi su altri siti

SandroCalligaro
Quote
Quote

Come fanno loro a inserire dei guadagni "all-purpose" e farli andare bene per il 90% dei casi ?

 

Perchè se l'ottimizzazione del controllo è blanda funziona discretamente con una larga banda di sistemi dello stesso tipo.

Oltre a questo, per casi specifici come questo, credo che giochi a favore il fatto che i criteri di dimensionamento sono, probabilmente, abbastanza uniformi.

 

Per spiegarmi meglio, riprendo le informazioni che hai postato:

- il setpoint è 42°

- con carico tipico (50%) la velocità per mantenere il setpoint deve essere il 50%

 

Considerando anche che, probabilmente, le inerzie termiche del sistema (credo che non sia propriamente un sistema del primo ordine) crescono con la potenza, è molto probabile che i guadagni che funzionano in un caso funzionino anche in casi diversi.

 

Considerazioni "statistiche" e "spannometriche" di questo tipo sono necessarie in molti casi per poter fare delle assunzioni.

Non so se la gente faccia sempre questi ragionamenti, magari solamente vede che il "trend" è di un certo tipo, e si sente abbastanza sicura di poter fare, appunto, delle assunzioni.

 

 

Leggermente off-topic...

Quote

Non sono mai stato un grande fan degli auto tuning, sia regolatori di discreta fascia che blocchi funzionali software di regolazione di processo, dispongono di funzioni di auto calcolo.

Se l'auto-tuning è fatto per un sistema qualunque, è probabile che non funzioni su qualche plant.

Se però il modello che si ipotizza approssima abbastanza bene quello del plant vero, allora può essere anche relativamente facile identificare i parametri del modello e tarare il controllo di conseguenza.

Se le cose sono fatte "bene", funzionano, come in tutti gli altri campi.

 

La cosa che un algorirmo certamente non può decidere da solo è quale sia il compromesso "giusto" tra velocità di risposta al riferimento, reiezione del disturbo e "ripple" dovuto a rumore di misura o altre non-idealità.

Sarebbe come pretendere di sviluppare l'auto con guida autonoma che sappia da sola dove vorremo andare. :)

 

Link al commento
Condividi su altri siti

Livio Orsini
Quote

Sarebbe come pretendere di sviluppare l'auto con guida autonoma che sappia da sola dove vorremo andare

:thumb_yello:

Link al commento
Condividi su altri siti

  • 1 month later...

Buongiorno a tutti. Il sistema di regolazione così come ipotizzato da me è stato collaudato e funziona egregiamente. Abbiamo preferito aggiungere un algoritmo di controllo  dell'inerzia per raffinare ulteriormente il calcolo dell'erogazione di potenza. Il sistema si adatta velocemente alla variazioni di carico sia importanti che repentine. Sono molto soddisfatto. Grazie a tutti peri preziosi consigli.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...