ball and beam system

18
INTRODUCCÍON Los sistemas de control forman parte integral de la sociedad moderna. Se encuentran numeras aplicaciones como el lanzamiento de naves espaciales, fabricacion automatica en la idustria, automoviles autoconducidos. Tambien los sistemas de control se encuentran en la naturaleza, dentro del cuerpo humano esta el pancreas que regula el azucar en la sangre, los ojos siguen un objeto en movimiento. El control automatico ha desempeñado una función en el avance de la ingeniería y la ciencia. Ademas de su extrema importancia en los sistemas de vehículos espaciales, de guiado de misiles, robóticos y similares; el control automático se ha vuelto una parte importante e integral de los procesos modernos industriales y de manufactura. Por ejemplo el control automático es esencial en el control numérico de las máquinas-herramienta de las industrias de manufactura, en el diseño de sistemas de pilotos automáticos en la industria aeroespacial, y en el diseño de automóviles y camiones en la industria automotriz. Tambíen es esencial en las operaciones industriales como el control de presión, temperatura, humedad, viscosidad y flujo en las industrias de proceso. JUSTIFICACIÓN El estudio de control a nivel licenciatura se ha basado principalmente en el estudio teórico y del uso de simulaciones en computadora. La teoría de control se basa en conceptos abstractos que, al estudiante, le resultan dificil en principio visualizar. Aunque sí se analizan sistemas reales, estos raramente se construyen ni diseñan fisicamente. Al manipular el modelo fisico se comprende mejor como el modélo matematico de un controlador afecta al sistema. Un problema clásico de control es el balancear una pequeña pelota que rueda sobre una viga cuyo ángulo de posición esta controlado por un actuador. Este sistema, que en adelante se llamará “ball and beam”, presenta varios principios que se abarcan en la asignatura de control a nivel licenciatura como son; control de lazo cerrado, modelado de la función de transferencia del sistema, controlador PID, sintonización del controlador PID. Por lo que el análisis, diseño y construcción de este sistema abarca los principios teóricos necesarios para la comprensión del funcionamiento del control en sistemas. DELIMITACIÓN Los sistemas de control constan de tres partes fundamentales que son el controlador, el actuador y el sensor. Estas son las partes básicas y mínimas para construir un sistema de control con retroalimentación. El sistema “ball and beam” se implementará usando la placa Arduino Uno que contiene un microcontrolador que se usará como controlador PID. La retroalimentación del sistema se hará sensando la posicion de la pelota sobre la viga, utilizando el sensor ultrasónico HC-SR04. El ángulo de la viga se controla por medio de un motor de corriente directa (actuador). El controlador PID se implementa en el Arduino con programación usando el código propio del programa Arduino IDE. Se simplificó el sistema al solamente tomar en cuenta el modélo 1

description

sistema de control de ball and beam

Transcript of ball and beam system

Page 1: ball and beam system

INTRODUCCÍON

Los sistemas de control forman parte integral de la sociedad moderna. Se encuentrannumeras aplicaciones como el lanzamiento de naves espaciales, fabricacion automatica en laidustria, automoviles autoconducidos. Tambien los sistemas de control se encuentran en lanaturaleza, dentro del cuerpo humano esta el pancreas que regula el azucar en la sangre, losojos siguen un objeto en movimiento.

El control automatico ha desempeñado una función en el avance de la ingeniería y la ciencia.Ademas de su extrema importancia en los sistemas de vehículos espaciales, de guiado demisiles, robóticos y similares; el control automático se ha vuelto una parte importante eintegral de los procesos modernos industriales y de manufactura. Por ejemplo el controlautomático es esencial en el control numérico de las máquinas-herramienta de las industriasde manufactura, en el diseño de sistemas de pilotos automáticos en la industria aeroespacial,y en el diseño de automóviles y camiones en la industria automotriz. Tambíen es esencial enlas operaciones industriales como el control de presión, temperatura, humedad, viscosidad yflujo en las industrias de proceso.

JUSTIFICACIÓN

El estudio de control a nivel licenciatura se ha basado principalmente en el estudio teórico ydel uso de simulaciones en computadora. La teoría de control se basa en conceptosabstractos que, al estudiante, le resultan dificil en principio visualizar. Aunque sí se analizansistemas reales, estos raramente se construyen ni diseñan fisicamente. Al manipular elmodelo fisico se comprende mejor como el modélo matematico de un controlador afecta alsistema.

Un problema clásico de control es el balancear una pequeña pelota que rueda sobre una vigacuyo ángulo de posición esta controlado por un actuador. Este sistema, que en adelante sellamará “ball and beam”, presenta varios principios que se abarcan en la asignatura decontrol a nivel licenciatura como son; control de lazo cerrado, modelado de la función detransferencia del sistema, controlador PID, sintonización del controlador PID. Por lo que elanálisis, diseño y construcción de este sistema abarca los principios teóricos necesarios parala comprensión del funcionamiento del control en sistemas.

DELIMITACIÓN

Los sistemas de control constan de tres partes fundamentales que son el controlador, elactuador y el sensor. Estas son las partes básicas y mínimas para construir un sistema decontrol con retroalimentación. El sistema “ball and beam” se implementará usando la placaArduino Uno que contiene un microcontrolador que se usará como controlador PID. Laretroalimentación del sistema se hará sensando la posicion de la pelota sobre la viga,utilizando el sensor ultrasónico HC-SR04. El ángulo de la viga se controla por medio de unmotor de corriente directa (actuador).

El controlador PID se implementa en el Arduino con programación usando el código propiodel programa Arduino IDE. Se simplificó el sistema al solamente tomar en cuenta el modélo

1

Page 2: ball and beam system

matemático del motor dc. Se desprecio el sistema o planta conformado por la pelota y la viga;no se analizó la fricción de la pelota con la viga, la longitud de esta ni la velocidad de lapelota sobre la viga dependiendo del ángulo. Estos factores son importantes para una buenarespuesta en el control, pero no se tomarán en cuenta. La única retroalimentación que seusará es el sensado de la posición de la pelota, no se hará retroalimentación del ángulo delrotor del motor de cd.

Para crear el control PID es necesario sintonizarlo, es decir saber que valores se usarán enel PID, ya que los sistemas son únicos, y necesitan ciertos valores determinados para teneruna buena respuesta. La sintonización depende del modelo matemático del sistema en estecaso el modélo del motor cd.

El modelado del motor de cd se hará utilizando el software “Simulink” de MATLAB. Paramodelar el motor será necesario tener retroalimentación de la respuesta del motor hacia elsoftware. Para la adquisición de datos se usa el Arduino Uno junto con con el Simulink. Unavez adquirida la información del motor esta se grafica en MATLAB y se obtiene su función detransferencia. Para hacer esto se basará en el trabajo hecho por la Universidad de Illinois,por Arjun Shekar Sadahalli del departamento de Ingeniería Eléctrica. Una vez teniendo lafuncion de transferencia del motor, en el mismo Simulink se sintoniza el PID, de acuerdo a larespuesta que se quiera. Para modelar el motor es necesario que tenga un encoder ya queeste nos da la lectura de la velocidad del motor.

Para girar el motor en los dos sentidos y variar su velocidad se usa un puente H. El driverLMD18200 es un buen puente H para este tipo de aplicación ya que maneja corrientes dehasta 3 A, que son necesarios para dar el suficiente torque al motor de dc que girará la viga.

OBJETIVOS GENERALES

Crear un sistema de control de lazo cerrado utilizando el control PID.

OBJETIVOS ESPECÍFICOS

Construir el sistema fisico.

Obtener la funcion de transferencia del motor de corriente directa por medio de software.

Implementar el sistema de control utilizando un PID programable.

Cambiar los valores del PID para analizar como afecta la respuesta del sistema.

PROBLEMÁTICA

El propósito del sistema es mantener la posición de la pelota en el centro de la viga, por lacual la bola rueda libremente. La pelota debe regresar a su posición central aunque se ledesplace a otra posición. Este sistema es una herramienta efectiva para enseñar losprincipṕ ios del lazo cerrado en control.

2

Page 3: ball and beam system

Fig. 1) Sistema compuesto por el actuador el motor y la bola que rueda libremente sobre laviga.

MARCO TEORICO

Motor de corriente continua

El motor de cc es un dispositivo actuador de potencia que proporciona energía a una carga.El motor cc convierte energía eléctrica en forma de corriente continua en energía mecánicarotacional. Una gran parte del par generado en el rotor del motor está disponible para moveruna carga externa. Debido a características tales como par elevado, controlabilidad de lavelocidad en un amplio rango, portabilidad, características par-velocidad bien comportadas yadaptabilidad a diversos tipos de métodos de control, los motores de cc aún se utilizan engeneral en numerosas aplicaciones de control, incluyendo a manipuladores robóticos,mecanismos de trasporte de cintas, unidades de disco, máquinas de herramientas yactuadores de servo-válvulas.

