Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Regolazione Portata Con Vfd - PI, frequency converter, alternanza pompe: aspetti implementativi


Messaggi consigliati

Inserito:

Vorrei esporvi un problema di regolazione e la soluzione da me adottata, sperando di ricevere consigli migliorativi e augurandomi allo stesso tempo che questa esposizione possa essere d'aiuto ad altri che possano trovarsi ad affrontare un problema simile.

Ho una stazione di pompaggio costituita da 2 pompe installate in parallelo e pilotate in modo alternativo da un frequency converter (modello Eaton SVX9000), e un sensore ad ultrasuoni per la misura della portata pompata.

Ho realizzato un modulo (su un PLC ABB, serie AC500) che implementa le seguenti funzionalità:

1) controllo in retroazione con Controllore PI (applicato volta per volta ad una singola pompa)

2) alternanza delle 2 pompe su base temporale (per equilibrarne l'usura)

Il Controllore PI comanda il giusto riferimento di frequanza al FC in base al set-point di portata impostato dall'operatore su una HMI.

In questa prima fase di sviluppo vorrei simulare il tutto per determinare se nel mio software ho tenuto conto di tutto.

Per farlo, ho approssimato il Processo (FC+pompa) come un sistema del primo ordine con ritardo (attribuendo i valori di guadagno e di ritardo più o meno a naso..) e stabilito i parametri proporzionale e integrale del Controllore in base alle formule di Ziegler-Nichols a ciclo aperto (tanto "conosco" il processo).

Il programma esegue il task del Processo ogni 10ms, ed il task del Controllore ogni 50 ms (questo in base ad un suggerimento letto su qualche forum).

Ho tenuto in considerazione i limiti di saturazione dell'attuatore, ovvero il FC, per cui il mio Controllore potrà generare un riferimento di frequenza solo nel range 0-50 Hz.

Diciamo che i risultati osservati sono quelli che mi aspettavo ma mi viene un dubbio: a seconda della variazione del setpoint osservo a volte delle variazioni della variabile controllata (frequenza) troppo brusche.

Giungo quindi alle domande che vorrei porvi:

1) devo in qualche modo tener conto della massima variazione di velocità del FC onde evitare conseguenze negative all'hardware (FC o pompa)?

O posso essere libero di comandare il FC anche con un segnale più o meno "sporco" confidando che il FC stesso lo "filtri"?

Non dovrei tenere in considerazione altri fattori? Mi viene in mente la coppia: se la regolazine fosse implementata usando il PID di cui è già dotato il FC probabilmente eventuali problematiche di questo tipo sarebbero già prese in considerazione. Ma nel mio caso?

2) Un altro dubbio è dato dalla frequenza minima di funzionamento delle pompe: so che regimi di frequenza troppo bassi (mi sembra di capire in genere < 30Hz) sono potenzialmente nocivi per le pompe, perchè queste lavorano lontano dalla loro velocità nominale, quindi siamo in presenza di surriscaldamento e maggiore consumo energetico per fornire la giusta coppia. Questo vale se la pompa gira a basse frequenze per un periodo prolungato di tempo.

Ma mi devo preoccupare di questo anche per i transitori? cioè quando il pendolamento della frequenza scende in questa banda di ferquenze (0-30 Hz)?

Stavo quindi pensando se non sia il caso di aggiungere un blocco di saturazione che la limiti appunto tra 30Hz e 50Hz (in altre parole far intervenire la regolazione PID solo dopo il transitorio iniziale in cui la frequenza viene portata sopra i 30 Hz). E' giusto?

3) dal momento che il FC pilota alternativamente le 2 pompe per mezzo di un relè, "disinserendo" l'alimentazione da una pompa per connetterla all'altra, ho gestito l'alternanza resettando il PID quando devo commutare tra una pompe e l'altra e abilitandolo solo dopo che la frequenza è al di sotto di una certa soglia (diciamo 1 Hz) ovvero quando la prima pompa è sostanzialmente ferma. Questo per evitare che le pompe siano sotto tensione quando commuta il relè (con conseguente formazione di archi). Può andare?

4) per la simulazione del processo ho sostanzialmente usato l'equazione di un filtro passa-basso:

y(k+1) = y(k) + (x(k+1)G - y(k))*dt/T ,

dove:

y = uscita processo (portata)

x = ingresso (frequenza dal PID)

G = guadagno del sistema

T = ritardo del sistema

dt = intervallo di campionamento

L'equazione di un filtro passa-basso è sostanzialmente quella di un sistema del primo ordine o sto prendendo un abbaglio?

5) Suggerimenti migliorativi? Altri dettagli di cui tener conto?

Grazie per l'attenzione e la pazienza nel leggere questo lungo post!


Inserita:
Il programma esegue il task del Processo ogni 10ms, ed il task del Controllore ogni 50 ms (questo in base ad un suggerimento letto su qualche forum).

Potresti chiarire meglio cosa intendi par task processo e task controllore? Da come l'ho intesa io non mi sembra corretto, ma potrei aver capito male.

...ho approssimato il Processo (FC+pompa) come un sistema del primo ordine con ritardo...
Questa è un'approssimazione canonica.

..per cui il mio Controllore potrà generare un riferimento di frequenza solo nel range 0-50 Hz.

Perchè hai limitato a 50Hz? il motore e/o la pompa non possono lavorare a frequenza (velocità) superiore?

devo in qualche modo tener conto della massima variazione di velocità del FC onde evitare conseguenze negative all'hardware (FC o pompa)?

Certo, ma questo dovrebbe essere già compreso nel ritardo previsto nel modello.

Un altro dubbio è dato dalla frequenza minima di funzionamento delle pompe:

Non conosco le caratteristiche delle pompe che sono impiegate. Invece mi preoccupano i motori. Se non sono a ventilazione assisitita, un impiego per periodi significativi a velocità inferiore al 20% del valore nominale (40Hz) provoca surriscaldamento del motore.

Questo per evitare che le pompe siano sotto tensione quando commuta il relè (con conseguente formazione di archi). Può andare?

La disinserzione del carico dell'inverter può essere effettuata anche a velocità nominale o maggiore. Considera che normalmente nei controlli di più pompe con unico inverter, si cresece la velocità della pompa sino a raggiungere i 50Hz; se necessita una maggior portata si commuta il motore sulla rete e l'inverter prende in carico una seconda pompa , partendo da velocità zero. In altri termini dopo aver commutato il primo motore ad alimentazione di rete, si blocca l'inverter, si connette ad un motore fermo, si sblocca l'inverter e s'inizia la regolazione.

O posso essere libero di comandare il FC anche con un segnale più o meno "sporco"..

Dovresti chiarire meglio cosa intendi per sporco.

Inoltre a volte parli di PI ed altre di PID; questo è importante, per valutare meglio il sistema è necessario conoscere esattamente se c'è un controllo di derivata e se si tratta della derivata sull'errore.

..quando commuta il relè..

Si tratta di un esercizio teorico od è un'applicazione reale. nel secondo caso non credo si tratti di relè ma di un contattore di adeguata potenza.

Inserita:

Innanzitutto la ringrazio per l'aiuto e la precisione nelle sue risposte.

Dunque:

Potresti chiarire meglio cosa intendi par task processo e task controllore? Da come l'ho intesa io non mi sembra corretto, ma potrei aver capito male.

Dal momento che non posso fare alcuna prova con un PLC fisico e soprattutto con il sistema in campo, eseguo il mio programma in simulazione. Per correttezza dovrei avere un programma esterno che simula il processo da controllare, ma con Codesys (che uso per lo sviluppo), in modalità simulazione, non riesco a comunicare con alcunchè (in realtà non sono nemmeno sicuro che si possa fare). Da qui questa "forzatura": il modulo che simula il processo l'ho inserito nel programma stesso dove c'è il controllore. Seguendo poi un suggerimento che ho letto altrove i 2 moduli, processo e controllore, non li faccio eseguire a ciclo di programma bensì secondo gli intervalli di tempo che ho scritto sopra. In codesys l'ho fatto definendo, appunto, dei "task".

Sto ancora valutando la necessità di questa cosa, perchè in realtà la simulazione funziona anche se i due moduli vengono eseguiti a ciclo di programma (ovvero come routines richiamate ciclicamente come tutte le altre).

Questa è un'approssimazione canonica.

Il dubbio per me era se il sistema qui controllato possa essere approssimato con uno del primo ordine oppure con uno di ordine superiore (dubbio del tutto accademico, non credo che cambi nulla in questo caso).

Inoltre non sono sicuro che l'espressione che ho indicato per il calcolo della risposta del processo simulato sia corretta, ovvero se è proprio quella di un sistema del primo ordine.

Perchè hai limitato a 50Hz? il motore e/o la pompa non possono lavorare a frequenza (velocità) superiore?

Dai dati di targa della pompa in oggetto risulta una Nominal speed (rpm)=990 e Frequncy=50Hz (nominale??, massima??); 990rpm dovrebbero corrispondere a 33Hz, quindi sono portato a credere che la freq. di 50Hz indicata sia quella massima. Al momento il FC è usato in sola modalità manuale e parametrizzato (dal gestore dell'impianto) in modo tale che la massima frequenza di uscita impostabile dall'operatore sia di 50Hz, che confermerebbe la mia ipotesi. Poi nel caso fossero ammesse frequenze superiori mi basta ampliare il range di uscita del Controllore vero?

Certo, ma questo dovrebbe essere già compreso nel ritardo previsto nel modello.

Vale a dire che una uscita del controllore particolarmente ripida non costituisce un problema? Nella risposta che vi mostro di seguito si vede un andamento della portata canonico, tuttavia l'andamento della frequenza evidenzia ampie e rapide oscillazioni iniziali: mi chiedo se il FC possa eventualmente "sopportare" un ingresso di questo tipo.

risposta.png

(segue..)

Inserita:

Non conosco le caratteristiche delle pompe che sono impiegate. Invece mi preoccupano i motori. Se non sono a ventilazione assisitita, un impiego per periodi significativi a velocità inferiore al 20% del valore nominale (40Hz) provoca surriscaldamento del motore.

Ho impropriamente parlato di pompa mentre mi riferivo al motore. I motori non sono a ventilazione assistita. Temporanee transizioni su basse frequenze, come quelle riportate nella risposta quà su, possono creare problemi?

La disinserzione del carico dell'inverter può essere effettuata anche a velocità nominale o maggiore. Considera che normalmente nei controlli di più pompe con unico inverter, si cresece la velocità della pompa sino a raggiungere i 50Hz; se necessita una maggior portata si commuta il motore sulla rete e l'inverter prende in carico una seconda pompa , partendo da velocità zero. In altri termini dopo aver commutato il primo motore ad alimentazione di rete, si blocca l'inverter, si connette ad un motore fermo, si sblocca l'inverter e s'inizia la regolazione.

Questa è proprio l'applicazione che vorrei fare in seguito, e sono incuriosito dal fatto che si possa operare la disinserzione con un carico sull'inverter. Immagino quindi occorrano dei contattori adeguati.

Dovresti chiarire meglio cosa intendi per sporco.

Inoltre a volte parli di PI ed altre di PID; questo è importante, per valutare meglio il sistema è necessario conoscere esattamente se c'è un controllo di derivata e se si tratta della derivata sull'errore.

Per sporco intendo caratterizzato da oscilazione aventi ampiezza a frequenza troppo elevate, come quelle in figura.

Il controllore che uso sul PLC è di tipo PI (ovvero un normale PID ove tengo la costante derivativa a 0), in quanto la letteratura sconsiglia la componente derivativa per regolare una portata. Mi conferma sia giusto?

Ho parlato invece di PID per indicate il controllore PID a bordo del FC, senza voler scendere nel dettaglio di quale componente sarebbe stata usata in questo caso (verosibilmente sempre P e I).

Si tratta di un esercizio teorico od è un'applicazione reale. nel secondo caso non credo si tratti di relè ma di un contattore di adeguata potenza.

Altra mia imprecisione: intendevo contattore.

Questo è per il momento solo un esercizio teorico, che sto facendo principalmente per mettere per la prima volta in pratica le nozioni universitarie, ma il sistema è reale benchè al momento privo di alcuna gestione automatica di regolazione o alternanza (anzi è eccessivamente ridondato, con un FC per ogni pompa, e funzionano sempre in modalità manuale e a frequenza fissa).

Dunque scrivo questo codice sia per esercizio personale sia per eventuali future ottimizzazioni del sistema reale, o di un ipotetico sistema simile.

Inserita:
ma con Codesys

Non conosco Codesys. Con Simulink si stabilisce il periodo di campionamento, che poi sarà quelo reale.

Per un sistema siffatto, per esperienza personale, quantizzare a 10 ms è anche troppo veloce. Impostando un campionamento a 50 ms si ottengono ancora buoni risultati.

Se dai un rifrimento a gradino all'inverter, l'azionamento (inverter + motore) seguirà il refirmento con la sua costante di tempo. Se all'ingresso dell'inverter c'è un formatore di rampa, che è essenzialmente un integratore, il gradino di riferimento sarà trasformato in una rampa. Anche se il riferimento entra ditrettamente nel regolatore di velocità, il sistema si comporta come un passa basso quindi, normalmente si approssima il tutto con un ritardo.

Empiricamente puoi verificare il ritardo. Dai uno step pari al 10% della velocità massima e osservi in quanto tempo iol motore raggiunge il 90% valore richiesto, questo può essere considerato il ritardo.

Nominal speed (rpm)=990 e Frequncy=50Hz

Questi dati non mi tornano. Se sitratta della pompa non capisco cosa centri la frequenza. Se si fa riferimento ad una motopompa è la velocità che non torna con la frequenza. Dovresti studiare il foglio tecnico della pompa per verificare e capire meglio i parametri.

Normalemente, sempre per mie esperienze, si lavora tra 5 Hz e 50 Hz, raggiunti i 50 Hz si commuta il motore sotto rete. Questa è una normale prassi anche con gli avviatori statici detti "soft starter".

Se le motopompe sono del tipo sommerso non ci sono problemi di raffreddamento a bassa velocità, semplicemente perchè il raffreddamento non è ad aria ma.....ad acqua.

in quanto la letteratura sconsiglia la componente derivativa per regolare una portata. Mi conferma sia giusto?

Si e no.

Si perchè ti togli da eventuali difficoltà di messa punto. No perchè in alcuni casi è richiesta una prontezza che si raggiunge solo con un anticipo sulla reazione (derivata sulla reazione).

Inserita: (modificato)

Neanche a me torna la frequenza. Per un motore a 4 poli come questo (motore di una pompa centrifuga orizzontale) la frequenza nominale dovrebbe essere 33Hz (per 990rpm).

Il datasheet è piuttosto carente di informazioni. L'unico altro dato forse utile è che le curve caratteristiche sono tracciate fino a una velocità di 1224rpm, che dovrebbero corrispondere a 40Hz.

Empiricamente puoi verificare il ritardo. Dai uno step pari al 10% della velocità massima e osservi in quanto tempo iol motore raggiunge il 90% valore richiesto, questo può essere considerato il ritardo.

Vediamo se ho capito: se effettuo bene il tuning del controllare allora questi dovrebbe tener conto delle costanti di tempo dell'azionamento e io mi dovrò aspettare un andamento della frequenza più smorzato rispetto a quello mostrato nell'immagine, ovvero il controllore comanderà la variazione di velocità del motore compatibilmente con la reattività di quest'ultimo. Esatto?

Mi viene però un'altra domanda più generica, che non fa riferimento al sistema in questione, ma ad un generico motore azionato da frequency converter: ammettiamo che la dinamica dell'azionamento sia particolarmente lenta; ammettiamo che il controllore sia regolato bene. Diciamo dunque che la risposta presenti un transitorio molto lungo, durante il quale la frequenza viene incrementata molto lentamente, facendo lavorare il motore a frequenze troppo basse per diversi minuti, prima che l'uscita del sistema si assesti attorno al valore del setpoint (in corrispondenza del quale ipotizziamo che la frequenza del motore sia prossima a quella nominale). La domanda è: un sistema di ventilazione assistita può essere sufficiente per gestire il surriscaldamento del motore durante il transitorio, oppure sarebbe il caso di adottare una architettura di controllo più complessa, ad esempio nella quale il transitorio iniziale viene affidato ad un controllo solo proporzionale e solo in seguito attivare un controllo PI (o PID) ?

In altre parole, come dovrei comportarmi se, in presenza di un processo caratterizzato da dinamiche lente, il prezzo da pagare per evitare oscillazioni grandi (o permanenti) sia di avere un transitorio iniziale troppo lungo, che potrebbe surriscaldare il motore?

Modificato: da Fabio_79
Inserita:

Per la prima domanda. Semplificando dieri di si; si può approssimare a quello ch hai scritto.

Per la seconda domanda.

Se la ventilazione assistita è adeguata il motore può lavorare a tempo indefinito anche a frequenze < 1 Hz. In pratica la ventilazione assistita deve garantire il medesimo flusso di aria che si avrebbe con l'autoventilazione a frequenza di 50 Hz.

Per la terza domanda.

Non ne comprendo il senso.

Qualsiasi sitema risponde secondo la sua dinamica. L'ottimizzazione dei parametri del regolatore serve proprio per ottenere il miglior compromesso tra velocità di risposta e sovra(sotto) elongazione. Si considera il sistema ottimizzato qaundo lo xi si attesta nell'intorno di 0.707. Per xi maggiori si diminuisce l'ampiezza delle oscillazioni smorzate sino ad annullarle con valori di xi prossimi all'unità; si paga con una progressiva minor prontezza del regolatore. Per xi minori si va verso l'instabilità. Ma queste son cose che presumo tu conosca bene visto che sei fresco di studi.

L'azioneamento deve essere ottimizzato per ottenere il massimo delle prestazioni compatibili con l'applicazione. Ad azioanmento ottimizzato si procede all'ottimizzazione del regolatore sovrapposto.

Se l'azionamento non è ottimizzato e si trova a lavorare, ad esempio, con xi >= 1 l'effetto per il tuo regolatore è un aumento del ritardo comparato con quello che avresti ad azionamento ottimizzato con xi= 0.707.

PS :)

Correntemente i regolatori per motori in alternata sono identificati come inverter o invertitori, perchè la conversione di frequenza la si ottiene partendo da una corrente continua (DC bus). Il termine "convertiore di freqeunza" è usato quando la corrente alternata passa direttamente da una frequenza ad un'altra; operazione simile a quella dei convertitori rotanti. Una tipica applicazione sono i cicloconverter o i convertitori per trazione.

Inserita:

Rispondo velocemente a due punti :

- Velocità massime e mimime : non è assolutamente il motore che interessa (a parte le considerazioni di Livio per la servo ventilazione) ma tanto più quanto la pompa stessa (chiamiamola girante per intenderci) queta avrà una curva da cui dovrai poi determinare la massima velocità, in funzione poi dello stesso impianto. Fai conto che alcune pompe portate fuori curva portano il motore ad assorbire il 200% della In. Di contro alle basse velocità, potrebbero cavitare e rompersi per surriscaldamento, ma dipende dal tipo di pompa, dalle portare, insomma dal processo e non dal motore.

- Simulazione : ottima cosa, ma molto accademica, in quanto sempre senza una chiara analisi del processo la regolazione rimane completamente teorica. La presenza di condizioni indipendenti dalla semplice regolazione (posizionamento trasduttore, tempi di risposta, perdite di carico del condotto, eventuali scompensi sull'andamento della portata), fanno si che un approccio empirico sia più che soddisfacente per una regolazione PI. Per una regolazione di questo tipo, un ciclo di 300 ms è sufficiente al PLC (i termoregolatori impostabili lavorano tutti su questo tempo), considerando poi di introdurre un tempo di filtro sull'ingresso almeno di 1 sec. Considera poi delle rampe di regolazione di accelerazione e decellerazione almeno sui 30 sec, e puoi gia capire che le latenze sono molto ampie.

Se poi i valori di impianto sono molto ampi, tutto sarà sempre più lento (in quanto introduciamo poi delle inerzie del sistema, date per esempio dalle masse rotanti e dal volume del fluido).

Se siamo con piccoli valori possiamo ridurre ma non penso di molto (forse le acc e dec se la pompa ha piccole portate).

Come ultimo consiglierei il mantenimento di una regolazione PI.

Ciao

Inserita:

Concordo in tutto e per tutto con ETR. La simulazione è ottima per farsi un'idea di amssima di come potrà regire un certo tipo di regolazione, poi è il campo che detta legge, specialmente con questo tipo di impianti. Basarsi solo sui risultati di simulazione spesso è fare i conti senza l'oste. :)

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...