def ramp_limits(network):
    """ Add ramping constraints to thermal power plants.

    Parameters
    ----------
    network : :class:`pypsa.Network
        Overall container of PyPSA

    Returns
    -------
    
    """
    carrier = ['coal', 'biomass', 'gas', 'oil', 'waste', 'lignite',
                       'uranium', 'geothermal']
    data = {'start_up_cost':[77, 57, 42, 57, 57, 77, 50, 57], #€/MW
            'start_up_fuel':[4.3, 2.8, 1.45, 2.8, 2.8, 4.3, 16.7, 2.8], #MWh/MW
            'min_up_time':[5, 2, 3, 2, 2, 5, 12, 2], 
            'min_down_time':[7, 2, 2, 2, 2, 7, 17, 2], 
# =============================================================================
#             'ramp_limit_start_up':[0.4, 0.4, 0.4, 0.4, 0.4, 0.6, 0.5, 0.4], 
#             'ramp_limit_shut_down':[0.4, 0.4, 0.4, 0.4, 0.4, 0.6, 0.5, 0.4] 
# =============================================================================
            'p_min_pu':[0.33, 0.38, 0.4, 0.38, 0.38, 0.5, 0.45, 0.38]
            }
    df = pd.DataFrame(data, index=carrier)
    fuel_costs = network.generators.marginal_cost.groupby(
            network.generators.carrier).mean()[carrier]
    df['start_up_fuel'] = df['start_up_fuel'] * fuel_costs
    df['start_up_cost'] = df['start_up_cost'] + df['start_up_fuel']
    df.drop('start_up_fuel', axis=1, inplace=True)
    for tech in df.index:
        for limit in df.columns:
            network.generators.loc[network.generators.carrier == tech, 
                                   limit] = df.loc[tech, limit]
    network.generators.start_up_cost = network.generators.start_up_cost\
                                        *network.generators.p_nom
    network.generators.committable = True
def ramp_limits ( network ) : carrier = [ 'coal' , 'biomass' , 'gas' , 'oil' , 'waste' , 'lignite' , 'uranium' , 'geothermal' ] data = { 'start_up_cost' : [ 77 , 57 , 42 , 57 , 57 , 77 , 50 , 57 ] , 'start_up_fuel' : [ 4.3 , 2.8 , 1.45 , 2.8 , 2.8 , 4.3 , 16.7 , 2.8 ] , 'min_up_time' : [ 5 , 2 , 3 , 2 , 2 , 5 , 12 , 2 ] , 'min_down_time' : [ 7 , 2 , 2 , 2 , 2 , 7 , 17 , 2 ] , 'p_min_pu' : [ 0.33 , 0.38 , 0.4 , 0.38 , 0.38 , 0.5 , 0.45 , 0.38 ] } df = pd . DataFrame ( data , index = carrier ) fuel_costs = network . generators . marginal_cost . groupby ( network . generators . carrier ) . mean ( ) [ carrier ] df [ 'start_up_fuel' ] = df [ 'start_up_fuel' ] * fuel_costs df [ 'start_up_cost' ] = df [ 'start_up_cost' ] + df [ 'start_up_fuel' ] df . drop ( 'start_up_fuel' , axis = 1 , inplace = True ) for tech in df . index : for limit in df . columns : network . generators . loc [ network . generators . carrier == tech , limit ] = df . loc [ tech , limit ] network . generators . start_up_cost = network . generators . start_up_cost * network . generators . p_nom network . generators . committable = True
Add ramping constraints to thermal power plants.

    Parameters
    ----------
    network : :class:`pypsa.Network
        Overall container of PyPSA

    Returns
    -------