Está en la página 1de 11

EXPERIENCIA DE APRENDIZAJE

PRÁCTICA Nº 1.

OBJETIVOS:
 Usar Matlab y Simulink como herramienta de apoyo para los contenidos vistos en clase:
Solución de ecuaciones diferenciales, simplificación de diagramas de bloque, respuesta de
sistemas de primer orden
TEMAS DE CONSULTA: Solución de ecuaciones diferenciales, simplificación de diagramas de
bloque, respuesta de sistemas de primer orden.

PROCEDIMIENTO: (durante la experiencia de aprendizaje se plantea el siguiente


procedimiento)
1. El docente realizará presentación magistral de los temas a tratar.
2. Desarrollará un ejemplo demostrativo.
3. El docente planteará para cada tema tratado ejercicios propuesto a desarrollar durante la
sesión.

INFORME: Debe incluir todo lo que se ha indicado que debe llevar el informe.
 Reporte de los ejercicios planteados y resueltos durante la experiencia de aprendizaje.
 Análisis de resultados y conclusiones.

BIBLIOGRAFIA:
 OGATA, Katsuhiko. “Problemas de Ingeniería de Control utilizando MATLAB”. Prentice
Hall. 1999.
 DORF, Richard C. BISHOP, Robert H. “Modern Control System”. Prentice Hall. 11va edición.
2008
 OGATA, Katsuhiko. “Ingeniería de Control Moderna”. Pearson. 5ta Edición. 2010.

www.gonitro.com
DESARROLLO:

1. Fracciones parciales
Comando:
o [r,p,k] = residue(b,a)
Encuentra los residuos, los polos y el término directo de una expansión de
fracción parcial de la razón de dos polinomios.
𝑏(𝑠) 𝑏𝑚 𝑠 𝑚 + 𝑏𝑚−1 𝑠 𝑚−1 + ⋯ + 𝑏1 𝑠 + 𝑏0
=
𝑎(𝑠) 𝑎𝑛 𝑠 𝑛 + 𝑎𝑛−1 𝑠 𝑛−1 + ⋯ + 𝑎1 𝑠 + 𝑎0
𝑏(𝑠) 𝑟𝑛 𝑟2 𝑟1
= + ⋯+ + + 𝑘(𝑠)
𝑎(𝑠) 𝑠 − 𝑝𝑛 𝑠 − 𝑝2 𝑠 − 𝑝1

Las entradas al comando residue son vectores de coeficientes de los polinomios


b = [bm ... b1 b0] y a = [an ... a1 a0]. Las salidas son los residuos r = [rn ... r2 r1],
los polos p = [pn ... p2 p1] y el polinomio k.

o [b,a] = residue(r,p,k)
Convierte la expansión de la fracción parcial de nuevo en la proporción de dos
polinomios y devuelve los coeficientes de b y a.

Ejemplos:
𝑏(𝑠) −4𝑠 + 8
= 2
𝑎(𝑠) 𝑠 + 6𝑠 + 8

b = [-4 8];
a = [1 6 8];
[r,p,k] = residue(b,a)
r = 2×1

-12
8

p = 2×1

-4
-2

k =

[]

𝑏(𝑠) 12 8
=− +
𝑎(𝑠) 𝑠+4 𝑠+2

www.gonitro.com
𝑏(𝑠) 2𝑠 3 + 2𝑠 2
=
𝑎(𝑠) 𝑠 3 + 𝑠 + 1

b = [2 1 0 0];
a = [1 0 1 1];
[r,p,k] = residue(b,a)
r = 3×1 complex

0.5354 + 1.0390i
0.5354 - 1.0390i
-0.0708 + 0.0000i

p = 3×1 complex

0.3412 + 1.1615i
0.3412 - 1.1615i
-0.6823 + 0.0000i

k = 2

𝑏(𝑠) 0.5354 + 𝑗1.0390 0.5354 − 𝑗1.0390 0.0708


= + − +2
𝑎(𝑠) 𝑠 − (0.3412 + 𝑗1.1615) 𝑠 − (0.3412 − 𝑗1.1615) 𝑠 + 0.6823

𝑏(𝑠) 2𝑠 4 + 𝑠
= 2
𝑎(𝑠) 𝑠 +1
b = [2 0 0 1 0];
a = [1 0 1];
[r,p,k] = residue(b,a)
r = 2×1 complex

0.5000 - 1.0000i
0.5000 + 1.0000i

p = 2×1 complex

0.0000 + 1.0000i
0.0000 - 1.0000i

k = 1×3

2 0 -2

𝑏(𝑠) 0.5 − 𝑗1 0.5 + 𝑗1


= + + 2𝑠 2 − 2
𝑎(𝑠) 𝑠 − 𝑗1 𝑠 + 𝑗1

www.gonitro.com
2. Solución de ecuaciones diferenciales

𝑑𝑦(𝑡)
+ 0.1𝑦(𝑡) − 2 = 0
𝑑𝑡
𝑦(0) = 0
%% Solución de ecuaciones diferenciales utilizando MATLAB(R)
% Se utilizará el comando dsolve para
% hallar la solución a ecuaciones diferenciales
%% Solución general a una ecuación diferencial de primer orden sin condiciones
iniciales
clear all
close all
syms y(t)
eqn = diff(y,t) == 2-(0.1*y);
ySol(t) = dsolve(eqn,y(0) == 0)
syms t
ezplot(ySol,[0 100])
axis([0 100 0 30])
% y=dsolve('Dy=2-(0.1*y)','t');
% y1=simplify(y)
% pretty(y)
% syms t
%ezplot(y,[0 20])

𝑑𝑦(𝑡)
+ 0.1𝑦(𝑡) − 2 = 0
𝑑𝑡
𝑦(0) = 5
%% Solución general de una ecuación diferencial de primer orden con condiciones
iniciales
clear all
close all
syms y(t)
eqn = diff(y,t) == 2-(0.1*y);
cond= y(0) == 5;
ySol(t) = dsolve(eqn,cond)
syms t
ezplot(ySol,[0 100])
axis([0 100 0 30])
% y=dsolve('Dy=2-(0.1*y)','y(0)=5','t');
% y1=simplify(y)
% pretty(y)
% syms x
% ezplot(y,[-pi 2*pi])

www.gonitro.com
𝑑𝑦(𝑡)
+ 10𝑦(𝑡) − 20 = 0
𝑑𝑡
𝑦(0) = 2
%%
clear all
close all
syms y(t)
eqn = diff(y,t) == 20-(10*y);
cond= y(0) == 2;
ySol(t) = dsolve(eqn,cond)
syms t
ezplot(ySol,[0 10])
axis([0 10 0 10])

𝑑 2 𝑦(𝑡) 𝑑𝑦(𝑡)
2
+3 + 2𝑦(𝑡) = 0
𝑑𝑡 𝑑𝑡
𝑦(0) = 1
𝑑𝑦(0)
=0
𝑑𝑡
clear all
close all
syms y(t);
eqn = diff(y,t,2) == -(3*diff(y,t))-(2*y);
pretty(eqn)
Dy=diff(y,t)
ySol(t) = dsolve(eqn,y(0) == 1,Dy(0)==0);
pretty(ySol)
sym t ;
ezplot(ySol,[0 10])
axis([0 10 0 2])

𝑑 2 𝑦(𝑡) 𝑑𝑦(𝑡)
+ 4 + 3𝑦(𝑡) = 1
𝑑𝑡 2 𝑑𝑡
𝑦(0) = 1
𝑑𝑦(0)
=0
𝑑𝑡

www.gonitro.com
3. Simplificación de diagramas de bloque

o Serie:
1 𝑠+1
𝐺(𝑠) = 2
, 𝐺𝑐 (𝑠) =
500𝑠 𝑠+2
𝑠+1
𝐺(𝑠)𝐺𝑐 (𝑠) =
500𝑠 3 + 1000𝑠 2
numg=[1];
deng=[500 0 0];
sysg=tf(numg,deng);
numh=[1 1];
denh=[1 2];
sysh=tf(numh,denh);
sys=series(sysg,sysh)

o Paralelo:
1 𝑠+1
𝐺1 (𝑠) = , 𝐺2 (𝑠) =
500𝑠 2 𝑠+2

1 𝑠 + 1 𝑠 + 2 + 500𝑠 2 (𝑠 + 1) 500𝑠 3 + 500𝑠 2 + 𝑠 + 2


𝐺1 (𝑠)𝐺2 (𝑠) = + = =
500𝑠 2 𝑠 + 2 500𝑠 2 (𝑠 + 2) 500𝑠 3 + 1000𝑠 2

www.gonitro.com
numg1=[1];
deng1=[500 0 0];
sysg1=tf(numg1,deng1);
numg2=[1 1];
deng2=[1 2];
sysg2=tf(numg2,deng2);
sys=parallel(sysg1,sysg2)

o Realimentación:

numg=[1];
deng=[500 0 0];
sysg=tf(numg,deng);
numc=[1 1];
denc=[1 2];
sysc=tf(numc,denc);
sys1=series(sysg,sysc);
sysreal=feedback(sys1,[1],-1);
1
𝐺(𝑠) =
500𝑠 2
𝑠+1
𝐺𝑐 (𝑠) =
𝑠+2
1 𝑠+1
𝐺(𝑠)𝐺𝑐 (𝑠) 500𝑠 2 ∗ (𝑠 + 2 )
=
1 + 𝐺(𝑠)𝐺𝑐 (𝑠) 1 + ( 1 ) (𝑠 + 1)
500𝑠 2 𝑠 + 2

𝐺(𝑠)𝐺𝑐 (𝑠) 𝑠+1


=
1 + 𝐺(𝑠)𝐺𝑐 (𝑠) 500𝑠 3 + 1000𝑠 2 + 𝑠 + 1

numg=[1];
deng=[500 0 0];
sysg=tf(numg,deng);
numh=[1 1];
denh=[1 2];
sysh=tf(numh,denh);
sysreal=feedback(sysg,sysh,-1);
1
𝐺(𝑠) =
500𝑠 2

www.gonitro.com
𝑠+1
𝐻(𝑠) =
𝑠+2
1
𝐺(𝑠) 500𝑠 2
=
1 + 𝐺(𝑠)𝐻(𝑠) 1 + ( 1 𝑠+1
)( )
500𝑠 2 𝑠 + 2

𝐺(𝑠)𝐺𝑐 (𝑠) 𝑠+2


=
1 + 𝐺(𝑠)𝐺𝑐 (𝑠) 500𝑠 3 + 1000𝑠 2 + 𝑠 + 1

o Reducir:

1 1 𝑠2 + 1 𝑠+1
𝐺1 (𝑠) = , 𝐺2 (𝑠) = , 𝐺3 (𝑠) = 2 , 𝐺4 (𝑠) =
𝑠 + 10 𝑠+1 𝑠 + 4𝑠 + 4 𝑠+6

𝑠+1
𝐻1 (𝑠) = , 𝐻2 (𝑠) = 2 , 𝐻3 (𝑠) = 1
𝑠+2

o Reducir (simulink):

clear all
close all
[num,den] = linmod('system', x, u)
Resultado=tf(num,den)

www.gonitro.com
4. Respuesta de sistemas de primer orden
o Escalón:

clear all
close all
T=10;
K=1;
num=[K/T];
den=[l 1/T];
sys=tf(num,den);
step(num,den);

o Impulso:
Agregar
derivador

clear all
close all
T=10;
K=1;
num=[K/T];
den=[l 1/T];
sys=tf(num,den);
impulse(num,den);

www.gonitro.com
o Rampa:
Agregar
integrador

T=10;
K=1;
num=[K/T];
den=[l 1/T];
sys=tf(num,den);
t=linspace(0,(T*5));
u=t;
y = lsim(sys,u,t);
plot(t,y);
grid on;
title('Respuesta rampa de un sistema de primer orden')
xlabel('t')
ylabel('amplitud')

5. Respuesta de sistemas de segundo orden

o Escalón:
zeta=1;
wn=1;
num=[wn^2];
den=[1 2*zeta*wn wn^2];
sys=tf(num,den);
step(num,den);

o Impulso:
zeta=1;
wn=1;
num=[wn^2];
den=[1 2*zeta*wn wn^2];
sys=tf(num,den);
impulse(num,den);

www.gonitro.com
o Rampa:
zeta=1;
wn=1;
num=[wn^2];
den=[1 2*zeta*wn wn^2];
t=linspace(0,50,0.2);
u=t;
y = lsim(sys,u,t);
plot(t,y);
grid on;
title('Respuesta rampa de un sistema de segundo orden')
xlabel('t')
ylabel('amplitud')

www.gonitro.com

También podría gustarte