示例#1
0
 def __init__(self, temporary, number):
     chp = CHPInternalCombustionEngine(temporary, number)
     heat_pump = HeatPump(temporary)
     elestorage = EleStorage(temporary)
     coldstorage = ColdStorage(temporary)
     absorption_chiller = DoubleEffectAbsorptionChiller(temporary)
     ice = InternalCombustionEngine(number, temporary)
     demand = DemandData()
     time = demand.E_sheetnrows - 1
     cold_stor = 0
     ele_stor = 0
     fuel = []
     ele_bought = []
     ele_ice = []
     cold_absorption_chiller = []
     for t in range(0, time, Parameters.delttime):
         judge_ele = min(demand.E[t] - elestorage.get_E_out_max(ele_stor), ice.nominal)
         judge_cold = chp.get_cold_through_ele(judge_ele)
         if demand.C[t] > coldstorage.get_C_out_max(cold_stor) + judge_cold + heat_pump.nominal:
             self.judge = 0
             break
         else:
             self.judge = 1
             ele_drive = EleDrive(t, temporary, number, ele_stor)
             if ele_drive.ele == 0:
                 cold_drive = ColdDrive(t, temporary, number, cold_stor)
                 cold_stor = cold_drive.cold_stor
                 self.cold = cold_drive.cold
                 self.ele = ice.get_ele_out_through_cold(self.cold)
                 pl = self.ele / ice.nominal
                 ele_stor = elestorage.get_S(ele_stor, self.ele, ele_drive.elestorage_out)
                 fuel.append(ice.get_fuel(pl))
                 ele_bought.append(heat_pump.get_E_in(cold_drive.heat_pump_out))
             else:
                 self.ele = ele_drive.ele
                 pl = self.ele / ice.nominal
                 exhaust_gas = ice.get_exhaust_gas_pl(pl)
                 jacket_water = ice.get_jacket_water_pl(pl)
                 self.cold = absorption_chiller.get_cold_out(exhaust_gas, jacket_water)
                 cold_follow = ColdFollow(t, temporary, cold_stor, self.cold)
                 cold_stor = cold_follow.cold_stor
                 ele_stor = elestorage.get_S(ele_stor, 0, ele_drive.elestorage_out)
                 fuel.append(ice.get_fuel(pl))
                 ele_bought.append(ele_drive.ele_bought + heat_pump.get_E_in(cold_follow.heat_pump_out))
             ele_ice.append(self.ele)
             cold_absorption_chiller.append(self.cold)
             if cold_stor > coldstorage.nominal:
                 cold_stor = coldstorage.nominal
             if ele_stor > elestorage.nominal:
                 ele_stor = elestorage.nominal
     self.fuel = sum(fuel)
     self.ele_bought = sum(ele_bought)
     self.emission_calculate_ice = sum(ele_ice)
     self.emission_calculate_boiler = 0
     self.emission_calculate_absorption_chiller = sum(cold_absorption_chiller)
     self.emission_calculate_grid = self.ele_bought
示例#2
0
def signal_cold(t, temporary, cold_stor, season):  # 储电够,储热够,储冷不够
    chp = CHP(temporary)
    gasturbine = GasTurbine(temporary)
    boiler = Boiler(temporary)
    absorptionchiller = AbsorptionChiller(temporary)
    gasboiler = GasBoiler(temporary)
    heatpump = HeatPump(temporary)
    coldstorage = ColdStorage(temporary)
    demand = DemandData()
    if season == 0:
        demand_ele = demand.cold_E
    elif season == 1:
        demand_ele = demand.heat_E
    else:
        demand_ele = demand.transition_E

    elestorage_ele_out = demand_ele[t]
    heatstorage_heat_out = demand.H[t]
    coldstorage_cold_out = coldstorage.get_C_out_max(cold_stor)
    coldstorage_cold_in = 0
    powergrid_ele_out = 0
    gasboiler_heat_out = 0
    gasboiler_fuel = gasboiler.get_Fuel_in(gasboiler_heat_out)

    if demand.C[t] <= coldstorage_cold_out + chp.C_out_max:
        absorptionchiller_cold_out = demand.C[t] - coldstorage_cold_out
        heatpump_cold_out = 0
    else:
        absorptionchiller_cold_out = chp.C_out_max
        heatpump_cold_out = demand.C[t] - coldstorage_cold_out - absorptionchiller_cold_out
    absorptionchiller_heat_in = absorptionchiller.get_H_in(absorptionchiller_cold_out)
    boiler_heat_out = absorptionchiller_heat_in / Parameters.k
    boiler_heat_out_users = boiler_heat_out * (1 - Parameters.k)
    heatstorage_heat_in = boiler_heat_out_users
    boiler_heat_in = boiler.get_H_in(boiler_heat_out)
    gasturbine_ele_out = boiler_heat_in / chp.heat_ele_ratio
    gasturbine_fuel = gasturbine.get_fuel(gasturbine_ele_out)
    heatpump_ele_in = heatpump.get_E_in(heatpump_cold_out)

    if heatpump_ele_in <= gasturbine_ele_out:
        elestorage_ele_in = gasturbine_ele_out - heatpump_ele_in
        heatpump_powergrid = 0
    else:
        elestorage_ele_in = 0
        heatpump_powergrid = heatpump_ele_in - gasturbine_ele_out

    result = (coldstorage_cold_in, coldstorage_cold_out, heatstorage_heat_in, heatstorage_heat_out,
              elestorage_ele_in, elestorage_ele_out, absorptionchiller_cold_out, boiler_heat_out, gasturbine_ele_out,
              heatpump_cold_out, gasboiler_heat_out, powergrid_ele_out, gasboiler_fuel, gasturbine_fuel,
              heatpump_powergrid)
    return result
示例#3
0
 def __init__(self, temporary, t, cold_stor):
     heat_pump = HeatPump(temporary)
     coldstorage = ColdStorage(temporary)
     demand = DemandData()
     if coldstorage.get_C_out_max(cold_stor) > 0:
         if demand.C[t] <= coldstorage.get_C_out_max(cold_stor):
             coldstorage_cold_out = demand.C[t]
             self.cold_heat_pump = 0
         else:
             coldstorage_cold_out = coldstorage.get_C_out_max(cold_stor)
             self.cold_heat_pump = demand.C[t] - coldstorage_cold_out
         self.cold_stor = coldstorage.get_S(cold_stor, 0,
                                            coldstorage_cold_out)
     else:
         self.cold_heat_pump = demand.C[t]
         self.cold_stor = coldstorage.get_S(cold_stor, 0, 0)
     self.ele_bought_for_heat_pump = heat_pump.get_E_in(self.cold_heat_pump)
示例#4
0
def mode_base_load(t, temporary, cold_stor, heat_stor, ele_stor, season):
    chp = CHP(temporary)
    gasturbine = GasTurbine(temporary)
    gasboiler = GasBoiler(temporary)
    heatpump = HeatPump(temporary)
    elestorage = EleStorage(temporary)
    heatstorage = HeatStorage(temporary)
    coldstorage = ColdStorage(temporary)
    demand = DemandData()
    if season == 0:
        demand_ele = demand.cold_E
    elif season == 1:
        demand_ele = demand.heat_E
    else:
        demand_ele = demand.transition_E

    remainder = t % 24
    if (remainder >= 8) & (remainder <= 19):  # 8:00-20:00
        gasturbine_ele_out = gasturbine.nominal
        gasturbine_fuel = gasturbine.get_fuel(gasturbine_ele_out)
        boiler_heat_out_users = chp.H_out_max
        boiler_heat_out = boiler_heat_out_users / (1 - Parameters.k)
        absorptionchiller_cold_out = chp.C_out_max
        if demand_ele[t] <= gasturbine_ele_out:  # 电量先由chp提供,再由储能提供
            elestorage_ele_in = gasturbine_ele_out - demand_ele[t]
            elestorage_ele_out = 0
            powergrid_ele_out = 0
        elif ((demand_ele[t] > gasturbine_ele_out)
              & (demand_ele[t] <=
                 gasturbine_ele_out + elestorage.get_E_out_max(ele_stor))):
            elestorage_ele_in = 0
            elestorage_ele_out = gasturbine_ele_out + elestorage.get_E_out_max(
                ele_stor) - demand_ele[t]
            powergrid_ele_out = 0
        else:
            elestorage_ele_in = 0
            elestorage_ele_out = elestorage.get_E_out_max(ele_stor)
            powergrid_ele_out = demand_ele[
                t] - gasturbine_ele_out - elestorage_ele_out

        if demand.H[t] <= boiler_heat_out_users:
            heatstorage_heat_in = boiler_heat_out_users - demand.H[t]
            heatstorage_heat_out = 0
            gasboiler_heat_out = 0
        elif ((demand.H[t] > boiler_heat_out_users)
              & (demand.H[t] <= boiler_heat_out_users +
                 heatstorage.get_H_out_max(heat_stor))):
            heatstorage_heat_in = 0
            heatstorage_heat_out = demand.H[t] - boiler_heat_out_users
            gasboiler_heat_out = 0
        else:
            heatstorage_heat_in = 0
            heatstorage_heat_out = heatstorage.get_H_out_max(heat_stor)
            gasboiler_heat_out = demand.H[
                t] - boiler_heat_out_users - heatstorage_heat_out
        gasboiler_fuel = gasboiler.get_Fuel_in(gasboiler_heat_out)

        if demand.C[t] <= absorptionchiller_cold_out:
            coldstorage_cold_in = absorptionchiller_cold_out - demand.C[t]
            coldstorage_cold_out = 0
            heatpump_cold_out = 0
        elif ((demand.C[t] > absorptionchiller_cold_out)
              & (demand.C[t] <= absorptionchiller_cold_out +
                 coldstorage.get_C_out_max(cold_stor))):
            coldstorage_cold_in = 0
            coldstorage_cold_out = demand.C[t] - absorptionchiller_cold_out
            heatpump_cold_out = 0
        else:
            coldstorage_cold_in = 0
            coldstorage_cold_out = coldstorage.get_C_out_max(cold_stor)
            heatpump_cold_out = demand.C[
                t] - absorptionchiller_cold_out - coldstorage_cold_out
        heatpump_powergrid = heatpump.get_E_in(heatpump_cold_out)
    else:  # 20:00-凌晨8:00
        gasturbine_ele_out = 0
        boiler_heat_out = 0
        absorptionchiller_cold_out = 0
        gasturbine_fuel = 0
        elestorage_ele_in = 0
        heatstorage_heat_in = 0
        coldstorage_cold_in = 0

        if demand_ele[t] <= elestorage.get_E_out_max(ele_stor):
            elestorage_ele_out = demand_ele[t]
            powergrid_ele_out = 0
        else:
            elestorage_ele_out = elestorage.get_E_out_max(ele_stor)
            powergrid_ele_out = demand_ele[t] - elestorage_ele_out

        if demand.H[t] <= heatstorage.get_H_out_max(heat_stor):
            heatstorage_heat_out = demand.H[t]
            gasboiler_heat_out = 0
        else:
            heatstorage_heat_out = heatstorage.get_H_out_max(heat_stor)
            gasboiler_heat_out = demand.H[t] - heatstorage_heat_out
        gasboiler_fuel = gasboiler.get_Fuel_in(gasboiler_heat_out)

        if demand.C[t] <= coldstorage.get_C_out_max(cold_stor):
            coldstorage_cold_out = demand.C[t]
            heatpump_cold_out = 0
        else:
            coldstorage_cold_out = coldstorage.get_C_out_max(cold_stor)
            heatpump_cold_out = demand.C[t] - coldstorage_cold_out
        heatpump_powergrid = heatpump.get_E_in(heatpump_cold_out)

    result = (coldstorage_cold_in, coldstorage_cold_out, heatstorage_heat_in,
              heatstorage_heat_out, elestorage_ele_in, elestorage_ele_out,
              absorptionchiller_cold_out, boiler_heat_out, gasturbine_ele_out,
              heatpump_cold_out, gasboiler_heat_out, powergrid_ele_out,
              gasboiler_fuel, gasturbine_fuel, heatpump_powergrid)
    return result
示例#5
0
def signal_heat(t, temporary, cold_stor, heat_stor):  # 储电够,储热不够
    chp = CHP(temporary)
    gasturbine = GasTurbine(temporary)
    boiler = Boiler(temporary)
    absorptionchiller = AbsorptionChiller(temporary)
    gasboiler = GasBoiler(temporary)
    heatpump = HeatPump(temporary)
    heatstorage = HeatStorage(temporary)
    coldstorage = ColdStorage(temporary)
    demand = DemandData()

    elestorage_ele_out = demand.E[t]
    heatstorage_heat_out = heatstorage.get_H_out_max(heat_stor)
    heatstorage_heat_in = 0
    powergrid_ele_out = 0

    if demand.H[t] <= heatstorage_heat_out + chp.H_out_max:
        boiler_heat_out_users = demand.H[t] - heatstorage_heat_out
        gasboiler_heat_out = 0
    else:
        boiler_heat_out_users = chp.H_out_max
        gasboiler_heat_out = demand.H[
            t] - heatstorage_heat_out - boiler_heat_out_users
    boiler_heat_out = boiler_heat_out_users / (1 - Parameters.k)
    boiler_heat_in = boiler.get_H_in(boiler_heat_out)
    gasturbine_ele_out = boiler_heat_in / chp.heat_ele_ratio
    gasturbine_fuel = gasturbine.get_fuel(gasturbine_ele_out)
    absorptionchiller_cold_out = absorptionchiller.get_C_out(boiler_heat_out *
                                                             Parameters.k)
    gasboiler_fuel = gasboiler.get_Fuel_in(gasboiler_heat_out)

    if demand.C[t] <= coldstorage.get_C_out_max(cold_stor):
        coldstorage_cold_out = demand.C[t]
        coldstorage_cold_in = absorptionchiller_cold_out
        heatpump_cold_out = 0
    elif (
        (demand.C[t] > coldstorage.get_C_out_max(cold_stor) &
         (demand.C[t] <=
          coldstorage.get_C_out_max(cold_stor) + absorptionchiller_cold_out))):
        coldstorage_cold_out = coldstorage.get_C_out_max(cold_stor)
        coldstorage_cold_in = coldstorage_cold_out + absorptionchiller_cold_out - demand.C[
            t]
        heatpump_cold_out = 0
    else:
        coldstorage_cold_out = coldstorage.get_C_out_max(cold_stor)
        coldstorage_cold_in = 0
        heatpump_cold_out = demand.C[
            t] - coldstorage_cold_out - absorptionchiller_cold_out
    heatpump_ele_in = heatpump.get_E_in(heatpump_cold_out)

    if heatpump_ele_in <= gasturbine_ele_out:  # 热泵的电首先由chp供电
        heatpump_powergrid = 0
        elestorage_ele_in = gasturbine_ele_out - heatpump_ele_in
    else:
        heatpump_powergrid = heatpump_ele_in - gasturbine_ele_out
        elestorage_ele_in = 0
    result = (coldstorage_cold_in, coldstorage_cold_out, heatstorage_heat_in,
              heatstorage_heat_out, elestorage_ele_in, elestorage_ele_out,
              absorptionchiller_cold_out, boiler_heat_out, gasturbine_ele_out,
              heatpump_cold_out, gasboiler_heat_out, powergrid_ele_out,
              gasboiler_fuel, gasturbine_fuel, heatpump_powergrid)
    return result
示例#6
0
def signal_ele(t, temporary, cold_stor, heat_stor, ele_stor):  # 储电不够
    chp = CHP(temporary)
    gasturbine = GasTurbine(temporary)
    boiler = Boiler(temporary)
    absorptionchiller = AbsorptionChiller(temporary)
    gasboiler = GasBoiler(temporary)
    heatpump = HeatPump(temporary)
    elestorage = EleStorage(temporary)
    heatstorage = HeatStorage(temporary)
    coldstorage = ColdStorage(temporary)
    demand = DemandData()

    elestorage_ele_out = elestorage.get_E_out_max(ele_stor)
    elestorage_ele_in = 0
    if demand.E[t] > elestorage_ele_out + chp.E_out_max:
        powergrid_ele_out = demand.E[t] - elestorage_ele_out - chp.E_out_max
        gasturbine_ele_out = gasturbine.nominal
    else:  # 可由chp系统满足
        gasturbine_ele_out = demand.E[t] - elestorage_ele_out
        powergrid_ele_out = 0
    gasturbine_fuel = gasturbine.get_fuel(gasturbine_ele_out)
    gasturbine_heat_out = gasturbine.get_H_out(gasturbine_ele_out)
    boiler_heat_out = boiler.get_H_out(gasturbine_heat_out)
    boiler_heat_out_users = boiler_heat_out * (1 - Parameters.k)
    absorptionchiller_heat_in = boiler_heat_out * Parameters.k
    absorptionchiller_cold_out = absorptionchiller.get_C_out(
        absorptionchiller_heat_in)

    if demand.H[t] <= heatstorage.get_H_out_max(heat_stor):
        heatstorage_heat_out = demand.H[t]
        heatstorage_heat_in = boiler_heat_out_users
        gasboiler_heat_out = 0
    elif ((demand.H[t] > heatstorage.get_H_out_max(heat_stor))
          & (demand.H[t] <=
             heatstorage.get_H_out_max(heat_stor) + boiler_heat_out_users)):
        heatstorage_heat_out = heatstorage.get_H_out_max(heat_stor)
        heatstorage_heat_in = boiler_heat_out_users + heatstorage_heat_out - demand.H[
            t]
        gasboiler_heat_out = 0
    else:  # 要用燃气锅炉
        heatstorage_heat_out = heatstorage.get_H_out_max(heat_stor)
        heatstorage_heat_in = 0
        gasboiler_heat_out = demand.H[
            t] - heatstorage_heat_out - boiler_heat_out_users
    gasboiler_fuel = gasboiler.get_Fuel_in(gasboiler_heat_out)

    if demand.C[t] <= coldstorage.get_C_out_max(cold_stor):
        coldstorage_cold_out = demand.C[t]
        coldstorage_cold_in = absorptionchiller_cold_out
        heatpump_cold_out = 0
    elif ((demand.C[t] > coldstorage.get_C_out_max(cold_stor)) &
          (demand.C[t] <=
           coldstorage.get_C_out_max(cold_stor) + absorptionchiller_cold_out)):
        coldstorage_cold_out = coldstorage.get_C_out_max(cold_stor)
        coldstorage_cold_in = coldstorage_cold_out + absorptionchiller_cold_out - demand.C[
            t] / Parameters.delttime
        heatpump_cold_out = 0
    else:
        coldstorage_cold_out = coldstorage.get_C_out_max(cold_stor)
        coldstorage_cold_in = 0
        heatpump_cold_out = (demand.C[t] -
                             coldstorage.get_C_out_max(cold_stor) -
                             absorptionchiller_cold_out)
    heatpump_powergrid = heatpump.get_E_in(heatpump_cold_out)  # 此时热泵耗电全部由电网提供
    result = (coldstorage_cold_in, coldstorage_cold_out, heatstorage_heat_in,
              heatstorage_heat_out, elestorage_ele_in, elestorage_ele_out,
              absorptionchiller_cold_out, boiler_heat_out, gasturbine_ele_out,
              heatpump_cold_out, gasboiler_heat_out, powergrid_ele_out,
              gasboiler_fuel, gasturbine_fuel, heatpump_powergrid)
    return result
示例#7
0
def signal_cold(t, temporary, cold_stor, heat_stor, ele_stor):  # 储冷不够

    chp = CHP(temporary)
    gasturbine = GasTurbine(temporary)
    boiler = Boiler(temporary)
    absorptionchiller = AbsorptionChiller(temporary)
    gasboiler = GasBoiler(temporary)
    heatpump = HeatPump(temporary)
    elestorage = EleStorage(temporary)
    heatstorage = HeatStorage(temporary)
    coldstorage = ColdStorage(temporary)
    demand = DemandData()

    coldstorage_cold_out = coldstorage.get_C_out_max(cold_stor)
    coldstorage_cold_in = 0
    if demand.C[t] > (coldstorage.get_C_out_max(cold_stor) + chp.C_out_max):
        # 储冷 + CHP + 热泵满足
        heatpump_cold_out = demand.C[t] - coldstorage.get_C_out_max(
            cold_stor) - chp.C_out_max
        # 热泵产冷
        absorptionchiller_cold_out = chp.C_out_max
    else:  # 储冷+ CHP 满足
        heatpump_cold_out = 0
        absorptionchiller_cold_out = demand.C[t] - coldstorage.get_C_out_max(
            cold_stor)
    heatpump_ele_in = heatpump.get_E_in(heatpump_cold_out)  # 热泵耗电
    absorptionchiller_heat_in = absorptionchiller.get_H_in(
        absorptionchiller_cold_out)
    boiler_heat_out = absorptionchiller_heat_in / Parameters.k
    boiler_heat_out_users = boiler_heat_out * (1 - Parameters.k)
    boiler_heat_in = boiler.get_H_in(boiler_heat_out)
    gasturbine_heat_out = boiler_heat_in
    gasturbine_ele_out = gasturbine_heat_out / chp.heat_ele_ratio
    gasturbine_fuel = gasturbine.get_fuel(gasturbine_ele_out)
    if gasturbine_ele_out >= heatpump_ele_in:
        gasturbine_ele_out_users = gasturbine_ele_out - heatpump_ele_in  # 别忘了
        heatpump_powergrid = 0
    else:
        gasturbine_ele_out_users = 0
        heatpump_powergrid = heatpump_ele_in - gasturbine_ele_out
    if demand.H[t] <= heatstorage.get_H_out_max(heat_stor):  # 储热即可满足
        heatstorage_heat_in = boiler_heat_out_users
        heatstorage_heat_out = demand.H[t]
        gasboiler_heat_out = 0
    elif ((demand.H[t] > heatstorage.get_H_out_max(heat_stor)) &
          (demand.H[t] <=
           boiler_heat_out_users + heatstorage.get_H_out_max(heat_stor))):
        # 储热+ CHP 满足,多余存入储热
        heatstorage_heat_in = boiler_heat_out_users + heatstorage.get_H_out_max(
            heat_stor) - demand.H[t]
        # 储热先供热,CHP产热再存入储热
        heatstorage_heat_out = heatstorage.get_H_out_max(heat_stor)
        gasboiler_heat_out = 0
    else:  # DemandData.H[t] > (boiler_heat_out_users + heatstorage.get_H_out_max(heat_stor)):   # 储热+ CHP + 燃气锅炉 满足
        gasboiler_heat_out = demand.H[
            t] - boiler_heat_out_users - heatstorage.get_H_out_max(heat_stor)
        heatstorage_heat_in = 0
        heatstorage_heat_out = heatstorage.get_H_out_max(heat_stor)
    gasboiler_fuel = gasboiler.get_Fuel_in(gasboiler_heat_out)
    if demand.E[t] <= elestorage.get_E_out_max(ele_stor):  # 储电满足
        elestorage_ele_in = gasturbine_ele_out_users
        elestorage_ele_out = demand.E[t]
        powergrid_ele_out = 0
    elif ((demand.E[t] > elestorage.get_E_out_max(ele_stor)) &
          (demand.E[t] <=
           elestorage.get_E_out_max(ele_stor) + gasturbine_ele_out_users)):
        # 储电 + CHP 满足,多余存入储电
        elestorage_ele_in = elestorage.get_E_out_max(
            ele_stor) + gasturbine_ele_out_users - demand.E[t]
        elestorage_ele_out = elestorage.get_E_out_max(ele_stor)
        powergrid_ele_out = 0
    else:  # 储电+ CHP + 电网
        elestorage_ele_in = 0
        elestorage_ele_out = elestorage.get_E_out_max(ele_stor)
        powergrid_ele_out = (demand.E[t] - elestorage.get_E_out_max(ele_stor) -
                             gasturbine_ele_out_users)
    result = (coldstorage_cold_in, coldstorage_cold_out, heatstorage_heat_in,
              heatstorage_heat_out, elestorage_ele_in, elestorage_ele_out,
              absorptionchiller_cold_out, boiler_heat_out, gasturbine_ele_out,
              heatpump_cold_out, gasboiler_heat_out, powergrid_ele_out,
              gasboiler_fuel, gasturbine_fuel, heatpump_powergrid)  # 15 项
    return result
示例#8
0
 def __init__(self, temporary, number):
     heat_stor = 0
     cold_stor = 0
     ele_stor = 0
     chp = CHPInternalCombustionEngine(temporary, number)
     ice = InternalCombustionEngine(number, temporary)
     absorption_chiller = DoubleEffectAbsorptionChiller(temporary)
     gas_boiler = GasBoiler(temporary)
     heat_pump = HeatPump(temporary)
     heatstorage = HeatStorage(temporary)
     coldstorage = ColdStorage(temporary)
     elestorage = EleStorage(temporary)
     demand = DemandData()
     time = demand.E_sheetnrows - 1
     self.fuel = []
     self.ele_bought = []
     self.ele_ice = []
     self.heat = []
     self.heat_gas_boiler = []
     self.cold_absorption_chiller = []
     self.cold_heat_pump = []
     self.cold_waste = []
     self.heat_waste = []
     self.ele_waste = []
     for t in range(0, time, Parameters.delttime):
         if demand.C[t] > coldstorage.get_C_out_max(
                 cold_stor
         ) + chp.cold_out_max_exhaust_gas + heat_pump.nominal:
             self.judge = 0
         else:
             judge_cold = min(
                 demand.C[t] - coldstorage.get_C_out_max(cold_stor),
                 chp.cold_out_max_exhaust_gas)
             judge_heat = chp.get_heat_water_though_cold(judge_cold)
             if demand.H[t] > heatstorage.get_H_out_max(
                     heat_stor) + judge_heat + gas_boiler.nominal:
                 self.judge = 0
             else:
                 self.judge = 1
         if self.judge == 0:
             break
         else:
             heat_drive = HeatDriveJW(t, temporary, number, heat_stor)
             if heat_drive.heat == 0:
                 cold_drive = ColdDrive(t, temporary, number, cold_stor)
                 if cold_drive.cold == 0:
                     ele_drive = EleDrive(t, temporary, number, ele_stor, 2)
                     ele_stor = ele_drive.ele_stor
                     ele = ele_drive.ele
                     pl = ele / ice.nominal
                     heat = ice.get_jacket_water_pl(pl)
                     cold = ice.get_exhaust_gas_pl(
                         pl) * absorption_chiller.COP_double
                     cold_heat_pump = []
                     cold_stor = coldstorage.get_S(
                         cold_stor, cold, cold_drive.coldstorage_out)
                     heat_stor = heatstorage.get_S(
                         heat_stor, heat, heat_drive.heatstorage_out)
                     self.fuel.append(ice.get_fuel(ele / ice.nominal))
                     self.ele_bought.append(ele_drive.ele_bought)
                 else:
                     cold = cold_drive.cold
                     cold_heat_pump = cold_drive.heat_pump_out
                     cold_stor = cold_drive.cold_stor
                     exhaust_gas = cold_drive.cold / absorption_chiller.COP_double
                     pl = ice.get_pl_through_exhaust_gas(exhaust_gas)
                     ele = pl * ice.nominal
                     heat = ice.get_jacket_water_pl(pl)
                     heat_stor = heatstorage.get_S(
                         heat_stor, heat, heat_drive.heatstorage_out)
                     ele_follow = EleFollow(t, temporary, ele_stor, ele, 2)
                     ele_stor = ele_follow.ele_stor
                     self.fuel.append(ice.get_fuel(pl))
                     self.ele_bought.append(
                         ele_follow.ele_bought +
                         heat_pump.get_E_in(cold_drive.heat_pump_out))
                 gas_boiler_out = 0
             else:
                 heat_stor = heat_drive.heat_stor
                 heat = heat_drive.heat
                 pl = ice.get_pl_through_jacket_water(heat_drive.heat)
                 ele = pl * ice.nominal
                 cold = ice.get_exhaust_gas_pl(
                     pl) * absorption_chiller.COP_double
                 cold_follow = ColdFollow(t, temporary, cold_stor, cold)
                 cold_heat_pump = cold_follow.heat_pump_out
                 cold_stor = cold_follow.cold_stor
                 ele_follow = EleFollow(t, temporary, ele_stor, ele, 2)
                 ele_stor = ele_follow.ele_stor
                 gas_boiler_out = heat_drive.gas_boiler_out
                 self.fuel.append(
                     ice.get_fuel(pl) +
                     gas_boiler.get_Fuel_in(heat_drive.gas_boiler_out))
                 self.ele_bought.append(
                     ele_follow.ele_bought +
                     heat_pump.get_E_in(cold_follow.heat_pump_out))
             self.ele_ice.append(ele)
             self.heat.append(heat)
             self.heat_gas_boiler.append(gas_boiler_out)
             self.cold_absorption_chiller.append(cold)
             self.cold_heat_pump.append(cold_heat_pump)
             if cold_stor > coldstorage.nominal:
                 self.cold_waste.append(cold_stor - coldstorage.nominal)
                 cold_stor = coldstorage.nominal
             else:
                 self.cold_waste.append(0)
             if heat_stor > heatstorage.nominal:
                 self.heat_waste.append(heat_stor - heatstorage.nominal)
                 heat_stor = heatstorage.nominal
             else:
                 self.heat_waste.append(0)
             if ele_stor > elestorage.nominal:
                 self.ele_waste.append(ele_stor - elestorage.nominal)
                 ele_stor = elestorage.nominal
             else:
                 self.ele_waste.append(0)
示例#9
0
 def __init__(self, temporary, number):
     cold_stor = 0
     ele_stor = 0
     chp = CHPInternalCombustionEngine(temporary, number)
     heat_pump = HeatPump(temporary)
     absorption_chiller = DoubleEffectAbsorptionChiller(temporary)
     coldstorage = ColdStorage(temporary)
     elestorage = EleStorage(temporary)
     ice = InternalCombustionEngine(number, temporary)
     demand = DemandData()
     time = demand.E_sheetnrows - 1
     self.ele_bought = []
     self.fuel = []
     self.ele_ice = []
     self.cold_absorption_chiller = []
     self.cold_heat_pump = []
     self.cold_waste = []
     self.ele_waste = []
     for t in range(0, time, Parameters.delttime):
         if demand.C[t] > coldstorage.get_C_out_max(
                 cold_stor) + chp.cold_out_max + heat_pump.nominal:
             self.judge = 0
             break
         else:
             self.judge = 1
             cold_drive = ColdDrive(t, temporary, number, cold_stor)
             if cold_drive.cold == 0:
                 ele_drive = EleDrive(t, temporary, number, ele_stor, 0)
                 ele_stor = ele_drive.ele_stor
                 ele = ele_drive.ele
                 pl = ele / ice.nominal
                 exhaust_gas = ice.get_exhaust_gas_pl(pl)
                 jacket_water = ice.get_jacket_water_pl(pl)
                 cold = absorption_chiller.get_cold_out(
                     exhaust_gas, jacket_water)
                 cold_stor = coldstorage.get_S(cold_stor, cold,
                                               cold_drive.coldstorage_out)
                 self.cold_heat_pump.append(0)
                 self.ele_bought.append(ele_drive.ele_bought)
                 self.fuel.append(ice.get_fuel(ele_drive.ele / ice.nominal))
             else:
                 cold = cold_drive.cold
                 cold_stor = cold_drive.cold_stor
                 ele = ice.get_ele_out_through_cold(cold_drive.cold)
                 ele_follow = EleFollow(t, temporary, ele_stor, ele, 0)
                 ele_stor = ele_follow.ele_stor
                 self.cold_heat_pump.append(cold_drive.heat_pump_out)
                 self.ele_bought.append(
                     heat_pump.get_E_in(cold_drive.heat_pump_out) +
                     ele_follow.ele_bought)
                 self.fuel.append(ice.get_fuel(ele / ice.nominal))
             self.ele_ice.append(ele)
             self.cold_absorption_chiller.append(cold)
             if cold_stor > coldstorage.nominal:
                 self.cold_waste.append(cold_stor - coldstorage.nominal)
                 cold_stor = coldstorage.nominal
             else:
                 self.cold_waste.append(0)
             if ele_stor > elestorage.nominal:
                 self.ele_waste.append(ele_stor - elestorage.nominal)
                 ele_stor = elestorage.nominal
             else:
                 self.ele_waste.append(0)
