“Instantaneous Trucks” vs “TUM Trucks”
Firstly, it’s important to understand the difference between an “instantaneous truck” and a “TUM truck”. An “instantaneous truck” is one that is operating and productive at an instant in time. A “TUM truck” is the number of truck hours in a period divided by the number of hours per truck in the period, based on the TUM.
In reality, trucks do not respect the TUM in an instant in time - in any one instant, the truck is either available or unavailable, not a mixture of the two. There’s a probability of whether a truck will be operating at an instant in time in the future (the TUM is the average over an extended period of time). This is the most correct way to think about trucks on an instantaneous basis, and for very short term scheduling. The TUM accounts for but does not explicitly contain, the frequency and duration of downtime events (a cyclone vs a broken bucket tooth).
Version 21.1 of APS now supports both methods to accommodate sites that wish to model instantaneous trucks and sites which want to model TUM trucks. A detailed explanation of both methods is outlined below.
Please note the Truck Assignment section outlined in the TUM Trucks section applies to the Instantaneous trucks as well.
Instantaneous Trucks - Dispatch
To use the instantaneous trucks method, the ‘Enable Truck Dispatch’ option, located in the Final Configuration step, must be enabled.
With this option enabled, trucks will be automatically assigned to diggers at every instant in the schedule, while not exceeding the number of trucks available. Users must define the priority order in which the diggers receive trucks for each period. If a digger does not have enough trucks to match its dig rate, the digger rate will be adjusted to match the number of trucks assigned.
Instant Units & Fleet Use of Availability
Instant Units
Once the Dispatch mode has been enabled, two new rows will appear in the calendar for each truck.
The Instant Units is a calculated field that is equal to the number of units entered, multiplied by the PA, UPA, OE, and PF. Notably, UA is not included, as the Use of Availability is determined by the schedule. Conceptually, the Instant Units is the exact number of trucks expected to be available for use at any instant over the schedule.
Although the Instant Units is the mode of the number of trucks that are expected to be available, the number of trucks that will be available on any day is based on a binomial probability distribution. Where n is the number of trucks on-site, x is the number of trucks available, and p is the probability of any one truck being available.
However, there’s no practical way of using this probability distribution in APS, so we just use an approximation of the mode (not an integer).
Fleet Use of Availability
The Fleet Use of Availability value represents the calculated Use of Availability of the fleet of trucks. This value is calculated without considering the [UA] input. The below example shows one way in which this value is calculated.
Hours per Unit = Period Duration * [PA] * [UPA] * [OE] * [PF] Number of Trucks = Productive Hours / Hours per Unit Fleet Use of Availability = Number of Trucks / Number of units
Agent Haulage Priorties
Diggers are assigned trucks during each steady state based on their priority. The digger priorities are set in a new section in the calendar called “Agent Haulage Priorities”. The priority is ordered from low to high, so the digger with a priority of 1 will get the first choice.
If you have selected an option in “Limit Materials” in the Final Configs, you can also choose separate priorities based on the material type. This will, for example, allow you to prioritize ore over waste, regardless of digger.
In each instant, APS will go through the diggers in order and assign trucks to diggers as it goes. If a specific route needs 5 trucks to haul at the maximum rate, and only has 2.3 left to assign, the digger will be derated. If there are no trucks available at all, the digger will be shut down.
Trucking Graphs
In the Final Configuration Step, there are two graph options, TUM and Instantaneous.
TUM - This shows the total amount of trucks that were used during each period.
Instantaneous - This shows how many trucks each digger was using at any point during the schedule.
Important Things to Note
While this dispatch logic will work well in most circumstances, there are a few shortcomings. It is possible in some edge cases for APS to choose to do nothing even though if fully trucked it would do something. As an example, consider three diggers, EX1 on 62% Fe, EX2 mining 58% Fe, and EX3 on waste. There is also a strict Fe target of 60% on the crusher.
If EX1 is the top priority, EX2 is second, then the EX3 was last, and the trucks are assigned in such a way that two ore diggers run at full capacity and the waste digger is derated, everything will work fine – the feed will be at 60%.
If EX1 has top priority, EX3 is second, then the EX2 was last, and there are no trucks remaining to keep EX2 swinging, no ore will be fed to the crusher at all. This is because the trucks were assigned to the EX1 and EX3, if EX1 were to send that material to the crusher, it wouldn’t hit the crusher feed target so APS prevents mining.
To avoid this problem, ensure any diggers subject to optimisation targets or constraints are given top priority and are fully trucked.
When more than one truck type is enabled and a digger is allowed to use both types, it is possible for a single digger to use more than one truck simultaneously in the same instant. In this case, APS will treat the two truck routes as entirely independent, and therefore there will be two different cycle times for each truck. However, in reality, if there is a mixed fleet on a single haul, the cycle time will be the longer of the two.
TUM Trucks
Truck Hours Calculation
Truck hours are based on the cycle time of the truck (when being loaded by the specific digger), the truck’s payload, the quantity and type of material moved, and the time usage model (TUM) which applies to the truck.
Cycle Time
Haul Infinity, integrated into APS, determines the cycle time. Therefore, in order for useful cycle times to come through, the haul network must be updated and accurately reflect the roads being used.
The truck’s cycle time consists of:
Spot Time at Loader
Loading Time
Loaded Travel Time
Spot at Dump
Dumping Time
Unloaded Travel Time
TKPH Delay (if TKPH constrains the truck cycle time)
Queue Time
The cycle time of a truck calculated by Haul Infinity depends on the truck, loader, source, destination, and operating condition. The payload of the truck is entered into Haul Infinity but can be overridden by the operating condition.
The operating condition used in APS is not one of the ones specified in Haul Infinity. Instead, the operating condition is either a default which does not alter any haulage parameters, or it’s specified by a script based on your site-specific requirements. A few examples of what is possible with the operating condition are:
Change the dig rates by location, blast type, etc.
Alter the truck payload based on time or pit.
Factor the truck travel time based on a variety of factors.
Specify the temperature for TKPH calculations.
And many more.
Material Type and Truck Payload
The material type is specified in Haul Infinity and is used to determine the swell factor from BCM into the tray and the dry tonnes from the wet tonnes based on the moisture. How the material types in Haul Infinity are mapped to into APS is specified in the Final Configuration item “Haulage Materials”. The truck’s payload/capacity is specified in Haul Infinity in terms of wet tonnes (not dry tonnes) or volume.
Based on the material type, and payload/capacity, Haul Infinity knows what the maximum dig rate in BCM/h, Dry Tonnes/h, and Wet Tonnes/h, as well as the truck’s limiting payload in wet tonnes (which could be less than it’s stated payload if the truck’s capacity is limited by volume).
Quantity Moved
The quantity moved is automatically calculated by the scheduling engine - the user has no control over this, other than through Rapid Reserver, the preschedule, and the database corruptor.
Time Usage Model (TUM)
The TUM applies to both diggers and trucks. An explanation of the loader TUM can be found on the following page: PS PS Agent TUM Calculations. The Trucks' TUM operates in the same way as the diggers, except that an additional default availability type “Planned Availability (PA)” is provided, which is unique to Trucks as it is not possible to specify planned maintenance windows for individual trucks.
The TUM affects diggers by establishing a difference between the Nominal Rate, and the Productive Rate (factored by the TUM). For haulage calculations, the Nominal rate is used. The effect the dig rate has is limited to how Haul Infinity chooses a number of “instantaneous trucks” to match onto a Haul, which affects queue time if the truck matching method (specified in Haul Infinity) is set to OverTruck or Round.
The user in the calendar specifies the TUM for the trucks, and for each truck, there is a calculated "Hours / Unit" field.
Calculation of Truck Hours and Number of Trucks
Now that the scheduling engine knows the:
Truck
Loader
Source (Dig Block or Stockpile)
Destination (Stockpile, Crusher, Dump Block, or Point Dump)
Operation Condition (Site-specific - specified by script)
Quantity Moved
Material Type / Limiting Payload
Hours per Truck per Period
It can calculate the number of truck hours, and the number of trucks required:
//Pseudocode: var loader = Agent.Name; var truck = Haulage.Truck; var source = Source.FullName; var destination = Destination.FullName; var parcel = Source.Parcel; var qty = Mining.WetTonnes; var hoursInPeriod = GetFromCalendar(); var overrideLoaderRate = GetFromCalendarOrScript(loader); var material = Haulage Result.Material = GetFromHaulInfinity(parcel); var payload = Haulage Result.Truck Payload = GetFromHaulInfinity(truck); var cycleTime = Haulage Result.Times.Total = SpotAtLoader + TruckLoadTime + LoadedTravelTime + SpotAtDump + DumpTime + UnloadedTravelTime + TKPHDelay + Queue = GetCycleTimeFromHaulInfinity(loader, truck, material, payload, source, destination, overrideLoaderRate, ... other factors by script) var numTrips = Haulage Result.Number of Trips = qty / payload; var truckHours = Haulage.Truck Productive Hours = numTrips * cycleTime (in minutes) / 60; var engineFactor = GetAvailabilitiesFromCalendarWhereEngineIsOn(truck) var calendarFactor = GetAvailabilitiesFromCalendar(truck); var truckEngineHours = Haulage.Truck Engine Hours = truckHours / engineFactor; var truckCalendarHours = Haulage.Truck Calendar Hours = truckHours / calendarFactor; var numberOfTrucks = truckCalendarHours / hoursInPeriod;
The number of trucks is based on the productive hours of the truck and the Time Usage Model (TUM). This is how APS uses TUM Trucks.
Note that there are many equivalent methods to calculate the number of trucks. For example, dividing the number of productive truck hours by the number of available hours per period for each truck will yield the same result.
Truck Assignments
In APS, each time a digger has a valid source and destination combination, it determines which trucks to use (if any) in the transaction. If the digger requires trucks, and if no trucks are available at that point because they are not assigned or because they’ve run out of truck hours, it will go into idle. How the loader chooses their trucks is specified in the “Truck Assignments” step in the main setup.
In this step, the user creates rules which consist of several filters and the trucks which apply to the rule. Details of the filters are shown below.
Enabled - Whether the rule will be considered at all.
Calendar Switch - If the calendar switch is set a certain way, the rule will apply.
Loaders - The loaders which can use the rule.
Sources - If the source is one of these, the rule will apply.
Parcels - The rule only applies to these parcels.
Destinations - If the material is sent to one of these destinations, the rule can apply.
For a rule to apply, ALL of the filters must pass.
Note that you can copy rules by holding Ctrl, and dragging the icon for the rule.
Each time an Agent has chosen a block and a valid destination, it will go through the table from the top down (ignoring the tree structure) and find all the rules that apply for that movement and put them in a priority list. Each rule can have either <LoadHaulDump> or one or more trucks in it.
LoadHaulDump
<LoadHaulDump> is a specific setting which enables the loader to send material to the destination itself (by tramming). If <LoadHaulDump> is used, typically a script is utilized to provide the rate at which the loader can send material for a specific source-destination combination (as the tramming time depends on the route).
Trucks
If a rule doesn’t use <LoadHaulDump>, it will have one or more trucks associated with it. What this means to the loader is it can use these trucks, and ideally it will use those trucks as equally as possible.
Note that the way this is done in APS is to rotate through the trucks in a round-robin fashion. For each movement the loader does, a different truck will be used, thus approximating equal use while only using a single truck for each movement.
If none of the trucks in the rule can be used anymore (because they have no more truck hours left), the loader will then choose the next rule that applies out of its priority list and use the trucks in that one. In this manner, it’s possible to specify that a loader should prefer to use one type of truck, but once that’s out of hours, start using a lower priority truck.
Assigning Truck Numbers
After all of these rules are specified, new calendar rows are created automatically which give control over truck limits in three ways:
Truck Numbers by Truck Type
Truck Numbers by Truck Assignment Rule
Truck Numbers by Loader by Truck Assignment Rule
The user can type in a number of trucks in any of these areas (which, behind the scenes, is providing a maximum number of hours), and the maximum number of hours associated with the number of trucks will not be exceeded. Once the loader runs out of trucks with remaining hours, it will go idle.
Scheduling with Trucks
APS accounts for trucks in terms of their hours over the course of a period. Practically this means that once the truck hours are exhausted, the loader will go idle toward the end of the period, as shown below.
Whether this is an issue or not is a very personal decision, and it is ultimately up to the engineer to decide if it’s an issue by themselves or in consultation with their team.
Alastri’s position is:
For two-week planning and less (where maintenance events are scheduled, instead of modelled as availabilities), this is an issue that should be resolved.
For 3-month and longer-term schedules (which are using availabilities instead of scheduled maintenance events), this is not a concern.
If the loaders idling at the end of each period needs to be resolved, there are two ways to resolve it:
Run the schedule and evaluate one period at a time. When you see the loaders shutting down, derate the lower priority diggers by lowering their dig rates or shutting them down until the truck numbers come down.
Uncap the number of trucks initially, and run the entire schedule without considering truck numbers. Then, start derating diggers over the whole schedule until the correct number of truck hours is reached.
This method is riskier as it’s possible that by derating a low priority digger, access to ore at the end of the schedule is blocked. However, in short term plans, the risk of this is low.
Reporting
Where are the Haulage Fields in Reports?
Within the Steady States tab, trucking requirements at any instant in time can be viewed. Additionally, a Mining Movements report provides access to the fields mentioned above in the Pseudocode. This can be exported to CSV for detailed analysis if desired.
How do I report Trucks in a Chrono Report?
Report the availabilities out of the calendar and the period duration. Multiply them together to get the number of hours available per truck per period. Divide “Haulage. Truck Productive Hours” by this number to get the number of trucks.
Why can’t I report the number of trucks in a Pivot / Step / Table report?
You might think that you could divide the truck hours in each movement by the number of truck hours per unit in the schedule and sum that up in a pivot table. And you’d be right - but only if the sums are broken down into the scheduling periods as specified in the calendar - if not, it doesn’t work.
Why do my truck numbers look so high/low? What can I do about it?
Examine the animation, which displays the routes taken to ensure the correct paths are being used. If not, use Haul Infinity to ensure the correct routes are used. Take the time to ensure your haulage model is correct before starting to schedule.
Use a pivot report to ensure that the right destinations are used for each material type. If not, alter the destination rules.
If the numbers are too high, look to mine some material with shorter hauls.
If the numbers are too low, there’s an opportunity to mine some material with longer hauls.
Your last option, if you’ve tried the above, is to derate or shut down diggers. Often this cannot be avoided to meet short term ore requirements.
Add Comment