Controlli Automatici LB Esempio di regolatore Matteo Sartini DEIS-Università di Bologna Tel. 051 2093872 Email: matteo.sartini@unibo.it URL: www-lar.deis.unibo.it/people/msartini/
Problema G(s) = 15000 (s+150)(s 2 +2s+49) Considerando un gradino di ampiezza 2 di riferimento si vuole: Errore a regime inferiore del 3% Sovraelongazione nulla della risposta Tempo di assestamento al 5% minore di 0.5 secondi Considerando un disturbo sinusoidale sull uscita di ampiezza massima a 1.0 a pulsazione inferiore a 0.01 rad/sec Attenuazione superiore di 30 volte di tale disturbo Margine di fase superiore a 45 per garantire robustezza Rumore di misura a 100 rad/sec 2
Analisi del plant 3
Analisi del plant 4
Analisi poli C.C. >> damp(g) Eigenvalue Damping Freq. (rad/s) -1.00e+00 + 6.93e+00i 1.43e-01 7.00e+00-1.00e+00-6.93e+00i 1.43e-01 7.00e+00-1.50e+02 1.00e+00 1.50e+02 Il guadagno statico del sistema è 2.0408 5
Risposta ad anello aperto 6
Analisi specifiche statiche Per soddisfare le specifiche statiche: Errore a regime inferiore del 3% 1 1 + μ 0.03 μ 32.3333 Compensare il disturbo sull uscita pulsazione inferiore a 0.1 rad/sec [Amp,Phase] = bode(g,0.1); Amp=2.04 Guadagno > 30/2.04 = 14.07 Prendo K> 32.33 prendo K= 35 7
Sistema esteso 8
Analisi dinamica Si richiede un tempo di assestamento < 0.5 secondi Sovraelongazione nulla della risposta Per imporre questa specifica non basta imporre un delta > 0.7 Posso avere sovraelongazione anche dovuta non solo ai poli CC (Code, Windup, ecc ) Prendo come margine di fase Mf=70 per garantire robustezza Calcolo la c c = 3 Tai = 8.5rad /sec 9
Analisi dinamica La frequenza di attraversamento imposta è prossima ai poli complessi e coniugati. Devo scegliere una frequenza di attraversamento distante dai poli complessi e coniugati. Posso tagliare dopo i poli complessi e coniugati Posso tagliare prima dei poli complessi e coniugati Sul sistema è presente un rumore di misura alle basse frequenze, se taglio dopo i poli complessi e coniugati, non attenuo questo rumore Devo tagliare prima dei poli complessi e coniugati 10
Implementazione regolatore Decido di tagliare a 2 rad/sec Fisso il margine di fase non a 70 ma a 90 Andando a guardare la f.d.t del mio sistema esteso vedo che a quella frequenza la fase è circa -6 Il margine di fase di 70 implica che la mia fase dovrà essere di -180 + 70 = 110 ma un polo sfasa al massimo di 90 quindi non potrò mai arrivare a 110. Aumento il mio margine di fase. 11
Codice per ricavare regolatore wc=2; Mf=90; %Metto Mf a 90 perchè con un polo al massimo sfaso di 90 delta=mf/100; [k,p]=bode(ge,wc); k=20*log10(k); phi=(-180-p+mf)*pi/180; %% sfasamento necessario M=10^(-(k)/(20)); %% attenuazione necessaria uno=(m<cos(phi)); % Verifica sulla correttezza tau=(cos(phi)-1/m)/(wc*sin(phi)); % tau mediante inversione alpha=(m-cos(phi))/(wc*sin(phi))/tau; % alpha mediante inversione R1d=(1+alpha*tau*s)/(1+tau*s); 12
Uscita del mio sistema in catena chiusa Uscita oscillatoria Anche con delta =0.9 Perché? Non ho tagliata abbastanza lontano dai miei poli complessi e coniugati Posso migliore con Azione in avanti, ma ho piccole sovraelongazioni 13
Luogo delle radici I poli complessi e coniugati sono molto vicino all asse immaginario 14
Funzione d anello I Poli C.C. mi danno un effetto indesiderato sulla funzione d anello, che si ripercuote sulla risposta. 15
Soluzione Rallento ancora il mio sistema Sarà l azione in avanti a portare in specifica dinamica il mio sistema Decido di tagliare a 0.2 rad/sec (una decade prima dei poli C.C.) Sistema molto lento. Avrò una reiezione dei disturbi lenta. Azione in avanti Inverto il plant ed aggiungo poli in alta frequenza per la fisica realizzabilità del regolatore 16
Uscita del sistema Il polo del regolatore È molto prossimo ad essere un polo nell origine. Regolatori poco eleganti. 17
Esempio 2 Si consideri al seguente f.d.t. G(s) = Si richiede di soddisfare 6500 (s +100)(s 2 + 2s + 65) Errore a regime nullo in presenza di un gradino unitario, e di un disturbo sull uscita a gradino di ampiezza 0.05 Massima sovraelongazione alla risposta inferiore al 5% Tempo di assestamento al 5% inferiore a 0.6s Margine di fase superiore a 40 per garantire robustezza Sulla misura è sovrapposto un rumore di misurasinusoidale alla frequenza di 3000 rad/sec e ampiezza pari a 0.05 18
Soluzione esercizio Guardare file matlab e simulink collegato eslb.m eslbsim.mdl 19
Discretizzazione Comando matlab per discretizzare f.d.t. è il comando c2d SYSD = C2D(SYSC,Ts,METHOD) SYSC è la f.d.t. continua. SYSD è la f.d.t. discreta METHOD è il metodo di discretizzazione scelto: 'zoh' Zero-order hold 'foh' Linear interpolation of inputs (triangle appx.) 'imp' Impulse-invariant discretization 'tustin' Bilinear (Tustin) approximation 'prewarp' Tustin approximation with frequency prewarping. la frequenza Wc (in rad/sec) è specificata con SYSD = C2D(SYSC,Ts,'prewarp',Wc) 'matched' Matched pole-zero method (for SISO systems only). Quando non viene inserito il metodo, 'zoh' è di default. 20