cost

This module contains objective functions for the model. The objective function of the model is to minimize the net present value of the system's cost. This includes capital cost, fixed O&M cost, variable cost and fuel cost by cost type, technology cost, transmission line cost by the source of cost, and operation cost and planning cost by the source of cost.

The cost equations are defined as follows:

Calculation of system-wide total cost
\[ \begin{align}\begin{aligned}\rm{cost}_{\rm{tech}}^{\rm{var}} &= \frac{\sum_{h,m,y,z,\rm{e}} C_{y,z,\rm{e}}^{\rm{tech-var}}\times \rm{gen}_{h,m,y,z,\rm{e}}} {\omega} \times \rm{factor}_{y}^{\rm{var}}\\\rm{cost}_{\rm{line}}^{\rm{var}} &= \frac{\sum_{h,m,y,z_s,z_o} C_{y,z}^{\rm{line-var}}\times \rm{export}_{h,m,y,z_s,z_o}}{\omega} \times \rm{factor}_{y}^{\rm{var}}\\\rm{cost}^{\rm{fuel}} & = \frac{\sum_{h,m,y,z,\rm{e}} C_{y,z,\rm{e}}^{\rm{fuel}}\times \rm{gen}_{h,m,y,z,\rm{e}}}{\omega} \times \rm{factor}_{y}^{\rm{var}}\\\rm{cost}_{\rm{tech}}^{\rm{fix}} &= \sum_{y,z,\rm{e}} C_{y,z,\rm{e}}^{\rm{tech-fix}}\times \rm{cap}_{y,z,\rm{e}}^{\rm{existing-tech}}\times \rm{factor}_{y}^{\rm{fix}}\\\rm{cost}_{\rm{line}}^{\rm{fix}} &= \sum_{y,z_s,z_o} C_{y,z_s,z_o}^{\rm{line-fix}}\times \rm{cap}_{y,z_s,z_o}^{\rm{existing-line}}\times \rm{factor}_{y}^{\rm{fix}}\\\rm{cost}_{\rm{tech}}^{\rm{inv}} &= \sum_{y,z,\rm{e}} C_{y,z,\rm{e}}^{\rm{tech-inv}}\times \rm{cap}_{y,z,\rm{e}}^{\rm{tech-inv}}\times \rm{factor}_{y}^{\rm{inv}}\\\rm{cost}_{\rm{line}}^{\rm{inv}} &= \sum_{y,z_s,z_o} C_{y,z_s,z_o}^{\rm{line-inv}}\times \rm{cap}_{y,z_s,z_o}^{\rm{line-inv}}\times \rm{factor}_{y}^{\rm{inv}} \times 0.5\end{aligned}\end{align} \]
class prepshot._model.cost.AddCostObjective(model)[source]

Bases: object

Objective function class to determine the total cost of the model.

Parameters

model (object) --

__init__(model)[source]

The constructor for objective functions class.

Parameters

model (object) -- Model to be solved.

Return type

None

carbon_cost_breakdown(y, z)[source]

Carbon-tax cost breakdown by year and zone.

Tax is applied to net zonal emissions (raw emissions minus purchased offsets), in line with the carbon-market accounting convention.

Parameters
  • y (int) -- Year.

  • z (str) -- Zone.

Returns

Carbon-tax cost at a given year and zone.

Return type

poi.ExprBuilder

carbon_cost_rule()[source]

Total carbon-tax cost over all years and zones.

Returns

Total carbon-tax cost.

Return type

poi.ExprBuilder

carbon_offset_cost_breakdown(y, z)[source]

Cost of purchased carbon offsets by year and zone.

Parameters
  • y (int) -- Year.

  • z (str) -- Zone.

Returns

Carbon-offset cost at a given year and zone.

Return type

poi.ExprBuilder

carbon_offset_cost_rule()[source]

Total cost of purchased carbon offsets over all years and zones.

Returns

Total carbon-offset cost.

Return type

poi.ExprBuilder

cost_fix_line_breakdown(y, z, z1)[source]

Fixed operation and maintenance cost breakdown of transmission lines.

Parameters
  • y (int) -- Year.

  • z (str) -- Zone.

  • z1 (str) -- Zone.

Returns

Fixed operation and maintenance cost of transmission lines at a given year, source and destination zone.

Return type

poi.ExprBuilder

cost_fix_tech_breakdown(y, z, te)[source]

Fixed operation and maintenance cost breakdown.

Parameters
  • y (int) -- Year.

  • z (str) -- Zone.

  • te (str) -- Technology.

Returns

Fixed operation and maintenance cost of technologies at a given year, zone and technology.

Return type

poi.ExprBuilder

cost_newline_breakdown(y, z, z1)[source]

New transmission line investment cost breakdown.

Parameters
  • y (int) -- Year.

  • z (str) -- Zone.

  • z1 (str) -- Zone.

Returns

Investment cost of new transmission lines at a given year, source and destination zone.

Return type

poi.ExprBuilder

cost_newtech_breakdown(y, z, te)[source]

New technology investment cost breakdown.

Parameters
  • y (int) -- Year.

  • z (str) -- Zone.

  • te (str) -- Technology.

Returns

Investment cost of new technologies at a given year, zone and technology.

Return type

poi.ExprBuilder

cost_var_line_breakdown(y, z, z1)[source]

Variable operation and maintenance cost breakdown of transmission lines.

Parameters
  • y (int) -- Year.

  • z (str) -- Zone.

  • z1 (str) -- Zone.

Returns

Variable operation and maintenance cost of transmission lines at a given year, source and destination zone.

Return type

poi.ExprBuilder

cost_var_tech_breakdown(y, z, te)[source]

Variable operation and maintenance cost breakdown.

Parameters
  • y (int) -- Year.

  • z (str) -- Zone.

  • te (str) -- Technology.

Returns

Variable operation and maintenance cost of technologies at a given year, zone and technology.

Return type

poi.ExprBuilder

define_objective()[source]

Objective function of the model, to minimize total cost.

Return type

None

fix_cost_rule()[source]

Fixed O&M cost of technologies and transmission lines.

Returns

Total fixed O&M cost of technologies and transmission lines over all years, zones and technologies.

Return type

poi.ExprBuilder

fuel_cost_breakdown(y, z, te)[source]

Fuel cost breakdown of technologies.

Parameters
  • y (int) -- Year.

  • z (str) -- Zone.

  • te (str) -- Technology.

Returns

Fuel cost at a given year, zone and technology.

Return type

poi.ExprBuilder

income_rule()[source]

Income from water withdrawal. Reference: https://www.nature.com/articles/s44221-023-00126-0

Returns

Income from water withdrawal.

Return type

poi.ExprBuilder

lns_cost_rule()[source]

VOLL penalty on the load-not-served slack, discounted to NPV.

Returns a zero ExprBuilder when allow_load_shedding is false, so callers can add it unconditionally.

Return type

ExprBuilder

newline_cost_rule()[source]

Total investment cost of new transmission lines.

Returns

Total investment cost of new transmission lines over all years, zones.

Return type

poi.ExprBuilder

newtech_cost_rule()[source]

Total investment cost of new technologies.

Returns

Total investment cost of new technologies over all years, zones and technologies.

Return type

poi.ExprBuilder

var_cost_rule()[source]

Calculate total variable cost, which is sum of the fuel cost of technologies and variable Operation and maintenance (O&M) cost of technologies and transmission lines.

Returns

Total variable cost across all years, zones and technologies.

Return type

poi.ExprBuilder