ATS Iron Ore Example

Take the following iron ore mine setup:

Diagram omits waste and low grade dumps for clarity.

Processing Paths

Processing paths describe the properties of every product, at every point, along every unique path to port.

  • Processes
    • Dry Plant
    • Wet Plant 1
    • Wet Plant 2
  • Points
    • Rail
    • Ship
  • Sub Products
    • Lump
    • Fine

Crushed material may have different lump/fine properties, plants may apply different recoveries and upgrades, and rail may have different moisture from ship.

Note that even though there are two "dry plant" crusher outputs, both have the same recoveries and upgrades, making them a single dry plant stream for ATS purposes.

Crushers

Crushers in ATS may only have one processing stream and one set of product specs. Some duplication is required in order to feed multiple plants from the same crusher, and to target multiple grades. 

Crusher 1 and Crusher 2 are represented by eight feed points in this project:

  • CR1_dry_prod1
  • CR1_dry_prod2
  • CR1_wet_prod1
  • CR1_wet_prod2
  • CR2_dry_prod1
  • CR2_dry_prod2
  • CR2_wet_prod1
  • CR2_wet_prod2

Where the aggregate feed across all CR1* crushers will be constrained to one (1) crusher capacity. 

Destination Logic

Destination Logic describes the final resting place for material at the end of the period. 

  • Ex-Pit1:
    • Waste to Dumps
    • HG* to ROM1, CR1, CR2
    • LG to LTS, ROM1, CR1, CR2
  • Ex-Pit2:
    • Waste to Dumps
    • HG* to ROM2, CR1, CR2
    • LG to LTS, ROM2, CR1, CR2
  • Rehandle:
    • ROM1 to CR1, CR2
    • ROM2 to CR1, CR2
    • LTS to CR1, CR2

Where HG* represents all high grade materials, and CR1 represents all Crusher 1 variants.

Steps Logic

Steps Logic describes the in-period waypoints between original source and final destination, and what fleet (or conveyor) is used on each leg. 

  • Ex-Pit1 
    • Ore => CR1
      1. Ore => CR1 @ 70% 
      2. Ore => ROM1 => CR1 @ 30% 
    • Ore => ROM1 => ROM2 => CR2
    • LG => LTS
    • W => Dumps
  • Ex-Pit2
    • Ore => CR2
      1. Ore => CR2 @ 70% 
      2. Ore => ROM2 => CR2 @ 30% 
    • Ore => ROM2 => ROM1 => CR1
    • LG => LTS
    • W => Dumps
  • Rehandle
    • ROM1 => CR1
    • ROM2 => CR2
    • ROM1 => ROM2 => CR2
    • ROM2 => ROM1 => CR2

Constraints

Constraints may be applied to limit long haul quantities, total crusher throughput, plant capacity, and product output.

Constraint TypeNameConfiguration
Standard ConstraintCR1 long haul limit(Pit2,ROM2) => (CR1_dry_prod1, CR1_dry_prod2, CR1_wet_prod1, CR1_wet_prod2)
Standard ConstraintCR2 long haul limit(Pit1,ROM1) => (CR2_dry_prod1, CR2_dry_prod2, CR2_wet_prod1, CR2_wet_prod2)
Standard ConstraintCR1 feed limit(All sources) => (CR1_dry_prod1, CR1_dry_prod2, CR1_wet_prod1, CR1_wet_prod2)
Standard ConstraintCR2 feed limit(All sources) => (CR2_dry_prod1, CR2_dry_prod2, CR2_wet_prod1, CR2_wet_prod2)
Standard ConstraintPlant1 capacity(All sources) => (CR1_wet_prod1, CR1_wet_prod2)
Standard ConstraintPlant2 capacity(All sources) => (CR2_wet_prod1, CR2_wet_prod2)
Standard ConstraintProd1 product tonnes(All sources) => (CR1_dry_prod1, CR1_wet_prod1, CR2_dry_prod1, CR2_wet_prod1)
Standard ConstraintProd2 product tonnes(All sources) => (CR1_dry_prod2, CR1_wet_prod2, CR2_dry_prod2, CR2_wet_prod2)

Product Specifications

