scieee AI-readable full text Open interactive document viewer

Evaluación automática para problemas de control

Sánchez Cazorla, Carlos

Abstract

Esta tesis presenta una plataforma de apoyo al profesor para poder ofrecer un sistema de recogida, almacenamiento y evaluación automática de problemas personalizados en asignaturas científico-técnicas. La posibilidad de introducir evaluación automática en un curso tiene un gran potencial desde un punto de vista didáctico. Goodle GMS proporciona una herramienta abierta (sandbox) con el que un profesor puede llevar a cabo desde simples cuestionarios personalizados, hasta la evaluación de complejos problemas de diseño. Aunque el desarrollo de ejercicios con enunciados y evaluadores automáticos conlleva un gran trabajo por parte del profesor, tanto en formación como en desarrollo, la ventaja de poder reutilizar estos ejercicios para una gran cantidad de alumnos y a lo largo de diferentes cursos, es en general suficiemente para compensarlo. Prueba de esto es que el número de profesores, asignaturas y en resumidas cuentas, ejercicios almacenados en la base de datos de Goodle GMS crece año tras año, habiéndose instalado ya otros dos servidores independientes en la Universidad de Loyola y la Universidad de Lossane, en Francia. Entre los resultados más señalables merece destacar el desarrollo de una plataforma de evaluación Goodle GMS basada en modelo de caja negra; la implementación de un sistema de generación de enunciados personalizados; la aplicación de la evaluación automática en cursos de control de sistemas no lineales a través de la herramienta Easy Java Simulations; el desarrollo de una interfaz gráfica que abarca todo el ciclo de trabajo del profesor, desde la definición del problema básico hasta la generación de los ejercicios personalizados para cada alumno; y la aplicación de esta plataforma en cursos reales con numerosos alumnos y donde era necesario realizar una recogida sistemática de datos.

Full text

Evaluaci´on autom´atica para problemas de control por Carlos S´anchez Cazorla Ingeniero de Telecomunicaci´on por la Escuela Superior de Ingenieros de la Universidad de Sevilla Presentada en la Escuela T´ecnica Superior de Ingenier´ıa de la Universidad de Sevilla para la obtenci´on del Grado de Doctor Ingeniero de Telecomunicaci´on Sevilla, Marzo de 2015 ii Agradecimientos Ante todo, agradecer a mis padres su apoyo y cari˜no incondicional durante todos estos a˜nos. Sin ellos nada de esto ser´ıa posible. En especial a ti, Pap´a, por todo lo que me has ense˜nado. A mi hermano, por todo lo que hemos compartido. A Fabio, no s´olo por haber dirigido esta tesis, sino por la confianza depositada en m´ı, por ser un amigo y por haberme guiado en numerosas aventuras. A mi tutor, David, le debo su enorme dedicaci´on, trabajo y esfuerzo durante esta investigaci´on. Ha sido el motor que ha impulsado esta tesis en los momentos de flaqueza. Estoy igualmente agradecido a Sebasti´an Dormido, Gonzalo Farias y Luis de la Torre por su colaboraci´on en diversas publicaciones. Finalmente, a Lety, por estar siempre a mi lado y ayudarme en los momentos que m´as lo necesitaba. Gracias a todos, Sevilla, Marzo de 2015 Carlos S´anchez Cazorla iii iv ´ Indice general 1. Introducci´on 3 1.1. Sistemas de gesti´on de aprendizaje . . . . . . . . . . . . . . . . . . . . . . 3 1.2. Laboratorios virtuales y remotos . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3. Evaluaci´on autom´atica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4. GoodleGMS.................................. 8 1.5. Fundamentos de control autom´atico . . . . . . . . . . . . . . . . . . . . . . 8 1.6. Resultados principales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.7. EsquemadelaTesis.............................. 12 1.8. Publicaciones.................................. 13 2. Evaluaci´on autom´atica v´ıa web 15 2.1. Introducci´on .................................. 15 2.2. Paradigmas de evaluaci´on autom´atica . . . . . . . . . . . . . . . . . . . . . 15 2.2.1. Coincidencia exacta en el resultado . . . . . . . . . . . . . . . . . . 18 2.2.2. Evaluaci´on basada en el rendimiento . . . . . . . . . . . . . . . . . 19 2.2.3. Ejercicios de dise˜no de algoritmos . . . . . . . . . . . . . . . . . . . 22 2.3. Metodolog´ıa .................................. 23 2.3.1. Ventajas del sistema de evaluaci´on . . . . . . . . . . . . . . . . . . 24 2.3.2. Evaluaci´on competitiva . . . . . . . . . . . . . . . . . . . . . . . . 26 2.3.3. Protecci´on frente al fraude . . . . . . . . . . . . . . . . . . . . . . 26 2.4. Arquitectura del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.4.1. Interfaz del alumno. . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.4.2. Interfaz del profesor. . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.5. Directrices para la elaboraci´on de una secuencia de evaluaci´on autom´atica . . 31 2.5.1. Coincidencia exacta en el resultado . . . . . . . . . . . . . . . . . . 31 2.5.2. Evaluaci´on basada en el rendimiento . . . . . . . . . . . . . . . . . 32 v vi ´ INDICE GENERAL 2.5.3. Dise˜no de algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.6. Casospr´acticos................................. 34 2.6.1. Caso pr´actico 1: Fundamentos de inform´atica. . . . . . . . . . . . . 34 2.6.2. Caso pr´actico 2: Teor´ıa de sistemas . . . . . . . . . . . . . . . . . . 37 2.7. Encuestas de satisfacci´on de usuarios . . . . . . . . . . . . . . . . . . . . . 40 3. Tecnolog´ıa para dotar a los laboratorios virtuales y remotos de funcionalidades de evaluaci´on autom´atica 43 3.1. Laboratorios virtuales y remotos con EJS . . . . . . . . . . . . . . . . . . . 43 3.2. Evaluaci´on autom´atica con Goodle GMS . . . . . . . . . . . . . . . . . . . 45 3.3. El elemento de evaluaci´on autom´atica: EEA . . . . . . . . . . . . . . . . . . 46 3.3.1. C´omousarelEEA........................... 46 3.3.2. Fundamentos de la evaluaci´on autom´atica . . . . . . . . . . . . . . 48 3.4. Aplicaci´on de servomotor en laboratorio virtual . . . . . . . . . . . . . . . . 50 3.4.1. Evaluaci´on educacional . . . . . . . . . . . . . . . . . . . . . . . . 52 4. Interfaz de sistemas no lineales 57 4.1. Descripci´on de la interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.2. Conexi´on entre ISNL y Goodle GMS . . . . . . . . . . . . . . . . . . . . . . 58 4.3. EstructuradeISNL............................... 58 4.4. Dise˜no de la interfaz ISNL . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.5. Evaluaci´ondelalumno............................. 62 4.5.1. Teor´ıa de estabilidad de Lyapunov . . . . . . . . . . . . . . . . . . . 63 4.5.2. Definiciones de estabilidad . . . . . . . . . . . . . . . . . . . . . . . 63 4.5.3. M´etodo directo de Lyapunov . . . . . . . . . . . . . . . . . . . . . 63 4.5.4. Cuencas de atracci´on mediante Lyapunov y LaSalle . . . . . . . . . . 64 4.5.5. Evaluaci´on en ISNL . . . . . . . . . . . . . . . . . . . . . . . . . . 65 5. Evaluaci´on y generaci´on de datos de forma autom´atica para ejercicios de qu´ımica anal´ıtica 69 5.1. Parteexperimental............................... 69 5.1.1. M´etodos y materiales . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.1.2. Dise˜no del evaluador . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.2. Resultados ................................... 76 5.2.1. Ejercicio1 ............................... 77 ´ INDICE GENERAL vii 5.2.2. Ejercicio2 ............................... 78 5.2.3. Ejercicio3 ............................... 79 5.2.4. An´alisis tras la evaluaci´on . . . . . . . . . . . . . . . . . . . . . . . 81 5.3. Material suplementario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 5.3.1. Ejercicio1 ............................... 82 5.3.2. Ejercicio2 ............................... 87 5.3.3. Ejercicio3 ............................... 95 6. Interfaz web para la generaci´on de problemas de control 101 6.1. Descripci´on del problema de control . . . . . . . . . . . . . . . . . . . . . . 101 6.2. Generaci´on de enunciados individualizados . . . . . . . . . . . . . . . . . . 103 6.3. Arquitectura de la plataforma . . . . . . . . . . . . . . . . . . . . . . . . . 106 6.3.1. Idiomas................................. 108 6.3.2. Generaci´on del evaluador . . . . . . . . . . . . . . . . . . . . . . . 109 6.4. Experiencias en el aula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 7. Conclusiones 115 7.1. L´ıneas futuras de investigaci´on . . . . . . . . . . . . . . . . . . . . . . . . . 115 viii ´ INDICE GENERAL Glosario AJAX Asynchronous JavaScript And XML API Application Programming Interface CMS Content Management System EJS Easy Java Simulations EEA Elemento de evaluaci´on autom´atica FAQ Frequently Asked Questions GUI Graphic User Interface HTML HyperText Markup Language HTTP Hypertext Transfer Protocol IT Information Technologies IAE Integral Absolute Error ISE Integral Square Error ISNL Interfaz de Sistemas No Lineales JSON JavaScript Object Notation LVyR Laboratorios virtuales y remotos LCMS Learning Content Management System LMS Learning Management System MVC Modelo-vista-controlador PHP PHP Hypertext Pre-processor PMRs Preguntas de m´ultiple respuesta SAC Sistema algebraico computacional TICs Tecnolog´ıas de la Cnformaci´on y Comunicaci´on XML Extensible Markup Language 1 8CAP´ ITULO 1. INTRODUCCI ´ ON 1.4. Goodle GMS Teniendo en cuenta las limitaciones de los sistemas actuales, se ha desarrollado un sistema de e-learning denominado Goodle GMS espec´ıfico para ingenier´ıa, que permite automatizar la recogida y evaluaci´on de ejercicios pr´acticos de diferentes disciplinas con la complejidad t´ıpica que la formaci´on t´ecnica requiere y con la posibilidad de personalizarlos para cada alumno. El uso de la herramienta presentada permite, entre otras cosas, incrementar la periodicidad de los ex´amenes y pruebas, ya que en la Universidad, la masificaci´on y la escasez de recursos evaluadores (profesores) suelen ser los principales obst´aculos para aumentar dicha frecuencia. Del mismo modo, tambi´en permite establecer un criterio ´unico y homog´eneo a la hora de evaluar al alumnado que se puede mantener invariable con el paso de los a˜nos y los cambios de profesorado. En el marco de esta tesis se expone que la plataforma Goodle GMS no s´olo facilita el trabajo de los docentes permiti´endoles centrarse en tareas m´as creativas, sino tambi´en puede mejorar significativamente el aprendizaje del alumno mediante la presentaci´on de ejercicios sucesivos con informes inmediatos sobre su rendimiento. Si el grupo de alumnos es numeroso, este tipo de tareas se hace inasequible a un solo profesor sin la ayuda de estos medios. Aunque Goodle GMS est´a dise˜nado como una plataforma gen´erica, inicialmente se aplic´o de forma espec´ıfica en asignaturas de Teor´ıa de Sistemas y Control Autom´atico. Posteriormente se extendi´o a asignaturas de programaci´on en C, Matlab y Easy Java Simulations (EJS), ampliando dr´asticamente el abanico de potenciales usuarios. 1.5. Fundamentos de control autom´atico Un sistema de control autom´atico se define como un conjunto de dispositivos capaces de ajustar el funcionamiento de un sistema manipulable para unos determinados fines; por ejemplo, mantener la temperatura de una caldera, el rumbo de un barco o la velocidad de un autom´ovil en un valor establecido. En este caso, las decisiones las toma un dispositivo denominado controlador, como por ejemplo un sistema de climatizaci´on o el control de los motores de un coche h´ıbrido. El control autom´atico se ha convertido en una pieza fundamental para el avance de la ingenier´ıa y la ciencia. La mayor parte de los sistemas modernos (rocesos de fabricaci´on, veh´ıculos, operaciones industriales, sistemas rob´oticos, etc. ) no podr´ıan funcionar sin la ayuda de sofisticados sistemas de control. En general, los sistemas de control se pueden aplicar a cualquier tipo de operaci´on que comprenda una actuaci´on a partir de unos datos recogidos por un sensor. Un ejemplo sencillo es el de un lector de CD o DVD. Al introducir un CD en un lector, se espera que la informaci´on contenida en ´el pueda ser extra´ıda para ser tratada posteriormente por un computador o un equipo de m´usica. Para poder acceder a dicha informaci´on es necesario gestionar la tensi´on de un motor el´ectrico para situar una lente con mucha rapidez y precisi´on en una posici´on determinada. Obviamente, ser´ıa imposible para un operador humano realizar esta operaci´on con tantas prestaciones, por lo que esto no ser´ıa posible sin un control autom´atico. Obs´ervese adem´as que en este caso es muy importante que el sistema de control sea capaz de hacer su labor lo m´as r´apidamente posible. As´ı disminuir´a el tiempo de espera y el producto tendr´a mejores prestaciones. 1.5. FUNDAMENTOS DE CONTROL AUTOM´ ATICO 9 Un concepto clave en el control (ya sea manual o autom´atico) es el de realimentaci´on, que consiste en el uso de la medida de la variable a controlar para la toma de decisiones. En el caso del control manual de la velocidad del coche, el conocimiento de la velocidad instant´anea del veh´ıculo se utiliza para decidir si se debe pisar m´as el acelerador (cuando la velocidad del veh´ıculo sea inferior a la deseada) o lo contrario. Obs´ervese c´omo para realizar la comparaci´on entre la velocidad deseada y la real se necesita una medida de esta ´ultima, la cual se obtiene a partir del veloc´ımetro del coche. Mediante la realimentaci´on se pueden conseguir objetivos que pueden parecer asombrosos o misteriosos para los no iniciados en la teor´ıa del control. Por ejemplo, en 1934 H. Black aplic´o la realimentaci´on al amplificador con lo que consigui´o unas extraordinarias caracter´ısticas de linealidad necesarias para poder conectar varios amplificadores en serie en largas conexiones de telefon´ıa sin que se produjeran distorsiones. La linealidad del amplificador realimentado era muy superior a la que se pod´ıa conseguir con la tecnolog´ıa existente en esa ´epoca en amplificadores sin realimentar. La realimentaci´on introdujo mejoras significativas con un coste muy bajo. Obs´ervese el porqu´e del t´ermino realimentaci´on: la orden que se le da a un actuador provoca cambios en el sistema y, por tanto, en la variable que se mide. Con el sensor se miden estos cambios y, tras un procesamiento de esta informaci´on, se decide cu´al es la siguiente orden que dar al actuador. Se puede entender este proceso como que la informaci´on se ha vuelto a alimentar, se ha realimentado, en el sistema. Se habla entonces de control en bucle cerrado en contraposici´on a los sistemas sin realimentaci´on, a los que se les denomina en bucle abierto. Un sistema en bucle cerrado (manual o autom´atico) consta siempre de alg´un tipo de sensor; en el ejemplo del control manual de velocidad de un veh´ıculo el sensor ser´ıa, entre otros, el sentido de la vista, mientras que en el control autom´atico de velocidad el veh´ıculo necesita de un dispositivo para medir la velocidad, un veloc´ımetro. La ingenier´ıa de control estudia como dise˜nar los sistemas de control autom´atico. Como puede imaginar el lector, el dise˜no de ´estos abarca un problema muy amplio, y a menudo, interdisciplinar: describir los objetivos de control; modelar matem´aticamente el sistema para definir las variables manipulables, las perturbaciones, las variables internas y las salidas de inter´es; uso de instrumentaci´on para medir las variables de inter´es del sistema; etc. La din´amica de muchos sistemas, ya sean mec´anicos, el´ectricos, t´ermicos, econ´omicos, biol´ogicos, etc., se describe en t´erminos de ecuaciones diferenciales. Dichas ecuaciones diferenciales se obtienen a partir de leyes f´ısicas que gobiernan un sistema determinado (las leyes de Newton para sistemas mec´anicos o las leyes de Kirchhoff para sistemas el´ectricos). En la teor´ıa de control autom´atico a menudo se utiliza el concepto de funci´on de transferencia para definir la relaci´on entre las entradas y salidas de un sistema y se describe mediante ecuaciones diferenciales lineales invariantes en el tiempo. As´ı, la funci´on de transferencia se define como el cociente entre la transformada de Laplace de la salida (funci´on de respuesa) y la transformada de Laplace de la entrada (funci´on de excitaci´on) bajo la suposici´on de que todas las condiciones iniciales son cero. A partir del concepto de funci´on de transferencia, es posible representar la din´amica de un sistema mediante ecuaciones algebraicas en s. Si la potencia m´as alta de sen el denominador de la funci´on de transferencia es igual a n, el sistema se denomina sistema de orden n-´esimo. Los sistemas de control actuales son, por lo general, no lineales. Sin embargo, si es posible 10 CAP´ ITULO 1. INTRODUCCI ´ ON aproximarlos mediante modelos matem´aticos lineales, podemos usar uno o m´as m´etodos de dise˜no bien desarrollados, como por ejemplo el lugar de las ra´ıces, la respuesta en frecuencia, la aproximaci´on en el espacio de estados o el basado en compensadores proporcional-integralderivativo. Por ´ultimo, es importante se˜nalar que un problema de dise˜no de controladores por lo general no admite una soluci´on ´unica, y adem´as es necesario realizar una serie de simulaciones para comprobar si una soluci´on es o no apropiada. Esto hace a estos tipos de problemas particularmente complicados de evaluar por parte de un profesor. Sin embargo, es muy importante que los alumnos resuelvan diferentes problemas para desarrollar esta competencia, por lo que la evaluaci´on autom´atica es particularmente apropiada para ser aplicada a esta disciplina. 1.6. RESULTADOS PRINCIPALES 11 1.6. Resultados principales Esta tesis presenta una plataforma de apoyo al profesor para poder ofrecer un sistema de recogida, almacenamiento y evaluaci´on autom´atica de problemas personalizados en asignaturas cient´ıfico-t´ecnicas. Esta plataforma adem´as ha sido probada y utilizada durante varios cursos en asignaturas de control autom´atico y qu´ımica anal´ıtica de diversas universidades. La evaluaci´on autom´atica constituye un campo de investigaci´on desafiante que ha recibido mucha atenci´on estos ´ultimos a˜nos y ha sido objeto de estudio por la comunidad acad´emica de muchas maneras. Los principales resultados obtenidos en esta tesis son los siguientes: 1. Desarrollo de una nueva plataforma e-learning Goodle GMS basado en ejecuci´on de c´odigo: La premisa en la que se basa esta plataforma es que los alumnos deben presentar la soluci´on a los ejercicios pr´acticos siguiendo una cierta sintaxis de un lenguaje de programaci´on (Matlab entre otras posibilidades). El c´odigo del estudiante se ejecuta en el servidor junto con un c´odigo dise˜nado por el instructor para evaluar el trabajo del estudiante. 2. Sistema de generaci´on de enunciados personalizados integrado en Goodle GMS: La implementaci´on de un nuevo m´odulo en Goodle GMS permite que un profesor puede generar enunciados individualizados de forma aleatoria. 3. Desarrollo de una plataforma de evaluaci´on basada en modelo de caja negra: Esta plataforma incluye, entre otras, funcionalidades tales como competitividad entre alumnos, personalizaci´on de enunciados y generaci´on de informes. 4. Extensi´on de los anteriores elementos a laboratorios virtuales y remotos: La integraci´on entre Goodle GMS y la herramienta Easy Java Simulations permite que profesores sin conocimientos de programaci´on puedan realizar simulaciones interactivas en Java y evaluar a sus alumnos de forma autom´atica. 5. Aplicaci´on de la evaluaci´on autom´atica en cursos de control de sistemas no lineales: Como aplicaci´on espec´ıfica a control autom´atica se ha desarrollado un m´odulo de EJS para sistemas no lineales. Su objetivo es la resoluci´on de problemas de control no lineal, empleando una herramienta gr´afica que permita el an´alisis y visualizaci´on de diferentes controladores para sistemas de hasta orden cuatro. A partir de diferentes par´ametros intr´ınsicos del alumno (por ejemplo su DNI), este m´odulo permite al profesor la creaci´on de ejercicios personalizados. De esta forma, el alumno puede experimentar con diferentes controladores y visualizar la din´amica del sistema completo. 6. Aplicaci´on en una asignatura de an´alisis instrumental: El empleo de la metodolog´ıa de Goodle GMS se ha aplicado en el dise˜no de ejercicios de an´alisis instrumental de qu´ımica anal´ıtica que pueden ser evaluados y personalizados para cada alumno de forma autom´atica. 7. Desarrollo de una interfaz gr´afica para el profesor: Esta interfaz abarca todo el ciclo de trabajo del profesor, desde la definici´on del problema b´asico hasta la generaci´on de los ejercicios personalizados para cada alumno. Esta herramienta permite generar de 12 CAP´ ITULO 1. INTRODUCCI ´ ON forma simple, y sin necesidad de tener conocimientos de programaci´on, ejercicios individualizados auto-evaluables garantizando la existencia de soluci´on y la homogeneidad en la dificultad y procedimientos de resoluci´on de los mismos. 8. Puesta a prueba en cursos reales: Utilizaci´on de esta plataforma en cursos reales con numerosos alumnos y donde era necesario realizar una recogida sistem´atica de datos. Elaboraci´on y an´alisis de cuestionarios de satisfacci´on de alumnos y profesores. 1.7. Esquema de la Tesis El resto de cap´ıtulos de esta tesis se encuentra organizada de la siguiente forma: Cap´ıtulo 2 En este cap´ıtulo se describe la plataforma Goodle GMS de evaluaci´on desarrollada en 2009 a partir de una primera versi´on de 2007. Se presentan sus principales propiedades, a la vez que la complejidad asociada al problema de recogida, almacenaje y evaluaci´on autom´atica de ejercicios de alumnos. Cap´ıtulo 3 Este cap´ıtulo se centra en el elemento de evaluaci´on autom´atica (EEA), que dota de funcionalidades de calificaci´on autom´atica a aplicaciones preexistentes creadas mediante Easy Java Simulations (EJS). Esto permite realizar tareas de calificaci´on autom´atica en laboratorios virtuales remotos. EJS es una herramienta de software libre desarrollada en Java, dise˜nada especialmente para la creaci´on de simulaciones por computador en tiempo discreto dotadas de interfaces gr´aficas interactivas. Cap´ıtulo 4 El cap´ıtulo presenta una intefaz de sistemas no lineales (ISNL) para la resoluci´on de problemas de control no lineal, empleando el la plataforma Goodle GMS y el elemento de evaluaci´on autom´atica presentado en los cap´ıtulos anteriores. Cap´ıtulo 5 Este cap´ıtulo aborda el problema de dise˜nar ejercicios de an´alisis instrumental de qu´ımica anal´ıtica que pueden ser evaluados y personalizados para cada alumno de forma autom´atica. La problem´atica estriba en la dificultad de parametrizar de forma personalizada un problema definido a partir de datos experimentales, ya que no se puede emplear la t´ecnica descrita en capitulos anteriores donde se relacionan par´ametros con funciones sencillas a partir de un dato caracter´ıstico del alumno. 1.8. PUBLICACIONES 13 Cap´ıtulo 6 El cap´ıtulo presenta una herramienta web para la generaci´on de ejercicios individualizados auto-evaluables garantizando la existencia de soluci´on y la homogeneidad en la dificultad y procedimientos de resoluci´on de los mismos. Mediante esta herramienta se evita que el profesor tenga conocimientos de programaci´on para el dise˜no de ejercicios. Cap´ıtulo 7 El ´ultimo cap´ıtulo hace un resumen de los resultados obtenidos y propone posibles l´ıneas de investigaci´on futuras. 1.8. Publicaciones Los resultados presentados en esta tesis han dado lugar a una serie de publicaciones en revistas especializadas y en congresos internacionales. Los detalles de las publicaciones que tienen una relaci´on directa con este trabajo se detallan a continuaci´on: G. Farias, F. Gomez-Estern, L. De la Torre, D. Mu˜noz de la Pe˜na, C. S´anchez, S. Dormido. Tecnolog´ıa para dotar a los Laboratorios Virtuales y Remotos de funcionalidades de Evaluaci´on Autom´atica. Jornadas de Autom´atica, 2012. G. Farias, F. Gomez-Estern, L. De la Torre, D. Mu˜noz de la Pe˜na, C. S´anchez, S. Dormido. Enhancing Virtual and Remote Labs to Perform Automatic Evaluation. 9th IFAC Symposium Advances in Control Education. 2012 C. S´anchez, F. G´omez-Estern, D. Mu˜noz de la Pe˜na. A virtual lab with automatic assessment for nonlinear controller design exercises. 9th IFAC Symposium Advances in Control Education. 2012. D. Mu˜noz de la Pe˜na, F. G´omez-Estern, S. Dormido. A new Internet tool for automatic evaluation in Control, Systems and Programming, IEEE Computers & Education Vol. 59, Pag. 535-550, 2012. Arsenio Mu˜noz de la Pe˜na, David Mu˜noz de la Pe˜na, Mar´ıa P. Godoy-Caballeroa, David Gonz´alez-G´omezc, Fabio G´omez-Esternd and Carlos S´anchez. Automatic evaluation and data generation for analytical chemistry instrumental analysis exercises. Qu´ımica Nova.2014 G. Farias, D. Mu˜noz de la Pe˜na, F. G´omez-Estern, L. De la Torre, S. Dormido, C. S´anchez. Adding automatic evaluation to remote experimentation. Interactive Learning Environments.2014 C. S´anchez, F. G´omez-Estern, D. Mu˜noz de la Pe˜na. Plataforma para la formaci´on pr´actica individualizada en fundamentos de control autom´atico. Jornadas de Autom´atica, 2014. 14 CAP´ ITULO 1. INTRODUCCI ´ ON S´anchez Cazorla, C., G´omez-Estern F., Mu˜noz de la Pe˜na, D. Plataforma para la formaci´on pr´actica individualizada en Fundamentos de Control Autom´atico. Revista Iberoamericana de Autom´atica e Inform´atica industrial (Enviado a RIAI) Cap´ıtulo 2 Evaluaci´on autom´atica v´ıa web 2.1. Introducci´on En este cap´ıtulo presentamos la nueva herramienta web de evaluaci´on desarrollada en 2009 a partir de una primera versi´on de 2007. Vamos a hablar de la metodolog´ıa empleada en la evaluaci´on autom´atica, los diferentes paradigmas de evaluaci´on y la arquitectura de la aplicaci´on propuesta. Adem´as se presentar´an los resultados de dos casos de estudio de la Escuela T´ecnica Superior de Ingenier´ıa de la Universidad de Sevilla. Los contenidos de este cap´ıtulo fueron publicados en (Mu˜noz de la Pe˜na, D. y Gomez-Estern, F., 2009), donde se describe el uso de la evaluaci´on autom´atica v´ıa web la asignaturas Teor´ıa de Sistemas y Fundamentos de Inform´atica de la titulaci´on de Ingeniero Industrial, y se ofrece una descripci´on detallada del motor interno del sistema. 2.2. Paradigmas de evaluaci´on autom´atica La mayor´ıa de las plataformas de educaci´on virtual incluyen herramientas de evaluaci´on autom´atica. La herramienta m´as com´un es una prueba de selecci´on m´ultiple, donde el estudiante debe responder a algunas preguntas eligiendo una o m´as opciones de una lista de posibles respuestas. Existen diferentes variaciones en torno a este esquema. Por ejemplo, las preguntas se pueden elegir al azar de una base de datos, de manera que ning´un par de ex´amenes es id´entico, o incluso adaptarse a las ´ultimas respuestas del estudiante como se propone en M. Barla,M. Bielikov´a,A. B. Ezzeddinne, T. Kram´ar, M. Simko,O. Voz´ar (2010). Adem´as, los sistemas de puntuaci´on tambi´en ofrecen un cierto grado de personalizaci´on. Algunas herramientas de evaluaci´on disponibles est´an dotadas de cierta capacidad aritm´etica b´asica, con el fin de comprobar que la soluci´on num´erica proporcionada por el estudiante es precisa. La plataforma que se presenta aqu´ı se basa en un m´etodo de evaluaci´on totalmente diferente, que se inspira en la arquitectura en la figura 2.1. La idea clave es que los estudiantes deben presentar la soluci´on a los ejercicios pr´acticos siguiendo una cierta sintaxis de un lenguaje de programaci´on (MATLAB entre otras posibilidades). El c´odigo del estudiante se ejecuta en el servidor junto con un c´odigo dise˜nado por el instructor para evaluar el trabajo del estudiante. Denominaremos a este marco de trabajo evaluaci´on basada en modelo de caja negra. 15 16 CAP´ ITULO 2. EVALUACI ´ ON AUTOM´ ATICA V´ IA WEB Figura 2.1: Funcionamiento del sistema de evaluaci´on autom´atica El c´odigo de evaluaci´on se genera por el profesor satisfaciendo algunas restricciones de dise˜no, en particular, el orden en el que el c´odigo de los alumnos y su c´odigo son ejecutados/compilados, y la manera en la que la nota del alumno y los comentarios tienen que ser almacenados para que el servidor pueda recuperarlos y grabarlos en la base de datos. Estas restricciones de dise˜no dejan libertad al profesor para dise˜nar ejercicios complejos y su correspondiente evaluaci´on, utilizando todas las posibilidades que el lenguaje de programaci´on proporcione, por ejemplo bibliotecas de c´odigo C y MATLAB. Bajo esta estructura general, se pueden implementar diferentes paradigmas de evaluaci´on que sobrepasen los l´ımites conceptuales de los ejercicios de selecci´on m´ultiple. En las siguientes secciones se describir´an los siguientes paradigmas: Coincidencia exacta en el resultado: En este paradigma la soluci´on implica dar valores a un conjunto espec´ıfico de variables siguiendo las reglas de sintaxis del lenguaje de programaci´on. Se puede aplicar a •Problemas individuales. •Tareas cooperativas. Evaluaci´on basada en el rendimiento: En este otro paradigma la soluci´on propuesta por el alumno no es la ´unica, por lo que la evaluaci´on se puede realizar de diferentes maneras: •Comprobaci´on espec´ıfica. •Evaluaci´on competitiva. Ejercicios de dise˜no de algoritmos: En este modelo los alumnos deben dise˜nar un programa en un lenguaje de programaci´on concreto Con el fin de acomodar las diferencias entre estos paradigmas, se han implementado peque˜nas variaciones en la secuencia de ejecuci´on representada en la figura 2.2, a trav´es de 2.2. PARADIGMAS DE EVALUACI ´ ON AUTOM´ ATICA 17 Figura 2.2: Diagramas de flujo de diferentes tipos de paradigmas de evaluacion 24 CAP´ ITULO 2. EVALUACI ´ ON AUTOM´ ATICA V´ IA WEB Creaci´on, coordinaci´on y almacenamiento de bibliotecas de ejercicios para posteriores cursos acad´emicos, que pueden ser usados en diferentes asignaturas y por distintos profesores. Asignaci´on de ejercicios a grupos. Control autom´atico de las fechas l´ımite de entregas de los ejercicios. Acceso a las soluciones y calificaciones de cada alumno para una revisi´on manual posterior, en caso de que el alumno lo requiriera. La principal aportaci´on del sistema desarrollado se encuentra en el campo de la automatizaci´on de la evaluaci´on. Se ha desarrollado un sistema con dos objetivos fundamentales: personalizar los ejercicios para cada alumno introduciendo variabilidad en las preguntas a partir de un identificador personal (como el n´umero de matr´ıcula), y evaluar ejercicios bas´andose en c´alculos matem´aticos complejos, simulaciones num´ericas y comprobaci´on de algoritmos. El proceso de evaluaci´on, lo m´as importante de este sistema, emplea el principio de evaluaci´on funcional, o de “caja negra”, consistente en coordinar los siguientes elementos: La soluci´on del alumno, enviada en formato de texto a trav´es de Internet. Dicho texto debe redactarse conforme a unas normas sint´acticas que permitan ser tratadas como instrucciones de ordenador escritas en alg´un lenguaje de programaci´on determinado (C, MATLAB, Ensamblador,...). El alumno no tiene por qu´e ser consciente de este hecho, ni conocer el lenguaje en su totalidad, s´olo las reglas b´asicas que se explicar´an en el enunciado. El algoritmo del profesor, escrito en el mismo lenguaje de programaci´on, que es capaz de producir una entrada de informaci´on para el c´odigo (el conjunto de instrucciones) del alumno, ejecutar ´este, y observar la informaci´on de salida tras el procesado del alumno. Dicha informaci´on permitir´a calcular si la soluci´on del alumno es correcta funcionalmente, es decir, si como objeto de proceso de informaci´on funciona correctamente. En resumen, el sistema presentado es capaz de recoger c´odigo desarrollado por el alumno para despu´es compilarlo y ejecutarlo junto con c´odigo desarrollado por el profesor. De esta forma, el profesor dise˜na el c´odigo de evaluaci´on de la pr´actica, el alumno inserta su soluci´on, y el sistema compila y ejecuta el programa resultante, obteniendo y almacenando la nota del alumno. Esta operaci´on se realiza para cada una de las soluciones propuestas por los alumnos de un grupo determinado que est´a realizando una pr´actica concreta de una asignatura definida y empleando un lenguaje de programaci´on espec´ıfico. 2.3.1. Ventajas del sistema de evaluaci´on La posibilidad de dise˜nar un c´odigo que se compila junto con el c´odigo del alumno ofrece la flexibilidad necesaria para personalizar pr´acticas y para poder evaluar el trabajo de cualquier disciplina con una base matem´atica o algor´ıtmica. Aunque a primera vista cabe pensar que este sistema se restringe a asignaturas relacionadas con la programaci´on y la inform´atica, nada m´as lejos de la realidad. 2.3. METODOLOG´ IA 25 Figura 2.4: Arquitectura del sistema Goodle GMS 26 CAP´ ITULO 2. EVALUACI ´ ON AUTOM´ ATICA V´ IA WEB En el caso de un problema de an´alisis, la respuesta del alumno puede consistir en la definici´on de unas variables que almacenan los resultados de un determinado problema. El programa desarrollado por el profesor puede calcular los resultados que deber´ıan obtenerse para el conjunto de par´ametros personalizados del alumno y compararlo con la soluci´on entregada. En el caso de problemas de dise˜no, es posible incluso comprobar si la soluci´on presentada por el alumno cumple o no un conjunto de restricciones mediante simulaci´on (por ejemplo en problemas de dise˜no de controladores para sistemas no lineales). En los casos de estudio se ilustrar´a c´omo se ha empleado intensivamente la herramienta en asignaturas de fuerte componente matem´atico y te´orico, como la Teor´ıa de Sistemas. En la figura 2.1 se muestra la estructura l´ogica del sistema de evaluaci´on en el caso en el que se emplee MATLAB (lenguaje matem´atico, de c´alculo num´erico y simulaci´on empleado en numerosos campos de ingenier´ıa). El proceso de correcci´on es instant´aneo y se puede repetir cuantas veces se desee. Es particularmente ´util el hecho de que se puede cambiar el c´odigo de correcci´on en l´ınea para determinar por ejemplo la sensibilidad de las notas con un margen de error α. Este hecho tambi´en facilita el desarrollo del c´odigo de correcci´on. Adem´as, se ha dise˜nado un procedimiento robusto de evaluaci´on, por un lado prohibiendo el uso de funciones potencialmente peligrosas para la integridad del servidor, y por otro lado, detectando posibles errores y bucles infinitos en el c´odigo del alumno. Respecto a las dificultades encontradas, cabe rese˜nar que el servidor desarrollado proporciona una nota num´erica que no tiene en cuenta posibles errores tipogr´aficos, confusi´on en los par´ametros u otros factores que puedan adulterar los resultados. Esto significa que una cierta informaci´on se pierde en el proceso de evaluaci´on. Sin embargo es una herramienta muy adecuada para evaluar a una gran cantidad de alumnos bajo un ´unico criterio. Esto es muy dif´ıcil de conseguir con un m´etodo tradicional de evaluaci´on. 2.3.2. Evaluaci´on competitiva Existe la posibilidad de calificar el trabajo del alumno no por su calidad individual, sino tras compararlo con el resto. Este paradigma se ilustra en la figura 2.5 y funciona del siguiente modo: se ejecuta el c´odigo del alumno y el c´odigo evaluador del profesor, obteni´endose una figura de m´erito que se almacena en la base de datos como nota provisional. En un problema de dise˜no de controladores, esta figura podr´ıa ser el tiempo de subida en bucle cerrado. Una vez calculada la nota provisional para todos los alumnos, el sistema filtra los resultados inv´alidos, ordena las calificaciones y calcula la nota final para cada alumno seg´un su posici´on en la lista ordenada, dentro de un intervalo de notas configurado por el profesor. Esta funcionalidad aparece como una opci´on en el interfaz de creaci´on de pr´acticas. 2.3.3. Protecci´on frente al fraude Una dificultad del sistema es la posibilidad de ayuda no autorizada de alumnos m´as aventajados al resto. Los riesgos son mayores cuando el trabajo se realiza en casa del estudiante y sin control del profesorado. Se trata de una limitaci´on inherente al aprendizaje basado en pro- 2.4. ARQUITECTURA DEL SISTEMA 27 Figura 2.5: Funcionamiento del sistema de evaluaci´on competitiva yectos, y es com´un a las herramientas de e-learning mencionadas. Nuestra aplicaci´on, mitiga este riesgo mediante la personalizaci´on de ejercicios, como es el caso de la parametrizaci´on individual de las funciones de transferencia G(s)del apartado 2.6.2. Dicha parametrizaci´on es posible gracias al acceso al n´umero de matr´ıcula o ID del alumno desde el C´odigo Previo y el C´odigo Evaluador del Profesor (ver figura 2.4). A este mecanismo se a˜nade la posibilidad de supervisar el trabajo en el aula, seg´un se ilustra en la figura 2.4. En este escenario el sistema permite filtrar los env´ıos en funci´on de la direcci´on IP de origen, garantizando la presencia de los alumnos en las aulas, mientras que el profesor se encarga de verificar la identidad del alumno, que se muestra en pantalla en todo momento. En las siguientes secciones se describe la arquitectura del sistema junto con una breve descripci´on de los interfaces de usuario. 2.4. Arquitectura del sistema La herramienta consta de dos procesos independientes, un programa de ordenador, que se ejecuta en un servidor web dedicado situado en la Escuela T´ecnica Superior de Ingenier´ıa, y un servidor independiente no visible desde la red, de apoyo a la evaluaci´on autom´atica (aunque, a costa de una ligera p´erdida de seguridad, ambos procesos se pueden unificar en una ´unica m´aquina). El hardware, sistema operativo y aplicaciones empleadas son: Servidor de rack HP Proliant DL-1400, 2 GB de memoria RAM, 160Gb de disco duro. Sistema operativo Windows 2003 Server R2. Apache 2.2.6, PHP 5 y MySQL Server 5.0. 28 CAP´ ITULO 2. EVALUACI ´ ON AUTOM´ ATICA V´ IA WEB MATLAB 7.3. Dev-C++. Los usuarios (profesores y alumnos) acceden mediante un navegador convencional de Internet. En la figura 2.4 se ilustra la arquitectura de red del sistema. Los alumnos se encuentran en las aulas de pr´acticas de la escuela o facultad (en el caso en que se desee controlar la identidad del alumno), o en el exterior. Respecto de las tecnolog´ıas software empleadas, destacamos el empleo de MATLAB. Como apoyo a la docencia, se emplea principalmente en el an´alisis de sistemas, la s´ıntesis de controladores (con el soporte del Control System Toolbox), y dentro de las asignaturas de primeros cursos de Inform´atica y Programaci´on. Como herramienta de realizaci´on de las pr´acticas su efectividad es innegable y a menudo se emplea el propio MATLAB para evaluar la validez de las soluciones de los alumnos. Adem´as de MATLAB, en el servidor se ofrece la posibilidad de realizar pr´acticas basadas en el lenguaje de programaci´on C, usando el compilador de libre distribuci´on Dev-C++. Cabe destacar, que es posible desarrollar m´odulos que permitan la realizaci´on de pr´acticas para cualquier otro lenguaje de programaci´on. Para desarrollar el servidor se ha utilizado ActiveX. ActiveX emplea el modelo de objetos distribuidos COM de Microsoft para la automatizaci´on de aplicaciones. En el presente proyecto se utiliza esta tecnolog´ıa de manera similar a (Zuluaga et al., 2005) con el fin de que el servidor web pueda realizar operaciones en el espacio de trabajo de MATLAB y compilar c´odigo C a trav´es de llamadas a Dev-C++. La implementaci´on software del servidor se basa en las siguientes tecnolog´ıas Script de servidor PHP (PHP, 2014). Herramienta de software libre que permite la ejecuci´on de programas en un servidor web en respuesta a peticiones HTTP emitidas por un navegador. Servidor de base de datos MySQL (MySQL, 2014). Servidor en red de base de datos relacional para la gesti´on de los alumnos, las bibliotecas de pr´acticas y las calificaciones. Apache (Apache Open Software Foundation, 2014). Servidor web que atiende a las consultas HTTP de los navegadores y genera las respuestas a trav´es de la ejecuci´on de scripts PHP. Los servicios Apache–PHP–MySQL forman la arquitectura de servidores web din´amicos m´as empleada actualmente en el mundo (65 % de penetraci´on frente al 35 % de ASP de Microsoft) y es reconocido por su estabilidad y portabilidad a distintos sistemas operativos. 2.4.1. Interfaz del alumno. El flujo de trabajo del alumno aparece esquematizado en la parte derecha de la figura 2.1. Inicialmente, el alumno debe identificarse a trav´es de la p´agina web del servidor de docencia, http://bono.us.es/sdocencia, mediante nombre de usuario y clave (figura 2.6). 2.4. ARQUITECTURA DEL SISTEMA 29 Figura 2.6: Ventana de entrada al sistema Figura 2.7: Ventana de selecci´on de trabajos A continuaci´on se muestra una lista con los trabajos pendientes de entrega (que pueden pertenecer a distintas asignaturas). La lista depende de los grupos en los que aparece dicho alumno y las asignaciones (asociaciones) de pr´acticas que est´en activas en cada uno de estos grupos (figura 2.7). El alumno seleccionar´a uno de estos trabajos, y a continuaci´on se le mostrar´a una p´agina con un enunciado en PDF, y un campo de texto sobre HTML para incorporar su soluci´on al problema (figura 2.8). Dicha soluci´on debe estar escrita usando una sintaxis compatible con el lenguaje que se emplee para corregir las pr´acticas (C, MATLAB,...) y cumplir unas normas un´ıvocamente definidas en el enunciado de la pr´actica. Un ejemplo pr´actico ser´ıa la realizaci´on de una funci´on en lenguaje C que determine si una matriz de enteros dada es un Sudoku. La soluci´on presentada por el alumno se muestra en la figura 2.8. 30 CAP´ ITULO 2. EVALUACI ´ ON AUTOM´ ATICA V´ IA WEB Figura 2.8: Ventana de env´ıo de soluciones. 2.4.2. Interfaz del profesor. El flujo de trabajo del profesor se muestra en la figura 2.1 (izquierda). El interfaz consiste en un men´u que permite introducir todos los par´ametros para que se lleven a cabo las pr´acticas, y una serie de opciones para calcular la evaluaci´on y mostrar los resultados. Las opciones principales son: Crear nuevo grupo. Para dar de alta nuevos alumnos, grupos y asignaturas. Listar alumnos y grupos. Crear pr´acticas, definiendo el programa evaluador y una serie de opciones (ver figura 2.9). Listar y modificar pr´acticas. Lanzar evaluaci´on fuera de l´ınea. Realiza la conexi´on con MATLAB o Dev-C++ y eval´ua todos los trabajos entregados correspondientes a una asignatura seleccionada. Visualizar calificaciones. En distintos formatos, permite la descarga de un fichero Excel que puede ser complementado con otro tipo de calificaciones. Adem´as, permite el acceso al c´odigo entregado por cada alumno y realizar modificaciones sobre ´el (por ejemplo, para recuperar errores de sintaxis). En todo momento, el profesor puede volver a lanzar evaluaciones de un grupo. Si se observa que las calificaciones no son coherentes o se desea mejorar el proceso, se podr´a optar por refinar el programa que calcula la nota o revisar y en su caso corregir a mano los errores particulares de los alumnos, para finalmente volver a lanzar la evaluaci´on. El sistema es tambi´en capaz de rechazar aquellos env´ıos con errores de sintaxis, o que usan funciones potencialmente peligrosas para la integridad del servidor. La arquitectura del sistema ha sido desarrollada para permitir que se asignen diversos ejercicios en cada sesi´on con el fin de evitar el fraude. 2.5. DIRECTRICES PARA LA ELABORACI ´ ON DE UNA SECUENCIA DE EVALUACI ´ ON AUTOM´ ATICA31 Figura 2.9: Ventana de creaci´on y configuraci´on de pr´acticas 2.5. Directrices para la elaboraci´on de una secuencia de evaluaci´on autom´atica En esta secci´on se presenta la estructura b´asica del c´odigo de evaluaci´on que un profesor debe dise˜nar con el fin de utilizar la aplicaci´on propuesta. Aunque en general cada ejercicio es ´unico, la mayor´ıa de los ejercicios pertenecen a uno de los paradigmas de evaluaci´on que se han presentado en la Secci´on 2.2. A continuaci´on revisamos estos casos. 2.5.1. Coincidencia exacta en el resultado La figura 2.2 muestra el diagrama de flujo del c´odigo de evaluaci´on para el paradigma de coincidencia exacta en el resultado. Los pasos del algoritmo son los siguientes: C´odigo de inicializaci´on. Su objetivo es generar las variables en el espacio de trabajo de MATLAB (workspace) previas a la ejecuci´on del c´odigo del alumno. Al ser variables personalizadas para cada alumno el algoritmo accede a la base de datos para recuperar toda la informaci´on necesaria. Ejecutar la soluci´on del alumno. En este paradigma, la soluci´on proporcionada por el alumno se compone principalmente de un conjunto de definiciones de variables utilizando la sintaxis apropiada. Goodle GMS debe ser capaz de ejecutar o incluir estas l´ıneas de c´odigo en una manera apropiada en funci´on del lenguaje utilizado. Comprobar la coherencia de la soluci´on. Aunque la aplicaci´on propuesta implementa un filtro de sintaxis que rechaza las soluciones que no son correctas desde un punto de vista sint´actico, las soluciones todav´ıa pueden contener errores. La robustez del c´odigo de evaluaci´on respecto a estos errores en las soluciones de los alumnos es importante con el fin de proporcionar una puntuaci´on precisa al trabajo de los alumnos. Si un error 32 CAP´ ITULO 2. EVALUACI ´ ON AUTOM´ ATICA V´ IA WEB ocurre, el c´odigo de evaluaci´on no puede proporcionar una puntuaci´on y el profesor debe evaluar personalmente ese alumno. Muchos errores se corrigen implementando un control de coherencia del nombre, la dimensi´on y l´ımites de las diferentes variables que la soluci´on del alumno puede crear. Si una variable no existe, hay un error de tipos o la respuesta est´a fuera de los l´ımites se sustituye por una respuesta incorrecta del tipo apropiado. La robustez mejora sustancialmente si la secuencia de comandos se incluye en una estructura de manejo de excepciones try-catch, disponible en la mayor´ıa de los lenguajes de programaci´on modernos. Generar las soluciones correctas. Usando la informaci´on recuperada de la base de datos, el algoritmo debe generar las soluciones correctas para el ejercicio y los par´ametros correspondientes al alumno en particular. Para este fin, el profesor aprovecha la posibilidad de ejecutar complejas operaciones matem´aticas usando MATLAB, C o cualquier otro lenguaje implementado en la aplicaci´on. Las soluciones se almacenan en un conjunto diferente de variables de las generadas por el alumno. Evaluar. Para cada respuesta, el c´odigo de evaluaci´on compara el valor de las variables creadas por el alumno y el valor correcto que genera el c´odigo de evaluaci´on. Si el error es inferior a un umbral, la puntuaci´on se incrementa en un valor determinado (diferentes preguntas pueden tener diferentes ponderaciones). En algunos casos tambi´en es importante generar un comentario de texto para proporcionar informaci´on alfanum´erica para el alumno y el profesor. Tenga en cuenta que este c´odigo se puede generar de forma autom´atica (a trav´es de plantillas) para una amplia clase de problemas, en particular, los pasos de comprobaci´on de la coherencia y la comparaci´on de las soluciones son independiente del tipo de ejercicio. La parte del algoritmo que tiene que ser dise˜nada de forma espec´ıfica es el c´odigo que genera las soluciones correctas en funci´on del ejercicio y los par´ametros. 2.5.2. Evaluaci´on basada en el rendimiento La figura 2.2 muestra el diagrama de flujo del c´odigo de evaluaci´on para el paradigma de evaluaci´on basada en el rendimiento. Los pasos del algoritmo son similares al caso anterior, sin embargo en este caso, en vez de generar soluciones correctas, el c´odigo de evaluaci´on debe correr una serie de simulaciones para comprobar el dise˜no del alumno. C´odigo de inicializaci´on. Ejecutar la soluci´on del alumno. Comprobar la consistencia de la soluci´on. An´alisis de la soluci´on de los alumnos. En este paso se ejecutan un conjunto de simulaciones basadas en la soluci´on del alumno. La salida de estas simulaciones es analizada, y se generan un conjunto de variables con varias medidas de rendimiento. 2.5. ELABORACI ´ ON DE UN EVALUADOR 33 Evaluar. Para cada medida de rendimiento, el evaluador comprueba si se satisfacen las especificaciones de dise˜no y actualiza la puntuaci´on y los comentarios apropiadamente. Observe que es posible proporcionar una puntuaci´on a partir de una ´unica medida de desempe˜no. Parte de este algoritmo se puede generar de forma autom´atica para una amplia clase de problemas, por ejemplo, ejercicios en los que la puntuaci´on depende de la cantidad de especificaciones (es decir, medidas de desempe˜no que satisfacen condiciones) cumplidas por el dise˜no del alumno. En general, la principal diferencia entre la coincidencia en el resultado exacto y la evaluaci´on basada en el rendimiento se encuentra en el an´alisis de la soluci´on del alumno. C´omo dise˜nar las entradas de las simulaciones y la forma de medir los diferentes ´ındices de rendimiento dependen de cada ejercicio en particular. 2.5.3. Dise˜no de algoritmos En este paradigma de evaluaci´on el alumno debe dise˜nar un algoritmo para resolver un problema utilizando un lenguaje de programaci´on determinado. Esto puede conducir a una amplia gama de ejercicios. Dedicamos esta secci´on a los ejercicios en los que el algoritmo debe implementar una funci´on con especificaciones de entrada / salida espec´ıficas. La aplicaci´on presentada es capaz de incluir la soluci´on aportada por el alumno para que el evaluador puede llamar a las funciones desarrolladas por los alumnos varias veces tanto para MATLAB y C. Para ello, el c´odigo del alumno debe satisfacer varios requisitos de dise˜no en funci´on del ejercicio, por ejemplo las funciones C deben implementar un prototipo particular. La figura 2.2 muestra el diagrama de flujo del c´odigo de evaluaci´on para el paradigma de dise˜no de algoritmos. C´odigo de inicializaci´on. Incluir/compilar la soluci´on del alumno. Incluir/compilar la soluci´on del profesor. An´alisis de la soluci´on de los alumnos. Por cada funci´on, se aplican diferentes entradas tanto a la soluci´on del profesor como a la del alumno. Las salidas resultantes se almacenan en un conjunto de variables. Evaluar. Para cada respuesta, el c´odigo evaluador compara la salida de las variables creadas por el alumno y el valor correcto generado por el c´odigo de evaluaci´on. Este paso es similar al paso de evaluaci´on en el paradigma de coincidencia en el resultado exacto. El esquema propuesto se basa en la idea de que los alumnos proporcionan una soluci´on que utiliza la sintaxis de un lenguaje de programaci´on determinado que implica que el programa resultante puede fallar. La aplicaci´on propuesta ha sido dise˜nada con el fin de ser robusto con respecto a los errores del c´odigo del alumno. Si el programa de evaluaci´on falla (por ejemplo, cuelgues detectados a trav´es de tiempos de espera), el servidor debe ser capaz de detectar 40 CAP´ ITULO 2. EVALUACI ´ ON AUTOM´ ATICA V´ IA WEB Nota 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 Alumnos 9 2 2 4 3 11 43 118 60 7 Tabla 2.2: Resultados de la evaluaci´on de la pr´actica Calificaciones de los alumnos. La pr´actica se corrigi´o con un margen de error del 10 %. En la tabla 2.2 se muestra la distribuci´on de notas obtenida. Se puede observar que la pr´actica presenta unas notas bastante bajas. Esto se debe a que, al tratar la pr´actica del estudio de la respuesta frecuencial de un sistema de primer orden, la medidas tomadas por los alumnos del retraso y la amplitud de se˜nales de alta frecuencia eran poco precisas. 2.7. Encuestas de satisfacci´on de usuarios Se ha empleado la plataforma con m´as de 400 alumnos con resultados diversos en cuanto a calificaciones y mejoras con respecto a a˜nos anteriores. En la figura 2.11 se ilustran los resultados de una encuesta masiva realizada entre los alumnos de Fundamentos de Inform´atica. Por ´ultimo, en la tabla 2.3 se muestra el resultado de una encuesta realizada entre los profesores involucrados en asignaturas de la Escuela Superior de Ingenieros donde se ha empleado la herramienta. La muestra es peque˜na (7 profesores), ya que se restringe al profesorado de 5 asignaturas, aunque de alumnado numeroso. Sin embargo, se puede apreciar un consenso en cuanto a la convenien cia de uso de la herramienta para profesores y alumnos, mientras se atisba cierta desconfianza a la hora de depositar completamente la responsabilidad de la evaluaci´on en el sistema. 2.7. ENCUESTAS DE SATISFACCI ´ ON DE USUARIOS 41 Figura 2.11: Resultado de la encuesta realizada en Fundamentos de Inform´atica 42 CAP´ ITULO 2. EVALUACI ´ ON AUTOM´ ATICA V´ IA WEB Cuesti´on 1 2 3 4 5 NS/NC Utilidad de la herramienta para tu trabajo como profesor (econom´ıa de esfuerzo, organizaci´on, rapidez, informaci´on disponible) 0 0 0 1 6 0 Utilidad de la herramienta para el aprendizaje del alumno 0 0 0 4 3 0 ¿Se logra mayor implicaci´on del alumno al emplear la herramienta y su metodolog´ıa de trabajo? 0 0 1 2 4 0 Calidad t´ecnica de la aplicaci´on (robustez, opciones disponibles) 0 1 1 3 2 0 Calidad del interfaz gr´afico (uso amigable, est´etica, orden en la presentaci´on de datos) 0 1 0 4 2 0 Confianza que le inspira la nota calculada autom´aticamente 0 1 1 4 1 0 Facilidad de dise˜no de nuevas pr´acticas (creaci´on de evaluadores, selecci´on de opciones y filtros) 0 1 1 3 1 1 Facilidad de gestionar el desarrollo de la pr´actica en el aula del Centro de C´alculo cuando se emplea la herramienta 0 0 1 2 2 2 Facilidad para ejecutar la evaluaci´on autom´atica para calificar un grupo (gesti´on de bucles infinitos, errores de problemas sintaxis de las entregas) 0 1 1 3 2 0 ¿Utilizar´ıas la herramienta, con todos sus filtros y supervisi´on del profesor, como ´unico medio para calificar su asignatura? 2 1 1 1 2 0 Satisfacci´on general del alumno con la herramienta (tanto por su comodidad de uso como por la metodolog´ıa en general) 0 0 2 4 0 1 Tabla 2.3: Resultados de la encuesta al profesorado (Votos totales. 1=Desfavorable, 5=Muy favorable) Cap´ıtulo 3 Tecnolog´ıa para dotar a los laboratorios virtuales y remotos de funcionalidades de evaluaci´on autom´atica En este cap´ıtulo se presenta el llamado elemento de evaluaci´on autom´atica (EEA), que permite realizar tareas de calificaci´on autom´atica con LVyR. El EEA permite dotar de funcionalidades de calificaci´on autom´atica a aplicaciones preexistentes creadas mediante Easy Java Simulations (EJS). EJS es una herramienta gratuita de desarrollo de aplicaciones interactivas con componentes matem´aticos, de an´alisis y de simulaci´on sin conocimientos avanzados de programaci´on, o en muchos casos sin programaci´on alguna (Esquembre, 2004; Christian, 2007). 3.1. Laboratorios virtuales y remotos con EJS EJS es una herramienta de software libre desarrollada en Java, dise˜nada especialmente para la creaci´on de simulaciones por computador en tiempo discreto dotadas de interfaces gr´aficas interactivas. EJS se desarroll´o originalmente para usuarios con escasos conocimientos de programaci´on. El usuario s´olo tiene que conocer el modelo anal´ıtico del proceso y dise˜nar el interfaz gr´afico en detalle. La arquitectura de EJS se deriva del paradigma modelo-vista-controlador (MVC), cuya filosof´ıa sostiene que las simulaciones interactivas deben contener tres partes: El modelo, que describe el proceso en estudio en funci´on de 1) variables, que registran los diferentes estados posibles del proceso, y 2) relaciones entre estas variables, expresadas como algoritmos. El control, que define ciertas acciones que el usuario puede hacer sobre la simulaci´on. La vista, que muestra una representaci´on gr´afica (realista o esquem´atica) de los estados del proceso. 43 44 CAP´ ITULO 3. EVALUACI ´ ON AUTOM´ ATICA EN LABORATORIOS Figura 3.1: Interfaz de usuario EJS EJS simplifica las tareas eliminando la necesidad de implementar el elemento control del paradigma MVC, definiendo la f´ısica del sistema en el modelo, la interacci´on del usuario en la Vista y enlazando ambas partes de manera transparente y automatizando las funciones de control de simulaci´on (ver figura 3.1). Por tanto, las aplicaciones se crean en dos pasos: 1) la construcci´on del modelo a simular usando el mecanismo integrado de simulaci´on de EJS y 2) la construcci´on de la vista para mostrar para mostrar el estado del modelo y sus reacciones a los cambios hechos por los usuarios. Los laboratorios remotos se construyen mediante EJS y pueden ser distribuidos mediante una arquitectura cliente servidor. El interfaz de usuario (GUI) del lado del cliente se dise˜na y construye mediante EJS, mientras que una aplicaci´on de servidor, que act´ua como pasarela entre la planta real y el laboratorio, tambi´en es necesaria. Se pueden encontrar ejemplos y m´as informaci´on sobre esta arquitectura en (Dormido, R., Vargas, H., Duro, N., S´anchez, J., Dormido-Canto, S., Farias, G., Esquembre, F., Dormido, S., 2008; De la Torre, L., Sanchez, J.P., Sanchez, J., Dormido, S., Yuste, M., Carreras, C., 2010), y algunos ejemplos de simulaciones EJS se pueden descargar gratuitamente en el siguiente enlace: http://www.um.es/fem. La Figura 3.2 muestra la estructura b´asica de estas aplicaciones, donde un cliente remoto manipula un proceso localizado en el laboratorio a trav´es de una computadora servidora tra- 3.2. EVALUACI ´ ON AUTOM´ ATICA CON GOODLE GMS 45 Figura 3.2: Control remoto y manipulaci´on de un equipo f´ısico a trav´es de Internet. bajando como capa de comunicaci´on middleware. La realimentaci´on visual del equipo remoto se obtiene mediante una webcam enfocada hacia el equipo real. 3.2. Evaluaci´on autom´atica con Goodle GMS Con el fin de encajar los laboratorios EJS en la arquitectura Goodle GMS, se han introducido nuevas opciones en el ´ultimo para un nuevo tipo de ejercicio espec´ıfico denominado EJS. El lenguaje de base es MATLAB, y la idea principal es la de configurar de manera especial las dos partes principales del c´odigo del profesor: c´odigo de pre-evaluaci´on y c´odigo de post-evaluaci´on. El c´odigo de pre-evaluaci´on espec´ıfico para EJS consiste en una serie de instrucciones destinadas a generar un conjunto de variables en el espacio de trabajo MATLAB, que ser´an transmitidas por red a los interfaces EJS de los estudiantes, con anterioridad al uso del laboratorio. Estas variables parametrizan la simulaci´on EJS del alumno, posiblemente con valores ´unicos para cada uno en funci´on de su DNI u otro ID, raz´on por la cual es preciso registrarse al inicio. Tras la ejecuci´on, las variables personalizadas se crean en el espacio de trabajo de MATLAB y se transmiten al cliente EJS tras el registro (login) del estudiante (detallado en una secci´on posterior). La segunda parte principal de la configuraci´on del ejercicio EJS consiste en el c´odigo de evaluaci´on (post-evaluaci´on). Este c´odigo ha de dise˜narse para calificar al alumno en funci´on de las respuestas recibidas desde la aplicaci´on cliente EJS. En los ejercicios espec´ıficos de EJS, el alumno no proporcionar´a c´odigo fuente puro. En su lugar, al realizar el trabajo sobre el laboratorio, el alumno debe rellenar los campos de texto del interfaz EJS y fijar los valores de los slider bars (controles de tipo barras de desplazamiento). Cuando el alumno termina su tarea, pulsar´a un bot´on de env´ıo (Submit), y estos valores se transforman autom´aticamente en c´odigo fuente MATLAB (sentencias de asignaci´on con los valores de los campos de texto). Este c´odigo se transmite por red al servidor para su 46 CAP´ ITULO 3. EVALUACI ´ ON AUTOM´ ATICA EN LABORATORIOS Figura 3.3: El elemento de evaluaci´on autom´atica almacenamiento en la base de datos de entregas, y para la posterior evaluaci´on autom´atica, que ser´a lanzada por el profesor cuando ´este lo desee. 3.3. El elemento de evaluaci´on autom´atica: EEA El EEA simplifica la calificaci´on de las sesiones de laboratorio realizadas mediante simulaciones EJS. Este elemento puede descargarse en el siguiente enlace: http://lab.dia.uned.es/evaluator. El EEA divide la evaluaci´on de los usuarios de laboratorios EJS (estudiantes) en dos pasos: registro (login) y entrega. El paso de registro o login es necesario para adaptar o personalizar la simulaci´on a cada usuario. Ello implica que las variables de la simulaci´on dependen del DNI o n´umero de matr´ıcula del alumno. Por tanto, las simulaciones de los alumnos pueden estar basadas en el mismo sistema f´ısico, pero distintos par´ametros (ejemplo, masas, constantes de fricci´on, etc.). Los estudiantes usan la simulaci´on personalizada para llevar a cabo un conjunto de tareas o actividades predefinidas (protocolo de actividades). Una vez terminadas las actividades, los alumnos deben transmitir sus soluciones al servidor por el procedimiento descrito para su posterior evaluaci´on. Adem´as, EJS permite a los alumnos realizar todas las simulaciones que deseen en un modo off-line, sin que los resultados tengan que enviarse al servidor. 3.3.1. C´omo usar el EEA El uso del EEA es muy sencillo. Su filosof´ıa de dise˜no est´a orientada a su inclusi´on en LVyR preexistentes sin apenas modificaciones. Los profesores (creadores de ejercicios) tienen que a˜nadir el EEA a la lista de elementos (plugins) de la simulaci´on en su aplicaci´on EJS (ver figura 3.3). Esto se logra a trav´es de una de las opciones mostradas en el panel Model del editor EJS. Los elementos en EJS son muy simulares a las librer´ıas Java. Una vez que se han importado en una aplicaci´on, un conjunto de m´etodos queda a la disposici´on del desarrollador. A continuaci´on, se configura el elemento. Esto se logra mediante una ventana de di´alogo 3.3. EL ELEMENTO DE EVALUACI ´ ON AUTOM´ ATICA: EEA 47 Figura 3.4: Configuraci´on de elemento de evaluaci´on autom´atica (ver figura 3.4), que aparece al hacer doble click en el Nuevo elemento dentro de la ventana “List of elements”. Para configurar el AEE, el autor debe especificar como m´ınimo los siguientes datos: Server: La direcci´on web del servidor remoto Goodle GMS. Login Tags List: Una lista de variables que se solicitan al alumno para hacer login en el servidor y que ser´an enviadas al mismo tras el registro inicial. El car´acter doble “##” se emplea para separar las etiquetas que identifican estas variables. El car´acter especial “*” indica que una etiqueta particular representa una contrase˜na. Un ejemplo de esta lista de variables es “dni##*contrasena##grupo##practica” Submission Tags List: Lista de datos requeridos como resultados del trabajo con el Laboratorio, previos al env´ıo final de los alumnos. Estas etiquetas se traducen en campos de texto a rellenar por el alumno con resultados que se enviar´an al servidor para ser transformados en asignaciones MATLAB y ser evaluados. De nuevo, el car´acter doble “##” se emplea parta separar las etiquetas de la lista. Un ejemplo de esta lista es “kp##ti” Bas´andose en esta sencilla configuraci´on, el EEA crea autom´aticamente una ventana de di´alogo que permite a los usuarios finales registrase al inicio y enviar los resultados al final de protocolo de actividades. N´otese que ambas listas de variables se organizan como etiquetas (Tags), que se mostrar´an junto a un campo de texto por rellenar durante la ejecuci´on del applet EJS en los instantes de registro y env´ıo final. Un bot´on de OK confirma la validaci´on de los datos y el env´ıo, tras lo cual se muestra la respuesta del servidor en el campo Server Response. De este modo se puede personalizar el di´alogo del EEA para interactuar con cualquier tipo de servidor, no s´olo con Goodle GMS. Aparecen en este di´alogo de configuraci´on los siguientes par´ametros adicionales: Post login code: opcional, sirve para definir el nombre del m´etodo Java incluido en el applet EJS al que hay que llamar tras recibir los par´ametros iniciales desde el servidor 48 CAP´ ITULO 3. EVALUACI ´ ON AUTOM´ ATICA EN LABORATORIOS Login Cliente (EJS) Servidor (Goodle GMS) Generar parámetros Personalizados mediante MATLAB Actualizar parámetros y vista de la simulación. Ejecutar postLoginMethod (si existe) Realizar actividades Envío de resultados Guardar en BD Ejecutar postSubmissionMethod (si existe) Datos login XML Datos envío Mensaje confirmación Figura 3.5: Secuencia del protocolo de comunicaciones cliente-servidor del EEA Goodle, para tareas espec´ıficas de inicializaci´on. Mediante esta funci´on se logran simulaciones muy dependientes del ID del alumno, como el caso de sistemas din´amicos cuyo orden no es fijo para todo el alumnado, o el de variaciones en el aspecto del interfaz. Post submission code: opcional, m´etodo que se ejecutar´a tras el env´ıo con ´exito de los resultados de la pr´actica, para diversos usos que permitan al alumno dar por cerrada la tarea (por ejemplo generaci´on de un comprobante de entrega). Show dialog: Si se selecciona esta opci´on, la caja de di´alogo de registro se mostrar´a en forma modal al inicio del applet (funcionamiento por defecto). 3.3.2. Fundamentos de la evaluaci´on autom´atica El sistema se ejecuta en una arquitectura cliente servidor. La figura 3.5 muestra la secuencia del protocolo de comunicaciones entre el Laboratorio EJS y el servidor de evaluaci´on. La interacci´on se divide en las siguientes fases: Login, Realizaci´on del protocolo de actividades, Entrega de Resultados y Evaluaci´on. Login: esta fase lanza una consulta HTTP al servidor, con los datos del login del alumno y un identificador del ejercicio del que se trate. Si el registro es correcto (existe el alumno y la pr´actica especificada), el servidor responde con un paquete de datos XML, o con un 3.3. EL ELEMENTO DE EVALUACI ´ ON AUTOM´ ATICA: EEA 49 mensaje de error en caso contrario. El mensaje XML contiene un conjunto de pares etiquetavalor generados en MATLAB mediante el c´odigo de pre-evaluaci´on espec´ıfico de la pr´actica, posiblemente dependiente del ID del alumno. Estas asignaciones XML se reciben por el EEA y se emplean para personalizar la simulaci´on EJS (los pares etiqueta-valor se transforman en valores iniciales de los elementos del interfaz gr´afico, por ejemplo campos de texto, gracias a la coincidencia con las etiquetas dadas a dichos elementos al dise˜nar el applet). Los autores pueden usar esta personalizaci´on no s´olo para definir valores iniciales de simulaci´on, sino tambi´en para modificar elementos del interfaz gr´afico. La informaci´on codificada en el mensaje XML contiene los valores iniciales y par´ametros espec´ıficos de la simulaci´on. El EEA usa la API reflection para actualizar las variables del applet y refrescar la vista de la simulaci´on. Existen tres tipos de variables en este intercambio: double, array de doubles, y string. Con este tercer caso se pueden incluir expresiones matem´aticas simb´olicas en el intercambio. Para cada variable del mensaje XML, el EEA busca una variable del mismo nombre en el applet EJS (como parte del interfaz o como variable interna), y si encuentra la coincidencia, fija la variable local al valor recibido. Tras un login con ´exito, la pesta˜na submission se activa, y se ejecuta el post login code si se hubiera definido. Realizaci´on del protocolo de actividades: Aqu´ı los estudiantes deben usar localmente la simulaci´on personalizada para realizar las tareas y problemas a resolver descritas en el protocolo de actividades. En este paso no hay comunicaci´on con el servidor. Entrega: Una vez terminadas las actividades, los alumnos deben enviar sus respuestas para ser evaluadas. Para ello s´olo deben rellenar los campos de la pesta˜na Submission con los valores calculados (opcionalmente) y pulsar OK. Estos campos y el resto de los campos de entrada del interfaz EJS (texto, slider bars, etc.) se codifican por el EEA y se empaquetan en un mensaje XML con pares etiqueta-valor recogidos del interfaz gr´afico. Una vez recibido el mensaje en el servidor, los pares se transforman autom´aticamente en asignaciones MATLAB como se ilustra en el siguiente ejemplo: <variables> <a>10.0</a> <f1>cos(x1)+x2^2</f1> </variables> N´otese la posibilidad de incluir expresiones simb´olicas en el intercambio de datos, que pueden ser procesadas mediante el MATLAB Symbolic Toolbox en la evaluaci´on. El cliente EJS tambi´en contiene un parser capaz de interpretar estas expresiones. Estas caracter´ısticas se han empleado para desarrollar un laboratorio virtual simb´olico para cursos de control no lineal (S´anchez, C., Gomez-Estern, F. y Mu˜noz de la Pe˜na, D., 2012) que se describir´a en el siguiente cap´ıtulo. Evaluaci´on: Las respuestas enviadas (c´odigo MATLAB) se almacenan en el servidor de evaluaci´on autom´atica Goodle. Se organizan en una base de datos que contiene c´odigo pre y post evaluaci´on espec´ıficos de cada ejercicio. Una vez terminado el plazo de entrega, el profesor lanzar´a una evaluaci´on de todos los ejercicios entregados para una pr´actica concreta. 56 CAP´ ITULO 3. EVALUACI ´ ON AUTOM´ ATICA EN LABORATORIOS Cap´ıtulo 4 Interfaz de sistemas no lineales A continuaci´on se describe la interfaz de sistemas no lineales (ISNL) desarrollada para el sistema Easy Java Simulations (EJS) empleando el elemento evaluador (EEA) y la plataforma web Goodle GMS. El objetivo de esta interfaz es la resoluci´on de problemas de control no lineal, empleando una herramienta gr´afica que permita el an´alisis y visualizaci´on de diferentes controladores para sistemas de hasta orden cuatro. A partir de par´ametros que caracterizan de forma un´ıvoca al alumno (por ejemplo su DNI), ISNL permite al profesor la creaci´on de ejercicios personalizados. De esta forma, el alumno puede experimentar con diferentes controladores y visualizar la din´amica del sistema completo. La novedad fundamental del paradigma del ISNL es que el alumno puede introducir en el laboratorio virtual expresiones matem´aticas de tipo simb´olico que ser´an posteriormente procesadas por el servidor con la ayuda del Matlab Symbolic Toolbox instalado. Los resultados de este cap´ıtulo est´an publicados en (S´anchez, C., Gomez-Estern, F. y Mu˜noz de la Pe˜na, D., 2012). 4.1. Descripci´on de la interfaz El objetivo de esta interfaz es la simulaci´on de sistemas de control no lineal en espacio de estados con estructura afin ˙xi=fi(x) + gi(x)·ui(4.1) y que permite a los estudiantes simular diferentes leyes de control para sistemas no lineales de forma gr´afica. Esta interfaz trabaja de forma conjunta con el sistema Goodle GMS, lo que permite a los alumnos autentificarse en el sistema, escoger un ejercicio definido previamente por el profesor, calcular u(x)de forma simb´olica y simular el sistema, proporcionar la funci´on de Lyapunov V(x), enviar la soluci´on que consideren m´as apropiada y su consecuente evaluaci´on. El primer paso para que un profesor cree un ejercicio es acceder al portal web Goodle GMS y definir el orden y las ecuaciones del sistema a trav´es de Matlab Symbolic Toolbox. Por 57 58 CAP´ ITULO 4. INTERFAZ DE SISTEMAS NO LINEALES ejemplo, si estamos interesados en crear un sistema de orden dos definido por ˙x1=x2 1+x2 | {z } f + (x1·x2) | {z } g ·u1 ˙x2=x2 2+x1 | {z } f +x2 |{z} g·u2 debemos introducir en Goodle la siguiente expresi´on: syms x1 f1 g1 u1 x2 f2 g2 u2; ordenSistema = 2; x1 = 0; x2 = 0; f1 = x1^2+x2; g1 = x1*x2; f2 = x2^2+x1; g2 = x2; Estas instrucciones nos permiten definir las ecuaciones de un sistema no lineal y sus condiciones iniciales. Una vez que el alumno se autentifique en el sistema, la interfaz EJS generar´a las expresiones apropiadas de acuerdo a estos datos. Es importante destacar, que este sistema debe ser escrito en lenguaje Matlab y el orden no debe ser superior a cuatro. Una caracter´ıstica importante de esta arquitectura es su flexibilidad. El orden del sistema no lineal no est´a fijado de antemano. ´ Este se define en la plataforma Goodle GMS, y el sistema ISNL se encargar´a de generar los diferentes elementos visuales, las diferentes se˜nales de control y las gr´aficas. Por ejemplo, si en el panel de Goodle se define un sistema de orden tres, ISNL mostrar´a las tres ecuaciones, sus condiciones iniciales, las gr´aficas de su din´amica de orden tres y las tres se˜nales de control u1(x),u2(x)yu3(x). 4.2. Conexi´on entre ISNL y Goodle GMS Tal y como se ha descrito inicialmente, el env´ıo y recepci´on de datos hacia Goodle GMS se realiza a partir del elemento EEA descrito en el cap´ıtulo 2. Este componente permite a los alumnos identificarse en el sistema mediante usuario y contrase˜na, y escoger un ejercicio. Tras conectar con el sistema Goodle GMS y escoger un ejercicio, los estudiantes podr´an simular diferentes se˜nales de control sobre el sistema no lineal antes de proceder al env´ıo de resultados. 4.3. Estructura de ISNL La pantalla que se muestra al alumno viene representada en la figura 4.1. La parte superior de la pantalla contiene los controles de reproducci´on de la simulaci´on, que permiten comenzar, pausar y reiniciar la simulaci´on en todo momento. Mediante estos controles podemos variar tambi´en la velocidad de la simulaci´on. 4.3. ESTRUCTURA DE ISNL 59 Figura 4.1: Interfaz de sistemas no lineales (ISNL) Las diferentes gr´aficas del sistema se representan en la zona central de la pantalla (figura 4.2). La gr´afica de la izquierda muestra la din´amica del sistema, donde cada estado del sistema est´a representado por una curva diferente. El comportamiento de estas curvas depender´a de la ley de control introducida por el alumno, por lo que se pueden simular diferentes controladores antes de enviar la soluci´on al sistema de evaluci´on. La gr´afica de la derecha muestra la evoluci´on de la funci´on de Lyapunov introducida por el alumno. Mediante esta gr´afica podemos comprobar si el comportamiento de la funci´on es mon´otono decreciente y asegurar as´ı la estabilidad del sistema. La parte inferior de la interfaz permite a los alumnos introducir diferentes leyes de control. Inicialmente, estos recuadros aparecen coloreados en rojo, avisando al usuario que est´an vac´ıos antes de ejecutar la simulaci´on. A medida que los datos se van introduciendo, la se˜nal de aviso desaparece. El primer grupo de controles permite ajustar la escala de tiempo de las gr´aficas, permitiendo hacer zoom en un instante determinado. En cualquier caso, el sistema est´a preparado para realizar un autoescalado a medida que la gr´afica evoluciona. El siguiente control se utiliza para introducir la expresi´on de la funci´on de Lyapunov que se mostrar´a a medida que el sistema evoluciona. Finalmente, se muestran las ecuaciones del sistema. El contenido de estos recuadros se rellena autom´aticamente cuando el alumno se autentifica en el sistema y escoje un ejercicio. El alumno s´olo puede introducir valores para las se˜nales u1,u2,u3yu4, ya que los otros controles est´an bloqueados y no permiten su modificaci´on porque referencian a la din´amica del sistema y sus condiciones iniciales. f1,g1,f2,g2, etc. 60 CAP´ ITULO 4. INTERFAZ DE SISTEMAS NO LINEALES Figura 4.2: Din´amica del sistema y funci´on de Lyapunov Figura 4.3: Sistema completo Para iniciar la simulaci´on, el alumno debe introducir valores para las se˜nales de control (en nuestro ejemplo, s´olo u1yu2), presionar ENTER para validar la expresi´on y pulsar sobre el bot´on PLAY de la parte superior. 4.4. Dise˜no de la interfaz ISNL Para desarrollar la interfaz ISNL se ha utilizado el editor gr´afico EJS. Esta herramienta permite, sin necesidad de tener conocimientos de programaci´on, dise˜nar la interfaz gr´afica de la simulaci´on. Su funcionamiento es muy simple. Por un lado se define cu´antos frames 1va a tener la interfaz y por otro se a˜naden diferentes controles (texto, gr´aficas, botones, etc.) que queremos utilizar. En el caso de la intefaz ISNL se ha dividido la pantalla en tres zonas bien diferenciadas: la zona superior con los controles de reproducci´on, la zona central con las gr´aficas, y la zona inferior con la din´amica del sistema. En la figura 4.4 se puede la arquitectura de este dise˜no. Para poder generar el modelo EJS que define las ecuaciones del sistema y poder vincularlo a la interfaz gr´afica se hace uso de las variables recibidas desde el servidor. Estas variables se convierten en texto simb´olico y se enlazan a las variables derx1,derx2, etc. asociadas a los controles de texto de la vista. En la figura 4.5 se muestra este proceso. Es importante mencionar que EJS impone una restricci´on importante a la hora de vincular 1Marco o cuadro que aglutina una serie de elementos. 4.4. DISE ˜ NO DE LA INTERFAZ ISNL 61 Figura 4.4: Estructura de la interfaz ISNL en EJS 62 CAP´ ITULO 4. INTERFAZ DE SISTEMAS NO LINEALES Figura 4.5: Ecuaciones que definen la evoluci´on del sistema las ecuaciones del sistema al modelo. Es preciso definir un interfaz espec´ıfico seg´un el orden del sistema, que se ha definido en la configuraci´on del ejercicio (a trav´es de variable OrdenSistema de MATLAB), dado que no es posible crear controles din´amicamente mediante el interfaz EJS. La figura 4.5 muestra las cuatro pesta˜nas que se han definido para el sistema de orden cuatro de ejemplo. Si en un futuro se desea a˜nadir un quinto orden, s´olo hace falta a˜nadir una pesta˜na al men´u Modelo - Evoluci´on y llamarlo EquationsOrden5. Ah´ı se incluir´an, adem´as de la evoluci´on de los estados x1,x2,x3yx4, la ecuaci´on en derivadas de x5. Para evaluar la funci´on de Lypunov s´olo tenemos que introducir la siguiente expresi´on como una Relaci´on Fija dentro de EJS: V = evaluate_ext(_view.lyapunov.getText(),x1,x2,x3,x4); La funci´on “evaluate ext” est´a definida dentro de EJS y se ejecuta en la propia interfaz. 4.5. Evaluaci´on del alumno ISNL permite al alumno la posiblidad de simular diferentes leyes de control de una forma gr´afica y realizar el env´ıo de la ley de control que se considera apropiada, tras haber trabajado sobre el sistema. La estabilidad de este sistema vendr´a sujeta a la condici´on propuesta por la teor´ıa Lyapunov para la estabilidad local de un sistema. 4.5. EVALUACI ´ ON DEL ALUMNO 63 4.5.1. Teor´ıa de estabilidad de Lyapunov Dado un sistema de control, la m´as b´asica de sus propiedades es su estabilidad. La aproximaci´on m´as general al estudio de la estabilidad de sistemas no lineales fue introducida a finales del siglo XIX por el matem´atico ruso Alexandr Mikhailovich Lyapunov, quien en 1892 public´o su tesis doctoral titulada El Problema General de la Estabilidad del Movimiento. Este trabajo presenta dos m´etodos para analizar la estabilidad de sistemas no lineales: el m´etodo de linealizaci´on y el as´ı llamado segundo m´etodo o m´etodo directo. El m´etodo de linealizaci´on establece conclusiones sobre la estabilidad local de sistemas no lineales alrededor de los puntos de equilibrio, tomando como base las propiedades de estabilidad de sus aproximaciones lineales. El m´etodo directo determina la estabilidad de un sistema no lineal en general, y no tiene car´acter local. Este m´etodo se basa en la construcci´on de una funci´on escalar de energ´ıa generalizada que describe al sistema, y cuya evoluci´on en el tiempo permite deducir algunas de sus propiedades de estabilidad. 4.5.2. Definiciones de estabilidad El punto de quilibrio x= 0 es estable en el sentido de Lyapunov, si para cualquier R > 0existe un r(R)>0tal que si el estado en el instante inicial cumple que kx(0)k< r, entonces kx(t)k< R para todo t. En caso contrario el punto de equilibrio es inestable. Un punto de equilibrio x= 0 es asint´oticamente estable, si es estable y adem´as existe alg´un r > 0tal que kx(0)k< r implica que x→0cuando t→ ∞. La estabilidad asint´otica es una propiedad siempre m´as fuerte que la simple estabilidad, porque el hecho de que un punto de equilibrio sea asint´oticamente estable implica que las trayectorias que comienzan suficientemente cerca de ´el, tienden hacia ´el. Un punto de equilibrio x= 0 es exponencialmente estable si existen dos n´umeros positivos αyδtales que: ∀t > 0kx(t)k ≤ αkx(0)ke−δt para cualquier valor inicial x(0) dentro de la bola Bren torno al origen. La convergencia exponencial implica que el vector de estado converge al origen m´as r´apido que una funci´on exponencial, y la constante δse llama ritmo de convergencia exponencial. La estabilidad exponencial implica estabilidad asint´otica, pero no a la inversa. Un punto de equilibrio es globalmente asint´oticamente (o exponencialmente) estable si la estabilidad asint´otica (o exponencial) se mantiene para cualquier condici´on inicial. 4.5.3. M´etodo directo de Lyapunov La filosof´ıa b´asica de este m´edoto est´a en la extensi´on matem´atica de una observaci´on f´ısica b´asica: si la energ´ıa total de un sistema f´ısico (mec´anico, el´ectrico, etc.) se disipa continuamente, entonces el sistema, sea lineal o no lineal, debe llegar en alg´un momento a alg´un punto de equilibrio estable. De esta forma, puede concluirse la estabilidad de un sistema no lineal simplemente examinando la variaci´on de una ´unica funci´on escalar. 64 CAP´ ITULO 4. INTERFAZ DE SISTEMAS NO LINEALES El m´etodo directo de Lyapunov nos indica que dado un sistena ˙x=f(x), y siendo x= 0 un equilibrio de dicho sistema, si existe una funci´on escalar V:D⊂Rn→R, con x= 0  D, y si se cumple ˙ V(x) = ∂V ∂x [f(x) + g(x)·u]≤0x∈D V(x)>0∀x∈D−{0} V(0) = 0 Entonces el origen x∗= 0 es estable en sentido de Lyapunov. Adem´as, si se cumple ˙ V(x) = ∂V ∂x [f(x) + g(x)·u]<0∀x∈D−{0} el origen x∗= 0 es asintoticamente estable. Esta definici´on de estabilidad es local, ya que comprende un dominio D⊂Rny por lo tanto ||x(0)|| < δ ⇒l´ımt→+∞x(t) = 0 Con la estabilidad asint´otica global ∀x(0) ⇒l´ımt→+∞x(t) = 0 con lo que V(0) = 0 V(x)>0∀x∈Rn−{0} kxk → ∞ ⇒ V(x)→ ∞ ˙ V(x)<0∀x∈Rn−{0} Es decir, hace falta que las curvas de nivel sean todas cerradas, lo que implica que V(x) sea radialmente no acotada. 4.5.4. Cuencas de atracci´on mediante Lyapunov y LaSalle La cuenca de atracci´on se define como el conjunto de condiciones iniciales cuyas trayectorias terminan en el origen. En los casos de estabilidad global, la cuenca de atracci´on es Rn. El m´etodo de Lyapunov consiste en buscar una funci´on escalar V:Rn→Rtal que podamos demostrar que es Lyapunov (tal y como hemos definido en el apartado anterior) a partir de unas restricciones que nos delimitan una zona del espacio. Esa zona ser´a la estimaci´on de la cuenca de atracci´on, ya que en el caso de estabilidad asint´otica, las curvas de nivel siempre se cruzan hacia dentro. El teorema de LaSalle nos permite demostrar estabilidad asint´otica cuando ˙ V≤0y calcular la cuenca de atracci´on. Sea Ω⊂Dun conjunto compacto (cerrado y acotado) y positivamente invariante respecto al sistema ˙x=f(x). Sea V:D→Runa funci´on continua diferenciable tal que ˙ V(x)≤0en Ω. Sea Eel conjunto de todos los puntos donde ˙ V(x)=0yMel mayor conjunto invariante en E. Entonces, toda trayectoria que comience en Ω, tiende a Mcuando t→ ∞. El teorema de LaSalle extiende el teorema de Lyapunov en tres direcciones. Primero, proporciona una estimaci´on de la cuenca de atracci´on, la cual no tiene que ser de la forma Ωc={x∈Rn|V(x)≤c} 4.5. EVALUACI ´ ON DEL ALUMNO 65 Segundo, el teorema de LaSalle puede usarse en casos donde el sistema tenga un conjunto de puntos de equilibrio en vez de un punto de equilibrio aislado. Tercero, la funci´on V(x)no tiene que ser definida positiva. 4.5.5. Evaluaci´on en ISNL Para poder realizar la evaluaci´on de este env´ıo, se ha modificado Goodle GMS para transformar las leyes de control (uii= 1,2,3,4) y la funci´on de Lyapunov enviadas por el alumno, en expresiones simb´olicas en lenguaje MATLAB (compatible con el Symbolic Math Toolbox). A continuaci´on se muestra un fragmento del evaluador que define el profesor en la interfaz Goodle GMS: % Radio elipse radio = 1; paso = 0.5; % Sistema derx1 = f1+g1*u1; derx2 = f2+g2*u2; derx3 = f3+g3*u3; derx4 = f4+g4*u4; derVx = diff(Vx,x1)*(derx1) + diff(Vx,x2)*(derx2) + diff(Vx,x3)*(derx3) + diff(Vx,x4)*(derx4) Para comprobar la estabilidad del sistema, se ha realizado un algoritmo gen´erico que realiza un barrido en una regi´on determinada por una elipse, y que comprueba, a partir de una serie de iteraciones, el cumplimiento, para cada valor x en dicha elipse, de la condici´on expresada en (4.2). ˙ V(x) = ∂V ∂x [f(x) + g(x)·u]≤0(4.2) Si en alg´un momento de la iteraci´on, el c´alculo de la parte izquierda de la expresi´on (4.2) devuelve un valor positivo, la condici´on de estabilidad no se cumplir´ıa y el sistema no ser´ıa estable en el sentido de Lyapunov. En el c´odigo de ejemplo que se muestra a continuaci´on, se ha utilizado como regi´on la esfera mostrada en la figura 4.6 % Definimos el radio de la elipse y el tama~no de paso radio = 1; paso = 0.5; % Construimos la elipse x1min = -radio; x1max = +radio; x2min = -radio; 72 CAP´ ITULO 5. EVALUACI ´ ON EN QU´ IMICA ANAL´ ITICA En la predicci´on de una muestra utilizando el m´etodo de calibraci´on externo, la expresi´on general para calcular la desviaci´on est´andar de la predicci´on, en unidades de concentraci´on, viene dado por: Sx=Sy/x ms1 M+1 n+(y−¯y)2 m2Pn i=1(xi−¯x)2 donde Mes el n´umero de repeticiones del an´alisis de las muestras del problema, e yes la media aritm´etica de los valores de se˜nal obtenidos en los Man´alisis. Un n´umero importante de los par´ametros de an´alisis estad´ısticos necesarios para expresar los resultados anal´ıticos se calculan a mano normalmente, por ejemplo, las figuras de m´erito. Para expresar linealidad, el coeficiente de determinaci´on que se usa frecuentemente es: r2=Pn i=1(ˆyi−¯y)2 P(yi−¯y)2 En un an´alisis de regresi´on el cuadrado del coeficiente de correlaci´on entre xey,r2, que se conoce como coeficiente de determinaci´on, expresa la proporci´on de la variaci´on total explicada en t´erminos la regresi´on lineal. Si r2= 1, todas las observaciones encajan perfectamente en una l´ınea recta, y, consecuentemente, la variaci´on total en ypuede ser explicada en t´erminos de una l´ınea de regresi´on. Si, por otro lado, r2= 0, no existe correlaci´on entre xey. Sin embargo, la l´ınea de regresi´on, que es paralela al eje x, no puede explicar ninguna variaci´on en el eje y(Massart, D. L.; Vandeginste, B. G. M.; Buydens, L. M. C.; De Jong, S.; Lewi, P. J.; Smeyers-Verbeke, J., 1998). A´un as´ı, valores de r2cercanos a 1no implican necesariamente una buena relaci´on de los datos anal´ıticos (Miller, N. J.; Miller, J. C., 2009). En la literatura se propone una expresi´on alternativa de linealidad, la relaci´on entre la desviaci´on est´andar de la pendiente y la pendiente, que es, la desviaci´on est´andar relativa de la pendiente, expresada en % (Cuadros-Rodr´ıguez, L.; Garc´ıa Campa˜na, A. M.; Jim´enez Linares, C.; Rom´an Ceba, M., 1993): Linealidad( %) = 1−Sm m×100 Existen diferentes definiciones de la sensibilidad de un m´etodo anal´ıtico. La IUPAC recomienda la relaci´on entre se˜nales instrumentales y la concentraci´on anal´ıtica. Esto puede ser medido por el an´alisis de regresi´on ya que la relaci´on entre el error est´andar de la regresi´on y la pendiente, expresada en unidades de concentraci´on, establece la m´ınima diferencia de concentraci´on que es estad´ısticamente discernible en cualquier punto en la l´ınea de calibraci´on. Este par´ametro se conoce como la sensibilidad anal´ıtica (o resoluci´on anal´ıtica) (CuadrosRodr´ıguez, L.; Garc´ıa Campa˜na, A. M.; Jim´enez Linares, C.; Rom´an Ceba, M., 1993): γ−1=Sy/x m En t´erminos generales, el l´ımite de detecci´on de un m´etodo puede ser descrito como la concentraci´on que proporciona la se˜nal de un instrumento significativamente diferente del 5.1. PARTE EXPERIMENTAL 73 blanco o se˜nal de fondo (Miller, N. J.; Miller, J. C., 2009). En la d´ecada de los 70, IUPAC (Cuadros-Rodr´ıguez, L.; Garc´ıa Campa˜na, A. M.; Jim´enez Linares, C.; Rom´an Ceba, M., 1993) estipul´o que el l´ımite de detecci´on, expresado como la concentraci´on, xL, viene derivado de la medida m´as peque˜na, yL, donde yL= ¯ybL +kSbL;¯ybL es la media de las respuestas en blanco, SbL es la desviaci´on est´andar de las respuestas en blanco, y kes una constante. El l´ımite de detecci´on, xL, se obtiene como xL=kSbL msiendo mla pendiente de la l´ınea de calibraci´on. IUPAC recomienda encarecidamente usar un valor de constante k= 3. El procedimiento de IUPAC para calcular el l´ımite de detecci´on ha sido analizado por muchos autores. Long y Winefordner (Massart, D. L.; Vandeginste, B. G. M.; Buydens, L. M. C.; De Jong, S.; Lewi, P. J.; Smeyers-Verbeke, J., 1998), en un estudio cr´ıtico, propusieron una modificaci´on de la definici´on de IUPAC basado en la teor´ıa de la propagaci´on del error. La teor´ıa de la propagaci´on del error considera errores en los valores de myb: xL= 3xs(S2 bL +S2 b) + b m2 S2 m m Clayton et al. (1987) estipularon en su trabajo que los m´etodos tradicionales para determinar los l´ımites de detecci´on est´an basados en conseguir protecci´on ante las conclusiones de falso-positivo. Un mejor enfoque consiste en definir el l´ımite de detecci´on tal que se asegure la protecci´on ante falsos positivos y negativos. Clayton propuso el uso de un par´ametro ∆(α, β) en vez de k= 3. Este factor depende de α, β y de los grados de libertad (n−2) donde nes el n´umero total de pares de datos utilizados para construir la l´ınea de calibraci´on y αyβest´an relacionados con la probabilidad de errores de falso positivo y falso negativo, respectivamente. Una buena aproximaci´on se considera cuando α=β= 0,05. xL= ∆(α, β)Sy0 m donde Sy0se obtiene extrapolando el valor de la desviaci´on est´andar a una concentraci´on cero, utilizando la desviaci´on est´andar de la se˜nal en el punto, Y0: Sy0=Sy/xs1 m+1 n+(−¯x)2 Pn i=1(xi−¯x)2 Ejercicio 2 Cuando no existen materiales de referencia para la evaluaci´on de un m´etodo y ´este debe ser validado comparando sus resultados frente a los obtenidos con un m´etodo est´andar, o cuando se quieren comparar los resultados proporcionados por dos laboratorios diferentes, es necesario realizar una comparaci´on entre las medias de dos conjuntos de resultados ( ¯ X1y ¯ X2) (Ramis-Ramos, G.; Garc´ıa Alvarez-Coque, M. C., 2001; Miller, N. J.; Miller, J. C., 2009). Esta comparaci´on se realiza utilizando pruebas de comparaci´on, que son pruebas estad´ısticas empleadas para comparar la precisi´on entre dos conjuntos de datos por medio de la probabilidad de que la hip´otesis nula (H0) no haya sido rechazada. La hip´otesis nula consiste en que la 74 CAP´ ITULO 5. EVALUACI ´ ON EN QU´ IMICA ANAL´ ITICA diferencia entre las desviaciones est´andar y la media se debe ´unicamente a errores aleatorios. La prueba se lleva a cabo en dos pasos. Primero, se comparan las varianzas de ambos m´etodos a trav´es de la prueba F de Fisher. A continuaci´on, dependiendo de los resultados de esta prueba, se comparan las medias a trav´es de dos procedimientos. Para calcular la prueba F de Fisher se calcula el valor de Fcal a trav´es de la ecuaci´on: Fcal =S2 1 S2 2 Donde S2 1yS2 2son las varianzas de dos conjuntos de datos. Hay que destacar que la mayor varianza de ambos m´etodos recae en el numerador ya que Fcal > 1. El valor obtenido se compara con el valor tabulado Ftab obtenido de la distribuci´on estad´ıstica F, para el valor de importancia (α) escogido y los grados de libertad (n1−1) y(n2−1) donde n1yn2son el n´umero de medidas realizadas con los m´etodos 1 y 2 respectivamente. Si Fcal < Ftab, entonces no existen diferencias significativas entre las varianzas de los dos conjuntos de datos. En este caso, el siguiente paso consiste en realizar una prueba t de Student. Si n1on2son inferiores a 30, considerando una funci´on de densidad Gaussiana y que S2 1yS2 2no son significativamente diferentes, el valor tcal se calcula a trav´es de la siguiente expresi´on tcal =¯ X1−¯ X2 sS21 n1+1 n2 siendo S2la llamada varianza com´un que es calculada como: S2=(n1−1)S2 1+ (n2−1)S2 2 n1+n2−2 donde ttiene (n1+n2−2) grados de libertad. Finalmente, el valor de tcal obtenido se compara con el valor ttab (α, (n1+n2−2)). Si tcal < ttabl se acepta la hip´otesis nula, por lo que no hay diferencias significativas entre los dos conjuntos de resultados. Si Fcal > Ftab, no es posible calcular la varianza com´un S2. En ese caso, la prueba necesaria para la comparaci´on entre los dos conjuntos de datos es la prueba tde Cochran donde tcal es: tcal =¯ X1−¯ X2 sS2 1 n1+S2 2 n2 Los grados de libertad de ttab se calculan de acuerdo a la siguiente ecuaci´on: 5.1. PARTE EXPERIMENTAL 75 g.d.l =S2 1 n1+S2 2 n22 S2 1 n1 n1+1 + S2 2 n2 n2+1 −2 Entonces, si tcal < ttab se acepta la hip´otesis nula y se puede concluir que no hay diferencias significativas entre los dos conjuntos de datos para el nivel de confianza seleccionado. Ejercicio 3 En este ejercicio los alumnos tienen que comparar dos m´etodos a trav´es del estudio de muestras que contienen diferentes cantidades de analito. La prueba de comparaci´on de las medias no es adecuada en este caso, ya que ninguna variaci´on relativa a los m´etodos se ver´a afectada por las diferencias entre las muestras comparadas (Ramis-Ramos, G.; Garc´ıa AlvarezCoque, M. C., 2001; Miller, N. J.; Miller, J. C., 2009). En ese caso, la hip´otesis nula establecida es que las diferencias significativas entre las concentraciones determinadas por ambos m´etodos no existe. La hip´otesis no es cierta si la media de las diferencias es significativamente diferente de cero. La ecuaci´on de tcal para comparar la media con un valor conocido es: tcal =(¯ X−µ)√n S De acuerdo a la hip´otesis nula, µ= 0, por lo que (17) se traduce en: tcal =(¯ Xd)√n Sd Donde ¯ Xdindica la media de las diferencias y Sdla desviaci´on est´andar de las diferencias y, para tcal, los grados de libertad son n−1. Finalmente, si tcal < ttab la hip´otesis nula se acepta y, por lo tanto, los dos m´etodos no son significativamente diferentes. 5.1.2. Dise˜no del evaluador Los resultados enviados por los alumnos a trav´es del formulario de texto pueden ejecutarse como c´odigo MATLAB para generar un conjunto de variables en el espacio de trabajo (workspace). En este trabajo se presentan dos tipos de ficheros de MATLAB. Los ficheros encriptados de MATLAB, conocidos como archivos “p”, se utilizan para codificar las instrucciones necesarias para generar los datos de los alumnos, bloqueando as´ı cualquier alteraci´on de este c´odigo. Los ficheros abiertos de MATLAB, tambi´en conocidos como archivos “m”, se utilizan para almacenar las instrucciones necesarias para evaluar a los alumnos. El servidor ejecuta este c´odigo, y a continuaci´on el c´odigo evaluador dise˜nado por el profesor. En la figura 5.1 se muestra el flujo de informaci´on. El enunciado y el fichero “p” se los proporciona el profesor al alumno de forma independiente del servidor (usando un LMS por 76 CAP´ ITULO 5. EVALUACI ´ ON EN QU´ IMICA ANAL´ ITICA Figura 5.1: Flujo de informaci´on entre el profesor, el alumno y el servidor. ejemplo). El alumno debe ejecutar el fichero “p” en un MATLAB propio para obtener los datos de su enunciado en formato “html”. El c´odigo evaluador realiza los c´alculos con los datos entregados por el alumno para establecer las respuestas correctas. Se utilizan diferentes rangos de notas para cada tipo de ejercicio. Hay que destacar que el criterio de evaluaci´on es f´acilmente modificable por el profesor. El c´odigo de evaluaci´on no s´olo establece una nota, sino que tambi´en informa al alumno con un informe detallado de sus resultados. En la secci´on 5.3 se muestran los c´odigos de evaluaci´on empleados en cada uno de los ejercicios. 5.2. Resultados A continuaci´on se exponen los resultados obtenidos en los tres ejercicios y el an´alisis de la encuesta de satisfacci´on que se realiz´o a los alumnos. 5.2. RESULTADOS 77 5.2.1. Ejercicio 1 La primera parte del ejercicio consiste en generar los datos a trav´es del entorno de MATLAB. Las concentraciones y las se˜nales de datos de los m´etodos empleados, as´ı como las muestras anal´ıticas. se personalizan para cada alumno a trav´es de su DNI. Las medidas de cada alumno se obtienen mediante una regresi´on lineal con valores aleatorios para la pendiente y el t´ermino independiente, a˜nadiendo un error de medida del 5 % en los m´etodos y las medidas del problema. Las concentraciones est´andar permanecieron fijas entre los valores de 0.2 y 3.2. La concentraci´on del problema se escogi´o de forma autom´atica en el rango entre 0.5 y 3. Este proceso se lleva a cabo a trav´es de un fichero MATLAB, exercise1data.p, que puede ser descargado por los alumnos en la p´agina web de la asignatura (Moodle). Al ejecutar este fichero se genera un fichero HTML que muestra al alumno los datos necesarios para trabajar y que se obtienen a partir de su DNI.Como ejemplo, se muestra la informaci´on generada en el fichero HTML para el DNI 80071067: EXERCISE DATA ID number 80071067 The three measures for the standard 1 (x = 0.2) are: y1 = 4.25154, y2 = 3.93557, y3 = 4.30114 The three measures for the standard 2 (x = 0.4) are: y1 = 4.2702, y2 = 4.21205, y3 = 4.25277 The three measures for the standard 3 (x = 0.8) are: y1 = 4.73237, y2 = 4.96964, y3 = 4.78168 The three measures for the standard 4 (x = 1.6) are: y1 = 5.46605, y2 = 5.5696, y3 = 5.4491 The three measures for the standard 5 (x = 3.2) are: y1 = 7.45906, y2 = 7.40427, y3 = 7.12714 The three measures of the sample are: y1 = 4.65451, y2 = 4.91009, y3 = 4.89413 El problema propuesto se resuelve de acuerdo a esta informaci´on. El usuario debe utilizar el software ACOC (MacDougall, D.; Crummett, W. B., 1980; Long, G. L.; Winefordner, J. D., 1983) para obtener los par´ametros de las curvas de calibraci´on y las figuras de m´erito anal´ıticas, as´ı como la concentraci´on calculada con su correspondiente incertidumbre. Los resultados se env´ıan a la plataforma Goodle GMS. Para ello, cada alumno debe registrarse en el servidor con su DNI y contrase˜na. Los alumnos env´ıan la linealidad (lin), la sensivilidad anal´ıtica (res), los l´ımites de detecci´on de acuerdo a los criterios de Long y Winefordner (LODWL) (Massart, D. L.; Vandeginste, B. G. M.; Buydens, L. M. C.; De Jong, S.; Lewi, P. J.; Smeyers-Verbeke, J., 1998) y Clayton (LODC) (Clayton, C. A.; Hines, J. W.; Elkins, P. D., 1987), y, finalmente, la concentraci´on 78 CAP´ ITULO 5. EVALUACI ´ ON EN QU´ IMICA ANAL´ ITICA de molibdeno calculada en la muestra del problema (Xp), as´ı como la incertidumbre asociada (Ep). La incertidumbre se proporciona a trav´es de un valor de t-Student correspondiente a n-2 grados de libertad y a un nivel de significaci´on del 95 %. Los alumnos deben proporcionar la respuesta con un ´unico d´ıgito de incertidumbre. Los resultados se env´ıan a trav´es de un formulario de texto con la siguiente estructura: Quality_parameters = [lin res LODWL LODC]; Concentration = [xp ep]; La calificaci´on del alumno se calcula comparando su resultado con el resultado correcto calculado por MATLAB. La puntuaci´on m´axima es 10. Si la concentraci´on real est´a dentro del rango de valores estimado por los alumnos, obtienen 2.5 puntos. Si la incertidumbre asociada es correcta, obtienen 2.5 puntos. Por cada par´ametro de calidad correcto, obtienen 1.25 puntos. 5.2.2. Ejercicio 2 En este ejercicio los alumnos tienen que comparar los resultados conseguidos a trav´es de dos m´etodos de acuerdo a las indicaciones te´oricas que se muestran a continuaci´on. Al igual que el ejercicio anterior, cada alumno dispone de datos personalizados de acuerdo a su n´umero de DNI. Utilizando el mismo DNI de ejemplo, el alumno obtendr´a, tras ejecutar el script de MATLAB, exercise2data.p, un fichero HTML con la informaci´on num´erica. En este caso, la generaci´on de datos se ha dise˜nado de tal forma que las soluciones de los ejercicios generados se distribuyen en cuatro posibles casos, dependiendo de si la media o la desviaci´on est´andar mostraban diferencias significativas. Cada alumno tiene un conjunto de datos comprendido entre un valor m´aximo y m´ınimo de valores, y se le asigna uno de los cuatro posibles casos de forma aleatoria. Dependiendo del caso, los dos conjuntos de datos se generaron con diferentes valores de errores y media. Los valores espec´ıficos de cada caso fueron ajustados a trav´es de una extensiva simulaci´on hasta que la distribuci´on se consider´o aceptable. Como ejemplo, para un DNI 80071067, el script gener´o un fichero llamado “80071067.html” con los siguientes datos: NUMERICAL DATA FOR THE EXERCISE ID 80071067 Method A: Atomic absorption spectroscopy Fe2O3(percentage) 36.8961 36.6263 36.1783 34.7433 35.8801 Method B: Molecular spectroscopy 5.2. RESULTADOS 79 Fe2O3(percentage) 36.1608 36.0275 36.1827 35.7914 35.8459 36.1211 36.2558 35.8745 35.8983 Con esta informaci´on los alumnos deben aplicar la prueba estad´ıstica adecuada y enviar los resultados a Goodle GMS. Precisamente, tienen que enviar los valores calculados y tabulados de F, los valores de T y los resultados de la comparaci´on. En este caso, el alumno tiene que indicar la presencia de diferencias significativas con el n´umero 1 y su ausencia con el n´umero 0. As´ı, los resultados se env´ıan en un formulario de texto con la siguiente estructura: test_parameters = [Fcal Ftab Tcal Ttab]; results = res; Por ejemplo, para el DNI mostrado los resultados ser´an: test_parameters = [24.2764 5.0530 0.1249 4.3030]; results = 0; Si los resultados y par´ametros son correctos la puntuaci´on es 10, en caso contrario la puntuaci´on es 0. 5.2.3. Ejercicio 3 El objetivo de este ejercicio es validar un nuevo m´etodo anal´ıtico a trav´es de la comparaci´on de los resultados proporcionados por el nuevo m´etodo con los obtenidos de una referencia. Para resolver este ejercicio los alumnos tienen que aplicar las ecuaciones descritas anteriormente en la secci´on Materiales y M´etodos, teniendo en cuenta que en este caso tienen que comparar dos m´etodos a trav´es del estudio de muestras que contienen diferentes cantidades de analito. Como en el ejercicio anterior, cada alumno tiene datos personalizados de acuerdo a su n´umero de DNI siguiendo el mismo procedimiento mencionado anteriormente. En este caso, los datos pertenecen ´unicamente a dos posibles casos, dependiendo de si hay diferencias significativas o no. El dise˜no de los par´ametros tambi´en se realiz´o a trav´es de una extensiva simulaci´on como en el Ejercicio 2. Usando el mismo DNI de ejemplo, el alumno obtiene, tras ejecutar el script generador de MATLAB, “exercise3data.p”, un fichero HTML con la informaci´on num´erica. Como ejemplo, para el DNI 80071067, el script genera un fichero 80071067.html con la siguiente informaci´on: 80 CAP´ ITULO 5. EVALUACI ´ ON EN QU´ IMICA ANAL´ ITICA NUMERICAL DATA FOR THE EXERCISE ID 80071067 Method A New method Antimony (mg/m3) 86.22 40.48 37.15 32.49 66.75 20.47 66.96 44.35 54.63 Method B Standard official method Antimony (mg/m3) 83.62 45.05 39.77 37.11 72.21 22.84 68.59 47.45 52.51 Con esta informaci´on los alumnos deben aplicar la prueba estad´ıstica adecuada y enviar los resultados a Goodle GMS. Los alumnos env´ıan los valores de T calculados (Tcal) y tabulados (Ttab), y los resultados de la comparaci´on (res), si existen diferencias o no entre los m´etodos A y B. Como en el ejemplo anterior, el alumno tiene que indicar la presencia de diferencias significativas con el n´umero 1 y su ausencia con el 0. As´ı, los resultados se env´ıan en un formulario con la siguiente estructura: test_parameters = [Tcal Ttab]; results = res; Por ejemplo, para el DNI mostrado anteriormente los resultados ser´an: test_parameters = [2.2954 2.3060]; results = 0; Si los resultados y par´ametros son correctos la puntuaci´on es 10, en caso contrario la puntuaci´on es 0. 5.2. RESULTADOS 81 Figura 5.2: Resultados de la encuesta de satisfacci´on a los alumnos. Los resultados se expresan mediante el porcentaje ( %) de respuestas de acuerdo a la siguiente escala: SA: Fuertemente de acuerdo; A: De Acuerdo; D: Desacuerdo; SD: Fuertemente en desacuerdo; NA: Sin respuesta. 5.2.4. An´alisis tras la evaluaci´on Tras realizar los ejercicios los alumnos fueron preguntados por la idoneidad de esta aplicaci´on y su satisfacci´on a trav´es de una encuesta. La encuesta se realiz´o a la totalidad de alumnos de un curso de anal´ıtica qu´ımica en diciembre de 2012. ´ Esta incluye un total de cinco preguntas en las que los alumnos indican su grado de conformidad o disconformidad sobre una declaraci´on. Las preguntas del cuestionario fueron las siguientes: 1. Emplear una p´agina web para enviar los resultados de los ejercicios. 2. Emplear un servidor para calcular autom´aticamente la nota de los ejercicios. 3. Goodle GMS es f´acil de utilizar. 4. La evaluaci´on autom´atica mejora el proceso de aprendizaje porque proporciona una evaluaci´on continua. 5. En general, ¿est´a usted satisfecho con el curso? De acuerdo al resumen de los resultados obtenidos mostrados en la siguiente ilustraci´on (Figura 5.2) se puede destacar el alto grado de satisfacci´on sobre el prototipo y su simplicidad de uso. 88 CAP´ ITULO 5. EVALUACI ´ ON EN QU´ IMICA ANAL´ ITICA 27, 2.052; 28, 2.048; 29, 2.045]; test_f5_doble=[647.8, 799.5, 864.2, 899.6, 921.8, 937.1, 948.2, 956.7, 963.3, 968.6; 38.51, 39.00, 39.17, 39.25, 39.30, 39.33, 39.36, 39.37, 39.39, 39.40; 17.44, 16.04, 15.44, 15.10, 14.88, 14.73, 14.62, 14.54, 14.47, 14.42; 12.22, 10.65, 9.979, 9.605, 9.364, 9.197, 9.074, 8.980, 8.905, 8.844; 10.01, 8.434, 7.764, 7.388, 7.146, 6.978, 6.853, 6.757, 6.681, 6.619; 8.813, 7.26, 6.599, 6.227, 5.988, 5.820, 5.695, 5.600, 5.523, 5.461; 8.073, 6.542, 5.890, 5.523, 5.285, 5.119, 4.995, 4.899, 4.823, 4.761; 7.571, 6.059, 5.416, 5.053, 4.817, 4.652, 4.529, 4.433, 4.357, 4.295; 7.209, 5.715, 5.078, 4.718, 4.484, 4.320, 4.197, 4.102, 4.026, 3.964; 6.937, 5.456, 4.826, 4.468, 4.236, 4.072, 3.950, 3.855, 3.779, 3.717]; N = [5 10]; %Minimum and maximum number of samples X = [10 90]; %Minimum and maximum value of the concetration of the sample % Randomly determine one of the four different cases if rand(1)<0.5 % Both methods have the same mean erelx = 0; else % The means differ 5% if rand(1)<0.5 erelx = 0.05; else erelx = -0.05; end end if rand(1)<0.5 % Both methods have a similar variance % Maximum measurement errors of 2% erela = 0.02; erelb = 0.02; else 5.3. MATERIAL SUPLEMENTARIO 89 % There are significative differences in the variance % Maximum measurement errors of 1% and 4% if rand(1)<0.5 erela = 0.01; erelb = 0.04; else erela = 0.04; erelb = 0.01; end end % Determine the number of samples and the problem concentration na = N(1)+round((N(2)-N(1))*rand(1)); nb = N(1)+round((N(2)-N(1))*rand(1)); xa = X(1)+round((X(2)-X(1))*rand(1)); xb = (1+erelx)*xa; % Generate the measurements metodo_a = []; for i = 1:na e = 2*(0.5-rand(1))*erela*xa; metodo_a(i) = xa + e; end metodo_b = []; for i = 1:nb e = 2*(0.5-rand(1))*erelb*xb; metodo_b(i) = xb + e; end disp(sprintf(’File %d.html generated’,DNI)); comentarios = ’<html lang="es"> <body> EXERCISE DATA <br>’; comentarios = strcat(comentarios,sprintf(’ ID %d <br>’,DNI)); comentarios = strcat(comentarios,sprintf(’<br>Method A Atomic absorption spectroscopy <br> Fe2O3 (percentage)<br>’)); for i=1:na comentarios = strcat(comentarios,sprintf(’%g <br>’,metodo_a(i))); end comentarios = strcat(comentarios,sprintf(’<br>Method B Molecular spectroscopy <br> Fe2O3 (percentage)<br>’)); for i=1:nb comentarios = strcat(comentarios,sprintf(’%g <br>’,metodo_b(i))); 90 CAP´ ITULO 5. EVALUACI ´ ON EN QU´ IMICA ANAL´ ITICA end comentarios = strcat(comentarios,’</body> </html>’); fid = fopen(sprintf(’%d.html’,DNI),’w’); fprintf(fid,’%s’,comentarios); fclose(fid); exercise2eval.m % The ID is stored in variable dni is text form automatically by GOODLE GMS DNI = str2num(dni); % A deterministic seed based on the ID is provided rand(’seed’,DNI); t_distr=[1,12.706; 2, 4.303; 3, 3.182; 4, 2.776; 5, 2.571; 6, 2.447; 7, 2.365; 8, 2.306; 9, 2.262; 10, 2.228; 11, 2.201; 12, 2.179; 13, 2.160; 14, 2.145; 15, 2.131; 16, 2.120; 17, 2.110; 18, 2.101; 19, 2.093; 20, 2.086; 21, 2.080; 22, 2.074; 23, 2.069; 24, 2.064; 25, 2.060; 26, 2.056; 27, 2.052; 28, 2.048; 29, 2.045]; test_f5_doble=[647.8, 799.5, 864.2, 899.6, 921.8, 937.1, 948.2, 956.7, 963.3, 968.6; 38.51, 39.00, 39.17, 39.25, 39.30, 39.33, 39.36, 39.37, 39.39, 39.40; 5.3. MATERIAL SUPLEMENTARIO 91 17.44, 16.04, 15.44, 15.10, 14.88, 14.73, 14.62, 14.54, 14.47, 14.42; 12.22, 10.65, 9.979, 9.605, 9.364, 9.197, 9.074, 8.980, 8.905, 8.844; 10.01, 8.434, 7.764, 7.388, 7.146, 6.978, 6.853, 6.757, 6.681, 6.619; 8.813, 7.26, 6.599, 6.227, 5.988, 5.820, 5.695, 5.600, 5.523, 5.461; 8.073, 6.542, 5.890, 5.523, 5.285, 5.119, 4.995, 4.899, 4.823, 4.761; 7.571, 6.059, 5.416, 5.053, 4.817, 4.652, 4.529, 4.433, 4.357, 4.295; 7.209, 5.715, 5.078, 4.718, 4.484, 4.320, 4.197, 4.102, 4.026, 3.964; 6.937, 5.456, 4.826, 4.468, 4.236, 4.072, 3.950, 3.855, 3.779, 3.717]; N = [5 10]; %Minimum and maximum number of samples X = [10 90]; %Minimum and maximum value of the concetration of the sample % Randomly determine one of the four different cases if rand(1)<0.5 % Both methods have the same mean erelx = 0; else % The means differ 5% if rand(1)<0.5 erelx = 0.05; else erelx = -0.05; end end if rand(1)<0.5 % Both methods have a similar variance % Maximum measurement errors of 2% erela = 0.02; erelb = 0.02; else % There are significative differences in the variance % Maximum measurement errors of 1% and 4% if rand(1)<0.5 erela = 0.01; erelb = 0.04; else erela = 0.04; 92 CAP´ ITULO 5. EVALUACI ´ ON EN QU´ IMICA ANAL´ ITICA erelb = 0.01; end end % Determine the number of samples and the problem concentration na = N(1)+round((N(2)-N(1))*rand(1)); nb = N(1)+round((N(2)-N(1))*rand(1)); xa = X(1)+round((X(2)-X(1))*rand(1)); xb = (1+erelx)*xa; % Generate the measurements metodo_a = []; for i = 1:na e = 2*(0.5-rand(1))*erela*xa; metodo_a(i) = xa + e; end metodo_b = []; for i = 1:nb e = 2*(0.5-rand(1))*erelb*xb; metodo_b(i) = xb + e; end % Methods A and B are sorted depending on the variance if std(metodo_a)<std(metodo_b) x1 = mean(metodo_b); s1 = std(metodo_b); n1 = length(metodo_b); x2 = mean(metodo_a); s2 = std(metodo_a); n2 = length(metodo_a); else x1 = mean(metodo_a); s1 = std(metodo_a); n1 = length(metodo_a); x2 = mean(metodo_b); s2 = std(metodo_b); n2 = length(metodo_b); end [x1 s1 n1;x2 s2 n2]; % the variances of the two methods are compared through the "F-test" or % "Fischer test". Ftab=test_f5_doble(n2-1,n1-1); Fcal=s1^2/s2^2; 5.3. MATERIAL SUPLEMENTARIO 93 % Fcal and Ftab are compared to determine the appropriate mean test if Fcal < Ftab % There are not significative differences between the variances of the % two sets of results % The commom variance is used in the test s_2 = ((n1-1)*s1^2+(n2-1)*s2^2)/(n1+n2-2); t_cal = abs(x1-x2)/sqrt(s_2*(1/n1+1/n2)); t_tab=t_distr(n1+n2-2,2); else % There are significative differences between the variances of the % two sets of results % The t-test of Cochran is used t_cal = abs(x1-x2)/sqrt(s1^2/n1+s2^2/n2); gl = (s1^2/n1+s2^2/n2)^2/(((s1^2/n1)^2)/(n1+1)+((s2^2/n2)^2)/(n2 +1))-2; gl = round(gl); t_tab = t_distr(gl,2); end % Correct solution [Fcal Ftab t_cal t_tab]; comentarios = ’<html lang="es"> <body> RESULTS <br>’; comentarios = strcat(comentarios,sprintf(’ ID %s <br><br>’,dni)); comentarios = strcat(comentarios,sprintf(’ Correct solution: <br>’)); comentarios = strcat(comentarios,sprintf(’ Fcal = %g <br>’,Fcal)); comentarios = strcat(comentarios,sprintf(’ Ftab = %g <br>’,Ftab)); comentarios = strcat(comentarios,sprintf(’ Tcal = %g <br>’,t_cal)); comentarios = strcat(comentarios,sprintf(’ Ttab = %g <br>’,t_tab)); if(t_cal<t_tab) comentarios = strcat(comentarios,sprintf(’ There are not significative differences <br>’)); else comentarios = strcat(comentarios,sprintf(’ There are significative differences <br>’)); end 94 CAP´ ITULO 5. EVALUACI ´ ON EN QU´ IMICA ANAL´ ITICA comentarios = strcat(comentarios,sprintf(’<br> Evaluation criteria:<br>’)); comentarios = strcat(comentarios,sprintf(’If the results and the parameters are correct the grade is 10 <br>’)); comentarios = strcat(comentarios,sprintf(’Else the grade is 0 <br>’)); comentarios = strcat(comentarios,sprintf(’The maximum error is 5 percent<br>’)); comentarios = strcat(comentarios,sprintf(’<br>’)); nota = 10; eps = 0.05; if abs(Fcal-Test_parameters(1))>eps*Fcal comentarios = strcat(comentarios,sprintf(’Fcal is wrong<br>’)); nota = 0; end if abs(Ftab-Test_parameters(2))>eps*Ftab comentarios = strcat(comentarios,sprintf(’Ftab is wrong<br>’)); nota = 0; end if abs(t_cal-Test_parameters(3))>eps*t_cal comentarios = strcat(comentarios,sprintf(’Tcal is wrong<br>’)); nota = 0; end if abs(t_tab-Test_parameters(4))>eps*t_tab comentarios = strcat(comentarios,sprintf(’Ttab is wrong<br>’)); nota = 0; end if (Results == 0)&(t_cal>t_tab) comentarios = strcat(comentarios,sprintf(’The results is wrong<br>’)); nota = 0; end if (Results == 1)&(t_cal<t_tab) comentarios = strcat(comentarios,sprintf(’The results is wrong<br>’)); nota = 0; end comentarios = strcat(comentarios,sprintf(’<br>Grade %g <br>’,nota)); 5.3. MATERIAL SUPLEMENTARIO 95 5.3.3. Ejercicio 3 exercise3data.p DNI=input (’Input ID:’); % A deterministic seed based on the ID is provided rand(’seed’,DNI); t_distr=[1,12.706; 2, 4.303; 3, 3.182; 4, 2.776; 5, 2.571; 6, 2.447; 7, 2.365; 8, 2.306; 9, 2.262; 10, 2.228; 11, 2.201; 12, 2.179; 13, 2.160; 14, 2.145; 15, 2.131; 16, 2.120; 17, 2.110; 18, 2.101; 19, 2.093; 20, 2.086; 21, 2.080; 22, 2.074; 23, 2.069; 24, 2.064; 25, 2.060; 26, 2.056; 27, 2.052; 28, 2.048; 29, 2.045]; N = [5 10]; %Minimum and maximum number of samples X = [10 90]; %Minimum and maximum value of the concetration of the sample % Randomly determine one of the two different cases % Each case provides a different measurement error for each method if rand(1)<1 erel1 = 0.2; erel2 = 0.1; 96 CAP´ ITULO 5. EVALUACI ´ ON EN QU´ IMICA ANAL´ ITICA else erel1 = 0.01; erel2 = 0.01; end % Number of samples analized n = N(1)+round((N(2)-N(1))*rand(1)); % Generate the measurements taking into account the error of each method dat_met_1 = []; dat_met_2 = []; for i = 1:n x = X(1)+round((X(2)-X(1))*rand(1)); e1 = 2*(0.5-rand(1))*erel1*x; e2 = 2*(0.5-rand(1))*erel2*x; dat_met_1(i) = round(100*(x + e1))/100; dat_met_2(i) = round(100*(x + e1 + e2 + 3))/100; end disp(sprintf(’File %d.html generated’,DNI)); comentarios = ’<html lang="es"> <body> EXERCISE DATA <br>’; comentarios = strcat(comentarios,sprintf(’ ID %d <br>’,DNI)); comentarios = strcat(comentarios,sprintf(’<br>Method A <br> New method<br>Antimony(mg/m3)<br>’)); for i=1:n comentarios = strcat(comentarios,sprintf(’%g <br>’,dat_met_1(i))); end comentarios = strcat(comentarios,sprintf(’<br>Method B <br> Standard method<br>Antimony(mg/m3)<br>’)); for i=1:n comentarios = strcat(comentarios,sprintf(’%g <br>’,dat_met_2(i))); end comentarios = strcat(comentarios,’</body> </html>’); fid = fopen(sprintf(’%d.html’,DNI),’w’); fprintf(fid,’%s’,comentarios); fclose(fid); exercise3eval.m DNI = str2num(dni); rand(’seed’,DNI); t_distr=[1,12.706; 2, 4.303; 5.3. MATERIAL SUPLEMENTARIO 97 3, 3.182; 4, 2.776; 5, 2.571; 6, 2.447; 7, 2.365; 8, 2.306; 9, 2.262; 10, 2.228; 11, 2.201; 12, 2.179; 13, 2.160; 14, 2.145; 15, 2.131; 16, 2.120; 17, 2.110; 18, 2.101; 19, 2.093; 20, 2.086; 21, 2.080; 22, 2.074; 23, 2.069; 24, 2.064; 25, 2.060; 26, 2.056; 27, 2.052; 28, 2.048; 29, 2.045]; N = [5 10]; %Minimum and maximum number of samples X = [10 90]; %Minimum and maximum value of the concetration of the sample % Randomly determine one of the two different cases % Each case provides a different measurement error for each method if rand(1)<1 erel1 = 0.2; erel2 = 0.1; else erel1 = 0.01; erel2 = 0.01; end % Number of samples analized n = N(1)+round((N(2)-N(1))*rand(1)); % Generate the measurements taking into account the error 104CAP´ ITULO 6. INTERFAZ WEB PARA LA GENERACI ´ ON DE PROBLEMAS DE CONTROL un alumno en la p´agina de entrega del ejercicio. El c´odigo accede a la base de datos, recupera el DNI y genera una ´unica cadena de caracteres que se muestra en el interfaz del alumno como c´odigo HTML. Esto permite personalizar en funci´on del DNI algunos de los par´ametros (como por ejemplo la funci´on de transferencia de la planta de un problema de control) utilizando m´etodos m´as sofisticados que los explicados previamente, en los que se realizaba una asignaci´on del valor de los par´ametros en funci´on de los d´ıgitos del DNI. En particular, en esta secci´on se explica c´omo generar cualquier n´umero de par´ametros aleatorios de forma determinista para cada alumno, lo permite su uso en asignaturas de control autom´atico. El funcionamiento de este mecanismo se detalla en la figura 6.2. Como se ha descrito en la secci´on anterior, consideramos ejercicios de problemas de dise˜no de controladores para sistemas lineales definidos por el diagrama de bloques mostrado en la Figura 6.1. Un ejercicio est´a definido por el modelo de los sistemas, las especificaciones, la estrucutura del controlador y opcionalmente el ´ındice de desempe˜no objetivo. En esta secci´on presentamos el procedimiento seguido para generar de forma autom´atica el enunciado individualizado garantizando la existencia de soluci´on y la homogeneidad en la dificultad y procedimientos de resoluci´on de los mismos. En general, la generaci´on aleatoria de sistemas y/o especificaciones no puede garantizar ninguna propiedad respecto a la existencia de soluci´on del problema, ni respecto a los procedimientos para obtenerla. El m´etodo propuesto consiste en definir problemas a partir de un problema base proporcionado por el profesor, de forma que sean equivalentes en dificultad y procedimiento de soluci´on. Este procedimiento permite utilizar los ejercicios disponibles en los libros de texto de la materia como por ejemplo (Dorf and Bishop, 2005), (Guzm´an, J.L, Costa, R., Berenguel, M., Dormido, S., 2012), (Ogata, 2011). Una variaci´on acotada suficientemente peque˜na de los par´ametros de los sistemas y de las especificaciones puede dar como resultado problemas equivalentes, pero no ofrece ninguna garant´ıa y adem´as, los problemas pueden resultar demasiado parecidos. En la herramienta desarrollada hemos seguido otro procedimiento basado en aplicar dos transformaciones que no afecten la naturaleza del problema base, pero s´ı a sus par´ametros. En particular, un escalado temporal y un escalado de la ganancia del sistema en bucle abierto. En particular, para generar el sistema de un ejercicio, se definen dos par´ametros individualizados de escalado, Ayτ. El sistema escalado se define de la siguiente forma: G(s) = A·Gb(τs) siendo G(s)la funci´on de transferencia generada a partir de la funci´on de transferencia del problema base Gb(s). Teniendo en cuenta las propiedades de la transformada de Laplace, esta transformaci´on es equivalente a un cambio en la escala de tiempo de factor τ, es decir, t=tb/τ siendo t la escala de tiempo del problema generado y tb la escala de tiempo del problema base. 6.2. GENERACI ´ ON DE ENUNCIADOS INDIVIDUALIZADOS 105 Especificaci´on Base Escalada Sobreoscilaci´on So So Tiempo de subida Ts Ts·tau Tiempo de establecimiento Te Te·tau Frecuencia de corte Wc Wc/tau Margen de fase Mf Mf Margen de ganancia Mg Mg Error en posici´on Erp Erp Error en velocidad Erv Erv·tau Error en aceleraci´on Era Era·tau2 Tabla 6.1: Escalado de especificaciones Especificaci´on Base Escalada Tiempo de subida Ts Ts·tau Integral del error al cuadrado ISE ISE/tau Integral del error absoluto del error IAE IAE/tau Tiempo de integraci´on (ISE e IAE) Tf Tf·tau Tabla 6.2: ´ Indices de desempe˜no Base Normalizado Un escalado en la escala temporal no modifica la naturaleza del problema de dise˜no, y el escalado de la ganancia del sistema en bucle abierto puede ser compensado por la ganancia del controlador. En particular, se puede demostrar que la ley de control C(s) = Cb(τs)/A siendo Cb(s)una ley de control soluci´on del problema base, garantiza que el sistema en bucle cerrado resultante es igual al sistema base en bucle cerrado con el controlador base, pero con un cambio en la escala temporal. Esto implica que si las especificaciones han sido escaladas de forma apropiada, el controlador C(s)cumple todas las especificaciones para la planta modificada. La tabla 6.1 muestra las operaci´on escalada para cada una de las especificaciones consideradas. Con respecto a la evaluaci´on de los ´ındices de desempe˜no, es posible comparar los controladores dise˜nados para diferentes plantas, normalizando los ´ındices con respecto a la escala de tiempo del problema base tb. Esto permite un alto grado de personalizaci´on, ya que cada alumno se enfrenta a un sistema diferente, pero a la vez est´a compitiendo con el resto de alumnos del curso. La tabla 6.2 muestra los ´ındices de desempe˜no normalizados. 106CAP´ ITULO 6. INTERFAZ WEB PARA LA GENERACI ´ ON DE PROBLEMAS DE CONTROL Interfaz gráfica de generación de evaluadores Procesamiento de datos y generación de valores Usuario HTML5 PHP JSON Figura 6.3: Arquitectura HTML/AJAX/PHP de la interfaz Figura 6.4: Definici´on de la planta G(s) y el controlador 6.3. Arquitectura de la plataforma La plataforma est´a formada por dos componentes. El primero es la interfaz gr´afica mediante la cual se introducen los par´ametros que definen el ejercicio. El segundo es el motor que recoge esta informaci´on y genera la plantilla de entrega del alumno, las variables iniciales y el c´odigo evaluador. La interfaz gr´afica est´a dividida en dos zonas. La superior est´a formada por un sistema de navegaci´on por pesta˜nas que permite al profesor introducir toda la informaci´on necesaria para la generaci´on del problema: sistema nominal a partir del cual se van a generar las plantas, especificaciones que debe cumplir el sistema en bucle cerrado, el tipo de controlador que debe dise˜nar el alumno, evaluaci´on competitiva y exportar la pr´actica. En la Figura 6.4 se muestra esta interfaz gr´afica. En la parte inferior se muestran los resultados generados por la plataforma: representaci´on gr´afica del sistema nominal, estructura del controlador requerido y su plantilla de entrega, el c´odigo MATLAB que inicializa las variables y el c´odigo evaluador. La informaci´on generada por la plataforma se actualiza de forma autom´atica cada vez que se modifica alg´un dato en la interfaz. Esto se consigue a trav´es del env´ıo de peticiones as´ıncronas AJAX (acr´onimo de Asynchronous JavaScript And XML) a un script PHP encargado de procesar la informaci´on y generar los datos. De esta forma, es posible realizar cambios sobre el dise˜no del evaluador sin necesidad de recargar la interfaz web, como ocurre en el tradicional modelo de formularios HTML a trav´es de POST y GET, mejorando la interactividad, velocidad y usabilidad en la 6.3. ARQUITECTURA DE LA PLATAFORMA 107 Figura 6.5: Representaci´on gr´afica del sistema nominal Figura 6.6: Men´u Generaci´on de plantas plataforma. La zona superior de la plataforma est´a dividida en cinco men´us: sistema nominal, generaci´on de plantas, especificaciones, objetivo competitivo y exportar. En el men´u Sistema nominal, mostrado en la Figura 6.5, el profesor define las funciones de transferencia del problema base introduciendo un vector de coeficientes para cada polinomio en s. Desde aqu´ı puede describir la informaci´on de la planta G(s), la perturbaci´on Gd(s)y el controlador que tiene que dise˜nar el alumno entre controladores P, PD, PI, PID, red de avance, red de retraso, red mixta y controlador libre. En el men´u Generaci´on de plantas, mostrado en la Figura 6.6, el profesor define los valores m´ınimos y m´aximos de los factores de escalado A y τ. Para cada alumno, el valor concreto de A y τse genera de forma aleatoria a partir de su DNI. Esto se consigue generano dos n´umeros aleatorios usando como semilla de la funci´on rand de MATLAB el DNI del alumno. Esto permite obtener estos dos n´umeros aleatorios de forma determinista, permitiendo que el evaluador pueda generar los mismos par´ametros a en el momento de evaluar el trabajo del alumno. En el men´u Especificaciones, mostrado en la Figura 6.7, el profesor selecciona de una tabla las especificaciones del problema base, indicando los valores m´aximo y m´ınimo de una determinada propiedad y el peso en la nota del ejercicio. La nota del alumno se calcula como la suma del peso de aquellas especificaciones que cumple su sistema en bucle cerrado. En el men´u Objetivo competitivo el profesor puede activar la opci´on de evaluaci´on competitiva entre los alumnos. Esto se consigue a trav´es del c´alculo de una figura de m´erito que caracteriza el rendimiento del controlador dise˜nado por cada alumno, estableciendo una clasificaci´on de puntuaciones. Entre los criterios disponibles se encuentra minimizar la integral del error al cuadrado (ISE), minimizar la integrar del valor absoluto del error (IAE) y minimizar el tiempo de subida. El tiempo de integraci´on determinado por tfdepende de la din´amica de 108CAP´ ITULO 6. INTERFAZ WEB PARA LA GENERACI ´ ON DE PROBLEMAS DE CONTROL la planta, y su valor se puede especificar en la herramienta o dejar libre para que el sistema lo calcule autom´aticamente. El c´alculo del objetivo competitivo s´olo se realiza cuando el controlador cumple todas las especificaciones del enunciado. Aquellos controladores que no cumplen las especificaciones se les asigna una figura de m´erito negativa para que Goodle GMS los distinga a la hora de calcular la nota final. La nota final se calcula de la siguiente manera. A todos los alumnos que no hayan cumplido las especificaciones se les asigna un 0. El resto de alumnos reciben una nota entre un valor m´ınimo y m´aximo definido por el profesor en funci´on de su figura de m´erito en relaci´on a la de sus compa˜neros. El profesor define dos valores identificados por las variables notamin ynotamax. Goodle GMS asigna notamin al alumno con una soluci´on con la peor figura de m´erito y notamax al alumno con la mejor figura de m´erito. Al resto se reparten de forma lineal entre ambos valores. Para ilustrar este concepto pongamos como ejemplo un ejercicio en el que se le exige al alumno dise˜nar un controlador que minimice el tiempo de subida Tsde un sistema y donde la sobreoscilaci´on m´axima permitida SO( %) se establece en 19. La tabla ?? muestra los resultados entregados por 6 alumnos: Tiempo de subida (s) Figura de m´erito (1/Ts) Sobreoscilaci´on ( %) Nota 1.4 0.71 17 5 1.3 0.77 18 7.5 1.2 0.83 19 10 1.1 0.91 20 0 1.0 1 21 0 1.1 0.91 22 0 Tabla 6.3: Ejemplo c´alculo de nota seg´un los resultados de los alumnos En este ejemplo los tres ´ultimos alumnos no cumplen la especificaci´on exigida, ya que superan el umbral establecido para la sobreoscilaci´on, y se les asigna un 0 como nota. Para los restantes ejercicios se establece la nota m´axima (variable notamax establecida a 10 en el evaluador) para el alumno con mejor figura de m´erito y la nota m´ınima (variable notamin establecida a 5 en el evaluador). La figura de m´erito de este ejercicio se define como la inversa del tiempo de subida. Por ´ultimo el men´u Exportar permite generar de forma autom´atica un archivo compatible con la aplicaci´on Goodle GMS. El profesor puede importar este archivo en la plataforma, creando un ejercicio con los par´ametros definidos en la interfaz. 6.3.1. Idiomas La plataforma permite a˜nadir diferentes idiomas que se utilizan para la informaci´on mostrada en la interfaz gr´afica y en la generaci´on de los comentarios de MATLAB. Para a˜nadir un idioma nuevo s´olo hay que incluir un fichero de texto plano con las traducciones pertinentes. Cada vez que se accede a la plataforma web autom´aticamente se analizan los ficheros de 6.3. ARQUITECTURA DE LA PLATAFORMA 109 Figura 6.7: Men´u Lista de especificaciones idioma instalados y se muestra un men´u en la zona superior de la interfaz para seleccionar el idioma. 6.3.2. Generaci´on del evaluador Una vez proporcionada la informaci´on del problema base y de los l´ımites de escalado, la aplicaci´on devuelve, adem´as de una representaci´on gr´afica del sistema, tres fragmentos de c´odigo MATLAB: la plantilla de soluci´on, el c´odigo generador de par´ametros y el c´odigo evaluador. A continuaci´on se muestra parte del c´odigo generado por la plaforma en la inicializaci´on de la semilla para la generaci´on aleatoria de plantas. DNI = str2num(dni); rand(’seed’,DNI); A = Amin + (Amax-Amin)*rand(1); Tau = Taumin + (Taumax-Taumin)*rand(1); num_str = ’[’; den_str = ’[’; for i=1:length(num_pro) num(i) = A*num_pro(i)*Tau^(length(num_pro)-i); num_str = sprintf(’%s %s’,num_str,num2str(num(i))); end num_str = sprintf(’%s %s’,num_str,’]’); for i=1:length(den_pro) den(i) = den_pro(i)*Tau^(length(den_pro)-i); den_str = sprintf(’%s %s’,den_str,num2str(den(i))); end den_str = sprintf(’%s %s’,den_str,’]’); Estos fragmentos de c´odigo MATLAB est´an dise˜nados para ser utilizados junto con la aplicaci´on Goodle GMS. Como se ha descrito en la secci´on de descripci´on de Goodle GMS, el procedimiento de evaluaci´on consiste en la ejecuci´on sucesiva de c´odigo generado por la aplicaci´on, por el alumno y por el profesor. En particular, la aplicaci´on Goodle GMS propor- 110CAP´ ITULO 6. INTERFAZ WEB PARA LA GENERACI ´ ON DE PROBLEMAS DE CONTROL ciona de cada alumno, su n´umero de identificaci´on personal (en general el DNI sin letra) en formato cadena de caracteres. Esta es la informaci´on utilizada por los c´odigos de generaci´on de par´ametros y de evaluaci´on para individualizar el ejercicio. Cada vez que el script recibe una petici´on AJAX se inicia el diagrama de flujo reflejado en la Figura 6.8 y se realizan cuatro operaciones. La primera permite representar gr´aficamente los datos introducidos por el profesor para definir el sistema nominal, la estructura del controlador escogida y la perturbaci´on Gd(s). El resultado de esta operaci´on se muestra en la Figura 6.5. El segundo bloque de operaciones se encarga de generar el enunciado personalizado del alumno. Para ello se analizan las especificaciones que ha seleccionado el profesor y se realiza su escalado. El tercer y cuarto bloque son los encargados de generar el sistema en bucle abierto personalizado para el alumno y el objetivo competitivo. Toda esta informaci´on sirve como punto de entrada al bloque de construcci´on del evaluador, que es el encargado de simular el controlador dise˜nado por el alumno y comprobar si cumple las especificaciones indicadas. Por ´ultimo, si el profesor ha seleccionado la opci´on de exportar la pr´actica el sistema devolver´a un fichero en formato .prac y comprimido en formato .zip compatible con la plataforma Goodle GMS. Con el objetivo de aumentar el n´umero de especificaciones disponibles en la plataforma (sobreoscilaci´on, tiempo de subida, etc.), se ha desarrollado un mecanismo modular donde se agrupan los c´alculos requeridos para cada especificaci´on. Los bloques An´alisis de especificaciones ySelecci´on de filtrado de m´odulos son los responsables de analizar qu´e operaciones son necesarias para la comprobaci´on de cada especificaci´on. Inicialmente se han definido tres m´odulos: 1. Par´ametros subamortiguados. 2. Par´ametros de frecuencia. 3. Error en r´egimen permanente. El primero permite calcular los par´ametros subamortiguados tales como tiempo de subida y tiempo de establecimiento. El segundo obtiene los par´ametros de margen de ganancia y frecuencia de corte en el dominio de la frecuencia. El ´ultimo c´alcula los diferentes errores en r´egimen permanente en funci´on del tipo de sistema. En funci´on de las especificaciones incluidas en el ejercicio por el profesor y del ´ındice de desempe˜no, el c´odigo generado por la interfaz contendr´a o no estos m´odulos. 6.4. Experiencias en el aula La plataforma desarrollada ha sido aplicada con ´exito en el curso Fundamentos de Control Autom´atico de segundo del Grado en ingenier´ıa de tecnolog´ıas industriales de la Universidad de Sevilla durante el curso 2013-14 para asignar y evaluar cinco ejercicios diferentes de dise˜no de controladores PID a los 453 alumnos matriculados en la asignatura. El servidor Goodle GMS se utiliz´o para corregir de forma autom´atica las m´as de 1500 entregas recibidas. El enunciado individualizado para cada alumno defin´ıa el numerador y el denominador del sistema en bucle abierto usando sintaxis MATLAB, el tipo de controlador a dise˜nar y un 6.4. EXPERIENCIAS EN EL AULA 111 Análisis de datos Representación gráfica de G(s), C(s) y Gd(s) Construcción de la plantilla de entrega Inicialización de variables Enunciado personalizado Escalado de la planta y controlador Sistema en bucle cerrado Análisis de especificaciones Objetivo competitivo Construcción del evaluador Selección y filtrado de módulos Devolver datos ¿Exportar gráfica? Generar fichero Sí Comprimir ZIP Escalado de especificaciones No Escalado figura de mérito Generación de comentarios Cálculo de nota INICIO FIN Figura 6.8: Diagrama de flujo para la generaci´on de evaluadores 112CAP´ ITULO 6. INTERFAZ WEB PARA LA GENERACI ´ ON DE PROBLEMAS DE CONTROL conjunto de especificaciones. Para el n´umero de identificador 28847022 se generaron de forma autom´atica los siguientes enunciados: Problema 1 Para la planta G1 definida por los siguientes polinomios: Numerador = [ 0 0 0 332.8 ]; Denominador = [ 0.1461 2.774 8.427 0 ]; dise~ne un controlador PD que cumpla las siguientes especificaciones: SO < 20 Ts (10-90%) < 0.1622 Problema 2 Para la planta G2 definida por los siguientes polinomios: Numerador = [ 0 0 0 332.8 ]; Denominador = [ 0.1461 2.774 8.427 0 ]; dise~ne un controlador PID que cumpla las siguientes especificaciones: SO < 20 Ts (10-90%) < 0.1622 Problema 3 Para la planta G3 definida por los siguientes polinomios: Numerador = [ 0 0 0 -3.328 ]; Denominador = [ 0.1461 3.051 13.69 16 ]; dise~ne un controlador PD que cumpla las siguientes especificaciones: Mf > 30 Wc > 11.3925 Problema 4 Para la planta G4 definida por los siguientes polinomios: Numerador = [ 0 0 0 -3.328 ]; Denominador = [ 0.1461 3.051 13.69 16 ]; dise~ne un controlador PID que cumpla las siguientes especificaciones: Mf > 40 Wc > 9.4937 Problema 5 Para la planta G5 definida por los siguientes polinomios: Numerador = [ 0 0 20.8 ]; Denominador = [ 0.2774 5.793 10 ]; dise~ne un controlador PI que cumpla las siguientes especificaciones: Mf > 20 6.4. EXPERIENCIAS EN EL AULA 113 Evrp < 0.0053 Cada problema es resoluble y tiene un procedimiento de soluci´on diferente definido por los cinco problemas base utilizados para definir los ejercicios. El proceso de asignaci´on, recogida y evaluaci´on de resultados fue llevado a cabo sin ning´un problema. Para cada alumno, el evaluador gener´o adem´as de la nota, una serie de comentarios con el an´alisis del controlador entregado. A continuaci´on se muestra el comentario generado para uno de los cinco problemas. Para la planta G2 definida por los siguientes polinomios: Numerador = [ 0 0 0 462.3 ]; Denominador = [ 12.45 53.73 37.09 0 ]; los resultados del controlador dise~nado son: SO = 17.2497. S´ı cumple la especificacion SO < 21.00 Ts(10-90%) = 0.4355. S´ı cumple la especificacion Ts(10-90%) < 0.75 Nota: 1.0 En general, para los profesores involucrados en la asignatura el resultado de la experiencia ha sido muy positivo. La posibilidad de generar de forma autom´atica enunciados a partir de un ejercicio base permite reutilizar colecciones de ejercicios ya dise˜nados para el curso concreto, de forma que cada alumno los afronte de forma individual, permitiendo una renovaci´on de los contenidos de la asignatura. 120 BIBLIOGRAF´ IA Rodr´ıguez, S., Pedraza, J., Dopico, A., Rosales, F., Mendez, R., 2007a. Computer-based management environment for an assembly language programming laboratory. Computer Applications in Engineering Education 15 (1), 41 – 54. Rodr´ıguez, S., Pedraza, J., Garcia, A., Rosales, F., Mendez, R., 2007b. Computer-assisted assembly language programming laboratory. International Journal of Electrical Engineering Education 44 (3), 216 – 229. Rodr´ıguez, S., Zamorano, J., Rosales, F., Dopico, A., Pedraza, J., 2007c. A framework for lab work management in mass courses. application to low level input/output without hardware. Computers and Education 48 (2), 153 – 170. Sanchez, J., Dormido, S., Pastor, R., Morilla, F., 2004. A java/matlab-based environment for remote control system laboratories: Illustrated with an inverted pendulum. IEEE Transactions on Education 47, 321–329. Sanchez, J., Morilla, F., Dormido, S., Aranda, J., Ruiperez, P., 2006. Virtual and remote control labs using java: a qualitative approach. IEEE Control Systems Magazine 22, 8–20. S´anchez, A., Esca˜no, J., Mu˜noz de la Pe˜na, D., G´omez-Estern, F., 2013. 3d simulator of industrial systems for control education with automated assessment. 10th IFAC Symposium Advances in Control Education, At University of Sheffield, Sheffield, United Kingdom 10. S´anchez, C., Gomez-Estern, F. y Mu˜noz de la Pe˜na, D., 2012. A virtual lab with automatic assessment for nonlinear controller design exercises. IFAC Symposyum on Advances in Control Education. Stewart, B.; Kirk, R.; LaBrecque, D.; Amar, F. G.; Bruce, M. R. M., 2006. Journal of Chemical Education 83 (494). Tartaglia, A.; Tresso, E., 2002. IEEE Transactions on Education 45 (268). Torres, F., Candelas, F. A., Puente, S. T., Pomares, J., Gil, P., Ortiz, F. G., 2006. Experiences with virtual environment and remote laboratory for teaching and learning robotics at the University of Alicante. International Journal of Engineering Education 22, 766–776. van der Wende, M. C., 2000. Higher Education in Europe 25 (305). Vician, C.; Charlesworth, P., 2003. Journal of Chemical Education 80 (1333). Zuluaga, C., S´anchez, C., Rodr´ıguez, E., 2005. Laboratorio de autom´atica v´ıa internet (lavi). Revista Iberoamericana de Autom´atica e Inform´atica Industrial 2 (2), 30–35.