Documentos de Académico
Documentos de Profesional
Documentos de Cultura
P03 Funciones en Dynamo
P03 Funciones en Dynamo
En la presente práctica se presentan ejercicios sobre el uso de funciones en Professional Dynamo, así como
su sintaxis. En la parte final de la práctica se listan una serie de ejercicios propuestos para desarrollar.
III. DESARROLLO
Para mostrar la forma como se definen en DYNAMO las funciones no lineales, desarrollaremos el modelo de
Población de ballenas (Tomado del libro de Javier Aracil).
Se trata de estudiar la conservación de una determinada población, por ejemplo la de ballenas, sometida a
una extinción importante por acción de la pesca o de la caza. La evolución de la población de ballenas
depende de los nacimientos, las muertes naturales, y las muertes por pesca.
Por otra parte, y simplificando el modelo, se supone que la mortalidad debida a la pesca es proporcional a la
población total, es decir:
𝑴𝑷𝑬 = 𝑲 × 𝑷𝑶𝑩
En donde MPE representa la mortalidad debido a la pesca, POB es la población de ballenas y K es una
constante de proporcionalidad.
Existe un límite superior para esta mortalidad fijado por la capacidad de procesamientos y almacenaje de los
productos balleneros por parte de la flota pesquera; por lo tanto se tiene que
Existe una relación no lineal entre los nacimientos y la población total de ballenas, así como también la
relación entre la mortalidad por causas naturales y la población. Esta relación se muestra en la tabla siguiente:
Tabla 1. Relación no lineal entre Población, los Nacimientos y las muertes naturales
Página 1 de 4
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE INGENIERÍA EN INFORMÁTICA Y SISTEMAS
CURSO: DINÁMICA DE SISTEMAS
CICLO DE ESTUDIOS: SÉTIMO | SEMESTRE ACADÉMICO: 2020 - VERANO
A continuación definimos los valores de los parámetros y las ecuaciones de las variables presentes en el
modelo. Aquí básicamente nos interesa conocer la forma de definir las ecuaciones los flujos NAC y MNA las
cuales son funciones no lineales, que se obtienen de la siguiente tabla de datos:
r nac.kl=table(nact,pob.k,0,50000,5000)
r mna.kl=table(mnat,pob.k,0,50000,5000)
r mpe.kl=min((fp)*(pob.k),bmax)
n pob=10000
n time=1900
c fp=0.05
c bmax=1350
save pob,nac,mna,mpe
spec length=2000,savper=10,dt=1
FUNCIONES EN DYNAMO
p, si r≥s
CLIP(p,q,r,s)= {
q, si r<s
Ejemplo: En un modelo ecológico, la tala de árboles de los bosques (TALA.K) debe ir acompañada con
una campaña de sembrío (SEMBRIO.K) con el fin de no producir alteraciones en la naturaleza (FOREST.K).
El incumplimiento de esta regla trae como consecuencia que los bosques queden desolados, afectando
gravemente al medio ambiente (DESFOR.K)
A.CANARB.K=CLIP(DESFOR.K,FOREST.K,TALA.K,SEMBRIO.K)
Ejemplo: En un modelo de narcotráfico, los agricultores que se dedican al sembrío de hoja de coca en la
selva (CULCOCA.K), lo hacen generalmente por el precio que se les paga por su cultivo (PREPROD.K), ya
que lo que se les paga por sus productos: arroz, cacao, café, etc. no es rentable. (PRECPAG.K).
A.CCOCA.K=CLIP(CULCOCA.K,CULNOCO.K,PRECPROD.K,PREPAG.K)
DELAY1(in, del)
Representa un retraso de material de primer orden. Implica siempre la realización de una acumulación
de material.
in: Puede ser una variable de flujo, auxiliar o de nivel.
del: Representa el tiempo de retraso. Debe expresarse en unidades de tiempo.
Página 2 de 4
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE INGENIERÍA EN INFORMÁTICA Y SISTEMAS
CURSO: DINÁMICA DE SISTEMAS
CICLO DE ESTUDIOS: SÉTIMO | SEMESTRE ACADÉMICO: 2020 - VERANO
R COSECHA.KL=DELAY(SIEMBRA.KL,5)
DELAY3(in, del)
Ejemplo: En un modelo de población, una persona desde que nace (NAC.KL) hasta que puede adquirir
la mayoría de edad, pasa por las etapas de infancia, niñez y adolescencia, hasta que se convierte en
ciudadano. Esto constituye un retraso de material de 18 años.
R CIUDA.NL=DELAY3(NAC.KL,18)
SMOOTH(in, del)
A INFANU.K=SMOOTH(INFMEN.K,12)
STEP(increm, tinicio)
R EXT.KL=100000+ STEP(300000,1995)-STEP(300000,1998)
Ejemplo 2: En un modelo de comercialización; los pedidos que realizan los clientes (PEDCLI.K) se
incrementaron al año de empezar las operaciones de 15 000 unidades a 20 000 unidades para luego
mantenerse en esa cantidad.
A PEDCLI.K=15000+STEP(5000,12)
MAX(p,q)
MIN(p,q)
NOISE()
Esta función devuelve números aleatorios de distribución uniforme, en el rango de -0,5 a +0,5.
Ejemplo: En un modelo estadístico, el comportamiento de una variable es aleatoria y de distribución
uniforme, en un rango de 100 a 150.
A AUX.K=100+50*(NOISE()+0.5)
Página 3 de 4
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE INGENIERÍA EN INFORMÁTICA Y SISTEMAS
CURSO: DINÁMICA DE SISTEMAS
CICLO DE ESTUDIOS: SÉTIMO | SEMESTRE ACADÉMICO: 2020 - VERANO
p, si r=0
FIFZE(p,q,r)= {
q, si r≠0
A DIF.K=BASURECOG.K – BASUPROD.K
A CIUDAD.K=FIFZE(LIMPIA.K,SUCIA.K,DIF.K)
Representa una variable de comportamiento no lineal que toma valores de las variables tabla tab
dependiendo de los valores de x, que varía en el rango de xmin a xmax con un incremento de xinc. Para
valores fuera del rango de [xmin, xmax] DYNAMO muestra un mensaje de advertencia (warning).
p, si r=0
SWITCH(p,q,r)= {
q, si r≠0
Ejemplo: En un modelo de accidentes de tránsito, los accidentes de tránsito (NUMACC.K) son producidos
en la mayoría de los casos por las imprudencias de los choferes, causando irreparables pérdidas
humanas y materiales, por lo tanto esto se podría evitar si los choferes tomaran conciencia de su
responsabilidad (TOMCON.K≤1). Dependiendo de esto, disminuirían el número de accidentes de tránsito
(NUMREACC.K)
A DIF.K=1-TOMCON.K
A NUMREACC.K=SWITCH(0,NUMACC.K,DIF.K)
A DIFPART.K=1-PART.K
A PROAQUE.K=SWITCH(0,PROBLEM.K,DIFPART.K)
RAMP(pendiente, tinicio)
Ejemplo: En un modelo de producción, como consecuencia de las medidas adoptadas en el año 2 005,
la demanda por el producto se ha incrementado en un 10% y se tiene previsto que esta tendencia se
mantendrá en los próximos años.
A VENTAS.K=RAMP(0.1,2005)
Ejemplo: En un modelo de recaudación tributaria, las recaudaciones por concepto de cobro de impuestos
(REGTRI.K) se están incrementando mensualmente en un 3%. Esto debido a que el proyecto que se puso
en marcha para incrementar la recaudación tributaria a partir del 2 000 está dando sus frutos.
A REGTRI.K=RAMP(0.03,2000)
A ARBPLAN.K=RAMP(0.05,2005)
Página 4 de 4