modelizaciÓn e implementaciÓn de control predictivo en un microrobot autÓnomo

53
MODELIZACIÓN E IMPLEMENTACIÓN DE CONTROL PREDICTIVO EN UN MICROROBOT AUTÓNOMO Presentado por Fco. Ignacio Gamero Argüello Bajo la dirección de Javier Serrano García Del Departamento de Ingeniería de Sistemas y Automática Julio 1999

Upload: moises-maidana

Post on 23-Oct-2015

20 views

Category:

Documents


0 download

TRANSCRIPT

MODELIZACIÓN E IMPLEMENTACIÓN DECONTROL PREDICTIVO EN UN MICROROBOT

AUTÓNOMO

Presentado porFco. Ignacio Gamero Argüello

Bajo la dirección deJavier Serrano García

Del Departamento de Ingeniería de Sistemas y Automática

Julio 1999

1. Introducción. 1

1. Introducción.

Desde el año 1996, en que el grupo de Recerca d’Enginyeria de Control i SistemesIntel·ligents (eXIT) de la Universitat de Girona participa en la competición internacionalMIROSOT (Micro-Robot World Cup Soccer Tournament), se pone en marcha un trabajode investigación que se fundamenta en los microrobots autónomos futbolistas. Lacalificación de autónomo hace referencia a la capacidad de percibir, planificar y actuar parallegar a unos objetivos sin la intervención o intervención mínima de supervisores humanos.En este caso las tareas comentadas se reparten entre el mismo robot y un sistema de másalto nivel, que será el encargado de planificar trayectorias y tratar la información delsistema de visión.

El sistema de más alto nivel consiste en un ordenador central, este además recibirálos datos de visión artificial de otro ordenador, con lo cual se detectará la posición de losrobots y elaborará la estrategia necesaria para el su movimiento. Las órdenes setransmitirán mediante una señal de radiofrecuencia a todos los robots, teniendo cada uno deellos un código identificativo.

El trabajo continuo y desarrollo de nuevas tecnologías en el campo de losmicrorobots, no está ligado tan sólo al mero hecho de competir en una competición pordiversión, sinó aplicar todos estos avances en el mundo real. El juego de fútbol es un buenejemplo de sistemas multiagente, donde intervienen muchos campos en desarrollo, talescomo protocolos de cooperación, comunicación efectiva y tolerancia a fallos, adaptabilidad,robustez, etc., todo ello en tiempo real. Desde este punto de vista el fútbol con robots puedeser utilizado como banco de pruebas.

2. Objetivos.

El proceso de mejora continua en el funcionamiento de los robots, hace que sedespierte un interés dentro del grupo de investigación por todos aquellos sistemas decontrol que se puedan aplicar a los microrobots. De aquí parte la idea de implementar uncontrolador predictivo dentro de las posibilidades del sistema. El objetivo es comprobar sieste proyecto mejora el comportamiento logrado hasta el momento. El mayor propósito deeste tipo de controlador es lograr que el microrobot siga una trayectoria de referenciamarcada por unos nodos base hasta un punto final objetivo. La dificultad en seguir ciertastrayectorias es una carencia del sistema actual, que se basa en un doble controlador PID ymuestra respuestas desiguales, por lo que el siguiente proyecto ha sido seguido con especialinterés.

Para llevar a cabo este trabajo, se precisará de un total conocimiento del sistema entodas aquellas partes que influyan en su desarrollo. También se deberá llevar a cabo por lanaturaleza del controlador un modelado previo al control.

Así mismo, como consecuencia de la experiencia del modelado, se irán añadiendotodos aquellos detalles que son susceptibles de mejora en posteriores versiones del robot yhan de tenerse en cuenta en los futuros prototipos.

3. Descripción del robot. 2

3. Descripción del robot.

El tamaño del robot está limitado a 7.5cm x 7.5cm x 7.5cm, impuesto por elreglamento de la competición MIROSOT. En su base están situados dos motores reductoresjunto con las baterías, y finalmente en un nivel más alto la placa con los componenteselectrónicos.

Fig. 1 Fotografía del microrobot

Los motores son Maxon de 1.5W y 9V. Incluyen un reductor con la relación 16.58:1y unos encoders incrementales de tipo magnético (fig. 2) que proporcionan una señal desalida compatible TTL y dan 16 pulsos por vuelta. Los motores llevan acoplados a su ejelos encoders antes de la reducción, por lo que realmente dan 265 pulsos por vuelta.

Reducción 16.58:116·16.58=265 pulsos/vuelta

Fig. 2 Encoders magnéticos

Las ruedas miden 5.4 cm de diámetro y tienen una separación de 7 cm. Por tanto eldesarrollo de la rueda es:

D = π ·d = π ·5.4cm = 16.964 cm

3. Descripción del robot. 3

Y dado que una vuelta completa son 265 pulsos, la distancia recorrida por un pulso es:

cmcm

064.0265964.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 reflejarán ungiro. Se puede considerar para este tiempo el ángulo girado como un diferencial de giroigual a la diferencia de pulsos, o sea, igual a x centímetros según la relación anterior. Comoel desarrollo de la circunferencia trazada por el robot girando sobre una rueda es:

D = π ·d = π ·7cm·2 = 43.982 cm

Tenemos

º1122.0

º360982.43 cmcm =

como relación que servirá más adelante para hacer el modelo. En este punto cabe destacarla importancia que puede llegar a tener una ligerísima desviación entre la separación de lasruedas, por lo que esta relación servirá como referencia y puede ser necesario ajustarla paraconseguir un modelo más preciso.

El sistema de alimentación está constituido por un conjunto de 9 bateríasrecargables de 1.2V y 1100mAh de capacidad cada una, de níquel metal tipo AA,conectadas en serie. El sistema de alimentación proporcionará dos tensiones, 10.8V para losmotores y 5V para alimentar el microcontrolador.

El sistema de comunicación con el robot es vía radio a una frecuencia de 418MHz ó433MHz. La velocidad de transmisión es de 9600 baudios, máximo que permite el sistemaemisor-receptor. La transmisión es asíncrona, sistema simplex de comunicación, es decirunidireccional del host a los robots. El modo de comunicación entre el emisor y el receptores mediante el protocolo RS-232 y la longitud de palabra de 10 bits (1 bit de Start, 8 bits dedatos,1 bit de Stop y ninguno de paridad).

Fig. 3 Sistema supervisor

3. Descripción del robot. 4

El sistema supervisor (PC) con el emisor de radio conectado a su puerto serieCOM2, envía tramas al robot (fig. 3) que son recogidas por el receptor integrado en el roboty las transforma en señales compatibles TTL que entran directamente a la entrada decomunicación 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 sincronizarel emisor y el receptor, en concreto son los valores 0FFH y 20H.• Identificador: es el byte identificativo de cada robot.• 201: este byte se añade para hacer más robusta la recepción de datos frente a ruidos• Vel. Lin: consigna de velocidad lineal en cm/s. Por tanto el robot se desplazará a esavelocidad.• Cons. Giro: consigna de giro, no tiene unidades. El robot girará en proporción a estevalor, aunque conservando su velocidad lineal.• Tiempo: tiempo durante el cual se ejecutará la orden de velocidad recibida, se envía enforma de número de muestras. Por ejemplo si enviamos 100 y el tiempo de muestreo en elprograma de velocidad es de 32ms, ejecutará la orden durante 100·32ms = 3.2s

El microcontrolador utilizado por los robots es un 87C552-4K68 de Philips, lascaracterísticas técnicas más 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 analógico digital de 10 bits con 8 entradas multiplexadas- 2 canales PWM de 8 bits de resolución- 6 puertos paralelos de I/O configurables- 1 canal de comunicación 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 salidasde pulsos modulados en anchura PWM (Pulse Width Modulation) de que dispone elmicrocontrolador. El principio de la modulación PWM es ir variando la anchura de lospulsos de una frecuencia determinada que se generan para ir variando la tensión continuaresultante.

3. Descripción del robot. 5

Estas salidas constituidas por una serie de pulsos de anchura y frecuencia programablesson controladas por el microcontrolador a partir de unos registros especiales (SFR). Lamodulación de las señales PWM0 y PWM1 se controla por tres registros programables:

- PWMP (dirección 0Feh): es un registro de 8 bits que hace de divisor de la frecuencia deoscilación interna del micro, permitiendo definir la frecuencia de las dos salidas PWMsegún la fórmula:

255)1(2 PWMPf

f oscPWM +

=

- PWM0 Y PWM1: (direcciones 0FCH y 0FDh): son dos registros de 8 bits que definen laanchura de los pulsos (Duty Cicle) según la fórmula:

n

n

PWMPWM

Nivel−

=255

Otras entradas y salidas utilizadas son:

- PQ2 y PQ3 (direcciones 0C2H Y 0C3H): son dos bits del puerto 4 que sirven para definiren el driver de potencia el signo de la tensión y por tanto el sentido de giro del motorcorrespondiente, con PQ2=0 el motor 1 gira hacia delante y con PQ2=1 gira hacia atrás.Para PQ3 la lógica es inversa debida a la colocación física de los motores.

- PU0 y PU1 (direcciones 90h y 91h): son dos bits del puerto 1 que están conectados a lassalidas de pulsos que dan los encoders de los motores y por tanto servirán para saber eldesplazamiento del robot.

T

t1

t2

t3

A

B

C

L293BPWMn OUTn

MOTORn

A = 0 VB = 5.4 VC = 10.8 V

Ti = 1/255 T until 254/255 T

Principio de modulación PWM

4. Modelado. 6

- RxD: es el pin de recepción del puerto serie, el cual está conectado a un módulo e radio enla misma placa de control. Los bytes recibidos se guardan en un registro especial llamadoSBUF (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 paralos motores, se dispone de un driver de potencia, el C.I. L293B, formado por dos puentesen H de cuatro transistores de potencia capaz de suministrar 1A. El puente permite quesegún 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 dinámicos que relacionan lasvariables manipuladas y controladas de un proceso. Estos permiten predecir su evoluciónfutura y calcular, mediante un procedimiento de optimización, las señales de control aaplicar al mismo de modo que las predicciones de su evolución futura satisfagan losrequisitos de operación establecidos. Así pues un requisito previo es la obtención de unmodelo del proceso a controlar, en este caso un microrobot autónomo con las característicascomentadas en el apartado anterior.

Un primer paso es conocer qué variables manipuladas y controladas son las queintervienen. Y ya que se aplica tensión a los motores (ver Monitor de pruebas) para que estese desplace, se recogen muestras de la velocidad en cada una de las ruedas aplicandodiferentes valores de PWM (fig. 5), con la idea de identificar el sistema multivariable dedos entradas y dos salidas que forman la tensión 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 tensión de las baterías, y que ésta disminuyerápidamente al poco rato de estar trabajando con el robot en movimiento. La conclusión esque es más conveniente realizar un controlador de velocidad e implementarlo en el propiorobot, de manera que ahora las señales de control serán la velocidad lineal y una consignade giro. De esta forma el controlador de velocidad genera las señales de PWM a aplicar encada uno de los motores, obteniendo una velocidad constante con un margen de tensión delas baterías mucho mayor.

0 100 200 300 4000

5

10

15

20

25Plot fichero: pw100.dat pwm: 100 100

0 100 200 300 4000

5

10

15

20Plot fichero: pw120.dat pwm: 120 120

0 100 200 300 4000

5

10

15Plot fichero: pw150.dat pwm: 150 150

0 100 200 300 4000

2

4

6

8Plot fichero: pw165.dat pwm: 165 165

Fig. 5 Pulsos de encoder vs tiempo para diferentes valores de PWM. Las primeras 200muestras son unidades de 20ms y las siguientes 200 son unidades de 3ms.

Como variables controladas tenemos las que nos devuelve el sistema de visión, queson la posición (x,y) del robot así como su orientación. Ya está definido el sistema del quese obtendrá posteriormente un modelo.

Un resultado válido de estos experimentos y que se usará desde el principio en elcontrolador de velocidad, es la obtención de una relación aproximadamente lineal entrePWM y velocidad (fig. 6) tal como se indica a continuación:

4. Modelado. 8

PWM = 190 – velocidad [cm/s]

Esta relación se cumple para un nivel de tensión medio en las baterías, sufriendoalguna desviación dependiendo de este nivel. Sin embargo se puede extraer de este dato quecon un PWM de 190 y a un nivel de baterías que no sea muy alto y recién cargado, lo cualno es habitual, el robot ya no se mueve. Esto desplaza el punto de no operación de 255 a190 (valor PWM).

20 30 40 50 60 70 80100

120

140

160

180

vel. cm/s

PW

M

20 25 30 35 40 45 50 55 60130

140

150

160

170

vel. cm/s

PW

M

Fig. 6 Relación velocidad-PWM

4.1 Monitor de pruebas.

Para la emisión de datos al robot y la monitorización y recogida de datos de visiónque puedan servir para validar el modelo, se ha creado un programa con LabWindows quetiene este cometido, así como recoger los datos de pulsos y velocidad con la opcióncorrespondiente. Para acceder a él se elegirá la opción Assaig del menú desplegable delprograma 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 orientación como un punto y una pequeña lineaamarillos. También visualizará los datos obtenidos por visión durante una prueba en formade puntos negros.• Jugador: Toma como posición del robot una de las tres proporcionadas por visión.• Clear: Borra el monitor de trayectorias y puntos, dibuja de nuevo el robot en su posiciónactual e inicializa la matriz de datos capturados.• Desar: Guarda los puntos capturados en el fichero especificado a la izquierda. El ledindicador que está situado a su lado indica cuando está en verde, que existen datosobtenidos sin grabar. Si grabamos los datos, o al inicio que todavía no existen datos, el ledpermanece rojo. Su utilidad está en recordarnos que los datos ya han sido grabados o queaún están por grabar.• Ini xx: Inicializa la matriz de datos capturados sin borrar el monitor, para poder hacercomparaciones en segundas pruebas.Índex: Indica el número de muestras recogidas.• No. Máx. de Mostres: Número total de períodos durante los cuales se envían datos y serecogen muestras.MRT/1RT : Múltiples transmisiones de datos o una sola transmisión. Si se elige MRT laseñal de control es enviada durante cada periodo de muestreo al robot. En caso de elegir1RT sólo se envía la primera vez. Hay que tener en cuenta esta opción a la hora de

4. Modelado. 10

introducir el tiempo en Temps, ya que el valor de tiempo para 1RT estipulará la duracióntotal de la prueba, en cambio para MRT será el número máximo de muestras el que indicaráel tiempo máximo de la prueba. Otro detalle a tener en cuenta es que si elegimos MRT loscambios efectuados en las consignas durante la prueba se enviarán al robot, pudiendo verasí su comportamiento ante cambios en la consigna.• Enviar: emite por radio los datos introducidos. El led indicador situado en su parteinferior se pondrá rojo cuando esté en proceso un ensayo, estando verde en cualquier otromomento.• Vel/PWM: Emite por radio datos de velocidad y tiempo o sólo PWM.• PWM0/PWM1: Consigna de PWM en cada rueda.• PWM’s=/PWM’s#: Conmutador para introducir consignas de PWM iguales y ahorramostener 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 número de muestras.• X/Y inicial/final: tal como se indica muestra la posición inicial y final de cada prueba.• Ang. Inicial/final: Como en el caso anterior muestra la orientación en grados del robot alinicio y final de cada ensayo.

4.2 Obtención de muestras

Con el programa brogi6.c se ejecutan las órdenes de PWM que llegan al robot yalmacena los valores de los pulsos en cada instante de muestreo en un array dondeposteriormente serán recogidos. Para ello se utiliza un cable ya construido que conecta elpuerto serie al robot y la salida TxD (transmisión) de que dispone el microcontrolador. Elprocedimiento de recogida de datos es algo delicado, ya que al inicio fue costoso recogerlos valores al producirse errores. Para evitarlo he establecido un ‘protocolo’ que siempresigo y con él evito los errores que fuerzan a repetir los ensayos. Dicho ‘protocolo’ es elsiguiente:

- Después de la prueba quitar el receptor con cuidado, procurando que no rebote y seproduzca una reconexión que encendería el led del puerto 4, señal inequívoca de que losdatos son irrecuperables.

- Conectar el cable a los conectores de comunicación.- 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 elprograma en cada prueba hace que este procedimiento sea lento.

El programa de recogida de datos está escrito en C bajo LabWindows, para acceder a élse 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 continuación seindica 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 número de datos registrados. Es importante que este valor seael correcto para que los datos recogidos estén sincronizados. En este caso particular elnúmero de datos capturados durante el presente trabajo ha sido 400, y para esta cantidad elvalor final ha de ser 801. El valor adecuado sigue el patrón (para valores pares de datos):

Final = (Nº de datos · 2) + 1

Rebre: Recibe los datos a través de cable conectado del puerto serie al robot y los guarda enel fichero especificado más 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 baterías, no se puederelacionar un valor de PWM a una salida deseada. La solución es crear un controlador develocidad interno donde las señales de control serán la velocidad lineal y una consigna degiro y como salida tendremos unas velocidades que se ajusten a dichas consignas. De estaforma el controlador de velocidad generará las señales de PWM a aplicar en cada uno delos motores, obteniendo una respuesta constante con un margen amplio de tensión de lasbaterías.

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 sidocostoso debido a las particularidades del sistema. Por una parte el microcontrolador no es

4. Modelado. 12

demasiado potente para esta aplicación y un problema es la necesidad de disponer de tresniveles de interrupción, que son ordenados según su prioridad:

- Interrupción puerto serie RI+TI: es la de máxima prioridad, ya que al recibirnuevos datos el robot ha de ‘olvidar’ la ejecución en curso y realizar una nueva ejecucióncon 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 perderpulsos y que el controlador suponga un velocidad inferior a la real.

- Interrupción del temporizador TIMER0: cada período de muestreo se activarádando paso al cálculo de velocidad y las tensiones en cada uno de los motores.

El microcontrolador empleado sólo dispone de dos niveles de interrupción, dandocomo alta prioridad a la interrupción del puerto serie, quedan al mismo nivel lasinterrupciones externas y del temporizador. Este problema se ha solucionado acotando almáximo el bucle de atención a la interrupción, de forma que esté atendiendo a lainterrupción el tiempo mínimo para no perder demasiados pulsos. El resultado es excelentey el margen de error no llega a unos pocos centímetros que son prácticamentedespreciables.

El otro gran problema surgido en la realización del programa viene debido a lascaracterísticas de las ruedas. Los ejes internos de las ruedas son completamente redondos yel método de unión consiste en pegar las ruedas a los ejes del motor. Con el tiempo lasruedas tienden a soltarse y el eje patina, con lo cual han de volver a pegarse, y laconsecuencia es que debido a la excentricidad y la distancia entre ejes el modelo cambia.Así mismo las dos ruedas no están colocadas de forma simétrica, estando la rueda izquierdamás adelantada que la derecha. Este hecho hace que los giros hacia la izquierda sean muchomás costosos, girando de forma muy desigual en cada sentido. Otro hecho es que los robotstienden a desviarse siempre hacia la izquierda.

La solución a este problema, ya que interesa que el giro sea aproximadamente elmismo en cada sentido, es que el controlador sea muy robusto, ya que en trayectorias rectasno existe este problema y el controlador se comporta perfectamente. A pesar de estosinconvenientes que demostraron tener efectos negativos al principio, el controladorconseguido es realmente excelente y los resultados han corroborado a este controlador en elinterior del resto de los robots y sirve como base para otros tipos de controladores.

Merece la pena comentar que la elección del tiempo de muestreo (32ms) utilizadoen el controlador de velocidad no es gratuita. Para ello se tuvo en cuenta la minimización deoperaciones llevadas a cabo por el microcontrolador. Como ya ha sido mencionado, elcontrol de la velocidad se hace tomando el número de pulsos durante un intervalo detiempo. Con las relaciones expuestas previamente, las operaciones para convertir dichospulsos en velocidad son:

Distancia recorrida = 0.064cm/pulso · pulsos encoderVelocidad = distancia recorrida / Ts (cm/s)

Si el tiempo de muestreo Ts = 32ms, el cálculo de la velocidad se reduce a:

4. Modelado. 13

Velocidad = 2 · Pulsos encoder (cm/s)

operación mucho más rápida que cualquier otra con un tiempo diferente. También esvalioso incluir una sencilla fórmula con la que se puede extraer el valor de carga deltemporizador para un valor dado de tiempo.

1210·059,11·

65535_6Tiempo

decimalvalor −=

Por ejemplo, para obtener el valor de carga dado un tiempo de 32ms, se sustituye en lafórmula y el valor obtenido se convierte a hexadecimal, en este caso 8CCCH. Este cálculose puede llevar a cabo fácilmente con la calculadora de Windows.

4.3.1 Implementación de un controlador PI discreto.

El controlador que se diseñará será un PI discreto, con un tiempo de muestreo de32ms. Primero estudiaremos la estructura que deberá tener este controlador paraposteriormente pasar a su sintonía e implementación final.

Una forma de representar el PID lo ofrece la transformada de Laplace, de la forma:

)(1

1)( sEsTdsTi

KpsU

++=

El algoritmo de un controlador PID discreto se puede conseguir a partir del continuoutilizando aproximaciones discretas para las derivadas e integrales. La llamadaaproximación rectangular se puede encontrar fácilmente haciendo la sustitución:

Tz

s11 −−

=

en el algoritmo continuo. Con esta sustitución el algoritmo discreto en transformada zqueda de la siguiente manera:

)()1(1

11)( 1

1 zEzT

TdzTi

TKpzU

−+

−+= −

o puesto de otra manera:

)(2

11)()1( 211 zEzT

Tdz

TTd

TTd

TiT

KpzUz

+

+−

++=− −−−

4. Modelado. 14

que da lugar al denominado algoritmo incremental:

)2(3)1(2)(1)1()( −+−++−= keKkeKkeKkuku

donde:

++=

TTd

TiT

KpK 11

+−=

TTd

KpK2

12

TTd

KpK =3

Este algoritmo permite implementar fácilmente el PI discreto, con Td=0 y desarrollando elalgoritmo llegamos a:

)())1()(()1()( kIekekeKpkuku +−−+−=

donde

TiT

KpI =

que se puede identificar fácilmente en el programa de control.

Para sintonizar el controlador se han utilizado diversos métodos, de los ampliamenteextendidos en los libros de control con sus correspondientes tablas. El cálculo de estosvalores lo efectúa un programa de Matlab (parampi.m) al que introduciremos los datosnecesarios. Pero el primer paso es obtener una respuesta en lazo abierto y filtrarla, como lamostrada en la figura 9.

0 2 4 60

2

4

6

8

10

12

14

16

Plot fichero: pwm150b.dat consigna: 150 150

PW

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 40

10

20

30

40

50

60

Fig. 10 Respuesta de velocidad [cm/s] en lazo abierto

El valor de entrada de esta función es 190-150=40.

De aquí se obtiene:

K = 1.3Tau = 1.12sRetardo = 32ms

Estos valores son los introducidos en parampi.m, que devuelve:

» parampiK: 1.3Retardo: 0.032tau: 1.12MÉTODO ZIEGLER-NICHOLSKp: 24.2308Ti: 0.10667MÉTODO COHEN-COONKp: 20.6202Ti: 0.13074MÉTODO LÓPEZ, MURRIL, SMITHKp: 21.311Ti: 0.14811MÉTODO ROVIRAKp: 11.7036Ti: 1.0924

4. Modelado. 16

Con el conocimiento previo del sistema se deduce que los tres primeros métodosdan una Kp muy elevada, a pesar de ello se prueba para comprobar su funcionamiento losvalores obtenidos con el método Ziegler-Nichols, con una Ki:

7106.0032.0

24 ≈==TiT

KpKI

0 1 2 3 4 5 6 70

10

20

30

40

50

60

Fig. 10b Respuesta de velocidad con los parámetros obtenidos con el método Ziegler-Nichols

Vemos como regula bien para la velocidad más baja mientras que se produce unasaturación en la más alta.

Volvemos a probar el controlador ahora con los valores obtenidos con el métodoRovira, con Ki,

4.009.1032.0

7.11 ≈==TiT

KpKI

0 1 2 3 4 5 6 70

10

20

30

40

50

60

70

Fig. 10c Respuesta de velocidad con los parámetros obtenidos con el método Rovira

4. Modelado. 17

En este caso el controlador sí funciona correctamente aunque se podría mejorarintentando que la respuesta fuese más rápida. Subiendo Ki hasta 1 tenemos:

0 1 2 3 4 5 6 70

10

20

30

40

50

60

70

Se puede comprobar que la regulación es muy buena y el sistema responde muchomás rápido. Posteriores pruebas modificando los parámetros no han dado mejoresresultados, tan sólo se ha llegado a acelerar la respuesta ligeramente a costa de una mayorinestabilidad en el control, hecho que se nota en el comportamiento del robot por unmovimiento menos suave, repicando sobre el eje que forman sus dos únicas ruedas. Portanto los valores definitivos implementados en el controlador PI son:

Kp = 12Ki = 1

Por último mostrar como casos particulares las respuestas de velocidad de cada una de lasruedas cuando una de ellas tiene entrada nula (fig.11 y 12 ).

0 2 4 6 8 10 120

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 120

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 prácticamente independiente de la otrarueda, hecho que facilita el tipo de modelo utilizado. Tan sólo en el giro a la izquierda(Vl:15, Ca:-15) se ve una ligera respuesta de la rueda derecha, motivado por el hecho que larueda izquierda se encuentra más adelantada que la derecha. El extremo contrario de laspruebas 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. Diversificación 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 dinámica de aceleración seacompletamente diferente a la de desaceleración. El hecho es que al aplicar una tensión de 0voltios 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 unadiferencia básica, uno de ellos crea una ‘frenada artificial’. Así que uno de los programasaplica una tensión que va disminuyendo progresivamente hasta llegar al valor de la nuevaseñal de control, naturalmente inferior a la anterior. El resultado es que se puede apreciaruna frenada progresiva cuando pasamos a una velocidad inferior o detenemos el robot. Esteha sido el que se ha probado como defecto en todas las pruebas anteriores en las que sí sepuede apreciar como ‘frena’ más suavemente.

Los dos programas de control de velocidad contemplan la posibilidad de marchaatrás, con lo cual si la consigna de velocidad lineal es negativa el robot retrocede, pudiendoasí ir en los dos sentidos de la marcha y girando a izquierda o derecha. Un detalle más ycomo caso particular a tener en cuenta por el grupo de investigación dedicado a los robotses 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 laderecha.

Así mismo, para el modelado se han recogido muestras de velocidad, por lo que sehan utilizado programas de control que lo permitían. En cambio el controlador ‘universal’de velocidad no incluye esta posibilidad, esto significa que existen hasta cuatrocontroladores, cuya única característica en común es que permiten la marcha atrás. Loscuatro programas de control son:

tdivcr7.ctdivsr7.cbrokvcr7.cbrokvsr7.c

y el significado de la nomenclatura es el siguiente:

tdi*.c permiten la recogida de datosbrok*.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 apéndice debidamente comentados, yaque la diferencia entre ellos es mínima, con estos dos es suficiente para la comprensión detodos los programas.

4.4 Creación del modelo

El modelo del robot se muestra en la fig. 13, como se puede ver las entradas son lavelocidad lineal y una consigna de giro. A la salida de la función de transferencia ‘lineal’obtenemos la velocidad lineal del robot en cm/s, mientras que a la salida de la función detransferencia de ‘giro’ se obtiene la diferencia de velocidad entre la rueda 1 (izquierda) y larueda 2 (derecha). El bloque amplificador que sigue a continuación tiene la función deconvertir dicha velocidad a velocidad angular (ver relaciones de conversión en Descripcióndel robot), en rad/s. Finalmente tras integrar la señal se obtiene la orientación del robot.

Llegados a este punto tenemos la velocidad en coordenadas polares, como unacomponente lineal y un ángulo, por lo cual se hace la conversión a coordenadas cartesianasy se vuelve a integrar para obtener finalmente la posición x,y sobre el campo.

También es obligatorio mencionar que los integradores pueden ser inicializados conun valor, que para el primero es el ángulo inicial en radianes, mientras que los otros dos seinicializan cada uno de ellos con los valores de posición respectivos x e y.

4. Modelado. 20

XY Camp

Vel. lineal

angi2

y

ts

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 develocidad obtenidos (fig. 14) en las pruebas efectuadas. Estos datos son filtradospreviamente para ello. Este proceso se hace con el programa previo.m, que proporciona losdatos filtrados y matrices de tiempo y consignas de entrada.

0 2 4 6 8 10 120

5

10

15

20

25

30

0 2 4 6 8 10 120

5

10

15

20

25

Fig. 14 Respuestas de velocidad

4. Modelado. 21

0 2 4 6 8 1 0 1 20

2

4

6

8

1 0

1 2

1 4

1 6

1 8

Como se puede comprobar la regulación es buena, en la parte superior de cadagráfico se indica la consigna de cada prueba, que a su vez se muestran gráficamente comolineas horizontales en cada gráfico.

Estas pruebas, con las que se han obtenido las funciones de transferencia, son debaja velocidad, que será el régimen que se usará en el control predictivo. Por cuestión deque el controlador obtenido sea universal a todos los robots y se pueda emplear en otrasaplicaciones, también han sido tenidas en cuenta velocidades altas, algunos de estosresultados con velocidades medias-altas se muestran en las fig. 15 y 16.

0 2 4 6 8 10 120

10

20

30

40

50

60

70

Fig. 15 Respuesta para velocidad alta

4. Modelado. 22

0 2 4 6 8 1 0 1 20

1 0

2 0

3 0

4 0

5 0

6 0

7 0

8 0

9 0

100

Fig. 16 Respuesta para velocidad alta

Comprobado el buen resultado del controlador de velocidad, se obtendrán a partir deahora las funciones de transferencia que completen el modelo. En la fig. 17 se muestracomo ejemplo uno de los resultados anteriores filtrado.

» previoATENCION: tiempo de muestreo: 0.032Si no es este el tiempo empleado editar linea 7Nombre del archivo .dat con los datos: tg25_5

Numero datos: 400Vel. lin (cm/s): 25Vel. ang.: -5giro a la izquierdaDistancia 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 cálculo de las funciones de transferencia a partir de estos datos se puede hacercon las herramientas que Matlab nos facilita, arx, armax, etc. Sin embargo en este caso seha optado por utilizar un interfase gráfico de Matlab de la System Identification Toolbox,llamado The Graphical User Interface que implementa todas estas herramientas, su manejoes sencillo y permite comprobar como se ajustan las funciones de transferencia obtenidas alos datos reales. Como ejemplo de este proceso se describirá a continuación cómo obteneruna función 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 velocidadmedia que nos servirá para hallar la función de transferencia de velocidad lineal, vd ladiferencia de velocidad resultante de la funcion de transferencia de giro, y u_lin y u_angsus respectivas entradas.

Fig. 18 Entrada de datos para obtener la f. t.

Con Estimate->/Parametric models... se puede elegir un método para la obtención dela función, en este caso es ARX, y con 2 polos, 1 cero y delay=0/1, el resultado se puedever en la figura 20.

4. Modelado. 24

Fig. 19 Ventana de búsqueda paramétrica

Cuando los resultados son buenos, se arrastran con el ratón los iconos de las pruebasal icono señalado como To Workspace, y si miramos el contenido del workspace de Matlabencontraremos lo siguiente:

arx220 7x9 504 double arrayarx220_info 13x43 1118 char arrayarx221 7x9 504 double arrayarx221_info 13x43 1118 char array

donde las matrices arx220 y arx221 nos dan el resultado formato th. Para convertir esteformato a función 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 función detransferencia discreta buscada. El procedimiento será repetido para algunas pruebas más ypara el caso del giro. Comparando los resultados obtenidos se opta por los siguientesvalores que serán 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 lasimulación se asemeje al caso real. Por ello se fueron recogiendo datos de visión con eltrayecto que efectuaba el robot durante cada prueba. En caso de no ser aceptables sereajusta el modelo o directamente se efectúan más pruebas para hallar otras funciones detransferencia.

Fig. 21 The graphical user interface

4. Modelado. 26

4.5 Validación del modelo.

Como último paso queda validar el modelo obtenido en el apartado anterior, paraello haremos uso de los datos capturados por visión durante las pruebas. Mediante lasimulación del modelo aplicándole las mismas señales de control que se aplicaron en laspruebas, trataremos de comprobar si efectúa el mismo recorrido en la simulación y en elcaso real. Aunque las comprobaciones se efectúan con gran cantidad de pruebas, aquí sólose mostrarán algunas por cuestión de espacio.

Para el caso de bajas velocidades, de nuevo se presentan en la figura 22 resultadosde velocidad de cada una de las ruedas. Para estas pruebas, los recorridos efectuados sepueden ver en la figura 23.

0 2 4 6 8 10 120

5

10

15

20

25

30

0 2 4 6 8 10 120

2

4

6

8

10

12

14

16

18

20

22

Fig. 22 Respuesta para baja velocidad

El interés de presentar estos gráficos es demostrar la igualdad de giro en ambossentidos. Otra prueba interesante es comprobar su estabilidad a gran velocidad (fig. 24).

4. Modelado. 27

10 20 30 40 50 6020

30

40

50

60

70

Vl:25Ca:-5

10 20 30 40 50 6020

30

40

50

60

70

Vl:25Ca:5

10 20 30 40 5020

25

30

35

40

45

50

55

Vl:20Ca:-5

10 20 30 40 5030

35

40

45

50

55

60

65

Vl:20Ca:5

20 25 30 35 40 4520

25

30

35

40

45

50

Vl:15Ca:-5

10 20 30 40 5035

40

45

50

55

60

65

Vl:15Ca:5

Fig. 23 Trayectorias trazadas durante las pruebas

4. Modelado. 28

20 30 40 50 60 70 80 90 100 11020

30

40

50

60

70

80

90

100

110

Fig. 24 Trayectoria trazada a alta velocidad

Estos resultados indican un buen funcionamiento del controlador viéndolo desdefuera, como el observador que sólo aprecia su movimiento y respuesta sobre la mesa.

A continuación se sobrepondrán los resultados de la simulación y los datos reales(fig. 25 y 26)

10 15 20 25 30 35 40 45 50 5520

25

30

35

40

45

50

55

60

65

Fig. 25 Resultado de simulación y datos reales

4. Modelado. 29

15 20 25 30 35 40 45 5020

25

30

35

40

45

50

55

15 20 25 30 35 40 4535

40

45

50

55

60

65

Fig. 26 Resultado de simulación y datos reales

50 60 70 80 90 100 110 12030

40

50

60

70

80

90

100

Fig. 27 Resultado de simulación y datos reales a alta velocidad

4. Modelado. 30

Los resultados son bastante buenos, dando por aceptable el modelo. Naturalmentellegar a estos resultados no es tan sencillo como se ha descrito, ya que se han realizadomultitud de pruebas para llegar a un modelo válido. Los puntos marcados con un cuadradoes el punto final de la simulación.

A partir de este modelo discreto se obtiene el modelo en continuo y en discreto paratiempos mayores que serán utilizados por el controlador más adelante. Para la conversión seemplean los comandos de Matlab d2cm y c2dm. Por ejemplo el modelo continuo se muestraen la figura 28, los demás modelos son equivalentes al de la figura 13, tan sólo cambiandolos valores de las funciones de transferencia y los tiempos de muestreo.

Fig. 28 Modelo continuo del robot

5. Teoría de control predictivo. 31

5. Teoría de control predictivo.

Los controladores predictivos calculan los valores de las variables manipuladas encada periodo de muestreo de acuerdo con los valores de consigna deseados para lasvariables controladas y las restricciones y condiciones de operación del proceso. De estaforma, el control predictivo basado en modelos es una estrategia de control que calcula elcontrol basándose en un modelo explícito del proceso, que se usa para predecir sucomportamiento 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 unhorizonte de predicción N2. Los valores predichos de las salidas y(t+k/t), parak=1,..,N2, donde y(t+k/t) es el valor predicho de la salida en el instante t+k a partir delvalor en el instante actual t, depende de los valores hasta el instante t (valores pasadosde las entradas y las salidas) y de los valores futuros de las señales de control u(t+k/t).

2. Se define una trayectoria de referencia futura w(t+j) que describe como queremosconducir 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 seminimice una cierta función de coste de los errores de predicción, w(t+j)-y(t+j).Normalmente se incluye una estructuración en la ley de control, introduciendo unhorizonte de control Nu. Esta optimización puede incluir restricciones en los valoresfuturos de las variables del proceso, por ejemplo, la salida, la señal de control o lavariación de la señal de control.

L≤u(t+j)≤HL’≤∆u(t+j)≤H’L’’≤y(t+j)≤H’’

4. El primer elemento del vector de control óptimo u(t/t) se aplica a la planta. Todos losdemás elementos se olvidan y en el siguiente instante de muestreo se repite todo elprocedimento. Esto nos da una nueva ley de control u(t+1/t+1) que es diferente de la dela señal de control calculada anteriormente u(t+1/t). Est principio se llama estrategia dehorizonte móvil (fig. 29).

5. Teoría de control predictivo. 32

Fig. 29 Estrategia de horizonte móvil

Por tanto los elementos que caracterizan el control predictivo basado en modelos sonlos siguientes:

- La predicción basada en un modelo del proceso.- La generación de una trayectoria de referencia.- La estructuración de la ley de control.- El algoritmo de cálculo del mejor escenario de control.

Para cada uno de estos elementos hay varias opciones, según la elección que se hagatendremos los diferentes métodos de control predictivo basado en modelos. Vamos a irviendo ahora cada uno de estos elementos básicos.

5.1 Modelos de predicción.

Cualquier tipo de modelo a partir del cual se puedan calcular las predicciones sepuede utilizar para la estrategia de control predictivo, algunos de los más utilizados para elmodelo del proceso son:

1. Modelo respuesta impulsional.

La salida del proceso es:

∑ ∑+∞

=

=

=−≈−=1

1

1

)()()()()(j

n

jjj tuqHjtuhjtuhty

5. Teoría de control predictivo. 33

donde hj son las muestras de la respuesta impulsional unidad y q-1 es el operador retardounidad, con q-1u(t)=u(t-1) y H(q-1)=h1 q-1+h2 q-2+...+hn q-n. Hay un truncamiento despuésde un punto n, suponiendo que el sistema es estable. La mejor predicción usando estemodelo es:

∑=

− +=−+=+n

jj tktuqHtjktuhtkty

1

1 )/()()/()/(ˆ

Observar que u(t+k/t)=u(t+k) para k<0. Las ventajas de este modelo son:

- Requiere poca información a priori.- Puede describir fácilmente dinámicas poco usuales.- La predicción es simple y menos sensible a errores, al no existir términos recursivos.

Las desventajas:

- No se puede usar con sistemas inestables.- Contiene muchos parámetros n≈30..50

2. Modelo respuesta salto.

Suponiendo que la respuesta salto se ha asentado después de n períodos de muestreo.

∑=

−− −+=−∆+=n

jj tuqqGyjtugyty

1

1100 )()1)(()()(

donde gj son las muestras de la respuesta al salto unidad y ∆u(t)=u(t)-u(t-1), y0 es el efectoacumulativo de los incrementos de control después de n muestras, y que se supone que seha asentado a un valor constante. La predicción de la salida del proceso es:

∑=

−− +−=−+∆=+n

jj tktuqqGtjktugtkty

1

11 )/()1)(()/()/(ˆ

Este modelo tiene las mismas ventajas e inconvenientes que el modelo respuestaimpulsional.

3. Modelo de función de transferencia.

El proceso se describe por la ecuación en diferencias:

y(t)+a1y(t-1)+...+any(t-n)=b1u(t-1)+...+bmu(t-m)

oA(q-1)y(t)=B(q-1)u(t)

5. Teoría de control predictivo. 34

La predicción de la salida del proceso es:

)/()()(

)/(ˆ1

1

tktuqAqB

tkty +=+−

Las ventajas de este modelo son:

- Se puede utilizar para modelar sistemas inestables o poco amortiguados.- El número de parámetros es mínimo.

Las desventajas:

- Hay que presuponer el orden del sistema, n y m.- Su naturaleza recursiva hace más difícil la predicción.- Puede aumentar la sensibilidad frente a los errores.

Los modelos reales se pueden dividir en dos submodelos aditivos. Uno es el modelo delproceso, que relaciona la salida de la planta con todas las entradas medibles. El otro es unmodelo de perturbaciones que intenta describir la parte de la salida medible que no seexplica mediante el modelo del proceso. Dado que en este trabajo no se emplea un modelode perturbaciones, para más información se puede encontrar en la bibliografía aportada.

5.2 Trayectoria de referencia.

En los métodos de control predictivo basado en modelos se supone que la salida delproceso futura deseada es conocida (r(t+k/t), k=1,...,N2). Debido a la característica de‘mirar hacia delante’, el controlador tomará acciones correctoras de antemano (antes de quecambie el punto de consigna actual), con el fin de compensar los retardos y las constantesde tiempo inherentes al proceso. Si no se conoce la salida deseada futura se toma comoreferencia 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 todoel horizonte de predicción, de acuerdo con una dinámica 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 parámetro de sintonía que especifica la dinámica en lazo cerrado:

0≤α≤1;

⇒→⇒→

ntocontrol lerápidocontrol

1 0

αα

5. Teoría de control predictivo. 35

5.3 Estructuración de la ley de control.

La salida predicha depende de la entrada de control futura que se postula, yconceptualmente 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..N2-1yc es la respuesta controlada debida a la entrada de control futura.

Así podemos calcular la respuesta libre del sistema a partir de la ecuación de predicciónadecuada. 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)= gk∆u(t|t)+gk-1∆u(t+1|t)+...+g1∆u(t+k-1|t)

Los parámetros gj son los coeficientes de la respuesta a salto unidad.

Destacar las siguientes relaciones importantes entre este modelo y los de respuestaimpulsional y función de transferencia:

G(q-1)=g1q-1+g2q-2+...

)1)(()(

1)(

)(11

1

1

11

−−

−−

−=

−=

qqAqB

qqH

qG

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=E0-GU

+−+

+−++−+

=

)|()|(:

)|2()|2()|1()|1(

22 tNtytNtw

ttyttwttyttw

o

f

f

f

E

5. Teoría de control predictivo. 36

=

− 1..g:..::0..120..01

12N2 gg

ggg

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á unafunción de las N2 (de 10 a 30) variables independientes en U. Está claro que resolver esteproblema de optimización para la mejor U requiere un considerable número de cálculos.

Este es uno de los motivos para poner algún tipo de estructuración en el escenariode control U. Estructuración significa reducir a priori el número de grados de libertadmediante alguna relación entre los posibles valores de control futuro.

Con esto también se mejora la robustez y el comportamiento general del sistema decontrol evitando señales de control de alta frecuencia que generalmente no son deseadas enlos sistemas de control reales.

Una de las principales técnicas para estructurar el control es el horizonte de control. Si lareferencia es constante suponemos que se necesita una entrada de control asintóticamenteconstante. Entonces es razonable especificar un horizonte de control Nu (donde Nu≤N2)después del cual la señal de control permanece constante, ∆u(t+k|t)=0 para k≥Un. Esto nosda un vector de control de dimensión Nu en vez de N2 :

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 dehorizonte móvil. Computacionalmente estamos omitiendo las últimas N2-Nu columnas dela matriz G. Esto reduce enormemente la dimensión:

≈≈

3..130..102

NuN

Un caso límite es cuando Nu=1 o suponer que la señal de control futura permanececonstante desde el instante actual. Sólo se tiene que calcular ∆u(t|t) y nos da un problemaescalar.

5. Teoría de control predictivo. 37

5.4 Algoritmo de cálculo de la señal de control.

La distancia entre la trayectoria de referencia y la predicción de la salida del procesopuede minimizarse con la siguiente función objetivo:

[ ]22

1

)|(ˆ)|(∑=

+−+N

NkU

tktytktwmin

El parámetro N1 es un parámetro de diseño que determina junto con N2 el horizontede coincidencia, es decir, se quiere que la predicción de la salida del proceso siga a latrayectoria en el intervalo de tiempo {t+N1 ... t+N2} donde t es el momento actual.

El efecto de N1 es claro, con un N1 grande no estamos interesados en los errores decontrol en el futuro cercano, esto generalmente da un control más suave. En el caso de unproceso que tenga un tiempo muerto, no tiene sentido elegir N1 menor que dicho tiempo. Siel proceso es de fase no mínima, el parámetro N1 permite saltar sobre la respuesta inversainicial.

Otra función objetivo es:

[ ]22

1

)|(ˆ)|(∑=

+−+N

Nkk

Utktytktwmin α

αk=[α1 α2 ... αN2]T es un vector de coeficientes de peso que permite algunasalternativas:

• α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 λ2 λ1]T corresponde a una ponderación exponencial para elhorizonte de predicción.

Una ventaja de usar estos criterios es que la solución óptima para U se puede obteneranalíticamente. Como ejemplo, si cogemos la primera función objetivo con N1=1, con lanotación vectorial ésta se puede escribir como:

[ ] [ ]GUEGUEminEEmin T

U

T

U−−= 00

la solución a este problema de mínimos cuadrados es:

[ ] 01

EGGGU TT −=

5. Teoría de control predictivo. 38

5.5 Técnica Dynamic Matrix Control (DMC).

Por último comentar una de las técnicas (DMC) de control predictivo, está basadaen un modelo de respuesta a escalón.

∑∞

=

+−∆=1

)()()(j

j tnjtugty

La función de coste es:

[ ] ∑∑−

==

+∆++−+=1

0

222

1

)|()|(ˆ)|(),(Nu

k

N

Nk

tktutktytktwtuJ λ

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 (escalón) 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 escalón. El resultado constituye los coeficientes del modelo del sistema.

A la hora de escribir las ecuaciones de predicción, conviene separar aquellos componentesde las predicciones que dependen de los k futuros incrementos de control del resto.

∑∞

=

++−+∆=+1

)|()|()|(j

j tktntjktugtkty

)|()|()|(1 1

tktntjktugtjktugk

j kjjj ++−+∆+−+∆= ∑ ∑

=

+=

Suponiendo un modelo de perturbaciones constante

∑∞

=

−∆−==+1

)()()()|(j

j jtugtytntktn

y sustituyendo, la expresión anterior se puede reescribir de una forma más compacta,

kk ptktuqGtkty ++∆=+ − )|()()|( 1

donde

kkk qgqgqgqG −−−− +++= ...)( 2

21

11

5. Teoría de control predictivo. 39

∑∑∞

=

+=

−∆−−+∆+=11

)|()|()(j

jkj

jk tjtugtjktugtyp

∑∞

=+ −∆−+=

1

)()()(j

jjk jtuggty

pk es la respuesta libre del sistema.

Si el proceso es asintóticamente estable, los coeficientes g tienden a un valorconstante, y se puede hacer la simplificación

∑=

+ −∆−+=N

jjjkk jtuggtyp

1

)()()(

dado que gk+j-gj≈0 para j>N y N1≤k≤N2

Si el proceso no es asintóticamente estable, N no existe y no se puede calcular larespuesta libre del sistema.

El predictor, escrito de forma matricial, tiene la forma

y(t)=G∆u(t)+p(t)

Donde (suponiendo N1=1)

y(t)=[y(t+1|t) ... y(t+N2|t)]T

∆u(t)=[ ∆u(t) ... ∆u(t+Nu-1)]T

=

− 1..g:..::0..120..01

12N2 gg

ggg

N

G

p(t)=[p1, ..., pN2]T

Para la obtención de la señal de control se procede de la forma habitual, definiendolos vectores

E=[e(t+1|t) ... e(t+N2|t)]T siendo e(t+k|t)=w(t+k|t)-y(t+k)E0=w(t)-p(t)

Y por tanto

E=E0-GU

5. Teoría de control predictivo. 40

Con esta notación matricial, la función de coste se puede escribir en forma matricial

J=ETE+λ∆uT∆u=∆uT[GTG+λI] ∆u-2ET

0G∆u+E0TE0

La minimización de esta función nos lleva a la expresión

∆u=[GTG+λI]-1GTE0

5.6 Ventajas e inconvenientes de los métodos MBPC.

Las ventajas del control predictivo basado en modelos respecto a otros métodos decontrol son los siguientes:

• Está enfocado a resolver problemas de control de dinámica difícil (retardos, fase nomínima, sistemas inestables).

• Lleva incorporado una compensación automática de los retardos.• Permite incorporar fácilmente correcciones por adelanto (feedforward).• Permite el manejo de restricciones en la variables.• Es conceptualmente simple.• Su carácter predictivo le adecua muy bien para aplicaciones en las que se conoce deantemano la referencia.

Y los inconvenientes:

• Es computacionalmente complejo.• El MBPC necesita un modelo adecuado del proceso a controlar. Este es el inconvenientemás importante de las técnicas de control predictivo, ya que obliga a realizar unaidentificación o modelado previos. Además la bondad de las secuencias de control queobtengamos estarán relacionadas con la diferencia entre el sistema real y el modelo de laplanta.

6. Implementación de un controlador predictivo con Matlab. 41

6. Implementación de un controlador predictivo con Matlab.

El control predictivo ha sido implementado con Matlab debido al sencillo manejo delas matrices, las facilidades para la simulación del modelo y planificación de trayectorias encualquier orientación y una gran experiencia en este entorno. Como inconvenientes tenía lainteracción de datos con el exterior, tanto de entrada como de salida. Sin embargo estosproblemas se han solucionado (ver apéndice) y finalmente se ha llevado a cabo el controlcon Matlab.

El diagrama de flujo del controlador se puede ver en la figura siguiente, y acontinuación se detallarán con más detalle cada uno de estos pasos.

Inicio

Cálculo detrayectoria

SimulaciónModelo inverso

AlgoritmoCMPC

Enviar señalesde control

Incrementarseñales de control

ErrorSI NO

6. Implementación de un controlador predictivo con Matlab. 42

INICIO

- Leer posición inicial del robot (x,y) y orientación. posrobot.m- Introducir nodos que definan una trayectoria- Obtención de parámetros modelo step- Inicialización de parámetros algoritmo cmpc.m

CÁLCULO DE TRAYECTORIA

- A partir de los nodos principales:- Calcular la distancia aproximada total del trayecto- Calcular número de puntos que definan la trayectoria- Obtener una trayectoria (cscvn.m y fnplt2.m)- Borrar puntos cercanos debido a la poca precisión impuesta por

un número máximo de puntos (mini.m).

Si viene de la detección de error:- Repite los pasos anteriores.- Simulación del modelo para determinar la posición que se ha

desplazado durante el tiempo de cálculo.

SIMULACIÓN MODELO INVERSO

- Entrar la trayectoria anterior en el modelo inverso para obtenerla trayectoria de referencia del control predictivo (salidasfunciones de transferencia)

ALGORITMO CMPC

- Ejecución de la función cmpc.m de la MPC Toolbox. Estaresuelve el problema de optimización mediante QP conrestricciones. Devuelve las salidas de las funciones detransferencia y las señales de control.

6. Implementación de un controlador predictivo con Matlab. 43

El programa que sigue este esquema se puede ver en el apéndice con máscomentarios sobre línea que hagan fácil 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 período de muestreo. El tiempo de muestreo empleado es 0.8 segundos,demasiado elevado para un sistema que evoluciona tan rápidamente como este. Sinembargo viene impuesto en parte al excesivo tiempo de cálculo del controlador, comoveremos más adelante. Este problema hace que el control sea difícil, ya que en tan elevadotiempo el robot puede evolucionar dando un error importante. Para tratar de reducir el errorse restringe el controlador a unos valores de velocidad bajos, del orden de 20cm/s comomáximo.

Como resultados obtenidos de la implementación de este controlador, se mostrarán acontinuación diversos experimentos realizados.

INCREMENTAR SEÑALES DE CONTROL

- Si no se ha producido error se incrementa el vector de la señalde control para enviar el siguiente calculado anteriormente.

ENVIAR SEÑALES DE CONTROL

- Envía 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 posición.- Registra datos de interés.

ERROR

- Cada período de muestreo vuelve a capturar los datos de visióny calcula el error para determinar si el robot se aparta de latrayectoria.

- Elimina si es necesario los nodos principales innecesariosdebido al avance del robot

- Si detecta que ha llegado detiene el control.

6. Implementación de un controlador predictivo con Matlab. 44

Como primer caso se presenta una trayectoria recta, Se puede ver como la ejecutaperfectamente. Para interpretar el gráfico se tendrá en cuenta que:

- Los círculos son la posición del robot dada por visión en cada instante de muestreo.- La trayectoria inicial obtenida por las funciones cscvn.m y fnplt2.m viene marcada por

una línea discontinua con pequeños puntos.- La posición inicial del robot viene señalada por un cuadrado y junto a él un triángulo

que delata su orientación.- Los nodos base para la generación de la trayectoria se señalan con un cuadrado.- El gráfico muestra las dimensiones reales del campo en centímetros.

Las señales de control para este experimento son

2 4 6 8

0

2

4

6

8

10

12

14

16

18

20

Senyalsdecontrol

Vel. lineal

2 4 6 8-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1Cons. gir

1 2 3 4 5 6 7 80

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 muestranlos tiempos empleados para el cálculo durante cada período, se observa que pueden llegar asobrepasar los 0.8s, lo cual perjudica el control, pero elevar el tiempo supone poder llegar a

6. Implementación de un controlador predictivo con Matlab. 45

un error considerable. Los tiempos que están sobre los 0.5s suponen que no ha habido errory no se ha tenido que calcular de nuevo el algoritmo de control.

En la siguiente prueba se aprecia otra trayectoria con linea continua y círculos. Estaes la trayectoria que proporciona la simulación del modelo entrando el primer vector deseñales de control obtenidos. En este caso la trayectoria trazada por el robot hace una ligeras siendo muy buena.

Una trayectoria parecida girando en sentido contrario es la siguiente.

6. Implementación de un controlador predictivo con Matlab. 46

Otra trayectoria describiendo un gran giro.

La siguiente trayectoria está marcada para comprobar cómo reacciona el robot altener que ir a un punto sin estar orientado previamente. La trayectoria que seguiría elmodelo 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 lasiguiente. Hacer notar que el trayecto inicial teórico tampoco es bueno, esto se debe a lanaturaleza de las funciones utilizadas, pero como ventaja suponen poder trazar trayectoriasen cualquier sentido y de forma rápida. Además otra posible implementación de cálculo detrayectorias como un spline de tercer grado resultaría menos eficaz (se ha probado sinéxito), ya que su naturaleza hace que los giros sean muy grandes y a veces indeseables. Laabundancia de puntos al final supone que el error es muy pequeño pero insuficiente paradetener por completo el robot.

6. Implementación 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 suficientemargen de maniobra.

Esto se observa en la siguiente prueba, donde el robot trazó una trayectoriaexcelente y al final se desvió de su punto final.

6. Implementación de un controlador predictivo con Matlab. 48

Por último (las pruebas realizadas son abundantes), se mostrarán dos de las pruebasmás difíciles para el controlador con sus respectivas señales de control.

10 20 30

0

5

10

15

20

25

Senyalsdecontrol

Vel. lineal

10 20 30

-6

-4

-2

0

2

4

6

8

Cons. gir

0 5 10 15 20 250

0 .1

0 .2

0 .3

0 .4

0 .5

0 .6

0 .7

0 .8

0 .9

1

6. Implementación de un controlador predictivo con Matlab. 49

5 10 15 20 25 30

0

5

10

15

20

25

Senyalsdecontrol

Vel. lineal

5 10 15 20 25 30-6

-4

-2

0

2

4

6

Cons. gir

0 5 10 15 20 25 300

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1Tiempos de cálculo del controlador (s)

50

7. Conclusiones.

De los experimentos realizados se puede observar que el control predictivo es capazde controlar un sistema complejo como el microrobot autónomo. Aunque tal como se haindicado los puntos débiles de este controlador son el gran tiempo de cálculo empleado, locual lleva a manejar unas velocidades bajas que son del todo inaceptables para usarlo encompetición. Otro de los puntos negativos es la necesidad de obtener un modelo previo,trabajo que llega a ser costoso, además la mecánica del robot hace que su comportamientosea desigual e incluso cambiante si alguna de sus ruedas patina o acaba cayendo, haciendomás difícil el modelado.

Otro de los puntos débiles es el sistema de visión, lento y que pierde al robot enocasiones, dando coordenadas erróneas. En el proceso de mejora contínua se estádesarrollando actualmente con la intención de usarlo en el próximo mes de agosto en lacompetición ROBOCUP, un nuevo sistema de visión con el diseño de una placa que iráconectada al ordenador y será quien proveerá los datos. El sistema de visión ademássuministrará los datos mediante sockets, lo cual evita el problema sufrido hasta ahora deacceso al disco duro en busca de los datos.

Este trabajo ha tenido como parte más dura el modelado, que engloba el diseño deun controlador PI interno, y cuyo trabajo de implementación delató falta de recursos en elmicrocontrolador empleado. Este hecho apoya aún más la idea y próxima puesta en marchade la construcción de un nuevo prototipo de robot, con una placa base que montará unPentium y un mayor tamaño que permita así mismo una mecánica más precisa, como puedeser el centrado de las ruedas.

Como resultado final se ha proporcionado un conocimiento de un controlador cadavez más utilizado, se ha comprobado que requiere grandes recursos y su implementaciónpara aumentar sus prestaciones requiriría mayor potencia en el ordenador central (host).Aún así se deduce que este controlador no es el más adecuado para este proceso. Tambiénha sido aprovechado este trabajo como proveedor de un modelo del sistema con el que sepueden simular nuevas técnicas de control, hasta la fecha ya ha dado sus frutosconsiguiendo buenos resultados en trabajos de control paralelos. Y por último añadir elgran aprovechamiento del controlador PI interno, que actualmente está siendo utilizado entodos los robots.

93

9. Bibliografía.

J. A. González Vázquez. Introducción a los microcontroladores. McGraw-Hill

J.M. Martín Sánchez, J. Rodellar. Adaptive predictive control. From the concepts to plnatoptimization. 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

INDICE

1. INTRODUCCIÓN. ........................................................................................................................................................1

2. OBJETIVOS....................................................................................................................................................................1

3. DESCRIPCIÓN DEL ROBOT...................................................................................................................................2

4. MODELADO..................................................................................................................................................................6

4.1 MONITOR DE PRUEBAS. ............................................................................................................................................. 84.2 OBTENCIÓN DE MUESTRAS...................................................................................................................................... 104.3 CONTROL DE VELOCIDAD A BAJO NIVEL............................................................................................................... 11

4.3.1 Implementación de un controlador PI discreto..........................................................................................134.3.2. Diversificación del controlador...................................................................................................................18

4.4 CREACIÓN DEL MODELO ......................................................................................................................................... 194.5 VALIDACIÓN DEL MODELO..................................................................................................................................... 26

5. TEORÍA DE CONTROL PREDICTIVO.............................................................................................................31

5.1 MODELOS DE PREDICCIÓN...................................................................................................................................... 325.2 TRAYECTORIA DE REFERENCIA.............................................................................................................................. 345.3 ESTRUCTURACIÓN DE LA LEY DE CONTROL......................................................................................................... 355.4 ALGORITMO DE CÁLCULO DE LA SEÑAL DE CONTROL........................................................................................ 375.5 TÉCNICA DYNAMIC MATRIX CONTROL (DMC).................................................................................................. 385.6 VENTAJAS E INCONVENIENTES DE LOS MÉTODOS MBPC................................................................................... 40

6. IMPLEMENTACIÓN DE UN CONTROLADOR PREDICTIVO CON MATLAB................................41

7. CONCLUSIONES........................................................................................................................................................50

8. APÉNDICES.................................................................................................................................................................51

A. INTERACCIÓN CON EL EXTERIOR DESDE MATLAB................................................................................................ 51B.1 LISTADO DE LOS PROGRAMAS. LABWINDOWS.................................................................................................. 53

PRIN.C.........................................................................................................................................................................53ADQ.C .........................................................................................................................................................................55MODEL.C ...................................................................................................................................................................57

B.2 LISTADO DE LOS PROGRAMAS. PROGRAMAS DE CONTROL DE VELOCIDAD EN C........................................... 67TDIVSR7.C .................................................................................................................................................................67BROKVSR7.C .............................................................................................................................................................72BROGI6.C ...................................................................................................................................................................77

B.3 LISTADO DE LOS PROGRAMAS. MATLAB ............................................................................................................. 82ICONTROL9.M..........................................................................................................................................................82SCONTROL8.M .........................................................................................................................................................84VISDATS.M.................................................................................................................................................................86PREVIO.M ..................................................................................................................................................................87PARAMPI.M...............................................................................................................................................................89

B.4 ARCHIVOS EMPLEADOS PARA LA TRANSMISIÓN POR RADIO CON MATLAB.................................................... 90EMISOR.C...................................................................................................................................................................90EMITE.C .....................................................................................................................................................................91

9. BIBLIOGRAFÍA..........................................................................................................................................................93