Please enable JavaScript to view this site.

Vensim Help

Navigation: Reference Guide > Functions > Dynamic Functions

DELAY PROFILE(profile,input,delay time,init,init grow) DELAY with response PROFILE

Scroll Prev Top Next More

Returns the delayed value of input, where the delay response is specified, using a Lookup function, as an arbitrary profile.  The delay time specified is the average delay time (some inputs will emerge before delay time has elapsed and some will emerge after). The delay response is the response that the output will show when given a pulse as an input.  If you look at a first order exponential delay you will see that the response is biggest immediately after the pulse, and then falls off exponentially.  A 3rd order delay responds slowly at first, then more quickly, then the response falls of exponentially.  An n'th order delay, with N very large, approaches the response of a fixed delay - a pulse of the same height after the delay time.

DELAY PROFILE allows you to break out of this family of delays to anything you want.  Simply draw the shape of response you would like to see and Vensim will allocate the input over this profile.  The profile should be a Lookup that is everywhere nonnegative, and has at least one positive value.  Vensim will automatically scale this to a probability distribution so that the input is a conserved quantity.

Since the DELAY PROFILE distributes values over time when it is initialized you can specify an initial growth rate.  For example if the input is growing at 5% you would specify an initial growth rate of .05.  When you do this you should also adjust the initial value down as is demonstrated in the example.

Please note that the DELAY PROFILE function was designed to encourage the exploration of different response profiles.  Most models developed depend heavily on exponential delays, and explicitly build up structure to represent more complex responses.  While the DELAY PROFILE function may prove to be a useful addition to the set of functions for building models it should be used with care.

Restrictions:  The DELAY PROFILE function must follow directly after the = sign.  It defines a variable as a Level.  In the Equation Editor choose type Level and Subtype Delay/Queue then type in DELAY PROFILE or select it from the function list (Class Discrete/Delay).

Units:DELAY PROFILE(units, dmnl, time, units*time, 1/time) --> Units

Example

boxxy ((0,0),(2,0),(3,1),(6,1),(7,0))

delayed input = DELAY PROFILE(boxxy,input,delay time,input,0)

This is similar to a DELAY MATERIAL except that it spreads the response out over a period approximately equal to 1/2 of the delay time.

delayed input = DELAY PROFILE(boxxy,input,
       input/exp(grow rate*delay time),delay time,grow rate)

Availability: Not PLE or PLE Plus.

 

Sample model: DELAY PROFILE.mdl in FunctionExamples