Está en la página 1de 8

Universidad de Pamplona.

Beleño Sergio, Bautista José Eduardo, Control Sistema Barra y Bola 1

Control Sistema Barra y Bola


Beleño, Sergio., Bautista, Eduardo
Universidad de Pamplona

Índice de Términos— Control, PID, Barra y bola, 2. Adquirir datos del sensor por medio de
Servomotor, No lineal Simulink
3. Controlar la planta por medio del servomotor
I. INTRODUCCIÓN a partir de un sistema en lazo cerrado en
Se tratará un sistema de barra y bola donde se Simulink.
4. Discutir respuestas de la planta ante
implementará un control clásico. Primero se presenta
diferentes entradas y controladores
un esquema en el que se aprecia la forma en que van
conectados los diferentes dispositivos comunes en un III. PLANTEAMIENTO DEL PROBLEMA Y
lazo de control, el actuador será el servomotor, el DELIMITACIÓN
sensor será de distancia, el controlador un Arduino.
Se hace la caracterización del sensor de distancia Debido a que es un sistema altamente no lineal
infrarrojo Sharp. Una vez realizada y verificado la (puesto que su modelamiento dinámico es de
comunicación planta-simulink, se comienza a segundo orden) y presenta variables adversas como
establecer el rango de operación, es decir el Angulo la fricción, la gravedad, el tiempo de respuesta del
mínimo y máximo del servomotor que controla la controlador, ruidos y perturbaciones hace que se
posición de la bola, para comenzar a registrar los dificulte el control. Las fricciones con consecuencia
datos de distancia del sensor versus grados de de rugosidades en la superficie del movimiento de la
servomotor, la toma datos será cada 0.1 s. Ya bola y rozamientos en las articulaciones. Los ruidos
obtenidos los datos se guardan en el workspace de se pueden presentar en el sensor de distancia.
Matlab, para luego ser graficados y por medio del Además, es importante tener en cuenta el error de
comando “ident” Toolbox de Matlab se hace posición del servomotor puesto que su robustez no es
modelamiento de función de transferencia. tal alta.
Para implementar el diagrama en lazo cerrado, es
necesario establecer ciertas ecuaciones que permitan IV. CONTROL CLÁSICO
transformar las acciones de control para que el 1. Realizar una planta que nos permita
servomotor las pueda interpretar, ya que fue él solo implementar un controlador clásico.
interpreta ángulos positivos. Se prueba con varias
constantes observando y analizando el
comportamiento.

II. OBJETIVOS
A. Objetivo General: Realizar un sistema de
control clásico para una planta de barra y bola.
B. Objetivos específicos:
1. Realizar una planta que nos permita
implementar un controlador clásico.
Fig. 1. Diagrama general de componentes.

Premio Colombiano de Informática ACIS 2011


Universidad de Pamplona. Beleño Sergio, Bautista José Eduardo, Control Sistema Barra y Bola 2

En el diagrama anterior se tienen las respectivas 2. Adquirir datos del sensor por medio de
conexiones las cuales son de la siguiente manera: Simulink

 La placa arduino va conectada a la PC, esta Para implementar el control PID se utiliza
conexión permite el envío de datos para Matlab, al cual se le instala el paquete de Arduino
programar el control del servomotor y el para lograr la comunicación.
sensor Sharp.
 El arduino va conectada directamente al Se realiza la caracterización de la planta con
servomotor para el control del giro. simulink para la adquisición de datos con el comando
 El servomotor se alimenta a una fuente a 5V “ident” y proceder a realizar el modelado de la
y se controla con el arduino misma para encontrar la función de transferencia y
 Por ultimo tenemos el sensor Sharp que nos calcular las constantes PID del controlador.
indica la posición de la bola. Se le añade un
capacitor para disminuir ruidos.

Tabla 1: características del servo [4].


Modelo TowerPro
Sg5010 Fig. 2. Diagrama de bloques para caracterización de la
Dimensiones 40.2*20.2 planta
(mm) *43.2
Peso 38gr Se declara la variable de entrada y salida para
Torque 5.5kg/cm (4.8V) comenzar con la adquisición de datos por medio de
6.5kg/cm (6V) mapeo, es decir Matlab va registrando los datos de
Velocidad de entrada vs datos de salida en un lazo de 0.1 segundos
reacción que es el tiempo de muestre que toma para este caso.
Temperatura -30 ~+60 ° Los datos se guardan en el Workspace. Para
de operación comenzar el modelamiento de la función de
Rotación 180° transferencia por medio de diagrama de bloques en
máxima Matlab.
Corriente 100mA
Voltaje 4.8-6V
Velocidad de 0.2sec/60° (4.8v)
Operación sin 0.16sec/6° (6v)
carga

Consumo nominal total de la planta es de 205


mA y está distribuida está 3 partes:

 Servomotor: 100 mA.


 Arduino Mega: 93mA. fig. 3. Declaración de variable de entrada
 Sensor Sharp 12 mA.

Premio Colombiano de Informática ACIS 2011


Universidad de Pamplona. Beleño Sergio, Bautista José Eduardo, Control Sistema Barra y Bola 3

Se procede hallar la función de transferencia con


el comando “ident” de matlab donde se declara los
valores de entrada y salida y matlab
automáticamente nos aproxima los valores de los
polos y zeros como se observa en la Fig. 15.

fig. 4. Declaración de variable de salida

Se toma un registro de 807 datos de entrada y salida


en el cual se toma datos de entrada de distancia entre
5.5 cm a 30 cm y los datos de salida en grados desde
27° hasta 47° con un muestreo en tiempo continuo
de 0.1 seg.
Fig. 7. Identificación en la toolbox de Matlab

Fig. 5. Datos guardados en el Workspace en Matlab

Como respuesta de la gráfica obtenida se


observa valores alterados eso es debido a que el
sensor Sharp tiene errores debido al ruido generado
por que el emisor infrarrojo del sensor genera en la Fig. 8. Agregación de los polos y ceros del control
fuente, por lo que se ve en la Fig. x.
En la anterior imagen se observa cómo se prueban
distintas combinaciones de ceros y polos para que el
error sea el mínimo, los que se eligieron fueron una
cero y dos polos.

Fig. 6. Grados vs valores análogos de la distancia


Fig. 9. Función de transferencia

Premio Colombiano de Informática ACIS 2011


Universidad de Pamplona. Beleño Sergio, Bautista José Eduardo, Control Sistema Barra y Bola 4

Con la función de transferencia hallada, se intentó 3. Controlar la planta por medio del servomotor
calcular los controladores, pero esta tarea fue a partir de un sistema en lazo cerrado en
infructuosa, puesto que ésta es muy inestable y de Simulink.
respuesta lenta, por lo que este método de
identificación no nos funcionó. Pero si fue muy útil Posteriormente se tuvo que determinar el
para entender el comportamiento de la planta. comportamiento para cuando la bola se encuentra al
lado derecho del set point (el centro de la barra).
A continuación se procedió a conocer los valores
analógicos que lee el sensor a lo largo de todas las
posiciones de la bola en la barra.

Fig. 10. Diagrama de bloque de toma de datos del Sharp

Fig 12. Ecuacion de comportamiento de la planta


Es necesario conocer el funcionamiento del sensor
Sharp. Para esto se leyeron sus mediciones a Se determinó que el error máximo se presentará
diferentes distancias por medio de Simulink con el cuando la bola esta a 5cm del sensor, en donde la
bloque de “Analog in” para Arduino. lectura por parte de este es de 450. Por lo tanto

Tomando medidas para cada centímetro, se realiza 𝑒𝑟𝑟𝑜𝑟 = 200 − 450 = −250
una aproximación de la función que usa el sensor Luego, sabemos que cuando hay un error de cero, la
para medir distancias. bola esta en el centro.
Para cuando el error sea de -250, el ángulo dado por
el servomotor deberá ser de 0°, cuando el error sea
de 0 el ángulo deberá ser de 90°.

𝑦 = 𝑚𝑥 + 𝑏
90 − 0
𝑦= (𝑒𝑟𝑟𝑜𝑟) + 90
0 + 250
90
𝑦= (𝑒𝑟𝑟𝑜𝑟) + 90
250

Luego se determinó el comportamiento para el lado


izquierdo
Fig. 11. Lectura Análoga del Sensor de Distancia

Podemos observar que el rango de trabajo del sensor


es entre 5.5cm y 30cm, para 5.5cm la lectura es de
450, para 20cm es de 200 y para 30cm es de 150. Es
muy importante tener claro esto, para el posterior
control de la planta.

Premio Colombiano de Informática ACIS 2011


Universidad de Pamplona. Beleño Sergio, Bautista José Eduardo, Control Sistema Barra y Bola 5

Fig. 13. Ecuacion de comportamiento de la planta


Fig. 14. Diagramas de bloques de la implementación del
Se determinó que el error máximo se presentará control
cuando la bola esta a 30cm del sensor, en donde la
lectura por parte de este es de 150. Por lo tanto: En esta imagen se puede constatar cómo después del
controlador se implementaron las dos fórmulas, se
𝑒𝑟𝑟𝑜𝑟 = 200 − 150 = 50 integró un switch que sirve como un condicional if,
donde la condición es que para valores positivos se
En este caso, obviamente también el error será de aplique la ecuación para la bola al lado izquierdo, y
cero cuando la bola esté en el centro. para valores negativos la del lado derecho. Esto fue
necesario en nuestra planta, debido a que estamos
Para cuando el error sea de 50, el ángulo dado por el utilizando un servomotor que solo admite valores
servomotor deberá ser de 180°, cuando el error sea positivos de (0-180), si le diéramos un valor de por
de 0 el ángulo deberá ser de 90°. ejemplo -40°, él no le entendería, y por ende no haría
ninguna acción de control.
𝑦 = 𝑚𝑥 + 𝑏 4. Discutir respuestas de la planta antes
180 − 90 diferentes entradas y controladores
𝑦= (𝑒𝑟𝑟𝑜𝑟) + 90
50 − 0
90
𝑦= (𝑒𝑟𝑟𝑜𝑟) + 90
50

Esto tiene mucho sentido, puesto que es evidente que


cuando el error sea 0, el ángulo que tendrá que hacer
el servo es de 90°.

A continuación, se implementarán estas relaciones y


ecuaciones en simulink.
Fig. 15. Respuesta de la planta ante una perturbación. El
eje y representa la medida del sensor, el x representa el
tiempo.

Le agregamos una acción de control proporcional de


uno, el tiempo de respuesta es de 6s, por supuesto
que se puede mejorar.

Premio Colombiano de Informática ACIS 2011


Universidad de Pamplona. Beleño Sergio, Bautista José Eduardo, Control Sistema Barra y Bola 6

Luego se probó con una constante proporcional de debería tener su propio controlador. Porque como se
0.6, que también dio resultados aceptables observó en la identificación, cuando la bola se aleja
mucho del centro, los cambios son muy abruptos.
Además la derivativa no nos sirve, porque amplifica
el ruido del sensor, deberíamos disminuir el ruido
para poder usarla, el capacitor lo desmulló, pero no
fue del todo suficiente.

V. RECURSOS
Fig. 16. Respuesta con P=0.6. El eje y representa la
medida del sensor, el x representa el tiempo. Materiales Precio
Madera 10. 000
Servomotor SG5010 25. 000
Se puede observar que el tiempo de asentamiento es Arduino MEGA 40. 000
de 3s, lo cual es una mejora, el problema es que el Sensor 20. 000
tiempo de subida aumenta un poco. El error en estado Otros 5. 000
estacionario es casi de cero. El sobrepico se podría Total 100. 000
mejorar.

VI. CRONOGRAMA

Semanas Actividad
1 Investigación de planta
2 Diseño de la planta
3 Corte de madera
4 Ensamble
5 Montaje eléctrico
6 Adquisición de datos del sensor por
medio de simulink
7 Pruebas de control
8 Pruebas de control
9 Pruebas de control
Fig. 17. Planta física 10 Discusión de resultados
11 Informe y exposición
Se probó aplicar acción derivativa, pero aumentan las
sobre oscilaciones, sin llegarse a estabilizar en un
tiempo esperado. Esto es debido a que la distancia de
la bola es muy sensibles a los ángulos de entrada. REFERENCIAS
Para mejorar esto, se podría delimitar en más [1] Página oficial de Matlab. www.matlab.com
secciones la barra, es decir hacer un rango de
operaciones para distancias cercanas al centro, y otro Imágenes???????????
para distancias lejanas. Cada una de estas secciones

Premio Colombiano de Informática ACIS 2011


Universidad de Pamplona. Beleño Sergio, Bautista José Eduardo, Control Sistema Barra y Bola 7

Fig. x. Diagrama de bloques en simulink con filtro kalman para la adquisición de datos.

Fig. x Entrada vs salida obtenida de la toma de datos.

De esta gráfica se puede deducir que de 0 hasta 115 grados y la segunda a la lectura análoga del sensor de
grados la inclinación no era lo suficiente como para la distancia.
hacer cambiar de posición a la bola, luego esta se A continuación se procede a crear el modelo difuso
mueve hasta llegar a su otro punto de movimiento que controlará la planta en compañía de un PID. Se
máximo que termina estando con un ángulo de 180 tendrán 6 conjuntos
grados.

De esto se puede deducir que para cuando la bola esté


cerca del centro los ángulos efectuados por el
servomotor deben estar cerca de noventa grados, para Una vez tomados los datos de entrada y salida de la
cuando esté lejos los angulos deben ser cercanos a planta se procede guardar la matriz obtenida en un
cero y formato (.dat) para luego ser cargado al código
Para la entrada los datos se exportaron al workspace
donde por medio de iteraciones teniendo en cuenta
por medio de un array, en el caso de la salida se tuvo
que exportar en formato structure with time debido a los dos retardos implementados, se obtendrá las
la forma en que trabaja el filtro de Kalman, y luego respectivas matrices de 280x2 de entrenamiento y
se tomaron los valores necesitados en forma de array. chequeo.

Para terminar, se creó un arreglo de 541x2 en el que


la primera columna corresponde a la entrada en

Premio Colombiano de Informática ACIS 2011


Universidad de Pamplona. Beleño Sergio, Bautista José Eduardo, Control Sistema Barra y Bola 8

A continuación se muestra el código que se


implementó en Matlab para generar las matrices de
entrenamiento (trnData) y la matriz de chequeo
(chkData)

load Barrabin.dat
theta = Barrabin(:,1);
r = Barrabin(:, 2);
figure(1)
plot(theta,r)
title('Sistema barra bola') Fig. x. chequeo del entrenamiento de la planta.
xlabel('Tiempo (sec)')

%La serie de datos para ser predecida


r(t+D) requiere que se consideren 4
%datos anteriores tomados considerando un
tiempo de muestreo \Delta.
%Lo que resulta en una entrada:
for t =200 : 480

%Data(t-99,:)=[theta(t) theta(t-1)
theta(t-2) theta(t-3)];
Data(t-199,:) = [theta(t) theta(t-1)];
end
trnData = Data(1:280,:);
chkData = Data(1:280,:);

Fig. x. Selección de funciones difusa.

Se comprobó que con 4 conjuntos difusos es


suficiente para generar el mínimo error posible, ya
que con más da el mismo resultado y sería un
desperdicio computacional implementar más
Fig. x. sobre entrenamiento con 40 épocas

Fig. x. funciones de pertenecía generada por ANFIS

Fig. x. Entrenamiento con 10 épocas con el error de


8%.

Premio Colombiano de Informática ACIS 2011

También podría gustarte