Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Progettazione in frequenza di un controllore

PLC, servomotori, inverter...robot

Moderatori: Foto Utentedimaios, Foto Utentecarlomariamanenti

1
voti

[1] Progettazione in frequenza di un controllore

Messaggioda Foto UtenteDeltaEpsilon » 27 set 2021, 20:35

Data la funzione di trasferimento G(s) = \frac{s+0.1}{s^2+2s+1} progettare un controllore tale per cui
  • L'errore a regime sia nullo per un riferimento gradino
  • Tempo di assestamento ts < 5 secondi
  • Sovraelongazione massima percentuale s\% < 10\%
  • Attenuazione del 0.01 di un rumore sinusoidale nel range w \in [100,1000]


Traduzione delle specifiche
  • Errore a regime nullo suggerisce l'utilizzo di un integratore, cioè piazzamento di un polo nell'origine nel controllore C(s)
  • ts < 5 \Rightarrow 5\tau < 5 \Rightarrow \tau < 1 quindi la parte reale dei poli deve essere minore di -1
  • s\% < 10\% vuol dire smorzamento \xi > 0.6 il che vuol dire margine di fase \varphi_m > 60 se utilizziamo l'approssimazione \varphi_m = 100\xi
  • La pulsazione critica w_c si può ottenere con l'approssimazione ts = \frac{5}{w_c} ovvero w_c \geq 1
  • Attenuare dello 0.01 significa attenuare di 40 decibel. Detta L(s) la funzione di anello aperto, deve valere |L(jw)|_{dB} = -40_{dB} per w \in [100,1000]
    Essendo quindi L(jw) sostanzialmente un filtro passa-basso, vale che w_c \leq 100

In definitiva sulla pulsazione critica è imposto il vincolo 1 \leq w_c \leq 100

Ciò che voglio ottenere quindi è che il diagramma di Bode del modulo di L(s) = C(s)G(s) sia qualcosa del tipo:

Immagine

Ovvero, dalla pulsazione w = 100 in poi, il modulo di L(jw) deve trovarsi al di sotto dei -40_{dB}

-----------------------------------------------

Sto avendo difficoltà a trovare un controllore che soddisfi tutte le specifiche.

Come dovrei procedere da qui?

Grazie.
Avatar utente
Foto UtenteDeltaEpsilon
10 4
 
Messaggi: 10
Iscritto il: 26 set 2021, 18:54

0
voti

[2] Re: Progettazione in frequenza di un controllore

Messaggioda Foto UtenteIsidoroKZ » 28 set 2021, 8:54

Spiega meglio la difficolta`: hai provato con I, PI... e non riesci a tirare fuori il risultato che vuoi, oppure non sai da che parte cominciare? Nel primo, caso, che mi pare piu` probabile, prova a dare una indicazione rapida di che tentativi hai fatto e cosa hai trovato.

Sto preparando una risposta che fa vedere anche come non fare il progetto ma, non essendo un controllista, vado adagio. Ora vado a dormire, se ne riparla domani.
Avete fatto il luogo delle radici? Qual e` il tuo testo di riferimento?
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Avatar utente
Foto UtenteIsidoroKZ
115,3k 1 3 8
G.Master EY
G.Master EY
 
Messaggi: 20148
Iscritto il: 17 ott 2009, 0:00

0
voti

[3] Re: Progettazione in frequenza di un controllore

Messaggioda Foto Utentelelerelele » 28 set 2021, 9:37

Approfitto della tua prima esperienza sul forum, non trovo la tua presentazione.

Devi cercare di evitare il possibile le immagini, ed usare fidocadj qua, tra le altre cose, rende più semplice l'intervento e la modifica da parte degli altri utenti.

saluti e buona permanenza.
Avatar utente
Foto Utentelelerelele
3.079 3 7 9
Master
Master
 
Messaggi: 3486
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[4] Re: Progettazione in frequenza di un controllore

Messaggioda Foto UtenteMarcoD » 28 set 2021, 11:16

Mi interessa/incuriosisce perché non so risolverlo (bene)
S^2 + 2S+1 corrisponde a due poli coincidenti S+1 sull'asse reale.

Non ricordo bene, un tempo di assestamento ts < 5 secondi corrisponde a una pulsazione di attraversamento per 0 dB W0 di 6.28/5 rad/s ?
forse tracciando il diagramma di Bode riuscirei a risolverlo.
Avatar utente
Foto UtenteMarcoD
9.649 5 9 13
Master EY
Master EY
 
Messaggi: 4661
Iscritto il: 9 lug 2015, 16:58
Località: Torino

0
voti

[5] Re: Progettazione in frequenza di un controllore

Messaggioda Foto UtenteDeltaEpsilon » 28 set 2021, 14:46

Grazie a tutti per le risposte

lelerelele ha scritto:Approfitto della tua prima esperienza sul forum, non trovo la tua presentazione.
Devi cercare di evitare il possibile le immagini, ed usare fidocadj


Salve, non saprei dove presentarmi dato che non trovo una sezione "Presentazioni" ad hoc.
Andrebbe bene anche qui? O magari scrivo nella bio del profilo...

Inoltre, mi risulta un po' difficile utilizzare Fidocadj per un qualcosa che ha poco a che vedere con uno schema elettrico. Come le immagini che ho appena pubblicato qui sotto.

IsidoroKZ ha scritto:Spiega meglio la difficolta`


Una volta aver tradotto le specifiche e aver fatto una bozza grafica su come mi aspetto che sia il diagramma di Bode del modulo di L(jw) ... vorrei capire come arrivare a progettare il controllore.

Diciamo che il mio primo approccio a questi esercizi è utilizzare il comando sisotool di MATLAB che mostra, su quattro riquadri separati, il luogo delle radici, la risposta indiciale, il diagramma di Bode del modulo e il diagramma di Bode della fase.

Questo è il tool che si presenta quando il processo da controllare è la mia G(s)

Immagine

Questo invece è ciò che ottengo se aggiungo un polo nell'origine al controllore C(s)

Immagine

Purtroppo, a partire da qui, è tutto un giocare con il Gain e cercare di far rientrare la pulsazione critica nel range stabilito e allo stesso tempo fare in modo che il margine di fase sia maggiore di 60°

Ma più vado avanti e più mi perdo... magari ottengo un buon tempo di assestamento ma vedo che nella risposta indiciale l'overshoot sale alle stelle, oppure ottengo buon overshoot ma tempi di assestamento improponibili...

Vorrei capire se esiste un modo più "certo" di trovare un controllore e non a tentativi giocherellando con i parametri del sisotool

MarcoD ha scritto:forse tracciando il diagramma di Bode riuscirei a risolverlo.


Puoi vederlo dalle immagini di sopra
Avatar utente
Foto UtenteDeltaEpsilon
10 4
 
Messaggi: 10
Iscritto il: 26 set 2021, 18:54

1
voti

[6] Re: Progettazione in frequenza di un controllore

Messaggioda Foto UtenteMarcoD » 28 set 2021, 16:21

Aggiungere solo un polo nell'origine ( in altre parole solo una azione integrativa per ridurre a zero l'errore a regime) non è sufficiente.
Devi aggiungere in cascata uno zero che inizia in corrispondenza dell'aumento della pendenza di discesa ( in altre parole una azione proporzionale).
Lo zero dovrebbe essere in corrispondenza della pulsazione 1 rad/s.
Sull'argomento, ricordo che Foto Utenteg.schgor aveva scritto un articolo in cui descriveva il procedimento ottimale, probabilmente può aiutarti. O_/

Una mia considerazione:
Gli ambienti di simulazione circuitale e controllistica ti mostrano immediatamente come si comporta il sistema, ma non ti insegnano a progettarlo.

Pensa a decenni fa quando non esistevano tali ambienti, e non esistevano terminali grafici ( solo alfanumerici) e uno doveva scriversi il programma di simulazione in Fortran o Pascal o Basic e adoperare in modo grafico una stampante alfanumerica in modo da realizzare le curve di risposta stampando un riga alla volta spaziando opportunamente dei caratteri (uno per traccia).
Era già una meraviglia poter calcolare la risposta ad anello chiuso del sistema.

I nostri nonni/bisnonni tracciavano le curve di Bode su carta millimetrata semilogaritmica , e verificavano i risultati (risposte) su un calcolatore analogico.

O_/
Avatar utente
Foto UtenteMarcoD
9.649 5 9 13
Master EY
Master EY
 
Messaggi: 4661
Iscritto il: 9 lug 2015, 16:58
Località: Torino

2
voti

[7] Re: Progettazione in frequenza di un controllore

Messaggioda Foto UtenteIsidoroKZ » 28 set 2021, 18:21

Complimenti per aver scritto bene le specifiche usando latex (per la frequenza di crossover potevi usare \omega_c, viene meglio \omega_c). Invece il disegno e` terribile :( e i risultati matlab non
vanno caricati su server esterni ma su questo sito con "invia allegato".

Oggi mi sento ultracrepidarian, in italiano sconfinatore epistemico, e provo a rispondere anche se questo non e` proprio il mio campo. Qui ci sono valenti controllisti, penseranno loro a correggere le cose sbagliate :mrgreen:

