The library aims to provide a simple way to create individual consumer loads, generation.
Project description
Welcome to consmodel library 👋
!!! Warning: the library is active and the functionalities are being added on weekly basis, some functionalities will also change !!!
The library aims to provide a simple way to create individual consumer loads and generation. The main idea of the library is to be able to easily create consumption or generation power consumption profiles.
The library is a centralised modelling tool that implements the following consumption/generation consumptions:
- pure consumption model,
- solar plant model,
- heat pump model,
- electric vehicle modelling,
- possibly other models...
The main idea of the library is to be able to easily create consumption or generation power consumption profiles.
The schema of the library is as follows:
🏠 Homepage
Install
pip3 install consmodel
Usage
PV model
from consmodel import PV
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# create a simple PV model
pv = PV(lat=46.155768,
lon=14.304951,
alt=400,
index=1,
name="test",
freq="15min",)
timeseries = pv.simulate(pv_size=14.,
year=2022,
model="ineichen",
consider_cloud_cover=True)
# plot the results
timeseries.plot()
plt.show()
BS model
from consmodel import BS
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# create a simple PV model
test_consumption = [0.,-3.,-2.,8.,7.,6.,7.,8.,5.,4.,-2.]
test_consumption_df = pd.DataFrame({"p": test_consumption},
index=pd.date_range("2020-01-01 06:00:00",
periods=11,
freq="15min"))
bs = BS(lat=46.155768,
lon=14.304951,
alt=400,
index=1,
st_type="10kWh_5kW",
freq="15min",)
timeseries = batt.simulate(control_type="installed_power",
p_kw=test_consumption_df)
# plot the results
timeseries.plot()
plt.show()
Consumer model
from consmodel import ConsumerModel
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
cons = ConsumerModel(lat=46.155768,
lon=14.304951,
alt=400,
index=1,
name="ConsumerModel_default",
tz="Europe/Ljubljana",
use_utc=False,
freq="15min",)
timeseries = cons.simulate(has_generic_consumption=False,
has_pv=True,
has_heatpump=True,
has_ev=False,
has_battery=True,
start=pd.to_datetime("2020-01-01 06:15:00"),
end=pd.to_datetime("2020-01-01 06:00:00")+pd.Timedelta("1d"),
pv_size=14.,
wanted_temp=20.,
hp_st_type="Outdoor Air / Water (regulated)",
bs_st_type="10kWh_5kW",
control_type="production_saving")
timeseries.plot()
plt.show()
Author
👤 Blaž Dobravec
- Website: https://github.com/blazdob
- Github: @blazdob
- LinkedIn: @https://www.linkedin.com/in/blaz-dobravec/
Colaborated:
- Matej Oblak: @MatejGitOblak
- Bine Flajnik: @Bine-f
🤝 Contributing
Contributions, issues and feature requests are welcome!
Feel free to check issues page.
Show your support
Give a ⭐️ if this project helped you!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file consmodel-0.1.4.tar.gz
.
File metadata
- Download URL: consmodel-0.1.4.tar.gz
- Upload date:
- Size: 19.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c15df6153657ddeb1e0abfa97e3479dccbb68ce0b2842a396a584d3bfef08a9 |
|
MD5 | b16263f2fe5266183d688ffb09a7cabc |
|
BLAKE2b-256 | 1141b9988bcf07a91888d9f67fc3ff9bfe9a1eebe67d4034a476d9fba107da8c |