Está en la página 1de 31

Universidad.

Instituto Tecnológico Superior de


Coatzacoalcos

Materia.
Control

Nombre de la actividad
PRACTICA 1 - BALANCIN

Unidad
Tema 3

Nombre de los alumnos

VAZQUEZ GOMEZ OSWALDO

Grado
A
Grupo
7

Fecha
14/12/2021
INDICE

Contenido
Contenido
INTRODUCCION ..................................................................................................................................... 3
MARCO TEORICO.................................................................................................................................... 5
Acción proporcional ...................................................................................................................................... 5
Arduino .......................................................................................................................................................... 6
Período de medida y reacción ....................................................................................................................... 7
Cálculo de la velocidad de la bola ................................................................................................................. 7
DESARROLLO: PID BALANZA Y BOLA ........................................................................................................ 8
MATERIALES .................................................................................................................................................. 8
PIEZAS EN 3D (IMPRESOS) ...................................................................................................................... 8
PROCEDIMIENTO ......................................................................................................................................... 15
SINTONIZACIÓN PID ............................................................................................................................. 16
FOTOGRAFIAS ..................................................................................................................................... 17
ESQUEMA DEL SISTEMA .............................................................................................................................. 17
COMENTARIOS RESPECTO A LA PRACTICA .............................................................................................. 24
PROGRAMACION ................................................................................................................................. 26
CONCLUSION ....................................................................................................................................... 30
INTRODUCCION

El control por realimentación tiene una larga historia que comenzó con el deseo
primordial de los seres humanos de dominar los materiales y las fuerzas de la
naturaleza en su provecho. El reloj de agua, inventado por ktesibios de Alejandría
(Egipto, 260 a.c.) fue posiblemente el primer sistema realimentado creado por el
hombre. Su finalidad es mantener el nivel de agua de un tanque constante. Para
controlar el nivel se emplea un flotador o válvula flotante.

Cuando el nivel del agua disminuye, dicha válvula favorece un aumento del caudal
que alimentaba a este depósito, posibilitando la subida del nivel de este, y cuando el
nivel de agua aumentaba, la válvula limita el caudal. Así se conseguía que el nivel
del tanque permanezca constante. De esta forma se creó también el primer
controlador, la Válvula de flotador. Hoy en día, cualquier planta moderna tiene
innumerables y sofisticados controladores para regular sus procesos, pero esto no
sería posible sin los avances del pasado.

El control se hace muy importante a partir de la Revolución Industrial. En Europa


supuso la aparición de las primeras máquinas que se movían solas: molinos,
hornos, calderas, máquinas de vapor… Estos dispositivos no se podían controlar
manualmente así que surgió la necesidad de nuevos dispositivos y de esta forma
se desarrollaron los primeros reguladores de temperatura, presión, velocidad y nivel.

Durante los años se han ido creando nuevas tecnologías que han ido ligadas a los
mayores periodos de desarrollo de la sociedad, pero los fundamentos y conceptos
principales no son diferentes a los que se pensaron hace dos milenios.
OBJETIVOS

La finalidad es lograr un sistema que funcione de forma estable en estado


estacionario, entendiendo esto como la situación en que la bola se encuentra en el
centro de la plataforma en posición horizontal, o en su lugar, que logre estabilizarse
en el valor indicado previamente por el usuario en la referencia. Esto se deberá
realizar lo más rápido posible.
MARCO TEORICO

En la presente practica se desarrolla el control tanto teórico como real, de un sistema


bola-balancín. Se entiende este sistema como el conjunto de una plataforma con
una bola que puede rodar por ella y que puede alcanzar diferentes posiciones entre
sus extremos. Se va a diseñar un programa con un controlador PID que lea la
posición de la bola en tiempo real y que varíe el ángulo de la plataforma mediante
un sensor de distancia y un servomotor, respectivamente. La comunicación de la
planta con el ordenador se implementará en Arduino.

Un controlador PID es un elemento de control simultáneo por realimentación


comúnmente usado en sistemas de control industrial. Su misión es eliminar el error
estacionario entre la señal de referencia y la señal de control a la vez que tratamos
de obtenerla lo más rápido posible y sin oscilaciones. En la actualidad más del 95%
de los lazos de control emplean un PID.

Es verdaderamente significativo ajustar adecuadamente los tres parámetros de


control para conseguir los mayores beneficios. Estructura del PID las tres
componentes que forman el controlador son la acción proporcional, la acción
integral y la acción derivativa.

Acción proporcional

La finalidad de esta acción es conseguir que el error en estado estacionario sea


aproximadamente cero respecto a una referencia fija. Es decir, la salida de esta es
proporcional al error de la siguiente manera: 𝑢ሺ𝑡ሻ = 𝑘𝑝 ∙ 𝑒ሺ𝑡ሻ. La función de
transferencia será controlable únicamente mediante una ganancia ajustable.
Un controlador proporcional puede controlar cualquier planta estable, pero en
régimen permanente su capacidad es limitada.

La finalidad del sistema es conseguir que la variable del proceso sea igual a la
referencia. Esto se logra cuando se ha elegido de forma satisfactoria los valores de
las ganancias proporcional, integral y derivativa. Este procedimiento se conoce
como sintonizar el controlador PID. Esto suele ser un proceso iterativo donde se van
variando los valores de las ganancias individualmente observando la respuesta del
sistema. Sin embargo, hay software especializado que obtienen los valores
adecuados o métodos que se basan en la teoría de control, como es el ejemplo de
Zieglers y Nichols.

Arduino

La comunicación entre la planta y el equipo se tiene que realizar mediante una


herramienta que nos permita controlar los parámetros y observar los resultados en
tiempo real. Arduino cumple estos requisitos, es una plataforma abierta que facilita
la programación de un microcontrolador y una de las más utilizadas en el área de
desarrollo de prototipos para la robótica.

Esta plataforma tiene como objetivo acercar y facilitar el uso de la electrónica y


programación de sistemas embebidos en proyectos multidisciplinares y se ha
expandido rápidamente gracias a su plataforma hardware con diseño abierto, su
entorno desarrollado de código abierto, su lenguaje fácil de aprender basado en
librerías, un entorno de desarrollo integrado (IDE) también con código abierto y que
está disponible y se puede trabajar desde Windows, Mac y Linux. Los proyectos
hechos con Arduino pueden ejecutarse sin necesidad de estar conectados a un
ordenador, ya que una vez cargado el código con sus respectivas librerías en la
placa ya solo será necesario conectar el dispositivo a la placa.
Período de medida y reacción

Las secuencias de medida y reacción (los ciclos de programa) no se harán tan


rápido como pueda el microcontrolador, sino cada 50ms (valor almacenado en la
variable periodo). Lo hacemos así porque los sistemas de control PID funcionan
mejor si los ciclos de medida y reacción siempre tienen la misma duración.

El microcontrolador, con reloj de 16MHz, tiene velocidad suficiente para hacer el


ciclo de programa en menos de 10ms. Pero con ciclos tan rápidos, la medida de la
velocidad de la bola pierde precisión porque las diferencias en la posición de la bola
entre ciclos son ínfimas y nosotros calculamos la velocidad de la bola como la
diferencia en su posición en 2 ciclos consecutivos de programa.

Cálculo de la velocidad de la bola

En el Software que implementa el control PID en el Arduino calculamos la velocidad


como la diferencia entre la posición actual de la bola (variable dist) y la que tenía en
el ciclo anterior (variable lastDist). Vamos a mejorar la precisión de esta medida
mediante un filtro digital de paso bajo (Promediador) que consiste en obtener la
media de la últimas 5 velocidades medidas.
DESARROLLO: PID BALANZA Y BOLA

Es un sistema clásico en la Ingeniería de Control.

• Mediante un Sensor de distancia, medimos la posición de la bola.


• Con un Controlador, mediante control PID, calculamos el ángulo en el que
deberíamos inclinar la barra para colocar y estabilizar la bola en el centro
de la barra.
• Un Actuador modifica la inclinación de la barra

MATERIALES

▪ Sensor Sharp 2YA021


▪ Soporte
▪ Bisagra
▪ Soporte para servomotor
▪ topes triangulares
▪ Varilla sin fin
▪ Arduino uno
▪ Jumper
▪ Servomotor
▪ Triplay
▪ Madera MDF
▪ Tornillo 2.5 mm
▪ Capacitor 10 Uf

PIEZAS EN 3D (IMPRESOS)
Engranaje

Base
Disco para la base
Parada final
Bisagra

Bisagra 2
Soporte del servomotor

Pequeña bisagra
Pequeña bisagra 2

Pequeña bisagra 3
PROCEDIMIENTO

1. Para rotar la pelota se utiliza un servomotor, todo está controlado por un


arduino que lee la distancia con un control PID y mueve el servomotor para
tener la bola estable.

2. Atornillar la base a la parte de la madera


3. Añadir un tornillo a la otra parte de platico
4. Encima del soporte colocar principal, colocar la balanza
5. Asegurarlo con un tonillo y asegurarse que pueda girar con poca fricción
hacia la derecha y hacia la izquierda.
6. Para hacer el movimiento utilizar el servomotor s3003 y para medir la
distancia el sensor Sharp 2Y0A21.
7. Pegar las otras partes de plástico en la balanza, después se conecta con un
palo de madera hasta formar una coa
8. Medir donde se colocar el soporte del servo, añadir el servo al soporte y
atornillar en su lugar.
9. Poner el servo en la posición de 0 grados y añadir el disco en la parte de
estría que viene con el servo.
10. Tornillar el soporte en su lugar y colocar en su balanza
11. Este se moverá hacia arriba y hacia abajo y de esta forma se cambia el
ángulo.
12. Para el sensor de infrarrojo se utilizó el Sharp 2Y0A21.
13. Este tiene rango de 0 a 40 cm.
14. Una vez de tener el sensor elegido pegar a un lado de la balanza.
15. Añadir un condensador de 10 microfaradios
16. Colocar la parte final en el otro costado.
17. Pasar todos los cables y conectarlos al arduino y la configuración estará
lista para las pruebas.
SINTONIZACIÓN PID

En cuanto a la sintonización PID


Para el control mediante PID se utiliza el modelo en función de transferencia y se cierra
un lazo de realimentación respecto a la salida. Como ya se ha visto teóricamente la
función de transferencia de un regulador PID es la siguiente:

A continuación, se representa el sistema general en simulink para ver la estructura


que tiene el sistema en lazo cerrado con un controlador PID.

Se puede mostrar gráficamente la respuesta del sistema en lazo cerrado ante


entrada escalón con el comando Step como hicimos anteriormente.
FOTOGRAFIAS

ESQUEMA DEL SISTEMA


Trayectoria de la bola sobre la viga y sus coordenadas generalizadas q1 y q2

Puede observarse en la figura que la bola se desplaza en el eje vertical y horizontal


debido a su propio movimiento y la inclinación de la viga. Este movimiento queda
definido dentro de un triángulo rectángulo.
Fig. Distancia 6 cm
Fig. Distancia 12 cm
Fig. Punto medio 19 cm
Se tuvieron cambiar las distancias debido a que no se ejecutaban de manera
correcta.
POSICION 12cm 19cm(punto 25cm 36 cm
medio
Kp= 3.5 3.5 4 2.2
Ki= 0.1 0.4 0.1 0.1
Kd= 800 850 500 650
distancia 20 23-5 25 30
ángulo 45 grados 60 grados 100 grados 110 grados

COMENTARIOS RESPECTO A LA PRACTICA


• Dicha balanza se encuentra en cm, para posteriormente su medición en cada
uno de los puntos dados.
• Se buscaron posiciones para que la pelota quedara de manera estable.
• . En este caso si el sensor que ocupamos detecta un movimiento por ende
va a pensar que es el objeto que esta sensando por eso es de suma
importancia la medición y programación correcta para evitar fallos.

• Para relacionar la tensión proporcionada por el sensor con la distancia en


centímetros, desplazaremos la bola por la barra tomando nota de la lectura
en ADC. En el Software desarrollado para el Arduino, se incluye un modo de
funcionamiento en el que transmite continuamente las lecturas del sensor por
el puerto serie.

• Para llevar la bola al centro de la barra, debemos inclinar la barra más, cuanto
más alejada esté la bola del centro. El giro del servo, que determina la
inclinación de la barra, lo determinamos con el valor de la variable los que
adopta valores negativos (hacia arriba) y positivos (hacia abajo) a partir del
valor 0 que deja la barra en horizontal.
• La señal analógica proveniente del sensor infrarrojo es recibida y procesada
por el microcontrolador mediante un convertidor ADC.

• Sin embargo, antes de enviar la señal es necesario crear dos identificadores,


uno para el encabezado y otro para finalizar la transmisión de cada muestra
realizada.

• Una de las características es que cuando la bola se ha detenido cerca del


punto central ya no reacciona. Como la velocidad es 0, el término diferencial
no actúa. Como está cerca del punto central, la inclinación de la barra por el
término proporcional es pequeño y puede no ser suficiente como para que la
bola se mueva.
• En cuantos a los resultados obtenidos se logró satisfactoriamente cumplir
con los objetivos planteados, pero a su vez puede ser mejorado futuramente
para un mejor resultado.
PROGRAMACION

Podemos observar el cambio de las variables que nosotros podemos llegar a encontrar, en
el set point , nosotros le colocamos una distancia algo variada a la distancia deseada.
}
#include <Wire.h>
#include <Servo.h>
//Salidas, entradas
int Analog_in = A0;
Servo myservo; // crear un objeto servo para controlar un servo, que luego se adjunta a D9

