Bank - modelint/types GitHub Wiki
If you walk into the lobby of a tall building (more than 30 floors), you typically see the Shafts organized in service groups. You might see three Shafts going to the lower Floors only, while three other Shafts provide express service to the highest Floors. You might even see one or two Shafts dedicated to the parking garage.
A Bank is a group of Shafts and Cabins configured to provide identical service. Each Cabin in a Bank goes to the same Floors, moves with the same velocity/acceleration profile and operates Doors with the same open duration.
Consider an example where you organize five Shafts by defining two Banks.
Bank B1
will serve the lower Floors while B2
serves the higher Floors.
All Shafts in a Bank respond to the same floor up/down calls. If someone were to press the up button near Shaft S1
in B1
he or she would expect a lower floor servicing Cabin to arrive in response. While it may be a good idea to define Banks with Shafts that are physically near each other, Banks may be configured with any collection of one or more Shafts.
The Shafts in the next example belong to the same Bank since pushing the up or down call button on either side of the stairway may call a Cabin in any of the four Shafts:
If there is another Bank nearby, it will ignore the request since each Bank services its own up/down floor call buttons.
Identifiers
- Name
Banks are named uniquely by policy.
Attributes
Name
Banks are typically named according to the intended purpose. A Bank titled Tower
might provide express service to higher floors by skipping lower floors. A Bank titled Freight
might be configured so that the Door stays open for a longer period and can access all Floors.
Type: Name
Passenger load time
The amount of time to hold doors open after arriving at a Floor before automatically closing again.
Type: Duration
Block clear time
The amount of time to wait after a Door is obstructed before attempting to close it again. This will probably be shorter than the Passenger load time.
Type: Duration
Max close attempts
The maximum number of consecutive attempts permitted to close an obstructed Door. If this value is exceeded, the Shaft is taken out of service.
Type: Count
Average cabin speed
We use this number to estimate a Cabin’s arrival time at a calling destination. Since we are using it to roughly score Cabin choices during a floor call selection, this number need not be precise. In fact, the number can be fudged a bit to change the way that the bank select algorithm weights distance from a calling floor as a selection factor.
Type: Speed
Average stop duration
The average time that a Cabin spends resting at a Floor when a destination beyond that Floor in either direction is pending. In other words, we are measuring from the point in time that a Cabin arrives, to the point it starts moving again assuming that a destination is immediately pending.
This duration is considered during the bank select algorithm to estimate how long it will take for a Cabin to arrive at a calling floor given that there are one or more possible stops along the way.
Type: Duration