¿Cómo aprender el control PID?

26

Quiero aprender control PID (Proporcional – Integral – Derivativo) principalmente para la temperatura.

Me gustaría aprender preferiblemente a través de un proyecto fácil de hacer.

¿Podrías recomendar algo que tardarías unas semanas en aprender?

Editar: Quiero controlar la temperatura de un tanque de agua. El calentamiento se realiza mediante una resistencia.

    
pregunta Daniel Grillo

5 respuestas

26

Controlar la temperatura (depende de tu medio) no es terriblemente difícil. Ese fue mi primer proyecto cuando comencé. Perdóneme, si repito cosas que ya sabe.

Supongo que ya tiene una forma de controlar el sistema (es decir, un calentador o una unidad de refrigeración) y una forma de obtener retroalimentación del sistema (un sensor de temperatura como un termistor o algo así). Necesitará ambos para implementar un bucle PID, que es un tipo de control de bucle cerrado. Todo lo que realmente necesita hacer después de eso es escribir un poco de software para enviar comandos de control, leer comentarios y tomar decisiones sobre esos comentarios.

Empezaría leyendo PID sin un PhD . Es el artículo que usé cuando tuve que regular la temperatura en un experimento científico. Proporciona algunas imágenes fáciles de entender y un buen código de muestra (un bucle básico que puede modificar solo necesita 30 líneas) que explica cómo controlar su 'planta': en este caso, la cosa que desea controlar la temperatura de .

La esencia de PID - Proporcional-Integral-Diferencial - el control es usar el rendimiento futuro instantáneo, pasado y predicho (respectivamente) del sistema para determinar cómo controlar un sistema en un momento dado en el tiempo para alcanzar un conjunto específico punto. En muchos casos, tendrá que ajustar los factores de ganancia del algoritmo para obtener el rendimiento deseado que necesita: la rapidez con que aumentará la temperatura, la cantidad que desea evitar el sobreimpulso, etc. Es posible que incluso descubra que no necesita el diferencial ¡O incluso control integral para llegar a donde quieres estar!

    
respondido por el J. Polfer
10

Sí. Consigue un termistor y una resistencia. Elija una resistencia que pueda atraer una corriente decentemente grande (> 100mA).

Use pasta térmica entre ellos y péguelas con cinta adhesiva. Conecte el circuito del termistor a un microcontrolador a través del ADC. Use un transistor para controlar la resistencia y controle esto con un PWM.

Desarrolle un PID que le permita controlar la temperatura con un dial y practique hacer un PID que exceda y suene la temperatura. Haz que esté demasiado amortiguado y tómate una eternidad para alcanzar la temperatura, e intenta conseguir que se humedezca críticamente y llegar a la temperatura máxima.

Hazme saber si más detalles ayudarían.

Una vez hecho esto, reduzca su conductancia térmica, intente agregar una etapa que demore la propagación de la temperatura e intente controlarla bien.

Esto también se puede hacer con un LED y un fototransistor.

    
respondido por el Kortuk
2

Además de la aplicación de control de temperatura obvia, aquí hay un hermoso proyecto que requiere control PID. Hágase un robot de seguimiento de línea: enlace

    
respondido por el Christopher Biggs
1

Un bonito simulador de PID está disponible para Scilab.

    
respondido por el Leon Heller
1

Solo estoy agregando mi valor de 2 centavos a las buenas respuestas.

El uso práctico de PID para el control de la temperatura a menudo tiene comportamientos no lineales si la detección del error de temperatura es limitada (la salida de la saturación de la ganancia del amplificador operacional) y la potencia disponible para controlar la temperatura es fija.

Considere un controlador on-off. El sistema tendrá una latencia desde el momento en que se aplica calor y se detecta un cambio en la temperatura. En este bucle no PID, esta latencia crea un bucle inestable que oscila y, si existe alguna histéresis, la potencia se activa con ruido (encendido-apagado-encendido) Sin embargo, una ganancia muy alta (como un comparador) produce un pequeño error de temperatura residual. La latencia afecta el tiempo de ciclo y el rebasamiento.

Si hubo una perturbación externa, como una lámpara del tanque, que puede agregar un calor significativo, el regulador del calentador debe responder tan pronto como se detecte un aumento de temperatura por el calor de la lámpara. Si su lámpara no es parte del bucle PID, entonces no puede "anticipar" el efecto (ganancia de retroalimentación derivada) Obviamente, si las lámparas generan demasiado calor, entonces la temperatura no puede ser regulada y excederá el punto de ajuste.

Es posible que su control de calor con control PID tenga que tener una entrada para el estado del interruptor de la lámpara y el control de salida para regular la potencia de la luz como una fuente secundaria de calor, nuevamente si es demasiado.

La definición de sus requisitos de error de control absoluto,% de sobrecarga y tiempo de respuesta son algunas entradas de diseño necesarias para optimizar su bucle PID. Igualmente importante es definir las perturbaciones de su sistema e incluirlas en su sistema de control para entrada y salida. p.ej. Potencia térmica de la lámpara y elección de sensor (es) y ubicación.

Experiencia aparte.

Mi primera experiencia con un calentador de agua fue durante la era de la cama de agua de los años 70 cuando era estudiante. Diseñé mi propio controlador de temperatura utilizando un termistor, un circuito de control y un interruptor triac de cruce de cero hacia el calentador. Comencé con el control comparativo y encontré una respuesta inusual al saltar en la cama. Así que agregué control proporcional usando ruido sin filtrar en el sensor para darme "ciclos faltantes" proporcionales cuando el triac ZCS estaba ENCENDIDO cerca del umbral. Pude regular la temperatura dentro de 0.1'C La respuesta fue más suave pero el resultado fue el mismo.

  

Encontré que el error más grande estaba en la ubicación y pequeños cambios en la presión del agua en el sensor. (Yo era pequeño, solo 185 lb, pero en un lecho de agua de 2000 lb; un 10% de cambio en la presión del agua era muy pequeño)

     

La resistencia térmica entre el sensor y la cama de agua creó un pequeño error de compensación dependiendo de la presión del agua contra el sensor. En el escenario de su tanque de agua, el error del sensor podría ser afectado por el tamaño del tanque y la distancia entre el sensor y el calentador o sensor y la superficie más alejada del agua o la tasa de flujo de agua o burbujas entre el sensor y el calentador.

En mi caso, cada vez que saltaba a la cama, la resistencia térmica disminuía ligeramente debido a la presión agregada y la luz de encendido brillaba con intensidad durante un minuto o dos hasta que la temperatura bajara una décima de grado o para igualar el aumento de temperatura aparente del peso adicional y presión de la cama de agua contra el termostato.

  

(Lección aprendida. No descuide las fuentes de distracciones y sus efectos en el error del sistema de control)

    
respondido por el Tony EE rocketscientist

Lea otras preguntas en las etiquetas