Funcionamiento



Aplicación 1: Osciloscopio

A continuación se mostrará un ejemplo de uso del servicio denominado osciloscopio. Dicho ejemplo muestra el interfaz de usuario para la posterior interacción de usuario con el sistema. En este caso se pueden elegir entre las frecuencias y número de muestras por muestra para realizar el muestreo y monitorizar resultados. Además se muestra una lista de posibles variables a monitorizar, en este momento los datos se generan aleatoriamente. Previo a dicho servicio , el usuario ha tenido que ser autenticado, se ha comprobado que poseía reserva para utiliar el servicio y que la hora de reserva era correcta. Una vez realizado dicho proceso y almacenado o no información del usuario para posteriores estadísticas o mejoras. Se muestra el menú asociado al osciloscopio.
Menú principal del servicio osciloscopio
Menú principal del servicio osciloscopio
la resolución prefijada será 640X480 . Se podrá seleccionar el tiempo de monitorización. Además se podrá seleccionar entre las variables separadas o bien monitorizar todas a la vez. Una vez establecidos los parámetros se pulsa enviar y como resultado, se vuelve a mostrar el mismo formulario con la diferencia de que la imagen se va referescando con la gráfica/s seleccionadas durante el tiempo definido por el usuario. Para poder realizar dicha acción se ha generado un CGI que genera la gráfica con los datos generados empleando Gnuplot, para ello se genera un fichero con las opciones correspondientes, por ejemplo:
set terminal png
set grid
set multiplot
set size 0.5,0.5
set origin 0,0
set title "Consumo"
plot "{}/public_html/ciclope_core/mod_peltier/data/consumo.dat" smooth csplines 1
set size 0.5,0.5
set origin 0.5,0
set title "Temperatura"
plot "{}/public_html/ciclope_core/mod_peltier/data/temperatura.dat" smooth csplines 2
set size 0.5,0.5
set origin 0.0,0.5
set title "entrada"
plot "{}/public_html/ciclope_core/mod_peltier/data/entrada.dat" smooth csplines 3
set size 0.5,0.5
set origin 0.5,0.5
set title "salida"
plot "{}/public_html/ciclope_core/mod_peltier/data/salida.dat" smooth csplines 4
set nomultiplot

La salida del CGI son imágenes PNG que se redireccionan directamente al navagador, el CGI ejecuta mientras no se haya agotado el tiempo seleccionado. Existe la posibilidad de matar el proceso actual y lanzar uno nuevo si el usuario vuelve a pedir monitorizar antes de que una petición anteruor haya acabado, para ello se emplea un fichero donde se almacena el pid del proceso en ejecución y se mata usando killpid(pid). Existe un límite de tiempo superior e inferior, el tiempo ha de ser mayor de 0 y para que pueda funcionar bien mayor de 1 segundo ya que las imágenes se generan cada segundo. Estos valores se pueden cambiar en el fichero de fuente y se ha de recompilar el CGI para que los cambios tengan efecto.

Aplicación 2: Control

Se muestra a continuación un ejemplo de uso del servicio control. Al igual que en el ejemplo anterior el usuario ha sido previamente autenticado y cierta información procesada Se muestra el menú de control donde el usuario podrá establecer los parámetros necesarios para su experimentación . En principio el funcionamiento de este servicio difiere del anterior, de forma que una vez establecidos los parámetros y lanzada la aplicación se esperará a que se terminé la ejecución antes de mostrar resultados. Existe la posibilidad de un refresco de la imagen con un cierto período. Esto al igual que en caso anterior introduce un consumo de ancho de banda que puede notar el usuario adem'sa de un consumo de recursos en el servidor. Cada imagen puede variar entre 2K y 5K dependiendo de los datos. Además el tiempo de proceso para la generación de imágenes puede incrementarse , además de esto se debe dejar un tiempo para que el navegador pueda representar la imagen.Por estos motivos los tiempos de refresco son mayores de 1 segundo. Para tamaños de muestras pequeños el tamaño de los datos y de las gráficas son similares, no siendo así si las muestras incrementan. En este caso los campos de los formularios están sujetos a posibles cambios debido a que no esta definida la funcionalidad de la aplicación de control, En este caso se podría elegir entre diferentes tipos de control para ser simulados por software, y entre los campos del formulario, se podrán elegir valores de entrada al sistema, frecuencias de muestreo, tiempo de muestreo, etc.
Imagen menu control  e imagen de salida.

Aplicación 3:Obtención de curvas mediante Octave

Se pretende dar la posibilidad además de controlar una planta remota y monitorizar algunas de sus variables, de poder realizar simulaciones de sistemas obteniendo curvas tales como lugar de raíces, diagramas de Nyquist, obtención de respuestas ante entradas escalón , impulso, y a través de estas funcionalidades poder obtener salidas ante entradas en rampa , cuadrática, seno etc introduciendo la función de transferencia adecuada(previamente calculada). El formulario que se ha de rellenar consta de dos entradas donde se introducirán el numerador y denominador de la Ft , cada elemento separado por un espacio en blanco y siempre terminado por el último factor, no con otro espacio, por ejemplo:
Numerador:1
Denominador:1 10 58 50

Una vez introducidos dichos datos si queremos calcular el lugar de raices debemos poner los valores de ganancia inicial, ganancia final e incremento , si queremos una salida ante una entrada en escalón o impulso debemos introducir el tiempo de simulación y el número de puntos que se quieren obtener. Una vez que se ha rellenado el formulario con los datos necesarios, se procede a enviar la solicitud y se muestra una imagen con la curva resultado del proceso.
Al igual que en el caso del osciloscopio, se generan fichero con las operaciones a ejecutar con Octave un ejemplo es el siguiente:
more off;
num=[1];
den=[10 58 50 3];
st=tf(num,den);
impulse(st,1,12,123);
gset terminal png
exit
Dicho fichero se genera en base a las opciones elegidas por el usuario. Este fichero se pasa al CGI generado para lanzar un proceso para ejecutar Octave al cual se le pasa el fichero anterior, y la salida generada, en este caso una gráfica, se redirecciona de igual modo que en osciloscopio. En caso de producirse un error en los datos introducidos o por cualquier otro motivo, por ejemplo los datos hacen que Octave genere un error , la imagen no se mostrará.
Ejemplos de salidas:

Imagen menu control
Imagen introduccion de datos para simulacion
Imagen lugar de raices tras simulacion
Imagen respuesta entrada escalon