Commit 5e29f514 authored by Niina Helistö's avatar Niina Helistö
Browse files

A fix related to issue #112: changed omCosts from p_unit to p_gnu and renamed...

A fix related to issue #112: changed omCosts from p_unit to p_gnu and renamed to vomCosts. It is possible to give vomCosts also to input units, but in that case the user should select the sign carefully. The objective function includes a term:
+ sum(gnuft(grid, node, unit, f, t), + v_gen(grid, node, unit, s, f, t) * p_gnu(grid, node, unit, 'vomCosts'))
which means that positive vomCosts result in decreasing objective function value when multiplied with negative v_gen. Positive vomCosts could be interpreted as an increase in consumer's utility. In this way, this fix may also be able to implement feature #76.
parent 0f075db0
......@@ -269,6 +269,7 @@ param_gnu "Set of possible data parameters for grid, node, unit" /
invCosts "Investment costs (EUR/MW)"
annuity "Investment annuity factor"
fomCosts "Fixed operation and maintenance costs (EUR/MW/a)"
vomCosts "Variable operation and maintenance costs (EUR/MWh)"
inertia "Inertia of the unit (s)"
unitSizeMVA "Generator MVA rating of one subunit (MVA)"
availabilityCapacityMargin "Availability of the unit in the capacity margin equation (p.u.). If zero, v_gen is used. Currently used only for output capacity."
......@@ -287,7 +288,6 @@ param_unit "Set of possible data parameters for units" /
useInitialOnlineStatus "A flag to fix the online status of a unit for the first time step (binary)"
initialOnlineStatus "Initial online status of the unit in the first time step (0-1)"
unavailability "Unavailability of given energy conversion technology (p.u.)"
omCosts "Variable operation and maintenance costs (EUR/MWh)"
startCostCold "Variable start-up costs for cold starts excluding fuel costs (EUR/MW)"
startCostWarm "Variable start-up costs for warm starts excluding fuel costs (EUR/MW)"
startCostHot "Variable start-up costs for hot starts excluding fuel costs (EUR/MW)"
......
......@@ -35,10 +35,10 @@ q_obj ..
+ p_stepLength(m, f, t)
* [
// Variable O&M costs
+ sum(gnuft(gnu_output(grid, node, unit), f, t), // Calculated only for output energy
+ sum(gnuft(grid, node, unit, f, t),
+ v_gen(grid, node, unit, s, f, t)
* p_unit(unit, 'omCosts')
) // END sum(gnu_output)
* p_gnu(grid, node, unit, 'vomCosts')
) // END sum(gnuft)
// Fuel and emission costs
+ sum(uFuel(unit, 'main', fuel)${uft(unit, f, t)},
......
......@@ -25,11 +25,11 @@ loop(m,
* --- Realized Individual Costs ----------------------------------------------
// Variable O&M costs
r_gnuVOMCost(gnu_output(grid, node, unit), ft_realizedNoReset(f,t))$[ord(t) > mSettings(m, 't_start') + mSettings(m, 't_initializationPeriod')]
r_gnuVOMCost(gnu(grid, node, unit), ft_realizedNoReset(f,t))$[ord(t) > mSettings(m, 't_start') + mSettings(m, 't_initializationPeriod')]
= 1e-6 // Scaling to MEUR
* p_stepLengthNoReset(m, f, t)
* r_gen(grid, node, unit, f, t)
* p_unit(unit, 'omCosts');
* p_gnu(grid, node, unit, 'vomCosts');
// Fuel and emission costs during normal operation
r_uFuelEmissionCost(fuel, unit_fuel(unit), ft_realizedNoReset(f,t))${ uFuel(unit, 'main', fuel) and [ord(t) > mSettings(m, 't_start') + mSettings(m, 't_initializationPeriod')]}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment