tutorial scilab

20

Click here to load reader

Upload: leonardo-marino-angarita

Post on 26-Jun-2015

3.485 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Tutorial Scilab

1Tutorial Scilab, Neuta, Universidad Nacional de Colombia. Segundo semestre del 2010 – .

TUTORIAL SCILAB

Jairo Andrés Neuta Bernal - 261227

Universidad Nacional de Colombia

21 de noviembre del 2010

En este documento se presenta un sencillo tutorial sobre Scilab en su versión 5.1, aquí se hace una descripción de 20 comandos básicos, cada uno con un ejemplo que muestra su aplicación en este software usado para calculo científico y de uso programable. Scilab se caracteriza por manejar datos de forma natural y sencilla, con un entorno fácil de manipular y escalar, con soporte para librerías de desarrollo llamadas toolbox aplicadas al área de control lineal y no lineal , procesamiento de señales y análisis de redes entre otros temas.

Para comenzar es importante mencionar y hacer referencia a los autores de este programa, Scilab fue desarrollado en INRIA, Institut National de Recherche en Informatique et Automatique; reconocido como un excelente Instituto Francés, con la colaboraccion de la escuela de Ingenieros ENPC, Ecole Nationale de ponts et Chaussées en el año de 1990, con la filosofía de software de distribución libre bajo la licencia GPL.

1. Comando: asignación de variables de tipo escalar.

En mi concepto este comando es el más básico e importante que se debe manejar en Scilab, ya que con este comando (constantes), nos permite asignar en memoria un valor numérico a alguna de las letras disponibles del alfabeto, con el objetivo de realizar alguna operación matemática posteriormente. Existen dos tipos de constantes matemáticas; las constantes asignadas por los usuarios (ver figura 2) y las constantes que vienen implementada en el paquete del programa, para hacer uso de este tipo de constantes se debe preceder la constante por el símbolo “% “(ver figura 5).Con respecto a la asignación de constantes el procedimiento es el siguiente: Scilab ofrece una ventana de trabajo con un ambiente muy amigable y práctico muy similar a la que ofrece Matlab (ver figura 1).

Fig. 1 Consola de programación de Scilab.

Page 2: Tutorial Scilab

2Tutorial Scilab, Neuta, Universidad Nacional de Colombia. Segundo semestre del 2010 – .

En esta consola de programación, para realizar cualquier tipo de comando se debe escribir frente al símbolo -- > (prompt) el comando deseado, ya que este símbolo inicializa cada línea de la consola disponible para programar.

Si quiero asignar un valor numérico de tipo escalar a una letra del alfabeto, debo escribir en consola la letra que quiero, seguido el símbolo = y posteriormente el valor numérico deseado, luego de esto se oprime la tecla Enter, para que el comando se ejecutado y mostrado en pantalla, pero si se desea que el valor de una asignación o operación no sean mostrados en la pantalla, se debe terminar cada línea de comando con un punto y coma “;”. Es importante mencionar que Scilab reconoce y diferencia las letras mayúsculas de las minúsculas en el momento que se hace una asignación, también este programa soporta valores numérico de carácter entero, con valores decimales, complejos entre otros. Esta asignación se puede observar en la siguiente imagen:

Fig. 2 Consola de programación de Scilab en la que se muestra asignación de variables.

Page 3: Tutorial Scilab

3Tutorial Scilab, Neuta, Universidad Nacional de Colombia. Segundo semestre del 2010 – .

En el momento que se desee eliminar o remover el valor numérico de tipo escalar asignado a una letra se utiliza el comando “clear” y seguido la letra que se desea remover (ver figura 3).

Fig. 3 Remover variable con comando clear.

Al escribir el comando de instrucción Who en consola, se logra saber con qué constantes se está trabajando en la sesión de programación actual, es decir; muestra en una ventana alterna que se abre las variables del programa, las variables que se han asignado por el programador y muestra los elementos y variables que estoy usando del total de las ofrecidas y soportadas por el programa (ver figura 4).

Fig.4 Conjunto de variables utilizadas en el programa observadas mediante el comando Who.

Page 4: Tutorial Scilab

4Tutorial Scilab, Neuta, Universidad Nacional de Colombia. Segundo semestre del 2010 – .

Ahora para el caso de las constantes que vienen implementadas en el paquete del programa, el procedimiento que se debe seguir para utilizarlas, es el siguiente:

Fig.4 Constantes implementadas en el paquete de Scilab.

2. Operaciones y funciones en Scilab:

Ahora que ya se conoce el procedimiento para declarar constantes, se puede empezar a realizar operaciones entre las variables de tipo escalar; como sumas, restas, multiplicaciones, divisiones, potencias, raíces y funciones como exponencial de x o logaritmo de x entre otras.

Fig. 5 Suma de dos variables de tipo escalar en Scilab.

Page 5: Tutorial Scilab

5Tutorial Scilab, Neuta, Universidad Nacional de Colombia. Segundo semestre del 2010 – .

Fig. 6 Resta de dos variables de tipo escalar en Scilab.

Es importante mencionar que los paréntesis determinan un papel importante en las operaciones matemáticas, ya que agrupan y organizan operaciones que pueden llegar a ser complejas.

Fig. 7 Multiplicación y división de dos variables de tipo escalar en Scilab

El siguiente comando se utiliza para elevar una variable a una determinada potencia, simplemente se hace uso del operando”^” o también se puede expresar como “**” (ver figura 8).

Page 6: Tutorial Scilab

6Tutorial Scilab, Neuta, Universidad Nacional de Colombia. Segundo semestre del 2010 – .

Fig. 8 Potencia en Scilab

También es importante mencionar que para indicar al programa, que la instrucción en una sentencia es demasiado larga y no se ha finalizado y que por ende debe continuar en la siguiente línea de comando, se debe poner tres puntos al final de la sentencia de código.

Fig. 9 Función sqrt en Scilab.

Fig. 10 Función exp en Scilab.

En la figura 9 se puede observar el uso de sqrt que corresponde a una de las funciones matemáticas más usadas como también lo son: sin, cos, abs, exp, log, max, min entre otras, para hacer uso de estos comandos es necesario escribir el comando requerido seguido luego de paréntesis, dentro de los cuales se escribirá la variable o argumento deseado. Es importante mencionar que el argumento para el caso de las funciones trigonométricas debe

Page 7: Tutorial Scilab

7Tutorial Scilab, Neuta, Universidad Nacional de Colombia. Segundo semestre del 2010 – .

estar dado en radianes, pues el programa no reconoce el argumento en grados (ver figura 11).

Fig. 11 Función trigonometrica en Scilab.

Para las funciones trigonométricas se muestra la función correspondiente, el comando que representa y el ejemplo de asignación en la línea de sentencia de la función, a una variable determinada.

Fig. 12 Funciones trigonométricas en Scilab.1

Para consultar las funciones disponibles en el paquete de programación de Scilab se puede hacer uso del comando “apropos function”; al ordenar este comando se abre una nueva ventana que contiene todas las funciones matemáticas disponibles en el programa, cada una tiene su descripción, modo de uso y un ejemplo que aclara la manera en que se debe usar en Scilab.

3. Uso de Vectores y matrices:

Así como en los comandos anteriores se trabajo con valores escalares, también se puede trabajar con vectores y matrices, Scilab permite representar variables físicas que son expresadas mediante el uso de vectores; como por ejemplo la fuerza ejercida sobre un cuerpo, la velocidad de un vehículo, entre otros fenómenos modelables.

En Scilab se puede trabajar con vectores fila y vectores columna, para introducir un vector fila en la línea de comandos; primero se debe nombrar al vector, luego se usa el

Page 8: Tutorial Scilab

8Tutorial Scilab, Neuta, Universidad Nacional de Colombia. Segundo semestre del 2010 – .

signo de asignación “=” y posteriormente se dispone a ubicarse los componentes del vector separados por espacio en blanco o comas y ubicados dentro de paréntesis cuadrados. Para el caso en el que se quiera introducir un vector columna se nombra el vector, se utiliza el signo “=” para asignar los valores del vector y finalmente se ubica cada componente del vector; oprimiendo enter para escribir el componente de la otra fila o separando cada componente con “;”, los componentes van en paréntesis cuadrados (ver figura 13).

Fig. 13 Vectores fila y columna en Scilab.

Es importante mencionar que se puede generar un vector columna a partir de un vector fila, utilizando la transpuesta del vector fila indicado por comilla sencilla” ´” (ver figura 14).

Page 9: Tutorial Scilab

9Tutorial Scilab, Neuta, Universidad Nacional de Colombia. Segundo semestre del 2010 – .

Fig. 14 Vector columna mediante la transpuesta del vector fila en Scilab

Para representar un matriz en Scilab es muy sencillo pues requiere los pasos utilizados para los vectores fila y columna, en este caso se puede representar una matriz de n*m; donde n equivale al número de filas de la matriz y m al número de columnas presentes en la matriz. La construcción de la matriz se hace siguiendo estos parámetros, primero es necesario nombrar la matriz, luego se utiliza el signo de asignación “=” y finalmente dentro de paréntesis cuadrados ubico los vectores fila separados por comas o espacios y para indicar el siguiente vector fila finalizo el vector con un “;” (ver figura 15).

Fig. 15 Matriz en Scilab.

Para realizar el comando producto punto es necesario asignar un vector de n componentes a una variable, a esta se le multiplica por la variable o el valor escalar deseado, como se sabe el producto punto genera un escalar (ver figura 16).

Page 10: Tutorial Scilab

10Tutorial Scilab, Neuta, Universidad Nacional de Colombia. Segundo semestre del 2010 – .

Fig. 16 Producto punto en Scilab

Para hacer producto cruz se debe asignar dos vectores fila o dos vectores columna de la misma dimensión, luego para realizar el comando se debe utilizar “.*” para realizar el producto cruz, el cual generara como resultado un vector (Ver figura 17).

Fig. 17 Producto cruz en Scilab.

4. Usando polinomios:

Para manejar polinomios en Scilab, se hace de manera práctica, tan solo es necesario tener claro si el polinomio que se va a crear se va hacer mediante la asignación de coeficientes y la variables o si se hará introduciendo las raíces del polinomio y la variable con la que se desea trabajar.

Si se opta por introducir los coeficientes y la variable a trabajar el proceso es el siguiente: primero se le asigna un nombre al polinomio, luego se pone el símbolo de asignación “=” , posteriormente se escribe “poly” , luego se escribe dentro de paréntesis redondos las características del polinomio, dentro de estos se escriben los coeficientes del polinomio que van a su vez en paréntesis cuadrados y finalmente se separan los coeficientes de la variable que está dentro de comillas sencillas mediante una coma, luego de la variable base del polinomio se escribe separados por coma también dentro de comillas sencillas la letra ‘c’ que indica que el polinimio esta descrito por coeficientes y su variable (Ver figura 18).

Page 11: Tutorial Scilab

11Tutorial Scilab, Neuta, Universidad Nacional de Colombia. Segundo semestre del 2010 – .

Fig. 18 Polinomio con coeficientes en Scilab

Ahora si se opta por introducir las raíces y la variable a trabajar el proceso es el siguiente: primero se le asigna un nombre al polinomio, luego se pone el símbolo de asignación “=” , posteriormente se escribe “poly” , luego se escribe dentro de paréntesis redondos las características del polinomio, dentro de estos se escriben las raíces del polinomio que van a su vez en paréntesis cuadrados y finalmente se separan los coeficientes de la variable que está dentro de comillas sencillas mediante una coma (Ver figura 19).

Fig. 19 Polinomios con raíces en Scilab

Finalmente para integrar temas vistos en el curso de señales y sistemas II se va trabajar con un ejercicio de la siguiente manera:

Se inicia escribiendo la función de transferencia de uno de los ejercicios desarrollados en clase (ver figura 20).

Primero se asigna el polinomio a la variable “num” que representa el numerador de la función de transferencia, para este ejercicio el polinomio es de grado cero, pues simplemente es una constante, igualmente se asigna an la variable “den” el polinomio del denominador de la función de transferencia con la que se va a trabajar (ver figura 19).

Page 12: Tutorial Scilab

12Tutorial Scilab, Neuta, Universidad Nacional de Colombia. Segundo semestre del 2010 – .

Fig. 19 Función de transferencia en Scilab

Tambien se puede utilizar el comando Syslin para asignar un sistema lineal a una variable de la siguiente manera:

g=syslin('c',num/den);

Donde g es la variable que caracteriza la función de transferencia, c indica que esta indicado por sus coeficientes donde num y den determinan el numerador y el denominador de la función de transferencia respectivamente. En la siguiente figura se observa como mediante el comando roots:

nombre=roots(poly([0 2 3 1],'s','c'))

Se logra obtener las raíces de un polinomio dado.

Fig. 20 Raíces de un polinomio en Scilab.

Page 13: Tutorial Scilab

13Tutorial Scilab, Neuta, Universidad Nacional de Colombia. Segundo semestre del 2010 – .

Ahora utilizando el comando Evans se logra obtener el lugar geométrico de las raíces de la función de transferencia g (s) implementada mediante el comando (lista SYSLIN). Este es el lugar geométrico de las raíces de * 1 + k H (s) * = 1 + N k (s) / D (s), en el plano complejo. (Ver figura 21)

Fig. 21 Lugar geométrico de las raíces en Scilab.

Page 14: Tutorial Scilab

14Tutorial Scilab, Neuta, Universidad Nacional de Colombia. Segundo semestre del 2010 – .

El siguiente paso es graficar bode haciendo el siguiente comando:

Fig. 22 Diagrama de bode de la función de transferencia g(s) en Scilab.

Finalmente para obtener la respuesta al impulso, se ingresa el instante de tiempo y la entrada, utilizando el comando siguiente:

Page 15: Tutorial Scilab

15Tutorial Scilab, Neuta, Universidad Nacional de Colombia. Segundo semestre del 2010 – .

Fig. 23 Diagrama de respuesta al impulso para g(s) en Scilab.

Bibliografia:

1) Fundamentos de Scilab y aplicaciones. Pdf, Andres Alfonso Caro y Cesar Valero Sepúlveda, versión 0.1, 2004.

2) Scilab Computación Numérica bajo Linux y Windows, Andrés Jiménez Jiménez, titulado superior de apoyo a investigación, Universidad de Cádiz.