29 lines
840 B
Python
29 lines
840 B
Python
from ..physical.Dumpload import Dumpload
|
|
from datetime import datetime
|
|
|
|
|
|
class WaterBoiler(Dumpload):
|
|
|
|
def __init__(self, which='localhost'):
|
|
super().__init__(which)
|
|
|
|
self.energy_state = 10 # kWh
|
|
self.energy_max = 15
|
|
self.time = datetime.now()
|
|
self.loss = 1 # kW
|
|
|
|
def step_sim(self):
|
|
time_now = datetime.now()
|
|
time_delta = (time_now - self.time).total_seconds()
|
|
power = self.getActivePower().value
|
|
self.energy_state += (power - self.loss)/3600*time_delta
|
|
self.time = time_now
|
|
|
|
def getSOC(self):
|
|
self.step_sim()
|
|
if self.energy_state > self.energy_max:
|
|
self.energy_state = self.energy_max
|
|
elif self.energy_state < 0:
|
|
self.energy_state = 0.0
|
|
return self.energy_state
|