Estoy construyendo mi propio horno de reflujo controlado por microprocesador. Estoy usando relés (mecánicos) para encender o apagar los calentadores (es decir, tubos de cuarzo). He notado retrasos en el calentamiento unos segundos antes de que la temperatura comience a subir.
Por ahora estoy administrando el perfil de temperatura manualmente con la ayuda de un Arduino, que simplemente apaga los calentadores cuando se alcanza la temperatura establecida. Por ejemplo, cuando configuro la temperatura en, digamos, 120 ° Celsius y los calentadores se detienen, la temperatura aún sube de 10 a 20 grados, por lo que hay un exceso excesivo y algo de sonido, que disminuye lentamente.
He leído y visto muchos ejemplos que utilizan un PID para un mejor control de la temperatura. Sin eso, simplemente detendría los calentadores, como 10-20 grados por debajo del valor establecido y los encendería / apagaría en breves períodos hasta que la temperatura se estabilice alrededor del valor establecido. Solo sé que el delta varía con la temperatura, por lo que podría no ser tan sencillo: conozco la naturaleza exponencial del aumento de temperatura con un valor fijo.
Entonces, ¿alguien puede explicar en términos simples cómo un PID explica la inercia, por ejemplo, qué papel desempeña la parte integral y qué parte de la derivada desempeña en términos simples, así como cómo / si puedo calcular intuitivamente una estimación de la derivada y la integral cantidades sin recurrir a cálculos complejos.
Respuestas:
Tuve que hacer + el comentario de Glen. Constantemente tiene su cerebro en el lugar correcto, en mi humilde opinión. No hay nada más difícil de tratar en un PID que unΔ t retrasar. He estado lidiando con controles de temperatura calentados por lámpara para FAB de obleas IC, de una forma u otra, durante años. Permítanme comenzar con una descripción general de PID y hablar un poco sobre dónde NO será tan útil como en otros casos. También sugeriré uno de los muchos otros dominios de métodos de control que también podría explorar, pero con una prioridad de los pasos que primero debe tomar antes de ir a otro lado.
La expresión canónica para el control PID es:
Con los parámetros del controlador siendo la ganancia proporcionalK , tiempo integral Tyo y tiempo derivado Tre .
La descripción anterior, agregada a su propia descripción del problema de un retraso, sugeriría que un término derivado lo ayudaría. Pero como siempre, nada es necesariamente tan simple.
El control proporcional-integral es suficiente cuando la dinámica del proceso es de primer orden. Es fácil descubrir esto midiendo la respuesta escalonada. (Si la curva de Nyquist se encuentra solo en los cuadrantes primero y cuarto). También puede aplicarse en casos en los que el proceso no requiere un control estricto, incluso si no es de primer orden.
El control PID es suficiente para procesos donde las dinámicas dominantes son de segundo orden. El control de temperatura es a menudo el caso aquí. Entonces, una vez más, esto quizás argumenta a favor de agregar control derivado en su situación.
Sin embargo. Todo lo anterior solo debe considerarse después de haber hecho todo lo posible para mejorar algunas cosas:
Quiero elaborar un poco sobre este último punto. Imagina el control del proceso como si estuvieras parado en algún lugar, tratando de meter un poste de bambú delgado, muy flexible y tambaleante en un agujero distante de la casa de pájaros que está sentado en un árbol arriba y lejos de ti. Si estás cerca y el poste de bambú es corto, es fácil. Puedes hacerlo cada vez de forma rápida y fácil. Pero si la caña de bambú es larga y la casa del pájaro muy lejos de ti, es muy, muy difícil de hacer. El poste sigue vagando y hace que su predicción y control sean muy difíciles.
(Si aún no está claro, la longitud del poste de bambú es como el tiempo de retraso del bucle).
Entonces, la demora es probablemente la PEOR PESADILLA de los sistemas de control. Más retraso es muy malo. Por lo tanto, es muy importante que haga todo lo que esté a su alcance para reducir este retraso. Pero hay un punto más importante.
Ahora imagina la misma situación. Pero ahora el palo de bambú también cambia de longitud. A veces es más corto, a veces más largo, y varía continuamente sin predicción de su parte. Ahora tiene que seguir cambiando su postura y nunca se sabe cuándo cambiará la demora. Esta es la situación que existe si su SOFTWARE no controla con mucho cuidado y con un puño de hierro, el retraso de tiempo en procesar su valor ADC y generar una salida de control DAC.
Entonces, aunque el retraso es lo suficientemente malo para un sistema de control PID. El retraso variable es aún peor. Por lo tanto, debe prestar mucha atención al diseño de su software, una atención muy estricta, de modo que no tenga declaraciones IF y código de cálculo condicional, o el uso descuidado de temporizadores, etc., todo lo cual puede causar variaciones significativas en el retraso entre la muestra y la salida de control.
Debe administrar lo anterior en la administración antes de ENTONCES preocuparse por si necesita o no control derivado. Lo primero es lo primero. Limpia tu acto. Luego examine el sistema para determinar qué queda por hacer (usando PI vs PID, por ejemplo).
Estaba trabajando en sistemas de control PID usando un sistema pirómetro extremadamente preciso (también muy costoso para los clientes). Recibí una llamada de un investigador canadiense que trabajaba con nuestro pirómetro, pero usando un controlador PID separado de una gran empresa comercial (la más grande en el mundo haciendo estas cosas.) El investigador estaba luchando con las ondas al costado de una bola de arseniuro de galio que estaba sacando de una masa fundida. Y quería mi ayuda para descubrir las variables de control PID correctas. (En el boule-pull, quieres diámetros muy uniformes).
El controlador que estaba usando era bastante bueno según cualquier medida estándar. Pero agregó retrasos, y esos retrasos también variaron, ya que el software que contenía no controlaba rigurosamente el retraso que introdujo en el bucle de control general.
Entonces, lo primero que le dije fue que agregaría el control PID al software en nuestro pirómetro y que simplemente debería tirar del controlador externo del sistema que estaba usando. Agregué ese software en menos de una semana y le envié el sistema pyro modificado. No hice nada elegante con el software PID. Sin embargo, mantuve mi variabilidad en ADC a DAC a menos de un par de microsegundos y apreté el retraso general también a unos 100 microsegundos. Se lo envié a él.
Recibí una llamada el lunes de la próxima semana. Los bolos se retiraban casi a la perfección, sin ninguna ondulación.
Era tan simple como reducir los retrasos y también reducir la variabilidad en esos retrasos. Nada especial sobre el control PID, en absoluto. Fue una implementación sencilla que cualquiera produciría por primera vez al aprender sobre una.
Esto ilustra la importancia de exprimir el retraso y la variabilidad del retraso. Claro, el control derivado puede proporcionar algún tipo de idea de predicción "secante / tangente". Pero nada reemplaza reducir los retrasos y mantener la variabilidad al mínimo absoluto.
Solo sigue pensando en el poste de bambú y el problema del hoyo de la casa del pájaro.
¿Conclusión?
El control de los sistemas con un retraso de tiempo dominante es notoriamente difícil. He sugerido algunas razones por las que podríascree que un término derivado ayudará con retrasos en el tiempo. Pero existe un acuerdo general de que la acción derivada no ayuda mucho a los procesos que tienen retrasos de tiempo dominantes. Es por eso que inmediatamente sugerí ayudar a ese investigador eliminando todos los retrasos que podría eliminar fácilmente (como una caja PID externa, por ejemplo). No imaginé que mi implementación fuera mejor que el producto comercial. Sabía que mi implementación no sería tan bien investigada, de hecho. Maldición, tuve que escribirlo desde cero, probarlo e instalarlo, y enviar una unidad con el software recién agregado que nunca antes había tenido, y hacer todo eso en una semana. Pero también sabía que la demora estaba MATANDO todas las posibilidades que tenía este investigador para obtener los resultados que deseaba. Así que inmediatamente supe que el mejor enfoque era eliminar los retrasos y no inventar un código PID mágico implementado "brillantemente" que solo un genio pudiera seguir. Se trata de los retrasos y de cómo varían, en primer lugar. El resto es una prioridad mucho menor.
Hay algunas cosas llamadas "compensadores de tiempo muerto". Pero en el análisis final, debe hacer todo lo posible para eliminar los retrasos y eliminar la variabilidad en esos retrasos. Y luego, después de haber hecho todo lo posible, si todavía hay un problema, es probable que necesite controles más sofisticados de lo que permite un PID. Aquí, buscaría transformaciones de Fourier (y usar una transformación inversa para analizar las respuestas escalonadas y desarrollar una descripción de las respuestas del sistema), tal vez. Puede hacer mucho con estos que no se pueden tocar con PID. Resultados casi milagrosos, de hecho, si puede modelar la función de respuesta lo suficientemente bien.
Pero en su caso, me concentraría en eliminar los retrasos y su variabilidad. Creo que, si es posible, debería considerar evitar el uso de un control simplista de la lámpara de encendido / apagado Sería bueno si puedes controlar la intensidad de la lámpara. Pero no sé si puedes considerar eso.
fuente
Esto no responde directamente a su pregunta, pero le brinda algunas herramientas para mejorar su comprensión.
Hay un simple simulador de Excel en Engineers-Excel que puede resultarle útil.
Figura 1. Modelo de simulador PID.
La parte difícil es modelar su proceso - el horno - para establecer K - ganancia del proceso, Ts - la constante de tiempo de respuesta y Ls - el retraso de la respuesta. Yo sugiero:
Después de eso, puedes jugar con los parámetros PID para ver si puedes obtener la respuesta que deseas.
Tomando algunas conjeturas salvajes:
Figura 2. Salida del simulador Excel PID.
Por lo general, se saldrá con un término cero D si no es probable que su proceso tenga perturbaciones como un cambio repentino en el punto de ajuste o un cambio repentino en la carga térmica. Eso simplifica las cosas a una configuración de control PI.
Para calentar, puede obtener potencia proporcional encendiendo y apagando completamente la potencia lo suficientemente rápido en relación con el tiempo de respuesta térmica.
Figura 3. Ciclo de trabajo variable para el control de CA de un calentador.
fuente
En PID hay 3 partes: proporcional, integral y derivada.
Proporcional es el controlador más simple. Amplifica el error entre la señal deseada y la real. Por ejemplo, si la temperatura deseada es de 100 ° C, la real es de 80 ° C, luego la salida = 20 * Kp. La cantidad de salida dada es ajustada por Kp.
Si ajusta Kp demasiado bajo, no hay suficiente calentamiento y es posible que nunca alcance la temperatura deseada.
Si ajusta Kp demasiado alto, puede aumentar demasiado rápido. La inercia puede provocar sobreimpulso y zumbidos. Eso es porque hay un retraso entre dar una cierta potencia de salida y medir su efecto.
La parte integral es necesaria si desea compensaciones estáticas bajas. Tenga en cuenta que para que un controlador P dé una salida, debe tener un error presente para generar cualquier valor de salida. Si desea que el error esté muy cerca de cero, necesita la parte I para reemplazar a P. Sin embargo, esto puede llevar algún tiempo.
La parte derivada es probablemente la más interesante para su problema de inercia. La derivada analiza la tasa de cambio del error. Si hay una gran tasa de cambio en el error, significa que hay una alta inercia. Usando un factor sintonizado Kd puede asegurarse de que la salida se acelerará en el tiempo. Esto es para que la inercia disminuya antes de alcanzar el valor final de salida.
Esto le permite usar un factor P alto (er) para una respuesta agresiva adecuada, mientras usa D para evitar el sobreimpulso. La parte I se usa para hacer que el error estático eventualmente se establezca en 0.
fuente