Suppose we want to apply the following rules to the optimisaiton:

  • Product1 rail fines output:
    • 60.0 < Fe < 61.0
    • 2.0 < Al < 4.0
    • 5.0 < Si < 7.0
  • Product2 rail fines output:
    • 61.0 < Fe < 62.0
    • 1.0 < Al < 3.0
    • 3.0 < Si < 5.0
  • Crusher feed should not exceed 25% Low Grade

We can achieve this with the right cash flows and grade targets.

Rule TypeShort haul feedValue
CrusherCashFlow(Pit1,ROM1) => CR1Cash flow = revenue per tonne - haulage cost per km = +$25/t
CrusherCashFlow(Pit2,ROM2) => CR2Cash flow = revenue per tonne - haulage cost per km = +$25/t
Rule TypeLong haul feedValue
CrusherCashFlow(Pit1,ROM1,LTS) => CR2Cash flow = revenue per tonne - haulage cost per km = +$20/t
CrusherCashFlow(Pit2,ROM2,LTS) => CR1Cash flow = revenue per tonne - haulage cost per km = +$20/t
Rule TypeShort haul ROM buildValue
StockpileCashFlowPit1 => ROM1Cash flow = rehandle cost to crusher = -$1/t
StockpileCashFlowPit2 => ROM2Cash flow = rehandle cost to crusher = -$1/t
Rule TypeLong haul ROM buildValue
StockpileCashFlowPit1 => ROM2Cash flow = extra haulage cost + rehandle cost = -$2/t
StockpileCashFlowPit2 => ROM1Cash flow = extra haulage cost + rehandle cost = -$2/t
Rule TypeLong Term Stockpile BuildValue
StockpileCashFlowLG => LTSCash flow = zero (no penalty for long term stockpile)
Rule TypeProduct 1 SpecMinTargetMaxContent Deviation Penalty
CrusherGradeTargetFe60.060.561.00.01
CrusherGradeTargetAl2.03.04.00.01
CrusherGradeTargetSi5.05.56.00.01
Rule TypeProduct 2 SpecMinTargetMaxContent Deviation Penalty
CrusherGradeTargetFe61.061.562.00.01
CrusherGradeTargetAl1.02.03.00.01
CrusherGradeTargetSi3.04.05.00.01
Rule TypeBlendingValue
CrusherBlendTargetLowGradeRatioMaximum = 25%

Simple Example

During the period, the Agent mines blocks. If the Destination Logic rule is marked as "Crusher Feed", then the material is held in a virtual stockpile until the end of the period. At the end of the period, the Agent assesses the product specifications and assigns the material to its final destination.

End of Period 1:
Pit1 HG:Pit2 HG:Stockpiled LG:
  • DryTonnes = 750 kt
  • Fe = 60.0
  • Al = 4.0
  • Si = 6.5
  • DryTonnes = 750 kt
  • Fe = 61.5
  • Al = 2.0
  • Si = 4.0
  • DryTonnes = 100 Mt
  • Fe = 58
  • Al = 6.0
  • Si = 14.0
Pit1 cash flows:Pit2 cash flows:LTS cash flows:
  1. Ore => CR1 @ +$25/t
  2. Ore => CR2 @ +$20/t
  3. Ore => ROM1 @ -$1/t
  4. Ore => ROM2 @ -$2/t
  1. Ore => CR2 @ +$25/t
  2. Ore => CR1 @ +$20/t
  3. Ore => ROM2 @ -$1/t
  4. Ore => ROM1 @ -$2/t
  • LTS => CR1 @ +$20/t
  • LTS => CR2 @ +$20/t

Suppose the optimiser returns this result:

Product1Dry TonnesFeAlSiCash Flow
Pit1680 kt60.04.06.5+$17,000,000
Pit2290 kt61.52.04.0+$7,250,000
LG30 kt58.06.014.0+$750,000

Net1000 kt60.383.486.00
Target
60.53.005.50
Deviation
0.1250.480.50
Penalty
-$125,000-$480,000-$500,000-$1,105,000
Product2Dry TonnesFeAlSiCash Flow
Pit170 kt60.04.06.5+$1,750,000
Pit2460 kt61.52.04.0+$11,500,000
LG39.5 kt58.06.014.0+$984,000

Net569.36 kt61.0732.525.00
Target
61.5002.004.00
Deviation
0.4270.521.00
Penalty
-$243,250-$298,000-$570,000-$1,111,250
Total Cash Flow:+$37,021,250