Un controlador PID diferencial integral proporcional en LEGO MINDSTORMS ROBOTICS. Regulador proporcional. Robot International Concursos - Reglas - Ejemplos de robots - Robot para una trayectoria basada en el ejemplo de LEGO EV3 del trabajo del algoritmo

Uno de los movimientos básicos en la capa es seguir la línea negra.

La teoría general y ejemplos específicos de la creación de un programa se describen en el sitio web de Wroboto.RU.

Describiré cómo lo realizamos en el entorno EV3, ya que hay diferencias.

Lo primero que necesita saber que el robot es el significado del "punto ideal", ubicado en la frontera de blanco y negro.

La ubicación del punto rojo en la imagen corresponde a esta posición.

La opción perfecta para calcular es medir el valor de blanco y negro y tomar el promedio aritmético.

Haz que pueda ser manualmente. Pero las desventajas son visibles de inmediato: durante un poco de tiempo, la iluminación puede cambiar, y el valor calculado es incorrecto.

Así que puedes hacerlo hacer un robot.

Durante los experimentos, descubrimos que la medición de ambos blancos y negros es opcional. Puedes medir solo blanco. Y el valor del punto perfecto se calcula como un valor blanco dividido por 1.2 (1.15), dependiendo del ancho de la línea negra y la velocidad del robot.

El valor calculado debe escribirse a la variable para pasarlo más tarde.

Cálculo del "punto perfecto".

El siguiente parámetro involucrado en el movimiento es el coeficiente de giro. Lo que es más, el robot afilado responde a un cambio en la iluminación. Pero demasiada importancia conducirá a la "promesancia" del robot. El valor se selecciona experimentalmente individualmente para cada diseño de robot.

El último parámetro es la potencia base de los motores. Afecta la velocidad del robot. Un aumento en la velocidad de movimiento conduce a un aumento en el tiempo de respuesta del robot para cambiar la iluminación, lo que puede llevar a la salida de la trayectoria. El valor también se selecciona experimentalmente.

Por conveniencia, estos parámetros también se pueden escribir en las variables.

Girar el coeficiente y la potencia base.

La lógica del movimiento de línea negra es: se mide la desviación del punto perfecto. Lo que es más, más fuerte el robot debe esforzarse por regresar a ella.

Para esto, calcule dos números: el valor de potencia de cada uno de los motores dentro y desde por separado.

En forma de fórmula, se ve así:

Donde Isens es el valor de las lecturas del sensor de iluminación.

Finalmente, implementación en EV3. Es más conveniente emitir en forma de un bloque separado.

Implementación del algoritmo.

Fue un algoritmo que se implementó en un robot para la categoría central WRO 2015

Esta tarea es clásica, ideológicamente simple, se puede resolver muchas veces, y cada vez que descubrirá algo nuevo.

Hay muchos enfoques para resolver la tarea de seguimiento. La elección de uno de ellos depende del diseño específico del robot, en el número de sensores, su ubicación relativa a las ruedas y entre sí.

En nuestro ejemplo, se desmontarán tres ejemplos del robot basado en el modelo de capacitación principal, el educador de robots.

Para empezar, recopilamos el modelo básico del robot de capacitación del educador de robot, para esto, puede usar las instrucciones en el software MindStorms EV3.

Además, para los ejemplos, necesitaremos, los sensores de luz ligera EV3. Estos sensores de luz, como otros, son los más adecuados para nuestra tarea, al trabajar con ellos, no tendremos que olvidar la intensidad de la luz ambiental. Para este sensor, utilizaremos el modo de luz reflejada en los programas, en los que se estima la cantidad de luz reflejada de la luz de luz roja. Los límites del testimonio del sensor de 0 a 100 unidades, para la "falta de reflexión" y "reflexión completa", respectivamente.

Por ejemplo, analizaremos 3 ejemplos de programas de movimiento de trayectorias móviles sobre fondo suave y ligero:

· Un sensor, con un regulador.

· Un sensor, con regulador PK.

· Dos sensores.

Ejemplo 1. Un sensor, con un regulador.

Diseño

El sensor de luz está instalado en la viga, que está convenientemente ubicado en el modelo.


Algoritmo

La acción del algoritmo se basa en el hecho de que dependiendo del grado de superposición, el haz de la iluminación del sensor de línea negro, devuelto por el sensor del testimonio varía gradientemente. El robot conserva la posición del sensor de luz en el borde de la línea negra. Conversión de la entrada del sensor de luz, el sistema de control genera la tasa de rotación del robot.


Dado que en la trayectoria real, el sensor genera valores en todo el rango de operación (0-100), luego el valor al que se elige el robot 50. En este caso, los valores de las funciones de rotación transmitidas se forman en El rango -50 - 50, pero estos valores no son suficientes para apretar la trayectoria. Por lo tanto, debe ampliarse por un rango de una hora y media a -75 - 75.

Como resultado, en el programa, la función de calculadora es un regulador proporcional simple. La función de la cual ( (A-50) * 1.5 ) El rango de operación del sensor de luz genera los valores de rotación de acuerdo con el programa:

Un ejemplo de la obra del algoritmo.

Ejemplo 2. Un sensor, con regulador PK.

Este ejemplo se basa en el mismo diseño.

Probablemente lo notaste en el último ejemplo, el robot fue pasado por alto que no le dio lo suficiente para dispersarse. Ahora intentaremos mejorar esta situación.

A nuestro regulador proporcional, agregamos un regulador cúbico simple, que agregará flexión a la función del regulador. Esto reducirá la oscilación del robot cerca del límite deseado de la trayectoria, así como a realizar masturbes más fuertes a una distancia fuerte de ella.

Regulador proporcional

Descripción

Con el ajuste automático, el efecto de control U (t) suele ser la función de un error dinámico: desviaciones de E (t) del valor ajustable X (T) de su valor especificado x0 (t):

e (t) \u003d x0 (t) - x (t).

Este es el principio del control de desviación de pregrado con deslizamiento, o principio de retroalimentación. La expresión matemática de la dependencia funcional del efecto de control deseado U0 (T) de los valores medidos por el regulador se denomina ley o algoritmo de la regulación, que se mencionó anteriormente.

El controlador proporcional es un dispositivo que proporciona un efecto de control en el objeto en proporción a su desviación del estado especificado:

Aquí k es la ganancia del regulador.

El estado especificado de X0 es habitual para que se llame un punto de ajuste, y la desviación de él e es un poco claro. A continuación, por definitivamente, designaremos una reducción de errores de error (de la palabra inglesa ": error).

Control del motor

Un guerrero experimentado no oscilará la espada, ya que hace el robot en el regulador de relevo. Es necesario acercarse a un algoritmo que retrasará el motor, sosteniendo una espada, en una posición estrictamente fija (Fig. 7.1). Esto ayudará al regulador P.

Sea E 1 Las indicaciones del Sensor de Revolución1 en el motor A, son un valor ajustable. SetPoint X0 \u003d 45, y no instantáneo E \u003d 45 - E 1. Luego, la fórmula da el efecto de control en el motor.

u \u003d k ∙ (45 - E 1).

Aquí, K es un coeficiente de ganancia, por ejemplo, 5, lo que aumentará la reacción del motor, incluso con pequeñas desviaciones del punto de ajuste.

1 No confunda la designación matemática del ERRENDE E (por error) con las indicaciones del codificador E 1 (desde el codificador), una variable ROBOBOB predeterminada.

Cuando un rechazo en el lado positivo, se suministrará un efecto de control negativo al motor, y viceversa. Este control se puede aplicar al motor en un ciclo con un pequeño retraso de 1-10 ms para descargar el controlador (Fig. 7.8).

Higo. 7.8. Algoritmo de control del motor en un regulador proporcional.

Si un coeficiente de refuerzo se incrementa de 5 a 100, nuestro regulador proporcional comenzará a trabajar como relé, causando fuertes oscilaciones debido a la aparición del efecto inverso.

En Robotc, no existe una designación tan conveniente del codificador del codificador como en Robolab, por lo que el programa se ve un poco más largo:

int k \u003d 5, u; nmotorencoder \u003d 0; Mientras (verdad)

u \u003d k * (45-nmotorencoder); Motor \u003d u;

A continuación, para infligir "golpe por una espada", lo suficiente, tener en lugar de las variables número 45, cambie su valor desde el exterior, por ejemplo, desde un problema paralelo. Esto está escrito en la sección dedicada a las robotammas en el Capítulo 8.

Y ahora construimos un regulador, administrando no solo la posición estática del motor, sino también la velocidad de su movimiento. Después de la lógica del algoritmo, el punto de ajuste, que hasta ahora ha sido constante y no ha cambiado, debe comenzar a moverse hacia el aumento o la disminución. Obedeciendo al regulador, el motor lo seguirá inevitablemente. La herramienta más simple para el incremento constante del valor de punto de ajuste es un temporizador.

El controlador NXT tiene cuatro temporizadores incorporados, cada uno de los cuales puede medir el tiempo en las décimas, centésimas y milésimas de segundos. Masterizaremos el primer temporizador, que en un segundo hace 10 "

ensenada. En Robolab, se denota por T1 o Timer100ms1, y en Robotc - Timer100.

El ángulo de desviación alfa del motor definido en el ejemplo anterior con el valor 45, agregaremos la dependencia de las lecturas del temporizador con un coeficiente de aceleración K 2:

alfa \u003d k2 ∙ t1.

El efecto de control seguirá siendo el mismo con el coeficiente de mejora K 1:

u \u003d k 1 ∙ (alfa - e 1).

Brevemente en el programa en el idioma de ROBOLAB, la exposición al control se enviará inmediatamente al motor, preinicializando el temporizador

Higo. 7.9. El control de velocidad del motor es un turno por segundo.

El coeficiente K 2 \u003d 36 determina que en un segundo, el valor alfa se ejecuta hasta 360, que corresponde a una facturación completa del motor:

int k1 \u003d 2, k2 \u003d 36, u, alfa; nmotorencoder \u003d 0; ClearTimer (T1); Mientras (verdad)

alfa \u003d timer100 * k2; u \u003d k1 * (alfa-nmotorencoder); Motor \u003d u;

Usando una división de enteros adoptada en C (y en ROBOLAB) para variables de un tipo de entero, se puede lograr un cambio de esquina discreto, es decir, Incrementos de ello una vez por segundo:

alfa \u003d t 1/10 ∙ k 2.

Con el coeficiente K 2 \u003d 60, los movimientos de la viga corresponderán al movimiento de la segunda flecha en el reloj del reloj. Pero esto no es suficiente

notablemente. Para mayor claridad, puede configurar K2 \u003d 30, luego la flecha hará un giro completo para 12 "Tikov" 30 grados cada uno. Tenga cuidado con la secuencia de la división de enteros y las operaciones de multiplicación, cuando cambie su orden o "abreviatura", el resultado cambiará (Fig. 7.10).

Higo. 7.10. Imitación acelerada del movimiento de flechas de reloj.

Y finalmente, un ejemplo de un baterista matemático. En lugar de un movimiento permanente, la flecha realizará fluctuaciones en la parte delantera bajo el control del regulador P. Esto ayudará a la operación de separación con el residuo, que en la C se denota por el signo%. El resto del entero no negativo en 2 siempre será 0 o 1:

alfa \u003d t 1% 2 ∙ k 2.

Intensificando la desviación en K 2 \u003d 15 veces, obtenemos el punto de ajuste oscilante alfa, que forzará al regulador 5 veces por segundo mover el motor a 0º, luego a 15 grados. Los cambios en el programa son pequeños. Considere un ejemplo en Robotc:

int k1 \u003d 3, k2 \u003d 15, u, alfa; nmotorencoder \u003d 0; ClearTimer (T1); Mientras (verdad)

alfa \u003d temporizador100% 2 * k2; u \u003d k1 * (alfa-nmotorencoder); Motor \u003d u;

Este baterista prototipo se detiene en la mesa a intervalos de tiempo. Lo principal es comenzar en la posición correcta. Usando Matemáticas Integer, puede especificar un patrón rítmico más complejo, por ejemplo (Tabla 7.1):

alpha \u003d T 1% 5% 2 ∙ K 2.

centro \u003d s3.

El coeficiente se determina en el ciclo:

k 1 \u003d C + (S 3 - Centro) / K 2.

Higo. 7.36. Movimiento en la línea en un regulador proporcional con un coeficiente flotante.

La ley de coeficiente de mejora resultante se puede aplicar no solo al componente proporcional, sino también a cualquier otra, así como a la influencia de control en su conjunto (Fig. 7.36).

Regulador pid

Proportional-Integral-diferencial (PID) El regulador es uno de los más populares y se usa en una gran cantidad de dispositivos de diversos tipos en los que se requieren la velocidad de la reacción y la precisión de la posicionamiento del sistema. A medida que sigue el nombre, este controlador consiste en la cantidad de los tres componentes y se representa gráficamente en la FIG. 7.37.

Higo. 7.37. Circuito regulador PID.

Este es un esquema simplificado. Se suministra un error dinámico E (t) a la entrada del controlador, y el efecto de control U (T) se produce en la salida:

u (t) \u003d p + i + d \u003d k p p ∙ e (t) + k i ∙ ò t

e (τ) d τ + k d ∙

dELAWARE.

El componente proporcional representado en el esquema de triángulos es responsable de posicionar el sistema en un estado determinado. En algunos casos, puede causar redistribución con auto-oscilaciones posteriores. Es decir, el regulador P puede "reorganizar" y el robot comenzará a traer de lado a lado.

El componente integral acumula experiencia negativa (resume errores) y produce efectos de compensación. Con desviaciones mínimas, el componente proporcional "débil" e integral, debido a su rápido aumento de la suma, ayuda a "alcanzar" el valor ajustable al punto de ajuste.

El componente diferencial (componente D) supervisa la velocidad de cambiar el estado del sistema y evita la posible redistribución. En algunos casos, el componente D es opuesto a la proporcional al signo, y algunos coinciden.

Con el componente proporcional, ya estamos familiarizados, el diferencial se describe en el Capítulo 6 anterior. Tomaremos la integral. Este componente se determina dinámicamente, resumiendo el valor anterior:

i \u003d i + ki × e (t) × dt.

El significado físico del valor de E (T) × DT es que es

la duración de la proporción del sistema está en un estado de error. Dado que el coeficiente K I se envía para paréntesis, puede hablar sobre el valor de I como una cantidad de duraciones de errores. Por lo tanto, encontramos una integral por suma.

Considere el uso del controlador PID en el ejemplo de un robot que se equilibra en dos ruedas. Esta tarea clásica se puede resolver utilizando diferentes sensores con una variedad de formas. El ejemplo propuesto utilizó el sensor de iluminación y la forma más sencilla del controlador PID. Sin embargo, para lograr la estabilización del robot, deberá usar lecturas más precisas del sensor.

Formato crudo

Los datos de los sensores vienen al controlador NXT en el formulario de "queso" no tratado. Todos los sensores transmiten un valor digital al sistema operativo de 0 a 1023, que luego se procesa por el controlador apropiado y se reduce a una vista más clara (distancia 0 ... 255, iluminación 0 ... 100, toque 0 o 1 , etc.). Pero los datos se pueden obtener y pasando directamente al conductor. Tal formato sin procesar se llama RAW (del inglés ". RAW"). En algunos casos, se puede obtener con una mayor precisión. Por ejemplo, la gama de valores del sensor de iluminación puede aumentar en aproximadamente 10 veces. Esta característica se usa más lejos.

Puede recibir datos en el formato RAW en Robolab y Robotc. Para ello, el sensor se inicializa en consecuencia, y los datos de él se leen utilizando una variable predefinida especial.

Robot de equilibrio

El diseño del robot de Sigvea se representa en la FIG. 7.38: Controlador ubicado verticalmente, ruedas cerradas y sensor de luz dirigido hacia abajo. El algoritmo será algo más complicado.

El principio de estabilización de SIGVEA en la posición de equilibrio es la siguiente. Si el robot se inclina hacia adelante, las lecturas en el sensor de luz se están elevando debido a la luz reflejada. En respuesta, se produce el impacto de control, lo que hace que el robot sea anticuado y, por lo tanto, tome una posición vertical nuevamente.

Al rechazar el testimonio del sensor, el robot comienza a retroceder. Para todo esto corresponde al componente proporcional. El papel de los componentes integrales y diferenciales se da al seguro general.

Higo. 7.38. Equilibrio robot SIGWAY.

En la Fig. 7.39 muestra el algoritmo en Robolab. Su parte de ella toma la inicialización de las variables. Para aumentar la precisión, no solo los datos del sensor se leen en el formato en bruto, sino que la mayoría de las variables se declaran en el formato de flotador de materiales. En realidad, el algoritmo PID está en el ciclo.

Higo. 7.39. El algoritmo de equilibrio se basa en el regulador PID.

Después de la tradición del movimiento de línea, use la variable grizada como punto de ajuste: las lecturas promedio del sensor de iluminación en la posición de equilibrio. El parámetro de nueva escala establece la escala de la exposición al control. De hecho, es un coeficiente de debilitamiento porque el valor generado por el regulador es demasiado alto para los motores NXT. Sería posible introducirlo dentro de los coeficientes existentes, pero para Robotc este parámetro será diferente, y los coeficientes son los mismos.

Con los coeficientes anteriores, el robot está bien estabilizado en un linóleo luminoso monófónico o en el escritorio. Es decir, no necesita color de la superficie blanca. Para comenzar, debe instalar con precisión Sigwe en la posición de equilibrio. Si el robot comienza con un poco de pendiente hacia adelante o hacia atrás, comenzará inmediatamente el movimiento en la dirección de inclinación.

Un ejemplo similar en Robotc es algo diferente en virtud de una serie de razones. Primero, la velocidad de NXT con el firmware de este entorno está por encima de aproximadamente 1,4 veces que ROBOLAB, por lo que se debe aumentar el coeficiente de escala. En segundo lugar, los valores crudos se transmiten en el orden correcto y deberán instalar un reverso de motores o simplemente enviar un efecto de control negativo:

int gris \u003d Sensorraw; INT ERR, ERROLD \u003d 0;

flotando kp \u003d 25, ki \u003d 350, kd \u003d 0.3; Escala flotante \u003d 14;

flotando dt \u003d 0.001; Flotando p, i \u003d 0, d, u; Mientras (verdad)

eRR \u003d Grey-Sensorraw; // desviación con signo inverso p \u003d kp * errar;

i \u003d i + ki * err * dt; d \u003d kd * (errado de errud) / dt; ERRORD \u003d ERR; u \u003d (p + i + d) / escala; Motor \u003d u; Motor \u003d u; Wait1msec (1);

Elementos de la teoría del control automático en la escuela1.

Una tarea metodológica importante e interesante es el "puente" entre las áreas de conocimiento de un especialista y un colegial, ayudando a los estudiantes a ver la perspectiva de la especialidad futura, es decir. Para llevar a cabo una guía vocacional, y los estudiantes ven la aplicabilidad práctica de su conocimiento profesional. Para lograr este efecto, técnicas para calcular los reguladores, utilizando un aparato matemático, no más allá del alcance de los programas escolares en matemáticas y física. En particular, en lugar de ecuaciones diferenciales, diferencia, un carácter discreto bien apropiado de la interacción de un objeto y un regulador con control de computadora.

Considere, por ejemplo, el problema de la construcción de reguladores proporcionales (P) y diferenciales proporcionales (PD) en la tarea de control de movimiento de robot móvil a lo largo de la pared. Denote por XT la distancia entre el robot y la pared, a través de θt, el ángulo del curso del robot, y a través de UT, el efecto de control en el momento con el número de secuencia T, respectivamente, donde T \u003d 0, 1, 2 ,. .. - Números de momento

rhenium. Se cree que la encuesta de sensores y cambios en la magnitud de la exposición al control se lleva a cabo en un período igual de tiempo H. Para las tareas de administración de LEGO NXT, es natural para los robots que la exposición al control es la diferencia en las velocidades angulares de la rotación de la rueda, proporcional a la tasa de cambio de ángulo de intercambio:

Teniendo en cuenta el tipo de cambio de la velocidad nominal θt \u003d 0 pequeña, y la velocidad de robot promedio es permanente: VT \u003d V, la dinámica de los cambios en el estado variable del robot en la primera aproximación se puede describir mediante ecuaciones lineales del estado:

donde g \u003d h2vr / b.

Establezca la distancia deseada a la pared x *\u003e 0 y definimos el propósito del control (CSU) por la proporción

xt → x * en t → ∞.

Ahora, naturalmente, introduciremos en el nivel sustancial el concepto de estabilidad asintótica, ya que las propiedades de las soluciones del sistema (4), que garantizan el logro de la CSU (5) bajo cualquier condición inicial, difieren ligeramente del objetivo. Es fácil ver que con U T \u003d 0, la solución de la ecuación (4) es cualquier valor constante x t \u003d x *. Pero como la ecuación (4), los modelos correspondientes del doble integrador (doble adder), no tienen la propiedad de la estabilidad asintótica, la CSU (5) durante el control constante no se logra. Esto se demuestra fácilmente como analíticamente, la suma de

Robótica: una nueva dirección interesante, que, aparentemente, continuará desarrollándose en el marco de los cursos escolares de informática y tecnología. La robótica del auge se debe en gran parte al hecho de que le permite responder a la pregunta: "¿Y por qué realmente enseñamos la programación?" Además, se encuentran al tanto de la robótica con los conceptos elementales de la teoría del control automático.

Esta página presenta a los simuladores desarrollados por el autor para la programación y las juntas arduinas. Pueden ayudar en los casos en que, por alguna razón, no es posible usar hardware real.

Los simuladores utilizan las capacidades de HTML5, por lo que solo trabajarán en los navegadores modernos (es mejor usar Google Chrome. o Mozilla Firefox.).

noticias ahora en el canal de telegrama

27 de noviembre de 2015
La pista de germin agregada a los simuladores ( M.v. Lazarev, Orekhovo-Zuyevo).

13 de octubre de 2015
Ahora, en los simuladores para el lego-robot, puedes subir tus propias pistas (campos para el robot). ¿Cómo hacerlo? Ver.
Se agregaron nuevos simuladores: LEGO-ROBOTS con dos, tres, cuatro sensores de luz.

Lenguaje de gestión de robots

Para controlar los robots en los simuladores, se utiliza un lenguaje de programación simple, que recibió un título de trabajo SIROP. (Programación de robot simple.).

Gestión de robot con sensor de luz.

El sensor de luz permite que el robot navegue en la superficie de la tabla, por ejemplo, vaya a lo largo de la frontera entre las áreas blancas y negras (a lo largo del borde de la línea negra). El fotodiodo destaca la superficie, el fotodetector "atrapa" los rayos reflejados y mide su intensidad.

La tarea más popular de este tipo es el movimiento a lo largo de la línea. Con la ayuda de un simulador, puede explorar diversas leyes de control: retransmisión, control proporcional e incluso PID (diferencial proporcional e integral).

Ejemplos de programas para un robot con sensor de iluminación.

Mientras que 1 (si el sensor\u003e 128 (motor \u003d 100 motor \u003d 0) de lo contrario (motor \u003d 0 motor \u003d 100) espera (10))

Kp \u003d 0.2 while 1 (u \u003d kp * (sensor-128) motor \u003d 50 + u motor \u003d 50 - u espera (20))

Main (mientras que 1 (mientras que el sensor\u003e 128 (motor \u003d 100 MOTOR \u003d 100 ESPERA (10)) Atrás () Gire ()) atrás (Motor \u003d -100 Motor \u003d -100 Espera (260)) Rotación (Motor \u003d - 50 Motor \u003d 50 Espera (50))

Robot de gestión con dos sensores de luz.

Dos sensores de luz permiten que el robot sea mejor navegar e ir a lo largo de la delgada línea. Se prestan un poco hacia adelante y se divorcian en los lados. En cuanto a las tareas con un sensor, con la ayuda de este simulador, puede explorar diversas leyes de control.

Ejemplos de programas de robots con tres sensores de luz.

Robot de gestión con cuatro sensores de iluminación.

Cuatro sensores de iluminación permiten que el robot determine mejor los giros empinados. Los sensores internos sirven para los ajustes finos, se utiliza el control proporcional para ellos. Dos sensores externos son un poco hacia adelante y se divorcian a los lados. Se utilizan cuando ocurre un giro empinado. La ganancia para el control de las indicaciones de los sensores de par externos se selecciona mayor que para el par interno (ver L.yu. Ovsyanitskaya et al., Algoritmos y programas del movimiento de LEGO MINDSTORMS EV3 en línea, M.: PENO, 2015).

Ejemplos de programas para un robot con cuatro sensores de iluminación.

MIENTRIENTE 1 (D0 \u003d SENSOR\u003e 128 D1 \u003d Sensor\u003e 128 D2 \u003d Sensor\u003e 128 D3 \u003d Sensor\u003e 128 Si D1 &! D2 (Motor \u003d 100 Motor \u003d 0) ¡Si! D1 & D2 (motor \u003d 0 motor \u003d 100) si D1 \u003d\u003d D2 (Motor \u003d 100 Motor \u003d 100) Si D0 · D3 (Motor \u003d 30 Motor \u003d 0) ¡Si! D0 & D3 (motor \u003d 0 Motor \u003d 30) Espere (10))

K1 \u003d 0.2 k2 \u003d 0.4 Hasta FAR 1 (U1 \u003d SENSOR - SENSOR U2 \u003d SENSOR - SENSOR DE MOTOR \u003d 50 + K1 * U1 + K2 * U2 MOTOR \u003d 50-K1 * U1-K2 * U2 Espera (10))

Robot de gestión con sensor de distancia (Sononomer)

El sensor de distancia (sonar) permite durante el movimiento del robot para determinar la distancia al obstáculo más cercano. Emite una señal ultrasónica y toma una señal reflejada. Cuanto más tiempo entre las señales resistentes y recibidas, mayor será la distancia.

Usando el sensor de distancia, puede programar el robot para que pase automáticamente el laberinto del formulario conocido, pero los tamaños desconocidos.

El controlador proporcional es un dispositivo que tiene un efecto de control U (t) en un objeto en proporción a su desviación lineal E (t) de un estado dado X0 (T);

e (t) \u003d x0 (t) -x (t), donde x (t) es el estado en este momento;

u (t) \u003d ke (t), donde k es un coeficiente de refuerzo.
Es decir, cuanto más se desvía el robot del curso específico, más activos deben funcionar los motores, alineándolo.

Movimiento sobre una línea con un sensor de iluminación utilizando un regulador P

El movimiento a lo largo del borde del blanco y negro también se puede construir en el regulador P. Aunque externamente, la tarea se resolverá solo con la ayuda de un regulador de relé, ya que solo hay dos de la persona visible para el ojo humano: blanco y negro. Pero el robot ve todo lo de manera diferente, no hay límite afilado entre estas flores. Se puede decir, él es alcanzado y ve la transición de gradiente de tonos de gris.

Esto ayudará a construir un regulador P.
Determinar el estado de trabajo como indicaciones del sensor de iluminación, aprenda cómo proporcionar un efecto de control proporcional en los motores de acuerdo con la siguiente ley:
E \u003d S1-GRIO, donde S1 son las lecturas de sensores actuales, y el gris es un valor específico.

El coeficiente K (igual en este ejemplo 2) debe ser lo suficientemente pequeño (de 1 a 3). Dicho controlador funciona de manera eficiente solo para pequeños ángulos de desviación, por lo que el robot debe colocarse en la dirección de movimiento para que el sensor esté en el lado izquierdo de la línea negra. Es fácil señal de observar que el movimiento en la línea en el regulador P es suave. Y en algunas áreas de trabajo, se mueve casi recto o con precisión repetiendo las curvas de la línea.

Calibración del sensor

Gire al número 48 utilizado en la fórmula. Esta es la lectura de aritmética promedio del sensor de iluminación en negro y en blanco, por ejemplo (40 + 56) / 2 \u003d 48. Sin embargo, las lecturas de sensores a menudo se cambian por varias razones: otra superficie, un cambio en la iluminación general en interiores, una pequeña modificación de la estructura, y similares. Por lo tanto, llevaremos a cabo la calibración del robot manualmente, determinando las lecturas del sensor de iluminación en blanco y en negro.

Movimiento sobre una línea con dos sensores de iluminación utilizando un regulador P
Corregir la intersección con un sensor de luz es bastante difícil. Si se requiere que haga esto con una velocidad suficientemente alta, necesita al menos dos sensores establecidos por no una distancia en dos anchos de línea (o más ancho).
Al moverse, cuatro estados del sensor son posibles:

  • tanto en blanco - movimiento recto;
  • izquierda (S1) no negro, derecha (S2) en blanco - Movimiento a la izquierda;
  • izquierda en blanco, justo en negro - Movimiento a la derecha;
  • ambos en negro - moverse a la derecha.
Entonces Con lecturas iguales de las batas de robots del sensor (tanto blanco como ambas negras) directamente. Antes de ejecutar el robot, llevaremos a cabo la autocalibración de ambos sensores. Luego, el algoritmo de movimiento a lo largo de la línea con el regulador P se verá desde C.O.:

El coeficiente K puede variar en un rango bastante amplio (de 1 a 20 o más), dependiendo de la curvatura de la línea, la maniobrabilidad del robot y la diferencia entre el blanco y el blanco en el campo.
Condición importante. La autocalibración debe llevarse a cabo sobre una superficie monocromática y preferiblemente con esa iluminación que ocupará la parte más grande del camino. Por ejemplo, si el robot va a lo largo de la línea negra en un campo blanco, entonces necesita calibrar en blanco. Esos. La posición del robot al inicio debe ser así:


Y otro comentario. Hay sensores cuyas lecturas difieren en un 10-20%. Es aconsejable no ponerlos en un par de un regulador con un gran coeficiente, ya que con un cambio brusco en la iluminación general, incluso en un blanco uniforme, el campo de desviación puede ser diferente, lo que conducirá a consecuencias inesperadas.