@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).