UNRAF SistCtrl TPFinal

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

Tecnicatura Universitaria en Mecatrónica.

Sistemas de Control.

Trabajo práctico final: implementación de un prototipo


con controlador PID.

Profesores:
Rocchi Fabio.
Mercante Santiago.

Autor del documento:


Mercante Santiago.
[email protected]

1
Índice
1. Trabajo práctico final: implementación práctica de un prototipo con controlador PID. 3
1.1. Sistema barra-bola. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Túnel de viento para levitación de bola. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Innovación: otros prototipos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2. Anexo: información útil para el desarrollo del trabajo práctico. 4


2.1. Uso de servomotor con librerı́a para Arduino. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2. Sensor de ultrasonido para cálculo de distancias. . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3. Periodicidad del ciclo de ejecución del programa. . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4. Implementación del control proporcional integral y derivativo. . . . . . . . . . . . . . . . . . . 6

2
1. Trabajo práctico final: implementación práctica de un prototi-
po con controlador PID.
El objetivo de este desarrollo es interpretar y aplicar el conocimiento teórico adquirido acerca de sis-
temas de control, adquirir experiencia en la implementación de soluciones a problemas y sistemas reales,
donde se presentan mayores incertidumbres, existe ruido, dinámicas sensor/actuador, plantas con numero-
sas incógnitas, y además fortalecer la comprensión de los fundamentos que se encuentran detrás de estas
soluciones.
El trabajo consistirá en la construcción fı́sica del prototipo elegido, la escritura del código para la imple-
mentación con un microcontrolador, pudiendo utilizar la plataforma Arduino.
Se aplica un controlador tipo PID, ampliamente usado en la industria. Este trabajo contribuye al im-
portante objetivo de comprender y utilizar el mismo de forma adecuada de acuerdo a las caracterı́sticas del
sistema y los resultados buscados.

1.1. Sistema barra-bola.


Constructivamente, el sistema a desarrollar consiste en una barra-guı́a que permita a una bola, por
ejemplo de ping pong, moverse longitudinalmente sobre la misma según el ángulo de inclinación dado por un
servomotor u otro tipo de motor acoplado a dicha barra, tal como se muestra en la Figura 1. En un extremo
de la barra, se coloca un sensor a elección, por ejemplo de ultrasonido, que permita conocer la distancia
entre la bola y el punto de SetPoint en el cual debe permanecer.
El objetivo es lograr que la bola permanezca en una posición dada como referencia, que puede ser el
punto medio de la barra, un punto arbitrario e incluso una posición variable de acuerdo a un segundo sensor.
Para lograr el objetivo mencionado, se implementa un sistema de control, donde se cuenta con una
referencia (posición), realimentación a través del sensor de posición, y en base al error, un controlador PID
implementado en una placa de control, provoca como salida un ángulo determinado en el eje del servomotor,
lo cual logra una inclinación tal en la barra que lleva la bola a la posición deseada.

Figura 1: Prototipo barra bola de ejemplo.

Ejemplo de sistema barra bola.

1.2. Túnel de viento para levitación de bola.


El prototipo consiste en un tubo transparente en el cual se coloca una pelota de ping pong, movida
verticalmente por un flujo de aire variable, controlando tensión sobre un forzador, con el fin de seguir con la

3
pelota una referencia externa de un segundo sensor o fija dada por código.
Constructivamente, el prototipo se puede realizar sobre una base donde se montan todos los elementos.
La fuente, una placa Arduino Mega que contiene el algoritmo de control, una interfaz MOSFET o similar
entre la salida del controlador y el cooler, y los sensores de distancia.
En caso de dar una referencia variable, un sensor se encuentra en la base fuera del tubo, tomando
la distancia que será el set point al cual debe seguir la pelota, y el otro en la parte superior del tubo
transparente. El cooler se separa algunos centı́metros de la base para permitir un correcto flujo de aire hacia
el cono superior, que adapta su diámetro con el del tubo transparente.
La pelota de ping pong tiene un diámetro de 40 mm, por lo tanto el tubo a través del cual se mueve debe
tener el diámetro suficiente para evitar atascarse, pero estrecho para que el aire empujado por el forzador
pueda elevar la pelota, y no circule alrededor de la misma.
En el programa, se deben ajustar los marcos de referencia del objeto que establece el set point de altura
con el de la pelota, siendo el cero la unión entre el cono superior del cooler y la base del tubo.
En la Figura 2 se observa un esquema del prototipo y la contra parte real.

Figura 2: Esquema y prototipo real.

1.3. Innovación: otros prototipos.


Aquellos alumnos que deseen implementar un sistema de control sobre otro tipo de prototipo diferente a
los mencionados, deberán presentar la idea para su aprobación, y de esta forma tienen la libertad de llevar
a cabo el trabajo final con nuevas ideas que serán tenidas en cuenta para años posteriores. Se valorará la
innovación de quien elija esta opción. Por otra parte, debe cumplir con las consignas básicas solicitadas en
los modelos propuestos.

2. Anexo: información útil para el desarrollo del trabajo práctico.


2.1. Uso de servomotor con librerı́a para Arduino.
Servomotor con Arduino y Calibración de Posición Cero Grados.

2.2. Sensor de ultrasonido para cálculo de distancias.


