Sei sulla pagina 1di 16

Indice

1. Presentacin o 2. Un ejemplo 3. Scilab como calculadora 4. Lenguaje de programacin o 5. Funciones para control de procesos 5.1. Denir polinomios . . . . . . . . . . . . . . . . . 5.2. Denir sistemas lineales . . . . . . . . . . . . . . 5.3. Trazado del lugar de las raices . . . . . . . . . . 5.4. Trazado del diagrama de Bode . . . . . . . . . . 5.5. Simulacin de sistemas en el dominio del tiempo o 5.5.1. Ajustando los parmetros del sistema . . a 5.6. Guardando el trabajo . . . . . . . . . . . . . . . 2 2 3 3 4 4 5 5 5 6 13 13 15 15 15 15

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

6. Prcticas de Sistemas Continuos a 6.1. Ejercicio 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2. Ejercicio 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3. Ejercicio 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7. Prcticas de Sistemas Discretos a 15 7.1. Ejercicio 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 7.2. Ejercicio 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 7.3. Ejercicio 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Primeros pasos, en simulacion de procesos, con Scilab.


Carlos de Mora

1.

Presentacin o

El presente manual no tiene por objeto ser una gu detallada del programa Scilab, sino ms a a bien al contrario, presentar de forma clara y concisa, solamente aquellos aspectos de Scilab que interesan al alumno de la asignatura Regulacin Automtica, especialmente para realizar las o a prcticas de la asignatura. a Scilab es un programa muy potente orientado a realizar clculo numrico. Esto permite entre a e otras cosas realizar simulaciones de sistemas dinmicos, tanto cont a nuos como discretos. Los clculos de Scilab son fundamentalmente matriciales, es decir se utilizan matrices para a plantear y resolver los problemas. Esto se traduce en que la notacin que se utiliza suele involucar o matrices. Scilab posee una inmensa coleccin de funciones y posibilidades que hacen que su manejo o sea muy complejo. Posee rutinas de dibujo que permiten generar grcos. Adems tiene un a a lenguaje de programacin que permite plantear y resolver problemas muy diversos. o En lo que nos interesa, Scilab ofrece una utilidad que permite la denicin de sistemas o dinmicos de forma grca, formando diagramas de bloques. Una vez denido un sistema, ste a a e se puede simular y obtener informacin acerca de su comportamiento. o Scilab se descarga gratuitamente del sitio Web http://www.scilab.org. La instalacin es sencilla y no se trata en este documento ya que se asume que el lector es o capaz de realizarla sin ayuda.

2.

Un ejemplo

Para empezar veamos el siguiente ejemplo. Abramos Scilab. En la ventana del programa veremos la indicacin de atencin que es > .Escribimos las siguientes instrucciones: o o x=10 y=20.5 sqrt(x^2+y^2) En la ventana de Scilab veremos: -->x=10 x = 10. -->y=20.5 y = 2

En Scilab %i %pi %e

Signicado unidad imaginaria ( 1) base de los logaritmos naurales Cuadro 1: Constantes

20.5 -->sqrt(x^2+y^2) ans = 22.808989 -->sin(ans) ans = - 0.7296711

-->

Observamos que despus de introducir cada linea, Scilab da una respuesta cuyo signicado e es claro. En el caso de la instruccin x = 10, hemos denido una variable x, y le hemos asignado o el valor 10. Esta variable queda almacenada en la memoria de Scilab. Ntese que el acento o circunejo es el signo de potenciacin. o En el caso de la instruccin sqrt(x2 + y 2 ) no hemos guardado el resultado de la expresin o o en ninguna variable y entonces Scilab lo guarda en la variable ans. Observamos que la ulti ma instruccin sin(ans) calcula el seno de 22,808989 y guarda el resultado de nuevo en ans. o Ntese que las funciones trigonomtricas siempre toman y devuelven los valores en o e radianes.

3.

Scilab como calculadora

El ejemplo anterior muestra que Scilab puede ser utilizado como una calculadora. Los usuarios que pueden manejar calculadoras cient cas no tendrn ningn problema en realizar con a u Scilab los mismos clculos que con su calculadora. a Las constantes ms utilizadas en los clculos se encuentran en el cuadro 1 a a

