Está en la página 1de 53

Robótica Inteligente

Tema 7:
Control
Control
• Introducción
• Control clásico
– Lazo abierto – lazo cerrado
– Control ON-OFF
– Control proporcional
– Control proporcional-derivativo
– Control proporcional-integral
Introducción
• Tarea básica de un controlador – ajustar el
estado de un proceso (variable de proceso -
VA) a un valor deseado (valor de referencia
- VR)
• La diferencia entre ambos valores es el
error:
E = VR - VA
• Entonces el objetivo del controlador es
reducir el error a cero (o al mínimo)
Sistema de Control

E
VR + VA
Controlador Proceso
-

Sensor
Ejemplo 1 – mantener al robot a
una distancia (DR) de la pared
(seguimiento de pared)
Ejemplo 2 – mantener al robot sobre
la línea (seguimiento de línea)


Ejemplo – mantener al robot a
una distancia (DR) de la pared
(seguimiento de pared)
E
DR Control DA
Robot
dirección

Sensor de
distancia
Lazo abierto vs. lazo cerrado
• Lazo abierto – se ajusta el valor del
controlador de acuerdo al valor deseado
pero no hay medición del valor actual
(retroalimentación)
• Lazo cerrado – se mide la salida del proceso
de forma que se compare con el valor
deseado y se pueda automáticamente
reducir el error
Lazo abierto

Control DA
DR Robot
dirección

Lazo cerrado
DR Control DA
Robot
dirección

Sensor de
distancia
Algoritmo de Control
• La forma de ajustar el proceso en función
del error se le denomina el algoritmo de
control
• Algunos de los algoritmos básicos en
control clásico son:
– Control ON –OFF
– Control proporcional
– Control proporcional derivativo (PD)
– Control proporcional integral (PI)
– Control proporcional integral-derivativo (PID)
Control ON - OFF
• Se basa en que el controlador tiene sólo dos
estados (ON/OFF, abieto/cerrado, izq./der.)
• Si comparamos el VA con el VR, se toma
una de las dos posibles acciones
dependiendo del signo del error
• Por ejemplo, en un control de temperatura
de un refrigerador:
– Si Temp > T-ref.  encender compresor
– Si Temp < T-ref.  apagar compresor
Control ON - OFF

ON

OFF
T

Ref.
Control ON - OFF
• Normalmente se tiene una zona de
tolerancia (GAP o histéresis) en la que se
mantiene el estado anterior
• Algoritmo de control:
E = VR – VA
C = signo E
Si |E| - ½ GAP < 0  OFF
Si |E| + ½ GAP > 0  ON
Control ON – OFF, con GAP

Gap
ON

OFF
T

Ref.
Control On-Off

Esquema de control on-off
void main()
{
while(1)
{
int error = goal – sensor_lecture;
int power = 100;

if(error < (goal - gap))/*to far from line*/


left(power);
else right(power); /* turn toward the line */
msleep(100L); /* 10 iterations per second */
}
}
Control ON – OFF
Respuesta
Temp.

Ref.

ON Tiempo

OFF
Control
Control On-Off

Control On-Off
– Resultados experimentales para seguimiento
de linea recta, con diferentes valores de
(setpoint).
Control On-Off
Control On-Off
Control On-Off
– Cuando la dirección del robot sobrepasa el
limite inferior de la banda, entonces el
volante se gira completamente a la
izquierda, pero debido a la inercia del
sistema pasa algun tiempo para que la
dirección del vehiculo cambie.
– En la siguiente ocación que la dirección del
robot sobrepasa el limite superior de la
banda, entonces el volante se gira
completamente a la derecha,
sobrepasandose a la dirección deseada.
Control On-Off

Es fácil notar que el robot oscila al
rededor del valor de referencia del
algoritmo y por lo tanto nunca viajará
en linea recta
Control Proporcional (P)
• En lugar de tener una acción constante que sólo
depende del signo del error, podemos hacer que la
magnitud del control dependa del tamaño del
error
• En otras palabras la ley de control debe ser de la
siguiente forma:

V = KE + M
– E = PV – SP (error)
– K es una constante de proporcionalidad
– M es una posición donde E = 0
Control proporcional

La ecuación anterior define una linea
recta
Set point
Totalmente
a la derecha

V
Valor de M
la posición Error

Totalmente
a la izquierda
0% Rango de la variable de proceso 100%
Control proporcional

La pendiente de la línea, determina el
cambio en el giro del volante, que
corresponde al valor del error.
SP
Totalmente
a la derecha

Valor de M
la posición

Totalmente
a la izquierda
0% PV 100%
Control proporcional

El porcentaje de cambio del error,
necesario para mover el volante a
escala completa, se conoce como
banda proporcional (PB).
– Por lo tanto, en la figura anterior se nota
que se requiere de un valor grande de
error para girar el volante completamente
en cualquier dirección.
– En la figura siguiente se requiere de un
error pequeño para girar el volante
completamente en cualquier dirección.
Control proporcional

SP
Totalmente
a la derecha

Valor de M
la posición

Totalmente
a la izquierda
0% PV 100%
Control proporcional

La relación entre la ganancia proporcional y
la banda proporcional es:
K = 100/PB
donde PB esta en porcentaje
El termino de estado estable M se conoce como
restablecimiento manual (manual reset)
Control proporcional

La acción de control con respecto al
tiempo de este esquema se muestra en
la siguiente figura:

Derecha

Volante
Izquierda
PV SP
E
Control proporcional

Control proporcional
void main()
{
while(1)
{
int error = reference – sensor_lecture;
int power = 100error + M;

if(error < goal)/*to far from line */ left(power);


else right(power); /* turn toward the line */
msleep(100L); /* 10 iterations per second */
}
}
Control proporcional
Control proporcional
Control proporcional
Control proporcional
Control Proporcional - Derivativo
(PD)

De las graficas anteriores se puede ver que al incrementar
la ganancia proporcional, no mejora el comportamiento
del sistema. Para ganancias grandes, se lleva al sistema
rápidamente al valor de referencia, pero aún se tienen
sobretiros y oscilaciones.

La solución es agregar al algoritmo de control un término
que permita corregir el efecto del momento del sistema,
cuando se esta moviendo hacia el valor de referencia

dE
V K p E Kd
dt
Control Proporcional Derivativo

Donde:
E = Valor de referencia - lectura del sensor,
es el error
Kp es la constante del término proporcional
Kd es la constante del término derivativo
dE/dt es la derivada del error
Control Proporcional Derivativo
void main()
{
while(1)
{
int sensor_lecture = analog(CENTRAL_SENSOR);
int error = reference - sensor_lecture
int power = kp*error - kd(erro - last_error);

if(sensor_lecture < goal) /* to far from line /* left(power);


else right(power); /* turn toward the line */
msleep(100L); /* 10 iterations per second */

int last_error = error;


}
}
Control Proporcional Derivativo

La potencia ahora es una función del
error proporcional (kp*error) y la
derivada del error (kd*(error -
last_error)) o velocidad del error
Control Proporcional Derivativo
Control Proporcional Derivativo

Los resultados muestran una reducción
en el sobretiro y una minimización en
el comportamiento oscilatorio del
sistema.

Debe observarse la naturaleza discreta de la grafica de
velocidad, debida principalmente al “error de muestreo
discreto”.

Este error es a consecuencia del intervalo que existe entre la
lectura del error en un instante dado y el valor del error un
instante anterior.
Control Proporcional Derivativo
Control Proporcional Derivativo

Para ganancias derivativas grandes un
sistema podria presentar
inestabilidades de tal forma que el
sistema se puede frenar y detenerse
aún sin alcanzar el valor de referencia.

Cuando la velocidad pasa por el valor cero, entonces la
ganancia obliga al sistema a moverse de nuevo y el control
empieza a corregir otra vez. Lo que da como resultado un
comportamiento poco elegante.
Control Integral

El control proporcional genera un
error residual, cada vez que se recarga
el sistema y por lo tanto ese error debe
reinicializarse manualmente, si se
desea tener un error cero.

Una forma de reinicializar el
controlador de manera autómatica, es
indicandole al controlador que mueva
el volante en la dirección donde se
reduce el error hasta que no se tenga
mas error.
Control Integral

Por ejemplo se podría hacer que el
volante gire a velocidad constante, a
este tipo de reset se le conoce como
control flotante de velocidad única ,
donde “flotante” se refiere a la
dependencia de la razón de cambio en
el controlador sobre el error.
Control Integral

Un modo común de reset es el control
de velocidad proporcional flotante, en
el que la razón del movimiento del
volante es proporcional a la derivada
del error: dV
K1 E
dt

Integrando la ultima ecuación se
obtiene:
V K1 Edt
Control Proporcional Integral
(PI)

Si se combinan el control proporcional
con el control integral se obtiene:

V KE KI Edt M
Control Proporcional Integral
Control Proporcional Integral

La salida del controlador (posición del
volante) crece casi instantaneamente
por una cantidad KE como resultado
de la parte proporcional

Pero debido a que el error persiste, el
termino integral continua moviendo el
volante a velocidad constante, donde la
pendiente se obtiene de la ganancia de
reset KI
Control Proporcional Integral
● Despues de transcurrido el tiempo TI,
conocido como tiempo de reset, el
movimiento del volante debido a la
pendiente del temino integral, se
iguala al termino proporcional

Por lo tanto el ajuste del reset se
puede expresar en terminos del TI o de
su reciproco
Control proporcional integral
derivativo (PID)
• Se pueden combinar los términos
derivativos e integrales y así obtenemos un
control proporcional-integral-derivativo
• Este tipo de controladores –PID son muy
comunmente utilizados en muchas
aplicaciones, combinando las ventajas del
PD y PI
¿Cómo medir el error?
• Si el sensor nos da una lectura continua (por
ejemplo de distancia), entonces podemos
usar dicha medida como el error, respecto a
la referencia (distancia deseada)
• Si tenemos sensores binarios (como
detectores de línea), podemos combinar
varios sensores y de esta forma tener una
estimación (discreta) del error
Error Error:

-2

-1

2
Referencias
• Martin, Robotic Explorations, Cap. 5
• Bibbero, Microprocessors in Instruments and Control, Cap. 2
• [Dodek y Jenkin] – Cap. 7
• Libros de Control, por ejemplo:
– Analysis and Syntesis of Linear Control Systems. Chi-
Tsong-Chen. Holt Rinehart Winston.
– Digital Control of Dynamic Systems. Gene F. Franklin, J.
David Powel and Michael Workman. Addison-Wesley.
– Modern Control Engineering. Kasuhiko Ogata. Prentice-
Hall.
– Modern Control Systems. Richard C. Dorf and Robert
Bishop. Addison Wesley.
Actividades
• Especificación y programación del control
básico de su robot para realizar su tarea:
– Seguimiento de línea (laberinto)
– Ir a la meta (lego)
• Practicar con diferentes algoritmos de
control en el laboratorio virtual

También podría gustarte