You are on page 1of 13

CONTROL DE ANGULO PID ADAPTATIVO

AUTOAJUSTABLE CON MATLAB Y ARDUINO


Fundacin Universitaria Los Libertadores
Presentado por: Mara Juliana Rueda Acevedo cd. 201422002600
Javier Garca Pineda cd. 201422001600

Abstract

In this practice, its describing the operation of a self-tuning PID angle control, programmed in
Matlab and Arduino.

Resumen

En esta prctica, se describe el funcionamiento de un control de ngulo PID autoajustable,


programado en Matlab y Arduino.

1. OBJETIVOS

1.1. Objetivo General

Disear y probar un software de control PID autoajustable, que por medio de una seal tipo
PWM controlada por medio de un potencimetro lineal, el cual le brinda informacin al Arduino,
pueda controlar el ngulo de apertura de una tapa, el cual vara dependiendo del caudal de
aire que se le aplica por medio de un tubo, con un motor DC.

1.2. Objetivos Especficos

- Lograr generar una seal PWM, desde Matlab, que cambie su ancho de pulso para controlar
la tensin de salida necesaria que hace girar el motor generador de viento y as controlar
el ngulo de apertura de la tapa que se encuentra en la parte superior de un tubo.
- Elegir la ecuacin de control adecuada para obtener la mejor respuesta de la planta,
basndose en toma de datos a la respuesta de la planta en lazo abierto y as lograr que el
control sea autoajustable.

2. Equipos e instrumentos usados en la prctica

- Fuente de voltaje de 18VDC rms


- Transistor MOSFET canal tipo N: IRFZ44N
- Potencimetro lineal de perilla 20K
- Microcontrolador: ARDUINO MEGA 2560
- Osciloscopio digital
- Voltmetro para tensiones DC
- Secador de pelo OSTER
- Tapa plstica

3. Procedimientos de diseo y clculos.

3.1 Diseo de la planta.

La figura 1 corresponde al diagrama esquemtico del circuito utilizado para la realizacin del
control autoajustable.

Figura 1

Se realiz el montaje de la tapa plstica pegada a la perilla del potencimetro, el cual tiene un
voltaje se 5VDC, que tomamos del Arduino. Seguido est el tubo de un secador por donde sale
el aire generado por el motor, que est conectado a la fuente de 18VDC.
A continuacin se muestran algunas fotografas (Ver figuras 2 y 3) de la planta que se va a
utilizar, donde se describe mejor la disposicin de los elementos utilizados y su funcin.

El transportador es utilizado para mostrar


el ngulo obtenido.

El resorte es utilizado como tope de


apertura de la tapa, ya que despus de este
ngulo ( 70 ), la tapa no se devuelve por s
sola.

La aguja indica el ngulo obtenido, con


mayor exactitud.

El potencimetro es utilizado como sensor


de ngulo.

La moneda es utilizada para darle un poco


ms de peso a la tapa, para que se devuelva
Figura 2 sola por la ausencia de aire. ( utilizamos
una moneda de $100 pequea)

La tapa plstica es la que utilizamos para medir el caudal de aire, dependiendo del ngulo de
apertura; sta la sacamos de la tapa de una caja plstica 5800.

La estructura que est debajo de la tapa est


formada por un secador de pelo marca Oster.

El motor en funcionamiento hace rotar una


hlice con seis aspas, de paso normal, es decir,
que giran, visto de frente, en sentido contrario
a las manecillas del reloj. Estas se hacen de
plstico.

La forma de las hlices est estratgicamente


pensada para tomar el aire exterior mediante
las palas de las aspas y debido a la
rotacin expulsarlo hacia el interior del tubo.
Se puede observar que el tubo que concentra
el caudal de aire generado por el motor DC
que se encuentra en la parte inferior.

Las caractersticas del motor son:


- Motor de imn permanente.
Figura 3 - Alimentacin DC 24V 2A
3.2 Toma de datos de la planta sin controlador

Para la toma de datos se energiz el circuito y se conect al mdulo de sensor Cassy (USB o
serie) de Cassy Lab. Este mdulo es de vital importancia ya que mediante un protocolo de
comunicacin serial permite obtener los datos exactos en tiempo real. El tiempo de muestreo
es de 10 ms.

A continuacin, est la tabla de los datos obtenidos para la planta sin control y su respectiva
grfica.

Tabla 1, Figura 4

Como los valores obtenidos en CASSY-LAB corresponden al voltaje del potencimetro lineal, y
los datos necesarios son en grados, utilizamos la siguiente ecuacin de conversin.
Donde, 90 corresponde ngulo mximo obtenido (90); 1,92, el voltaje del potencimetro lineal
en este ngulo; voltios, es el voltaje de salida del potencimetro y 1,02 es el voltaje del
potencimetro cuando el ngulo es de 0.

3.3 Clculos necesarios para la obtencin del controlador autoajustable.

GUIDE es el entorno de programacin que utilizamos para la realizacin del proyecto; este es
un entorno de programacin visual disponible en MATLAB para realizar y ejecutar programas
que necesiten ingreso continuo de datos. Tiene las caractersticas bsicas de todos los
programas visuales como Visual Basic o Visual C++.

La figura a continuacin (ver figura 5), se muestra la interfaz grfica creada en el entorno
GUIDE para la ejecucin del controlador y la descripcin de cada uno de los datos.

Figura 5

Para probar el funcionamiento de la planta con el entorno GUIDE, programamos primero un


control P y miramos la respuesta obtenida, la cual fue satisfactoria para ngulos de referencia
entre 30 y 65; para ngulos menores, la planta se haca oscilatoria sin importar el valor de
Kp, y para ngulos mayores, tenamos el problema que la tapa ya no se devolva sola.
Para hallar la frmula de autoajuste del control, previamente realizamos los siguientes clculos.
Primero hallamos la funcin de transferencia de la planta, la cual obtuvimos a partir de la toma
de datos en lazo abierto, quedando de la siguiente forma:

Donde 90 es el valor donde de estabilidad de la planta (90), -5S se refiere a L (5) y 17S
corresponde al valor de T (17).

Con los datos obtenidos de la planta en lazo abierto, hallamos L y T para el ajuste del control
PID de Ziegler Nichols.

Los datos obtenidos son los siguientes:

L = 5 ms
T= 17 ms

Con los datos anteriormente obtenidos, utilizamos la aproximacin rectangular hacia


adelante (EULER 1) para nuestro control.

Los datos obtenidos a partir de las ecuaciones dadas por el docente, son los
siguientes:
Donde,

Reemplazando, tenemos:

La ecuacin de control resultante es:

Para que el control sea autoajustable, que es el objetivo principal del proyecto,
necesitamos que , , se ajusten dependiendo de las perturbaciones que se le
apliquen a la tapa; para ello, hacemos el valor de L ms bajo y el valor de T variable
con la siguiente ecuacin:
4. ANALISIS Y RESULTADOS

En el montaje de la planta tuvimos algunas dificultades con la tapa, ya que al inicio sta
no se devolva sola, por ello tuvimos que ponerle una moneda para agregarle algo de
peso; hicimos el ensayo con varias denominaciones ya que el peso es diferente, y la
moneda de $100 de las pequeas fue la que nos dio mejor resultado.
Necesitbamos que el giro de la perilla del potencimetro fuera ms suave, para ello, lo
destapamos y le limpiamos el lubricante interno que tena.
Tuvimos que cambiar 2 veces el potencimetro, ya que, por el peso de la tapa, y por
tanto uso del potencimetro, la perilla se afloj mucho, haciendo que al abrir la tapa,
sta se cayera un poco.
Tuvimos constantes problemas de comunicacin entre el arduino y el computador, no
sabemos la razn, ya que cambiamos el arduino, luego el cable y por ltimo el
computador y seguamos con el mismo problema; en vista de que nada nos correga el
problema, tomamos el programa y lo corrimos en el equipo de uno de nuestros
compaeros de saln, para revisar si el problema estaba en el software y ah corri sin
ningn inconveniente.
Al momento de utilizar la ecuacin de autoajuste en el software de control, el control
nos daba con un error en el software referente al signo de divisin, que no pudimos
corregir.
5. ANEXOS

5.1 Programacin utilizada en Matlab.

Primero explicaremos el cdigo programado en Matlab para el desarrollo del proyecto.

Declaracin de variables

delete (instrfindall) ; se utiliza para liberar el


Puerto donde est conectado el arduino, por si
estuviera ejecutando otra aplicacin.

arduino=serial(COM3,BaudeRate,9600); se
utiliza para que Matlab lea el puerto y la velocidad
donde est conectado el arduino.

fopen (arduino) ; se utiliza para abrir el puerto


del arduino.

Las siguientes instrucciones corresponden a los datos


de inicio de dichas variables.

lec = fscanf (arduino, %d ) se utiliza para leer


el voltaje de salida del potencimetro, que est
conectado al pin A0 del arduino.

Volt=4.82*(lec/1023); se utiliza para convertir


el voltaje del potencimetro en bits.

Grados=((90/1.77)*(Volt-0.66)) se utiliza para transformar el voltaje del potencimetro


en grados.

error=refe1-Grados se utiliza para calcular el valor del error, que es referencia menos
grados actuales.
Ajuste de Ziegler-Nichols

Frmulas para hallar , , para Euler 1

prop1=proporcional
Es la salida anterior

La frmula corresponde a la ecuacin de Euler 1, la cual fue la que utilizamos para el control.

Corresponde a la frmula de autoajuste de la frmula de control.

Las sentencias if se utilizan para limitar los valores


Del PWM para que no superen el valor mximo
permitido para el pin digital ( 255 ), y el valor de PWM
mnimo requerido para que el motor no se detenga,
pero que tampoco levante la tapa.

Los datos a continuacin fueron utilizados para


definir el PWM mnimo:
fwrite ( arduino, control, int8 ) se utiliza para enviar el resultado del control al pin
digital del arduino para hacer la respectiva variacin del ancho de pulso del PWM.

Todas las sentencias anteriores van escritas dentro del botn de inicio, que est en la figura
del GUIDE.

5.2 Programacin utilizada en Arduino.

As como se realiz el programa de control en Matlab, a la placa de arduino tambin lay que
hacerle una pequea programacin, que se utiliza para enviar y recibir datos de Matlab.

A continuacin se muestra el cdigo de programacin ingresado en el arduino.

Este cdigo, simplemente lee el dato que le ingresa por el


pin A0 y lo enva al Matlab; este dato corresponde al voltaje
de salida del potencimetro, el cual vara al variar el ngulo
de apertura de la tapa.

DEC se utiliza porque el comando PRINT imprime los


datos en el puerto serie como texto ASCII legible por el
usuario. Los valores permitidos son BIN (binario, o base 2),
OCT (octal, o base 8), DEC (decimal o base 10), HEX
(hexadecimal o base 16).
5.3 Diagrama de flujo

La siguiente figura (ver figura 6) muestra el diagrama de flujo del software utilizado, tanto en
arduino, como en Matlab para la realizacin del control autoajustable.
6 CONCLUSIONES

- Es indispensable conocer el funcionamiento natural de la planta para poderla controlar.


- La ecuacin de control que utilizamos, est ntimamente relacionada con la respuesta
natural de la planta, ya que L y T son los datos necesarios para esta ecuacin de control:
EULER 1.
- El entorno GUIDE nos muestra de forma grfica, ms sencilla, los datos que necesitamos
conocer durante la ejecucin del control.
- Aprendimos a utilizar en forma bsica el entorno GUIDE.
- No fue posible cumplir con el objetivo principal del proyecto, hubo varios motivos que
nos retrasaron; unos se pudieron solucionar durante la prctica, como la formulacin
correcta de las ecuaciones requeridas, pero otros no; como el problema de comunicacin
entre el arduino y el porttil.

You might also like