Skip to content

Ability to add new HVDC lines to Scenario object in Create state #114

@danielolsen

Description

@danielolsen

Currently, the ChangeTable object can be used to scale existing {plants, branches, dclines, demand} via scale_plant_capacity, scale_branch_capacity, scale_dcline_capacity, and scale_demand, and add new energy storage devices via add_storage_capacity. We want the capability to be able to add new HVDC branches, in the same way that we add new storage devices.

For adding new storage devices, we pass a dictionary of {bus: energy storage power capacity, ...}. All other information to define a battery's operation is filled in with default values or ratios, via logic within the Scaler object (although this may change, see #111). I envision the interface to adding HVDC lines to be similar, where the minimal set of information to pass would be each new branch's bidirectional capacity (MW), 'from' bus and 'to' bus, e.g.

new_dclines = [
    {'capacity': 1000, 'from': 867, 'to': 5309},
    {'capacity': 500, 'from': 123, 'to': 4567},
    ...
    ]
scenario.state.builder.change_table.add_dcline(new_dclines)

would result in the dcline DataFrame attribute of the Grid object getting two new rows representing two new DC lines in the network. New lines can be full of zeros except:

  • dcline_id (would be determined automatically by looking at the number of pre-existing DC lines)
  • from_bus_id
  • to_bus_id
  • status (1)
  • Pf: 'capacity' field
  • Pt: 0.98 * 'capacity' field
  • Pmin: -1 * 'capacity' field
  • Pmax: 'capacity' field

As far as I know, the Pf and Pt parameters are only used for storing the results of a powerflow calculation and perhaps as a warm-start for calculating powerflow, so they are included only to be consistent with the rest of the data in dcline.csv.

The implementation within the Scaler (or replacement object) should be substantially more simple than the implementation of the add_storage_capacity, since we only need to add rows to a single pre-existing DataFrame, where for storage we had to modify several different tables.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions