-
Notifications
You must be signed in to change notification settings - Fork 19
/
test_chp.py
120 lines (100 loc) · 2.96 KB
/
test_chp.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# -*- coding: utf-8 -*-
"""
Created on Thu Aug 22 15:33:53 2019
@author: patri, pyosch
"""
from vpplib.user_profile import UserProfile
from vpplib.environment import Environment
from vpplib.thermal_energy_storage import ThermalEnergyStorage
from vpplib.combined_heat_and_power import CombinedHeatAndPower
import matplotlib.pyplot as plt
from tqdm import tqdm
figsize = (10, 6)
start = "2015-01-01 00:00:00"
end = "2015-01-10 23:45:00"
year = "2015"
periods = None
time_freq = "15 min"
# Values for user_profile
yearly_thermal_energy_demand = 2500 # kWh
building_type = "DE_HEF33"
t_0 = 40 # °C
# Values for Thermal Storage
target_temperature = 60 # °C
min_temperature = 40 # °C
hysteresis = 5 # °K
mass_of_storage = 500 # kg
cp = 4.2
thermal_energy_loss_per_day = 0.13
# Values for chp
el_power = 4 # kw
th_power = 6 # kW
overall_efficiency = 0.8
ramp_up_time = 1 / 15 # timesteps
ramp_down_time = 1 / 15 # timesteps
min_runtime = 1 # timesteps
min_stop_time = 2 # timesteps
timebase = 15
environment = Environment(
timebase=timebase, start=start, end=end, year=year, time_freq=time_freq
)
user_profile = UserProfile(
identifier=None,
latitude=None,
longitude=None,
thermal_energy_demand_yearly=yearly_thermal_energy_demand,
building_type=building_type,
comfort_factor=None,
t_0=t_0,
)
def test_get_thermal_energy_demand(user_profile):
user_profile.get_thermal_energy_demand()
user_profile.thermal_energy_demand.plot()
plt.show()
test_get_thermal_energy_demand(user_profile)
tes = ThermalEnergyStorage(
environment=environment,
user_profile=user_profile,
unit="kWh",
mass=mass_of_storage,
hysteresis=hysteresis,
target_temperature=target_temperature,
min_temperature=min_temperature,
cp=cp,
thermal_energy_loss_per_day=thermal_energy_loss_per_day,
)
chp = CombinedHeatAndPower(
unit="kW",
identifier="chp1",
environment=environment,
user_profile=user_profile,
el_power=el_power,
th_power=th_power,
overall_efficiency=overall_efficiency,
ramp_up_time=ramp_up_time,
ramp_down_time=ramp_down_time,
min_runtime=min_runtime,
min_stop_time=min_stop_time,
)
for i in tqdm(tes.user_profile.thermal_energy_demand.loc[start:end].index):
tes.operate_storage(i, chp)
# tes.timeseries.plot(figsize=figsize, title="Yearly Temperature of Storage")
# plt.show()
tes.timeseries.iloc[0:960].plot(figsize=figsize,
title="10-Day View of Storagetemperature")
plt.show()
tes.timeseries.iloc[0:96].plot(figsize=figsize,
title="Daily View of Storagetemperature")
plt.show()
# chp.timeseries.el_demand.plot(
# figsize=figsize, title="Yearly Electrical Loadshape"
# )
plt.show()
chp.timeseries.el_demand.iloc[0:960].plot(
figsize=figsize, title="10-Day View of Electrical Generation"
)
plt.show()
chp.timeseries.el_demand.iloc[0:96].plot(
figsize=figsize, title="Daily View of Electrical Generation"
)
plt.show()