Tabla de contenido:

Enseñanza del control PID con robots Lego: 14 pasos
Enseñanza del control PID con robots Lego: 14 pasos

Video: Enseñanza del control PID con robots Lego: 14 pasos

Video: Enseñanza del control PID con robots Lego: 14 pasos
Video: 🔋 El MEJOR kit que combina MICROBIT y LEGO #shorts | ValPat 2024, Mes de julio
Anonim
Enseñanza del control PID con robots Lego
Enseñanza del control PID con robots Lego

Muchos jóvenes entusiastas de los robots están interesados en temas de control más avanzados, pero pueden verse obstaculizados por el cálculo que a menudo se requiere para analizar sistemas de circuito cerrado. Hay recursos maravillosos disponibles en línea que simplifican la construcción de un "Controlador diferencial integral proporcional" (Controlador PID), y una gran descripción está aquí:

Sin embargo, estos pueden ser difíciles de seguir y podrían no ser adecuados para un aula de 20 estudiantes aproximadamente.

Este Instructable paso a paso muestra cómo enseñar con éxito en una sala llena de estudiantes utilizando el sistema de robot Lego, varios robots (de 5 a 10 de ellos), un número igual de estaciones de trabajo de computadora que ejecutan NXT 2.0 y una pista de siete pies de color negro. cinta aislante en el suelo.

ADEMÁS: Gracias a J. Sluka, que escribió el enlace anterior, al Dr. Bruce Linnell, que creó algunos de los primeros laboratorios de Lego a nivel de la Universidad ECPI, y al Dr. Reza Jafari, que proporcionó los objetivos de aprendizaje de PID Control que mapean ideas para el EET220 y Trabajo de curso de Capstone.

Paso 1: preparación de laboratorio antes de la llegada de los estudiantes

Preparación de laboratorio antes de la llegada de los estudiantes
Preparación de laboratorio antes de la llegada de los estudiantes

Hágales saber a los estudiantes sobre su arduo trabajo;-)

¡Los instructores y asistentes de enseñanza han estado MUY ocupados preparándose para que usted haga este laboratorio! El robot se ha cargado y ensamblado para este laboratorio. Si es necesario ensamblar, esto puede llevar hasta 90 minutos para uno o más robots. Se necesita aún más tiempo para cargar las baterías o acondicionarlas con ciclos de carga / descarga. Para obtener instrucciones detalladas sobre cómo construir el robot que usaremos hoy, consulte el kit educativo NXT 2.0 o 2.1, la Guía de construcción de robots "sigue una línea". Sin embargo, usaremos una programación más compleja … La cinta aislante negra sobre linóleo de color claro hace una gran pista. Este mide 3 'x 7' con curvas semicirculares.

Paso 2: familiarícese con el robot

Familiarízate con el robot
Familiarízate con el robot

Primero, se familiarizará con el menú del robot, así como con algunas de las partes de este robot en particular. También aprenderá sobre la tecnología de sensores de estilo industrial que utiliza el robot, incluidos los diodos emisores de luz, los sensores de luz, los motores paso a paso y los sensores de posición de rotación. Asegúrese de completar toda la información solicitada (generalmente espacios en blanco subrayados _).

1. Desconecte el robot del cargador y / o del puerto USB de su PC. Utilice el botón naranja para encender el robot. Los botones naranja, izquierdo y derecho, y el botón rectangular gris "atrás" permiten la navegación por el menú. Navegue hasta el menú "Archivos de software" y desplácese por los archivos de software disponibles en el robot. Enumere los nombres de cada archivo de software, exactamente cómo está escrito, incluidas las mayúsculas y los espacios:

_

Paso 3: calibre el sensor de luz

Calibrar el sensor de luz
Calibrar el sensor de luz

2 Examine el sensor de luz y la información de calibración. Vuelve al menú principal y selecciona "Ver". Seleccione la opción "Luz reflejada" y el puerto (debe ser "Puerto 3") que hace que la luz se encienda y se muestre un número en la pantalla. Asegúrese de que todo funcione y registre alguna información de calibración.

una. Lectura máxima usando una hoja de papel blanca: Número: _ Describa la distancia aproximada del papel: _

B. Lectura máxima en el piso de linóleo de color claro: _

C. Lectura mínima al señalar el centro de la cinta aislante negra: _

Paso 4: Pruebe la calibración del motor

Prueba de calibración del motor
Prueba de calibración del motor

3 Examine los motores de las ruedas (izquierdo y derecho), así como la información de calibración. Regrese al menú principal y seleccione “Rotaciones del motor”. Seleccione el puerto (debe ser “Puerto B” o “Puerto C” para los dos motores). Vea si puede verificar la calibración de esta lectura girando cada motor un número fijo de rotaciones mientras mira la lectura. Hará la misma prueba de calibración para ambos motores usando la pantalla de calibración “Ver” à “Grados del motor”.

Motor en el puerto B

  • Número de veces que giró la rueda _
  • Valor de visualización "Rotaciones del motor" _
  • La distancia en grados se giró la rueda_
  • Valor de visualización de "grados del motor" _

Motor en el puerto C

  • Número de veces que giró la rueda _
  • Valor de visualización "Rotaciones del motor" _
  • La distancia en grados se giró la rueda_
  • Valor de visualización de "grados del motor" _

¿Coincidieron los valores de visualización con sus expectativas? Por favor explique. _

Paso 5: Ejecute el controlador de encendido y apagado proporcionado

Ejecute el controlador de encendido y apagado proporcionado
Ejecute el controlador de encendido y apagado proporcionado

Un controlador de "encendido-apagado" (a veces llamado "Bang-Bang") tiene sólo dos opciones, encendido y apagado. Es similar al control del termostato en su hogar. Cuando se ajusta a una temperatura elegida, el termostato calentará la casa si hace demasiado frío y enfriará la casa si hace demasiado calor. La temperatura elegida se denomina "Punto de ajuste" y la diferencia entre la temperatura actual de la casa y el Punto de ajuste se llama el "Error". Entonces, podría decir, si el error es positivo, encienda la CA; de lo contrario, encienda la calefacción.

En nuestro caso, el robot girará hacia la izquierda o hacia la derecha, dependiendo de si el Set-Point del sensor de luz tiene un error positivo o negativo (demasiado en el piso blanco o demasiado en la cinta negra).

Notará que su robot ya puede estar cargado con varios programas (o puede usar el archivo adjunto "01 line.rbt" incrustado aquí) almacenado en él con nombres como "1 línea" y "2 línea" y allí también puede ser una letra adicional después del número del programa, como "línea 3b". Deberá ejecutar el programa con el número “1” en su nombre y luego colocar el robot en la pista de la cinta, con el senor en la línea negra. Trate de mantenerse alejado de otros robots que ya están en la pista para que pueda cronometrar su robot sin la interrupción de chocar con otros robots.

4 Mide las siguientes contrarreloj:

una. Tiempo para completar un lado recto de la pista: _

B. Describa el movimiento del robot de seguimiento recto: _

C. Tiempo para completar una curva de la pista: _

D. Describa el movimiento del robot de seguimiento curvo: _

mi. Es hora de dar una vuelta completa a la pista una vez: _

Paso 6: Abra el software del controlador de encendido y apagado "01 Line"

Abre el
Abre el
Abre el
Abre el
Abre el
Abre el

Abrirá el software "LEGO MINDSTORMS NXT 2.0" (no el software Edu 2.1) y cargará el programa apropiado llamado "01 line.rbt" y examinará y modificará el software, siguiendo las instrucciones a continuación:

Abra el software “LEGO MINDSTORMS NXT 2.0” (no el software Edu 2.1). Su instructor le dirá dónde están almacenados los archivos en su computadora, y desde esa ubicación abrirá el programa "1 línea". Simplemente seleccione "Archivo", luego "Abrir" y elija el programa de "1 línea" para abrir.

Una vez que el programa está abierto, puede usar el ícono de la "mano" para mover toda la imagen de la pantalla del programa, y puede usar el ícono de la "flecha" para hacer clic en objetos individuales para ver cómo funcionan (y también hacer cambios).

Paso 7: Comprensión del software del controlador de encendido y apagado "01 Line"

Entendiendo el
Entendiendo el

El programa "1 línea" utiliza un método de control "On-Off". En este caso, las opciones son "Girar a la izquierda" o "Girar a la derecha". El gráfico contiene una descripción de los elementos del programa:

Paso 8: Edición del software del controlador de encendido y apagado "01 Line"

Editando el
Editando el

Cambie el punto de ajuste y compare los resultados.

Descubrió algunos valores del mundo real del medidor de luz en el paso 2 anterior. Grabaste valores en las partes byc, números para los valores mínimo y máximo que el robot vería al ejecutar la pista.

5 Calcule un BUEN valor de punto de ajuste (el promedio del mínimo y máximo): _

6 Elija un valor de pinta de set MALO (un número muy cercano al mínimo o al máximo): _

Cambie el punto de ajuste a uno de estos valores usando el ícono de flecha para hacer clic en el cuadro de cálculo de error y cambiando el número que se está restando (vea la imagen a continuación). Ahora conecte el robot a la PC usando el cable USB, asegúrese de que el robot esté encendido y descargue la nueva versión del programa "1 línea" al robot. Verá cuánto tiempo tarda el robot en dar la vuelta a la pista en el sentido de las agujas del reloj, una vez con el punto de ajuste BUENO y una vez con el punto de ajuste MALO.

7 Pruebas contrarreloj completas con valores de punto de ajuste BUENOS y MALOS

una. Tiempo para dar una vuelta completa a la pista una vez (BUEN punto de ajuste): _

B. Tiempo para dar una vuelta completa a la pista una vez (BAD Set-Point): _

¿Tus observaciones / conclusiones? _

Paso 9: Comprensión de la activación y desactivación de la "línea 02" con el software del controlador de zona muerta

Entendiendo el
Entendiendo el

Si el aire acondicionado y la calefacción en su hogar se encienden y apagan todo el día, definitivamente podría destruir su sistema HVAC (o al menos acortar su vida útil). La mayoría de los termostatos están hechos con una "zona muerta" incorporada. Por ejemplo, si su punto de ajuste es de 70 grados Fahrenheit, es posible que el termostato no encienda el aire acondicionado hasta que alcance los 72 grados, ni encienda la calefacción hasta que la temperatura baje a 68 grados. Si la zona muerta se ensancha demasiado, la casa puede volverse incómoda.

En nuestro caso, usaremos el programa 02 line para agregar una zona muerta, durante la cual el robot simplemente conducirá en línea recta.

Ahora examine el archivo de software “línea 02” como se describe en el gráfico y como se encuentra en el archivo adjunto.

Este archivo de software programa el robot para que siga la línea mediante el control de encendido y apagado con un espacio diferencial. Esto también se conoce como Banda muerta y significa que el robot girará hacia la izquierda o hacia la derecha dependiendo del error, pero si el error es pequeño, el robot simplemente irá derecho.

El programa "Línea 02" calcula lo anterior primero restando el punto de ajuste de la Medición de luz y luego haciendo las comparaciones como se indicó anteriormente. Examine el programa en la PC y registre los valores que ve.

¿Cuál es el valor actual (original) de los programas de “2 líneas” del punto de ajuste? _

¿Cuál es el valor actual (original) de los programas de "2 líneas" Error positivo "grande"? _

¿Cuál es el valor actual (original) de los programas de “2 líneas” Error negativo “grande”? _

¿Qué rango de error de banda muerta hará que el robot vaya recto? DESDE _ HASTA _

Ejecute tres (3) contrarreloj con valores diferentes para el error "Grande" anterior. La configuración actual de "2 líneas", así como otras dos configuraciones que calculará. Ya ha elegido un BUEN punto de ajuste para su robot. Ahora elegirá dos rangos de banda muerta diferentes y registrará el tiempo que le toma al robot hacer una vuelta en el sentido de las agujas del reloj:

Configuración original para 02 línea _

Banda muerta de +4 a -4 _

Banda muerta de +12 a -12 _

Paso 10: Comprensión del software del controlador proporcional "03 Line"

Entendiendo el
Entendiendo el

Con el control proporcional, no solo encendemos o apagamos la calefacción, es posible que tengamos varias configuraciones de cuánto encender el horno (como el tamaño de las llamas en una estufa). En el caso del robot, no solo tenemos tres configuraciones de motor (izquierda, derecha y recta). En su lugar, podemos controlar la velocidad de las ruedas izquierda y derecha para obtener una amplia variedad de velocidades de giro. Cuanto mayor sea el error, más rápido queremos volver a la línea.

Veamos el control proporcional con el programa "03 línea"

El programa para la "línea 03" es más complicado porque no solo configura el método de control "Proporcional", sino que también contiene todo el software para hacer controles Proporcional-Integral, Proporcional-Diferencial y Proporcional-Integral-Diferencial (PID).. Cuando cargue el software, probablemente será demasiado grande para caber en la pantalla de una vez, pero en realidad tiene tres partes, como se muestra en el gráfico adjunto.

A - Las matemáticas para calcular el error y el “cálculo” para encontrar la integral y la derivada del error a lo largo del tiempo.

B - Las matemáticas para calcular la velocidad del motor izquierdo en función de la configuración de control PID de Kp, Ki y Kd

C - Las matemáticas para probar los límites de velocidad del motor y enviar las velocidades correctas del motor a los motores izquierdo y derecho.

Los tres ejecutan sus propios bucles infinitos (después de la inicialización) y puede navegar usando el icono de la "mano", pero vuelva al icono de la "flecha" para examinar el contenido del cuadro y cambiar la configuración.

Paso 11: Edición del programa de línea 03 (control proporcional)

Edición del programa de línea 03 (control proporcional)
Edición del programa de línea 03 (control proporcional)

En la sección central (sección B en la descripción anterior), notará que en el programa “03 line”, las configuraciones de Ki y Kd son ambas 0.

Dejémoslos así. Solo cambiaremos el valor de Kp, la parte proporcional del controlador.

Kp decide con qué suavidad cambia la velocidad del robot a medida que se aleja de la línea. Si Kp es demasiado grande, el movimiento será extremadamente entrecortado (similar al controlador On-Off). Si Kp es demasiado pequeño, el robot hará las correcciones con demasiada lentitud y se alejará de la línea, especialmente en las curvas. ¡Incluso puede llegar a perder la línea por completo!

13 ¿Qué Set-Point está usando el programa “03 line”? (restado después de leer el ajuste de la luz en el bucle A) _

14 ¿Cuál es el valor de Kp en el programa actual de “03 líneas”? _

Contrarreloj para controlador proporcional (programa de "3 líneas")

Utilizará la configuración original para el programa "03 líneas" guardado en la memoria de su robot para hacer una prueba de tiempo, y también utilizará otras dos modificaciones al programa "03 líneas" para un total de tres mediciones de prueba de tiempo. Las modificaciones que debe realizar incluyen

DRIFTY: encontrar un valor de Kp que hace que el robot se desplace muy lentamente y posiblemente pierda de vista la línea (pero es de esperar que no). Pruebe con valores diferentes de Kp entre 0.5 y 2.5 (u otro valor) hasta que obtenga uno en el que el robot se desplace, pero se mantenga en la línea.

JERKY: encontrar un valor de Kp que hace que el robot se mueva de un lado a otro, muy similar al tipo de movimiento de encendido y apagado. Pruebe con un valor de Kp en algún lugar entre 1.5 y 3.5 (u otro valor) hasta que obtenga uno en el que el robot comience a exhibir el movimiento hacia adelante y hacia atrás, pero no demasiado dramáticamente. Esto también se conoce como el valor "crítico" de Kp.

Las pruebas de tiempo para un giro completo en el sentido de las agujas del reloj alrededor de la pista solo son necesarias con los valores originales de "3 líneas" y los dos nuevos conjuntos de valores (DRIFTY y JERKY) que descubre al hacer que el robot siga solo una pequeña longitud de la pista. ¡No olvide descargar los cambios en su robot cada vez!

15 Registre los valores de control proporcional y las pruebas de tiempo para el programa de “3 líneas” (¡recuerde descargar los cambios al robot!) Para cada uno de estos tres valores de Kp (el valor original de la línea 03 y dos valores que usted determina por prueba y error ser DRIFTY y JERKY).

Paso 12: Controladores PID avanzados

Controladores PID avanzados
Controladores PID avanzados
Controladores PID avanzados
Controladores PID avanzados

Antes de comenzar este paso, asegúrese de completar los pasos anteriores, registrando toda la información solicitada, con el robot en particular que desea utilizar para esta práctica de laboratorio. Cada robot es ligeramente diferente, con respecto a los aspectos mecánicos, los aspectos del motor y especialmente los resultados del sensor de luz en la pista.

Números que necesitará de los experimentos anteriores

16 Lectura máxima del sensor de luz (del paso 2) _

17 Lectura mínima del sensor de luz (del paso 5) _

18 BUEN ajuste para el punto de ajuste (promedio de los anteriores) _

19 Ajuste DRIFTY para Kp (del paso 15) _

20 Ajuste JERKY (crítico) para Kp (del paso 15) _

Comprensión del controlador PID

