ball and beam

Upload: pochoo-alex

Post on 05-Mar-2016

28 views

Category:

Documents


0 download

DESCRIPTION

proyecto

TRANSCRIPT

Sistema Ball and beam

Control Computarizado Agosto Diciembre 2015Dr. Ricardo Fernndez del Busto

Sistema Ball and beam

Equipo: Roberto Urza A01421044Alejandro Pochoteco A01421104Miguel Andrs Lara A01420995

Fecha de entrega:26 de Noviembre de 2015Resumen

En el presente documento se describe un sistema bola viga y la implementacin de un control PID para el mismo. Se desarroll un modelado dinmico del sistema bola viga y la simulacin de dicho modelo en simulink de MATLAB. Adems de la programacin de un controlador PID tipo ISA en arduino, siendo este ltimo el microcontrolador.

Antecedentes

El sistema de la bola - viga fue construido con el propsito de estudiar uno de los problemas ms comunes en el control, como es el diseo de control de sistemas inestables. El problema consiste en que los sistemas inestables verdaderos son generalmente peligrosos y no se pueden reproducir en condiciones reales en el laboratorio. El sistema ball and beam, por su nombre en ingls, consiste en balancear una bola o esfera sobre una viga, controlando la posicin de la primera mediante la inclinacin de la segunda. El sistema es inestable ya que para variaciones en la inclinacin del eslabn, la bola no tiene un comportamiento lineal.

Objetivo

Poder realizar el control de lazo cerrado de un sistema bola viga, esto es, lograr que dado un punto de ajuste la bola pueda, mediante un controlador PID, lograr estabilizarse y llegar siempre a dicho punto establecido anteriormente. Esto gracia a un sensor ultrasnico y un servomotor.

Materiales

-National Instruments LabView 2015-AutoCAD 2016-MATLAB R2014a-Simulink R2014a-Servomotor Turnigy MX-355WP-Sensor ultrasnico SRF05-MDF-Cortadora laser-Pelota de ping-pong-Elementos de sujecin mecnica

Metodologa

1. Primero se trabaj en un diseo en CAD para nuestro sistema bola viga. Se consideraron medidas que permitieran un correcto movimiento. Este diseo result en un sistema biela manivela corredera, el cual se simul su movimiento en Matlab como se muestra en la figura 1. Una vez realizada dicha simulacin se procedi a cortar en con una mquina lser, MDF para nuestro diseo en AutoCAD que se muestra en la figura 2.

Fig 1. Simulacin de movimiento de nuestro sistema.

Fig 2. Diseo en AutoCAD de sistema bola-viga.

2. Se decidi utilizar un sensor ultrasnico SRF 05, esto por la disponibilidad del sensor y la fcil adaptacin al microcontrolador arduino uno. El sensor se muestra en la figura 3. Adems utilizamos un servomotor por el tipo de movimiento que tenemos, ya que no vamos a utilizar todos los grados de un motor DC, preferimos usar un sensor que se puede acotar por grados, este se muestra en la figura 4. En el anexo B se encuentra la caracterizacin del servomotor empleado, para esto se tomaron medidas del ngulo de salida respecto a un tiempo de respuesta, a dichos valores se les asigno un voltaje de 1 a 5 volts pero arduino redondeaba estos valores, por ello se multiplicaron por 10 para tener mayor variacin. En cuanto a la caracterizacin del sensor ultrasnico, es un sensor que con anterioridad ya se haba trabajo y por experiencia no es lineal de 0 a 3 cm y ms all de 30 cm, para nuestra aplicacin, se decidi asignar puntos de ajuste que no entraran en estas zonas en las que el sensor no acta linealmente. Adems como las mediciones de distancia eran solamente sobre una sola direccin, no fue necesario caracterizar las medidas de distancia en un rango.

Fig 3. Sensor ultrasnico SRF05

Fig 4. Servomotor MX-355WP

3. La obtencin de la funcin de transferencia mediante ecuaciones diferenciales se muestra en la figura 5.

Fig 5. Modelado del sistema bola viga.

4. La funcin transferencia obtenida mediante el modelado matemtico anterior, se es considerada nuestra planta. Esta es simulada en simulink para poder identificar qu parmetros del controlador PID logran que este sistema responda de una forma estable y llegue al punto de ajuste que necesitamos. Esta simulacin se muestra en a figura 6 y la respuesta del sistema a un escaln unitario en la figura 7.

Fig 6. Simulacin de la planata y el controlador en simulink.

Fig 7. Respuesta del sistema a un escaln unitario.

5. Para aplicar los conocimientos adquiridos durante este semestre, convertimos la funcin de transferencia continua a un sistema discreto y su respectiva representacin en variables de estado en continuo y discreto. Esta conversin de modelos se presenta en la figura 8.

Fig 8. Representacin de la planta en diferentes sistemas.

6. Posteriormente se desarroll un nuevo programa, en el que se implementara un PID a travs de la sintonizacin manual para el control del sistema.

Usando las ecuaciones de la figura 8, estas se traducen en operaciones simples a la hora de programarlas. Para esto, se investig en internet programas parecidos a lo que se plante realizar en este proyecto y recurrimos a un programa anterior realizado en LabVIEW para un self-balancing.

Fig 8. Ecuacin del controlador PID.

Proporcional = (ValorAnterior-ValorActual)*KpDerivativo = (ErrorAnterior-ErrorActual)*(Kd/tiempo de muestreo)Integral = (tiempo de muestreos*Ki)(error acutal+integral pasada)

En el anexo A se muestra el cdigo realizado para la implementacin del control PID realizado en Arduino.

Resultados

Finalmente en cunto al diseo se recurrieron a sistemas de sujecin mecnica, esto debido a las vibraciones del sistema como se muestra en la figura 9. Adems en cunto a la implementacin del controlador se sintonizaron valores para Kp. Kd y Ki que lograron una respuesta lenta y no repetibles. Estos valores no coincidieron con la teora como se esper. El circuito final empleado se muestra en la figura 9.

Fig 9. Representacin grfica del circuito electrnico empleado.

Conclusiones

Se busc implementar un modelo fsico con las caractersticas de un peso distribuido y un centro de masa cercano al piso, a partir de la teora (Calv, 2012) obtener los valores de las constantes para el PID, los cuales no dieron resultados concordantes por lo que se opt por sintonizacin manual.

Esta sintonizacin manual ayud a entender cul es el comportamiento del nuestro sistema con diferentes variables de control, ya sea el cambio del sobrepaso, la llegada al error cero y el tiempo de asentamiento.

Por ltimo, resaltamos la comparacin que existe entre un controlador PID y una programacin a base de reglas. El segundo de ellos nunca logr una estabilidad mayor a 1 segundo, en cambio el primero si lo pudo hacer, esto quiere decir que un controlador con base matemtica es mejor que uno a base de reglas o heurstico.

Bibliografa:Fernndez, R. (2013). Anlisis y diseo de sistemas de control digital. Mxico, DF: Mc Graw Hill.

Anexo A: Cdigo de Arduino para la implementacin de un controlador PID.

11

#include Servo myservo; // create servo object to control a servo // twelve servo objects can be created on most boards int pos = 0; // variable to store the servo position const int pingPin = 7;long duration, cm;

int kp=0.1;int kd=0.4;int ki=0.0005;int sp=9;int dt=.7;

int a=A0; //no sirve para propositos del programa

int errorPasado=0;int iTpasado=0;int errorActual=0;

void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object Serial.begin(9600);}

void loop() { sensar(); //int kp = analogRead(a)/100; if(cm