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 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.