Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Practica 1a Uso de Matlab en Control2013-1
Practica 1a Uso de Matlab en Control2013-1
(UNTECS)
INGENIERÍA ELECTRÓNICA Y TELECOMUNICACIONES
PRACTICA 1
CONTROL I
CICLO: VIII SEMESTRE: 2013-I
APELLIDOS Y NOMBRES:_____________________________________________
------------------------------------------------------------------------------------------------------------------------
USO DE MATLAB EN CONTROL I
1.-OBJETIVO:
1.1-Utilizar un método computacional con MATLAB, para encontrar el desarrollo de fracciones
simples de B(s)/A(s) y la obtención de los ceros y polos de B(s)/A(s).
2.-USANDO MATLAB ENCONTRAR EL DESARROLLO DE FRACCIONES PARCIALES
Se tiene la siguiente función de transferencia:
C(s) 2s3+5s2+3s+6
FT = ---------- = ---------------------
R(s) s3+6s2 + 11s+6
https://www.youtube.com/watch?v=JwPcaZkVJNE
PROGRAMA 2
>> %PROGRAMA 2
>> %OBTENR LOS POLINOMIOS NUMERADOR Y DENOMINADOR A PARTIR DE SU
DESARROLLO EN FRACCIONES SIMPLES
>> num=[4 2 6 8];
>> den=[1 6 11 6];
>> [r,p,k]=residue(num,den)
r=
-50.0000
28.0000
-0.0000
p=
-3.0000
-2.0000
-1.0000
k=
>> [num,den]=residue(r,p,k);
>> printsys(num,den,'s')
num/den =
4 s^3 + 2 s^2 + 6 s + 8
-------------------------------
s^3 + 6 s^2 + 11 s + 6
B(s) S2 +2S +3
--------------- = --------------
A(s) (S + 1)3
p=
k=
[]
[z,p,k] =tf2zp(num,den)
Para obtener los CEROS y POLOS y ganancia k de B(S)/A(S), considérese el sistema definido
por:
Para obtener los ceros, polos y ganancia k, se introduce el si8guiente programa de MATLAB
en el computador:
>>num=[0 0 4 16 12];
>>den=[1 12 44 48 0];
[z,p,k] = tf2zp(num,den)
Z=
-3
-1
P=
0
-6.0000
-4.0000
-2.0000
K=
4
Los CEROS son -3 y -1. Los POLOS están en s=0, -6, -4, -2. La ganancia k es 4.
Si los polos, los ceros la ganancia k están dados, entonces el siguiente programa en MATLAB
generará num/den
PROGRAMA 5
>>z=[-1;-3];
>>p=[o;-2;-4;-6];
>>k=4
>>[num,den]=zp2tf(z,p,k);
>>num/den=
4s^2 + 16s + 12
----------------------------------
S^5 +12s^4 + 44s^3 +16s^2+ 48s
Dado los CEROS, POLOS y ganancia k de B(S)/A(S), obténgase la función B(S)/A(S) utilizando
MATLAB. Considere los tres casos siguientes:
Solución:
PROGRAMA 7
RESOLVER LA SIGUIENTE ECUACIÓN DIFERENCIAL
NOTA:
1.-hallar la transformada de Laplace de la ecuación diferencial
2.-Resolver la transformada de LAPLACE obtenida, para obtener X(s)=B(s)/A(s)
3.- la expresión B(s)/A(s) obtenida desarrollarla en fracciones parciales.
4.-Obtener la transformada inversa de LAPLACE para obtener la solución en el dominio del
tiempo.
FIGURA 1|
C(s) 1
_______ = ________
T(s) s(Js+B)
Función de transferencia de lazo cerrado
C(s) k K/J
FT = ---------- = ------------- = ---------------------
R(s) Js+Bs+K s2+ (B/J) s+ (K/J)
El sistema tiene 2 polos. Sistema de Segundo orden.
RESPUESTA ESCALON DE SISTEMAS DE SEGUNDO ORDEN.
La FT se puede escribir como:
C(s) K/J
FT = ---------- = ----------------------------------------------------------------------
R(s) [s+ (B/2J) + (B/2J) 2-(k/J)] [s+ (B/2J) - (B/2J) 2-(k/J)]
DALL’ORTO GATES OSCAR
Los polos en lazo cerrado son complejos si B -4JK<0, y son reales si B2-4JK>=0
2
β=tg-1(ωd/σ)
Tiempo pico
Mp = e-(σ/ωd)π = e-(ζ√1-ζ)π)
Tiempo de asentamiento: ts
PROGRAMAS EN MATLAB
Realizar un análisis de la respuesta transitoria. En particular la respuesta escalón, impulso y
rampa.
x1 -1 -1 x1 1 1 u1
x2 = 6.5 0 x2 + 1 0 u2
y1 1 0 x1 0 0 u1
y2 = 0 1 x 2 + 0 0 u2
>> %programa 3
>> %el programa produce cuatro curvas de respuesta escalón
>> A=[-1 -1;6.5 0];
>> B=[1 1;1 0];
>> C=[1 0;0 1];
>> D=[0 0;0 0];
>> step(A,B,C,D)
>>
-Para dibujar 2 curvas de respuestas escalón para la entrada u1 en un diagrama, y dos curvas de
respuesta escalón para la entrada u2 en otro diagrama, se utilizan los comandos
step(A,B,C,D,1)
>> %PROGRAMA 4
>> %CURVAS RESPUESTA ESCALON PARA SISTEMAS DEFINIDOS
>> %EN EL ESPACIO DE ESTADOS
>> %SISTEMA CON 2 ENTRADAS u1 y u2
>> % y 2 salidas y1 ,y2.
>> %Se presenta en primer lugar la curva de respuesta
>> % escalón cuando la entrada es u1
>> % luego se presenta la curva cuando la entrada es u2
>> A=[-1 -1;6.5 0];
>> B=[1 1;1 0];
>> C=[1 0;0 1];
>> D=[0 0;0 0];
>> step(A,B,C,D,1)
>> grid
>> title('Respuesta a un escalón:Entrada=u1(u2=0)')
>> text(3.4,-0.06,'Y1')
>> text(3.4,1.4,'Y2')
>> %CURVA DE RESUESTA ESCALON CUANDO LA ENTRADA ES U2
>>
>> step(A,B,C,D,2)
>> grid
>> title('Respuesta a un escalon: Entrada=u2(u1=0)')
>> text(3,0.14,'Y1')
>> text(2.8,1.1,'Y2')
>>
printsys(num,den) o printsys(num,den,s)
Imprime núm./den como un cociente de polinomios en s
Ejp: Si ωn =5rad/seg y ζ=0.4 hallar el sistema estándar de Segundo orden.
PROGRAMA 5
>> %PROGRAMA 5
>> wn=5;
>> damping_ratio=0.4;
>> [num0,den]=ord2(wn,damping_ratio);
>> num=5^2*num0;
>> printsys(num,den,'s')
num/den =
25
G(s) = ---------------------
s2+4s+25
>> %PROGRAMA 6
>> %RESPUETA A UN ESCALON UNITARIO
>> num=[0 0 25];
>> den=[1 4 25];
>> step(num,den)
>> grid
>> title('Respuesta a un escalón unitario de G(s)=25/(s^2+4s+25)')
>>
PROGRAMA 7
C(s) 1
---------- = ---------------------
R(s) s2+2ζ s + 1
Dibuje las curvas d respuesta escalón unitario c(t) cuando ζ = 0, 0.2, 0.4, 0.6, 0.8, 1
También dibuje la gráfica en tres dimensiones.
>> t=0:0.2:10;
>> zeta=[0 0.2 0.4 0.6 0.8 1];
>> for n=1:6;
num=[0 0 1];
den=[1 2*zeta(n) 1];
[y(1:51,n),x,t]=step(num,den,t);
end
>> plot(t,y)
>> grid
>> title('Respuesta a un escalón unitario con \omega_n=1 y \zeta=0,0.2,0.4,0.6,0.8,1')
PROGRAMA 8
CALCULO DE tp,ts,tr, Mp
>> %PROGRAMA 8
>> %ENCONTRAR tp,ts,Mp y tr
>> %zeta=0.6 y wn=5
>> num=[0 0 25];
>> den=[1 6 25];
>> t=0:0.005:5;
>> [y,x,t]=step(num,den,t);
>> r=1;while y(r)<1.0001;r=r+1;end;
>> tiempo_subida=(r-1)*0.005
tiempo_subida =
0.5550
>> [ymax,tp]=max(y);
>> tiempo_pico=(tp-1)*0.005
tiempo_pico =
0.7850
>> sobreelongacion_max=ymax-1
sobreelongacion_max =
0.0948
>> s=1001;while y(s)>0.98& y(s)<1.02; s=s-1;end;
>> tiempo_asentamiento=(s-1)*0.005
tiempo_asentamiento =
1.1850
PROGRAMA 9
RESPUESTA IMPULSO UNITARIO DEL SISTEMA SIGUIENTE:
x1 0 1 x1 0 u
x2 = -1 1 x2 + 1
y = 1 0 x1 + 0 u1
x2
PROGRAMA 10
1
G(s) = ---------------------
s2+0.2s+
>> %PROGRAMA 10
>> num=[0 0 1];
>> den=[1 0.2 1];
>> impulse(num,den);
>> grid
>> title('Respuest a un impulso unitario de G(s)=1/(s^2+0.2s+1)')
PROGRAMA 11
>>PROGRAMA 11
>> num=[ 0 1 0];
>> den=[1 0.2 1];
>> step(num,den);
>> grip
??? Undefined function or variable 'grip'.
>> grid
>> title('Respuesta a un impulso unitario obtenida como la respuesta de sG(s)')
PROGRAMA 12