Capítulo 2 - Introducción a SCILAB 4.1

Anuncio
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
Descargar