TS Iron Ore Example
Take the following iron ore mine setup:
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
Ore => CR1 @ 70%
Ore => ROM1 => CR1 @ 30%
Ore => ROM1 => ROM2 => CR2
LG => LTS
W => Dumps
Ex-Pit2
Ore => CR2
Ore => CR2 @ 70%
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 Type | Name | Configuration |
---|---|---|
Standard Constraint | CR1 long haul limit | (Pit2,ROM2) => (CR1_dry_prod1, CR1_dry_prod2, CR1_wet_prod1, CR1_wet_prod2) |
Standard Constraint | CR2 long haul limit | (Pit1,ROM1) => (CR2_dry_prod1, CR2_dry_prod2, CR2_wet_prod1, CR2_wet_prod2) |
Standard Constraint | CR1 feed limit | (All sources) => (CR1_dry_prod1, CR1_dry_prod2, CR1_wet_prod1, CR1_wet_prod2) |
Standard Constraint | CR2 feed limit | (All sources) => (CR2_dry_prod1, CR2_dry_prod2, CR2_wet_prod1, CR2_wet_prod2) |
Standard Constraint | Plant1 capacity | (All sources) => (CR1_wet_prod1, CR1_wet_prod2) |
Standard Constraint | Plant2 capacity | (All sources) => (CR2_wet_prod1, CR2_wet_prod2) |
Standard Constraint | Prod1 product tonnes | (All sources) => (CR1_dry_prod1, CR1_wet_prod1, CR2_dry_prod1, CR2_wet_prod1) |
Standard Constraint | Prod2 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 Type | Short haul feed | Value | |||
---|---|---|---|---|---|
CrusherCashFlow | (Pit1,ROM1) => CR1 | Cash flow = revenue per tonne - haulage cost per km = +$25/t | |||
CrusherCashFlow | (Pit2,ROM2) => CR2 | Cash flow = revenue per tonne - haulage cost per km = +$25/t | |||
Rule Type | Long haul feed | Value | |||
CrusherCashFlow | (Pit1,ROM1,LTS) => CR2 | Cash flow = revenue per tonne - haulage cost per km = +$20/t | |||
CrusherCashFlow | (Pit2,ROM2,LTS) => CR1 | Cash flow = revenue per tonne - haulage cost per km = +$20/t | |||
Rule Type | Short haul ROM build | Value | |||
StockpileCashFlow | Pit1 => ROM1 | Cash flow = rehandle cost to crusher = -$1/t | |||
StockpileCashFlow | Pit2 => ROM2 | Cash flow = rehandle cost to crusher = -$1/t | |||
Rule Type | Long haul ROM build | Value | |||
StockpileCashFlow | Pit1 => ROM2 | Cash flow = extra haulage cost + rehandle cost = -$2/t | |||
StockpileCashFlow | Pit2 => ROM1 | Cash flow = extra haulage cost + rehandle cost = -$2/t | |||
Rule Type | Long Term Stockpile Build | Value | |||
StockpileCashFlow | LG => LTS | Cash flow = zero (no penalty for long term stockpile) | |||
Rule Type | Product 1 Spec | Min | Target | Max | Content Deviation Penalty |
CrusherGradeTarget | Fe | 60.0 | 60.5 | 61.0 | 0.01 |
CrusherGradeTarget | Al | 2.0 | 3.0 | 4.0 | 0.01 |
CrusherGradeTarget | Si | 5.0 | 5.5 | 6.0 | 0.01 |
Rule Type | Product 2 Spec | Min | Target | Max | Content Deviation Penalty |
CrusherGradeTarget | Fe | 61.0 | 61.5 | 62.0 | 0.01 |
CrusherGradeTarget | Al | 1.0 | 2.0 | 3.0 | 0.01 |
CrusherGradeTarget | Si | 3.0 | 4.0 | 5.0 | 0.01 |
Rule Type | Blending | Value | |||
CrusherBlendTarget | LowGradeRatio | Maximum = 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: |
---|---|---|
|
|
|
Pit1 cash flows: | Pit2 cash flows: | LTS cash flows: |
|
|
|
Suppose the optimiser returns this result:
Product1 | Dry Tonnes | Fe | Al | Si | Cash Flow |
---|---|---|---|---|---|
Pit1 | 680 kt | 60.0 | 4.0 | 6.5 | +$17,000,000 |
Pit2 | 290 kt | 61.5 | 2.0 | 4.0 | +$7,250,000 |
LG | 30 kt | 58.0 | 6.0 | 14.0 | +$750,000 |
Net | 1000 kt | 60.38 | 3.48 | 6.00 | |
Target | 60.5 | 3.00 | 5.50 | ||
Deviation | 0.125 | 0.48 | 0.50 | ||
Penalty | -$125,000 | -$480,000 | -$500,000 | -$1,105,000 | |
Product2 | Dry Tonnes | Fe | Al | Si | Cash Flow |
Pit1 | 70 kt | 60.0 | 4.0 | 6.5 | +$1,750,000 |
Pit2 | 460 kt | 61.5 | 2.0 | 4.0 | +$11,500,000 |
LG | 39.5 kt | 58.0 | 6.0 | 14.0 | +$984,000 |
Net | 569.36 kt | 61.073 | 2.52 | 5.00 | |
Target | 61.500 | 2.00 | 4.00 | ||
Deviation | 0.427 | 0.52 | 1.00 | ||
Penalty | -$243,250 | -$298,000 | -$570,000 | -$1,111,250 | |
Total Cash Flow: | +$37,021,250 |