Hello Community.
I am just about to start my project and my first question is, if oemof.solph is the right tool to do this.
The attached (simplified) model shows the basic idea.
There is a factory with the following components:
electrical grid electrical power supply
a photovoltaic electrical power supply
a furnace that is run once per day (convective heat, electrical - so far)
in fact there are 3-5 furnaces which I drop for the momement for simplification
the furnace heats and cools in a given temperature cycle resulting in a given power demand (max. temp 290°C)
to partially substitute electricity as energy source I would like to add a thermal energy storage, that can be charged up to e.g. 600°C
this shall be charged by electrical heating e.g. at week-ends, when there is excess electricity from the PV source
the electricity demand is given by the factory sink
upon cooling the furnace releases the stored heat as hot air, which is currently discarded to the atomosphere
instead I would try to recover as much heat as possible by running furnace and storage in a sort of round-trip mode
e.g. the storage is currently at 100°C and this air is fed to the furnace at 290°C for cooling it
the outlet air of the furnace is then again fed into the storage heating it up
this works until the temperature difference between storage and furnace becomes too small / the airflow must be limited e.g. to 20.000 cubic meters/hour
at this point the outlet air of the furnace must be discarded to the atmosphere or a second heat storage at lower temperature
the furnace intake air is then taken from the atmosphere
upon heating the furnace shall source heat from the heat storage until temperature and flow is limiting the power flow
after that the furnace shall switch to electrical power to follow the given temperature profile
This is in short my idea, without digging deeper into conversion factors, variable power demand of the furnace depending on the load inside etc.
So, what do you think? Is it worth digging deeper into oemof.solph to build this model or should I switch to another tool, which is more suited.
Most concerning to me is that decision making and switching of buses has to be made based on temperatures and volume-flows, which is not integral part of the heat storage or bus objects.
Thank you very much in advance to everyone contributing with advice and support.
Hi @GlassMike. Perhaps you can say something more about the context and objectives of your analysis? Are you seeking least long‑run cost? Participation in flexibility markets? To include current and future carbon prices? Is process failure a possibility (because this is not an aluminum smelter)? Are you going to undertake a sensitivity analysis? Explore allied technologies? Lots of questions from me, I know, but others will probably need to be aware of this wider scope in order to contribute more effectively.
Context and objectives of your analysis?
a) Usage of PV power (2 MWpeak)
In southern Germany we regularly face the issue that the grid is supercharged with regenerative power especially PV. This means you are not allowed to feed into the grid or even use your own PV power to stabilize the grid. Instead you have to shut down the PV and source from the grid.
This happens preferentially on sunny days, even more on week-ends, when industrial power consumption is low.
Therefore some sort of storage is probably a good idea to benefit from self produced solar power or low electricity exchange prices to charge your storage.
b) Waste heat recovery
As written it is currently maximum 5 furnaces that could be used to recover heat from. There is no other sink to use it currenty, therefore the model in order to find out, if this would be economic at all, future projections included.
c) optimum configuration
What is the ideal number and size of heat storages to optimise investment cost, PV usage and heat recovery.
Simple as that
Are you seeking least long‑run cost? Participation in flexibility markets? To include current and future carbon prices?
Yes. Basically it is all about money, since we are a so called “energy intensive industry”, energy cost is a major factor for future competitiveness.
Is process failure a possibility (because this is not an aluminum smelter)? Are you going to undertake a sensitivity analysis?
Not at the moment. Failure is an option, but as long as electricity is there as backup to run the furnaces, I see no major issue here.
Explore allied technologies?
Currently not, to start with. Of course battery storage would be an alternative, but then I have to convert heat to electricity or drop the heat recovery topic. There are also high temperature heat pumps in development that could bump the low temperature exhaust air of the furnaces to higher temperature levels, but this is too far into the future for the moment.
I found this an interesting energy system to model as we’re currently developing our simulation engine ReSiE and are looking for real examples, especially concerning mechanisms of control, to get an idea of where to focus remaining development. I did a quick-and-dirty implementation of the energy system - albeit with simplified models - and got the simulation working including heat recovery depending on the current temperatures of the furnace and storage (with a notion of how to also check for airflow restrictions).
However I should be hesitant to recommend ReSiE for this use case for several reasons:
We are still very much in development
Economical analysis is done with separate tools in post-processing based on the energy flow output
Optimization is a weak point of the engine and can only work with black box optimization - and is also not yet implemented.
I mainly post this as an (hopefully) interesting aside and to mention that it may be possible to use multiple tools for different analyses of the energy system. Perhaps there will be a limitation in modelling this with oemof where using a different tool can help.
Hello Etienne.
Thank you very much for your input. It seem that I have to dig deeper into the available solutions. Though, this is not part of my job, I feel the obligation to develop new ideas for my company to stay competitive in a country with comparatively high energy cost and of course in favour of our beautyful blue plantet. So, I have limited campactiy to spend time on this topic.
Meanwhile, I have come to the conclusion that oemof.solph is probably not the ideal approach to this since it includes not enough physics and engineering to created a realistic model, to convice my management to follow this approach further.
So I had a look at TRNSYS. Are you familiar with this? Could you desribe in short, the difference in approach between ReSieE and TRNSYS.
Basiscally, I would appreciate, if modeling tools would also focus on industrial micorgrids in addition to district heating. Generating reneable electricity loacally is easy these days an we have many roof and field PV installations in our region, but storage is key.
Situations like the tube on the image that feed the hot exhaust air to the atmosphere are one of my motivations. It is just 250kWh per furnace run, but every little helps. There is not district heating line available an I doubt it will be within the next ten years.
There is a metal casting company with 120 employees nearby, I am sure they are facing the same issues.
Happy to read your comments.
Best regards.
Michael
Just for the record, an earlier project first named EUSEBIA and later TOP‑Energy addressed this application area as an energy system optimization problem. You might find some clues in the following report? As I recall, the codebase was originally open source but it may have later become proprietary?
After an internet search and to my surprise, it seems that this project was indeed commercialized — although I could not create a direct link between Eckardt’s work and the site below. I’ll email GFaI Gesellschaft zur Förderung angewandter Informatik eV and report back. Best, R.
UPDATE
The work in the PhD report (Augenstein 2009) is a direct descendant of the TOP‑Energy software on offer today.
TRNSYS has been around forever, is written in Fortran, and is commercial software. ReSiE is written in Julia and released under a permissive MIT open source license.
I’m not personally familiar with TRNSYS very much, but we do use it in general in our team and it is a common simulation tool for energy system simulation. As @robbie.morrison mentioned it is commercial and, I would say, well established.
In terms of suitability, it sits on the powerful-but-complicated side of things. It can model all kinds of processes and physical mechanisms because it can support differential equations and state-based control among other things. The caveat being that it hinges on the implementation of energy system components (known as Types), for which there is a large library, however I doubt the furnace of your use case has an existing implementation. Therefore it would be necessary to program a custom TRNSYS Type for the furnace (possibly the high temperature storage too, though that might exist already).
In a direct comparison with ReSiE I’d summarize as follows (bias: I am a ReSiE developer):
Both TRNSYS and ReSiE require custom implementation for the furnace at the very least, with TRNSYS being more powerful in what it can model and ReSiE being faster to implement and easier to connect with the rest of the energy system
Both tools support the necessary control mechanisms to model the use case
Both tools only support black box optimization and (at the moment) require additional post-processing of results to determine economic variables for this optimization. In this optimization, I’d wager ReSiE runs significantly faster than TRNSYS, but I have no numbers to support this claim at the moment
TRNSYS requires a license, while ReSiE is open source (written in Julia)
TRNSYS is established and has a community, while ReSiE is still heavily in development and any support would necessarily come from us
I hope this helps for making a decision. I’d like to mention again that using multiple tools is an option.
Concerning modelling industrial use cases and microgrids, that is worth a topic of its own and we have thought about this a lot too. A lot of it comes down to a few aspects:
Scale: Many energy system modelling tools have been developed for simulation of the energy system, meaning entire countries. However the tools rarely enforce a specific scale, so I can use the same tool for modelling both an entire country or a small district of a few buildings. Other tools can only be used on a small scale because of the high detail of the model. The question is if the tool is really made for that kind of scale or not.
Component library: Industrial energy system often include components that are not used in a residential district
Flexible connections: Residential energy systems are fairly straight forward and “translate” the demands of buildings to primary energy consumption in relatively short chains. Industrial energy systems are more convoluted and circular and it’s more important to be able to connect the components in flexible ways
Mass flow and non-energy-carriers: Because not all processes in an industry setting are just about transforming and transporting energy, the tool needs to support that too.
Hello @robbie.morrison ,
I checked the internet pages and tutorials of Top-Energy as well, but it left a couple of open questions.
So, I also reached out to them and gave them the link to this discussion.
Let`s see what is happening.
Anyway, I will have a closer look into ReSie now. Maybe it is a good start.
@etienne.ott : Thanks for the explanations. I really enjoy OS software and admire people that spend their enthusiasm to projects like this. Keep going.
Cleaning process heat in industry holds “enormous potential” to bring the sector in line with climate targets while simultaneously boosting competitiveness and benefiting the labour market, according to a report by consultancy prognos.
Hi there! I just returned from summer vacations and this seems to be a good starting point. I will also contrast solph.
TRNSYS (and I guess ReSie) simulate systems. On the other hand, oemof.solph optimises the energy system. So, if you really want to simulate (including hard-wired control strategies), solph is probably not what you want. If you want to look into optimal sizing and optimal control, classical simulation will not directly answer your question. (There are other tools like solph, but you might want something that is classified as MILP or MINLP, and not just linear, so that it can handle non-continuous status variables like on/off without infinitely small part loads.)
For the solph formulation, all your bullet points sound like things I have already seen implemented in one or another way. Details of the implementation often depend on modelling choices, e.g. do you choose volume or temperature as the variable for you storage? (In a linear optimisation, you cannot have both.)
If it’s not too late for you, we can discuss details at our next AUA in two weeks (see oemof calendar). But of course, we can also discuss things asynchronously.
Before you are stuck because of this: The concept is that you do not switch Buses but Flows. To (de-) activate Flows based on storage content, there is the predefined solph.constraints.storage_level_constraint.
@pschoen
Hello Patrik.
Thanks for you input. It is never too late and as said this is my almost private project or initiative to establish a better energy management in our enterprise.
So my primary target for the first step will be to get a halfway working model, to show the potential to my CEOs.
Optimization will be a later task of professionals, I guess. Moreover my programming capabilities are very basic in Python and Java. So I will keep it simple for the beginning.
Probably it is a good idea to work with constraints and fix the temperatures of the storage, which is connected to the charge state of the storage by its capacity. Unfortunately, the stratified storage in oemof allows only 2 layers. If there were more of them possible, one could switch between layers during charging and discharging. However, using several smaller storages should allow to fix this, if I am not wrong.
I guess the same is valid for the stratified model in ReSie. It allows multiple layers, but charging/discharging only at the first and last.
Thanks for the invitation to the public AUA. I will check, if I am available then.
I found your code:
and will have a look, if I can understand and if it is of use for me.
Regards,
Michael
Indeed, this is the way we implement multiple (> 2) layers. There are currently approaches improving the handling:
Introduction of subnetworks in oemof.network, that allow to group multiple (basic) components more intuitively. This way, you can group the multiple instances of GenergicStorage you used to build one with multiple layers, making it transparent that you have one component with sub-components.
Starting with an early prototype of that functionality, we implement MTRESS as a wrapper around oemof.solph, that is a it a more energy-engineer-centred in its design. The goal is that you can directly define the technical components you want, sub-components and buses will be generated automatically. (We are not fully there, yet. The concept already works and is used in house to speed up/ standardise the modelling process of more complex models.)
I don’t think a stratified storage model is a good fit for this use case. These models typically describe tanks filled with a liquid medium that stores the heat. Stratification happens due to minute density differences due to temperature differences and dis-/charging tries not to disturb the stratification.
In contrast the high temperature storage technologies I know of are typically highly insulated boxes with steel plates or concrete slabs inside and air is used as the exchange medium, but the plates/slabs store the heat. The stratification of air does not play an important role here.
A model assuming perfect mixing of the medium inside the tank would perhaps be a better approximation in lieu of a proper model for HT storage. In that case the temperature the storage can deliver or store is directly a proxy for its current load.