A conveyor, as its name suggests, is analogous to a conveyor belt, where material gets put on one end, then moves along with the conveyor belt, and then comes off the conveyor belt at the other end. Indeed, if there are no leakages and the transit time on the conveyor is constant, that is exactly what the conveyor does. If you add leakages or vary the transit time, the picture becomes a bit more complicated, but the analogy to a conveyor belt is still quite strong.
This section describes conveyors in which the FIFO option is not selected. See FIFO Conveyor Computation for details on computation when the FIFO option is selected.
Note If the transit time is constant, traditional and FIFO conveyors behave identically.
Note This discussion is based on material that enters a conveyor at the beginning. It is also possible to have material entering spread across positions in the conveyor as described in Spreading Conveyor Inputs.
Conveyors take on and release material every DT, but in describing the way they work it is easiest to look at a single bunch of material put on during one DT and see how it get processed until it finally reaches the end of the conveyor. This bunch of material comes from all of the inflows lumped together. This lump could be heterogeneous (for example, when using cycle time (see Attribute and Cycle Time Tracking) there may be different time stamps within a slat), but we will just look at the volume of material as everything is processed together.
During the DT in which the material is placed on the conveyor the transit time is used to determine how far from the end (measured in number of DTs) of the conveyor to place the material. It is placed in what is called a slat, which is just another name for one DTs worth of material. Suppose that at the conveyor has a transit time of 2 and DT is 1/4, then a flow computed at the previous DT would enter the conveyor as follows:
Here the numbers represent DTs until the material is released from the conveyor. If the transit time were shorter the lump would have been placed to the right, longer to the left. Once it is placed, transit time has no effect on it (except for FIFO conveyors as discussed below). With no leakage, the next DT the state of the conveyor would be:
And so on until 8 DTs (2 time units) later when it would be:
And then it would be empty, and the full amount of material that flowed in would be counted in the outflow.
If there is leakage, the same thing happens, but the last DT would look something like
and the times that preceded it, would all be larger until slat 8 which would match the no leakage case.
There are two types of leakage: linear and exponential. With linear leakage, the same amount is taken away every DT. For example, if the leak fraction was 8% (0.08) then 1% of the material would be taken out during each of the 8 DTs the material was in the conveyor. Thus a time lapsed picture of our material over the 8 DTs would look like:
Here the red indicates the quantity that will leak out when moving to the next slat, or on exiting (so the black in slat 1 is the amount of the outflow). All of the leakages are the same size.
With exponential leakage, the same fraction of the material remaining is removed every DT. Thus if the leak rate were 0.4 (per month), 10% of the material would be removed each DT. Exponential leakage would look like:
Notice that the red is big at first, but gets smaller as it moves from one slat to the next. The leakages are all the same proportion of the material in the slat.
Note It is the value of transit time at the DT when the conveyor gets the inflow that matters. If it changes after that it will only affect quantities of material received later.
Note If the transit time decreases, material added to a conveyor a later time may exit the conveyor at an earlier time (by default, conveyors are not FIFO).
Inflows, by default, will place material into a single slat as described above. However, there are also options for Spreading Conveyor Inputs. If you use these then linear leak fractions will be applied only for the duration the material is in the conveyor. With an inflow that is spread evenly over the conveyor this means a leak fraction of 0.5 will only result in approximately 25% of the material leaking. If you want the leak fraction to apply to all of the incoming material, independent of how long it says in the conveyor, then select the options "Leak same fraction for all durations" in the Equation Tab for the leakage.
The outflow from a conveyor is always the material in the slat 1 as they are numbered above. Leakages will already have been applied to the material in prior DTs, and will also be applied for the current DT. Leakages can make the outflow 0.
Note It is not possible to connect a conveyor outflow to something that would constrain the flow value. So the conveyor itself determines the value of the outflow.
Conveyors, like other stocks, are normally initialized with a number or an expression involving other model variables. That number represents to the total amount in the conveyor, and the software then divides it into the different slats described above.
When possible, conveyors are initialized to hold material the same way they would in steady state (the inflow balanced with the sum of the outflow and leakages). When there are no leakages this is simple, the quantity in the stock is spread out over all of the slats and it will be in steady state if the total amount in the stock is equal to the inflow times the transit time. If there are leakages, the formula are more complicated. For the a linear leakage the steady state stock level is given by
inflow* (transit_time * (1-leakage_fraction/2) + leakage_fraction* DT/transit_time)
The equation for the exponential case is:
inflow * (1- (1-leakage_fraction*DT)^(transit_time/DT))/leakage_fraction
Both of these equations are exact as long as transit time is a multiple of DT and the leak zones run from 0 to 100 percent.
Assuming you have used these initializations, the quantity in the stock as well as the outflow and leakages will remain constant using the default initialization.
If you have specified leakages as integer values the initialization process ensures that every slat holds an integer quantity. Any leftover from this distribution is put in the slat that will exit first (numbered 1 in the discussion above).
if a conveyor is marked as discrete the same initialization is used, except that the amounts that will be released at any time are made into integers. This is done by moving the material between slats starting with the slat that will emerge first so that the amounts are all integers. Material is taken away from the slat to make it an integers, and the extra material assigned to the next slat in the sequence. Normally, these changes are very small, but if DT is small they can end up placing material on only a few slats so that the output is large (1/DT) but only happens infrequently. Using discrete conveyors with a small DT is not recommended.
You can override the default initialization by specifying the amount of material of different ages starting in the conveyor. To do this use a comma separated list (semicolon separated if you use , for the decimal mark) of numbers. Each entry in the list corresponds to a time unit, and its value will be spread evenly over the slats within a time unit. For example, in the above discussion specifying 4,8 would put 1 each in slats 1,2,3,4 and 2 each in slats 5,6,7,8.
Leakages are applied in the order they are drawn, with the first one connected to the stock having the highest priority. This priority is shown in the panel. To change the priority of leakages disconnect them, then reconnect them in a different order.
With linear leakages the total fraction leaking out can't exceed 1. With a leak fraction of 1, there will be no outflow. If the sum of the leak fractions over multiple leakages is larger than 1, the last, or later, leakages may get less than their leak fraction suggests, and may get nothing at all.
With exponential leakage all the leakages are computed always. If they are large, the amount of material in the conveyor will drain very quickly.
Note Leak fractions can change over time and the current values will be used when computing leakages.
Leakages can occur over the entire conveyor, or only over a portion of the conveyor. When using a linear leakage the total amount leaked will be the same regardless of the length of the leak zone (that is, the amount taken from each slat in the leak zone will be larger for a shorter leak zone). For linear leakage the meaning of the leak zone is determined based on the transit time when the material entered the conveyor. This is important when transit times are changing and is necessary to ensure that the total amount leaking out of the conveyor is equal to the specified leak fraction. For exponential leakages, the meaning of the leak zone is determined by the distribution of material in the conveyor.
Linear: When there are different leak zones, the meaning of the leak fraction can refer to the inflowing quantity, or the amount remaining at the beginning of the leak zone, depending on the setting for Ignore losses from earlier leak zones in the Equation Tab of the properties panel.
If Ignore losses from earlier leak zones is not checked, then the leakage fraction applies to the amount of material at the start of the leak zone it is applied to. For example, if there is one leakage with a leak zone from 0 to 50, and a second with 50 to 100, the second leak fraction will be applied to the amount of material left when it has passed half way through the conveyor. Two 50% (0.5) leakages in this case would result in 75% (0.75) of the incoming material being removed so that only 25% flowed out.
If Ignore losses from earlier leak zones is checked, the leakage applies to the amount of material coming into the conveyor. Thus, in the above example, the first leakage would take 50%, and the second another 50% so the outflow would be 0.
Exponential:Leak zones turn on and off exponential leakage. If the leak zones overlap the leakage fractions will be added. In the above case (non overlapping leak zones covering the entire conveyor), if the leakage fraction were 0.1 for both leakages the conveyor would behave the same way it would with a single leakage of 0.1 over the full range.
When leaking integers the fractional amount of the leakage is computed and accumulated until it exceeds 1, then one unit of material is leaked (the amount leaked is the leakage flow multiplied by DT, so the leakage flow will be a multiple of 1/DT). The leakages can thus become uneven, and may not all be applied as the material may flow out with some fractional leakage already accumulated. In this case there will
Linear: The amount that is leaked is based on the transit time that was used when the material was put on the conveyor. The leakage from that material will occur exactly as it would if the transit time had not changed. Thus, a transit time of 5 with a 50% leakage will leak will leak 10% each time period. It the next material added has a transit time of 2 it will leak 25% of its material each time period. The total amount leaked will then appear as (10% + 25%)/2 or roughly 17.5%. This get more complicated as more material is added in with different transit times.
Exponential: Exponential bases leakage on the material in the conveyor. It will leak a fraction of that material regardless of where it is in the leak zone. With a full leak zone this means that the total leakage will be the amount in the conveyor multiplied by the leakage rate. Adding in new material with a different transit time does not change that computation, but the meaning of leak zones can change. For example, when the transit time gets larger, the leak zone applies to a smaller portion of the material placed in at the shorter transit time. Decreasing the transit time, on the other hand, does not shorten the conveyor until the material placed with a longer transit time has flowed out.