El motor de cc controlado por inducido utiliza la corriente del inducido ia como la variablede control. El campo en el estator se puede establecer mediante una bobina de excitación oun imán permanente.

Fig. 2) Motor de cc, controlado por inducido, actuador rotacional.

3

Page 4: ball and beam system

Fig. 3) Diagrama de bloques para el motor de cc, controlado por inducido.

La funcion de transferencia del motor de cc controlado por inducido es:

G(S )=Θ(S )V a(S )

=K m

s [(Ra+ La s)(Js+b)+K bK m]

K b y K m son iguales:

G(S )=Θ(S )V a(S )

=K

s [(Ra+ La s)(Js+b)+K2]

Parámetros del motor de cc controlado por inducido:

Momento de inercia J (kg⋅m2)Coeficiente de fricción b (N⋅m⋅s )Resistencia de la armadura Ra (Ω)

Inductancia de la armadura La (H )

Constante contraelectromotriz K (N⋅m /A)

Arduino Uno

Arduino es una plataforma de electrónica abierta para la creación de prototipos basada ensoftware y hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores,aficionados y cualquiera interesado en crear entornos u objetos interactivos.

Arduino puede tomar información del entorno a través de sus pines de entrada de toda unagama de sensores y puede afectar aquello que le rodea controlando luces, motores y otrosactuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de

4

Page 5: ball and beam system

programación Arduino(basasdo en Wiring) y el entorno de desarrollo Arduino (basado enProcessing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectara un ordenador, si bien tienen la posibilidad de hacerlo y comunicar con diferentes tipos desoftware (p.ej. Flash, Processing, MaxMSP MATLAB).

Fig. 4) Placa de Arduino

Especificaciones:

Microcontrolador Atmega328Voltaje de operación 5VVoltaje de entrada 7-12VE/S Digitales 14 (6 proveen salida PWM)Entradas análogas 6Corriente por cada E/S 40 mACorriente a 3.3V 50 mAMemoria Flash 32 KBSRAM 2 KBEEPROM 1 KBVelocidad de reloj 16 Mhz

El Arduino UNO se programa con el software Arduino, solo se necesita conectar la placa a lacomputadora con el cable USB, sin la necesidad de un programador. Solo se necesita bajarel programa.

Sensor ultrasónico HC-SR04

El HC-SR04 es un sensor ultrasónico de bajo costo que no sólo puede detectar si un objetose presenta, sino que puede también puede sentir y transmitir la distancia del objeto. Tiene

5

Page 6: ball and beam system

dos transductores, básicamente un altavoz y un microfono. Ofrece una excelente detecciónsin contacto con elevada precisión y lecturas estables en un formato fácil de usar. Elfuncionamiento no se ve afectado por la luz solar o el material negro como telémeros ópticos.

Fig. 5) Sensor ultrasonico HC-SR04 y diagrama de su funcionamiento

Característcias técnicas:

VCC alimentación 5VTRIG entrada del sensor (pulsos de 10 us)ECHO salida del sensor (ancho de pulso directamente proporcional a la distancia medida)GND

Distancia máxima 400 cmDistancia mínima 2 cmPrecisión de 0.3 cmÁngulo de detección 15°Consumo de corriente 15 mADimensiones 45 x 20 x 15 mm

Distancia en cm = (tiempo medido en us) x (0.017)

Controlador PID

Uno de los controladores más utilizados en control de procesos industriales es eldenominado controlador de tres términos o controlador PID. Este controlador tiene unafunción de transferencia:

Gc (S )=U (S )

E (S )=K P+

K I

s+K D s=

K D s2+K P s+K I

s

K P , K I y K D son las ganacias proporcional, integral y derivativa respectivamente.

6

Page 7: ball and beam system

Fig. 6) Diagrama de bloques de un controlador PID.

El controlador puede solo tener dos de los tres términos, es decir puede ser un PI o PD, lasiguiente gráfica muestra la respuesta transitoria de un sistema P(S)=1/(s+1)³ con un controlP, PI y PID. El controlador P tiene kp=1, 2 y 5, el controlador PI tiene kp=1, ki=0, 0.3, 0.5 y 1,el controlador PID tiene kp=2.5, ki=1.5 y kd=0, 1, 2 y 4.

Fig. 7) Ejemplos de respuesta con controlador, P, PI y PID.

7

Page 8: ball and beam system

Fig. 8) Diagrama de bloques del sistema “ball and beam”.

Uso de MATLAB para modelar el motor de cc

Estimar los parametros del motor de cc; Momento de inercia, coeficiente de fricción,resistencia de la armadura, inductancia de la armadura y constante contraelectromotriz.

Fig. 9) La respuesta en rosa muestra la respuesta real del motor, la respuesta en amarillomuestra la respuesta de la funcion de transferencia que debe ser igual a la rosa. Para

lograrlo se deben estimar los parametros del motor.

8

Page 9: ball and beam system

Fig. 10) Mediante el Simulink Design Optimization, MATLAB nos da los valores para losparametos del motor de cc.

Sintonización del controlador PID

Una ves obtenidos los parametros del motor cc, es necesario agregar el controlador PID ysintonizarlo. La sintonización del PID se puede hacer usando varias técnicas, ya seamatemáticamente o mediante el uso de software.

Si se puede obtener un modelo mateático de la planta, es posible aplicar diversas técnicasde diseño con el fin de determinar los parametros del controlador que cumpla lasespecificaciones en estado transitorio y en estado estable del sistema en lazo cerrado. Sinembargo, si la planta es tan complicada que no es fácil obtener su modelo matemático,tampoco es posible un enfoque analítico para el diseño de un controlador PID. En este casodebemos recurrir a los enfoques experimentales para la sintonización de los controladoresPID.

El proceso de seleccionar los parámetros del controlador que cumplan en lasespecificaciones de desempeño se conoce como sintonización del controlador. Ziegler yNichols sugirieron más reglas para sintonizar los controladores PID (lo cual significaestablecer los valores, Kp, Ti y Td) con base en las respuestas escalón experimentales obasadas en el valor de Kp que se produce en la estabilidad marginal cuando sólo se usa laacción de control proporcional. Las reglas de Ziegler-Nichols, son muy convencionalescuando no se conocen los modelos matemáticos de las plantas. (Por supuesto, estas reglasse aplican al diseño de sistemas con modelos matemáticos conocidos.)

9

Page 10: ball and beam system

En este caso no se usará el método de sintonización de Ziegler-Nichols, no se analizará endetalle, pero se puede encontrar mas información en “Ingeniería de control moderna” deKatsuhiko Ogata. Se usará el MATLAB para hacer la sintonización, que se puede hacer en el“Command window” usnado el comando pidtool(); o más graficamente con el “Simulink”.

En MATLAB usando el comando pidtool();

Fig. 11) Uso del comando pidtool();

10

Page 11: ball and beam system

Fig. 12) Ventana donde se puede sintonizar el PID como se desee, los valores kp, ki, kd semuestran en el recuadro de la derecha.

Usando SIMULINK para sintonizar el PID.

Fig. 13) La primer ventana a la izquierda muestra el modelo del sistema en simulink, lasventanas a la derecha muestran en azul la respuesta deseada en el motor, la respuesta en

11

Page 12: ball and beam system

rojo es la respuesta medida. Como se ve el PID no esta sintonizado.

Fig. 14) Para sintonizar el PID le damos doble click al bloque y damos click a la opción“Tune”.

Fig. 15) Una ves terminado el proceso, el programa nos arroja las ganancias del PID.

12

Page 13: ball and beam system

Fig. 16) Una ves sintonizado el PID la respuesta medida es bastante similar a la deseada.

13

Page 14: ball and beam system

Conexión del sistema

Fig. 17) Conexión del sistema “ball and bema”.

Programa del Arduino para el sistema.

/* Sistema Ball and Beam con Arduino UNO

Se usa un Motor de CD de 12 V, para controlar el movimiento de la viga (beam). La dirección y velocidad del motor depende de la posicion de la bola (ball) en la viga (beam). El sensor ultrasonico es usado para detectar su posición y usar esta variable como retroalimentación al motor. Para manejar el Motor a 12 V se usa el IC L293D.

*/

14

Page 15: ball and beam system

//------------------------------------------------------------------// // ASIGNACIÓN DE NOMBRE A PINES //------------------------------------------------------------------// // Motor CD int motor_A=12; // Conexión A del Motor al pin 6 int motor_B=8; // Conexión B del Motor al pin 5 int motor_velocidad=3; // Velocidad del Motor al pin 3 //------------------------------------------------------------------// // Sensor Ultrasonico int trigPin = 2; //Conexión a pin Trig del Sensor int echoPin = 4; //Conexión a pin Echo del Sensor //------------------------------------------------------------------// //------------------------------------------------------------------// //ASIGNACION DE VARIABLES DEL CONTROLADOR PID unsigned long lastTime; double Input, Output, Setpoint; double errSum, lastErr; double kp, ki, kd; //------------------------------------------------------------------// //------------------------------------------------------------------//

void setup(){ //------------------------------------------------------------------// // ASIGNACIÓN DE ENTRADAS Y SALIDAS //Motor CD pinMode(motor_A,OUTPUT); // Conexión A: Salida pinMode(motor_B,OUTPUT); // Conexión B: Salida

//Sensor Ultrasonico pinMode(echoPin, INPUT); //Pin Echo: Entrada pinMode(trigPin, OUTPUT); //Pin Trig: Salida Serial.begin(9600); //Retroalimentacion del Arduino UNO //a la PC para visualizar distancia //------------------------------------------------------------------// //PARAMETROS DEL CONTROLADOR kp=1; ki=0.0; kd=0.0; //------------------------------------------------------------------// }

void loop(){ //------------------------------------------------------------------// //SENSADO DE DISTANCIA DE LA BOLA CON SENSOR ULTRASONICO

15

Page 16: ball and beam system

long duration; float cm; pinMode(echoPin, INPUT); pinMode(trigPin, OUTPUT); digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); cm = microsecondsToCentimeters(duration); Serial.print(cm); Serial.print("cm"); Serial.println(); delay(100); if (cm > 40) {cm=40;} Input = cm; Setpoint = 20; //------------------------------------------------------------------// //------------------------------------------------------------------// //ACCIÓN DEL CONTROLADOR PID compute(); //LLAMADA A RUTINA DEL PID //------------------------------------------------------------------// //ACCIÓN DEL MOTOR DC SOBRE LA VIGA double vel_out; vel_out = 0; if (Output < 0){ vel_out = 11.25*Output; //Velocidad Máxima = 50% 6.35 //en extremo derecho (40 cm) analogWrite(motor_velocidad, -vel_out); digitalWrite(motor_A,HIGH); // Giro debe ser ANTIHORARIO digitalWrite(motor_B,LOW); } else if (Output > 0){ vel_out=11.25*Output; //Velocidad Máxima = 50% //en extremo izquierdo (0 cm) analogWrite(motor_velocidad, vel_out); digitalWrite(motor_A,LOW); // Giro debe ser HORARIO digitalWrite(motor_B,HIGH); } else{ analogWrite(motor_velocidad, 0); digitalWrite(motor_A,LOW); // Paro de Motor digitalWrite(motor_B,LOW); }

16

Page 17: ball and beam system

}

//------------------------------------------------------------------// //CONVERSIÓN DE DISTANCIA A CENTÍMETROS

float microsecondsToCentimeters(long microseconds){ return (microseconds*0.034029)/2; }

//------------------------------------------------------------------// //ACCIÓN DE CONTROL PID void compute() { /* Cuanto tiempo pasó desde el último cálculo. */ unsigned long now = millis(); double timeChange = (double)(now - lastTime); /* Calculamos todas las variables de error. */ double error = Setpoint - Input; errSum += (error * timeChange); double dErr = (error - lastErr) / timeChange; /* Calculamos la función de salida del PID. */ Output = kp * error + ki * errSum + kd * dErr; //kp solo depende de //"error=20-posicion de bola" //Limites de la Salida del PID (Máximo 20, Mínimo -20) if (Output > 20) {Output = 20;} else if (Output < -20) {Output = -20;} /* Guardamos el valor de algunas variables para el próximo ciclo de cálculo. */ lastErr = error; lastTime = now; } //------------------------------------------------------------------// //------------------------------------------------------------------//

CONCLUSIONES

El sistema “ball and beam” es útil para demostrar los beneficios de los métods básicos decontrol y para demostrar el efecto del retardo de retroalimentación en un sistema. Losestudiantes pueden ver la teoría de control en acción. Es un proyecto educativo no costosopara enseñar el valor de control.

17

Page 18: ball and beam system

BIBLIOGRAFÍA

Sistemas de control moderno. Décima edición. Richard Dorf, Robert Bishop.

Sistemas de control automático. Séptima edición. Benjamin C. Kuo.

Ingeniería de control moderna. Tercera edición. Katsuhiko Ogata.

http://arduino.cc/en/Main/ArduinoBoardUno

http://www.mathworks.com/videos/estimating-parameters-of-a-dc-motor-68856.html

http://www.mathworks.com/videos/estimating-dc-motor-parameters-from-test-data-68813.html

http://www.mathworks.com/help/control/ref/pidtune.html

http://www.mathworks.com/products/control/description5.html

http://www.mathworks.com/videos/pid-controller-design-for-a-dc-motor-68881.html?type=shadow&s_tid=disc_rhs

18