Mecanismo Bola Barra

June 12, 2019 | Author: Jorgeaaa | Category: Tecnología, Electrical Engineering, Software, Computing And Information Technology
Share Embed Donate


Short Description

Abstract: Este trabajo describe la implementación de Arduino y Matlab en conjunto. Se debe instalar una librería en Matl...

Description

UCSM - Campus Universitario Edificio R. FCIFF - EPIMMEM  – Ing. Mecatrónica. Control Mecatrónico III – Ing. Marcelo J.Q.C. Julio 6, 2017. Umacollo - Cercado | Arequipa

Diseño Y Control de Mecanismo Barra y Bola de Pivote Central con Control Clásico PID M. Díaz, O. Alpaca, D. Medina

Universidad Católica de Santa María, PERU (e-mail: [email protected] [email protected],, [email protected] [email protected],, [email protected] [email protected])) Abstract: Este trabajo describe la implementación de Arduino y Matlab en conjunto. Se debe instalar una librería en Matlab y código característico de la librería en el Arduino, los cuales son de naturaleza Open-Source, para implementar la comunicación entre ambas plataformas de desarrollo. Se implementa como DAQ la salida directa de posición a través del monitor serial del entorno de desarrollo de Arduino. Finalmente, se combinó los datos como de entrada, tiempo y salida en Ident de Matlab para encontrar la respuesta de la planta, curva de estabilización y función de transferencia en base a estos resultados obtenidos anteriormente para poder implementar un control PI D estable.  Keywords: Matlab, Arduino, Ident, PID, barra-bola, pivote central.

1. INTRODUCCIÓN El objetivo es controlar la posición de la esfera sobre la  barra. El giro de la esfera, debido a la gravedad, está confinado a un canal situado en la parte superior de la barra que además cumple con la función de ser el elemento que soporta el sensor que mide la posición de la esfera. El sistema barra-esfera se puede ver como la abstracción que duplica el trabajo diario de un mesero con una charola o ciertos juegos en donde en una pequeña superficie, con n depresiones, se trata de posicionar n balines en las depresiones.

Cabe precisar que en ambos extremos se restringieron mecánicamente para que la esfera no salga de la barra. Esta restricción fue aproximadamente a 4 cm de cada extremo debido a que el sensor utilizado no media bien cuando la  bola estaba a menos de 4 cm del sensor. 3. PLANOS 3.1. Planos

En este proyecto se muestra el diseño de dicho sistema, el funcionamiento del proyecto y los códigos respectivos para el control. 2. DESCRIPCION DEL PROYECTO El proyecto desarrollado es un sistema barra - esfera en donde la posición de una esfera sobre una barra es controlada por la inclinación de la barra. La barra se inclinaba por la acción de un servomotor, el cual tenía acoplado a su eje la barra; dicho servomotor se encontraba en el centro de la barra. Así se controla la inclinación de la  barra por medio del actuador (servomotor) e indirectamente se controla la posición de la esfera.

Fig. 2. Planos 3D

Fig. 3. Vista Frontal Fig. 1. Esquema principal del mecanismo.

Fig. 4. Vista Frontal

UCSM - FCIFF - EPIMMEM  – Ing. Mecatrónica. Control Mecatrónico III Julio 6, 2017. Arequipa

3.2. PROPIEDADES FISICAS Largo (cm)

Ancho (cm)

Alto (cm)

Material

Brazo

40.0

4.0

1.5

Aluminio

Apoyos

13.5

4.0

1.5

Aluminio

Cuerpo

15

2.5

30.0

Aluminio

Portador del servomotor

3.5

3.5

9.0

Aluminio

Eje

11.0

1.0

1.0

Acero

Cuadro 1. Dimensiones reales 4. FUNCIONAMIENTO DEL PROYECTO 4.1. Diagrama de Flujo

Fig. 5. Diagrama de flujo 4.2. Código en Arduino long distancia; long tiempo; int pin=11; int triger = 3; int echo = 5; int vcc = 2; int gnd = 4; float error=0; float c=0; float errora=0; float k = 1; float Kp=3;//3 float Ki=0.03;//0.01; float Kd=30;//30;

float P=0; int P_1=0; float pi=0; float PD=0; float PD_1=0; int PID=0; int sp=18; int num=0; void setup () { Serial.begin(9600); //SERVO pinMode (pin, OUTPUT); //ULTRASONICO pinMode (triger, OUTPUT); pinMode (echo, INPUT); //Alimentación ultrasónico pinMode (vcc, OUTPUT); pinMode(gnd,OUTPUT); digitalWrite(vcc,HIGH); digitalWrite(gnd,LOW);} void pulso (int duracion) { //Funcionamiento Servo duracion=constrain(duracion,1000,2000); digitalWrite(pin,HIGH); delayMicroseconds(duracion); digitalWrite(pin,LOW); delayMicroseconds(20000 - duracion);} void loop () { //ULTRASONICO digitalWrite(triger,LOW); delayMicroseconds(5); digitalWrite(triger,HIGH); delayMicroseconds(10); tiempo=pulseIn (echo, HIGH); distancia= int(0.017*tiempo); distancia = constrain(distancia,4,40); Serial.println(distancia); c = error-errora; delay(10); //CONTROLADOR PROPORCIONAL errora=error; error=distancia-sp; P=Kp*error; //Rango de error if  (abs(error)>2) { //CONTROLADOR INTEGRAL pi=pi+Ki*error;} else{pi=0;} //CONTROLADOR DERIVATIVO PD=Kd*c; ///CONTROLADOR PID PID = k*(P+PD+pi); //PID = 0; //1540 represeta a la barra posicionada a 90 grados int y = 1540 + PID; //Restriccion por parametros de funcionamiento del y = constrain(y,1000,2000); //Condicion de funcionamiento if (abs(error)
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF