Control de Sistemas: Respuesta Transitoria, Transformada de Laplace y Compensación con MATLAB
Funciones de transferencia y operaciones en MATLAB
Sea el sistema con las siguientes ecuaciones: qe(t) - qs(t) = A·dh/dt, qs(t) = k·raíz(h(t)).
Funciones de transferencia de ejemplo:
G1(s) = s/(s3+7s2+2)
G2(s) = 10(s+1)/(8s+10)·... (s(s+2)(s+7))
G3(s) = e-0.5s/(s+1)
Código MATLAB
G1 = tf([1 0],[1 7 0 2]);
G2 = zpk([-1 -10],[0 -2 -7],10);
G3 = tf(1,[1 1],'inputdelay',0.5);
Conexiones de bloques
- Serie: M = series(G1,G2);
- Paralelo: M = parallel(G1,G2);
- Realimentación negativa unitaria: M = feedback(G,1);
- Realimentación positiva unitaria: M = feedback(G,1,1);
- Realimentación convencional: M = feedback(G,H);
Simulación
t = 0:0.01:100;
y = [zeros(1,20) 10];
step(G,2*G)
bode(G)
T = 2*pi/100;
[u,t] = 3*gensig('sin',T);
lsim(G,u,t)
Transformada de Laplace
syms ts;
y6 = ts;
Y6 = laplace(y6)
syms s a;
Y7 = 1/(s+a)^3;
y7 = ilaplace(Y7)
Sistema de segundo orden
G(s) = Ke·wn2 / (s2+2ζwns+wn2) = Ke·wn2 / ((s+σ)2+wd2)
Polos: s = -ζwn ± j·wn·raíz(1-ζ2) = -σ ± j·wd
Relaciones:
- σ = ζwn
- wd = wn·raíz(1-ζ2)
- ζ = σ/wn = cos θ
- wn = raíz(σ2+wd2)
Donde: Ke: ganancia estática; ζ: coeficiente de amortiguamiento (adimensional); wn: frecuencia natural no amortiguada (rad/s); σ: constante de amortiguamiento (rad/s); wd: frecuencia amortiguada (rad/s).
Respuesta impulsional
- ζ = 0: g(t) = Ke·wn·sen(wnt)·u0(t)
- 0 < ζ < 1: g(t) = (Ke·wn/raíz(1-ζ2))·sen(wdt)·e-σt·u0(t)
- ζ = 1: g(t) = Ke·wn2·t·e-wnt·u0(t)
- ζ > 1: g(t) = (Ke/(T1-T2))·[e-t/T1 - e-t/T2]·u0(t)
Respuesta al escalón unitario
- 0 < ζ < 1: Ay0(t) = Ke[1 - (sen(wdt+θ)/sen θ)·e-σt]·u0(t)
- ζ = 0: Ay0(t) = Ke[1 - cos(wnt)]·u0(t)
- ζ = 1: Ay0(t) = Ke[1 - (1+wnt)·e-wnt]·u0(t)
- ζ > 1: Ay0(t) = Ke[1 - (T1/(T1-T2))·e-t/T1 + (T2/(T1-T2))·e-t/T2]·u0(t)
Especificaciones temporales
- Tiempo de subida: tr = (π - θ)/wd
- Sobreoscilación: Mp = e-σπ/wd · 100 %
- Tiempo de establecimiento: ts = π/σ
- Tiempo de pico: tp = π/wd
- Número de oscilaciones: N >= tg θ
Compensación y reducción de sistemas en MATLAB
G1 = tf(1,[1 1]); G2 = tf(1,[1 2]); G3 = tf(2,[1 0]); G4 = G2;
G12 = G1*G2;
G4f = feedback(G4,1);
G34f = G3*G4f;
G5 = zpk([],[-1-i -1+i],-10);
Gd = G12 - 1 - G34f;
Gd = minreal(Gd);
M1 = feedback(Gd*G5,(0.1+0.5)); % Y/X
M2 = feedback(1,Gd*G5*(0.1+0.5)); % E/X
t = 0:0.01:100;
SP11 = [zeros(1,1000) 1.5*ones(1,2000) 3*ones(1,2000) 1.5*ones(1,2000) 1.5-0.15*t(1:1000) zeros(1,2001)];
lsim(M1,SP11,t)
Análisis de cancelación polo-cero
G1 = (s+10)/(s2+2s+10); G1r = 10/(s2+2s+10); polo dominante pd = -1 ± 3j; cero z1 = -10. El cero es eliminable ya que |z1| = 10 > 6σd = 6. Solo se modifica la ganancia del factor. El sistema original arranca con pendiente no nula mientras que la reducida es nula; al tener el sistema original un cero adicional, será algo más rápido y oscilatorio que la reducida.
G2 = (s+4.1)/((s+4)(s2+2s+10)); G2r = 4.1/(4(s2+2s+10)); pd = -1 ± 3j; p3 = -4; z1 = -4.1. El par polo-cero es eliminable porque 6|p1-z1| = 0.6 < |p1| = 4 y 6|p1-z1| = 0.6 < |p1-pd| = 4.24. Solo se corrige el factor de ganancia. Al tener el sistema original un par polo-cero, el polo dominante será más lento y menos oscilatorio que en la reducida.
G3 = (s-4.1)/((s-4)(s2+2s+10)); p1,2 = -1 ± 3j; pd = 4; z1 = 4.1. El sistema es inestable, por lo que no puede reducirse.
G4 = 0.2/((s+0.1)(s2+2s+10)); G4r = 0.2/(10(s+0.1)); p1,2 = -1 ± 3j; pd = 0.1. Los polos complejos son eliminables porque |σ1| = 1 > 6σd = 0.6. Solo se modifica el factor de ganancia. El sistema original arranca con pendiente nula mientras que la reducida no; el original tiene dos polos complejos conjugados adicionales, lo que hará la respuesta más lenta y con pequeñas características oscilatorias que la reducida no tiene.
G5 = (s+3)(s2+4s+5)/((s+10)(s2+2s+10)); pd = -1 ± 3j; p3 = -10; z1 = -3; z2,3 = -2 ± j. Los ceros están cerca de los polos dominantes, no son eliminables. El polo p3 cumple la condición de distancia pero, como n = m, no es eliminable ya que se perdería la condición de causalidad.