Understanding used units + Interpretation objective function value

Dear oemof-community,
I’m considering using oemof.solph/oemof.thermal within my masterthesis, which is in short is about a cost analysis of heat networks in rural areas to provide single-family houses with renewable energy based heat.
When understanding the online published code of the examples, I came across questions that I couldn’t answer myself with the corresponding publications/API documentation. As they are very basic and therefore necessary for my further work, I would be very thankful if someone could give me feedback on them. Thank you in advance!

  1. Regarding the used units and the nominal_value when using solph.Investment:
    Taking flat_plate_collector_investment.py as an example: I understand that “investment” in the “collector_heat”-object is indicating that the “nominal_value” is to be optimized. I am curious about the unit of “nominal value”. From what I understood, each hour the “nominal_value” gets multiplied by the “collectors_heat” ([MW/m2] or [MWh/m2]? “nutzbare Strahlung”?) and then represents the heat that can be used to meet the demand [MW]. If this product is higher than the heatdemand in that hour, the heat can flow into the heat-storage (for later use) or into the excess_heat object (rendered unusable).
    My question is: am I correct with this idea on how the model works as well as the units? Evaluating the results is a bit challenging for me right now because I’m not 100% sure about the used units. Is the unit of the hourly heatdemand in the provided heat_demand.csv file in [MW] or [W]? Printing the following code in flat_plate_collector_investment.py, returns the value “1081.892”.
    results[storage, None][‘scalars’][‘invest’]
    I assume that number is the capacity that the thermal-storage has in the cost-optimal equilibrium? It should be the largest filling state over time?
    In contrast, the following should give back the nominal value of the collector – is that correct in your opinion?
    Printing this statement provides 24.491 as an answer. Multiplying this number by the hourly collector_heat provides exactly the value for the ‘solar’-bus [MW?] that is absorbed to be further transformed in the ‘collector’. Is the nominal_value in case of the heat_collector object having the value [m2] (because [MW]/[MW/m2]=[m2])?

  2. Regarding the Optimization policy and the objective function value:
    In the terminal an objective of 57492,562 is provided (“Zielfunktionswert?”). I guess that represents the yearly costs considering the investment as well as variable costs for providing the heat? So the unit of this value should be [Euro/year] - am I right with interpreting the number like this? If not, can you give me a hint where I could get the costs of the investment into- and the operation of the energysystem that is created to meet the heat demand?
    Regarding the storage (same for the collector) I’m unsure about ep_costs = costs_storage . From what I understood, " costs_storage = economics.annuity(20, 20, 0.06)" is a value , representing the costs that each year need to be payed for building one “unit” of the storage, so that after 20 years it is payed? Am I right that this is the investment cost [Euro] for “one unit” of storage (in this case 1 MWh)? Regarding the collector that would result in [Euro/m2], because I assume the unit of the nominal_value of the collector is [m2] – as elaborated above.

  3. Recommendations for accelerating the understanding of oemof.solph/thermal
    Finally I want to ask, if you have any suggestions how to improve the understanding of the model. I’m studying my way through “readthedocs”, the dissertation of Uwe Krien as well as the online forum and the code itself of course. Still if you have any suggestions for me where basic questions like those I’m posing you know, might be answered – I would be really thankful.
    Thanks in advance for considering my questions and concerns – I know my questions are still quite basic as I’m currently just at the beginning to find my way through oemof. Im looking forward to working with oemof.solph/oemof.thermal and also contribute to the further development of the model with my work.

Kind regards


Text and images licensed under CC BY 4.0Data licensed under CC0 1.0Code licensed under MITSite terms of serviceOpenmod mailing listOpenmod wiki. Openmod YouTube.