Para esta semana en el laboratorio de esta clase nos toco realizar otro
problema del libro del cual se muestra su referencia en la parte
inferior de este
post, y este fue el problema que elegí:
Solución:
Siendo el error de velocidad estatica Kv igual a 50 sec^-1 tenemos que K = 50 y podemos graficar el diagrama de Bode de:
function Null = diagrama1()
num = [0 0 50];
den = [1 1 0];
w = logspace(-1, 2, 100);
bode(tf(num, den), w);
title("diagrama de bode G(s) = 50/s(s+1)")
endfunction
Ahora el siguiente paso es determinar las frecuencias de esquinas w=1/T
y w=1/alfa*T del compensador. La magnitud de la modificación en la curva de magnitud debido a la inclusión del termino (T*s+1)/(alfa*T*s + 1) es:
tomando en cuenta que:
Ahora necesitamos encontrar la frecuencia de punto que hace que cuando el compensador es añadido, la magnitud total se vuelve 0. del diagrama de Bode anterior podemos encontrar frecuencia de punto donde |G1(jw)| = -8.239 dB lo cual ocurre aproximadamente en w = 11.4 rad/sec.
ahora con esto podemos obtener:
Entonces el compensador debería estar determinado por:
Donde Kc es:
Ahora podemos producir el siguiente diagrama de Bode de la función anterior.
function Null = diagrama2()
num = [11.325 50];
den = [0.03397 1];
w = logspace(-1, 3, 100);
bode(tf(num, den), w);
title("diagrama de bode")
endfunction
La función del sistema de lazo abierto es la siguiente:
El siguiente programa produce un diagrama de Bode de la función anterior.
function Null = diagrama3()
num = [0 0 1000 4415.2];
den = [3 91.3041 88.304 0];
w = logspace(-1, 3, 100);
bode(tf(num, den), w);
title("diagrama de bode")
endfunction
Ahora es necesario obtener la respuesta del escalón unitario y la rampa unitaria del sistema original que no tenia compensación. EL sistema original tenia la siguiente función de transferencia de lazo cerrado:
La función de transferencia del sistema con compensación debería ser la siguiente:
El siguiente código produce las respuestas de un impulso de escalón unitario de ambos sistemas:
function Null = diagrama4()
num = [0 0 1];
den = [1 1 1];
numc = [0 0 1000 4415.2];
denc = [3 91.3041 1088.304 4415.2];
t = 0:0.01:8;
c1 = step(tf(num, den),t);
c2 = step(tf(numc, denc),t);
plot(t,c1,t,c2);
title("Respuesta a un escalon unitario sin compensacion y con sistema compensado");
xlabel("t Sec");
ylabel("Outputs");
text(1,1.25,"Sistema compensado");
text(2, 0.5,"Sistema no compensado");
endfunction
El siguiente código produce la respuesta de un impulso de rampa unitaria de ambos sistemas.
function Null = diagrama5()
num = [0 0 0 1];
den = [1 1 1 0];
numc = [0 0 0 1000 4415.2];
denc = [3 91.3041 1088.304 4415.2 0];
t = 0:0.01:8;
c1 = step(tf(num, den),t);
c2 = step(tf(numc, denc),t);
plot(t,c1,t,c2, t, t);
title("Respuesta a un impulso unitario sin compensacion y con sistema compensado");
xlabel("t Sec");
ylabel("Outputs");
text(1,1.25,"Sistema compensado");
text(2, 0.5,"Sistema no compensado");
endfunction
El código fue hecho para octave utilizando la librería de control y las gráficas con Gnuplot.
Referencias:
El problema fue sacado del libro:
Ogata, Katsuhiko. Modern Control Engineering / Katsuiko Ogata.
Tehran: A'eizh, 1381 = 2002.
964.: ill
Reprint of 4th ed. 2002, Prentice Hall, New Jersey.