practica 9 de control
DESCRIPTION
Esta es una guia de como tienen que ir los reportes de la practicas para la materia de controlTRANSCRIPT
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
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:
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).
K G(s)
X(s) Y(s)
H(s)
+ -
M(s) Y(s) X(s)
() = ()
1 + () ()
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
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
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
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.
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
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:
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
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.0523 -0.0531
-0.0300 -0.0278 -0.0241 -0.0188
-0.0100 -0.0112 -0.0136 -0.0182
Columns 5 through 8
-0.0531 -0.0531 -0.0549 -0.0594
-0.0185 - 0.0000i -0.0185 - 0.0003i -0.0176 - 0.0080i -0.0153 -
0.0157i
-0.0185 + 0.0000i -0.0185 + 0.0003i -0.0176 + 0.0080i -0.0153 +
0.0157i
Columns 9 through 12
-0.0665 -0.0771 -0.0920 -0.1129
-0.0117 - 0.0245i -0.0065 - 0.0355i 0.0010 - 0.0499i 0.0115 -
0.0690i
-0.0117 + 0.0245i -0.0065 + 0.0355i 0.0010 + 0.0499i 0.0115 +
0.0690i
Columns 13 through 16
-0.1416 -0.1809 -3.6478 Inf
0.0258 - 0.0946i 0.0454 - 0.1291i 1.7789 - 3.1331i Inf
0.0258 + 0.0946i 0.0454 + 0.1291i 1.7789 + 3.1331i Inf
k = 1.0e+007 *
Columns 1 through 9
0 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000
Columns 10 through 16
0.0000 0.0000 0.0001 0.0001 0.0003 4.7351 Inf\
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
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)
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
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
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
Por lo tanto existen 3 rangos de valores con un comportamiento distinto del
sistema:
Rango 1: K
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
Sin sobreoscilacin (K
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
Con K=60
Inestable (K> 192). Se elige K =250.
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
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:
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
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)
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
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):
=
=
=
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
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.
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
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:
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
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):
=
ln 0.015= 36.79
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
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
Comprobar el resultado anterior sobre Simulink (simular el comportamiento del
sistema ante una entrada escaln durante tanto tiempo como sea necesario)
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
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
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
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):
=
ln 0.2= 62.87
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
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
-
INSTITUTO TECNOLGICO DE MORELIA
DEPARTAMENTO DE INGENIERA ELCTRICA
CONTROL I
REPORTE DE PRACTICA N9.
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.