lunes, 28 de marzo de 2011

Práctica 4: Enunciados GPSS World


PROBLEMA 1: Torno estadio de fútbol

Enunciado:

Los espectadores llegan al torno de un estadio de fútbol cada 7 ± 7 segundos. El tiempo de acceso a través del torno sigue una distribución uniforme de 5 ± 3 segundos.

Realizar el modelo que determine el tiempo necesario para que 300 personas pasen por el torno.


Relación con teoría-clase:

Identificamos las identidades y los recursos del problema:
  1. Entidades: las personas, ya que son todo aquello que entra, circula y sale del sistema.
  2. Recursos: el torno, ya que se define como todo evento fijo (máquinas, ordenadores, cajer@s de supermercado, etc.).


Resolución con Anylogic:

Arratramos desde el menú derecho de "Enterprise Library" al área de trabajo:

  1. Source: en sus propiedades modificamos la función de llegada en la opción "Interarrival time", donde introduciremos una "exponential (1)" (se asemeja más a la naturaleza). En "Rate" pondremos un valor 1/14 para que el problema asigne tiempos de llegada entre 0 y 14 de forma aleatoria. 
  2. Delay: es el parámetro que hará las funciones del torno, simulando un retraso en el flujo. En sus propiedades modificaremos la opcion "Capacity" dándole un valor de 1, y en "Delay Time" se introducirá "uniform (2,8)". A mayor capacidad, menor cola. 
  3. Queue: párametro que nos va mostrar las unidades que estan esperando a ser servidas, en este caso, las personas que estan preparadas para entrar al campo de fútbol. Se coloca delante del "delay", de lo contrario dará error el delay  ya que estaría ocupado y el source seguiría produciendo entidades. 
  4. Conveyor: realiza un progresivo movimiento de las entidades desde source hasta el "sink" que colocaremos a continuación. En sus propiedades modificaremos "Lengh = 100", "Accumulaty: NO", "Space between entities:1e-10" (se introduce un valor tan pequeño ya que el valor cero no se puede introducir) y "Speed =10". 
  5. Sink: indica el final del sistema.

Representación gráfica:

Para obtener una representación gráfica donde se pueda ver la evolución del sistema, se introduce un nombre en "Animation Guide Shape" de las propiedades generales del elemento Delay, y se asocia con una polilínea que tendrá el mismo nombre. Este mismo paso lo repetimos con "Queue" para ver como varía la cola con el paso del tiempo.
Para la representación de personas, se arrastra un "Person" de la categoría "Pictures", y modificando las propiedades generales de "Source" asignamos "Person" a "Entity Animation Shape". Así obtenemos una simulacion gráfica de lo que sería un proceso real.

Instante del sistema una vez transcurrido un cierto tiempo
PROBLEMA 1: Llamadas telefónicas


Enunciado:
Un sistema simple de teléfono tiene dos líneas externas. Las llamadas, que se generan externamente, llegan cada 100 ± 60 segundos. Cuando la línea está ocupada, la llamada vuelve a marcar después de 5 ± 1 minutos. La duración de la llamada es de 3 ± 1 minutos.

Se necesita conocer la distribución del tiempo que cada persona que llama necesita para hacer una llamada con éxito. ¿Cuánto tiempo se necesita para completar 200 llamadas?

Relación con teoría-clase:

  1. Entidades: llamadas esperando a ser atendidas.
  2. Recurso: llamadas en curso.




lunes, 21 de febrero de 2011

Creación de un espacio 3D en Anylogic

Hemos creado un espacio 3D con las herramientas que nos proporciona el programa Anylogic. El resultado ha sido el siguiente:


lunes, 14 de febrero de 2011

Práctica 2: Ecuaciones diferenciales (Anylogic)

Enunciado:

Dado el siguiente  problema de condiciones iniciales (PCI), hallar la solución numérica y la simulación gráfica mediante Anylogic:


Relación con teoría-clase:

Se trata de un problema donde "t" es la variable independiente que representa el tiempo, siendo "x" la función incógnita. Por lo tanto, la función F dada es F(t,x) = -(1/3)x.

La ecuación de orden n = 1 está en forma explícita (ya que dx/dt está despejada), en la cual la solución es única y existe ya que f(x)=-(1/3)x es continua de Lipschitz.

Resolución en Anylogic: 

Al abrir un nuevo proyecto (File → New → Model), se arrastra del menú derecho "System Dynamics" al área de trabajo "main" un "Stock variable" (con forma de cuadrado) y un "Flow aux variable" (con forma de círculo), quedado relacionadas por una flecha que indica que existe un flujo (lo que matemáticamente se vería como una integración).


En las propiedades de "Stock Variable", se introduce el nombre de la función incógnita "x" con un valor inicial de 5, siendo dx/dt = Dx. En las propiedades de "Flow aux variable", se introduce el nombre de "Dx", siendo la función F dada Dx = (-1.0/3)*x.

NOTA: Teniendo en cuenta que se está trabajando con lenguaje JAVA, es necesario escribir 1.0, ya que de lo contrario el cociente normal daría 0 como resultado, ya que JAVA da la solución en números enteros.

Haciendo doble click sobre "Flow aux variable" se traza automáticamente una flecha entre "x" y "Dx" (expresa la dependencia entre ambas), de forma que queda representado el Diagrama de Forrester de la ecuación diferencial.
Diagrama de Forrester de la Ecuación diferencial.

Para obtener la simulación se introduce una circunferencia a través de Presentation Oval, siendo los parámetros dentro de General "Radius X" y "Radius Y" igual a 10. Además, dentro del Properties "Dynamic" se ajusta la escala de forma que se perciba correctamente el movimiento X = 100*x
 
Para la obtención de la solución numérica se crea un Data Set pichando con el botón derecho sobre "Stock Variable",  en cuyas propiedades se habilita la casilla Update Automatically.

Para la obtención de la solución gráfica de x respecto de t, se introduce un Time Plot al área de trabajo desde la pestaña Analysis, en cuyas propiedades General Add Data Item Value se introduce "x", ya que es el valor a representar.

Para poder visualizar todo lo anteriormente explicado, se le dará al boton "Play" para ver la simulación, y observa que según avanza el tiempo se va completando tanto la tabla como el gráfico.


Falta grafico...

lunes, 31 de enero de 2011

Práctica 1: Ecuaciones diferenciales (EJS)

Enunciado:

Dado el siguiente  problema de condiciones iniciales (PCI), hallar la solución numérica y la simulación gráfica mediante EJS:


Relación con teoría-clase:

Se trata de un problema donde "t" es la variable independiente que representa el tiempo, siendo "x" la función incógnita. Por lo tanto, la función F dada es F(t,x) = ax.

La ecuación de orden n = 1 está en forma explícita (ya que dx/dt está despejada), en la cual la solución es única y existe ya que f(x)=ax es continua de Lipschitz.

Resolución en EJS:

Se introducen las variables con sus correspondientes valores iniciales en la pestaña MODELO → Variables:
  • haciendo doble click en el nombre, se introduce el nombre de las diferentes variables.
  • haciendo doble click en valor inicial, en cada caso se introduce en valor inicial de cada variable (todas de tipo double).
x = -1      a = -3      t = no ponemos nada, ya que se considera cero
Para introducir la ecuación diferencial ordinaria, en la pestaña MODELO Evolución:
  • se introduce la variable independiente "t"
  • se introducen los términos de la ecuación diferencial ordinaria en los diferentes apartados, así como la función F dada:
Estado: dx/dt
Derivada: a*x
Para realizar la simulación, en la pestaña VISTA se selecciona el interfaz "Drawing Frame, en cuyas propiedades de shape2D, en Pos X, se introduce la variable x. Pulsando el botón play se observa la trayectoria desde x = -1 hasta x = 0.
   
Solución numérica. 
Extracto de la tabla de valores.
Para la obtención de la solución numérica en la pestaña VISTA se introduce un nuevo interfaz "TablaDatos", en cuyas propiedades de   Entrada se ponen las variables t,x. Pulsando el  botón play obtenemos los valores numéricos de t y x, donde "A" representa a "t", y "B" a "x".

En este caso, la solución numérica se puede  obtener mediante la expresión x = x0*e^a*t.


 
Para la obtención de la representación gráfica, en la pestaña VISTA se introduce un nuevo interfaz "PlottingFrame", en cuyas propiedades de Entrada X, hay que introducir "t", y en Entrada Y, "x". Pulsando el botón play obtenemos la representación gráfica



NOTA: Esta práctica es igual a la práctica 1 del grupo del martes, pero siendo a=-1/(R*C). Por lo que la ecuación diferencial se podría referir a un circuito capacitivo RC correspondientes a los parámetros de la resistencia y el condensador.