NREL / disco

DISCO
BSD 3-Clause "New" or "Revised" License
7 stars 5 forks source link

Add Time-series analysis capability to Upgrades #165

Open ann-sherin opened 1 year ago

ann-sherin commented 1 year ago
gayukrishna commented 1 year ago

One small GEMINI region p13u (has 32 substations and multiple feeders) takes anywhere from 20-30 mins to load. Need to verify if Kwami's loading method is comparatively faster.

bpalmintier commented 1 year ago

I'm concerned about this being GEMINI-specific since we also need this type of feature in LA100 (very soon) in other projects down the road. Can we make this code make sense for DISCO use within the DISCO repo and then if needed have any GEMINI-specific code in the GEMINI repo.

I definitely want to avoid project-specific dead end branches.

daniel-thom commented 1 year ago

@bpalmintier Our plan is make the time point selection code as generic as possible and put it in disco. There will likely need to be a gemini-specific script that converts its directory tree of OpenDSS models to use the down-selected time points. That script will likely be tied to the SMART-DS directory layout.

bpalmintier commented 1 year ago

@daniel-thom: Sounds reasonable glad that the time point selection and (assumedly) corresponding upgrade code generic. Seems like that could then be part of the main-line DISCO development code. With this approach, it seems that the gemini-specific (or more generally project-specific) scripts are to be expected since DISCO has a relatively fixed directory structure.

My thinking is that such codes (and equally important the code to shift back from DISCO directory structure to that used on the other project) should either live best in those project's own code repositories so that DISCO remains clean (particularly for somewhat one-off, project-specific connections) or become more full features of DISCO to support longer-lived directory mapping for some form of standardized structure. (if we ever develop one).

ann-sherin commented 1 year ago

Workflow

  1. If user wants a new circuit: Run powerflow test: Switch to snapshot mode with rated values, run powerflow, save voltages, currents, powers at every circuit element. Use OpenDSS commands to do this: "Export Powers", "Voltages", "Currents", "Capacity", "Loads."

  2. Timepoint selection algorithm runs

    • identifies timepoints,
    • exports metadata file with {2022_08_12: "MAX_LOAD", "index_1"}
    • If user wants a new circuit: Calls Save Circuit Dir and adds a Solve command to the Master.dss.
    • there's also a flag where the user provides a metadata file, and chooses not to use timepoint selection, but only call Save Circuit Dir.
  3. If Save Circuit Dir was called, rerun powerflow on new circuit and export values and compare. Text compare should be exact.

  4. The new directory will now contain DSS files that point to reduced (smaller size) load shape arrays.

  5. Upgrades timeseries will just need the path to the new DSS file and metadata file.

Software Modules

Time-point selection script

Inputs:

Outputs:

Load shape data down-selection code

Pre-conditions:

Inputs:

Outputs:

Upgrades code

Inputs: