Un ejemplo de programación de velocidad de línea constante
Este diseño utiliza el microcontrolador AT89C52 como núcleo de todo el control del sistema. El método PI incremental en el algoritmo PID se utiliza para controlar con precisión la velocidad del motor, y el módulo de detección de infrarrojos se utiliza para recopilar la velocidad del motor y acondicionar la señal de retroalimentación como base para el control de circuito cerrado del motor. La interfaz hombre-máquina utiliza ZLG7290 para realizar el control de botones y la visualización de la velocidad del motor.
0?2?0?2Las características principales de este diseño son:
● Circuito de visualización de interfaz I2C ZLG7290 El ZLG7290 tiene procesamiento antirrebote del teclado para evitar errores al presionar los comandos del teclado. La interfaz I2C proporciona una señal de interrupción del teclado para facilitar la interfaz con el procesador.
●El circuito de acondicionamiento de señal puede convertir la señal de retroalimentación en una onda cuadrada estándar para facilitar el ajuste de velocidad.
●La mayoría de los programas se implementan mediante programación sin bloqueo. La función principal utiliza SuperLoop para permitir que la función responda y se ejecute rápidamente. Se utilizan varias interrupciones como medios de control para mejorar la velocidad de respuesta en tiempo real. sistema.
●El sistema de control de bucle cerrado PID se añade al bucle. Cuando la carga cambia, el sistema ajustará automáticamente el ciclo de trabajo del terminal PWM para mantener estable la velocidad del motor.
1. Comparación de esquemas
1. Selección del controlador:
Opción 1: Simular el controlador PID a través del hardware (componentes electrónicos, neumáticos e hidráulicos) para realizar su función. .
Opción 2: controlador PID digital, trasplantado al sistema de control por computadora y uso de software para realizar las funciones del hardware original. En comparación con el controlador PID analógico, tiene las ventajas de una gran flexibilidad, ajuste en línea de parámetros basado en experimentos y experiencia, y un buen rendimiento de control.
Finalmente adoptamos la segunda opción porque con ella se puede lograr un mejor rendimiento, pero la desventaja es que la precisión es difícil de controlar a bajas velocidades del motor.
2. Selección de soluciones de sensores de velocidad:
Opción 1: codificador rotatorio incremental: la relación de sincronización y fase del codificador de ángulo se convierte mediante los dos tubos receptores fotosensibles internos. o disminución del desplazamiento angular del codificador de ángulo. Ventajas: Las ondas cuadradas se pueden generar de forma directa y precisa con alta precisión, pero son caras.
Opción 2: Un sensor óptico general puede implementar el circuito de medición colocando un disco de código blanco y negro en el eje del motor. Desventajas: su precisión de medición es muy baja y las formas de onda generadas en los límites de blanco y negro son irregulares, lo que genera grandes errores de medición.
Opción 3: Módulo especial medidor de pulso MC-C2513, que utiliza sensor fotoeléctrico de velocidad de luz dual directa para muestreo. Este tipo de placa de muestreo de pulsos tiene principalmente las siguientes funciones: puede eliminar efectivamente los errores de fluctuación y no causará un conteo excesivo o insuficiente de pulsos debido a la fluctuación del tocadiscos y al encendido. Hay una variedad de anchos de pulso de salida para elegir, que pueden distinguir automáticamente la dirección de rotación del plato giratorio y emitir señales de pulso hacia adelante y hacia atrás respectivamente. Y el precio es relativamente barato.
3. Selección del microcontrolador:
Opción 1: microcontrolador serie 51, el más utilizado es el AT89C52. La ventaja es una estructura interna simple y un precio bajo. No tiene función de salida PWM. Un temporizador funciona con el software.
Opción 2: microcontrolador de la serie AVR Las funciones de temporización y contador del microcontrolador AVR se han mejorado enormemente y hay tres puertos de salida PWM. La estructura interna del microcontrolador AVR tiene canales de hardware que pueden generar directamente señales de onda cuadrada.
Finalmente adoptamos la primera solución porque AT89C52 es el dispositivo más familiar y se puede controlar y depurar bien.
4. Circuito de visualización de velocidad:
Opción 1: la transmisión del bus I2C ZLG7290 tiene las ventajas de la interfaz serie I2C, proporcionando una señal de interrupción del teclado para facilitar la interfaz con el procesador. Se agregó un contador combinado. Al leer el valor de este registro, se pueden distinguir las teclas de clic y las combinaciones de teclas. Se agrega el registro de función para realizar presionar dos o más teclas al mismo tiempo, ampliando el número de teclas.
Opción 2: circuito 8279. La desventaja es que no hay transmisión de bus I2C, se requiere una gran cantidad de dispositivos periféricos, el control es problemático y la relación precio/rendimiento no es alta.
Finalmente adoptamos la primera solución porque ZLG7290 I2C ocupa pocos puertos de E/S y es fácil de controlar.
5. Módulo de ajuste de velocidad del motor:
Opción 1: Utilice una red de resistencias o un potenciómetro digital para ajustar el divisor de voltaje del motor para lograr la regulación de velocidad. La red de resistencias sólo puede lograr una regulación de velocidad paso a paso y los componentes de resistencia digitales son relativamente caros.
El problema más importante es que la resistencia de un motor general es muy pequeña, pero la corriente es muy grande. La división de voltaje no sólo reduce la eficiencia, sino que también es difícil de lograr.
Opción 2: Utilice un relé para controlar el encendido y apagado del motor y ajuste la velocidad del motor encendiendo el interruptor. La ventaja de esta solución es que el circuito es relativamente simple, pero la desventaja es que el tiempo de respuesta del relé es lento, la estructura mecánica se daña fácilmente y la confiabilidad es deficiente.
Opción 3: Utilizar un circuito PWM tipo H compuesto por tubos Darlington. El microcontrolador controla el tubo Darlington para que funcione en un estado de conmutación con un ciclo de trabajo ajustable para ajustar con precisión la velocidad del motor. Este circuito es muy eficiente porque opera en el modo de corte de saturación de la tubería. El circuito en forma de H garantiza un control sencillo de la velocidad y la dirección y es extremadamente estable. Es una tecnología de regulación de velocidad PWM ampliamente utilizada y tiene una gran capacidad de carga.
Opción 4: Utilice el chip controlador de motor especial L298N para un fácil control.
Finalmente adoptamos la cuarta solución. Las ventajas de esta solución son menos componentes periféricos, circuito simple y fácil control.
Comparación de 6 ideas de diseño de software:
Opción 1: idea de programación modular, usar bucle for cuando se necesita retraso y bucle cuando se necesita estado de espera, por lo que causará mucho de pérdida de tiempo de CPU e incluso hacer que el sistema deje de responder.
Opción 2: Utilizar ideas de programación sin bloqueo. Es decir, se omiten algunas posiciones que deben juzgarse para lograr una respuesta del sistema en tiempo real.
Adoptamos la segunda solución, que puede reducir el tiempo de respuesta y mejorar la eficiencia del código.
Comparación de 7 algoritmos PID digitales:
Opción 1: Algoritmo de posicionamiento. Su volumen de control de salida corresponde a la salida total del sistema. Por lo tanto, cada salida está relacionada con el estado pasado, lo que requiere una gran cantidad de cálculos.
Opción 2: Algoritmo incremental. Solo genera el incremento de la cantidad de control. Tiene sus ventajas en comparación con el algoritmo de posición: 1. En el algoritmo incremental, el error de cálculo es muy pequeño para la cantidad de control. 2 puede lograr una conmutación sin impacto. 3 Alta confiabilidad.
Finalmente adoptamos la segunda opción porque los cálculos delta son mucho más pequeños que los cálculos de posición y se usan ampliamente.
2. Diseño y demostración
Después de una cuidadosa discusión y comparación, decidimos que el plan final para cada módulo principal del sistema es el siguiente:
( 1) Módulo de regulación de velocidad del motor: utilice el chip controlador del motor especial L298N.
(2) La elección del controlador es: AT89C52.
(3) El sensor utilizado para medir la velocidad de rotación es un sensor fotoeléctrico de infrarrojos.
(4) El teclado y los módulos de circuito de visualización de velocidad utilizan el circuito ZLG7290 I2C.
1. Diseño del software del sistema
Esta solución utiliza un método de control PI incremental en el modo de control PID, que puede hacer que el motor alcance efectivamente un estado estable.
②Se implementa la parte 1 de reproducción.
(3) El algoritmo difuso se utiliza en la implementación de la parte 3 del juego, es decir, el par que cambia linealmente (es decir, "par de aceleración constante" (similar al concepto de "aceleración constante").
Acelere el objeto y pruebe el tiempo necesario para alcanzar la velocidad objetivo, determinando así el momento de inercia del objeto.
Determine el coeficiente de control PID bajo diferentes cargas constantes consultando la tabla, así. para evitar el uso del motor cuando el sistema ingresa, se logra un tiempo de respuesta transitorio más rápido.
④ Este programa está programado en lenguaje C, que es simple y fácil de entender. programación sin bloqueo y se utilizan en la función principal. SuperLoop se utiliza para permitir que las funciones respondan y se ejecuten rápidamente. Se utilizan varias interrupciones como métodos de control para mejorar la velocidad de respuesta en tiempo real del sistema. Se utiliza, y cada nivel está relativamente aislado, lo que contribuye a mantener una idea clara al programar; utilizando el método de denominación estandarizado. Las funciones siempre comienzan con letras mayúsculas y los datos siempre comienzan con letras minúsculas. e implementación de otras funciones:
(1) Los motores se pueden mostrar al mismo tiempo. El valor teórico y el valor real de la velocidad de rotación son fáciles de comparar y se puede obtener la precisión del control.
⑵ La dirección de rotación del motor se puede mostrar para que la indicación sea más clara.
(3) Cuando se implementa la curva en la parte de visualización (1), la velocidad de rotación se puede mostrar. el LED, es decir, la relación entre la velocidad de rotación y el tiempo se puede mostrar en detalle.
(4) Cuando se implementa la parte de reproducción (3), la velocidad de rotación cambia de 120. El giro se produce repentinamente. Se convierte en 400 turnos y el tiempo necesario para completar la pregunta es obviamente de 5 segundos.
5] La resolución de la velocidad del motor alcanza 1 rpm.
(1) y (3) de la parte de reproducción se pueden lograr con una sola tecla. Y muestre su número de título a través del LED.
3. Análisis teórico y cálculo (omitido)
4. Diagrama de circuito y documentos de diseño relacionados (omitidos)
Prueba física del verbo (abreviatura de verbo)
p>
1. Equipo de prueba: osciloscopio digital de 20M y frecuencímetro.
2. Análisis de los resultados de la prueba:
(1) Al implementar el algoritmo PID, la precisión del control de velocidad del motor casi alcanza el estado ideal, pero cuando la velocidad del motor es inferior a 70 rpm. , su control La precisión ha disminuido y no puede cumplir con los requisitos de la pregunta. La razón principal es: debido a que su medición es dinámica, el motor ajusta constantemente la velocidad y el motor tiene una fluctuación obvia.
(2) Bajo carga constante, el tiempo de respuesta en estado estable de la velocidad del motor de 120 rpm a 400 rpm es significativamente inferior a 0,5 segundos.
(3) El circuito completa (1) la parte de reproducción y la rotación hacia adelante y hacia atrás del motor.
(4) Usamos la rotación en sentido horario y antihorario del LED para representar la rotación hacia adelante y hacia atrás del motor; en la implementación de la parte de reproducción, mostramos el número de título correspondiente en el LED; el motor está sobrecargado. Aparece un error "E" en el LED. Las anteriores son nuestras innovaciones características.
⑸Después de múltiples mediciones y promedios, la precisión de control del motor ha alcanzado una holgura de ≤1%.
Resumen del diseño del verbo intransitivo
⑴ Originalmente, quería usar el módulo dedicado del medidor de pulso MC-C2513 para medir la velocidad del motor. Después de las pruebas, se descubrió que cuando la señal es superior a 10 Hz, el chip de procesamiento del codificador la filtra, lo que no es adecuado para el uso en circuito. Entonces, encontramos el dispositivo de transmisión y recepción de infrarrojos que fue desmontado e hicimos un sensor nosotros mismos. Después de conectar el motor y la placa de código, se realiza a través del circuito de acondicionamiento de señal.
⑵ A través de este experimento, hemos aprendido y aplicado bien la idea de programación sin bloqueo, mejorando en gran medida la eficiencia de la ejecución del código. También aprendí el algoritmo de control PID para hacer más preciso el control del motor, el módulo de visualización del teclado y la optimización del circuito de accionamiento del motor. Este circuito se puede mejorar aún mejor, usando LCD para crear un menú para controlar la pantalla y tener una mejor interfaz hombre-máquina.
⑶Cuando ajustamos el coeficiente PID, la forma de onda realimentada por el sensor es extremadamente inestable cuando el motor está a baja velocidad (≤70 rpm). Por lo tanto, es difícil que el coeficiente PID satisfaga tanto la velocidad alta como la velocidad baja. Por lo tanto, terminamos usando un método paso a paso analógico manual para controlar la baja velocidad del motor de CC.
⑷La desventaja de este diseño es que es difícil controlar la precisión del motor a bajas velocidades. Sin embargo, si se utilizan múltiples conjuntos de coeficientes PID, se pueden cumplir los requisitos, es decir, se utiliza un conjunto de coeficientes PID a alta velocidad y otro conjunto de coeficientes PID a baja velocidad. También puede utilizar la simulación manual para controlar la velocidad del motor paso a paso a baja velocidad como este diseño. Este método de simulación consiste en fijar el ciclo de trabajo de PWM y dejar que el motor gire. Cuando el microcontrolador detecta el número preestablecido de pulsos, retrasa el motor y controla la velocidad cambiando la duración del retraso.