Beispiel #1
0
    def __init__(self, temporary):
        gasturbine = GasTurbine(
            temporary)  # 为求H_CHP_out_max 和 C_CHP_out_max调整pl = 1
        boiler = Boiler(temporary)
        absorptionchiller = AbsorptionChiller(temporary)
        self.E_out_max = gasturbine.nominal
        self.heat_ele_ratio = 0.94 * gasturbine.effi_th_nom / gasturbine.effi_ele_nom  # 0.94: 热电比认为可不变.xlsx 文件里F 列
        if gasturbine.get_H_out(Parameters.get_nominal_GasTurbine(
                temporary)) <= boiler.heat_in_max:
            boiler_heat_in = gasturbine.get_H_out(
                Parameters.get_nominal_GasTurbine(temporary))
            # 进入余热锅炉的热量,但设计的结果一定是gasturbine.get_H_out(P.nominal_GasTurbine) >= boiler.heat_in_max #
        else:
            boiler_heat_in = boiler.heat_in_max

        self.H_out_max = boiler.get_H_out(boiler_heat_in) * (1 - Parameters.k)

        if boiler.get_H_out(boiler_heat_in
                            ) * Parameters.k <= absorptionchiller.heat_in_max:
            absorptionchiller_heat_in = boiler.get_H_out(
                boiler_heat_in) * Parameters.k
            # 进入制冷机的热量,但设计的结果一定是 boiler.get_H_out(boiler_heat_in) * P.k >= absorptionchiller.heat_in_max
        else:
            absorptionchiller_heat_in = absorptionchiller.heat_in_max

        self.C_out_max = absorptionchiller.get_C_out(absorptionchiller_heat_in)
Beispiel #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
Beispiel #3
0
def signal_ele(t, temporary, ele_stor):
    chp = CHP(temporary)
    gasturbine = GasTurbine(temporary)
    boiler = Boiler(temporary)
    absorptionchiller = AbsorptionChiller(temporary)
    gasboiler = GasBoiler(temporary)
    elestorage = EleStorage(temporary)
    demand = DemandData()
    heatpump_powergrid = 0
    heatpump_cold_out = 0
    gasboiler_heat_out = 0
    gasboiler_fuel = gasboiler.get_Fuel_in(gasboiler_heat_out)
    coldstorage_cold_out = demand.C[t]
    heatstorage_heat_out = demand.H[t]
    elestorage_ele_in = 0
    elestorage_ele_out = elestorage.get_E_out_max(ele_stor)
    if demand.E[t] > (elestorage.get_E_out_max(ele_stor) +
                      chp.E_out_max) * Parameters.delttime:  # 储电+ CHP + 电网
        powergrid_ele_out = demand.E[t] - elestorage.get_E_out_max(
            ele_stor) - chp.E_out_max
        gasturbine_ele_out = chp.E_out_max  # kWh
    else:  # 储电+ CHP
        gasturbine_ele_out = demand.E[t] - elestorage.get_E_out_max(ele_stor)
        powergrid_ele_out = 0
    gasturbine_heat_out = gasturbine.get_H_out(gasturbine_ele_out)
    gasturbine_fuel = gasturbine.get_fuel(gasturbine_ele_out)
    if gasturbine_heat_out <= boiler.heat_in_max:  # 防止汽轮机输出热量 > 余热锅炉允许进入热量
        boiler_heat_in = gasturbine_heat_out
    else:
        boiler_heat_in = boiler.heat_in_max
    boiler_heat_out = boiler.get_H_out(boiler_heat_in)
    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)
    coldstorage_cold_in = absorptionchiller_cold_out
    heatstorage_heat_in = boiler_heat_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
Beispiel #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
Beispiel #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
Beispiel #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
Beispiel #7
0
def signal_heat(t, temporary, heat_stor, ele_stor):  # 储冷> 冷需求, 储热 < 热需求

    chp = CHP(temporary)
    gasturbine = GasTurbine(temporary)
    boiler = Boiler(temporary)
    absorptionchiller = AbsorptionChiller(temporary)
    gasboiler = GasBoiler(temporary)
    elestorage = EleStorage(temporary)
    heatstorage = HeatStorage(temporary)
    demand = DemandData()
    heatpump_powergrid = 0
    heatpump_cold_out = 0
    coldstorage_cold_out = demand.C[t]
    heatstorage_heat_out = heatstorage.get_H_out_max(heat_stor)
    heatstorage_heat_in = 0
    if demand.H[t] > heatstorage.get_H_out_max(
            heat_stor) + chp.H_out_max:  # 储热+ CHP + 燃气锅炉
        gasboiler_heat_out = demand.H[t] - heatstorage.get_H_out_max(
            heat_stor) - chp.H_out_max
        boiler_heat_out_users = chp.H_out_max
    else:  # 储热+ CHP
        boiler_heat_out_users = demand.H[t] - heatstorage.get_H_out_max(
            heat_stor)
        gasboiler_heat_out = 0
    gasboiler_fuel = gasboiler.get_Fuel_in(gasboiler_heat_out)
    boiler_heat_out = boiler_heat_out_users / (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 boiler_heat_out * Parameters.k <= absorptionchiller.heat_in_max:  # 防止锅炉产热*P.k 大于制冷机允许进入的热量
        absorptionchiller_heat_in = boiler_heat_out * Parameters.k
    else:
        absorptionchiller_heat_in = absorptionchiller.heat_in_max
    absorptionchiller_cold_out = absorptionchiller.get_C_out(
        absorptionchiller_heat_in)
    coldstorage_cold_in = absorptionchiller.get_C_out(
        absorptionchiller_heat_in)
    if demand.E[t] <= elestorage.get_E_out_max(ele_stor):  # 储电
        elestorage_ele_out = demand.E[t]
        elestorage_ele_in = gasturbine_ele_out
        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)):
        # 储电+ CHP
        elestorage_ele_out = elestorage.get_E_out_max(ele_stor)
        elestorage_ele_in = gasturbine_ele_out + elestorage.get_E_out_max(
            ele_stor) - demand.E[t] / Parameters.delttime
        powergrid_ele_out = 0
    else:  # 储电+ CHP + 电网
        elestorage_ele_out = elestorage.get_E_out_max(ele_stor)
        elestorage_ele_in = 0
        powergrid_ele_out = demand.E[t] - elestorage.get_E_out_max(
            ele_stor) - 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
Beispiel #8
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