Está en la página 1de 23

laboratorio de control

cristian Castro l.

Profesor

erick orrego d.

Joaqun Astorga

Sr.

RESUMEN

NDICE
RESUMEN
NDICE
NDICE DE FIGURAS
NDICE DE TABLAS
GLOSARIO DE TRMINOS
INTRODUCCIN
MARCO TEORICO
CAPTULO 1
EXPERIENCIA 1
1.1
Desarrollo
1.1.1 Metodo de Oscilacin de Ziegler-Nichols.
1.1.2 Mtodo predictor de Smith
CAPTULO 2
EXPERIENCIA 2
2.1
Desarrollo
2.1.1 Potencimetro y visualizacin en monitor serial Arduino
2.1.2 PWM
2.1.3 GUI
CAPTULO 3
EXPERIENCIA 3
3.1
Objetivos
3.2
Resultados
CONCLUSIONES
REFERENCIAS

1
2
3
4
5
6
7
1
1
1
1
3
5
5
5
5
6
6
7
7
7
7
8
9

NDICE DE FIGURAS
Figura 1-1 Funcin de lazo cerrado LTI.....................................................................1
Figura 1-2 Oscilacin sostenida..................................................................................2
Figura 1-3 Respuesta de salida Y(t)............................................................................2
Figura 1-4 Predictor de Smith.....................................................................................3
Figura 1-5 Predictor salida Y(t)..................................................................................3

NDICE DE TABLAS
Tabla 1 Parmetros PID.
Tabla 2 Parmetros de calibracin PID

1
3

GLOSARIO DE TRMINOS
APA:
IEEE:
FACTS:

American Psychological Association


Institute of Electrical and Electronics Engineers
Flexible A.C Transmission System

INTRODUCCIN

MARCO TEORICO
Controlador PID: Es un mecanismo u algoritmo utilizado en sistemas
realimentados que calcula el error entre el valor medido y el valor que se desea obtener,
con el fin de aplicar una accin correctora que ajuste el proceso. Consta de 3
componentes las cuales son:

P: accin de control proporcional, el cual da una salida


proporcional al error.

I: accin de control integral, el cual da una salida proporcional al


error acumulado, lo que implica que sea una manera de controlar
lenta.

D: accin de control derivativo,

c PID ( s ) =K p 1+

1
+T s
Ti s d

Arduino Uno: Es una plataforma computacional fsica, basada en una simple


tarjeta de I/O (entrada/salida) y un entorno de desarrollo que implementa el lenguaje
Processing/Wiring. Arduino Uno R3 puede ser utilizado para desarrollar objetos
interactivos o puede ser conectado a software de tu computadora. Implementa el
microcontrolador ATmega328, con un reloj de 16 [MHz], se puede alimentar con una
tensin de 7 a 12 [v].
PWM: La modulacin por ancho de pulso es una tcnica para simular resultados
anlogos con medios digitales, controlando una onda cuadrada, la cual conmuta entre ON
y OFF. Este patrn de encendido y apagado puede obtener voltajes de entre 0 a 5 volts. La
duracin en el tiempo de la seal ON, es lo denominado ancho de pulso.

Figura 1-1 PWM seal

En la Figura 1-1 se presentan seales PWM con diversos ciclos de trabajo (Duty
Cycle) a un periodo T = 2[ms] (500 [hz] utilizado en Arduino). Debido a que Arduino
presenta una salida anloga de 8 bit, se representara la seal de 5 volts en 255 bits.
T

1
f prom= f (t)dt
(1-1)
T 0
Arduino utiliza la ecuacin (1-1) para determinar la tensin de salida simulada
mediante PWM.
Processing: Es un lenguaje de programacin y entorno de desarrollo integrado de
cdigo abierto basado en Java, de fcil utilizacin, y que sirve como medio para la
enseanza y produccin de proyectos multimedia e interactivos de diseo digital.

1
CAPTULO 1
EXPERIENCIA 1
Objetivo: Realizar y comparar el mtodo de oscilacin de Ziegler-Nichols y
predictor de Smith, en un sistema de lazo cerrado LTI.
1.1

Desarrollo

1.1.1

Mtodo de Oscilacin de Ziegler-Nichols.

Figura 1-2 Funcin de lazo cerrado LTI.

En esta experiencia se implementar el mtodo de oscilacin de Ziegler-Nichols o


tambin llamado mtodo de oscilacin sostenida, el cual consiste en obtener la respuesta
de la seal medida sometida a una perturbacin. La simulacin ser realizada en el
entorno de simulacin Simulink de Matlab
El procedimiento para obtener una sintonizacin adecuada en el controlador PID es
el siguiente (ver Figura 1-1):
1) Aplicar a la funcin de transferencia (planta) solo control
proporcional con ganancia pequea Kp.
2) Aumentar la ganancia Kp hasta que se aprecie una
oscilacin sostenida en la salida del controlador (U (s)).
3) Registrar los valores de ganancia crtica Kcu=Kp y el periodo
de la seal oscilando Pc.
4) Sintonizar los parmetros de controlador PID de acuerdo a
la Tabla 1-1
Tabla 1 Parmetros PID.
Controlador
PID

Kc
Kcu/1.7

Ti
Pc/2

Td
Pc/8

Resultado:

Figura 1-3 Oscilacin sostenida

Una vez realizado el procedimiento se puedo determinar una ganancia crtica


Kcu=2.332 [-] y un periodo Pc = 3.08 [Seg]

Figura 1-4 Respuesta de salida Y(t)

La Figura 1-3 muestra la respuesta en el tiempo Y(t), una vez calibrado el


controlador PID ( ver Tabla 2), siendo:
K d =K c T d
(1-1)
K
K i= c
Ti
(1-2)
La salida Y(t) presenta las siguientes caractersticas:

Peak mximo de 1.519 veces mayor que la seal original en un


tiempo de 3.491 segundos.

Peak mnimo de 0.635 veces por debajo que la seal original en


un tiempo de 5.491 segundos.

Tiempo de estabilizacin (magnitud 1) de la seal = 24.49 [Seg.]


Tabla 2 Parmetros de calibracin PID

PID
Ganancia proporcional (Kp)
Tiempo integral (Ti)
Tiempo derivativo (Td)
Ganancia integral (Ki)
Ganancia derivativa (Kd)

1.1.2

1.3992 [-]
1.54 [Seg.]
0.385 [Seg.]
0.908571428 [-]
0.538692 [-]

Mtodo predictor de Smith

Figura 1-5 Predictor de Smith.

Es un mtodo til para sistema con retardos de tiempo considerables. Una vez
realizado el mtodo de oscilacin sostenida se implement el predictor para observar la
variacin en la seal de salida en relacin al sistema anterior (Observar la integracin de
bloques en la Figura 1-4 en comparacin a la Figura 1-1).
Resultado:

Figura 1-6 Predictor salida Y(t)

La salida Y(t) presenta las siguientes caractersticas:

1.2

En un tiempo de 5 segundos tiene una amplitud de 0.9 veces por


debajo de la seal original, es decir, en ese tiempo se encuentra
en un 90 % de la seal original

Tiempo de estabilizacin (magnitud 1) de la seal = 14.42 [Seg]


aproximadamente.

Conclusin

El predictor de Smith requiere un tiempo mucho menor que el mtodo de oscilacin


de Ziegler-Nichols para la estabilizacin del sistema en respuesta a un impulso, no
presentando sobresaltos en la seal

5
CAPTULO 2
EXPERIENCIA 2
Objetivos: Integracin de diversos elementos.
2.1

Desarrollo

2.1.1

Potencimetro y visualizacin en monitor serial Arduino

Se ha implementado un potencimetro lineal de 50 [K], el cual se encuentra


alimentado a una fuente de 5[volts], disponible en un pin de Arduino. La tensin variable
del potencimetro ser conectada a la entrada anloga A0, la cual ser digitalizada por un
conversor anlogo-digital (ADC) de 10 bit, esto implica que al leer el valor de la tensin
de entrada, se representar en dgitos de 0 a 1023 bit.
El programa realizado en el IDE de Arduino convertir este valor digital en dos
representaciones distintas para su mayor comprensin. Estas sern en porcentaje (0100%) y tensin (0 5 [V]).
Finalmente, mediante comunicacin serial, la informacin ser enviada al monitor
serial dispuesto en Arduino, para su visualizacin en pantalla. La velocidad de
transmisin utilizada ser de 115200 bit por segundo (tambin llamado baudios).

Figura 2-7 Esquema de lectura e impresin de datos.

6
Se utiliz el siguiente cdigo:
int potenciometro = A0, digitalizacin=0, porcentaje;
float tension;
void setup()
{
Serial.begin(115200);
}
void loop()
{
digitalizacion = analogRead(potenciometro);
porcentaje = map(digitalizacion,0,1023,0,100);
tension = (5.0/1023.0)*digitalizacion;
Serial.print("BIT: ");
Serial.print(digitalizacion);
Serial.print("\t \t");
Serial.print("PORCENTAJE: ");
Serial.print(porcentaje);
Serial.print("%");
Serial.print("\t \t");
Serial.print("TENSION: ");
Serial.print(tension);
Serial.println(" [V]");
delay(500);
}

//lectura anloga del pin A0


//mapeo de la lectura a portecentaje
//transformacin de bit a tension
//Envo por puerto serial

//tiempo de espera de 500[ms]

Resultado:
Se implementando un protoboard para lograr de manera simple y sin necesidad de
soldar la conexin entre la resistencia variable y la placa Arduino UNO (ver Figura 2-2).

Figura 2-8 Conexin Arduino con potenciometro

En la Figura 2-3 se muestra un ejemplo de la variacin de tensin anloga, captada


por el pin anlogo A0 y mostrada en el monitor serial que posee el IDE de Arduino.
El monitor serial muestra, una vez digitalizada la seal y aplicada las
transformaciones especificadas anteriormente, los valores de tensin, porcentaje y bit
leidos.

Figura 2-9 Monitor serial

2.1.2

PWM

Al circuito y programa anterior se han agregado 2 leds, un LDR (fotorresistencia) y


salidas PWM. Dependiendo de la tensin anloga proporcionada el potencimetro vara la

9
luminosidad del led naranjo y la luminosidad del led rojo varia a medida que se atenue o
se intensifique la luz ambiente captada por la fotorresistencia.
Ambos leds estn conectados a los pines 11 y 10 respectivamente, los cuales
realizan seales PWM, simulando una salida anloga con las que modifican la emisin de
luz de los led.
En la Figura 2-4 se muestra el diagrama de bloques que interpreta los comandos en
el cdigo de Arduino

Figura 2-10 Diagrama de bloques PWM

Cdigo implementado:
int potenciometro = A0, ldr=A1;
int digitalizacion = 0;
int porcentaje;
float tension;
int luminosidad;
int ldrluz;
int led =11, led1=10;
void setup()
{
pinMode(led, OUTPUT);
pinMode(led1, OUTPUT);
Serial.begin(115200);

//Establece al pin 11 como salida


//Establece al pin 10 como salida

10
}
void loop()
{
digitalizacion = analogRead(potenciometro);
ldrluz = analogRead(ldr);
//Lectura de LDR
ldrluz = map(ldrluz,200,1023,0,255);
//Mapeo de LDR a dato de 8 bit
porcentaje = map(digitalizacion,0,1023,0,100);
tension = (5.0/1023.0)*digitalizacion;
luminosidad = map(digitalizacion,0,1023,0,255); //Mapeo de potencimetro a 8 bit
analogWrite(led,luminosidad);
//Seal de salida PWM al led naranjo
analogWrite(led1,ldrluz);
//Seal de salida PWM al led roko
Serial.print("BIT: ");
Serial.print(digitalizacion);
Serial.print("\t\t");
Serial.print("PORCENTAJE: ");
Serial.print(porcentaje);
Serial.print("%");
Serial.print("\t\t");
Serial.print("TENSION: ");
Serial.print(tension);
Serial.println(" [V]");
delay(100);
}

Resultado:
En la Figura 2-5 se muestra la conexin de los leds naranjo y rojo, en conjunto con
el LDR y el potencimetro. A cada led se le agrego en serie una resistencia de 190[]
para reducir la tensin de alimentacin. Adems se aadi una resistencia de 1220[]
entre los 5 [V] y el LDR, para poder as captar las variaciones de tensin en relacin a la
luminosidad del ambiente.

11

Figura 2-11 Circuito de conexin LDR y led

2.1.3

GUI

Cdigo Arduino:
int led = 11,angulo=0;
byte dato = 0;
void setup() {
Serial.begin(115200);
pinMode(led,OUTPUT);
}
///////////////////////////////////////////////////////////////loop infinito/////////////////////////////////////////////////////////
void loop() {
analogWrite(led,dato);
angulo=map(dato,0,255,0,179);
Serial.print(dato);
Serial.print(",");
Serial.print(angulo);
Serial.println(",");
delay(10);
}
//////////////////////////////////////////////////////lectura del puerto Serial/////////////////////////////////////////////////
void serialEvent() {
if(Serial.available()>0)//Si el Arduino recibe datos a travs del puerto serie

12
{
dato = Serial.read(); //Los almacena en la variable "dato"
}
}

Cdigo Processing:
PFont f;
import controlP5.*;
import processing.serial.*;
ControlP5 cp5;
Serial port;
int test =0;
boolean stringComplete= false;
String inputString="";
void setup() {
PFont font = createFont("ArialMT-48",20);
size(300,300);
// tamao de la ventana
noStroke();
cp5 = new ControlP5(this);
port = new Serial(this, Serial.list()[0], 115200);
cp5.addKnob("knob")
.setRange(0,255)
.setValue(0)
.setPosition(100,70)
.setRadius(50)
.setDragDirection(Knob.VERTICAL)
;
port.clear();
}
//////////////////////////////////////mostrar en pantalla/////////////////////////////////////////////////
void draw() {
background(#5A9DD3);
textSize(15);
fill(255);
text("Dato enviado",10,200);
text("Dato recibido",150,200);
textSize(20);
fill(#526E83);
rect(30,220,50,30);
rect(170,220,50,30);
rect(170,260,50,30);
fill(255);
text(test,35,240);
fill(#7BBCF0);
rect(0,0,300,60);
fill(255,100,0);

13
text("CONTROL PWM",60,40);
if (stringComplete)
{
String[] valor = split(inputString,',');
fill(255);
text(valor[0],175,240);
text(valor[1],175,280);
inputString = "";
stringComplete = false;
}
port.write(test);
}
////////////////////////Funcin de control de eventos (SLIDER)/////////////////////////////////
void controlEvent(ControlEvent theControlEvent)
{
test = (int)theControlEvent.getValue();
}
///////////////////////////////Funcin de lectura de puerto Serial//////////////////////////////////////
void serialEvent(Serial port) {
while (port.available()>0 )
{
char inChar = (char)port.read();
inputString += inChar;
if (inChar == '\n')
{
stringComplete = true;
}
}
}

Resultado:

14

Figura 2-12 Interfaz grfico

Figura 2-13 Representacin fsica de GUI

2.2

Conclusin

15
CAPTULO 3
EXPERIENCIA 3
3.1

Objetivos

3.2

Resultados

16
REFERENCIAS
[BORRAR] En esta seccin se listan los nombres de todas las referencias
bibliogrficas, libros, revistas o documentos de uso general que han sido citados en el
texto y desde donde se han obtenido aseveraciones no demostradas.
En este listado no deben incluirse, apuntes de cursos ni textos que no estn
debidamente completados con autor, editorial y fecha de publicacin adecuadamente
comprobable.
La bibliografa debe ser llenada desde la seccin Referencias de Microsoft Word
2010 en el apartado Citas y bibliografa.
Debe hacer clic en la pestaa Bibliografa y seleccionar Insertar bibliografa.
[BORRAR]
[1] G. Claros, Normas de la escritura cientfica, 1 Marzo 2012. [En lnea]. Available:
http://sebbm.es/BioROM/contenido/norm_escrit/index.htm.
[2] Preparation of papers for IEEE TRANSACTION and JOURNALS, 2007.
[3] H. T. Sanchez, El rayo: mitos, leyendas, ciencia y tecnologa., de El rayo: mitos,
leyenas, ciencia y tecnologa., Bogot, Universidad Nacional de Colombia, 2002, pp.
52-53.
http://www.eng.newcastle.edu.au/~jhb519/teaching/caut1/Apunte
s/PID.pdf
http://es.wikipedia.org/wiki/Proporcional_integral_derivativo

También podría gustarte