edisgo.flex_opt.reinforce_measures

Module Contents

Functions

reinforce_mv_lv_station_overloading(edisgo_obj, ...)

Reinforce MV/LV substations due to overloading issues.

reinforce_hv_mv_station_overloading(edisgo_obj, ...)

Reinforce HV/MV station due to overloading issues.

reinforce_mv_lv_station_voltage_issues(edisgo_obj, ...)

Reinforce MV/LV substations due to voltage issues.

reinforce_lines_voltage_issues(edisgo_obj, grid, ...)

Reinforce lines in MV and LV topology due to voltage issues.

reinforce_lines_overloading(edisgo_obj, crit_lines)

Reinforce lines in MV and LV topology due to overloading.

separate_lv_grid(→ tuple[dict[Any, Any], dict[str, int]])

Separate LV grid by adding a new substation and connect half of each feeder.

edisgo.flex_opt.reinforce_measures.reinforce_mv_lv_station_overloading(edisgo_obj, critical_stations)[source]

Reinforce MV/LV substations due to overloading issues.

In a first step a parallel transformer of the same kind is installed. If this is not sufficient as many standard transformers as needed are installed.

Parameters
  • edisgo_obj (EDisGo) –

  • critical_stations (pandas.DataFrame) – Dataframe containing over-loaded MV/LV stations, their missing apparent power at maximal over-loading and the corresponding time step. Index of the dataframe are the representatives of the grids with over-loaded stations. Columns are ‘s_missing’ containing the missing apparent power at maximal over-loading in MVA as float and ‘time_index’ containing the corresponding time step the over-loading occured in as pandas.Timestamp.

Returns

Dictionary with added and removed transformers in the form:

{'added': {'Grid_1_station': ['transformer_reinforced_1',
                              ...,
                              'transformer_reinforced_x'],
           'Grid_10_station': ['transformer_reinforced_10']
           },
 'removed': {'Grid_1_station': ['transformer_1']}
}

Return type

dict

edisgo.flex_opt.reinforce_measures.reinforce_hv_mv_station_overloading(edisgo_obj, critical_stations)[source]

Reinforce HV/MV station due to overloading issues.

In a first step a parallel transformer of the same kind is installed. If this is not sufficient as many standard transformers as needed are installed.

Parameters
  • edisgo_obj (EDisGo) –

  • critical_stations (pandas:pandas.DataFrame<DataFrame>) – Dataframe containing over-loaded HV/MV stations, their missing apparent power at maximal over-loading and the corresponding time step. Index of the dataframe are the representatives of the grids with over-loaded stations. Columns are ‘s_missing’ containing the missing apparent power at maximal over-loading in MVA as float and ‘time_index’ containing the corresponding time step the over-loading occured in as pandas.Timestamp.

Returns

Dictionary with added and removed transformers in the form:

{'added': {'Grid_1_station': ['transformer_reinforced_1',
                              ...,
                              'transformer_reinforced_x'],
           'Grid_10_station': ['transformer_reinforced_10']
           },
 'removed': {'Grid_1_station': ['transformer_1']}
}

Return type

dict

edisgo.flex_opt.reinforce_measures.reinforce_mv_lv_station_voltage_issues(edisgo_obj, critical_stations)[source]

Reinforce MV/LV substations due to voltage issues.

A parallel standard transformer is installed.

Parameters
  • edisgo_obj (EDisGo) –

  • critical_stations (pandas.DataFrame) – Dataframe with maximum deviations from allowed lower or upper voltage limits in p.u. for all MV-LV stations with voltage issues. For more information on dataframe see voltage_issues.

Returns

Dictionary with added transformers in the form:

{'added': {'Grid_1': ['transformer_reinforced_1',
                      ...,
                      'transformer_reinforced_x'],
           'Grid_10': ['transformer_reinforced_10']
           }
}

Return type

dict

edisgo.flex_opt.reinforce_measures.reinforce_lines_voltage_issues(edisgo_obj, grid, crit_nodes)[source]

Reinforce lines in MV and LV topology due to voltage issues.

Parameters
  • edisgo_obj (EDisGo) –

  • grid (MVGrid or LVGrid) –

  • crit_nodes (pandas.DataFrame) – Dataframe with maximum deviations from allowed lower or upper voltage limits in p.u. for all buses in specified grid. For more information on dataframe see voltage_issues.

Returns

Dictionary with name of lines as keys and the corresponding number of lines added as values.

Return type

dict

Notes

Reinforce measures:

1. Disconnect line at 2/3 of the length between station and critical node farthest away from the station and install new standard line 2. Install parallel standard line

In LV grids only lines outside buildings are reinforced; loads and generators in buildings cannot be directly connected to the MV/LV station.

In MV grids lines can only be disconnected at LV stations because they have switch disconnectors needed to operate the lines as half rings (loads in MV would be suitable as well because they have a switch bay (Schaltfeld) but loads in dingo are only connected to MV busbar). If there is no suitable LV station the generator is directly connected to the MV busbar. There is no need for a switch disconnector in that case because generators don’t need to be n-1 safe.

edisgo.flex_opt.reinforce_measures.reinforce_lines_overloading(edisgo_obj, crit_lines)[source]

Reinforce lines in MV and LV topology due to overloading.

Parameters
  • edisgo_obj (EDisGo) –

  • crit_lines (pandas.DataFrame) – Dataframe containing over-loaded lines, their maximum relative over-loading (maximum calculated current over allowed current) and the corresponding time step. Index of the dataframe are the names of the over-loaded lines. Columns are ‘max_rel_overload’ containing the maximum relative over-loading as float, ‘time_index’ containing the corresponding time step the over-loading occured in as pandas.Timestamp, and ‘voltage_level’ specifying the voltage level the line is in (either ‘mv’ or ‘lv’).

Returns

Dictionary with name of lines as keys and the corresponding number of lines added as values.

Return type

dict

Notes

Reinforce measures:

  1. Install parallel line of the same type as the existing line (Only if line is a cable, not an overhead line. Otherwise a standard equipment cable is installed right away.)

  2. Remove old line and install as many parallel standard lines as needed.

edisgo.flex_opt.reinforce_measures.separate_lv_grid(edisgo_obj: edisgo.EDisGo, grid: edisgo.network.grids.LVGrid) tuple[dict[Any, Any], dict[str, int]][source]

Separate LV grid by adding a new substation and connect half of each feeder.

If a feeder cannot be split because it has too few nodes or too few nodes outside a building, each second inept feeder is connected to the new LV grid. The new LV grid is equipped with standard transformers until the nominal apparent power is at least the same as in the original LV grid. The new substation is at the same location as the originating substation. The workflow is as follows:

  • The point at half the length of the feeders is determined.

  • The first node following this point is chosen as the point where the new connection will be made.

  • New MV/LV station is connected to the existing MV/LV station.

  • The determined nodes are disconnected from the previous nodes and connected to the new MV/LV station.

Notes:

  • The name of the new LV grid will be a combination of the originating existing grid ID. E.g. 40000 + X = 40000X

  • The name of the lines in the new LV grid are the same as in the grid where the nodes were removed

  • Except line names, all the data frames are named based on the new grid name

Parameters
Returns

  • dict – Dictionary with name of lines as keys and the corresponding number of lines added as values.

  • dict

    Dictionary with added transformers in the form:

    {'added': {'Grid_1': ['transformer_reinforced_1',
                          ...,
                          'transformer_reinforced_x'],
               'Grid_10': ['transformer_reinforced_10']
               }
    }