Explique en términos simples cómo un PID explica la inercia en el control de temperatura.


9

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.


El desafío son los retrasos, como has visto. Por lo tanto, la clave para controlar está en examinar los slewrates y derivados de slewrates
analogsystemsrf

@analogsystemsrf Creo que lo tengo en realidad. Como puede leer, tengo algunas dificultades para intentar establecer el vínculo entre esta (teoría) y aquello (práctica). En resumen: ¿cuál es la parte que compensa el retraso y cómo ?

1
Los retrasos son horribles de tratar. Quizás causado por un sensor demasiado alejado del calentador. O un calentador demasiado grande, con demasiada masa térmica. Los factores de escala PID pueden cambiar mucho cuando se cambia la disposición física. La disminución de los retrasos ayuda a lograr factores de control PID que producen errores más pequeños.
glen_geek

Realmente no puede implementar un PID si el único control que tiene es encender y apagar el calentador con un relé.
mkeith

2
Utilizo controladores de temperatura industriales para el trabajo. Los que tienen salida de relé generalmente limitan el tiempo de ciclo a un mínimo de 5 s. Los que tienen una salida de CC de estado sólido para controlar un SSR no tienen esta restricción. Si piensa en una aplicación con una constante de tiempo larga, por ejemplo, un horno de vidrio o una tonelada de chocolate, podría imaginar que un ciclo de trabajo de 30 segundos podría ser adecuado para controlarlo bien.
Transistor

Respuestas:


12

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Δtretrasar. 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:

ut=K[et+1Ti0teτdτ+Tddetdt]

Con los parámetros del controlador siendo la ganancia proporcional K, tiempo integral Tiy tiempo derivado Td.

  1. Control proporcional : la acción de control aquí es simplemente proporcional al error de control. (La ecuación anterior se reduce aut=Ket+ub, dónde ub es un sesgo o reinicio del controlador.) Un análisis de un modelo de proceso estático muestra que el proceso resultante tiene un desplazamiento residual o un sesgo del controlador en estado estacionario (aunque un sistema se puede ajustar manualmente para que pueda haber un error de control de cero en uno y solo un valor de punto de consigna mediante una elección adecuada de la polarización del controlador. Depende de los objetivos.
  2. Control proporcional + integral : La función principal de la acción integral es asegurarse de que la salida del proceso concuerde con el punto de ajuste en estado estacionario. Con una acción integral, un pequeño error positivo siempre dará como resultado una señal de control creciente y un pequeño error negativo siempre dará como resultado una señal de control decreciente. Esto es cierto sin importar cuán pequeño sea el error.
  3. Control PID : agregar control derivado mejora la estabilidad en bucle cerrado. (Pasará algún tiempo antes de que se note un cambio en el control en la salida del proceso. Por lo tanto, el sistema de control se retrasará, corrigiendo ese error. El resultado final del término derivado es que es un tipo de predicción hecha extrapolando error usando una tangente a la curva de error, usada para anticipar los resultados retrasados.

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:

  • Utilice el sensor de temperatura de respuesta más rápida que pueda aplicar razonablemente (masa pequeña, pirometría, etc.) y aplíquelo en una situación con el menor retraso de respuesta posible al proceso que desea controlar (cerca, no lejos).
  • Reduzca la variación de retraso en la toma de medidas y en el control del proceso de promulgación.

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.


1
Muchas gracias, Jonk, esa fue una explicación bastante profunda (para mí). La demora de la que hablé bien, me temo que no puedo reducirla, ya que creo que es inherentemente cómo se hace el horno: modifiqué un horno de uso general en un horno de reflujo como se encuentra comúnmente en Internet. Sin embargo, a pesar de usar tubos de cuarzo, el aumento de temperatura es la mitad de la velocidad requerida (no más de 1 ° C por segundo en lugar de 2-3). En cuanto al sensor, estoy usando un par de termopares K y verifiqué que tiene poca o ninguna inercia. Sin embargo, lo único que he notado es que el retraso de la temperatura disminuye si precaliento el horno, es decir, alrededor de 50 ° C.

¿Has probado el Smith Predictor Controller para mitigar el retraso?
Chu

@Chu Todavía no, solo aprendí sobre esto aquí :-D. Además, mi horno está parcialmente desmontado actualmente y no tengo mis manos encima.

Primero acepté tu respuesta por lo elaborada y detallada que es. También porque estaba abierto a usar cualquier ajuste, incluso si no implicaba un PID. Su respuesta y la de Transistor me dieron suficientes pistas sobre qué hacer a continuación. Sin embargo, solo puede haber una [respuesta aceptada]. Muchas gracias a todos de todos modos .

4

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.

ingrese la descripción de la imagen aquí

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:

  • Encienda su horno a, digamos 40% de potencia (P1) y ver a qué temperatura se estabiliza. Repita en, digamos, 70% de potencia (P2) y registre la temperatura. La ganancia del proceso se proporciona (para este rango de configuraciones) como
    K=T2T1P2P1
    y la respuesta tendrá las unidades más bien impares de grados /%.
  • Trace la respuesta de temperatura a lo largo del tiempo mientras cambia entre P1 y P2. LS, el tiempo de retraso, es el tiempo entre el cambio y el momento en que la temperatura comienza a aumentar.
  • TS es el tiempo (desde el inicio de la respuesta) hasta que la temperatura alcanza el 63% (una constante de tiempo) del camino desde el T1 a T2.

Después de eso, puedes jugar con los parámetros PID para ver si puedes obtener la respuesta que deseas.

Tomando algunas conjeturas salvajes:

  • P1=40%y .T1=92°C
  • P1=70% y .T2=176°C
  • K=176927040=2.8°C/% .
  • Ls=3s .
  • Se necesitan 50 s para obtener el 63% del camino de 92 ° C a 176 ° C, entonces .TS=50s

ingrese la descripción de la imagen aquí

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.ingrese la descripción de la imagen aquí

Figura 3. Ciclo de trabajo variable para el control de CA de un calentador.


Gracias por la comprensible información técnica. Solo una nota al margen: dado que uso relés, que descubrí que son más baratos que los SSR (fuente: Digi-Key), solo puedo encender o apagar los calentadores por completo, no hay un ajuste posible entre 0% y 100%. Además, no puedo usar el cruce por cero para apagar los calentadores, pero supongo que eso es de menor importancia. De todos modos muchas gracias por sus ideas.

2
Mi Figura 3 muestra el control de encendido y apagado y es lo que harás y está bien. Estará promediando en cualquier lugar que desee entre 0 y 100%. Efectivamente es una modulación lenta de ancho de pulso (PWM) con AC. Cambiará manteniendo el tiempo de ciclo razonablemente corto con la vida útil del relé. El cruce por cero es bueno porque reduce el ruido eléctrico. ¡Si no es un problema, entonces no es un problema!
Transistor

2

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.


En realidad, a largo plazo, es el término P el que cae a cero, ya que el término I se integra exactamente al punto de ajuste, dejando la diferencia de salida en cero, y P por cero es cero.
WhatRoughBeast
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.