#!/usr/bin/python3
|
|
import collections
|
import functools
|
|
from lib.ArgParser import get_config, get_model_from_config
|
from lib.Controller import simulate, BruteForceController, CostController, ReplayController, ThermostatController
|
from lib.Cost import NegativeCost, NegativeCostExtendedRange
|
from lib.Env import CentralHeatingHistoryEnv
|
|
# ARGS
|
config = get_config(uses_future=True)
|
|
# MODEL
|
model = get_model_from_config(config)
|
|
# PLOT
|
config['plot_fields'] = ['time', 'temp_in_calc', 'temp_out', 'temperature', 'mode_calc']
|
config['future_values'] += config['model_future_values']
|
|
# MAIN
|
plot = collections.OrderedDict()
|
|
for controller_type, controller in (
|
('controler', BruteForceController(model=model, cost_calculator_class=NegativeCost, config=config)),
|
('thermostat', ThermostatController(19.6, 20.4))
|
):
|
env = CentralHeatingHistoryEnv()
|
env.model = model
|
env.config = config
|
env.cost_class = NegativeCostExtendedRange
|
env.reset()
|
|
simulate(env, controller, render=False)
|
|
plot['time'] = env.window.plot['time']
|
plot['temp_out'] = env.window.plot['temp_out']
|
plot['temp_in_' + controller_type] = env.window.plot['temp_in_calc']
|
plot['mode_' + controller_type] = env.window.plot['mode_calc']
|
|
print(plot.keys())
|
env.window.plot = plot
|
|
env.render()
|