Sei sulla pagina 1di 38

versin 3.

0
Manual bsico v1.0 Revisin A

Febrero 2012

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

ndice
1 INICIO...........................................................................................................................3 2 GUI (Graphical User Interface)..........................................................................................5 3 USO...............................................................................................................................8 3.1 Insercin de un bloque..............................................................................................9 3.1.1 Puertos...........................................................................................................12 3.2 Conexin de bloques...............................................................................................13 3.3 Seleccin y edicin mltiple......................................................................................14 4 CDIGO PROGRAMABLE.................................................................................................16 4.1 Inicializacin del modelo..........................................................................................18 4.2 Ejecucin de la simulacin........................................................................................20 4.3 Visualizacin de los resultados..................................................................................21 4.4 Paths tiles............................................................................................................22 5 EJEMPLOS.....................................................................................................................23 5.1 Construccin de un sistema de primer orden mediante bloques bsicos..........................23 5.2 Construccin de un subsistema.................................................................................25 6 CREACIN DE UN BLOQUE DE LIBRERA...........................................................................27 7 LICENCIAS....................................................................................................................31 7.1 Python...................................................................................................................31 7.1.1 History of the software......................................................................................31 7.1.2 Terms and conditions for accessing or otherwise using Python...............................32 7.2 wxPython...............................................................................................................35 7.3 Numpy..................................................................................................................35 7.4 Scipy.....................................................................................................................36 7.5 Matplotlib...............................................................................................................36 7.5.1 License...........................................................................................................36 7.5.2 License agreement for matplotlib 1.1.0...............................................................36 7.6 Photon...................................................................................................................37

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

2/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

1 INICIO
_______________________________________________________

Photon es una herramienta para simulacin de sistemas dinmicos de cualquier tipo. Es muy comn utilizar herramientas de simulacin para resolver ciertos problemas complejos y cuya solucin analtica es difcil de encontrar o incluso puede que no exista. Los campos de accin en donde podra ser til un simulador son muy variados, por ejemplo, para analizar dinmica de fluidos, problemas del mbito fsico, qumico, elctrico, electrnico, etc. En general, cualquier sistema que pueda ser representado matemticamente por ecuaciones diferenciales, algebraicas, lineales o no lineales, podra ser simulado con esta herramienta. Photon es una herramienta simple, rpida y efectiva para construir y simular sistemas dinmicos hechos a medida mediante diagramas de bloques. Utiliza el potente motor de simulacin FreeSim 3.0 desarrollado ntegramente por Estudios Elctricos. Este motor de simulacin se encuentra altamente optimizado con el objetivo de lograr mxima velocidad durante el proceso de clculo. En funcin de ello, se han desarrollado distintos mtodos y algoritmos, para correr una simulacin en distintos hilos (threads) y de esa forma utilizar al mximo la potencia de clculo disponible en las PC modernas. Esta herramienta permite construir diagramas de bloques, como lo hara con un lpiz sobre una hoja de papel, a partir de una librera de bloques bsicos que realizan todas las operaciones necesarias. Si se necesitara alguna operacin particular, es factible crearla mediante la combinacin de los bloques simples de librera. Si eso no fuera suficiente, es posible crear un bloque en el cual se define su comportamiento mediante programacin (utilizando el lenguaje Python 2.x). Esto permite total flexibilidad al momento de disear un diagrama de bloques. La librera de bloques est divida por categoras en:

Sources Lineal Non-Lineal Input/Output Filtering Complex

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

3/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Integer Power System

Ir al ndice

Dentro de cada una de estas categoras existe una batera de bloques elementales que pueden ser utilizados en cualquier diagrama. Photon utiliza internamente el lenguaje de programacin Python 2.x para realizar la simulacin, y para la escritura de porciones de cdigo por parte del usuario. Para mayor informacin relacionada con cuestiones del lenguaje de programacin remitirse a www.python.org. Photon puede ser instalado en cualquier PC en donde funcione Python 2.x. Algunos paquetes adicionales son necesarios tales como wxPython, numpy, matplotlib, etc. Como resultado, este software es multi-plataforma. Fue probado exitosamente en distintas versiones de Windows, Linux y Mac OS X.

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

4/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

2 GUI (Graphical User Interface)


_______________________________________________________

La interfaz de usuario es extremadamente amigable y permite mediante unos pocos clicks generar un diagrama de bloques sencillo. Al momento de desarrollar el software, se puso especial atencin en la esttica de los diagramas. Para ello se han utilizado formas redondeadas, sombras, colores y curvas de Bzier que son ampliamente utilizadas por los programas ms importantes de dibujo vectorial. Todo ello combinado resulta en grficos de alta definicin y sumamente agradables. La ventana principal presenta un diseo minimalista y consta de cinco reas: 1. Men 2. Lista de Sistemas y subsistemas. 3. Lienzo de dibujo 4. Ventana de salida 5. Barra de herramientas La mayor parte de las acciones estn vinculadas con alguna combinacin de teclas. Una vez familiarizado con ellas, el usuario podr realizar las tareas ms rpidamente.

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

5/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

