Giter VIP home page Giter VIP logo

hplib's People

Contributors

fastrockstar avatar l-kotzur avatar ttjaden avatar xihaui avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

hplib's Issues

implement cooling functionality

Somme heat pumps within the library have the ability for active cooling. In a first step, for air/water heat pumps, we want to

  • filter the raw pdfs for heat pumps with cooling functionality
  • create a database in output folder with relevant data
  • implement and validate a fitting method
  • extend the hplib_database.csv with cooling parameters
  • extend the hplib.simulate() for cooling
  • update documentation.ipynb

Another feature would be to implement passive cooling with brine/water heat pumps

Research paper?

Hi,
have you published any research papers on this work or any paper that use this library for any kind of applications (sizing of PV, BESS, HP, etc...) ?

Thank you for your great job.
Bye!

Error in "documentation.ipynb" - Section 6.4.2 Cooling

Hello,

I was following the "documentation.ipynb" notebook, and everything was going smoothly until I reached Section 6.4.2 titled "Cooling" (under the "Validation" section). It seems the required output files were not created. I've gone through "hplib_database.py", and it appears that none of the functions are used to create the "database_cooling.csv" file which is used in functions related to cooling section.

Could someone assist in this? Or perhaps provide guidance in case I'm missing something?

Many thanks.

Open data license and FAIR metadata for hplib_database.csv

Hi @ttjaden,
great work to free the hp data and make it available for all kinds of modelling.
As an expert on open data licenses I would like to help to improve on the data publication.
At the moment, the resulting data is part of the repository and thus licensed under the MIT license.
While this is an excellent choice for the open-source software, it is not suitable for the resulting (open) data.

If you want to go deep into the open data licenses I can recommend this tutorial:

As a tldr, I would recommend two license options:

  1. CC-BY-4.0 a well known and standard open data license. Users only need to attribute correctly.
  2. ODbL-1.0 an OSM-like copyleft license. When people use and extend the data, they need to share the improvements. Downside: it can prevent people from using it.

My personal view would be option 1 for this data set, because the list has been generated by a script, not a manual collection and extraction of the pdf data (correct me if I am wrong).

In addition I suggest to create a standardised metadata string that contains all necessary information in machine and human readable formats. The OEMetadata was developed for this purpose:

I would be happy to assist you in creating the string, review and publish it.

Enquire about two Abbreviations

Hi! Thanks for this valuable work. May I ask one easy question?
What is the
"Input temperature in °C at primary side of the heat pump"
and
"Output temperature in °C at secondary side of the heat pump"

I am trying to link this model with my ground source heat pump model, but too many heat exchangers and temperatures, so sorry I get lost for these two temperatures.

Thank you~

Add data-files on pypi

Currently with Github-Actions hplib-database.csv will not be moved to PyPI and are not pip installable.

Check consistency of data source

For example the heatpump "CTC EcoAir 510M 1x230V" seems like it has a typing mistake in setpoint -7/52.
Possible: Check if the COP of Air/Water heat pump is constantly declining with higher delta T.

Define sub-categories for generic heat pump models

By now, the generic version of each heat pump type (air/water, water/water, brine/water) represents an average model, beacause their parameters are the average of all available heat pump models.

For practical research question,

  • 3 generic sub-categories should be created
  • or a function the create the generic model on the user side.

The idea for the sub-categories could be:

  • low efficiency (parameters for 20% of the worst real heat pump models)
  • average effciency (parameters for the real heat pump models between low and high efficiency)
  • high efficiency (parameters for 20% of the best real heat pump models)

Improve code health

First of all let me say that this is a super important problem space and the library looks very useful. Thanks for writing it. I'm happy to have come across it and see it being actively developed. (And I have some cool ideas on what it could be used for..)

Anyway, I was trying to run the simulation snippet from 4.B Simulate a time series and ran into the following error:

File ~/Code/hplib/hplib/hplib.py:607, in HeatPump.simulate(self, t_in_primary, t_in_secondary, t_amb, mode, p_th_min)
    605             cop = p_th/p_el                           
--> 606 if cop <= 1:
    607     cop = 1
    608     p_el = self.p_th_ref

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

I believe the code there should not be run if cop is an np.ndarray as that is already handled above.

I then looked a bit more at the code and would like to offer a few observations and make some suggestions for improving it:

It appears that the module hplib has both (1) a top-level simulate() method as well as (2) HeatPump.simulate() which appear to be quite similar but have some (I believe) undesired differences.

  • None of the implementation code is shared. Are both methods really needed? If so can one just call the other?
  • It would be good to have a unit test. E.g. that runs the examples from the Notebook.
  • The docstring of (2) wrongly mentions parameters. That isn't actually a supported argument.
  • Pytypes for t_in_primary and t_in_secondary are any for (1) but float for (2). I believe the correct type should be Union[float, numpy.ndarray].
  • Minor: mode being an int makes the methods harder to use and the code harder to read. I believe an enum should be used here.

Process new heat pump models

In the meantime, a lot of new models were added to the heatpump keymark.

  • download and process new keymark pdf files
  • define regular dates for updating the database
  • write a short how-to on updating the database

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.