I am experimenting with different formulations for an aging chain for vehicles (or other assets for that) where it is somewhat important to correctly report the age distribution. Since the usual coflow formulation will assume average attributes to be passed along it is imo not appropriate when aging takes place. I have worked with the SHIFT IF TRUE and a coflow aging chain using conveyors where the aging is modeled as a negative leakrate for the cowflow tracking the sum of the vehicle ages (tricky...).
While I like the precision of the SHIFT IF TRUE I find the absence of flows between the cohorts unfortunate as I wanted to aggregate the vehicles in broader stocks (young, mediumage, old) to have a simpler structure for coflows tracking different attributes so one has the advantage of age precision plus the ease of an aggregated coflow model. In order to achieve this I have now tried to achieve something similar to the discrete shifted-model by working with an aging chain using conveyor delays with a conveyance time of one year (cf. my model).
In the structure of the model included the cohorts are organized using subscript ranges:
Code: Select all
AgeGroup : (J0-J20) ~~|
AgeGroupOlder : (J1-J20) ~~|
AgeGroupYounger : (J0-J19) -> AgeGroupOlder ~~|
Code: Select all
VehiclesAging[J0]=
DELAY CONVEYOR(
{inflow} VehiclesPurchased,
{conveytime} OneYear,
{leakrate} leakrate[J0],
{initprofile} FlatAgeDistribution ,
{inittotal} VehiclesInitial[J0] ,
{initconveytime} OneYear
) ~~|
VehiclesAging[AgeGroupOlder]=
DELAY CONVEYOR(
{inflow} VehiclesAging[AgeGroupYounger],
{conveytime} OneYear,
{leakrate} leakrate[AgeGroupOlder],
{initprofile} FlatAgeDistribution ,
{inittotal} VehiclesInitial[AgeGroupOlder],
{initconveytime} OneYear
)~~|
Using this mapping should reduce the aging chain quite nicely - so I thought. But unfortunately it does not work. In the model enclosed I have simply given one vehicle for the age group J0 to start with - all other slots being zero. The number of vehicles will increase and the behavior of the model is rather strange. Where is the problem?
Kind regards,
Guido