Está en la página 1de 15

CONTROL I PRACTICA 3 M. C.

BENITO BÁEZ SÁNCHEZ

PRÁCTICA 3.- Estabilidad de los sistemas de control en el dominio del tiempo


3.1 INTRODUCCIÓN
Una característica muy importante del funcionamiento transitorio de un sistema es su
estabilidad. Un sistema estable se define como aquel que tiene una respuesta limitada
cuando su señal de entrada es limitada. Esto es, se dice que el sistema es estable si
estando sujeto a una señal de entrada o perturbación limitada, su respuesta es de
magnitud limitada.

La localización de los polos de un sistema en el plano s indica la respuesta transitoria


resultante. Los polos en la parte izquierda del plano s dan como resultado una repuesta
decreciente para entradas de perturbación, por lo tanto, un sistema estable. El método
de Routh-Hurwitz determina el número de polos inestables de un sistema en lazo
cerrado.

La estabilidad relativa y el funcionamiento transitorio de un sistema de control de lazo


cerrado, están directamente relacionados con la localización en el plano s de las raíces
de lazo cerrado de la ecuación característica. Así mismo, con frecuencia, es necesario
ajustar uno o más parámetros del sistema para obtener las localizaciones adecuadas de
las raíces. Por tanto, vale la pena determinar cómo se desplazan en el plano s las
raíces de la ecuación característica de un sistema dado, a medida que varían los
parámetros; es decir, es útil determinar el lugar geométrico de las raíces en el plano s a
medida que se varia un parámetro. El método del lugar geométrico de las raíces fue
planteado por Evans en 1948 y se ha desarrollado y utilizado mucho en el análisis y
diseño de los sistemas de control.

En este capítulo se utiliza MATLAB para verificar el criterio de Routh-Hurwitz y para


obtener gráficas del lugar de las raíces. Las funciones de MATLAB que se usaran son
rlocus, rlocfind.

3.2.- Criterio de estabilidad de Routh-Hurwitz


Dada una ecuación característica con coeficientes constantes, podemos utilizar el
criterio de Routh para determinar el número de raíces en el semiplano derecho. Por
ejemplo:

Figura 3.1 Sistema de control de lazo cerrado

CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ


CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ

La ecuación característica es: G ( s ) = s 3 + s 2 + 2 s + 25 = 0

Asociada con el sistema de control de lazo cerrado mostrado en la figura 3. 1. El arreglo


de Routh correspondiente se muestra en la figura 3.2.

Los dos cambios de signo en la primera columna, indica que hay 2 raíces de la
ecuación característica en el semiplano derecho, por lo tanto el sistema es inestable. El
arreglo de Routh se muestra en seguida:

s3 1 2 0
2
s 1 25
s − 23 0
s0 25

Figura.- Arreglo de Routh – Hurwitz

Utilizando MATLAB podemos verificar el resultado del criterio de Routh-Hurwitz, esto es


calculando directamente las raíces de la ecuación característica empleando la función
roots,, como se muestra en la figura 3.3.

clc, clear all, close all


n=[1]; d=[1 1 2 24];
f=tf(n,d);
f1=feedback(f,[1]);
[num,den]=tfdata(f1,'V');
roots(den)
rlocus(f)
ans =
-3.0428
1.0214 + 2.6782i
1.0214 - 2.6782i

Cuando la ecuación característica está en función de un parámetro K, el método de


Routh-Hurwitz puede utilizase para determinar el rango de valores que el parámetro
puede tener para que el sistema sea estable. Consideremos el sistema de control de la
figura 3.4. La ecuación característica es: F ( s ) = s 3 + s 2 + 4 s + K = 0

Utilizando el método de Routh-Hurwitz encontramos que el rango de K para que el


sistema sea estable es -24 < K < -22

CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ


CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ

Figura 3.4 Sistema de Control en lazo Cerrado

MATLAB puede ser usado para verificar gráficamente este resultado. En la figura 3.3
se muestra el programa script en el cual primero se determina un vector con los valores
de K para los cuales queremos calcular las raíces de la ecuación característica,
después usamos la función roots para calcular las raíces y plot para graficarlo.

clc
clear all
%Programa script para calcular las raíces de la ecuación
%característica q(s)=s^3+s^2+2s+24+K
%para -24<k<-22
k=[-24:0.1:-22];
for j=1:length(k)
q=[1 1 2 24+k(j)];
p(:,j)=roots(q);
end
plot(real(p),imag(p),'x'),grid
xlabel('eje real'),ylabel('eje imaginario')

-K-22>0 K<-22 K+24>0 K>-24 -22>K>-24

En la figura 3.6 se muestran los resultados gráficos del rango de valores del parámetro
K para los cuales el sistema es estable. Estos resultados gráficos verifican los
resultados obtenidos por el método de Routh-Hurwitz.

Figura 3.6 Localización de las raíces para -24 < K < -22

CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ


CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ

El programa script de la figura 3.3 utiliza la función for para ejecutar repetidamente una
serie de instrucciones en cierto número de veces, su forma general es:

for variable = expresión


relación
..............
.............
relación
end
Figura 3.7 La Función “for”.

3.3.- LUGAR GEOMÉTRICO DE LAS RAÍCES


Para obtener el lugar de las raíces de un sistema. Se debe determinar su ecuación
característica, la cual es de la forma: 𝐷𝐷(𝑠𝑠) = 1 + 𝐺𝐺 (𝑠𝑠) 𝐻𝐻 (𝑠𝑠)

Para obtener el lugar de las raíces, Matlab dispone del comando rlocus. Las diferentes
sintaxis para utilizar este comando son:

rlocus(NUM,DEN)

Calcula y dibuja el lugar de las raíces.

Matlab generará automáticamente un conjunto de valores de la ganancia K.


rlocus(NUM,DEN,K)

Calcula y dibuja el lugar de las raíces cuando se trabaja con la función de transferencia
y ha sido previamente definido el rango de valores de K. Por ejemplo de 0 a 100 con
incrementos de 10: k=0:10:100
R = rlocus(NUM,DEN,K) o [R,K] = rlocus(NUM,DEN)

No dibuja el lugar de las raíces pero almacena en la matriz R, de longitud igual al


número de elementos de K, la localización de las raíces. R tendrá tantas columnas
como raíces existan, estas pueden además ser complejas.
Para la siguiente forma modificada de la ecuación característica de un sistema se desea
hallar el lugar de las raíces mediante Matlab:
1
D( s) = 1 + k
s + 3s 2 + 2 s
3

CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ


CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ

>>num=[0,0,0,1];
>>den=[1,3,2,0];
>>rlocus(num,den)

Ejemplo: Consideremos el sistema siguiente.

C (s) K ( s + 1)( s + 3)
La función de transferencia en lazo cerrado es: = la
R( s ) s ( s + 2)( s + 3) + k ( s + 1)
K ( s + 1)
ecuación característica puede escribirse como: 1 + =0
s ( s + 2)( s + 3)

La forma general de la ecuación característica para poder aplicar la función rlocus es:
P( s)
1+ K = 0 donde K es el parámetro que se varía de cero a infinito.
Q( s)
r=raices
K=ganancia
[r , k] = rlocus ( p , q)

Cuando se utiliza la función rlocus sin los argumentos [r,k] se genera la gráfica del lugar
de las raíces.

CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ


CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ

Cuando se utiliza con los argumentos [r,k] como se muestra en la figura 3.9 la función
rlocus retorna las raíces y las ganancias asociadas.

» p=[1 1];q=[1 3 6 0];


» rlocus(p,q)

Figura 3. 1 0 Lugar de las Raíces.


Función rlocfind
Matlab dispone del comando rlocfind que permite determinar los polos del sistema para
una valor determinado de k. Su sintaxis es:
[K,POLES] = rlocfind(num,den)
permite determinar los polos para un valor determinado de K. Por medio del cursor en el
lugar de las raíces se selecciona una localización, Matlab retorna el valor de k para esta
localización y los polos asociados a esta ganancia.
Al ejecutar el comando rlocfind con la función de transferencia anterior, Matlab activa la
ventana de figuras en espera de que el usuario seleccione un punto del lugar de las
raíces mediante el cursor. En este caso el punto seleccionado fue -2.4623 en la parte
real y - 0.0132 en la parte imaginaria.

» [k,poles]=rlocfind(num,den)
Select a point in the graphics window
selected_point =
-2.4623 - 0.0132i
k =1.6633
poles =
-2.4623

CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ


CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ

-0.2688 + 0.7773i
-0.2688 - 0.7773i
Para seleccionar el punto en el cual calcular los polos del lugar de las raíces sin usar el
cursor se agrega un parámetro al comando rlocfind. Este debe ser el punto o los puntos
en donde se desea tomar el valor de k. La nueva sintaxis es:

[K,POLES] = rlocfind(num,den,P)
P debe definirse previamente indicando la parte real e imaginaria del mismo. Por
ejemplo: P=3+0i o P=1-0.333i.

La función rlocfind se utiliza para determinar el valor del parámetro K en un punto


seleccionado de la gráfica del lugar de las raíces.

Considerando el ejemplo anterior se desea encontrar el valor de la ganancia K en un


punto deseado. El programa responde pidiendo seleccionar un punto en la gráfica del
lugar de raíces para poder determinar la ganancia en ese punto.

Escriba el siguiente archivo script:


clc, clear all, clear figure
p=[1 1];
q=[1 3 6 0];
rlocus(p,q), grid
rlocfind(p,q)

TEMA 3.-RESPUESTA EN LA FRECUENCIA


Para el estudio de un sistema en el dominio de la frecuencia existen tres herramientas
disponibles en MatLab como son: los diagramas de Bode, de Nyquist y de Nichols.
3.1.- Diagramas de Bode
El comando bode calcula la magnitud y la fase de la respuesta en frecuencia de
sistemas continuos, lineales e invariantes en el tiempo.
Para obtener el diagrama de Bode de una función de transferencia, se definen dos
vectores cuyos elementos son los coeficientes de los polinomios del numerador y del
denominador en potencias decrecientes de s. Estos vectores son usados en el
comando bode con la siguiente sintaxis: bode(num,den). Se define la función de
Y (s) 1
transferencia: H ( s ) = = 2
U ( s ) s + 0.25s + 1
>>y=[1];
>>u=[1 0.25 1];

CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ


CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ

>>bode(y,u)
MatLab despliega la grafica de Bode:
Ejemplo Obtenga el diagrama de bode de la siguiente funcion de transferencia:
25
G (s) = 2
s + 4 s + 25
» num=[25];den=[1 4 25];
» bode(num,den)

Figura 3.1.- Diagrama de bode

Practiquemos lo mismo pero con los argumentos


num=[25];den=[1 4 25];
w=logspace(0,2,100);
[mag,phase,w]=bode(num,den,w);grid
magdb=20*log10(mag);
fase=180*phase/pi;
subplot(211),semilogx(w,magdb),grid
xlabel('frecuencia[rad/s]')
ylabel('magnitud en decibeles')
subplot(212),semilogx(w,fase),grid
xlabel('frecuencia[rad/s]')
ylabel('angulo en grados')

logspace(d1, d2, n) Genera n puntos igualmente espaciados en forma logaritmica


entre las decadas 10^d1 a la decada 10^d2

Para especificar un rango deseado de frecuencias en las cuales se desea obtener el


diagrama de Bode, se emplea un vector de frecuencias en el que se especifica la
frecuencia inicial, el incremento y la frecuencia final. Por ejemplo:

CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ


CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ

>>w=0:0.1:100;
>>bode(y,u,w)

Este comando muestra el diagrama de Bode entre 0 y 100 rad/s.


Para obtener el margen de ganancia, el margen de fase, la frecuencia de cruce de
ganancia y la frecuencia de cruce de fase MatLab dispone del comando margin. Las
diferentes formas de utilizar este comando son:
[Gm,Pm,Wcg,Wcp] = MARGIN(NUM,DEN)
[Gm,Pm,Wcg,Wcp] = MARGIN(MAG,PHASE,W)

toma los vectores de magnitud, fase y frecuencia del diagrama de Bode.


>>num=10;
>>den=[1 0.25 1];
>>[Gm,Pm,Wcg,Wcp] =margin(num,den)

Matlab responde
Gm = Inf
Pm =4.7487
Wcg = NaN
Wcp =3.3114
>>margin(num,den)

3.2.- Graficas de Nyquist


Otra herramienta de análisis en el dominio en la frecuencia que ofrece MatLab es el
diagrama de Nichols. Para obtener el diagrama de Nichols se utiliza el comando nichols,
cuya sintaxis es idéntica a la del comando bode: nichols(num,den,W) si se emplea la
función de transferencia.

100 100
H (s) = =
s (0.04s + 1) 0.04s 2 + s
>>y=[0 0 100];
>>u=[0.04 1 0];
>>nichols(y,u)
MatLab despliega el diagrama de Nichols:

Otra herramienta de análisis en el dominio en la frecuencia que ofrece MatLab es el


diagrama de Nyquist. Para obtenerlo se utiliza el comando nyquist, cuya sintaxis es

CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ


CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ

idéntica a la del comando bode y nichols: nyquist(num,den,W) si se emplea la función de


transferencia.
1
H (s) = 2
s + 6s + 5
>>y=[1];
>>u=[1 3 5];
>>nyquist(y,u)
MatLab despliega en la ventana de figuras el diagrama de Nyquist:

1
Hagamos un ejemplo: G ( s ) = 2
1
s + 0.8s + 1
num=[1];den=[1 0.8 1];
nyquist(num,den)

Figura 3.2.- Grafica de nyquist sin argumentos

CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ


CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ

Ahora con argumentos

num=[1];den=[1 0.8 1];

w=[0.1:0.01:100];

[re,im,w]=nyquist(num,den,
w);

plot(re,im,re,-im),grid

Figura 3.3.- Grafica de nyquist utilizando argumentos

Controladores PID
Para implementar los diferentes tipos de controladores (P, PD, PI, PID) en MatLab se
hace uso de la función de transferencia propia del sistema a objeto de estudio. Si dicho
sistema es de la forma:

donde G(s) es la función de transferencia de la planta o proceso; mientras que GC(s) es


la función de transferencia del controlador.

Para el caso del controlador proporcional, GC(s)=Kp, que es una constante o valor
escalar. El controlador PI es GC(s)=Kp + Ki/S que puede representarse como una
relación ente dos polinomios.

El controlador PID es GC(s)=Kp + Ki/S + Kd S que se representa como:


Kd s2 + K p s + Ki
GC ( s ) =
s

CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ


CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ

que es de nuevo una relación entre dos polinomios. Si se multiplica el controlador GC(s)
por la función de transferencia del proceso o planta G(s) se formará la función de
1
transferencia de lazo abierto. Por ejemplo un G(S) puede ser: G ( s ) =
s + 10 s 2 + 20 s
3

Para obtener la respuesta en lazo abierto ante una entrada escalón unitario tenemos:
Kd s2 + K p s + Ki Kd s2 + K p s + Ki
GC ( s ) * G ( s ) = =
s ( s 3 + 10 s 2 + 20 s ) s 4 + 10 s 3 + 20 s 2

Kp=50;
Ki=1;
Kd=10;
num=[Kd Kp Ki];
den=[1 10 20 0 0];
step(num,den)

Kp=500;
Ki=1;
Kd=100;
num1=[Kd Kp Ki];
den1=[1 0];
num2=1;
den2=[1 10 20 0];
[numc,numd]=cloop(
conv(num1,num2),
conv(den1,den2),-1);
step(numc,denc),
grid

Cuestionario para el tema estabilidad.

Para el sistema siguiente, dibuje el lugar geométrico de las raíces.


a) Realizando el programa para dibujar el lugar de las raíces.
b) Usando directamente los comandos de Matlab, como se ha hecho en el archivo
de tema 3.

CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ


CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ

S4 1 3 K

S3 3 2 0

S2 7/3 K 0

S1 2-9K/7 0

S0 K

1 3
−� � 9−2 7
𝑏𝑏1 = 3 2 = =
3 3 3

1 𝐾𝐾
−� �
𝑏𝑏2 = 3 0 = 3𝐾𝐾 − 0 = 3𝐾𝐾 = 𝐾𝐾
3 3 3

3 2
−� � 14/3 − 3𝐾𝐾 14 − 9𝐾𝐾
7/3 𝐾𝐾
𝑐𝑐1 = = = = 2 − 9𝐾𝐾/7
7/3 7/3 7

7/3 𝐾𝐾
−� �
2 − 9𝐾𝐾/7 0
𝑑𝑑1 = = 𝐾𝐾
2 − 9𝐾𝐾/7

9𝐾𝐾 9𝐾𝐾 14
2− ≥0 2≥ 14 ≥ 9𝐾𝐾 14/9 ≥ 𝐾𝐾 (−∞, )
7 7 9

El rango de valores de K va de 0 a 14/9.

El Sistema que se va ha simular a continuación esta en el libro de ingenieria de control


moderna de k. ogata en el capitulo 8. Es un ejemplo de Bode.

Lo que usted debe considerar es como se obtiene la respuesta en frecuencia para un


sistema de control.

Debe aprender a manejar todos los comandos que se muestran en este ejemplo.

CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ


CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ

Obvio debe comparar la respuesta que se obtiene de este trabajo realizado por las
piedras (esto es paso a paso), y contrastarlo con lo que el software de matlab me da
directamente.

En su reporte debe explicar claramente que hace cada línea:

Como de costumbre no se olvide de poner sus conclusiones

clc, clear all, close all


%G(s)=(10(s+3))/(s(s+2)(s^2+s+2))
% s=jw
%G(jw)=(10(jw+3))/(jw(jw+2)((jw)^2+jw+2))
k1=10;
wx=logspace(-1,1,150);
n=length(wx);
for k=1:n
w=wx(k);
z1=complex(3,w);z2=complex(0,w);z3=complex(2,w);z4=complex((2-w^2),w);
m1=abs(z1);m2=abs(z2);m3=abs(z3);m4=abs(z4);
mag=k1*m1/(m2*m3*m4);
magdb(k)=20*log10(mag);
a1=angle(z1);a2=angle(z2);a3=angle(z3);a4=angle(z4);
an(k)=(a1-a2-a3-a4)*180/pi;
end
subplot(221),semilogx(wx,magdb),grid
subplot(223),semilogx(wx,an),grid
num=[10 30];
den=conv([1 2 0],[1 1 2]);
subplot(222), bode(num,den), grid

q(s)=s3+s2+2s+24+K

S3 1 2 0
S2
1 K+24 0
- [ K+24 – 2]/1
S1 0
- K - 22

CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ


CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ

S0 K + 24

-K-22>0 K<-22 K+24>0 K>-24

FORMATO DE PONDERACION DEL REPORTE

ENRIQUECER MARCO 10
TEORICO

ASISTENCIA 20

HACER LO MARCADO EN LA 10
PRACTICA

EVIDENCIA FOTOGRAFICA 20

CUESTIONARIO 20

CONCLUSIONES 10

PORTADA 10

CONTROL I PRACTICA 3 M. C. BENITO BÁEZ SÁNCHEZ

También podría gustarte