Laboratorio 03 - Control y Estabilidad
Laboratorio 03 - Control y Estabilidad
Laboratorio 03 - Control y Estabilidad
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRICA
LABORATORIO DE CONTROL 2
GUÍA DE LABORATORIO 03.- CONTROL Y ESTABILIDAD
PRESENTADO POR:
SANCHEZ ORIHUELA DIEGO ARMANDO CUI: 20053348
OMAR ALONSO BARRANTES ZUÑIGA CUI: 20133357
DARIO GOMEZ ESTEBA CUI: 20160689
HUISA CHOQUE ADRIAN CUI: 20160677
AREQUIPA-PERU
2018
V. DESARROLLO
Diagrama de bloques
G1 G4 G5 + G1 G2 G3 G4
----------------------
G1 G2 H1 + 1
En este sistema hay dos trayectorias directas entre la entrada R(s) y la salida C(s). Las
ganancias de las trayectorias directas son:
P1=G1.G2.G3.G4
P2=G1.G4.G5
L1= - G1.G2.H1
Δ= 1 – L1
El cofactor se obtiene de eliminarle los lazos que tocan la trayectoria P1.
Δ1= 1
Δ2= 1
C 1
=P= ∗( P 1. ∆1+ P 2. ∆ 2 )
R ∆
Conclusión:
Se verifico que los coeficientes de la primera columna presentan cambios de signo, por lo que
el sistema será INESTABLE.
DESARROLLADO MANUALMENTE
EJERCICIO3. PARA EL SIGUIENTE SISTEMA:
USANDO SIMULINK
+
EJERCICIO 4. A PARTIR DEL DIAGRAMA DE BLOQUES DEL SISTEMA DE TRANSFERENCIA
INDICADO, CALCULAR PARA QUE VALORES DE K EL SISTEMA ES ESTABLE.
Como podemos observar la primera fila los valores tienen que ser positivos para lo cual:
EJERCICIO 5. HACER EL DIAGRAMA DE BODE DE LA SIGUIENTE FUNCIÓN, HACER EL ANÁLISIS
DE MARGEN DE GANANCIA Y FASE.
>> num=[100000]
num =
100000
den =
1 25 100 0
>> a=tf(num,den)
Transfer function:
100000
--------------------
s^3 + 25 s^2 + 100 s
>> margin(a)
function [Z]=routh(a)
syms K A B ,symvar K;
n = length(a);
% selecionamos en un vector nuevo las filas impares
% seleccionamos un vector nuevo las filas pares
B = sym([]);
A = sym([]);
for i = 1:n
if rem(i,2)==0 %pares
B(1,i) = a(i);
else %impares
A(1,i)=a(i);
end
end
C1 = find(A==0);
n1 = length(C1);
for j=2:n1+1
A(j) = [];
end
C2 = find(B==0);
n2 = length(C2);
for k=1:n2
B(k) = [];
end
Z = sym(zeros(n+2,n+2));
Z(1,[1:length(A)]) = A;
Z(2,[1:length(B)]) = B;
T = sym([]);
for b=2:5
b1 = (Z(2,1)*Z(1,b)-Z(1,1)*Z(2,b))./(Z(2,1));
T(b-1:5)=b1;
end
Z(3,[1:length(B)]) = T;
G =sym([]);
for d=2:5
c1 = (Z(3,1)*Z(2,d)-Z(2,1)*Z(3,d))/(Z(3,1));
G(d-1:5)=c1;
end
Z(4,[1:length(B)]) = G;
F = sym([]);
for e=2:5
d1 = (Z(4,1)*Z(3,e)-Z(3,1)*Z(4,e))/(Z(4,1));
F(e-1:5)=d1;
end
Z(5,[1:length(B)]) = F;
Y = sym([]);
for u=2:5
e1 = (Z(5,1)*Z(4,u)-Z(4,1)*Z(5,e))/(Z(5,1));
Y(u-1:5)=e1;
end
Z(6,[1:length(B)]) = Y;
El criterio se refiere a la función de transferencia en lazo cerrado del sistema. Para aplicar el
criterio a un sistema descrito por su función de transferencia en lazo abierto, hay que incluir la
realimentación haciendo:
El criterio de Routh-Hurwitz también se utiliza para el trazado del lugar de las raíces. En este
caso, dicho procedimiento de análisis estudia la función de transferencia del sistema en bucle
abierto 1+K·Gba(s)=0 (siendo K la ganancia variable del sistema). Su objetivo es determinar los
puntos de corte del LdR con el eje imaginario. Dichos puntos marcan el límite de estabilidad
del sistema, dicho en otras palabras, determinan el límite en el que los polos del sistema en
bucle cerrado pasan al semiplano derecho complejo y por lo tanto el sistema se vuelve
inestable. Como es evidente, tras la aplicación del criterio de Routh-Hurwitz, los resultados
obtenidos quedarán en función de la ganancia K, lo cual nos indicará a partir de qué valores de
K el sistema pasará de estable a inestable (ganancia K límite).
Es un análisis matemático matricial que nos brinda información acerca de la estabilidad del
sistema y el rango de estabilidad.
Ejercicio 8. Resolver los siguientes procesos considerando que Ruth Hurwitz se realiza sobre la
Ecuación Característica. Graficar su sistema para diferentes Ks, fuera del rango, dentro del
Rango, y en los extremos, dar una conclusión de cada uno.
1) k=1
k=-5
K=14
2) k=-1
K=2
K= 18
3) K=-5
K=5
K=43
4) K=-12
K= 2
K=32
K=-3
K=1
K=30
Los coeficientes deben ser positivos para que el sistema sea estable
Ejercicio 10. Existen dos casos especiales en Ruth Hurwitz, explique y de 1 ejemplo (Puede usar
la referencia).
Cuando en la penulima fila es cero, luego la reemplazamos por una variable epsilo para
luego hallar dicha variable.
Cuando toda una fila es cero , se considera que el sistema es estable. Para eso se
deriva una fila anterior para asi no tener ceros en la columna.
Ejercicio 11. Haga un Programa que ayude a Resolver Ruth Hurwitz.
function [Z]=routh(a)
syms K A B ,symvar K;
n = length(a);
% selecionamos en un vector nuevo las filas impares
% seleccionamos un vector nuevo las filas pares
B = sym([]);
A = sym([]);
for i = 1:n
if rem(i,2)==0 %pares
B(1,i) = a(i);
else %impares
A(1,i)=a(i);
end
end
C1 = find(A==0);
n1 = length(C1);
for j=2:n1+1
A(j) = [];
end
C2 = find(B==0);
n2 = length(C2);
for k=1:n2
B(k) = [];
end
Z = sym(zeros(n+2,n+2));
Z(1,[1:length(A)]) = A;
Z(2,[1:length(B)]) = B;
T = sym([]);
for b=2:5
b1 = (Z(2,1)*Z(1,b)-Z(1,1)*Z(2,b))./(Z(2,1));
T(b-1:5)=b1;
end
Z(3,[1:length(B)]) = T;
G =sym([]);
for d=2:5
c1 = (Z(3,1)*Z(2,d)-Z(2,1)*Z(3,d))/(Z(3,1));
G(d-1:5)=c1;
end
Z(4,[1:length(B)]) = G;
F = sym([]);
for e=2:5
d1 = (Z(4,1)*Z(3,e)-Z(3,1)*Z(4,e))/(Z(4,1));
F(e-1:5)=d1;
end
Z(5,[1:length(B)]) = F;
Y = sym([]);
for u=2:5
e1 = (Z(5,1)*Z(4,u)-Z(4,1)*Z(5,e))/(Z(5,1));
Y(u-1:5)=e1;
end
Z(6,[1:length(B)]) = Y;
LUGAR GEOMETRICO DE RAICES
Ejercicio 12. Qué es y para que sirve este método?
Ejercicio 13. Siga paso a paso el proceso de encontrar el Lugar Geométrico de Raíces
de su Sistema, y haga el análisis de estabilidad dando unas conclusiones, verifique si el
proceso estuvo correcto con la función rlocus del Matlab.
syms s
coef=[];
for i=(n-1):-1:0,
coef=[coef; s^i];
end;
salida=[coef Tabla(1:n,:)];
1.-
Ejercicio 14.Haga un Programa que ayude a Encontrar el LGR.
%TENEMOS LA SIGUIENTE FUNCION DE TRANSFERENCIA
%DEFINIMOS EL VALOR DE k
clear all
clc
syms K
syms s
disp('>>>LUGAR GEOMETRICO DE RAICES CRITERIO DE ROUTH "K"<<<')
disp('--------------------------------------------------------------')
n = (5);
d = (s+1)*(s+2)*(s+3);
num1 = [5];
den1 = [1 6 11 6];
disp('FUNCION G(S) DE TRANSFERENCIA')
tf(num1,den1)
disp('-----RAICES DE LOS CEROS----')
r1 = roots(num1)
disp('-----RAICES DE LOS POLOS----')
r2 = roots(den1)
disp('--------------------------------------------------------------')
disp('--------------------------------------------------------------')
disp('----UBICAMOS EN EL DIAGRAMA ESTOS PUNTOS')
disp('--------------------------------------------------------------')
disp('--------------------------------------------------------------')
num2 = 1;
den2 = 1;
[num,den] = feedback(num1,den1,num2,den2);
disp('FUNCION DE TRANSFERENCIA LAZO ABIERTO(ECUACION CARACTERISTICA)')
printsys(num,den)
disp('FUNCION DE TRANSFERENCIA LAZO CERRADO(ECUACION CARACTERISTICA)')
funcion_trans = tf(num1,den1)
%NUMERO DE RAMAS
disp('--------------------------------------------------------------')
disp('--------------------------------------------------------------')
disp('NUMERO DE RAMAS')
M = length(r2)
N = length(r1)
P = M-N;
disp(P)
disp('--------------------------------------------------------------')
disp('--------------------------------------------------------------')
%HALLAMOS EL ANGULO DE LAS ASINTOTAS
disp('--------------------------------------------------------------')
for j = 0:P-1
disp('ANGULO DE LAS ASINTOTAS ')
theta = (180*(2*j+1)/P)
end
%ENCONTRAMOS LA INTERSECCION DE LAS ASINTOTAS
disp('--------------------------------------------------------------')
disp('INTERSECCION DE LAS ASINTOTAS Y PUNTO DE INICIO')
sigma = (sum(r2)-sum(r1))/P
disp('--------------------------------------------------------------')
%DETERMINAMOS EL RANGO DE "K"
disp('APLICAMOS EL CRITERIO DE ESTABILIDAD DE ROUTH')
denominador = [1 6 11 (6+5*K)]
disp('-----------ECUACION DE ROUTH----------');
disp('--------------------------------------------------------------')
R = routh1(denominador)
k = vpa(solve(R(3,2)==0));
disp('--------------------------------------------------------------')
disp('--------------------------------------------------------------')
disp('--->VALOR DE Kmax > K > 0 <---')
disp(abs(k))
disp('--------------------------------------------------------------')
disp('--------------------------------------------------------------')
syms s
disp('DETERMINAMOS LOS PUNTOS DE RUPTURA CON LA DERIVADA')
dk = diff(n/d,s);
pretty(dk)
disp('PUNTOS DE RUPTURA')
s1 = vpa(solve(dk==0),5)
disp('--------------------------------------------------------------')
disp('COMPROBAMOS LOS RESULTADOS')
rlocus(num1,den1)
sisotool(funcion_trans)
V.- OBSERVACIONES Y CONCLUSIONES: