Lima, 2012
2 Introduccin
En la prctica, la seal de entrada para un sistema de control no se conoce con anticipacin, pero es de naturaleza aleatoria, y la entrada instantnea no puede expresarse de forma analtica. Solo en algunos casos especiales se conoce con anticipacin la seal de entrada y se puede expresar de forma analtica o mediante curvas. En el anlisis y diseo de sistemas de control, se debe tener una base de comparacin del comportamiento de diversos sistemas de control. Esta base se configura especificando las seales de entrada de prueba particulares y comparando las respuestas de varios sistemas a las seales de entrada. El uso de seales de prueba se justifica porque existe una correlacin entre las caractersticas de respuesta de un sistema para una seal de entrada de prueba comn y la capacidad del sistema de manejar las seales de entrada reales.
c(t ) = ctr + c ss (t ) donde el primer termino del miembro derecho de la ecuacin es la respuesta transitoria y el segundo termino es la respuesta en el estado estacionario.
, para t 0
MATLAB
Step Response
Amplitude
3 Time (sec)
Separando en fracciones parciales y aplicando transformada inversa de Laplace se obtiene la expresin en el tiempo:
c(t ) = t T + Te
t T
, para t 0
MATLAB
T = 1; t = 0:0.1:6; num = [1]; den = [T 1]; r = t; c = lsim(num,den,r,t); plot(t,r,'-',t,c,'o'); grid;
6
PREGUNTAS:
MATLAB
T = 1; num = [1]; den = [T 1]; impulse(num,den,6); grid;
3 Time (sec)
n2 s ( s + 2 n )
n2 C ( s) = 2 2 R( s ) s + 2 n s + n
Donde d = n 1 2 (Frecuencia Natural Amortiguada). Para una entrada escaln unitario R(s) = 1/s se tendr la siguiente respuesta en el tiempo:
c (t ) = 1 e nt
1 2
1 2 1 sen d t + tan
, para t 0
MATLAB
t = 0:.2:10; zeta = 0.4; wn = 1; wd = wn*sqrt(1-zeta^2); pa = -zeta*wn - wd*i; pb = -zeta*wn + wd*i; num = [0 0 1]; den = conv([1 -pa],[1 -pb]); step(num,den,t);
Step Response 1.4 1.2 1 Amplitude 0.8 0.6 0.4 0.2 0
5 Time (sec)
10
n2 1 2 (s + n ) s
MATLAB
Amplitude
t = 0:.2:10; zeta = 1; wn = 1; wd = wn*sqrt(1-zeta^2); pa = -zeta*wn - wd*i; pb = -zeta*wn + wd*i; num = [0 0 1]; den = conv([1 -pa],[1 -pb]); step(num,den,t);
Step Response 1
0.8
0.6
0.4
0.2
5 Time (sec)
10
c) Caso Sobreamortiguado ( > 1 ) Para este caso, los polos de C(s)/R(s) son
reales negativos y diferentes. Con R(s) = 1/s, C(s) tendr la forma:
C ( s) =
n2
(s + n + n 2 1)( s + n n
1 2 1) s
MATLAB
t = 0:.2:10; zeta = 1.2; wn = 1; wd = wn*sqrt(1-zeta^2); pa = -zeta*wn - wd*i; pb = -zeta*wn + wd*i; num = [0 0 1]; den = conv([1 -pa],[1 -pb]); step(num,den,t);
Step Response 1
0.8
Amplitude
0.6
0.4
0.2
5 Time (sec)
10
La respuesta transitoria de un sistema para una entrada de tipo escaln unitario depende de las condiciones iniciales. Por conveniencia al comparar respuestas transitorias de varios sistemas, es una prctica comn usar la condicin inicial estndar de que el sistema en reposo al inicio. De este modo, las caractersticas de respuesta se comparan con facilidad.
Curva de Respuesta al escaln unitario con los parmetros td, tr, tp, Mp y ts
a) Tiempo de Retardo (td): Tiempo requerido para que la respuesta alcance el 50%
del valor final.
b) Tiempo de Subida (tr): Tiempo requerido para que la respuesta pase del 10% al
90%, del 5% al 95% o del 0% al 100% de su valor final.
MATLAB
num = [0 0 10]; den = [1 2 10]; t = 0:.01:6; [y]=step(num,den,t); %datos finalvalue=polyval(num,0)/polyval(den,0) %Calculo de Tiempo de Subida n=1; while y(n)<0.1*finalvalue,n=n+1; end m=1; while y(m)<0.9*finalvalue,m=m+1; end risetime=t(m)-t(n)
c) Tiempo Pico (tp): Tiempo requerido para que la respuesta alcance el primer pico de
sobreimpulso.
MATLAB
num = [0 0 10]; den = [1 2 10]; t = 0:.01:6; [y]=step(num,den,t); %datos [Y,k]=max(y); timetopeak=t(k)
MATLAB
Step Response 1.4 System: sys Peak amplitude: 1.35 Overshoot (%): 35.1 At time (sec): 1.05
1.2
System: sys Settling Time (sec): 3.54 System: sys Final Value: 1
Amplitude
0.8
0.6
0.4
0.2
3 Time (sec)
La funcin transferencia entre la seal de error e(t) y la seal de salida r(t) es: E ( s) 1 = R( s ) 1 + G ( s ) El error en estado estacionario ser: e ss = lim e(t ) = lim sE ( s ) = lim s
t s 0 s 0
R (s) 1 + G (s)
RESOLVER
10
Cmo ser la curva de error en estado estacionario para G ( s ) = aplicarle un escaln unitario? Cmo ser la curva de error en estado estacionario para G ( s ) = aplicarle una rampa unitaria? Cmo ser la curva de error en estado estacionario para G (s ) =
aplicarle una parbola unitaria?
16 , al s + 5.6 s + 16
2
16 , al s + 5.6 s + 16
2
16 , al s + 5.6s + 16
2
11
: Encuentra la ganancia del lugar de races para un grupo de polos dados. : Grafica las curvas de magnitud y fase de Bode para un sistema dado. : Muestra los mrgenes de fase y ganancia en un diagrama de bode para un sistema dado. : Grafica la respuesta en frecuencia de Nyquist para un sistema dado. polar Muestra el diagrama polar de un sistema dado.
Esta funcin nos permite obtener la respuesta en frecuencia de Bode para un sistema. Sea el sistema representado por la siguiente funcin de transferencia 40 G (s) = 3 2 s + 7s + 25s + 10
Programa en Matlab num =[40]; den = [1 7 25 10]; sys = tf(num,den); bode(num,den); grid on title(Diagrama de Bode)
12
Podemos obtener directamente el margen de fase y ganancia cambiando el comando bode por el de margin.
Programa en Matlab num =[40]; den = [1 7 25 10]; sys = tf(num,den); margin(num,den);
Si se desea dibujar el diagrama de bode desde 0.01 rad/seg hasta 1000 rad/seg introduzca la siguiente orden:
= logspace(-2.3,100)
Este comando genera 100 puntos espaciados logartmicamente por igual entre 0.01 rad/seg y 100rad/seg.(Obsrvese que el vector especifica las frecuencias en radianes por segundo en las cuales se calculara la respuesta en frecuencia). Si se utiliza el comando bode (sys, )
13
el rango de frecuencia ser especificado por el usuario, mientras que el rango de la magnitud y el ngulo de fase se determinara automticamente. [mag,fase, ]=bode(num, den, )
Programa en Matlab num =[40]; den = [1 7 25 10]; sys = tf(num,den); = logspace(-2,3,100) bode (sys, ) grid on
2. Diagramas de Nyquist:
14
Programa en Matlab num =1; den = [1 1.8 1]; sys=tf(num,den) nyquist(sys) grid on
Si se requiere dibujar un diagrama de Nyquist manualmente, los rangos deben de ser por ejemplo desde 2 hasta 2 en el eje real y desde 2 hasta2 en el imaginario, introduzca la siguiente orden al matlab. v = [-2 2 2 2]; axis(v);
Programa en Matlab num =1; den = [1 1.8 1]; sys=tf(num,den) nyquist(sys) grid on v = [-2 2 2 2]; axis(v);
15
3. Lugar de Races.-
Programa en Matlab num =[1 0 1]; den = [1 2 0]; sys=tf(num,den) rlocus(sys) grid on
16
Esta seccin se discutir el diseo de sistemas en lazo cerrado basado en la aproximacin del diagrama de Bode. Esta aproximacin para el diseo de control es particularmente por las siguientes razones:
En el diagrama de Bode, la asntota de baja frecuencia de la curva de magnitud indica una de las constantes de error esttica. Las especificaciones de la respuesta transitoria se pueden traducir a las de respuesta en frecuencia en trminos de margen de fase, margen de ganancia, ancho de banda y as sucesivamente. Estas especificaciones se pueden manejar fcilmente en el diagrama de Bode. En particular los mrgenes de fase y de ganancia se pueden leer directamente del diagrama de bode. El diseo de un compensador o controlador para satisfacer las especificaciones dadas (en trminos de margen de fase y de ganancia) se puede llevar a cabo en el diagrama de bode de una manera simple y directa.
Considere el sistema de control mostrado a continuacin. Determinar el valor de la ganancia K para que el margen de fase sea de 60
La funcin de transferencia de lazo en lazo abierto es: s + 0.1 10 K (10 s + 1) G (s) = K x 2 = 3 s + 0.5 s + s s + 1.5 s 2 + 0.5s
17
Primero dibujar el diagrama de bode G(s) cuando K=1, donde se puede observar que la fase de 60 ocurre en la frecuencia =1.15 rad/seg. La magnitud de G(j) a esta frecuencia es de 14.4 dB. Por lo tanto la ganancia debe de satisfacer la siguiente ecuacin: 20logK =-14.4dB. K=0.1905
Programa en Matlab num =[10 1]; den = [1 1.5 0.5 0]; sys=tf(num,den) margin(sys)
18