Osservazione generale: le formule che hai usato, a parte le approssimazioni, sono valide per sistemi del secondo ordine senza zeri: la presenza di uno zero cambia il comportamento del sistema, bisogna verificare dopo che il tutto funzioni ancora. In effetti quello zero un po' di casino lo fa!

Con quale percentuale di errore residuo avete definito il tempo di assestamento?

Non ho verificato se i conti preliminari che hai fatto sono corretti, li prendo per buoni.

Cominciamo dalla funzione di trasferimento del sistema, che rappresento con il diagramma di Bode asintotico a) qui sotto, senza esplicitare il guadagno perche' tanto sara` un grado di liberta` per mettere a posto la frequenza di crossover. C'e` uno zero a 0.1 rad/s e due poli reali coincidenti a 1 rad/s.

Come dicevi nel messaggio, e` necessario un integratore nell'origine per mettere a posto la specifica di errore statico. Aggiungendo un integratore, il diagramma di Bode diventa quello di figura b).



Proviamo a vedere se bastasse un integratore nell'origine per avere le prestazioni richieste.

Qualche prima considerazione a ruota libera. Sul diagramma b), per avere il margine di fase desiderato, si deve andare in crossover dalle parti della frequenza di 1 rad/s. Se vai in crossover a 1rad/s il margine di fase e` buono perche' vale circa 85°, il guadagno scende di 40dB/dec e quindi quando arrivi a 100rad/s sei sceso di 80dB, molto piu` di quello che serve.

Pero` con un margine di fase cosi` elevato i poli sono troppo lenti e non rispetti il tempo di assestamento. Aumentando il guadagno il margine di fase scende, si puo` provare ad

Per avere il margine di fase voluto, si puo` aumentare il guadagno in modo da andare in crossover dopo i due poli reali coincidenti,

Facendo i conti giusti si trova che per avere 60° di margine di fase bisogna andare in crossover a 1.61 rad/s, cosa che richiede un guadagno di 3.6 volte. Pertanto il compensatore integrativo diventa seplicemente \frac{3.6}{s}. Uno schizzo della situazione e` in questa figura (NON in scala!)



Con questa soluzione il crossover e` oltre 1rad/s, il margine di fase e` di 60°, l'attenuazione a 100rad/s e` decisamente elevata, oltre 70dB... quindi sembrerebbe tutto a posto.

