Skip to content

Conversation

hdunham
Copy link
Collaborator

@hdunham hdunham commented Jun 18, 2024

No description provided.

hdunham and others added 30 commits September 18, 2023 20:11
Update REopt License and Copyright per NREL legal
# TODO? make binMGCHPIsOnInTS indexed on p.techs.chp
end

function add_MG_storage_dispatch_constraints(m,p)
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I renamed this function to specify elec storage. The constraints should also be updated to loop b in p.s.storage.types.elec instead hardcoding "ElectricStorage". Like H2 MG state of charge constraint below.

degradation::Dict = Dict()
minimum_avg_soc_fraction::Float64 = 0.0
capacity_based_per_ts_self_discharge_fraction::Float64 = 0.0 # Battery self-discharge as a fraction per timestep loss based on the rated kWh capacity of the sized storage system
soc_based_per_ts_self_discharge_fraction::Float64 = 0.0 # Battery self-discharge as a fraction per timestep loss based on kWh stored in each timestep
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is leakage typically measured by the hour?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll suggest a rename to soc_self_discharge_rate_fraction and capacity_self_discharge_rate_fraction - do we want to include this for all storage techs and zero it out by default? That's what I'm currently implementing; to avoid a breaking change maybe we keep the thermal TES field alone for now and save that for a future update.

soc_init_fraction::Float64 = 0.5 # TES thermal state of charge at first hour of optimization
installed_cost_per_gal::Float64 = 1.50 # Thermal energy-based cost of TES (e.g. volume of the tank)
thermal_decay_rate_fraction::Float64 = 0.0004 # Thermal loss (gain) rate as a fraction of energy storage capacity, per hour (frac*energy_capacity/hr = kw_thermal)
soc_based_per_ts_thermal_decay_fraction::Float64 = 0.0 # Thermal loss (gain) rate as a fraction of the energy stored in each timestep (frac*energy_stored = kw_thermal)
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"loss (gain)" and "loss/gain" are a bit confusing. I would just call it energy loss

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

installed_cost_per_gal::Float64 = 1.50 # Thermal energy-based cost of TES (e.g. volume of the tank)
thermal_decay_rate_fraction::Float64 = 0.0004 # Thermal loss (gain) rate as a fraction of energy storage capacity, per hour (frac*energy_capacity/hr = kw_thermal)
soc_based_per_ts_thermal_decay_fraction::Float64 = 0.0 # Thermal loss (gain) rate as a fraction of the energy stored in each timestep (frac*energy_stored = kw_thermal)
capacity_based_per_ts_thermal_decay_fraction::Float64 = 0.0004 # Thermal loss (gain) rate as a fraction of the installed storage capacity per timestep (frac*energy_capacity = kw_thermal); the provided default is for an hourly thermal loss/gain
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also I think these field names need to be updated to ...self_discharge...

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants