Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AUTOR
GABRIEL ALONSO RUBILAR FIGUEROA
CONCEPCIÓN – CHILE
AÑO 2017
FACULTAD DE INGENIERÍA
DEPTO. INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
AUTOR
GABRIEL ALONSO RUBILAR FIGUEROA
AGRADECIMIENTOS
RESUMEN
ÍNDICE DE CONTENIDOS
ABREVIATURAS ......................................................................................................................... v
CAPÍTULO 1. INTRODUCCIÓN ............................................................................................... 1
1.1 Introducción ...................................................................................................................... 1
1.2 Objetivos ........................................................................................................................... 2
1.2.1 Objetivo General........................................................................................................ 2
1.2.2 Objetivos Específicos ................................................................................................ 2
CAPÍTULO 2. SISTEMAS DE LABORATORIOS REMOTOS ............................................. 3
2.1 Introducción ...................................................................................................................... 3
2.2 Laboratorios virtuales y remotos aplicados a la ingeniería de control automático ........... 3
2.3 Arquitecturas de hardware y software empleadas en los laboratorios remotos ................ 6
2.4 Partes que componen un SLD en general ....................................................................... 19
2.4.1 Interfaz de usuario ................................................................................................... 19
2.4.2 Gestión de las prácticas ........................................................................................... 22
2.4.3 Procesamiento de las prácticas ................................................................................ 24
2.5 Conclusiones y comentarios ........................................................................................... 25
CAPÍTULO 3. EL SISTEMA DE LABORATORIOS A DISTANCIA ................................. 26
3.1 Introducción .................................................................................................................... 26
3.2 Características generales del SLD .................................................................................. 26
3.3 Arquitectura del sistema de laboratorios a distancia ...................................................... 29
3.3.1 Integración con MATLAB/simulink ....................................................................... 31
3.3.2 Interfaz gráfica del cliente ....................................................................................... 34
3.4 Estructura de la base de datos ......................................................................................... 39
3.5 Estructura de las funciones de MATLAB....................................................................... 41
3.5.1 Ejecución de prácticas de forma real con control predefinido ................................ 41
3.5.2 Ejecución de prácticas de forma simulada con control predefinido ........................ 47
3.6 Seguridad informática del SLD ...................................................................................... 50
3.7 Instalación del SLD ........................................................................................................ 52
3.8 Puesta en marcha del SLD .............................................................................................. 59
3.9 Añadir prácticas al SLD .................................................................................................. 59
3.10 Conclusiones y comentarios ........................................................................................... 65
CAPÍTULO 4. APLICACIÓN DEL SLD ................................................................................. 66
4.1 Introducción .................................................................................................................... 66
4.2 Sistema de tanques interactuantes del feedback ............................................................. 66
4.3 Modelado de tanques en cascada .................................................................................... 68
4.4 Identificación experimental del sistema.......................................................................... 72
4.5 Control de nivel con PID ................................................................................................ 73
4.6 Control de nivel con otra estrategia de control ............................................................... 77
4.7 Conclusiones y comentarios ........................................................................................... 78
CONCLUSIONES ....................................................................................................................... 79
Conclusiones.............................................................................................................................. 79
Trabajo a futuro ......................................................................................................................... 80
i
Índice de contenidos.
BIBLIOGRAFÍA ......................................................................................................................... 81
ANEXOS 88
Anexo 1 Análisis de vulnerabilidad en servidor con XAMPP v1.6.5 .................................... 88
Anexo 2 Análisis de vulnerabilidad en servidor con XAMPP v1.6.8 .................................. 107
ii
Índice de tablas y figuras
_____________________________________________________________________________________________
ÍNDICE DE TABLAS
ÍNDICE DE FIGURAS
iii
Índice de figuras.
iv
Abreviaciones.
ABREVIATURAS
Mayúsculas
SLD : Sistema de Laboratorio a Distancia.
SLR : Sistema de Laboratorio Remoto.
BD : Base de Datos.
SAP : Servidor de Administración de Prácticas.
CAP : Cliente de Administración de Prácticas.
SQL : Structured Query Language (Lenguaje de Consulta Estructurada)
HTML : HyperText Markup Language (lenguaje de marcas de hipertexto)
PHP : Hypertext Preprocessor (Preprocesador de hipertexto)
v
CAPÍTULO 1. Introducción
CAPÍTULO 1. INTRODUCCIÓN
1.1 Introducción
En la actualidad, el uso de Internet y de las tecnologías Web ha presentado un cambio
radical en la educación. La enseñanza basada en Web, los cursos a distancia, los libros digitales y
las plataformas interactivas de educación a distancia juegan un papel cada vez más importante en
el proceso de aprendizaje. Los sistemas de laboratorio remoto (SLR), son sistemas donde los
usuarios pueden interactuar con dispositivos reales a través de Internet.
Un sistema de laboratorio remoto (SLR) o también llamado sistema de laboratorio a
distancia (SLD), es un sistema que permite operar y controlar remotamente uno o más equipos
físicos, utilizando una interfaz determinada. Estos equipos pueden ser didácticos como las
maquetas de laboratorio o equipos industriales. Estos laboratorios requieren de servidores
específicos que gestionan tanto a los usuarios del sistema como los equipos integrados en los
mismos. Normalmente los usuarios a través de una interfaz Web pueden cambiar algunos
parámetros de control, realizar experimentos, ver los resultados y descargar los datos del
experimento. El SLR implementado, además, permite a los usuarios cambiar las referencias y
diseñar sus propios controladores de una forma sencilla utilizando herramientas ampliamente
conocidas en el área del control automático como son Matlab y Simulink.
En el Laboratorio de Control Automático del Departamento de Ingeniería Eléctrica y
Electrónica (DIEE) de la Universidad del Bío-Bío, se cuenta con una maqueta para realizar
prácticas de control de nivel. Esta consiste en cuatro tanques interactuantes a los que se
suministra agua mediante dos bombas inmersas en un tanque ubicado en la parte inferior de la
maqueta. Las prácticas con esta maqueta se realizan de forma presencial implementando la
estrategia de control en Matlab/Simulink, según la interconexión que se haga en los tanques y los
índices de desempeño deseados en el sistema. Esta modalidad de prácticas limita el uso de los
recursos al tiempo que se dispone en un turno de clases y por ser un recurso único, no todos los
alumnos pueden realmente interactuar con él. Es por ello que se propone incorporar dicha
maqueta a un Sistema de Laboratorios Remotos (SLR) que permita controlarla vía Internet y
permitir así desarrollar sobre ella la modalidad de Prácticas Remotas en los ramos de control
automático. De esta manera el acceso a la maqueta no quedaría restringido solamente a la
duración de las clases, si no que los alumnos pueden acceder a ella en cualquier momento y lugar
siempre que no haya otro accediendo ya a ella.
1
CAPÍTULO 1. Introducción
1.2 Objetivos
2
CAPÍTULO 1. Introducción
2.1 Introducción
3
CAPÍTULO 1. Introducción
A través de eMersion es posible obtener toda la documentación necesaria para completar una
sesión de experimentación en línea, incluyendo los guiones de práctica, protocolo de tareas,
sistema de reservas y el sistema eJournal. El eJournal ofrece un espacio compartido para los
alumnos en el cual pueden depositar los “Fragmentos de datos” que se van obteniendo durante
una sesión de trabajo.
Recientemente se ha creado el Consorcio Global de Laboratorios en línea (Global Online
Laboratory Consortium, GOLC) cuyo objetivo fundamental es promover el desarrollo y
compartir las investigaciones sobre los laboratorios remotos usados con fines educativos. En tal
sentido se trabaja para lograr una arquitectura estándar, unificada e interoperable que comparta
los laboratorios remotos a todo el mundo [11].
El proyecto iLabs, liderado por los profesores del MIT Jesús del Alamo y Steve Lerman,
pone a disposición de los estudiantes el acceso a dispositivos reales de forma remota a través de
la web. iLabs comenzó con el WebLab de microelectrónica, donde los estudiantes podían probar
los dispositivos microelectrónicos frágiles. Este concepto de experimentación en línea se ha
extendido a otras disciplinas, creando hasta la fecha siete laboratorios en línea del MIT, entre los
que se incluye un reactor químico [12], estructuras mecánicas, un intercambiador de calor, etc. El
laboratorio de microelectrónica es usado por estudiantes de China y África para realizar
experimentos con transistores [13].
El proyecto Labshare, financiado por el Departamento de Educación de la Universidad
Curtin en Australia, tiene como objetivo principal desarrollar tanto la infraestructura técnica y
como una estrategia de apoyo al intercambio permanente de las instalaciones de laboratorio y
recursos remotos. Labshare trata de establecer una comunidad compartida de laboratorios de
control remoto y fomentar el desarrollo de laboratorios de alta calidad y rentables para la
educación [14]. Son varios los ejemplos de laboratorios virtuales y remotos que se muestran en la
actualidad. El grupo de educación en Automática del Comité Español de Automática (CEA-
IFAC) ha desarrollado una página web en la que se recopilan los recursos actuales en el área de
los laboratorios virtuales y/o remotos, además de mostrar las clasificaciones de los mismos [15].
El WebLab-DEUSTO es un laboratorio remoto diseñado e implementado por la Facultad
de Ingeniería de la Universidad de Deusto. Desde el punto de vista tecnológico el laboratorio
4
CAPÍTULO 1. Introducción
ha sido implementado en su última versión como un Web Services2 (servicio web) usando
SOAP3, AJAX4 y Python5 [16].
El Ciclope Robot es un laboratorio remoto que tiene como objetivo enseñar cómo realizar
la programación de sistemas de tiempo real embebidos en equipos reales, tales como un robot.
Este escenario está compuesto por un laboratorio real situado en la Facultad de Informática de la
Universidad Politécnica de Madrid y por un cliente web. En la interfaz del cliente se utiliza el
lenguaje HTML, JavaScript y applets6 de Java. En el servidor web se utiliza Apache, PHP,
MySQL y software programado en C++ para la comunicación con el robot [17].
En Chile, el proyecto Ingeniería 2030 considera a la Universidad del BíoBío, Universidad
de Talca y Universidad de la Frontera, para que las tres facultades de ingeniería de estas
universidades actúen como una sola gran MacroFacultad de formación conjunta para Sistemas de
Control Automático. Actualmente, se encuentra en desarrollo el proyecto FDE ING 2030
“Macrolaboratorio de formación conjunta” liderado por el profesor Mario Fernández de la
Universidad de Talca, para integrar los laboratorios de las tres universidades [18].
Particularmente, en la Universidad del Bío-Bío, se desarrolla el proyecto IenDU “Sistema de
prácticas remotas de control automático en tiempo real para la formación de estudiantes de
Ingeniería Civil en Automatización”, liderado por el profesor Ernesto Rubio, del cual es parte
este trabajo de titulo.
Con este proyecto se pretende desarrollar un sistema que permita la implementación de
prácticas remotas de control automático en tiempo real a través de las plataformas de enseñanza a
distancia utilizadas en la UBB, para integrarlo a la docencia de la carrera de Ingeniería Civil en
Automatización y desarrollar con él una innovación metodológica que impacte positivamente
sobre el interés, la motivación y el rendimiento académico de los estudiantes de la carrera de
Ingeniería Civil en Automatización [19].
__________________________________________
2
Web service es una pieza de software que utiliza un conjunto de protocolos y estándares que sirven para
intercambiar datos entre aplicaciones.
3
SOAP (siglas de Simple Object Access Protocol) es un protocolo estándar que define cómo dos objetos en
diferentes procesos pueden comunicarse por medio de intercambio de datos XML.
4
AJAX, acrónimo de Asynchronous JavaScript And XML, es una técnica de desarrollo Web para crear aplicaciones
interactivas.
5
Python es un lenguaje de programación de alto nivel cuya filosofía hace hincapié en una sintaxis muy limpia y que
favorezca un código legible.
6
Applet es un componente de una aplicación que se ejecuta en el contexto de otro programa, por ejemplo un
navegador Web.
5
CAPÍTULO 1. Introducción
Este sistema de la Universidad de Siena en Italia se ha ampliado a Robotics & Automatic Control
Telelab (RACT) el cual permite, además, ejecutar experimentos con un robot manipulador.
Una metodología para construir laboratorios remotos es presentada por Calvo et al. [22].
En dicho trabajo se presenta un enfoque basado en tecnologías estándar (WWW, lenguaje Java,
tecnologías orientadas a objetos distribuidas, etc.) con la intención de proporcionar un marco
genérico que se adapte a un gran número de situaciones. Esta metodología proporciona una
arquitectura de referencia, mostrada en la Figura 2.2, así como pautas a seguir para completar los
diferentes componentes involucrados en los laboratorios remotos (Servidor de Aplicaciones,
Aplicaciones Remotas, etc.).
6
CAPÍTULO 1. Introducción
7
CAPÍTULO 1. Introducción
usuarios pueden ejecutar sus experimentos de forma rápida y transparente. En la Figura 2.4 se
muestra el cliente LABNET.
8
CAPÍTULO 1. Introducción
En la Figura 2.6 se muestra la arquitectura general de RECOLAB. Se destacan los bloques que
conforman esta arquitectura y su interrelación.
9
CAPÍTULO 1. Introducción
10
CAPÍTULO 1. Introducción
Figura 2.7 Interface del laboratorio virtual sobre una máquina de fundición continua [25].
La simulación del sistema está basada en applets de Java que permiten en algunos casos
realizar interacciones con las distintas simulaciones. Presenta varios casos de estudio disponibles
como fundición continua, péndulo invertido, control de nivel en un tanque, columna de
destilación, control de pH, etc.
El Laboratorio de Sistemas de Control en Red (Networked Control System Laboratory,
NCSLab) es un interesante sistema que permite a los usuarios realizar experimentos en
dispositivos reales localizados en diferentes lugares [26]. Se propone una arquitectura escalable
compuesta por navegadores web, servidor web central, servidores de MATLAB, servidores
regionales de experimentos, unidades de control y los dispositivos sobre los que se realizan los
experimentos (Figura 2.8).
11
CAPÍTULO 1. Introducción
12
CAPÍTULO 1. Introducción
13
CAPÍTULO 1. Introducción
El alumno puede acceder a todas las funciones del laboratorio a través de una página web con un
applet de Java el cual maneja la simulación local del robot. Además posee una ventana VRML
con el estado simulado del mismo, obteniendo la información necesaria de una base de datos, la
cual es suministrada por el servidor que atiende al robot.
Este sistema ha estado en evolución desde 1999, y ha pasado por diferentes versiones. La
primera versión de RoboLab (RoboLab I) ofrece una interfaz creada con Java y VRML.
Posteriormente se ha desarrollado una segunda versión (RoboLab II) basada en Java y Java 3D.
Las últimas versiones de RoboLab utilizan el software Easy Java Simulations (EJS)
(simulaciones sencillas en Java) y también están basadas en Java y Java 3D. La versión más
reciente, iniciada en 2007 y denominada RobUALab [30], incluye muchas funciones nuevas con
respecto a las anteriores y forma parte del proyecto AutomatL@bs.
14
CAPÍTULO 1. Introducción
En los laboratorios remotos se experimenta con recursos críticos, donde solo un usuario
puede acceder a la vez, por lo que se implementan diferentes herramientas administrativas para el
control del acceso.
15
CAPÍTULO 1. Introducción
Prácticas paramétricas: el usuario solo puede modificar ciertos parámetros, como pueden
ser las ganancias de un regulador PID, la amplitud de un escalón, etc.
Prácticas con cambio de estrategia: el usuario tiene la posibilidad de realizar cambios en
algunos bloques del modelo del sistema, como puede ser el regulador, las referencias, etc.
Tras descargarse el modelo de Simulink correspondiente, el usuario realiza las
modificaciones pertinentes haciendo uso de los bloques de Simulink. Se pueden realizar
igualmente cambios en otros parámetros avanzados, como el tiempo de ejecución, el
tiempo de muestreo, etc.
Además, el SLD posee características únicas como: Interfaz de usuario rápida y fácil,
administración de múltiples pedidos en forma paralela, desarrollo de controladores de forma
remota usando Matlab y Simulink, Cambio del periodo de muestreo y cambio de referencias de
los experimentos. [34]
El laboratorio de automática de la UPM está formado por 8 puestos equipados con un ordenador
con tarjeta de adquisición y dos sistemas físicos, un sistema térmico y un motor de corriente
continua (Figura 2.12).
16
CAPÍTULO 1. Introducción
17
CAPÍTULO 1. Introducción
plano. El otro software utilizado en el sistema fue Matlab/Simulink, el cual fue usado para la
programación de las prácticas, ficheros .m y .mdl asociados a cada práctica.
Matlab, se instala en las estaciones de trabajo, es decir, las que se conectan directamente
al proceso real. En caso de realizar prácticas con cambio de estrategia es necesario el uso de
MATLAB/Simulink para modificar la plantilla base descargada del servidor [33]. En la figura
2.14 se muestra la arquitectura del SLD.
18
CAPÍTULO 1. Introducción
De forma general, un laboratorio virtual y remoto debe tener al menos tres partes o niveles,
la interfaz de usuario, el nivel de gestión de prácticas y el procesamiento de las prácticas [32].
Aplicaciones específicas
En las aplicaciones específicas se desarrolla una aplicación por parte del desarrollador del
sistema la cual, generalmente, se realiza en un lenguaje de alto nivel como puede ser el C, C++,
Delphi, Visual Basic, Java, entre otros. Dentro de esta clasificación se encuentra el trabajo A
Web-Based Laboratory for Control Engineering Education (Un laboratorio basada en Web para
la Educación de la Ingeniería de Control). Este método tiene como ventaja fundamental que la
aplicación es descargada la primera vez y luego se puede usar mientras no ocurran cambios en el
servidor. Permite realizar aplicaciones más interactivas.
19
CAPÍTULO 1. Introducción
descargar la nueva aplicación o plug-in7 (complemento) que permita esto. Todo esto hace que
esta opción sea poco ventajosa para ser usada como única herramienta de interfaz de usuario de
los laboratorios virtuales y remotos, de hecho, los sistemas la implementan como una elección
adicional. En las últimas fechas prácticamente es una variante que no se utiliza [33].
Aplicaciones compiladas
Existen varios tipos de aplicaciones compiladas tanto del lado del servidor como del
cliente. Una de las más utilizadas son las aplicaciones CGI8 clásicas (Common Gateway
Interface, Interfaz de entrada común) en las cuales se realiza la programación según APIs9
(Application Programming Interface, Interfaz de programación de aplicaciones) en lenguajes
como C, C++, Delphi, etc. Aquí el módulo CGI recibe información a través de variables de
entorno del servidor, realiza un procesamiento y escribe una respuesta para el cliente. Esto, por
supuesto, se vincula con páginas HTML para lograr el objetivo deseado. En RECOLAB, el CGI
se encarga del acceso a los recursos y la comunicación entre el servidor web y las aplicaciones
MATLAB [24]. Otra metodología a la que se recurre para la interfaz de usuario de los
laboratorios remotos es VRML por lo amigable e interactivo que es. VRML es un lenguaje para
la descripción de objetos y mundos virtuales 3-D con los que el usuario puede interactuar. Entre
sus principales características destaca la de ser un lenguaje estándar y, por consiguiente,
universalmente utilizado en Internet como el lenguaje para simulaciones interactivas dentro de la
web. VRML fue desarrollado para que millones de personas pudieran interactuar y cualquier
usuario pueda acceder a sitios producidos en VRML. Fue diseñado precisamente para ser usado a
través de Internet, usando el menor ancho de banda posible y aprovechando al máximo los
recursos del equipo cliente. Un ejemplo de utilización de esta tecnología es el VCLab: The
Virtual Control Laboratory for Education on the Web (El Laboratorio de Control Virtual para la
Educación en la Web) [21] y también una de las versiones del Robolab [35].
___________________________________
7
Un plug-in (complemento) es una aplicación que se relaciona con otra para aportarle una función nueva y
generalmente muy específica. Esta aplicación adicional es ejecutada por la aplicación principal e interactúan por
medio de la API.
8
CGI es una tecnología web que permite a un cliente (navegador web) solicitar datos de un programa ejecutado en
un servidor web. CGI especifica un estándar para transferir datos entre el cliente y el programa.
9
API es el conjunto de funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece
cierta biblioteca para ser utilizado por otro software como una capa de abstracción.
20
CAPÍTULO 1. Introducción
Los applets de Java permiten el desarrollo de aplicaciones con interfaz gráfica. Esta
variante es muy utilizada [36, 37, 38, 26], porque aunque hay que descargar el applet, y esto lleva
su demora, tiene la ventaja de brindar una interfaz más amigable e interactiva con el usuario. A
diferencia de los CGI los applet se pueden actualizar de forma fácil y automática, completamente
transparente para el usuario. Sin embargo los applets tienen como dificultad un elevado consumo
de recursos conforme aumenta la complejidad y contenido gráfico de la aplicación. Además le
exige al usuario tener instalado los plug-ins necesarios por el navegador. Otro problema bien
importante es cuando se usan sockets para la comunicación entre los clientes y el servidor, pues
se asigna un puerto por cada cliente que se conecte al servidor, lo cual trae problemas con los
firewalls que por cuestiones de seguridad tienen los puertos no estándares cerrados.
Otra variante utilizada en la creación de laboratorios virtuales y remotos, y que se incluye
dentro de los applets de Java, es Easy Java Simulations (EJS) [37, 39, 40, 41, 42, 30]. Jara et al.,
realizan un exhaustivo estudio sobre la factibilidad de uso de esta tecnología [43, 44]. El EjsRL
es una biblioteca de alto nivel de Java diseñada específicamente para EJS que proporciona un
marco completo y funcional para el modelado y la simulación de manipuladores, algoritmos de
visión artificial y operación remota [43].
El API Java 3D es una interfaz para escribir programas que muestran e interactúan con
gráficos tridimensionales. Es una extensión estándar del JDK10 de Java y proporciona una
colección de constructores de alto-nivel para crear y manipular geometrías 3D y estructuras para
dibujar esta geometría. Este tipo de tecnología está ganando terreno en el mundo de los
laboratorios remotos para la implementación de la interfaz de usuario debido a la forma amigable
y realista en que se muestra al usuario. Ejemplo de esto se puede apreciar en el hecho de que el
Robolab haya realizado una versión en Java 3D de su laboratorio [33].
____________________________________
10
Java Development Kit (JDK), es un software que provee herramientas de desarrollo para la creación de programas
en Java.
21
CAPÍTULO 1. Introducción
Aplicaciones interpretadas
Las aplicaciones interpretadas son aplicaciones cuyos códigos son interpretados por el
servidor web. El ASP/ ASP.NET es un lenguaje de secuencia de comandos (script) del lado del
servidor desarrollado por Microsoft. Es utilizado para la programación de páginas web dinámicas
y para la comunicación con bases de datos. En [45, 46] se utiliza esta tecnología para validar el
acceso de los usuarios y comunicarse con las bases de datos del sistema.
El lenguaje PHP es un lenguaje del lado del servidor que es muy flexible y con potentes APIs
para el manejo de bases de datos, mail, comercio electrónico, etc. Varios sistemas de laboratorios
remotos y virtuales hacen uso de este lenguaje con el objetivo de autenticar usuarios, la
verificación de las entradas de los mismos, el acceso a las bases de datos y la presentación y
actualización de la interfaz de usuario [47, 17, 48, 49, 38, 50].
El Java Server Pages (JSP) es un lenguaje de secuencia de comandos del lado del servidor que
permiten manejar clases de Java, por lo que se presentan como una solución híbrida entre
JavaScript y Java con una gran flexibilidad.
En la mayoría de las aplicaciones web se hace uso de la combinación de estas herramientas
aprovechando las ventajas que cada una ofrecen. Las variantes Java son muy utilizadas por la
gran portabilidad que presenta este lenguaje.
Otras tecnologías actuales han comenzado a utilizarse ampliamente como son los Adobe Flash y
AJAX (Asynchronous JavaScript and XML). Según el estudio realizado en [55], AJAX
constituye por sus funcionalidades la mejor tecnología a utilizar en los laboratorios remotos. Esta
tecnología brinda una excelente compatibilidad con los exploradores web, seguridad,
compatibilidad con diferentes sistemas operativos y dispositivos móviles, potencia en funciones
de video y audio, eficiencia en la utilización del ancho de banda, bajos costos en el desarrollo y
una gran flexibilidad [33].
22
CAPÍTULO 1. Introducción
implementan mecanismos propios de comunicación ya sea con MATLAB o con otro software de
procesamiento de prácticas [33].
Figura 2.15 Esquema general de un sistema que utiliza MATLAB Web Server para la
comunicación entre las aplicaciones web y MATLAB a través de un servidor TCP/IP.
MATLAB Web Server, a pesar de tener la ventaja de permitir la comunicación entre el CGI
y MATLAB, tiene la desventaja de que una misma práctica sólo se puede ejecutar en una
máquina, la especificada por el fichero de configuración. Además no permite validar los
parámetros de las prácticas introducidos por el usuario antes de ser pasadas a ejecutar con
MATLAB ni permite enviar ficheros del cliente al servidor, lo que imposibilita el desarrollo de
23
CAPÍTULO 1. Introducción
prácticas con cambio de estrategias de control. El sistema RECOLAB hace uso de MATLAB
Web Server para enlazar los datos del cliente con MATLAB [51, 24].
Algunos sistemas desarrollados hacen uso de software específico para llevar a cabo el
procesamiento de las prácticas, implementando sus mecanismos propios para comunicar la
interfaz de usuario con este nivel. Por otra parte otros utilizan MATLAB o LabVIEW, pero no
usan ni MATLAB Web Server ni LabVIEW Internet Tool-kit para la comunicación, sino que
realizan su mecanismo de comunicación propio tratando de eliminar las limitaciones impuestas
por aquellos.
Para la implementación de este nivel se utilizan lenguajes como C, C++, Java, Python
entre otros. Esta variante se desarrolla generalmente para aplicaciones muy específicas y tiene el
inconveniente de ser difícil de mantener y, a la larga, su costo efectivo es mucho más alto que
implementarlo mediante un software profesional.
24
CAPÍTULO 1. Introducción
Sobre la base de este estudio se selecciona para ser implementado el Sistema de Laboratorios a
Distancia desarrollado por la UCLV, que tiene la mayoría de las facilidades reportadas en la
literatura e incluye aspectos novedosos como disponer de múltiples estaciones en las cuales se
puede ejecutar las mismas prácticas. De esta forma se puede lograr un mayor paralelismo y, por
ende, mayor velocidad de respuesta ante accesos simultáneos. Además permite la ejecución de
experimentos con cambio de estrategia de control brindando amplias posibilidades para el
desarrollo de actividades prácticas docentes y de investigación.
25
CAPÍTULO 3. El sistema de laboratorios a distancia
3.1 Introducción
El principal objetivo del SLD es permitir a los usuarios realizar prácticas como
identificación del modelo, control de nivel de tanques de forma lineal (con previa linealización),
control PID y también validar otros tipos de controladores a través de Internet.
El SLD es una aplicación desarrollada con tecnología web, que modifica su estado a partir
de la interacción con el usuario. Este sistema permite realizar prácticas de sistemas de control con
diferentes tipos de plantas. Brinda además, al usuario registrado, la posibilidad de acceder a su
directorio de prácticas donde se guardan todas las actividades realizadas. Los usuarios que tengan
mayores privilegios cuentan con interfaces para mantener actualizada la base de datos que sirve
de soporte al sistema. También pueden revisar y calificar las prácticas de los usuarios entre otras
tareas adicionales [33].
Disponibilidad: Los sistemas de enseñanza basados en Web deben de poder estar disponibles las
24 horas del día. Esto implica que el sistema debe de tener medidas de autoprotección para
garantizar este aspecto. Todos los experimentos deben de ser equipados con dispositivos
hardware y software que prevengan daños al equipo o al personal presente en el laboratorio.
Accesibilidad: Debido a que el SLR está montado sobre una plataforma Web, permite a los
usuarios acceder al sistema desde cualquier parte del mundo. Para ello solo es necesaria un
computador con conexión a Internet y un navegador Web, tales como el Internet Explorer, google
Chrome, Mozilla Firefox, etc.
26
CAPÍTULO 3. El sistema de laboratorios a distancia
Facilidad de uso: Para usar el sistema los usuarios solo deben tener los conocimientos básicos de
los sistemas de control, tales como el modelado de sistemas y el diseño de controladores. De esta
forma el usuario se centra en aprender estos temas y evita todos los problemas asociados a la
implementación y operación de los equipos usados en las prácticas.
Interfaz de usuario rápida y fácil: Una parte esencial en el desarrollo de un sistema de enseñanza
basado en Web es la interfaz de usuario. La principal función de esta parte del sistema es
conformar el pedido de las prácticas y mandarlo hacia el servidor Web. La interfaz de usuario del
SLR está basada en páginas HTML que utilizan funciones Javascript y ASP11; esto permite que
los usuarios puedan acceder al sistema de una forma rápida y sin necesidad de descargar o
instalar ningún software adicional. El sistema cuenta también con páginas de ayuda que
proporcionan información técnica a los usuarios, tal como el modelado matemático de los
dispositivos usados en las prácticas, datos del fabricante, ajuste de reguladores y guías con
prácticas a desarrollar con este sistema.
________________________________________
11
ASP/ ASP.NET es un lenguaje de secuencia de comandos (script) del lado del servidor desarrollado por Microsoft.
Es utilizado para la programación de páginas web dinámicas y para la comunicación con bases de datos. Se utiliza
esta tecnología para validar el acceso de los usuarios y comunicarse con las bases de datos del sistema.
27
CAPÍTULO 3. El sistema de laboratorios a distancia
Al SLD se puede ingresar mediante autentificación o sin esta, las 3 maneras distintas de
entrar al sistema son:
Usuario anónimo
Estudiante
Administrador
28
CAPÍTULO 3. El sistema de laboratorios a distancia
En la Tabla 3.1 se relaciona cada una de estas tres partes de la plataforma así como su
implementación.
29
CAPÍTULO 3. El sistema de laboratorios a distancia
Los usuarios interactúan con el sistema a través de Internet. Al acceder al sitio Web del
sistema se elige la práctica que se desea realizar. Allí el usuario debe llenar correctamente todos
los datos en el formulario asociado a la práctica y finalmente elegir entre ejecutarla de manera
simulada o real. El CGI12 que se encuentra en el servidor Web recibe los datos y los manda al
Servidor de Administración de Prácticas (SAP) como un nuevo pedido. El SAP verifica cual
estación de trabajo puede realizar la práctica pedida y una vez que la encuentra saca el pedido de
la lista y se lo envía al Cliente de Administración de Prácticas (CAP) instalado en la estación de
trabajo. Cuando el pedido llega al CAP se procesan los datos y se lleva a cabo la práctica
utilizando Matlab-Simulink. Una vez que la práctica ha sido procesada se trasmite el resultado en
sentido inverso al que trajo el pedido para que al final llegue hasta el usuario la respuesta de la
práctica. La respuesta es una página Web que muestra los resultados del procesamiento.
__________________________________
12
CGI es una tecnología web que permite a un cliente (navegador web) solicitar datos de un programa ejecutado en
un servidor web. CGI especifica un estándar para transferir datos entre el cliente y el programa.
30
CAPÍTULO 3. El sistema de laboratorios a distancia
31
CAPÍTULO 3. El sistema de laboratorios a distancia
datos se utilizó MySQL y las consultas se realizaron utilizando el lenguaje SQL13. Se utilizó
igualmente para algunas aplicaciones del cliente códigos programados en JavaScript, el cual es
un lenguaje interpretado orientado a las páginas web. Otra de las tecnologías utilizadas fue
AJAX, que es una técnica de desarrollo web para crear aplicaciones interactivas. Estas se
ejecutan en el cliente y mantiene comunicación con el servidor en segundo plano. El otro
software utilizado en el sistema fue MATLAB/Simulink, el cual fue usado para la programación
de las prácticas, ficheros .m y .mdl asociados a cada práctica. La versión utilizada de MATLAB
fue la 2012.
El sistema presenta como requerimientos técnicos un servidor web Apache, que puede
instalarse sobre Windows o Linux. Este servidor es muy robusto y presenta muchas
funcionalidades. Además debe instalarse PHP versión 5.2.6, tanto en su versión para Windows
como para Linux en dependencia del sistema operativo escogido para el servidor web.
Igualmente el Servidor MySQL como gestor de base de datos, puede instalarse sobre Windows o
Linux.
En el caso de MATLAB, se instala en las estaciones de trabajo, es decir, las que se
conectan directamente al proceso real. En caso de realizar prácticas con cambio de estrategia es
necesario el uso de MATLAB/Simulink para modificar la plantilla base descargada del servidor.
En la Figura 3.2 se muestra la infraestructura del SLD. Las páginas servidoras (1) solicitadas por
la aplicación cliente han sido programadas en lenguaje PHP. Mediante estas páginas se accede a
los formularios web (2) las cuales han sido desarrolladas en XHTML14.
En dependencia del tipo de formulario se accede a un servicio otro. La clase de
autentificación LDAP15 (3) (Lightweight Directory Access Protocol, Protocolo Ligero de Acceso
a Directorios) se encarga de gestionar la conexión con el servidor de dominio y la autentificación
de las credenciales a través de las funciones apropiadas para estos fines. Por su parte la clase de
sesión de usuario UserSession (4) contiene las funciones que manejan los datos personales de los
usuarios y crea una sesión en el servidor. Las clases de configuración (5) están destinadas a
introducir y extraer de archivos los parámetros de configuración.
____________________________________
13
El lenguaje de consulta estructurado o SQL (Structured Query Language) es un lenguaje declarativo de acceso a
bases de datos relacionales que permite especificar diversos tipos de operaciones en estas.
14
XHTML (eXtensible HyperText Markup Language) es básicamente HTML expresado como XML válido.
15
LDAP (Lightweight Directory Access Protocol) es un protocolo a nivel de aplicación que permite el acceso a un
servicio de directorio ordenado y distribuido para buscar diversa información en un entorno de red.
32
CAPÍTULO 3. El sistema de laboratorios a distancia
33
CAPÍTULO 3. El sistema de laboratorios a distancia
La interfaz de usuario se ha desarrollado con páginas HTML y PHP (versión 5.2.6) para el
registro de usuarios y la administración y gestión del sitio web. También se ha hecho uso de
funciones en JavaScript y de la tecnología AJAX. El sistema está formado por dos tipos de
interfaces mediante las cuales interactúan los usuarios registrados: una para los usuarios
Estudiante y otra para los usuarios Administrador. Un usuario Administrador es por defecto un
Usuario Estudiante por lo que puede pasar de un nivel de privilegio a otro con solo hacer clic en
Usar o en Administrar en la barra de navegación.
La arquitectura general de una aplicación web es similar a un sistema cliente-servidor,
aunque con algunas diferencias. Una de las principales diferencias es la distribución, donde los
aspectos fundamentales a la configuración de la aplicación se encuentran en componentes del
lado del servidor; ningún software específico, ni opciones adicionales son necesarias del lado del
cliente [54]. Además, el principal protocolo de comunicación para las aplicaciones web es HTTP,
el cual está diseñado para soportar conexiones no permanentes, haciendo robusto y sin fallos a
múltiples instancias. También limita la comunicación directa de los objetos clientes con los
objetos del servidor.
34
CAPÍTULO 3. El sistema de laboratorios a distancia
En la figura 3.3 Se muestra la página web del SLD y se mencionan sus principales zonas.
2. Fecha y hora.
3. Barra de navegación.
5. Cuerpo de la página.
Se puede acceder al sistema desde un ordenador con conexión a Internet usado cualquier
navegador para web.
A la interfaz de usuario se le ha adicionado una realimentación visual en tiempo real con
el objetivo de que el usuario pueda observar cómo se desarrolla la experiencia, lo cual hace aún
más atractiva la ejecución de las practicas. Para el streaming se utiliza el software
UnrealMediaServer.
35
CAPÍTULO 3. El sistema de laboratorios a distancia
Cuando un usuario accede al sitio Web del SLD, debe registrarse o autentificarse en el
sistema proporcionando su nombre de usuario y su clave. Esto permite tener dos tipos de
usuarios: usuarios de prácticas y usuarios administradores. Una vez dentro del sistema los
usuarios de prácticas pueden llevar a cabo varias operaciones, tales como ver las páginas de
teoría, contactar con los desarrolladores del sistema así como ver las prácticas disponibles en el
sistema. Todas estas páginas se encuentran localizadas en el servidor Web del sistema, el cual es
común para todas las prácticas.
Después de que el usuario ha seleccionado alguna práctica, aparece una página Web que
contiene el diagrama de bloques del sistema, una explicación de la simbología utilizada en la
práctica, enlaces a las páginas de teoría de la práctica y un formulario en donde el usuario puede
definir el tipo de control, modificar los parámetros del controlador o crear un controlador
definido por el usuario y un cuadro en el que se visualiza en tiempo real la maqueta mediante una
cámara instalada en el laboratorio.
En la figura 3.4 se muestra la ventana del sitio web correspondiente a la práctica con control
predefinido.
36
CAPÍTULO 3. El sistema de laboratorios a distancia
Cuando el usuario accede a alguna práctica en la que se puede definir el controlador a usar,
aparece una página de la cual el usuario debe descargar un archivo de Simulink (*.mdl) que
contiene el diagrama de bloques de la práctica correspondiente. Para realizar las prácticas el
usuario debe tener instalado el software Matlab-Simulink para modificar el archivo de Simulink
descargado.
37
CAPÍTULO 3. El sistema de laboratorios a distancia
La figura 3.5 muestra la ventana del sitio web correspondiente a la práctica con controlador
definido por el usuario
Figura 3.5 Ventana de práctica con control definido por usuario [56].
38
CAPÍTULO 3. El sistema de laboratorios a distancia
A continuación se define de manera general la función de cada una de las siete tablas que
conforman la base de datos:
sld_practices: Contiene los datos de todas prácticas realizadas por los usuarios.
sld_station: Contiene la relación de todas las estaciones de trabajo del sistema, su estado, las
prácticas que se pueden realizar en ella, etc.
sld_users: Contiene los datos de todos los usuarios registrados en el sistema, así como su login y
password.
sld_users_groups: Contiene todos los grupos de usuarios realizados para los tiempos de
laboratorio.
comments: Contiene todos los comentarios realizados por los estudiantes y profesores para cada
práctica.
39
CAPÍTULO 3. El sistema de laboratorios a distancia
Una de las tablas más importantes del sistema es sld_users debido a que almacena la
información de todos los usuarios registrados. El campo name almacena el nombre del usuario y
el campo login el nombre de usuario en el sistema, mientras que la contraseña de cada usuario es
almacenado en el campo password. En esta tabla se almacena tanto la fecha (date) como la hora
(time) de acceso al sistema. Hay que destacar que en esta tabla se verifica que no se repita ni el
nombre (name) ni el nombre de usuario (login).
Otra tabla de gran importancia en el sistema es sld_practices_data. Esta tabla almacena
todos los datos de las prácticas que se desarrollan en el sistema. El campo pname almacena el
nombre abreviado de la práctica, mientras que en pcname se guarda el nombre completo de la
práctica, este será el que luego se visualizará en la página de prácticas del sistema. En el capo
type se define el tipo de práctica, si es simulada o real.
En la tabla sld_station se relacionan todas las estaciones disponibles en el sistema, además
de las prácticas que se pueden realizar en cada una de estas estaciones. Es una tabla fundamental
para poder desarrollar la propiedad de paralelismo del sistema. Además con los datos de esta
40
CAPÍTULO 3. El sistema de laboratorios a distancia
práctica se desarrolla la aplicación que muestra el tiempo de espera para cada práctica. El campo
state representa el estado de la estación apagada (off), en espera (wait) u ocupada (busy).
Al momento de ejecutar la práctica real con control predefinido desde la página web, el
servidor ordena ejecutar el archivo “m_CT_T1_PIDFr.m” ubicado en la ruta
“D:\www\SLDStation\practicas\CT_T1_PIDFr” en la estación de trabajo.
41
CAPÍTULO 3. El sistema de laboratorios a distancia
1 close_system(gcs,0);
2
3 vars = who;
4 if length(vars) == 5,
5 if P >= 0 && P <= 10 && I >= 0 && I <= 10 && D >= 0 && D <= 10 && O >= 1
6 && O <= 10 && Fc > 0 && Fc < 5,
7 bdclose('all');
8 %Presumo no hay error
9 varerror = '0';
10
11 % Datos específicos de CT_T1_PIDr
12 id = 'CT_T1_PIDFr';
13 PracticeFile = 'CT_T1_PIDFr';
14 Graph1File = 'CT_T1_PID_nivelr.jpg';
16 Plot1 = 'plot(simout.time, simout.signals.values(:,2:4))';
17 Graph2File = 'CT_T1_PID_mandor.jpg';
18 Plot2 = 'plot(simout.time, simout.signals.values(:,1))';
19
20 % Inicializar la cadena de retorno.
21 retstr = char('');
22
23 % Inicialización de la estructura de datos
24 p = what;
25 mldir = p.path; % Path completo donde está el mdl y el html plantilla
26 outdir = [p.path '\out'];% Path donde queda html y sus graficas
27 htmldir = [p.path '\html'];
28
29 pf = PracticeFile;
30
31 % Pone los parámetros en el mdl
32 eval(pf);
33 set_param([pf '/Controler'],'P',num2str(P));
34 set_param([pf '/Controler'],'I',num2str(I));
35 set_param([pf '/Controler'],'D',num2str(D));
36 set_param([pf '/Filter'],'O',num2str(O));
37 set_param([pf '/Filter'],'Fc',num2str(Fc));
38
39
40 %Graba las variables del directorio
41 save globales;
42
43 %Creo el codigo
44 try
45 make_rtw;
46 catch
47 varerror = 'Error creando el código en Real Time Windows Target';
48 return;
49 end
50
51 %Simulink cambia a modo externo
52 set_param(gcs,'SimulationMode','external');
53
54 %MatLab carga la aplicación en tiempo real y la conecta con los
55 bloques de simulink
56 set_param(gcs,'SimulationCommand','connect');
57
58 %Inicializa la simulación en tiempo real
59 set_param(gcs,'SimulationCommand','start');
60
61 else
62 varerror= 'ERROR 1: Hay variables fuera de rango.';
63 end
64 else
65 varerror= 'ERROR 2: Las variables no se han introducido correctamente';
66 end
42
CAPÍTULO 3. El sistema de laboratorios a distancia
Al ejecutarse el archivo, en la línea 1 de código, cierra todo archivo de extensión “.m” que
pudiese estar abierto, resultante de prácticas anteriores ya finalizadas. En la línea 4 se verifica que
se haya ingresado en la página cada uno de los valores que se requieren para el controlador, los
cuales son: Parte proporcional del filtro (P), parte integral (I), parte derivativa (D), orden del
filtro (O) y frecuencia de corte (Fc). Si falta alguna de estas variables o se ingresa un carácter
incorrecto, se enviara devuelta el siguiente mensaje “ERROR: Las variables no se han
introducido correctamente.”
Luego en la línea 5, se condiciona a que estos valores estén dentro de valores razonables
(P, I, D, entre 0 y 10; O, mayor o igual a 1 y menor o igual a 10; Fc, mayor a 0 y menor que 5).
En el caso de haber un valor fuera de rango, se mostrara un mensaje “ERROR: Hay variables
fuera de rango.”
En la línea 7, con el comando bdclose(‘all’) se cierra cualquier ventana de simulink que
pudiese estar abierta excepto la que se está ejecutando. Luego se asume que no hay error
asignando varerror = ‘0’ en la línea 9. En las siguientes líneas de código se especifican los datos
del fichero CT_T1_PIDr como lo son la identificación de la práctica (id = CT_T1_PIDFr) el cual
debe ser exactamente el mismo nombre con el que se identifica en la base de datos, también se
identifica el nombre del archivo que contiene la practica el cual posee el mismo nombre del id.
Luego, se asigna el nombre del archivo en formato .jpg (CT_T1_PID_nivelr.jpg) con el que se
exportaran los gráficos de nivel de los tanques. Después, en plot1 (línea 16) se grafica lo que
contendrá la imagen CT_T1_PID_nivelr.jpg. En esta se grafica tiempo y señal de salida
correspondientes a todas las filas desde la columna 2 hasta la 4 de la matriz de datos. En las
líneas de código 17 y 18 se repite el mismo proceso esta vez para el grafico del mando de nombre
CT_T1_PID_mandor.jpg para el que se grafica tiempo y señal de salida del mando
correspondiente a todas las filas de la columna 1 de la matriz de datos.
En la línea 21 se inicializa la cadena de retorno “retstr” y luego la estructura de datos. En
las siguientes líneas se asigna la ruta o path en las que se encuentra el archivo .mdl y html
plantilla, ruta donde quedara el html resultante con los graficos y la ruta del fichero html.
En la línea de código 38 se asigna el nombre “pf” al fichero .mdl que se debe ejecutar
para luego ejecutarlo con el comando “eval(pf)”. Dentro del mdl ejecutado (Figura 3.8) Se
asignan los valores de “P”, “I”, “D”, “O” y “Fc” del bloque controler (líneas de código 33 a 37).
Para asignar estos valores en el archivo .mdl, primero se deben transformar a cadena con el
43
CAPÍTULO 3. El sistema de laboratorios a distancia
comando “num2str” ya que desde el sistema son enviados como número. Finalmente se guarda
las variables con el comando “save globales”
Figura 3.8 Archivo simulink de práctica en modo real con controlador predefinido.
Visto de manera más gráfica, los pasos anteriores desde la línea de codigo 32 hasta la 41
es equivalente a abrir el archivo .mdl, dar doble clic al bloque controler, modificar sus parámetros
y dar clic a OK como se muestra en la figura 3.9
44
CAPÍTULO 3. El sistema de laboratorios a distancia
Una vez cambiados los parámetros intenta compilar el .mdl con el comando try, si no
logra compilar devuelve un mensaje “Error creando el código en Real Time Windows Target”. Si
compila el código, pasa al siguiente comando (línea 52) con el cual cambia a MATLAB a modo
externo, luego en la línea 56 carga la aplicación en tiempo real y la conecta con los bloques de
simulink. Finalmente en la línea 59 inicializa la simulación en tiempo real y termina de ejecutarse
el archivo .mdl.
El archivo .mdl está configurado para que al momento de terminar, cree una variable de
salida llamada “simout” que es enviada al workspace de MATLAB y ejecute el archivo
“salida.m”. Esta configuración se puede ver dentro del archivo .mdl dando clic a File, luego
Model Properties. Ahí se abrirá una ventana, en esta, dar clic en la pestaña Callbacks y luego en
la lista lateral izquierda dar clic en StopFcn*. Aquí muestra lo que hace cuando termina de
ejecutarse el programa como se ve en la figura 3.10
45
CAPÍTULO 3. El sistema de laboratorios a distancia
1 function retstr=salida(simout)
2 % Practica de control de Tanques
3
4 % Datos especificos de CT_T1_PID
5 id = 'CT_T1_PIDFr';
6 PracticeFile = 'CT_T1_PIDFr';
7 Graph1File = 'CT_T1_PID_nivelr.jpg';
8 Plot1 = 'plot(simout.time, simout.signals.values(:,2:4))';
9 Graph2File = 'CT_T1_PID_mandor.jpg';
10 Plot2 = 'plot(simout.time, simout.signals.values(:,1))';
11
12 % Inicilizar la cadena de retorno.
13 retstr = char('');
14
15 % Inicializacion de la estructura de datos
16 p = what;
17 mldir = p.path; % Path completo donde esta el mdl y el html plantilla
18 outdir = [p.path '\out']; % Path donde quedara el html
19 htmldir = [p.path '\html'];
20
21 pf = PracticeFile;
22
23 % Creando las figuras
24 cd(outdir);
25
26 h = figure('visible','off');
27
28 % Ajuste del tamaño de la figura
29 p = get(gcf, 'position');
30 p(3) = 380;
31 p(4) = 310;
32 set(gcf, 'Position', p, 'PaperPosition', [.25 .25 4 3]);
33
34 %Creando figura 1
35 eval(Plot1);
36 grid on;
37 legend('Nivel deseado en T1','Nivel real en T1','Nivel filtrado en
38 T1','Location','SouthEast');
39 GraphFile = sprintf(Graph1File);
40 print(h, '-djpeg', '-r0', GraphFile);
41
42 %Creando figura 2
43 eval(Plot2);
44 grid on;
45 GraphFile = sprintf(Graph2File);
46 print(h, '-djpeg', '-r0', GraphFile);
47
48 close(h);
49
50 % Creando el fichero de respuesta.
51 vec = [simout.time simout.signals.values(:,2:4) simout.signals.values(:,1)];
52 str = ['save ' PracticeFile '.mat vec -ascii -tabs'];
53 eval(str);
54
55 cd(mldir);
56
57 varerror = '0';
58 clc
46
CAPÍTULO 3. El sistema de laboratorios a distancia
Este archivo recibe las variables de simout, define los datos específicos de igual manera que en el
archivo .mdl, luego en la línea 13 vuelve a inicializar la cadena de retorno, inicializa la estructura
de datos y asigna el nombre “pf” a PracticeFile. En la línea 24 cambia a MATLAB al directorio
salida. Luego se crea una variable “h” que será un puntero a la figura invisible, entonces lo que se
haga sobre la variable h se hará a la figura que no se mostrará. En las siguientes líneas de código
se ajusta el tamaño de la figura al requerido para la página web. En la línea 35 se evalúa la cadena
plot1 (correspondiente a la señal de nivel del tanque 1), en las siguientes líneas se activa la grilla
para el gráfico, se asigna una leyenda para las señales y su posición, se abre un fichero gráfico y
se guarda la imagen en formato jpeg. De igual manera se crea otra imagen esta vez evaluando
plot2 (correspondiente a la señal de mando). Luego, en la línea 48 cierra la figura invisible para
que no quede “virtualmente abierta”. Para devolver los datos al sistema en la línea 51 se crea un
fichero de respuesta en el cual contiene los vectores con las señales de tiempo nivel y mando.
Después se guardan estos datos con extensión “.mat”. En la línea 55 vuelve MATLAB al
directorio en el que estaba originalmente y se envía varerror = ‘0’ lo que quiere decir que no hubo
errores en la ejecución. Cuando recibe esta señal, el servidor busca en la carpeta
“D:\www\SLDStation\practicas\CT_T1_PIDFr\out” la plantilla salida.html creada con las
imágenes y datos guardados resultantes de los códigos de programación. Finalmente Esta
plantilla es mostrada al usuario en la página web del SLD.
La ejecución de prácticas simuladas es similar a las prácticas reales, pero más sencillo.
Este solo requiere un archivo de extensión “.m” y otro de extensión “.mdl” ya que solo se simula
en MATLAB sin necesidad de esperar a que termine la ejecución en la maqueta de tanques
interactuantes. Al momento de ejecutar la práctica simulada con control predefinido desde la
página web, el servidor ordena ejecutar el archivo “m_CT_T1_PIDFs.m” ubicado en la ruta
“D:\www\SLDStation\practicas\CT_T1_PIDFs” en el servidor para optimizar recursos. Las
estaciones de trabajo se encargan de realizar solo las prácticas reales.
47
CAPÍTULO 3. El sistema de laboratorios a distancia
1 close_system(gcs,0);
2 vars = who;
3 if length(vars) == 5,
4 if P >= 0 && P <= 10 && I >= 0 && I <= 10 && D >= 0 && D <= 10 && O >= 1
5 && O <= 10 && Fc > 0 && Fc < 5,
6
7 bdclose('all');
8
9 % Datos específicos de CT_T1_PIDs
10 id = 'CT_T1_PIDFs';
11 PracticeFile = 'CT_T1_PIDFs';
12 Graph1File = 'CT_T1_PID_nivels.jpg';
13 Plot1 = 'plot(simout.time, simout.signals.values(:,2:4))';
14 Graph2File = 'CT_T1_PID_mandos.jpg';
15 Plot2 = 'plot(simout.time, simout.signals.values(:,1))';
16
17 % Inicializar la cadena de retorno.
18 retstr = char('');
19
20 % Inicialización de la estructura de datos
21 p = what;
22 mldir = p.path; % Path completo donde está el mdl y el html plantilla
23 outdir = [p.path '\out']; % Path donde quedara el html resultante con sus graficas
24 htmldir = [p.path '\html'];
25
26 pf = PracticeFile;
27 eval(pf);
28 set_param([pf '/Controler'],'P',num2str(P));
29 set_param([pf '/Controler'],'I',num2str(I));
30 set_param([pf '/Controler'],'D',num2str(D));
31 set_param([pf '/Filter'],'O',num2str(O));
32 set_param([pf '/Filter'],'Fc',num2str(Fc));
33 sim(pf);
34
35 % Creando las figuras
36 cd(outdir);
37 h = figure('visible','off');
38
39 % Ajuste del tamaño de la figura
40 p = get(gcf, 'position');
41 p(3) = 380;
42 p(4) = 310;
43 set(gcf, 'Position', p, 'PaperPosition', [.25 .25 4 3]);
44
45 %Creando figura 1
46 eval(Plot1);
47 grid on;
48 legend('Nivel deseado en T1','Nivel simulado en T1','Location','SouthEast');
49 GraphFile = sprintf(Graph1File);
50 print(h, '-djpeg', '-r0', GraphFile);
51
52 %Creando figura 2
53 eval(Plot2);
54 grid on;
55 GraphFile = sprintf(Graph2File);
56 print(h, '-djpeg', '-r0', GraphFile);
57
58 close(h);
59
60 % Creando el fichero de respuesta.
61 vec = [simout.time simout.signals.values(:,2:3) simout.signals.values(:,1)];
62 str = ['save ' PracticeFile ' vec -ascii -tabs'];
63 eval(str);
64
65 cd(mldir);
66 varerror = '0';
67 clc
68 else
69 varerror= 'Hay variables fuera de rango.';
70 end
71 else
72 varerror= 'Las variables no se han introducido correctamente.';
73 end
48
CAPÍTULO 3. El sistema de laboratorios a distancia
Al ejecutarse el archivo, en la línea 1 de código, cierra todo archivo de extensión “.m” que
pudiese estar abierto, resultante de prácticas anteriores ya finalizadas. En la línea 3 se verifica que
se haya ingresado en la página cada uno de los valores que se requieren para el controlador, los
cuales son: Parte proporcional del filtro (P), parte integral (I), parte derivativa (D), orden del
filtro (O) y frecuencia de corte (Fc). Si falta alguna de estas variables o se ingresa un carácter
incorrecto, se enviara devuelta el siguiente mensaje “ERROR: Las variables no se han
introducido correctamente.”
Luego en la línea 4, se condiciona a que estos valores estén dentro de valores razonables
(P, I, D, entre 0 y 10; O, mayor o igual a 1 y menor o igual a 10; Fc, mayor a 0 y menor que 5).
En el caso de haber un valor fuera de rango, se mostrara un mensaje “ERROR: Hay variables
fuera de rango.”
En la línea 7, con el comando bdclose(‘all’) se cierra cualquier ventana de simulink que
pudiese estar abierta excepto la que se está ejecutando. En las siguientes líneas de código se
especifican los datos del fichero CT_T1_PIDS como lo son la identificación de la práctica (id =
CT_T1_PIDFS) el cual debe ser exactamente el mismo nombre con el que se identifica en la base
de datos, también se identifica el nombre del archivo que contiene la practica el cual posee el
mismo nombre del id. Luego, se asigna el nombre del archivo en formato .jpg
(CT_T1_PID_nivelS.jpg) con el que se exportaran los gráficos de nivel de los tanques. Después,
en plot1 (línea 13) se grafica lo que contendrá la imagen CT_T1_PID_nivels.jpg. En esta se
grafica tiempo y señal de salida correspondientes a todas las filas desde la columna 2 hasta la 4
de la matriz de datos. En las líneas de código 14 y 15 se repite el mismo proceso esta vez para el
grafico del mando de nombre CT_T1_PID_mandos.jpg para el que se grafica tiempo y señal de
salida del mando correspondiente a todas las filas de la columna 1 de la matriz de datos.
En la línea 18 se inicializa la cadena de retorno “retstr” y luego la estructura de datos. En
las siguientes líneas se asigna la ruta o path en las que se encuentra el archivo .mdl y html
plantilla, ruta donde quedara el html resultante con los graficos y la ruta del fichero html.
En la línea de código 26 se asigna el nombre “pf” al fichero .mdl que se debe ejecutar
para luego ejecutarlo con el comando “eval(pf)”. Dentro del mdl ejecutado se asignan los valores
de “P”, “I”, “D”, “O” y “Fc” del bloque controler (líneas de código 28 a 32). Para asignar estos
valores en el archivo .mdl, primero se deben transformar a cadena con el comando “num2str” ya
que desde el sistema son enviados como número. En la línea 33 se usa el comando sim(pf) para
iniciar la simulación.
49
CAPÍTULO 3. El sistema de laboratorios a distancia
En la línea 36 cambia a MATLAB al directorio salida. Luego se crea una variable “h”
que será un puntero a la figura invisible, entonces lo que se haga sobre la variable h se hará a la
figura que no se mostrará. En las siguientes líneas de código se ajusta el tamaño de la figura al
requerido para la página web. Para crear la primera figura, en la línea 46 se evalúa la cadena
plot1 (correspondiente a la señal de nivel del tanque 1), en las siguientes líneas se activa la grilla
para el gráfico, se asigna una leyenda para las señales y su posición, se abre un fichero gráfico y
se guarda la imagen en formato jpeg. De igual manera se crea otra imagen esta vez evaluando
plot2 (correspondiente a la señal de mando). Luego, en la línea 58 cierra la figura invisible para
que no quede “virtualmente abierta”. Para devolver los datos al sistema en la línea 61 se crea un
fichero de respuesta en el cual contiene los vectores con las señales de tiempo nivel y mando.
Después se guardan estos datos. En la línea 65 vuelve MATLAB al directorio en el que estaba
originalmente y se envía varerror = ‘0’ lo que quiere decir que no hubo errores en la ejecución.
Cuando recibe esta señal, el servidor busca en la carpeta
“D:\www\SLDStation\practicas\CT_T1_PIDFs\out” la plantilla salida.html creada con las
imágenes y datos guardados resultantes de los códigos de programación. Finalmente Esta
plantilla es mostrada al usuario en la página web del SLD.
actualidad, existen versiones más recientes que ofrecen mayor seguridad y mejoras. Es por esto
que se han actualizado estas versiones utilizando XAMPP versión 1.6.8 el que cuenta con un
servidor Apache v2.2.9, MySQL v5.0.67 y uno de los cambios más significativos es que se pasó
a PHP v5.2.6.
51
CAPÍTULO 3. El sistema de laboratorios a distancia
con otras, las vulnerabilidades de alto riesgo, con el fin de poner en peligro el host o sus
usuarios.
Nivel de Riesgo - Medio: vulnerabilidades de riesgo medio son serias amenazas a la
seguridad que permitirían a un usuario de confianza, pero sin privilegios, asumir el
control completo de un host o permitirían a un usuario que no se confía a interrumpir el
servicio o acceder a información sensible.
Nivel de Riesgo - Alto: Una vulnerabilidad ha sido designada como de alto riesgo si se
permitiría a un usuario que no se ha dado ninguna cantidad de confianza, convertirse en
un usuario susceptible de tomar el control del host. Otras vulnerabilidades que afectan
gravemente a la seguridad global y la facilidad de uso de la red también pueden ser
designadas como de alto riesgo.
52
CAPÍTULO 3. El sistema de laboratorios a distancia
Para este sistema de laboratorios a distancia, se utiliza XAMPP versión 1.6.8 el cual contiene:
Apache v2.2.9
MySQL v5.0.67
PHP v5.2.6
A continuación se describe paso a paso las instrucciones para montar el servidor web HTTP y
base de datos para el sistema de laboratorio a distancia de la Universidad del Bío-Bío.
Elegir la ruta de instalación, por defecto es c:\xampp\ (Figura 3.13), luego dar clic en next.
53
CAPÍTULO 3. El sistema de laboratorios a distancia
2.- En la ventana siguiente (Ver Figura 3.14) marcar los check box “Install Apache as service” e
“install MySQL as service” los cuales permiten que al momento de encender el computador, se
inicie automáticamente el servidor y base de datos. Los check box que ya están marcados por
defecto no se modifican, como se muestra en la imagen. Finalmente dar clic a install.
3.- Pegar la carpeta “www” en el directorio deseado, en este caso la carpeta se deja en la unidad
de disco local (D:) en la ruta D:\
4.- Una vez instalado ejecutar el “XAMPP Control Panel” en la ventana de panel de control de
XAMPP dar click en el botón start a en Apache y MySql como se muestra en la Figura 3.15
54
CAPÍTULO 3. El sistema de laboratorios a distancia
5.- En la barra de dirección del navegador de internet (Chrome, Explorer, Mozilla Firefox, opera,
etc.) escribir “localhost” y presionar la tecla Enter, aquí aparecerá una ventana donde se
selecciona el idioma para luego mostrar la página de la figura 3.16
55
CAPÍTULO 3. El sistema de laboratorios a distancia
6.- En la barra de opciones lateral izquierda, dar clic en phpMyAdmin la cual nos muestra en
pantalla el administrador de base de datos (también se puede acceder escribiendo
“localhost/phpmyadmin” en la barra de dirección). En el cuadro Crear nueva base de datos
escribir “web36db2” y dar clic en Crear como se muestra en la figura 3.17
Aquí se crea la base de datos vacía, ahora para importar las tablas de datos dar clic en la
pestaña Importar, luego en seleccionar archivo. En este se busca la ruta donde se encuentra el
archivo webdb36db2.sql y finalmente dar clic en continuar. Ahora se encuentra la base de datos
creada con todas las tablas necesarias para el SLD.
Ahora, para evitar que cualquier usuario intervenga en la base de datos se debe asignar un
password a esta. Para ello, en la pestaña privilegios de la base de datos creada, dar clic en editar
privilegios en el usuario root del servidor localhost como se observa en la figura 3.18.
56
CAPÍTULO 3. El sistema de laboratorios a distancia
Para los siguientes cambios se recomienda descargar algún editor de texto como por ejemplo
notepad++ el cual es un software libre. Este editor posee características que facilitan la
programación como:
57
CAPÍTULO 3. El sistema de laboratorios a distancia
8.- La ruta por defecto donde se dejan los archivos del servidor web HTTP a montar es
“C:\xampp\htdocs”. Por razones de orden, simplicidad y respaldo frente a posibles fallas del
sistema operativo del computador en el cual está montado el servidor, la ruta para los archivos del
servidor se cambia a “D:\www”. Para que apache reconozca la nueva ruta de los archivos, se
debe editar el archivo “C:\xampp\apache\conf\httpd.conf”. Una vez dentro del archivo, ir a la
línea 176 y reemplazar DocumentRoot "C:/xampp/htdocs" por DocumentRoot "D:/www".
58
CAPÍTULO 3. El sistema de laboratorios a distancia
9.- Para permitir la comunicación entre la página web y MATLAB, se debe añadir el toolbox
webserver. Para ello, se debe ejecutar MATLAB, ir a la pestaña file dar clic a set path... y añadir
la carpeta “webserver”, luego dar clic a save.
10.- Detener y volver a iniciar Apache y MySql desde el panel de control de XAMPP.
11.- Finalmente, ejecutar activar.bat ubicado en “D:\www”, ejecutar del botón de inicio: Live
Server Configurator (ULiveSrcConfig) y Media Server Configurator (UnrealMediaServer). En
UnrealMediaServer, en el ícono “livetanks”, dar clic derecho y pinchar en “Start HLS
broadcasting”.
Ahora ya se puede acceder a la página del sistema de laboratorio a distancia desde el
servidor escribiendo “localhost” en la barra de dirección del navegador o a la base de datos
escribiendo “localhost/phpmyadmin”. Desde cualquier computador se puede acceder al sistema
mediante la dirección http://www.sldubb.ubiobio.cl/.
Una vez instalado el SLD, cada vez que se reinicie o encienda el computador en donde se
encuentra el servidor o estación de trabajo es necesario volver a ejecutar el archivo activar.bat
ubicado en “D:\www” y ejecutar del botón de inicio: Live Server Configurator (ULiveSrcConfig)
y Media Server Configurator (UnrealMediaServer). En UnrealMediaServer, en el ícono
“livetanks”, dar clic derecho y pinchar en “Start HLS broadcasting”. Además, se sugiere verificar
que se haya iniciado Apache y MySql del panel de control de XAMPP.
A continuación se muestran los pasos para agregar prácticas a la página web, detallando los
cambios necesarios tanto en la base de datos como en el archivo de extensión “.php”
correspondiente a la práctica.
Para una mejor comprensión de las instrucciones se ejemplificará como se añade la práctica
de control de nivel en tanque 1 de forma real con control PID.
59
CAPÍTULO 3. El sistema de laboratorios a distancia
2.- Luego desde un navegador web (Chrome, mozilla Firefox, etc.) accedemos a la base de datos
ingresando localhost/phpmyadmin en la barra de dirección. Aparecerá un cuadro en el cual se
debe ingresar el nombre de usuario y contraseña que se haya asignado en el momento de la
instalación. Luego de ingresar estos datos correctamente accederemos a la base de datos, donde
seleccionaremos web36db2 de la lista de base de datos del menú lateral izquierdo como lo
muestra la Figura 3.21
60
CAPÍTULO 3. El sistema de laboratorios a distancia
3.- Dentro de esta base de datos, se muestran todas las tablas que contiene. La tabla que contiene
los datos de las prácticas que ejecuta el servido es sld_practices_data. Para ver su contenido se
debe dar clic en el botón Examinar como se muestra en la Figura 3.22
4.- Ahora se muestran las prácticas que contiene el SLD, para ingresar una nueva práctica, dar
clic en la pestaña Insertar como se aprecia en la Figura 3.23
61
CAPÍTULO 3. El sistema de laboratorios a distancia
5.- Luego de dar clic en Insertar, se muestra una tabla la que se debe llenar con los datos de la
práctica que se desea ingresar. A continuación en la Figura 3.24 se muestra como ejemplo los
datos ingresados para añadir la práctica “Control de nivel de un tanque con PID” simulada.
Figura 3.25 Datos ingresados para añadir práctica “Control de nivel de un tanque con PID”
Simulada.
62
CAPÍTULO 3. El sistema de laboratorios a distancia
Luego, dar clic a continuar y ya se habrá ingresado la práctica. Ahora para añadir la misma
practica pero de forma Real se debe repetir los pasos 4 y 5. Finalmente dar clic en continuar.
La tabla con los datos para la práctica real queda como se muestra en la Figura 3.25
63
CAPÍTULO 3. El sistema de laboratorios a distancia
Figura 3.26 Datos ingresados para añadir práctica “Control de nivel de un tanque con PID”
Real.
Con estos pasos se logra agregar una práctica al sistema, la cual se muestra en la página
web del SLD como en la Figura 3.26, En donde se puede ver los campos “categoría” y “pcname”
ingresados en la base de datos.
64
CAPÍTULO 3. El sistema de laboratorios a distancia
Para agregar textos, imágenes o botones en la página que se muestra al hacer clic en cada
práctica, se debe modificar el archivo de extensión “.php” correspondiente a la práctica en la ruta
“D:\www\user\practices”. Para el caso de ejemplo el archivo correspondiente a la práctica
Control de nivel de un tanque con PID es “m_CT_T1_PIDFr.php” ubicado en la ruta
mencionada. Para cada práctica debe existir un archivo .php que posee la estructura de la página a
mostrar. Esta estructura es muy similar para todas las prácticas, solo cambian los textos,
imágenes y botones.
En este capitulo se ha explicado de manera clara todos los aspectos del SLD instalado en la
Universidad del Bío-Bío, comenzando con una descripción de sus características generales, para
luego profundizar con las descripciones de su arquitectura, estructura de la base de datos y
estructura de funciones de MATLAB. Además, se deja el detalle completo de los pasos a seguir
para la instalación, puesta en marcha y adhesión de prácticas al SLD.
Este capitulo es fundamental para el administrador que desee agregar nuevas estaciones de
trabajo, practicas o realizar modificaciones de ellas, ya que permite entender el funcionamiento
del sistema y a la vez puede ser usado como manual para llevar a cabo dichas acciones.
65
CAPÍTULO 4. Aplicación del SLD
4.1 Introducción
66
CAPÍTULO 4. Aplicación del SLD
67
CAPÍTULO 4. Aplicación del SLD
Cada proyecto de control comienza con el modelado de la planta, de esta manera toda la
información recopilada nos permite entender el proceso en sí. Inicialmente se considera el
modelo correspondiente a uno y dos tanques acoplados, con una constante que relaciona el flujo
de agua de entrada con respecto a la tensión de control indicada por software. Esta contante de
tiempo del circuito eléctrico (tarjeta de adquisición de datos) es significativamente más pequeña
que la constante de tiempo de los estanques, por lo tanto, los circuitos eléctricos que accionan las
bombas pueden ser tratados como una simple ganancia de amplificación en el modelo. La Figura
4.3 presenta el sistema físico de dos tanques en cascada. Para lograr esta configuración se debe
dejar abiertas las válvulas MVB, MV1 y MV2; el resto cerradas, el proceso a modelar sería el
siguiente
Donde h1(t) y h2(t) son el nivel en cada tanque [cm], u(t) el voltaje aplicado a la bomba [v], η es
la constante de proporcionalidad de la misma [cm^3/min.v], A, a1 y a2 el área de la sección
transversal de los tanques y las tuberías respectivamente [cm^2] y g la aceleración de la gravedad
[cm/s^2].
68
CAPÍTULO 4. Aplicación del SLD
Modelo No lineal
De acuerdo con el diagrama presentado en la Figura 4.3, las ecuaciones del modelo no
lineal son las siguientes:
Para estanque 1:
( )
( ) ( )
( )
( ) √ ( )
( )
( ) √ ( ) ( )
Para estanque 2:
( )
( ) ( )
( )
√ ( ) √ ( )
√ ( ) √ ( ) ( )
69
CAPÍTULO 4. Aplicación del SLD
Las ecuaciones (1) y (2) constituyen un modelo no lineal de este sistema. En ellas k1 y k2
son las constantes de proporcionalidad entre el flujo y la raíz cuadrada de la presión que está
asociada al factor de fricción, diámetro y largo de la tubería, el tipo de fluido y la aceleración de
la gravedad:
√ √
Modelo Lineal
( ) ( )
( ) ( )
( √ ) √
( )
70
CAPÍTULO 4. Aplicación del SLD
Poniendo en términos de variaciones las ecuaciones (1) y (2) y utilizando la ecuación (5) según
corresponda, se obtiene:
̇( ) () ( ) ( )
̇ ( ) ( ) ( )
( ) ( ) ( )
( )( ) ( )
( ) ⁄
( )
( )
( ) ( ) ( )
( )( ) ( )
( )
( )
( )
71
CAPÍTULO 4. Aplicación del SLD
A continuación se muestra la respuesta temporal del sistema en lazo abierto (Figura 4.5),
ante una entrada tipo paso escalón a 3v en t=0, luego a 3.3v en t=1000s y finalmente a 2.7v en
t=2000s. Todas las mediciones se han hecho con un período de muestreo de 0.1s. A partir de
estas gráficas pueden obtenerse las ganancias estáticas K1 y K2 y las constantes de tiempo τ1 y
τ2.
Matlab proporciona diversos métodos de análisis para los sistemas lineales en lo que se
refiere a la dinámica (herramientas como lugar geométrico de las raíces, análisis de frecuencia -
diagramas Bode, diagramas de Nyquist, identificación de polos y ceros, etc.) Con la información
que Matlab proporciona acerca de la dinámica del sistema, los controladores pueden ser
diseñados. Las siguientes secciones explican cómo funciona el controlador PID, y cómo se puede
sintonizar, para finalmente describir como se utilizan en la maqueta de tanques interactuantes.
Control de la Planta
Existen numerosos algoritmos de control, sin embargo, el control PID es el más popular
debido a su simplicidad. Un esquema general de un sistema de circuito cerrado de control simple
se presenta en la Figura 4.6.
Suponiendo que la planta está representada por la función de transferencia basada en el modelo
lineal escrita como:
( )
( ) (10)
( )
73
CAPÍTULO 4. Aplicación del SLD
( ) ( )
( ) ( ) ( )
(11)
Controlador PID
()
() ( ) ∫ ( ) (12)
() ( ) () (13)
( ) ( ) ( ) (14)
74
CAPÍTULO 4. Aplicación del SLD
( )
( ) ( ) (15)
( )
Cada bloque en un controlador PID (P, I y D) juega un rol importante. Sin embargo para
algunas aplicaciones, la parte integral o derivativa tiene que ser excluida para entregar resultados
satisfactorios.
La parte derivativa ha sido introducida para hacer la respuesta más rápida, sin embargo
ésta es muy sensible al ruido y puede causar una reacción muy inestable en el sistema, por
lo tanto muy a menudo es omitida en el diseño del controlador.
La reacción inestable de la parte derivativa puede ser reducida mediante el filtrado en la
señal de salida, pero también provocaría una respuesta más lenta en el controlador,
indeterminado el sentido de uso de esta acción. Un filtrado apropiado puede ayudar a
reducir ruido de alta frecuencia sin degradar la calidad del sistema de control en bandas de
baja frecuencia.
75
CAPÍTULO 4. Aplicación del SLD
Figura 4.7 Esquema para el control de nivel de un tanque con regulador PID y filtro.
En esta práctica se Introducen los parámetros del regulador PID con anti-windup que se desea
ensayar así como los del filtro para la medición del nivel. La estructura implementada para el
regulador es de la forma suma de ganancias proporcional (P), integral (I) y derivativa (D) con
anti-windup tipo clamping. El filtro es un Butterworth de orden (O) y frecuencia de corte (Fc). El
control y filtrado se realizan a una frecuencia de muestreo de 10 Hz.
La secuencia experimental consiste en aplicar 5v a la bomba durante 20s con lo cual el
tanque alcanza un nivel de 12cm que es el punto de operación para 3v. A los 30s se activa el
controlador con los parámetros enviados y a los 40s la referencia (nivel deseado) pasa de 12cm a
18cm. De esta manera el sistema funciona en el mismo punto de operación identificado (ver 4.4
identificación experimental del sistema).
La opción Simular permite ver la evolución del nivel con el regulador ajustado sobre un
modelo "simulado" del sistema. La opción Real implementa el regulador ajustado sobre el
sistema real.
76
CAPÍTULO 4. Aplicación del SLD
Figura 4.8 Esquema para control de nivel de un tanque con cambio de regulador[53].
En esta práctica se puede introducir cualquier tipo de regulador (físicamente realizable) para su
implementación sobre el sistema de tanques real. Para ello pulsar Descargar para obtener el
modelo de Simulink que, una vez modificado, se ejecutará sobre el sistema real. Los cambios que
se pueden hacer en este modelo son los siguientes:
Modificar los subsistemas "Desired water level & trigger" y "Controller" sin alterar su nombre ni
sus conexiones.
Ajustar el tiempo de ejecución del modelo que no podrá exceder de 120 segundos.
Una vez guardado el modelo subirlo a la plataforma pulsando en Examinar. Con la opción
Simular se obtendrá la evolución del nivel con el regulador implementado sobre un modelo
"simulado" del sistema de tanques. Si los resultados son aceptables pulsar Real para ver el
comportamiento del nivel real. La duración del ensayo con la opción Simular es instantánea; con
la opción Real dependerá del tiempo de ejecución ajustado en el modelo de Simulink.
77
CAPÍTULO 4. Aplicación del SLD
78
Conclusiones
_____________________________________________________________________________________________
CONCLUSIONES
En este trabajo de título se realizó un análisis de las diversas arquitecturas de hardware y software
empleadas en los laboratorios remotos reportados en la literatura especializada, para llevar a cabo
el objetivo esencial consistente en implementar el software necesario para integrar la maqueta de
tanques interactuantes al sistema de laboratorios remotos de modo que se permita la realización
de prácticas de control de nivel en los tanques que posee la maqueta. Además se detalla la
implementación de los softwares necesarios, tanto en Matlab como en Simulink, para realizar
experiencias didácticas relativas al control de nivel en tanques interactuantes a través del SLD.
Se deja documentada la arquitectura del SLD implementado, la estructura de su base de
datos y estructura de las funciones utilizadas en Matlab y el procedimiento para montar el
servidor y estaciones de trabajo que conforman el SLD. También, se deja detallada las
aplicaciones del SLD donde se modela la planta a utilizar y se describen las prácticas disponibles
en el sistema.
Conclusiones
Una de las características más destacables es que con el SLD será posible que la totalidad
de los alumnos utilicen y se familiaricen con el sistema y la planta a controlar lo cual antes no era
posible por el escaso tiempo de laboratorio en función de la cantidad de alumnos. La maqueta
estará disponible las 24 horas del día.
79
CAPÍTULO 4. Aplicación del SLD
Trabajo a futuro
En cuanto a la planta de tanques interactuantes se podría reemplazar las válvulas manuales por
electroválvulas on-off, para realizar prácticas de control más complejas, teniendo mayor control
sobre la variable controlada gracias a la mayor cantidad de variables manipuladas.
80
Bibliografía.
BIBLIOGRAFÍA
[3] C. Gravier, J. Fayolle, B. Bayard, M. Ates, y L. J., "State of the Art About Remote
Laboratories Paradigms - Foundations of Ongoing Mutations," International Journal of
Online Engineering (iJOE), vol. 4(1), pp. 19-25, 2008.
81
Bibliografía.
[12] S. Dormido, "Control Learning: Present and Future," Annual Reviews in Control, vol. 28,
pp. 115-136, 2004.
[14] F. Anwar, E. Lindsay, y R. Sarukkalige, "Key factors for determining the suitability of
converting a fluid-mechanics laboratory to remote-access mode," Australasian Journal of
Engineering Education, vol. 17, pp. 11-18, 2011.
[18] Mario Fernández, Ernesto Rubio, Proyecto “Macrolaboratorio de formación conjunta para
sistemas de control automático”, Proyecto FDE ING 2030, 2016.
82
Bibliografía.
[19] Ernesto Rubio, Iván Santana, Jaime Rohten, Paulina LLarena, Proyecto “Sistema de
prácticas remotas de control automático en tiempo real para la formación de estudiantes de
Ingeniería Civil en Automatización”, Proyecto interno UBB IenDU, 2016.
[27] A. Rojko, D. Hercog, y K. Jezernik, "Power Engineering and Motion Control Web
Laboratory: Design, Implementation, and Evaluation of Mechatronics Course," Industrial
Electronics, IEEE Transactions on, vol. 57, pp. 3343-3354, 2010.
[33] Santana Ching, Iván. "Herramientas Para La Docencia En Automática Orientadas Hacia La
Metodología Ects." Universidad Politécnica de Madrid, 2012.
[34] Sartorius Castellanos, Aldo R., Luis Hernández Santana, Rafael Aracil Santonja, Ernesto
Rubio Rodríguez and Iván Santana Ching. "Virtual and Remote Laboratory for Robot
Manipulator Control Study." International Journal of Engineering Education, special issue
on Robotic in Engineering Education 22, no. 4 (2006): 10.
84
Bibliografía.
[37] P. Bisták, "Matlab and Java Based Virtual and Remote Laboratories for Control
Engineering," en 17th Mediterranean Conference on Control & Automation, Makedonia
Palace, Thessaloniki, Greece, 2009, pp. 1439-1444.
[45] Z. Aydogmus y O. Aydogmus, "A Web-Based Remote Access Laboratory Using SCADA,"
Education, IEEE Transactions on, vol. 52, pp. 126-132, 2009.
85
Bibliografía.
[47] X. Liu, H. Liu, Z. Bao, B. Ju, y Z. Wang, "A web-based self-testing system with some
features of Web 2.0: Design and primary implementation," Computers & Education, vol.
55, pp. 265-275, 2010.
[51] R. Puerto, L. M. Jiménez, y O. Reinoso, "Remote control laboratory via Internet using
Matlab and Simulink," Computer Applications in Engineering Education, vol. 18, pp. 694–
702, 2010.
[54] D. Fensel, F. M. Facca, E. Simperl, y I. Toma, "Semantic Web Services," ed: Springer
Berlin Heidelberg, 2011, pp. 87-104.
86
Bibliografía.
[56] Ernesto Rubio, Iván Santana, Vladimir Esparza, Jaime Rohten, "Remote Laboratories for
Control Education: Experience at the Universidad del Bío-Bío" IEEE ICA/ACCA, ISSN
0719-5567, VOL. 22, Pages 285-290, 2016.
87
Anexos.
ANEXOS
Executive Report
CONFIDENTIAL INFORMATION
The following report contains company confidential information. Do not distribute, email,
fax, or transfer via any electronic mechanism unless it has been approved by the recipient
company's security policy. All copies and backups of this document should be saved on
protected storage at all times. Do not share any of the information contained within this
report with anyone unless they are authorized to view the information. Violating any of the
previous instructions is grounds for termination.
88
Anexos.
89
Anexos.
90
Anexos.
91
Anexos.
NetBIOS
Mobile Mobile devices, software, and
configuration.
92
Anexos.
93
Anexos.
User Virtualization
Wireless
94
Anexos.
TOP 20 VULNERABILITIES
Top 20 Vulnerabilities
95
Anexos.
96
Anexos.
97
Anexos.
98
Anexos.
99
Anexos.
100
Anexos.
BOTTOM 20 VULNERABILITIES
Bottom 20 Vulnerabilities
101
Anexos.
102
Anexos.
103
Anexos.
104
Anexos.
105
Anexos.
106
Anexos.
Executive Report
CONFIDENTIAL INFORMATION
The following report contains company confidential information. Do not distribute, email,
fax, or transfer via any electronic mechanism unless it has been approved by the recipient
company's security policy. All copies and backups of this document should be saved on
protected storage at all times. Do not share any of the information contained within this
report with anyone unless they are authorized to view the information. Violating any of the
previous instructions is grounds for termination.
107
Anexos.
108
Anexos.
109
Anexos.
110
Anexos.
NetBIOS
Mobile Mobile devices, software, and
configuration.
111
Anexos.
112
Anexos.
User Virtualization
Wireless
113
Anexos.
TOP 20 VULNERABILITIES
Top 20 Vulnerabilities
114
Anexos.
115
Anexos.
116
Anexos.
117
Anexos.
118
Anexos.
119
Anexos.
BOTTOM 20 VULNERABILITIES
Bottom 20 Vulnerabilities
120
Anexos.
121
Anexos.
122
Anexos.
123
Anexos.
124
Anexos.
125
Anexos.
GLOSSARY
DoS Attack: A Denial of Service (DoS) attack is a remote attack against a servers
TCP/IP stack or services. DoS attacks can saturate a servers bandwidth, saturate
all available connections for a particular service, or even crash a server.
Exploit: A script or program that takes advantage of vulnerabilities in services or
programs to allow an attacker to gain unauthorized or elevated system access.
Host: A node on a network. Usually refers to a computer or device on a network
which both initiates and accepts network connections.
IP Address: The 32-bit address defined by the Internet Protocol in STD 5, RFC
791. It is usually represented in dotted decimal notation. Any device connected to
the Internet that used TCP/IP is assigned an IP Address. An IP Address can be
likened to a home address in that no two are alike.
Netbios: Network Basic Input Output System. The standard interface to networks
on IBM PC and compatible networks.
Ping: A program used to test reachability of destination nodes by sending them an
ICMP echo request and waiting for a reply.
Port: A port in the network sense is the pathway that a computer uses to transmit
and receive data. As an example, Web Servers typically listen for requests on port
80.
Registry: The internal system configuration that a user can customize to alter his
computing environment on the Microsoft Windows Platform. The registry is
organized in a hierarchical structure of subtrees and their respective keys,
subkeys, and values that apply to those keys and subkeys
Risk Level - Info: Retina may provide additional information about a host that
does not necessarily represent a security threat, but may be useful to the
administrator in order to better assess the security of the host, or the network at
large. These alerts are displayed with the list of discovered vulnerabilities, and are
indicated by a green 'I' icon.
Risk Level - Low: A low-risk vulnerability is typically one that only presents a
threat in specific and unlikely circumstances. Such a vulnerability may provide an
126
Anexos.
127