PV Deployments¶
This section shows how to generate DISCO PV deployments from raw opendss models.
SourceTree1 PV Deployments¶
The main command going to be used is the one below,
$ disco pv-deployments source-tree-1 --action <action-name> --hierarchy <hierarchy> --placement <placement type> INPUT_PATH
There are several actions here related to PV deployments manipulation, including
transform-loads
: Transform Loads.dss file before conducting PV deployments.redirect-pvshapes
: Redirect PVShape.dss in both substation and feeder Master.dss files.generate-jobs
: Help generatecreate-pv
andcreate-configs
jobs in JSON, i.e., jade config.restore-feeders
: Before and during PV deployments, Loads.dss and Master.dss files were modified, need to restore after that.create-pv
: create PV deployments on feeders based on placement, sample and penetration levels.check-pv
: check if there are PV deployments missing at each placement, sample and penetration level.remove-pv
: delete PV deployments in case there’s something wrong.create-configs
: create PV config files at each sample deployment level.check-configs
: check if there are PV config files missing in deployment directories.remove-configs
: remove PV config files in case there’s something wrong.list-feeders
: list feeder paths given input of region, substation or feeder.
Transform Loads¶
Loads.dss
files need to be transformed before generating PV deployments.
Loads may need to be changed to use suitable center-tap schema.
Temporarily disconnect load shapes. The generation process compiles the OpenDSS circuit. If load shapes are present, OpenDSS has to load the data and that can take significant amounts of time. Load shapes are not needed by the generation process, and so it disables them in the OpenDSS text files. A later step re-enables them.
The command to run this is,
$ disco pv-deployments source-tree-1 -a transform-loads -h <hierarchy> INPUT_PATH
Redirect PVShapes¶
This workflow will generate OpenDSS files with varying counts and sizes of PVSystems. It will
assign load shape profiles to those PVSystems from a pool of profiles. You must define these
profiles in a PVShapes.dss
file and copy that files to all substation and/or feeder
directories.
All Master.dss
need to redirect to PVShapes.dss
. We recommend that you add these lines to
your files. If you do that, you can skip to the next section.
If your directory structure aligns with the source-tree-1
expectations, the disco CLI command
below will add the redirects automatically.
Todo
Make this code handle all cases generically.
Run this command:
$ disco pv-deployments source-tree-1 -a redirect-pvshapes -h <hierarchy> INPUT_PATH
Generate Jobs¶
DISCO provides a command to help generate JADE jobs config files for PV deployments and PV configs, that is,
$ disco pv-deployments source-tree-1 -a generate-jobs -h <hierarchy> INPUT_PATH
The hierarchy options are:
city
region
substation
feeder
We recommand to run this generate-jobs
command with --hierarchy=city
and generate jobs on all
feeders within the city path, if your simulation/analysis jobs run relatively stable, this way can help avoid
the repeated job generation work on regions, substations, or feeders.
For test or debug purpose,it’s good to specify --hierarchy=feeder
for generating config file with one job,
or --hierarchy=substation
with a few jobs.
This command will generate two JADE config files:
create-pv-jobs.json
contains jobs for PV deployments.
create-config-jobs.json
contains jobs for PV configs
And, you can submit the jobs via jade submit-jobs <config_file>
command.
Warning
Since PV configs are based on the result of PV deployments, so you will need to wait PV deployment jobs to complete, before to submit PV config jobs.
PV Deployments¶
Submit Jobs¶
To generate PV deployments, you will need to submit the jobs via JADE, that is,
$ jade submit-jobs <OPTIONS> create-pv-jobs.json
If the jobs pass, then the PV deployments task is done. If you’d like to explore details
about create-pv
action based on your hierarchy and according input path, please check the section below.
Details Exploration¶
Here are some example commands showing how to create, check and remove PV deployments.
Create PV deployments on feeder1 with
--placement random
.
$ disco pv-deployments source-tree-1 -a create-pv -h feeder -p random --pv-upscale <feeder1_path>
Create PV deployments on substation1 with a few feeders.
$ disco pv-deployments source-tree-1 -a create-pv -h substation -p random --pv-upscale <substation1_path>
Create PV deployments on region1 with many feeders in parallel by using JADE.
As each region has a large number of feeders, it is recommended to use JADE to parallize the jobs.
$ disco pv-deployments source-tree-1 -a list-feeders -h region <region1_path>
# Create a <commands.txt> file which contains create-pv commands on feeders as above.
$ jade config create <commands.txt> -c config1.json
$ jade submit-jobs config1.json
If you like to check which PV deployments are missing due to job failures,
$ disco pv-deployments source-tree-1 -a check-pv -h feeder -p random <feeder1_path>
$ disco pv-deployments source-tree-1 -a check-pv -h substation -p random <substation1_path>
$ disco pv-deployments source-tree-1 -a check-pv -h region -p random <region1_path>
It returns the missing samples and penetrations on each feeder. If don’t have --placement
specified,
the result would include placement missing information on each feeder.
If you found some issues with the PV deployments, and like to delete them, here are example commands,
$ disco pv-deployments source-tree-1 -a remove-pv -h feeder -p random <feeder1_path>
$ disco pv-deployments source-tree-1 -a remove-pv -h substation -p random <substation1_path>
$ disco pv-deployments source-tree-1 -a remove-pv -h region -p random <region1_path>
PV Configs¶
Submit Jobs¶
To generate PV configs, you will need to submit the jobs via JADE, that is,
$ jade submit-jobs <OPTIONS> create-config-jobs.json
If the jobs pass, then the PV configs task is done. If you’d like to explore details
about create-configs
action based on your hierarchy and according input path, please check the section below.
Details Exploration¶
After creating PV deployments we need to generate PV config files that define a load shape
profile for each PV system. The config files get created in sample
directories.
The examples below show commands for creating, checking or removing PV config files.
Create PV configs on feeder1 based on PV deployments data.
$ disco pv-deployments source-tree-1 -a create-configs -h feeder <feeder1_path>
Create PV configs on substation1 with a few feeders.
$ disco pv-deployments source-tree-1 -a create-configs -h substation <substation1_path>
Warning
The option -p
or --placement
does not apply to create-configs
action, as after all
pv configs created in each feeder, a sum group file based on customer types would be created
based on the pv configs of the feeder.
Create PV configs on region1 with many feeders in parallel by using JADE.
$ disco pv-deployments source-tree-1 -a list-feeders -h region <region1_path>
# Create a <commands.txt> file which contains create-configs commands on feeders as above.
$ jade config create <commands.txt> -c config2.json
$ jade submit-jobs config2.json
Check if any feeder is missing PV config files.
$ disco pv-deployments source-tree-1 -a check-configs -h feeder -p random <feeder1_path>
$ disco pv-deployments source-tree-1 -a check-configs -h substation -p random <substation1_path>
$ disco pv-deployments source-tree-1 -a check-configs -h region -p random <region1_path>
Remove PV configs if something is wrong.
$ disco pv-deployments source-tree-1 -a remove-configs -h feeder -p random <feeder1_path>
$ disco pv-deployments source-tree-1 -a remove-configs -h substation -p random <substation1_path>
$ disco pv-deployments source-tree-1 -a remove-configs -h region -p random <region1_path>
Restore Feeders¶
As the Loads.dss
in SourceTree1 models needs to be transformed during PV deployments, and the
content of Loads.dss
was modified. However, we backed up the original Loads.dss
before
PV deployments, so we can rename back after that. Simply, the steps look like this.
One more thing, to speed up PV deployments, we commented out LoadShapes.dss
before PV deployments in master
files, we need to revert it back after PV deployments.
Before PV deployments:
Rename raw
Loads.dss
intoOriginal_Loads.dss
.
During PV deployments:
DISCO PV deployment program transformed
Loads.dss
in place.and, stripped
yearly=<pv-profile>
from the load lines.
After PV deployments:
Rename transformed
Loads.dss
file intoPV_Loads.dss
.Rename
Original_Loads.dss
back toLoads.dss
.
Run the command below to rename Loads.dss
file and related,
$ disco pv-deployments source-tree-1 -a restore-feeders -h <hierarchy> INPUT_PATH