Es posible que haya aprendido sobre el controlador diferencial integral proporcional (PID) como parte de un curso de Controles industriales, y hay una buena descripción general rápida en línea en Wikipedia (https://en.wikipedia.org/wiki/PID_controller).

En el caso de este experimento, el valor medido es la cantidad de luz reflejada desde el suelo. El punto de ajuste es la cantidad de luz deseada cuando el robot está directamente encima del borde de la cinta negra. El error es la diferencia entre la lectura de luz actual y el punto de ajuste.

Con el controlador proporcional, la velocidad del motor izquierdo era proporcional al error. Específicamente:

Error = Lectura de luz - Punto de ajuste

En este gráfico, el punto de ajuste se estableció en 50.

Posteriormente, para encontrar la velocidad del motor izquierdo, multiplicamos el error por la constante proporcional "Kp" específicamente:

L Motor = (Kp * Error) + 35

Donde en este gráfico, Kp se establece en 1.5, y la adición de 35 ocurre en otra parte del programa. El valor de 35 se agrega para convertir un número que se encuentra en algún lugar en el rango de -40 a +40, para que sea un número entre 10 y 60 (velocidades razonables del motor).

El Integral es una especie de memoria del pasado. Si el error ha sido grave durante más tiempo, el robot debe acelerar hacia el punto de ajuste. Ki se usa para multiplicar por la integral (la integral es la suma de errores en ejecución; en este caso, se reduce en 1,5 en cada iteración para que el robot tenga una "memoria atenuada" de errores pasados).

La derivada es una especie de predicción futura. Predecimos un error futuro comparando el último error con el error actual y asumimos que la tasa de cambio de error será algo lineal. Cuanto mayor se predice que será el error futuro, más rápido tendremos que movernos al punto de ajuste. Kd se usa para multiplicar por la derivada (la derivada es la diferencia entre el error actual y el error anterior).

L Motor = (Kp * Error) + (Ki * Integral) + (Kd * Derivada) + 35

Paso 13: encontrar los mejores parámetros PID

Encontrar los mejores parámetros PID
Encontrar los mejores parámetros PID
Encontrar los mejores parámetros PID
Encontrar los mejores parámetros PID
Encontrar los mejores parámetros PID
Encontrar los mejores parámetros PID

Hay varias formas que se pueden utilizar para encontrar los parámetros PID, pero nuestra situación tiene aspectos únicos que nos permiten utilizar una forma experimental más "manual" de encontrar los parámetros. Los aspectos únicos que tenemos son:

  • Los experimentadores (usted) comprenden bien el funcionamiento de la máquina.
  • No hay peligro de lesiones personales si el controlador se vuelve loco, y tampoco hay peligro de dañar el robot debido a una mala configuración del controlador.
  • El sensor de luz es un dispositivo de detección tan descuidado, y solo hay un sensor de luz, por lo que solo podemos esperar obtener un resultado final marginalmente bueno. Por lo tanto, un "mejor esfuerzo" está bien para nuestros experimentos.

Primero, ya usamos la “línea 03” para decidir cuál es el mejor Kp (el punto de ajuste BUENO y los valores de JERKY Kp en los pasos 18 y 20 anteriores). Consulte el primer gráfico para obtener instrucciones sobre cómo encontramos el valor JERKY para Kp.

Utilice el software "04 line" para determinar Ki. Primero modificaremos “4 líneas” para tener los valores que registramos en los puntos 18 y 20 anteriores. A continuación, aumentaremos lentamente Ki hasta que obtengamos un valor que realmente nos lleve al punto de ajuste muy rápidamente. Vea el segundo gráfico para obtener instrucciones sobre cómo seleccionar el valor de Ki.

21 MÁS RÁPIDO Valor de Ki que se establece en el punto de ajuste más rápido (incluso con un poco de sobrepaso) _

Utilice el software “05 line” para determinar Kd. Primero modifique la “línea 5” con los valores de los pasos 18, 20 y 21, luego aumente Kd hasta que obtenga el robot de trabajo final que alcance el punto de ajuste rápidamente y con muy poco sobreimpulso, si lo hay. El tercer gráfico muestra instrucciones sobre cómo seleccionar Kd.

22 Valor ÓPTIMO de Kd _

23 ¿¿CUÁNTO TIEMPO TARDE TU ROBOT EN CIRCULAR LA PISTA AHORA? _

Paso 14: Conclusión

El experimento de laboratorio salió muy bien. Con aproximadamente 20 estudiantes, utilizando las 10 (diez) estaciones de trabajo + configuraciones de robot que se muestran en el primer gráfico, nunca hubo un atasco de recursos. A lo sumo, tres robots daban vueltas por la pista a la vez para las contrarreloj.

Recomiendo dividir la parte de control PID (como mínimo, programas "04 línea" y "05 línea") en un día separado, debido a los conceptos involucrados.

Aquí hay una secuencia de videos que muestran la progresión de los controles (de "01 línea" a "05 línea") usando los valores que seleccioné, pero a cada estudiante se le ocurrieron valores ligeramente diferentes, ¡lo cual es de esperar!

RECUERDE: Una de las principales razones por las que los equipos de robots muy bien preparados obtienen malos resultados en los eventos de competencia es el hecho de que no realizan la calibración en el lugar exacto donde se llevará a cabo el evento. La iluminación y los ligeros cambios de posición de los sensores debido a los empujones pueden afectar en gran medida los valores de los parámetros.

  • Control PID de línea 01 (encendido-apagado) con Lego Robots -
  • 02 line (On-Off con Dead-Zone) Control PID con Lego Robots -
  • Control PID de línea 03 (proporcional) con Lego Robots -
  • Control PID de 04 líneas (Proporcional-Integral) con Lego Robots -
  • 05 line (Proporcional-Integral-Derivado) Control PID con Lego Robots -

Recomendado: