2.Introducción a SCILAB 4.1 2.Introducción a SCILAB 4.1 2.Introducción a SCILAB 4.1 2.1.Características, aplicaciones y objetivos de SCILAB 4.1 2.1.1.Scilab SCILAB es un programa informático de cálculo que posee múltiples aplicaciones, principalmente el control de sistemas y las aplicaciones de procesamiento de señal. Consta principalmente de tres partes: un intérprete, unas librerías de funciones (procedimientos Scilab) y unas librerías de rutinas de Fortran y C, que no pertenecen a Scilab, pero que son invocadas interactivamente por el intérprete. Las principales características de Scilab [2] son: • Contiene funciones que realizan cálculos con todo tipo de matrices (numéricas, racionales, polinómicas, matrices de transferencia, etc). La matriz es el tipo básico de dato. • Permite realizar cálculos interactivos. • Se pueden programar funciones y aplicaciones muy variadas. • Posee cientos de funciones matemáticas, con la posibilidad de añadirle interactivamente programas provenientes de diversos lenguajes de programación (Fortran, C, C++, Java, etc.). • Maneja estructuras de datos complejas (listas, funciones racionales, etc.) e incluye un lenguaje de programación de alto nivel. • Realiza representaciones gráficas en dos y tres dimensiones. • Usa primitivas para el análisis de sistemas no lineales. • Permite realizar integración numérica de sistemas dinámicos implícitos y explícitos. • Es compatible con Matlab®. • Actualmente se usa en contextos industriales y educativos de todo el mundo. • Está disponible para diferentes plataformas: Windows, Linux, Sun, Alpha, MacOS X, ... • Su código fuente está publicado, es conocido y se puede modificar, siempre que se haga referencia a sus autores, es decir, su distribución es de fuentes abiertas (open source). Es el llamado software libre. Existen herramientas (toolbox) [2] para aplicaciones especializadas. Algunas de ellas se listan a continuación: 8 2.Introducción a SCILAB 4.1 2.1.Características, aplicaciones y objetivos de SCILAB 4.1 • Gráficas en 2-D y 3-D, que pueden ser exportadas a varios formatos para ser incluidas en otros documentos. • Álgebra lineal. • Funciones polinomiales y racionales. • Todas las operaciones matriciales. • Simulaciones de resolución de Ecuación Diferencial Ordinaria (ODE) y Ecuación Diferencial Auxiliar (ADE). • Control clásico y robusto, con optimización LMI (Linear Matrix Inequalities). • Optimización lineal, no lineal, cuadrática, diferenciable y no diferenciable. • Procesamiento de señal. • Uso de Metanet, que es una utilidad para grafos y redes. • Uso de Scilab en paralelo, gracias a la PVM (Parallel Virtual Machine). • Cálculos estadísticos. • Modelado y simulación ARMA (Autoregressive moving average). • Uso de GeCI, para comunicación con otras aplicaciones. • Interfaz con álgebra por ordenador (por ejemplo, los programas Maple y MuPAD, este último desarrollado en la Universidad de Paderborn, situado en la región de Renania del NortePalatinado (Nordrhein-Westfalen), en Alemania). • Interfaz con Tcl/Tk (Tool Command Language/Tool Kit), lenguaje de programación interpretado y multiplataforma, creado en la Universidad de California, y actualmente desarrollado por Sun Microsystems Laboratories y distribuido de forma gratuita. 2.1.2.Scicos Una de las herramientas o toolbox más destacadas incluida en el paquete de Scilab es Scicos [3] (Scilab Connected Object Simulator). Es al mismo tiempo un simulador y un modelador, mediante diagramas de bloques, de sistemas dinámicos híbridos explícitos e implícitos. Permite simplificar las simulaciones, creando diagramas de bloque para modelar y simular el comportamiento dinámico de los sistemas híbridos, y compilar dichos modelos en código ejecutable. Se utiliza para procesamiento de señal, sistemas de control, sistemas de colas y para estudiar sistemas físicos y biológicos. Últimamente, gracias al lenguaje “Modelica”, se pueden modelar también circuitos eléctricos y sistemas hidráulicos. 9 2.Introducción a SCILAB 4.1 2.1.Características, aplicaciones y objetivos de SCILAB 4.1 Las características principales de Scicos [4] son: • Se pueden modelar gráficamente sistemas dinámicos, compilarlos y simularlos. • Combina en el mismo modelo comportamientos de tiempo continuo y discreto. • Selecciona elementos de gamas de bloques estándar. • Es capaz de programar diagramas de bloque nuevos en lenguaje Fortran, C ó Scilab. • Realiza simulaciones en modo “por lotes” provenientes del entorno Scilab. • Genera código en lenguaje C de modelos Scicos mediante el generador de código (code generator). • Realiza simulaciones en tiempo real con dispositivos reales mediante el uso de Scicos-HIL. • Genera ejecutables de control en tiempo real rígido con Scicos-RTAI. • Simula sistemas de comunicaciones digitales con Scicos-ModNum. • Usa bloques implícitos desrrollados en el lenguaje “Modelica”. • Utiliza estructuras jerárquicas • Posee muchas características que están disponibles también en Simulink y en SystemBuild. Como ya se ha dicho, Scicos es una herramienta de Scilab, y se ejecuta, por tanto, en un entorno Scilab. Es muy importante el hecho de poder tener acceso a funciones de Scilab cuando se diseñan modelos de simulación. Al mismo tiempo, puede ocurrir que modelos diseñados por Scicos sean usados como funciones en Scilab. También a veces se usa la respresentación gráfica de Scilab para expresar los resultados de una simulación de Scicos. Pero la integración de Scicos y Scilab va todavía más allá. El editor de Scicos está escrito íntegramente en lenguaje Scilab, lo cual representa muchas ventajas. El editor es fácilmente adaptable y flexible en el diseño de la forma y los iconos de los bloques. La estructura de datos del modelo de Scicos es una estructura de Scilab y se actualiza utilizando funciones de Scilab. Scicos se traslada a una nueva plataforma cuando Scilab también se ha transportado a ella. Es muy fácil el desarrollo y la eliminación de errores. 2.2.Objetivos de Scilab Scilab se ha desarrollado fundamentalmente para proporcionar al usuario un entorno de programación que cumpla los siguientes objetivos: • Ser un sistema abierto donde el usuario pueda definir nuevos tipos de datos, operaciones sobre estos nuevos tipos de datos, funciones y librerías de funciones. 10 2.Introducción a SCILAB 4.1 2.2.Objetivos de Scilab • Poseer un conjunto de tipos de datos variado y flexible con una sintaxis fácil de usar. • Prporcionar un conjunto razonable de primitivas que sirva como base para una amplia gama de cálculos. • Poder añadir primitivas nuevas fácilmente (por ejemplo, mediante la herramienta “intersci”). • Ayudar al desarrollo de librerías a través de herramientas de funciones orientadas a aplicaciones específicas (como control lineal, procesamiento de señal, análisis de red, control no lineal, etc.). 2.3.Orígenes y actual gestión de SCILAB 4.1 Scilab fue desarrollado en 1990 en el “Institut National de Recherche en Informatique et Automatique” (INRIA), es decir, el Instituto Nacional de Investigación de Informática y Control, situado en Le Chesnay, a las afueras de París. Posteriormente colaboró la “Ecole Nationale de Ponts et Chaussées” (ENPC), es decir, la Escuela Nacional de Caminos y Puentes, una escuela de ingenieros situada en Champs-sur-Marne, localidad al oeste de París, a orillas del río Marne. Los orígenes franceses y parisinos son, por tanto, evidentes. A partir de 1994, comenzó la distribución gratuita de Scilab a través de Internet. En el año 2003 se creó el denominado “Scilab Consortium” [6], o consorcio Scilab, apadrinado por el INRIA. La primera reunión de este consorcio tuvo lugar el 16 de mayo de 2003, con asistencia de los 12 miembros fundadores, que son Axs Ingénierie, Cril Technology, Commissariat à l'Energie Atomique (CEA), Centre National d'Etudes spatiales (CNES), Dassault Aviation, Electricité de France (EDF), Esterel Technologies, Thales, el instituto INRIA, la escuela de ingenieros ENPC, la compañía de automóviles PSA Peugeot Citroën y la compañía de automóviles Renault. Actualmente, en el mes de diciembre de 2006, el número de miembros asciende a 23. Los objetivos que se marca este consorcio son: • Organizar la cooperación y el intercambio en la comunidad de desarrolladores para hacer de Scilab una plataforma que integre los últimos avances en el campo del cálculo numérico y del control. • Organizar la cooperación e intercambio en la comunidad de usuarios para hacer de Scilab un producto que cumpla las especificaciones requeridas para su uso en entornos industriales, educacionales y de inverstigación. • Obtener los recursos necesarios para mantener un equipo encargado de crear nuevas versiones del software que cumplan con los estándares, para tutorar a la comunidad de desarrolladores y para asegurar un primer nivel de soporte técnico para usuarios. 11 2.Introducción a SCILAB 4.1 2.3.Orígenes y actual gestión de SCILAB 4.1 El consorcio está actualmente presidido por el doctor Maurice Robin y está representado por la conferencia de participantes (conference of participants). Un comité director (steering committe), ayudado por una plataforma científica (scientific board), la cual está a su vez compuesta por miembros electos, realiza la toma de decisiones para las direcciones a tomar en los nuevos desarrollos y en las acciones de promoción. El equipo operativo (operational team) se encarga de desarrollar y promocionar Scilab. Ilustración 1 Organigrama del consorcio Scilab 2.4.El logo de Scilab El logo de Scilab es el siguiente: Ilustración 2Logo de Scilab Sin embargo, durante la conferencia de Scilab 2004 [6], que tuvo lugar en la localidad francesa de Rocquencourt, cercana a París, durante los días 2 y 3 de diciembre de ese año, la comunidad Scilab fue dotada de una mascota: el pájaro llamado frailecillo (en inglés: puffin; en francés: marceaux; no confundir con la palabra francesa puffin). El frailecillo es un ave que habita en las costas y los mares del Norte. Su nombre científico es fratercula arctica (que significa “hermanito del norte”). Tiene el dorso negro y un collar también negro; los lados de la cabeza, grises; el vientre, blanco; los pies, rojos y el pico (que es tan alto como largo) también de color rojo. Dicho plumaje blanco del vientre y negro del dorso recuerda en cierta forma a los hábitos de un monje o fraile, y de ahí le viene el nombre. El plumaje amarillo que luce en el logo no existe en la realidad. 12 2.Introducción a SCILAB 4.1 2.4.El logo de Scilab Ilustración 3El frailecillo (puffin), mascota de Scilab El frailecillo suele medir unos 20 cms. de altura, y tener unos 500grs. de peso. Ilustración 4Foto de un frailecillo La mascota fue diseñada por el Dr. Hu Baogang, director chino del LIAMA (Instituto FrancoChino de Informática, Automatización y Matemáticas Aplicadas, instituto que fue creado por el INRIA conjuntamente con CASIA en 1997), quien es miembro cooperador (contributor member) de la plataforma científica (scientific board) de Scilab. Baogang explicó por qué escogió un frailecillo como mascota: “La imagen de un frailecillo refleja un espíritu de libertad y orgullo, espíritu que caracteriza la motivación del software libre. Estar orgulloso de desarrollar software de fuentes abiertas... Me gustaría compartir este sentimiento con nuestros estudiantes chinos cuando usemos Scilab”. 13 2.Introducción a SCILAB 4.1 2.4.El logo de Scilab Ilustración 5Sello francés con ilustración de frailecillos(macareaux) El frailecillo es un pájaro muy social, que vive en colonias muy grandes. Se adapta a todos los medios: aire, agua (nada encima y debajo del agua), tierra (en la superficie o bajo ella). Su “ropaje” de fraile es un signo de que no duda en implicarse en tareas dolorosas. Su forma de cavar refugios profundos en la roca indica que no le asustan las dificultades. Es capaz de pescar su décimo pez sin perder los nueve que ya tiene en su pico. Esta habilidad le permite incrementar su eficiencia evitando idas y venidas inútiles desde su nido hasta el lugar de pesca. Todas estas cualidades que se acaban de enumerar caracterizan también al programador en Scilab. Ilustración 6Frailecillo con peces recién pescados 2.5.Cómo conseguir SCILAB 4.1 y qué sistemas operativos y plataformas lo soportan La forma más rápida, cómoda y directa de obtener Scilab 4.1 es descargarlo a través de su página web oficial [6]: 14 2.Introducción a SCILAB 4.1 2.5.Cómo conseguir SCILAB 4.1 y qué sistemas operativos y plataformas lo soportan www.scilab.org Directamente de la página de inicio se puede descargar un archivo ejecutable. Este archivo se llama “scilab-4.1.exe”, tiene 13,6 Mb de tamaño, y posee como icono un pájaro de colores gris, negro y amarillo. En realidad, este archivo “scilab-4.1.exe” es el instalador de versión binaria o “installer for binary version” para Windows 95/98/2000/XP, ya que esta versión es la usada con más frecuencia. Si deseamos otras versiones, se puede acceder al apartado de descargas mediante el siguiente link: www.scilab.org/download/index_download.php El equipo de Scilab 4.1 provee y da soporte para las siguientes plataformas: • Windows: 95/98/2000/XP • UNIX: distribución GNU/Linux Para ambas plataformas se puede descargar una versión fuente (source version) o una versión en archivo binario (binary file version). Ambas vienen comprimidas en sendos archivos con extensión .rar. La versión fuente, en el caso de Windows, es autoinstalable, y consiste en el archivo ejecutable “scilab-4.1.exe” nombrado anteriormente. Este archivo inicia un asistente de instalación (instalation wizard) que va guiando al usuario fácilmente a lo largo de la instalación. Es la versión más recomendable para descargar e instalar, por su facilidad de uso y su menor tamaño. Se pueden descargar asimismo un fichero de ayuda, en dos idiomas (inglés y francés) y en dos formatos (.zip y .chm). Para otras plataformas, se pueden obtener distintas versiones de Scilab, que sin embargo no están gestionadas por el equipo de Scilab. Éstas son: • Windows NT: la última versión que lo soporta es la 3.0 • SunOS 5.8 Solaris 2.8: versión Scilab 4.0-RC1 • HP-UX 11.11: versión Scilab 4.0-RC1 • Linux sobre Mac Intosh: versión Scilab para Linux • Mac OS X sobre Mac Intosh: para 10.4, versión Scilab X11 para 10.3, versión Scilab 3.1.1, compilada con GTK Las versiones antiguas de Scilab se pueden descargar de: http://www.scilab.org/download/index_download.php?page=oldReleases.html Y las versiones para Mac OS X se pueden descargar, por ejemplo, de la dirección: 15 2.Introducción a SCILAB 4.1 2.5.Cómo conseguir SCILAB 4.1 y qué sistemas operativos y plataformas lo soportan http://www.lmac.utc.fr/~mottelet/Darwin/ La familia de versiones 4.x es la última que trabaja todavía con Windows 98 y con Microsoft Visual 6.0. La versión 4.0 data del 15 de febrero de 2006. La versión 4.1 se lanzó el 12 de diciembre de 2006 con todas las correcciones necesarias para poder ejecutar Scicos sin problemas en la familia de versiones 4.0, junto con algunas mejoras de errores críticos. Se esperan versiones beta de esta familia en los próximos meses. La familia de versiones 4.x no incorpora modificaciones significativas. Actualmente, en el momento de redacción de la presente memoria, está disponible la versión 4.1.1. Esta versión se introdujo principalmente por tres motivos: 1. Tener una versión de HP-UX Scilab 4.1.1 disponible para usuarios de Scilab. 2. Proporcionar una versión de Scilab compatible con el programa Scilab-LabView Gateway 1.0 3. Proporcionar un entorno de trabajo que evite el fallo del compilador de “gfortran” (el entorno de trabajo proporcionado por Scilab 4.1 daba problemas al mostrar los resultados, incluso si el cálculo no se veía afectado). El presente proyecto de fin de carrera se ha realizado con la versión 4.1 de Scilab. Como las diferencias entre las versiones 4.1 y la 4.1.1 son mínimas, no se ha considerado necesario actualizar la versión. A lo largo del año 2007, se indicó que la versión 5.0, que se esperaba que fuera lanzada en noviembre de 2007, pero que aún no ha sido publicada, incorporará un nuevo Scicos, en cuya preparación se está haciendo un esfuerzo importante. La versión más antigua que se puede descargar del apartado de la página web titulado “versiones antiguas” es la 2.6, del año 2001. Durante dos años no se desarrolló ninguna mejora más, hasta que en el año 2003 apareció la versión 2.7, con un editor de programa. En julio de 2004 aparece una versión muy innovadora respecto a todas las versiones anteriores: la 3.0. El 27 de mayo de 2005 se mejoró sensiblemente el editor gráfico, con la versión 3.1. Como se puede observar, en los últimos años, Scilab ha experimentado mejoras con mayor rapidez. 2.6.Requerimientos del sistema Para instalar la versión fuente para Windows, es decir, el archivo “scilab-4.1.exe”, si elegimos la instalación por defecto, y dejamos seleccionadas las opciones que el asistente de instalación propone, se requieren 108,2 Mb de espacio libre en disco para desempaquetar e instalar los componentes. La versión binaria, una vez descomprimida, tiene un tamaño de 69,2 Mb. 16 2.Introducción a SCILAB 4.1 2.7.Instalación y ejecución de SCILAB 4.1 2.7.Instalación y ejecución de SCILAB 4.1 2.7.1.Instalación en Windows Hacemos doble click en el archivo descargado “scilab-4.1.exe”. Inmediatamente aparece una ventana preguntándonos sobre el idioma de la instalación, dando a elegir entre inglés y francés. Ilustración 7Selección del idioma a elegir durante la instalación Una vez elegido el idioma deseado, aparece la ventana del wizard o asistente de instalación, dándonos la bienvenida y animándonos a seguir con la instalación. Pulsamos “next”. Ilustración 8Bienvenido al asistente de instalación de Scilab 17 2.Introducción a SCILAB 4.1 2.7.Instalación y ejecución de SCILAB 4.1 Acto seguido, pregunta si aceptamos el acuerdo de licencia. Los términos de este acuerdo son los usuales en los programas de sofware libre (open source software). El programa se puede distribuir y modificar libremente, tan sólo con la condición de hacer mención explícita a sus creadores en todas las copias, es decir, deben aparecer las palabras “Scilab inside (c)INRIA-ENPC”. Para proseguir con la instalación, y si estamos de acuerdo con esta condición, pulsamos “next”. El acuerdo de licencia se puede consultar en los archivos “license.txt” (inglés) y “licence.txt” (francés) incluidos en la carpeta “scilab 4.1” creada anteriormente. Ilustración 9Pregunta sobre la aceptación del acuerdo de licencia Se nos pregunta ahora sobre cuál deseamos que sea la carpeta de destino del software. En este paso se indica que se requieren al menos 103,5 Mb de espacio libre en disco, aunque posteriormente veremos que será necesario un poco más. 18 2.Introducción a SCILAB 4.1 2.7.Instalación y ejecución de SCILAB 4.1 Ilustración 10Nombre que deseamos para la carpeta de destino del software Una vez elegido el destino y pulsada la tecla “next”, se nos pregunta sobre qué componentes deseamos instalar, y qué tipo de instalación llevaremos a cabo, a elegir entre cuatro tipos: 1. -Instalación por defecto (installation default) 2. -Instalación completa (full installation) 3. -Instalación compacta (compact installation) 4. -Instalación personalizada (custom installation). Si elegimos la instalación por defecto, y dejamos marcados los componentes que ya están seleccionados, entonces necesitaremos 108,2 Mb de espacio en disco. 19 2.Introducción a SCILAB 4.1 2.7.Instalación y ejecución de SCILAB 4.1 Ilustración 11Elegir tipo de instalación y componentes a instalar A continuación, se nos pregunta sobre el nombre de la carpeta de los programas en el menú inicio. Ilustración 12Nombre de la carpeta de de los programas del menú inicio Una vez seleccionado el nombre de la carpeta, pregunta sobre qué archivos asociar al prgrama scilab, y sobre si se desea crear un acceso directo en el escritorio. 20 2.Introducción a SCILAB 4.1 2.7.Instalación y ejecución de SCILAB 4.1 Ilustración 13Archivos a asociar con Scilab y creación de acceso directo en el escritorio Por último, se hace una pregunta final antes de proceder a la instalación, por si se desea cambiar algún parámetro antes de realizar efectivamente la instalación. Ilustración 14Posibilidad de cambiar algún parámetro antes de proceder a la instalación 21 2.Introducción a SCILAB 4.1 2.7.Instalación y ejecución de SCILAB 4.1 Una vez pulsada la tecla “install”, comienza la instalación en sí. Ilustración 15Pantalla de progreso mostrada durante la instalación El tiempo de instalación depende de los parámetros elegidos y de la potencia del sistema en el que estemos realizando la instalación. En media, se calcula que la instalción dura en torno a un par de minutos. Tras haberse completado la barra de progreso, y antes de que finalice el asistente de instalación, se nos muestra por pantalla información relativa al programa. Esta información se muestra en el archivo de texto “README_Windows.txt”, incluido en la carpeta “scilab 4.1” creada anteriormente. 22 2.Introducción a SCILAB 4.1 2.7.Instalación y ejecución de SCILAB 4.1 Ilustración 16Información relativa al programa Una vez pulsada la tecla “next”, aparece una pantalla en la que se indica que la instalación ha finalizado, y se nos ofrece la posibilidad de ejecutar directamente Scilab. Ilustración 17La instalación se ha compeltado En el momento que hagamos doble click sobre el icono del programa Scilab, comienza a ejecutarse este programa. Pero antes de entrar en el programa, nos aparece una ventana que nos ofrece la oportunidad de conocer más aspectos de la familia de versiones 4.x: 23 2.Introducción a SCILAB 4.1 2.7.Instalación y ejecución de SCILAB 4.1 Ilustración 18Notas sobre la familia de versiones 4.x Si pulsamos sobre “Open release_notes.txt”, se abre ese archivo de texto. Después, pulsamos “OK”, y se arranca finalmente el programa Scilab. También podemos pulsar “OK” directamente, sin leer el archivo de texto, e incluso podemos seleccionar que nunca más aparezca esa ventana al iniciar el programa. Las release notes se pueden consultar en el archivo de texto “release_notes.txt” incluido en la carpeta “scilab 4.1” creada anteriormente. La ventana inicial de Scilab tiene el siguiente aspecto: Ilustración 19Ventana inicial de Scilab 4.1 2.7.2.Instalación en GNU/Linux Para la instalación en LINUX de la versión binaria [6], simplemente hay que seguir los siguientes pasos: 1. Una vez descargado el archivo binario scilab-4.1.bin.linux-i686.tar.gz se copia éste en el directorio en el cual se desea instalar Scilab (<scilab-path>) 2. A continuación, ejecute los siguientes instrucciones: 24 2.Introducción a SCILAB 4.1 2.7.Instalación y ejecución de SCILAB 4.1 [$SHELL] cd <scilab-path> [$SHELL] tar xzf scilab-4.1.bin.linux-i686.tar.gz [$SHELL] cd scilab-4.1 [$SHELL] make 3. Una vez hecho esto, para ejecutar Scilab tan sólo hay que teclear: [$SHELL] cd <scilab-path>/scilab-4.1 [$SHELL] bin/scilab 25