Evacuation time analysis

All topics related to questions in Pedestrian Dynamics
ie_1989
Posts: 58
Joined: Saturday 21 November, 2015 - 06:50

Re: Evacuation time analysis

Post by ie_1989 »

Yes, actually I want too keep the agents in a specific layer and destroy the remaining as the action timer starts. I also want to update all escalators' speed to zero when the action timer starts working. Is such a thing possible?
Thank you in advance
Bram de Vries
Posts: 60
Joined: Thursday 08 January, 2015 - 13:29

Re: Evacuation time analysis

Post by Bram de Vries »

Dear ie_1989,

It's possible, although it took some manipulation of the Action Timer. Please note that this is a specific solution for your model and that I unfortunately can't guarantee that it would work in all imaginable models or future versions of Pedestrian Dynamics.

Attached, you will find the latest model you sent us with some adjustments in the Action Timer. I have updated the Condition to trigger agents to:

Code: Select all

If(
  m(up(s)) = atmMotherActivityLocation,
  If(
    HeightLayer_GetLayerID(up(up(up(s)))) = 4,
    
    TRUE,
    
    Do(
      DestroyEventsOfAtom(up(s), 0, s),
      Label([Destroyed], s) := 1,
      DestroyAtom(s),
      FALSE
    )
  ),
  If(
    HeightLayer_GetLayerID(up(up(s))) = 4,
    
    TRUE,
    
    Do(
      Label([Destroyed], s) := 1,
      DestroyAtom(s),
      FALSE
    )
  )
)
This code first checks whether an agent is inside an Activity Location (because what to do next depends on this). Are you familiar with the Model Tree? See the attached picture for an example. This is a structure which shows the buildup of a model. You can see that the Environment consists of Layers, Layers consists of walkable areas, obstacles, agents etc. If you want to know in what kind of atom an agent is currently stored, you can check this with the command "Up". You can see in the model tree that an agent who is walking is contained in a list of agents, which is in its turn contained in a Height Layer. So if I ask the Layer ID of the "Up(Up())" atom of an agent, I get the ID of the layer he is currently walking on. I have selected Layer 4 as the layer on which agents will be kept in the model, so if an Agent is in this layer, he will get condition TRUE. Otherwise, I can 'abuse' this Condition to destroy the agent. As long as I end a condition for these agents with false, I can do anything before the False Statement and in the end they won't be affected by the Action Timer trigger (reroute to Emergency Route).

Agents inside an Activity Location will be one level further down. This means that I have to add another Up. Furthermore, they might have Events scheduled at this Activity Location. I destroy these events to be sure that no Errors Occur. I also give them a label to indicate that they are destroyed. I use this label on the Action Areas in the E3_Platform level, because agents might be in these Action Areas when they are destroyed and then the Exit trigger will go off and they will start routing, but since they are destroyed this is no longer necessary.

It's quite a complex solution. Please let me know if you have any questions! Also, is it not enough to update the Escalators to not available when the Timer goes off (instead of setting their speed to 0)?

Kind regards,

Bram
Attachments
ModelTree.PNG
ModelTree.PNG (31.79 KiB) Viewed 54445 times
Myversion - Test.zip
(621.81 KiB) Downloaded 496 times
ie_1989
Posts: 58
Joined: Saturday 21 November, 2015 - 06:50

Re: Evacuation time analysis

Post by ie_1989 »

Dear Bram
Thank you so much for your kind help. I will try your solution as soon as possible. But I have got a new problem in my model. The model runs normally until the middle of action timer. That is, during emergency exit some agents stuck at a specific layer named "Landing3-Main-2". When I move these agents manually, they start finding their routes. Why does such a thing happen? . I have attached my model. Thank you in advance
Attachments
Myversion - Final-V4.rar
(306.32 KiB) Downloaded 477 times
Bram de Vries
Posts: 60
Joined: Thursday 08 January, 2015 - 13:29

Re: Evacuation time analysis

Post by Bram de Vries »

Dear ie_1989,

I do not know the reason of this behaviour, but I can inform you that we have an upcoming release of a new version of Pedestrian Dynamics (3.1) in which this problem no longer occurs. The trial version for 3.1 will be available next week on our website, so keep an eye out for that!

Kind regards,
ie_1989
Posts: 58
Joined: Saturday 21 November, 2015 - 06:50

Re: Evacuation time analysis

Post by ie_1989 »

Very good news. I am really looking forward to it. Thanks a lot :)
ie_1989
Posts: 58
Joined: Saturday 21 November, 2015 - 06:50

Re: Evacuation time analysis

Post by ie_1989 »

Dear Bram
I almost forgot my second question in 2 previous post. I wanted to update the speed of escalators as low as possible when the action timer starts so that there is no difference between using an escalator or a normal stair for an agent (I mean I want the agents to choose using them uniformly as much as possible when the action timer starts) How can I do it?
User avatar
Nienke Valkhoff
Posts: 20
Joined: Tuesday 11 January, 2011 - 09:23

Re: Evacuation time analysis

Post by Nienke Valkhoff »

Dear ie_1989,

If you use the effect on infrastructure of elements of the Action timer element and set the escalators to bidirectional then the escalators are used as if it were a stairs element. Agents can use the escalators to go both up and down and the escalator has speed zero. The choice the agent will make will depend on the travel time to the end destination via each of the stairs/escalators, but since the speed of the escalator is zero this will not effect the choice.

Best regard,

Nienke
ie_1989
Posts: 58
Joined: Saturday 21 November, 2015 - 06:50

Re: Evacuation time analysis

Post by ie_1989 »

ِDear Nienke
Thank you so much for your help. Actually I have made the escalators bidirectional but I didn't know that this set their speed zero. Thanks a lot.
I have another question. Is it possible to change the maximum speed of the agents to a specific value when the action timer starts? I used the "agent_maxspeed()" function in the "effects on agents" tab, but it seems that it has no effect on the movement speed of agents.
User avatar
Nienke Valkhoff
Posts: 20
Joined: Tuesday 11 January, 2011 - 09:23

Re: Evacuation time analysis

Post by Nienke Valkhoff »

Dear ie_1998,

Yes, it Is possible to change the maximum speed of the agents to a specific value at any time and location. It is indeed possible to do this when the action timer starts. If you change the Agent_MaxSpeed during the simulation it will not have effect. You need to use the function Agent_UpdateMaxSpeed(s, 0.8) where s should be a reference to the agent and 0.8 is the new value. If you use this in the action timer in the effect on agents response parameter make sure that the Trigger active and/or new agent check boxes are checked otherwise the response code will have no effect.

Best regards,

Nienke
ie_1989
Posts: 58
Joined: Saturday 21 November, 2015 - 06:50

Re: Evacuation time analysis

Post by ie_1989 »

Dear Nienke
Thank you so much for your help. It worked perfectly. ;) ;)
Post Reply