//Variables
int Read = 0;
float distance = 0.0;
float elapsedTime, time, timePrev; //Variables para el control del tiempo
float distance_previous_error, distance_error;
int period = 50; //El período de frecuencia de actualización del bucle es de 50 ms

///////////////////Constantes PID///////////////////////
float kp=8; //Aquí ponemos 8
float ki=0.2; //Aquí ponemos 0.2
float kd=3100; //Aquí ponemos 3100
float distance_setpoint = 21; //Debe ser la distancia desde el sensor hasta el centro de la barra
en mm
float PID_p, PID_i, PID_d, PID_total;

void setup() {
//analogReference(EXTERNAL);
Serial.begin(9600);
myservo.attach(9); // attaches the servo on pin 9 to the servo object
myservo.write(125); //Put the servco at angle 125, so the balance is in the middle
pinMode(Analog_in,INPUT);
time = millis();
}

void loop() {
if (millis() > time+period)
{
time = millis();
distance = get_dist(100);
distance_error = distance_setpoint - distance;
PID_p = kp * distance_error;
float dist_diference = distance_error - distance_previous_error;
PID_d = kd*((distance_error - distance_previous_error)/period);

if(-3 < distance_error && distance_error < 3)


{
PID_i = PID_i + (ki * distance_error);
}
else
{
PID_i = 0;
}

PID_total = PID_p + PID_i + PID_d;


PID_total = map(PID_total, -150, 150, 0, 150);

if(PID_total < 20){PID_total = 20;}


if(PID_total > 160) {PID_total = 160; }

myservo.write(PID_total+30);
distance_previous_error = distance_error;
}
}
float get_dist(int n)
{
long sum=0;
for(int i=0;i<n;i++)
{
sum=sum+analogRead(Analog_in);
}
float adc=sum/n;
//voltios flotantes = analogRead (adc) * 0.0048828125; // valor del sensor * (5/1024)
//voltios flotantes = suma * 0,003222656; // valor del sensor * (3.3 / 1024) Referencia analógica
CONCLUSION

Como conclusión podemos decir que el diseño y construcción de una plataforma


experimental se ha llevado a cabo de manera eficaz y de bajo costo. Mediante la
implementación de la ley de control PID en la plataforma desarrollada se han
obtenido resultados experimentales aceptables con algunas dificultades.

Con respecto al diseño mecánico, cabe destacar que las piezas de “Bola-Balancín”
son de suma importancia, por lo tanto, es necesario que dichas piezas sean de
buena calidad y de cortes finos.

Además, en el ensamble de la estructura se debe reducir la fricción entre los


componentes, por ello la mayoría de las piezas de dicho sistema son impresas en
3D.

En cuanto a la práctica partiendo de la suposición de que el servomotor es un


sistema que se puede representar con una función de transferencia de primer orden
que relaciona la tensión aplicada y la velocidad angular. Ya que el ángulo de giro es
la integral de la velocidad angular, la relación entre la tensión aplicada y el ángulo
girado por el eje.

También podría gustarte