Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

scopo e funzionamento dell'anti-windup

PLC, servomotori, inverter...robot

Moderatori: Foto Utentedimaios, Foto Utentecarlomariamanenti

0
voti

[1] scopo e funzionamento dell'anti-windup

Messaggioda Foto Utentestardust79 » 1 mar 2021, 8:39

Ciao a tutti. In questi due esempi viene spiegato che lo scopo dell'anti wind-up è quello di evitare che il termine integrale diventi eccessivo ed "esploda".

https://youtu.be/NVLXCwc8HzM?t=200

https://www.youtube.com/watch?v=UMit8mVCJ_I

ho ancora comunque due o tre dubbi:
- nelle due spiegazioni viene detto che l'anti-windup è efficace per evitare la saturazione data dal fatto che l'attuatore satura (il plant demand maggiore di cio che puo dare attuatore). Ad esempio nel primo caso l'anello chiede 2000 rpm al motore del drone, ma il motore arriva al max a 1000 rpm.
Coloro che hanno fatto il video dicono che la strategia antiwindup è per eliminare la parte di area messa tra 1000 e 2000 (saturazione dell'attuatore). Ma nel caso invece che il massimo plant demand coincida con il massimo dell'attuatore (plant demand massimo 1000 e attuatore motore max 1000) , l'antiwindup ha comunque uno scopo ?
- ipotizzando il caso come sopra (1000 max di plant demand e 1000 max di attuatore giri motore), ipotizziamo di accendere il drone e di impedirgli per 10 minuti o un tempo abb lungo di raggiungere i 50 metri; il motore salira di giri e arrivera a 1000 giri a causa del termine integrale, ma il termine integrale continua ad accumulare e integrarsi nel tempo e una volta rilasciato il drone, tale termine integrale dovrà "scaricarsi". anche qui l'antiwindup interviene ? si o no ?
- quando il termine integrale viene "unclamped" cosa succede ? viene semplicemente freezzato oppure viene resettato a zero ?
grazie ciao
Avatar utente
Foto Utentestardust79
75 1 2 7
Frequentatore
Frequentatore
 
Messaggi: 283
Iscritto il: 24 dic 2013, 18:13

1
voti

[2] Re: scopo e funzionamento dell'anti-windup

Messaggioda Foto UtenteEcoTan » 1 mar 2021, 9:48

stardust79 ha scritto:- quando il termine integrale viene "unclamped" cosa succede ? viene semplicemente freezzato oppure viene resettato a zero ?

Premesso che non so nulla di droni, direi che sia azzardato resettarlo a zero, perché quel termine serviva anche a compensare il peso del velivolo.
Avatar utente
Foto UtenteEcoTan
6.193 4 10 13
Expert EY
Expert EY
 
Messaggi: 4117
Iscritto il: 29 gen 2014, 8:54

1
voti

[3] Re: scopo e funzionamento dell'anti-windup

Messaggioda Foto Utentegill90 » 1 mar 2021, 11:47

Non sono sufficientemente esperto per poter generalizzare a ogni caso (nel senso che magari ci sono applicazioni particolari che ignoro), ma in generale per quanto ne so l'anti wind-up è un fattore correttivo che serve ad adattare la dinamica alla maggior parte delle applicazioni reali, che in quanto tali prevedono delle non linearità o saturazioni.

Siamo tutti d'accordo che per un regolatore ben tarato la performance ideale è quella che prevede la naturale evoluzione del sistema regolato, tuttavia in alcuni casi (come quello della saturazione dell'attuatore) bisogna accettare il compromesso che qualche grandezza avrà un valore minimo e massimo pertanto il sistema diventerà non lineare. A questo bisognerà affiancare strategie come l'anti wind-up per forzare il sistema a considerare questa non linearità introdotta: in caso contrario la parte integrale del regolatore (cioè quella che "ha memoria") continua ad evolvere ignorando il fatto che a un certo punto del loop una grandezza sarà clampata al suo valore minimo o massimo, in pratica c'è un mismatch concettuale tra quello che il regolatore fa e quello che è convinto di fare (e tante volte non è solo un problema di ottimizzazione della dinamica, il sistema rischia proprio di diventare instabile).

Quindi per rispondere alle tue domande:
1) Se non c'è nessuna saturazione di variabili a parer mio un anti wind-up non serve per i motivi descritti sopra.
2) Quella che descrivi è una condizione che può verificarsi anche in assenza di anti wind-up: lo scopo del regolatore è infatti quella di adattare l'uscita per raggiungere il riferimento con la giusta dinamica. Se tu lo tieni fermo semplicemente continuerà ad aumentare la coppia perché dal suo punto di vista la resistenza incontrata è maggiore di quella fornita, pertanto evolverà seconda la dinamica del regolatore, che tu ci metta un anti wind-up oppure no: la sua presenza serve solo a limitare la grandezza di comando dell'attuatore.
3) Se intendo bene "unclamped", cioè quando non c'è saturazione, il sistema evolve integrando normalmente. Oppure intendevi altro?
Avatar utente
Foto Utentegill90
2.821 1 6 12
Master EY
Master EY
 
Messaggi: 807
Iscritto il: 1 set 2011, 16:18

0
voti

[4] Re: scopo e funzionamento dell'anti-windup

Messaggioda Foto Utentestardust79 » 1 mar 2021, 13:16

gill90 ha scritto:Non sono sufficientemente esperto per poter generalizzare a ogni caso (nel senso che magari ci sono applicazioni particolari che ignoro), ma in generale per quanto ne so l'anti wind-up è un fattore correttivo che serve ad adattare la dinamica alla maggior parte delle applicazioni reali, che in quanto tali prevedono delle non linearità o saturazioni.

Siamo tutti d'accordo che per un regolatore ben tarato la performance ideale è quella che prevede la naturale evoluzione del sistema regolato, tuttavia in alcuni casi (come quello della saturazione dell'attuatore) bisogna accettare il compromesso che qualche grandezza avrà un valore minimo e massimo pertanto il sistema diventerà non lineare. A questo bisognerà affiancare strategie come l'anti wind-up per forzare il sistema a considerare questa non linearità introdotta: in caso contrario la parte integrale del regolatore (cioè quella che "ha memoria") continua ad evolvere ignorando il fatto che a un certo punto del loop una grandezza sarà clampata al suo valore minimo o massimo, in pratica c'è un mismatch concettuale tra quello che il regolatore fa e quello che è convinto di fare (e tante volte non è solo un problema di ottimizzazione della dinamica, il sistema rischia proprio di diventare instabile).

Quindi per rispondere alle tue domande:
1) Se non c'è nessuna saturazione di variabili a parer mio un anti wind-up non serve per i motivi descritti sopra.
2) Quella che descrivi è una condizione che può verificarsi anche in assenza di anti wind-up: lo scopo del regolatore è infatti quella di adattare l'uscita per raggiungere il riferimento con la giusta dinamica. Se tu lo tieni fermo semplicemente continuerà ad aumentare la coppia perché dal suo punto di vista la resistenza incontrata è maggiore di quella fornita, pertanto evolverà seconda la dinamica del regolatore, che tu ci metta un anti wind-up oppure no: la sua presenza serve solo a limitare la grandezza di comando dell'attuatore.
3) Se intendo bene "unclamped", cioè quando non c'è saturazione, il sistema evolve integrando normalmente. Oppure intendevi altro?


Per rispondere alla 3 , cosa significa "integrare normalmente" ? dimentichiamoci per un attimo della saturazione delle variabili.
Se io tenessi fermo il drone mantendendo cosi' l'errore per un tempo lungo, l'integrale salirebbe indefinitamente.
se l'errore è piccolo, ma continua per diverso tempo, avro' bisogno di un tempo di simile durata per annullare l'effetto integrale no ? l'antiwindup non puo' far nulla in tal caso ? grazie
Avatar utente
Foto Utentestardust79
75 1 2 7
Frequentatore
Frequentatore
 
Messaggi: 283
Iscritto il: 24 dic 2013, 18:13

1
voti

[5] Re: scopo e funzionamento dell'anti-windup

Messaggioda Foto Utentegill90 » 1 mar 2021, 16:13

Diciamo di sì, però a rigor di logica senza saturazione delle variabili (in un mondo ideale) se tu aumenti la variabile di controllo dell'attuatore allora anche la sua uscita (coppia) aumenta proporzionalmente. In questo modo per tenere fermo il tuo drone dovrai offrire una coppia resistente via via più ampia, finché prima o poi la coppia erogata supererà quella resistente e il tuo sistema andrà inesorabilmente a regime.

Se tu fai partire il tuo sistema con una variabile di integratore clampata al massimo (condizione di "impongo il riferimento e lo tengo fermo per un po'") il tuo drone partirà a bomba all'inizio e sovraelongherà un bel po' prima di stabilizzarsi (proporzionalmente a quanto errore integrale ha accumulato).
Dal suo punto di vista: vedo una coppia resistenza gigante e devo aumentare l'uscita sempre di più per vincerla, se poi la coppia resistenza viene bruscamente interrotta allora ho bisogno di far scendere un po' quella variabile integrale così ingigantita nel primo periodo per poter tornare a regime (come giustamente hai supposto).

Quindi in questo caso l'anti wind-up fa in modo di ridurre al minimo la "parte integrale utile" così da avere meno sovraelongazione quando lo fai ripartire con un gradino di coppia resistente.
Avatar utente
Foto Utentegill90
2.821 1 6 12
Master EY
Master EY
 
Messaggi: 807
Iscritto il: 1 set 2011, 16:18

0
voti

[6] Re: scopo e funzionamento dell'anti-windup

Messaggioda Foto Utentestardust79 » 1 mar 2021, 16:52

gill90 ha scritto:Diciamo di sì, però a rigor di logica senza saturazione delle variabili (in un mondo ideale) se tu aumenti la variabile di controllo dell'attuatore allora anche la sua uscita (coppia) aumenta proporzionalmente. In questo modo per tenere fermo il tuo drone dovrai offrire una coppia resistente via via più ampia, finché prima o poi la coppia erogata supererà quella resistente e il tuo sistema andrà inesorabilmente a regime.

Se tu fai partire il tuo sistema con una variabile di integratore clampata al massimo (condizione di "impongo il riferimento e lo tengo fermo per un po'") il tuo drone partirà a bomba all'inizio e sovraelongherà un bel po' prima di stabilizzarsi (proporzionalmente a quanto errore integrale ha accumulato).
Dal suo punto di vista: vedo una coppia resistenza gigante e devo aumentare l'uscita sempre di più per vincerla, se poi la coppia resistenza viene bruscamente interrotta allora ho bisogno di far scendere un po' quella variabile integrale così ingigantita nel primo periodo per poter tornare a regime (come giustamente hai supposto).

Quindi in questo caso l'anti wind-up fa in modo di ridurre al minimo la "parte integrale utile" così da avere meno sovraelongazione quando lo fai ripartire con un gradino di coppia resistente.

grazie, non sono sicuro che hai capito la mia osservazione.
Facciamo un esempio pratico.
Ho un drone che è a 1 metro da terra, lo tengo con la mano e nel frattempo gli impongo di salire a 1,1 metri. Ovviamente dopo poco i motori andranno al 100% a causa del termine integrale.
Se io tengo il drone bloccato a 1 metro per mezz'ora, il termine integrale continuerà e integrare l'errore per mezz'ora creando un valore numerico molto grande (integrale da t0 a t di e(t) in dt )
In che modo interviene l'anti windup a impedire che, una volta rilasciato, non si metta ad andare in overshoot per "smaltire" la precedente mezz'ora di di integrazione ? grazie.
Avatar utente
Foto Utentestardust79
75 1 2 7
Frequentatore
Frequentatore
 
Messaggi: 283
Iscritto il: 24 dic 2013, 18:13

1
voti

[7] Re: scopo e funzionamento dell'anti-windup

Messaggioda Foto Utentegill90 » 1 mar 2021, 17:26

Se mi chiedi come agisce praticamente allora già il video te lo spiega bene, in sostanza comunque tu compensi la non linearità del sistema con una non linearità dell'integratore: in pratica tu fai in modo che entro un certo valore di uscita la componente integrale sia proporzionale (appunto) all'integrale dell'errore.
Oltre un certo valore l'uscita diventa costante e non è più proporzionale all'integrale (e il video ti mostra diversi metodi per ottenere questo risultato), pertanto qualsiasi cosa faccia l'errore (anche se cresce per un anno), quella che è definita "parte integrale" in realtà con l'anti wind-up diventa costante.

Se tu lo tieni fermo per mezz'ora l'integrale non aumenta per mezz'ora, ma finché l'uscita non satura dopodiché smette di funzionare da integratore.
Pertanto ti ritroverai sì una parte integrale accumulata (quella ce l'avrai in ogni caso), ma se tari bene la saturazione poi dovrai smaltire solo quel po' di accumulo "sano" che ti permette di far lavorare al massimo (e non oltre) i tuoi attuatori e ridurre l'overshoot a valori accettabili.

PS: non citare tutto il messaggio, basta che fai "Rispondi"!
Avatar utente
Foto Utentegill90
2.821 1 6 12
Master EY
Master EY
 
Messaggi: 807
Iscritto il: 1 set 2011, 16:18

2
voti

[8] Re: scopo e funzionamento dell'anti-windup

Messaggioda Foto UtentePietroBaima » 1 mar 2021, 17:59

nota linguistica:

in inglese colloquiale to wind-up significa stuzzicare, quindi dire do not wind me up! significa non farmi girare le scatole :D

E’ la forma gentile del ben peggiore do not piss me off
Generatore codice per articoli:
nomi
emoticon
citazioni
formule latex
Avatar utente
Foto UtentePietroBaima
84,3k 7 12 13
G.Master EY
G.Master EY
 
Messaggi: 11006
Iscritto il: 12 ago 2012, 1:20
Località: Londra

2
voti

[9] Re: scopo e funzionamento dell'anti-windup

Messaggioda Foto Utentegill90 » 1 mar 2021, 19:35

In realtà esistono anche i circuiti anti piss-off, però il politically correct li ha banditi dall'università :roll:
:mrgreen:
Avatar utente
Foto Utentegill90
2.821 1 6 12
Master EY
Master EY
 
Messaggi: 807
Iscritto il: 1 set 2011, 16:18

4
voti

[10] Re: scopo e funzionamento dell'anti-windup

Messaggioda Foto Utentedimaios » 1 mar 2021, 19:41

Premetto una cosa fondamentale : "L' anti wind-up è una tecnica semplice per curare un problema serio ovvero la presenza di una non linearità nel loop di regolazione che potenzialmente può portare all'instabilità il sistema; la saturazione".

In realtà l'implementazione più 'convincente' è nel dominio discreto visto che nel continuo si vede chiaramente che trattasi di una patch; nel dominio della Z-trasformata invece esistono delle realizzazioni 'furbe' che funzionano dignitosamente.
Le implementazioni classiche vengono proposte nei vari libri di riferimento ma se vuoi spingere le prestazioni si deve fare in altro modo ( mi fermo qui in quanto la teoria necessaria è veramente molto complessa ).

stardust79 ha scritto:Ad esempio nel primo caso l'anello chiede 2000 rpm al motore del drone, ma il motore arriva al max a 1000 rpm.
Coloro che hanno fatto il video dicono che la strategia antiwindup è per eliminare la parte di area messa tra 1000 e 2000 (saturazione dell'attuatore). Ma nel caso invece che il massimo plant demand coincida con il massimo dell'attuatore (plant demand massimo 1000 e attuatore motore max 1000) , l'antiwindup ha comunque uno scopo ?


Assolutamente no. Se la saturazione è a 1000 già il fatto che il controllore richieda 2000 è un grave errore. Evidentemente nella sintesi non hanno considerato i vincoli del processo da controllare.
Che senso ha imporre all'attuatore un set che non può raggiungere ?

L'errore comunque non è tanto nell' anti wind-up ma nell'utilizzo del PID. Infatti se si gestisce l'integratore in quel modo è ovvio si presenti il problema.

Se proprio devi utilizzarlo guarda lo schema con l'osservatore che trovi in queste dispense del prof. Bemporad ; è spiegato piuttosto bene.

14-antiwindup(1).pdf
(441.09 KiB) Scaricato 52 volte
Ingegneria : alternativa intelligente alla droga.
Avatar utente
Foto Utentedimaios
29,8k 7 10 12
G.Master EY
G.Master EY
 
Messaggi: 3324
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes

Prossimo

Torna a Automazione industriale ed azionamenti

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti