t_set_heating = np.zeros(timesteps)  # in Kelvin
t_set_cooling = np.zeros(timesteps) + 600  # in Kelvin

heater_limit = np.zeros((timesteps, 3)) + 1e10
cooler_limit = np.zeros((timesteps, 3)) - 1e10

# Calculate indoor air temperature
T_air, Q_hc, Q_iw, Q_ow = low_order_VDI.reducedOrderModelVDI(
    houseData,
    weatherTemperature,
    solarRad_in,
    equalAirTemp,
    alphaRad,
    ventRate,
    Q_ig,
    source_igRad,
    krad,
    t_set_heating,
    t_set_cooling,
    heater_limit,
    cooler_limit,
    heater_order=np.array([1, 2, 3]),
    cooler_order=np.array([1, 2, 3]),
    dt=int(3600 / times_per_hour))

# Compute averaged results
T_air_c = T_air - 273.15
T_air_mean = np.array([
    np.mean(T_air_c[i * times_per_hour:(i + 1) * times_per_hour])
    for i in range(24 * 60)
])
# Load constant house parameters
houseData = tc.get_house_data(case=3)

krad = 1

# Define set points (prevent heating or cooling!)
t_set_heating = np.zeros(timesteps)        # in Kelvin
t_set_cooling = np.zeros(timesteps) + 600  # in Kelvin

heater_limit = np.zeros((timesteps,3)) + 1e10
cooler_limit = np.zeros((timesteps,3)) - 1e10

# Calculate indoor air temperature
T_air, Q_hc, Q_iw, Q_ow = low_order_VDI.reducedOrderModelVDI(houseData, weatherTemperature, solarRad_in,
                                   equalAirTemp, alphaRad, ventRate, Q_ig, source_igRad, krad,
                                   t_set_heating, t_set_cooling, heater_limit, cooler_limit,
                                   heater_order=np.array([1,2,3]), cooler_order=np.array([1,2,3]),
                                   dt=int(3600/times_per_hour))

# Compute averaged results
T_air_c = T_air - 273.15
T_air_mean = np.array([np.mean(T_air_c[i*times_per_hour:(i+1)*times_per_hour]) for i in range(24*60)])

T_air_1 = T_air_mean[0:24]
T_air_10 = T_air_mean[216:240]
T_air_60 = T_air_mean[1416:1440]

# Load reference results    
(T_air_ref_1, T_air_ref_10, T_air_ref_60) = tc.load_res("inputs/case03_res.csv")
T_air_ref_1 = T_air_ref_1[:,0]
T_air_ref_10 = T_air_ref_10[:,0]