Una opción para cálculo de distancias es el sensor HC-SR04, basados en la emisión de ondas de ultrasonido
para determinar la distancia de objetos en un rango de 0,02 m a 4,5 m según la hoja de datos.
En la Figura 3 se muestra su principio de funcionamiento. Cada sensor consta de un emisor piezoeléctrico,
que emite 8 pulsos de ultrasonido a 40 kHz luego de recibir la orden en el pin TRIG. Las ondas de sonido viajan
a través del aire y se reflejan al encontrar un objeto, y luego son detectadas por el receptor piezoeléctrico.

4
El pin ECHO se pone en nivel alto al momento de emitir el último pulso de 40 kHz, hasta que se recibe
este mismo reflejado, momento en el cual conmuta a bajo. El tiempo en alto del pin ECHO es igual al que
demoró la onda en ir y regresar al objeto detectado.

Figura 3: Diagrama de funcionamiento sensor ultrasónico HC-SR04.

Conociendo el tiempo del pulso antes mencionado y la velocidad del sonido, se calcula la distancia al
objeto mediante la siguiente ecuación:
1 m 1 m
Distancia [m] = Techo [s] Vsonido [ ] = Techo [s] 340[ ]
2 s 2 s
A modo de ejemplo, se muestra una función generada para calcular la distancia a la bola. Si el cálculo es
válido, la función devuelve true, si debe descartarse, devuelve false, mientras que la distancia se almacena
en la variable ballDist. En la Figura 4 se observa la función implementada en el microcontrolador para el
cálculo de la distancia en centı́metros (la ecuación anterior está en metros). Se genera el pulso de disparo
con la duración de 10 us especificada por el fabricante, y luego se utiliza una función llamada “pulseIn” que
espera un pulso alto, en el pin indicado, y devuelve la duración del mismo en ms (ballWaveDelay). En el
código de ejemplo se filtraron los valores de tiempo mayores al que tomarı́a la onda considerando la mayor
distancia posible (ballMaxWaveDelay) de acuerdo a las dimensiones a medir.

Figura 4: Función para el cálculo de distancia.

2.3. Periodicidad del ciclo de ejecución del programa.


En caso de usar sensor ultrasónico, distancia de la bola en cualquiera de los prototipos, se calcula
indirectamente midiendo un tiempo que depende de esta distancia. Esta variación en el tiempo de
lectura provoca que la ejecución del ciclo de control sea variable en principio.
Para evitar esta variación, y lograr la ejecución de la salida del controlador de forma periódica, se ejecutan
los cálculos de distancia, el error, se inserta este error en el PID y antes de escribir la nueva salida, se deja
el programa en espera hasta cumplirse el tiempo del ciclo de ejecución respecto ciclo anterior. De ésta
manera, se logra un ciclo de periodo constante e independiente de la medición de distancia, siendo 20 ms el
tiempo mı́nimo recomendado por el fabricante del sensor ultrasónico entre mediciones consecutivas.

5
En la Figura 5 se observa, de forma simplificada, el ciclo de ejecución del programa para lograr un periodo
constante.

Figura 5: Diagrama de flujo simplificado del programa.

2.4. Implementación del control proporcional integral y derivativo.


La acción correctiva está compuesta por las tres componentes descriptas anteriormente. La expresión
matemática que define la relación entra la salida u(t) de un controlador PID, y la entrada error e(t) es la
siguiente:
Z t
de(t)
u(t) = Kp e(t) + Ki e(t)dt + Ke
0 dt
Una adecuada combinación de las tres acciones puede conseguir una respuesta satisfactoria desde el punto
de vista de los requerimientos prácticos, tanto en régimen transitorio (tiempo de establecimiento, sobre pico,
oscilaciones, etc.), como permanente (error de estado estacionario).
Tomando como ejemplo el prototipo de la bola en el tubo de viento, donde el set point de altura es ref
y la altura real de la bola es ballHeight, en la Figura 6 se observan las lı́neas de código implementadas en
el programa cargado en el microcontrolador, donde se relaciona cada lı́nea con el esquema completo con los
tres tipos de acciones de control.
Observar también que la salida debe ser escalada, ya sea de la forma mostrada en la imagen u otra forma
a elección, entre los valores reales de salida. En este caso la salida es un valor analógico entre 0 y 255, en
el caso de utilizar librerı́as para control de servo, suele ser un ángulo entre 0 y 180 grados. Por otro lado se
debe prevenir que la parte integral se haga demasiado grande por lo cual también se establecen lı́mites.

6
Figura 6: Diagrama de controlador PID.

Para el cálculo de la integral del error, se recurre a su interpretación geométrica, que parte de la suma de
rectángulos de base igual a un periodo de tiempo constante, y cuya altura es el valor de la función para cada
uno de esos tiempo, esto llevado al lı́mite donde el ancho de cada rectángulo es tan pequeño que simplemente
se toma “el área debajo de la curva”. Por lo tanto, lo realizado en el programa es similar a la imagen izquierda
de la Figura 7, donde la expresión del programa calcula el último rectángulo y suma los anteriores como
“I0 ”; multiplicándolo además por la constante integral Ki.

Figura 7: Representación geométrica de la integral.

Por otra parte, la derivada de una función se interpreta geométricamente como la tangente a la curva en
el punto donde se calcula la derivada. Esto se puede aproximar calculando la secante a para un intervalo de
tiempo muy pequeño, igual al tiempo de muestreo Ts en este caso.

Figura 8: Representación geométrica de la derivada.

También podría gustarte