MAQUETA DIDÁCTICA DE CONTROL PID CON ARDUINO

1 MAQUETA DIDÁCTICA DE CONTROL PID CON ARDUINOPonente: Ma...
Author: Alberto Acosta Silva
0 downloads 1 Views

1 MAQUETA DIDÁCTICA DE CONTROL PID CON ARDUINOPonente: Manuel Hidalgo Díaz Coautores: Igor Real – Alberto Yebra

2 Objetivos del proyectoCrear una maqueta con elementos de bajo coste y fácil adquisición para los centros educativos. Presentar los conceptos básicos de control de un proceso mediante PID. Visualizar los parámetros de control del proceso a controlar.

3 Maqueta didáctica Maqueta de Igor

4 Sistema de control Control en lazo abierto

5 Sistema de control Control en lazo cerrado

6 MAQUETA DIDÁCTICA Maqueta de Manuel

7 MAQUETA DIDÁCTICA Maqueta de Manuel

8 Sensor de temperatura

9 Sensor de temperatura Sensor de temperatura. Maqueta de ManuelRespuesta lineal del sensor de temperatura.

10 Sensor de temperatura R1 = 100 K  temperatura+=(5.0*analogRead(lm35)*100.0)/1023.0

11 Actuador controlado Señal de control en la puerta (G) del transistor MOSFET. Control por PWM. Tensión variable a la salida del drenador (D). De esta manera variando el ciclo de trabajo de la señal PWM. A la salida se tiene una tensión variable aplicada al ventilador. Controlando la velocidad del ventilador

12 Control PID Ecuación matemáticaLa señal de control u(t) es la suma de los tres términos de la siguiente ecuación Señal proporcional Señal derivativa Señal integral A CONTINUACIÓN SE VE EL EFECTO DE CADA TÉRMINO SOBRE EL CONTROL DE LA TEMPERATURA.

13 CÓDIGO DEL programa Previamente se determina el periodo de muestreo en función de la rapidez del proceso para aplicar el control. Error con respecto a valor de referencia. SampleTime=(millis()-LastTime); if (SampleTime>=100) { LastTime=millis(); //Calculo de error (diferencia entre SetPoint y temperatura actual prev_error=(float)error; error=(float)temperatura-(float)Referencia; …….

14 Control proporcional

15 Control P con Kp grande

16 CÓDIGO CONTROL P Proportional = (float)Kp * (float)error;

17 Control proporcional integral (PI)

18 CÓDIGO CONTROL i //El control integral solo entra cuando esta lo suficientemente cerca //Esto es para evitar saturar el control if ( (abs(error)<=Margen_Int)) { if (timeOutInt++ >10) //Si se cumple durante X veces el SampleTime (delay de la parte integral) Integral+=(float)Ki*(float)error; timeOutInt=3000; //Para evitar desbordamiento del numero si esta durante mucho tiempo } }else Integral=0; timeOutInt=0;

19 CÓDIGO CONTROL D //Parte derivativa Derivative=(float)Kd*((float)error-(float)prev_error);

20 CÓDIGO SEÑAL DEL ACTUADOR//-Suma de los tres terminos para la señal PWM que controla la velocidad del ventilador- dutycycle= (int)Proportional+ (int)Integral + (int)Derivative; //Limites de la salida. PWM de Arduino (8 bits). if (dutycycle <0) { dutycycle=0; }else if (dutycycle>255) dutycycle=255; } //Actualizo salida analogWrite(9,(int)dutycycle);

21 Información del proyecto/maqueta-de-control-pid-con-arduino.html