¿Cómo encontrar constantes para controlador PID?

Buenos días, soy Abdiel. Tengo rato que no me paso por acá por el foro, pero me gustaría retomar nuevamente y ayudar en la medida de lo posible. En esta ocasión tengo una duda que agradecería mucho que alguien que tenga conocimiento en control me pudiera ayudar. La duda es relativamente simple, realicé un sistema para controlar temperatura, ahora me gustaría encontrar las constantes para un control PID de este mismo sistema, pero desconozco como realizarlo. A continuación adjunto una imagen de la respuesta al sistema ante un escalón.
Output.jpg
Input.jpg

El primero duda es si se trata de un sistema de primer orden o no, esto lo digo por qué parece que existe un ligero retardo en los primeros segundos de la respuesta.

Finalmente, cuál método me podrían recomendar para encontrar las constantes (no cuento con el modelo matemático). Muchísimas gracias por la atención y lo agradecería bastante si me pudieran ayudar, me encuentro al pendiente para responder cualquier cosa.
 
300px-PID_es_updated_feedback.svg.png


Proporcional :
La fórmula del proporcional está dada por: P sal = Kp e(t)

Donde:
Kp es la ganancia proporcional, valor de sintonización.

e(t) = SP -PV(t) es el error (SP es el punto de establecimiento, y PV(t) es la variable de proceso)

t es el tiempo o tiempo instantáneo(el actual),

Proporcional.PNG


Integral :
El control integral se utiliza para obviar el inconveniente del offset (desviación permanente de la variable con respecto al punto de consigna) de la banda proporcional.
La fórmula del integral está dada por: I sal = Ki (integral de 0 a t de e(r) dr

Donde:
Ki es la ganancia integral, un parámetro de ajuste y....
T es la variable de integración (toma en cuenta el valor desde el instante 0 hasta el instante actual
320px-Integral.PNG


Derivativa :
La fórmula del derivativo está dada por: Dsal = Kd x (de/dt)
Donde:

Kd es la ganancia derivativa, un parámetro de ajuste, y

t es el tiempo o tiempo instantáneo (el presente)

El control derivativo se caracteriza por el tiempo de acción derivada en minutos de anticipo. La acción derivada es adecuada cuando hay retraso entre el movimiento de la válvula de control y su repercusión a la variable controlada.

Cuando el tiempo de acción derivada es grande, hay inestabilidad en el proceso. Cuando el tiempo de acción derivada es pequeño la variable oscila demasiado con relación al punto de consigna. Suele ser poco utilizada debido a la sensibilidad al ruido que manifiesta y a las complicaciones que ello conlleva.
Derivativo.PNG


Afortunadamente para usted, cuando usted quiera realizar el control propiamente dicho, tendrá el camino allanado porque hoy dia, casi todos los controles serios de temperatura u otras magnitudes, usan y traen incorporado, algún tipo de PID y usted solo tendrá que poner las consignas que usted necesita y el equipo hará el resto por usted.
:unsure: :rolleyes:
Si lo que quiere no es algo muy especial, en minutos lo tendrá resuelto.
Tiene que plantear su problema en particular y ver en cual fenómeno acomoda alguna de las 3 soluciones posibles, o una combinación de ellas.

Originalmente, este concepto PID se desarrollo a partir del trabajo que hacia un timonel de barco, que la armada Norteamericana queria desarrollar a mano de un ingeniero Ruso :unsure: :LOL: (todos los caminos conducen a Roma)
 
Última edición:

Dr. Zoidberg

Well-known-Papá Pitufo
Esto ya se trató hace una parva de años pero nadie usa el buscador :mad:
Leé esto:
 
Que pena me dió el usuario Frank Frankus de Perú , apenas recibido y teniendo que lidiar con el PLC SIEMENS S7-400, que en aquellos años, todavía tenían varios de ellos, un software alemán durísimo, complicado y riguroso para programar y con mas razón, un PID que todavía no venía
estandar en los gamas bajas y había que mover la mollera, para hacer algunas rutinas de conversiones. Los primeros incluso eran en un Asemmbler propio, nada de Ladder. Te hacia llorar a veces. Yo vivia lleno de apuntes en lápiz para el manejo de memoria byte a byte ...jajjajajaaa
 
Gracias por las respuestas. Con la información que tengo de la respuesta ante una entrada escalon decidí utilizar pidTuner de Matlab, ajustar un modelo para la planta y encontrar las constantes, el problema que tengo ahora es que el sistema no responde como lo esperado, responde pero no de la manera más adecuada. Estoy utilizando un arduino para el sistema y no se si se deba a la libreria o algun otro error. Recomiendan el uso de esta libreria de arduino?

Saludos
 
Gracias por las respuestas. Con la información que tengo de la respuesta ante una entrada escalon decidí utilizar pidTuner de Matlab, ajustar un modelo para la planta y encontrar las constantes, el problema que tengo ahora es que el sistema no responde como lo esperado, responde pero no de la manera más adecuada. Estoy utilizando un arduino para el sistema y no se si se deba a la libreria o algun otro error. Recomiendan el uso de esta libreria de arduino?

Saludos
Describa por favor, de que manera NO responde y exactamente la temperatura de que COSA controla, no podemos decirle si usar o no una librería, sin saber en que aplicación vá a ser usando. No todo aplicación, es apta para Arduino aunque funcione perfecto.
En mi caso nunca use Arduino pero para el caso es lo mismo.
Para uso profesional, no se usan controles amateur o de hobby , para que se entienda.
Si solo quiere encender el ventilador de su casa, puede usar lo que quiera.
Es típico que en los primeros intentos, el sistema no responda según se espera, casi siempre es porque, se omitió algo o de subestimó algun aspecto, incluso porque no se entendió bien algún asunto ó algún parámetro no tiene la magnitud que se creía.
Trabaje primero en lazo abierto, hasta que el sistema esté cerca del equilibrio que usted quiere pero, sin participación de los actuadores, empíricamente. Cuando eso suceda es momento de tomar los primeros valores constantes para ir arrimando de a poco hasta las consignas definitivas de su sistema.
 
Última edición:
Me gustaría tener el tiempo y el dinero suficiente para realizar el sistema de manera profesional, lamentablemente no cuento con ello es por eso que opto por soluciones rápidas y lo más adecuadas de acuerdo a los recursos y lo que busco.

El sistema algo simplificado es el siguiente:
sistema.JPG

Una disculpa si no utilizo la terminologia correcta, no estoy tan empapado de el lenguaje.

Básicamente se trata de un control de temperatura donde la planta corresponde con un "cautín" y la retroalimentación es el sensor de temperatura MAX6675. Con arduino detecto los cruces por cero de la señal de AC y con esto saber cuando activar el triac del circuito del dimmer, también lo utilizo para activar el abanico y detectar la señal del sensor de audio cuando sea necesario.

Me gustaria obtener un perfil lineal de temperatura . Mi plan es realisar un PID y cambiar el set point 1,0.5 o 0.25 grados cada tiempo en especifico.

Estos son los resultados que he obtenido implementando un PID con la libreria que ya anteriormente adjunté.

1646370458639.png

Esto tiene un "rizado" que no deseo y creo que es porque el PID no está haciendo su función como debería. Por ese motivo pregunto acerca de la librería.
 
Última edición:
Me gustaría tener el tiempo y el dinero suficiente para realizar el sistema de manera profesional, lamentablemente no cuento con ello es por eso que opto por soluciones rápidas y lo más adecuadas de acuerdo a los recursos y lo que busco.

El sistema algo simplificado es el siguiente:
Ver el archivo adjunto 278888

Una disculpa si no utilizo la terminologia correcta, no estoy tan empapado de el lenguaje.

Básicamente se trata de un control de temperatura donde la planta corresponde con un "cautín" y la retroalimentación es el sensor de temperatura MAX6675. Con arduino detecto los cruces por cero de la señal de AC y con esto saber cuando activar el triac del circuito del dimmer, también lo utilizo para activar el abanico y detectar la señal del sensor de audio cuando sea necesario.

Me gustaria obtener un perfil lineal de temperatura . Mi plan es realisar un PID y cambiar el set point 1,0.5 o 0.25 grados cada tiempo en especifico.

Estos son los resultados que he obtenido implementando un PID con la libreria que ya anteriormente adjunté.

Ver el archivo adjunto 278889

Esto tiene un "rizado" que no deseo y creo que es porque el PID no está haciendo su función como debería. Por ese motivo pregunto acerca de la librería.
Con ON/ OFF , de gracias que se mantiene a un grado. si quiere perfecto tendrá que usar un calefactor analógico que haga pequeños pasos, pero su reacción será mas lenta.

Cambiando de tema, existen optoacopladores con Crossing-zero asi se ahorra el Arduino
 
Pareciera que se trata de ON/OFF , pero no lo es. Funciona con PWM.
Adjunto un pequeño video del funcionamiento con un foco antes de utilizar el cautín.

 

Dr. Zoidberg

Well-known-Papá Pitufo
decidí utilizar pidTuner de Matlab, ajustar un modelo para la planta y encontrar las constantes, el problema que tengo ahora es que el sistema no responde como lo esperado,
Y si dijiste no tenes el modelo de la planta a controlar, que es lo que le das al pidtuner para que calcule el ajuste del PID ????
Y si el sistema no responde "como lo esperado" ...le habrás escapado al modelo de la planta que NO parece ser de primer orden sino de segundo o más
 
Y si dijiste no tenes el modelo de la planta a controlar, que es lo que le das al pidtuner para que calcule el ajuste del PID ????
Y si el sistema no responde "como lo esperado" ...le habrás escapado al modelo de la planta que NO parece ser de primer orden sino de segundo o más
-Le doy la respuesta de mi sistema ante una entrada de escalón. Se supone que con esto, el programa ajusta un modelo de acuerdo a estos datos.
-Lo segundo que mencionaste la verdad no lo entendí... ¿Podrías escribirlo de otra manera?

Gracias
 

Dr. Zoidberg

Well-known-Papá Pitufo
Ok. Ajustó un PD con mínima integral. Esa curva está, a simple vista ni mas datos, OK y no debería darte ningun problema.
La recta con picos que mostraste no se de donde sale ni como fijás el set-point, pero la respuesta del PID está OK, con el problema de que responde "lento" pero sin conocer el modelo de planta puede estar muy bien...o nó.
 
-Le doy la respuesta de mi sistema ante una entrada de escalón. Se supone que con esto, el programa ajusta un modelo de acuerdo a estos datos.
-Lo segundo que mencionaste la verdad no lo entendí... ¿Podrías escribirlo de otra manera?

Gracias
-O sea que usted ¿ no está entendiendo el concepto en su totalidad sino parcialmente ?
- Del PWM usted tiene que lograr que se convierta en una fuente de calor o frío segun el modelo , que sea constante. Despues que lo aclare veo.
- ¿Quien capta el calor de esa lámpara para cerrar el bucle ?
 
Quizás pueda aportar algo: En ESTE SITIO, hay una explicación que creo razonable sobre qué es un PID (Algo de matemáticas pero no mucha, más bien poca)[*] y algo más que me parece importante ¡UN SIMULADOR! [Básico eso sí, de los de tipo de controles deslizantes que opera sobre los valores de K y a partir de allí ver comportamientos de la respuesta en un graficador]

[*] No se bien la razón, pero a veces, éste aparte aclaratorio que hice [que hay poca matemáticas] se ve como una ventaja :rolleyes:
 

Dr. Zoidberg

Well-known-Papá Pitufo
Quizás pueda aportar algo...
El problema no es el PID, el problema es @L3iDb4 no tiene idea que es lo que quiere hacer ni por que hacerlo.
Con el tipo de respuesta del sistema en lazo abierto (asumiendo que eso es lo que muestra en el primer post) solo debería usar un controlador P con la ganancia suficiente para meter la respuesta del sistema de lazo cerrado dentro del error de estado estacionario que sea necesario para mantener la temperatura del cautín donde la necesite.
Hasta ahora no sabemos cual es error que se tolera en la temperatura del cautín. Tampoco sabemos el tiempo de respuesta necesario para meter la temperatura del cautín dentro del margen de error.
Con esas dos cosas podríamos tratar de encontrar cual es la respuesta temporal mas apropiada y ajustar el PID en consecuencia.
Hay otras cosas importantes que también desconocemos, como el tiempo de muestreo del controlador PID, por que la planta es analógica y el controlador es de tiempo discreto.
Y así siguiendo....
 
.



Disculpen que me meta, pero por aquí (hacer click) dio a entender que desea hacen un Control de Temperatura para su soldador, ahora no se si es un ejemplo o lo que realmente desea hacer.


En lo que respecta a Control de Temperatura para su soldador hay un thread en el Foro con uno analógico muy bien documentado.





Salu2.-
 
Arriba