Skip to content

Commit

Permalink
Trying to learn how to do timeseries with epri SecondaryTestCircuit
Browse files Browse the repository at this point in the history
  • Loading branch information
jenny-nyx committed Jul 16, 2024
1 parent 5f82a63 commit 28a0ae1
Show file tree
Hide file tree
Showing 3 changed files with 228 additions and 20 deletions.
173 changes: 173 additions & 0 deletions omf/scratch/hostingcapacity/dsstestcircuit/Master copy.DSS
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
Clear
ClearAll

New Circuit.SecondaryTestCircuit pu=1.0 bus1=bussource basekV=46.0 R1=1.036 X1=10.1433 R0=5.462 X0=34.1897

Redirect loadshapes_varysubv.dss
edit vsource.source duty=SubVoltage

Redirect loadshapes.dss
Redirect linecodes.dss

Redirect substation.dss
Redirect linestrafosloads.dss

MakeBusList
Set Voltagebases=(46, 12.47, 0.41569219)
CalcVoltagebases
export voltages "volts.csv"
Buscoords buscoords.dss

New "EnergyMeter.feeder" element=line.MDV_SUB_1_HSB terminal=1

! set mode=snap controlmode=static maxcontroliter=50 maxiterations=25 miniterations=1
! solve
new object=monitor.monitor-load-load4_2 element=Loadshape.load4_2 terminal=1 mode=6
new object=monitor.monitor-load-load10_2 element=Loadshape.load10_2 terminal=1 mode=6
new object=monitor.monitor-load-load3_3 element=Loadshape.load3_3 terminal=1 mode=6
new object=monitor.monitor-load-load9_1 element=Loadshape.load9_1 terminal=1 mode=6
new object=monitor.monitor-load-load8_1 element=Loadshape.load8_1 terminal=1 mode=6
new object=monitor.monitor-load-load8_3 element=Loadshape.load8_3 terminal=1 mode=6
new object=monitor.monitor-load-load8_1 element=Loadshape.load8_1 terminal=1 mode=6
new object=monitor.monitor-load-load5_3 element=Loadshape.load5_3 terminal=1 mode=6
new object=monitor.monitor-load-load1_2 element=Loadshape.load1_2 terminal=1 mode=6
new object=monitor.monitor-load-load9_2 element=Loadshape.load9_2 terminal=1 mode=6
new object=monitor.monitor-load-load10_2 element=Loadshape.load10_2 terminal=1 mode=6
new object=monitor.monitor-load-load1_1 element=Loadshape.load1_1 terminal=1 mode=6
new object=monitor.monitor-load-load6_3 element=Loadshape.load6_3 terminal=1 mode=6
new object=monitor.monitor-load-load6_1 element=Loadshape.load6_1 terminal=1 mode=6
new object=monitor.monitor-load-load3_2 element=Loadshape.load3_2 terminal=1 mode=6
new object=monitor.monitor-load-load3_2 element=Loadshape.load3_2 terminal=1 mode=6
new object=monitor.monitor-load-load7_1 element=Loadshape.load7_1 terminal=1 mode=6
new object=monitor.monitor-load-load4_5 element=Loadshape.load4_5 terminal=1 mode=6
new object=monitor.monitor-load-load3_5 element=Loadshape.load3_5 terminal=1 mode=6
new object=monitor.monitor-load-load3_3 element=Loadshape.load3_3 terminal=1 mode=6
new object=monitor.monitor-load-load6_1 element=Loadshape.load6_1 terminal=1 mode=6
new object=monitor.monitor-load-load4_3 element=Loadshape.load4_3 terminal=1 mode=6
new object=monitor.monitor-load-load5_2 element=Loadshape.load5_2 terminal=1 mode=6
new object=monitor.monitor-load-load6_2 element=Loadshape.load6_2 terminal=1 mode=6
new object=monitor.monitor-load-Source_V element=Loadshape.Source_V terminal=1 mode=6
new object=monitor.monitor-load-load7_2 element=Loadshape.load7_2 terminal=1 mode=6
new object=monitor.monitor-load-load5_1 element=Loadshape.load5_1 terminal=1 mode=6
new object=monitor.monitor-load-load3_4 element=Loadshape.load3_4 terminal=1 mode=6
new object=monitor.monitor-load-load8_4 element=Loadshape.load8_4 terminal=1 mode=6
new object=monitor.monitor-load-load1_5 element=Loadshape.load1_5 terminal=1 mode=6
new object=monitor.monitor-load-load7_1 element=Loadshape.load7_1 terminal=1 mode=6
new object=monitor.monitor-load-load2 element=Loadshape.load2 terminal=1 mode=6
new object=monitor.monitor-load-load2 element=Loadshape.load2 terminal=1 mode=6
new object=monitor.monitor-load-load7_3 element=Loadshape.load7_3 terminal=1 mode=6
new object=monitor.monitor-load-load4_1 element=Loadshape.load4_1 terminal=1 mode=6
new object=monitor.monitor-load-load9_1 element=Loadshape.load9_1 terminal=1 mode=6
new object=monitor.monitor-load-load5_2 element=Loadshape.load5_2 terminal=1 mode=6
new object=monitor.monitor-load-load7_2 element=Loadshape.load7_2 terminal=1 mode=6
new object=monitor.monitor-load-load8_3 element=Loadshape.load8_3 terminal=1 mode=6
new object=monitor.monitor-load-load7_4 element=Loadshape.load7_4 terminal=1 mode=6
new object=monitor.monitor-load-load5_4 element=Loadshape.load5_4 terminal=1 mode=6
new object=monitor.monitor-load-load4_4 element=Loadshape.load4_4 terminal=1 mode=6
new object=monitor.monitor-load-load10_1 element=Loadshape.load10_1 terminal=1 mode=6
new object=monitor.monitor-load-load5_4 element=Loadshape.load5_4 terminal=1 mode=6
new object=monitor.monitor-load-load1_4 element=Loadshape.load1_4 terminal=1 mode=6
new object=monitor.monitor-load-load3_5 element=Loadshape.load3_5 terminal=1 mode=6
new object=monitor.monitor-load-load3_4 element=Loadshape.load3_4 terminal=1 mode=6
new object=monitor.monitor-load-load8_4 element=Loadshape.load8_4 terminal=1 mode=6
new object=monitor.monitor-load-load4_5 element=Loadshape.load4_5 terminal=1 mode=6
new object=monitor.monitor-load-load3_1 element=Loadshape.load3_1 terminal=1 mode=6
new object=monitor.monitor-load-load1_3 element=Loadshape.load1_3 terminal=1 mode=6
new object=monitor.monitor-load-load1_4 element=Loadshape.load1_4 terminal=1 mode=6
new object=monitor.monitor-load-load6_2 element=Loadshape.load6_2 terminal=1 mode=6
new object=monitor.monitor-load-load6_4 element=Loadshape.load6_4 terminal=1 mode=6
new object=monitor.monitor-load-load4_1 element=Loadshape.load4_1 terminal=1 mode=6
new object=monitor.monitor-load-load10_1 element=Loadshape.load10_1 terminal=1 mode=6
new object=monitor.monitor-load-load4_3 element=Loadshape.load4_3 terminal=1 mode=6
new object=monitor.monitor-load-load1_5 element=Loadshape.load1_5 terminal=1 mode=6
new object=monitor.monitor-load-load7_3 element=Loadshape.load7_3 terminal=1 mode=6
new object=monitor.monitor-load-load8_2 element=Loadshape.load8_2 terminal=1 mode=6
new object=monitor.monitor-load-load6_4 element=Loadshape.load6_4 terminal=1 mode=6
new object=monitor.monitor-load-load7_4 element=Loadshape.load7_4 terminal=1 mode=6
new object=monitor.monitor-load-load9_2 element=Loadshape.load9_2 terminal=1 mode=6
new object=monitor.monitor-load-load5_3 element=Loadshape.load5_3 terminal=1 mode=6
new object=monitor.monitor-load-load4_4 element=Loadshape.load4_4 terminal=1 mode=6
new object=monitor.monitor-load-load8_2 element=Loadshape.load8_2 terminal=1 mode=6
new object=monitor.monitor-load-load1_3 element=Loadshape.load1_3 terminal=1 mode=6
new object=monitor.monitor-load-load1_2 element=Loadshape.load1_2 terminal=1 mode=6
new object=monitor.monitor-load-load5_1 element=Loadshape.load5_1 terminal=1 mode=6
new object=monitor.monitor-load-load1_1 element=Loadshape.load1_1 terminal=1 mode=6
new object=monitor.monitor-load-load6_3 element=Loadshape.load6_3 terminal=1 mode=6
new object=monitor.monitor-load-load3_1 element=Loadshape.load3_1 terminal=1 mode=6
new object=monitor.monitor-load-load4_2 element=Loadshape.load4_2 terminal=1 mode=6
set mode=yearly stepsize=15m
set number=1
solve
export monitors monitorname=monitor-load-load4_2
export monitors monitorname=monitor-load-load10_2
export monitors monitorname=monitor-load-load3_3
export monitors monitorname=monitor-load-load9_1
export monitors monitorname=monitor-load-load8_1
export monitors monitorname=monitor-load-load8_3
export monitors monitorname=monitor-load-load8_1
export monitors monitorname=monitor-load-load5_3
export monitors monitorname=monitor-load-load1_2
export monitors monitorname=monitor-load-load9_2
export monitors monitorname=monitor-load-load10_2
export monitors monitorname=monitor-load-load1_1
export monitors monitorname=monitor-load-load6_3
export monitors monitorname=monitor-load-load6_1
export monitors monitorname=monitor-load-load3_2
export monitors monitorname=monitor-load-load3_2
export monitors monitorname=monitor-load-load7_1
export monitors monitorname=monitor-load-load4_5
export monitors monitorname=monitor-load-load3_5
export monitors monitorname=monitor-load-load3_3
export monitors monitorname=monitor-load-load6_1
export monitors monitorname=monitor-load-load4_3
export monitors monitorname=monitor-load-load5_2
export monitors monitorname=monitor-load-load6_2
export monitors monitorname=monitor-load-Source_V
export monitors monitorname=monitor-load-load7_2
export monitors monitorname=monitor-load-load5_1
export monitors monitorname=monitor-load-load3_4
export monitors monitorname=monitor-load-load8_4
export monitors monitorname=monitor-load-load1_5
export monitors monitorname=monitor-load-load7_1
export monitors monitorname=monitor-load-load2
export monitors monitorname=monitor-load-load2
export monitors monitorname=monitor-load-load7_3
export monitors monitorname=monitor-load-load4_1
export monitors monitorname=monitor-load-load9_1
export monitors monitorname=monitor-load-load5_2
export monitors monitorname=monitor-load-load7_2
export monitors monitorname=monitor-load-load8_3
export monitors monitorname=monitor-load-load7_4
export monitors monitorname=monitor-load-load5_4
export monitors monitorname=monitor-load-load4_4
export monitors monitorname=monitor-load-load10_1
export monitors monitorname=monitor-load-load5_4
export monitors monitorname=monitor-load-load1_4
export monitors monitorname=monitor-load-load3_5
export monitors monitorname=monitor-load-load3_4
export monitors monitorname=monitor-load-load8_4
export monitors monitorname=monitor-load-load4_5
export monitors monitorname=monitor-load-load3_1
export monitors monitorname=monitor-load-load1_3
export monitors monitorname=monitor-load-load1_4
export monitors monitorname=monitor-load-load6_2
export monitors monitorname=monitor-load-load6_4
export monitors monitorname=monitor-load-load4_1
export monitors monitorname=monitor-load-load10_1
export monitors monitorname=monitor-load-load4_3
export monitors monitorname=monitor-load-load1_5
export monitors monitorname=monitor-load-load7_3
export monitors monitorname=monitor-load-load8_2
export monitors monitorname=monitor-load-load6_4
export monitors monitorname=monitor-load-load7_4
export monitors monitorname=monitor-load-load9_2
export monitors monitorname=monitor-load-load5_3
export monitors monitorname=monitor-load-load4_4
export monitors monitorname=monitor-load-load8_2
export monitors monitorname=monitor-load-load1_3
export monitors monitorname=monitor-load-load1_2
export monitors monitorname=monitor-load-load5_1
export monitors monitorname=monitor-load-load1_1
export monitors monitorname=monitor-load-load6_3
export monitors monitorname=monitor-load-load3_1
export monitors monitorname=monitor-load-load4_2
55 changes: 55 additions & 0 deletions omf/scratch/hostingcapacity/dsstestcircuit/epri.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
from pathlib import Path, PosixPath
import time
import pandas as pd
import os

import omf
from omf.solvers import opendss
from omf.models import hostingCapacity

def run_trad( epri_file, modelDir ):
tradHC = opendss.hosting_capacity_all( FNAME = epri_file, max_test_kw=50000, multiprocess=False)
epri_df = pd.DataFrame( tradHC )
epri_df.to_csv('epri_outputs.csv')

def create_testfile( modelDir: PosixPath ):

monitor_names = []
load_profiles = os.path.join( modelDir, 'dsstestcircuit', 'Profiles' )
master_dss_file = os.path.join( modelDir, 'dsstestcircuit', 'Master copy.DSS')

with open( os.path.join( modelDir, 'dsstestcircuit', 'Master copy.DSS' ) ) as file:
for line in file:
opendss.runDssCommand( line )

volt_df = pd.read_csv('volts.csv')

# Need a meter at every load
add_to_dss = ''
for file in os.listdir(load_profiles):
if file.endswith('.dbl'):
load_file_name = Path(file).stem
monitor_name = f'monitor-load-{load_file_name}'
obj_loadshape = 'Loadshape'
# need to get rid of the _P and _Q
# don't know if this works. I deleted it with vim
# load_file_name = load_file_name[:-2]
add_to_dss += f'new object=monitor.{monitor_name} element={obj_loadshape}.{load_file_name} terminal=1 mode=6\n'
monitor_names.append(monitor_name)

add_to_dss += f'set mode=yearly stepsize=15m\n'
add_to_dss += f'set number=1\n'
add_to_dss += 'solve\n'
for name in monitor_names:
add_to_dss += f'export monitors monitorname={name}\n'
# Write runner file and run.
with open( os.path.join(modelDir, 'dsstestcircuit', 'Master copy.DSS'), 'a') as run_file:
run_file.write(add_to_dss)

if __name__ == '__main__':
epri_file = Path( omf.omfDir, 'solvers', 'opendss', 'epriSecondaryTestCircuit.clean.dss' )
modelDir = Path(omf.omfDir, 'scratch', 'hostingcapacity')
# run_trad( epri_file, modelDir )
# create_testfile( modelDir )
master_dss_file = os.path.join( modelDir, 'dsstestcircuit', 'Master copy.DSS')
opendss.runDSS(master_dss_file)
20 changes: 0 additions & 20 deletions omf/scratch/hostingcapacity/dsstestcircuit/testset.py

This file was deleted.

0 comments on commit 28a0ae1

Please sign in to comment.