Vai al contenuto
PLC Forum


Ottimizzazione PID


Project75

Messaggi consigliati

Oltre ad osservare la reale velocità della pompa, che dici essere stabile, hai controllato anche l'uscita del PID?


Per smorzare il segnale da visualizzare, oltre alla media aritmetica di un certo numero di valori (da campionare ad intervalli di tempo regolari) come già suggerito, potresti anche provare con questa semplice formuletta:
Out = Out + (In - Out) / K (da fare rigorosamente con variabili REAL)

Il campionamento deve sempre essere fatto ad intervalli regolari, per esempio, ogni 100 ms (puoi mettere il calcolo in un OB a tempo).
Più è alto il valore di K, più il segnale viene smorzato. Ovviamente non puoi esagerare con lo smorzamento, perché con lo smorzamento aumenta anche il ritardo.

 

Per quanto riguarda l'istruzione FIFO, in TIA non esiste già preconfezionata, ma è semplicissima da fare, specialmente se scrivi il codice in SCL.
Se fai una ricerca nel forum, sono sicuro che trovi esempi. Ricordo di averne fatto almeno uno anch'io.

Link al commento
Condividi su altri siti


  • Risposte 73
  • Created
  • Ultima risposta

Top Posters In This Topic

  • Project75

    31

  • Livio Orsini

    16

  • incus

    13

  • batta

    11

Top Posters In This Topic

Posted Images

Adelino Rossi

se il segnale del flussimetro varia allora bisogna chiedersi il perchè. Il segnale può essere instabile per vari motivi legati al dimensionamento dello strumento, al tipico di montaggio, al tipo di fluido, alla sua taratura. senza dettagliate spiegazioni del punto misura dire che il segnale è instabile non da nessuna indicazione pratica. 

 

 

Link al commento
Condividi su altri siti

Anche io ignoro il motivo per cui tu, @Project75, debba filtrare l'ingresso analogico.

Comunque sia, se non hai dimistichezza con l'scl puoi farlo anche in kop...in pratica: col fronte di salita di un clock1hz muovi nel seguente ordine

Valore9 nel valore10

Valore8 nel valore9

Valore7 nel valore8

Cosi fino a 

Valore1 nel valore2

NuovoValore nel valore1

 

Cosi, campionando ogni secondo,hai dieci variabili con le ultime dieci letture

 

Poi non devi fare altro che sommare tutti e 10 i valori e dividerli per dieci

 

Questo è il concetto di base, numero di campionamenti e frequenza di campionamento sta a te deciderli

 

Se vuoi il sorgente scl posso inviartelo lunedi

Link al commento
Condividi su altri siti

14 ore fa, Project75 scrisse:

No il pid funziona perché se vario il set Point lui si regola, il problema è che l'ingresso che va al pid e proprio quello del flussimetro ed è proprio quello che oscilla, solo che il pid lo regola e quindi in uscita mantiene costante la velocità, sul pannello questo valore, che ripeto, sarebbe quello di ingresso del pid, lo vorrei stabile come quello di uscita del pid

 

Non ti rendi conto che non stai lavorando correttamente?

La variabile che devi stabilizzare è proprio quella che hai in ingresso, non in quella in uscita ovvero la velocità della pompa.

Se il regolatore lavorasse correttamente vedresti la reazione, ovvero l'uscita del flussimetro stabile o, al massimo, piccole variazioni nell'intorno del valore impostato; l'uscita ovvero la velocità dovrebbe variare per poter mantenere stabile la portata.

 

Truccare la lettura per far vedere il valore stabile potrà pagare l'occhio ma non serve a controllare il processo. A meno che sia tutto una finta e non serva mantenere stabile il flusso. In questo caso ti basta dare un riferimento di velocità stabile e fare una reazione di velocità a livello di inverter.

 

Te lo ripeto, prima di "smanettare" studia almeno le basi della regolazione.

Link al commento
Condividi su altri siti

Infatti la velocità varia per stabilizzare la portata, fino a quando si regolarizzazione e rimane stabile, invece il flussimetro fisicamente sul suo display mi da una lettura che oscilla, di conseguenza anche sul pannello vedo queste oscillazioni. 

 

 

Link al commento
Condividi su altri siti

11 ore fa, Project75 scrisse:

Scusa incustodito ma non ho capito sto valore 10 nel valore 9 e così via. Forse un array?

Puoi farlo con un array, con un puntatore, con delle variabili normali, è indifferente, il concetto è salvare dentro aree di memoria il volore delle ultime N letture , poi sommarle e dividerle per il numero delle letture

Creati un array di 5 dati del tipo utile al tuo scopo, penso reali qui di fai cosi:

------[fronte di salita 1 hz]----------[move array4 dentro array5]

                                                |-----[move array3 dentro array4]

                                                |-----[move array2 dentro array3]

                                                |-----[move array1 dentro array2]

                                                |-----[move valore flussimetro dentro array1]

 

poi sommi gli array di cui sopra e, in questo caso, li dividi per 5

Link al commento
Condividi su altri siti

Quote

Ciao Batta avevo gia provato a cercare sul forum ma non son riuscito, mi potresti indicare tu qualcosa?

Mi sa che hai cercato poco e male. Mi è bastato inserire la parola FIFO nella ricerca del forum, ed ho trovato questa discussione.

 

Se sei interessato alla libreria LGF di cui si parla nella discussione (e che contiene molte altre funzioni utili, non solo il FIFO), la trovi qui.

 

Comunque, concordo con quanto ti stanno già dicendo altri utenti: dovresti risolvere il problema a monte, eliminando l'instabilità del segnale.
Ma, tanto per chiarire, potresti quantificare questa instabilità? di quanto varia il segnale?

 

Link al commento
Condividi su altri siti

2 ore fa, incus scrisse:

Puoi farlo con un array, con un puntatore, con delle variabili normali, è indifferente, il concetto è salvare dentro aree di memoria il volore delle ultime N letture , poi sommarle e dividerle per il numero delle letture

Creati un array di 5 dati del tipo utile al tuo scopo, penso reali qui di fai cosi:

------[fronte di salita 1 hz]----------[move array4 dentro array5]

                                                |-----[move array3 dentro array4]

                                                |-----[move array2 dentro array3]

                                                |-----[move array1 dentro array2]

                                                |-----[move valore flussimetro dentro array1]

 

poi sommi gli array di cui sopra e, in questo caso, li dividi per 5

Scusa incus non potresti farmi un grafico, per capire meglio le connessioni dei move, dal momento che non sono davanti al pc e non posso provare? Grazie mille 

Link al commento
Condividi su altri siti

3 ore fa, Project75 scrisse:

Infatti la velocità varia per stabilizzare la portata, fino a quando si regolarizzazione e rimane stabile, invece il flussimetro fisicamente sul suo display mi da una lettura che oscilla, di conseguenza anche sul pannello vedo queste oscillazioni. 

 

Cerchiamo di capirci.

Che segnale hai di retroazione?

Hai il segnale del flussimetro?

Se si questo deve essere stabile se la regolazione funziona correttamente.

Se il segnale di retroazione non è stabile non serve truccarlo per farlo apparire stabile.

Link al commento
Condividi su altri siti

13 minuti fa, Livio Orsini scrisse:

 

Cerchiamo di capirci.

Che segnale hai di retroazione?

Hai il segnale del flussimetro?

Se si questo deve essere stabile se la regolazione funziona correttamente.

Se il segnale di retroazione non è stabile non serve truccarlo per farlo apparire stabile.

Il flussimetro misura la portata, imposto il set point e il pid, con il valore che mi da il flussimetro, mi regola la velocita della pompa così da mantenere la portata di set point. Il valore che mi legge la portata, quello che visualizzo sul pannello operatore è lo stesso valore dell'ingresso del pid ovvero il valore che mi da il flussimetro, quindi se la velocità della pompa e costante, credo che sia il flussimetro che mi da un valore ballerino nonostante lo abbia filtrato sullo strumento sasso. 

Link al commento
Condividi su altri siti

Sembra che tu voglia proseguire come un treno senza macchinista, anche a rischio di trovarti su un binario morto.
Ascolta i consigli che ti stanno dando. Cerca di capire perché il segnale è instabile. Facci sapere l'entità di questa instabilità.

Facci sapere come hai tarato il PID.
Poi, se vuoi sempre mettere in pratica un filtro del segnale con un registro FIFO, scaricati la libreria che ti ho suggerito.
Anzi, questo è un consiglio che mi sento di dare a tutti. La libreria, gratuita e non protetta, è ricca di funzioni. Inoltre, essendo non protetta, tutte queste funzioni possono essere modificate a piacere per adattarle a necessità personali, o semplicemente studiate per imparare qualcosa.

Poi, sempre sulla strada del filtro, prova anche la soluzione che ti ho proposto qualche post indietro. Con un calcolo banale potresti risolvere il tuo problema.

Link al commento
Condividi su altri siti

43 minuti fa, batta scrisse:

Sembra che tu voglia proseguire come un treno senza macchinista, anche a rischio di trovarti su un binario morto.
Ascolta i consigli che ti stanno dando. Cerca di capire perché il segnale è instabile. Facci sapere l'entità di questa instabilità.

