Piero
Piero

Reputation: 99

Anylogic transitions - Rate condition

I was trying to create a transition between two states with a rate logic: I want that event to happen x times randomly, but only for a limited model time interval (for example from 1 pm to 00 am model time, to specify that this event CAN happen only in this range of time). Do you have any way to suggest? Thanks a lot, P

Upvotes: 0

Views: 140

Answers (1)

Emile Zankoul
Emile Zankoul

Reputation: 2213

Change the transition from rate to message with a particular message as follows:

enter image description here

Then, create a function that returns a double value. The body of the function should be:

if( time() < x )
  return 0;

else if( time() >= x && time() < y )
  return rate;

else
  return 0;

Of course replace x and y with the start time and end time of the time range during which the rate is not 0 and replace rate with the desired rate.

enter image description here

Then create an event of trigger type rate. In the rate field write function(). In the action field write:

if( time() >= x && time() < y )
  send( "rate", this);

This last condition before the action of sending the message is important in case the event was scheduled slightly after the range. An event might be schedule a second before the end of the range for a second after the range ends... So we are making sure this is addressed and avoided.

Upvotes: 1

Related Questions