Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

“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).

APS now supports both methods to accommodate either paradigm.

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). Therefore, to APS each truck represents a number of hours in a period.

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.

Note that regardless of what’s set in Haul Infinity, APS will always use TheoreticalNoMaximum as the truck matching mode. This means that the number of trucks assigned to an individual route is not fixed to an integer, and can be less than 1. This is a requirement for the algorithm as it means trucks become a linear variable instead of an integer variable - which means the solve time for a single instant is a fraction of a second instead of more than a minute (and consider that there are usually 2000+ individual solutions calculated in a two-week schedule run).

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.

Dispatch Enabled: In each step the trucks will be used in the order specified. If in a steady steady state on a single loader a truck is exhausted, it will then go on to the next truck - and will use multiple truck types in the same instant (but it does not use the longer of the two cycle times).

Dispatch Disabled: 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 exhausted, 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 associated with a number of truck hours). If it is desirable to not limit trucks in one or more of these ways, simply leave the defaults as infinity, and ignore those rows.

Remember, when you enter a number of trucks, what you are really entering is:

  • With Dispatch Enabled: A maximum truck hours per calendar hour

  • With Dispatch Disabled: A maximum truck hours per period

Trucking Graphs

In the Final Configuration Step, there are two graph options, TUM and Instantaneous.

TUM - This shows the total number of trucks that were used during each period.

Instantaneous - This shows how many trucks each digger was using at every point during the schedule.

Accounting for Trucks Using Truck Hours

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.

  • Or use the Dispatch Mode

Dispatch Mode

The purpose of this function is to automatically assign trucks to diggers at every instant in the schedule, while not exceeding the number of trucks available as an alternative to shutting down the diggers once truck hours have been exhausted.

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 in that instant. 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.

When this mode is enabled, instead of account for trucks using truck hours per period, APS accounts for trucks using truck hours per hour. That is, it APS limits the rate at which truck hours are consumed instead of the total quantity (which is how ATS works).

To use Dispatch mode, the ‘Enable Truck Dispatch’ option, located in the Final Configuration step, must be enabled.

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. However, there’s no practical way of using this probability distribution in APS, so we are just using 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 Priorities

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.2 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. 

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.  

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 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.

Is this schedule achievable with our truck fleet?

Note this is an opinion. If this opinion is abhorrent to you or any of your stakeholders, refer to the previous question.

To determine whether the schedule is achievable with the truck fleet on site, use the Dispatch mode, and consider the Fleet Use Of Availability (UA) which is reported for each truck in the Calendar. Although many sites have a historical UA, this should not be an input (and is not when Dispatch mode is enabled). There is nothing wrong with varying the UA for the truck fleet each day, provided the objectives of the schedule are met. The reported fleet use of availability gives an indication of how close to the edge the schedule is running. If the UA is at 100% fleet use of availability, then if a truck goes down, the schedule may not be achievable (it still may be if there’s an opportunity to catch up later). If it’s at 50%, half the expected trucks could be inoperable, and the schedule is still achievable.

Note that if UA for your site also includes times like when a truck driver does not show up for work, that should be instead be accounted for in either unplanned availability or one of the other availability fields. APS assumes that UA is historically the percentage of time that the truck could be used, but intentionally wasn’t.

  • No labels