6
ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO NOMBRE: Cristhian Fajardo FECHA: 14 - 12 - 2013 CURSO: 2 do “A” CONTROL CODIGO: 577 HERRAMIENTAS EDA SCILAB Scilab fue desarrollado en el INRIA, Institut National de Recherche en Informatique et Automatique, un excelente instituto francés de investigación, con la colaboración de la escuela de ingenieros ENPC, Ecole Nationale de Ponts et Chauss´ees. Sus principales características son: Software para cálculo científico Interactivo Programable De libre uso, con la condición de siempre hacer referencia a sus autores Disponible para diferentes plataformas: Windows, Linux, Sun, Alpha,... Scilab es un software matemático, con un lenguaje de programación de alto nivel, para cálculo científico, interactivo de libre uso y disponible en múltiples sistemas operativos (Mac OS X, GNU/Linux, Windows). Scilab es ahora desarrollado por Scilab Enterprises desde julio 2012. Scilab fue creado para hacer cálculos numéricos aunque también ofrece la posibilidad de hacer algunos cálculos simbólicos como derivadas de funciones polinomiales y racionales. Posee cientos de funciones matemáticas y la posibilidad de integrar programas en los lenguajes más usados (Fortran, Java, C y C++). La integración puede ser de dos formas: por ejemplo, un programa en Fortran que utilice Scilab o viceversa.1 Scilab fue hecho para ser un sistema abierto donde el usuario pueda definir nuevos tipos de datos y operaciones entre los mismos. Scilab viene con numerosas herramientas: gráficos 2-D y 3-D, animación, álgebra lineal, matrices dispersas, polinomios y funciones racionales, Simulación: programas de resolución de sistemas de ecuaciones diferenciales (explícitas e implícitas), Xcos: simulador por diagramas en bloque de sistemas dinámicos híbridos, Control clásico, robusto, optimización LMI, Optimización diferenciable y no diferenciable, Tratamiento de señales, Grafos y redes, Scilab paralelo empleando PVM, Estadísticas, Creación de GUIs, Interfaz con el cálculo simbólico (Maple, MuPAD), Interfaz con TCL/TK. Además se pueden agregar numerosas herramientas o toolboxes hechas por los usuarios como Grocer una herramienta para Econometría u Open FEM (Una caja de Herramientas para Elementos Finitos), hecha por INRIA. En el pasado Scilab podía ser utilizado en el análisis de sistemas, pero no podía interactuar con el exterior. Hoy en día se pueden construir interfaces para que desde Scilab se pueda manejar un dispositivo, se conecte a la red a través de Tcp (Protocolo de Control de Transmisión) o Udp (User Datagram Protocol), etc. Esto brinda la posibilidad de conectar una placa de adquisición de datos a Scilab y de esta forma el control de una planta on-line.

Scilab.pdf

Embed Size (px)

Citation preview

Page 1: Scilab.pdf

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO

NOMBRE: Cristhian Fajardo FECHA: 14 - 12 - 2013 CURSO: 2do “A” CONTROL CODIGO: 577

HERRAMIENTAS EDA

SCILAB

Scilab fue desarrollado en el INRIA, Institut National de Recherche en Informatique et Automatique,

un excelente instituto francés de investigación, con la colaboración de la escuela de ingenieros

ENPC, Ecole Nationale de Ponts et Chauss´ees. Sus principales características son:

Software para cálculo científico

Interactivo

Programable

De libre uso, con la condición de siempre hacer referencia a sus autores

Disponible para diferentes plataformas: Windows, Linux, Sun, Alpha,...

Scilab es un software matemático, con un lenguaje de programación de alto nivel, para cálculo

científico, interactivo de libre uso y disponible en múltiples sistemas operativos (Mac OS X,

GNU/Linux, Windows). Scilab es ahora desarrollado por Scilab Enterprises desde julio 2012.

Scilab fue creado para hacer cálculos numéricos aunque también ofrece la posibilidad de hacer

algunos cálculos simbólicos como derivadas de funciones polinomiales y racionales. Posee cientos

de funciones matemáticas y la posibilidad de integrar programas en los lenguajes más usados

(Fortran, Java, C y C++). La integración puede ser de dos formas: por ejemplo, un programa en

Fortran que utilice Scilab o viceversa.1 Scilab fue hecho para ser un sistema abierto donde el usuario

pueda definir nuevos tipos de datos y operaciones entre los mismos.

Scilab viene con numerosas herramientas: gráficos 2-D y 3-D, animación, álgebra lineal, matrices

dispersas, polinomios y funciones racionales, Simulación: programas de resolución de sistemas de

ecuaciones diferenciales (explícitas e implícitas), Xcos: simulador por diagramas en bloque de

sistemas dinámicos híbridos, Control clásico, robusto, optimización LMI, Optimización diferenciable

y no diferenciable, Tratamiento de señales, Grafos y redes, Scilab paralelo empleando PVM,

Estadísticas, Creación de GUIs, Interfaz con el cálculo simbólico (Maple, MuPAD), Interfaz con

TCL/TK.

Además se pueden agregar numerosas herramientas o toolboxes hechas por los usuarios como

Grocer una herramienta para Econometría u Open FEM (Una caja de Herramientas para Elementos

Finitos), hecha por INRIA.

En el pasado Scilab podía ser utilizado en el análisis de sistemas, pero no podía interactuar con el

exterior. Hoy en día se pueden construir interfaces para que desde Scilab se pueda manejar un

dispositivo, se conecte a la red a través de Tcp (Protocolo de Control de Transmisión) o Udp (User

Datagram Protocol), etc. Esto brinda la posibilidad de conectar una placa de adquisición de datos a

Scilab y de esta forma el control de una planta on-line.

Page 2: Scilab.pdf

MATLAB PARA LINUX

MATLAB es un lenguaje de computación técnica de alto nivel y un entorno interactivo para

desarrollo de algoritmos, visualización de datos, análisis de datos y cálculo numérico. Con MATLAB,

podrá resolver problemas de cálculo técnico más rápidamente que con lenguajes de programación

tradicionales, tales como C, C++ y FORTRAN.

Puede usar MATLAB en una amplia gama de aplicaciones que incluyen procesamiento de señales e

imágenes, comunicaciones, diseño de sistemas de control, sistemas de prueba y medición,

modelado y análisis financiero y biología computacional. Los conjuntos de herramientas

complementarios (colecciones de funciones de MATLAB para propósitos especiales, que están

disponibles por separado) amplían el entorno de MATLAB permitiendo resolver problemas

especiales en estas áreas de aplicación.

Además, MATLAB contiene una serie de funciones para documentar y compartir su trabajo. Puede

integrar su código de MATLAB con otros lenguajes y aplicaciones, y distribuir los algoritmos y

aplicaciones que desarrollo usando MATLAB.

MATLAB PARA ANDROID

Matlab, el software de computación por excelencia. Y como no podía ser de otra forma existen

algunas herramientas bastante útiles para Android relacionadas con Matlab. De entre las

herramientas que nos podemos encontrar en Android hay tres grupos principales: guías de

referencia sobre Matlab, control remoto de Matlab y emuladores de Matlab para Android. Vamos

a ver aplicaciones de los tres grupos.

GUÍA DE REFERENCIA PARA MATLAB

Matlab Quick Reference Guide. Es una guía muy completa, con las funciones disponibles clasificadas

por categorías. Junto con el nombre de la función viene una explicación breve y concisa de lo que

hace. Que no viene la ayuda típica de la función que tenemos en el propio Matlab ni tampoco algún

ejemplo de cómo usar la función. Si no fuera por esto diría que la guía es muy buena. Pero le falta

mucho para ser una guía completa.

CONTROL REMOTO DE MATLAB

Éste grupo de aplicaciones sirve para controlar remotamente Matlab, que estará por tanto

ejecutándose en un PC. Aquí he descubierto dos aplicaciones, bastante sencillas pero que permiten

ejecutar operaciones potentes.

La primera es Matlab Commander. Esta aplicación permite tanto ejecutar comandos Matlab

remotamente como representar gráficas. La comunicación entre el Android y el PC donde se ejecuta

Matlab no está encriptada.

Muy similar es la segunda aplicación, Matlab Connect Free Edition. Esta aplicación es muy similar a

la anterior pero visualmente es algo menos agradable. Sin embargo parece que hay algo más de

trabajo detrás de ella.

Page 3: Scilab.pdf

Ambas aplicaciones necesitan que instalemos un programa en el PC, además de Matlab. Matlab

Commander necesita que se ejecute un .jar en el PC y Matlab Connect un .m dentro de Matlab. Es

decir, ambos usan la misma filosofía, un servidor en el PC que recoge los comandos mandados desde

Android para devolver el resultado, tanto numérico como gráfico.

EMULADORES DE MATLAB PARA ANDROID

Esta categoría no podía faltar en Android, ya que hay proyectos software libre que intentan imitar

a Matlab, como es Octave, y por tanto portarlo a Android sólo es cuestión de tiempo.

El primer emulador de Matlab del que quiero hablar se llama Mathmatiz. Es un emulador bastante

potente, con algunos detalles bastante interesantes como es el autocompletado de funciones, que

es muy útil en un móvil. La aplicación tiene un teclado integrado que hace más fácil escribir

expresiones que el que usamos por defecto en nuestro teléfono.

Acerca del número de funciones implementadas, es adecuado, pero por supuesto no tan completo

como Matlab. Por ejemplo, he podido calcular la inversa de una matriz y su determinante, pero no

los autovalores. También he podido representar un gráfico 2D, hacer zoom, exportarlo, etc. Con

esta aplicación es incluso posible ejecutar scripts .m.

El segundo emulador del que quiero hablar es Addi. Addi es un proyecto de software libre y el

objetivo es implementar completamente Octave para Matlab. El comportamiento es muy similar al

de Mathmatiz, pero me da la impresión de que hay más funciones implementadas. Por ejemplo aquí

sí que he podido calcular los autovalores de una matriz.

Addi también tiene autocompletado de funciones, teclado integrado (más completo que el de

Mathmatiz pero también más enrevesado) y cuenta con alguna ventaja como con ayuda en línea,

cosa que Mathmatiz no tiene. Sin embargo ocupa más y para representar gráficas es necesario

bajarse otra aplicación.

Ambos emuladores pueden servir para realizar cálculos bastante complejos con la misma sintaxis

que Matlab, y por tanto me parecen muy potentes para llevar en el móvil. Cualquiera de las dos

sirve para emular Matlab aunque casi me inclinaría más por Addi, por ser algo más potente y

software libre, con lo que su desarrollo puede ser más rápido.

MATLAB MOBILE

MATLAB ® Mobile ™ es un escritorio ligero en tu iPhone, iPad o Android ™ dispositivo que se conecta

a una MATLAB ® está ejecutando en MathWorks nube o en su computadora. Desde la comodidad

de su dispositivo móvil, puede ejecutar scripts, crear y manipular cifras, y ver los resultados.

Conexión a la nube MathWorks ofrece acceso a una sesión de MATLAB que se ejecuta en la nube y

almacenamiento en la nube para sus archivos de MATLAB y datos. Una vez que se cargan los

archivos, puede ejecutar dondequiera que usted tiene acceso a Internet. Conexión a su ordenador

con el conector MATLAB proporciona acceso a las secuencias de comandos y los datos de ese equipo

de MATLAB. MATLAB Mobile también cuenta con los teclados personalizados para tus dispositivos

iOS y Android, lo que facilita la entrada fácil de la sintaxis de MATLAB.

Page 4: Scilab.pdf

Características

Acceso a la línea de comandos de MATLAB

El acceso a MATLAB espacio de trabajo

Posibilidad de ver las cifras de MATLAB en un dispositivo iOS o Android

Registro de comandos escritos en el dispositivo móvil en el historial de comandos

Personalizar teclados para introducir la sintaxis de MATLAB típica

Autocompletar texto escrito en la ventana de comandos

Conectividad y almacenamiento MathWorks Nube

De Windows ® , Mac y Linux ® conectividad

Limitaciones

MATLAB Mobile no admite:

Aplicaciones de MATLAB como ajuste de curvas o Análisis de Señales

La creación de interfaces gráficas utilizando GUÍA

MATLAB Editor

Simulink entorno gráfico, pero el sim comando se apoya en la línea de comandos de

MATLAB Mobile

Interacción con figuras 3-D

ALTERNATIVAS DE MATLAB

GNU OCTAVE

Esta herramienta es parte del proyecto GNU. MATLAB es considerado su equivalente comercial.

Entre varias características que comparten se puede destacar que ambos ofrecen un intérprete

permitiendo ejecutar órdenes en modo interactivo. Nótese que Octave no es un sistema de álgebra

computacional como podría ser Máxima, sino que usa un lenguaje que está orientado al análisis

numérico.

GNU Octave es un lenguaje de alto nivel, inicialmente pensado para la computación numérica.

Octave proporciona una interfaz de línea de comandos para resolver problemas lineales y no lineales

de manera numérica, y desarrollar otros experimentos numéricos utilizando para ello un lenguaje

que en su mayoría es compatible con Matlab. También se puede utilizar como un lenguaje de lotes

(batch-oriented language).

Octave tiene una gran cantidad de herramientas para resolver problemas de álgebra numérica

comunes, encontrar las soluciones de ecuaciones no lineales, realizar integrales de funciones

Page 5: Scilab.pdf

ordinarias, manipular polinomios, e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas. Es fácil de extender y modificar a través de funciones definidas por el

usuario escritas en el propio lenguaje de Octave, o utilizando módulos cargados dinámicamente

escritos en otros lenguajes como C, C++, Fortran, etc.

Detalles técnicos

Octave está escrito en C++ usando la librería STL.

Tiene un intérprete de su propio lenguaje (de sintaxis similar a Matlab), y permite una

ejecución interactiva o por lotes.

Puede extenderse el lenguaje con funciones y procedimientos por medio de módulos

dinámicos.

Utiliza otros programas GNU para ofrecer al usuario crear gráficos para luego imprimirlos o

guardarlos (Grace).

Dentro del lenguaje también se comporta como una consola de órdenes (shell). Esto

permite listar contenidos de directorios, por ejemplo.

Además de correr en plataformas Unix también lo hace en Windows.

Puede cargar archivos con funciones de Matlab de extensión .m.

Ayuda en español.

El lenguaje de Octave

La sintaxis es similar a la utilizada en MATLAB.

Es un lenguaje interpretado.

No permite pasar argumentos por referencia. Siempre se pasan por valor.

No permite punteros.

Se pueden generar scripts.

Soporta gran parte de las funciones de la librería estándar de C.

Puede extenderse para ofrecer compatibilidad a las llamadas al sistema UNIX.

El lenguaje está pensado para trabajar con matrices y provee mucha funcionalidad para

trabajar con éstas.

Soporta estructuras similares a los “struct”s de C.

A pesar de los posibles inconvenientes Matlab es un gran programa. Su interfaz gráfica está bien

pensada, está disponible en los tres sistemas operativos mayoritarios. Sus posibilidades para la

representación gráfica de datos con casi ilimitadas, el compilador de Matlab es de una potencia

bárbara y su optimización JIT es efectiva en bastantes casos. Sin embargo su parser deja bastante

que desear; incluso no acepta estructuras sintácticas que serían consistentes en el lenguaje. Al no

Page 6: Scilab.pdf

ser un proyecto de software libre no hay un modo de ampliarlo ni definir nuevos tipos. La interfaz

gráfica, escrita en Java, no es tan estable como podría desearse al igual que el intérprete capaz de

romperse en casos relativamente sencillos. Todo esto a parte del inconveniente del precio. Octave

soluciona algunos de los inconvenientes técnicos de Matlab. No tiene interfaz gráfica, algo que

puede ser visto como una ventaja y como un inconveniente; su parecer es más listo y acepta

estructuras más complejas. Aunque el intérprete tiene problemas de estabilidad como el de Matlab

se solucionan más rápidamente puesto que el tiempo de publicación de nuevas versiones es más

corto. Es además muy fácil de extender en C++ y permite un acceso directo a su maquinaria interna

y a sus librerías para utilizarlas en cualquier programa en C++. Es una herramienta más potente para

un buen programador.

CONCLUSIONES

Scilab puede ser una alternativa muy buena para Matlab, ya que es un software libre y su interfaz

gráfica es muy parecida a la de Matlab.

Octave no puede considerarse un sustituto perfecto de Matlab pero sı una alternativa en algunos

casos. Es un proyecto maduro y completo que permite a un programador hábil realizar algoritmos

numéricos de gran complejidad reduciendo al máximo los tiempos de desarrollo. También son útiles

conocimientos de C++ para ampliar el intérprete y conseguir tiempos de ejecución cercanos a los de

los lenguajes compilados.

RECOMENDACIONES

MATLAB es un paquete privativo distribuido por MathWorks y se puede instalar en Ubuntu, aunque

la versión de Ubuntu 11.01 no es compatible. Se recomienda el uso de Ubuntu 10.04 LTS o Ubuntu

10.10 para instalar MATLAB.