Esercitazione di laboratorio #5 - Controlli Automatici
Esercizio #1
Autori: M. Indri, M. Taragna (ultima modifica: 11/05/2020)
Contents
- Comandi di pulizia iniziali
- Definizione del sistema
- Punto a): studio di F(s)
- Punti b) e c): studio di Ga(s)
- Punto d): calcolo di W(s) e dei suoi poli
- Punto e): errore di inseguimento in regime permanente
- Caso e.1): r(t)=t, d1(t)=0.1, d2(t)=0.5
- Caso e.2): r(t)=2t, d1(t)=0, d2(t)=0.01t
- Caso e.3): r(t)=t^2/2, d1(t)=0, d2(t)=0
- Caso e.4): r(t)=t^2/2, d1(t)=0.1, d2(t)=0.2
Comandi di pulizia iniziali
clear all, close all, clc
Definizione del sistema
s=tf('s');
F=(s^2+11*s+10)/(s^4+4*s^3+8*s^2)
Kr=1;
F = s^2 + 11 s + 10 ------------------- s^4 + 4 s^3 + 8 s^2 Continuous-time transfer function.
Punto a): studio di F(s)
% Guadagno stazionario di F(s) Kf=dcgain(s^2*F) % F(s) ha 2 poli nell'origine % Zeri e poli di F(s) zero(F) pole(F) damp(F) % Diagrammi di Bode di F(jw) bode(F)
Kf = 1.2500 ans = -10 -1 ans = 0.0000 + 0.0000i 0.0000 + 0.0000i -2.0000 + 2.0000i -2.0000 - 2.0000i Pole Damping Frequency Time Constant (rad/seconds) (seconds) 0.00e+00 -1.00e+00 0.00e+00 Inf 0.00e+00 -1.00e+00 0.00e+00 Inf -2.00e+00 + 2.00e+00i 7.07e-01 2.83e+00 5.00e-01 -2.00e+00 - 2.00e+00i 7.07e-01 2.83e+00 5.00e-01
![](es_V_01.png)
Punti b) e c): studio di Ga(s)
Kc=1 Ga=Kc*F/Kr % Diagrammi di Bode di Ga(jw) figure, bode(Ga) % Diagramma di Nyquist di Ga(jw), con ingrandimento % in corrispondenza degli attraversamenti dell'asse reale figure, nyquist(Ga) w=logspace(0,3,1000); figure, nyquist(Ga,w)
Kc = 1 Ga = s^2 + 11 s + 10 ------------------- s^4 + 4 s^3 + 8 s^2 Continuous-time transfer function.
![](es_V_02.png)
![](es_V_03.png)
![](es_V_04.png)
Punto d): calcolo di W(s) e dei suoi poli
W=feedback(Kc*F,1/Kr) damp(W)
W = s^2 + 11 s + 10 ------------------------------- s^4 + 4 s^3 + 9 s^2 + 11 s + 10 Continuous-time transfer function. Pole Damping Frequency Time Constant (rad/seconds) (seconds) -3.79e-01 + 1.51e+00i 2.43e-01 1.56e+00 2.64e+00 -3.79e-01 - 1.51e+00i 2.43e-01 1.56e+00 2.64e+00 -1.62e+00 + 1.22e+00i 8.00e-01 2.03e+00 6.17e-01 -1.62e+00 - 1.22e+00i 8.00e-01 2.03e+00 6.17e-01
Punto e): errore di inseguimento in regime permanente
Nota bene: il sistema di controllo e' di tipo 2
We=Kr*feedback(1,Ga) Wd1=feedback(F,Kc/Kr) Wd2=feedback(1,Ga)
We = s^4 + 4 s^3 + 8 s^2 ------------------------------- s^4 + 4 s^3 + 9 s^2 + 11 s + 10 Continuous-time transfer function. Wd1 = s^2 + 11 s + 10 ------------------------------- s^4 + 4 s^3 + 9 s^2 + 11 s + 10 Continuous-time transfer function. Wd2 = s^4 + 4 s^3 + 8 s^2 ------------------------------- s^4 + 4 s^3 + 9 s^2 + 11 s + 10 Continuous-time transfer function.
Caso e.1): r(t)=t, d1(t)=0.1, d2(t)=0.5
% errore intrinseco di inseguimento a r(t) = t NULLO perché il sistema è di % tipo 2 % effetto del disturbo d1 costante sull'uscita pari a d1/(Kc/Kr) perché ci sono poli % nell'origine solo nel blocco a valle del disturbo % effetto del disturbo d2 costante sull'uscita NULLO perché c'è almeno un % polo nell'origine nel blocco a monte del disturbo errore_r=dcgain(s*We*1/s^2) effetto_d1=dcgain(s*Wd1*0.1/s) effetto_d2=dcgain(s*Wd2*0.5/s) errore_tot=errore_r-(effetto_d1+effetto_d2) open_system('es_V_1') sim('es_V_1')
errore_r = 0 effetto_d1 = 0.1000 effetto_d2 = 0 errore_tot = -0.1000
![](es_V_05.png)
Caso e.2): r(t)=2t, d1(t)=0, d2(t)=0.01t
% errore intrinseco di inseguimento a r(t) = 2t NULLO perché il sistema è di % tipo 2 % effetto del disturbo d1 NULLO essendo nullo il disturbo % effetto del disturbo d2 a rampa sull'uscita NULLO perché il sistema è di % tipo 2 errore_r=dcgain(s*We*2/s^2) effetto_d1=dcgain(s*Wd1*0) effetto_d2=dcgain(s*Wd2*0.01/s^2) errore_tot=errore_r-(effetto_d1+effetto_d2) open_system('es_V_2') sim('es_V_2')
errore_r = 0 effetto_d1 = 0 effetto_d2 = 0 errore_tot = 0
![](es_V_06.png)
Caso e.3): r(t)=t^2/2, d1(t)=0, d2(t)=0
% errore intrinseco di inseguimento a r(t) = t^2/2 pari a Kr/KGa (con KGa = Kc*Kf/Kr) % perché il sistema è di tipo 2 % effetto del disturbo d1 NULLO essendo nullo il disturbo % effetto del disturbo d2 NULLO essendo nullo il disturbo errore_r=dcgain(s*We*1/s^3) effetto_d1=dcgain(s*Wd1*0) effetto_d2=dcgain(s*Wd2*0) errore_tot=errore_r-(effetto_d1+effetto_d2) open_system('es_V_3') sim('es_V_3')
errore_r = 0.8000 effetto_d1 = 0 effetto_d2 = 0 errore_tot = 0.8000
![](es_V_07.png)
Caso e.4): r(t)=t^2/2, d1(t)=0.1, d2(t)=0.2
% errore intrinseco di inseguimento a r(t) = t^2/2 pari a Kr/KGa (con KGa = Kc*Kf/Kr) % perché il sistema è di tipo 2 % effetto del disturbo d1 costante sull'uscita pari a d1/(Kc/Kr) perché ci sono poli % nell'origine solo nel blocco a valle del disturbo % effetto del disturbo d2 costante sull'uscita NULLO perché c'è almeno un % polo nell'origine nel blocco a monte del disturbo errore_r=dcgain(s*We*1/s^3) effetto_d1=dcgain(s*Wd1*0.1/s) effetto_d2=dcgain(s*Wd2*0.2/s) errore_tot=errore_r-(effetto_d1+effetto_d2) open_system('es_V_4') sim('es_V_4')
errore_r = 0.8000 effetto_d1 = 0.1000 effetto_d2 = 0 errore_tot = 0.7000
![](es_V_08.png)