Vai al contenuto
PLC Forum


S7-1500 Pid in cascata


aleb2

Messaggi consigliati

L ' applicazione è quella di portare un prodotto all interno di un serbatoio ad una certa temperatura, riscaldando l acqua che circola all interno della camicia modulando l apertura di una valvola ( 4/20mA)

Variabili:

setpoint prodotto, temperatura prodotto, temperatura acqua camicia;

L intenzione è quella di usare 2 pid ( Pi) in cascata pi_temp1 ( master) con 

setpoint =setpoint prodotto (0-100)

Feedback=temperatura prodotto

  e pid_ temp2 ( slave) con

Setpoint= uscita_pi_temp1(0-100)
Feedback=temperatura camicia

 

Impostato così però non mi sembra possa funzionare correttamente, quali sono le impostazioni giuste?

 

 

 

 

 

Link al commento
Condividi su altri siti


Per il close loop interno puoi usare un P che dovrebbe bastare, per quello esterno un PI, e poi per quello interno un timing di almeno 10 volte più veloce.

Ciao

 

Link al commento
Condividi su altri siti

Ciao.

io di applicazioni del genere ne ho già fatte parecchie, ma non ho mai controllato la temperatura della camicia.

Ti basta un pid sulla temperatura prodotto e poi regoli la valvola modulante con quello.

Se vuoi puoi aggiungere un altro pid per limitare la massima temperatura dell'acqua circolante nella camicia come si fa nelle UTA.

Ricordati di valutare bene anche quando è grande il serbatoio, l'agitazione del serbatoio e dove è posizionata la sonda, perchè rischi di scaldare tanto intorno, ma in centro rimane fredda e la sonda rischia di leggere valori non corretti

Link al commento
Condividi su altri siti

Faccio un esempio:

Condizioni iniziali

Setpoint_prodotto=50°C

Temp_prodotto=20°C

Temp_camicia=20°C

Il processo parte e 

Pi_temp1.out=100

 

La valvola modulante apre e l acqua della camicia si riscalda ed arriva al max valore ( ho un taglio ad una certa TMax) in quanto il riscaldamento del prodotto è molto più lento e il primo Pid ha sempre un valore di uscita alto. In pratica non ho controllo sulla temp di camicia ( a parte il valore max), rischiando poi di superare anche il setpoint prodotto.

Link al commento
Condividi su altri siti

2 ore fa, 84paolo ha scritto:

Ti basta un pid sulla temperatura prodotto e poi regoli la valvola modulante con quello.

Io preferisco la soluzione con i due PID, che ti evita di dover mettere in atto altri controlli sulla temperatura della camicia.
È il sistema quasi universalmente usato anche nel caso di scambiatori vapore/liquido/liquido.
In questi scambiatori, solitamente il Delta T tra i due liquidi non va oltre i 5 °C. Con un solo PID, si rischierebbe di portare la temperatura del liquido nel primo stadio a valori troppo elevati (o troppo bassi), e questo causerebbe una grande variazione anche nel secondo stadio. Con i due PID in cascata, non si corre questo rischio.
Qui non si tratta di uno scambiatore, ma il concetto è lo stesso: il primo PID deve compensare il Delta T tra temperatura camicia e temperatura prodotto, e serve per calcolare il set point per il secondo PID.

 

15 ore fa, drn5 ha scritto:

Per il close loop interno puoi usare un P che dovrebbe bastare

Io direi PI per entrambi.

 

15 ore fa, drn5 ha scritto:

e poi per quello interno un timing di almeno 10 volte più veloce.

Dipende dal sistema. Potrebbe anche essere il contrario.

Link al commento
Condividi su altri siti

1 ora fa, batta ha scritto:

Potrebbe anche essere il contrario.

 

E la teoria della regolazione ortodossa: gli anelli interni devono essere sempre più veloci degli anelli esterni; facendo l'inverso il sistema diventa instabile.

Empiricamente si stabilisce che l'anello interno è di un ordine più veloce di quello esterno; è un criteriomolto conservativo. Nella pratica affinando bene le ottimnizzazioni si può anche usare unj rapporto minore; il rapporto i a 5 è in genere un buon compromesso.

Link al commento
Condividi su altri siti

Quindi le impostazioni fatte sono corrette? 

 

Non ho capito bene cosa si intende per anello interno ed esterno e a cosa si riferisce la loro velocità ( forse il valore del parametro Gain proporzionale?)

 

Grazie

Link al commento
Condividi su altri siti

qui per esempio lo chiarisce..

l'interno più veloce nel senso che se dentro il PI lo fai girare a 10msec, il close loop esterno lo fai girare a 100msec (o a 50msec come suggerisce Livio).

Ciao

Link al commento
Condividi su altri siti

Grazie dnr5, ora a mi è più chiaro;

Non mi è chiaro il discorso della velocità dato che  avevo letto che i 2 blocchi PID , master e slave , debbano essere richiamati nello stesso OB ( es.100ms) 

 

Link al commento
Condividi su altri siti

Puoi richiamarli nello stesso OB a tempo, per esempio il OB35 impostato a 100msec, ma ogni 5(Livio) o 10 richiami di un PI ne fai uno anche dell'altro...

 

Link al commento
Condividi su altri siti

9 ore fa, aleb2 ha scritto:

Non mi è chiaro il discorso della velocità dato che  avevo letto che i 2 blocchi PID , master e slave , debbano essere richiamati nello stesso OB ( es.100ms) 

 

Prima di tutto non sono master - slave, ma il regolatore esterno ha come uscita il riferimento per il regolatore interno.

Da quello che scrivi deduco che non conosci i fondamentali delle regolazioni. Prova a leggere il mio tutorial sulle regolazioni, forse ti aiuterà a capire meglio la problematica legati ai regolatori ad anello chiuso con azione PID. Lo trovi nella sezione Didattica (il link è nella mi afirma) nella sottosezione elettrotecnica.

Link al commento
Condividi su altri siti

2 ore fa, drn5 ha scritto:

Puoi richiamarli nello stesso OB a tempo, per esempio il OB35 impostato a 100msec, ma ogni 5(Livio) o 10 richiami di un PI ne fai uno anche dell'altro...

 

Chiaro grazie

Link al commento
Condividi su altri siti

@Livio Orsini Avrei una domanda che calza abbastanza bene qua, visto che siamo in tema di PID in cascata.
Tutti i drive in cui mi sono imbattuto, rispettano a grandi linee la regola generale del campionamento dei PID in cascata.
Per esempio con un anello di posizione a 1ms, hanno anello di velocità a 200us e anello di corrente a 50us, o rapporti simili. Tuttavia mi sono imbattuto in prodotti come gli ACOPOS P3 di B&R che li hanno tutti e 3 gli anelli a 50us (https://www.br-automation.com/it-it/prodotti/controllo-di-movimento/acopos-p3/).
A quale vantaggio potrebbe portare e come fanno a risolvere l'instabilità secondo te? Me lo chiedo da tempo.
 

Link al commento
Condividi su altri siti

Intanto bisonga vedere se sono realmente tutti e 3 a 50µs. Non è detto che anche se hanno il medesimo clock i 3 anelli lavorino senza demoltiplicazioni.

Mi è capitato di dover fare qualche cosa di simile per ragioni che non sto a spiegare.

Avevo 2 anelli in cascata campionavo entrambi a 5 ms, ma in effetti quello esterno lavorava a 20 perchè la completa elaborazione era suddivisa in 4 clock.

 

Il problema  di avere gli anelli in cascata sincroni è che..... non possono essere sincroni.

Partendo dall'anello esterno.

Campioni la reazione la confronti con il riferimento, elabori e generi il riferimento per l'anello successivo.

Questo potrà fare il confronto solo con il valore di riferimento generato dall'elaborazione precedente. Così per il terzo anello eventuale.

 

Oltre a questo ritardo fisso, che di per se non è un problema, bisogna valutare anche i tempi di reazione del processo controllato.

Nel caso di un azionamento sono abbastanza facili da prevedere, ma in altri casi, come ad esempio il caso in oggetto, la questione è un poco più complessa.

 

Comunque, per conto mio è sempre meglio avere gli anelli distanti come tempi di esecuzione.

Link al commento
Condividi su altri siti

15 ore fa, drn5 ha scritto:

l'interno più veloce nel senso che se dentro il PI lo fai girare a 10msec, il close loop esterno lo fai girare a 100msec (o a 50msec come suggerisce Livio).

Come velocità mi riferivo alla velocità di reazione del PID, non al tempo di campionamento.

Link al commento
Condividi su altri siti

 Innanzi tutto grazie per la risposta esauriente.
 

13 minuti fa, Livio Orsini ha scritto:

Intanto bisonga vedere se sono realmente tutti e 3 a 50µs.

Il drive permette di essere impostato a 400/200/100, 100/100/100 e 50/50/50.
Ho avuto diverse discussioni con il mio socio (Ex interno B&R) nei lunghi viaggi in auto su questo argomento, in quanto cozzava con la teoria dei controlli per quello che conoscevo.
Purtroppo non avendo sotto mano un firmware per vedere come hanno realizzato gli anelli è difficile capirlo.
Non ho mai messo in discussione le prestazioni mostruose di questi drive (basta l'evidenza dei fatti), ma mi sono sempre chiesto il motivo di ciò.

Link al commento
Condividi su altri siti

4 ore fa, batta ha scritto:

Come velocità mi riferivo alla velocità di reazione del PID,

 

Cosa intendicome velocitàdi reazione? Il tempo che il regolatore impiega a risolvere l'algoritmo ed a mettere in uscita il valore? Se così può anche capitare che il regolatore esterno sia più veloce di quello interno.

Link al commento
Condividi su altri siti

4 ore fa, Marco Mondin ha scritto:

Il drive permette di essere impostato a 400/200/100, 100/100/100 e 50/50/50.

 

Già 50 µs per l'anellodi coppia/corrente èuna prestazione di tutto rispetto, ma il medesimo periodo per l'anello di posizione mi sembra addirittura esagerato.

Anche ipotizzando una velocità di 6000 rpm (100 rps) significa 10 ms per rotazione significherebe controllare la posizione ogni 1°.8 di rotazione.

Link al commento
Condividi su altri siti

22 minuti fa, Livio Orsini ha scritto:

Cosa intendicome velocitàdi reazione? Il tempo che il regolatore impiega a risolvere l'algoritmo ed a mettere in uscita il valore?

No, intendo quanto è rapida la variazione dell'uscita, a seconda di come sono impostati i parametri proporzionale e integrale. Soprattutto integrale.
Il PID interno  potrebbe richiedere un tempo integrale superiore al PID esterno.
Poi, come campionamento, data la lentezza del processo in questione, anche campionare i due PID contemporaneamente non crea problemi.

Link al commento
Condividi su altri siti

17 minuti fa, batta ha scritto:

Poi, come campionamento, data la lentezza del processo in questione, anche campionare i due PID contemporaneamente non crea problemi.

 

Spesso sono proprio i processi lenti a creare problemi.

 

Io mi son sempre attenuto alal regola canonica e non ho mai avuto problemi di ottimizzazione.

 

19 minuti fa, batta ha scritto:

Il PID interno  potrebbe richiedere un tempo integrale superiore al PID esterno.

 

A maggior ragione il perido di quello esterno deve essere maggiore di quello interno.

Link al commento
Condividi su altri siti

1 ora fa, Livio Orsini ha scritto:

Spesso sono proprio i processi lenti a creare problemi.

Nella pratica, per regolazioni di temperatura tipo quello della discussione, ci si trova a campionare con tempi tra i 100 e i 1000 ms, con tempo integrale che, minimo, è di qualche decina di secondi.
In queste condizioni che i due PID vengano campionati rispettando le regole canoniche, o che vengano campionati con lo stesso tempo, non cambia nulla.

Link al commento
Condividi su altri siti

13 ore fa, batta ha scritto:

In queste condizioni che i due PID vengano campionati rispettando le regole canoniche, o che vengano campionati con lo stesso tempo, non cambia nulla.

 

Se si fa una regolazione grossolana anche se non è si perfetta riesce, bene o male, ad avere un risultato decente, ciò non toglie che si possa far di meglio, che si possa ottenere una regolazione più precisa.

 

Ho visto anche cose fatte molto male che, sommando alcuni errori, apparentemente funzionavano decentemente.

 

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