e(t) + 1 Ti Z t 0 e(τ )dτ + Tdd dte(t)
donde e es el error definido como e = uc− y, y uc se conoce como el valor deseado.
2.3. Herramientas de Software
Parte importante de este proyecto son las herramientas de software, que no s´olo son totalmente esenciales para la simulaci´on o dar soluci´on a los modelos propuestos, sino tambi´en para el dise˜no de los controladores y sistemas de adquisici´on de datos. Es por eso que la presente secci´on se dedica a introducir algunas de las herramientas que ser´an imprescindibles a lo largo del desarrollo del proyecto.
2.3.1. Docker
La mejor forma de explicar qu´e es la plataformaDockeres por medio de un ejemplo. Considere lo siguiente: Imag´ınese que quiere desarrollar varias aplicaciones de software para que puedan servirse desde en un mismo servidor. Ver la figura 2.11. Luego de terminar la primera, y comienza a desarrollar la aplicaci´on 2, se da cuenta de que ´esta no es compatible con las librer´ıas de software instaladas en el servidor.
¿Parece sencillo, cierto?: Solamente hace falta instalar los nuevos paquetes de software, ¿no? Pero una vez instalados, usted se da cuenta de que las nuevas librer´ıas son incompatibles con la aplicaci´on 1, y ´esta deja de funcionar correctamente. ¿Qu´e har´ıa? La primera soluci´on que primero le podr´ıa venir a la mente es servir la segunda aplicaci´on desde un computador diferente. No est´a mal, pero no es una soluci´on muy pr´actica si considera que tendr´ıa que tener un computador por cada aplicaci´on: los costos de infraestructura no ser´ıan justificables.
CAP´ITULO 2. MARCO TE ´ORICO P´agina 24
Figura 2.11: Entornos de Desarrollo Fuente propia.
en un mismo hardware, y permiten alojar diferentes aplicaciones cada una corriendo en su propio entorno.
Entonces, ¿Qu´e esDocker?Dockeres un sistema de administraci´on de contenedores que nos ayuda a administrar Contenedores Linux (LXC) de una manera m´as f´acil y universal. (McKendrik & Gallagher, 2017).
En la figura 2.11, tambi´en se ilustra la ventajas de utilizar contenedores virtuales en lugar de m´aquinas virtuales. Las segundas necesitan alojar un segundo o incluso m´as sistemas operativos en un mismo Host. Cada contenedor que es inicializado conDockerutiliza el kernel del Sistema Operativo delHost, ahorrando mucho m´as espacio en el disco duro.
2.3.2. Python
El primer lenguaje de programaci´on en ser introducido esPython. La raz´on es simple,Python ser´a el lenguaje que m´as se utilice a lo largo del desarrollo del proyecto. De acuerdo con Morgan (2016), una de las razones por la que muchos ingenieros se deciden porPython, por encima de muchos otros lenguajes, es por ser un lenguaje claro y muy intuitivo. Estas caracter´ısticas le permiten al ingeniero concentrarse m´as en la soluci´on de problemas sin perder tiempo valioso pasando horas entendiendo la sintaxis del lenguaje.
Pythones un lenguaje din´amico. Quiere decir que elint´erpreteidentifica el tipo de variable durante el tiempo de ejecuci´on del programa y que, a su vez, una variable puede alojar diferentes tipos de datos como enteros, flotantes, listas, diccionarios. S´olo por mencionar algunos.
Seg´un Unpingco (2016), Python lleva m´as de 20 a˜nos utiliz´andose, en los Estados Unidos, como herramienta para la computaci´on cient´ıfica, a nivel de gobierno*, industria, y academia universitaria.
*
Finalmente una de las mayores ventajas de Python es la gran oferta de librer´ıas y que se encuentran disponibles para su uso libre. Dicho esto, en las siguientes secciones se explican algunas de las librer´ıas y frameworks m´as ´utiles de Python.
Numpy
Numpy es la base para la computaci´on cient´ıfica en Python, y es una herramienta muy ´util cuando es necesario trabajar con arreglos n-dimensionales. Entre los rasgos m´as importantes, de la librer´ıa, cabe mencionar su capacidad para trabajar computaciones num´ericas, operaciones de ´algebra lineal y transformadas de Fourier.
La base deNumpyes la clase ndarray, estructuras que permiten vectorizar y transmitir datos. Los ndarray son estructuras m´as eficientes que las listas quePythonusa por defecto, al funcionar como verdaderos vectores de objetos y no como listas de punteros que apuntan a un espacio aleatorio en la memoria.
Matplotlib
Matplotlib es un paquete de software que es ideal para graficar en 2D e incluso 3D. La colecci´on de comandos matplotlib.pyplot habilita un entorno muy parecido a MATLAB. Utilizando algunas otras librer´ıas dePythonyMatplotlib se puede incluso graficar en tiempo real. Otra de las facilidades de la librer´ıa es la habilidad para exportar los gr´aficos en im´agenes o incluso animaciones.
SciPy
De acuerdo con sus desarrolladores, SciPy es un ecosistema, de software abierto y basado en Python, enfocado a aplicaciones en matem´atica, ciencias e ingenier´ıa(SciPy developers, 2019).
Entre sus principales facilidades, SciPyofrece librer´ıas para integrar sistemas de ecuaciones diferenciales ordinarias, trabajar con matrices y realizar operaciones de ´algebra lineal, incluso posee herramientas para calcular transformaciones espaciales.
2.3.3. Jupyter
Jupyter es una aplicaci´on web y un entorno de desarrollo interactivo y ser´a una de las herramientas que tal vez m´as se utilice durante el proyecto. La herramienta permite interactuar con todas las librer´ıas de Python, previamente mencionadas, y organizar los proyectos en archivos por medio de la aplicaci´on jupyter-notebook.
En la figura 2.12 se puede apreciar como se ve la interfaz de un jupyter-notebook. En la captura de pantalla tambi´en se muestra dos de los tipos m´as comunes de celda,
CAP´ITULO 2. MARCO TE ´ORICO P´agina 26
Figura 2.12: Captura de pantalla mostrando la interfaz de un jupyter-notebook en el navegador Firefox.
La celda markdown, que sirve para contener texto que puede ser estilizado utilizandoHTML,CSS o el entorno de matem´atica de LATEXpara editar ecuaciones.
2.3.4. Django
Django es un web framework, basado en Python, enfocado en facilitar el desarrollo de aplicaciones escalables, seguras y mantenibles (George, 2019). En esta secci´on se explican algunos conceptos importantes.
Aplicaciones. Las aplicaciones deDjangoson paquetes de c´odigo que permiten administrar tareas en espec´ıfico y que interact´uan con el framework principal. Estos paquetes por lo general se constituyen en vistas, plantillas, modelos,URLs, archivos est´aticos.
Modelos. Todos los modelos enDjangoson clases que heredan de la clasedjango.db.models.Model. Cada modelo est´a mapeado a una tabla en la base de datos y proveen unAPIque facilita las consultas
a la base de datos (Mel´e, 2020).
2.4. Instrumentaci´on
En las siguientes secciones se introducen los conceptos de instrumentaci´on y medici´on, y se definen, de manera generalizada, algunos instrumentos y actuadores.
Figura 2.13: Diafragma como elemento sensor. Fuente propia.
2.4.1. Instrumentaci´on y Principios de Medici´on
Con el auge de los procesos industriales, la necesidad de monitorear y controlar las diferentes variables exigi´o la fabricaci´on de nuevos instrumentos capaces de gestionar y regular las condiciones del proceso. Estos instrumentos generalmente deben tener un mejor desempe˜no que los de un operador humano.
En la secci´on 2.1.1 se reconoce la presencia de variables f´ısicas y qu´ımicas tales como presi´on, temperatura, humedad o niveles de pH, en los sistemas acuap´onicos. De acuerdo con Halit Eren, si el comportamiento de una variable f´ısica es conocido, su desempe˜no puede ser monitoreado y evaluado por medio de m´etodos adecuados(Eren, 2014). Tales m´etodos se pueden clasificar en
senso. Percepci´on y recolecci´on de la informaci´on de inter´es presente en el mundo f´ısico. acondicionamiento de se˜nal
terminaci´on
Definici´on 2.4.14: Medici´on
El concepto de medici´on se refiere al proceso de recolectar informaci´on del entorno y comparar dicha informaci´on con est´andares previamente acordados.
2.4.2. Instrumentaci´on: Presi´on
La capacidad de medir presi´on es importante ya que est´a demostrado, en (2.2.14) y en (2.2.19), que tanto el nivel de l´ıquido en un tanque como el flujo que atraviesa una tuber´ıa pueden expresarse en t´erminos de la presi´on.
La mejor manera de medir la presi´on es aprovech´andose de la deformaci´on del elemento primario o sensor tal y como se muestra en la figura 2.13. Cuando un fluido, l´ıquido o gaseoso, entra en la c´amara ejerce presi´on sobre el diafragma deform´andolo.
De acuerdo con Chau (2014), los instrumentos capacitivos tienen una precisi´on mejor al 0.1 % y son dise˜nados para trabajar en un extenso rango de presiones. El funcionamiento de estos
CAP´ITULO 2. MARCO TE ´ORICO P´agina 28
Figura 2.14: Sensor de presi´on capacitivo. Fuente propia.
dispositivos se ilustra en la figura 2.14. El sensor consta de un diafragma conductivo, que funciona como un electrodo de un capacitor, mientras que otros dos electrodos estacionarios se depositan en la capa de cer´amica de la c´amara. Cuando el diafragma se deforma, el espacio entre las placas tambi´en cambia haciendo variar la capacitancia. Dicha variaci´on, puede ser luego acondicionada por un circuito electr´onico para representar de manera precisa la presi´on detectada.
Conceptos
Cuando se especifica la tensi´on el´ectrica en un circuito, siempre se debe tambi´en indicar la referencia con respecto a la medici´on. Es decir, si la tensi´on es diferencial*, o se midi´o con respecto a una referencia como la “tierra”. Del mismo modo, cuando se se˜nala una medici´on de presi´on, siempre es importante precisar la referencia.
Para ilustrar el argumento anterior se saca, nuevamente, provecho del ejemplo del sensor capacitivo de la imagen 2.14. Considerando que se mide la presi´on 2 siempre con respecto a la presi´on 1, en el lado derecho se encuentra una gr´afica en d´onde se presentan tres diferentes casos de d´onde se obtienen las siguientes definiciones:
Presi´on Absoluta. En este caso presi´on 1 = cero absoluto o vac´ıo, y la presi´on 2 se conoce como presi´on absoluta. Para identificar cuando una medici´on se da en t´erminos absolutos, se suele utilizar la letra a al final de las unidades, por ejemplo: 10psia.
Presi´on Manom´etrica. En este caso presi´on 1 = 1 atm, y la presi´on 2 se conoce como presi´on manom´etrica. Generalmente, se utiliza la letra g para detallar que una medici´on se hizo con respecto a la presi´on atmosf´erica, por ejemplo: 27 bara (presi´on absoluta), 27 barg (presi´on manom´etrica).
Presi´on Diferencial. La presi´on diferencial se present´o en la secci´on 2.2.6, y se ilustra de nuevo en la figura 2.14. La presi´on diferencial se define como ∆p = presi´on 2 − presi´on 1 **, y por lo usual se utiliza la letra d para identificar que una medici´on es diferencial, por ejemplo: 15 kP ad.
*Entre dos nodos del circuito, o la ca´ıda de tensi´on en una resistencia.
**
En realidad todas las mediciones son diferenciales, siendo las presiones absoluta y manom´etrica dos casos especiales, ya que ∆p, o simplemente p, se puede definir como la presi´on 2 con respecto a la presi´on 1.
Figura 2.15: Dise˜no de un Sensor RTD. Fuente Propia.
2.4.3. Instrumentaci´on Temperatura
De acuerdo con Burns (2014), la temperatura es, tal vez, la variable m´as mesurada en todos los procesos industriales hoy en d´ıa. Es por eso que se le dedica la presente secci´on para introducir y explicar de manera generalizada el principio de funcionamiento de algunos instrumentos.
El lector, tal vez, podr´a recordar que se conoce como propiedad termom´etrica (Tipler & Mosca, 2008) a la propiedad f´ısica de un objeto que cambia con las variaciones de temperatura. ´Este es el principio en el que se basa los detectores de temperatura resistivos o RTD*. La construcci´on de estos detectores se ilustran en la figura 2.15. La respuesta de los sensores depender´a del material del elemento. Por lo general se suele utilizar platino ya que mantiene una respuesta casi lineal en un rango de temperatura m´as amplio, cuando se le compara con otros metales.
Un m´etodo que generalmente se utiliza para modelar la relaci´on Temperatura-Resistencia es la t´ecnica Callendar-Van Dusen, definida por la ecuaci´on (2.4.1). Las constantes A y B son provistas por el fabricante, si el cliente as´ı lo requiere, y son propias de cada sensor. De lo contrario, se dan valores aproximados.
R(T ) = R0(1 + AT + BT2) (2.4.1)
*