Вы находитесь на странице: 1из 23

IMPLEMENTACIÓN DE UN

CONTROL PID EN FUNCION


DISCRETA A PARTIR DE UN
MUESTREO DE DATOS CON
EL USO DEL
MICROCONTROLADOR
ARDUINO
UNIVERSIDAD NACIONAL DEL CALLAO

INTEGRANTES
MAURI RIVAS PEDRO LEOPOLDO 1513220709
AYASTA TEJADA JHON WILLIANS
MARTINEZ ROMERO MILTON VIDAL
UNIVERSIDAD NACIONAL DEL CALLAO

INDICE
Introducción .................................................................................................................................. 2
Resumen:....................................................................................................................................... 2
Objetivos: ...................................................................................................................................... 2
Materiales: .................................................................................................................................... 2
Descripción del problema ............................................................................................................. 3
Diagrama de conexión................................................................................................................... 4
CALCULO DE FUNCION DE TRANSFERNCIA ................................................................................... 4
HMI DE LA PROGRAMACION ......................................................................................................... 5
OBTENCION DE DATOS .................................................................................................................. 5
OBTENCION DE LA FUNCION DE TRANSFERENCIA EN MATLAB.................................................... 8
TRANSFORMACION DE LA FUNCION DE TRANSFERENCIA EN DISCRETA

Programación en Arduino ........................................................................................................... 17


SINULACIÓN DE ARDUINO........................................................................................................... 22
UNIVERSIDAD NACIONAL DEL CALLAO

CONTROL PID DEL SENSOR LM35 CON USO DE EL


MICROCONTROLADOR ARDUINO
Introducción
El PID, es sus distintas versiones constituye la solución más aceptada en los
problemas de control en la industria. Se calcula que el 95% de controladores
industriales analógicos o digitales, constituyen el algoritmo del PID. Se puede
decir que el PID es el regulador natural por excelencia. Comportándose como
un ser racional ante una toma de decisión: tomando en cuenta el estado actual
(proporcional), la historia pasada (integral) y un pronóstico del futuro (derivada)
del error o desviación del comportamiento deseado. El PID discreto tiene dos
formas principales conocidas como posicional y de velocidad. La ecuación 1.
ofrece la forma posicional del algoritmo PID discreto:

Resumen:

Se pretende controlar la temperatura de un sistema mediante el uso de la


herramienta simulink de Matlab. El sistema consta de un sensor de temperatura
LM35, un foco 24 V DC y un ventilador, los cuales serán responsables de los
cambios de temperatura de nuestro sistema. Para controlar el ventilador y
visualizar los cambios del sistema en una pantalla LCD se utilizará un montaje que
incluirá una tarjeta de Arduino Uno.

Objetivos:

 Mediante la tarjeta de Arduino Uno implementar un sistema de control de


temperatura con el sensor LM35, Foco 24 V DC, ventilador y una pantalla
LCD.
 Elaboración de un sistema en lazo cerrado con un controlador PID, que
controle de una forma correcta la posición del balancín ante posibles
perturbaciones ajenas al sistema.
 Identificar los parámetros de un controlador PID a través del método
Ziegler-Nicholls.

Materiales:

NOMBRE Vista de materiales


Arduino UNO
UNIVERSIDAD NACIONAL DEL CALLAO
Integrado -
L293D

Sensor LM35

Ventilador

LCD 16X2

PULSADOR

Descripción del problema

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 un
termopar o RTD.
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.
UNIVERSIDAD NACIONAL DEL CALLAO
Diagrama de conexión
En esta imagen observamos el diagrama de conexión de los materiales

Fig1. Conexión de los elementos del sistema de temperatura.

CALCULO DE FUNCION DE TRANSFERNCIA


Para obtener el cálculo de la función de transferencia recurrimos al software LabVIEW como
se observa en la siguientes imágenes en las cuales se muestra el control y la programación del
sensor LM35 .
UNIVERSIDAD NACIONAL DEL CALLAO

HMI DE LA PROGRAMACION
esta ventana Nos permitirá interactuar con el programa realizado en labview

OBTENCION DE DATOS
Del programa anterior obtenemos datos del sensor los cuales lo representaremos en la función
de transferencia como la salida del sistema
25 25.7639785 26.8704301 27.6607527 30.2424731 32.955914 35.2478495 38.3037634
25 25.7376344 27.6870968 30.2424731 33.0612903 35.2741935 38.5672043
25 25.7639785 26.9494624 27.6870968 30.2424731 33.0612903 35.5112903 38.6462366
25 26.4489247 27.0811828 27.766129 30.2424731 33.0876344 36.3806452 38.7252688
25 26.5806452 27.0811828 27.7924731 30.2951613 33.0876344 36.4069892 38.777957
25 26.6069892 27.0548387 27.9241935 30.4795699 33.1139785 36.4333333 39.094086
25 26.5806452 27.0548387 27.9241935 30.6112903 33.1666667 36.5650538 39.2774194
25 26.5806452 27.0548387 27.9768817 30.6639785 33.2193548 36.5913978 39.5672043
25.4215054 26.5806452 27.0548387 27.9768817 30.6903226 33.3247312 36.5650538 39.6462366
25.7639785 26.6069892 27.0811828 28.0032258 30.6903226 33.4301075 36.644086 39.777957
25.7639785 26.6069892 27.1865591 28.055914 30.6903226 33.561828 36.8021505 40.094086
25.7639785 26.6069892 27.1865591 28.1086022 31.0854839 33.6672043 36.8811828 40.2774194
25.7376344 26.6069892 27.2129032 28.1349462 31.2435484 33.6672043 37.0392473 40.277957
25.7639785 26.6069892 27.2129032 28.1876344 31.5333333 33.6145161 37.1182796 40.6462366
25.7639785 26.6333333 27.1865591 28.2139785 31.8231183 33.6408602 37.1446237 40.777957
25.7639785 26.6069892 27.2129032 28.4510753 31.9021505 33.6672043 37.1973118 41.094085
25.7376344 26.6069892 27.2129032 28.7672043 31.9021505 34.194086 37.1973118 41.6494624
25.7639785 26.6333333 27.2655914 28.7672043 32.0075269 34.5365591 37.2236559 43.7569892
25.7376344 26.6596774 27.3446237 28.7672043 32.1392473 34.9580645 37.3026882 44.0204301
25.7639785 26.7387097 27.4236559 28.7672043 32.1129032 35.1424731 37.5397849 44.1258065
25.7639785 26.8177419 27.45 28.9252688 32.1392473 35.2215054 37.5924731 44.1258065
25.7639785 26.7913978 27.4763441 29.0569892 32.1392473 35.2478495 37.6715054 44.3365591
25.7903226 26.7913978 27.5026882 29.0833333 32.0865591 35.2478495 37.6978495 44.6
25.7903226 26.8177419 27.6080645 29.1096774 32.0865591 35.2478495 37.6978495 45.3112903
25.7639785 26.8177419 27.6080645 29.1096774 32.2709677 35.2478495 37.7241935 45.4693548
25.7639785 26.8177419 27.6080645 29.0833333 32.5080645 35.2478495 37.8295699 45.4693548
25.7639785 26.8177419 27.6344086 29.1096774 32.7978495 35.2478495 38.0139785 45.4693548
25.7639785 26.844086 27.6344086 29.1360215 32.8768817 35.2478495 38.2510753 45.4956989
25.7639785 26.844086 27.6344086 30.1107527 32.8768817 35.2478495 38.2774194 45.522043
UNIVERSIDAD NACIONAL DEL CALLAO
45.5747312 47.4188172 48.9467742 51.8973118 51.8709677 51.9236559 51.9236559 51.9236559
45.6010753 47.4188172 48.9467742 51.5548387 51.8973118 51.9236559 51.8973118 51.8973118
45.6274194 47.4188172 48.9731183 51.7919355 51.8973118 51.9236559 51.95 51.8973118
45.6537634 47.4188172 48.9731183 51.7655914 51.8973118 51.9236559 51.9236559 51.9236559
45.6537634 47.4188172 48.9994624 51.8182796 51.8973118 51.8973118 51.9236559 51.8973118
45.6801075 47.5505376 48.9994624 51.8182796 51.9236559 51.95 51.9236559 51.9236559
45.6801075 47.7349462 48.9994624 51.7392473 51.9236559 51.8973118 51.8973118 51.8973118
45.7064516 47.9193548 49.0258065 51.7655914 51.8973118 51.8973118 51.9236559 51.9236559
45.7327957 48.0774194 48.9994624 51.7919355 51.9236559 51.8973118 51.8973118 51.8973118
45.8645161 48.1301075 48.9994624 51.7919355 51.9236559 51.9236559 51.8973118 51.9236559
46.1543011 48.2091398 49.0258065 51.8182796 51.9236559 51.8973118 51.8973118 51.8973118
46.1806452 48.288172 49.0258065 51.8446237 51.8973118 51.9236559 51.9236559 51.9236559
46.2069892 48.288172 49.0258065 51.8446237 51.9236559 51.8973118 51.8973118 51.8973118
46.2333333 48.3935484 48.9994624 51.8446237 51.8973118 51.8973118 51.9236559 51.8973118
46.2069892 48.5252688 49.0521505 51.8709677 51.8973118 51.8973118 51.9236559 51.8973118
46.3913978 48.6043011 49.8688172 51.8973118 51.8973118 51.8973118 51.9236559 51.9236559
47.3397849 48.7623656 50.0524841 51.8973118 51.9236559 51.8973118 51.8973118 51.8973118
47.4188172 48.8150538 50.0687789 51.9236559 51.8973118 51.8973118 51.8973118 51.9236559
47.4188172 48.8413978 50.1879454 51.9236559 51.9236559 51.95 51.9236559 51.8973118
47.4188172 48.8413978 50.587945 51.9236559 51.95 51.9236559 51.8973118 51.9236559
47.4188172 48.8677419 51.8973118 51.9236559 51.9236559 51.8973118 51.9236559 51.9236559
47.4188172 48.8677419 51.9236559 51.7655914 51.9236559 51.9236559 51.9236559

procedimos a graficarlo en Excel

RELACION DE TEMPERATURA CAPTADAPOR


60
EL SENSOR DE SALIDA EN UN INTERVALO DE
50 TIEMPO
TEMPERATURA

40

30

20

10

0
131

300
1
14
27
40
53
66
79
92
105
118

144
157
170
183
196
209
222
235
248
261
274
287

313
326
339
352
365
378
391
404

TTIEMPO

Del programa anterior obtenemos datos del FOCO los cuales lo representaremos en la función
de transferencia como la entrada del sistema

0 0 0 15.7639785 15.7639785
0 0 0 15.4215054 15.7639785 15.7376344
UNIVERSIDAD NACIONAL DEL CALLAO
15.7639785 17.0548387 19.0833333 24.194086 33.7569892 38.6043011
15.7639785 17.0548387 19.1096774 24.5365591 34.0204301 38.7623656
15.7639785 17.0548387 19.1360215 24.9580645 34.1258065 38.8150538
15.7376344 17.0548387 20.1107527 25.1424731 34.1258065 38.8413978
15.7639785 17.0811828 20.2424731 25.2215054 34.3365591 38.8413978
15.7376344 17.1865591 20.2424731 25.2478495 34.6 38.8677419
15.7639785 17.1865591 20.2424731 25.2478495 35.3112903 38.8677419
15.7639785 17.2129032 20.2424731 25.2478495 35.4693548 38.9467742
15.7639785 17.2129032 20.2951613 25.2478495 35.4693548 38.9467742
15.7903226 17.1865591 20.4795699 25.2478495 35.4693548 38.9731183
15.7903226 17.2129032 20.6112903 25.2478495 35.4956989 38.9731183
15.7639785 17.2129032 20.6639785 25.2478495 35.522043 38.9994624
15.7639785 17.2655914 20.6903226 25.2478495 35.5747312 38.9994624
15.7639785 17.3446237 20.6903226 25.2478495 35.6010753 38.9994624
15.7639785 17.4236559 20.6903226 25.2741935 35.6274194 39.0258065
15.7639785 17.45 21.0854839 25.5112903 35.6537634 38.9994624
15.7639785 17.4763441 21.2435484 26.3806452 35.6537634 38.9994624
15.7376344 17.5026882 21.5333333 26.4069892 35.6801075 39.0258065
15.7639785 17.6080645 21.8231183 26.4333333 35.6801075 39.0258065
16.4489247 17.6080645 21.9021505 26.5650538 35.7064516 39.0258065
16.5806452 17.6080645 21.9021505 26.5913978 35.7327957 38.9994624
16.6069892 17.6344086 22.0075269 26.5650538 35.8645161 39.0521505
16.5806452 17.6344086 22.1392473 26.644086 36.1543011 40.1521505
16.5806452 17.6344086 22.1129032 26.8021505 36.1806452 40.2521505
16.5806452 17.6607527 22.1392473 26.8811828 36.2069892 40.2215054
16.6069892 17.6870968 22.1392473 27.0392473 36.2333333 40.3521505
16.6069892 17.6870968 22.0865591 27.1182796 36.2069892 40.5521505
16.6069892 17.766129 22.0865591 27.1446237 36.3913978 40.8521505
16.6069892 17.7924731 22.2709677 27.1973118 37.3397849 39.8688172
16.6069892 17.9241935 22.5080645 27.1973118 37.4188172 41.8973118
16.6333333 17.9241935 22.7978495 27.2236559 37.4188172 41.9236559
16.6069892 17.9768817 22.8768817 27.3026882 37.4188172 41.8973118
16.6069892 17.9768817 22.8768817 27.5397849 37.4188172 41.5548387
16.6333333 18.0032258 22.955914 27.5924731 37.4188172 41.7919355
16.6596774 18.055914 23.0612903 27.6715054 37.4188172 41.7655914
16.7387097 18.1086022 23.0612903 27.6978495 37.4188172 41.8182796
16.8177419 18.1349462 23.0876344 27.6978495 37.4188172 41.8182796
16.7913978 18.1876344 23.0876344 27.7241935 37.4188172 41.7392473
16.7913978 18.2139785 23.1139785 27.8295699 37.4188172 41.7655914
16.8177419 18.4510753 23.1666667 28.0139785 37.5505376 41.7919355
16.8177419 18.7672043 23.2193548 28.2510753 37.7349462 41.7919355
16.8177419 18.7672043 23.3247312 28.2774194 37.9193548 41.8182796
16.8177419 18.7672043 23.4301075 28.3037634 38.0774194 41.8446237
16.844086 18.7672043 23.561828 28.5672043 38.1301075 41.8446237
16.844086 18.9252688 23.6672043 28.6462366 38.2091398 41.8446237
16.8704301 19.0569892 23.6672043 28.7252688 38.288172 41.8709677
16.9494624 19.0833333 23.6145161 28.777957 38.288172 41.8973118
17.0811828 19.1096774 23.6408602 29.094086 38.3935484 41.8973118
17.0811828 19.1096774 23.6672043 31.6494624 38.5252688 41.9236559
UNIVERSIDAD NACIONAL DEL CALLAO
41.9236559 41.9236559 41.8973118 41.9236559 41.8973118 41.8973118
41.9236559 41.8973118 41.8973118 41.8973118 41.8973118 41.9236559
41.9236559 41.8973118 41.8973118 41.95 41.9236559 41.8973118
41.7655914 41.8973118 41.9236559 41.9236559 41.8973118 41.8973118
41.8709677 41.9236559 41.8973118 41.9236559 41.9236559 41.8973118
41.8973118 41.8973118 41.9236559 41.9236559 41.9236559 41.9236559
41.8973118 41.9236559 41.8973118 41.8973118 41.9236559 41.8973118
41.8973118 41.95 41.8973118 41.9236559 41.8973118 41.9236559
41.8973118 41.9236559 41.8973118 41.8973118 41.8973118 41.8973118
41.9236559 41.9236559 41.8973118 41.8973118 41.9236559 41.9236559
41.9236559 41.9236559 41.8973118 41.8973118 41.8973118 41.9236559
41.8973118 41.9236559 41.8973118 41.9236559 41.9236559 41.9836559
41.9236559 41.9236559 41.95 41.8973118 41.8973118 41.9999999
41.9236559 41.9236559 41.9236559 41.9236559 41.9236559
41.9236559 41.8973118 41.8973118 41.9236559 41.8973118
41.8973118 41.95 41.9236559 41.9236559 41.9236559

30

25

20

15

10

0
196
14
28
42
56
70
84
98
112
126
140
154
168
182

210
224
238
252
266
280
294
308
322
336
350
364
378
392 foco+Untitled!$C$3:$C$398

OBTENCION DE LA FUNCION DE TRANSFERENCIA EN MATLAB


Con la ayuda del comando linspace y ident obtenemos la función de transferencia en función
del tiempo
Al ingresar el comando ident nos direcciona al siguiente cuadro de dialogo el cual nos
permitirá ingresar la entrada y salida del sensor LM35
UNIVERSIDAD NACIONAL DEL CALLAO

Calculo De ceros y polos


Ingresamos el cálculo de los polos y ceros de la función de transferencia por el método de
asignación de polos

probamos poniendo 2 polos y cero zeros obtenemos una funcion de transferencia inestable
UNIVERSIDAD NACIONAL DEL CALLAO

luego probamos con 2 polos y 1 zero el sistema aun sigue siendo inestable
UNIVERSIDAD NACIONAL DEL CALLAO

probamos con 1 polo y cero ceros el sitema se estabiliza comprobamos que es un sitema de
primer orden

El polo esta ubicado a la parte izquierda del plano por eso es estable
UNIVERSIDAD NACIONAL DEL CALLAO

La funcion de transferencia calculada es

0.1181
----------
s + 0.1178

Grafica de la función de transferencia por el sotfware Matlab


UNIVERSIDAD NACIONAL DEL CALLAO
TRANSFORMACION DE LA FUNCION DE TRANSFERENCIA EN DISCRETA
Asignamos un tiempo de muestreo de 9 s

Con la ayuda del comando c2d(tf1,Ts) hallamos la transformada z de la función de


transferencia

0.6553 𝑧^ − 1
−−−−−−−−−−−−−−−
1 − 0.3467 𝑧^ − 1
Con la ayuda del comando step(tf1,tf1d) graficamos la respuesta del sistema en función del
tiempo y en función de z (discreta)
UNIVERSIDAD NACIONAL DEL CALLAO
UNIVERSIDAD NACIONAL DEL CALLAO
UNIVERSIDAD NACIONAL DEL CALLAO

Con la ayuda del comando pid hayamos los sgt parámetros

𝑲𝒑 + 𝑲𝒅 ∗ − − − − − − − − − − −

𝑻𝒇 + 𝑻𝒔/(𝒛 − 𝟏)

𝒘𝒊𝒕𝒉 𝑲𝒑 = 𝟏, 𝑲𝒅 = −𝟏𝟑. 𝟖, 𝑻𝒇 = 𝟏𝟑. 𝟖, 𝑻𝒔 = 𝟗


UNIVERSIDAD NACIONAL DEL CALLAO
Programación en Arduino
Teniendo las constantes desarrollamos la programación en Arduino

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

float T = 0.1;

float KP= 1; float KI= 1; float KD=-13.8;

float ET=0.001;float ET_1= 0;

float IT=1;float IT_1= 0;

float DT=0;float PD= 0; float PT=0;

float PID =0;

//float ref=25;

float Us ;

int k=0;

float tempAct;

int foco =7;

const int boton = 10;

const int tiempoAntirebote = 10;

const int buton=13;

int S=25;

int cuenta=25;

int estadoBoton;

int estadoBotonAnterior;

int estadoButon;

int estadoButonAnterior;

boolean antirebote(int pin) {

int contador=0;

boolean estado;

boolean estadoAnterior;
UNIVERSIDAD NACIONAL DEL CALLAO

do{

estado=digitalRead(pin);

if(estado!=estadoAnterior){

contador=0;

estadoAnterior=estado;

else{

contador=contador+1;

delay(1);

while(contador<tiempoAntirebote);

return estado;

float centi()

int dato;

float T;

dato=analogRead(A0);

T= (500.0 * dato)/1023;

return(T);

void setup()

{
UNIVERSIDAD NACIONAL DEL CALLAO
lcd.begin(16,2);

lcd.print("T= s=" );

lcd.setCursor(0,1);

lcd.print("Tempact Setpoint");

pinMode(6,OUTPUT);

pinMode(foco,OUTPUT);

pinMode(boton, INPUT);

pinMode(buton, INPUT);

Serial.begin(9600);

Serial.begin(9600);

void loop()

estadoBoton=digitalRead(boton);

estadoButon=digitalRead(buton);

while(k<=100)

for( k=0;k<=100;k++)

PT=KP*(ET);

IT =((T*KI)*ET_1)+IT_1;

DT=(KD/T)*(ET-ET_1);

PID =PT+IT+DT ;

IT_1-IT;ET_1-ET ;

}
UNIVERSIDAD NACIONAL DEL CALLAO

float tempAct = centi();

Us=tempAct-PID ;

if(Us<=cuenta)

digitalWrite(foco,HIGH);

else

digitalWrite(foco,LOW);

if (Us==cuenta)

digitalWrite(9,255);

if(Us>cuenta)

digitalWrite(9,255);

} if(Us<cuenta)

digitalWrite(9,0);

if(estadoBoton!=estadoBotonAnterior){

if(antirebote(boton)){

cuenta++;

Serial.print(" ");

Serial.println(cuenta);
UNIVERSIDAD NACIONAL DEL CALLAO
}

if(estadoButon!=estadoButonAnterior){

if(antirebote(buton)){

cuenta--;

Serial.print(" ");

Serial.println(cuenta);

estadoBotonAnterior=estadoBoton;

estadoButonAnterior=estadoButon;

Serial.println(Us);

delay(100);

float Centigrados = centi();

float s=cuenta;

lcd.setCursor(2,0);

lcd.print(Centigrados);

lcd.setCursor(10,0);

lcd.print(cuenta);

}
UNIVERSIDAD NACIONAL DEL CALLAO

SINULACIÓN DE ARDUINO
Se realizo la simulación en proteus

Вам также может понравиться