Lower bound of storage for storage units

190 views
Skip to first unread message

Matteo De Felice

unread,
Feb 1, 2022, 3:31:28 AM2/1/22
to pypsa
Good morning,
I am trying to implement a code to convert the inputs from another power system model (METIS) to PyPSA. Currently, I am working with storage units (reservoir, open- and closed-loop pumping) and I am trying to set a minimum storage for each time step but it appears that for the storage units the minimum must be 0 (3rd equation here https://pypsa.readthedocs.io/en/latest/optimal_power_flow.html#storage-unit-constraints) unless you specify a specific set point using `state_of_charge_set`. Is this correct? 

Thanks in advance!

Matteo


Fabian Neumann

unread,
Feb 1, 2022, 3:47:17 AM2/1/22
to py...@googlegroups.com
Hi Matteo,

yes, as I can see it now, the StorageUnit component only supports a
given set point for the state of charge.

If you have minimum state of charge constraints, these can be
implemented with the more fundamental Store component. Here's an example
how to migrate from StorageUnit to Store/Link/Generator combination:

https://pypsa.readthedocs.io/en/latest/examples/replace-generator-storage-units-with-store.html

Hope this helps,

Fabian N
> --
> You received this message because you are subscribed to the Google
> Groups "pypsa" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to pypsa+un...@googlegroups.com
> <mailto:pypsa+un...@googlegroups.com>.
> To view this discussion on the web, visit
> https://groups.google.com/d/msgid/pypsa/d69445d4-6a3b-44b7-b5c9-0f3ac474ef15n%40googlegroups.com
> <https://groups.google.com/d/msgid/pypsa/d69445d4-6a3b-44b7-b5c9-0f3ac474ef15n%40googlegroups.com?utm_medium=email&utm_source=footer>.

--
Dr.-Ing.
Fabian Neumann (he/him)
Postdoctoral Researcher

Department of Digital Transformation in Energy Systems
Institute of Energy Technology
Technische Universität Berlin

Group website: https://tub-ensys.github.io
Personal website: https://neumann.fyi

Zoom: https://tu-berlin.zoom.us/my/fneum
Schedule Meeting: https://calendly.com/fneum

Visitor Address:
Einsteinufer 25 (TA 8)
10587 Berlin

My working hours may not be your working hours. Do not feel pressure to
reply to this email outside your working hours.

Matteo De Felice

unread,
Feb 6, 2022, 1:37:41 PM2/6/22
to pypsa
Dear Fabian,
the Store/Link/Generator implementation works fine and it's flexible but in this setup you cannot impose any constraint on the ramping up/down of the hydropower plant. Because the ramping constraints are only for generators but in this setup you don't have a generator, am I correct?
Do you think would be feasible to add this constraint directly in the PyPSA implementation? Any guidance on how to add this?
Best regards,

Tom Brown

unread,
Feb 7, 2022, 3:23:30 AM2/7/22
to py...@googlegroups.com
Hi Matteo,

It's definitely possible to add the ramping as an "extra_functionality"
by just copying the constraints over from the generators.

However, we've had a request to put ramping and unit commitment on links
before, so I'll discuss with the team prioritising this for the next
release.

Best wishes,

Tom
> <https://pypsa.readthedocs.io/en/latest/optimal_power_flow.html#storage-unit-constraints>)
>
> > unless you specify a specific set point using
> `state_of_charge_set`. Is
> > this correct?
> >
> > Thanks in advance!
> >
> > Matteo
> >
> >
> > --
> > You received this message because you are subscribed to the Google
> > Groups "pypsa" group.
> > To unsubscribe from this group and stop receiving emails from it,
> send
> > an email to pypsa+un...@googlegroups.com
> > <mailto:pypsa+un...@googlegroups.com>.
> > To view this discussion on the web, visit
> >
> https://groups.google.com/d/msgid/pypsa/d69445d4-6a3b-44b7-b5c9-0f3ac474ef15n%40googlegroups.com
> <https://groups.google.com/d/msgid/pypsa/d69445d4-6a3b-44b7-b5c9-0f3ac474ef15n%40googlegroups.com>
>
> >
> <https://groups.google.com/d/msgid/pypsa/d69445d4-6a3b-44b7-b5c9-0f3ac474ef15n%40googlegroups.com?utm_medium=email&utm_source=footer
> <https://groups.google.com/d/msgid/pypsa/d69445d4-6a3b-44b7-b5c9-0f3ac474ef15n%40googlegroups.com?utm_medium=email&utm_source=footer>>.
>
>
> --
> Dr.-Ing.
> Fabian Neumann (he/him)
> Postdoctoral Researcher
>
> Department of Digital Transformation in Energy Systems
> Institute of Energy Technology
> Technische Universität Berlin
>
> Group website: https://tub-ensys.github.io
> <https://tub-ensys.github.io>
> Personal website: https://neumann.fyi <https://neumann.fyi>
>
> Zoom: https://tu-berlin.zoom.us/my/fneum
> <https://tu-berlin.zoom.us/my/fneum>
> Schedule Meeting: https://calendly.com/fneum
> <https://calendly.com/fneum>
>
> Visitor Address:
> Einsteinufer 25 (TA 8)
> 10587 Berlin
>
> My working hours may not be your working hours. Do not feel pressure to
> reply to this email outside your working hours.
>
> --
> You received this message because you are subscribed to the Google
> Groups "pypsa" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to pypsa+un...@googlegroups.com
> <mailto:pypsa+un...@googlegroups.com>.
> To view this discussion on the web, visit
> https://groups.google.com/d/msgid/pypsa/f43bbb27-544f-4526-85be-341bfa743a12n%40googlegroups.com
> <https://groups.google.com/d/msgid/pypsa/f43bbb27-544f-4526-85be-341bfa743a12n%40googlegroups.com?utm_medium=email&utm_source=footer>.

--
Tom Brown (he/him)
Professor of Digital Transformation in Energy Systems
Institute of Energy Technology
Technische Universität Berlin

Group website: https://tub-ensys.github.io/
Personal website: https://nworbmot.org/

Fabian Neumann

unread,
Feb 7, 2022, 3:24:57 AM2/7/22
to py...@googlegroups.com
Yes, this is the PR in question:

https://github.com/PyPSA/PyPSA/pull/314
Personal website: https://neumann.fyi

Zoom: https://tu-berlin.zoom.us/my/fneum
Schedule Meeting: https://calendly.com/fneum

Fabian Hofmann

unread,
Feb 9, 2022, 2:45:23 AM2/9/22
to pypsa
Hey Matteo, 

the PR is merged and the ramping limits for links are now implemented in the current master branch (for pyomo=False). So it'll be supported in the next release. 

Best
Fabian  
Reply all
Reply to author
Forward
0 new messages