Download Nombre: Yocelin Rosario Ticona Luna MATLAB Y OTRAS

Document related concepts
no text concepts found
Transcript
Nombre: Yocelin Rosario Ticona Luna
MATLAB Y OTRAS PLATAFORMAS
JAVA Y MATLAB
EASY JAVA SIMULATIONS (EJS)
Easy Java Simulations (Ejs) es una herramienta de software gratuita diseñada para la creación de
simulaciones interactivas en Java.
Las simulaciones en Ejs son estructuradas en dos partes, el Modelo y la Vista. En el modelo se
describe el comportamiento del sistema mediante variables y código Java. Mientras que la vista
provee el aspecto gráfico o visual de la simulación. La interfaz de usuario de Ejs se presenta en la
figura 1.
Figura 1. Interfaz de usuario de Ejs para la creación
de la vista de una simulación.
EJS Y MATLAB
Ejs posee la capacidad de conexión con aplicaciones externas, como Scilab, Dymola, Sysquake y
Matlab/Simulink. Esta última aplicación es bastante interesante debido a la popularidad que
presenta esta herramienta entre la comunidad de automática. Mediante esta conexión se pueden
desarrollar laboratorios virtuales con un alto grado de interactividad utilizando modelos Simulink y
Matlab. Para la comunicación entre Ejs y Matlab se utiliza la librería JMatlink.
En general el uso de la conexión entre Ejs y modelos Simulink está orientado a la creación de
laboratorios virtuales de sistemas dinámicos. En el caso específico de la conexión entre Ejs y
Matlab el papel de Matlab es proporcionar capacidades de cómputo, esto es como motor de cálculo.
El procedimiento para la conexión entre Ejs y Matlab es sencillo y se resume en los siguientes
cuatro pasos.
1. Designar a Matlab como aplicación externa.
2. Crear y conectar variables Ejs con Matlab.
3. Controlar la ejecución de las rutinas en Matlab.
4. Definir la vista y la interactividad con el usuario.
Para explicar con mayor detalle la forma de conectar Ejs y Matlab se utilizará un sencillo ejemplo.
En este caso el objetivo es proporcionar un laboratorio virtual a modo de osciloscopio, en donde el
usuario ingrese una función que será evaluada en Matlab y cuyo resultado será presentado en un eje
coordenado, tal como muestra la figura 2
Figura 2. Interfaz de usuario de un sencillo laboratorio virtual que utiliza una conexión local de
Matlab.
A continuación se presentarán los pasos previamente comentados para conectar Ejs y Matlab
necesarios para el de laboratorio virtual de ejemplo.
Pasos 1 y 2: En la figura 3 se observa, en la sección Modelo (subsección Variables) como se declara
el uso de Matlab en Ejs. Nótese que en el cuadro de texto “External File” se ha indicado en este
caso el uso de Matlab como aplicación externa. Mientras que las variables “time” y “value” de Ejs
están conectadas a las variables “t” y “x” de Matlab. Evidentemente, tales variables serán las que se
utilizarán para realizar la gráfica de la figura 2.
Paso 3: Para el control de la ejecución de las rutinas en Matlab, Ejs proporciona diferentes métodos,
entre ellos, el método _external.step(); el cual permite la ejecución de una rutina o comando
previamente especificado. Respecto al comando que se ejecuta, este ha sido ubicado en la
subsección Inicialización mediante la siguiente instrucción:
_external.setCommand(commandM);.
Figura 3. Definición de la aplicación externa y de las variables utilizadas en Ejs.
Obsérvese que la instrucción anterior está indicando que el comando a ejecutar viene dado por la
variable de tipo String “commandM” que previamente ha sido definida en la tabla de variables de la
figura 4. En este ejemplo la variable tiene por valor inicial la siguiente cadena: “t=t+0.1, x=sin (t)”
Paso 4: El comando inicial puede ser modificado por el usuario utilizando el cuadro de texto
Función que se observa en la figura 2. Para agregar esta interacción, se asocia al cuadro de texto
correspondiente la variable “commandM” y la acción _external.setCommand(commandM); que se
ejecutará ante un cambio del valor por parte del usuario. De esta forma, una vez que el usuario
modifique el valor de la función, el laboratorio virtual presentará la gráfica correspondiente. Esta
interacción se observa en las propiedades del cuadro de texto que se muestran en la figura 4.
Figura 5. Propiedades del cuadro de texto utilizado para ingresar la función a evaluar en Matlab.
Se debe mencionar además que existen un grupo de métodos en Ejs que permiten interactuar a más
“bajo nivel” con Matlab, entre otros están los siguientes.
• _external.eval(String) : Método que evalúa un String en el espacio de trabajo de Matlab.
• _external.getDouble(“VariableMatlab”): Método que devuelve el valor de una variable existente
en Matlab.
• _external.setValue(“VariableMatlab”,Value): Método que modifica el valor de una variable
existente en Matlab.
Bibliografía
 http://www.ceautomatica.es/old/actividades/jornadas/XXIX/pdf/283.pdf
Nombre: Yocelin Rosario Ticona Luna
FUNCIONES DE MATLAB
1) MATLAB trae implementada la función spline para la interpolación por splines cúbicos.
El comando:
yy = spline(x,y,xx)
efectúa la interpolación de la nube de puntos dada por los vectores x, y por medio de
splines cúbicos. En la salida (variable yy) obtenemos los valores del spline evaluado en los
puntos dados en el vector xx. Si y es una matriz, la interpolación se realiza para
cada fila de y.
Por ejemplo, el listado
x = 0:10; y = sin(x);
xx = 0:.25:10;
yy = spline(x,y,xx);
plot(x,y,'o',xx,yy)
dibuja una aproximación a la gráfica de la función sen (t) a partir de la interpolación con
splines cúbicos.
Nota: Un resultado análogo se puede obtener con la
función interp1: yy=interp1(x,y,xx,'spline').
2) Para hallar al polinomio de grado 'n', que pasa a traves de n + 1 puntos, podemos
emplear 'polyfit'.
Por ejemplo, para hallar al polinomio que pasa por los puntos (X, Y):
X = [1 2 3 5]
Y = [1.06 1.12 1.34 1.78]
P = polyfit(X, Y, 3)