Title | SISTEMA DE CONTROL PID PARA LA REALIZACIÓN DE UN ESTABILIZADOR NO LINEAL EMPLEANDO ARDUINO. |
---|---|
Author | Diego Miranda |
Course | Control de actuadores eléctricos |
Institution | Universidad UTE |
Pages | 19 |
File Size | 837 KB |
File Type | |
Total Downloads | 31 |
Total Views | 126 |
Download SISTEMA DE CONTROL PID PARA LA REALIZACIÓN DE UN ESTABILIZADOR NO LINEAL EMPLEANDO ARDUINO. PDF
INFORME DE PROYECTO N°2 FR-FAC-PAC-GLB-018
Versión: 03
Fecha: 20/12/2018
Asignatura: Actuadores eléctricos
Grupo N.º: 2
Carrera: Ing. Mecatrónica Nivel y paralelo: “5M” Fecha de realización: 18/12/2018 Fecha presentación informe:20/12/2018 N.º de Proyecto: 2
Integrantes Lanchimba Erick Miranda Diego Zurita Karina Informe N.º: 1
TÍTULO DE LA PRÁCTICA: IMPLEMENTACIÓN DE UN SISTEMA DE CONTROL PID PARA LA REALIZACIÓN DE UN ESTABILIZADOR NO LINEAL EMPLEANDO ARDUINO. 1. OBJETIVOS: General: Analizar y vincular el teorema científico al cual se apega el controlador proporcional, integral y derivativo (PID) con la programación orientada a objetos, para su implementación en un estabilizador no lineal para el balanceo de una esfera en una viga acanalada con la ayuda de un microcontrolador Arduino. Específicos: - Aprender información teórica relativa al principio de funcionamiento y generalidades de los controladores PID, como cimientos para el desarrollo de proyectos prácticos y experimentales.
- Determinar y deliberar los parámetros estructurales más adecuados para la realización del mecanismo sobre el cual se aplicará el control PID, vinculando su construcción con los datos técnicos de los actuadores a emplear.
- Obtener el menor rango de error posible en el afán por equilibrar la esfera sobre la viga, procurando mantenerlo entre el +/- 5% de error pues es lo permitido por estándares internacionales para que un experimento tenga validez.
INFORME DE PROYECTO N°2 FR-FAC-PAC-GLB-018
Versión: 03
Fecha: 20/12/2018
2. INTRODUCCIÓN: Más allá de la aplicación de la simple programación orientada a objetos, en el afán por cumplir con objetivos planteados en base a parámetros específicos que nos lleven al desarrollo de sistemas inteligentes pero precarios, en ciertas ocasiones debido la presencia de herramientas mucho más modernas o que en trabajo conjunto con este tipo de programación optimizan los resultados esperados, surge la idea de aplicación del control PID a la par con la programación orientada a objetos y la ayuda del microcontrolador Arduino, para equilibrar una esfera sobre una viga acanalada de madera a una distancia predeterminada, pero entonces ¿Qué es el control PID y como nos ayudará en el desarrollo del presente proyecto?
El control PID según lo detalla Antonio Visioli en su libro “Practical PID Control”, “es un mecanismo de control que a través de un lazo de retroalimentación permite regular la velocidad, temperatura, presión y flujo entre otras variables de un proceso en general.” (Visioli, 2006) , según lo preceptuado en el texto el controlador PID calcula la diferencia entre nuestra variable real contra la variable deseada. Razón por la cual sus características se apegan a los parámetros requeridos para la realización del proyecto en cuestión, pues nos interesa mantener la distancia de la esfera al sensor constante, por lo tanto, el control PID mide la diferencia entre la distancia con el sensor y la distancia requerida y actúa variando la velocidad del motor para que podamos tener nuestra distancia constante.
Es así que el presente trabajo se realizará con un compendio de sensores y motores, con el propósito de experimentar un sistema de control automático, cuyo proceso y detalles serán expuestos en el siguiente apartado. 3. MATERIALES: N°
Material
Ilustración Construcción del estabilizador
INFORME DE PROYECTO N°2 FR-FAC-PAC-GLB-018
1
Sensor
de
distancia
GP2Y0A41SK0F
2
Capacitor 10 µF
3
Cables para puente
4
Motor paso a paso
5
Madera
(4-30
Versión: 03
cm)
Fecha: 20/12/2018
INFORME DE PROYECTO N°2 FR-FAC-PAC-GLB-018
6
Tornillos y tuercas
7
Pelota de espuma
1
Microcontrolador Arduino
2
Software Arduino IDE
3
Librerías PID
Versión: 03
Programación
Fecha: 20/12/2018
INFORME DE PROYECTO N°2 FR-FAC-PAC-GLB-018
Versión: 03
Fecha: 20/12/2018
4. METODOLOGÍA: Sabiendo que el objetivo general del proyecto en cuestión es la construcción de un estabilizador no lineal para el balanceo de una esfera en una viga acanalada con la ayuda de un microcontrolador Arduino, a continuación, se detallará el proceso llevado a cabo para el cumplimiento del mismo, segmentando la metodología en dos aspectos para su estudio y análisis puntual, metodología para la construcción estructural del proyecto y su programación. Cabe recalcar que a pesar de analizar ambos temas por separado guardan correlación directa.
4.1 Construcción del mecanismo •
Se realizo el sistema de un estabilizador no lineal, recortando de diferentes medidas las vigas de madera tales como; base, columnas, viga horizontal, leva, pasador. etc.
•
El corte de estos materiales se realizó a una medida conveniente a los estándares a realizar propuestas por el docente.
•
Se realizo la colocación y armado de los materiales en su respectivo lugar para el funcionamiento del mecanismo y el trabajo a realizar.
•
Con la ayuda de diversas herramientas mecánicas se realizó la colocación tanto de pernos, sensor, motor, levas en su lugar a el trabajo a realizar propuesto.
•
En la viga en la que va a realizar el trabajo se realizó un canal, para el objeto a estabilizarse estaría colocado y el sensor en el que tomaría información y datos para el sistema.
•
Se realizo pruebas comprobando su correcto funcionamiento al trabajo que va a realizar.
3.2 Programación en Arduino •
Se importó la librería .rar para control PID de Arduino, cuyo software fue descargado de la página oficial del mismo.
•
Se siguieron los siguientes pasos detallados en el código a continuación:
INFORME DE PROYECTO N°2 FR-FAC-PAC-GLB-018
int retardo =6;
Versión: 03
Fecha: 20/12/2018
// Tiempo de retardo en milisegundos (Velocidad del Motor)
int dato_rx; // valor recibido en grados int dato_rxi; int numero_pasos = 0; // Valor en grados donde se encuentra el motor String leeCadena;
// Almacena la cadena de datos recibida
const int Trigger = 2; //Pin digital 2 para el Trigger del sensor const int Echo = 3; //Pin digital 3 para el Echo del sensor
void setup() {
//////////////ASIGNACION DE PINES///////////// Serial.begin(9600);//iniciailzamos la comunicación
pinMode(11, OUTPUT);
// Pin 11 conectar a IN4
pinMode(10, OUTPUT);
// Pin 10 conectar a IN3
pinMode(9, OUTPUT);
// Pin 9 conectar a IN2
pinMode(8, OUTPUT);
// Pin 8 conectar a IN1
pinMode(Trigger, OUTPUT); //pin como salida pinMode(Echo, INPUT); //pin como entrada digitalWrite(Trigger, LOW);//Inicializamos el pin con 0
}
INFORME DE PROYECTO N°2 FR-FAC-PAC-GLB-018
Versión: 03
Fecha: 20/12/2018
void loop() {
//////LECTURA DE LA DISTANNCIA/////// float t; //timepo que demora en llegar el eco float d; //distancia en centimetros
int cant; int canti;
digitalWrite(Trigger, HIGH); delayMicroseconds(10);
//Enviamos un pulso de 10us
digitalWrite(Trigger, LOW);
t = pulseIn(Echo, HIGH); //obtenemos el ancho del pulso d = t/55;
//escalamos el tiempo a una distancia en cm
// Serial.print("Distancia: "); Serial.print(d);
//Enviamos serialmente el valor de la distancia
Serial.print("cm"); Serial.println(); //delay(10);
while(d>1) } if(d6 && d9.50 && d12.00 && d15.00 && d18.00){ cant=14; }
Versión: 03
Fecha: 20/12/2018
INFORME DE PROYECTO N°2 FR-FAC-PAC-GLB-018
Versión: 03
Fecha: 20/12/2018
/* if(d0){ dato_rx = leeCadena.toInt(); // Convierte Cadena de caracteres a Enteros //Serial.print(dato_rx);
// Envia valor en Grados
//Serial.println(" Grados"); delay(retardo); dato_rx = (dato_rx * 1.4222222222); // Ajuste de 512 vueltas a los 360 grados } while (dato_rx>numero_pasos){ // Girohacia la izquierda en grados paso_izq(); numero_pasos = numero_pasos + 1; }
INFORME DE PROYECTO N°2 FR-FAC-PAC-GLB-018
Versión: 03
Fecha: 20/12/2018
while (dato_rx...