Вы находитесь на странице: 1из 13

Control Computarizado

Agosto Diciembre 2015


Dr. Ricardo Fernndez del Busto

Sistema Ball and beam

Equipo:
Roberto Urza A01421044
Alejandro Pochoteco A01421104
Miguel Andrs Lara A01420995

Fecha de entrega:
26 de Noviembre de 2015
Resumen
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
3

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.
4

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.
5

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)*Kp
Derivativo = (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:
8

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.
#include <Servo.h>
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<20){
errorActual= sp - cm ;
Serial.println(sp);
Serial.println(cm);
Serial.println(errorActual);

}
else{
myservo.write(45);
delay(30);//50
errorActual= sp - cm ;
}
double p=errorActual*kp; //control proporcional

double d=(errorActual-errorPasado)*(kd/dt); //control derivativo

double i=ki*dt*errorActual + iTpasado;

double uT= p + 0 + d ;
Serial.println(uT);

10

if(uT<0)
{
myservo.write(47);//37
}
else if (uT>0)
{
myservo.write(37);//50
}

iTpasado=i;
errorPasado=errorActual;
delay(10); //periodo de muestreo
}
void sensar()
{
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);

pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
cm = microsecondsToCentimeters(duration);
delay(60);
}
long microsecondsToCentimeters(long microseconds)
{

11

return microseconds / 29 / 2;}// conversin usando la velocidad del sonido en s/cm y realizando solo un
recorrido

Anexo B: Caracterizacin del servomotor

12

13