Está en la página 1de 14

UNIVERSIDAD NACIONAL

PEDRO RUIZ GALLO


FACULTAD DE INGENIERA CIVIL, SISTEMAS Y
ARQUITECTURA
CONTROL

TRABAJO FINAL

Ing.
ALUMNOS:
- Guevara Panta Juan Francisco

- Quequén Cumpa Edgar

LAMBAYEQUE, NOVIEMBRE 2020

1. ABC

2. ABC
3. ABC

4. Para los siguientes polinomios característicos, aplique el criterio de Routh-


Hurwitz con la finalidad de determinar el número de polos que se encuentran
en el semiplano derecho del plano s. Generarlos en Matlab.
 close all;
 clear all;
 clc;
 disp('Ruht Horwihts')
 d=input('ingresar el polinomio entre []');
 poly2sym(d)%dibuja el polinomio
 N=length(d);%numero de elementos del vector
 mo=mod(N,2);
 x1(1,:)=d(1:2:N);%llena la primer fila
 if mo~=0%si es impar coloca 0 la en la fila dos ultima columna
 N1=N+1;
 d(N1)=0;
 x1(2,:)=d(2:2:N1);
 else %si es par llena la fila dos normal
 x1(2,:)=d(2:2:N);
 end
 lim=round(N/2)%limite de columnas de la matriz
 for i=3:1:N%fila
 n=1;
 for j=1:1:lim%columna
o n=n+1;
o if n<=lim
o x1(i,j)=((x1(i-1,1)*x1(i-2,n))-(x1(i-2,1)*x1(i-1,n)))/x1(i-1,1);
o end
 end
 end
 x1=x1%imprime la matriz base
 %=============================================================
=================
 %=============================================================
=================
 n=0;
 %para la fila llena de ceros
 if x1(3,1:1:lim)==0%pregunta si toda la 3fila es cero
 n=1;
 end
 if n==1
 disp('se procede a derivar');
 der=polyder(d)%la derivada
 der(length(der)+1)=0;
 x1(3,:)=der(2:2:length(der)+1);%se llena la 3fila con la derivada
 for i=4:1:N%fila
 n=1;
 for j=1:1:lim%columna
o n=n+1;
o if n<=lim
o x1(i,j)=((x1(i-1,1)*x1(i-2,n))-(x1(i-2,1)*x1(i-1,n)))/x1(i-1,1);
o end
 end
 end
 x1=x1
 end
 %=============================================================
=================
 %=============================================================
=================
 n=0;
 %para un elemento cero
 condicion=0;
 for i=1:1:N
 if x1(i,1)==0%pregunta si existe un elemento de la primer columna como cero
 n=1;
 ia=i;
 end
 end
 if n==1 %n es igual a uno cuando existe un elemento igual a cero
 disp('existe un elemento de cero');
 E=d;%E igual a el polinomio
 pos=find(d~=0);% se crea un vector con todas las pocisiones diferentes de 0
 E=E(pos);%se crea un vector con los valores de las pocisiones anteriores
 E=min(abs(E))/10;%E toma el valor minimo absoluto dividido entre 10
 ia=ia;
 x1(ia,1)=E;%la pocision del 0 toma el valor de E
 for i=ia:1:N%fila
 n=1;
 for j=1:1:lim%columna
o n=n+1;
o if n<=lim
o x1(i,j)=((x1(i-1,1)*x1(i-2,n))-(x1(i-2,1)*x1(i-1,n)))/x1(i-1,1);
o end
 end
 end
 x1=x1
 if ((x1(ia-1,1)>0 && x1(ia+1,1)>0)||(x1(ia-1,1)<0 && x1(ia+1,1)<0))% si la fila
anterior y posterior son de igual signo
 disp('el sistema es criticamente estable');
 condicion=1;
 else
 disp('el sistema es inestable');
 condicion=1;
 end
 end
 %=============================================================
=================
 %=============================================================
=================
 n=0;
 %para estabilidad o inestabilidad
 for i=1:1:N
 if x1(i,1)<0
 n=1;
 end
 end
 if n==1 && condicion==0
 disp('el sistema es inestable');
 else if condicion==0
 disp('el sistema es estable');
 end
 end

a) s3 + 4.5 s2 + 4 s +1.75=0

Ruht Horwihts

ingresar el polinomio entre [][1 4.5 4 1.75]

ans = x^3 + (9*x^2)/2 + 4*x + 7/4

lim = 2

x1 =

1.0000 4.0000

4.5000 1.7500

3.6111 0

1.7500 0

el sistema es estable

b) s3 + 4 s 2+ 18 s+75=0
Ruht Horwihts
ingresar el polinomio entre [][1 4 18 75]
ans = x^3 + 4*x^2 + 18*x + 75
lim = 2

x1 =

1.0000 18.0000
4.0000 75.0000
-0.7500 0
75.0000 0

el sistema es inestable

c) s4 + 17.5 s3 +98.75 s2 +295.625 s +320.25=0

Ruht Horwihts
ingresar el polinomio entre [][1 17.5 98.75 295.625 320.25]

ans = x^4 + (35*x^3)/2 + (395*x^2)/4 + (2365*x)/8 + 1281/4


lim = 3
x1 =

1.0000 98.7500 320.2500


17.5000 295.6250 0
81.8571 320.2500 0
227.1597 0 0
320.2500 0 0

el sistema es estable

d) 0.5 s4 +7 s 3+34.5 s2 +67 s+39=0

Ruht Horwihts

ingresar el polinomio entre [][0.5 7 34.5 67 39]

ans = x^4/2 + 7*x^3 + (69*x^2)/2 + 67*x + 39

lim = 3

x1 =

0.5000 34.5000 39.0000

7.0000 67.0000 0

29.7143 39.0000 0

57.8125 0 0

39.0000 0 0
el sistema es estable

5. Generar en Matlab los ejercicios resueltos del archivo “Fundamentos de Control


Cap.5” desde las páginas 69 a la 76 (Ejemplo 1 al ejemplo 8).

a)

 G1=tf(1, [1 1]);
 G2=tf(1, [1 2]);
 G3=tf(2, [1 0]);
 G4=tf(1, [1 2]);
 G5=zpk([], [-1+i -1-i], -10);
 G12=series(G1, G2);
 G3a=G3+1;
 G34=series(G3a, G4);
 G34=minreal(G34);
 Gd=G12-G34;
 Gd5=series(Gd, G5);
 Gd5=minreal(Gd5);
 M_1= feedback(Gd5, 0.1);
 M= feedback(M_1, 0.5);
 M=tf(M);
 syms s
 [num_M,den_M]=tfdata(M, 'v');
 den_s=poly2sym(den_M,s);
 Ms=10/den_s;
 Xs=1/s;
 Ys=Ms*Xs;
 ys=ilaplace(Ys);
 pretty(ys)

>> ejemplo1

5 15 cos(sqrt(2) t) 5 sqrt(2) sin(sqrt(2) t) exp(-3 t) 10

- - ----------------- - ------------------------ - ------------

3 11 11 33

 s=tf('s');
 G1=30;
 G2=2;
 G3=1/(s*(s+2));
 G4=2/(s+3);
 G5=1/(s+2);
 H1=2/(s+6)^2;
 H2=0.1;
 H3=s/(s+1)^2;
 H4=10*(s+1)/((s+2)*(s+5));
 H4_new=H4/(G2*G5);
 Ga= feedback(G2*G3, H2);
 Ga= minreal(Ga);
 Gb=feedback(G4*G5, H3);
 Gb=minreal(Gb);
 Gab=Ga*Gb;
 Gab=minreal(Gab);
 Gc= feedback(Gab, H4_new);
 Gc= minreal(Gc);
 M= feedback (G1*Gc, H1);
 M=minreal(M);
 M=zpk(M)
ejemplo2

M=

120 (s+6)^2 (s+5) (s+1)^2

------------------------------------------------------------------------------------------------------

(s+4.511) (s^2 + 6.347s + 10.28) (s^2 + 1.695s + 0.9811) (s^2 + 12.41s + 39.07) (s^2 +
1.034s + 1.202)

 s=tf('s');
 K=0.2;
 G1=0.5*s;
 G2=1/0.1/s;
 G3=zpk([],[-1], 1);
 G4=0.5/(0.5*s+1);
 H1=2.3;
 G12=1+G1+G2;
 G34=series(G3,G4);
 M1=feedback(K*G12*G34,H1);
 M1=minreal(M1);
 M1=tf(M1);
 M2=feedback(G4, H1*K*G12*G3);
 M2= minreal(M2)
ejemplo3

M2 =

s (s+1)

---------------------------------

(s+2.927) (s^2 + 0.3035s + 1.572)


 R=1; L=0.5; Kp=3; Kb=10^-4; J=0.01; B=5;
 Gind= tf(1, [L R]);
 Gpar=Gind* Kp;
 Gine=tf(1, [J 0]);
 Gcar= feedback(Gine, B);
 Gw=feedback(Gpar*Gcar, Kb);
 Gw=zpk(Gw);
 Gint=tf(1, [1 0]);
 Gp= series(Gw, Gint);
 Gp=zpk(Gp)

>> ejemplo4

Gp =

600

---------------

s (s+500) (s+2)

 T=0.25;
 G=zpk([-1], [-4 -4], 1);
 BOG=c2d(G,T,'zoh');
 BOG=tf(BOG)

>> ejemplo5

BOG =

0.1085 z - 0.08351

-----------------------

z^2 - 0.7358 z + 0.1353


 T=1;
 G=tf(1,[1 2]);
 H=tf(1,[1 0]);
 BOG=c2d(G,T,'zoh');
 BOGH=c2d(G*H,T,'zoh');
 Mz=BOG/(1+BOGH);
 Mz=minreal(Mz);
 Mz=zpk(Mz);
 Mz= feedback(BOG, 1)

>> ejemplo6

Mz =

0.4323

---------

z + 0.297
 z=tf('z',-1);
 G1=1/z;
 G2=(z-0.1)/(z-0.5);
 H=0.1/(z-0.6);
 M1=feedback(G1*G2,H);
 %convertir a formato zpk
 M1=zpk(M1);
 %obtencion de M2 con X(z)
 M2=feedback(-G1*G2*H,1 ,1);
 M2=zpk(M2)

>> ejemplo7

M2 =

-0.1 (z-0.1)

-----------------------------------

(z-0.02695) (z^2 - 1.073z + 0.3711)


 R1=1e3; R2=1e3;
 C1=100E-9; C2=100e-9;
 a=R1*R2*C1*C2;
 b=(R1+R2)*C2;
 c=1;
 G_sk=tf(1, [a b c]);
 G_sk=minreal(G_sk);
 set(G_sk, 'InputName', 'Ue')
 set(G_sk, 'OutputName', 'Us')
 set(G_sk, 'Name', 'Filtro Sallen-Key')
 G_sk

>> ejemplo8

G_sk =

From input "Ue" to output "Us":

1e08

--------------------

s^2 + 20000 s + 1e08

También podría gustarte