Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Control
Proyecto final
Nicanor Quijano - Fernando Jiménez - Alain Gauthier
Universidad de los Andes
Danny Jiménez Abel Zambrano Oscar Archila
Agosto 2019
Índice
1. Introducción 2
3. Criterios de evaluación 4
3.1. Modelo matemático . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Identificación del sistema . . . . . . . . . . . . . . . . . . . . . . 4
3.3. Diseño de controladores . . . . . . . . . . . . . . . . . . . . . . . 4
3.4. Validación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.5. Análisis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1
7.2.1. Instalación de Python . . . . . . . . . . . . . . . . . . . . 23
7.2.2. Instalación de Arduino . . . . . . . . . . . . . . . . . . . . 31
7.3. Instrucciones para Ubuntu 16.04 . . . . . . . . . . . . . . . . . . 33
7.3.1. Instalación de Python . . . . . . . . . . . . . . . . . . . . 33
7.3.2. Instalación de Arduino . . . . . . . . . . . . . . . . . . . . 38
10.Referencias 53
1. Introducción
En el transcurso del curso Análisis de Sistemas de Control los estudiantes
han adquirido conceptos clave para el entendimiento y aplicación de la teorı́a de
control en problemas de ingenierı́a reales; sin embargo, de la teorı́a a la práctica
siempre hay una gran brecha. Es por esta razón que se reta a los estudiantes a
aplicar todos los conocimientos ya adquiridos mediante la ejecución de un sis-
tema de control real.
¡Mucho ánimo!
2
fı́sica de una planta de control. El objetivo general del proyecto es implementar
un Aeropéndulo de bajo costo, previamente diseñado y basado en el trabajo
realizado en [1]. Los estudiantes llevarán a cabo un proceso de construcción,
caracterización y diseño e implementación de estrategias de control. Todo esto
ejercido en un problema de aplicación real.
3
8. Desarrollar habilidades de comunicación oral y escrita.
Los estudiantes presentarán un informe escrito y una sustentación oral que
detalle y respalde el proceso de desarrollo llevado a cabo durante la realización
del proyecto. Para el informe y la sustentación es importante tener en cuenta
los criterios de evaluación descritos en la sección 3 de este documento.
3. Criterios de evaluación
A continuación se describen los criterios a evaluar en el informe y sustenta-
ción del proyecto.
4
3.4. Validación
Matemática: evaluar ubicación de los polos y concluir (para los 4 con-
troladores diseñados).
Simulación: simular los 4 controladores diseñados, compararlos de acuer-
do con la validación matemática y concluir.
Implementación: evaluar en la planta fı́sica los 4 controladores di-
señados y concluir.
3.5. Análisis
Comparar el desempeño de los 4 controladores con base en los resultados
de la validación (sección 3.4).
3.6. Conclusiones
Concluir con base en los resultados obtenidos y el análisis realizado.
¿Qué aprendı́? (individual por cada miembro del equipo).
¿Qué fue lo más difı́cil del desarrollo del proyecto? (individual por
cada miembro del equipo).
Por otro lado, los estudiantes cuentan con el apoyo de los asistentes gradua-
dos del laboratorio de Análisis de Sistemas de Control, quienes podrán orien-
tarlos hacia el camino correcto en la solución del problema de aplicación.
5
5. Descarga de archivos necesarios
Para el desarrollo de este proyecto vamos a emplear una serie de archivos
desarrollados por el MIT en [1]. Los archivos necesarios están disponibles en:
ArchivosProyectoFinalControl o en la sección de contenidos en SicuaPlus. Des-
cargue la carpeta .zip y descomprı́mala en una carpeta con ubicación conocida.
De ahora en adelante, esta carpeta/ubicación será denotada como ArchivosPro-
yectoFinalControl.
6
(solicitar la fuente DC que se empleó en la práctica de la planta térmica). Los
grupos que deseen adquirir su propia fuente DC deben buscar una fuente DC
a 12V de por lo menos 1A de corriente. En dado caso es necesario que adquie-
ran también el conector respectivo para poder adaptar la fuente a la protoboard.
Se han incluido dos archivos .pdf relevantes para corte láser. El archivo: Pla-
7
nos de corte proyecto final - MDF 3mm.pdf es el que contiene los planos de
corte láser que se deben llevar en USB al sitio donde se realizará el corte (son
los mismos planos que se muestran en la figura 2). Por otro lado, el archivo:
Cotas proyecto final - MDF 3mm.pdf contiene los mismos planos de corte pero
con anotaciones adicionales que detallan las dimensiones de las piezas. Este se-
gundo archivo no se debe usar para el corte láser; sin embargo, es importante
revisar las dimensiones de las piezas antes de iniciar el corte (pedirle a técnico
que revise las principales dimensiones antes de iniciar el corte). Esto último con
el fin de evitar cortes erróneos por mal ajuste de la escala, ya sea por parte del
técnico o del software empleado.
8
Figura 3: Esquema de conexiones para protoboard.
9
6.4. Vı́deo de ensamble
El proceso de construcción de la planta se detalla en el vı́deo: Ensamble del
Aeropéndulo. Se recomienda visualizar el vı́deo en alta definición (720p).
10
Figura 5: Seleccione la versión de Python que desee descargar. Durante este
tutorial se estará trabajando con Python 2.7; sin embargo, también se incluirán
las instrucciones para Python 3.6.
11
Figura 7: Seleccione la ruta para la instalación de Python. Si no tiene preferencia
se recomienda dejar la ruta por defecto. Después de clic en N ext.
12
Figura 8: Utilice la barra lateral para bajar hasta el final de la lista y
configure la opción: Add python.exe to Path. Debe verse exactamente
como en la imagen. Este paso es muy importante, en caso de no
hacerlo el programa no funcionará apropiadamente. Una vez configurado
dé click en N ext.
13
Figura 9: Permita que Python realice cambios en su equipo y espere a que la
instalación finalice.
14
En el PowerShell (pantalla azul) escriba:
python −−version
Esto mostrará la versión de Python que instaló anteriormente. Después es-
criba:
pip −−version
Esto mostrará la versión de pip que tiene instalada. pip es un administrador
de paquetes de Python que permite instalar y desinstalar los distintos módulos
de Python que se emplearán en este laboratorio. Las nuevas versiones de Python
(incluyendo las de esta guı́a) ya vienen con pip por defecto y por esta razón no
fue necesario instalarlo de forma adicional.
En caso de haber instalado Python 3.6, los comandos a ejecutar deben ser:
python3 −−version
pip3 −−version
15
Figura 12: En el PowerShell utilice el comando cd para cambiar al directorio
en el que descomprimió la carpeta ArchivosProyectoFinalControl. Una vez ahı́,
emplee el comando dir. Deberı́a ver información similar a la mostrada en esta
imagen.
flask-socketio
pyserial
eventlet
Para instalar todos estos módulos solo es necesario emplear pip y el archivo
de requerimientos req.txt incluido en el archivo descargado (ArchivosProyec-
toFinalControl). El comando a correr es diferente dependiendo de la versión de
Python que el lector instaló.
16
Figura 13: Al correr el comando mencionado anteriormente deberı́a obtener los
resultados de esta imagen.
17
Figura 14: Al ejecutar el comando anterior deberı́a observar información similar
a la mostrada en esta imagen.
Para cerrar la interfaz vaya al PowerShell de Windows, dé clic sobre el mismo
y oprima Ctrl + C. Esto finalizará la ejecución del programa server.py.
18
sario conectar el Arduino al equipo antes de ejecutar el server.py. De
igual forma, es MUY IMPORTANTE que cuando se desee detener el
programa primero cierre el server.py con el comando Ctrl + C, an-
tes de desconectar el Arduino del equipo. De no hacerlo su Arduino
podrı́a resultar dañado.
Utilice la barra lateral de la página para bajar hasta ver la opción mostrada
en la Figura 47.
Figura 16: Dé clic en el enlace Windows Installer, esto abrirá una nueva
página que le preguntará si desea donar dinero a Arduino. Si no desea donar dé
clic en el enlace JUST DOWNLOAD.
19
Figura 17: Ejecute el archivo descargado. Revise los términos de licencia y dé
clic en I Agree
20
Figura 19: Establezca la ruta de instalación deseada y dé clic en Install.
21
Figura 21: Instale los drivers requeridos por Arduino.
22
7.2. Instrucciones para macOS
7.2.1. Instalación de Python
El primer paso es instalar Python. Python es un lenguaje de programación
interpretado, gratuito y de código abierto. Python viene en dos versiones distin-
tas: Python 2.∗ y Python 3.∗. Para el desarrollo de este proyecto el lector puede
optar por la versión que prefiera; sin embargo, debe recordar su elección para
ser consistente con la misma durante la totalidad del proyecto.
Figura 24: Seleccione la versión de Python que desee descargar. Durante este
tutorial se estará trabajando con Python 2.7; sin embargo, también se incluirán
las instrucciones para Python 3.6.
23
Figura 25: Dé clic en Continuar.
24
Figura 27: Revise la licencia de instalación, dé clic en Continuar y acepte la
licencia.
Figura 28: Seleccione el disco en el que desea instalar Python y dé clic en
Continuar.
25
Figura 29: Revise la ubicación en la que se instalará Python. Si está de acuerdo
dé clic en Instalar.
26
Figura 31: En este punto la instalación de Python ha finalizado con éxito.
python −−version
Esto mostrará la versión de Python que instaló anteriormente. Después es-
criba:
pip −−version
En caso de haber instalado Python 3.6, los comandos que debe ejecutar son:
python3 −−version
pip3 −−version
27
Figura 32: Al ejecutar los comandos descritos anteriormente el lector deberı́a
ver algo similar a lo mostrado en esta imagen.
flask
flask-socketio
pyserial
28
eventlet
Para instalar todos estos módulos solo es necesario emplear pip y el archivo
de requerimientos req.txt incluido en el archivo descargado (ArchivosProyec-
toFinalControl). El comando a correr es diferente dependiendo de la versión de
Python que el lector instaló.
29
validar su correcto funcionamiento).
python server.py
O equivalentemente en Python 3.6 ejecute:
python3 server.py
30
Figura 36: Al entrar al localhost:3000 el lector deberı́a observar una interfaz
similar a la mostrada en esta imagen. Note que en la primera opción desplegable
solo aparece Bluetooth-incoming. Esto se debe a que aún no hemos conectado
el Arduino al equipo y este equipo cuenta con Bluetooth integrado.
31
Utilice la barra lateral de la página para bajar hasta ver la opción mostrada
en la figura 37.
Figura 37: De clic en el enlace Mac OSX Installer, esto abrirá una nueva
página que le preguntará si desea donar dinero a Arduino. Si no desea donar de
clic en el enlace JUST DOWNLOAD.
32
Figura 38: Descomprima el archivo descargado y posteriormente agregue Ar-
duino a sus aplicaciones de sistema.
33
Esto le pedirá ingresar su contraseña de súper usuario.
Ejecute el comando:
sudo apt-get install python python-pip python3 python3-pip
Figura 40: Ejecute el comando con Enter. Después acepte continuar oprimiendo
y + Enter.
Una vez finalice la instalación el lector puede verificarla corriendo los co-
mandos:
python −−version
pip −−version
O equivalentemente para Python 3:
python3 −−version
pip3 −−version
34
Para evitar futuros warnings vamos a actualizar la versión de pip. Para esto
ejecute los siguientes comandos:
pip install −−upgrade pip
pip −−version
O equivalentemente para Python 3:
pip3 install −−upgrade pip
pip3 −−version
En este punto ya estamos listos para instalar los módulos de Python que
utilizaremos en este proyecto. Para esto dirı́jase a la carpeta ArchivosProyecto-
FinalControl que descargó al comienzo de este tutorial (sección 5).
Figura 42: Para dirı́jase a la carpeta deseada utilice el comando cd con la ruta
de la carpeta. En el caso de este tutorial la ruta es Documents → ArchivosPro-
yectoFinalControl. Una vez en la carpeta emplee el comando ls para listar los
contenidos de la misma. Deberı́a ver algo similar a esta imagen.
35
flask
flask-socketio
pyserial
eventlet
Para instalar todos estos módulos solo es necesario emplear pip y el archivo
de requerimientos req.txt incluido en el archivo descargado (ArchivosProyec-
toFinalControl). El comando a correr es:
pip install -r req.txt
python3 server.py
36
Figura 44: Al ejecutar el comando anterior deberı́a observar información similar
a la mostrada en esta imagen.
37
Figura 46: Al seguir la instrucción anterior deberı́a observar algo similar a lo
mostrada en esta imagen.
Utilice la barra lateral de la página para bajar hasta ver la opción mostrada
en la figura 47.
38
Figura 47: De clic en el enlace Linux 64 bits, esto abrirá una nueva página
que le preguntará si desea donar dinero a Arduino. Si no desea donar de clic en
el enlace JUST DOWNLOAD.
39
tar -xvf arduino-1.8.5-linux64.tar.xz
sudo ./install.sh
Si todo funcionó correctamente deberı́a ver resultados similares a los de la
figura 49. Para acceder al programa de Arduino en Ubuntu, debe buscar Arduino
IDE en los programas instalados. Esto lo puede hacer fácilmente empleando la
herramienta mostrada en la figura 50.
40
lector ya tiene instalado el Software Arduino y los drivers respectivos. En caso
de no ser ası́ consulte la sección 7 de este documento.
41
Figura 52: Navegue hasta la ubicación de la carpeta ArchivosProyectoFinal-
Control → programa arduino UNO y abra el archivo programa arduino UNO
tal como se muestra. Esto cargará el código del programa en la ventana del
Arduino IDE.
42
Figura 53: En la esquina inferior derecha podrá observar la configuración de
programación actual. En dado caso de no ser la deseada o de no ver nada, dé
clic en Herramientas → P laca : y seleccione Arduino/Genuino U no. Poste-
riormente dé clic en Herramientas → P uerto : y seleccione el puerto en el cual
tiene conectado el Arduino UNO (por lo general es la única opción que sale).
43
Figura 54: Con el código abierto dé clic en la opción mostrada. Esta opción
permitirá verificar que no haya errores en el código antes de intentar cargarlo
al Arduino.
Figura 55: Al verificar el código, si no hay ningún problema, deberı́a ver la barra
de estado tal como se muestra en esta imagen. Esta indica que el programa fue
compilado exitosamente.
44
Figura 56: Con el código abierto dé clic en la opción mostrada. Esta opción
permitirá cargar el programa al Arduino.
Figura 57: Al cargar el código, si no hay ningún problema, deberı́a ver la barra
de estado tal como se muestra en esta imagen. Esta indica que el programa fue
subido exitosamente al Arduino.
45
8.2. Validación y uso del programa
Una vez instalados todos los programas necesarios y después de haber car-
gado el código en el Arduino UNO, se procede a validar el funcionamiento del
programa completo.
Figura 58: Observe que ahora si aparece un puerto serial en la primera lista
desplegable. En este caso aparece el puerto COM4 porque se está trabajando
en Windows y el Arduino UNO está conectado al COM4. En su caso puede
aparecer una opción diferente; sin embargo, debe coincidir con el puerto en el
cual tiene conectado el Arduino UNO.
46
Figura 59: Dé clic en la opción marcada para iniciar la conexión serial con el
Arduino UNO.
Figura 60: Observe que ahora la tercera lista desplegable indica que se encuentra
conectado con la placa Arduino.
47
Figura 61: Utilizando la barra lateral el lector puede desplazarse a la parte baja
de la interfaz y observar las distintas gráficas que esta presenta. Estas gráficas
arrojan información importante sobre la planta de control.
Por otro lado, el programa cuenta con una serie de deslizadores que le per-
miten interactuar con el control de la planta en tiempo real. Estos deslizadores
son:
48
Alternate desired: le permite alternar la posición deseada entre dos valores
definidos (onda cuadrada).
Figura 62: Para finalizar la conexión serial debe dar clic en la tercera lista des-
plegable. Esto desconectara la comunicación serial con el Arduino y le mostrará
el estado tal como está señalado en la imagen.
Figura 63: Si desea desconectar el Arduino UNO del computador recuerde que
primero debe cerrar el navegador de la interfaz y posteriormente debe dar clic
en el PowerShell/terminal y presionar Ctr + C para interrumpir el programa
server.py tal como se muestra en la imagen. SOLO DESPUÉS DE IN-
TERRUMPIR EL server.py ES SEGURO DESCONECTAR EL AR-
DUINO DEL COMPUTADOR.
49
9. Calibración del sensor
Para poder obtener mediciones acertadas del ángulo del Aeropéndulo, es ne-
cesario caracterizar el potenciometro que se está empleando como sensor de la
posición angular. Para esto se ha incluido el archivo: programa caracterizacion angulo.ino
en la carpeta ArchivosProyectoFinalControl.
50
Figura 65: Al abrir el monitor serial el lector deberı́a observar datos como los
mostrados en la imagen. En caso de no ver nada verifique que el Baud rate
esté configurado en 115200 (lo puede verificar en la esquina inferior derecha del
monitor serial).
Y = mX + b
Donde Y corresponde a la posición angular en grados, X es el voltaje digital
medido con el potenciometro, m es la pendiente de la recta de regresión y b es
51
el Y-intercepto de la recta de regresión.
52
10. Referencias
[1] J. White y J. Steinmeyer. Introduction to Control System Design - A First
Look. Massachusetts Institute of Technology (MITx). Jul. de 2016. url:
www . edx . org / es / course / introduction - control - system - design -
first-mitx-6-302-0x.
53