Anda di halaman 1dari 21

INSTITUTO TECNOLGICO DE MORELIA

DEPARTAMENTO DE INGENIERA ELCTRICA


CONTROL I

RESUMEN
De una manera muy prctica se dar a conocer cmo utilizar
herramientas de MATLAB como Simulink , con el objetivo de encontrar el
lugar geomtrico de las races (LGR) mismo donde conoceremos los
comandos comunes usados para ello como son rlocus, rlocfind, entre otros
, retomando nuevamente las funciones de transferencia para conocer su
lugar geomtrico de las races del sistema, sus polos , ceros as como su
comportamiento de estabilidad entre otros permitindonos de la misma
forma graficar el comportamiento de nuestros sistemas.
INTRODUCCIN
CALCULO DEL LUGAR GEOMTRICO DE LAS RACES CON MATLAB
El toolbox de control de MATLAB dispone de comandos para el clculo del
lugar de las races. Las instrucciones que utilizaremos sern rlocus y rlocfind.
Normalmente partimos de un sistema como el siguiente:

X(s)
+

Y(s)
K
-

G(s)

Y(s)

X(s)
M(s)

H(s)
() =

()
1 + () ()

El lugar de las races nos muestra la evolucin de los polos del sistema
realimentado o en lazo cerrado M(s) cuando el parmetro K vara desde 0
hasta 8.
La instruccin rlocus permite obtener este trazado, y utiliza como
argumento el sistema en lazo cerrado definido por la funcin de
transferencia G(s)H(s).

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

Ejemplo: obtendremos el lugar de las races para el siguiente sistema.

El primer paso es definir las funciones de transferencia G(s), H(s) y un


tercero para G(s)*H(s) a las cuales se denominaran sis_g, sis_h y sis_gh,
respectivamente. Primero se definen G(s) y H(s):
sis_g=tf(1,[1 4 3])
sis_h=tf([1],[1 5])
sis_gh=series(sis_g,sis_h)
rlocus(sis_gh)
Corriendo el programa en el workplace de MATLAB sucede lo siguiente:
s^3 + 9 s^2 + 23 s + 15
Transfer function:
1
------------s^2 + 4 s + 3

Transfer function:
1
----s+5

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

La funcin de transferencia G(s)H(s) ser el equivalente serie de las dos


funciones anteriores. MATLAB permite calcular este equivalente mediante
la instruccin series, esto en el workplace de MATLAB produjo lo siguiente.
Transfer function:
1
----------------------s^3 + 9 s^2 + 23 s + 15
A continuacin utilizaremos el sistema sis_gh recin creado como
argumento para la instruccin rlocus:
>>rlocus(sis_gh)
MATLAB generar un grfico como el siguiente:

Interpretar el grfico resultante es sencillo: muestra la situacin en el plano


complejo de los polos del sistema realimentado o en lazo cerrado ().
Cada rama representa la situacin de uno de los polos; en este caso
aparecen tres ramas dibujadas con tres colores distintos para mayor
claridad. Los puntos de comienzo ( = ) de cada rama coinciden con los
polos en lazo abierto (cruces sobre el grfico) y puntos de finalizacin (K=8)
de cada rama tienden a infinito en este caso.
REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

Si no se aade ningn parmetro extra, MATLAB elegir automticamente


los valores de K entre 0 y 8 para los cuales calcular el lugar de las races.
En determinadas ocasiones interesa elegir manualmente el rango de
valores deseado para K. Para ello basta con introducir un nuevo parmetro
en rlocus:
>> rlocus(sis_gh, [0:.1:100])%k de 0 a 100 a intervalos de .1
Al introducir el parmetro el programa completo seria

sis_g=tf(1,[1 4 3])
sis_h=tf([1],[1 5])
sis_gh=series(sis_g,sis_h)
rlocus(sis_gh,[0:.1:100])
El resultado sera el siguiente:

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

Si no se desea un resultado grfico, sino que se desea conocer los valores


numricos de los polos en lazo cerrado para cada valor de K la instruccin
a teclear ser:
>> [r,k]=rlocus(sis_gh)
Agregando dicha instruccion al programa el mismo quedaria de la
siguiente manera:

sis_g=tf(1,[1 4 3])
sis_h=tf([1],[1 5])
sis_gh=series(sis_g,sis_h)
[r,k]=rlocus(sis_gh)
Al correr el programa en MATLAB se obtiene lo siguiente:
r =
1.0e+002 *
Columns 1 through 4
-0.0500
-0.0510
-0.0300
-0.0278
-0.0100
-0.0112
Columns
-0.0531
-0.0185
0.0157i
-0.0185
0.0157i
Columns
-0.0665
-0.0117
0.0690i
-0.0117
0.0690i

-0.0523
-0.0241
-0.0136

-0.0531
-0.0188
-0.0182

5 through 8
- 0.0000i

-0.0531
-0.0185 - 0.0003i

-0.0549
-0.0176 - 0.0080i

-0.0594
-0.0153 -

+ 0.0000i

-0.0185 + 0.0003i

-0.0176 + 0.0080i

-0.0153 +

9 through 12
-0.0771
- 0.0245i -0.0065 - 0.0355i

-0.0920
0.0010 - 0.0499i

-0.1129
0.0115 -

-0.0065 + 0.0355i

0.0010 + 0.0499i

0.0115 +

Columns 13 through 16
-0.1416
-0.1809
0.0258 - 0.0946i
0.0454 - 0.1291i
0.0258 + 0.0946i
0.0454 + 0.1291i

-3.6478
1.7789 - 3.1331i
1.7789 + 3.1331i

+ 0.0245i

k = 1.0e+007 *
Columns 1 through 9
0
0.0000
0.0000
0.0000
0.0000
Columns 10 through 16
0.0000
0.0000
0.0001

0.0000

0.0000

0.0000

0.0001

0.0003

4.7351

Inf
Inf
Inf

0.0000
Inf\

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

La variable k contendr los valores del parmetro K utilizados para el


clculo del lugar de las races; la variable r contendr los polos del sistema
para cada valor de K.
Tambin es posible comprobar sobre el propio grfico los valores del
parmetro K correspondientes a cada punto del lugar de las races. Para
ello se emplea la instruccin rlocfind Esta instruccin, ejecutada a
continuacin de rlocus permite pinchar con el ratn sobre un punto
cualquiera del lugar de las races y obtener el valor del polo ms cercano
al punto donde se ha pinchado, el valor de K correspondiente a ese polo y
la situacin del resto de polos para ese valor de K (aparecen marcados en
rojo sobre el diagrama):
>>rlocus(sis_gh)
>>rlocfind(sis_gh)
Select a point in the graphics window
Al agregar al poner estas instrucciones al programa este queda de la
siguiente manera:
sis_g=tf(1,[1 4 3])
sis_h=tf([1],[1 5])
sis_gh=series(sis_g,sis_h)
[r,k]=rlocus(sis_gh)
rlocfind(sis_gh)

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

A continuacin se debe pinchar con el ratn sobre un punto cualquiera del lugar
de las races esto se hace en la siguiente figura que se muestra:

La respuesta que aparece en la ventana de comandos indica el valor de s


en el punto del LGR donde se ha pinchado (selected point) y el valor de K
correspondiente (ans):
Select a point in the graphics window
selected_point =
-1.8555 - 0.0373i
ans =
3.0836
Tal y como indica MATLAB, en este caso el punto donde se ha pinchado es
s=-1.8555 - 0.0373i y el valor de K para el cual el sistema ese polo es
K=3.0836
En el ejemplo, es interesante conocer el valor de K correspondiente a dos
de los puntos del grfico: el punto a partir del cual aparecen dos polos
complejos conjugados y el puno a partir del cual aparecen dos polos
inestables. Si buscamos estos puntos con la ayuda de rlocfind deberamos
obtener:
Punto a partir del cual aparecen los polos complejos K=3.0753
Punto a partir del cual aparecen los polos inestables K=195.2119

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

Por lo tanto existen 3 rangos de valores con un comportamiento distinto del


sistema:

Rango 1: K<3.08. El sistema tiene 3 polo reales. No debe haber


sobreoscilacin.
Rango 2:3.08<K<192. El sistema tiene 1 polo real y 2 polos complejos
conjugados. Puede haber sobre-oscilacin.
Rango 3: K>192. EL sistema tiene un polo real y 2 polos complejos
conjugados con parte real mayor que cero. Por lo tanto el sistema es
inestable.

La forma ms sencilla de comprobar este comportamiento es realizar


simulaciones en el entorno Simulink que nos permitan ver la respuesta a
escaln del sistema para cada uno de los valores de K calculados. El
esquema a introducir es el siguiente:

Se debe simular el funcionamiento del sistema durante 10 segundos con los


siguientes valores (por ejemplo) para la constante K:

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

Sin sobreoscilacin (K <3.08). Se elige K=2.

Con sobreoscilacin (3.08<K<192). Se eligen K=20y K=60.

Con K=20

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

Con K=60

Inestable (K> 192). Se elige K =250.

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

NOTA: A la hora de hacer un estudio de este tipo se debe tener en cuenta


que los polos que ms influirn en el comportamiento transitorio del sistema
sern los ms prximos al eje imaginario, lo que se ha venido denominando
polos dominantes. No obstante, el resto de polos tambin influyen, aunque
sea poco. Por ejemplo, el tercer polo existente en el ejemplo hace que el
comportamiento no sea exactamente el de un sistema de 2 orden (la
sobreoscilacin se produce para valores de K superiores a lo previsible).

UTILIZACIN DEL LUGAR DE LAS RACES PARA EL DISEO DE SISTEMAS DE


CONTROL
Partiremos del servomecanismo de posicin ya visto en la prctica 7:

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

En la mencionada prctica, se obtuvo una representacin para el sistema


mediante un diagrama de bloques, en el que la entrada es la referencia
de posicin x0(t) y la salida es la posicin real x(t).
Supondremos conocidos los valores de todas las constantes, a excepcin
de la constante del controlador Kc, cuyo ajuste ser nuestro objetivo:

R = 1.25 (Resistencia de los devanados del motor)


I = 0.8 (Momento de inercia del conjunto)
B=0.5 (Coeficiente de rozamiento viscoso)
Kp=3 (Constante de par del motor)
Kv = 0.01 (Constante de velocidad del motor)

Reduciendo el diagrama de bloques con los datos disponibles para las


constantes, se llega a:

Sobre el diagrama anterior, es posible comprobar el efecto que produce la


variacin de Kc sobre la situacin de los polos del sistema mediante la
instruccin rlocus de MATLAB:
>>sis= tf(3, [1 0.625 0])
Transfer function:
3
------------s^2 + 0.625 s
>>rlocus(sis)

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

El resultado debe ser el siguiente:

Puede apreciarse cmo el LDR tiene dos ramas, lo que indica que el
sistema tiene dos polos, que son reales para valores bajos del parmetro K
y complejos conjugados para valores ms altos.
Dado que se trata de un sistema de segundo orden (2 polos), son
aplicables las expresiones que indican la sobreoscilacin (Mp), el tiempo
de subida (tp) y el tiempo de establecimiento (ts) ante entrada escaln, en
funcin de la situacin de los polos del sistema. Tales expresiones se indican
a continuacin, junto con el grfico que muestra la relacin entre los
parmetros s (parte real polos), d (parte imaginaria), (ngulo) y
(coeficiente de amortiguamiento):

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

De acuerdo con las frmulas anteriores, sera posible elegir la constante Kc


del controlador de la forma siguiente:

Determinar el comportamiento deseado en trminos de Mp,ts,tp.


Traducir ese comportamiento a una situacin deseada para los
polos usando las frmulas.
Determinar cul es el valor de K que sita los polos en esa posicin
mediante la instruccin rlocfind de MATLAB.

Adems de esto, MATLAB ofrece una utilidad adicional: la instruccin sgrid


muestra un entramado sobre el lugar de las races que permite conocer
fcilmente cules son los puntos con un mismo coeficiente de
amortiguamiento? (puntos que forman el mismo ngulo con el eje real).
Probaremos esta instruccin tecleando:
>>sgrid
Y el resultado que se obtendr ser el siguiente:

En la figura puede apreciarse como las lneas radiales muestran los puntos
del diagrama con el mismo valor para el coeficiente de amortiguamiento:
0.98, 0.92, 0.84, 0.72, 0.58, 0.44, 0.3 y 0.14.

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

Si el rango de valores que se muestran no es suficiente, cabe la posibilidad


de indicar expresamente cual es el rango de valores de K para los que se
quiere construir el lugar de las races. Como ejemplo, se dibujara el lugar
de las races para valores de K entre 0 y 0.5 a intervalos de 0.001, y
posteriormente se volver a dibujar rama anterior:
>>rlocus(sis, [0:0.001:0.5]
>>sgrid
El resultado que debe aparecer es el siguiente:

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

EJERCICIO
A partir del lugar de las races calculado se pide:
Usando las formulas anteriores determinar qu situacin de los polos del sistema
corresponde a una sobreoscilacin del 1.5% (Mp=0.015):

= 0.015

Despejamos (ngulo de fase polo):


=

= 36.79
ln 0.015

Obtenemos (coeficiente de amortiguamiento)


= cos

= = 0.8008

Buscar ese punto sobre el lugar de las races y obtener (aproximadamente) el


valor de la constante para el que se produce.

>> rlocfind(sis)
Select a point in the graphics window
selected_point =
-0.29231 + 0.2199i
ans =
0.500

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

Comprobar el resultado anterior sobre Simulink (simular el comportamiento del


sistema ante una entrada escaln durante tanto tiempo como sea necesario)

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

Repetir los tres pasos anteriores tomando como condicin un tiempo de pico de 3
segundos.
De la formula

=3

Obtenemos la frecuencia angular:


= 1.047
Se busc este dato sobre el LGR
>> rlocfind(sis)
Select a point in the graphics window
selected_point =
-0.3127 + 0.9909i
ans =
0.3599

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

Repetir los 3 pasos anteriores para localizar sobre el LGR un valor del parmetro K
que permita cumplir simultneamente las condiciones siguiente:
Tiempo de pico menor o igual a 6 segundos
Sobreoscilacin menor o igual que el 25%
De las formulas obtenemos y para sacar las coordenadas del polo, usaremos
un Mp=20% y un tp=5s

= 0.20

Despejamos (ngulo de fase polo):


=

= 62.87
ln 0.2

Obtenemos (coeficiente de amortiguamiento)


= cos

= = 0.4559

Obtenemos la frecuencia angular:

=5

= 0.6283
Ahora obtenemos
=

1 2

0.628
1 (0.455)2

=0.7059
Con estos datos es posible obtener la parte real y la parte imaginaria del polo
Parte real: = = (0.4559)(0.7059) = 0.3218
Parte imaginaria: = 1 2 = 0.70591 (0.4559)2 = 0.6282

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

REPORTE DE PRACTICA N9.

INSTITUTO TECNOLGICO DE MORELIA


DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I

CONCLUSIN
Sin duda alguna cuando buscamos encontrar el lugar geomtrico de las
races (LGR) MATLAB se vuelve la herramienta perfecta no solo por su
velocidad de respuesta y solucin sino por su simpleza para simular,
graficar y en especial el clculo preciso. Comparado con el mtodo
analtico hacerlo en MATLAB nos representa evitar el teorema de Ruth
Hurwits evitando de esta forma un proceso ms largo con mayor
posibilidad de errores tomando en cuenta sistemas de gran tamao.
Adems sin duda la grfica y dimensionado que nos presenta MATLAB nos
ayuda a observar mejor el comportamiento de los sistemas permitiendo de
la misma forma recrear o buscar el modelado ideal de los sistemas que
necesitamos.

REPORTE DE PRACTICA N9.