Delay conveyor sensitive to time step?

Use this forum to post Vensim related questions.
Post Reply
kleemax
Senior Member
Posts: 125
Joined: Tue Jan 26, 2016 3:50 pm
Vensim version: PRO

Delay conveyor sensitive to time step?

Post by kleemax »

Attached you find a small model that uses a conveyor in the aging flow.
a) What I don't understand is why the model is not in equilibrium even if the initial values of the stocks are set to the values at the end of the simulation . b) If the time step is changed this has an influence on the simulation that is non-negligible. I have tried reinitializing the "initial fleet" by simply copying the values from the end of the simulation using a time step smaller than 1, but to no avail.

I would appreciate if anyone has a clue what's going on...Thank you in case you decide to take the time to help me out.

Best Regards,
Max
Attachments
fleet model simplified for vensim forum 4.mdl
(6.79 KiB) Downloaded 161 times
Administrator
Super Administrator
Posts: 4589
Joined: Wed Mar 05, 2003 3:10 am

Re: Delay conveyor sensitive to time step?

Post by Administrator »

There is guidance for selecting a suitable time step in the Vensim help system. In this model, the "Vehicle aging time" is 1 which would suggest time step should be 0.25 or smaller.

I don't have the time to look any deeper at the moment, but will tomorrow.
Advice to posters seeking help (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391

Units are important!
http://www.bbc.co.uk/news/magazine-27509559
tomfid
Administrator
Posts: 3808
Joined: Wed May 24, 2006 4:54 am

Re: Delay conveyor sensitive to time step?

Post by tomfid »

I think this is not a valid use of DELAY CONVEYOR with leakage, because the dynamics of the internal state in the delay function in the aging flow don't match the dynamics of the vehicle fleet stock. You have scrap = stock* rate, but from the Help:
When leak is nonzero than the amount of material is decreased proportionally across the entire conveyor, including newly added input. If you want to compute the quantity of leakage in a conveyor it is given by:

total leakage = ahead level * leak rate

ahead level = convey total + TIME STEP*(input - convey out)

convey total = INTEG(input - convey out - total leakage,init stuff)

convey out = DELAY CONVEYOR(input,ctime,leak rate,icp,init stuff,ctime)
tomfid
Administrator
Posts: 3808
Joined: Wed May 24, 2006 4:54 am

Re: Delay conveyor sensitive to time step?

Post by tomfid »

If you want a continuous time step and visibility of the detailed cohorts so that you can have age-specific loss rates, I'd seriously consider dumping the aging chain in favor of a strategy more like the dynamic cohorts in Ventity. That would entail having the array dimensions represent model years rather than age cohorts. Then track the currently-active model year, into which new purchases are injected. The age of each model year is known by definition, so you can use a lookup or VECTOR LOOKUP to calculate the scrap rate for each model year. There's no aging flow at all, and therefore no dispersion, so this works for any time step.

The downside is that you're computing some 0s for cohorts that aren't active at a given point in time, but that penalty is small unless you have a short-lived fleet and a very long time horizon.
Post Reply