Objetivo: El objetivo de esta prctica es dar una introduccin a algunas funciones de Matlab encaminadas en el rea de control para instrumentacin.
Introduccin: En el rea de Instrumentacin Industrial, Control Automtico y Control Discreto es muy utilizado el sistema de representacin de la planta en funcin de transferencia (transfer function), ceros polos y ganancia (zpk) y el espacio de estado; Matlab permite realizar estas operaciones con comandos y funciones especficas del mismo programa, las cuales se tratarn en el desarrollo de esta prctica.
Desarrollo: Matlab tiene rdenes tiles para representar un modelo matemtico de un sistema lineal as como la resolucin de fracciones parciales, las instrucciones de Matlab que se vern en el transcurso de esta prctica son:
Comandos de Matlab Descripcin y sintaxis residue & residuez Representacin de un sistema racional (numerador, denominador) en fracciones parciales. Tf Genera una funcin de transferencia a partir de los coeficientes del numerador y denominador b 0 , b 1 , b 2 , , b m y o 1 , o 2 , , o n . Zpk Genera una funcin de transferencia a partir de los polos, ceros y ganancia dc del sistema de control. tf2zp Transforma un sistema representado como funcin de transferencia, |num(s) Jcn(s)] a la forma zpk. |z, p, k] = t2zp(num, Jcn) zp2tf Transforma un sistema representado como zpk, a funcin de transferencia |num(s) Jcn(s)] . |num, Jcn] = zp2t(z, p, k) Ss Representacin de un sistema de control en el espacio de estados. Este sistema se define matricialmente. sys1 = ss(A, B, C, ). tf2ss Transforma un sistema representado como funcin de transferencia, |num(s) Jcn(s)] al espacio de estados. |A, B, C, ] = t2ss(num, Jcn) ss2tf Transforma un sistema representado en el espacio de estados a funcin de transferencia, |num(s) Jcn(s)] |num, Jcn] = ss2t(A, B, C, )
Es importante que el estudiante tenga conocimientos bsicos de sistemas de control, representacin de los sistemas de control, respuesta al paso y al impulso, etc.
Para mayor entendimiento de cada una de las funciones utilizadas en la prctica se recomienda utilizar la ayuda de Matlab. > bclp 'comonJo'
Ejemplo_01:
Un sistema de control LTI, esta representado por la siguiente funcin de transferencia:
0(s) = S2 s (s 2 +12s + S2)
Se pide obtener la representacin de fracciones parciales de dicho sistema.
El scrip de Matlab puede quedar de la siguiente manera:
disp('Obtencin de las fracciones parciales del sistema') %Ingresar el vector de coeficientes del numerador num = [32]; %Ingresar el vector de coeficientes del denominador den = conv([0 1 0],[1 12 32]); %Se obtiene la funcin de transferencia G(s) Gs = tf(num,den); %Se obtienen las fracciones parciales [r,p,k] = residue(num,den); %r = residuo de la divisin %p = polos del sistema %k = coeficientes directos o fracciones %G(s)= k(1)/(s+p(1)) + k(2)/(s+p(2))+ ... + r
La respuesta de Matlab una vez se ejecuta el escrip es:
Transfer function: 32 ------------------------ s^3 + 12 s^2 + 32 s
r = p= k=
1 -8 [ ] -2 -4 1 0
Cuya representacin en fracciones parciales ser:
0(s) = 1 s + 8 + -2 s + 4 + 1 s
Ejemplo_02:
Transcriba el siguiente cdigo en el editor de matlab, gurdelo con un nombre apropiado en la carpeta que personaliz en la gua #5. Corra el programa y analice cada una de las operaciones realizadas, describa el proceso que se sigue en el cdigo. Cambie los parmetros y modifique algunas operaciones si es necesario, analice los cambios en las respuestas.
close all; echo off; clc; % Creacion del sistema disp('Sistema sujeto a analisis') sysLA=zpk([],[0 -5],4); sys=tf(feedback(sysLA,1)) [num,den]=tfdata(sys); num=num{1};den=den{1} Wn=1/sqrt(den(1)/num(3)); Z=((den(2)/num(3))*Wn)/2; disp('Amortiguamiento') Z disp('Frecuencia de las oscilaciones libres') Wn %sys=tf(num,den) % Sistema sujeto a analisis disp('Valor en estado estable') SS=dcgain(sys) % Valor en estado estable pause; clc; [y,t]=step(sys); plot(t,y,'b'); title('Respuesta al paso'); disp('Respuesta al paso'); grid;
% Tiempo de establecimiento; pause; clc; hold on; l=length(t); while abs(y(l)-SS)<=0.02*SS l=l-1; end
ts=t(l);ys=y(l); disp('Tiempo de establecimiento'); disp(' Banda del 2%'); ts plot(ts,ys,'mo') title('Establecimiento'); legend('Respuesta al Paso','Tiempo de establecimiento',4);
% Tiempo de subida; pause; clc; n=1;m=1; while y(n)<=0.09*SS,n=n+1; end while y(m)<=0.9*SS,m=m+1; end t1=t(m);y1=y(m); t2=t(n);y2=y(n); tr=t1-t2; disp('Tiempo de subida'); tr plot(t1,y1,'kx',t2,y2,'kx') %line([t2,t1,t1,t1],[y2,y2,y1,0.5*y2]); title('Tiempo de Subida'); legend('Respuesta al Paso','Tiempo de establecimiento',... 'Tiempo de Subida 1','Tiempo de Subida 2',4);
% Tiempo de demora; pause; clc; n1=1; while y(n1)<=0.5*SS,n1=n1+1; end td=t(n1);y3=y(n1); disp('Tiempo de Demora'); td plot(td,y3,'ko') title('Tiempo de Demora'); legend('Respuesta al Paso','Tiempo de establecimiento',... 'Tiempo de Subida','Tiempo de Demora',4);
Ejemplo_03
Un sistema de control est representado por el diagrama de bloques mostrado en la figura 1. Se pide: Hallar la funcin de transferencia del sistema en lazo abierto. Hallar la funcin de transferencia del sistema en lazo cerrado, realimentacin unitaria. Hallar la representacin en la forma zpk. Simular el sistema a una entrada escaln, impulso y rampa. (step, impulse y lsim) Obtener la representacin del sistema en el espacio de estado. (matrices A, B, C, D) Revisar el comando canon. Para qu sirve? Cmo se utiliza?