Академический Документы
Профессиональный Документы
Культура Документы
SIMULACIN DE SISTEMAS:
FUNCIONES PARA CONTROL
2 4 + 20
=
( + 5)( 2 + 22 + 10)
Representacin de polos y ceros
Escribimos num y den, utilizar la funcin conv:
>> printsys(num,den)
num/den = Pole-Zero Map
5
s^2 - 4 s + 20
4
-----------------------
s^3 + 7 s^2 + 20 s + 50
3
Imaginary Axis
>> denraices=roots(den) % polos del sistema 0
-1
>>pzmap(num,den) -2
>>axis([-6 3 -5 5]) -4
-5
-6 -5 -4 -3 -2 -1 0 1 2 3
Real Axis
Descomposicin en Fracciones Parciales
Una FT G(s) se descompone en fracciones parciales con:
>> [r,p,k]=residue(num,den)
+ + () () ()
= = = + + + ()
+ + () () ()
5 Lo que equivale a:
Ejemplo: =
2 +2
() 2.5 2.5
= +
>> [r,p,k]=residue([5],[1 2 0]) () + 2
r= p= k=
-2.5000 -2 []
Residuo = 0
2.5000 0
Descomposicin en Fracciones Parciales
1. Presentar el equivalente en funciones parciales de la
siguiente FT:
()
= =
() + +
>> [num,den]=residue(r,p,k)
2. Convertir:
() . .
= +
() + + +
Objetos Simblicos en Matlab
Matlab cuenta con herramientas para realizar anlisis
simblico, bajo su sintaxis habitual. Ej.: y=int(x^2)
Por tanto:
1
6 4 2 2
2
= 6 cos 4 4 4
+ 4 + 20
Ejercicios
1. Obtener la FT para el diagrama de polos y ceros de la figura:
Pole-Zero Map
4
1
Imaginary Axis
-1
-2
-3
-4
-9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2
Real Axis
2 3
a) = (1)(+3)
62 +26+8
b) = 3 +42 +14+20
10 2 +51+56
c) = (+4)(+2)2
() 10 + 100 2
= 3
() + 10 2 + 100 + 600
1
Donde P(s) es un escaln de fuerza de 10N. 2
10
=
Expandir en fracciones parciales y aplicar transformada inversa
Solucin de Ecuaciones Diferenciales
Una de las maneras de resolverlas es utilizando la funcin
dsolve
D indica la primera diferenciacin de la variable dependiente.
D2 indica la segunda diferenciacin y as sucesivamente.
La combinacin de dsolve con el smbolo Dn permite
determinar su solucin con Matlab.
2
2
+2 + 10 = 2()
0.25
0.2
0.15
0.1
0.05
0
0 1 2 3 4 5 6
t
Respuesta Transitoria en Matlab
Se presentan las bondades de Matlab para obtener la respuesta de los
sistemas ante entradas en el dominio del tiempo como el escaln,
impulso y rampa.
Se analizan las respuestas ante condiciones iniciales y funciones de
tiempo arbitrarias.
2
= 2
+ 2 + 2
= Factor de amortiguamiento
= Frecuencia natural
Respuesta Transitoria en Matlab
Considerando, por ejemplo, el cado de
= 0.4
= 5 rad / seg
En Matlab:
>> wn=5;
>> Fa=0.4;
>> [num0,den]=ord2(wn,Fa);
>> num=wn^2*num0;
>> printsys(num,den,'s')
num/den =
25
--------------
s^2 + 4 s + 25
Respuesta al Escaln
Ej 01: Considerando el sistema mecnico mostrado, montado sobre una
plataforma mvil, donde u es el desplazamiento de entrada i y es el
desplazamiento de salida, derivar una funcin de transferencia y calcular su
respuesta al escaln en Matlab.
2
2 = ( )
2
2 + + = +
>> sys=tf(num,den);
Amplitude
>> step(sys)
>> grid 0.5
0
0 1 2 3 4 5 6
Time (sec)
Respuesta al Escaln
Asignando algunas caractersticas personalizadas:
>> t=0:0.01:8;
>> num=[2 10];
>> den=[1 2 10];
>> sys=tf(num,den);
>> step(sys,t);
>> grid
>> title('Respuesta al escaln Sistema Masa-Resorte','Fontsize',20')
>> xlabel('t','Fontsize',20')
>> ylabel('Salida y','Fontsize',20') Respuesta al escaln Sistema Masa-Resorte
1.5
1
Salida y
0.5
0
0 1 2 3 4 5 6 7 8
t (sec)
Respuesta al Escaln
Es posible tambin obtener curvas de respuesta al escaln a partir de
ecuaciones de estado.
Dado el sistema:
1 1 1 1 1 1 1
= 2 +
2 6.5 0 1 0 2
1 1 0 1 0 0 1
2 = 2 + 0 0 2
0 1
Graficar las 04 respuestas individuales al escaln.
Respuesta al Escaln
Dada la correspondencia de Funciones de Transferencia a partir de la
ecuacin en espacio de estado, de acuerdo a la ecuacin:
= ( )1
1
1 () 2 + + 6.5 2 + + 6.5 1 ()
=
2 () + 7.5 6.5 2 ()
2 + + 6.5 2 + + 6.5
Respuesta al Escaln
Sin embargo, graficando directamente de las matrices A, B, C y D, se obtiene
una respuesta equivalente:
Step Response
From: In(1) From: In(2)
>> A=[-1 -1;6.5 0]; 0.4
-0.4
2
1.5
To: Out(2)
0.5
0
0 2 4 6 8 10 12 0 2 4 6 8 10 12
Time (sec)
Respuesta al Escaln para sistemas Retroalimentados
Considerando el sistema mostrado en la figura, obtener la salida C(t),
cuando r(t)=1 y d(t)=0 y viceversa.
()
() ()
>> num1=[1]; 1
>> grid 0
0 0.5 1 1.5 2 2.5
t seg
3 3.5 4 4.5 5
>> t=0:0.01:5;
>> num1=[1];
>> den1=[1 2 0];
>> sys1=tf(num1,den1);
>> sys=feedback(sys1,[10]);
>> [c_d,t]=step(sys,t);
>> plot(t,c_d)
>> grid
>> title('Respuesta al escaln unitario C_d(s)/D(s)')
>> xlabel('t seg')
>> ylabel('Salida Y en funcin de perturbacin d(t)')
Respuesta al Escaln para sistemas Retroalimentados
Graficar la respuesta al escaln de los siguientes sistemas:
a)
() ()
b)
() ()
3
Lugar Geomtrico de Races
Considerando el sistema en lazo cerrado de la figura:
() ()
=
() 1 + ()
>> [r,K]=rlocus(num,den)
>> [r,K]=rlocus(num,den,K)
>> [r,K]=rlocus(A,B,C,D)
>> [r,K]=rlocus(A,B,C,D,K)
>> [r,K]=rlocus(sys)
Lugar Geomtrico de Races
1. Considerando el sistema de la figura, graficar el lugar de races
contemplado bajo la regin: 6 6, 6 6
Cdigo Matlab:
>> num=[1 3]; den=conv([1 1 0],[1 4 16]);
>> r=rlocus(num,den);
>> plot(r,'-'); v=[-6 6 -6 6]; axis(v); axis('square')
>> grid
>> title('Lugar de Raices de: G(s)=K(s+3)/[s(s+1)(s^2+4s+16)]')
>> xlabel('eje real'); ylabel('eje imaginario')
>> gtext('o','Fontsize',15) % Para ubicar 'o' en el cero de lazo abierto.
>> gtext('x','Fontsize',15) % Para ubicar 'x' en los 04 polos de lazo abierto.
>> gtext('x','Fontsize',15) % Para ubicar 'x' en los 04 polos de lazo abierto.
>> gtext('x','Fontsize',15) % Para ubicar 'x' en los 04 polos de lazo abierto.
>> gtext('x','Fontsize',15) % Para ubicar 'x' en los 04 polos de lazo abierto.
Lugar Geomtrico de Races
Graficar el LGR para el sistema que se muestra en la figura, considerar:
6 6, 6 6.
Considerar:
K=[k1 k2 k3]
Donde:
K1=0:0.2:20;
K2=20:0.1:30;
K3=30:5:1000;
Lugar Geomtrico de Races
2.
s = tf('s');
G = 2/(3*s+1)/(s+1); %Define FdT
H = 0.5;
sys_ol = G*H; %FdT del sistema en lazo abierto
figure; %Abre una figura nueva
rlocus(sys_ol) %Grafica LGR para sys_ol
Lugar Geomtrico de Races
>> bode(num,den)
>> bode (num,den,w)
>> bode(A, B, C, D)
>> bode (A, B, C, D, w)
>> bode (A, B, C, D, w)
>> bode (A, B,C,D, iu, w)
>> bode(sys)
>> w=logspace(d1,d2)
>> w=logspace(d1,d2,n)
Por ejemplo, para generar 100 puntos entre 1 rad/seg y 1000 rad /seg:
>>w= logspace(0,3,100)
Anlisis de la Respuesta en Frecuencia
Calcular el diagrama de Bode para la FT:
9( 2 + 0.22 + 1)
G s =
( 2 + 1.2 + 9)
Cdigo Matlab:
4
Ejemplo MG y MF
sys_ol3 = 5/s/(s^2+2*s+4)
% Margen de Ganancia (MG) % Margen de
Fase (MF)
% Frecuencias asociadas Wcg y Wcf
[MG, MF, Wcg, Wcf] = margin(sys_ol3)
% Margen de manera grfica
margin(sys_ol3)
sys_ol4 = 3e4 * (0.05*s + 1)^2 / ((s+1)^3 * (0.01*s + 1));
% Ancho de banda
BW = bandwidth(sys_ol4)
% Ganancia en continua GH(0)
Gdc = dcgain(sys_ol4)
4
Anlisis de la Respuesta en Frecuencia
Considerando el sistema de la figura:
A = [0 1; -5 -2];
B = [0 ; 3];
C = [0 1];
D = 0;
Donde:
x1: ngulo del eje,
x2: velocidad del eje,
x3: corriente de armadura,
%Matriz de estado
A = [0 1 0; 0 -Bf/J Kt/J; 0 -Kth/L -R/L ];
%Matriz de entrada
B = [0 ; 0 ; 1/L];
%Matriz de salida
C = eye(3); %Matriz identidad
%Matriz de transferencia directa
D = 0;
f = 1; %Frecuencia: 1Hz
T = 1/f; %Perodo
t = 0:T/1000:T; %Vector de tiempos
u = 12*sin (2*pi*f*t); %Seal de voltaje
figure; lsim (sys, u, t) %Aplica seal arbitraria
Investigue cmo se
puede representar
este sistema en MATLAB y
consiga su respuesta
en el tiempo a una
seal cuadrada,
tal como se muestra
en la figura.
Ejercicio: Motor DC
Donde:
kl = 10 m3/s
ko = 50 m2/s
N = 10
Ingresar a la aplicacin:
>>sisotool
SISOTOOL