Facci sapere come hai tarato il PID.
Poi, se vuoi sempre mettere in pratica un filtro del segnale con un registro FIFO, scaricati la libreria che ti ho suggerito.
Anzi, questo è un consiglio che mi sento di dare a tutti. La libreria, gratuita e non protetta, è ricca di funzioni. Inoltre, essendo non protetta, tutte queste funzioni possono essere modificate a piacere per adattarle a necessità personali, o semplicemente studiate per imparare qualcosa.

Poi, sempre sulla strada del filtro, prova anche la soluzione che ti ho proposto qualche post indietro. Con un calcolo banale potresti risolvere il tuo problema.

Secondo me è un problema del flussimetro perché mi da valori sballati tipo: se imposto 13000 l/h di mosto al set point mi variava di 500 l/h o 800 l/h litri sopra o sotto il set point,poi ho filtratto il valore di uscita dello stromento e mi varia di circa 50 l/h o 100 l/h sopra o sotto del set point

Link al commento
Condividi su altri siti

Adelino Rossi

visto che eviti tutte le domande di tipo tecnico, si suppone che sia una simulazione didattica.

13000 che? litri di acqua o di petrolio?

 

 

Link al commento
Condividi su altri siti

15 minuti fa, Adelino Rossi scrisse:

visto che eviti tutte le domande di tipo tecnico, si suppone che sia una simulazione didattica.

13000 che? litri di acqua o di petrolio?

 

 

Ho modificato il messaggio di prima comunque sono l/h di mosto 

Link al commento
Condividi su altri siti

Adelino Rossi

A questo punto dovresti dire esattamente il modello del flussimetro, sopratutto se di tipo magnetico o altro e il tipo esatto di pompa di trasferimento, centrifuga, a pistoni, peristaltica e il diametro della tubazione. 

 

Link al commento
Condividi su altri siti

Variazioni di 500-800 l/h su 13000 potrebbero anche essere reali. Difficile avere un flusso perfettamente stabile. Si deve considerare tutto il circuito idraulico, sia in aspirazione, sia in mandata alla pompa. Non dici con che frequenza varia il segnale.
Poi, se ora la variazione è di 100 l/h su 13000, direi che difficilmente potrai ottenere un valore più stabile.

Link al commento
Condividi su altri siti

22 minuti fa, batta scrisse:

Variazioni di 500-800 l/h su 13000 potrebbero anche essere reali. Difficile avere un flusso perfettamente stabile. Si deve considerare tutto il circuito idraulico, sia in aspirazione, sia in mandata alla pompa. Non dici con che frequenza varia il segnale.
Poi, se ora la variazione è di 100 l/h su 13000, direi che difficilmente potrai ottenere un valore più stabile.

Un'altra cosa che volevo far presente è che queste oscillazioni si verificano anche se metto il pid in manuale e do un valore di frequenza fissa, ecco perché credo sia un problema dello strumento, quindi dal momento che la regolazione pid va bene in quanto fa fronte a queste oscillazioni e riesce a regolare bene la velocità della pompa, vorrei regolare un po' la lettura giusto per avere meno oscillazioni possibili, ovviamente non voglio filtrare l'ingresso del pid dal momento che lui se la cava da solo.

Link al commento
Condividi su altri siti

1 ora fa, Project75 scrisse:

Un'altra cosa che volevo far presente è che queste oscillazioni si verificano anche se metto il pid in manuale e do un valore di frequenza fissa, ecco perché credo sia un problema dello strumento, quindi dal momento che la regolazione pid va bene in quanto fa fronte a queste oscillazioni e riesce a regolare bene la velocità della pompa, vorrei regolare un po' la lettura giusto per avere meno oscillazioni possibili, ovviamente non voglio filtrare l'ingresso del pid dal momento che lui se la cava da solo.

 

Fisicamente quanto varia il segnale in ingresso al PID?

E' di tipo analogico o di altro tipo? 

Sono variazioni del 6% secondo me, in teoria, si può far di meglio però molto dipende dal tipo di pompa e dal tipo di misuratore.

A quanto hai messo il tempo di campionamento del PID?

Se è un segnale analogico come acquisisci questo segnale, ovvero chi comanda l'acquisizione del segnale?

 

Son tutte domande che servono a capire come sta lavorando il regolatore.

 

Poi il problema è tuo, quindi puoi anche decidere che per te si risolve truccando la visualizzazione.

Link al commento
Condividi su altri siti

Ma, scusa, se non ho capito male, hai una lettura che varia da 12900 a 13100 l/h, e vuoi renderla più stabile?

 

Quote

Un'altra cosa che volevo far presente è che queste oscillazioni si verificano anche se metto il pid in manuale e do un valore di frequenza fissa

È possibile che le variazioni di flusso rilevate siano reali. Dipende dal tipo di pompa (centrifuga? mono? a lobi? peristaltica?) e da tutto il circuito idraulico.
Oppure potrebbe essere un problema di errata installazione del misuratore di flusso. Per esempio, se è posizionato troppo vicino ad una curva, il flusso all'interno del misuratore è turbolento e questo, ovviamente, non va bene per una buona misurazione.

Continui a fornire informazioni col contagocce. Ma stiamo parlando di segreti di stato?

Link al commento
Condividi su altri siti

12 minuti fa, batta scrisse:

Ma, scusa, se non ho capito male, hai una lettura che varia da 12900 a 13100 l/h, e vuoi renderla più stabile?

 

È possibile che le variazioni di flusso rilevate siano reali. Dipende dal tipo di pompa (centrifuga? mono? a lobi? peristaltica?) e da tutto il circuito idraulico.
Oppure potrebbe essere un problema di errata installazione del misuratore di flusso. Per esempio, se è posizionato troppo vicino ad una curva, il flusso all'interno del misuratore è turbolento e questo, ovviamente, non va bene per una buona misurazione.

Continui a fornire informazioni col contagocce. Ma stiamo parlando di segreti di stato?

La pompa è centrifuga,il flussimetro è  endress Hauser ed è installato a circa 50 cm dall'uscita della pompa, dopo il flussimetro a circa 2 m c'è una Curva a 90°, la tubazione se non ricordo male è da 80

Link al commento
Condividi su altri siti

A memoria non ti so dire se 50 cm dalla pompa vanno bene o no. Le distanze da rispettare sono specificate nelle istruzioni di montaggio.

Da verificare che il misuratore rimanga sempre pieno, e che la velocità del prodotto all'interno del misuratore sia entro i limiti specificati.
Endress Hauser sono misuratori di qualità, sia magnetici che massici. Poi bisogna vedere se sono adatti al tipo di prodotto, ma questa è una domanda che devi rivolgere al fornitore o all'assistenza. Credo che col mosto non dovrebbero esserci problemi.

Però, ripeto: una misura che varia da 12900 a 13100 non me la puoi definire instabile.
 

Link al commento
Condividi su altri siti

30 minuti fa, batta scrisse:

A memoria non ti so dire se 50 cm dalla pompa vanno bene o no. Le distanze da rispettare sono specificate nelle istruzioni di montaggio.

Da verificare che il misuratore rimanga sempre pieno, e che la velocità del prodotto all'interno del misuratore sia entro i limiti specificati.
Endress Hauser sono misuratori di qualità, sia magnetici che massici. Poi bisogna vedere se sono adatti al tipo di prodotto, ma questa è una domanda che devi rivolgere al fornitore o all'assistenza. Credo che col mosto non dovrebbero esserci problemi.

Però, ripeto: una misura che varia da 12900 a 13100 non me la puoi definire instabile.
 

Diciamo che per il cliente non ci sono problemi anche se varia di 500 o 600 l/h, era solo per sapere se è possibile migliorare. Dal momento che per il vapore che è regolato da una valvola modullante in funzione di una pt 100, imposto una temperatura di 70 gradi appena si stabilisce mi da una lettura stabile di 70 gradi, pensavo si potessero ottenere dei risultati analoghi anche se parliamo di due grandezze completamente diverse. Ritornando al flussimetro a questo punto potrebbe andare bene la mia idea di filtrare il segnale, non quello di ingresso al pid, ma bensì quello reale che viene dal flussimetro ed io utilizzo per visualizzare la portata effettiva del mosto, sul pannello operatore?

Link al commento
Condividi su altri siti

18 ore fa, Project75 scrisse:

500 l/h o 800 l/h litri sopra o sotto il set point

 

Se l'oscillazione è questa si può far di meglio, se invece è +/- 100 l/h su 13000 l/h di valore impostato allora siamo sotto l 1% ed è un buon risultato. C'è da considerare il "rumore" di misura del trasduttore, ovviamente se la sua installazione è corretta.

Ovviamente riferito al valore reale in uscita dal trasduttore.

11 ore fa, Project75 scrisse:

imposto una temperatura di 70 gradi appena si stabilisce mi da una lettura stabile di 70 gradi,

 

Controllare una temperatura è un processo differente; l'inerzia stessa del sistema fa da volano ed assorbe le piccole oscillazioni dovute al regolatore.

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