You are on page 1of 43

Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

DISEÑO Y CONSTRUCCIÓN DE UN PROTOTIPO DE SISTEMA MOTOR-


HÉLICE-BALANCÍN

1. INTRODUCCION

El conjunto motor-hélice-balancín propone un problema de control de


interés debido a su naturaleza inestable.

Esto supone que si se quiere alcanzar un punto de equilibrio del


sistema se ha de implementar algún tipo de control sobre el mismo.

A nivel académico resulta interesante ya que para obtener el modelo


de control se utilizan conocimientos tanto de física como de control,
así como de programación, pudiendo implementarlos directamente y
visualizarlos en tiempo real en la realidad, aunque el principal
objetivo de este proyecto no es el control del sistema, sino la
construcción del mismo.

a. RESUMEN DEL PROYECTO

Mediante el presente proyecto, se pretende analizar, diseñar e


implementar un controlador PID para el control de la posición de
un balancín de 1 eje (1 solo grado de libertad), el cual se encuentra
implementado en una planta que varía la posición mediante el giro
de una hélice acoplada a un motor eléctrico de alta potencia.
Se procederá a realizar un análisis matemático de la planta para
poder obtener la función de transferencia y asi proceder a diseñar
un controlador PID.
Se realizara una simulación del controlador, asi como los efectos que
produce sobre la planta, y su respuesta en el tiempo.

1
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

2. OBJETIVOS

a. OBJETIVO GENERAL

El objetivo general de este proyecto es el diseño y construcción de un


prototipo de un sistema tipo balancín desde cero, cuyo movimiento
será proporcionado por la fuerza generada por el giro de una hélice
acoplada a un motor y situada en su extremo.

Principalmente se centra en el diseño y selección de componentes, así


como su construcción e integración para su posterior control.

b. OBJETIVOS ESPECIFICOS

 Aplicar el análisis matemático y las leyes de Newton para


realizar el modelamiento matemático del sistema a analizar.
 Realizar un adecuado diseño de controlador PID para
controlar de manera precisa y estable la posición angular del
balancín.
 Aplicar el uso de herramientas computacionales que facilitan
el diseño y aplicación de controladores, como simulink y
Matlab.
 Obtener graficas de la respuesta del sistema ante las
perturbaciones y valores de referencia en el tiempo.
 Analizar el funcionamiento y la respuesta de los distintos
tipos de control, a lazo abierto y a lazo cerrado.
 Implementar el uso de diagrama de bloques y la simulación
en Simulink.
 Controlar la interfaz del Arduino y su comunicación con
Matlab, asi como regular el control de potencia del motor.
 Diseñar una fuente de tensión DC, con 220V. de entrada y
salida ajustable de 0V a 16V.

2
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

3. PARAMETROS DE DISEÑO

a. PARAMETROS DE DISEÑO DE PLANTA

La planta está formada por dos barras de madera, el balancín o


barra móvil cuya longitud es de 56 cm y la barra bancada cuya
altura es de 32 cm, el balancín va unido a la bancada por medio de
dos cojinetes o cajas de bolas que permiten el movimiento de giro,
en uno de los extremos del balancín hay un soporte donde va
colocado el motor y la hélice, el motor es del fabricante Mabuchi con
una potencia nominal de 3 Watts y un eje de 2 mm de diámetro, la
hélice tiene un diámetro de 13.5 cm.

Solidario al eje de giro mediante unos pequeños tornillos está fijado


el cursor de un potenciómetro que actúa como sensor de posición.
Es aquí donde comienza todo el flujo de datos, el sensor en este caso
potenciométrico, es alimentado con la fuente de 5 Volts que
proporciona el microcontrolador, de manera que a cada valor de
tensión entre cursor y común le corresponderá una posición
determinada del balancín. Este valor de tensión será registrado por
el micro mediante una de sus entradas analógicas.

b. PARAMETROS DE DISEÑO DE FUENTE

La fuente de tensión utilizada es la que se dispone en el área de


trabajo que cumple con los requisitos de potencia, con las siguientes
características:

INPUT: 220Vac / 50Hz

OUTPUT: 0 -16Vdc / 3A CONT.

3
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

4. ELEMENTOS A USAR

a. PLANTA

La planta que usaremos en este experimento, se encuentra


confeccionada de madera, que es un material relativamente fácil de
trabajar, asi como posee un acabado muy bien elaborado, y en
cuanto a peso, resulta relativamente ligero para trabajar.

Consta con tres piezas principales, que se encuentran unidas por


un eje, y una base plana sobre la cual se encuentran empernadas
de manera completamente fija.

Perfectamente alineado al eje, se encuentra un potenciómetro


lineal, en cual se encarga de sensar la posición angular del balancín,
con lo que se logra un sensado más preciso, cabe resaltar que este
valor es muy importante en el control, porque mientras más preciso
sea, podemos realizar mediciones con mayor precisión.

4
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

b. SENSOR DE POSICION ANGULAR

Como se mencionaba antes, el responsable de recopilar y entregar


un valor de posición angular preciso es un potenciómetro lineal que
se encuentra alineado al eje del balancín, y que varía a medida el
balancín cambie su posición angular.
El potenciómetro seleccionado tiene un valor nominal de 5 kΩ, si
dividimos la tensión de alimentación empleada para dar energía a
este sensor entre valor nominal de resistencia, obtendremos en
cuanto variará la tensión leída por cada ohm que se incremente
debido al desplazamiento del cursor, en otras palabras, la
resolución, que indicará cuanto debe variar la posición de la barra
para notar algún cambio en la lectura del valor indicado por el
sensor, si hacemos el cálculo tenemos:
𝑉𝑐𝑐 5𝑉 0.1𝑉
𝑟𝑒𝑠 = = =
𝑅 50𝑘Ω 𝑘Ω

Trabajar con este valor de Resolución resulta conveniente debido a


que los mínimos cambios registrados en el potenciómetro podrán ser
registrados.

5
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

c. PLACA ARDUINO

Arduino es una plataforma de hardware libre, basada en


una placa con un microcontrolador y un entorno de desarrollo,
diseñada para facilitar el uso de la electrónica en proyectos
multidisciplinares.
El hardware consiste en una placa con un microcontrolador Atmel
AVR y puertos de entrada/salida. Los microcontroladores más
usados son el Atmega168, Atmega328, Atmega1280,
y Atmega8 por su sencillez y bajo coste que permiten el desarrollo
de múltiples diseños. Por otro lado el software consiste en un
entorno de desarrollo que implementa el lenguaje de
programación Processing/Wiring y el cargador de arranque que es
ejecutado en la placa. Se programa en el ordenador para que la
placa controle los componentes electrónicos.

Arduino puede tomar información del entorno a través de sus


entradas analógicas y digitales, puede controlar luces, motores y
otros actuadores. El microcontrolador en la placa Arduino se
programa mediante el lenguaje de programación Arduino (basado
en Wiring) y el entorno de desarrollo Arduino (basado en
Processing). Los proyectos hechos con Arduino pueden ejecutarse
sin necesidad de conectar a un ordenador.
También cuenta con su propio software que se puede descargar de
su página oficial que ya incluye los drivers de todas las tarjetas
disponibles lo que hace más fácil la carga de códigos desde el
computador.
Arduino se puede utilizar para desarrollar objetos interactivos
autónomos o puede ser conectado a software tal como Adobe
Flash, Processing, Max/MSP, Pure Data. Una tendencia
tecnológica es utilizar Arduino como tarjeta de adquisición de datos
desarrollando interfaces en software como JAVA, Visual Basic y
LabVIEW. Las placas se pueden montar a mano o adquirirse.
El entorno de desarrollo integrado libre se puede descargar
gratuitamente.

6
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

d. SOFTWARE ARDUINO

Los programas hechos con Arduino se dividen en tres partes


principales: estructura, valores (variables y constantes), y
funciones. El Lenguaje de programación Arduino se basa en C/C++.
En general, un programa en arduino tiene la estructura que se
observa a continuación.

7
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

En donde setup () es la parte encargada de recoger la configuración,


se invoca una sola vez cuando el programa empieza. Se utiliza para
inicializar los modos de trabajo de los pines, o el puerto serie. Debe
ser incluida en un programa aunque no haya declaración que
ejecutar.

La función loop () contiene el código que se ejecutara cíclicamente lo


que posibilita que el programa este respondiendo continuamente
ante los eventos que se produzcan en la tarjeta (lectura de entradas,

activación de salidas, etc.). Esta función es el núcleo de todos los


programas de Arduino y la que realiza la mayor parte del trabajo.

Ambas funciones son necesarias para que el programa trabaje.


Arduino puede tomar información del entorno a través de sus pines
de entrada de toda una gama de sensores y puede incidir sobre
aquello que le rodea controlando luces, motores y otros actuadores.
Para el desarrollo de esta aplicación en especial se emplearan nueve
de las tantas funciones que componen la biblioteca de Arduino, la
cuales serán explicadas a continuación:

 pinMode(pin, mode)

Esta instrucción es utilizada en la parte de configuración setup () y


sirve para configurar
El modo de trabajo de un PIN pudiendo ser INPUT (entrada) u
OUTPUT (salida).

PinMode (pin, OUTPUT); // configura „pin‟ como


salida

Los terminales de Arduino, por defecto, están configurados como


entradas, por lo tanto no es necesario definirlos en el caso de que
vayan a trabajar como entradas.

 Serial.begin(rate)

Abre el puerto serie y fija la velocidad en baudios para la


transmisión de datos en serie.
El valor típico de velocidad para comunicarse con el ordenador es
9600, aunque otras velocidades pueden ser soportadas.

8
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

 analogRead(pin)

Lee el valor de un determinado pin definido como entrada analógica


con una resolución de 10 bits. Esta instrucción sólo funciona en los
pines (0-5). El rango de valor que podemos leer oscila de 0 a 1023,
ejemplo:

Valor = analogRead (pin); // asigna a valor lo que lee en la entrada


´pin'

 analogWrite(pin, value )

Esta instrucción sirve para escribir un pseudo-valor analógico


utilizando el procedimiento de modulación por ancho de pulso
(PWM) a uno de los pines de Arduino marcados como “pin PWM”.
El Arduino Uno, que implementa el chip ATmega328, permite
habilitar como salidas analógicas tipo PWM los pines 3, 5, 6, 9, 10 y
11. El valor que se puede enviar a estos pines de salida analógica
puede darse en forma de variable o constante, pero siempre con un
margen de 0-255.

AnalogWrite (pin, valor); // escribe 'valor' en el 'pin' definido como


analógico

Si enviamos el valor 0 genera una salida de 0 voltios en el pin


especificado; un valor de 255 genera una salida de 5 voltios de salida
en el pin especificado. Para valores de entre 0 y 255, el pin saca
tensiones entre 0 y 5 voltios - el valor HIGH de salida equivale a 5v
(5 voltios). Teniendo en cuenta el concepto de señal PWM, por
ejemplo, un valor de 64 equivaldrá a mantener 0 voltios de tres
cuartas partes del tiempo y 5 voltios a una cuarta parte del tiempo;
un valor de 128 equivaldrá a mantener la salida en 0 la mitad del
tiempo y 5 voltios la otra mitad del tiempo.

Debido a que esta es una función de hardware, en el pin de salida


analógica (PWM) se generará una onda constante después de
ejecutada la instrucción analogWrite hasta que se llegue a ejecutar
otra instrucción analogWrite (o una llamada a digitalRead o
digitalWrite en el mismo pin).

9
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

 Serial.write(value)

Escribe datos binarios en el puerto serie. Estos datos se envían como


un byte o una serie de bytes.

 Serial.read()

Lee o captura un byte (un carácter) desde el puerto serie, devuelve


-1 si hay ninguno.

 Delay(val)

Detiene la ejecución del programa la cantidad de tiempo en ms que


se indica en la propia instrucción. De tal manera que 1000 equivale
a 1seg.

 map(value, fromLow, fromHigh, toLow, toHigh)

Re-mapea un número desde un rango hacia otro. Esto significa que,


un valor (value) con respecto al rango fromLow-fromHight será
mapeado al rango toLow-toHigh.

e. MOTOR BRUSHLESS

Un motor eléctrico sin escobillas o motor brushless es un motor


eléctrico que no emplea escobillas para realizar el cambio de
polaridad en el rotor.

Los motores eléctricos solían tener un colector de delgas o un par de


anillos rozantes. Estos sistemas, que producen rozamiento,
disminuyen el rendimiento, desprenden calor y ruido, requieren
mucho mantenimiento y pueden producir partículas de carbón que
manchan el motor de un polvo que, además, puede ser conductor.

10
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

Este tipo de motores producen muy altas potencias y revoluciones,


por lo que trabajan con corrientes bastante amplias, y será
necesario controlarlos mediante un ESC.

f. ESC (Electronic Speed Control)

El ESC (Electronic Speed Control) es un variador de velocidad de


alta potencia, que controla el Motor, mediante una señal de control,
que vendrá del microcontrolador, y una alimentación, que será de
hasta 12 V, cabe resaltar que al tratarse de un alto número de
revoluciones y torque, el ESC debe tener la capacidad de aguantar
hasta 30 A de corriente.

11
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

g. HELICE
Las hélices no pueden colocarse de cualquier forma ya que de ello
depende como expulsan el flujo de aire y por tanto que el vuelo sea
correcto e incluso que despegue o no.

h. FUENTE DE ALIMENTACION
Para suministrar al motor la potencia eléctrica necesaria se necesita
una batería o fuente de corriente continua que irá conectada al ESC.
Ya que el sistema se va a utilizar en un lugar con acceso a la corriente
eléctrica, lo más lógico es utilizar una fuente de corriente continua en
vez de una batería lipo o similar. Además, la fuente de corriente tiene
como ventaja que proporciona una corriente continua estable y
constante durante todo el tiempo, pudiendo regular el voltaje que se
le suministra al ESC, algo que no ocurre en el caso de las baterías ya
que éstas pueden perder potencia conforme se van descargando. Es
por ello que se ha escogido como alimentación del motor una fuente
de corriente continua, que irá conectada al ESC a través de dos
cables, positivo y negativo.
El fabricante del motor recomienda proporcionar una alimentación de
11.1 Voltios de corriente continua. Es necesario pues una fuente de
alimentación con capacidad para producir una tensión de
aproximadamente al menos 11.1 Voltios y una intensidad de corriente
mayor o igual a 3 Amperios.

12
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

i. MATLAB-SIMULINK

Simulink es una herramienta de Matlab que funciona mediante un


entorno de programación visual, las funciones están representadas
por bloques, lo que hace muy sencillo su utilización sin necesidad de
emplear lenguajes complejos de programación.
Es un entorno de programación de más alto nivel de abstracción
que el lenguaje interpretado Matlab (archivos con extensión .m).
Simulink genera archivos con extensión .mdl (de "model"). Al
ejecutar un modelo implementado en simulink se genera un código
en C que el ordenador reconoce y ejecuta.
Para implementar el control de la planta será necesario utilizar
varios bloques de Simulink que permitirán la comunicación serie y
la ejecución de algoritmos de control, veamos cuales son eso bloques
a continuación:
El proceso de comunicación serie es posible gracias al uso de tres
bloques, Serial Configuration, Serial Receive y Serial Send, estos
bloques emplean el Universal Serial Port (USB), para el envío y
recepción de datos, este puerto es del tipo Half-Duplex, lo cual
significa que solo se puede recibir o enviar datos, en un mismo
instante de tiempo, o sea, que para enviar o recibir datos el puerto
debe estar libre de tráfico.

13
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

Serial Configuration: Este bloque configura los parámetros de un


puerto serie que se puede utilizar para enviar y recibir datos. Se
debe dar valores a todos sus parámetros antes de colocar un Serial
Send o un Serial Receive, los parámetros a configurar son:

 Communication port
Especifica el puerto serie a configurar. Se debe seleccionar un
puerto disponible de la lista. Por defecto no hay puerto serie
seleccionado, el mismo puerto debe ser utilizado para el Serial Send
y el Serial Receive. Cada Serial Send y Receive debe tener un Serial
Configuration, lo que implica que si se utilizan varios puertos en
una misma simulación, se debe agregar tantos bloques de Serial
Configuration como puertos series diferentes haya en la aplicación.

 Baud rate
Especifica la velocidad de transmisión en baudios, por defecto es
9600.

 Data bits
Especifica el número de bits que se van a enviar por la interfaz serie.

 Parity
Especifica como chequear los bits de paridad en los datos
transmitidos.

 Stop bits

Especifica la cantidad de bits que determinaran el final de un byte.

 Flow control

Especifica el proceso de gestión de la tasa de transmisión de datos


en el puerto serie.

 Timeout

14
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

Especifica el tiempo que el modelo va a esperar a los datos durante


cada paso de tiempo de simulación. El valor predeterminado es 10
(segundos).

Serial Receive: Este bloque configura y abre una interfaz a una


dirección remota especificada usando el Protocolo Serie. La
configuración e inicialización ocurre una vez al comienzo de la
simulación. El bloque adquiere datos durante el tiempo de ejecución
del modelo. Los parámetros principales usados en la aplicación son:

 Communication port

Especifica el puerto a través del cual se van a recibir los datos.

 Data size

En esta pestaña es importante indicar el número de bits a recibir.

 Data type

Como se puede deducir, se debe indicar en esta pestaña el tipo de


dato a recibir.

 Block sample time

Por último se debe indicar el tiempo de muestreo del bloque, o sea


la frecuencia con la que se leerá el dato.
Serial send: Mediante este bloque se enviarán los datos generados
por el controlador hacia el Arduino. Sus parámetros son muy
similares a los del Serial Recieve por lo cual no serán explícitamente
comentados.

Convert_to:

Este es un bloque del tipo Data Type Conversion, su única función


es convertir un tipo de dato en otro, en el caso de la aplicación se
emplea la conversión a formato double y uint8, el formato double se
emplea en los elementos gráficos de Simulink y el uint8, es el
necesario para trasmitir y recibir por el puerto serie, por lo que este

tipo de conversiones se debe garantizar tanto en la comunicación


Arduino PC como viceversa.
15
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

Gain:

Mediante este bloque se hace posible la visualización de los datos


recibidos y enviados, asi como el valor de la referencia, todo ello en
unidades de Volts, por ello el valor de ganancia aplicado es 5/255
que representa la resolución de un conversor D/A de 8 bits.

Es importante destacar que la lectura de tensión que realiza el


Arduino tiene una resolución de 10 bits y por el puerto serie solo se
pueden enviar datos de 8 bits, por lo que es necesario llevar el valor
inicial leído por el micro controlador, a un rango de 0-255, o lo que
es lo mismo, a una resolución de 8 bits. Este hecho explica el porqué
del valor del bloque Gain.

PID:

Aquí es donde se implementa el algoritmo de control PID, gracias a


este bloque tendremos un sistema capaz de responder
automáticamente a las variaciones en el punto de referencia. El
algoritmo que implementa a este controlador en Simulink es el
siguiente, para un controlador en paralelo realizable:

(𝑠)=[𝑃+𝐼1𝑠+𝐷𝑁𝑠𝑠+𝑁]
Donde P es la ganancia proporcional, I es el tiempo de acción
integral, Del tiempo derivativo y N es el coeficiente de filtrado que
determina la ubicación del polo del filtro derivativo. La
implementación de esta ecuación empleando bloques de simulink,
es la que se observa en el diagrama:

Como vemos tendremos una señal a la salida que siendo los valores
de las ganancias P, I y D, no nulos, será una combinación de las tres
acciones básicas de control.

16
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

5. MODELAMIENTO MATEMATICO

a. MOVIMIENTO ROTATIVO DE UN SOLIDO


El movimiento a controlar en esta planta es el de rotación de un
sólido alrededor de su eje central de inercia. La variación del estado
de rotación de un sólido viene determinada por la variación de su
velocidad angular por lo que, si queremos describir el movimiento
de rotación debemos encontrar una ecuación que nos permita
calcular la aceleración angular del mismo, para ello la siguiente
ecuación:

𝑟 ×𝐹 𝑒𝑥𝑡=𝐼𝛼

Ésta es la ecuación del movimiento de rotación de un sólido rígido


que, como puede observarse, es análoga a la segunda ley de Newton
y será esta la empleada para plantear la ecuación que rige el
movimiento de nuestro sistema.

b. MOMENTOS DE INERCIA

i. MASA PUNTUAL

En este caso el sistema contiene dos elementos que aportan


momento de inercia, uno es la masa de la barra y el otro la
masa del motor. Cada uno de estos aporta un momento de
inercia que se calcula de manera independiente y distinta y
que finalmente añadiremos para caracterizar el momento de
inercia del sistema en general. Veamos a continuación como
calcular el momento de inercia para una masa puntual, en este
caso la masa del motor.
Para el cálculo del momento de inercia de masas puntuales se
empleará la siguiente ecuación:

𝐼= Σ 𝑚𝑖 𝑙𝑖2

Donde li es la distancia de la partícula de masa mi al eje de


rotación. En el caso de nuestro sistema solo tenemos una masa
puntual por lo que la ecuación se puede escribir de la siguiente
manera:

𝐼𝑚=𝑚𝑚𝑙2

17
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

Teniendo en cuenta los siguientes datos:

Masa motor: 63 g

Distancia al eje: 0.26 m

Al sustituir los valores se obtiene, Im= 0.004259 kgm2


Una vez obtenido este resultado se puede proceder al cálculo
del momento de inercia para la barra, cuyo eje de giro se
encuentra en su centro de gravedad.

ii. CUYO EJE PASA POR SU CENTRO DE GRAVEDAD

Para poder calcular el momento de inercia de la varilla de


material que tenemos para el balancín, podemos basarnos en
la siguiente ecuación y reemplazar los datos que obtenemos
de nuestra planta.

𝐼𝑐=1/12𝑀𝐿2

𝐼𝑐=1/12*(0.35)(0.35)2

Ic=0.0035729 kgm2

iii. MOMENTO DE INERCIA TOTAL

IT=IM+IC

IT=0.0035729+0.004259

IT=0.007832 kgm2

18
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

c. FUNCION DE TRANSFERENCIA

En la figura se aprecia un esquema de las fuerzas, ángulos y


posiciones a tomar en cuenta para en análisis matemático y la
obtención de la función de transferencia.

La función de transferencia nos indicara la variación de Angulo que


se obtiene mediante la variación producida por la fuerza de la hélice
del motor.

Para determinar el modelo matemático aproximado de este


sistema, se empleara la ecuación del movimiento de rotación de un
sólido análoga a la segunda ley de Newton.

Una vez aplicada esta ecuación y luego de haber obtenido cada uno
de sus parámetros se realizará la transformada de Laplace a la
ecuación resultante, así de este modo se podrá obtener la función de
transferencia del modelo aproximado, sobre la cual se desarrollarán
algunas pruebas para comprobar la respuesta del sistema modelado
y compararla con la del sistema real.

Para obtener la ecuación de movimiento que caracteriza a la planta


se tendrá en cuenta que el eje de inercia de la barra móvil está
ubicado justo en su centro de gravedad, razón por la cual la fuerza
resultante sobre la barra será nula, al estar todas las fuerzas de un
lado y del otro, de su eje de inercia, compensadas entre sí. Aclarado
este punto, cabe señalar que solo serán de interés las fuerzas

19
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

debidas a la masa del motor y las de fricción con el eje de giro, ya


que el giro del cursor del potenciómetro influye notablemente;
oponiendo resistencia al movimiento de la barra.

d. SISTEMA DE SEGUNDO ORDEN

Como se puede observar, la ecuación obtenida corresponde a un


sistema de segundo orden que se puede representar de la siguiente
forma:

De forma análoga a la función de transferencia obtenida, se puede


realizar una comparación y se obtiene:

20
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

Reemplazando en la segunda ecuación, se obtiene:

0.26 ∗ 0.063 ∗ 9.81


𝜔𝑛 = √
0.007832

𝝎𝒏 = 𝟒. 𝟓𝟑 𝒓𝒂𝒅/𝒔𝒆𝒈

Con el valor de frecuencia obtenido, reemplazamos en la primera


ecuación:

4
𝜉=
𝑡𝑠 ∗ 𝜔𝑛

4
𝜉=
2 ∗ 4.53

𝝃 = 𝟎. 𝟒𝟒𝟏𝟓

𝑌 (𝑠) 33.2
= 2
𝑋 (𝑠) 𝑠 + 3.99 𝑠 + 20.517

21
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

6. SISTEMA DE CONTROL

a. REGULADOR PID

Un PID (Proporcional Integral Derivativo) es un mecanismo de


control por realimentación que calcula la desviación o error entre
un valor medido y el valor que se quiere obtener, para aplicar una
acción correctora que ajuste el proceso. El algoritmo de cálculo del
control PID se da en tres parámetros distintos: el proporcional, el
integral, y el derivativo. El valor Proporcional determina la reacción
del error actual. El Integral genera una corrección proporcional a la
integral del error, esto nos asegura que aplicando un esfuerzo de
control suficiente, el error de seguimiento se reduce a cero. El
Derivativo determina la reacción del tiempo en el que el error se
produce. La suma de estas tres acciones es usada para ajustar al
proceso vía un elemento de control como la posición de una válvula
de control o la energía suministrada a un calentador, por ejemplo.
Ajustando estas tres variables en el algoritmo de control del PID, el
controlador puede proveer un control diseñado para lo que requiera
el proceso a realizar. La respuesta del controlador puede ser
descrita en términos de respuesta del control ante un error, el grado
el cual el controlador llega al "set point", y el grado de oscilación del
sistema.

 ACCION PROPORCIONAL

En la rama superior de la figura, tendremos como resultado


la multiplicación de la señal de error por la ganancia
proporcional, esto implica que el controlador proporcional
produce una variable de salida u proporcional al error del
sistema e.

u(t) = Kp e(t)

La ganancia proporcional Kp ó P es la cantidad por la cual la


variable de control u cambia cuando el error cambia e.

22
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

Un controlador proporcional responde rápidamente ante el


error del sistema pero no es capaz de eliminar completamente
las perturbaciones, o eliminar completamente el error. Puede
producir inestabilidad.

En la práctica cuando queramos conocer datos sobre la


ganancia proporcional de un PID comercial, probablemente
no la encontremos como Kp ó P, sino que se utiliza el término
Banda Proporcional, PB. La relación entre una y otra se
expresa mediante:

PB = 100/kp

Se escribe de esta forma porque normalmente PB se expresa


en porcentaje.

Una banda proporcional ancha es lo mismo que una ganancia


baja, y una banda proporcional estrecha equivale a una
ganancia alta.

La banda proporcional también se define como el error que se


requiere para llevar la salida del controlador del valor más
bajo hasta el más alto.

 ACCION INTEGRAL

Esta acción básica de control, se observa en la rama


intermedia de la figura, donde obtendremos una señal que
será la multiplicación de la ganancia integral I ó tiempo de
acción integral por la variación del error en el tiempo, de
forma matemática:

23
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

Ti es el tiempo que tarda la acción integral en igualar a la


acción proporcional.
Si lo vemos de forma gráfica será así:

El controlador integral se utiliza sobre todo cuando tenemos


problemas de error en régimen estacionario, ya que su
finalidad es corregir las desviaciones sobre la referencia y
lograr finalmente que error de estado estacionario se haga
cero.

 ACCION DERIVATIVA

Un regulador P con ganancia alta para dar respuesta rápida


puede provocar oscilaciones por señal de control u excesiva.
La acción derivativa acelera la u si e crece y la modera si e
decrece, evitando oscilaciones. En la rama inferior de figura
2.3 se obtiene una señal que viene a ser la implementación
real de la acción derivativa, teóricamente la acción derivativa
se representa:

24
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

Con e variando linealmente, la acción derivativa da la misma


u que la acción proporcional daría Td sg. Más tarde. Acción
anticipativa, no influye en el estado estacionario.

Td tiempo que tarda la acción derivativa en igualar la acción


proporcional si e= a*t.

Esta acción de control es buena para procesos lentos y donde


el ruido no sea un factor determinante, ya que la acción
derivativa tiende a introducir ruidos cuando se producen
saltos en la referencia.

b. CONTROL PROPORCIONAL – INTEGRAL

En este tipo de control la salida del controlador es una suma


aritmética de una acción proporcional más una acción integral.

El controlador proporcional tiene mejor característica dinámica, ya


que actúa ante cualquier desviación en el error de forma casi
inmediata, sin embargo es incapaz de eliminar los errores en
régimen estacionario.

El controlador integral disminuye este error en régimen


estacionario pero responde más lentamente que el controlador
proporcional.

25
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

El valor de Ti equivale al tiempo requerido en el modo integral para


alcanzar el cambio en la salida producido por el modo proporcional.

Este tipo de control es recomendado en la mayoría de los casos ya


que se puede lograr que el sistema a controlar responda
satisfactoriamente, señal de salida con poco ruido, error
estacionario nulo.

26
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

7. IMPLEMENTACION DEL SOFWARE SIMULINK

En este capítulo se tratará todo lo relacionado con la instalación de los


complementos necesarios para el control del sistema, el montaje del circuito
de la planta, las conexiones tanto del encoder como de la IMU, los pasos que
hemos seguido para seleccionar el sensor de posición mas adecuado, así como
el modelo que hemos empleado en Simulink para la recepción de los datos de
ambos sensores.

a. Instalación de la biblioteca Arduino en Simulink


A continuación se detallarán todos los pasos a seguir para la
instalación de la biblioteca Arduino para Simulink que se introdujo
anteriormente en el capítulo 2 en el cual se presentaban los
componentes que se emplearían en a realización del proyecto:

1- En primer lugar, una vez se ha abierto MATLAB, se debe pinchar


en la pestaña “Add-Ons” y dentro de esta en el apartado “Get
Hardware Support Packages”.

Instalador de paquetes de soporte de Matlab.

27
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

2- A continuación se nos abrirá una ventana en la cual se debe


seleccionar el apartado “Install from Internet” y seguidamente
pinchar en Next.

Diferentes opciones para instalar paquetes en Matlab.

3- Dentro del menú de la derecho que aparecerá en la nueva ventana,


se debe seleccionar el apartado Arduino, y dentro de este aparecerán
los dos programas que se pueden ver junto con la opción “Install” (en
el caso de la imagen aparece “Reinstall” ya que se encontraban
instalados), una vez seleccionados las dos pestañas pertinentes se
debe pinchar en Next para continuar con la instalación.

Paquetes Arduino disponibles para instalar


28
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

4- A continuación, en la siguiente ventana debemos de hacer click en “Log In”

Ventana de acceso al registro.

5- En la ventana que aparecerá a continuación se puede elegir


entre crear una cuenta nueva de MathWorks si aún no se cuenta
con una, o de introducir nuestro usuario y contraseña si ya se cuenta
con una.

Ventana de Log In.

29
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

6- Una vez se introducen los datos de la cuenta, se debe seleccionar la


pestaña “I accept” y pinchar en Next para continuar con el proceso.

Términos y condiciones de acceso.

7- En la ventana que aparece a continuación se debe pinchar en Next.

Aceptar licencias y descargar antes de instalar.

30
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

8- Finalmente, en la nueva ventana se pincha en “Install” para


comenzar con el proceso de instalación.

Instalar productos seleccionados.

9- Una vez completada la instalación es importante pinchar en Continue


para realizar un ajuste necesario para el correcto uso de la placa
Arduino.

Ajustes necesarios para un correcto funcionamiento.

31
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

10- En la ventana que aparece a continuación se debe seleccionar la


pestaña “Enable Installation of Arduino USB Driver” y pinchar en “Next”.

Enable Installation of Arduino USB Driver

11- Finalmente se pincha en la pestaña “Finish” para concluir con la


instalación de la biblioteca.

Fin de la instalación.

32
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

33
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

8. INTERFAZ FISICA DEL SISTEMA

a. CONEXIÓN ARDUINO – POTENCIOMETRO

El potenciómetro entregara valores entre 0 y 5 V al arduino, los


cuales indican la posición del balancín, por lo que tendremos que
usar una entrada analógica, la que nos dará los valores sensados
por el potenciómetro, el esquema de conexión se muestra a
continuación.

b. CONEXIÓN, MODULO DE POTENCIA – ARDUINO- MOTOR

Para el control de velocidad se usara un ESC, el cual se encuentra


alimentado por una fuente de alta potencia y a su vez, requiere una
señal de control conectada al arduino.

34
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

9. PROGRAMACION DEL CONTROLADOR

Para poder controlar los circuitos previamente implementados, será


necesario implementar un código en Arduino, tanto como un diagrama de
bloques en simulink, y después se procederá a entrelazar ambos
programas mediante el uso del puerto serial.

a. PROGRAMACION EN ARDUINO

Este código resulta bastante sencillo, debido a que básicamente solo


relaciona los valores sensados, los convierte y envía los datos por el
puerto serial.

Asimismo, recibe los valores del puerto serial (Enviados por


Simulink), y procede a convertirlos y a operarlos para imprimir los
datos en el puerto del ESC.

 DIAGRAMA DE FLUJO

35
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

 CODIGO EN ARDUINO

36
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

Con este pequeño código será posible leer el sensor


potenciométrico, enviar el dato hacia el PC, recibir el dato de
la señal de control generada por el PID y escribir el mismo en
pin digital de salida PWM.

Esta es toda la programación que se necesitará.

b. LAZO DE CONTROL SIMULINK

 LAZO CERRADO

En la siguiente imagen, se detalla cómo se realizara el control


del sistema.

Por otra parte, nuestro programa de Simulink debe recibir


este dato de V (θ) a través del puerto serie, compararlo con
una referencia Vref. que controlaremos nosotros con
un slider en la propia interfaz gráfica de Simulink, y,
mediante un controlador PID, determinar la señal de control
(potencia al motor) necesaria. Después debe enviarla a través
del puerto serie en formato uint8, unsigned integer de 8 bits,
que toma valores entre 0 y 255, ideales para la
función analogWrite () de Arduino:

37
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

Los valores del control PID son modificables de acuerdo a las


características que uno quiera brindarle al controlador, y esto
se puede realizar de una manera sencilla.

 LAZO ABIERTO

Del mismo modo, es posible realizar un control con Lazo


abierto, lo que implica que no haya realimentación en el
proceso, este control también puede ser usado, pero posee
muchas desventajas en relación al control a lazo cerrado.

38
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

10. ANALISIS DE RESULTADOS OBTENIDOS

Tras realizar una serie de pruebas, se obtienen de Matlab, las siguientes


gráficas, ante una señal de referencia establecida, y perturbando la
planta.

Se identifican los distintos valores, siendo la referencia de color Morado,


la señal de control de color Celeste y el valor de posición de color Amarillo.

 Valor de referencia nula, y posición inicial.

Se puede observar que el valor de control se mantiene


constante, debido a que ambas señales son iguales.

 Valor de referencia incrementado, y señal menor

Ante el incremento de la referencia, la señal de control


procede a incrementar, para poder estabilizar el valor de
posición.

39
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

 Perturbación en la planta

Se puede apreciar como la señal de control crece o decrece de


acuerdo a la señal obtenida del valor de posición, para que de
esta manera sea lo más cercana posible al valor de referencia.

Variando los valores de P I D, se puede controlar el máximo sobre


impulso, tiempo de estabilización, etc.

40
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

41
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

11. CONCLUSIONES

 El control PID resulta óptimo y muy eficaz para controlar sistemas de


segundo orden, siendo versátil a la hora de controlar los distintos
valores de control.

 Se puede realizar un control bastante sencillo y ampliamente eficaz


mediante el uso de herramientas tales como Matlab, Arduino y
Simulink.

 Resulta primordial y muy importante realizar un adecuado y correcto


modelamiento matemático de la planta, para así poder diseñar un
controlador que sea adecuado para la misma.

 Es posible realizar el control tanto a lazo abierto como a lazo cerrado,


resultando el último mucho más conveniente debido a que existe la
retroalimentación y se realizara de una manera mucho más precisa y
rápida.

 Simulink resulta una herramienta muy útil y versátil para poder


realizar un diseño de controlador, debido a su interfaz gráfica y a las
distintas herramientas que posee para visualizar gráficas, cambiar
valores, comunicarse con el puerto serial, etc.

 Arduino puede implementarse de muchas maneras en muchas


aplicaciones, siendo en control una de las más importantes, teniendo
muchas aplicaciones posibles, y siendo bastante sencillo para poder
controlar.

 Con la realización de este proyecto se ha podido poner en práctica los


conocimientos hasta ahora adquiridos en el curso de Control
Mecatronico.

12. REFERENCIAS BIBLIOGRAFICAS

 https://en.wikipedia.org/wiki/Electronic_speed_control
 http://wechoosethemoon.es/2011/07/21/arduino-matlab-simulink-
controlador-pid/
 http://www.lra.unileon.es/es/book/export/html/268
 https://es.wikipedia.org/wiki/Controlador_PID

42
Diseño y construcción de un prototipo de sistema Motor-Hélice-Balancín ETN-365

 https://es.wikipedia.org/wiki/Motor_el%C3%A9ctrico_sin_escobilla
s
 https://uvadoc.uva.es/bitstream/10324/1895/1/PFC-P%2026.pdf

43

You might also like