Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
oemof user meeting, May 2018
The oemof user meeting takes place in Magdeburg on May 8th 2018, starting from 10 am. Optionally we have the chance to discuss further at a dinner on the evening of May 8th and continue the working groups in the morning of May 9th.
OVGU Gebäude 29
Room 301 Universitätspl. 2
Workshop language is English.
A collective notebook for the day is provided here: https://etherpad.net/p/oemof_user_may_2018
10:00 - 10:30
- Short introduction round and collecting possible topics which haven't found the way on the agenda yet. We still have the possibility to set up parallel working groups.
10:30 - 11:30
- Switching from v0.1 to v0.2, what's new in oemof v0.2.1 and what is planned in the future [Uwe Krien]
11:30 - 12:00
- Presentation of the new feedinlib and the open_FRED data set [Jonathan Amme]
12:00 - 13:00 Lunch break
13:00 - 15:00
- Presentation of using oemof to validate real data of PV battery systems and simulate electric vehicles in combniation with a PV battery system [Bastian Hackenberg]
- Handling of input data (excel-reader, csv-reader, data base) [interactive working group]
15:00 - 15:15 Coffee break
15:15 - 17:15
- Presentation of the applications "GridCon" and "economics_BAUM" which deal with the electrification of agricultural machines [Michael Stöhr] --> Please find the oemof application and further information here: https://github.com/baumconsult/gridcon
- Handling complex energy system models (multi-demands, multi-commodities, multi-region, ...) [interactive working group]
17:15 - 18:00
Linear optimal power flow (LOPF) vs. transshipment model [interactive working group]
18:00 - 18:30
- Feedback round and collecting open questions and wishes for the future
from around 18:30 leaving to the optional dinner
Notes at the meeting
Switching from v0.1 to v0.2, what's new in oemof v0.2.1 and what is planned in the future [Uwe Krien]
Everybody uses already v0.2, so a 'switching tutorial' is not necessary.
Here are the most relevant features and changes of v0.2:
- The csv-Reader is not anymore part of v0.2. It is hard to maintain a universal version and better to give an example on how to adapt a csv-reader for your personal problem.
- The attribute 'fixed_costs' has been removed.
- A module which uses networkx to plot and analyse graphs has been added. You can also export your graph to yEd.
- We now have 'custom components'. People can add their own components on an experimental level (full documentation and tests are not required as needed for becoming part of oemof). They can always be added to your application even if they are not part of oemof. For example the linear optimal power flow (LOPF) components are on an experimental level.
- You can add your own constraints to your application or to the module constraints.py (if you want to make it available for others), see for example the emission_limit in oemof/constraints.py
- new component GenericOffsetTransformer
- minimum number of time-steps is two
- The new function 'param_results' collects all input parameters to analyze them together with the results of the optimization. The name of the function will be changed in the next release.
Stuff currentlly under development:
heat systems --> project oemof_heat (new components to be developed: heat distribution systems, stratified heat storage, concentrating solar thermal power plants)
TESPy (Thermal Engineering Systems in Python) is part of the oemof framework: https://github.com/oemof/tespy, you can use TESPy to generate characteristics of you optimization model which you create with the library oemof.solph
The outputlib is under further development. Analysis of your results will be easier.
- New concept: facades --> Used to collect complex structure of components and make it simpler for users
- Data package reader according to Data package Standard --> http://frictionlessdata.io/docs/data-package/
Presentation of the new feedinlib and the open_FRED data set [Jonathan Amme]
In a project of RLI, Helmholtz-Zentrum Geesthacht and University Magdeburg called open_FRED the feedinlib, which has up to now only basic calculations for pv and wind power, is extensively improved, see the presentation for more information.
You can use the feedinlib as stand-alone-model or within your oemof application. You can use your own weather data or the weather data base (in the next two or three weeks).
Presentation of using oemof to validate real data of PV battery systems and simulate electric vehicles in combniation with a PV battery system [Bastian Hackenberg]
Solar home system with PV-plant, battery, electric vehicle and connection to the grid. Compares the charging of a real battery and the oemof optimisation. Discrepancies are explained by the difference in approaches: Perfect foresight in oemof, weather prediction based strategies for the real battery weekly control of the storage behaviour leads to better results SPI Modeling of EV
Handling of input data (excel-reader, csv-reader, data base) [interactive working group]
Uwe showed the difference between the old universal csv-reader and a new one which he created for the same problem. The new one is much clearer. Jonathan showed the excel-reader. The updated excel reader example will be merged in a few days in the oemof_examples repository. Uwe suggests csv-collections which are versionable on github.
Gabriele showed his work on the Italian energy system scenarios. He also wants to create a converter for the excel-reader to easily implement the huge amount of data he needs for his scenarios.
Jonathan shows how SQLAlchemy can be used to access sql databases from within python. You can e.g. get data from the database and write it to a pandas dataframe. Jonathan will upload an example featuring SQLAlchemy to the oemof_example repository. Link to SQLAlchemy: http://www.sqlalchemy.org/ Instead of defining the SQLAlchemy models manually, you can let sqlacodegen do it for you: https://pypi.org/project/sqlacodegen/
Presentation of the applications "GridCon" and "economics_BAUM" which deal with the electrification of agricultural machines [Michael Stöhr]
Michael presents a design study for autonomous electrified agricultural machines. Please find the oemof application and further information here: https://github.com/baumconsult/gridcon oemof's economics.py can only handle single investments (which have the same financial lifetime), therefore an own module was developed: https://github.com/baumconsult/gridcon/blob/master/economics_BAUM_171221.py --> How can this be integrated into oemof?
Further topics which are not on the agenda:
Splitting up into three groups:
Group 1) Talking about linear, mixed integer linear and nonlinear problems wishes:
- BHKW with 3 operation modes 30%, 60%, 90%
- Nonlinearities that occur in heat components
- Nonlinear cost functions
- Nonlinear load dependend efficiency
If computational resources do not suffice, cloud computing can be an option. A component with nonlinear investment costs could be implemented and put into the custom.py module
Group 2) Talking about the different approaches if your problem is too big (If the analysed energy system contains too many nodes, the necessary working memory of the computer might exceed the available one.), relax constraints Leticia present something of her actual work (market model)
Group 3) Talking about heat demands degree day method: Demand profiles using temperature timeseries Tools: open equarter simstadt
alltogether) What are the requirements to the analysis tool which is under development (outputlib)? - Please add your requirements if you miss some. Summed operating hours Summed Production Mean Production during operation hours Maximal Production Minimal Production Full load hours Start count Deckungsgrad Erneuerbare Summed Excess, maximal Excess Summed import maximal import
Details deep in the code were hard to follow. Predefined examples, modeling practice in small groups would be nice. Some parts were hard to follow for beginners. Good to hear what is coming. Concrete modeling examples would be useful. Useful. Good to see other people's work. Hard to enter for beginners. An introduction would have been helpful. Anyhow, the broad spectrum of oemof applications became apparent. Wide range of usability was impressive. Very motivating. Main expectations: 1.) Beginner tutorial 2.) modeling practice 3.) advanced features Maybe in the next meeting, advanced users can introduce new users.
Wishes from the users for today.
9:30 - 10:30 Splitting up into two groups.
Group 1) insights into TESPy
Group 2) how to add constraints (minimum downtime), how to add custom components plus an example
- example flexible modeling/add_constraints.py:
shows, how to add own constraints
example is out-of-date. Now you can set the own attributes to the Flow directly, when you define it
in oemof.solph.custom, there are some predefined constrains as functions --> possible to adapt this for own requirements
minimum downtime: see example min_max_runtime
10:45 - 12:00 git and github