示例#10
0
    def __init__(self, temporary, number):
        demand = DemandData()
        heatstorage = HeatStorage(temporary)
        coldstorage = ColdStorage(temporary)
        elestorage = EleStorage(temporary)
        gas_boiler = GasBoiler(temporary)
        heat_pump = HeatPump(temporary)
        ice = InternalCombustionEngine(number, temporary)
        chp = CHPInternalCombustionEngine(temporary, number)
        heat_stor = 0
        ele_stor = 0
        cold_stor = 0
        self.fuel = []
        self.ele_bought = []
        self.ele_ice = []
        self.heat_jacket_water = []
        self.heat_gas_boiler = []
        self.cold_absorption_chiller = []
        self.cold_heat_pump = []
        self.cold_waste = []
        self.heat_waste = []
        self.ele_waste = []
        for t in range(7, 23, Parameters.delttime):
            if ((demand.C[t] > chp.cold_out_max_exhaust_gas +
                 coldstorage.get_C_out_max(cold_stor) + heat_pump.nominal)
                    |
                (demand.H[t] >
                 (ice.get_jacket_water_pl(1) +
                  heatstorage.get_H_out_max(heat_stor) + gas_boiler.nominal))):
                self.judge = 0
                break
            else:
                self.judge = 1
                ele = ice.nominal
                heat = ice.get_jacket_water_pl(1)
                cold = chp.cold_out_max_exhaust_gas
                if demand.C[t] <= cold:
                    coldstorage_cold_in = cold - demand.C[t]
                    coldstorage_cold_out = 0
                    cold_heat_pump = 0
                    ele_needed_for_heat_pump = 0
                elif (demand.C[t] >
                      cold) & (demand.C[t] <=
                               cold + coldstorage.get_C_out_max(cold_stor)):
                    coldstorage_cold_out = coldstorage.get_C_out_max(
                        cold_stor) + cold - demand.C[t]
                    coldstorage_cold_in = 0
                    cold_heat_pump = 0
                    ele_needed_for_heat_pump = 0
                else:
                    coldstorage_cold_out = coldstorage.get_C_out_max(cold_stor)
                    coldstorage_cold_in = 0
                    cold_heat_pump = demand.C[t] - coldstorage_cold_out - cold
                    ele_needed_for_heat_pump = heat_pump.get_E_in(
                        cold_heat_pump)
                cold_stor = coldstorage.get_S(cold_stor, coldstorage_cold_in,
                                              coldstorage_cold_out)
                if demand.transition_E <= ele:
                    ele_bought_for_ele = 0
                    if ele_needed_for_heat_pump > 0:
                        if ele - demand.transition_E[
                                t] >= ele_needed_for_heat_pump:
                            elestorage_ele_in = ele - demand.transition_E[
                                t] - ele_needed_for_heat_pump
                            elestorage_ele_out = 0
                            ele_bought_for_heat_pump = 0
                        else:
                            elestorage_ele_in = 0
                            elestorage_ele_out = 0
                            ele_bought_for_heat_pump = ele_needed_for_heat_pump - (
                                ele - demand.transition_E[t])
                    else:
                        ele_bought_for_heat_pump = 0
                        elestorage_ele_out = 0
                        elestorage_ele_in = ele - demand.transition_E[t]
                elif(demand.transition_E[t] > ele) \
                        & (demand.transition_E[t] < ele + elestorage.get_E_out_max(ele_stor)):
                    ele_bought_for_ele = 0
                    elestorage_ele_out = demand.transition_E[t] - ele
                    elestorage_ele_in = 0
                    ele_bought_for_heat_pump = ele_needed_for_heat_pump
                else:
                    ele_bought_for_ele = demand.transition_E[
                        t] - ele - elestorage.get_E_out_max(ele_stor)
                    elestorage_ele_out = elestorage.get_E_out_max(ele_stor)
                    elestorage_ele_in = 0
                    ele_bought_for_heat_pump = ele_needed_for_heat_pump
                ele_stor = elestorage.get_S(ele_stor, elestorage_ele_in,
                                            elestorage_ele_out)
                ele_bought = ele_bought_for_heat_pump + ele_bought_for_ele

                if demand.H[t] <= heat:
                    heatstorage_heat_out = 0
                    heatstorage_heat_in = heat - demand.H[t]
                    heat_gas_boiler = 0
                elif (demand.H[t] >
                      heat) & (demand.H[t] <=
                               heat + heatstorage.get_H_out_max(heat_stor)):
                    heatstorage_heat_out = demand.H[t] - heat
                    heatstorage_heat_in = 0
                    heat_gas_boiler = 0
                else:
                    heatstorage_heat_out = heatstorage.get_H_out_max(heat_stor)
                    heatstorage_heat_in = 0
                    heat_gas_boiler = demand.H[
                        t] - heat - heatstorage.get_H_out_max(heat_stor)
                heat_stor = heatstorage.get_S(heat_stor, heatstorage_heat_in,
                                              heatstorage_heat_out)
                if cold_stor > coldstorage.nominal:
                    self.cold_waste.append(cold_stor - coldstorage.nominal)
                    cold_stor = coldstorage.nominal
                else:
                    self.cold_waste.append(0)
                if heat_stor > heatstorage.nominal:
                    self.heat_waste.append(heat_stor - heatstorage.nominal)
                    heat_stor = heatstorage.nominal
                else:
                    self.heat_waste.append(0)
                if ele_stor > elestorage.nominal:
                    self.ele_waste.append(ele_stor - elestorage.nominal)
                    ele_stor = elestorage.nominal
                else:
                    self.ele_waste.append(0)
                self.ele_ice.append(ele)
                self.heat_jacket_water.append(heat)
                self.cold_absorption_chiller.append(cold)
                self.cold_heat_pump.append(cold_heat_pump)
                self.heat_gas_boiler.append(heat_gas_boiler)
                self.ele_bought.append(ele_bought)
                self.fuel.append(
                    ice.get_fuel(1) + gas_boiler.get_Fuel_in(heat_gas_boiler))
        if self.judge == 1:
            for t in range(23, 24, Parameters.delttime):
                cold_during_shut_down = ColdDuringShutDown(
                    temporary, t, cold_stor)
                heat_during_sut_down = HeatDuringShutDown(
                    temporary, t, heat_stor)
                ele_during_shut_down = EleDuringShutDown(
                    temporary, t, ele_stor, 2)
                cold_stor = cold_during_shut_down.cold_stor
                heat_stor = heat_during_sut_down.heat_stor
                ele_stor = ele_during_shut_down.ele_stor
                self.cold_heat_pump.append(
                    cold_during_shut_down.cold_heat_pump)
                self.heat_gas_boiler.append(
                    heat_during_sut_down.heat_gas_boiler)
                self.fuel.append(heat_during_sut_down.fuel)
                self.ele_bought.append(
                    cold_during_shut_down.ele_bought_for_heat_pump +
                    ele_during_shut_down.ele_bought_for_ele)
            for t in range(0, 7, Parameters.delttime):
                cold_during_shut_down = ColdDuringShutDown(
                    temporary, t, cold_stor)
                heat_during_sut_down = HeatDuringShutDown(
                    temporary, t, heat_stor)
                ele_during_shut_down = EleDuringShutDown(
                    temporary, t, ele_stor, 2)
                cold_stor = cold_during_shut_down.cold_stor
                heat_stor = heat_during_sut_down.heat_stor
                ele_stor = ele_during_shut_down.ele_stor
                self.cold_heat_pump.append(
                    cold_during_shut_down.cold_heat_pump)
                self.heat_gas_boiler.append(
                    heat_during_sut_down.heat_gas_boiler)
                self.fuel.append(heat_during_sut_down.fuel)
                self.ele_bought.append(
                    cold_during_shut_down.ele_bought_for_heat_pump +
                    ele_during_shut_down.ele_bought_for_ele)
示例#11
0
 def __init__(self, temporary, number):
     chp = CHPInternalCombustionEngine(temporary, number)
     heat_pump = HeatPump(temporary)
     elestorage = EleStorage(temporary)
     coldstorage = ColdStorage(temporary)
     ice = InternalCombustionEngine(number, temporary)
     demand = DemandData()
     cold_stor = 0
     ele_stor = 0
     self.fuel = []
     self.ele_bought = []
     self.ele_ice = []
     self.cold_absorption_chiller = []
     self.cold_heat_pump = []
     self.cold_waste = []
     self.ele_waste = []
     for t in range(7, 23, Parameters.delttime):
         ele = ice.nominal
         cold = chp.cold_out_max
         if demand.C[t] > cold + coldstorage.get_C_out_max(
                 cold_stor) + heat_pump.nominal:
             self.judge = 0
             break
         else:
             self.judge = 1
             if demand.C[t] <= cold:
                 cold_stor = coldstorage.get_S(cold_stor,
                                               cold - demand.C[t], 0)
                 cold_heat_pump = 0
                 ele_needed_for_heat_pump = 0
             elif (demand.C[t] >
                   cold) & (demand.C[t] <=
                            (cold + coldstorage.get_C_out_max(cold_stor))):
                 coldstorage_cold_out = coldstorage.get_C_out_max(
                     cold_stor) + cold - demand.C[t]
                 cold_stor = coldstorage.get_S(cold_stor, 0,
                                               coldstorage_cold_out)
                 cold_heat_pump = 0
                 ele_needed_for_heat_pump = 0
             else:
                 coldstorage_cold_out = coldstorage.get_C_out_max(cold_stor)
                 cold_heat_pump = demand.C[t] - coldstorage.get_C_out_max(
                     cold_stor) - cold
                 ele_needed_for_heat_pump = heat_pump.get_E_in(
                     cold_heat_pump)
                 cold_stor = coldstorage.get_S(cold_stor, 0,
                                               coldstorage_cold_out)
             if demand.cold_E[t] <= ele:
                 ele_bought_for_ele = 0
                 if ele_needed_for_heat_pump > 0:
                     if ele - demand.cold_E[t] >= ele_needed_for_heat_pump:
                         elestorage_ele_in = ele - demand.cold_E[
                             t] - ele_needed_for_heat_pump
                         ele_bought_for_heat_pump = 0
                     else:
                         elestorage_ele_in = 0
                         ele_bought_for_heat_pump = ele_needed_for_heat_pump - (
                             ele - demand.cold_E[t])
                 else:
                     elestorage_ele_in = ele - demand.cold_E[t]
                     ele_bought_for_heat_pump = 0
                 ele_stor = elestorage.get_S(ele_stor, elestorage_ele_in, 0)
             elif (demand.cold_E[t] >
                   ele) & (demand.cold_E[t] <=
                           (ele + elestorage.get_E_out_max(ele_stor))):
                 ele_bought_for_ele = 0
                 ele_bought_for_heat_pump = ele_needed_for_heat_pump
                 elestorage_ele_out = ele + elestorage.get_E_out_max(
                     ele_stor) - demand.cold_E[t]
                 ele_stor = elestorage.get_S(ele_stor, 0,
                                             elestorage_ele_out)
             else:
                 ele_bought_for_heat_pump = ele_needed_for_heat_pump
                 ele_bought_for_ele = demand.cold_E[
                     t] - ele - elestorage.get_E_out_max(ele_stor)
                 elestorage_ele_out = elestorage.get_E_out_max(ele_stor)
                 ele_stor = elestorage.get_S(ele_stor, 0,
                                             elestorage_ele_out)
             if cold_stor > coldstorage.nominal:
                 self.cold_waste.append(cold_stor - coldstorage.nominal)
                 cold_stor = coldstorage.nominal
             else:
                 self.cold_waste.append(0)
             if ele_stor > elestorage.nominal:
                 self.ele_waste.append(ele_stor - elestorage.nominal)
                 ele_stor = elestorage.nominal
             else:
                 self.ele_waste.append(0)
             self.ele_ice.append(ele)
             self.cold_absorption_chiller.append(cold)
             self.cold_heat_pump.append(cold_heat_pump)
             self.ele_bought.append(ele_bought_for_heat_pump +
                                    ele_bought_for_ele)
             self.fuel.append(ice.get_fuel(1))
     if self.judge == 1:
         for t in range(23, 24, Parameters.delttime):
             # 把以下cold,ele,heat部分写成class
             cold_during_shut_down = ColdDuringShutDown(
                 temporary, t, cold_stor)
             ele_during_shut_down = EleDuringShutDown(
                 temporary, t, ele_stor, 0)
             cold_stor = cold_during_shut_down.cold_stor
             ele_stor = ele_during_shut_down.ele_stor
             self.ele_ice.append(0)
             self.cold_absorption_chiller.append(0)
             self.cold_heat_pump.append(
                 cold_during_shut_down.cold_heat_pump)
             self.ele_bought.append(
                 ele_during_shut_down.ele_bought_for_ele +
                 cold_during_shut_down.ele_bought_for_heat_pump)
             self.fuel.append(0)
         for t in range(0, 7, Parameters.delttime):
             cold_during_shut_down = ColdDuringShutDown(
                 temporary, t, cold_stor)
             ele_during_shut_down = EleDuringShutDown(
                 temporary, t, ele_stor, 0)
             cold_stor = cold_during_shut_down.cold_stor
             ele_stor = ele_during_shut_down.ele_stor
             self.ele_ice.append(0)
             self.cold_absorption_chiller.append(0)
             self.cold_heat_pump.append(
                 cold_during_shut_down.cold_heat_pump)
             self.ele_bought.append(
                 ele_during_shut_down.ele_bought_for_ele +
                 cold_during_shut_down.ele_bought_for_heat_pump)
             self.fuel.append(0)
示例#12
0
 def __init__(self, temporary, number):
     demand = DemandData()
     heatstorage = HeatStorage(temporary)
     coldstorage = ColdStorage(temporary)
     elestorage = EleStorage(temporary)
     gas_boiler = GasBoiler(temporary)
     heat_pump = HeatPump(temporary)
     ice = InternalCombustionEngine(number, temporary)
     absorption_chiller = DoubleEffectAbsorptionChiller(temporary)
     chp = CHPInternalCombustionEngine(temporary, number)
     time = demand.E_sheetnrows - 1
     heat_stor = 0
     ele_stor = 0
     cold_stor = 0
     self.fuel = []
     self.ele_bought = []
     self.ele_ice = []
     self.heat = []
     self.heat_gas_boiler = []
     self.cold_absorption_chiller = []
     self.cold_heat_pump = []
     self.cold_waste = []
     self.heat_waste = []
     self.ele_waste = []
     for t in range(0, time, Parameters.delttime):
         ele = min(demand.transition_E[t] - elestorage.get_E_out_max(ele_stor), ice.nominal)
         cold_heat = chp.get_cold_and_heat_through_ele(ele)
         judge_cold = cold_heat[0]
         judge_heat = cold_heat[1]
         if ((demand.C[t] > coldstorage.get_C_out_max(cold_stor) + judge_cold + heat_pump.nominal)
                 | (demand.H[t] > heatstorage.get_H_out_max(heat_stor) + judge_heat + gas_boiler.nominal)):
             self.judge = 0
             break
         else:
             self.judge = 1
             ele_drive = EleDrive(t, temporary, number, ele_stor, 2)
             if ele_drive == 0:
                 heat_drive = HeatDriveJW(t, temporary, number, heat_stor)
                 gas_boiler_out = heat_drive.gas_boiler_out
                 if heat_drive == 0:
                     cold_drive = ColdDrive(t, temporary, number, cold_stor)
                     cold = cold_drive.cold
                     exhaust_gas = cold / absorption_chiller.COP_double
                     pl = ice.get_pl_through_exhaust_gas(exhaust_gas)
                     ele = pl * ice.nominal
                     heat = ice.get_jacket_water_pl(pl)
                     cold_stor = cold_drive.cold_stor
                     heat_stor = heatstorage.get_S(heat_stor, heat, heat_drive.heatstorage_out)
                     ele_stor = elestorage.get_S(ele_stor, ele, ele_drive.elestorage_out)
                     self.cold_heat_pump.append(cold_drive.heat_pump_out)
                     self.fuel.append(ice.get_fuel(pl))
                     self.ele_bought.append(heat_pump.get_E_in(cold_drive.heat_pump_out))
                 else:
                     heat = heat_drive.heat
                     pl = ice.get_pl_through_jacket_water(heat)
                     ele = pl * ice.nominal
                     exhaust_gas = ice.get_exhaust_gas_pl(pl)
                     cold = exhaust_gas * absorption_chiller.COP_double
                     cold_follow = ColdFollow(t, temporary, cold_stor, cold)
                     cold_stor = cold_follow.cold_stor
                     heat_stor = heat_drive.heat_stor
                     ele_stor = elestorage.get_S(ele_stor, ele, ele_drive.elestorage_out)
                     self.cold_heat_pump.append(cold_follow.heat_pump_out)
                     self.fuel.append(ice.get_fuel(pl) + gas_boiler.get_Fuel_in(heat_drive.gas_boiler_out))
                     self.ele_bought.append(heat_pump.get_E_in(cold_follow.heat_pump_out))
             else:
                 ele = ele_drive.ele
                 pl = ele / ice.nominal
                 heat = ice.get_jacket_water_pl(pl)
                 cold = ice.get_exhaust_gas_pl(pl) * absorption_chiller.COP_double
                 heat_follow = HeatFollow(t, temporary, heat_stor, heat)
                 cold_follow = ColdFollow(t, temporary, cold_stor, cold)
                 gas_boiler_out = heat_follow.gas_boiler_out
                 cold_stor = cold_follow.cold_stor
                 heat_stor = heat_follow.heat_stor
                 ele_stor = ele_drive.ele_stor
                 self.cold_heat_pump.append(cold_follow.heat_pump_out)
                 self.fuel.append(ice.get_fuel(pl) + gas_boiler.get_Fuel_in(heat_follow.gas_boiler_out))
                 self.ele_bought.append(ele_drive.ele_bought + heat_pump.get_E_in(cold_follow.heat_pump_out))
             self.ele_ice.append(ele)
             self.heat.append(heat)
             self.heat_gas_boiler.append(gas_boiler_out)
             self.cold_absorption_chiller.append(cold)
             if cold_stor > coldstorage.nominal:
                 self.cold_waste.append(cold_stor - coldstorage.nominal)
                 cold_stor = coldstorage.nominal
             else:
                 self.cold_waste.append(0)
             if heat_stor > heatstorage.nominal:
                 self.heat_waste.append(heat_stor - heatstorage.nominal)
                 heat_stor = heatstorage.nominal
             else:
                 self.heat_waste.append(0)
             if ele_stor > elestorage.nominal:
                 self.ele_waste.append(ele_stor - elestorage.nominal)
                 ele_stor = elestorage.nominal
             else:
                 self.ele_waste.append(0)
示例#13
0
 def __init__(self, temporary, number):
     heat_stor = 0
     cold_stor = 0
     ele_stor = 0
     chp = CHPInternalCombustionEngine(temporary, number)
     ice = InternalCombustionEngine(number, temporary)
     boiler = Boiler(temporary)
     absorption_chiller = DoubleEffectAbsorptionChiller(temporary)
     gas_boiler = GasBoiler(temporary)
     heat_pump = HeatPump(temporary)
     heatstorage = HeatStorage(temporary)
     coldstorage = ColdStorage(temporary)
     elestorage = EleStorage(temporary)
     demand = DemandData()
     time = demand.E_sheetnrows - 1
     sum_heat = sum(demand.H)
     sum_cold = sum(demand.C)
     jacket_water_k = sum_cold / (sum_cold + sum_heat)
     fuel = []
     ele_bought = []
     ele_ice = []
     heat_boiler = []
     cold_absorption_chiller = []
     for t in range(0, time, Parameters.delttime):
         if demand.H_steam[t] > chp.heat_steam_out_max + gas_boiler.nominal:
             self.judge = 0
         else:
             judge_heat_steam = min(demand.H_steam[t],
                                    chp.heat_steam_out_max)
             judge_heat = chp.get_heat_through_steam(
                 judge_heat_steam, jacket_water_k)
             judge_cold = chp.get_cold_through_steam(
                 judge_heat_steam, jacket_water_k)
             if ((demand.H[t] + demand.H_steam[t] >
                  heatstorage.get_H_out_max(heat_stor) + judge_heat +
                  chp.heat_steam_out_max + gas_boiler.nominal)
                     | (demand.C[t] > coldstorage.get_C_out_max(cold_stor) +
                        judge_cold + heat_pump.nominal)):
                 self.judge = 0
             else:
                 self.judge = 1
         if self.judge == 0:
             break
         else:
             heat_steam_drive = HeatSteamDrive(t, temporary, number)
             self.heat_steam = heat_steam_drive.steam
             self.gas_boiler_for_steam = heat_steam_drive.gas_boiler_out_for_steam
             exhaust_gas = boiler.get_H_in(self.heat_steam)
             pl = ice.get_pl_through_exhaust_gas(exhaust_gas)
             self.ele = pl * ice.nominal
             jacket_water = ice.get_jacket_water_pl(pl)
             self.heat_for_other = jacket_water * (1 - jacket_water_k)
             if jacket_water * jacket_water_k * absorption_chiller.COP_single >= absorption_chiller.nominal:
                 self.cold = absorption_chiller.nominal
             else:
                 self.cold = jacket_water * jacket_water_k * absorption_chiller.COP_single
             heat_follow = HeatFollow(t, temporary, heat_stor,
                                      self.heat_for_other)
             heat_stor = heat_follow.heat_stor
             self.gas_boiler_for_other = heat_follow.gas_boiler_out
             self.gas_boiler_total = self.gas_boiler_for_steam + self.gas_boiler_for_other
             cold_follow = ColdFollow(t, temporary, cold_stor, self.cold)
             cold_stor = cold_follow.cold_stor
             ele_follow = EleFollow(t, temporary, ele_stor, self.ele)
             ele_stor = ele_follow.ele_stor
             fuel.append(
                 ice.get_fuel(pl) +
                 gas_boiler.get_Fuel_in(self.gas_boiler_total))
             ele_bought.append(
                 ele_follow.ele_bought +
                 heat_pump.get_E_in(cold_follow.heat_pump_out))
         ele_ice.append(self.ele)
         heat_boiler.append(self.heat_steam + self.gas_boiler_total)
         cold_absorption_chiller.append(self.cold)
         if cold_stor > coldstorage.nominal:
             cold_stor = coldstorage.nominal
         if heat_stor > heatstorage.nominal:
             heat_stor = heatstorage.nominal
         if ele_stor > elestorage.nominal:
             ele_stor = elestorage.nominal
     self.fuel = sum(fuel)
     self.ele_bought = sum(ele_bought)
     self.emission_calculate_ice = sum(ele_ice)
     self.emission_calculate_boiler = sum(heat_boiler)
     self.emission_calculate_absorption_chiller = sum(
         cold_absorption_chiller)
     self.emission_calculate_grid = self.ele_bought