Peccato, ci sono alcune cose che non vanno. Una, ad esempio, e` che se il guadagno dell'impianto scendesse, il crossover si sposterebbe di molto in basso, a causa del tratto quasi in piano che il guadagno di anello ha prima del crossover.

Secondo, MOLTO peggiore, e` che le specifiche non sono per nulla rispettate :( Infatti la risposta al gradino e` questa

CompTimeDomain.png


Si vede che il valore "finale" dopo il piccolo overshoot (entro il 10% come richiesto) sembra essere 0.9, come indicato dalla freccia rossa, poi il sistema va al valore asintotico MOLTO lentamente! Il tempo di assestamento e` completamente sbagliato!

Se si va a fare il conto della posizione dei poli ad anello chiuso si trova che i due poli complessi coniugati sono a s_{1,2}=-0.96\pm\text{j}\,1.88\,\mathrm{s^{-1}}, e andrebbero bene. PURTROPPO aggiungendo l'integratore il sistema e` diventato del terzo ordine e c'e` un terzo polo a -0.081\,\mathrm{s^{-1}} che da` la dinamica lenta che si osserva.

L'effetto di questo polo reale e` solo parzialmente cancellato dallo zero in -0.1\,\mathrm{s^{-1}}: si e` in presenza di un doppietto che e` sempre una palla al piede quando si vogliono fare sistemi precisi :(

Il tutto lo si vede bene dal luogo delle radici, qui sotto, dove ho evidenziato la posizione dei poli con guadagno di 3.6. Si vede che lo zero attira il polo nell'origine e forma il doppietto :(

Root Locus Plot1.png
Root Locus Plot1.png (4.82 KiB) Osservato 1116 volte

[EDIT: avevo dimenticato il diagramma del luogo delle radici, grazie Foto UtenteMarkyMark per avermelo segnalato]

Se si aggiunge uno zero reale sopra ai due poli reali (in pratica si fa un controllore PI, le cose non cambiano molto, almeno dal punto di vista qualitativo. Il polo nell'origine va sempre verso lo zero in 0.1, un polo in -1 viene cancellato e l'altro va a meno infinito. C'e` sempre il doppietto :(

Fine della prima parte :-).

Potresti in modo analogo a questo provare a mettere uno zero in -1, e vedere che risultati si ottengono. In questo caso dopo il crossover il guadagno di anello scende a -20dB/dec e per andare a -40dB a 100rad/s bisogna avere il crossover a 1rad/s.

I doppietti sono sempre un pain in the neck (per non dire da altre parti!). Lo zero di li` non si sposta, bisogna convincere il polo ad andare abbastanza vicino in modo che l'errore residuo sia abbastanza piccolo, oppure si possono aggiungere altre singolarita` in modo che il polo nell'orgine segua un altro percorso e vada piu` lontano (mi pare difficile in questo caso), oppure... vediamo cosa dicono i controllisti.

In che universita` sei, qual e` il libro di testo?
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Avatar utente
Foto UtenteIsidoroKZ
115,3k 1 3 8
G.Master EY
G.Master EY
 
Messaggi: 20148
Iscritto il: 17 ott 2009, 0:00

1
voti

[8] Re: Progettazione in frequenza di un controllore

Messaggioda Foto Utenteg.schgor » 28 set 2021, 18:49

L articolo citato da Foto UtenteMarcoD (che ringrazio) è questo.

Ovviamente la simulazione non risolve automaticamente i problemi
ma aiuta molto a capire l'influenza dei vari parametri sul comportamento del regolatore.
Avatar utente
Foto Utenteg.schgor
57,0k 9 12 13
G.Master EY
G.Master EY
 
Messaggi: 16800
Iscritto il: 25 ott 2005, 9:58
Località: MILANO

0
voti

[9] Re: Progettazione in frequenza di un controllore

Messaggioda Foto Utentelelerelele » 29 set 2021, 8:23

DeltaEpsilon ha scritto:Grazie a tutti per le risposte
lelerelele ha scritto:Approfitto della tua prima esperienza sul forum, non trovo la tua presentazione.
Devi cercare di evitare il possibile le immagini, ed usare fidocadj

Salve, non saprei dove presentarmi dato che non trovo una sezione "Presentazioni" ad hoc.
Andrebbe bene anche qui? O magari scrivo nella bio del profilo...
presentazioni qua

saluti
Avatar utente
Foto Utentelelerelele
3.079 3 7 9
Master
Master
 
Messaggi: 3486
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[10] Re: Progettazione in frequenza di un controllore

Messaggioda Foto UtenteDeltaEpsilon » 29 set 2021, 18:40

Grazie a tutti per le risposte

IsidoroKZ ha scritto:Osservazione generale: le formule che hai usato, a parte le approssimazioni, sono valide per sistemi del secondo ordine senza zeri: la presenza di uno zero cambia il comportamento del sistema, bisogna verificare dopo che il tutto funzioni ancora. In effetti quello zero un po' di casino lo fa!


In effetti è vero... c'era un esercizio simile ma senza quello zero... e mi ci è voluto pochissimo a trovare un controllore che funzioni!

IsidoroKZ ha scritto:Con quale percentuale di errore residuo avete definito il tempo di assestamento?


1%

IsidoroKZ ha scritto:Peccato, ci sono alcune cose che non vanno. Una, ad esempio, e` che se il guadagno dell'impianto scendesse, il crossover si sposterebbe di molto in basso, a causa del tratto quasi in piano che il guadagno di anello ha prima del crossover.

Secondo, MOLTO peggiore, e` che le specifiche non sono per nulla rispettate :( Infatti la risposta al gradino e` questa

Si vede che il valore "finale" dopo il piccolo overshoot (entro il 10% come richiesto) sembra essere 0.9, come indicato dalla freccia rossa, poi il sistema va al valore asintotico MOLTO lentamente! Il tempo di assestamento e` completamente sbagliato!

Se si va a fare il conto della posizione dei poli ad anello chiuso si trova che i due poli complessi coniugati sono a s_{1,2}=-0.96\pm\text{j}\,1.88\,\mathrm{s^{-1}}, e andrebbero bene. PURTROPPO aggiungendo l'integratore il sistema e` diventato del terzo ordine e c'e` un terzo polo a -0.081\,\mathrm{s^{-1}} che da` la dinamica lenta che si osserva.


Ti ringrazio per il tuo tentativo e mi fa sorridere il fatto che, alla fine di tutto, si giunge al mio stesso dilemma: c'è sempre una o più specifiche che non vanno!

Riesci a sistemarne una, ti scappa un'altra... odio il trial and error :cry:

E mi chiedo se mai esistesse un procedimento rigido e "algoritmico" da seguire pur di non incappare in tentativi su tentativi senza risolvere nulla...

IsidoroKZ ha scritto:In che universita` sei, qual e` il libro di testo?


Federico II di Napoli
Non utilizzo nessun libro di testo ma quello consigliato dal docente è il Bolzern
Avatar utente
Foto UtenteDeltaEpsilon
10 4
 
Messaggi: 10
Iscritto il: 26 set 2021, 18:54

Prossimo

Torna a Automazione industriale ed azionamenti

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti