Vous êtes sur la page 1sur 53

MODELIZACIN E IMPLEMENTACIN DE

CONTROL PREDICTIVO EN UN MICROROBOT


AUTNOMO
Presentado por
Fco. Ignacio Gamero Argello
Bajo la direccin de
Javier Serrano Garca
Del Departamento de Ingeniera de Sistemas y Automtica
Julio 1999
1. Introduccin. 1
1. Introduccin.
Desde el ao 1996, en que el grupo de Recerca dEnginyeria de Control i Sistemes
Intelligents (eXIT) de la Universitat de Girona participa en la competicin internacional
MIROSOT (Micro-Robot World Cup Soccer Tournament), se pone en marcha un trabajo
de investigacin que se fundamenta en los microrobots autnomos futbolistas. La
calificacin de autnomo hace referencia a la capacidad de percibir, planificar y actuar para
llegar a unos objetivos sin la intervencin o intervencin mnima de supervisores humanos.
En este caso las tareas comentadas se reparten entre el mismo robot y un sistema de ms
alto nivel, que ser el encargado de planificar trayectorias y tratar la informacin del
sistema de visin.
El sistema de ms alto nivel consiste en un ordenador central, este adems recibir
los datos de visin artificial de otro ordenador, con lo cual se detectar la posicin de los
robots y elaborar la estrategia necesaria para el su movimiento. Las rdenes se
transmitirn mediante una seal de radiofrecuencia a todos los robots, teniendo cada uno de
ellos un cdigo identificativo.
El trabajo continuo y desarrollo de nuevas tecnologas en el campo de los
microrobots, no est ligado tan slo al mero hecho de competir en una competicin por
diversin, sin aplicar todos estos avances en el mundo real. El juego de ftbol es un buen
ejemplo de sistemas multiagente, donde intervienen muchos campos en desarrollo, tales
como protocolos de cooperacin, comunicacin efectiva y tolerancia a fallos, adaptabilidad,
robustez, etc., todo ello en tiempo real. Desde este punto de vista el ftbol con robots puede
ser utilizado como banco de pruebas.
2. Objetivos.
El proceso de mejora continua en el funcionamiento de los robots, hace que se
despierte un inters dentro del grupo de investigacin por todos aquellos sistemas de
control que se puedan aplicar a los microrobots. De aqu parte la idea de implementar un
controlador predictivo dentro de las posibilidades del sistema. El objetivo es comprobar si
este proyecto mejora el comportamiento logrado hasta el momento. El mayor propsito de
este tipo de controlador es lograr que el microrobot siga una trayectoria de referencia
marcada por unos nodos base hasta un punto final objetivo. La dificultad en seguir ciertas
trayectorias es una carencia del sistema actual, que se basa en un doble controlador PID y
muestra respuestas desiguales, por lo que el siguiente proyecto ha sido seguido con especial
inters.
Para llevar a cabo este trabajo, se precisar de un total conocimiento del sistema en
todas aquellas partes que influyan en su desarrollo. Tambin se deber llevar a cabo por la
naturaleza del controlador un modelado previo al control.
As mismo, como consecuencia de la experiencia del modelado, se irn aadiendo
todos aquellos detalles que son susceptibles de mejora en posteriores versiones del robot y
han de tenerse en cuenta en los futuros prototipos.
3. Descripcin del robot. 2
3. Descripcin del robot.
El tamao del robot est limitado a 7.5cm x 7.5cm x 7.5cm, impuesto por el
reglamento de la competicin MIROSOT. En su base estn situados dos motores reductores
junto con las bateras, y finalmente en un nivel ms alto la placa con los componentes
electrnicos.
Fig. 1 Fotografa del microrobot
Los motores son Maxon de 1.5W y 9V. Incluyen un reductor con la relacin 16.58:1
y unos encoders incrementales de tipo magntico (fig. 2) que proporcionan una seal de
salida compatible TTL y dan 16 pulsos por vuelta. Los motores llevan acoplados a su eje
los encoders antes de la reduccin, por lo que realmente dan 265 pulsos por vuelta.
Reduccin 16.58:1
1616.58=265 pulsos/vuelta
Fig. 2 Encoders magnticos
Las ruedas miden 5.4 cm de dimetro y tienen una separacin de 7 cm. Por tanto el
desarrollo de la rueda es:
D = d = 5.4cm = 16.964 cm
3. Descripcin del robot. 3
Y dado que una vuelta completa son 265 pulsos, la distancia recorrida por un pulso es:
cm
cm
064 . 0
265
964 . 16

Observando en cada tiempo de muestreo los pulsos de cada una de las ruedas se obtiene,
para el caso en que la velocidad es diferente, una diferencia de pulsos que reflejarn un
giro. Se puede considerar para este tiempo el ngulo girado como un diferencial de giro
igual a la diferencia de pulsos, o sea, igual a x centmetros segn la relacin anterior. Como
el desarrollo de la circunferencia trazada por el robot girando sobre una rueda es:
D = d = 7cm2 = 43.982 cm
Tenemos
1
122 . 0
360
982 . 43 cm cm

como relacin que servir ms adelante para hacer el modelo. En este punto cabe destacar
la importancia que puede llegar a tener una ligersima desviacin entre la separacin de las
ruedas, por lo que esta relacin servir como referencia y puede ser necesario ajustarla para
conseguir un modelo ms preciso.
El sistema de alimentacin est constituido por un conjunto de 9 bateras
recargables de 1.2V y 1100mAh de capacidad cada una, de nquel metal tipo AA,
conectadas en serie. El sistema de alimentacin proporcionar dos tensiones, 10.8V para los
motores y 5V para alimentar el microcontrolador.
El sistema de comunicacin con el robot es va radio a una frecuencia de 418MHz
433MHz. La velocidad de transmisin es de 9600 baudios, mximo que permite el sistema
emisor-receptor. La transmisin es asncrona, sistema simplex de comunicacin, es decir
unidireccional del host a los robots. El modo de comunicacin entre el emisor y el receptor
es mediante el protocolo RS-232 y la longitud de palabra de 10 bits (1 bit de Start, 8 bits de
datos,1 bit de Stop y ninguno de paridad).
Fig. 3 Sistema supervisor
3. Descripcin del robot. 4
El sistema supervisor (PC) con el emisor de radio conectado a su puerto serie
COM2, enva tramas al robot (fig. 3) que son recogidas por el receptor integrado en el robot
y las transforma en seales compatibles TTL que entran directamente a la entrada de
comunicacin serie de que dispone el microcontrolador. El formato de trama enviado es:
255 255 32 Identificador 201 Vel. Lin Cons giro Tiempo
Cuyo significado es el siguiente:
Sincronismo: son tres bytes que se han de enviar al inicio de cada trama para sincronizar
el emisor y el receptor, en concreto son los valores 0FFH y 20H.
Identificador: es el byte identificativo de cada robot.
201: este byte se aade para hacer ms robusta la recepcin de datos frente a ruidos
Vel. Lin: consigna de velocidad lineal en cm/s. Por tanto el robot se desplazar a esa
velocidad.
Cons. Giro: consigna de giro, no tiene unidades. El robot girar en proporcin a este
valor, aunque conservando su velocidad lineal.
Tiempo: tiempo durante el cual se ejecutar la orden de velocidad recibida, se enva en
forma de nmero de muestras. Por ejemplo si enviamos 100 y el tiempo de muestreo en el
programa de velocidad es de 32ms, ejecutar la orden durante 10032ms = 3.2s
El microcontrolador utilizado por los robots es un 87C552-4K68 de Philips, las
caractersticas tcnicas ms importantes son:
- Memoria EPROM interna: 8K x 8 ampliable a 64Kbytes externos
- Memoria RAM interna: 256 x 8 ampliable a 64Kbytes externos
- 2 contadores/temporizadores de 16bits
- Conversor analgico digital de 10 bits con 8 entradas multiplexadas
- 2 canales PWM de 8 bits de resolucin
- 6 puertos paralelos de I/O configurables
- 1 canal de comunicacin serie (UART)
- 1 temporizador/contador adicional T2 de 16 bits
- Frecuencia de trabajo: 16MHz
- Encapsulado PLCC con 68 patas
Para regular la velocidad de los motores de corriente continua se utilizan las dos salidas
de pulsos modulados en anchura PWM (Pulse Width Modulation) de que dispone el
microcontrolador. El principio de la modulacin PWM es ir variando la anchura de los
pulsos de una frecuencia determinada que se generan para ir variando la tensin continua
resultante.
3. Descripcin del robot. 5
Estas salidas constituidas por una serie de pulsos de anchura y frecuencia programables
son controladas por el microcontrolador a partir de unos registros especiales (SFR). La
modulacin de las seales PWM0 y PWM1 se controla por tres registros programables:
- PWMP (direccin 0Feh): es un registro de 8 bits que hace de divisor de la frecuencia de
oscilacin interna del micro, permitiendo definir la frecuencia de las dos salidas PWM
segn la frmula:
255 ) 1 ( 2 PWMP
f
f
osc
PWM
+

- PWM0 Y PWM1: (direcciones 0FCH y 0FDh): son dos registros de 8 bits que definen la
anchura de los pulsos (Duty Cicle) segn la frmula:
n
n
PWM
PWM
Nivel

255
Otras entradas y salidas utilizadas son:
- PQ2 y PQ3 (direcciones 0C2H Y 0C3H): son dos bits del puerto 4 que sirven para definir
en el driver de potencia el signo de la tensin y por tanto el sentido de giro del motor
correspondiente, con PQ2=0 el motor 1 gira hacia delante y con PQ2=1 gira hacia atrs.
Para PQ3 la lgica es inversa debida a la colocacin fsica de los motores.
- PU0 y PU1 (direcciones 90h y 91h): son dos bits del puerto 1 que estn conectados a las
salidas de pulsos que dan los encoders de los motores y por tanto servirn para saber el
desplazamiento del robot.
T
t
1
t
2
t
3
A
B
C
L293B
PWMn OUTn
MOTORn
A =0 V
B =5.4 V
C =10.8 V
T
i
=1/255 T until 254/255 T
Principio de modulacin PWM
4. Modelado. 6
- RxD: es el pin de recepcin del puerto serie, el cual est conectado a un mdulo e radio en
la misma placa de control. Los bytes recibidos se guardan en un registro especial llamado
SBUF (99h).
- INT0 e INT1: son dos bits del puerto 3 que sirven como interrupciones externas.
Debido a que las salidas PWM del microcontrolador no dan suficiente corriente para
los motores, se dispone de un driver de potencia, el C.I. L293B, formado por dos puentes
en H de cuatro transistores de potencia capaz de suministrar 1A. El puente permite que
segn la rama que conduzca el motor gire en un sentido u otro.

Fig. 4 CI L293
4. Modelado.
El Control Predictivo se basa en el empleo de modelos dinmicos que relacionan las
variables manipuladas y controladas de un proceso. Estos permiten predecir su evolucin
futura y calcular, mediante un procedimiento de optimizacin, las seales de control a
aplicar al mismo de modo que las predicciones de su evolucin futura satisfagan los
requisitos de operacin establecidos. As pues un requisito previo es la obtencin de un
modelo del proceso a controlar, en este caso un microrobot autnomo con las caractersticas
comentadas en el apartado anterior.
Un primer paso es conocer qu variables manipuladas y controladas son las que
intervienen. Y ya que se aplica tensin a los motores (ver Monitor de pruebas) para que este
se desplace, se recogen muestras de la velocidad en cada una de las ruedas aplicando
diferentes valores de PWM (fig. 5), con la idea de identificar el sistema multivariable de
dos entradas y dos salidas que forman la tensin y la velocidad en cada una de las ruedas.
Como resultado de estas pruebas se obtiene un resultado negativo al comprobar que la
4. Modelado. 7
velocidad depende enormemente de la tensin de las bateras, y que sta disminuye
rpidamente al poco rato de estar trabajando con el robot en movimiento. La conclusin es
que es ms conveniente realizar un controlador de velocidad e implementarlo en el propio
robot, de manera que ahora las seales de control sern la velocidad lineal y una consigna
de giro. De esta forma el controlador de velocidad genera las seales de PWM a aplicar en
cada uno de los motores, obteniendo una velocidad constante con un margen de tensin de
las bateras mucho mayor.
0 100 200 300 400
0
5
10
15
20
25
Plot fichero: pw100.dat pwm: 100 100
0 100 200 300 400
0
5
10
15
20
Plot fichero: pw120.dat pwm: 120 120
0 100 200 300 400
0
5
10
15
Plot fichero: pw150.dat pwm: 150 150
0 100 200 300 400
0
2
4
6
8
Plot fichero: pw165.dat pwm: 165 165
Fig. 5 Pulsos de encoder vs tiempo para diferentes valores de PWM. Las primeras 200
muestras son unidades de 20ms y las siguientes 200 son unidades de 3ms.
Como variables controladas tenemos las que nos devuelve el sistema de visin, que
son la posicin (x,y) del robot as como su orientacin. Ya est definido el sistema del que
se obtendr posteriormente un modelo.
Un resultado vlido de estos experimentos y que se usar desde el principio en el
controlador de velocidad, es la obtencin de una relacin aproximadamente lineal entre
PWM y velocidad (fig. 6) tal como se indica a continuacin:
4. Modelado. 8
PWM = 190 velocidad [cm/s]
Esta relacin se cumple para un nivel de tensin medio en las bateras, sufriendo
alguna desviacin dependiendo de este nivel. Sin embargo se puede extraer de este dato que
con un PWM de 190 y a un nivel de bateras que no sea muy alto y recin cargado, lo cual
no es habitual, el robot ya no se mueve. Esto desplaza el punto de no operacin de 255 a
190 (valor PWM).
20 30 40 50 60 70 80
100
120
140
160
180
vel. cm/s
P
W
M
20 25 30 35 40 45 50 55 60
130
140
150
160
170
vel. cm/s
P
W
M
Fig. 6 Relacin velocidad-PWM
4.1 Monitor de pruebas.
Para la emisin de datos al robot y la monitorizacin y recogida de datos de visin
que puedan servir para validar el modelo, se ha creado un programa con LabWindows que
tiene este cometido, as como recoger los datos de pulsos y velocidad con la opcin
correspondiente. Para acceder a l se elegir la opcin Assaig del men desplegable del
programa Monitoritzaci de proves.
4. Modelado. 9
Fig. 7 Interfase de pruebas para modelado
El significado de cada uno de los elementos que forman esta pantalla es:
Monitor: En l se visualiza el robot y su orientacin como un punto y una pequea linea
amarillos. Tambin visualizar los datos obtenidos por visin durante una prueba en forma
de puntos negros.
Jugador: Toma como posicin del robot una de las tres proporcionadas por visin.
Clear: Borra el monitor de trayectorias y puntos, dibuja de nuevo el robot en su posicin
actual e inicializa la matriz de datos capturados.
Desar: Guarda los puntos capturados en el fichero especificado a la izquierda. El led
indicador que est situado a su lado indica cuando est en verde, que existen datos
obtenidos sin grabar. Si grabamos los datos, o al inicio que todava no existen datos, el led
permanece rojo. Su utilidad est en recordarnos que los datos ya han sido grabados o que
an estn por grabar.
Ini xx: Inicializa la matriz de datos capturados sin borrar el monitor, para poder hacer
comparaciones en segundas pruebas.
ndex: Indica el nmero de muestras recogidas.
No. Mx. de Mostres: Nmero total de perodos durante los cuales se envan datos y se
recogen muestras.
MRT/1RT: Mltiples transmisiones de datos o una sola transmisin. Si se elige MRT la
seal de control es enviada durante cada periodo de muestreo al robot. En caso de elegir
1RT slo se enva la primera vez. Hay que tener en cuenta esta opcin a la hora de
4. Modelado. 10
introducir el tiempo en Temps, ya que el valor de tiempo para 1RT estipular la duracin
total de la prueba, en cambio para MRT ser el nmero mximo de muestras el que indicar
el tiempo mximo de la prueba. Otro detalle a tener en cuenta es que si elegimos MRT los
cambios efectuados en las consignas durante la prueba se enviarn al robot, pudiendo ver
as su comportamiento ante cambios en la consigna.
Enviar: emite por radio los datos introducidos. El led indicador situado en su parte
inferior se pondr rojo cuando est en proceso un ensayo, estando verde en cualquier otro
momento.
Vel/PWM: Emite por radio datos de velocidad y tiempo o slo PWM.
PWM0/PWM1: Consigna de PWM en cada rueda.
PWMs=/PWMs#: Conmutador para introducir consignas de PWM iguales y ahorramos
tener que repetir la escritura en la segunda casilla, o PWM diferentes, en cuyo caso se podr
activar la segunda casilla para introducir el valor correspondiente.
Vel. Lineal: Consigna de velocidad lineal enviada al robot, en cm/s.
Vel. Ang: Consigna de giro enviada al robot, no tiene unidades.
Temps: Tiempo enviado al robot, se debe interpretar como tiempo en nmero de muestras.
X/Y inicial/final: tal como se indica muestra la posicin inicial y final de cada prueba.
Ang. Inicial/final: Como en el caso anterior muestra la orientacin en grados del robot al
inicio y final de cada ensayo.
4.2 Obtencin de muestras
Con el programa brogi6.c se ejecutan las rdenes de PWM que llegan al robot y
almacena los valores de los pulsos en cada instante de muestreo en un array donde
posteriormente sern recogidos. Para ello se utiliza un cable ya construido que conecta el
puerto serie al robot y la salida TxD (transmisin) de que dispone el microcontrolador. El
procedimiento de recogida de datos es algo delicado, ya que al inicio fue costoso recoger
los valores al producirse errores. Para evitarlo he establecido un protocolo que siempre
sigo y con l evito los errores que fuerzan a repetir los ensayos. Dicho protocolo es el
siguiente:
- Despus de la prueba quitar el receptor con cuidado, procurando que no rebote y se
produzca una reconexin que encendera el led del puerto 4, seal inequvoca de que los
datos son irrecuperables.
- Conectar el cable a los conectores de comunicacin.
- Recuperar los datos con el programa destinado a tal fin (fig. 8)
- Apagar el robot, montar el receptor y volver a cargar el programa si se desea hacer otra
prueba.
Como se puede comprobar por este ltimo paso, el hecho de volver a cargar el
programa en cada prueba hace que este procedimiento sea lento.
El programa de recogida de datos est escrito en C bajo LabWindows, para acceder a l
se ir al comando Recollida de dades del men desplegable del programa de Monitoritzaci
4. Modelado. 11
de Proves. La interfase de este programa es el indicado en la figura 8, a continuacin se
indica a su vez el significado de cada una de sus partes.
Fig. 8 Interfase de recogida de datos
Inici: Su valor siempre es 0.
Final: Su valor depende del nmero de datos registrados. Es importante que este valor sea
el correcto para que los datos recogidos estn sincronizados. En este caso particular el
nmero de datos capturados durante el presente trabajo ha sido 400, y para esta cantidad el
valor final ha de ser 801. El valor adecuado sigue el patrn (para valores pares de datos):
Final = (N de datos 2) + 1
Rebre: Recibe los datos a travs de cable conectado del puerto serie al robot y los guarda en
el fichero especificado ms abajo.
Como resultado obtendremos muestras de PWM como las ya mostradas en la figura 5.
4.3 Control de velocidad a bajo nivel
Como se coment al inicio, debido a la fuerte influencia de las bateras, no se puede
relacionar un valor de PWM a una salida deseada. La solucin es crear un controlador de
velocidad interno donde las seales de control sern la velocidad lineal y una consigna de
giro y como salida tendremos unas velocidades que se ajusten a dichas consignas. De esta
forma el controlador de velocidad generar las seales de PWM a aplicar en cada uno de
los motores, obteniendo una respuesta constante con un margen amplio de tensin de las
bateras.
As pues el siguiente paso es realizar un programa de control de velocidad que ser
cargado en la memoria RAM y ser ejecutado por el microcontrolador. Este paso ha sido
costoso debido a las particularidades del sistema. Por una parte el microcontrolador no es
4. Modelado. 12
demasiado potente para esta aplicacin y un problema es la necesidad de disponer de tres
niveles de interrupcin, que son ordenados segn su prioridad:
- Interrupcin puerto serie RI+TI: es la de mxima prioridad, ya que al recibir
nuevos datos el robot ha de olvidar la ejecucin en curso y realizar una nueva ejecucin
con los datos recibidos.
- Interrupciones externas INT0 e INT1: son activadas por los encoders de las ruedas,
reflejando as la velocidad de las ruedas. Pasar por alto estas interrupciones supone perder
pulsos y que el controlador suponga un velocidad inferior a la real.
- Interrupcin del temporizador TIMER0: cada perodo de muestreo se activar
dando paso al clculo de velocidad y las tensiones en cada uno de los motores.
El microcontrolador empleado slo dispone de dos niveles de interrupcin, dando
como alta prioridad a la interrupcin del puerto serie, quedan al mismo nivel las
interrupciones externas y del temporizador. Este problema se ha solucionado acotando al
mximo el bucle de atencin a la interrupcin, de forma que est atendiendo a la
interrupcin el tiempo mnimo para no perder demasiados pulsos. El resultado es excelente
y el margen de error no llega a unos pocos centmetros que son prcticamente
despreciables.
El otro gran problema surgido en la realizacin del programa viene debido a las
caractersticas de las ruedas. Los ejes internos de las ruedas son completamente redondos y
el mtodo de unin consiste en pegar las ruedas a los ejes del motor. Con el tiempo las
ruedas tienden a soltarse y el eje patina, con lo cual han de volver a pegarse, y la
consecuencia es que debido a la excentricidad y la distancia entre ejes el modelo cambia.
As mismo las dos ruedas no estn colocadas de forma simtrica, estando la rueda izquierda
ms adelantada que la derecha. Este hecho hace que los giros hacia la izquierda sean mucho
ms costosos, girando de forma muy desigual en cada sentido. Otro hecho es que los robots
tienden a desviarse siempre hacia la izquierda.
La solucin a este problema, ya que interesa que el giro sea aproximadamente el
mismo en cada sentido, es que el controlador sea muy robusto, ya que en trayectorias rectas
no existe este problema y el controlador se comporta perfectamente. A pesar de estos
inconvenientes que demostraron tener efectos negativos al principio, el controlador
conseguido es realmente excelente y los resultados han corroborado a este controlador en el
interior del resto de los robots y sirve como base para otros tipos de controladores.
Merece la pena comentar que la eleccin del tiempo de muestreo (32ms) utilizado
en el controlador de velocidad no es gratuita. Para ello se tuvo en cuenta la minimizacin de
operaciones llevadas a cabo por el microcontrolador. Como ya ha sido mencionado, el
control de la velocidad se hace tomando el nmero de pulsos durante un intervalo de
tiempo. Con las relaciones expuestas previamente, las operaciones para convertir dichos
pulsos en velocidad son:
Distancia recorrida = 0.064cm/pulso pulsos encoder
Velocidad = distancia recorrida / Ts (cm/s)
Si el tiempo de muestreo Ts = 32ms, el clculo de la velocidad se reduce a:
4. Modelado. 13
Velocidad = 2 Pulsos encoder (cm/s)
operacin mucho ms rpida que cualquier otra con un tiempo diferente. Tambin es
valioso incluir una sencilla frmula con la que se puede extraer el valor de carga del
temporizador para un valor dado de tiempo.
12
10 059 , 11
65535 _
6
Tiempo
decimal valor
Por ejemplo, para obtener el valor de carga dado un tiempo de 32ms, se sustituye en la
frmula y el valor obtenido se convierte a hexadecimal, en este caso 8CCCH. Este clculo
se puede llevar a cabo fcilmente con la calculadora de Windows.
4.3.1 Implementacin de un controlador PI discreto.
El controlador que se disear ser un PI discreto, con un tiempo de muestreo de
32ms. Primero estudiaremos la estructura que deber tener este controlador para
posteriormente pasar a su sintona e implementacin final.
Una forma de representar el PID lo ofrece la transformada de Laplace, de la forma:
) (
1
1 ) ( s E sTd
sTi
Kp s U
,
_

+ +
El algoritmo de un controlador PID discreto se puede conseguir a partir del continuo
utilizando aproximaciones discretas para las derivadas e integrales. La llamada
aproximacin rectangular se puede encontrar fcilmente haciendo la sustitucin:
T
z
s
1
1

en el algoritmo continuo. Con esta sustitucin el algoritmo discreto en transformada z


queda de la siguiente manera:
) ( ) 1 (
1
1
1 ) (
1
1
z E z
T
Td
z Ti
T
Kp z U
,
_

o puesto de otra manera:


) (
2
1 1 ) ( ) 1 (
2 1 1
z E z
T
Td
z
T
Td
T
Td
Ti
T
Kp z U z

,
_

+
,
_

+
,
_

+ +

4. Modelado. 14
que da lugar al denominado algoritmo incremental:
) 2 ( 3 ) 1 ( 2 ) ( 1 ) 1 ( ) ( + + + k e K k e K k e K k u k u
donde:

,
_

+ +
T
Td
Ti
T
Kp K 1 1

,
_

+
T
Td
Kp K
2
1 2
T
Td
Kp K 3
Este algoritmo permite implementar fcilmente el PI discreto, con Td=0 y desarrollando el
algoritmo llegamos a:
) ( )) 1 ( ) ( ( ) 1 ( ) ( k Ie k e k e Kp k u k u + +
donde
Ti
T
Kp I
que se puede identificar fcilmente en el programa de control.
Para sintonizar el controlador se han utilizado diversos mtodos, de los ampliamente
extendidos en los libros de control con sus correspondientes tablas. El clculo de estos
valores lo efecta un programa de Matlab (parampi.m) al que introduciremos los datos
necesarios. Pero el primer paso es obtener una respuesta en lazo abierto y filtrarla, como la
mostrada en la figura 9.
0 2 4 6
0
2
4
6
8
10
12
14
16
Plot fichero: pwm150b.dat consigna: 150 150
P
W
M
Tiempo (s)
0 1 2 3 4
0
2
4
6
8
10
12
14
16
18
Tiempo (s)
PWM medio
Fig. 9 Respuesta en lazo abierto tiempo-pulsos para un PWM=150
4. Modelado. 15
Esta respuesta de pulsos se convierte en velocidad (fig. 10)
0 0. 5 1 1. 5 2 2. 5 3 3.5 4
0
10
20
30
40
50
60
Fig. 10 Respuesta de velocidad [cm/s] en lazo abierto
El valor de entrada de esta funcin es 190-150=40.
De aqu se obtiene:
K = 1.3
Tau = 1.12s
Retardo = 32ms
Estos valores son los introducidos en parampi.m, que devuelve:
parampi
K: 1.3
Retardo: 0.032
tau: 1.12
MTODO ZIEGLER-NICHOLS
Kp: 24.2308
Ti: 0.10667
MTODO COHEN-COON
Kp: 20.6202
Ti: 0.13074
MTODO LPEZ, MURRIL, SMITH
Kp: 21.311
Ti: 0.14811
MTODO ROVIRA
Kp: 11.7036
Ti: 1.0924
4. Modelado. 16
Con el conocimiento previo del sistema se deduce que los tres primeros mtodos
dan una Kp muy elevada, a pesar de ello se prueba para comprobar su funcionamiento los
valores obtenidos con el mtodo Ziegler-Nichols, con una Ki:
7
106 . 0
032 . 0
24
Ti
T
Kp KI
0 1 2 3 4 5 6 7
0
10
20
30
40
50
60
Fig. 10b Respuesta de velocidad con los parmetros obtenidos con el mtodo Ziegler-
Nichols
Vemos como regula bien para la velocidad ms baja mientras que se produce una
saturacin en la ms alta.
Volvemos a probar el controlador ahora con los valores obtenidos con el mtodo
Rovira, con Ki,
4 . 0
09 . 1
032 . 0
7 . 11
Ti
T
Kp KI
0 1 2 3 4 5 6 7
0
10
20
30
40
50
60
70
Fig. 10c Respuesta de velocidad con los parmetros obtenidos con el mtodo Rovira
4. Modelado. 17
En este caso el controlador s funciona correctamente aunque se podra mejorar
intentando que la respuesta fuese ms rpida. Subiendo Ki hasta 1 tenemos:
0 1 2 3 4 5 6 7
0
10
20
30
40
50
60
70
Se puede comprobar que la regulacin es muy buena y el sistema responde mucho
ms rpido. Posteriores pruebas modificando los parmetros no han dado mejores
resultados, tan slo se ha llegado a acelerar la respuesta ligeramente a costa de una mayor
inestabilidad en el control, hecho que se nota en el comportamiento del robot por un
movimiento menos suave, repicando sobre el eje que forman sus dos nicas ruedas. Por
tanto los valores definitivos implementados en el controlador PI son:
Kp = 12
Ki = 1
Por ltimo mostrar como casos particulares las respuestas de velocidad de cada una de las
ruedas cuando una de ellas tiene entrada nula (fig.11 y 12 ).
0 2 4 6 8 10 12
0
5
10
15
20
25
30
Fig. 11 Respuesta de velocidad a 30 y 0 cm/s
4. Modelado. 18
0 2 4 6 8 10 12
0
5
10
15
20
25
30
Fig. 12 Respuesta de velocidad a 0 y 30 cm/s
Como se aprecia la respuesta de velocidad es prcticamente independiente de la otra
rueda, hecho que facilita el tipo de modelo utilizado. Tan slo en el giro a la izquierda
(Vl:15, Ca:-15) se ve una ligera respuesta de la rueda derecha, motivado por el hecho que la
rueda izquierda se encuentra ms adelantada que la derecha. El extremo contrario de las
pruebas efectuadas se encuentra en una velocidad lineal de 2 cm/s, donde se comprob
como el robot se desplaza suave y lentamente.
4.3.2. Diversificacin del controlador.
Tal como se apreciaba en la figura 5, por la diferencia de tiempos entre las muestras,
el robot tiene una frenada sin inercia. Esto hace que la dinmica de aceleracin sea
completamente diferente a la de desaceleracin. El hecho es que al aplicar una tensin de 0
voltios a los motores el robot se detiene inmediatamente, lo cual perjudica el modelado.
Por este motivo se ha creado dos programas de control de velocidad con una
diferencia bsica, uno de ellos crea una frenada artificial. As que uno de los programas
aplica una tensin que va disminuyendo progresivamente hasta llegar al valor de la nueva
seal de control, naturalmente inferior a la anterior. El resultado es que se puede apreciar
una frenada progresiva cuando pasamos a una velocidad inferior o detenemos el robot. Este
ha sido el que se ha probado como defecto en todas las pruebas anteriores en las que s se
puede apreciar como frena ms suavemente.
Los dos programas de control de velocidad contemplan la posibilidad de marcha
atrs, con lo cual si la consigna de velocidad lineal es negativa el robot retrocede, pudiendo
as ir en los dos sentidos de la marcha y girando a izquierda o derecha. Un detalle ms y
como caso particular a tener en cuenta por el grupo de investigacin dedicado a los robots
es que el robot empleado en este proyecto es el nico que gira en sentido inverso al resto. Si
4. Modelado. 19
la consigna de giro es negativa gira a la izquierda, mientras que si es positiva gira a la
derecha.
As mismo, para el modelado se han recogido muestras de velocidad, por lo que se
han utilizado programas de control que lo permitan. En cambio el controlador universal
de velocidad no incluye esta posibilidad, esto significa que existen hasta cuatro
controladores, cuya nica caracterstica en comn es que permiten la marcha atrs. Los
cuatro programas de control son:
tdivcr7.c
tdivsr7.c
brokvcr7.c
brokvsr7.c
y el significado de la nomenclatura es el siguiente:
tdi*.c permiten la recogida de datos
brok*.c no permiten la recogida de datos
*vsr.c no aplican rampa de frenada
*vcr.c aplican rampa de frenada
De estos programas dos se pueden ver en el apndice debidamente comentados, ya
que la diferencia entre ellos es mnima, con estos dos es suficiente para la comprensin de
todos los programas.
4.4 Creacin del modelo
El modelo del robot se muestra en la fig. 13, como se puede ver las entradas son la
velocidad lineal y una consigna de giro. A la salida de la funcin de transferencia lineal
obtenemos la velocidad lineal del robot en cm/s, mientras que a la salida de la funcin de
transferencia de giro se obtiene la diferencia de velocidad entre la rueda 1 (izquierda) y la
rueda 2 (derecha). El bloque amplificador que sigue a continuacin tiene la funcin de
convertir dicha velocidad a velocidad angular (ver relaciones de conversin en Descripcin
del robot), en rad/s. Finalmente tras integrar la seal se obtiene la orientacin del robot.
Llegados a este punto tenemos la velocidad en coordenadas polares, como una
componente lineal y un ngulo, por lo cual se hace la conversin a coordenadas cartesianas
y se vuelve a integrar para obtener finalmente la posicin x,y sobre el campo.
Tambin es obligatorio mencionar que los integradores pueden ser inicializados con
un valor, que para el primero es el ngulo inicial en radianes, mientras que los otros dos se
inicializan cada uno de ellos con los valores de posicin respectivos x e y.
4. Modelado. 20
XY Camp
Vel. lineal
angi2
y
t s
x
sin(u)
cos(u)
0.032
z-1
0.032
z-1
0.032
z-1
numg(z)
deng(z)
numl(z)
denl(z)
Cons. giro
Clock
-7.5*(3.1416/180)
Fig. 13 Modelo discreto del robot
Para obtener las funciones de transferencia del modelo se emplean los datos de
velocidad obtenidos (fig. 14) en las pruebas efectuadas. Estos datos son filtrados
previamente para ello. Este proceso se hace con el programa previo.m, que proporciona los
datos filtrados y matrices de tiempo y consignas de entrada.
0 2 4 6 8 10 12
0
5
10
15
20
25
30
0 2 4 6 8 10 12
0
5
10
15
20
25
Fig. 14 Respuestas de velocidad
4. Modelado. 21
0 2 4 6 8 10 12
0
2
4
6
8
10
12
14
16
18
Como se puede comprobar la regulacin es buena, en la parte superior de cada
grfico se indica la consigna de cada prueba, que a su vez se muestran grficamente como
lineas horizontales en cada grfico.
Estas pruebas, con las que se han obtenido las funciones de transferencia, son de
baja velocidad, que ser el rgimen que se usar en el control predictivo. Por cuestin de
que el controlador obtenido sea universal a todos los robots y se pueda emplear en otras
aplicaciones, tambin han sido tenidas en cuenta velocidades altas, algunos de estos
resultados con velocidades medias-altas se muestran en las fig. 15 y 16.
0 2 4 6 8 10 12
0
10
20
30
40
50
60
70
Fig. 15 Respuesta para velocidad alta
4. Modelado. 22
0 2 4 6 8 10 12
0
10
20
30
40
50
60
70
80
90
100
Fig. 16 Respuesta para velocidad alta
Comprobado el buen resultado del controlador de velocidad, se obtendrn a partir de
ahora las funciones de transferencia que completen el modelo. En la fig. 17 se muestra
como ejemplo uno de los resultados anteriores filtrado.
previo
ATENCION: tiempo de muestreo: 0.032
Si no es este el tiempo empleado editar linea 7
Nombre del archivo .dat con los datos: tg25_5
Numero datos: 400
Vel. lin (cm/s): 25
Vel. ang.: -5
giro a la izquierda
Distancia recorrida: 253.1911
u_lin --> vector entrada vel. lineal
u_ang --> vector entrada vel. angular
u_vel1 --> vector entrada vel. rueda 1
u_vel2 --> vector entrada vel. rueda 2
t_rise --> vector de tiempo (subida)
t --> vector de tiempo total
v1/t --> vectores de vel. rueda 1
v2/t --> vectores de vel. rueda 2
vm/t --> vectores de vel. media
vd/t --> vectores de diferencia vel.
El clculo de las funciones de transferencia a partir de estos datos se puede hacer
con las herramientas que Matlab nos facilita, arx, armax, etc. Sin embargo en este caso se
ha optado por utilizar un interfase grfico de Matlab de la System Identification Toolbox,
llamado The Graphical User Interface que implementa todas estas herramientas, su manejo
es sencillo y permite comprobar como se ajustan las funciones de transferencia obtenidas a
los datos reales. Como ejemplo de este proceso se describir a continuacin cmo obtener
una funcin de transferencia con la respuesta filtrada de la fig. 17.
4. Modelado. 23
0 2 4 6 8 10 12
-10
-5
0
5
10
15
20
25
30
35
Fig. 17 Respuesta de velocidad [cm/s] filtrada
El primer paso es introducir los datos, la entrada de datos es tal como muestra la fig.
18. Los datos necesarios son las matrices vm, vd, u_lin y u_ang, siendo vm la velocidad
media que nos servir para hallar la funcin de transferencia de velocidad lineal, vd la
diferencia de velocidad resultante de la funcion de transferencia de giro, y u_lin y u_ang
sus respectivas entradas.
Fig. 18 Entrada de datos para obtener la f. t.
Con Estimate->/Parametric models... se puede elegir un mtodo para la obtencin de
la funcin, en este caso es ARX, y con 2 polos, 1 cero y delay=0/1, el resultado se puede
ver en la figura 20.
4. Modelado. 24
Fig. 19 Ventana de bsqueda paramtrica
Cuando los resultados son buenos, se arrastran con el ratn los iconos de las pruebas
al icono sealado como To Workspace, y si miramos el contenido del workspace de Matlab
encontraremos lo siguiente:
arx220 7x9 504 double array
arx220_info 13x43 1118 char array
arx221 7x9 504 double array
arx221_info 13x43 1118 char array
donde las matrices arx220 y arx221 nos dan el resultado formato th. Para convertir este
formato a funcin de transferencia haremos:
[numl,denl]=th2tf(arx220);
printsys(numl,denl,'z')
num/den =
0.056834 z^2
-----------------------
z^2 - 1.429 z + 0.48608
donde numl y denl son el numerador y el denominador respectivamente de la funcin de
transferencia discreta buscada. El procedimiento ser repetido para algunas pruebas ms y
para el caso del giro. Comparando los resultados obtenidos se opta por los siguientes
valores que sern introducidos en el modelo (fig. 13)
Para el caso de velocidad lineal
0.053 z^2
-----------------------
z^2 - 1.3902 z + 0.4435
Para el caso de diferencia de velocidad (giro)
0.0316 z^2
-----------------------
z^2 - 1.6761 z + 0.6921
4. Modelado. 25
Fig. 20 Respuestas obtenidas con The Graphical User Interface
A partir de este resultado se trata de validar el modelo, comprobando que la
simulacin se asemeje al caso real. Por ello se fueron recogiendo datos de visin con el
trayecto que efectuaba el robot durante cada prueba. En caso de no ser aceptables se
reajusta el modelo o directamente se efectan ms pruebas para hallar otras funciones de
transferencia.
Fig. 21 The graphical user interface
4. Modelado. 26
4.5 Validacin del modelo.
Como ltimo paso queda validar el modelo obtenido en el apartado anterior, para
ello haremos uso de los datos capturados por visin durante las pruebas. Mediante la
simulacin del modelo aplicndole las mismas seales de control que se aplicaron en las
pruebas, trataremos de comprobar si efecta el mismo recorrido en la simulacin y en el
caso real. Aunque las comprobaciones se efectan con gran cantidad de pruebas, aqu slo
se mostrarn algunas por cuestin de espacio.
Para el caso de bajas velocidades, de nuevo se presentan en la figura 22 resultados
de velocidad de cada una de las ruedas. Para estas pruebas, los recorridos efectuados se
pueden ver en la figura 23.
0 2 4 6 8 10 12
0
5
10
15
20
25
30
0 2 4 6 8 10 12
0
2
4
6
8
10
12
14
16
18
20
22
Fig. 22 Respuesta para baja velocidad
El inters de presentar estos grficos es demostrar la igualdad de giro en ambos
sentidos. Otra prueba interesante es comprobar su estabilidad a gran velocidad (fig. 24).
4. Modelado. 27
10 20 30 40 50 60
20
30
40
50
60
70
Vl:
25
Ca
:-5
10 20 30 40 50 60
20
30
40
50
60
70
Vl:
25
Ca
:5
10 20 30 40 50
20
25
30
35
40
45
50
55
Vl:
20
Ca
:-5
10 20 30 40 50
30
35
40
45
50
55
60
65
Vl:
20
Ca
:5
20 25 30 35 40 45
20
25
30
35
40
45
50
Vl:
15
Ca
:-5
10 20 30 40 50
35
40
45
50
55
60
65
Vl:
15
Ca
:5
Fig. 23 Trayectorias trazadas durante las pruebas
4. Modelado. 28
20 30 40 50 60 70 80 90 100 110
20
30
40
50
60
70
80
90
100
110
Fig. 24 Trayectoria trazada a alta velocidad
Estos resultados indican un buen funcionamiento del controlador vindolo desde
fuera, como el observador que slo aprecia su movimiento y respuesta sobre la mesa.
A continuacin se sobrepondrn los resultados de la simulacin y los datos reales
(fig. 25 y 26)
10 15 20 25 30 35 40 45 50 55
20
25
30
35
40
45
50
55
60
65
Fig. 25 Resultado de simulacin y datos reales
4. Modelado. 29
15 20 25 30 35 40 45 50
20
25
30
35
40
45
50
55
15 20 25 30 35 40 45
35
40
45
50
55
60
65
Fig. 26 Resultado de simulacin y datos reales
50 60 70 80 90 100 110 120
30
40
50
60
70
80
90
100
Fig. 27 Resultado de simulacin y datos reales a alta velocidad
4. Modelado. 30
Los resultados son bastante buenos, dando por aceptable el modelo. Naturalmente
llegar a estos resultados no es tan sencillo como se ha descrito, ya que se han realizado
multitud de pruebas para llegar a un modelo vlido. Los puntos marcados con un cuadrado
es el punto final de la simulacin.
A partir de este modelo discreto se obtiene el modelo en continuo y en discreto para
tiempos mayores que sern utilizados por el controlador ms adelante. Para la conversin se
emplean los comandos de Matlab d2cm y c2dm. Por ejemplo el modelo continuo se muestra
en la figura 28, los dems modelos son equivalentes al de la figura 13, tan slo cambiando
los valores de las funciones de transferencia y los tiempos de muestreo.
Fig. 28 Modelo continuo del robot
5. Teora de control predictivo. 31
5. Teora de control predictivo.
Los controladores predictivos calculan los valores de las variables manipuladas en
cada periodo de muestreo de acuerdo con los valores de consigna deseados para las
variables controladas y las restricciones y condiciones de operacin del proceso. De esta
forma, el control predictivo basado en modelos es una estrategia de control que calcula el
control basndose en un modelo explcito del proceso, que se usa para predecir su
comportamiento futuro sobre un horizonte determinado.
El control predictivo basado en modelos se basa en las siguientes ideas:
1. Se usa un modelo del proceso para predecir su comportamiento futuro, sobre un
horizonte de prediccin N
2
. Los valores predichos de las salidas y(t+k/t), para
k=1,..,N2, donde y(t+k/t) es el valor predicho de la salida en el instante t+k a partir del
valor en el instante actual t, depende de los valores hasta el instante t (valores pasados
de las entradas y las salidas) y de los valores futuros de las seales de control u(t+k/t).
2. Se define una trayectoria de referencia futura w(t+j) que describe como queremos
conducir el proceso desde el valor actual y(t) a la consigna futura deseada r(t+j).
3. Se calculan los valores futuros de control {u(t), u(t+1),...,u(t+N2)} de modo que se
minimice una cierta funcin de coste de los errores de prediccin, w(t+j)-y(t+j).
Normalmente se incluye una estructuracin en la ley de control, introduciendo un
horizonte de control Nu. Esta optimizacin puede incluir restricciones en los valores
futuros de las variables del proceso, por ejemplo, la salida, la seal de control o la
variacin de la seal de control.
Lu(t+j)H
Lu(t+j)H
Ly(t+j)H
4. El primer elemento del vector de control ptimo u(t/t) se aplica a la planta. Todos los
dems elementos se olvidan y en el siguiente instante de muestreo se repite todo el
procedimento. Esto nos da una nueva ley de control u(t+1/t+1) que es diferente de la de
la seal de control calculada anteriormente u(t+1/t). Est principio se llama estrategia de
horizonte mvil (fig. 29).
5. Teora de control predictivo. 32
Fig. 29 Estrategia de horizonte mvil
Por tanto los elementos que caracterizan el control predictivo basado en modelos son
los siguientes:
- La prediccin basada en un modelo del proceso.
- La generacin de una trayectoria de referencia.
- La estructuracin de la ley de control.
- El algoritmo de clculo del mejor escenario de control.
Para cada uno de estos elementos hay varias opciones, segn la eleccin que se haga
tendremos los diferentes mtodos de control predictivo basado en modelos. Vamos a ir
viendo ahora cada uno de estos elementos bsicos.
5.1 Modelos de prediccin.
Cualquier tipo de modelo a partir del cual se puedan calcular las predicciones se
puede utilizar para la estrategia de control predictivo, algunos de los ms utilizados para el
modelo del proceso son:
1. Modelo respuesta impulsional.
La salida del proceso es:

+


1
1
1
) ( ) ( ) ( ) ( ) (
j
n
j
j j
t u q H j t u h j t u h t y
5. Teora de control predictivo. 33
donde hj son las muestras de la respuesta impulsional unidad y q
-1
es el operador retardo
unidad, con q
-1
u(t)=u(t-1) y H(q
-1
)=h1 q
-1
+h2 q
-2
+...+hn q
-n
. Hay un truncamiento despus
de un punto n, suponiendo que el sistema es estable. La mejor prediccin usando este
modelo es:

+ + +
n
j
j
t k t u q H t j k t u h t k t y
1
1
) / ( ) ( ) / ( ) / (
Observar que u(t+k/t)=u(t+k) para k<0. Las ventajas de este modelo son:
- Requiere poca informacin a priori.
- Puede describir fcilmente dinmicas poco usuales.
- La prediccin es simple y menos sensible a errores, al no existir trminos recursivos.
Las desventajas:
- No se puede usar con sistemas inestables.
- Contiene muchos parmetros n30..50
2. Modelo respuesta salto.
Suponiendo que la respuesta salto se ha asentado despus de n perodos de muestreo.


+ +
n
j
j
t u q q G y j t u g y t y
1
1 1
0 0
) ( ) 1 )( ( ) ( ) (
donde gj son las muestras de la respuesta al salto unidad y u(t)=u(t)-u(t-1), y0 es el efecto
acumulativo de los incrementos de control despus de n muestras, y que se supone que se
ha asentado a un valor constante. La prediccin de la salida del proceso es:


+ + +
n
j
j
t k t u q q G t j k t u g t k t y
1
1 1
) / ( ) 1 )( ( ) / ( ) / (
Este modelo tiene las mismas ventajas e inconvenientes que el modelo respuesta
impulsional.
3. Modelo de funcin de transferencia.
El proceso se describe por la ecuacin en diferencias:
y(t)+a1y(t-1)+...+any(t-n)=b1u(t-1)+...+bmu(t-m)
o
A(q
-1
)y(t)=B(q
-1
)u(t)
5. Teora de control predictivo. 34
La prediccin de la salida del proceso es:
) / (
) (
) (
) / (
1
1
t k t u
q A
q B
t k t y + +

Las ventajas de este modelo son:


- Se puede utilizar para modelar sistemas inestables o poco amortiguados.
- El nmero de parmetros es mnimo.
Las desventajas:
- Hay que presuponer el orden del sistema, n y m.
- Su naturaleza recursiva hace ms difcil la prediccin.
- Puede aumentar la sensibilidad frente a los errores.
Los modelos reales se pueden dividir en dos submodelos aditivos. Uno es el modelo del
proceso, que relaciona la salida de la planta con todas las entradas medibles. El otro es un
modelo de perturbaciones que intenta describir la parte de la salida medible que no se
explica mediante el modelo del proceso. Dado que en este trabajo no se emplea un modelo
de perturbaciones, para ms informacin se puede encontrar en la bibliografa aportada.
5.2 Trayectoria de referencia.
En los mtodos de control predictivo basado en modelos se supone que la salida del
proceso futura deseada es conocida (r(t+k/t), k=1,...,N2). Debido a la caracterstica de
mirar hacia delante, el controlador tomar acciones correctoras de antemano (antes de que
cambie el punto de consigna actual), con el fin de compensar los retardos y las constantes
de tiempo inherentes al proceso. Si no se conoce la salida deseada futura se toma como
referencia futura r(t+k/t)=r(t).
La trayectoria de referencia w(t+k/t) se inicia con w(t/t)=y(t), y se calcula para todo
el horizonte de prediccin, de acuerdo con una dinmica especificada, por ejemplo:
- W(t+k/t)=w(t+k-1|t)+(1-)r(t+k|t), k=1..N2
- R(t+k|t)-w(t+k|t)=
k
[r(t)-w(t)]
En ambos casos es un parmetro de sintona que especifica la dinmica en lazo cerrado:
01;

'



nto control le
rpido control
1
0

5. Teora de control predictivo. 35


5.3 Estructuracin de la ley de control.
La salida predicha depende de la entrada de control futura que se postula, y
conceptualmente en sistemas lineales se puede considerar como la suma de dos efectos:
y(t+k)=yl(t+k|t)+yc(t+k|t)
Donde yl es la respuesta libre del sistema, con u(t+k|t)=0, k=0..N
2
-1
yc es la respuesta controlada debida a la entrada de control futura.
As podemos calcular la respuesta libre del sistema a partir de la ecuacin de prediccin
adecuada. Las entradas de control pasadas son conocidas en el instante t:
u(t+k|t)= u(t+k)=u(t+k)-u(t+k-1), k<0
La parte controlada viene dada por
yc(t+k|t)= gku(t|t)+gk-1u(t+1|t)+...+g1u(t+k-1|t)
Los parmetros gj son los coeficientes de la respuesta a salto unidad.
Destacar las siguientes relaciones importantes entre este modelo y los de respuesta
impulsional y funcin de transferencia:
G(q
-1
)=g1q
-1
+g2q
-2
+...
) 1 )( (
) (
1
) (
) (
1 1
1
1
1
1

q q A
q B
q
q H
q G
Se define el vector de errores futuros como:
E=[e(t+1|t) e(t+2|t) ... e(t+N2|t)]
T
e(t+k|t)=w(t+k|t)-y(t+k|t)
Sustituyendo y(t+k|t) por su valor:
E=E
0
-GU
1
1
1
1
1
]
1

+ +
+ +
+ +

) | ( ) | (
:
) | 2 ( ) | 2 (
) | 1 ( ) | 1 (
2 2
t N t y t N t w
t t y t t w
t t y t t w
o
f
f
f
E
5. Teora de control predictivo. 36
1
1
1
1
]
1

1 .. g
: .. : :
0 .. 1 2
0 .. 0 1
1 2 N2
g g
g g
g
N
G
U=[u(t|t) u(t+1|t) ... u(t+N2-1|t)]
T
Cualquiera que sea el criterio usado para minimizar los errores E, siempre habr una
funcin de las N
2
(de 10 a 30) variables independientes en U. Est claro que resolver este
problema de optimizacin para la mejor U requiere un considerable nmero de clculos.
Este es uno de los motivos para poner algn tipo de estructuracin en el escenario
de control U. Estructuracin significa reducir a priori el nmero de grados de libertad
mediante alguna relacin entre los posibles valores de control futuro.
Con esto tambin se mejora la robustez y el comportamiento general del sistema de
control evitando seales de control de alta frecuencia que generalmente no son deseadas en
los sistemas de control reales.
Una de las principales tcnicas para estructurar el control es el horizonte de control. Si la
referencia es constante suponemos que se necesita una entrada de control asintticamente
constante. Entonces es razonable especificar un horizonte de control Nu (donde NuN
2
)
despus del cual la seal de control permanece constante, u(t+k|t)=0 para kUn. Esto nos
da un vector de control de dimensin Nu en vez de N
2
:
U=[u(t|t) u(t+1|t) ... u(t+Nu-1|t)]
T
La entrada de control real u(t+k) no permanece constante debido a la estrategia de
horizonte mvil. Computacionalmente estamos omitiendo las ltimas N
2
-Nu columnas de
la matriz G. Esto reduce enormemente la dimensin:

'

3 .. 1
30 .. 10 2
Nu
N
Un caso lmite es cuando Nu=1 o suponer que la seal de control futura permanece
constante desde el instante actual. Slo se tiene que calcular u(t|t) y nos da un problema
escalar.
5. Teora de control predictivo. 37
5.4 Algoritmo de clculo de la seal de control.
La distancia entre la trayectoria de referencia y la prediccin de la salida del proceso
puede minimizarse con la siguiente funcin objetivo:
[ ]
2
2
1
) | ( ) | (

+ +
N
N k
U
t k t y t k t w min
El parmetro N
1
es un parmetro de diseo que determina junto con N
2
el horizonte
de coincidencia, es decir, se quiere que la prediccin de la salida del proceso siga a la
trayectoria en el intervalo de tiempo {t+N
1
... t+N
2
} donde t es el momento actual.
El efecto de N
1
es claro, con un N
1
grande no estamos interesados en los errores de
control en el futuro cercano, esto generalmente da un control ms suave. En el caso de un
proceso que tenga un tiempo muerto, no tiene sentido elegir N
1
menor que dicho tiempo. Si
el proceso es de fase no mnima, el parmetro N
1
permite saltar sobre la respuesta inversa
inicial.
Otra funcin objetivo es:
[ ]
2
2
1
) | ( ) | (

+ +
N
N k
k
U
t k t y t k t w min

k
=[
1

2
...
N2
]
T
es un vector de coeficientes de peso que permite algunas
alternativas:

k
=[0 0 ... 0 1 1 ... 1]
T
define un horizonte de coincidencia.

k
=[0 1 0 1 0 ... 0 1]
T
conduce al concepto de puntos de coincidencia.

k
=
N2-k
k=[...
3

1
]
T
corresponde a una ponderacin exponencial para el
horizonte de prediccin.
Una ventaja de usar estos criterios es que la solucin ptima para U se puede obtener
analticamente. Como ejemplo, si cogemos la primera funcin objetivo con N
1
=1, con la
notacin vectorial sta se puede escribir como:
[ ] [ ] GU E GU E min E E min
T
U
T
U

0 0
la solucin a este problema de mnimos cuadrados es:
[ ]
0
1
E G G G U
T T

5. Teora de control predictivo. 38


5.5 Tcnica Dynamic Matrix Control (DMC).
Por ltimo comentar una de las tcnicas (DMC) de control predictivo, est basada
en un modelo de respuesta a escaln.

+
1
) ( ) ( ) (
j
j
t n j t u g t y
La funcin de coste es:
[ ]



+ + + +
1
0
2
2
2
1
) | ( ) | ( ) | ( ) , (
Nu
k
N
N k
t k t u t k t y t k t w t u J
Para obtener los coeficientes del modelo:
- Se deja la planta en lazo abierto hasta que alcanza el estado estacionario.
- Se cambia la entrada en una cantidad conocida (escaln) y se graba la salida hasta que
sta alcanza un nuevo estado estacionario.
- A los valores de salida almacenados se les resta el primer estacionario y se divide por la
altura del escaln. El resultado constituye los coeficientes del modelo del sistema.
A la hora de escribir las ecuaciones de prediccin, conviene separar aquellos componentes
de las predicciones que dependen de los k futuros incrementos de control del resto.

+ + + +
1
) | ( ) | ( ) | (
j
j
t k t n t j k t u g t k t y
) | ( ) | ( ) | (
1 1
t k t n t j k t u g t j k t u g
k
j k j
j j
+ + + + +

+
Suponiendo un modelo de perturbaciones constante

+
1
) ( ) ( ) ( ) | (
j
j
j t u g t y t n t k t n
y sustituyendo, la expresin anterior se puede reescribir de una forma ms compacta,
k k
p t k t u q G t k t y + + +

) | ( ) ( ) | (
1
donde
k
k k
q g q g q g q G

+ + + ... ) (
2
2
1
1
1
5. Teora de control predictivo. 39

+
+ +
1 1
) | ( ) | ( ) (
j
j
k j
j k
t j t u g t j k t u g t y p

+
+
1
) ( ) ( ) (
j
j j k
j t u g g t y
p
k
es la respuesta libre del sistema.
Si el proceso es asintticamente estable, los coeficientes g tienden a un valor
constante, y se puede hacer la simplificacin

+
+
N
j
j j k k
j t u g g t y p
1
) ( ) ( ) (
dado que g
k+j
-g
j
0 para j>N y N
1
kN
2
Si el proceso no es asintticamente estable, N no existe y no se puede calcular la
respuesta libre del sistema.
El predictor, escrito de forma matricial, tiene la forma
y(t)=Gu(t)+p(t)
Donde (suponiendo N
1
=1)
y(t)=[y(t+1|t) ... y(t+N2|t)]
T
u(t)=[ u(t) ... u(t+Nu-1)]
T
1
1
1
1
]
1

1 .. g
: .. : :
0 .. 1 2
0 .. 0 1
1 2 N2
g g
g g
g
N
G
p(t)=[p1, ..., p
N2
]
T
Para la obtencin de la seal de control se procede de la forma habitual, definiendo
los vectores
E=[e(t+1|t) ... e(t+N2|t)]
T
siendo e(t+k|t)=w(t+k|t)-y(t+k)
E
0
=w(t)-p(t)
Y por tanto
E=E
0
-GU
5. Teora de control predictivo. 40
Con esta notacin matricial, la funcin de coste se puede escribir en forma matricial
J=E
T
E+u
T
u
=u
T
[G
T
G+I] u-2E
T
0
Gu+E
0
T
E
0
La minimizacin de esta funcin nos lleva a la expresin
u=[G
T
G+I]
-1
G
T
E
0
5.6 Ventajas e inconvenientes de los mtodos MBPC.
Las ventajas del control predictivo basado en modelos respecto a otros mtodos de
control son los siguientes:
Est enfocado a resolver problemas de control de dinmica difcil (retardos, fase no
mnima, sistemas inestables).
Lleva incorporado una compensacin automtica de los retardos.
Permite incorporar fcilmente correcciones por adelanto (feedforward).
Permite el manejo de restricciones en la variables.
Es conceptualmente simple.
Su carcter predictivo le adecua muy bien para aplicaciones en las que se conoce de
antemano la referencia.
Y los inconvenientes:
Es computacionalmente complejo.
El MBPC necesita un modelo adecuado del proceso a controlar. Este es el inconveniente
ms importante de las tcnicas de control predictivo, ya que obliga a realizar una
identificacin o modelado previos. Adems la bondad de las secuencias de control que
obtengamos estarn relacionadas con la diferencia entre el sistema real y el modelo de la
planta.
6. Implementacin de un controlador predictivo con Matlab. 41
6. Implementacin de un controlador predictivo con Matlab.
El control predictivo ha sido implementado con Matlab debido al sencillo manejo de
las matrices, las facilidades para la simulacin del modelo y planificacin de trayectorias en
cualquier orientacin y una gran experiencia en este entorno. Como inconvenientes tena la
interaccin de datos con el exterior, tanto de entrada como de salida. Sin embargo estos
problemas se han solucionado (ver apndice) y finalmente se ha llevado a cabo el control
con Matlab.
El diagrama de flujo del controlador se puede ver en la figura siguiente, y a
continuacin se detallarn con ms detalle cada uno de estos pasos.
Inicio
Clculo de
trayectoria
Simulacin
Modelo inverso
Algoritmo
CMPC
Enviar seales
de control
Incrementar
seales de control
Error
SI NO
6. Implementacin de un controlador predictivo con Matlab. 42
INICIO
- Leer posicin inicial del robot (x,y) y orientacin. posrobot.m
- Introducir nodos que definan una trayectoria
- Obtencin de parmetros modelo step
- Inicializacin de parmetros algoritmo cmpc.m
CLCULO DE TRAYECTORIA
- A partir de los nodos principales:
- Calcular la distancia aproximada total del trayecto
- Calcular nmero de puntos que definan la trayectoria
- Obtener una trayectoria (cscvn.m y fnplt2.m)
- Borrar puntos cercanos debido a la poca precisin impuesta por
un nmero mximo de puntos (mini.m).
Si viene de la deteccin de error:
- Repite los pasos anteriores.
- Simulacin del modelo para determinar la posicin que se ha
desplazado durante el tiempo de clculo.
SIMULACIN MODELO INVERSO
- Entrar la trayectoria anterior en el modelo inverso para obtener
la trayectoria de referencia del control predictivo (salidas
funciones de transferencia)
ALGORITMO CMPC
- Ejecucin de la funcin cmpc.m de la MPC Toolbox. Esta
resuelve el problema de optimizacin mediante QP con
restricciones. Devuelve las salidas de las funciones de
transferencia y las seales de control.
6. Implementacin de un controlador predictivo con Matlab. 43
El programa que sigue este esquema se puede ver en el apndice con ms
comentarios sobre lnea que hagan fcil el seguimiento. Consta de dos partes, una primera
(icontrol9.m) al principio y la segunda (scontrol8.m) que cierra el bucle y se ejecutar
durante cada perodo de muestreo. El tiempo de muestreo empleado es 0.8 segundos,
demasiado elevado para un sistema que evoluciona tan rpidamente como este. Sin
embargo viene impuesto en parte al excesivo tiempo de clculo del controlador, como
veremos ms adelante. Este problema hace que el control sea difcil, ya que en tan elevado
tiempo el robot puede evolucionar dando un error importante. Para tratar de reducir el error
se restringe el controlador a unos valores de velocidad bajos, del orden de 20cm/s como
mximo.
Como resultados obtenidos de la implementacin de este controlador, se mostrarn a
continuacin diversos experimentos realizados.
INCREMENTAR SEALES DE CONTROL
- Si no se ha producido error se incrementa el vector de la seal
de control para enviar el siguiente calculado anteriormente.
ENVIAR SEALES DE CONTROL
- Enva el elemento del vector de control correspondiente.
- La primera vez que se ejecuta pone en marcha el temporizador
(tempopd8.m) que se har cargo del muestreo.
- Dibuja posicin.
- Registra datos de inters.
ERROR
- Cada perodo de muestreo vuelve a capturar los datos de visin
y calcula el error para determinar si el robot se aparta de la
trayectoria.
- Elimina si es necesario los nodos principales innecesarios
debido al avance del robot
- Si detecta que ha llegado detiene el control.
6. Implementacin de un controlador predictivo con Matlab. 44
Como primer caso se presenta una trayectoria recta, Se puede ver como la ejecuta
perfectamente. Para interpretar el grfico se tendr en cuenta que:
- Los crculos son la posicin del robot dada por visin en cada instante de muestreo.
- La trayectoria inicial obtenida por las funciones cscvn.m y fnplt2.m viene marcada por
una lnea discontinua con pequeos puntos.
- La posicin inicial del robot viene sealada por un cuadrado y junto a l un tringulo
que delata su orientacin.
- Los nodos base para la generacin de la trayectoria se sealan con un cuadrado.
- El grfico muestra las dimensiones reales del campo en centmetros.
Las seales de control para este experimento son
2 4 6 8
0
2
4
6
8
10
12
14
16
18
20
Se
ny
als
de
co
ntr
ol
Vel. lineal
2 4 6 8
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Cons. gir
1 2 3 4 5 6 7 8
0
0. 1
0. 2
0. 3
0. 4
0. 5
0. 6
0. 7
0. 8
0. 9
1
tal como se aprecia la consigna angular es 0, puesto que ha ido recto. A su lado se muestran
los tiempos empleados para el clculo durante cada perodo, se observa que pueden llegar a
sobrepasar los 0.8s, lo cual perjudica el control, pero elevar el tiempo supone poder llegar a
6. Implementacin de un controlador predictivo con Matlab. 45
un error considerable. Los tiempos que estn sobre los 0.5s suponen que no ha habido error
y no se ha tenido que calcular de nuevo el algoritmo de control.
En la siguiente prueba se aprecia otra trayectoria con linea continua y crculos. Esta
es la trayectoria que proporciona la simulacin del modelo entrando el primer vector de
seales de control obtenidos. En este caso la trayectoria trazada por el robot hace una ligera
s siendo muy buena.
Una trayectoria parecida girando en sentido contrario es la siguiente.
6. Implementacin de un controlador predictivo con Matlab. 46
Otra trayectoria describiendo un gran giro.
La siguiente trayectoria est marcada para comprobar cmo reacciona el robot al
tener que ir a un punto sin estar orientado previamente. La trayectoria que seguira el
modelo y se aparta del objetivo viene debida a las restricciones impuestas.
Otra trayectoria con el robot orientado casi 180 grados de su trayecto inicial es la
siguiente. Hacer notar que el trayecto inicial terico tampoco es bueno, esto se debe a la
naturaleza de las funciones utilizadas, pero como ventaja suponen poder trazar trayectorias
en cualquier sentido y de forma rpida. Adems otra posible implementacin de clculo de
trayectorias como un spline de tercer grado resultara menos eficaz (se ha probado sin
xito), ya que su naturaleza hace que los giros sean muy grandes y a veces indeseables. La
abundancia de puntos al final supone que el error es muy pequeo pero insuficiente para
detener por completo el robot.
6. Implementacin de un controlador predictivo con Matlab. 47
Resultados como este, en que se produce un ligero error (a veces de unos 6cm)
viene motivado por el hecho de tener un muestreo demasiado elevado y no tener suficiente
margen de maniobra.
Esto se observa en la siguiente prueba, donde el robot traz una trayectoria
excelente y al final se desvi de su punto final.
6. Implementacin de un controlador predictivo con Matlab. 48
Por ltimo (las pruebas realizadas son abundantes), se mostrarn dos de las pruebas
ms difciles para el controlador con sus respectivas seales de control.
10 20 30
0
5
10
15
20
25
Se
ny
als
de
co
ntr
ol
Vel. lineal
10 20 30
-6
-4
-2
0
2
4
6
8
Cons. gi r
0 5 10 15 20 25
0
0. 1
0. 2
0. 3
0. 4
0. 5
0. 6
0. 7
0. 8
0. 9
1
6. Implementacin de un controlador predictivo con Matlab. 49
5 10 15 20 25 30
0
5
10
15
20
25
Se
ny
als
de
co
ntr
ol
Vel. lineal
5 10 15 20 25 30
-6
-4
-2
0
2
4
6
Cons. gir
0 5 10 15 20 25 30
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Tiempos de clculo del controlador (s)
50
7. Conclusiones.
De los experimentos realizados se puede observar que el control predictivo es capaz
de controlar un sistema complejo como el microrobot autnomo. Aunque tal como se ha
indicado los puntos dbiles de este controlador son el gran tiempo de clculo empleado, lo
cual lleva a manejar unas velocidades bajas que son del todo inaceptables para usarlo en
competicin. Otro de los puntos negativos es la necesidad de obtener un modelo previo,
trabajo que llega a ser costoso, adems la mecnica del robot hace que su comportamiento
sea desigual e incluso cambiante si alguna de sus ruedas patina o acaba cayendo, haciendo
ms difcil el modelado.
Otro de los puntos dbiles es el sistema de visin, lento y que pierde al robot en
ocasiones, dando coordenadas errneas. En el proceso de mejora contnua se est
desarrollando actualmente con la intencin de usarlo en el prximo mes de agosto en la
competicin ROBOCUP, un nuevo sistema de visin con el diseo de una placa que ir
conectada al ordenador y ser quien proveer los datos. El sistema de visin adems
suministrar los datos mediante sockets, lo cual evita el problema sufrido hasta ahora de
acceso al disco duro en busca de los datos.
Este trabajo ha tenido como parte ms dura el modelado, que engloba el diseo de
un controlador PI interno, y cuyo trabajo de implementacin delat falta de recursos en el
microcontrolador empleado. Este hecho apoya an ms la idea y prxima puesta en marcha
de la construccin de un nuevo prototipo de robot, con una placa base que montar un
Pentium y un mayor tamao que permita as mismo una mecnica ms precisa, como puede
ser el centrado de las ruedas.
Como resultado final se ha proporcionado un conocimiento de un controlador cada
vez ms utilizado, se ha comprobado que requiere grandes recursos y su implementacin
para aumentar sus prestaciones requirira mayor potencia en el ordenador central (host).
An as se deduce que este controlador no es el ms adecuado para este proceso. Tambin
ha sido aprovechado este trabajo como proveedor de un modelo del sistema con el que se
pueden simular nuevas tcnicas de control, hasta la fecha ya ha dado sus frutos
consiguiendo buenos resultados en trabajos de control paralelos. Y por ltimo aadir el
gran aprovechamiento del controlador PI interno, que actualmente est siendo utilizado en
todos los robots.
93
9. Bibliografa.
J. A. Gonzlez Vzquez. Introduccin a los microcontroladores. McGraw-Hill
J.M. Martn Snchez, J. Rodellar. Adaptive predictive control. From the concepts to plnat
optimization. Prentice Hall
Z. Nagy, S. Agachi. Model Predictive control of a PVC batch reactor. Computers chem.
Engng. Vol 21, pp571-591
R. Soeterboek. Predictive Control. A unified approach. Prentice Hall
J. J. Ramos. Apuntes de clase de Control de Sistemas. UAB
J. Serrano. Apuntes de curso de control predictivo. UAB
I NDI CE
1. INTRODUCCIN. ........................................................................................................................................................1
2. OBJETIVOS....................................................................................................................................................................1
3. DESCRIPCIN DEL ROBOT...................................................................................................................................2
4. MODELADO. .................................................................................................................................................................6
4.1 MONITOR DE PRUEBAS. ............................................................................................................................................. 8
4.2 OBTENCIN DE MUESTRAS...................................................................................................................................... 10
4.3 CONTROL DE VELOCIDAD A BAJO NIVEL............................................................................................................... 11
4.3.1 Implementacin de un controlador PI discreto..........................................................................................13
4.3.2. Diversificacin del controlador...................................................................................................................18
4.4 CREACIN DEL MODELO......................................................................................................................................... 19
4.5 VALIDACIN DEL MODELO..................................................................................................................................... 26
5. TEORA DE CONTROL PREDICTIVO.............................................................................................................31
5.1 MODELOS DE PREDICCIN...................................................................................................................................... 32
5.2 TRAYECTORIA DE REFERENCIA.............................................................................................................................. 34
5.3 ESTRUCTURACIN DE LA LEY DE CONTROL......................................................................................................... 35
5.4 ALGORITMO DE CLCULO DE LA SEAL DE CONTROL........................................................................................ 37
5.5 TCNICA DYNAMIC MATRIX CONTROL (DMC).................................................................................................. 38
5.6 VENTAJAS E INCONVENIENTES DE LOS MTODOS MBPC................................................................................... 40
6. IMPLEMENTACIN DE UN CONTROLADOR PREDICTIVO CON MATLAB................................41
7. CONCLUSIONES........................................................................................................................................................50
8. APNDICES.................................................................................................................................................................51
A. INTERACCIN CON EL EXTERIOR DESDE MATLAB................................................................................................ 51
B.1 LISTADO DE LOS PROGRAMAS. LABWINDOWS.................................................................................................. 53
PRIN.C.........................................................................................................................................................................53
ADQ.C .........................................................................................................................................................................55
MODEL.C ...................................................................................................................................................................57
B.2 LISTADO DE LOS PROGRAMAS. PROGRAMAS DE CONTROL DE VELOCIDAD EN C........................................... 67
TDIVSR7.C .................................................................................................................................................................67
BROKVSR7.C.............................................................................................................................................................72
BROGI6.C...................................................................................................................................................................77
B.3 LISTADO DE LOS PROGRAMAS. MATLAB............................................................................................................. 82
ICONTROL9.M..........................................................................................................................................................82
SCONTROL8.M.........................................................................................................................................................84
VISDATS.M.................................................................................................................................................................86
PREVIO.M..................................................................................................................................................................87
PARAMPI.M...............................................................................................................................................................89
B.4 ARCHIVOS EMPLEADOS PARA LA TRANSMISIN POR RADIO CON MATLAB.................................................... 90
EMISOR.C...................................................................................................................................................................90
EMITE.C .....................................................................................................................................................................91
9. BIBLIOGRAFA..........................................................................................................................................................93

Vous aimerez peut-être aussi