def calc_cold_storage_discharge_HEX(m_hot_0, Q_hot_0, T_cold_in, T_hot_in, T_hot_out): """ :param mcp_hot: secondary side :param Q_hot: required heat from the primary side :param T_cold_in: :param T_hot_in: :param T_hot_out: :return: """ # nominal conditions on the tank side mcp_hot_0 = m_hot_0 * HEAT_CAPACITY_OF_WATER_JPERKGK mcp_cold_0 = mcp_hot_0 * (T_hot_in - T_hot_out) / ((T_hot_in - T_cold_in) * TANK_HEX_EFFECTIVENESS) T_cold_out = Q_hot_0 / mcp_cold_0 + T_cold_in # todo: check if the number is realistic dTm_0 = calc_dTm_HEX(T_hot_in, T_hot_out, T_cold_in, T_cold_out) # Area heat exchange and UA_heating Area_HEX_m2, UA_WperK = calc_area_HEX(Q_hot_0, dTm_0, U_COOL) return Area_HEX_m2, UA_WperK
def calc_cold_storage_charge_HEX(mcp_cold_0, Q_cold_0, T_hot_in, T_cold_in, T_cold_out): ''' :param mcp_cold_0: nominal capacity mass flow rate primary side :param Q_cold_0: nominal cooling load :param T_hot_in: nominal in temperature of secondary side :param T_cold_in: nominal in temperature of primary side :param T_cold_out: nominal out temperature of primary side :return Area_HEX_m2: Heat exchanger area in [m2] :return UA_WperK: UA_WperK [W/K] ''' # nominal conditions on the tank side mcp_hot_0 = mcp_cold_0 * (T_cold_out - T_cold_in) / ((T_hot_in - T_cold_in) * TANK_HEX_EFFECTIVENESS) T_hot_out = T_hot_in - Q_cold_0 / mcp_hot_0 # todo: check if the number is realistic dTm_0 = calc_dTm_HEX(T_hot_in, T_hot_out, T_cold_in, T_cold_out) # Area heat exchange and UA_WperK Area_HEX_m2, UA_WperK = calc_area_HEX(Q_cold_0, dTm_0, U_HEAT) return Area_HEX_m2, UA_WperK