Cómo interpretar la salida PID en un sistema de respuesta lenta

3

@Actualizar : Han pasado algunos días desde que hice esta pregunta y tuve la oportunidad de hacer una investigación basada en las respuestas que he recibido de @R Drast y @Spehro. No estoy seguro de que esta actualización sea lo correcto, pero mis nuevas preguntas aún están relacionadas con el tema original y el título aún es relevante.

No me había dado cuenta de que "Posición" y "Velocidad" son dos tipos de algoritmos que determinan cómo se trata la salida PID (probablemente se desprenda de mis respuestas originales a continuación). Por extraño que parezca, calculé que el método incremental y relativo (velocidad) era, de manera intuitiva, el más apropiado para mi situación y, sin embargo, fue rechazado en las respuestas anteriores. Por lo tanto, tengo algunas preguntas sobre el método de posición relacionado con mi configuración específica (temperatura de medición, tiempo muerto grande, etc.).

En primer lugar, quiero asegurarme de que tengo una comprensión correcta de cómo funciona realmente el método de posición. Entiendo que significa que asigna una salida PID a cada posición (válida) en el actuador. Por ejemplo, una salida PID de -3V sería una extensión del actuador, por ejemplo, completamente retraída (es decir, ventana cerrada / menor ventilación) mientras que 3V sería el otro extremo (ventilación totalmente extendida o máxima). Esto pondría cero en algún punto intermedio. ¿Tengo este derecho?

Si el entendimiento anterior es correcto, entonces eso significaría que usted predetermina el punto en el actuador cuando el error es cero. ¿Es eso correcto?

Entonces, ¿cómo lidias con el siguiente escenario? Es media mañana y 25 grados en el gh. El SP es de 25 grados y el actuador está completamente retraído, el error es 0 (por lo que esto coloca la posición cero como: actuador completamente retraído, lo suficientemente justo). A medida que avanza el mediodía, la temperatura sube, el actuador abre la ventana y la temperatura en el gh vuelve a caer. Ahora tenemos una nueva posición del accionador de 0 puntos. No puede pedirle al actuador que vuelva a la posición cero original, ¡eso cerraría la ventana!

Obviamente me he equivocado en algún lugar y no sigo lo que @R Drast y @Spehro han dicho a continuación. ¿Pueden ustedes (o alguien más) ponerme directamente en esto?

=============================================== ===================== Pregunta original :

Soy relativamente nuevo en electrónica y he estado trabajando en un controlador de temperatura para mi invernadero desde hace algún tiempo. El sistema consta de un controlador PID y un actuador lineal, todo orquestado por un microcontrolador, el ATTiny 2313 muy probablemente (ver imágenes). El diagrama de bloques no lo captura, pero el actuador está controlado por una parada final y el LDR está ahí para cerrar todo por la noche. Mi intención original era hacer esto sin un microcontrolador, por lo que las piezas como el DAC parecen un poco redundantes ahora (aunque creo que guardaré algunos pines en mi unidad de control de usuario). Ese es el fondo, con la mayoría de los componentes individuales creados y probados en esta etapa.

Mipreguntaesesta:¿cómodebointerpretarlasalidaPIDenunsistemacuyaretroalimentacióneslenta?EntiendoquelasalidaPIDesun"comando" de control, por lo que cuando la salida PID es de + 2V, está diciendo "ajustar la salida del sistema en + 2V para alcanzar el objetivo del punto de ajuste". Puedo entender esto, por ejemplo, el control de velocidad del motor donde la retroalimentación es rápida. Hay pocas posibilidades de que el sistema se estire demasiado debido a una respuesta lenta del sistema, ya que el motor responderá inmediatamente al comando PID y, en el siguiente instante, el comando habrá cambiado apropiadamente.

Para ser claro y en respuesta a un comentario de un respondedor, entiendo que el comando es "posicional", lo cual tiene sentido, ya que una salida PID de 0 significa que no se mueve desde su posición actual, se ha obtenido el punto de ajuste .

Sin embargo, puedo ver (usando la configuración de mi prototipo, ver imagen) que el comando del PID se puede enviar durante bastante tiempo debido a la lenta respuesta del sistema que lleva al actuador a la parada final. Una de las ideas que tuve fue retrasar la ejecución del comando muestreando la salida PID (usando la unidad de control de voz) cada cierto tiempo y luego actuar en consecuencia. Este es un intento de hacer coincidir el comando con la respuesta del sistema, pero no estoy seguro de si es lo correcto. ¿Qué es lo mejor que se puede hacer aquí? (Disculpas por la calidad del diagrama del circuito del controlador PID. Fue difícil ajustarlo todo en la imagen).

    
pregunta Buck8pe

2 respuestas

4

No debe utilizar la salida PID como un comando de velocidad en su sistema, ya que simplemente se volverá inestable y eventualmente oscilará entre un límite final y el otro, o no tendrá respuesta.

Usando un actuador lineal como usted, debe usar la salida del PID como un comando de posición, y hacer que el actuador siga la salida de esa manera. Al establecer los límites mínimo y máximo de PID, los interruptores de final de recorrido solo son seguros si algo va terriblemente mal.

Además, si detecta que su PID está en uno de los límites (lo que podría ser si la respuesta es muy lenta), desea inhibir el término integral mientras esté en un límite para que no No sufras por la integración del integrador.

El PID funciona bien en los controles de motor, es cierto, pero los uso industrialmente para controlar las temperaturas fácilmente en sistemas con varios minutos de retraso. La sintonía lo es todo ... Recuerde lo básico, la ganancia proporcional solo lo llevará (aproximadamente) a la mitad o tres cuartos del punto de ajuste, la ganancia integral lo llevará por el resto del camino. Derivado templa el cambio.

Para los bucles de control de temperatura con un retraso prolongado, me parece mucho más fácil elevar el punto de ajuste lentamente hasta el punto de ajuste final, en lugar de hacerlo de forma inmediata, permite un ajuste más preciso del PID sin tener que oscilar. p>     

respondido por el R Drast
2

Su rango de sintonización del término 'I' es demasiado bajo por un factor enorme.

Normalmente, querría una constante de tiempo ajustable en minutos (tal vez ajustable de 1 a 30 minutos), no segundos, para un sistema de control térmico grande. Lo que has mostrado allí funcionará para desestabilizar bien el bucle de control. De todos modos, a menudo no es necesario que yo controle; un control proporcional con alta ganancia puede hacer mucho (y la ganancia puede ser mayor si el término I no está allí para morder la estabilidad, incluso cuando está correctamente sintonizado). Si insiste en usarlo, necesitará un condensador de fugas mucho más grande, un amplificador operacional que sea mejor y un resistor de valor mucho más alto o que lo haga de manera digital. También hay trucos que se pueden jugar con voltajes más bajos y amplificadores operacionales de muy baja fuga.

Por lo general, desea restablecer el integrador o al menos dejar de integrarlo cuando la salida se enrolla o obtendrá un enrollamiento del integrador que provocará un exceso de invasión y tal vez incluso inestabilidad a medida que la variable del proceso alcanza el punto de ajuste. El mejor método para eso depende del esquema que esté utilizando, pero podría ser un interruptor analógico o un relé de lámina.

    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas