Laboratorio Transitorios en Matlab
Laboratorio Transitorios en Matlab
Laboratorio Transitorios en Matlab
Imag Axis
3
2.5 2 1.5 1 0.5 0 0.5 1
Real Axis
K = 1;
tau = 1;
num = K;
den = [tau 1];
t = [0:0.1:10];
ye = step(num,den,t);
plot(t,ye);
title (Respuesta a un escalon unitario);
xlabel (tiempo(seg));
grid;
ANALISIS Y CONTROL DE SISTEMAS USANDO MATLAB 37
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 1 2 3 4 5 6 7 8 9 10
tiempo(seg)
Las dos caractersticas fundamentales de un sistema de primer orden son su ganancia estatica
K y su constante de tiempo . La constante de tiempo es el tiempo que tarda en alcanzar
el 63% de la salida. La ganancia estatica es el cociente entre la amplitud de salida y la de
entrada en el regimen permanente. Estos valores se pueden comprobar directamente en la
grafica o analizando el vector de datos resultante:
La respuesta a una rampa unitaria de entrada para nuestro sistema de primer orden se puede
simular mediante:
ramp = t;
yr = lsim (num,den,ramp,t);
plot (t,yr,t,ramp);
title (Respuesta a una rampa);
xlabel (tiempo(seg));
grid;
El resultado se muestra en la Fig. 2.15, en la que aparecen, tanto la rampa de entrada como
la salida. El error de seguimiento en posicion en regimen permanente puede obtenerse, al
igual que se ha hecho anteriormente, midiendo directamente en la grafica o bien a partir del
vector de datos resultante.
38 Estudio temporal y frecuencial de sistemas de primer y segundo orden
0
0 1 2 3 4 5 6 7 8 9 10
tiempo(seg)
La respuesta impulsional se puede obtener del mismo modo, pero usando en este caso la
funcion impulse (Fig. 2.16), que tiene una sintaxis similar al comando step.
yi = impulse (num,den,t);
plot (t,yi);
title (Respuesta a un impulso);
xlabel (tiempo(seg));
Respuesta a un impulso
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 1 2 3 4 5 6 7 8 9 10
tiempo(seg)
Para finalizar con la seccion de sistemas de primer orden, se va a comprobar que los resultados
coinciden con los esperados en la teora. Como es bien sabido, los sistemas lineales de primer
orden de ganancia unidad invariantes en el tiempo tienen las siguientes caractersticas (nos
remitimos a la bibliografa):
ye2 = 1 - exp(-t/tau);
yr2 = t - tau + tau * exp(-t/tau);
yi2 = (1/tau) * exp(-t/tau);
plot (t,ye,t,ye2,o);
title(Respuesta teorica a escalon unitario);
grid;
pause;
plot (t,yr,t,ramp,t,yr2,o);
title(Respuesta teorica a rampa unitaria);
grid;
pause;
plot (t,yi,t,yi2,o);
title (Respuesta teorica a impulso);
grid;
Del polinomio caracterstico se tiene que las dos races son s1,2 = wn wn 2 1, pudiendo
distinguirse los siguientes casos:
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 1 2 3 4 5 6 7 8 9 10
Respuesta terica a rampa unitaria
10
0
0 1 2 3 4 5 6 7 8 9 10
Respuesta terica a impulso
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 1 2 3 4 5 6 7 8 9 10
Figura 2.17: Respuesta a escalon, rampa e impulso del sistema de primer orden
ANALISIS Y CONTROL DE SISTEMAS USANDO MATLAB 41
t = [0:0.2:20];
wn = 1;
d = 2;
num = [wn^2];
den = [1,2*d*wn,wn^2];
ye = step (num,den,t);
plot (t,ye);
title (Respuesta a un escalon unitario);
xlabel (tiempo(seg));
grid;
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 2 4 6 8 10 12 14 16 18 20
tiempo(seg)
Figura 2.18: Respuesta a escalon del sistema de segundo orden con dos races reales distintas
d = 1;
den = [1,2*d*wn,wn^2];
ye = step (num,den,t);
plot (t,ye);
title (Respuesta a un escalon unitario);
xlabel (tiempo(seg));
grid;
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 2 4 6 8 10 12 14 16 18 20
tiempo(seg)
Figura 2.19: Respuesta a escalon de un sistema segundo orden con dos races reales iguales
d = 0;
den = [1,2*d*wn,wn^2];
ye = step (num,den,t);
plot (t,ye);
title (Respuesta a un escalon unitario);
xlabel (tiempo(seg));
grid;
d = -0.1;
den = [1,2*d*wn,wn^2];
ye = step (num,den,t);
plot(t,ye);
title (Respuesta a un escalon unitario);
xlabel (tiempo(seg));
grid;
ANALISIS Y CONTROL DE SISTEMAS USANDO MATLAB 43
1.8
1.6
1.4
1.2
0.8
0.6
0.4
0.2
0
0 2 4 6 8 10 12 14 16 18 20
tiempo(seg)
6
0 2 4 6 8 10 12 14 16 18 20
tiempo(seg)
d = 0.5;
den = [1,2*d*wn,wn^2];
ye = step (num,den,t);
plot (t,ye);
title (Respuesta a un escalon unitario);
xlabel (tiempo(seg));
grid;
0.8
0.6
0.4
0.2
0
0 2 4 6 8 10 12 14 16 18 20
tiempo(seg)
Se puede tambien analizar para este tercer caso de dos races complejas el efecto de modificar
el factor de amortiguamiento. Se muestra para valores = {0.1, 0.2, ...0.9} (Fig. 2.23).
t = [0:0.2:20];
wn = 1;
vectDelta = [0.1:0.1:0.9];
num = wn^2;
Y = [];
for ind = 1:length(vectDelta)
d = vectDelta(ind);
den = [1,2*d*wn,wn^2];
y = step (num,den,t);
Y = [Y, y];
end
plot (t,Y);
title (Respuesta a un escalon unitario);
xlabel (tiempo(seg));
grid;
1.6
1.4
1.2
0.8
0.6
0.4
0.2
0
0 2 4 6 8 10 12 14 16 18 20
tiempo(seg)
d = 0.2;
den = [1,2*d*wn,wn^2];
ye = step (num,den,t);
e(wn t) e(wn t)
1+ y 1
(1 2 ) (1 2 )
ev1 = 1 + ((exp(-d*wn*t)/(sqrt(1-d^2))));
ev2 = 1 - ((exp(-d*wn*t)/(sqrt(1-d^2))));
plot (t,ye,t,ev1,t,ev2);
title (Respuesta de sist. segundo orden)
xlabel (tiempo (s));
ylabel (salida);
grid;
Tiempo de pico: tp =
wd =
wn (1 2 )
46 Estudio temporal y frecuencial de sistemas de primer y segundo orden
1.8
1.6
1.4
1.2
salida
1
0.8
0.6
0.4
0.2
0
0 2 4 6 8 10 12 14 16 18 20
tiempo (s)
Tiempo de subida: ts = wd
Sobreoscilacion (%): S0 = e (1 2 )
Estos valores se pueden calcular analticamente y compararlos con los obtenidos directamente
de la grafica o analizando el vector de resultados.
Si el valor absoluto del cero es mucho mayor que el valor absoluto de la parte real de los
polos, apenas vara la forma de la respuesta tpica (polos dominantes). Ver Fig. 2.25.
t = [0:0.2:20];
K = 1;
wn = 1;
d = 0.5;
c = 10;
% Numeradores sin cero y con cero:
num = K * wn^2;
num2 = K * (wn^2/c) * [1 c];
den = [1 2*d*wn wn^2];
% Comparamos la salida con la correspondiente al mismo sistema sin cero:
y = step (num,den,t);
y2 = step (num2,den,t);
plot (t,y2,t,y,o);
title (Influencia de un cero lejos del eje imaginario);
polos = roots(den);
disp Magnitud de la parte real polos:;
abs(real(polos(1)))
48 Estudio temporal y frecuencial de sistemas de primer y segundo orden
0.8
0.6
0.4
0.2
0
0 2 4 6 8 10 12 14 16 18 20
Si el cero esta entre dos races reales no vara la forma de la respuesta, pero vara su rapidez
(Fig. 2.26), pues se introduce accion derivativa.
t = [0:0.2:20];
K=1; wn=1; d=2; c=0.5;
num = K*wn^2;
num2 = K*(wn^2/c)*[1 c];
den = [1 2*d*wn wn^2];
y = step (num,den,t);
y2 = step (num2,den,t);
plot (t,y2,t,y,o);
title(Influencia del cero entre polos reales);
disp Magnitud de los polos:;
abs(roots(den))
Si el cero esta mas cerca del eje imaginario que los polos reales, aumenta la rapidez de la
respuesta (Fig. 2.27), pudiendo la salida rebasar ampliamente su valor de regimen perma-
nente. Como el efecto derivativo es muy grande, aunque el sistema sin el cero no sobrepasara
el valor de regimen permanente, el efecto del cero hace que s sobrepase dicho valor.
t = [0:0.2:20];
K=1; wn=1; d=2; c=0.05;
num = K*wn^2;
num2 = K*(wn^2/c)*[1 c];
den = [1 2*d*wn wn^2];
y = step (num,den,t);
ANALISIS Y CONTROL DE SISTEMAS USANDO MATLAB 49
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 2 4 6 8 10 12 14 16 18 20
y2 = step (num2,den,t);
plot (t,y2,t,y,o);
title(Influencia del cero cercano al eje imag.);
disp Magnitud de los polos:;
abs(roots(den))
4.5
3.5
2.5
1.5
0.5
0
0 2 4 6 8 10 12 14 16 18 20
t = [0:0.2:20];
50 Estudio temporal y frecuencial de sistemas de primer y segundo orden
y = step (num,den,t);
y2 = step (num2,den,t);
plot (t,y2,t,y,o);
title(Influencia de un cero positivo);
0.8
0.6
0.4
0.2
0.2
0.4
0 2 4 6 8 10 12 14 16 18 20
Al regimen transitorio afectan fundamentalmente los polos y ceros cercanos al eje imaginario.
El efecto de un cero adicional se ha visto anteriormente. Analizamos ahora el de un polo
adicional. Supongamos la funcion de transferencia siguiente:
p K wn2
G(s) =
(s2 + 2wn s + wn2 )(s + p)
t = [0:0.2:20];
K=1; wn=1; d=0.5; p=10;
num = K*wn^2;
num2 = wn^2*K*p;
den = [1 2*d*wn wn^2];
den2 = conv (den,[1 p]);
y = step (num,den,t);
y2 = step (num2,den2,t);
plot (t,y2,t,y,o);
title (Influencia de un polo lejano);
disp Situacion de los polos:;
roots(den2)
Como se observa en la Fig. 2.29 la influencia es muy pequena o casi inexistente en este caso.
0.8
0.6
0.4
0.2
0
0 2 4 6 8 10 12 14 16 18 20
t = [0:0.2:20];
K=1; wn=1; d=0.5; p=0.2;
num = K*wn^2;
num2 = wn^2*K*p;
den = [1 2*d*wn wn^2];
den2 = conv (den,[1 p]);
y = step (num,den,t);
y2 = step (num2,den2,t);
plot (t,y2,t,y,o);
title (Influencia de un polo lejano);
disp Situacion de los polos:;
roots(den2)
52 Tratamiento mediante funciones de transferencia. Sistemas discretos
0.8
0.6
0.4
0.2
0
0 2 4 6 8 10 12 14 16 18 20