-
Notifications
You must be signed in to change notification settings - Fork 1
/
reset.py
106 lines (90 loc) · 3.28 KB
/
reset.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
# -*- coding: utf-8 -*-
"""
This module implements the REST API used to interact with the test case.
The API is implemented using the ``flask`` package.
"""
# GENERAL PACKAGE IMPORT
# ----------------------
from testcase import EmulatorSetup
import pandas as pd
import time
import csv
import os
import pandas as pd
import numpy as np
import json
import Resets.resets as reset
def main(config):
for numiter in range(1):
config['name'] =str(numiter)
case = EmulatorSetup(config)
# Set simulation step
case.step = config['step']
measurements = case.get_measurements()
print(measurements)
with open("../run_" + config['location'] + ".config") as f:
config_reset = json.load(f)
resets = reset.setup_resets(config_reset, measurements)
u = {}
for cls in resets:
u[cls.control] = cls.default_setpoint
# Initialize u
# Simulation Loop
y = False
occ = 0
oat = 21.11
for i in range(int((int(config['end_time'])-int(config['start_time']))/int(config['step']))):
# Adjust u based on your ML method
if not i % 5 and y and resets and numiter == 0:
for cls in resets:
cls.update(y)
r = cls.check_requests(y, i)
cls.reset(r)
u[cls.control] = cls.current_sp
# print("Control: {}".format(u))
y = case.advance(u)
# print(case.get_results()['y']['PCWPum'])
y = pd.DataFrame.from_dict(case.get_results()['y'])
y.to_csv('result_{}_{}_{}.csv'.format(config['name'], numiter, config['location']))
u = pd.DataFrame.from_dict(case.get_results()['u'])
u.to_csv('input_{}_{}_{}.csv'.format(config['name'], numiter, config['location']))
if __name__ == '__main__':
for a in range(6):
if (a == 0):
location="atlanta"
elif (a==1):
location="El_Paso"
elif (a==2):
location="newyork"
elif (a==3):
location="sandiego"
elif (a==4):
location="seattle"
else :
location="tampa"
fmuname = "../LargeOffice_"+location+".fmu"
config={
'fmupath':fmuname,
'location':location,
'start_time':0*86400,
'end_time':365*86400,
'step': 60,
'default':{
'SupCHWTSet':6.7,
'SupTSetBot':12.88,
'SupTSetMid':12.88,
'SupTSetTop':12.88
}
}
with open('run.config', 'r') as f:
data = f.readlines()
data[2] = ' "dat1": "../configs/'+location+'/floor1_dat_reset_default.config",\n'
data[3] = ' "dat2": "../configs/'+location+'/floor2_dat_reset_default.config",\n'
data[4] = ' "dat3": "../configs/'+location+'/floor3_dat_reset_default.config",\n'
data[5] = ' "chws": "../configs/'+location+'/chw_reset_default.config"\n'
with open('run_'+location+'.config', 'w') as f:
f.writelines(data)
os.mkdir('reset_'+location)
os.chdir('reset_'+location)
main(config)
os.chdir('../')