Figura 2.1 - Interfaz de usuario

El listado en forma de rbol sobre el lado izquierdo permite navegar el sistema. La vista de la hoja corresponde con el tem seleccionado en el navegador. La ventana de salida muestra los distintos mensajes que surgen durante el uso del software. Sobre el lienzo y mediante el men contextual se pueden agregar todos los bloques que hagan falta para generar la funcionalidad requerida. Los bloques se comunican entre s mediante las conexiones que vinculan un puerto de salida(rojo) con un puerto de entrada(verde).

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

6/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

Figura 2.2 - Interfaz de usuario

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

7/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

3 USO
_______________________________________________________

Al iniciar Photon, se cuenta con una hoja en blanco lista para comenzar la edicin. La mayor parte de las acciones pueden ser realizadas directamente sobre el lienzo con el puntero del mouse. El men contextual sobre la hoja contiene casi todas las operaciones que pueden realizarse.

Figura 3.1 - Menu contextual de la hoja

La manipulacin de la hoja es sumamente sencilla. La rueda del mouse permite realizar zoom sobre la posicin en que se encuentra el puntero. Fcilmente el usuario puede acercar y alejar la hoja para hacer foco en donde desee. El efecto de zoom tambin se logra mediante las teclas Ctrl y +/- pero en este caso el foco se corresponde con el centro de la zona visible de la hoja.
Manual bsico v1.0 rev:A
No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

8/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Manteniendo presionada la tecla Shift el puntero del mouse cambia a la clsica manito con la que se puede arrastrar la hoja hacia la posicin deseada. La creacin de un sistema simulable requiere de algunas sencillas etapas. 1. Insercin de los bloques necesarios del modelo. 2. Conexin de bloques. 3. Inicializacin del modelo. 4. Ejecucin de la simulacin. 5. Visualizacin de los resultados.

Ir al ndice

3.1 Insercin de un bloque La insercin de bloques se hace mediante el men contextual. Se presiona con el botn derecho del mouse sobre el lugar vaco en donde se quiere agregar un bloque y se desplegar el men. El primer tem del men es Nuevo bloque y all se encuentra la librera de bloques bsicos. A continuacin se muestran los pasos para crear un bloque Gain. Es importante notar que en el sistema principal se llama por defecto MainSystem, tal como lo indica el nodo principal de la lista de bloques. Todo System es un contenedor de otros elementos, incluso otros System. Dentro de cada proyecto, existe un solo sistema principal y es el que contiene el cdigo de ejecucin. El resto de los sistemas que pueda haber son subsistemas del principal. Todos los bloques que se agreguen sern hijos del MainSystem (o como se designe al sistema principal).

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

9/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

Figura 3.3 - Insercin de un bloque Gain

Figura 3.2 - Insercin de un bloque Gain

Luego de insertado un bloque, puede ser movido o redimensionado. Estas acciones se realizan arrastrando los handles que aparecen en las esquinas del bloque cuando est seleccionado. Si se presiona la tecla Ctrl una vez comenzado el arrastre aparecern dos lneas, una horizontal y otra vertical, que se cruzan en el lugar original donde estaba el handle y que sirven de gua para lograr un movimiento en una sola direccin. Esta caracterstica es extensible a cualquier handle ya sea de un bloque o de una lnea. Todos los bloques tienen parmetros que los caracterizan. Ellos se muestran en pantalla cuando se selecciona la opcin Editar bloque... del men contextual del bloque (o haciendo doble click sobre el bloque). En el caso particular de un subsistema, el comportamiento ante el evento "doble click" sobre l es distinto:

si el subsistema no tiene definida una mscara -> "doble click" entra al subsistema

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

10/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

si el subsistema ya tiene definida una mscara -> "doble click" abre el dilogo de edicin de mscara

Ir al ndice

si el subsistema ya tiene definida una mscara -> "Ctrl+doble click" entra al subsistema

La ventana de edicin de bloque tiene cuatro pestaas:

Figura 3.4 - Mscara

Figura 3.5 - General

Figura 3.6 - Descripcin

Figura 3.7 - Grficas

Dentro de la pestaa Mscara se visualizan todos los parmetros modificables que son particulares de la clase de bloque que se est editando. Dentro de la pestaa General se visualiza el identificador del bloque (no editable) y el nombre del bloque. El nombre debe ser nico entre todos los bloques pertenecientes a un sistema. Si se intenta utilizar un nombre ya usado, el software agregar automticamente un nmero como sufijo del nombre de manera que sea nico.

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

11/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Dentro de la pestaa Descripcin se muestra la ayuda particular de cada bloque, indicando cul es la funcin que cumple.

Ir al ndice

Dentro de la pestaa Grficas se visualizan parmetros del bloque relacionados con cuestiones grficas. Tanto la posicin como el tamao del bloque estn dados en pixels. Existen dos controles del tipo listas desplegables que permiten definir si se muestra o no el nombre del bloque incluyendo la posicin para hacerlo y si se muestra o no la lista de parmetros sobre la hoja indicando la forma de hacerlo. El hecho de que los valores de los parmetros aparezcan sobre la hoja permite una mejor documentacin de los modelos realizados.

3.1.1 Puertos Los puertos determinan la interfase del bloque (junto con su mscara). Son los que definen las seales de entrada y salida de los bloques. Los puertos de entrada se dibujan como un crculo de color verde. Los puertos de salida son crculos de color rojo. Todos los puertos tiene un nmero nico para el tipo que sea (tipo entrada o salida). Por ejemplo, un bloque no puede tener dos puertos de entrada numerados con "0", pero si un puerto "0" de entrada y un "0" de salida. En la mayora de los bloques de librera los puertos ya estn definidos y por lo tanto no son modificables ni su nmero ni su tipo. Algunos bloques en particular necesitan que se definan determinadas caractersticas de sus puertos. Por ejemplo un sumador podra tener algunas entradas que suman y otras que restan, o bien, ms entradas que las que trae por defecto. Para agregar un puerto, si el bloque lo permite, se utiliza la opcin correspondiente del men contextual del bloque. Para editar un puerto se despliega el men contextual sobre el mismo o con doble click.

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

12/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

Figura 3.8 - men contextual de un puerto

Figura 3.9 - ventana de edicin de un puerto

Se observa que mediante la ventana de edicin se puede seleccionar el tipo de puerto Entrada/Salida, el nmero, el smbolo, el lado en donde se ubicar y un nombre y una descripcin si fuera necesario. El tipo de dato est definido por el tipo de bloque al cual pertenece el puerto. En el caso de los subsistemas, el tipo es seleccionable mediante una lista desplegable. 3.2 Conexin de bloques Para crear una lnea, simplemente se debe arrastrar con el mouse desde un puerto de salida (rojo) hasta uno de entrada (verde) libre. Al soltar el botn del mouse sobre un puerto de entrada libre se dibuja automticamente una lnea de tipo Bezier. Varias lneas pueden comenzar en un mismo puerto de salida, pero solo una lnea puede llegar a una entrada determinada.

Figura 3.10 - arrastrando para conectar

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

13/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

Figura 3.11 - conexin creada

Para modificar el aspecto de la lnea se puede seleccionar y mover los handles o agregarle nuevos handles para generar diferentes curvaturas. A modo de recomendacin, tmese unos segundos decorando los diagramas de bloques y ver cuanto ms agradable resultan a la vista.

3.3 Seleccin y edicin mltiple Existen situaciones en donde se desea modificar alguna caracterstica o parmetro en particular de varios de los bloques que conforman el DB. Para esos casos, es posible utilizar el cuadro de dialogo de seleccin mltiple en donde se muestran en una grilla todos los bloques seleccionados. En esa grilla aparecen como columnas, todas las propiedades que son compartidas por todos los objetos seleccionados. Es importante notar que las propiedades: id, name, showName, showParams, x, y, w y h son comunes a todos los bloques y por lo tanto siempre aparecern en la grilla. El resto de las columnas agregadas hacia la derecha dependern de que clase de bloques se hayan seleccionado. En la Figura 3.12 se encuentran seleccionados tres bloques que tiene en la mscara un parmetro K y por lo tanto aparece la columna correspondiente. Sobre esta grilla se pueden efectuar acciones de modificacin tanto como copiar y pegar. La seleccin de los bloques se puede realizar manualmente con el mouse (manteniendo presionado la tecla Ctrl) o mediante la herramienta de seleccin por clases del men contextual.

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

14/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

Figura 3.12 - Seleccin mltiple

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

15/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

4 CDIGO PROGRAMABLE
_______________________________________________________

Para lograr una simulacin, el software construye de manera intermedia y transparente para el usuario un script con cdigo puro Python 2.x. Dentro de este script existen partes que son personalizables por el usuario. Estas porciones de cdigo personalizables son identificadas como:

Cdigo de ejecucin, Condiciones iniciales, Importacin de mdulos, Cdigo inicial, Funciones de clase.

En este punto es necesario tener conocimientos mnimos de programacin en Python (ver doc.python.org)

Figura 4.1 - Ventana de edicin de cdigo

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

16/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Cada uno de estos cinco tems mencionados anteriormente son representados por una transcripta al lugar correspondiente dentro del script que genera el software al momento de la ejecucin. A continuacin se presenta el esqueleto de un script y se marcan los puntos en donde sern transcriptas cada porcin de cdigo escrito por el usuario. Es importante notar que cada una de esas partes tiene un mbito diferente para sus variables.

Ir al ndice

pestaa en la ventana de "Editar cdigo Python" y la porcin de cdigo que se escriba all ser

Esqueleto de script

... ... # Importacin de mdulos class MainSystem(freesim.System): def __init__(self, ....): # Codigo inicial (creacin de los objetos) ... def calcInit(self): # Condiciones iniciales ... # Funciones de clase del usuario

def runScript(self): # Codigo de ejecucion ... ... ...

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

17/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Para crear cdigo en la pestaa de funciones de clase se debe tener en cuenta que se definen con la siguiente estructura:

Ir al ndice

def NombreDeFuncion1(self,...): ... def NombreDeFuncion2(self,...): ... def NombreDeFuncionN(self,...): ...


No hay limitacin en cuanto a la cantidad de funciones de clase que se pueden crear, todo depende de las necesidades del problema a resolver.

4.1 Inicializacin del modelo El proceso de inicializacin requiere el clculo de los valores de las variables de estado si se requiere que el modelo arranque en equilibrio. Esto implica que dadas las condiciones de borde del sistema que se desea simular, ste tendr una condicin de rgimen estacionario en la cual podra permanecer indefinidamente. Bajo esas condiciones, las variables de estado del sistema adoptarn determinados valores que son los que se necesitan calcular en esta etapa de inicializacin. Si para las condiciones de las entradas y salidas, se calculan correctamente los valores de las variables de estado, el sistema ya estara en rgimen estacionario desde el instante cero de simulacin, en caso contrario, existir una evolucin transitoria hasta lograr el punto de equilibrio. Las condiciones iniciales de los bloques aparecen en sus respectivas mscaras como un parmetro ms a ser cargado. Por ejemplo en la mscara de un bloque Int aparece la variable x0 que representa la condicin inicial.

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

18/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

Figura 4.2 - Mscara de Int

La forma ms rudimentaria de inicializar sera escribir el valor en el cuadro de texto correspondiente en la mscara. En caso de que se necesite realizar algn clculo extra, se puede realizar en la pestaa Condiciones iniciales en la ventana de edicin de cdigo python. Dentro de la pestaa Condiciones iniciales es posible escribir cdigo en lenguaje Python 2.x. Esta porcin de cdigo forma parte del cuerpo de una funcin de clase llamada calcInit que recibe una referencia del sistema llamada self. Internamente el software construye una funcin con la siguiente forma:

def calcInit(self): (cdigo escrito por el usuario en la seccin Condiciones iniciales)


No existe una manera metdica de calcular las condiciones de iniciales. El usuario debe inspeccionar el diagrama de bloques y a partir de all decidir la metodologa a aplicar en cada caso. Normalmente los bloques que requieren calcular la condicin inicial son los que poseen integradores. Por ejemplo: si en el MainSystem se hubiera agregado un integrador llamado Int, la condicin inicial de l se forzara a un valor con la siguiente lnea de cdigo.

self.Int.x0 = (valor calculado)


self es una referencia al sistema propiamente dicho. Int es el nombre del bloque integrador al que se le quiere calcular su condicin inicial. x0 es el parmetro que se quiere modificar.
Manual bsico v1.0 rev:A
No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

19/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

En general, cualquier parmetro de la mscara puede ser modificado de esta manera, en este caso particular se usa para modificar un parmetro que representa una condicin inicial.

Ir al ndice

Dentro del cdigo escrito por el usuario se puede incorporar cualquier clase de expresin admitida por un intrprete de Python 2.x. Esto permite total flexibilidad pues se dispone de todas las herramientas con las que cuenta dicho lenguaje de programacin, puede por ejemplo abrir un archivo y leer algunos datos para inicializar el sistema en una determinada condicin o cualquier otra cosa que al usuario se le ocurra.

4.2 Ejecucin de la simulacin Dentro de la pestaa Cdigo de ejecucin es posible escribir cdigo en lenguaje Python 2.x. Esta porcin de cdigo forma parte del cuerpo de una funcin de clase llamada runScript que recibe una referencia del sistema llamada self y dos argumentos llamados old y WorkSpace. Internamente el software construye una funcin con la siguiente forma:

def runScript(self, old=None, WorkSpace={}): (cdigo escrito por el usuario en la seccin Cdigo de ejecucin)
Cuando se elige la opcin Ejecutar Script (F5) el software procesa el sistema desarrollado, construye un script escrito en lenguaje Python 2.x, y lo ejecuta. Para ejecutarlo crea en memoria un objeto de la clase del sistema principal y lo ejecuta llamando a la funcin runScript de la instancia. A partir de all se ejecutarn secuencialmente las lneas de cdigo escritas por el usuario. El argumento old es un diccionario que contiene los resultados de la simulacin anterior. Durante la primera ejecucin es None dado que todava no existe una simulacin anterior. El argumento WorkSpace es un diccionario cuyo contenido persiste entre las distintas simulaciones que el usuario realice. Esta caracterstica puede ser utilizada como un espacio de trabajo en donde se almacenan cosas tiles. Una estructura de runScript tpica podra ser la siguiente.

self.initSim(runstep=0.001) self.run(10.0)
El cdigo anterior inicializa la simulacin, define el paso de integracin en 0.001 segundos y simula 10.0 segundos.

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

20/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

4.3 Visualizacin de los resultados

Ir al ndice

Para la visualizacin de los resultados es necesario ubicar bloques Scope conectados a las seales que se desean registrar. El nombre de un Scope ser utilizado para designar la seal registrada dentro del diccionario de resultados. La forma de obtener los resultados es pedirle al sistema el diccionario de la simulacin. Esto se hace mediante la funcin getSimuDict(). Las claves del diccionario corresponden a los nombres de todos los Scope presentes en el sistema. Adicionalmente existe la clave 't' que corresponde al tiempo de simulacin. Este diccionario es en realidad un objeto de la clase Mdict el cual tiene un comportamiento exactamente igual a un diccionario nativo de Python con la particularidad que se puede obtener algunas de sus claves como si fueran un atributo. Esto quiere decir que la llamada d['t'] y d.t son semejantes, permitiendo ahorrar gran cantidad de comillas y corchetes en la edicin. Una forma adicional de visualizar resultados es mediante los bloques DummyIn y DummyOut. Estos bloques muestran en pantalla el valor de la entrada o la salida a la que estn conectados respectivamente luego de finalizada la simulacin. Dentro del espacio de nombres en donde se ejecuta la funcin runScript se encuentran definidos los siguientes alias:

plt para matplotlib.pyplot np para numpy

matplotlib.pyplot es un mdulo que provee funciones para generar grficos de alta calidad. La sintaxis de la funcin plot contenida dentro del mdulo plt es sumamente sencilla, se le debe pasar como parmetro el array del eje x, el array del eje y, opcionalmente se le agrega el color y tipo de la lnea. Para mayor informacin sobre el mdulo matplotlib remitirse a la pgina web http://matplotlib.sourceforge.net/ numpy es un mdulo que contiene toda clase de funciones matemticas y que habitualmente son utilizadas. Para mayor informacin http://numpy.scipy.org/ . Por ejemplo si existiera un bloque Scope llamado 'out' se podra generar una figura de la siguiente manera:

d = self.getSimuDict() plt.plot(d.t, d.out,'b') plt.grid() plt.show()


Manual bsico v1.0 rev:A
No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

21/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

La ltima lnea de cdigo es necesaria para visualizar la figura en una ventana. 4.4 Paths tiles

Ir al ndice

Existe un archivo de configuracin llamado config.txt que contiene algunos paths importantes en formato xml y se encuentra ubicado en la misma carpeta de la aplicacin. Si se ejecuta Photon y no se encuentra ste archivo, se crear automticamente con algunos valores predefinidos. Luego el usuario podra editar el archivo con cualquier editor de texto y cambiarlos. La seccin de paths podra lucir de la siguiente manera:
<PATHS> <PATH key="$APPPATH$" value="C:\Python27\Lib\site-packages\Photon"/> <PATH key="$LIBPATH$" value="C:\Python27\Lib\site-packages\Photon\Libreria"/> <PATH key="$UTILSPATH$" value="C:\Python27\Lib\site-packages\Photon\utils"/> </PATHS>

Las claves $LIBPATH$, $APPPATH$ y $UTILSPATH$ podran ser usadas para crear paths relativos. Por ejemplo si se deseara abrir dentro de un subsistema un archivo ejemplo.ph3 que est ubicado dentro de la carpeta definida como librera, se podra usar para la propiedad Archivo en la pestaa General del subsistema:
C:\Python27\Lib\site-packages\Photon\Libreria\ejemplo.ph3 $LIBPATH$\ejemplo.ph3

De la misma forma podran usarse los otros path definidos en el archivo config.txt. La clave $UTILSPATHS tiene adems la particularidad de que se importa automticamente durante la ejecucin del script, por lo tanto podra generarse un mdulo de funciones personalizado ubicado dentro de esa carpeta, por ejemplo misFunciones.py, y utilizarse luego simplemente agregando la lnea siguiente en la seccin de Importacin de mdulos

import misFunciones

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

22/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

5 EJEMPLOS
_______________________________________________________

5.1 Construccin de un sistema de primer orden mediante bloques bsicos.

Figura 5.1 - Diagrama de bloques

La condicin inicial del integrador llamado Int se define igual a cero. Este valor puede ser directamente cargado en la mscara del bloque. El cdigo de ejecucin tendra la siguiente forma:

self.initSim(0.001) self.run(10.0) d = self.getSimuDict() plt.plot(d.t, d.inp,'g', d.t, d.output,'b') plt.grid() plt.xlabel('t [seg]') plt.ylabel('input and output') plt.show()

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

23/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

Figura 5.2 - Salida de la simulacin

Si se quisiera automatizar el clculo de la condicin inicial, para independizarse del valor inicial del Step se podra incorporar la siguiente lnea de cdigo en la seccin Condiciones iniciales en la ventana de edicin de cdigo.

self.Int.x0 = self.Step.value1
De esta manera la condicin inicial del integrador siempre ser el valor inicial del Step.

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

24/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

5.2 Construccin de un subsistema.

Figura 5.4 - contenido de subsystem Figura 5.3 - Simulacin de un subsistema

En la figura 5.4 se puede observar el contenido del subsistema. El bloque verde representa una entrada y el rojo una salida. En el momento en el que se crea un bloque tipo System subsystem, ste no tiene ningn puerto. Se los debe agregar mediante el men contextual. Cada sistema contiene una hoja en la cual se podrn agregar nuevos bloques.

Figura 5.5 - Agregado de puertos

Es importante diferenciar la interfase de un subsistema del contenido del mismo. La interfase contiene la informacin de cmo se vincula el bloque con el resto de los bloques, es decir, los puertos. La vinculacin con el exterior se lleva a cabo mediante el nmero del puerto. Esto quiere decir que al sumador de la figura 5.4 le llegar la salida del bloque Step de la figura 5.3 y la salida de Int de la figura 5.4 ser registrada por el Scope de la figura 5.3 llamado output. Grficamente se podra pensar que la vinculacin ocurre de la siguiente manera:

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

25/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

Figura 5.6 - Vinculacin de puertos

La opcin descubrir del men contextual construye automticamente la interfase externa del subsistema a partir del contenido del mismo. Esto quiere decir que por cada bloque Input y Output que haya dentro del subsistema se crear su correspondiente puerto exterior. Obviamente el resultado de la simulacin es exactamente igual que en el ejemplo del punto 5.1 . Las pestaas de script se veran de la siguiente manera.

Figura 5.7 - script

El concepto de subsistema permite crear libreras de bloques. Todos los bloques que compartan la interfase (o una parte de ella dependiendo el caso) podran ser intercambiables.

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

26/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

6 CREACIN DE UN BLOQUE DE LIBRERA


_______________________________________________________

Los bloques de librera sirven para reutilizar modelos ya construidos y guardados en un archivo. Un bloque de librera es en definitiva un MainSystem al que se le ha definido una mscara y la forma automatizada de calcular sus condiciones iniciales tanto de los estados internos como de todas las entradas y salidas necesarias. Es posible la reutilizacin de diagramas de bloques existentes mediante la inclusin de un bloque System al que se le indica que su contenido proviene de un archivo previamente guardado. Para crear un subsistema que funcione como un bloque de librera, ste debera funcionar correctamente, independientemente de donde se lo coloque y para eso se deben construir su mscara y calcular correctamente sus condiciones iniciales en funcin de las condiciones de borde. Pasos: 1. Construccin del subsistema: como ejemplo se utilizar el subsistema de la figura 5.3. 2. Construccin de la mscara: considerando que la constante de tiempo ahora ser configurable.

Figura 6.2 - Ventana Editar mscara

Figura 6.1 - Men contextual

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

27/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Agregar un tem con el botn '+' y editarlo para que quede como se muestra en la figura siguiente

Ir al ndice

Figura 6.3 - Agregado de un tem

3. Ahora la variable T puede ser usada dentro del subsistema y tomar el valor que se ingrese en la mscara. Entonces se modifica el bloque Cond y remplaza el valor 0.5 por el nombre de variable T.

Figura 6.5 - Cambio de 0.5 por T

Figura 6.4 - Mscara externa

Las variables de las mscaras son pasadas como argumentos al constructor del objeto en el momento de la ejecucin. Si se necesitara utilizar en tiempo de ejecucin el valor de T dentro de, por ejemplo el cdigo de inicializacin, se debera utilizar la siguiente expresin: self.Cond.gain. Esto es debido a que el valor 0.5 asignado a la variable T es redirigido al parmetro gain del bloque Cond.

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

28/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

4. El siguiente paso es inicializar el subsistema. Se supondr que la entrada es forzada valor conocido sea la salida, pero ese caso no se ha contemplado. Mediante el men contextual de subsystem se llega a Editar Codigo...

Ir al ndice

por el sistema principal y entonces es un valor conocido. Podra haber pasado que el

Figura 6.6 - Condiciones iniciales de subsystem

Es importante notar que la lnea de cdigo fuerza la condicin inicial del integrador al valor que adopte la entrada 0 del subsistema. Existen algunas funciones tiles al momento de inicializar: - self.GetInput(nro de puerto) : obtiene el valor del puerto de entrada dado - self.GetOutput(nro de puerto) : obtiene el valor del puerto de salida dado - self.SetInput(nro de puerto, valor) : fuerza el valor del puerto de entrada dado. - self.SetOutput(nro de puerto, valor) : fuerza el valor del puerto de salida dado. 5. Luego desde el sistema principal (que es el padre de subsystem) solo hace falta llamar a que se calculen las condiciones iniciales de subsystem despus de haberse asegurado que el valor de su entrada est calculado.

self.subsystem.SetInput(0, self.Step.value1) self.subsystem.calcInit()


La primer lnea impone el valor correcto de la entrada del subsistema. La segunda lnea solicita el clculo de las condiciones iniciales del subsistema que se muestran en la figura 6.6.

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

29/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

6. Para crear un bloque de librera a partir de este subsistema se debe guardar el sistema desde el men contextual.

Ir al ndice

Figura 6.7 - Guardar subsistema

Suponiendo que se guarda con el nombre sub_PT1.ph3, este archivo se convierte en un bloque de librera debido a que se puede utilizar en cualquier otro lugar simplemente agregando un bloque subsystem e indicndole que su contenido proviene del archivo sub_PT1.ph3. El contenido de cualquier subsistema que est vinculado a un archivo es de solo lectura y la nica forma de ser modificado es abrindolo como sistema principal 7. A partir de este instante la propiedad archivo del subsistema y su contenido queda vinculado con el archivo que se ha grabado. Para desvincularlo solo es necesario borrar el nombre del archivo en la mscara.

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

30/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

7 LICENCIAS
_______________________________________________________

7.1 Python

7.1.1 History of the software


Python was created in the early 1990s by Guido van Rossum at Stichting Mathematisch Centrum (CWI, see http://www.cwi.nl/) in the Netherlands as a successor of a language called ABC. Guido remains Pythons principal author, although it includes many contributions from others. In 1995, Guido continued his work on Python at the Corporation for National Research Initiatives (CNRI, seehttp://www.cnri.reston.va.us/) in Reston, Virginia where he released several versions of the software. In May 2000, Guido and the Python core development team moved to BeOpen.com to form the BeOpen PythonLabs team. In October of the same year, the PythonLabs team moved to Digital Creations (now Zope Corporation; see http://www.zope.com/). In 2001, the Python Software Foundation (PSF, see http://www.python.org/psf/) was formed, a non-profit organization created specifically to own Python-related Intellectual Property. Zope Corporation is a sponsoring member of the PSF. All Python releases are Open Source (see http://www.opensource.org/ for the Open Source Definition). Historically, most, but not all, Python releases have also been GPL-compatible; the table below summarizes the various releases.
Release 0.9.0 thru 1.2 1.3 thru 1.5.2 1.6 2.0 1.6.1 2.1 2.0.1 2.1.1 2.2 2.1.2 2.1.3 2.2.1 2.2.2 2.2.3 2.3 2.3.1 2.3.2 2.3.3 2.3.4 Derived from n/a 1.2 1.5.2 1.6 1.6 2.0+1.6.1 2.0+1.6.1 2.1+2.0.1 2.1.1 2.1.1 2.1.2 2.2 2.2.1 2.2.2 2.2.2 2.3 2.3.1 2.3.2 2.3.3
Manual bsico v1.0 rev:A

Year 1991-1995 1995-1999 2000 2000 2001 2001 2001 2001 2001 2002 2002 2002 2002 2002-2003 2002-2003 2002-2003 2003 2003 2004

Owner CWI CNRI CNRI CNRI PSF PSF PSF PSF PSF PSF PSF PSF PSF PSF PSF PSF PSF PSF

GPL compatible? yes yes no no no yes yes yes yes yes yes yes yes yes yes yes yes yes
31/38

BeOpen.com no

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

Release 2.3.5 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.5 2.5.1 2.5.2 2.5.3 2.6 2.6.1 2.6.2 2.6.3 2.6.4 2.7

Derived from 2.3.4 2.3 2.4 2.4.1 2.4.2 2.4.3 2.4 2.5 2.5.1 2.5.2 2.5 2.6 2.6.1 2.6.2 2.6.3 2.6 2005 2004 2005 2005 2006 2006 2006 2007 2008 2008 2008 2008 2009 2009 2010 2010

Year

Owner PSF PSF PSF PSF PSF PSF PSF PSF PSF PSF PSF PSF PSF PSF PSF PSF

GPL compatible? yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes

Note GPL-compatible doesnt mean that were distributing Python under the GPL. All Python licenses, unlike the GPL, let you distribute a modified version without making your changes open source. The GPL-compatible licenses make it possible to combine Python with other software that is released under the GPL; the others dont. Thanks to the many outside volunteers who have worked under Guidos direction to make these releases possible. 7.1.2 Terms and conditions for accessing or otherwise using Python PSF LICENSE AGREEMENT FOR PYTHON 2.7.2 1. This LICENSE AGREEMENT is between the Python Software Foundation (PSF), and the Individual or Organization (Licensee) accessing and otherwise using Python 2.7.2 software in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 2.7.2 alone or in any derivative version, provided, however, that PSFs License Agreement and PSFs notice of copyright, i.e., Copyright 2001-2010 Python Software Foundation; All Rights Reserved are retained in Python 2.7.2 alone or in any derivative version prepared by Licensee. 3. In the event Licensee prepares a derivative work that is based on or incorporates Python 2.7.2 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python 2.7.2. 4. PSF is making Python 2.7.2 available to Licensee on an AS IS basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

32/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

5.

6. 7.

8.

MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 2.7.2 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 2.7.2 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 2.7.2, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. This License Agreement will automatically terminate upon a material breach of its terms and conditions. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. By copying, installing or otherwise using Python 2.7.2, Licensee agrees to be bound by the terms and conditions of this License Agreement. BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1

1. This LICENSE AGREEMENT is between BeOpen.com (BeOpen), having an office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the Individual or Organization (Licensee) accessing and otherwise using this software in source or binary form and its associated documentation (the Software). 2. Subject to the terms and conditions of this BeOpen Python License Agreement, BeOpen hereby grants Licensee a non-exclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use the Software alone or in any derivative version, provided, however, that the BeOpen Python License is retained in the Software, alone or in any derivative version prepared by Licensee. 3. BeOpen is making the Software available to Licensee on an AS IS basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 5. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 6. This License Agreement shall be governed by and interpreted in all respects by the law of the State of California, excluding conflict of law provisions. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between BeOpen and Licensee. This License Agreement does not grant permission to use BeOpen trademarks or trade names in a trademark sense to endorse or promote products or services of Licensee, or any third party. As an exception, the BeOpen Python logos available at http://www.pythonlabs.com/logos.html may be used according to the permissions granted on that web page.

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

33/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

7. By copying, installing or otherwise using the software, Licensee agrees to be bound by the terms and conditions of this License Agreement. CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 1. This LICENSE AGREEMENT is between the Corporation for National Research Initiatives, having an office at 1895 Preston White Drive, Reston, VA 20191 (CNRI), and the Individual or Organization (Licensee) accessing and otherwise using Python 1.6.1 software in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, CNRI hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 1.6.1 alone or in any derivative version, provided, however, that CNRIs License Agreement and CNRIs notice of copyright, i.e., Copyright 1995-2001 Corporation for National Research Initiatives; All Rights Reserved are retained in Python 1.6.1 alone or in any derivative version prepared by Licensee. Alternately, in lieu of CNRIs License Agreement, Licensee may substitute the following text (omitting the quotes): Python 1.6.1 is made available subject to the terms and conditions in CNRIs License Agreement. This Agreement together with Python 1.6.1 may be located on the Internet using the following unique, persistent identifier (known as a handle): 1895.22/1013. This Agreement may also be obtained from a proxy server on the Internet using the following URL: http://hdl.handle.net/1895.22/1013. 3. In the event Licensee prepares a derivative work that is based on or incorporates Python 1.6.1 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python 1.6.1. 4. CNRI is making Python 1.6.1 available to Licensee on an AS IS basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 7. This License Agreement shall be governed by the federal intellectual property law of the United States, including without limitation the federal copyright law, and, to the extent such U.S. federal law does not apply, by the law of the Commonwealth of Virginia, excluding Virginias conflict of law provisions. Notwithstanding the foregoing, with regard to derivative works based on Python 1.6.1 that incorporate non-separable material that was previously distributed under the GNU General Public License (GPL), the law of the Commonwealth of Virginia shall govern this License Agreement only as to issues arising under or with respect to Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between CNRI and Licensee. This License Agreement does not grant permission to use CNRI trademarks or

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

34/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. 8. By clicking on the ACCEPT button where indicated, or by copying, installing or otherwise using Python 1.6.1, Licensee agrees to be bound by the terms and conditions of this License Agreement. ACCEPT CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 Copyright 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands. All rights reserved. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Stichting Mathematisch Centrum or CWI not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE 7.2 wxPython

7.3 Numpy Copyright (c) 2005, NumPy Developers All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of the NumPy Developers nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND

ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
Manual bsico v1.0 rev:A
No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

35/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

Ir al ndice

IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,

WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 7.4 Scipy

7.5 Matplotlib 7.5.1 License Matplotlib only uses BSD compatible code, and its license is based on the PSF license. See the Open Source Initiative licenses page for details on individual licenses. Non-BSD compatible licenses (eg LGPL) are acceptable in matplotlib Toolkits. For a discussion of the motivations behind the licencing choice, see Licenses. 7.5.2 License agreement for matplotlib 1.1.0 1. This LICENSE AGREEMENT is between John D. Hunter (JDH), and the Individual or Organization (Licensee) accessing and otherwise using matplotlib software in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, JDH hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use matplotlib 1.1.0 alone or in any derivative version, provided, however, that JDHs License Agreement and JDHs notice of copyright, i.e., Copyright (c) 2002-2009 John D. Hunter; All Rights Reserved are retained in matplotlib 1.1.0 alone or in any derivative version prepared by Licensee. 3. In the event Licensee prepares a derivative work that is based on or incorporates matplotlib 1.1.0 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to matplotlib 1.1.0. 4. JDH is making matplotlib 1.1.0 available to Licensee on an AS IS basis. JDH MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, JDH MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB 1.1.0 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 5. JDH SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF MATPLOTLIB 1.1.0 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING,

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

36/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

DISTRIBUTING, OR OTHERWISE USING MATPLOTLIB 1.1.0, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions.

Ir al ndice

7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between JDH and Licensee. This License Agreement does not grant permission to use JDH trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. 8. By copying, installing or otherwise using matplotlib 1.1.0, Licensee agrees to be bound by the terms and conditions of this License Agreement. 7.6 Photon El programa se distribuye bajo licencia de Estudios Elctricos S.R.L. de Argentina (EE). No est permitido revender el programa ni redistribuirlo sin el previo consentimiento de EE. El cdigo fuente del programa, los algoritmos de clculo, etc, estn protegidos por las leyes de Propiedad intelectual, si bien el programa est desarrollado con herramientas de libre distribucin no est permitido el uso de ningn mtodo de ingeniera inversa para obtener dicho cdigo fuente.

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

37/38

Tel +54 341 5680321 (+rot) www.estudios-electricos.com

Ir al ndice

Esta pgina ha sido intencionalmente dejada en blanco

Manual bsico v1.0 rev:A

No se autorizan copias del presente documento sin autorizacin previa por escrito de ESTUDIOS ELECTRICOS SRL

38/38

Potrebbero piacerti anche