4.

Lenguaje de programacin o

Se pueden escribir programas que realizan clculos con Scilab. Para ello existe un lenguaje a de programacin mediante el cual generamos programas que despus guardamos en cheros, o e para poderlos re-ejecutar. Esto dota a Scilab de una gran potencia. Los programas se escriben en un chero de texto plano es decir, no puede tener caracteres extraos como lo que introducen los procesadores de texto. En Windows el editor puede ser n 3

Notepad. Los comandos que introducimos interactivamente en la ventana de aplicacin pueden ser o escritos uno tras otro en un chero de programa y despus ser ejecutados de nuevo. e El lenguaje de programacin es, sin embargo, ms potente pues incluye instrucciones condio a cionales, bucles, etc.. Los cheros de programa tienen la extensin .sci. o La descripcin en detalle del lenguaje de programacin no es objeto de este manual. o o No obstante supongamos que deseamos automatizar alguna tarea sencilla, como por ejemplo el clculo de la sobreoscilacin de un sistema. La frmula de la sobreoscilacin es 1 a o o o Mp = e
.
1 2

(1)

Para calcular esta frmula en Scilab escribir o amos la expresin o z=0.1 Mp=exp(-%pi*z/sqrt(1-z^2)) La primera linea, z = 1 crea la variable z en la memoria y le asigna el valor 0,1. La segunda linea crea la variable M p y le asigna el resultado de la operacin a la derecha de la igualdad. o Esto es anlogo a lo que realizar a amos en una calculadora programable. Para no tener que teclear estas lineas cada vez que deseamos calcular la sobreoscilacin, lo o ms lgico es guardarlas en un chero con extensin .sci y ejecutarlo cuando sea necesario. a o o La orden para ejecutar un chero es exec(nombre_del_fichero) Ntese que el nombre del chero debe incluir el trayecto al mismo, para que Scilab lo o encuentre. Tambin podemos ejecutar un chero usando en el men principal la opcin File:Operations. e u o Scilab ofrece una infraestructura mucho ms rica de cara a la programacin, pero es demasia o ado compleja para los objetivos de este documento.

5.

Funciones para control de procesos

Para las prcticas que nos ocupan solo nos interesan las funciones que sirven para dibujar a el lugar de las raices y el diagrama de Bode de los sistemas. Sin embargo para poder aplicar estas funciones, es necesario conocer algunas cosas ms a previamente.

5.1.

Denir polinomios

Primeramente denimos la variable del polinomio. Por ejemplo, si queremos crear un polinomio cuya variable sea s, lo haremos con la instruccin. o s=poly(0, s) Una vez denida esta variable, podemos crear un polinomio cualquiera. Por ejemplo p=1+2*s+3*s^2 Para hayar las raices de este polinomio usaremos 4

roots(p) Existen muchas otras funciones para manipular polinomios. La ayuda en linea de Scilab proporciona informacin sobre ellas. o NOTA: Estamos acostumbrados a utilizar la variable s para los sistemas cont nuos y z para discretos. Evidentemente en este caso utilizaremos la instruccin o z=poly(0, z) para nuestra mayor comodidad aunque en el fondo es indeferente el nombre de la variable.

5.2.

Denir sistemas lineales

Para denir un sistema lineal, una vez que ya hemos denido la variable que vamos a utilizar en los polinomios, crearemos primeramente la funcin de transferencia, como vemos en o el siguiente ejemplo G=(1+s)/(1+3*s+s^3) despus denimos el sistema lineal mediante la funcin syslin, como sigue para sistemas e o cont nuos: miSistema=syslin(c, G) para sistemas discretos solo cambia un parmetro de la instruccin. Es como sigue a o miSistema=syslin(d, G) Insistimos; el primer argumento de syslin, es decir c, indica que el sistema es continuo. Para sistemas discretos utilizamos d. A partir de ahora la variable miSistema, contiene el sistema que hemos denido.

5.3.

Trazado del lugar de las raices

El lugar de las raices, o trazado de Evans, se dibuja en Scilab mediante la funcin Evans(H, o [kMax]) (ver informacin en la ayuda), donde H es el sistema y kMax es un valor opcional: el o valor mximo de la ganancia. a As si deseamos trazar el lugar de las raices de miSistema introduciremos la instruccin o evans(miSistema) Se abrir una ventana en la que aparecer dicho grco. Ver g. 1 a a a El signicado es el lugar geomtrico de las raices de 1 + K.H(s). e Ntese que en este ejemplo no hemos denido una kMax, por lo que sta es . o e

5.4.

Trazado del diagrama de Bode

Existe una funcin para dibujar el diagrama de Bode de un sistema. Esta es bode. Vase o e la ayuda en linea de Scilab para una descripcin completa. o Una forma sencilla de usarla es bode(sistema, frecMin, frecMax) por ejemplo en el sistema que estamos siguiendo escribir amos bode(miSistema, 0.01, 100) y obtendr amos la gura 2 5

Figura 1: Lugar de las raices

5.5.

Simulacin de sistemas en el dominio del tiempo o

Scilab nos permite simular sistemas a base de construirlos mediante diagramas de bloques, mediante una fun in denominada scicos(). o Si tecleamos scicos() o scicos en Scilab se abrir una ventana dotada de un men que nos a u permite representar grcamente los sistemas. a Una vez en scicos, seleccionamos el men Edit:Palettes. Ver gs. 3 y 4 u La paleta que nos interesa ms es Linear. Ver g. 5 a Los bloques que ms nos interesan son el sumador, y el num(s)/den(s), ya que mediante a ellos dibujaremos nuestros diagramas de bloques. Pruebe a dibujar un diagrama como el de la gura 6. NOTE QUE PARA MOVER O ENLAZAR ES NECESARIO UTILIZAR EL MENU Edit. Cada vez que deseamos cambiar de modo, por ejemplo de mover bloques a enlazar bloques, o borrar, es necesario seleccionarlo previamente en el men Edit. u Para obtener ayuda sobre un bloque, hay que abrir el men Misc y seleccionar la opcin Help. u o A continuacin se cliquea sobre el bloque cuya ayuda solicitamos. o Para introducir una entrada al sistema abriremos la paleta de sources. Ver g. 7 Elegimos como entrada el escaln y lo conectamos a la entrada de nuestro diagrama, obteo niendo la g. 8 A continuacin debemos poder examinar las seales que circulan por el diagrama. o n Para ello abrimos la paleta de sinks o sumideros y extraemos de ella un bloque de los que representan un eje de coordenadas con una seal. n Ntese que hay que elegir el bloque que tiene dos entradas: una superior en rojo y otra a la o izquierda en negro.

Figura 2: Diagrama de Bode

Figura 3: Ventana de scicos

Figura 4: Paletas 8

Figura 5: Repertorio para sistemas lineales

Figura 6:

10

Figura 7: Paleta de fuentes

11

Figura 8:

12

Adems necesitamos abrir la paleta de Events y extraer de ella un relog. a Con todo ello confeccionamos nalmente el diagrama de la gura 9

Figura 9: Diagrama nal

5.5.1.

Ajustando los parmetros del sistema a

Cliqueando sobre cada bloque podemos denir los parmetros del mismo. a As por ejemplo indicaremos la funcin de transferencia de un sistema, de forma muy sencilla. o Anlogamente se denen los parmetros del relog o el osciloscopio. a a En concreto para poder visualizar bien la simulacin, es necesario adaptar el periodo de o muestreo del relog, a la rapided del sistema. Supongamos que en nuestro ejemplo, la funcin de transferencia del bloque superior es o 1 s+1 Como se trata de un sistema de primer orden, sabemos que su constante de tiempo es 1 seg.. Parece entonces adecuado que el relog trabaje por ejemplo a 0,1 seg. de velocidad. Para ello cliqueamos en el relog. Ntese que al realimentar hemos alterado la constante de tiempo y o la ganancia. Adems nuestra simulacin debe durar un tiempo del mismo orden, por ejemplo en 10 segs. a o habremos visto completamente la evolucin del sistema. o El sistema realimentado tiene una ganancia de 0,5, por lo que adaptamos el rango del eje y del osciloscopio (spcope). Para ello cliqueamos en el osciloscopio y adaptamos los parmetros. a Finalmente cliqueamos en el bloque de entrada escaln y ponemos el tiempo en el que se o produce la subida en el valor deseado. Abrimos el men Simulate y pulsamos en la opcin Run. Veremos la siguiente gura 10. u o G(s) =

5.6.

Guardando el trabajo

Podemos guardar nuestro diagrama con sus parmetros en un chero de extensin .cos, a o mediante el men de archivo de scicos. u Despus se puede recuperar este chero para continuar trabajando con l. e e

13

Figura 10: Respuesta a un escaln o

14

6.

Prcticas de Sistemas Continuos a

Las prcticas se entregarn enviando un email a los cursos virtuales, al foro de a a prcticas, que llevar adjuntos los cheros necesarios. a a En general se piden para cada ejercicio un documento realizado en un procesador de texto y un chero generado con Scilab. No se olvide de especicar claramente su nombre. A continuacin se proponen los siguientes tres ejercicios sencillos: o

6.1.

Ejercicio 1
2.(s + 1) (s + 3)(s + 5)

Dado el sistema con funcin de transferencia o G(s) =

Dibujar su lugar de las raices de 1 + K.G(s). Hallar los puntos de corte del lugar con el eje imaginario. Se entregar un documento ralizado con Word o bien con OpenOce (descargarle si a se desea de http://www.openoce.org) en el que se incluir una imgen capturada de a a la pantalla del lugar de las raices, que habr dibujado mediante Scilab, y una somera a explicacin incluyendo los comandos utilizados. o Adems se incluir el chero con extensin .sci que contendr los comandos utilizados. a a o a

6.2.

Ejercicio 2

Para el sistema del ejercicio anterior dibujar su diagrama de Bode. Se entregar un documento ralizado con Word o bien con OpenOce (descargarle si a se desea de http://www.openoce.org) en el que se incluir una imgen capturada de a a la pantalla del diagrama de Bode, que habr dibujado mediante Scilab, y una somera a explicacin incluyendo los comandos utilizados. o Adems se incluir el chero con extensin .sci que contendr los comandos utilizados. a a o a

6.3.

Ejercicio 3

Dado el sistema del problema 9-2 del libro de texto, realizar una simulacin del mismo o mediante scicos. Se considerar el sistema con el compensador desarrollado en el ejemplo. a Se entregar el chero con extensin .cos en el que habremos guardado la simulacin. a o o Adems se entregar un documento de tipo Word u OpenOce con una explicacin breve a a o sobre lo realizado.

7.
7.1.

Prcticas de Sistemas Discretos a


Ejercicio 1
2.(z + 0,3) (z + 0,53)(z + 0,9)(z 0,2 Dado el sistema con funcin de transferencia o G(z) =

Dibujar su lugar de las raices de 1 + K.G(z). 15

Hallar los puntos de corte del lugar con el eje imaginario. Se entregar un documento ralizado con Word o bien con OpenOce (descargarle si a se desea de http://www.openoce.org) en el que se incluir una imgen capturada de a a la pantalla del lugar de las raices, que habr dibujado mediante Scilab, y una somera a explicacin incluyendo los comandos utilizados. o Adems se incluir el chero con extensin .sci que contendr los comandos utilizados. a a o a

7.2.

Ejercicio 2

Para el sistema del ejercicio anterior dibujar su diagrama de Bode. Se entregar un documento ralizado con Word o bien con OpenOce (descargarle si a se desea de http://www.openoce.org) en el que se incluir una imgen capturada de a a la pantalla del diagrama de Bode, que habr dibujado mediante Scilab, y una somera a explicacin incluyendo los comandos utilizados. o Adems se incluir el chero con extensin .sci que contendr los comandos utilizados. a a o a

7.3.

Ejercicio 3

Dado el sistema del problema A14-1 del libro de texto, realizar una simulacin del mismo o mediante scicos. Se considerar el sistema con el compensador desarrollado en el ejemplo. a As mismo obtener los diagramas de Bode que se indican en el libro de texto. Se entregar el chero con extensin .cos en el que habremos guardado la simulacin. a o o Adems se entregar un documento de tipo Word u OpenOce con una explicacin breve a a o sobre lo realizado. oOo

16

Potrebbero piacerti anche