controlli automatici 7
Transcription
controlli automatici 7
9 Sintesi dei regolatori Introduzione I metodi di analisi di stabilità (Nyquist à margine di fase à Bode, luogo delle radici) uniti ai metodi di analisi degli errori statici uniti ai metodi di valutazione approssimata delle funzioni di trasferimento in ciclo chiuso costituiranno gli strumenti guida che useremo per la sintesi di regolatori R(s) atti a soddisfare specifiche di controllo. • Metodi di analisi della stabilità (Nyquist à margine di fase à Bode, luogo delle radici) • Metodi di analisi degli errori statici • Metodi di valutazio ne approssimata delle funzioni di trasferimento in ciclo chiuso Noi distingueremo la sintesi in quattro: (1) Sintesi per impianti G(s) a fase minima (G(s) con poli Re ≤ 0 , zeri Re<0, guadagni di anello K>0) (2) Sintesi per impianti G(s) aventi solo alcuni poli Re>0 (impianti instabili) e nessuno zero con Re>0 (3) Sintesi per impianti G(s) aventi solo alcuni zeri con Re>0 e nessun polo con Re>0 (4) Sintesi per impianti G(s) aventi alcuni poli e alcuni zeri con Re>0. Avremo: Ipotizziamo NON vi siano zeri sull’asse immaginario, se vi fossero il problema è mal posto. I casi (1), (2), (3), (4) hanno complessità crescente: (1) è il più semplice e più comune. Il caso (2) si risolve a valle di (1) e così via. Il (2) si riconduce a (1); il (3) si può ricondurre a (1) con limitazioni e così il (4). 1 9.1 Sintesi per impianti a fase minima Ipotesi e casi tipici Dobbiamo stabilire le specifiche per l’impianto: G(s) Ha poli Re ≤ 0 con assenza di zeri a Re+0. Per cui gli impianti e KG>0. Posto poi che G(s) sia semplicemente proprio, e la risposta in frequenza tenda a zero definitivamente con andamento regolare: Per questi impianti si può inserire un regolatore R(s) per cui, agendo sulla sua struttura di poli/zeri e sul suo guadagno (mantenendo R(s) a fase minima senza zeri Re=0, RG è ancora a fase minima), RG(s) soddisfi a condizioni per il margine di fase: a) una sola ωt “dall’alto verso il basso” b) RGH >> 1 a “sinistra” di ωt c) RGH << 1 a “destra” di ωt d) comportamento di RGH in prossimità di ωt ricadente in uno dei casi tipici: 2 Esempio: Possiamo ricondurci a situazioni (d) inserendo r9s) semplicemente proprio costituito da polo e zero indicato tratteggiato. R1 ( s) = 1 + sτ 1 1 + sτ 2 in modo tale quindi che la serie RG: Ora variando KR alzo/abbasso l’asse –1 e ottengo il taglio dove desidero. Potevo fare anche l’opposto mettendo 1/ τ 1 lontano: 3 Per avere d3: lo zero è nella risonanza e polo lontano: Notiamo che con coppia di poli immaginari l’operazione di ricondurmi al caso d, lo posso fare solo a destra di ω0; non l’avrei potuto fare a sinistra a causa del picco. Se avessi avuto come impianto: con la rete correttrice di prima posso ricondurmi a (d) sia a destra che a sinistra. In un caso di questo tipo se avessi desiderato ricondurmi a (d) in corrispondenza di ω0 avrei dovuto compensare i poli complessi poco smorzati con un sistema del tipo: 4 R1 ( s) = 2ξ s2 1+ s+ 2 ω0 ω0 s 1 + ω0 2 zeri complessi coniugati e poli in ω0. Con un regolatore di questo tipo avrei ottenuto RG: e su questo avrei usato regolatori ad anticipo per ritardare (d). Va notato: 1) la compensazione con l’ultimo R1 non avrei potuto farla con poli puramente immaginari (ξ=0): NON la posso fare per instabilità. Se i poli sono poco smorzati la si può fare però è NON CONSIGLIABILE perché ritrovo i poli in closed loop. Si può accettare se i poli sono sufficientemente smorzati ⇒ 5 Mi posso ricondurre a (d0, ma se vi sono picchi poco smorzati la riconduzione può riguardare solo una parte dell’asse delle frequenza. Se non ho picchi mi posso ricondurre a (d) sull’intero asse. Per i casi comuni di G(s) a poli e zeri reali, con al più alcuni nell’origine, la possibilità di andare a (d) sull’intero asse delle frequenze è garantita. Specifiche per inseguimento del segnale di riferimento Oltre al ricondursi o meno ai casi (d) sull’intero asse, ma comunque ci riesco in qualche zona; vediamo perché sono importanti. Posto di essere in uno dei tre casi, vediamo cosa accade alla funzione di trasferimento riferimento/uscita misurata: d1) à ~ T yr ~ T yr = 1 1+ 2ξ s2 s+ 2 ω0 ω0 perché a sinistra di T yr ~ 1 , i poli closed loop compensano gli zeri closed loop; a destra di T yr ~ RG e in AF i poli sono sostanzialmente uguali a RG stabili, con dinamica più ~ veloce relativa ai poli closed loop di T yr . Quindi in closed loop 6 Nel casod1 il sistema closed loop si comporta come sistema del second’ordine e dinamica determinata da coppia di poli in closed loop di MF. Perché poli residui di AF sono veloci e si esauriscono subito, mentre poli BF sono vicini a zeri BF: i poli lenti sono cancellati da zeri, perché ho esponenziale molto lento ma con residuo piccolo. I poli di MF che caratterizzano la dinamica della funzione di trasferimento sono detti poli dominanti in ciclo chiuso. à d2) ~ T yr ~ T yr = 1 + sτ 2ξ s2 1+ s+ 2 ω0 ω0 il ragionamento è analogo a quello di d1. à d3) ~ T yr ~ T yr = 1 1+ s ωt 9.2 Se allora vale la possibilità di ricondursi a (d) allora il problema della definizione di specifiche relative a inseguimento del segnale r si poss ono dare in termini di dimensionamento di un sistema del second’ordine per d1, di un sistema second’ordine più zero per d2, di un sistema del prim’ordine per d3. Specifiche relative ai poli dominanti (d1) Supponiamo di avere segnali r a gradino 7 e(∞) dipende dal guadagno e dai poli nell’origine. Caratteristiche sono 5% e Ta. Allora posso dare le specifiche: S ≤ A Ta ≤ T Specifiche di garanzia di buon inseguimento. Se queste sono le specifiche per sistemi del second’ordine: S ≤ A → ξ ≥ ξ * ( Minimo accettabile) 5 Ta ≤ T → ω 0ξ ≥ T nel piano complesso i poli devono trovarsi: Posso approssimare la zona: più restrittiva ma più semplice: ξ ≥ ξ * ω 0 ≥ Ω Note le specifiche sui poli dominanti le posso tradurre in specifiche su γ e ωt. Specifiche relative a margini di fase e frequenza di taglio (d1) Per ricondursi a specifiche sul margine di fase e frequenza di taglio basta prendere: 8 invece per ω0 allora se dovevo fare ω 0 ≥ Ω allora basterà ωt ≥ Ω Si conclude allora che riesco a tradurre in specifiche su frequenza di taglio e margine di fase. γ ≥ γ * ω t ≥ Ω caso d1 Questo giustifica perché le specifiche per sistemi a fase minima siano date in γ e ωt. Specifiche relative al caso d2 Se ricadessimo nel caso d2 la risposta a gradino non si discosta molto dalla precedente poiché ~ T yr = 1 + sτ 1 s = +τ 2 2 2ξ s 2ξ s 2ξ s2 1+ s + 2 1+ s+ 2 1+ s+ 2 ω0 ω0 ω0 ω0 ω0 ω0 allora ottengo risposta a gradino pari a: (risposta come in d1) + τ ⋅ (derivata caso d1) 9 ora y2 è più veloce. Si accettano nel caso d2 le stesse specifiche per il d1 anche se sono diverse (comunque non commette errori, ma sovrastima). Allora si ricade nel caso di prima d1 salvo un piccolo particolare: γ ≥ γ * ω 0 ≥ Ω ora avrò (vedi le curve della volta precedente): 1 ωt ≤ ω0 ≤ ωt 2 1 ωt ≥ Ω 2 cioè: γ ≥ γ * ω t ≥ 2 Ω Per il caso d1 e d2 andando a tagliare nei pressi di 1/τ ω0~ωt e si usa sempre ωt≥Ω. Specifiche relative al caso d3 Se ricadiamo nel caso d3 le cose si complicano notevolmente: qui non abbiamo s: 10 γ ~ 90 ° (pendenza –1 piena) Ta<T ⇓ 5 <T ωt → ωt > 5 T allora: γ ~ 90 ° 5 ω t ≥ T così operando le specifiche sono date in termini conservativi con maggiorazioni. In tutti e tre i casi si ha: ωt ≥ qualcosa allora per specifiche dinamiche riuscirò a soddisfare l’inseguimento. Ad esempio: In realtà non posso prendere ωt grande a piacere e poi lo vedremo. Esempio: determinazione delle specifiche di tipo dinamico Le specifiche dinamiche allora le posso dare in termini frequenziali. Consideriamo r(t) a gradinata: 11 conosciamo T m minimo. Noi desideriamo comportamento T a<Tm Ad esempio 1 Ta ≤ T m 10 s ≤ 0.1 in alternativa a questo modo di dare le specifiche posso prendere il caso peggiore con transizioni tutte a Tm : parente di: trasformo con serie di Fourier: Fisso la soglia ε oltre cui trascuro i termini, allora perché in uscita sia ben riportata l’onda quadra, in uscita il mio sistema deve essere con risposta piatta fino a Ω: 12 Allora così ho individuato le specifiche: ξ ≥ 0.5 ω 0 ≥ Ω da cui γ ≥ γ * ω t ≥ Ω specifiche di tipo dinamico. Specifiche relative alla precisione statica Devo prendere in considerazione errori statici, quelli che trovo quando si sono esauriti i transitori relativi a poli dominanti. Ho va rie specifiche: Specifiche per riferimento gradino 0) riduzione al di sotto di una certa soglia ε dell’errore statico in risposta ad un riferimento a gradino r (t ) = A ⋅ 1(t ) → e ( ∞) ≤ εA ⇔ e(∞) ≤ ε 1 A H0 errore sull’uscita Avrò i sottocasi: 0.1) Se G(s) di partenza ha un polo nell’origine allora la specifica sarà soddisfatta nel modo migliore e (∞) = 0 0.2) Se G(s) non ha poli nell’origine, e non pensiamo di introdurre poli nell’origine in R(s), avrò errore statico costante; allora la specifica impone che e (∞ ) = 1 ≤ε 1+ K ⇒ K ≥ K* soglia minima 13 così ho indicazione su guadagno statico totale di anello. Queste due specifiche potrebbero andare in contrasto: una è quella dinamica e l’altra è quella statica. Vedremo come risolvere. Specifiche per riferimento a rampa Consideriamo ora riferimento con transizioni dolci: Può essere interessante contenere e(∞), allora avrò altre specifiche 1) Mantenimento degli errori statici percentuali in risposta a segnali a rampa, al di sotto di una soglia ε r (t ) = A ⋅ t ⋅1(t ) ⇒ e (∞) ≤ εA Per soddisfare questa dovrò avere almeno un polo nell’origine in catena diretta. Se G(s) ce l’ha bene, se no lo metto nel regolatore. In entrambi i casi: l’errore è costante a rampa e nullo a gradino ⇒ risolvo il problema degli errori relativi al gradino. Qui allora: e (∞ ) = 1 ≤ ε ⇒ K ≥ K* K lower bound al guadagno di anello, cioè al guadagno del regolatore. Concluso il modo in cui fisso le specifiche: - inseguimento dinamico - precisione statica relativamente al riferimento. Non ho preso ancora in considerazione i disturbi. Procedure di sintesi (in relazione al solo segnale di riferimento) Procedura per approssimazioni successive che portano alla definizione di R(s) ottenuta come cascata di due funzione di trasferimento: R(s)=R1(s)R2(s) Tipicamente dette funzioni di trasferimento correttrici. R 1 ed R2 sintetizzate di seguito: 14 R1: deve consentire il soddisfacimento delle specifiche di inseguimento dinamico ( γ e ωt) R2: (tipicamente da sintetizzarsi dopo R1) consente di soddisfare specifiche di precisione statica. Esempio Procediamo con un esempio, impianto: Supponiamo di avere le specifiche ω t ≥ Ω γ ≥ 60° • Per soddisfare le specifiche potrei usare un regolatore proporzionale R(s)=K R Con KR tale che il taglio sia oltre Ω. Se faccio così andrei a tagliare con –2 e però avrei γ~180° (da sopra). Allora la risposta closed loop sarebbe una coppia di poli puramente immaginari. • Quindi dobbiamo trovare un altro modo: 15 Devo ricadere, nei pressi di Ω, in uno dei casi (d). Ad esempio scegliamo d1: devo mettere R(s) tale da ricadere nei casi tipici. In prossimità del polo reale metto il regolatore in . Se disegno la fase troverò γ cercato: volendolo variare basterà spostare 1/τ1 e 1/τ2: R1 ( s) = 1 + sτ 1 1 + sτ 2 con τ1 , τ2 a mia scelta. Ora che ho il comportamento voluto, posso variare K1 per andare ad esempio a tagliare più in basso (regolazione fine γ). In media frequenza in closed loop ottengo andamento dei poli dominanti. Quindi il regolatore inserito: R( s) = R1 (s ) = K R1 ⋅ 1 + sτ 1 1 + sτ 2 è una funzione di trasferimento correttrice PASSA ALTO o AD ANT ICIPO DI FASE. Ha risposta in frequenza: 16 Usata per: - alzare le pendenze in prossimità della frequenza di taglio desiderata - alzare la fase in prossimità del taglio desiderato Nota : si devono disegnare le fasi di G e di R e quindi spostare la fase di R. • Procedimento per progetto funzione di trasferimento correttrice passa alto Proceduralmente la cosa da fare è inserire R1 senza il polo successivo come fosse passa alto puro. 1) R1 = 1 + sτ 1 deve togliere dai piedi qualche polo “problematico” immagino un puro passa alto e disegno la fase. Nel nostro esempio: con R1 puro passa alto 2) R1 = 1 + sτ 1 1 + sτ 2 Il polo lo devo inserire e ottengo a seconda posizione: 17 quindi variando 1/τ 2 allora ottengo diversi γ. Questa è nota come correzione in media frequenza. Può essere utile: • Interpretazione sul luogo delle radici della correzione passa alto Andiamo a considerare il luogo dell’impianto: con regolatore proporzionale avrei avuto taglio molto lontano da –1/τ1 : 18 Con la rete correttrice passa alto avrò: se invece inserisco il polo (che deve esserci per la realizzazione pratica del regolatore): Abbiamo ora soddisfatto le specifiche dinamiche. • Supponiamo di dover portare errore statico e (∞) ≤ ε 19 Il nostro impianto non ha poli nell’origine, R 1(s) non ne ha, allora in catena diretta poli nell’origine. Poiché non è richiesto di annullare e(∞) non devo inserirne; però e (∞) ≤ ε richiederà: e (∞ ) = 1 ≤ ε ⇒ K ≥ K* 1+K ma per il momento il nostro K è: K 1 = KR1 KG H0 se per caso K ≥ K * abbiamo già soddisfatto le specifiche. Se così non è se K1 ≥ K * ok! Stop! Se K1 ≤ K * devo intervenire La prima idea è aumentare KR1, ma se aumento KR1 vado a tagliare più a destra e quindi diminuisco γ ⇒ altero i poli e aumento ωt , cosa che può essere accettabile fino ad un certo punto. In realtà se si è già proceduto a correggere in MF devo aumentare K senza perturbare quanto fatto in MF. Riprendiamo R1G: devo inserire rete con guadagno K2 e che non alteri MF Quindi l’inserimento della rete porta ad avere risposta più piatta vicino ad 1 per avere così soddisfacimento della precisione statica. Il regolatore sarà: 20 R = R2 R1 = K R 2 K R1 (1 + sτ~2 )(1 + sτ1 ) (1 + sτ~1 )(1 + sτ 2 ) Notiamo che R2 ha la risposta: funzione di trasferimento correttrice PASSA BASSO o A RITARDO DI FASE. (corregge le basse frequenze) L’insieme delle due: detta rete A SELLA o A RITARDO/ANTICIPO DI FASE. È meglio fare prima MF e poi BF. Osservazione: la scelta di posizione polo/zero della rete a ritardo di fase può essere spostato a destra purché non vari γ. La sposta a destra il più possibile finché non altera MF. In realtà è sempre suggeribile spostare la coppia il più possibile a destra verso la MF, questo perché miglioro nella zona di MF l’approssimazione a 1 piatta in closed loop della funzione di trasferimento. Un altro motivo è legato alla reiezione dei disturbi. • Rete passa basso con polo nell’origine 21 Se avessi voluto annullare l’errore relativo al gradino à devo inserire polo nell’origine. R1G non ha poli nell’origine e quindi lo devo inserire in R2 da porsi in serie a R1. Però ancora R 2 non deve alterare MF. R2 = K r 2 ⋅ 1 + sτ~2 s Ancora rete PASSA BASSO che rende K→∞ per ω=0. Ora in closed loop ho proprio 1 per BF perché K→∞. Il regolatore completa è ancora a sella: Anche qui conviene spostare 1/ τ~2 il più possibile a destra per avere 1 in closed loop più ampia e per reiezione dei disturbi. • Interpretazione sul luogo delle radici della correzione passa basso Consideriamo la correzione con polo non nell’origine: 22 Da fare luogo delle radici esatto. • Correzione per riduzione errore statico relativo a rampa Visto che abbiamo annullato l’errore statico a un gradino e vista l’arbitrarietà su KR2 del passa basso (risolta spostando lo zero il più a destra possibile), vediamo se vogliamo contenere errore statico alla rampa come fare: lo voglio sotto soglia ε : r(t) = t⋅1(t) e (∞) ≤ ε → e ( ∞) = 1 ≤ε K → K ≥K* = 1 ε Se le correzioni fatte erano tali da avere un K>K * stop! Ho finito. Se non lo è provo a spostare a destra lo zero passa basso, se mi è concesso, e se ci riesco ho finito. Se non ci riesco inserisco una rete passa basso però non con pendenza –1 altrimenti lo zero andrebbe in MF, ma con pendenza maggiore: Posso estendere questi concetti annullando l’errore rampa, pero oltre è poco usato. 23 Da fare: ripetere esercizio con errori. Sintesi del regolatore in presenza anche di specifiche relative ai disturbi Nel caso d non sia nullo abbiamo da tenere in conto della risposta closed loop T yd = Gd 1 1 + RGH potremo definire T yd ' =ˆ 1 1 + RGH dove d’ è il segnale fittizio in uscita da Gd. Tyd’ è detta funzione di sensitività. Allora per valutare Tyd dobbiamo prima trovare la funzione di sensitività e poi aggiungo Gd. Calcoliamo la funzione di sensitività: 1 RGH BF RGH ( jω ) >> 1 ⇒ T yd ' ~ AF RGH ( jω ) << 1 ⇒ T yd ' ~ 1 MF RGH ( jω ) ~ 1 ⇒ T yd ' ~ 1 ~~~ 1 + RGH Approssimazione della funzione di sensitività Vediamo in relazione a esempio prototipale come viene la funzione di sensitività: 24 Allora in BF devo ribaltare RGH perché è l’inverso. In AF è circa 1, in MF ha gli stessi poli di T yr e per gli zeri della diretta e poli dell’inversa, cioè i poli di RGH. In BF trovo zeri della catena diretta e poli della catena inversa come zeri; poi in BF trovo come polo evidente lo zero di RGH, che diventa polo di closed loop e non starà esattamente nella stessa posizione, in realtà è il polo closed loop che era andato vicino allo zero. Specifiche di banda passante relativamente a d’ La funzione di sensitività presenta un diagramma di modulo in BF tanto più inferiore a 1 quanto più RGH è maggiore a 1 in BF. La risposta al disturbo d’ è praticamente pari a 1 in AF, mentre in MF ho situazione intermedia. Qualora il disturbo fosse d’ e questo fosse caratterizzato spettralmente da un intervallo di frequenza: Il disturbo sarà attenuato in BF, mentre non verrebbe attenuato in AF; nel caso di MF ho situazione intermedia (qui con parziale amplificazione). Allora le componenti di [a,b] sono ottenute in BF, inalterate in AF e caso intermedio in MF. Allora se dovessi considerare il solo d’ avrò da fissare la ωt in modo che ω t ≥ Ω ω t > b b = massima frequenza disturbo, in modo che [a,b] sia in BF. Allora le specifiche di banda passante: ω t ≥ max[Ω , b ] Correzione per attenuazione dei disturbi (d’) Dopodiché pongo problema di quanto d’ deve essere attenuati. Allora devo considerare quanto vale attenuazione di [a,b] e concludere che 1 RGH 25 sia o meno sufficiente. Supponiamo di avere 1 = 0 .1 RGH in [a,b] che no va bene. Come posso risolvere? Dovrò alzare la RGH e quindi servirà per esempio un passa basso: devo alzare senza rovinare la MF. ⇓ il che significa che spostando il più possibile a destra il passa basso gi usato diminuisco la funzione di sensitività. Se però così non riesco devo spostare la banda passante e così aumento il guadagno. Allora: 1) Metto passa basso Oppure 2) Aumento banda passante Questo ragionamento fatto suppone d’ con range di frequenze limitato. Considerazioni sulla banda del disturbo L’ipotesi di base fatta è la limitazione superiore delle frequenze del disturbo. Se d’ può invece avere frequenze da 0 a +∞ avrò problemi: non potendo avere ωt→∞ avrò che le componenti frequenziali del disturbo possono. Ora però d’ non esiste su tutte le frequenze, poiché d’ è il risultato del filtraggio della Gd sul disturbo d. Quindi al più è d che potremmo pensare su tutte le frequenze, però Gd è strettamente proprio e d’ ha limite superiore sulle frequenze. Specifiche di banda passante e correzione per attenuazione del disturbo d Se anche d varia in frequenze da 0 a +∞, allora possiamo dire: [ ω t ≥ max Ω ,ω Gd max ] 26 Poi il realtà d non varia tra 0 a +∞, ragion per cui se d ha banda [0,b]: [ [ ω t ≥ max Ω; min b ,ω Gd max ]] Ora devo tenere in conto che l’attenuazione dei disturbi è dovuta alla funzione di sensitività e a G d. Allora devo andare a vedere quanto vale Gd nell’intervallo di frequenza dei disturbi: T yd ~ Gd ⋅ 1 RGH in BF all’interno [a,b] Ad esempio attenuazione > 10 deve essere: Gd RGH <ε ⇒ RGH > Gd ε ω ∈[ a, b ] in BF questa la soddisfo se: RGH ( jω ) > max Gd ( jω ) ε (*) ad esempio: Allora devo fare salire RGH in modo che sia soddisfatta la (*). Valgono ancora le cose dette prima: allora RGH se non è abbastanza alta: - uso passa basso il più possibile a destra - se non ci rie sco allora aumento ωt in modo da allargare la BF e poter fare RGH alta 27 Notch filter Ci sono casi in cui disturbi occupano bande molto strette o al limite una sola frequenza: d (t ) = sin ω t allora avremo d ' (t ) = Gd ( jω) sinω t In questi casi può bastare l’impiego di “notch-filter” che non fanno altro che alzare la |RGH| in corrispondenza di piccoli intervalli di frequenza attorno a ω : (1 + s ω ) 2 F (s ) = 1+ 2ξ s2 s+ 2 ω ω con ξ molto piccolo O comunque gli zeri poco distanti da ω : il filtro può essere spostato agevolmente anche nei pressi di ωt. Allora userò notch con disturbi concentrati nei pressi di ωt. 28 Per questo filtro è interessante notare che il guadagno può aumentare quanto voglio: se voglio annullare totalmente gli effetti del disturbo sinusoidale a pulsazione ω in BF à userò un notch-filter con ξ =0. L’annullamento di errori su uscita dovuta a disturbi sinusoidali si fa con notch filter a poli immaginari: 2 s 1 + ω F (s ) = s2 1 + 2 ω Rendo infinito il guadagno d’anello a pulsazione ω del disturbo sinusoidale. Questo ragionamento è lo stesso per disturbi a gradino. Allora ha frequenza zero à devo mettere un polo nell’origine. Quindi per uccidere un disturbo devo avere guadagno infinito alla frequenza del disturbo. Riduzione degli errori statici dovuti a segnali di disturbo costanti Dopo aver fissato specifiche dinamiche se sussiste specifica di ridurre gli effetti d costante a transitori esauriti sotto una soglia ε, sappiamo che se Gd non ha poli nell’origine e neppure nel tratto RG vi sono allora ed ( ∞) = KGd <ε 1+ K da qui individueremo: K ≥ K ** 29 ma del resto per ridurre errore al riferimento K ≥ K* Quindi in conclusione avrò: [ K ≥ max K * , K * * ] Allora basterà dimensionare il passa basso in modo giusto. Se Gd ha poli nell’origine ce li ha anche G allora la riduzione oltre una certa soglia e statico dovuto d, posto che in R non avessimo poli origine allora avremo: e (∞ ) = K Gd <ε K e riottengo la precedente con K * * leggermente diverso. Annullamento errori dovuti ai disturbi Se Gd e G non avevano poli nell’origine e ne avessi già previsto uno in R per annullare errori statici riferimento a gradino allora ho già annullato l’errore dovuto a d perché RG ha un polo in più nell’origine. Se Gd e G sono se nza poli nell’origine e desidero annullare l’errore al disturbo devo mettere un polo in R. Se Gd e G avevano un polo nell’origine è annullato l’errore al riferimento, per ridurre l’errore dovuto a d devo inserire un polo nell’origine in R. Linee guida per il progetto Tutte queste informazioni sugli errori danno luogo a - lower bound su K - struttura di R(s) come poli nell’origine Se devo tenere a parte, devo aggiustare la MF e quindi lavorare su BF. Esercizio proposto * 0) stabilità in closed loop 1) errori statici a gradino di riferimento nulli 2) errori statici a t⋅1(t) ≤ ε 30 3) errori statici a un gradino di disturbo nulli ( d(t) = 1(t) ) 4) banda passante relativa al solo riferimento maggiore uguale a 1/τ 2 (banda passante = ωt) 1 5 5) riduzione effetti disturbi sinusoidali con ω ∈ , al di sotto della soglia ε τ 1 τ 1 Da trattare: 1 1 >> τ1 τ2 e 1 1 << τ1 τ2 Su alcuni aspetti particolari • poli “evidenti” La funzione di trasferimento in ciclo chiuso è in . Dal punto di vista della risposta tra riferimento e uscita (misurata) la presenza della vicinanza polo/zero in BF fa si che il polo BF ha influenza piccola rispetto ai poli di MF poiché lo zero vicino porta a residuo trascurabile . Allora se nonostante ciò voglio fare un’analisi dettagliata della risposta al riferimento gradino: questo effetto è detto effetto coda . Tale effetto è tanto più pronunciato quanto più le coppie polo/zero BF sono più spostate a sinistra. L’effetto sarebbe ancora più lento: 31 Più a sinistra vado e più il residuo dura a lungo. Allora qualora debba usare dei passa basso è importante mettere il più a destra possibile per ridurre l’effetto coda. Consideriamo ora la risposta al disturbo d’ (fittizio): 1 1 T yd ' = ⇒ T yd = Gd +4 RGH 1 + RGH 14412 43 funzionedi Sensitivit a' nelle BF si ha T yd ' ≅ 1 / RGH , nella AF T yd ' ≅ 1 . Allora otteniamo: I poli della funzione di sensitività hanno come poli BF gli zeri di rgh anche se sarà vicino e non proprio lo zero. Quali sono i poli dominanti di T yd’? Saranno i poli MF, però in BF ho polo circa uguale a zero RGH che però ora non è più cancellato da zero. Allora questo polo BF sarà evidente nella Tyd’. Conterà tale polo come quelli di MF? (Nella risposta a riferimento non conta poiché cancellato). Nonostante sia un polo evidente, poiché è in zona a guadagno basso, la dinamica a lui relativa è a basso residuo. Vediamo il perché. T yd ' = 1 RGH = 1 − 1 + RGH 1 + RGH Questo evidenzia che: T yr + T yd ' = 1 32 allora se d’ fosse gradino, l’uscita y è differenza tra gradino e l’uscita che avrei se d’ lo mandassi come riferimento. Ma allora se manda d’ come riferimento: allora l’uscita dovuta al solo d’: quindi ‘effetto coda darà dinamica molto contenuta per yd’. • “quasi cancellazioni” poli-zeri in MF Ci siamo sempre preoccupati di ricondurre MF a casi tipici ricorrendo a compensazione poli con zeri di regolatori posti in prossimità dei poli da cancellare: In questo esempio, e in tutti i precedenti, la compensazione ↓ polo/zero è fatta in zone esterne alla MF e quindi per il calcolo dei polo closed loop ci mettevamo in MF. Può però accadere che la compensazione dei poli d’impianto debba essere fatta in zona di MF: 33 ⇒ La compensazione avviene in MF. Qui ho il caso di taglio –1 pieno, ma non del tutto: -1, -2, -1. Come si calcolano i poli dominanti? Qui i poli sono sempre due: entro con zero ed esco con –1. Ora però io ho fatto la correzione per avere un solo polo reale dominante. Siamo nella situazione: ~~ ~ Se calcolo con RGH i poli closed loop ho , che sono però a smorzamento alto: il risultato fina le è che i due poli di ξ alto più zero lo posso approssimare con un unico polo posto nei “pressi” che otterrei usando approssimazione degradata sul digramma frequenza . • Presenza di polo complessi “poco smorzati” in ciclo aperto Consideriamo la situazione: 44.1 Ci riconduciamo a situazioni tipiche purché ωt sia molto lontana da ω0 ( ↑ e ↓). *: devo stare “molto” sopra il picco a causa del margine di guadagno 44.2 Allora ωt è o molto bassa o molto grande. Vediamo se per certi motivi ωt nei presso di ω0 cosa succede. Alcuni testi suggeriscono di mettere regolatore che comprenda un notch filter “alla rovescia” , cioè del tipo: 34 F (s ) = 2ξ s2 1+ s+ 2 ω0 ω0 s 1 + ω0 2 con questo l’impianto: e a questo punto considero questo impianto e progetto regolatore. In pratica ho cancellato poli quasi immaginari. Vediamo il luogo: Dal luogo si vede che tagliando lontano sono in instabilità, da cui ho necessità di correzione. Tagliando oltre ω0 avrei dovuto correggere con polo/zero: 35 se adotto il notch rovesciato: Ho 2 problemi: 1) Qui s to cancellando poli a basso smorzamento e allora avrò 2 pericoli: - Se gli zeri non sono proprio più a sinistra e più piccoli, ma per imprecisione sono più a destra e in alto, ho passaggio in instabilità 2) Il mio sistema di controllo sarà: 36 Ora la situazione è questa: i poli closed loop poco smorzati che restano non sono visti né da r né da d. Se però arriva un d’’ allora il d’’ evidenzia sull’uscita la dinamica dei poli (ξ ,ω0) che è importante, proprio di MF perché ω0~ωt. Quindi ho creato un grosso problema. Quindi queste cose accadono su impianti noti approssimativamente. È concesso cancellare poli reali di MF con zeri perché comunque si esaurisce con costanti di tempo che volevo io. Questo problema lo risolveremo come estensione del caso più generale di sintesi regolatori con alcuni poli instabili in ciclo aperto. • Presenza di disturbi sui sensori di misura e sui segnali di riferimento Finora in quanto detto la presenza di disturbi è stata ammessa solo all’interno dell’impianto In realtà esistono disturbi che perturbano il riferimento e la misura dell’uscita y misurata. La situazione generale sarà: 37 Posso però pensare a raggruppare in un unico disturbo sommato a r: Questi disturbi sono calcolati a frequenze piuttosto alte con soglia ω dr ≥ h > 0 Da qui deduco che se sono in situazione di dover considerare questi disturbi non posso più allungare quanto voglio la banda passante, se è maggiore di h il regolatore insegue il disturbo che vede come riferimento. Allora per disturbi su riferimento devo avere ωt<h, e se h è piccolo purtroppo perdo in prestazioni dinamiche. Devo quindi privilegiare l’assenza di problemi con disturbi. Nota: se d entra nell’impianto è bene che d stia nella banda passante dell’impianto, se d entra nel riferimento è bene che invece la banda non contenga la parte frequenziale del disturbo. 38 9.2 Sintesi per impianti aventi alcuni poli sul semipiano positivo Stabilizzazione dell’impianto Supponiamo di avere un impianto G(s) con: G è instabile. Allora per prima cosa devo stabilizzare con un regolatore. Per trattare questo problema potrei partire così: - regolatore proporzionale. I poli closed loop si muovono sul luogo, si vede dal luogo delle radici che ∀K non sono in grado di stabilizzare avendo rami sul semipiano positivo. Non va bene il regolatore proporzionale, per stabilizzare devo fare in modo che oltre un certo K tutti i rami del luogo delle radici siano nel semipiano negativo, devo individuare un regolatore che realizzi questo. La soluzione è quella di sfruttare l’analogia elettrica tra poli/zeri e cariche elettriche. Più precisamente gli zeri attirano i poli e allora posso inserire nel regolatore un numero sufficiente di zeri sul semipiano negativo in modo da far si che i rami del luogo delle radici siano attratti e allora siano deviati nel semipiano negativo stabilizzando il sistema. Questa idea si presta bene al caso con soli poli sul semipiano positivo. Come possiamo fare? Vediamo un esempio: mettiamo un solo zero nel semipiano negativo: 39 Con un solo zero non si ottiene nulla perché i rami evolvono ancora sul semipiano positivo. Ora però i rami “tendono” a deviare di più verso semipiano negativo. Se l’asse fosse più a destra andrebbe bene. Allora aggiungiamo un altro zero: K ' > K ' > 0 ho stabilità. Ora il problema è dove mettere zeri e in più, così facendo, uso regolatori con soli zeri, quindi improprio e irrealizzabile, quindi in linea di principio devo inserire nel regolatore almeno un numero di poli uguale ottenendo un regolatore semplicemente proprio realizzabile. I poli dovranno essere collocati in zone tali da non perturbare troppo il luogo delle radici. Allora i poli saranno - stabili - posti a sinistra Avrei: come sistemo gli zeri? Se li metto a caso devo poi capire il K ' , valgono le solite regole: se il luogo delle radici è preciso trovo K ' con condizione di guadagno, oppure userò Bode se il luogo delle radici non è preciso: disegno modulo e fase di RG normalizzata, stabilire 40 segno di K di Bode (qui > 0 perché pari poli sul semipiano positivo) , si sposta poi l’asse unitario finché fase è multiplo dispari di 180° (in questo caso), da quel guadagno in poi siamo in stabilità. Compensazione riconducendosi al caso fase minima Quando il siste ma è stabilizzato devo soddisfare specifiche statiche e dinamiche. Io mi riconduco a casi di fase minima: se il primo zero è vicino a polo e l’altro abbastanza lontano (10 volte) e se penso ad approssimazione BF, MF, AF allora il luogo delle radici (posto valore poli in closed loop ) lo approssimo: Allora posso essere più preciso: posiziono o zero in modo di avere poli closed loop (ω0 ,ξ ) essendo gli altri posizionati in BF, gli altri in AF sono veloci: fisso zero per avere poli dominanti che voglio . Allora posso essere preciso perché: - 2 poli origine (3 poli + 1 zero) - cerchio esatto: userò la condizione di fase per fissare la posizione dello zero: 41 2ϕ1 − ϕ 2 = 180°(2k + 1) Allora il diagramma di Bode: -2/-1/-2 ora manca zero che devo posizionare. Non ho ancora posizionato –1/τ senza questo zero siamo sempre in instabilità perché non raggiungo mai il taglio con fase pari a multiplo dispari di 180°. Se poi andiamo a fare approssimazioni BF, MF, AF ~~~ La RGH ora è come nel caso –2/-1 per fase minima 42 Allora i poli li calcolo come con fase minima ⇓ lo zero lo piazzo con lo stesso metodo dei sistemi a fase minima, cioè scegliendo ω t γ e dimensionando lo zero per avere (ωt,γ). Il ragionamento su γ lo posso fare sulla fase di prima con un γ ad hoc e spostare lo zero opportunamente. ⇒ ritrovo le tecniche a fase minima poiché ho ricondotto a cluster nell’origine di poli/zeri. A partire da sistema instabile ho inserito zeri in modo da poter trattare progetto con Bode e lavorare su margine di fase ad hoc. Notiamo in ultimo che abbiamo per soddisfare errori statici uso ancora passa basso, purché non alterino MF. Progetto con il luogo elle radici Abbiamo ricondotto il problema a fase minima, però avevo visto anche il progetto con luogo delle radici, la stessa cosa la potevo fare anche con sistemi a fase minima. Sintesi a due loop Abbiamo visto contemporaneamente - stabilizzazione - specifiche inseguimento dinamico In situazioni complesse, ad esempio con un numero di poli sul semipiano positivo elevato, può essere che il progettista non sia nelle condizione di fare un regolatore che soddisfi le specifiche tutte insieme. In questo caso posso pensare a regolatori con più loop di controllo uno interno all’altro: 43 - loop interno serve solo per stabilizzare il sistema - loop esterno è progettato con criteri coincidenti con quelli per sistemi a fase minima , in relazione a sistema G costituito da impianto inserito nel loop intorno 1) individuare un regolatore che stabilizzi l’impianto à sistema closed loop è a fase minima 2) progettare un regolatore per il sistema a fase minima conseguente al punto 1) G1 è a fase minima perché G aveva solo alcuni poli Re>0, gli zeri sono zeri della catena diretta e poli della catena inversa (Re<0) e poli closed loop Re<0. I due sensori possono anche essere lo stesso: Non si è obbligati a inserire R 1 nella catena diretta loop interno e lo posso anche mettere nella catena inversa: 44 Si può notare che, posto di assegnare stessi poli closed loop, allora R1 è lo stesso, sia in diretta che inversa, perché poli non dipendono da dove è R1 ; però R0 cambierà, perché cambia il sistema. Esempio di sintesi con due loop Consideriamo esempi con sistema a fase minima ma con poli complessi poco smorzati: avere poli poco smorzati è problematico così come avere poli nel semipiano positivo ⇒ dal luogo delle radici: - taglio con regolatore in alto - inserisco zero e vado a tagliare in basso (per polo lontano) cioè nel secondo caso: 45 esattamente analogo: avere poli instabili o averli molto vicino all’asse immaginario è uguale. Il punto di riferimento è che volendo avere buoni smorzamenti sono costretto ad avere bande passanti superiori ad ω0. Il problema c’è se voglio banda passante nei pressi di ω0 , perché magari ho disturbi che si sovrappongono al riferimento. Come opero? Si fa un regolatore R1 che fissa una banda passante elevata e realizzo così il loop interno: Questo sistema in ciclo chiuso: Ora devo regolare: 46 inserisco rete passa basso e ottengo taglio a ω0. Allora con questo modo ho risolto i problemi di regolazione. 47 9.3 Sintesi per impianti aventi alcuni zeri e nessun polo sul semipiano positivo Banda passante per sistema closed loop La situazione sarà: abbiamo un solo zero sul semipiano positivo e allora K e K’ hanno segni diversi. Su Bode avremo: Posto che zeri positivi siano lontani da cluster di poli è sufficiente far sì che la frequenza di taglio e relativa riconduzione a casi tipici avvenga in zone precedente (a sinistra) delle zone dove si fa sentire l’abbassamento di fase a causa di zeri positivi: taglio in figura. Qualsiasi tentativo di usare passa alto che aumentano la fase per fissare ωt nei pressi dello zero od oltre sono destinati all’insuccesso; perché la rete passa alto compensa lo zero alzando la pendenza: il diagramma si alza (piatto) e allora il taglio sarà oltre e questo vanifica l correzione. Oppure: immaginiamo per assurdo ωt oltre 1/τ1 , allora 1/τ1 sarà in 48 BF, ma in questo caso in BF si ha |RG|>>1 e allora vicino a tale zero dovrà esserci un polo closed loop che lo maschera e quindi anche il polo vicino sarà positivo e saremo in instabilità: à poli positivi. ⇒ con i canoni di sintesi dati, cioè cercare risposta closed loop piatta per un tratto e poi I o II ordine, in questo caso lo ottengo se ωt è più piccola del più piccolo zero. In pratica i sistemi che hanno zeri positivi li hanno molto grandi e quindi la zona di controllo è ampia Poli dominanti a modulo oltre lo zero positivo Detto ciò consideriamo il caso più raro con zero più vicino: Potrebbe sorgere il dubbio che in realtà non sia del tutto vero quanto detto e sia possibile avere poli dominanti comunque grandi (ω0 ,ξ) a piacere. Se io metto zero vicino a –1/τ0 e polo lontano, cioè con regolatore opportuno: 49 se faccio così i poli dominanti hanno ω0 a piacere e sono dominanti perché ci sono loro. Questo è vero, ottengo i poli dominanti con ω 0>>1/τ1 , però la funzione di trasferimento in ciclo chiuso non è più “piatta” in un intervallo sufficientemente alto, tale cioè da ben replicare il segnale di riferimento. Infatti se completo quanto visto con i diagrammi di Bode: Fatto importante: vicino a 1/τ1 in closed loop non vi è alcun polo à lo zero positivo 1/τ1 non si troverà in zona BF con |RGH|>>1. La coppia di poli closed loop hanno modulo più piccolo di 1/τ2, allora ottengo taglio 1 e' in zona dove RGH >> 1 τ 1 1 1 ω 0 ≅ ⋅ 2 τ2 individua il taglio Allora ottengo una grande zona in MF; fuori va bene l’approssimazione, poi in MF ho zona ampia di deformazione, non ho più: 50 Comportamento tipico di un sistema a fase non minima (zero>0) È ben vero che se zeri positivi c’erano allora tali zeri li ritrovo come zeri della funzione di ciclo chiuso: allora T yr ~ 1 − sτ 1 2ξ s2 1+ s+ 2 ω0 ω0 ω 0 ~ ω t ξ dipendenteda γ la risposta a gradino sarà risposta di un termine di II ordine sottratta τ1 volte derivata della risposta al gradino: yr = y0 − τ 1 y& 0 1 1 y0 =ˆ L−1 ⋅ s 2ξ s2 1 + s + ω0 ω 02 allora avremo che 51 se lo zero è positivo ottengo sottrazione e quindi: sin introduce un ritardo nella risposta. Tentare di portare la banda passante oltre 1/τ1 non fa altro che peggiorare il ritardo. Questi sono tipici comportamenti di sistemi a fase non minima (zeri>0) saraà tanto più piccolo quanto τ piccolo e zero lontano. 52 9.4 Sintesi per impianti aventi alcuni poli e alcuni zeri sul semipiano positivo Introduzione È la situazione più complessa del caso con soli zeri su semipiano positivo poiché gli zeri attraggono sul semipiano positivo i rami del luogo delle radici. Ora avremo una ulteriore complicazione: Ora i poli mandano i rami verso gli zeri che sono sul semipiano positivo. Situazione complessa per cui non esistono approcci così ben formalizzabili come i casi precedenti e dipendono caso per caso e richiedono sensibilità del progettista e studio approfondito. Esempio 1 Immaginiamo questo caso. Per pr ima cosa devo stabilizzare: con un regolatore proporzionale non risolvo. Come posso affrontare il problema? Per prima cosa inserisco zeri (e poi poli per poter realizzare il regolatore). Per evitare che il luogo sia attratto verso sinistra inserisco uno zero (usando analogia elettrica) posto a sinistra del primo polo e alla stessa distanza tra zero e polo presente. Passerei a: Ora se sposto a sinistra lo zero renderò il luogo curvo in modo che si passi sul semipiano negativo. 53 Più avvicino lo zero al primo polo e più il cerchio si stringe, cosa che arriva al limite cancellando il polo positivo. Poi dimensiono lo zero per fissare i poli closed loop. Qui ho preso lo zero closed loop molto piccolo e allora anche avendo dominanti a ω0 grande però la risposta sarà brutta. Metterò poi lontano un polo per pratica realizzabilità del regolatore: Nonostante sia una situazione trattabile non abbiamo tradotto il luogo delle radici in diagramma di Bode. Ho stabilizzato il sistema con un regolatore R 0. A questo punto ho un sistema closed loop con soli zeri>0 e posso chiudere un altro loop e progetto R1 per impianti con soli zeri>0. Esempio 2 Per trattare questo caso, possiamo pensare di usare u regolatore proporzionale a K’<0 e quindi K<0 (4 tra poli e zeri) e aume nto il guadagno finché la situazione venga ad essere auspicabilmente poli tutti reali, uno con Re<0. Ci troveremo con: 54 La struttura poli/zeri di G1 sarà: (G1 è ancora instabile) Questa è più facilmente interpretabile alla luce dell’esempio precedente: adesso serviranno 2 zeri, questo perché in più ho un polo Re<0, però questo non da problemi perché essendo negativo lo cancello o quasi. Con uno zero cancello il polo Re<0 che non da problemi. Ora restano due poli e zero. Equilibro la struttura con lo zero (2). Ora mando (2) più a destra deformando il luogo delle radici. La speranza è che il guadagno abbia valore che mandi il ramo curvo sul semipiano negativo senza che il ramo sull’asse reale vada sul semipiano positivo. Notiamo che la tendenza di A ad andare al semipiano positivo dipende da quanto (1) è vicino: se sono sovrapposti ci riesco perché prima di partire l’altro deve arrivare. Alla fine avrei ottenuto per G2 la struttura: 55 56 9.5 Assegnamento dei poli in ciclo chiuso in forma analitica Caratteristiche del metodo Procedura analitica basata sulla soluzione di equazioni matematiche che consente in caso di difficoltà estrema (esempio poli e zeri sul semipiano positivo) di ottenere stabilizzazione del sistema. È una procedura da usare solo nei casi in cui non si riesca a capire come stabilizzare il sistema. Fornisce regolatori di ordine elevato, al minimo (n-1), dove n è l’ordine del sistema; in particolare non consente il controllo sugli zeri della catena diretta che potrebbero diventare a fase non minima. Impostazione del metodo Consideriamo espressioni di polinomio in ciclo chiuso: Φ cl = DR DG + N R N G H 0 dove n = ∂( DG ) → perché G è strettamente propria n − 1 ≥ ∂ ( NG ) Sia poi h = ∂ ( DR ) → perché R può essere semplicemente proprio h ≥ ∂( N R ) Allora Φ cl ha ordine n+h. Immaginiamo ora di rappresentare G ed R con denominatori in forma monica (primo coefficiente = 1) allora anche Φ cl sarà in forma canonica. Allora qualsiasi sia h immaginiamo di voler imporre che Φ cl = Q ∂ (Q ) = n + h Q polinomio desiderato, fissato con radici stabili. Fissati allora tutti i poli (n+h) stabili i closed loop quanto devono valere DR ed NR affinché si abbia Q? Si tratta di risolvere nei coefficienti di DR e NR: DR DG + N R N G H 0 = Q “equazione di Bezout” e risolverla nelle incognite dei coefficienti di DR ed NR. Per farlo basterà imporre eguaglianza dei coefficienti: quelli di Q sono n+h, allora da questa equazione discendono n+h equazioni: numero di equazioni = n+h 57 e risultano di tipo lineare, però D r è di grado h monico e NR è al massimo di grado h ma non monico à allora vi sono dentro n+1 coefficienti à numero incognite = 2n+1 questo sistema ammette almeno una soluzione se 1) # incognite ≥ # equazioni à 2n+1≥ n+h à h ≥ n-1 2) il termine noto del sistema di equazioni che ne conseguirà y=Ax deve essere y∈Im( A) questa 2) si dimostra che è soddisfatta se e solo se (1) DG e NG non hanno fattori in comune, che lo abbiano sempre assunto con realizzazioni minime Non resta che soddisfare la 1) fissando il regolatore di ordine ≥ n-1. Se lo fisso (n-1) avrò unica soluzione. ⇒ Posso sempre stabilizzare il sistema e poi dovrò fare l’analisi di sensitività. Notiamo che stabilizzando sistemi con poli sul semipiano positivo di fatto impostiamo il metodo. 58 9.6 Problema di controllo per sistemi con “ritardi” Sistema con ritardi Finora la T(s) è rapporto polinomi e inviando u l’uscita o le sue derivate successive cominciano ad essere non nulle già da 0+ : Esistono sistemi lineari rappresentabili da funzione di trasferimento per i quali all’invio dell’ingresso l’uscita y si realizza, con valori non nulli in almeno una sua derivata successiva, dopo T: Avremo che: T (s ) = T ( s)e − sT con e -sT ritardo Uscita del sistema con ritardo Allora l’uscita sarà: Y (s ) = T (s)U (s ) = [T ( s)U (s )]e − sT y (t ) = y (t − T ) dove y(t ) =ˆ L−1 [T (s )U (s )] 59 Esempio Il controllo di questi sistemi presenta una particolarità: è molto facile, se trascuro ritardo, finire in instabilità . Nastro trasportatore di lunghezza L e velocità v, c’è una tramoggia che deposita del materiale: Il motore comanda la valvola. Lo schema sarà: generalizzando: T yr = RG RGe −sT = 1 + RG H 0 1 + RGe− sT Stabilità in ciclo chiuso per sistemi con ritardi In funzione del ritardo si dimostra: 1) funzione di trasferimento catena diretta RG = RGe −sT è caratterizzabile da una quantità infinita numerabile di zeri e poli 60 2) la stessa cosa accade per funzione di trasferimento in ciclo chiuso: infinità numerabile di zeri e poli in ciclo chiuso (numero uguale a ciclo aperto). Resta fermo che ho stabilità se i poli hanno Re<0 in ciclo chiuso. In questo caso è molto più complicato valutare la stabilità guardando i poli, però per valutare la stabilità in closed loop vale lo stesso criterio di Nyquist, poi trasformabile nel margine di fase, che valeva per sistemi standard: rotazioni attorno a –1/K, con K = guadagno di Bode. Diagramma polare del puro ritardo Devo saper tracciare il diagramma polare di funzioni di trasferimento. Vediamo per prima cosa ∆ T ( s) =ˆ e −sT ora e − jωT = 1 ∆ T ( jω ) = e− j ωT ⇒ ϕ(ω ) = −ω T Allora avremo vettore sempre 1 e fase decresce linearmente con ω: Diagramma di Bode del puro ritardo Per Bode disegno il logaritmo del modulo e la fase in funzione di log ω. ϕ(ω ) = −ωT = −10 log10 ωT 61 Quindi il ritardo fisso introduce decadimento rapido di fase. Sintesi per impianti con ritardi Che problema pone e -sT ? Supponiamo che RG sia a fase minima: RG = K s(1 + sτ ) RG = K s (1 + sτ ) quindi: esempio fisico di prima con regolatore integrativo. Vediamo cosa succede su Nyquist: Ora per RG ho lo stesso modulo ma via via ritardato di ωT (in nero). Fissato –1/K ho stabilità senza ritardo, con ritardo ho instabilità γ<0. Lo stesso lo vedo con Bode: 62 Quindi la zona di stabilità è molto ridotta. Se T è piccolo ho meno problemi. Per questi sistemi decido γ senza ritardo e poi vedo cosa accade con ritardo e vedo se γ è ancora positivo. Anticipi di fase con passa alto sono problematici perché danno lineare che contrasta l’esponenziale. Mentre esT è irrealizzabile. Altro esempio di sistema è la doccia. 63 9.7 Controllo di sistemi non lineari tramite la tecnica di linearizzazione ai piccoli segnali Sistema non lineare Finora ho controllato sistemi lineari esprimibili con x& = Ax + Bu + Bd d ⇔ Y = [G y = Cx U G d ] U d uno dei problemi è cosa fare se il sistema è non lineare: x& = f ( x, u , d , p ) y = g ( x, p ) x stato u ingresso manipolabile d disturbi p vettore di parametri che caratterizzano funzioni Come controllo? Un metodo è ricondurre il problema al controllo di sistemi lineari qualora siano verificate le condizioni operative su sistema non lineare. Condizioni operative Supponiamo il vettore p = p0 “valore nominale dei parametri” supponiamo che il sistema sia nello stato di equilibrio x = x0 “ stato di equilibrio” a cui corrisponde un valore nominale u = u0 d = d 0 conseguenti valori costanti assunti da u, d, y y = y0 valori costanti nominali ingresso manipolabile e disturbo. Allora x& = 0 quindi: 0 = f ( x0 , u 0 , d 0 , p 0 ) y0 = g ( x0 , p 0 ) (1) (2) Tipicamente le condizioni di equilibrio più opportune sono individuate come segue: 64 Individuazione condizioni di equilibrio 1) si fissa un valore costante y0 desiderato per l’uscita 2) in corrispondenza di p0 si risolve (2) nell’incognita x0. Se ho più soluzioni scelgo la più opportuna 3) Scelto x0 lo sostituisco in (1) e in corrispondenza p0 e d0 (costante disturbo) risolverò nell’incognita u0. Tipicamente u0 è una sola, se ho più soluzioni scelgo la più opportuna. Il problema è ora portare il sistema all’equilibrio x0 in modo che lì si mantenga. Controllo del sistema non lineare Il problema di trasferire lo stato in x0 non lo trattiamo nel corso. Trattiamo invece il problema di fare in modo che una volta posti nello stato di equilibrio, si possa continuare a restarci nonostante si abbiano perturbazioni su p 0, d 0 ed eventualmente iniziali perturbazioni su x0. Stiamo assumendo possibili: p = p 0 + ∆p x = x0 + ∆x d = d 0 + ∆d ⇒ y = y0 + ∆y + + x (0 ) = x 0 + ∆ x (0 ) Se accade questo ho perturbazioni sull’uscita e sullo stato. Se accade questo per rendere contenute le perturbazioni stato/uscita allora dovrò sovrapporre al segnale manipolabile u0 una variazione ∆u che istante per istante cerchi di bilanciare gli effetti perturbativi indotti da ∆p e ∆d e quelli passati da ∆ x(0+ ). Allora avremo: Il motivo per cui R(s) è regolatore lineare è perché posto che assolva allo scopo di mantenere contenute le variazioni ∆ x e ∆y con variazioni contenute da ∆u, poste ∆d e ∆p 65 contenute, ebbene in questo caso S, ai fini delle perturbazioni, può essere sostituito dal suo sistema “linearizzato attorno al punto di equilibrio dato”. La linearizzazione è approssimazione assestata al primo termine della serie di Taylor del sistema: valuto così in modo approssimato le perturbazioni. Sistema linearizzato attorno al punto di equilibrio Infatti se considero perturbazioni avremo: x& = ∆ x& = f [( x0 + ∆x), (u 0 + ∆ u), (d 0 + ∆ d ), ( p0 + ∆ p)] y = g[( x0 + ∆ x), ( p0 + ∆p )] poste perturbazioni piccole posso scrivere con serie di Taylor: ∂f ∂f ∂f ∂f & ∆x = f ( x0 , u 0 , d 0 , p 0 ) + ∂x ∆x + ∂u ∆ u + ∂d ∆d + ∂p ∆p 0 ∂g ∂g y = g (x 0 , p 0 ) + ∆x + ∆p ∂x ∂p 0 Le matrici jacobiane vanno calcolate in (x 0 , u 0 , d 0 , p 0 ) Ma ora l’equazione è lineare: ∆x& = A∆x + B∆ u + Bd ∆d + B p ∆p ∆y = C∆x + C p ∆p Ma allora: uscita ∆y stato ∆ x ingresso ∆ u disturbo ∆p e ∆d è un sistema lin eare. Posto che siano soddisfatte tutte le ipotesi controllabili e osservabili allora potrò associare la funzione di trasferimento Gd 6 47 4 8 ∆U ∆y = G Gd G p ∆D D ∆ P 66 Schema di controllo Dal punto di vista del controllo ho un sistema lineare e devo sopprimere i disturbi e lo schema di controllo sarà: Il modo con cui ho ragionato presuppone di aver fatto 1. Aver portato il sistema all’equilibrio 2. Aver inserito il regolatore dopo In realtà questo si può e si deve evitare come sequenzialità ricorrendo all’impiego dello schema di controllo che pur continuando a fare ciò che fa (*) è strutturato come segue : viene misurato y e non ∆y, R è progettato su (*) e inserito poi nello schema in grande . Si fa questo perché inserito R ho ancora sistema closed loop non lineare che raggiunge l’equilibrio con ingressi u0, d0 , p0 e uscirà y0 : si tratta di capire quanto vale r0 e se esce y0 per avere da R l’uscita u0. Non c’è sequenzialità e aggiusto r 0. 67 Esempio: sistema idraulico Introduciamo l’elemento di non linearità: sia l’area delle vasche unitaria: h&1 = q 1 = q 12 & h2 = q12 − q 23 & h3 = q 23 − q 3 q12 = A12 (h1 − h2 ) q23 = A23 h2 la parte di uscita è proporzionale alla radice della pressione sul fondo e quindi ad h2. q1 = A1θ cioè: q12 = A12 (h1 − h 2 ) q 23 = A23 h 2 q = A θ 1 1 (2) Ora q3 è l’ingresso (q3 è il nostro disturbo), cioè un prelievo imposto. Scrivo le equazioni di stato: h&1 & h2 = & h3 h1 f h2 ,θ , q 3 h3 In realtà posso evitare di scrivere le equazioni di stato e poi linearizzare, poiché la sola equazione non lineare è la (2) posso procedere lo stesso con schemi a blocchi. Gli elementi lineari compaiono con matrici di trasferimento e faccio in modo che restino in evidenza elementi non lineari. 68 Avremo: h&1 = A1θ − A12 h1 + A12 h2 è lineare: (s + A12 )H1 = A1θ + A12 H 2 allora avrò: Per l’altra: h&2 = A12h1 − A12h2 − A23 h2 Devo lasciare separati nell’equazione i termini non lineari e penso z = − A23 h2 come ingresso esterno. Allora (s + A12 )H 2 = A12 H 1 − A 23 h2 Consideriamo l’ultima equazione: sH3 = A23 h2 − q3 Ora devo collegare insieme tutti gli schemi: 69 Posso arricchire lo schema con dinamica della valvola inserendo ad esempio una costante di tempo: Vorremmo per controllo raggiungere il unto di equilibrio costante posto che q3= q30 costante, dove h3= h30 costante. Devo individuare tutte le variabili per avere equilibrio à le grandezze devono avere valore costante. Posso partire da destra: all’equilibrio ho h3 = h30 costante poiché h3 uscita integratore h3=h30 se in ingresso all’integratore ho zero ⇒ la variabile z deve essere q30 per annullare q3=q30. Conosco z0 , allora determino h20 andando a vedere l’elemento non lineare: All’equilibrio: α 1 s + A12 s=0 siamo all’equilibrio ⇒ trovo a monte del blocco α, trovo così h10 e così via fino a θ0 , poi andando al blocco β trovo u0. Noi progetteremo il regolatore alle variazioni: 70 progetto R(s) alle variazioni e all’equilibrio u = u0 e sarò in grado di capire quanto vale e0 per u0 ⇒ se R(s) avrà polo nell’origine e=e0=0, se no metto s=0 e trovo e0 e quindi troverò r0. Devo progettare R(s) alle variazioni ⇒ da S devo dedurre al linearizzato: devo sostituire in S ad ogni variabile la sua variazione. Si ha vantaggio ad usare lo schema a blocchi: devo linearizzare le parti non lineari: z = A23 h2 dz ∆h 2 =ˆ α ∆h2 ∆z = dh2 Si tratta allora di sostituire sl blocco di prima ∆ z = α ∆h2 e le altre variabili di S indicare ∆ (∆θ , ecc.) 71 trovare allora G = funzione di trasferimento tra ∆θ e ∆h 3 Gd = funzione di trasferimento tra ∆q3 e ∆h3 Le specifiche saranno solo reiezione ai disturbi perché riferimento è zero. Esempio: Dinamo La dinamo è un motore cc messo alla rovescia. Lo schema sarà: tipicamente il valore di carico nominale ho R = R0 e che in queste condizioni si sia già proceduto a de terminare valori nominali da assegnare a - velocità albero Ω 0 - tensione eccitazione v f 0 72 in modo da avere v0 sul carico e avremo allora tutto costante (e0, Φ 0,...). Questo equilibrio lo voglio mantenere nonostante variazioni di carico e velocità di carico non esattamente costanti: R=R0+∆R Ω=Ω 0+∆Ω ∆R e ∆Ω sono disturbi sufficientemente piccoli, contrastabili con un progetto alle variazioni. Tratteremo i disturbi agendo sulla tensione di eccitazione (vf). Preciseremo dopo le caratteristiche dei disturbi. Ma or a modelliamo: 1) circuito di armatura e = R ai a + La dia + Ri a dt v = Ri a notiamo che se R è costante non c’è problema, però poiché R non è costante, ho tipica non linearità da prodotto. Allora rappresento lo schema a blocchi: 2) equazioni di interfaccia abbiamo che e = KΦΩ se Φ = costante avremo KΦ = costante come nei motori cc, qui agisco su vf e quindi Φ non è costante. Ora Ω varia e quindi ho ancora non linearità: Se l’avvolgimento di eccitazione fossa assimilabile a induttanza L f avrei: Φ = Lf if e quindi scriverei equazioni del circuito di eccitazione lineari. Noi supponiamo ora che non valga la linearità: 73 Allora Scriviamo le equazioni del circuito: vf = Rf if + dΦ dt allora: Colleghiamo il tutto: se siamo all’equilibrio ricavo da v0 tutti i valori costanti. Per linearizzare considero il blocco f(⋅ ) f (⋅) → df =ˆ α diT 74 Per la non linearità da prodotto: ∂z ∂z ∆Φ + ∆Ω = Ω 0 ∆Φ + Φ 0 ∆Ω ∂Φ ∂Ω ∂v ∂v ∆v = ∆i a + ∆R = R 0 ∆i a + ia 0 ∆R ∂ ia ∂R ∆z = Allora sostituiamo i ∆ allo schema di prima e sostituiamo le linea rizzazioni. Se ora uso l’algebra dei blocchi ottengo: Avremo che: 1. K1 1 + sτ 1 75 2. K2 1 + sτ 2 3. K 3 (1 + sτ 3 ) (1 + sτ 2 ) Ora si estrae il 2. e questo consente di avere: K 0 = K1 K 2 Lo schema di controllo sarà: Vediamo come potrebbero essere fissate le specifiche dei disturbi: è ragionevole pensare che ∆R sia a gradinata, con inserimento e disinserimento del carico: 76 Potremmo chiedere che l’errore in uscita relativo ∆R dia, a transitori esauriti, uscita nulla. Vorremmo poi che il tempo di assestamento sia una frazione di Tm : Ta ≤ αTm e con poche oscillazioni attorno al valore zero, cioè ben smorzato. Allora R(s) dovrà avere un polo nell’origine per soddisfare l’errore statico e il sistema closed loop abbia poli dominanti all’interno del settore già individuato: poi, per semplificare andavo oltre il cerchio e trovo specifiche su ωt e γ: ω t ≥ ω γ ≥ γ poi facendo la sintesi potrò scegliere in quale dei casi tipici ricadere. Questo per quanto riguarda le variazioni a gradino ∆R: da notare che mi sto comportando come relativamente a inseguimento del riferimento a gradinata e in più ho inserito un polo nell’origine. Tipicamente è meglio soddisfare specifiche dinamiche e poi con passa basso aggiusto le specifiche statiche. La ∆Ω può nascere a causa di disturbi, vibrazioni, ecc. Tipicamente ∆Ω sarà sinusoidale: DΩ = sin ωt ω ∈ [a , b ] 77 Si potrebbe volere che in corrispondenza di ampiezza massima ∆Ω max fare in modo che l’errore, a transitorio esaurito, relativo a tali disturbi sia al di sotto della soglia ε . Si ottiene che ∆ v = ∆Ω max ⋅ K 2Φ 0 1 ⋅ <ε 1 + j ωτ 2 1 + RG( j ω ) qui ho fissato un errore assoluto e non relativo. Ora vediamo come fare: Per verificare la specifica mi metto nelle condizioni peggiori e questa la avrò per Ω=a, se soddisfo qui allora la soddisfo sempre, oppure ancora peggio metto il modulo massimo K2Φ 0, cioè: ∆Ω max K 2 Φ 0 <ε 1!+ RG ( jω ) 1 + RG( jω ) ≥ ∆Ω max K 2 Φ 0 ε ω ∈ [a,b] Se in [a,b] faccio RG>>1, cioè [a,b] in BF, allora approssimo: RG ( jω ) ≥ ∆Ω max K 2 Φ 0 ε (1) Quindi ho che - [a,b] deve stare in MF à ωt dovrà essere sufficientemente maggiore di b. Le specifiche diventano: 78 ω t ≥ max[10b,ω t ] γ ≥ γ Ora poi ricondotti al caso tipico di MF e poi verifichiamo se per caso è già soddisfatta la (1) Si è verificato, stop! Altrimenti o alzo la banda passante e alzo guadagno con passa basso, se mi è vietato alzare la banda passante userò filtri passa banda o notch o se no non riesco. Possono nascere conflitti di specifiche: se ad esempio ωt≤b per problemi sui sensori ho conflitti. Collegamento di motori cc a carichi di natura generale Il motore sarà: C è la coppia che riceve il motore a causa del carico. Per il motore avevo modellato: Ora vediamo cosa succede con un carico generale: il carico lo posso modellare pensando a come risponde questo a una coppia che per lui è ingresso. Il carico avrà C come ingresso, avrà disturbi di ingresso e poi in uscita avrà y come uscita di interesse e anche Ω uguale al motore: supponiamo la linearità. 79 Y = T11C + T12 d Ω = T21C + T22 d ora il motore ha come ingresso c e uscita Ω, mentre i carico ha c come ingresso e Ω in uscita. Problema per collegamento. Risolvo il problema cambiando il modello per il carico: devo far diventare c uscita e Ω ingresso per il carico: c= T 1 Ω − 22 d T21 T21 allora: T11 T T Ω = T12 − 11 22 d Y = T 21 T21 c = 1 Ω − T 22 d T21 T21 Y = T11Ω + T12 d ∆ c = T21Ω + T22 d dove: T11 T21 1 T 21 ∆ T21 T11 ∆ T T T12 = T12 − 11 22 T21 T T22 = − 22 T21 allora il modello sarà: Questo è il sistema da controllare e attraverso l’algebra dei blocchi mi riconduco alla forma 80 G: trovata con d = 0 ed è funzione di trasferimento tra va ed y Gd: trovata con va=0 ed è funzione di trasferimento tra d ed y Ho delle semplificazioni: supponiamo che T21 (che è il closed loop con 1/Js) abbia caratteristica passa alto, il che è possibilissimo, poiché T21 ∆ 1 T21 e poiché T21 è “fisica” allora è passa basso. Ma allora proviamo a vedere come “eliminare” loop Ipotizziamo che il momento di inerzia dell’albero motore sia piccolo (J), allora 1 Js è integratore con guadagno alto. Allora la funzione di trasferimento del loop sarà: F= 1 Js T 1 + 21 Js Proviamo a valutarla usando la legge del “comanda chi sta sotto”. Disegniamo 81 Allora F ≅ T21 quindi avremo che il loop diventa: Ora isolo la parte cerchiata e calcolo la matrice di trasferimento tra [cm,d] ed y (da fare) si ritrova ancora quella iniziale Y Ω = T11 T12 cm T T ⋅ d 21 22 T(s) verificato che la matrice di trasferimento ottenuta coincide con la matrice di trasferimento del carico. Allora posto che J sia sufficientemente piccolo per stare sopr a all’andamento di T 21 ottengo come schema: 82 cm si trasferisce direttamente sul carico poiché il carico prevale sull’albero, se invece fossero confrontabili non lo avrei potuto fare. Questo non avviene sempre: può accadere che nel modellare il carico si individui T21 tale da non soddisfare la condizione di prima su tutto l’intervallo di frequenze. Ad esempio potrei avere: posso ancora usare l’approssimazione di prima perché considero il sistema in un intervallo inferiore a 1/τ e la sintesi e le specifiche sono inferiori a 1/τ. Se andassi oltre (1/τ) il modello sarebbe sbagliato. Queste considerazioni le avevamo già fatte modellando il motore cc collegato a carico inerziale attraverso una scatola di riduzione. 83 Esempio: sistema elettro-idraulico Voglio mantenere costante il livello h. Modelliamo ora il tutto tipicamente molto veloce = polo a frequenze alte. Allora posso semplificare: Questa semplificazione la giustifico con il “comanda chi sta sotto”. Modelliamo il carico: • Equazione di bilancio h& = q − q 0 per conoscere q devo considerare la pompa: 84 q = αΩ α = proporzionalità. A valle della pompa si crea la pressione p più grande di p0 atmosferica che pongo uguale a zero. Per far girare l’albero invio alla pompa potenza e supponendo di non avere perdite: lavoro meccanico (c⋅Ω) = lavoro idraulico (p⋅q) cΩ = pq = pα Ω Da cui: c = αp quindi h& = αΩ − q 0 Con questo ho già come varia la variabile di interesse in relazione ad Ω. Mi manca ancora la coppia c che calcolo se è nota p. Ho una resistenza idraulica σ: sul fondo della vasca c’è pressione idrostatica: q = (ϕ − ρ gh ) / σ { ρ = densità pressione idrostatic a Allora: p =σ q+ ρ g h quindi p =σα h+ ρ g h da cui: ( ) c = σ α 2 Ω + (ρ α g )h quindi lo schema sarà 85 Calcolare: h T11 T12 Ω c = T21 T22 q0 e poi l’attacco motore e quindi posso propormi il controllo. Esercizi proposti: 1) modellare in generale senza semplificazioni sul momento J0. Per poterlo attaccare al motore, devo invert ire la causalità, poi verificare qualora T21 è più bassa motore posso invertire; per l’equazione userò: ∑c = J α 0 avremo che: & c − rkh = JΩ però h la trovo contando di quanto avvolgo sulla ruota: & c − r 2 kθ = JΩ allora c − r 2 kθ = J θ&& in termini di Laplace: 86 Questo lo devo invertire per il collegamento. Se invece Jm è piccolo posso supporre cm=c. Potrei mettere oltre alla molla un pistone: La forza agente sull’estremo della ruota sarà: − k h − k 1 h& Esam e scritto del 20-6-1997 1) Configurazione A: G( s) = 10 1 s (1 − s ⋅10 ) G d (s ) = 1 s Configurazione B: G( s) = 10 1 (1 − s ⋅ 10) Gd (s ) = 1 s 2) Il sistema si deve prestare al controllo; per la configurazione B ho un polo instabile s=0 che non è visibile (controllabile) dall’ingresso u. Ovviamente i poli instabili devono 87 essere controllabili ed osservabili, osservabili perché se no è inutile la retroazione sull’uscita 3) Abbiamo scelto la configurazione A e allora devo innanzitutto stabilizzare il sistema. Siamo nel caso di alcuni poli sul semipiano positivo e nessuno zero sul semipiano positivo, devo introdurre un regolatore. Per prima cosa devo inserire uno zero su semipiano negativo (poiché con il regolatore proporzionale non stabilizzo) G( s) = −1 s( s − 0.1) per avere i rami in questione dovrò usare un KR<0. R( s) = K R' s + 0 .1 s + 20 per la stabilità K’R dovrà essere negativo, sufficientemente grande in modulo ~ − K R' > K K R' = − 10 + 0.1 ⋅ − 10 ⋅ − 10 + 20 − 10 − 0 .1 ≅ 100 4) Basterà dimensionare K’R con la condizione di guadagno: 88 5) Errori relativi al riferimento a gradino: sono già nulli. Errori relativi a disturbo a gradino: ci va un polo nell’origine e uno zero in BF che non alteri la MF, lo posso fare su Bode: s + 0.1 0 .1 1 + s / 0.1 = −100 ⋅ = s (s − 0.1)(s + 20 ) − 0 .1 ⋅ 20 s(1 − s / 0.1)(1 + s / 20 ) 1 + s / 0 .1 =5 s(1 − s / 0.1)(1 + s / 20 ) RG( s) = − 100 Allora preso: R' ( s ) = 0 . 1 (1 + s / 0.1) s consente di non alterare la MF e di aggiungere un polo nell’origine 89 RR 'G (s ) = 10 1 (− 100 ) 0.1(1 + s / 0.1) ⋅ 0.1 (1 + s / 0.1) = s(1 − s ⋅10 ) 20 (1 + s / 20 ) s = −0.5 (1 + s / 0.1)2 s 2 (1 − s ⋅10 )(1 + s / 20 ) 6) Disegno RGH e poi uso le approssimazioni della funzione di sensitività BF 1 RGH AF 1 MF ho gli stessi poli del closed loop Poi sovrappongo la funzione di sensitività la G d e ne faccio la somma. Esame scritto del 21-11-1997 1) T (s ) = 10 1 s (1 + s)(1 + s / 1000 )5 2) i) è già soddisfatta ii) con specifiche così strette conviene usare il luogo delle radici, lo possiamo fare 90 valendo ξ= 2 ⇒ α = 45 ° 2 metterò uno zero nei pressi di –1 e poi un polo in modo da avere Per il K’ considero anche i 5 poli in –1000, verrà enorme, ma il K di Bode non sarà enorme 3) Bode con i calcoli di guadagno del punto 2. 91 4) Avremo che G d (s ) = 1 s (s + 1000 ) allora In realtà si voleva 5) Userò la formula per l’errore: e(∞) = K Gd K 92