-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow Network Charges #73
Conversation
The rough idea is: import energypylinear as epl
site = epl.Site(
assets=[
epl.Battery(
power_mw=2, capacity_mwh=4, efficiency_pct=0.9
),
],
electricity_prices=[100, 1000, -20, 40, 45],
network_charge=[0, 300, 300, 0, 0],
)
objective = {
"terms": [
{
"asset_type": "site",
"variable": "import_power_mwh",
"interval_data": "electricity_prices",
},
{
"asset_type": "site",
"variable": "export_power_mwh",
"interval_data": "electricity_prices",
"coefficient": -1,
},
{
"asset_type": "site",
"variable": "import_power_mwh",
"interval_data": "network_charge",
},
]
}
site.optimize(objective) |
Thanks Adam, the I understand that I found it a bit tricky to nail down how
So this interval data only impacts the objective function? Unfeasible simulations are enabled via |
@rdmolony
This PR adds the ability to optimize for a network charge.
It required adding in the ability to supply custom interval data, to use with a custom objective function that sets up the network charge.
Features:
__init__
of assets and the site.Other changes:
asset.__init__
to False.TODO:
extra interval data
tocustom interval data
,customization.interval data
,use_cases.network_charges
,include_spill: bool = False
to all assets.