Funciones De La Simulación Dinámica
Enviado por NataliamTorrente • 21 de Octubre de 2013 • 1.941 Palabras (8 Páginas) • 257 Visitas
FUNCIONES, TABLAS Y RETRASOS
FUNCIONES
Una funcion FUNCION(#,A,B,C,... ) muestra la relación que existe entre los
elementos.
Así la función Y= 2 X nos indica que Y tomará siempre un valor doble del que
tome X, sin ninguna otra restricción.
Ejemplo: Cada silla cuesta 100 €, quiero saber el coste de comprar 1,2,3,4... sillas.
La fórmula sería:
Coste Total = Coste de cada silla x Número de Sillas
o bien Coste Total = 100 x Número de Sillas
El software Vensim® utiliza puntos “.” para señalar decimales y “,” para separar
elementos de una formula. Existe más infomacion pulsando F1 (Search Index for a topic)
ABS(A)
Calcula el valor absoluto de A. El valor absoluto (positivo) de la cifra. ABS(5.00)
es igual a 5.00 y ABS (-5.00) es igual a 5.00. Actua como la función IF THEN ELSE (X <
0, - X, X), de forma que si X es negativo lo combia de signo, y por ello el resultado es
siempre positivo.
Ejemplo: En la puerta de una fábrica hay instalado un sensor que cuenta las
personas que pasan por la puerta, de forma que cuenta +1 si la persona entra y –1 si la
persona sale. Queremos saber el total de personas que pasan por la puerta con
independencia de si salen o entran. Una posible forma de hacerlo es:
Total = Entradas – Salidas
o bien
Total = Entradas + ABS(Salidas)
EXP(X)
Calcula e (2.718...) elevado a X .
Ejemplo: Se utiliza esta expresión en algunos modelos de sistemas . Por ejemplos e2
es igual a 7,3875
IF THEN ELSE(cond,X,Y)
El resultado es X si se cumple la condicion, si no se cumple el resultado es Y.
Ejemplo: Cuando los Pedidos mensuales sean mayores de 100 quiero que el precio
a aplicar en la factura mensual sea 30, y si no lo son quiero que el precio aplicado sea 50.
Precio = IF THEN ELSE (Pedidos>100, 30, 50)
INTEGER DE X
Da como resultado la parte entera del valor X si tiene decimales.
Ejemplo: Un cajero automático solo puede entregar billetes de 1 euro como mínino.
Si el cliente teclea que desea recibir una cantidad fraccionaria (5.5), el programa del cajero
automático elimina los decimales, y seria
Importe entregado=INTEGER(5.5)
Y el resultado del importe entregado serían 5.0 (recordar que “.” indica decimal)
LN(X)
Calcula el logaritmo natural de X.
Ejemplo: En algunos sistemas físicos se utiliza esta expresión. Por ejemplo tenemos
que el valor de ln(50) es igual a 3,912
MAX(A,B)
Calcula el maximo de A y B. El resultado será B cuando B>A, y será igual a A
cuando B<A.
Ejemplo: En una carrera de dos coches A y B queremos saber siempre la velocidad
a la que circula el más rápido.
Velocidad del más rápido = Max(Velocidad de A, Velocidad de B)
Cuando A vaya a 100 y B vaya a 80, la Velocidad del más rápido será 100, y
cuando A vaya a 100 y B vaya a 120, la Velocidad del más rápido será 120.
MIN(A,B)
Calcula el mínimo de A y B. El resultado será A cuando B>A, y será igual a B
cuando B<A..
Ejemplo: En una carrera de dos coches A y B queremos saber siempre la velocidad
a la que circula el más lento.
Velocidad del más lento = Min (Velocidad de A, Velocidad de B)
Cuando A vaya a 100 y B vaya a 80, la Velocidad del más lento será 80, y cuando
A vaya a 100 y B vaya a 120, la Velocidad del más lento será 100
PULSE(A,B)
Esta función vale 1 a partir del periodo A durante B períodos. Antes y después el
valor de la función es 0.
Ejemplo. Un comercio abre a las 8 de la mañana y permanece abierto sin
interrupción durante 12 horas. Hacemos: Estado del comercio = PULSE(8,12) y el Estado
vale 1 cuando está abierto, entre las 8 y las 20 horas, y vale 0 cuando está cerrado.
PULSE TRAIN (A,B,C,D)
Igual que la función Pulse pero empezando en el periodo A, con una duración de B
periodos, que se repite cada C periodos y dejando de repetirse a partir del periodo D.
Ejemplo Un enfermo ha de someterse a las sesiones de un tratamiento médico
diario. Empieza cada dia a las 4 de la mañana, el tratamiento dura 2 horas y ha de empezar
una sesion cada 6 horas. A las 18 horas ya no podemos empezar ninguna nueva sesión. La
variable Tratamiento valdrá 1 en los periodos donde el enfermo tiene sesión de tratamiento
y 0 si no la tiene.
Tratamiento= PULSE TRAIN(4, 2, 6, 18 )
RAMP(S,T1,T2)
Valor 0 hasta el periodo T1, desde ese instante aumenta S unidades cada periodo
hasta el periodo T2 , y luego permanece constante.
Ejemplo: Deseamos abrir la compuerta de un pantano de forma progresiva, a partir
de las 2 de la mañana hasta las 12 del mediodia. El valor de Compuerta es 0 si está cerrada
y 100 si está completamente abierta.
Compuerta=RAMP(10,2,12)
RANDOM UNIFORM(m,x,s)
Devuelve una serie de valores aleatorios con un minimo de “m”, y máximo de “x”,
“s” es el parametro de calculo de los numeros aleatorios, y puede ser cualquier cifra. Si se
cambia “s” se modifica la serie de numeros aleatorios.
Ejemplo: Queremos simular el comportamiento de la tempertura de un cuerpo que
sabemos que a lo largo del dia oscila ente el valor 36 y 38 grados.
Temperatura = RANDOM UNIFORM(36,38,99)
RANDOM NORMAL(m, n, p, x,s)
Simular a la función RANDOM UNIFORM, devuelve una serie de valores
aleatorios con un minimo de “m”, y máximo de “n”, centrados en el valor medio “p”, con
una desviación típica de “x”, y siendo “s” el parametro de calculo de los numeros
aleatorios, y puede ser cualquier cifra. Si se cambia “s” se modifica la serie de numeros
aleatorios.
Ejemplo: Temperatura mínima 36º, máxima 38º, media 36,5º y desviación tipo igual a
0,5º. Usaremos:
Temperatura = RANDOM NORMAL(36, 38, 36.5, 0.5,99)
SIN(X)
Calcula el seno de X en radianes.
SQRT(X)
Calcula la raiz cuadrada de X.
STEP(H,T)
El resultado es 0 hasta el momento T, a partir de entonces es H.
Ejemplo: Una variable vale 0 hasta el periodo 15 ya partir de ese momento vale
igual a 5. Variable = Step(5,15)
XIDZ(A,B,X)
El resultado es A/B, excepto cuando B=0 que el resultado es X. Se usa cuando
tenemos que hacer la division A/B y en algún instante B puede ser cero, lo que daria
...