Está en la página 1de 6

CONTROL PID

CONTROL AVANZANDO

8 DE AGOSTO DE 2022
CESAR DE JESUS CORDERO MAGAÑA
U.P.Z.M.G
Objetivo:
Implemente en el sistema de control de temperatura el algoritmo del control
proporcional logrando las mediciones de temperatura dadas por el prototipo
empleado.

Control de temperatura
como indica el nombre, un controlador de temperatura es un instrumento usado para el
control de la temperatura. El controlador de temperatura toma una entrada de un sensor
de temperatura y tiene una salida que está conectada a un elemento de regulación como
calentador o ventilador.
Para regular con precisión la temperatura de proceso sin una intensa participación del
operador, un sistema controlador de temperatura confía en un controlador, que acepta
como entrada un sensor de temperatura como el lm35.
Compara la temperatura real con la temperatura de control deseada, o punto de ajuste, y
proporciona una salida a un elemento de control. El controlador es una parte de todo el
sistema de control, y se deberá analizar todo el sistema para seleccionar el controlador
adecuado.

Control PID
La librería PID de Arduino nos permite implementar esta opción a nuestro código sin
necesidad de programar (ni entender) la función PID, la cual hace que, por ejemplo, el
control de procesos térmicos o mecánicos sea mucho más estable y se ajuste con más
precisión al punto que deseamos (Setpoint).
El control PID maneja varios parámetros:
--Input: Es la retroalimentación que da información al PID. Ejemplo, sensor de
temperatura, giroscopio, tacómetro, velocímetro,etc.
--Output: Es la salida del PID para controlar un termostato, un motor, un ventilador, etc.

--Setpoint: Es el valor que deseamos mantener. Un temperatura determinada,


velocidad, verticalidad de un autobalanceado, etc.
--Kp: Es el parámetro proporcional. Cuanto mayor es el número, más grande son las
variaciones. Mide los valores actuales del error y si el error es grande y positivo, la
corrección es grande y negativa y viceversa. Si las correcciones son muy agresivas, es fácil
pasarse mucho del Setpoint deseado.
--Ki: Parámetro integral. Cuanto menor es, más rapido reacciona a los cambios pero hay
más riesgo de oscilaciones. Cuenta valores de error pasados. Si la salida no es suficiente
para reducir el tamaño del error, la variable de control se va acumulando con el tiempo
causando que el control aplique una acción más fuerte. Corrige desviaciones pequeñas
que Kp no es capaz de detectar ni corregir.
--Kd: Parámetro derivativo. A mayor valor hay más control de las oscilaciones para llegar
al Setpoint. Cuenta por posibles futuros valores de error basado en la actual tasa de
cambios. Disminuye progresivamente las oscilaciones ocasionadas por Kp.

Materiales
 Censor de temperatura LM35
 Arduino
 Encendedor
 Ventilador
 Caja de cartón
Para llevar a cabo se necesitó elaborar una caja donde sirve como regulador
de temperatura, ya que cuenta con un ventilador el cual se prende llegando a
los 25°. El prototipo también cuenta con la ayuda de un censor de
temperatura LM35 para poder saber con la temperatura que se encuentra el
entorno y saber si accionar la función, para poder lograr con precisión la
práctica se debe de llevar a cabo un programa para Arduino quedando de la
siguiente manera.
Programa
//Control temperatura con PID

#include <PID_v1.h>

#define PIN_LM35 A0 //pin analogico

#define PIN_OUT 9 //pin de salida pwm

//Define Variables

double Setpoint, Input, Output;

//Iniciar parametros

double Kp=1243, Ki=62, Kd=6215; //Kp=6650, Ki=83, Kd=410;

PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, REVERSE);

unsigned long previousMillis = 0;

const long interval = 2000; //Gráfica cada 2''

void setup(){

analogReference(INTERNAL); //referencia de Arduino a 1v, mejor precision LM35

Serial.begin(9600);

Setpoint = 29; //La temperatura que queremos mantener

myPID.SetMode(AUTOMATIC);

void loop(){

unsigned long currentMillis = millis();

int value = analogRead(PIN_LM35); //Valor del LM35

float mv = (1100 / 1024.0) * value; //Valor leido a mV (el "tope" es de 1100mV)

float cel = mv / 10;//Los mV leidos a grados celsius

Input = cel;

myPID.Compute(); //Se hace el calculo por el PID

analogWrite (PIN_OUT, Output);

if (currentMillis + previousMillis >= interval) {

previousMillis = currentMillis;

Serial.print(Output/10); //PWM/10 para mejor gráfica

Serial.print(",");

Serial.println(Input); // Linea sensor LM35

}
Evidencia
Programa presentando

Arduino

Caja de refrigeración con


ventilador

Conclusiones
En esta practica trata de calcular la diferencia entre nuestra
variable real contra la variable deseada, en este caso hablamos de
controlar la velocidad, temperatura, flujo entre otras variables de
un proceso en general de este controlador PID, que a su vez lo que
aprendí es que podemos controlar la velocidad de nuestro
ventilador para controlar la temperatura y llevarla a un estado
normal.
Este controlador es indispensable para mi proyecto de CNC ya que
me ayudaría a controlar el Arduino y la tarjeta con los drivers, esto
ayudaría a que mi circuito eléctrico se mantenga controlado.
Me permite tener una mejor precisión de respuesta y me ayuda a
mejorar errores previos y propios de los dispositivos.

También podría gustarte