Práctica 3: Control de velocidad





Problema:

¿Cómo hacer que el robot pueda moverse a diferentes velocidades? ¿Cómo lograr que la velocidad sea independiente de las características del robot (peso, tipo de motores, radio de la ruedas, etc...)?. Necesitamos añadir CONTROL.

Hasta ahora, el robot lo hemos controlado de manera “binaria”. Los motores sólo podían estar en dos estados: encendidos (a máxima velocidad) y apagados (velocidad 0).

A parte de la “brusquedad” de movimientos, el consumo instantáneo de corriente es muy elevado (para que ambos motores pasen de velocidad 0 a la máxima, se requiere mucha energía instantánea). Esto se podría evitar haciendo que el robot acelerase poco a poco.

El objetivo de esta práctica es realizar un control de velocidad de tipo PI (Proporcional-Integral) para solucionar estos problemas.

Enunciado:

Realizar un controlador de velocidad, de tipo PI, para cada motor, que permita al robot avanzar en línea recta a diferentes velocidades, describir arcos y acelerar/desacelerar de manera controlada.

El controlador se programará en el PC. En el microcontrolador 6808 se ejecutará un programa servidor (similar al servidor genérico empleado en la práctica 2, pero modificado) que ofrecerá dos servicios nuevos:

  1. Servicio TMA: Tensión media aplicada a los motores. Los motores responden al valor medio de la tensión aplicada. Cuanto mayor sea este valor, mayor la velocidad. Utilizando la técnica del PWM (Pulse Width Modulation o modulación por anchura de pulso), podemos generar señales digitales con diferentes valores medios de tensión. Aplicadas a un motor, permite variar su velocidad. Este servicio permite determinar el valor medio de la tensión aplicada. Las unidades empleadas para especificar la senal PWM podrán ser las que el alumno considere más adecuadas (esto dependerá de cómo lo implemente cada uno).

  2. Servicio LT: Lectura de Transiciones. Devuelve el número de transiciones que se han producido en el encoder (paso de blanco a negro o de negro a blanco) desde la última petición. Este servicio nos da, por tanto, el ángulo que se ha movido la rueda desde la última vez (medido en número de transiciones, y sabemos que cada vez que ocurre una transición, la rueda a girado un determinado ángulo, que depende de la resolución de nuestro encoder). Con este dato podemos obtener la velocidad como el cociente entre el número de transiciones y el tiempo transcurrido.

Tareas a realizar:

IMPORTANTE:

Esta práctica tiene mucho de Diseño. Una de las tareas será la de definir cómo se implementan los servicios, qué tipos de tramas se van a emplear, etc. La solución no es única: puede haber tantas como alumnos. Por eso es importante poner en la memoria el estudio realizado y justificar qué solucion se ha adoptado.


Juan González Gómez.

Imagen de portada. (C) Juan Manuel Barrio Olmos, Eduardo Corral Rivas, Francisco García Tormo. Abril-2004

Última modificación: 21-abril-2004