├── .idea
├── .name
├── vcs.xml
├── misc.xml
├── toolchains.xml
├── inspectionProfiles
│ ├── profiles_settings.xml
│ └── Project_Default.xml
├── modules.xml
└── OpenPy-DSSE.iml
├── tests
└── __init__.py
├── openpy_dsse
├── examples
│ ├── 37NodeIEEE
│ │ ├── OpenDSS files
│ │ │ ├── DSSViewIntercom.Txt
│ │ │ ├── PosSeq circuit
│ │ │ │ ├── BusVoltageBases.DSS
│ │ │ │ ├── GrowthShape.DSS
│ │ │ │ ├── Vsource.dss
│ │ │ │ ├── LoadShape.DSS
│ │ │ │ ├── Master.DSS
│ │ │ │ ├── GISCoords.dss
│ │ │ │ ├── BusCoords.dss
│ │ │ │ ├── Spectrum.DSS
│ │ │ │ ├── TCC_Curve.DSS
│ │ │ │ ├── Load.DSS
│ │ │ │ └── Line.DSS
│ │ │ ├── ieee37_Power.dbl
│ │ │ ├── Substation.DSS
│ │ │ ├── Transformers.DSS
│ │ │ ├── Master_ieee37.DSS
│ │ │ ├── Regulator.DSS
│ │ │ ├── IEEE37_BusXY.csv
│ │ │ ├── AddMarks.DSS
│ │ │ ├── ieee37_Isolated.Txt
│ │ │ ├── Lines.DSS
│ │ │ ├── Loads.DSS
│ │ │ └── ieee37_Power.DSV
│ │ ├── MEAS_files
│ │ │ ├── MEAS_error_DSS.xlsx
│ │ │ ├── MEAS_file_format.xlsx
│ │ │ ├── Pos_MEAS_error_DSS.xlsx
│ │ │ └── Pos_MEAS_Bus_i_PMU.json
│ │ └── Results
│ │ │ ├── MEAS_PMU_37nodeIEEE.xlsx
│ │ │ ├── Metrics_37nodeIEEE.xlsx
│ │ │ ├── MEAS_SCADA_37nodeIEEE.xlsx
│ │ │ ├── MEAS_SeqPos_error_DSS.xlsx
│ │ │ ├── Results_DSSE_37nodeIEEE.xlsx
│ │ │ ├── Vi_DSS_EST_PU_37nodeIEEE.png
│ │ │ ├── Iij_DSS_EST_no_PU_37nodeIEEE.png
│ │ │ ├── Results_I_Ang_from_DSSE_37nodeIEEE.xlsx
│ │ │ └── Metrics_37nodeIEEE.json
│ ├── 13NodeIEEE
│ │ ├── OpenDSS files
│ │ │ ├── DSSViewIntercom.Txt
│ │ │ ├── PosSeq circuit
│ │ │ │ ├── DSSViewIntercom.Txt
│ │ │ │ ├── BusVoltageBases.DSS
│ │ │ │ ├── GrowthShape.DSS
│ │ │ │ ├── Vsource.dss
│ │ │ │ ├── Capacitor.DSS
│ │ │ │ ├── ieee13nodeckt_Power.dbl
│ │ │ │ ├── GISCoords.dss
│ │ │ │ ├── LoadShape.DSS
│ │ │ │ ├── BusCoords.dss
│ │ │ │ ├── Master.DSS
│ │ │ │ ├── Spectrum.DSS
│ │ │ │ ├── TCC_Curve.DSS
│ │ │ │ ├── Load.DSS
│ │ │ │ ├── ieee13nodeckt_Power.DSV
│ │ │ │ └── Line.DSS
│ │ │ ├── IEEE13Nodeckt_Power.dbl
│ │ │ ├── Switchs.DSS
│ │ │ ├── Capacitors.DSS
│ │ │ ├── Transformers.DSS
│ │ │ ├── IEEE13Node_BusXY.csv
│ │ │ ├── Sub_transformer.DSS
│ │ │ ├── Master13NodeIEEE.dss
│ │ │ ├── Voltage_regulators.DSS
│ │ │ ├── Lines.DSS
│ │ │ ├── Loads.DSS
│ │ │ ├── IEEE13Nodeckt_Power.DSV
│ │ │ └── LineCodes.dss
│ │ ├── MEAS_files
│ │ │ ├── MEAS_error_DSS.xlsx
│ │ │ ├── MEAS_file_format.xlsx
│ │ │ ├── Pos_MEAS_error_DSS.xlsx
│ │ │ ├── Pos_MEAS_Bus_i_PMU.json
│ │ │ ├── Init_Bus_i_PMU.json
│ │ │ ├── Pos_MEAS_Elem_ft_PMU.json
│ │ │ ├── Pos_MEAS_Elem_ft.json
│ │ │ ├── Init_Bus_i.json
│ │ │ ├── Init_Elem_ft_PMU.json
│ │ │ ├── MEAS_Bus_i_PMU.json
│ │ │ ├── Pos_MEAS_Bus_i.json
│ │ │ ├── MEAS_Elem_ft_PMU.json
│ │ │ ├── Init_Elem_ft.json
│ │ │ └── MEAS_Elem_ft.json
│ │ └── Results
│ │ │ ├── MEAS_PMU_13NodeIEEE.xlsx
│ │ │ ├── Metrics_13NodeIEEE.xlsx
│ │ │ ├── MEAS_SCADA_13NodeIEEE.xlsx
│ │ │ ├── Results_DSSE_13NodeIEEE.xlsx
│ │ │ ├── Vi_DSS_EST_PU_13NodeIEEE.png
│ │ │ ├── Iij_DSS_EST_no_PU_13NodeIEEE.png
│ │ │ ├── Results_I_Ang_from_DSSE_13NodeIEEE.xlsx
│ │ │ ├── Metrics_13NodeIEEE.json
│ │ │ ├── Results_DSSE_13NodeIEEE.json
│ │ │ └── Results_I_Ang_from_DSSE_13NodeIEEE.json
│ ├── 4Node
│ │ ├── OpenDSS files
│ │ │ ├── Voltagebases_4node.dss
│ │ │ ├── Vsource_4node.dss
│ │ │ ├── Master_4node.dss
│ │ │ ├── Load_4node.dss
│ │ │ └── Line_4node.dss
│ │ ├── Results
│ │ │ ├── Metrics_4Node.xlsx
│ │ │ ├── MEAS_SCADA_4Node.xlsx
│ │ │ ├── Results_DSSE_4Node.xlsx
│ │ │ ├── Vi_DSS_EST_PU_4Node.png
│ │ │ ├── Iij_DSS_EST_no_PU_4Node.png
│ │ │ ├── Results_I_Ang_from_DSSE_4Node.xlsx
│ │ │ ├── Metrics_4Node.json
│ │ │ ├── Results_I_Ang_from_DSSE_4Node.json
│ │ │ └── Results_DSSE_4Node.json
│ │ └── MEAS_files
│ │ │ ├── Init_Bus_i_PMU.json
│ │ │ ├── Init_Elem_ft_PMU.json
│ │ │ ├── Init_Bus_i.json
│ │ │ ├── Init_Elem_ft.json
│ │ │ ├── MEAS_Elem_ft_PMU.json
│ │ │ ├── MEAS_Bus_i_PMU.json
│ │ │ ├── MEAS_Elem_ft.json
│ │ │ └── MEAS_Bus_i.json
│ └── 15NodeIEEE
│ │ ├── OpenDSS files
│ │ ├── Voltagebases_15node.dss
│ │ ├── Vsource_15node.dss
│ │ ├── Master_15node.dss
│ │ ├── Load_15node.dss
│ │ └── Line_15node.dss
│ │ ├── MEAS_files
│ │ ├── MEAS_error_DSS.xlsx
│ │ ├── MEAS_file_format.xlsx
│ │ ├── ~$MEAS_error_DSS.xlsx
│ │ ├── ~$MEAS_file_format.xlsx
│ │ ├── Init_Bus_i_PMU.json
│ │ ├── Init_Bus_i.json
│ │ ├── Init_Elem_ft_PMU.json
│ │ ├── MEAS_Bus_i_PMU.json
│ │ ├── Init_Elem_ft.json
│ │ └── MEAS_Elem_ft_PMU.json
│ │ └── Results
│ │ ├── MEAS_PMU_15NodeIEEE.xlsx
│ │ ├── Metrics_15NodeIEEE.xlsx
│ │ ├── MEAS_SCADA_15NodeIEEE.xlsx
│ │ ├── Results_DSSE_15NodeIEEE.xlsx
│ │ ├── Vi_DSS_EST_PU_15NodeIEEE.png
│ │ ├── Iij_DSS_EST_no_PU_15NodeIEEE.png
│ │ ├── Results_I_Ang_from_DSSE_15NodeIEEE.xlsx
│ │ ├── Metrics_15NodeIEEE.json
│ │ ├── Results_DSSE_15NodeIEEE.json
│ │ └── Results_I_Ang_from_DSSE_15NodeIEEE.json
├── DSSE_algorithms
│ ├── __init__.py
│ └── Symb_Eqn
│ │ └── __init__.py
├── __init__.py
├── COM_interface.py
├── Sample_test_systems_DSS.py
├── LICENSE.md
├── base_DSSE.py
└── Elec_param_calc_DSS_EST.py
├── .gitattributes
├── dist
├── openpy_dsse-0.1.3.tar.gz
├── openpy_dsse-0.1.4.tar.gz
├── openpy_dsse-0.1.3-py3-none-any.whl
└── openpy_dsse-0.1.4-py3-none-any.whl
├── Sample_tests
├── 15NodeIEEE
│ ├── 15NodeIEEE.jpg
│ └── 15NodeIEEE.ipynb
├── 13NodeIEEE
│ ├── 13 Node IEEE.png
│ └── 13NodeIEEE.ipynb
└── 37NodeIEEE
│ └── 37 Node IEEE.png
├── pyvenv.cfg
├── requeriments.txt
├── pyproject.toml
├── poetry-convert.py
├── main.py
├── docs
├── referencias.bib
├── docs_es
│ └── LICENSE.md
└── docs_en
│ └── LICENSE.md
├── LICENSE.md
└── .gitignore
/.idea/.name:
--------------------------------------------------------------------------------
1 | main.py
--------------------------------------------------------------------------------
/tests/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/DSSViewIntercom.Txt:
--------------------------------------------------------------------------------
1 | Line.l35
2 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/DSSViewIntercom.Txt:
--------------------------------------------------------------------------------
1 | Line.692675
2 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/PosSeq circuit/DSSViewIntercom.Txt:
--------------------------------------------------------------------------------
1 | Line.684611
2 |
--------------------------------------------------------------------------------
/openpy_dsse/DSSE_algorithms/__init__.py:
--------------------------------------------------------------------------------
1 | from .WLS_alg_1ph import *
2 | from .WLS_alg_Pos_Seq import *
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/OpenDSS files/Voltagebases_4node.dss:
--------------------------------------------------------------------------------
1 | Set Voltagebases = [11]
2 | calcv
3 |
4 |
--------------------------------------------------------------------------------
/dist/openpy_dsse-0.1.3.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/dist/openpy_dsse-0.1.3.tar.gz
--------------------------------------------------------------------------------
/dist/openpy_dsse-0.1.4.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/dist/openpy_dsse-0.1.4.tar.gz
--------------------------------------------------------------------------------
/openpy_dsse/DSSE_algorithms/Symb_Eqn/__init__.py:
--------------------------------------------------------------------------------
1 | from .sym_func_1ph import *
2 | from .sym_func_Pos_Seq import *
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/OpenDSS files/Voltagebases_15node.dss:
--------------------------------------------------------------------------------
1 | Set Voltagebases = [19.05]
2 | calcv
3 |
4 |
--------------------------------------------------------------------------------
/openpy_dsse/__init__.py:
--------------------------------------------------------------------------------
1 | __version__ = '0.1.4'
2 |
3 | from .state_estimation import init_DSSE
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/OpenDSS files/Vsource_4node.dss:
--------------------------------------------------------------------------------
1 | Edit "Vsource.source" bus1=1 basekv=6.3 pu=1.01 angle=0 phases=1
--------------------------------------------------------------------------------
/Sample_tests/15NodeIEEE/15NodeIEEE.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/Sample_tests/15NodeIEEE/15NodeIEEE.jpg
--------------------------------------------------------------------------------
/dist/openpy_dsse-0.1.3-py3-none-any.whl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/dist/openpy_dsse-0.1.3-py3-none-any.whl
--------------------------------------------------------------------------------
/dist/openpy_dsse-0.1.4-py3-none-any.whl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/dist/openpy_dsse-0.1.4-py3-none-any.whl
--------------------------------------------------------------------------------
/Sample_tests/13NodeIEEE/13 Node IEEE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/Sample_tests/13NodeIEEE/13 Node IEEE.png
--------------------------------------------------------------------------------
/Sample_tests/37NodeIEEE/37 Node IEEE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/Sample_tests/37NodeIEEE/37 Node IEEE.png
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/PosSeq circuit/BusVoltageBases.DSS:
--------------------------------------------------------------------------------
1 | Set Voltagebases=(4.16, 0.48, )
2 | CalcVoltagebases
3 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/OpenDSS files/Vsource_15node.dss:
--------------------------------------------------------------------------------
1 | Edit "Vsource.source" bus1=Bus_1.1 basekv=11 pu=1.01 angle=0.1 phases=1
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/PosSeq circuit/BusVoltageBases.DSS:
--------------------------------------------------------------------------------
1 | Set Voltagebases=(4.8, 0.48, )
2 | CalcVoltagebases
3 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/PosSeq circuit/GrowthShape.DSS:
--------------------------------------------------------------------------------
1 | New "GrowthShape.default" npts=2 year=(1, 20, ) mult=(1.025, 1.025, )
2 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/PosSeq circuit/GrowthShape.DSS:
--------------------------------------------------------------------------------
1 | New "GrowthShape.default" npts=2 year=(1, 20, ) mult=(1.025, 1.025, )
2 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/Results/Metrics_4Node.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/4Node/Results/Metrics_4Node.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/Results/MEAS_SCADA_4Node.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/4Node/Results/MEAS_SCADA_4Node.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/Results/Results_DSSE_4Node.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/4Node/Results/Results_DSSE_4Node.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/Results/Vi_DSS_EST_PU_4Node.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/4Node/Results/Vi_DSS_EST_PU_4Node.png
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/MEAS_files/MEAS_error_DSS.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/13NodeIEEE/MEAS_files/MEAS_error_DSS.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/MEAS_files/MEAS_error_DSS.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/15NodeIEEE/MEAS_files/MEAS_error_DSS.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/MEAS_files/MEAS_error_DSS.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/37NodeIEEE/MEAS_files/MEAS_error_DSS.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/ieee37_Power.dbl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/37NodeIEEE/OpenDSS files/ieee37_Power.dbl
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/Results/Iij_DSS_EST_no_PU_4Node.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/4Node/Results/Iij_DSS_EST_no_PU_4Node.png
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/MEAS_files/MEAS_file_format.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/13NodeIEEE/MEAS_files/MEAS_file_format.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/Results/MEAS_PMU_13NodeIEEE.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/13NodeIEEE/Results/MEAS_PMU_13NodeIEEE.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/Results/Metrics_13NodeIEEE.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/13NodeIEEE/Results/Metrics_13NodeIEEE.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/MEAS_files/MEAS_file_format.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/15NodeIEEE/MEAS_files/MEAS_file_format.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/Results/MEAS_PMU_15NodeIEEE.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/15NodeIEEE/Results/MEAS_PMU_15NodeIEEE.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/Results/Metrics_15NodeIEEE.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/15NodeIEEE/Results/Metrics_15NodeIEEE.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/MEAS_files/MEAS_file_format.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/37NodeIEEE/MEAS_files/MEAS_file_format.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/Results/MEAS_PMU_37nodeIEEE.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/37NodeIEEE/Results/MEAS_PMU_37nodeIEEE.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/Results/Metrics_37nodeIEEE.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/37NodeIEEE/Results/Metrics_37nodeIEEE.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/MEAS_files/Pos_MEAS_error_DSS.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/13NodeIEEE/MEAS_files/Pos_MEAS_error_DSS.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/Results/MEAS_SCADA_13NodeIEEE.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/13NodeIEEE/Results/MEAS_SCADA_13NodeIEEE.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/Results/MEAS_SCADA_15NodeIEEE.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/15NodeIEEE/Results/MEAS_SCADA_15NodeIEEE.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/MEAS_files/Pos_MEAS_error_DSS.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/37NodeIEEE/MEAS_files/Pos_MEAS_error_DSS.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/Results/MEAS_SCADA_37nodeIEEE.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/37NodeIEEE/Results/MEAS_SCADA_37nodeIEEE.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/Results/MEAS_SeqPos_error_DSS.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/37NodeIEEE/Results/MEAS_SeqPos_error_DSS.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/IEEE13Nodeckt_Power.dbl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/13NodeIEEE/OpenDSS files/IEEE13Nodeckt_Power.dbl
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/Results/Results_DSSE_13NodeIEEE.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/13NodeIEEE/Results/Results_DSSE_13NodeIEEE.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/Results/Vi_DSS_EST_PU_13NodeIEEE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/13NodeIEEE/Results/Vi_DSS_EST_PU_13NodeIEEE.png
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/Results/Results_DSSE_15NodeIEEE.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/15NodeIEEE/Results/Results_DSSE_15NodeIEEE.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/Results/Vi_DSS_EST_PU_15NodeIEEE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/15NodeIEEE/Results/Vi_DSS_EST_PU_15NodeIEEE.png
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/Results/Results_DSSE_37nodeIEEE.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/37NodeIEEE/Results/Results_DSSE_37nodeIEEE.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/Results/Vi_DSS_EST_PU_37nodeIEEE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/37NodeIEEE/Results/Vi_DSS_EST_PU_37nodeIEEE.png
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/Results/Results_I_Ang_from_DSSE_4Node.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/4Node/Results/Results_I_Ang_from_DSSE_4Node.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/Switchs.DSS:
--------------------------------------------------------------------------------
1 | !SWITCH DEFINITIONS
2 | New Line.671692 Phases=3 Bus1=671 Bus2=692 Switch=y r1=1e-4 r0=1e-4 x1=0.000 x0=0.000 c1=0.000 c0=0.000
3 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/Results/Iij_DSS_EST_no_PU_13NodeIEEE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/13NodeIEEE/Results/Iij_DSS_EST_no_PU_13NodeIEEE.png
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/Results/Iij_DSS_EST_no_PU_15NodeIEEE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/15NodeIEEE/Results/Iij_DSS_EST_no_PU_15NodeIEEE.png
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/Results/Iij_DSS_EST_no_PU_37nodeIEEE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/37NodeIEEE/Results/Iij_DSS_EST_no_PU_37nodeIEEE.png
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/PosSeq circuit/Vsource.dss:
--------------------------------------------------------------------------------
1 | Edit "Vsource.source" pu=1.05 bus1=650 angle=30 MVAsc3=6666.8 MVAsc1=6666.8 phases=1 basekv=2.4018 R1=0.00020986 X1=0.00083944
2 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/PosSeq circuit/Vsource.dss:
--------------------------------------------------------------------------------
1 | Edit "Vsource.source" pu=1.00 angle=30 MVAsc3=66668 MVAsc1=66668 bus1=799 phases=1 basekv=2.7713 R1=2.794E-005 X1=0.00011176
2 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/Capacitors.DSS:
--------------------------------------------------------------------------------
1 | !CAPACITOR DEFINITIONS
2 | New Capacitor.Cap1 Bus1=675 phases=3 kVAR=600 kV=4.16
3 | New Capacitor.Cap2 Bus1=611.3 phases=1 kVAR=100 kV=2.4
4 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/PosSeq circuit/Capacitor.DSS:
--------------------------------------------------------------------------------
1 | New "Capacitor.cap1" bus1=675 phases=1 kv=2.4018 kvar=[ 200]
2 | New "Capacitor.cap2" bus1=611 phases=1 kv=2.4 kvar=[ 33.333]
3 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/Results/Results_I_Ang_from_DSSE_13NodeIEEE.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/13NodeIEEE/Results/Results_I_Ang_from_DSSE_13NodeIEEE.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/Results/Results_I_Ang_from_DSSE_15NodeIEEE.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/15NodeIEEE/Results/Results_I_Ang_from_DSSE_15NodeIEEE.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/Results/Results_I_Ang_from_DSSE_37nodeIEEE.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/37NodeIEEE/Results/Results_I_Ang_from_DSSE_37nodeIEEE.xlsx
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/PosSeq circuit/ieee13nodeckt_Power.dbl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jlara6/OpenPy-DSSE/HEAD/openpy_dsse/examples/13NodeIEEE/OpenDSS files/PosSeq circuit/ieee13nodeckt_Power.dbl
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/toolchains.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/MEAS_files/~$MEAS_error_DSS.xlsx:
--------------------------------------------------------------------------------
1 |
2 | jorge lara
3 | j o r g e l a r a
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/MEAS_files/~$MEAS_file_format.xlsx:
--------------------------------------------------------------------------------
1 |
2 | jorge lara
3 | j o r g e l a r a
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/OpenDSS files/Master_15node.dss:
--------------------------------------------------------------------------------
1 | Clear
2 |
3 | New Circuit.15node
4 |
5 | Redirect Vsource_15node.dss
6 |
7 | Redirect Line_15node.dss
8 | Redirect Load_15node.dss
9 | Redirect Voltagebases_15node.dss
10 |
11 | solve
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/OpenDSS files/Master_4node.dss:
--------------------------------------------------------------------------------
1 | Clear
2 |
3 | New Circuit.4node
4 |
5 | Redirect Vsource_4node.dss
6 |
7 | Redirect Line_4node.dss
8 | Redirect Load_4node.dss
9 | Redirect Voltagebases_4node.dss
10 |
11 | solve
12 |
13 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/PosSeq circuit/GISCoords.dss:
--------------------------------------------------------------------------------
1 | 650, 0, 0
2 | 671, 0, 0
3 | 633, 0, 0
4 | 645, 0, 0
5 | 646, 0, 0
6 | 692, 0, 0
7 | 675, 0, 0
8 | 611, 0, 0
9 | 652, 0, 0
10 | 670, 0, 0
11 | 632, 0, 0
12 | 680, 0, 0
13 | 684, 0, 0
14 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/Substation.DSS:
--------------------------------------------------------------------------------
1 | ! Substation Transformer
2 | New Transformer.SubXF Phases=3 Windings=2 Xhl=8
3 | ~ wdg=1 bus=sourcebus conn=Delta kv=230 kva=2500 %r=1
4 | ~ wdg=2 bus=799 conn=Delta kv=4.8 kva=2500 %r=1
5 |
6 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/Transformers.DSS:
--------------------------------------------------------------------------------
1 | ! Load Transformer
2 | New Transformer.XFM1 Phases=3 Windings=2 Xhl=1.81
3 | ~ wdg=1 bus=709 conn=Delta kv=4.80 kva=500 %r=0.045
4 | ~ wdg=2 bus=775 conn=Delta kv=0.48 kva=500 %r=0.045
5 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/PosSeq circuit/LoadShape.DSS:
--------------------------------------------------------------------------------
1 | New "LoadShape.default" npts=24 interval=1 mult=[ 0.677 0.6256 0.6087 0.5833 0.58028 0.6025 0.657 0.7477 0.832 0.88 0.94 0.989 0.985 0.98 0.9898 0.999 1 0.958 0.936 0.913 0.876 0.876 0.828 0.756]
2 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/PosSeq circuit/LoadShape.DSS:
--------------------------------------------------------------------------------
1 | New "LoadShape.default" npts=24 interval=1 mult=[ 0.677 0.6256 0.6087 0.5833 0.58028 0.6025 0.657 0.7477 0.832 0.88 0.94 0.989 0.985 0.98 0.9898 0.999 1 0.958 0.936 0.913 0.876 0.876 0.828 0.756]
2 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/Transformers.DSS:
--------------------------------------------------------------------------------
1 | !TRANSFORMER DEFINITION
2 | New Transformer.XFM1 Phases=3 Windings=2 XHL=2
3 | ~ wdg=1 bus=633 conn=Wye kv=4.16 kva=500 %r=.55 XHT=1
4 | ~ wdg=2 bus=634 conn=Wye kv=0.480 kva=500 %r=.55 XLT=1
5 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/OpenDSS files/Load_4node.dss:
--------------------------------------------------------------------------------
1 | New "Load.1" bus1=1 phases=1 conn=LN kV=6.3 kva=0 Kw=0
2 | New "Load.2" bus1=2 phases=1 conn=LN kV=6.3 kva=0 Kw=0
3 | New "Load.3" bus1=3 phases=1 conn=LN kV=6.3 kva=100 pf=0.7
4 | New "Load.4" bus1=4 phases=1 conn=LN kV=6.3 kva=200 pf=0.7
5 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/OpenDSS files/Line_4node.dss:
--------------------------------------------------------------------------------
1 | New "Line.from_1_to_2" phases=1 bus1=1 bus2=2 rmatrix=[1.530] xmatrix=[1.778]
2 | New "Line.from_2_to_3" phases=1 bus1=2 bus2=3 rmatrix=[1.037] xmatrix=[1.071]
3 | New "Line.from_3_to_4" phases=1 bus1=3 bus2=4 rmatrix=[1.224] xmatrix=[1.428]
4 |
5 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/PosSeq circuit/BusCoords.dss:
--------------------------------------------------------------------------------
1 | 650, 200, 350
2 | 671, 200, 100
3 | 633, 350, 250
4 | 645, 100, 250
5 | 646, 0, 250
6 | 692, 250, 100
7 | 675, 400, 100
8 | 611, 0, 100
9 | 652, 100, 0
10 | 670, 200, 200
11 | 632, 200, 250
12 | 680, 200, 0
13 | 684, 100, 100
14 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/openpy_dsse/COM_interface.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # @Time : 24/01/2023
3 | # @Author : Ing. Jorge Lara
4 | # @Email : jlara@iee.unsj.edu.ar
5 | # @File : ------------
6 | # @Software: PyCharm
7 |
8 | #import opendssdirect as drt
9 | import py_dss_interface
10 |
11 | dss = py_dss_interface.DSSDLL()
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/IEEE13Node_BusXY.csv:
--------------------------------------------------------------------------------
1 | SourceBus, 200, 400
2 | 650, 200, 350
3 | RG60, 200, 300
4 | 646, 0, 250
5 | 645, 100, 250
6 | 632, 200, 250
7 | 633, 350, 250
8 | 634, 400, 250
9 | 670, 200, 200
10 | 611, 0, 100
11 | 684, 100, 100
12 | 671, 200, 100
13 | 692, 250, 100
14 | 675, 400, 100
15 | 652, 100, 0
16 | 680, 200, 0
17 |
18 |
19 |
--------------------------------------------------------------------------------
/pyvenv.cfg:
--------------------------------------------------------------------------------
1 | home = C:\Users\tote_\AppData\Local\Programs\Python\Python38
2 | implementation = CPython
3 | version_info = 3.8.9.final.0
4 | virtualenv = 20.13.0
5 | include-system-site-packages = false
6 | base-prefix = C:\Users\tote_\AppData\Local\Programs\Python\Python38
7 | base-exec-prefix = C:\Users\tote_\AppData\Local\Programs\Python\Python38
8 | base-executable = C:\Users\tote_\AppData\Local\Programs\Python\Python38\python.exe
9 |
--------------------------------------------------------------------------------
/requeriments.txt:
--------------------------------------------------------------------------------
1 | colorama==0.4.6
2 | contourpy==1.0.5
3 | cycler==0.11.0
4 | et-xmlfile==1.1.0
5 | fonttools==4.38.0
6 | kiwisolver==1.4.4
7 | matplotlib==3.6.0
8 | mpmath==1.2.1
9 | numpy==1.23.5
10 | openpyxl==3.0.10
11 | packaging==21.3
12 | pandas==1.2.3
13 | Pillow==9.2.0
14 | py-dss-interface==1.0.2
15 | pyparsing==3.0.9
16 | python-dateutil==2.8.2
17 | pytz==2022.6
18 | scipy==1.9.3
19 | seaborn==0.12.1
20 | six==1.16.0
21 | sympy==1.11.1
22 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/PosSeq circuit/Master.DSS:
--------------------------------------------------------------------------------
1 | Clear
2 | New Circuit.ieee37
3 |
4 | Set Cktmodel=Positive
5 |
6 | Redirect Vsource.dss
7 | Redirect LineCode.DSS
8 | Redirect LoadShape.DSS
9 | Redirect GrowthShape.DSS
10 | Redirect TCC_Curve.DSS
11 | Redirect Spectrum.DSS
12 | Redirect Line.DSS
13 | Redirect Load.DSS
14 | MakeBusList
15 | Redirect BusVoltageBases.dss ! set voltage bases
16 | Buscoords buscoords.dss
17 | GIScoords GIScoords.dss
18 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/PosSeq circuit/Master.DSS:
--------------------------------------------------------------------------------
1 | Clear
2 | New Circuit.ieee13nodeckt
3 |
4 | Set Cktmodel=Positive
5 |
6 | Redirect Vsource.dss
7 | Redirect LineCode.DSS
8 | Redirect LoadShape.DSS
9 | Redirect GrowthShape.DSS
10 | Redirect TCC_Curve.DSS
11 | Redirect Spectrum.DSS
12 | Redirect Line.DSS
13 | Redirect Load.DSS
14 | MakeBusList
15 | Redirect BusVoltageBases.dss ! set voltage bases
16 | Buscoords buscoords.dss
17 | GIScoords GIScoords.dss
18 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/OpenPy-DSSE.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/Master_ieee37.DSS:
--------------------------------------------------------------------------------
1 | Clear
2 |
3 | New object=circuit.ieee37
4 | ~ basekv=4.8 pu=1.00 angle=30 MVAsc3=200000 MVAsc1=210000 bus1=799
5 |
6 |
7 | !Redirect Substation.DSS
8 | !Redirect Transformers.DSS
9 | Redirect IEEELineCodes.DSS
10 | Redirect Lines.DSS
11 | !Redirect Regulator.DSS
12 | Redirect Loads.DSS
13 |
14 | Set VoltageBases = "4.8,0.48"
15 | CalcVoltageBases
16 | BusCoords IEEE37_BusXY.csv
17 |
18 | !solve mode=direct
19 | set maxiterations=100
20 | solve
21 |
22 | !Redirect AddMarks.DSS
23 |
24 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/Results/Metrics_4Node.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "Variable":"V1(pu)",
4 | "MAE":"4.91E-04",
5 | "MAPE":"5.10E-04",
6 | "RMSE":"6.94E-04"
7 | },
8 | "1":{
9 | "Variable":"AngV1(deg)",
10 | "MAE":"1.08E-01",
11 | "MAPE":"-9.61E-01",
12 | "RMSE":"1.53E-01"
13 | },
14 | "2":{
15 | "Variable":"I1(pu)",
16 | "MAE":"8.99E-05",
17 | "MAPE":"4.33E-03",
18 | "RMSE":"1.10E-04"
19 | },
20 | "3":{
21 | "Variable":"AngI1(deg)",
22 | "MAE":"1.07E+01",
23 | "MAPE":"-2.34E-01",
24 | "RMSE":"1.31E+01"
25 | }
26 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/Results/Metrics_13NodeIEEE.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "Variable":"V1(pu)",
4 | "MAE":"1.01E-03",
5 | "MAPE":"1.04E-03",
6 | "RMSE":"2.58E-03"
7 | },
8 | "1":{
9 | "Variable":"AngV1(deg)",
10 | "MAE":"5.55E-01",
11 | "MAPE":"2.10E-02",
12 | "RMSE":"1.41E+00"
13 | },
14 | "2":{
15 | "Variable":"I1(pu)",
16 | "MAE":"1.04E-01",
17 | "MAPE":"2.59E+00",
18 | "RMSE":"2.56E-01"
19 | },
20 | "3":{
21 | "Variable":"AngI1(deg)",
22 | "MAE":"2.23E+01",
23 | "MAPE":"-4.73E+00",
24 | "RMSE":"5.46E+01"
25 | }
26 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/Results/Metrics_15NodeIEEE.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "Variable":"V1(pu)",
4 | "MAE":"5.07E-05",
5 | "MAPE":"5.33E-05",
6 | "RMSE":"1.39E-04"
7 | },
8 | "1":{
9 | "Variable":"AngV1(deg)",
10 | "MAE":"3.12E-02",
11 | "MAPE":"-2.53E-01",
12 | "RMSE":"8.54E-02"
13 | },
14 | "2":{
15 | "Variable":"I1(pu)",
16 | "MAE":"3.99E-04",
17 | "MAPE":"1.90E-02",
18 | "RMSE":"1.05E-03"
19 | },
20 | "3":{
21 | "Variable":"AngI1(deg)",
22 | "MAE":"1.98E+00",
23 | "MAPE":"-4.34E-02",
24 | "RMSE":"5.25E+00"
25 | }
26 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/Results/Metrics_37nodeIEEE.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "Variable":"V1(pu)",
4 | "MAE":"1.11E-04",
5 | "MAPE":"1.15E-04",
6 | "RMSE":"4.73E-04"
7 | },
8 | "1":{
9 | "Variable":"AngV1(deg)",
10 | "MAE":"2.80E-02",
11 | "MAPE":"9.49E-04",
12 | "RMSE":"1.19E-01"
13 | },
14 | "2":{
15 | "Variable":"I1(pu)",
16 | "MAE":"2.87E-04",
17 | "MAPE":"3.12E-03",
18 | "RMSE":"1.20E-03"
19 | },
20 | "3":{
21 | "Variable":"AngI1(deg)",
22 | "MAE":"1.12E+00",
23 | "MAPE":"2.96E-01",
24 | "RMSE":"4.67E+00"
25 | }
26 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/Regulator.DSS:
--------------------------------------------------------------------------------
1 | ! Regulator - open delta with C leading, A lagging, base LDC setting is 1.5 + j3
2 | new transformer.reg1a phases=1 windings=2 buses=(799.1.2 799r.1.2) conns='delta delta' kvs="4.8 4.8" kvas="2000 2000" XHL=1
3 | new regcontrol.creg1a transformer=reg1a winding=2 vreg=122 band=2 ptratio=40 ctprim=350 R=-0.201 X=3.348
4 | new transformer.reg1c like=reg1a buses=(799.3.2 799r.3.2)
5 | new regcontrol.creg1c like=creg1a transformer=reg1c R=2.799 X=1.848
6 | New Line.Jumper Phases=1 Bus1=799.2 Bus2=799r.2 r0=1e-3 r1=1e-3 x0=0 x1=0 c0=0 c1=0
7 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/PosSeq circuit/GISCoords.dss:
--------------------------------------------------------------------------------
1 | 799, 0, 0
2 | 701, 0, 0
3 | 702, 0, 0
4 | 705, 0, 0
5 | 713, 0, 0
6 | 703, 0, 0
7 | 727, 0, 0
8 | 730, 0, 0
9 | 704, 0, 0
10 | 714, 0, 0
11 | 720, 0, 0
12 | 742, 0, 0
13 | 712, 0, 0
14 | 706, 0, 0
15 | 725, 0, 0
16 | 707, 0, 0
17 | 724, 0, 0
18 | 722, 0, 0
19 | 708, 0, 0
20 | 733, 0, 0
21 | 732, 0, 0
22 | 709, 0, 0
23 | 731, 0, 0
24 | 710, 0, 0
25 | 735, 0, 0
26 | 736, 0, 0
27 | 711, 0, 0
28 | 741, 0, 0
29 | 740, 0, 0
30 | 718, 0, 0
31 | 744, 0, 0
32 | 734, 0, 0
33 | 737, 0, 0
34 | 738, 0, 0
35 | 728, 0, 0
36 | 729, 0, 0
37 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/Sub_transformer.DSS:
--------------------------------------------------------------------------------
1 | !SUB TRANSFORMER DEFINITION
2 | ! Although this data was given, it does not appear to be used in the test case results
3 | ! The published test case starts at 1.0 per unit at Bus 650. To make this happen, we will change the impedance
4 | ! on the transformer to something tiny by dividing by 1000 using the DSS in-line RPN math
5 | New Transformer.Sub Phases=3 Windings=2 XHL=(8 1000 /)
6 | ~ wdg=1 bus=SourceBus conn=delta kv=115 kva=5000 %r=(.5 1000 /) XHT=4
7 | ~ wdg=2 bus=650 conn=wye kv=4.16 kva=5000 %r=(.5 1000 /) XLT=4
8 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/Master13NodeIEEE.dss:
--------------------------------------------------------------------------------
1 | Clear
2 |
3 | new circuit.IEEE13Nodeckt
4 | ~ basekv=4.16 pu=1.05 phases=3 bus1=650
5 | ~ Angle=30 ! advance angle 30 deg so result agree with published angle
6 | ~ MVAsc3=20000 MVASC1=21000 ! stiffen the source to approximate inf source
7 |
8 | !Redirect Sub_transformer.DSS
9 | !Redirect Voltage_regulators.DSS
10 | !Redirect Transformers.DSS
11 | Redirect LineCodes.dss
12 | Redirect Loads.DSS
13 | !Redirect Capacitors.DSS
14 | Redirect Lines.DSS
15 | Redirect Switchs.DSS
16 |
17 | Set Voltagebases=[4.16, .48]
18 | calcv
19 |
20 | Solve
21 | BusCoords IEEE13Node_BusXY.csv
22 |
23 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/MEAS_files/Init_Bus_i_PMU.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "bus_name":1,
4 | "num_nodes":1,
5 | "ph_1":1,
6 | "ph_2":0,
7 | "ph_3":0,
8 | "Unc(%)_Vm":0,
9 | "STS_Vm":0
10 | },
11 | "1":{
12 | "bus_name":2,
13 | "num_nodes":1,
14 | "ph_1":1,
15 | "ph_2":0,
16 | "ph_3":0,
17 | "Unc(%)_Vm":0,
18 | "STS_Vm":0
19 | },
20 | "2":{
21 | "bus_name":3,
22 | "num_nodes":1,
23 | "ph_1":1,
24 | "ph_2":0,
25 | "ph_3":0,
26 | "Unc(%)_Vm":0,
27 | "STS_Vm":0
28 | },
29 | "3":{
30 | "bus_name":4,
31 | "num_nodes":1,
32 | "ph_1":1,
33 | "ph_2":0,
34 | "ph_3":0,
35 | "Unc(%)_Vm":0,
36 | "STS_Vm":0
37 | }
38 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/Results/Results_I_Ang_from_DSSE_4Node.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "element_name":"Line.from_1_to_2",
4 | "from_bus":"1",
5 | "to_bus":"2",
6 | "I1(pu)_DSS":0.0310508699,
7 | "Ang1(deg)_DSS":-45.6535187611,
8 | "I1(pu)_EST":0.0311947628,
9 | "Ang1(deg)_EST":-45.4234870477
10 | },
11 | "1":{
12 | "element_name":"Line.from_2_to_3",
13 | "from_bus":"2",
14 | "to_bus":"3",
15 | "I1(pu)_DSS":0.0310545382,
16 | "Ang1(deg)_DSS":-45.6601422052,
17 | "I1(pu)_EST":0.0293221169,
18 | "Ang1(deg)_EST":-50.7589609235
19 | },
20 | "2":{
21 | "element_name":"Line.from_3_to_4",
22 | "from_bus":"3",
23 | "to_bus":"4",
24 | "I1(pu)_DSS":0.0207730945,
25 | "Ang1(deg)_DSS":-45.6761026013,
26 | "I1(pu)_EST":0.0206382064,
27 | "Ang1(deg)_EST":-61.7370715184
28 | }
29 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/Results/Results_DSSE_4Node.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "bus_name":"1",
4 | "Bus Nro.":1,
5 | "V1(pu)_DSS":1.001785392,
6 | "Ang1(deg)_DSS":-0.0040331021,
7 | "V1(pu)_EST":1.0019,
8 | "Ang1(deg)_EST":0.0
9 | },
10 | "1":{
11 | "bus_name":"2",
12 | "Bus Nro.":2,
13 | "V1(pu)_DSS":0.983762991,
14 | "Ang1(deg)_DSS":-0.0707105042,
15 | "V1(pu)_EST":0.9838,
16 | "Ang1(deg)_EST":-0.0712
17 | },
18 | "2":{
19 | "bus_name":"3",
20 | "Bus Nro.":3,
21 | "V1(pu)_DSS":0.9722843333,
22 | "Ang1(deg)_DSS":-0.0746221929,
23 | "V1(pu)_EST":0.973,
24 | "Ang1(deg)_EST":-0.0182
25 | },
26 | "3":{
27 | "bus_name":"4",
28 | "Bus Nro.":4,
29 | "V1(pu)_DSS":0.962618203,
30 | "Ang1(deg)_DSS":-0.1127598827,
31 | "V1(pu)_EST":0.9636,
32 | "Ang1(deg)_EST":0.1039
33 | }
34 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/Voltage_regulators.DSS:
--------------------------------------------------------------------------------
1 | ! FEEDER 1-PHASE VOLTAGE REGULATORS
2 | ! Define low-impedance 2-wdg transformer
3 |
4 | New Transformer.Reg1 phases=1 XHL=0.01 kVAs=[1666 1666]
5 | ~ Buses=[650.1 RG60.1] kVs=[2.4 2.4] %LoadLoss=0.01
6 | new regcontrol.Reg1 transformer=Reg1 winding=2 vreg=122 band=2 ptratio=20 ctprim=700 R=3 X=9
7 |
8 | New Transformer.Reg2 phases=1 XHL=0.01 kVAs=[1666 1666]
9 | ~ Buses=[650.2 RG60.2] kVs=[2.4 2.4] %LoadLoss=0.01
10 | new regcontrol.Reg2 transformer=Reg2 winding=2 vreg=122 band=2 ptratio=20 ctprim=700 R=3 X=9
11 |
12 | New Transformer.Reg3 phases=1 XHL=0.01 kVAs=[1666 1666]
13 | ~ Buses=[650.3 RG60.3] kVs=[2.4 2.4] %LoadLoss=0.01
14 | new regcontrol.Reg3 transformer=Reg3 winding=2 vreg=122 band=2 ptratio=20 ctprim=700 R=3 X=9
15 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/PosSeq circuit/BusCoords.dss:
--------------------------------------------------------------------------------
1 | 799, 0, 0.01
2 | 701, 0, -1.85
3 | 702, 0, -2.81
4 | 705, -0.4, -2.81
5 | 713, 0.36, -2.81
6 | 703, 0, -4.13
7 | 727, -0.24, -4.13
8 | 730, 0, -4.73
9 | 704, 0.88, -2.81
10 | 714, 0.88, -2.89
11 | 720, 1.68, -2.81
12 | 742, -0.72, -2.81
13 | 712, -0.4, -2.57
14 | 706, 1.68, -3.41
15 | 725, 1.68, -3.69
16 | 707, 1.68, -1.89
17 | 724, 1.68, -1.13
18 | 722, 1.56, -1.89
19 | 708, -0.32, -4.93
20 | 733, -0.32, -5.25
21 | 732, -0.64, -4.93
22 | 709, 0, -4.93
23 | 731, 0.6, -4.93
24 | 710, -0.84, -5.81
25 | 735, -0.84, -6.01
26 | 736, -0.84, -4.53
27 | 711, 0.48, -6.45
28 | 741, 0.88, -6.45
29 | 740, 0.48, -6.25
30 | 718, 0.88, -3.41
31 | 744, -0.52, -4.13
32 | 734, -0.32, -5.81
33 | 737, -0.32, -6.45
34 | 738, 0.08, -6.45
35 | 728, -0.52, -4.33
36 | 729, -0.8, -4.13
37 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/MEAS_files/Init_Elem_ft_PMU.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "element_name":"Line.from_1_to_2",
4 | "num_ph":1,
5 | "num_cond":1,
6 | "conn":null,
7 | "from_bus":1,
8 | "to_bus":2,
9 | "bus1":1,
10 | "bus2":2,
11 | "ph_1":1,
12 | "ph_2":0,
13 | "ph_3":0,
14 | "Unc(%)_Ift":0,
15 | "STS_Ift":0
16 | },
17 | "1":{
18 | "element_name":"Line.from_2_to_3",
19 | "num_ph":1,
20 | "num_cond":1,
21 | "conn":null,
22 | "from_bus":2,
23 | "to_bus":3,
24 | "bus1":2,
25 | "bus2":3,
26 | "ph_1":1,
27 | "ph_2":0,
28 | "ph_3":0,
29 | "Unc(%)_Ift":0,
30 | "STS_Ift":0
31 | },
32 | "2":{
33 | "element_name":"Line.from_3_to_4",
34 | "num_ph":1,
35 | "num_cond":1,
36 | "conn":null,
37 | "from_bus":3,
38 | "to_bus":4,
39 | "bus1":3,
40 | "bus2":4,
41 | "ph_1":1,
42 | "ph_2":0,
43 | "ph_3":0,
44 | "Unc(%)_Ift":0,
45 | "STS_Ift":0
46 | }
47 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/IEEE37_BusXY.csv:
--------------------------------------------------------------------------------
1 | SourceBus, 0.00, 0.02
2 | 799, 0.00, 0.01
3 | 799r, 0.00, 0.00
4 | 701, 0.00, -1.85
5 | 702, 0.00, -2.81
6 | 703, 0.00, -4.13
7 | 704, 0.88, -2.81
8 | 705, -0.40, -2.81
9 | 706, 1.68, -3.41
10 | 707, 1.68, -1.89
11 | 708, -0.32, -4.93
12 | 709, 0.00, -4.93
13 | 710, -0.84, -5.81
14 | 711, 0.48, -6.45
15 | 712, -0.40, -2.57
16 | 713, 0.36, -2.81
17 | 714, 0.88, -2.89
18 | 718, 0.88, -3.41
19 | 720, 1.68, -2.81
20 | 722, 1.56, -1.89
21 | 724, 1.68, -1.13
22 | 725, 1.68, -3.69
23 | 727, -0.24, -4.13
24 | 728, -0.52, -4.33
25 | 729, -0.80, -4.13
26 | 730, 0.00, -4.73
27 | 731, 0.60, -4.93
28 | 732, -0.64, -4.93
29 | 733, -0.32, -5.25
30 | 734, -0.32, -5.81
31 | 735, -0.84, -6.01
32 | 736, -0.84, -4.53
33 | 737, -0.32, -6.45
34 | 738, 0.08, -6.45
35 | 740, 0.48, -6.25
36 | 741, 0.88, -6.45
37 | 742, -0.72, -2.81
38 | 744, -0.52, -4.13
39 | 775, 0.00, -4.94
40 |
41 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/MEAS_files/Init_Bus_i.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "bus_name":1,
4 | "num_nodes":1,
5 | "ph_1":1,
6 | "ph_2":0,
7 | "ph_3":0,
8 | "Unc(%)_Vm":2,
9 | "STS_Vm":1,
10 | "Unc(%)_PQd":0.0,
11 | "STS_PQd(SM)":0,
12 | "STS_PQd(0)":0,
13 | "STS_PQd(Psd)":0
14 | },
15 | "1":{
16 | "bus_name":2,
17 | "num_nodes":1,
18 | "ph_1":1,
19 | "ph_2":0,
20 | "ph_3":0,
21 | "Unc(%)_Vm":0.0,
22 | "STS_Vm":0,
23 | "Unc(%)_PQd":0.1,
24 | "STS_PQd(SM)":0,
25 | "STS_PQd(0)":1,
26 | "STS_PQd(Psd)":0
27 | },
28 | "2":{
29 | "bus_name":3,
30 | "num_nodes":1,
31 | "ph_1":1,
32 | "ph_2":0,
33 | "ph_3":0,
34 | "Unc(%)_Vm":0.0,
35 | "STS_Vm":0,
36 | "Unc(%)_PQd":5,
37 | "STS_PQd(SM)":1,
38 | "STS_PQd(0)":0,
39 | "STS_PQd(Psd)":0
40 | },
41 | "3":{
42 | "bus_name":4,
43 | "num_nodes":1,
44 | "ph_1":1,
45 | "ph_2":0,
46 | "ph_3":0,
47 | "Unc(%)_Vm":0.0,
48 | "STS_Vm":0,
49 | "Unc(%)_PQd":45,
50 | "STS_PQd(SM)":0,
51 | "STS_PQd(0)":0,
52 | "STS_PQd(Psd)":1
53 | }
54 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/MEAS_files/Init_Elem_ft.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "element_name":"Line.from_1_to_2",
4 | "num_ph":1,
5 | "num_cond":1,
6 | "conn":null,
7 | "from_bus":1,
8 | "to_bus":2,
9 | "bus1":1,
10 | "bus2":2,
11 | "ph_1":1,
12 | "ph_2":0,
13 | "ph_3":0,
14 | "Unc(%)_PQft":3,
15 | "STS_PQft":1,
16 | "Unc(%)_Ift":0,
17 | "STS_Ift":0
18 | },
19 | "1":{
20 | "element_name":"Line.from_2_to_3",
21 | "num_ph":1,
22 | "num_cond":1,
23 | "conn":null,
24 | "from_bus":2,
25 | "to_bus":3,
26 | "bus1":2,
27 | "bus2":3,
28 | "ph_1":1,
29 | "ph_2":0,
30 | "ph_3":0,
31 | "Unc(%)_PQft":0.0,
32 | "STS_PQft":0,
33 | "Unc(%)_Ift":0,
34 | "STS_Ift":0
35 | },
36 | "2":{
37 | "element_name":"Line.from_3_to_4",
38 | "num_ph":1,
39 | "num_cond":1,
40 | "conn":null,
41 | "from_bus":3,
42 | "to_bus":4,
43 | "bus1":3,
44 | "bus2":4,
45 | "ph_1":1,
46 | "ph_2":0,
47 | "ph_3":0,
48 | "Unc(%)_PQft":0.0,
49 | "STS_PQft":0,
50 | "Unc(%)_Ift":0,
51 | "STS_Ift":0
52 | }
53 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/PosSeq circuit/Spectrum.DSS:
--------------------------------------------------------------------------------
1 | New "Spectrum.default" NumHarm=7 harmonic=(1, 3, 5, 7, 9, 11, 13, ) %mag=(100, 33, 20, 14, 11, 9, 7, ) angle=(0, 0, 0, 0, 0, 0, 0, )
2 | New "Spectrum.defaultload" NumHarm=7 harmonic=(1, 3, 5, 7, 9, 11, 13, ) %mag=(100, 1.5, 20, 14, 1, 9, 7, ) angle=(0, 180, 180, 180, 180, 180, 180, )
3 | New "Spectrum.defaultgen" NumHarm=7 harmonic=(1, 3, 5, 7, 9, 11, 13, ) %mag=(100, 5, 3, 1.5, 1, 0.7, 0.5, ) angle=(0, 0, 0, 0, 0, 0, 0, )
4 | New "Spectrum.defaultvsource" NumHarm=1 harmonic=(1, ) %mag=(100, ) angle=(0, )
5 | New "Spectrum.linear" NumHarm=1 harmonic=(1, ) %mag=(100, ) angle=(0, )
6 | New "Spectrum.pwm6" NumHarm=13 harmonic=(1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, ) %mag=(100, 4.4, 76.5, 62.7, 2.9, 24.8, 12.7, 0.5, 7.1, 8.4, 0.9, 4.4, 3.3, ) angle=(-103, -5, 28, -180, -33, -59, 79, 36, -253, -124, 3, -30, 86, )
7 | New "Spectrum.dc6" NumHarm=10 harmonic=(1, 3, 5, 7, 9, 11, 13, 15, 17, 19, ) %mag=(100, 1.2, 33.6, 1.6, 0.4, 8.7, 1.2, 0.3, 4.5, 1.3, ) angle=(-75, 28, 156, 29, -91, 49, 54, 148, -57, -46, )
8 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/PosSeq circuit/Spectrum.DSS:
--------------------------------------------------------------------------------
1 | New "Spectrum.default" NumHarm=7 harmonic=(1, 3, 5, 7, 9, 11, 13, ) %mag=(100, 33, 20, 14, 11, 9, 7, ) angle=(0, 0, 0, 0, 0, 0, 0, )
2 | New "Spectrum.defaultload" NumHarm=7 harmonic=(1, 3, 5, 7, 9, 11, 13, ) %mag=(100, 1.5, 20, 14, 1, 9, 7, ) angle=(0, 180, 180, 180, 180, 180, 180, )
3 | New "Spectrum.defaultgen" NumHarm=7 harmonic=(1, 3, 5, 7, 9, 11, 13, ) %mag=(100, 5, 3, 1.5, 1, 0.7, 0.5, ) angle=(0, 0, 0, 0, 0, 0, 0, )
4 | New "Spectrum.defaultvsource" NumHarm=1 harmonic=(1, ) %mag=(100, ) angle=(0, )
5 | New "Spectrum.linear" NumHarm=1 harmonic=(1, ) %mag=(100, ) angle=(0, )
6 | New "Spectrum.pwm6" NumHarm=13 harmonic=(1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, ) %mag=(100, 4.4, 76.5, 62.7, 2.9, 24.8, 12.7, 0.5, 7.1, 8.4, 0.9, 4.4, 3.3, ) angle=(-103, -5, 28, -180, -33, -59, 79, 36, -253, -124, 3, -30, 86, )
7 | New "Spectrum.dc6" NumHarm=10 harmonic=(1, 3, 5, 7, 9, 11, 13, 15, 17, 19, ) %mag=(100, 1.2, 33.6, 1.6, 0.4, 8.7, 1.2, 0.3, 4.5, 1.3, ) angle=(-75, 28, 156, 29, -91, 49, 54, 148, -57, -46, )
8 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/MEAS_files/MEAS_Elem_ft_PMU.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "element_name":"Line.from_1_to_2",
4 | "num_ph":1,
5 | "from_bus":1,
6 | "to_bus":2,
7 | "ph_1":1,
8 | "ph_2":0,
9 | "ph_3":0,
10 | "STS_Ift":0,
11 | "Rii_Ift":0,
12 | "I1mft(pu)":0,
13 | "I2mft(pu)":0,
14 | "I3mft(pu)":0,
15 | "Ang1m(deg)":0,
16 | "Ang2m(deg)":0,
17 | "Ang3m(deg)":0
18 | },
19 | "1":{
20 | "element_name":"Line.from_2_to_3",
21 | "num_ph":1,
22 | "from_bus":2,
23 | "to_bus":3,
24 | "ph_1":1,
25 | "ph_2":0,
26 | "ph_3":0,
27 | "STS_Ift":0,
28 | "Rii_Ift":0,
29 | "I1mft(pu)":0,
30 | "I2mft(pu)":0,
31 | "I3mft(pu)":0,
32 | "Ang1m(deg)":0,
33 | "Ang2m(deg)":0,
34 | "Ang3m(deg)":0
35 | },
36 | "2":{
37 | "element_name":"Line.from_3_to_4",
38 | "num_ph":1,
39 | "from_bus":3,
40 | "to_bus":4,
41 | "ph_1":1,
42 | "ph_2":0,
43 | "ph_3":0,
44 | "STS_Ift":0,
45 | "Rii_Ift":0,
46 | "I1mft(pu)":0,
47 | "I2mft(pu)":0,
48 | "I3mft(pu)":0,
49 | "Ang1m(deg)":0,
50 | "Ang2m(deg)":0,
51 | "Ang3m(deg)":0
52 | }
53 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/OpenDSS files/Load_15node.dss:
--------------------------------------------------------------------------------
1 | New "Load.1" bus1=Bus_1.1 phases=1 conn=LN kV=11 kva=0 Kw=0
2 | New "Load.2" bus1=Bus_2.1 phases=1 conn=LN kV=11 kva=63 pf=0.7
3 | New "Load.3" bus1=Bus_3.1 phases=1 conn=LN kV=11 kva=100 pf=0.7
4 | New "Load.4" bus1=Bus_4.1 phases=1 conn=LN kV=11 kva=200 pf=0.7
5 | New "Load.5" bus1=Bus_5.1 phases=1 conn=LN kV=11 kva=63 pf=0.7
6 | New "Load.6" bus1=Bus_6.1 phases=1 conn=LN kV=11 kva=200 pf=0.7
7 | New "Load.7" bus1=Bus_7.1 phases=1 conn=LN kV=11 kva=200 pf=0.7
8 | New "Load.8" bus1=Bus_8.1 phases=1 conn=LN kV=11 kva=100 pf=0.7
9 | New "Load.9" bus1=Bus_9.1 phases=1 conn=LN kV=11 kva=100 pf=0.7
10 | New "Load.10" bus1=Bus_10.1 phases=1 conn=LN kV=11 kva=63 pf=0.7
11 | New "Load.11" bus1=Bus_11.1 phases=1 conn=LN kV=11 kva=200 pf=0.7
12 | New "Load.12" bus1=Bus_12.1 phases=1 conn=LN kV=11 kva=20 pf=0.7
13 | New "Load.13" bus1=Bus_13.1 phases=1 conn=LN kV=11 kva=100 pf=0.7
14 | New "Load.14" bus1=Bus_14.1 phases=1 conn=LN kV=11 kva=100 pf=0.7
15 | New "Load.15" bus1=Bus_15.1 phases=1 conn=LN kV=11 kva=200 pf=0.7
16 |
--------------------------------------------------------------------------------
/pyproject.toml:
--------------------------------------------------------------------------------
1 | [tool.poetry]
2 | name = "openpy-dsse"
3 | version = "0.1.4"
4 | description = "Open source library for state estimation of a distribution network modeled in OpenDSS"
5 | authors = ["Jorge Lara "]
6 | license = "LICENSE"
7 | readme = "README.md"
8 | keywords = ["OpenDSS", "DSSE", "state estimation", "smart grid", "OpenPy-DSSE", "OpenPy_DSSE"]
9 |
10 | packages = [{include = "openpy_dsse"}]
11 | exclude = ["openpy_dsse/examples/**/*.xlsx"]
12 |
13 | [tool.poetry.dependencies]
14 | python = "^3.8"
15 | colorama = "0.4.6"
16 | contourpy = "1.0.5"
17 | cycler = "0.11.0"
18 | et-xmlfile = "1.1.0"
19 | fonttools = "4.38.0"
20 | kiwisolver = "1.4.4"
21 | matplotlib = "3.6.0"
22 | mpmath = "1.2.1"
23 | numpy = "1.23.5"
24 | openpyxl = "3.0.10"
25 | packaging = "21.3"
26 | pandas = "1.2.3"
27 | pillow = "9.2.0"
28 | py-dss-interface = "1.0.2"
29 | pyparsing = "3.0.9"
30 | python-dateutil = "2.8.2"
31 | pytz = "2022.6"
32 | scipy = "1.9.3"
33 | seaborn = "0.12.1"
34 | six = "1.16.0"
35 | sympy = "1.11.1"
36 |
37 |
38 | [build-system]
39 | requires = ["poetry-core"]
40 | build-backend = "poetry.core.masonry.api"
41 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/MEAS_files/MEAS_Bus_i_PMU.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "bus_name":1,
4 | "num_nodes":1,
5 | "ph_1":1,
6 | "ph_2":0,
7 | "ph_3":0,
8 | "STS_Vm":0,
9 | "Rii_Vm":0,
10 | "V1m(pu)":0,
11 | "V2m(pu)":0,
12 | "V3m(pu)":0,
13 | "Ang1m(deg)":0,
14 | "Ang2m(deg)":0,
15 | "Ang3m(deg)":0
16 | },
17 | "1":{
18 | "bus_name":2,
19 | "num_nodes":1,
20 | "ph_1":1,
21 | "ph_2":0,
22 | "ph_3":0,
23 | "STS_Vm":0,
24 | "Rii_Vm":0,
25 | "V1m(pu)":0,
26 | "V2m(pu)":0,
27 | "V3m(pu)":0,
28 | "Ang1m(deg)":0,
29 | "Ang2m(deg)":0,
30 | "Ang3m(deg)":0
31 | },
32 | "2":{
33 | "bus_name":3,
34 | "num_nodes":1,
35 | "ph_1":1,
36 | "ph_2":0,
37 | "ph_3":0,
38 | "STS_Vm":0,
39 | "Rii_Vm":0,
40 | "V1m(pu)":0,
41 | "V2m(pu)":0,
42 | "V3m(pu)":0,
43 | "Ang1m(deg)":0,
44 | "Ang2m(deg)":0,
45 | "Ang3m(deg)":0
46 | },
47 | "3":{
48 | "bus_name":4,
49 | "num_nodes":1,
50 | "ph_1":1,
51 | "ph_2":0,
52 | "ph_3":0,
53 | "STS_Vm":0,
54 | "Rii_Vm":0,
55 | "V1m(pu)":0,
56 | "V2m(pu)":0,
57 | "V3m(pu)":0,
58 | "Ang1m(deg)":0,
59 | "Ang2m(deg)":0,
60 | "Ang3m(deg)":0
61 | }
62 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/Lines.DSS:
--------------------------------------------------------------------------------
1 | !LINE DEFINITIONS
2 | New Line.650632 Phases=3 Bus1=650.1.2.3 Bus2=632.1.2.3 LineCode=mtx601 Length=2000 units=ft
3 | New Line.632670 Phases=3 Bus1=632.1.2.3 Bus2=670.1.2.3 LineCode=mtx601 Length=667 units=ft
4 | New Line.670671 Phases=3 Bus1=670.1.2.3 Bus2=671.1.2.3 LineCode=mtx601 Length=1333 units=ft
5 | New Line.671680 Phases=3 Bus1=671.1.2.3 Bus2=680.1.2.3 LineCode=mtx601 Length=1000 units=ft
6 | New Line.632633 Phases=3 Bus1=632.1.2.3 Bus2=633.1.2.3 LineCode=mtx602 Length=500 units=ft
7 | New Line.632645 Phases=2 Bus1=632.3.2 Bus2=645.3.2 LineCode=mtx603 Length=500 units=ft
8 | New Line.645646 Phases=2 Bus1=645.3.2 Bus2=646.3.2 LineCode=mtx603 Length=300 units=ft
9 | New Line.692675 Phases=3 Bus1=692.1.2.3 Bus2=675.1.2.3 LineCode=mtx606 Length=500 units=ft
10 | New Line.671684 Phases=2 Bus1=671.1.3 Bus2=684.1.3 LineCode=mtx604 Length=300 units=ft
11 | New Line.684611 Phases=1 Bus1=684.3 Bus2=611.3 LineCode=mtx605 Length=300 units=ft
12 | New Line.684652 Phases=1 Bus1=684.1 Bus2=652.1 LineCode=mtx607 Length=800 units=ft
13 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/PosSeq circuit/TCC_Curve.DSS:
--------------------------------------------------------------------------------
1 | New "TCC_Curve.a" npts=5 C_array=[ 1 2.5 4.5 8 14] T_array=[ 0.15 0.07 0.05 0.045 0.045]
2 | New "TCC_Curve.d" npts=5 C_array=[ 1 2.5 4.5 8 14] T_array=[ 6 0.7 0.2 0.06 0.02]
3 | New "TCC_Curve.tlink" npts=7 C_array=[ 2 2.1 3 4 6 22 50] T_array=[ 300 100 10.1 4 1.4 0.1 0.02]
4 | New "TCC_Curve.klink" npts=6 C_array=[ 2 2.2 3 4 6 30] T_array=[ 300 20 4 1.3 0.41 0.02]
5 | New "TCC_Curve.uv1547" npts=2 C_array=[ 0.5 0.9] T_array=[ 0.166 2]
6 | New "TCC_Curve.ov1547" npts=2 C_array=[ 1.1 1.2] T_array=[ 2 0.166]
7 | New "TCC_Curve.mod_inv" npts=15 C_array=[ 1.1 1.3 1.5 2 3 4 5 6 7 8 9 10 20 50 100] T_array=[ 27.1053 9.9029 6.439 3.8032 2.4322 1.9458 1.6883 1.5255 1.4117 1.3267 1.2604 1.2068 0.9481 0.7468 0.6478]
8 | New "TCC_Curve.very_inv" npts=15 C_array=[ 1.1 1.3 1.5 2 3 4 5 6 7 8 9 10 20 50 100] T_array=[ 93.872 28.9113 16.179 7.0277 2.9423 1.7983 1.3081 1.0513 0.8995 0.8023 0.7361 0.6891 0.5401 0.4988 0.493]
9 | New "TCC_Curve.ext_inv" npts=15 C_array=[ 1.1 1.3 1.5 2 3 4 5 6 7 8 9 10 20 50 100] T_array=[ 134.407 40.9913 22.6817 9.5217 3.6467 2.0017 1.2967 0.9274 0.7092 0.5693 0.4742 0.4065 0.1924 0.133 0.1245]
10 | New "TCC_Curve.definite" npts=3 C_array=[ 1 1.001 100] T_array=[ 300 1 1]
11 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/PosSeq circuit/TCC_Curve.DSS:
--------------------------------------------------------------------------------
1 | New "TCC_Curve.a" npts=5 C_array=[ 1 2.5 4.5 8 14] T_array=[ 0.15 0.07 0.05 0.045 0.045]
2 | New "TCC_Curve.d" npts=5 C_array=[ 1 2.5 4.5 8 14] T_array=[ 6 0.7 0.2 0.06 0.02]
3 | New "TCC_Curve.tlink" npts=7 C_array=[ 2 2.1 3 4 6 22 50] T_array=[ 300 100 10.1 4 1.4 0.1 0.02]
4 | New "TCC_Curve.klink" npts=6 C_array=[ 2 2.2 3 4 6 30] T_array=[ 300 20 4 1.3 0.41 0.02]
5 | New "TCC_Curve.uv1547" npts=2 C_array=[ 0.5 0.9] T_array=[ 0.166 2]
6 | New "TCC_Curve.ov1547" npts=2 C_array=[ 1.1 1.2] T_array=[ 2 0.166]
7 | New "TCC_Curve.mod_inv" npts=15 C_array=[ 1.1 1.3 1.5 2 3 4 5 6 7 8 9 10 20 50 100] T_array=[ 27.1053 9.9029 6.439 3.8032 2.4322 1.9458 1.6883 1.5255 1.4117 1.3267 1.2604 1.2068 0.9481 0.7468 0.6478]
8 | New "TCC_Curve.very_inv" npts=15 C_array=[ 1.1 1.3 1.5 2 3 4 5 6 7 8 9 10 20 50 100] T_array=[ 93.872 28.9113 16.179 7.0277 2.9423 1.7983 1.3081 1.0513 0.8995 0.8023 0.7361 0.6891 0.5401 0.4988 0.493]
9 | New "TCC_Curve.ext_inv" npts=15 C_array=[ 1.1 1.3 1.5 2 3 4 5 6 7 8 9 10 20 50 100] T_array=[ 134.407 40.9913 22.6817 9.5217 3.6467 2.0017 1.2967 0.9274 0.7092 0.5693 0.4742 0.4065 0.1924 0.133 0.1245]
10 | New "TCC_Curve.definite" npts=3 C_array=[ 1 1.001 100] T_array=[ 300 1 1]
11 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/OpenDSS files/Line_15node.dss:
--------------------------------------------------------------------------------
1 | New "Line.from_1_to_2" phases=1 bus1=Bus_1.1 bus2=Bus_2.1 rmatrix=[1.530] xmatrix=[1.778]
2 | New "Line.from_2_to_3" phases=1 bus1=Bus_2.1 bus2=Bus_3.1 rmatrix=[1.037] xmatrix=[1.071]
3 | New "Line.from_3_to_4" phases=1 bus1=Bus_3.1 bus2=Bus_4.1 rmatrix=[1.224] xmatrix=[1.428]
4 | New "Line.from_4_to_5" phases=1 bus1=Bus_4.1 bus2=Bus_5.1 rmatrix=[1.262] xmatrix=[1.499]
5 | New "Line.from_2_to_9" phases=1 bus1=Bus_2.1 bus2=Bus_9.1 rmatrix=[1.176] xmatrix=[1.335]
6 | New "Line.from_9_to_10" phases=1 bus1=Bus_9.1 bus2=Bus_10.1 rmatrix=[1.100] xmatrix=[1.190]
7 | New "Line.from_2_to_6" phases=1 bus1=Bus_2.1 bus2=Bus_6.1 rmatrix=[1.174] xmatrix=[1.332]
8 | New "Line.from_6_to_7" phases=1 bus1=Bus_6.1 bus2=Bus_7.1 rmatrix=[1.174] xmatrix=[1.332]
9 | New "Line.from_6_to_8" phases=1 bus1=Bus_6.1 bus2=Bus_8.1 rmatrix=[1.174] xmatrix=[1.332]
10 | New "Line.from_3_to_11" phases=1 bus1=Bus_3.1 bus2=Bus_11.1 rmatrix=[1.150] xmatrix=[1.285]
11 | New "Line.from_11_to_12" phases=1 bus1=Bus_11.1 bus2=Bus_12.1 rmatrix=[1.274] xmatrix=[1.522]
12 | New "Line.from_12_to_13" phases=1 bus1=Bus_12.1 bus2=Bus_13.1 rmatrix=[1.274] xmatrix=[1.522]
13 | New "Line.from_4_to_14" phases=1 bus1=Bus_4.1 bus2=Bus_14.1 rmatrix=[1.075] xmatrix=[1.522]
14 | New "Line.from_4_to_15" phases=1 bus1=Bus_4.1 bus2=Bus_15.1 rmatrix=[1.075] xmatrix=[1.522]
15 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/MEAS_files/MEAS_Elem_ft.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "element_name":"Line.from_1_to_2",
4 | "num_ph":1,
5 | "from_bus":"1",
6 | "to_bus":"2",
7 | "ph_1":1,
8 | "ph_2":0,
9 | "ph_3":0,
10 | "STS_PQft":1,
11 | "Rii_PQft":0.0001,
12 | "P1mft(pu)":0.02183,
13 | "P2mft(pu)":0.00009,
14 | "P3mft(pu)":0.00009,
15 | "Q1mft(pu)":0.02233,
16 | "Q2mft(pu)":0.00009,
17 | "Q3mft(pu)":0.00009,
18 | "STS_Ift":0,
19 | "Rii_Ift":0,
20 | "I1mft(pu)":0,
21 | "I2mft(pu)":0,
22 | "I3mft(pu)":0
23 | },
24 | "1":{
25 | "element_name":"Line.from_2_to_3",
26 | "num_ph":1,
27 | "from_bus":"2",
28 | "to_bus":"3",
29 | "ph_1":1,
30 | "ph_2":0,
31 | "ph_3":0,
32 | "STS_PQft":0,
33 | "Rii_PQft":0.0,
34 | "P1mft(pu)":0.0,
35 | "P2mft(pu)":0.0,
36 | "P3mft(pu)":0.0,
37 | "Q1mft(pu)":0.0,
38 | "Q2mft(pu)":0.0,
39 | "Q3mft(pu)":0.0,
40 | "STS_Ift":0,
41 | "Rii_Ift":0,
42 | "I1mft(pu)":0,
43 | "I2mft(pu)":0,
44 | "I3mft(pu)":0
45 | },
46 | "2":{
47 | "element_name":"Line.from_3_to_4",
48 | "num_ph":1,
49 | "from_bus":"3",
50 | "to_bus":"4",
51 | "ph_1":1,
52 | "ph_2":0,
53 | "ph_3":0,
54 | "STS_PQft":0,
55 | "Rii_PQft":0.0,
56 | "P1mft(pu)":0.0,
57 | "P2mft(pu)":0.0,
58 | "P3mft(pu)":0.0,
59 | "Q1mft(pu)":0.0,
60 | "Q2mft(pu)":0.0,
61 | "Q3mft(pu)":0.0,
62 | "STS_Ift":0,
63 | "Rii_Ift":0,
64 | "I1mft(pu)":0,
65 | "I2mft(pu)":0,
66 | "I3mft(pu)":0
67 | }
68 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/PosSeq circuit/Load.DSS:
--------------------------------------------------------------------------------
1 | New "Load.671" bus1=671 model=1 phases=1 conn=wye kV=2.4018 kW=385 kvar=220
2 | New "Load.633a" bus1=633 model=1 phases=1 conn=wye kV=2.4 kW=53.333 kvar=36.667
3 | New "Load.633b" bus1=633 model=1 phases=1 conn=wye kV=2.4 kW=40 kvar=30
4 | New "Load.633c" bus1=633 model=1 phases=1 conn=wye kV=2.4 kW=40 kvar=30
5 | New "Load.645" bus1=645 model=1 phases=1 conn=wye kV=2.4 kW=56.667 kvar=41.667
6 | New "Load.646" bus1=646 model=2 phases=1 conn=wye kV=2.4018 kW=76.667 kvar=44
7 | New "Load.692" bus1=692 model=5 phases=1 conn=wye kV=2.4018 kW=56.667 kvar=50.333
8 | New "Load.675a" bus1=675 model=1 phases=1 conn=wye kV=2.4 kW=161.67 kvar=63.333
9 | New "Load.675b" bus1=675 model=1 phases=1 conn=wye kV=2.4 kW=22.667 kvar=20
10 | New "Load.675c" bus1=675 model=1 phases=1 conn=wye kV=2.4 kW=96.667 kvar=70.667
11 | New "Load.611" bus1=611 model=5 phases=1 conn=wye kV=2.4 kW=56.667 kvar=26.667
12 | New "Load.652" bus1=652 model=2 phases=1 conn=wye kV=2.4 kW=42.667 kvar=28.667
13 | New "Load.670a" bus1=670 model=1 phases=1 conn=wye kV=2.4 kW=5.6667 kvar=3.3333
14 | New "Load.670b" bus1=670 model=1 phases=1 conn=wye kV=2.4 kW=22 kvar=12.667
15 | New "Load.670c" bus1=670 model=1 phases=1 conn=wye kV=2.4 kW=39 kvar=22.667
16 | New "Load.650" bus1=650 model=1 phases=1 conn=wye kV=2.4018 kW=0 kvar=0
17 | New "Load.632" bus1=632 model=1 phases=1 conn=wye kV=2.4018 kW=0 kvar=0
18 | New "Load.680" bus1=680 model=1 phases=1 conn=wye kV=2.4018 kW=0 kvar=0
19 | New "Load.684" bus1=684 model=1 phases=1 conn=wye kV=2.4018 kW=0 kvar=0
20 |
--------------------------------------------------------------------------------
/poetry-convert.py:
--------------------------------------------------------------------------------
1 | #!python3
2 | """
3 | Convert a requirements.txt file to a Poetry project.
4 | Just place in the root of your working directory and run!
5 | """
6 | sourceFile = "./requeriments.txt"
7 |
8 | import re
9 | import os
10 |
11 | if not os.path.exists(sourceFile):
12 | # Install Pigar and run it to generate your initial requirements
13 | # https://github.com/damnever/pigar
14 | os.system("pip install pigar")
15 | os.system(f"pigar -o ~= -p {sourceFile}")
16 |
17 | # We don't need to keep track of this file
18 | with open(".gitignore", "a") as fh:
19 | fh.write("\npoetry-convert.py\n")
20 |
21 | # Initialize Poetry if it doesn't yet have a pyproject.toml file
22 | if not os.path.exists("./pyproject.toml"):
23 | os.system("poetry init")
24 |
25 | with open(sourceFile) as fh:
26 | requirements = fh.read()
27 |
28 | noComments = re.sub("^#.*$", "", requirements, 0, re.IGNORECASE | re.MULTILINE)
29 | bareRequirements = re.sub("\n+", "\n", noComments, 0, re.IGNORECASE | re.MULTILINE).strip()
30 |
31 | pipPoetryMap = {
32 | ">": "^",
33 | "=": ""
34 | }
35 |
36 | reqList = list()
37 | for line in bareRequirements.splitlines():
38 | package, match, version = re.sub(r"^(.*?)\s*([~>=<])=\s*v?([0-9\.\*]+)", r"\1,\2,\3", line, 0, re.IGNORECASE | re.MULTILINE).split(",")
39 | try:
40 | poetryMatch = pipPoetryMap[match]
41 | except KeyError:
42 | poetryMatch = match
43 | poetryLine = f"{package}:{poetryMatch}{version}"
44 | reqList.append(poetryLine)
45 |
46 | print("Found Poetry-compatible dependencies:")
47 | print(reqList)
48 |
49 | for req in reqList:
50 | os.system(f"poetry add {req}")
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/MEAS_files/Pos_MEAS_Bus_i_PMU.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "bus_name":"650",
4 | "STS_Vm":0,
5 | "Rii_Vm":0,
6 | "V1m(pu)":0,
7 | "Ang1m(deg)":0
8 | },
9 | "1":{
10 | "bus_name":"671",
11 | "STS_Vm":0,
12 | "Rii_Vm":0,
13 | "V1m(pu)":0,
14 | "Ang1m(deg)":0
15 | },
16 | "2":{
17 | "bus_name":"633",
18 | "STS_Vm":0,
19 | "Rii_Vm":0,
20 | "V1m(pu)":0,
21 | "Ang1m(deg)":0
22 | },
23 | "3":{
24 | "bus_name":"645",
25 | "STS_Vm":0,
26 | "Rii_Vm":0,
27 | "V1m(pu)":0,
28 | "Ang1m(deg)":0
29 | },
30 | "4":{
31 | "bus_name":"646",
32 | "STS_Vm":0,
33 | "Rii_Vm":0,
34 | "V1m(pu)":0,
35 | "Ang1m(deg)":0
36 | },
37 | "5":{
38 | "bus_name":"692",
39 | "STS_Vm":0,
40 | "Rii_Vm":0,
41 | "V1m(pu)":0,
42 | "Ang1m(deg)":0
43 | },
44 | "6":{
45 | "bus_name":"675",
46 | "STS_Vm":0,
47 | "Rii_Vm":0,
48 | "V1m(pu)":0,
49 | "Ang1m(deg)":0
50 | },
51 | "7":{
52 | "bus_name":"611",
53 | "STS_Vm":0,
54 | "Rii_Vm":0,
55 | "V1m(pu)":0,
56 | "Ang1m(deg)":0
57 | },
58 | "8":{
59 | "bus_name":"652",
60 | "STS_Vm":0,
61 | "Rii_Vm":0,
62 | "V1m(pu)":0,
63 | "Ang1m(deg)":0
64 | },
65 | "9":{
66 | "bus_name":"670",
67 | "STS_Vm":0,
68 | "Rii_Vm":0,
69 | "V1m(pu)":0,
70 | "Ang1m(deg)":0
71 | },
72 | "10":{
73 | "bus_name":"632",
74 | "STS_Vm":0,
75 | "Rii_Vm":0,
76 | "V1m(pu)":0,
77 | "Ang1m(deg)":0
78 | },
79 | "11":{
80 | "bus_name":"680",
81 | "STS_Vm":0,
82 | "Rii_Vm":0,
83 | "V1m(pu)":0,
84 | "Ang1m(deg)":0
85 | },
86 | "12":{
87 | "bus_name":"684",
88 | "STS_Vm":0,
89 | "Rii_Vm":0,
90 | "V1m(pu)":0,
91 | "Ang1m(deg)":0
92 | }
93 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/Loads.DSS:
--------------------------------------------------------------------------------
1 | !LOAD DEFINITIONS
2 | New Load.671 Bus1=671.1.2.3 Phases=3 Conn=LN Model=1 kV=4.16 kW=1155 kvar=660
3 | New Load.633a Bus1=633.1 Phases=1 Conn=LN Model=1 kV=2.4 kW=160 kvar=110
4 | New Load.633b Bus1=633.2 Phases=1 Conn=LN Model=1 kV=2.4 kW=120 kvar=90
5 | New Load.633c Bus1=633.3 Phases=1 Conn=LN Model=1 kV=2.4 kW=120 kvar=90
6 | New Load.645 Bus1=645.2 Phases=1 Conn=LN Model=1 kV=2.4 kW=170 kvar=125
7 | New Load.646 Bus1=646.2.3 Phases=1 Conn=LL Model=2 kV=4.16 kW=230 kvar=132
8 | New Load.692 Bus1=692.3.1 Phases=1 Conn=LL Model=5 kV=4.16 kW=170 kvar=151
9 | New Load.675a Bus1=675.1 Phases=1 Conn=LN Model=1 kV=2.4 kW=485 kvar=190
10 | New Load.675b Bus1=675.2 Phases=1 Conn=LN Model=1 kV=2.4 kW=68 kvar=60
11 | New Load.675c Bus1=675.3 Phases=1 Conn=LN Model=1 kV=2.4 kW=290 kvar=212
12 | New Load.611 Bus1=611.3 Phases=1 Conn=LN Model=5 kV=2.4 kW=170 kvar=80
13 | New Load.652 Bus1=652.1 Phases=1 Conn=LN Model=2 kV=2.4 kW=128 kvar=86
14 | New Load.670a Bus1=670.1 Phases=1 Conn=LN Model=1 kV=2.4 kW=17 kvar=10
15 | New Load.670b Bus1=670.2 Phases=1 Conn=LN Model=1 kV=2.4 kW=66 kvar=38
16 | New Load.670c Bus1=670.3 Phases=1 Conn=LN Model=1 kV=2.4 kW=117 kvar=68
17 |
18 | !Zero injection loads
19 | New Load.650 Bus1=650.1.2.3 Phases=3 Conn=LN Model=1 kV=4.16 kW=0 kvar=0
20 | New Load.632 Bus1=632.1.2.3 Phases=3 Conn=LN Model=1 kV=4.16 kW=0 kvar=0
21 | New Load.680 Bus1=680.1.2.3 Phases=3 Conn=LN Model=1 kV=4.16 kW=0 kvar=0
22 | New Load.684 Bus1=684.1.3 Phases=1 Conn=LL Model=1 kV=4.16 kW=0 kvar=0
--------------------------------------------------------------------------------
/main.py:
--------------------------------------------------------------------------------
1 | import openpy_dsse
2 | from sympy.integrals.rubi.utility_function import Rest
3 |
4 | dsse = openpy_dsse.init_DSSE(
5 | init_values='flat'
6 | ) #Start the class.
7 |
8 | if __name__ == '__main__':
9 | net = dsse.test_circuit(
10 | Typ_cir='1ph',
11 | case=1
12 | )
13 | #net = dsse.test_circuit(Typ_cir='Pos', case=2)
14 |
15 | #dsse.empty_MEAS_files(DSS_path=net['DSS_file'], MEAS_path=net['MEAS_path'])
16 | #dsse.empty_init_files_MEAS_Unc(DSS_path=net['DSS_file'], MEAS_path_save=net['MEAS_path'])
17 | #dsse.add_error_files_MEAS(DSS_path=net['DSS_file'], MEAS_path=net['MEAS_path'])
18 |
19 | #execute the state estimation algorithm
20 | V_Ang_EST = dsse.estimate(
21 | DSS_path=net['DSS_file'],
22 | MEAS_path=net['MEAS_path'],
23 | path_save=net['save_path'],
24 | Typ_cir=net['Typ_cir'],
25 | name_project=net['name_project'],
26 | View_res=True,
27 | summary=True,
28 | DSS_coll=True,
29 | MEAS_Pos=True,
30 | #method='nonlinear'
31 | #method='linear_PMU',
32 | )
33 | I_Angle_EST = dsse.param_elect_from_EST(
34 | EST_df=V_Ang_EST['df_EST'],
35 | I_Ang_EST=True,
36 | View_res=False,
37 | name_project=net['name_project'],
38 | path_save=net['save_path'],
39 | )
40 | metrics = dsse.performance_metrics(
41 | V_Bus=V_Ang_EST,
42 | I_Elem=I_Angle_EST,
43 | MAPE=True,
44 | MAE=True,
45 | RMSE=True,
46 | name_project=net['name_project'],
47 | path_save=net['save_path']
48 | )
49 | dsse.Plot_results(
50 | V_Bus=V_Ang_EST,
51 | I_Elem=I_Angle_EST,
52 | name_project=net['name_project'],
53 | path_save=net['save_path'],
54 | View=False
55 | )
56 |
57 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/PosSeq circuit/ieee13nodeckt_Power.DSV:
--------------------------------------------------------------------------------
1 | SetProp, 1E050, -1E050, 1E050, -1E050, 16777215, 16777215, 0, 4
2 | ClickOn
3 | SetProp, 1E050, -1E050, 1E050, -1E050, 16777215, 16777215, 1, 0
4 | Xlabel, "X"
5 | Ylabel, "Y"
6 | TxtAlign, 1
7 | KeyClass, 1
8 | ChartCaption, "ieee13nodeckt:Power, max=2E003 "
9 | Line, "Line.650632", "650", "632", 0, 2, 0, 0, 2.4017771, 0, 200, 350, 200, 250, 16711680, 9, 0, 0, 0, 0, 16, 1
10 | Line, "Line.632670", "632", "670", 64, 2, 0, 0, 2.4017771, 0, 200, 250, 200, 200, 16711680, 7, 0, 0, 0, 0, 16, 1
11 | Line, "Line.670671", "670", "671", 128, 2, 0, 0, 2.4017771, 0, 200, 200, 200, 100, 16711680, 6, 0, 0, 0, 0, 16, 1
12 | Line, "Line.671680", "671", "680", 192, 2, 0, 0, 2.4017771, 0, 200, 100, 200, 0, 16711680, 1, 0, 0, 0, 0, 16, 1
13 | Line, "Line.632633", "632", "633", 256, 2, 0, 0, 2.4017771, 0, 200, 250, 350, 250, 16711680, 1, 0, 0, 0, 0, 16, 1
14 | Line, "Line.632645", "632", "645", 320, 2, 0, 0, 2.4017771, 0, 200, 250, 100, 250, 16711680, 1, 0, 0, 0, 0, 16, 1
15 | Line, "Line.645646", "645", "646", 384, 2, 0, 0, 2.4017771, 0, 100, 250, 0, 250, 16711680, 1, 0, 0, 0, 0, 16, 1
16 | Line, "Line.692675", "692", "675", 448, 2, 0, 0, 2.4017771, 0, 250, 100, 400, 100, 16711680, 2, 0, 0, 0, 0, 16, 1
17 | Line, "Line.671684", "671", "684", 512, 2, 0, 0, 2.4017771, 0, 200, 100, 100, 100, 16711680, 1, 0, 0, 0, 0, 16, 1
18 | Line, "Line.684611", "684", "611", 576, 2, 0, 0, 2.4017771, 0, 100, 100, 0, 100, 16711680, 1, 0, 0, 0, 0, 16, 1
19 | Line, "Line.684652", "684", "652", 640, 2, 0, 0, 2.4017771, 0, 100, 100, 100, 0, 16711680, 1, 0, 0, 0, 0, 16, 1
20 | Line, "Line.671692", "671", "692", 704, 2, 0, 0, 2.4017771, 0, 200, 100, 250, 100, 0, 1, 0, 0, 0, 5, 16, 1
21 | Range, -67.75, 467.75, -7.14, 349.86
22 | SetProp, -67.75, 467.75, -7.14, 349.86, 16777215, 16777215, 1, 0
23 | KeepAspect, 1
24 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/PosSeq circuit/Line.DSS:
--------------------------------------------------------------------------------
1 | New "Line.650632" bus1=650 bus2=632 Seasons=1 Ratings=[400,] length=2000 r1=3.5221E-005 x1=0.00011302 C1=0.00064394 phases=1 normamps=400 emergamps=600 units=ft
2 | New "Line.632670" bus1=632 bus2=670 Seasons=1 Ratings=[400,] length=667 r1=3.5221E-005 x1=0.00011302 C1=0.00064394 phases=1 normamps=400 emergamps=600 units=ft
3 | New "Line.670671" bus1=670 bus2=671 Seasons=1 Ratings=[400,] length=1333 r1=3.5221E-005 x1=0.00011302 C1=0.00064394 phases=1 normamps=400 emergamps=600 units=ft
4 | New "Line.671680" bus1=671 bus2=680 Seasons=1 Ratings=[400,] length=1000 r1=3.5221E-005 x1=0.00011302 C1=0.00064394 phases=1 normamps=400 emergamps=600 units=ft
5 | New "Line.632633" bus1=632 bus2=633 Seasons=1 Ratings=[400,] length=500 r1=0.00011213 x1=0.00014398 C1=0.00064394 phases=1 normamps=400 emergamps=600 units=ft
6 | New "Line.632645" bus1=632 bus2=645 Seasons=1 Ratings=[400,] length=500 r1=0.00021212 x1=0.00016911 C1=0.0011742 phases=1 normamps=400 emergamps=600 units=ft
7 | New "Line.645646" bus1=645 bus2=646 Seasons=1 Ratings=[400,] length=300 r1=0.00021212 x1=0.00016911 C1=0.0011742 phases=1 normamps=400 emergamps=600 units=ft
8 | New "Line.692675" bus1=692 bus2=675 Seasons=1 Ratings=[400,] length=500 r1=9.120498E-005 x1=7.8059E-005 C1=0.072717 phases=1 normamps=400 emergamps=600 units=ft
9 | New "Line.671684" bus1=671 bus2=684 Seasons=1 Ratings=[400,] length=300 r1=0.00021212 x1=0.00016911 C1=0.0011742 phases=1 normamps=400 emergamps=600 units=ft
10 | New "Line.684611" phases=1 bus1=684 bus2=611 linecode=mtx605 Seasons=1 Ratings=[400,] normamps=400 emergamps=600 length=300 units=ft
11 | New "Line.684652" phases=1 bus1=684 bus2=652 linecode=mtx607 Seasons=1 Ratings=[400,] normamps=400 emergamps=600 length=800 units=ft
12 | New "Line.671692" bus1=671 bus2=692 Switch=True r1=1 x1=1 C1=1.1 phases=1 length=0.001 normamps=400 emergamps=600 units=none
13 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/AddMarks.DSS:
--------------------------------------------------------------------------------
1 | ClearBusMarkers !...Clears any previous bus markers
2 |
3 | AddBusMarker Bus=701 code=15 color=Red size=4
4 | AddBusMarker Bus=712 code=15 color=Red size=4
5 | AddBusMarker Bus=713 code=15 color=Red size=4
6 | AddBusMarker Bus=714 code=15 color=Red size=4
7 | AddBusMarker Bus=718 code=15 color=Red size=4
8 | AddBusMarker Bus=720 code=15 color=Red size=4
9 | AddBusMarker Bus=722 code=15 color=Red size=4
10 | AddBusMarker Bus=724 code=15 color=Red size=4
11 | AddBusMarker Bus=725 code=15 color=Red size=4
12 | AddBusMarker Bus=727 code=15 color=Red size=4
13 | AddBusMarker Bus=728 code=15 color=Red size=4
14 | AddBusMarker Bus=729 code=15 color=Red size=4
15 | AddBusMarker Bus=730 code=15 color=Red size=4
16 | AddBusMarker Bus=731 code=15 color=Red size=4
17 | AddBusMarker Bus=732 code=15 color=Red size=4
18 | AddBusMarker Bus=733 code=15 color=Red size=4
19 | AddBusMarker Bus=734 code=15 color=Red size=4
20 | AddBusMarker Bus=735 code=15 color=Red size=4
21 | AddBusMarker Bus=736 code=15 color=Red size=4
22 | AddBusMarker Bus=737 code=15 color=Red size=4
23 | AddBusMarker Bus=738 code=15 color=Red size=4
24 | AddBusMarker Bus=740 code=15 color=Red size=4
25 | AddBusMarker Bus=741 code=15 color=Red size=4
26 | AddBusMarker Bus=742 code=15 color=Red size=4
27 | AddBusMarker Bus=744 code=15 color=Red size=4
28 |
29 | !zero injection loads
30 | AddBusMarker Bus=702 code=15 color=Green size=4
31 | AddBusMarker Bus=705 code=15 color=Green size=4
32 | AddBusMarker Bus=704 code=15 color=Green size=4
33 | AddBusMarker Bus=707 code=15 color=Green size=4
34 | AddBusMarker Bus=706 code=15 color=Green size=4
35 | AddBusMarker Bus=703 code=15 color=Green size=4
36 | AddBusMarker Bus=709 code=15 color=Green size=4
37 | AddBusMarker Bus=710 code=15 color=Green size=4
38 | AddBusMarker Bus=711 code=15 color=Green size=4
39 |
40 | plot circuit Power max=2000 n n C1=$00FF0000
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/IEEE13Nodeckt_Power.DSV:
--------------------------------------------------------------------------------
1 | SetProp, 1E050, -1E050, 1E050, -1E050, 16777215, 16777215, 0, 4
2 | ClickOn
3 | SetProp, 1E050, -1E050, 1E050, -1E050, 16777215, 16777215, 1, 0
4 | Xlabel, "X"
5 | Ylabel, "Y"
6 | TxtAlign, 1
7 | KeyClass, 1
8 | ChartCaption, "IEEE13Nodeckt:Power, max=2E003 "
9 | Line, "Line.650632", "650.1.2.3", "632.1.2.3", 0, 6, 0, 0, 2.4017771, 0, 200, 350, 200, 250, 16711680, 9, 0, 0, 0, 0, 16, 1
10 | Line, "Line.632670", "632.1.2.3", "670.1.2.3", 192, 6, 0, 0, 2.4017771, 0, 200, 250, 200, 200, 16711680, 7, 0, 0, 0, 0, 16, 1
11 | Line, "Line.670671", "670.1.2.3", "671.1.2.3", 384, 6, 0, 0, 2.4017771, 0, 200, 200, 200, 100, 16711680, 6, 0, 0, 0, 0, 16, 1
12 | Line, "Line.671680", "671.1.2.3", "680.1.2.3", 576, 6, 0, 0, 2.4017771, 0, 200, 100, 200, 0, 16711680, 1, 0, 0, 0, 0, 16, 1
13 | Line, "Line.632633", "632.1.2.3", "633.1.2.3", 768, 6, 0, 0, 2.4017771, 0, 200, 250, 350, 250, 16711680, 1, 0, 0, 0, 0, 16, 1
14 | Line, "Line.632645", "632.3.2", "645.3.2", 960, 4, 0, 0, 2.4017771, 0, 200, 250, 100, 250, 16711680, 1, 0, 0, 0, 0, 16, 1
15 | Line, "Line.645646", "645.3.2", "646.3.2", 1088, 4, 0, 0, 2.4017771, 0, 100, 250, 0, 250, 16711680, 1, 0, 0, 0, 0, 16, 1
16 | Line, "Line.692675", "692.1.2.3", "675.1.2.3", 1216, 6, 0, 0, 2.4017771, 0, 250, 100, 400, 100, 16711680, 2, 0, 0, 0, 0, 16, 1
17 | Line, "Line.671684", "671.1.3", "684.1.3", 1408, 4, 0, 0, 2.4017771, 0, 200, 100, 100, 100, 16711680, 1, 0, 0, 0, 0, 16, 1
18 | Line, "Line.684611", "684.3", "611.3", 1536, 2, 0, 0, 2.4017771, 0, 100, 100, 0, 100, 16711680, 1, 0, 0, 0, 0, 16, 1
19 | Line, "Line.684652", "684.1", "652.1", 1600, 2, 0, 0, 2.4017771, 0, 100, 100, 100, 0, 16711680, 1, 0, 0, 0, 0, 16, 1
20 | Line, "Line.671692", "671", "692", 1664, 6, 0, 0, 2.4017771, 0, 200, 100, 250, 100, 0, 1, 0, 0, 0, 5, 16, 1
21 | Range, -67.75, 467.75, -7.14, 349.86
22 | SetProp, -67.75, 467.75, -7.14, 349.86, 16777215, 16777215, 1, 0
23 | KeepAspect, 1
24 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/4Node/MEAS_files/MEAS_Bus_i.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "bus_name":"1",
4 | "num_nodes":1,
5 | "ph_1":1,
6 | "ph_2":0,
7 | "ph_3":0,
8 | "STS_Vm":1,
9 | "Rii_Vm":0.0000444889,
10 | "V1m(pu)":1.00189,
11 | "V2m(pu)":0.00011,
12 | "V3m(pu)":0.00011,
13 | "STS_PQd(SM)":0,
14 | "Rii_SM":0.0,
15 | "STS_PQd(0)":0,
16 | "Rii_0":0.0,
17 | "STS_PQd(Psd)":0,
18 | "Rii_Psd":0.0,
19 | "P1md(pu)":0.0,
20 | "P2md(pu)":0.0,
21 | "P3md(pu)":0.0,
22 | "Q1md(pu)":0.0,
23 | "Q2md(pu)":0.0,
24 | "Q3md(pu)":0.0
25 | },
26 | "1":{
27 | "bus_name":"2",
28 | "num_nodes":1,
29 | "ph_1":1,
30 | "ph_2":0,
31 | "ph_3":0,
32 | "STS_Vm":0,
33 | "Rii_Vm":0.0,
34 | "V1m(pu)":0.0,
35 | "V2m(pu)":0.0,
36 | "V3m(pu)":0.0,
37 | "STS_PQd(SM)":0,
38 | "Rii_SM":0.0,
39 | "STS_PQd(0)":1,
40 | "Rii_0":0.0000001089,
41 | "STS_PQd(Psd)":0,
42 | "Rii_Psd":0.0,
43 | "P1md(pu)":0.0,
44 | "P2md(pu)":0.0,
45 | "P3md(pu)":0.0,
46 | "Q1md(pu)":0.0,
47 | "Q2md(pu)":0.0,
48 | "Q3md(pu)":0.0
49 | },
50 | "2":{
51 | "bus_name":"3",
52 | "num_nodes":1,
53 | "ph_1":1,
54 | "ph_2":0,
55 | "ph_3":0,
56 | "STS_Vm":0,
57 | "Rii_Vm":0.0,
58 | "V1m(pu)":0.0,
59 | "V2m(pu)":0.0,
60 | "V3m(pu)":0.0,
61 | "STS_PQd(SM)":1,
62 | "Rii_SM":0.0002778889,
63 | "STS_PQd(0)":0,
64 | "Rii_0":0.0,
65 | "STS_PQd(Psd)":0,
66 | "Rii_Psd":0.0,
67 | "P1md(pu)":-0.0071,
68 | "P2md(pu)":-0.0001,
69 | "P3md(pu)":-0.0001,
70 | "Q1md(pu)":-0.00724,
71 | "Q2md(pu)":-0.0001,
72 | "Q3md(pu)":-0.0001
73 | },
74 | "3":{
75 | "bus_name":"4",
76 | "num_nodes":1,
77 | "ph_1":1,
78 | "ph_2":0,
79 | "ph_3":0,
80 | "STS_Vm":0,
81 | "Rii_Vm":0.0,
82 | "V1m(pu)":0.0,
83 | "V2m(pu)":0.0,
84 | "V3m(pu)":0.0,
85 | "STS_PQd(SM)":0,
86 | "Rii_SM":0.0,
87 | "STS_PQd(0)":0,
88 | "Rii_0":0.0,
89 | "STS_PQd(Psd)":1,
90 | "Rii_Psd":0.0225,
91 | "P1md(pu)":-0.01561,
92 | "P2md(pu)":-0.00161,
93 | "P3md(pu)":-0.00161,
94 | "Q1md(pu)":-0.01589,
95 | "Q2md(pu)":-0.00161,
96 | "Q3md(pu)":-0.00161
97 | }
98 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/ieee37_Isolated.Txt:
--------------------------------------------------------------------------------
1 |
2 | ISOLATED CIRCUIT ELEMENT REPORT
3 |
4 |
5 | *** THE FOLLOWING BUSES HAVE NO CONNECTION TO THE SOURCE ***
6 |
7 |
8 | *********** THE FOLLOWING SUB NETWORKS ARE ISOLATED ************
9 |
10 |
11 | *********** THE FOLLOWING ENABLED ELEMENTS ARE ISOLATED ************
12 |
13 |
14 | *** THE FOLLOWING BUSES ARE NOT CONNECTED TO ANY POWER DELIVERY ELEMENT ***
15 |
16 |
17 | *********** CONNECTED CIRCUIT ELEMENT TREE ************
18 |
19 | (Lexical Level) Element name
20 |
21 | (0) Vsource.source
22 | [SHUNT], Load.s701a
23 | [SHUNT], Load.s701b
24 | [SHUNT], Load.s701c
25 | (1) Line.l35
26 | (1) Line.l1
27 | [SHUNT], Load.s702
28 | (2) Line.l4
29 | [SHUNT], Load.s703
30 | (3) Line.l6
31 | [SHUNT], Load.s730c
32 | (4) Line.l27
33 | [SHUNT], Load.s709
34 | (5) Line.l17
35 | [SHUNT], Load.s708
36 | (6) Line.l15
37 | [SHUNT], Load.s732c
38 | (6) Line.l14
39 | [SHUNT], Load.s733a
40 | (7) Line.l28
41 | [SHUNT], Load.s734c
42 | (8) Line.l30
43 | [SHUNT], Load.s710
44 | (9) Line.l19
45 | [SHUNT], Load.s736b
46 | (9) Line.l18
47 | [SHUNT], Load.s735c
48 | (8) Line.l29
49 | [SHUNT], Load.s737a
50 | (9) Line.l31
51 | [SHUNT], Load.s738a
52 | (10) Line.l32
53 | [SHUNT], Load.s711
54 | (11) Line.l21
55 | [SHUNT], Load.s740c
56 | (11) Line.l20
57 | [SHUNT], Load.s741c
58 | (5) Line.l16
59 | [SHUNT], Load.s731b
60 | (3) Line.l5
61 | [SHUNT], Load.s727c
62 | (4) Line.l26
63 | [SHUNT], Load.s744a
64 | (5) Line.l34
65 | [SHUNT], Load.s729a
66 | (5) Line.l33
67 | [SHUNT], Load.s728
68 | (2) Line.l3
69 | [SHUNT], Load.s713c
70 | (3) Line.l22
71 | [SHUNT], Load.s704
72 | (4) Line.l8
73 | [SHUNT], Load.s720c
74 | (5) Line.l25
75 | [SHUNT], Load.s706
76 | (6) Line.l11
77 | [SHUNT], Load.s725b
78 | (5) Line.l24
79 | [SHUNT], Load.s707
80 | (6) Line.l13
81 | [SHUNT], Load.s722b
82 | [SHUNT], Load.s722c
83 | (6) Line.l12
84 | [SHUNT], Load.s724b
85 | (4) Line.l7
86 | [SHUNT], Load.s714a
87 | [SHUNT], Load.s714b
88 | (5) Line.l23
89 | [SHUNT], Load.s718a
90 | (2) Line.l2
91 | [SHUNT], Load.s705
92 | (3) Line.l10
93 | [SHUNT], Load.s712c
94 | (3) Line.l9
95 | [SHUNT], Load.s742a
96 | [SHUNT], Load.s742b
97 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/MEAS_files/Init_Bus_i_PMU.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "bus_name":"650",
4 | "num_nodes":3,
5 | "ph_1":1,
6 | "ph_2":1,
7 | "ph_3":1,
8 | "Unc(%)_Vm":0,
9 | "STS_Vm":0
10 | },
11 | "1":{
12 | "bus_name":"671",
13 | "num_nodes":3,
14 | "ph_1":1,
15 | "ph_2":1,
16 | "ph_3":1,
17 | "Unc(%)_Vm":0,
18 | "STS_Vm":0
19 | },
20 | "2":{
21 | "bus_name":"633",
22 | "num_nodes":3,
23 | "ph_1":1,
24 | "ph_2":1,
25 | "ph_3":1,
26 | "Unc(%)_Vm":0,
27 | "STS_Vm":0
28 | },
29 | "3":{
30 | "bus_name":"645",
31 | "num_nodes":2,
32 | "ph_1":0,
33 | "ph_2":1,
34 | "ph_3":1,
35 | "Unc(%)_Vm":0,
36 | "STS_Vm":0
37 | },
38 | "4":{
39 | "bus_name":"646",
40 | "num_nodes":2,
41 | "ph_1":0,
42 | "ph_2":1,
43 | "ph_3":1,
44 | "Unc(%)_Vm":0,
45 | "STS_Vm":0
46 | },
47 | "5":{
48 | "bus_name":"692",
49 | "num_nodes":3,
50 | "ph_1":1,
51 | "ph_2":1,
52 | "ph_3":1,
53 | "Unc(%)_Vm":0,
54 | "STS_Vm":0
55 | },
56 | "6":{
57 | "bus_name":"675",
58 | "num_nodes":3,
59 | "ph_1":1,
60 | "ph_2":1,
61 | "ph_3":1,
62 | "Unc(%)_Vm":0,
63 | "STS_Vm":0
64 | },
65 | "7":{
66 | "bus_name":"611",
67 | "num_nodes":1,
68 | "ph_1":0,
69 | "ph_2":0,
70 | "ph_3":1,
71 | "Unc(%)_Vm":0,
72 | "STS_Vm":0
73 | },
74 | "8":{
75 | "bus_name":"652",
76 | "num_nodes":1,
77 | "ph_1":1,
78 | "ph_2":0,
79 | "ph_3":0,
80 | "Unc(%)_Vm":0,
81 | "STS_Vm":0
82 | },
83 | "9":{
84 | "bus_name":"670",
85 | "num_nodes":3,
86 | "ph_1":1,
87 | "ph_2":1,
88 | "ph_3":1,
89 | "Unc(%)_Vm":0,
90 | "STS_Vm":0
91 | },
92 | "10":{
93 | "bus_name":"632",
94 | "num_nodes":3,
95 | "ph_1":1,
96 | "ph_2":1,
97 | "ph_3":1,
98 | "Unc(%)_Vm":0,
99 | "STS_Vm":0
100 | },
101 | "11":{
102 | "bus_name":"680",
103 | "num_nodes":3,
104 | "ph_1":1,
105 | "ph_2":1,
106 | "ph_3":1,
107 | "Unc(%)_Vm":0,
108 | "STS_Vm":0
109 | },
110 | "12":{
111 | "bus_name":"684",
112 | "num_nodes":2,
113 | "ph_1":1,
114 | "ph_2":0,
115 | "ph_3":1,
116 | "Unc(%)_Vm":0,
117 | "STS_Vm":0
118 | }
119 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/MEAS_files/Pos_MEAS_Elem_ft_PMU.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "element_name":"Line.650632",
4 | "from_bus":650,
5 | "to_bus":632,
6 | "STS_Ift":0,
7 | "Rii_Ift":0,
8 | "I1mft(pu)":0,
9 | "Ang1m(deg)":0
10 | },
11 | "1":{
12 | "element_name":"Line.632670",
13 | "from_bus":632,
14 | "to_bus":670,
15 | "STS_Ift":0,
16 | "Rii_Ift":0,
17 | "I1mft(pu)":0,
18 | "Ang1m(deg)":0
19 | },
20 | "2":{
21 | "element_name":"Line.670671",
22 | "from_bus":670,
23 | "to_bus":671,
24 | "STS_Ift":0,
25 | "Rii_Ift":0,
26 | "I1mft(pu)":0,
27 | "Ang1m(deg)":0
28 | },
29 | "3":{
30 | "element_name":"Line.671680",
31 | "from_bus":671,
32 | "to_bus":680,
33 | "STS_Ift":0,
34 | "Rii_Ift":0,
35 | "I1mft(pu)":0,
36 | "Ang1m(deg)":0
37 | },
38 | "4":{
39 | "element_name":"Line.632633",
40 | "from_bus":632,
41 | "to_bus":633,
42 | "STS_Ift":0,
43 | "Rii_Ift":0,
44 | "I1mft(pu)":0,
45 | "Ang1m(deg)":0
46 | },
47 | "5":{
48 | "element_name":"Line.632645",
49 | "from_bus":632,
50 | "to_bus":645,
51 | "STS_Ift":0,
52 | "Rii_Ift":0,
53 | "I1mft(pu)":0,
54 | "Ang1m(deg)":0
55 | },
56 | "6":{
57 | "element_name":"Line.645646",
58 | "from_bus":645,
59 | "to_bus":646,
60 | "STS_Ift":0,
61 | "Rii_Ift":0,
62 | "I1mft(pu)":0,
63 | "Ang1m(deg)":0
64 | },
65 | "7":{
66 | "element_name":"Line.692675",
67 | "from_bus":692,
68 | "to_bus":675,
69 | "STS_Ift":0,
70 | "Rii_Ift":0,
71 | "I1mft(pu)":0,
72 | "Ang1m(deg)":0
73 | },
74 | "8":{
75 | "element_name":"Line.671684",
76 | "from_bus":671,
77 | "to_bus":684,
78 | "STS_Ift":0,
79 | "Rii_Ift":0,
80 | "I1mft(pu)":0,
81 | "Ang1m(deg)":0
82 | },
83 | "9":{
84 | "element_name":"Line.684611",
85 | "from_bus":684,
86 | "to_bus":611,
87 | "STS_Ift":0,
88 | "Rii_Ift":0,
89 | "I1mft(pu)":0,
90 | "Ang1m(deg)":0
91 | },
92 | "10":{
93 | "element_name":"Line.684652",
94 | "from_bus":684,
95 | "to_bus":652,
96 | "STS_Ift":0,
97 | "Rii_Ift":0,
98 | "I1mft(pu)":0,
99 | "Ang1m(deg)":0
100 | },
101 | "11":{
102 | "element_name":"Line.671692",
103 | "from_bus":671,
104 | "to_bus":692,
105 | "STS_Ift":0,
106 | "Rii_Ift":0,
107 | "I1mft(pu)":0,
108 | "Ang1m(deg)":0
109 | }
110 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/OpenDSS files/LineCodes.dss:
--------------------------------------------------------------------------------
1 | !LINE CODES
2 | redirect IEEELineCodes.dss
3 |
4 | // these are local matrix line codes
5 | // corrected 9-14-2011
6 | New linecode.mtx601 nphases=3 BaseFreq=60
7 | ~ rmatrix = (0.3465 | 0.1560 0.3375 | 0.1580 0.1535 0.3414 )
8 | ~ xmatrix = (1.0179 | 0.5017 1.0478 | 0.4236 0.3849 1.0348 )
9 | ~ units=mi
10 | New linecode.mtx602 nphases=3 BaseFreq=60
11 | ~ rmatrix = (0.7526 | 0.1580 0.7475 | 0.1560 0.1535 0.7436 )
12 | ~ xmatrix = (1.1814 | 0.4236 1.1983 | 0.5017 0.3849 1.2112 )
13 | ~ units=mi
14 | New linecode.mtx603 nphases=2 BaseFreq=60
15 | ~ rmatrix = (1.3238 | 0.2066 1.3294 )
16 | ~ xmatrix = (1.3569 | 0.4591 1.3471 )
17 | ~ units=mi
18 | New linecode.mtx604 nphases=2 BaseFreq=60
19 | ~ rmatrix = (1.3238 | 0.2066 1.3294 )
20 | ~ xmatrix = (1.3569 | 0.4591 1.3471 )
21 | ~ units=mi
22 | New linecode.mtx605 nphases=1 BaseFreq=60
23 | ~ rmatrix = (1.3292 )
24 | ~ xmatrix = (1.3475 )
25 | ~ units=mi
26 |
27 | /*********** Original 606 Linecode *********************
28 |
29 | You have to use this to match Kersting's results:
30 |
31 | New linecode.mtx606 nphases=3 BaseFreq=60
32 | ~ rmatrix = (0.7982 | 0.3192 0.7891 | 0.2849 0.3192 0.7982 )
33 | ~ xmatrix = (0.4463 | 0.0328 0.4041 | -0.0143 0.0328 0.4463 )
34 | ~ Cmatrix = [257 | 0 257 | 0 0 257] ! <--- This is too low by 1.5
35 | ~ units=mi
36 |
37 | Corrected mtx606 Feb 3 2016 by RDugan
38 |
39 | The new LineCode.606 is computed using the following CN cable definition and
40 | LineGeometry definition:
41 |
42 | New CNDATA.250_1/3 k=13 DiaStrand=0.064 Rstrand=2.816666667 epsR=2.3
43 | ~ InsLayer=0.220 DiaIns=1.06 DiaCable=1.16 Rac=0.076705 GMRac=0.20568 diam=0.573
44 | ~ Runits=kft Radunits=in GMRunits=in
45 |
46 | New LineGeometry.606 nconds=3 nphases=3 units=ft
47 | ~ cond=1 cncable=250_1/3 x=-0.5 h= -4
48 | ~ cond=2 cncable=250_1/3 x=0 h= -4
49 | ~ cond=3 cncable=250_1/3 x=0.5 h= -4
50 |
51 | ****End Comment******/
52 |
53 | New Linecode.mtx606 nphases=3 Units=mi
54 | ~ Rmatrix=[0.791721 |0.318476 0.781649 |0.28345 0.318476 0.791721 ]
55 | ~ Xmatrix=[0.438352 |0.0276838 0.396697 |-0.0184204 0.0276838 0.438352 ]
56 | ~ Cmatrix=[383.948 |0 383.948 |0 0 383.948 ]
57 | New linecode.mtx607 nphases=1 BaseFreq=60
58 | ~ rmatrix = (1.3425 )
59 | ~ xmatrix = (0.5124 )
60 | ~ cmatrix = [236]
61 | ~ units=mi
62 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/MEAS_files/Init_Bus_i_PMU.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "bus_name":"bus_1",
4 | "num_nodes":1,
5 | "ph_1":1,
6 | "ph_2":0,
7 | "ph_3":0,
8 | "Unc(%)_Vm":1,
9 | "STS_Vm":1
10 | },
11 | "1":{
12 | "bus_name":"bus_2",
13 | "num_nodes":1,
14 | "ph_1":1,
15 | "ph_2":0,
16 | "ph_3":0,
17 | "Unc(%)_Vm":0,
18 | "STS_Vm":0
19 | },
20 | "2":{
21 | "bus_name":"bus_3",
22 | "num_nodes":1,
23 | "ph_1":1,
24 | "ph_2":0,
25 | "ph_3":0,
26 | "Unc(%)_Vm":0,
27 | "STS_Vm":0
28 | },
29 | "3":{
30 | "bus_name":"bus_4",
31 | "num_nodes":1,
32 | "ph_1":1,
33 | "ph_2":0,
34 | "ph_3":0,
35 | "Unc(%)_Vm":0,
36 | "STS_Vm":0
37 | },
38 | "4":{
39 | "bus_name":"bus_5",
40 | "num_nodes":1,
41 | "ph_1":1,
42 | "ph_2":0,
43 | "ph_3":0,
44 | "Unc(%)_Vm":0,
45 | "STS_Vm":0
46 | },
47 | "5":{
48 | "bus_name":"bus_9",
49 | "num_nodes":1,
50 | "ph_1":1,
51 | "ph_2":0,
52 | "ph_3":0,
53 | "Unc(%)_Vm":1,
54 | "STS_Vm":1
55 | },
56 | "6":{
57 | "bus_name":"bus_10",
58 | "num_nodes":1,
59 | "ph_1":1,
60 | "ph_2":0,
61 | "ph_3":0,
62 | "Unc(%)_Vm":0,
63 | "STS_Vm":0
64 | },
65 | "7":{
66 | "bus_name":"bus_6",
67 | "num_nodes":1,
68 | "ph_1":1,
69 | "ph_2":0,
70 | "ph_3":0,
71 | "Unc(%)_Vm":0,
72 | "STS_Vm":0
73 | },
74 | "8":{
75 | "bus_name":"bus_7",
76 | "num_nodes":1,
77 | "ph_1":1,
78 | "ph_2":0,
79 | "ph_3":0,
80 | "Unc(%)_Vm":0,
81 | "STS_Vm":0
82 | },
83 | "9":{
84 | "bus_name":"bus_8",
85 | "num_nodes":1,
86 | "ph_1":1,
87 | "ph_2":0,
88 | "ph_3":0,
89 | "Unc(%)_Vm":0,
90 | "STS_Vm":0
91 | },
92 | "10":{
93 | "bus_name":"bus_11",
94 | "num_nodes":1,
95 | "ph_1":1,
96 | "ph_2":0,
97 | "ph_3":0,
98 | "Unc(%)_Vm":0,
99 | "STS_Vm":0
100 | },
101 | "11":{
102 | "bus_name":"bus_12",
103 | "num_nodes":1,
104 | "ph_1":1,
105 | "ph_2":0,
106 | "ph_3":0,
107 | "Unc(%)_Vm":0,
108 | "STS_Vm":0
109 | },
110 | "12":{
111 | "bus_name":"bus_13",
112 | "num_nodes":1,
113 | "ph_1":1,
114 | "ph_2":0,
115 | "ph_3":0,
116 | "Unc(%)_Vm":0,
117 | "STS_Vm":0
118 | },
119 | "13":{
120 | "bus_name":"bus_14",
121 | "num_nodes":1,
122 | "ph_1":1,
123 | "ph_2":0,
124 | "ph_3":0,
125 | "Unc(%)_Vm":0,
126 | "STS_Vm":0
127 | },
128 | "14":{
129 | "bus_name":"bus_15",
130 | "num_nodes":1,
131 | "ph_1":1,
132 | "ph_2":0,
133 | "ph_3":0,
134 | "Unc(%)_Vm":0,
135 | "STS_Vm":0
136 | }
137 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/Results/Results_DSSE_13NodeIEEE.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "bus_name":"650",
4 | "Bus Nro.":1,
5 | "V1(pu)_DSS":1.0498563837,
6 | "Ang1(deg)_DSS":29.9925532137,
7 | "V1(pu)_EST":1.0501,
8 | "Ang1(deg)_EST":30.0
9 | },
10 | "1":{
11 | "bus_name":"632",
12 | "Bus Nro.":2,
13 | "V1(pu)_DSS":1.0063660806,
14 | "Ang1(deg)_DSS":28.006224629,
15 | "V1(pu)_EST":1.006,
16 | "Ang1(deg)_EST":29.8718
17 | },
18 | "2":{
19 | "bus_name":"670",
20 | "Bus Nro.":3,
21 | "V1(pu)_DSS":0.9955793312,
22 | "Ang1(deg)_DSS":27.4651781042,
23 | "V1(pu)_EST":0.9952,
24 | "Ang1(deg)_EST":29.8406
25 | },
26 | "3":{
27 | "bus_name":"671",
28 | "Bus Nro.":4,
29 | "V1(pu)_DSS":0.9758289184,
30 | "Ang1(deg)_DSS":26.4341406696,
31 | "V1(pu)_EST":0.9805,
32 | "Ang1(deg)_EST":29.9436
33 | },
34 | "4":{
35 | "bus_name":"680",
36 | "Bus Nro.":5,
37 | "V1(pu)_DSS":0.9758289317,
38 | "Ang1(deg)_DSS":26.4341404247,
39 | "V1(pu)_EST":1.0088,
40 | "Ang1(deg)_EST":36.4765
41 | },
42 | "5":{
43 | "bus_name":"633",
44 | "Bus Nro.":6,
45 | "V1(pu)_DSS":1.0038733072,
46 | "Ang1(deg)_DSS":27.965139726,
47 | "V1(pu)_EST":1.0062,
48 | "Ang1(deg)_EST":30.0786
49 | },
50 | "6":{
51 | "bus_name":"645",
52 | "Bus Nro.":7,
53 | "V1(pu)_DSS":1.0026603438,
54 | "Ang1(deg)_DSS":27.9846330375,
55 | "V1(pu)_EST":1.0051,
56 | "Ang1(deg)_EST":30.0309
57 | },
58 | "7":{
59 | "bus_name":"646",
60 | "Bus Nro.":8,
61 | "V1(pu)_DSS":1.001425867,
62 | "Ang1(deg)_DSS":27.9738242756,
63 | "V1(pu)_EST":1.0036,
64 | "Ang1(deg)_EST":29.9993
65 | },
66 | "8":{
67 | "bus_name":"692",
68 | "Bus Nro.":9,
69 | "V1(pu)_DSS":0.9757328199,
70 | "Ang1(deg)_DSS":26.432749346,
71 | "V1(pu)_EST":0.9814,
72 | "Ang1(deg)_EST":30.0233
73 | },
74 | "9":{
75 | "bus_name":"675",
76 | "Bus Nro.":10,
77 | "V1(pu)_DSS":0.972376936,
78 | "Ang1(deg)_DSS":26.3914384771,
79 | "V1(pu)_EST":0.9787,
80 | "Ang1(deg)_EST":30.0307
81 | },
82 | "10":{
83 | "bus_name":"684",
84 | "Bus Nro.":11,
85 | "V1(pu)_DSS":0.9742653148,
86 | "Ang1(deg)_DSS":26.4187223399,
87 | "V1(pu)_EST":0.9789,
88 | "Ang1(deg)_EST":29.9296
89 | },
90 | "11":{
91 | "bus_name":"611",
92 | "Bus Nro.":12,
93 | "V1(pu)_DSS":0.9731686246,
94 | "Ang1(deg)_DSS":26.3950064137,
95 | "V1(pu)_EST":0.9798,
96 | "Ang1(deg)_EST":30.0546
97 | },
98 | "12":{
99 | "bus_name":"652",
100 | "Bus Nro.":13,
101 | "V1(pu)_DSS":0.9724248,
102 | "Ang1(deg)_DSS":26.4436497609,
103 | "V1(pu)_EST":0.979,
104 | "Ang1(deg)_EST":30.0511
105 | }
106 | }
--------------------------------------------------------------------------------
/docs/referencias.bib:
--------------------------------------------------------------------------------
1 | @book{Abur2004,
2 | abstract = {Computer generated contents: Chapt. 1. Introduction -- chapt. 2. Weighted least squares state estimation -- chapt. 3. Alternative formulations of the WLS state estimation -- chapt. 4. Network observability analysis -- chapt. 5. Bad data detection and identification -- chapt. 6. Robust state estimation -- chapt. 7. Network parameter estimation -- chapt. 8. Topology error processing -- chapt. 9. State estimation using ampere measurements.},
3 | author = {Ali Abur and A. G. Exposito},
4 | isbn = {0203913671},
5 | journal = {New York: Marcel Dekker},
6 | pages = {1-327},
7 | publisher = {Marcel Dekker},
8 | title = {Power System State Estimation: Theory and Implementation},
9 | url = {http://www.crcpress.com/product/isbn/9780824755706},
10 | year = {2004},
11 | }
12 |
13 | @thesis{Rincón2013,
14 | abstract = {Magister en Ingeniería Eléctrica. Línea de Investigación: Sistemas de Potencia},
15 | author = {Ricardo Rincón Ballesteros},
16 | city = {Bogotá},
17 | institution = {Universidad Nacional de Colombia},
18 | keywords = {Estimación ; Estado ; Sistema de potencia ; PMU ; Sistema de medición fasorial sincronizado ; State ; Estimation ; Sistema de potencia ; PMU ; Sistema de medición fasorial sincronizado ;},
19 | title = {Estimación de estado de un sistema de potencia utilizando medición fasorial sincronizada y evaluación de su implantación en el sistema de transmisión colombiano},
20 | url = {https://repositorio.unal.edu.co/handle/unal/51326},
21 | year = {2013},
22 | }
23 |
24 | @article{Whei-MinLin1996,
25 | abstract = {In this paper, a new fast decoupled state estimator with equality constraints is proposed for the three-phase distribution systems. The Lagrange multipliers were utilized to deal with the zero injections. The proposed method is based on the equivalent-current-measurement and rectangular coordinates. The method uses a compact constant-symmetric gain matrix which can be decoupled into two ldquo;identical rdquo; sub-gain matrices. The update and factorization of the gain matrix needs to be done only once. Tests have shown that the proposed low-storage method is efficient, accurate and robust in solving the unbalanced three-phase distribution systems},
26 | author = {Whei-Min Lin and Jen-Hao Teng},
27 | doi = {10.1109/59.486142},
28 | isbn = {0-7803-2663-6},
29 | issn = {08858950},
30 | issue = {1},
31 | journal = {IEEE Transactions on Power Systems},
32 | keywords = {Distribution automation system,Equality constraint,Observability analysis,State estimation,Zero injection},
33 | pages = {518-524},
34 | title = {State estimation for distribution systems with zero-injection constraints},
35 | volume = {11},
36 | url = {http://ieeexplore.ieee.org/document/486142/},
37 | year = {1996},
38 | }
39 |
40 |
--------------------------------------------------------------------------------
/openpy_dsse/Sample_test_systems_DSS.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # @Time : 18/08/2022
3 | # @Author : Ing. Jorge Lara
4 | # @Email : jlara@iee.unsj.edu.ar
5 | # @File : ------------
6 | # @Software: PyCharm
7 |
8 | import os
9 | import pathlib
10 | import logging
11 | from .base_DSSE import update_logg_file
12 |
13 | log_py = logging.getLogger(__name__)
14 |
15 | class Sample_tests:
16 |
17 | def examples(
18 | self,
19 | Typ_cir: str,
20 | case: int, sub_case: int = None
21 | ):
22 | script_path = os.path.dirname(os.path.abspath(__file__))
23 | circuit = dict()
24 |
25 | if Typ_cir == '1ph':
26 | if case == 1:
27 | circuit['DSS_file'] = pathlib.Path(script_path).joinpath(
28 | "./examples", "4Node", "OpenDSS files", "Master_4node.dss")
29 | circuit['MEAS_path'] = pathlib.Path(script_path).joinpath("./examples", "4Node", "MEAS_files")
30 | circuit['save_path'] = pathlib.Path(script_path).joinpath("./examples", "4Node", "Results")
31 | circuit['name_project'] = '4Node'
32 |
33 | if case == 2:
34 | circuit['DSS_file'] = pathlib.Path(script_path).joinpath(
35 | "./examples", "15NodeIEEE", "OpenDSS files", "Master_15node.dss")
36 | circuit['MEAS_path'] = pathlib.Path(script_path).joinpath("./examples", "15NodeIEEE", "MEAS_files")
37 | circuit['save_path'] = pathlib.Path(script_path).joinpath("./examples", "15NodeIEEE", "Results")
38 | circuit['name_project'] = '15NodeIEEE'
39 | circuit['Typ_cir'] = Typ_cir
40 |
41 | if Typ_cir == 'Pos':
42 | if case == 1:
43 | circuit['DSS_file'] = pathlib.Path(script_path).joinpath(
44 | "./examples", "13NodeIEEE", "OpenDSS files", "Master13NodeIEEE.DSS")
45 | circuit['MEAS_path'] = pathlib.Path(script_path).joinpath("./examples", "13NodeIEEE", "MEAS_files")
46 | circuit['save_path'] = pathlib.Path(script_path).joinpath("./examples", "13NodeIEEE", "Results")
47 | circuit['name_project'] = '13NodeIEEE'
48 | if case == 2:
49 | circuit['DSS_file'] = pathlib.Path(script_path).joinpath(
50 | "./examples", "37NodeIEEE", "OpenDSS files", "Master_ieee37.DSS")
51 | circuit['MEAS_path'] = pathlib.Path(script_path).joinpath("./examples", "37NodeIEEE", "MEAS_files")
52 | circuit['save_path'] = pathlib.Path(script_path).joinpath("./examples", "37NodeIEEE", "Results")
53 | circuit['name_project'] = '37nodeIEEE'
54 | circuit['Typ_cir'] = Typ_cir
55 |
56 | res = not circuit
57 |
58 | if res == True:
59 | update_logg_file('Select an available test case (1ph or Pos), see documentation.', 4, log_py)
60 | exit()
61 |
62 | return circuit
63 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/Lines.DSS:
--------------------------------------------------------------------------------
1 | ! Lines
2 | New Line.L1 Phases=3 Bus1=701.1.2.3 Bus2=702.1.2.3 LineCode=722 Length=0.96
3 | New Line.L2 Phases=3 Bus1=702.1.2.3 Bus2=705.1.2.3 LineCode=724 Length=0.4
4 | New Line.L3 Phases=3 Bus1=702.1.2.3 Bus2=713.1.2.3 LineCode=723 Length=0.36
5 | New Line.L4 Phases=3 Bus1=702.1.2.3 Bus2=703.1.2.3 LineCode=722 Length=1.32
6 | New Line.L5 Phases=3 Bus1=703.1.2.3 Bus2=727.1.2.3 LineCode=724 Length=0.24
7 | New Line.L6 Phases=3 Bus1=703.1.2.3 Bus2=730.1.2.3 LineCode=723 Length=0.6
8 | New Line.L7 Phases=3 Bus1=704.1.2.3 Bus2=714.1.2.3 LineCode=724 Length=0.08
9 | New Line.L8 Phases=3 Bus1=704.1.2.3 Bus2=720.1.2.3 LineCode=723 Length=0.8
10 | New Line.L9 Phases=3 Bus1=705.1.2.3 Bus2=742.1.2.3 LineCode=724 Length=0.32
11 | New Line.L10 Phases=3 Bus1=705.1.2.3 Bus2=712.1.2.3 LineCode=724 Length=0.24
12 | New Line.L11 Phases=3 Bus1=706.1.2.3 Bus2=725.1.2.3 LineCode=724 Length=0.28
13 | New Line.L12 Phases=3 Bus1=707.1.2.3 Bus2=724.1.2.3 LineCode=724 Length=0.76
14 | New Line.L13 Phases=3 Bus1=707.1.2.3 Bus2=722.1.2.3 LineCode=724 Length=0.12
15 | New Line.L14 Phases=3 Bus1=708.1.2.3 Bus2=733.1.2.3 LineCode=723 Length=0.32
16 | New Line.L15 Phases=3 Bus1=708.1.2.3 Bus2=732.1.2.3 LineCode=724 Length=0.32
17 | New Line.L16 Phases=3 Bus1=709.1.2.3 Bus2=731.1.2.3 LineCode=723 Length=0.6
18 | New Line.L17 Phases=3 Bus1=709.1.2.3 Bus2=708.1.2.3 LineCode=723 Length=0.32
19 | New Line.L18 Phases=3 Bus1=710.1.2.3 Bus2=735.1.2.3 LineCode=724 Length=0.2
20 | New Line.L19 Phases=3 Bus1=710.1.2.3 Bus2=736.1.2.3 LineCode=724 Length=1.28
21 | New Line.L20 Phases=3 Bus1=711.1.2.3 Bus2=741.1.2.3 LineCode=723 Length=0.4
22 | New Line.L21 Phases=3 Bus1=711.1.2.3 Bus2=740.1.2.3 LineCode=724 Length=0.2
23 | New Line.L22 Phases=3 Bus1=713.1.2.3 Bus2=704.1.2.3 LineCode=723 Length=0.52
24 | New Line.L23 Phases=3 Bus1=714.1.2.3 Bus2=718.1.2.3 LineCode=724 Length=0.52
25 | New Line.L24 Phases=3 Bus1=720.1.2.3 Bus2=707.1.2.3 LineCode=724 Length=0.92
26 | New Line.L25 Phases=3 Bus1=720.1.2.3 Bus2=706.1.2.3 LineCode=723 Length=0.6
27 | New Line.L26 Phases=3 Bus1=727.1.2.3 Bus2=744.1.2.3 LineCode=723 Length=0.28
28 | New Line.L27 Phases=3 Bus1=730.1.2.3 Bus2=709.1.2.3 LineCode=723 Length=0.2
29 | New Line.L28 Phases=3 Bus1=733.1.2.3 Bus2=734.1.2.3 LineCode=723 Length=0.56
30 | New Line.L29 Phases=3 Bus1=734.1.2.3 Bus2=737.1.2.3 LineCode=723 Length=0.64
31 | New Line.L30 Phases=3 Bus1=734.1.2.3 Bus2=710.1.2.3 LineCode=724 Length=0.52
32 | New Line.L31 Phases=3 Bus1=737.1.2.3 Bus2=738.1.2.3 LineCode=723 Length=0.4
33 | New Line.L32 Phases=3 Bus1=738.1.2.3 Bus2=711.1.2.3 LineCode=723 Length=0.4
34 | New Line.L33 Phases=3 Bus1=744.1.2.3 Bus2=728.1.2.3 LineCode=724 Length=0.2
35 | New Line.L34 Phases=3 Bus1=744.1.2.3 Bus2=729.1.2.3 LineCode=724 Length=0.28
36 | New Line.L35 Phases=3 Bus1=799.1.2.3 Bus2=701.1.2.3 LineCode=721 Length=1.85
37 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/Results/Results_DSSE_15NodeIEEE.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "bus_name":"bus_1",
4 | "Bus Nro.":1,
5 | "V1(pu)_DSS":1.0093943268,
6 | "Ang1(deg)_DSS":0.0767353721,
7 | "V1(pu)_EST":1.0094,
8 | "Ang1(deg)_EST":0.1
9 | },
10 | "1":{
11 | "bus_name":"bus_2",
12 | "Bus Nro.":2,
13 | "V1(pu)_DSS":0.9749754489,
14 | "Ang1(deg)_DSS":-0.0505345218,
15 | "V1(pu)_EST":0.975,
16 | "Ang1(deg)_EST":0.1028
17 | },
18 | "2":{
19 | "bus_name":"bus_3",
20 | "Bus Nro.":3,
21 | "V1(pu)_DSS":0.9622904955,
22 | "Ang1(deg)_DSS":-0.0552016211,
23 | "V1(pu)_EST":0.9623,
24 | "Ang1(deg)_EST":0.0985
25 | },
26 | "3":{
27 | "bus_name":"bus_4",
28 | "Bus Nro.":4,
29 | "V1(pu)_DSS":0.9531193669,
30 | "Ang1(deg)_DSS":-0.0919137746,
31 | "V1(pu)_EST":0.9531,
32 | "Ang1(deg)_EST":0.0963
33 | },
34 | "4":{
35 | "bus_name":"bus_5",
36 | "Bus Nro.":5,
37 | "V1(pu)_DSS":0.9520514359,
38 | "Ang1(deg)_DSS":-0.0968286182,
39 | "V1(pu)_EST":0.9523,
40 | "Ang1(deg)_EST":0.1038
41 | },
42 | "5":{
43 | "bus_name":"bus_9",
44 | "Bus Nro.":6,
45 | "V1(pu)_DSS":0.972515543,
46 | "Ang1(deg)_DSS":-0.0583730895,
47 | "V1(pu)_EST":0.9725,
48 | "Ang1(deg)_EST":0.0997
49 | },
50 | "6":{
51 | "bus_name":"bus_10",
52 | "Bus Nro.":7,
53 | "V1(pu)_DSS":0.9716480589,
54 | "Ang1(deg)_DSS":-0.0599116109,
55 | "V1(pu)_EST":0.9717,
56 | "Ang1(deg)_EST":0.1001
57 | },
58 | "7":{
59 | "bus_name":"bus_6",
60 | "Bus Nro.":8,
61 | "V1(pu)_DSS":0.967391932,
62 | "Ang1(deg)_DSS":-0.074349425,
63 | "V1(pu)_EST":0.9674,
64 | "Ang1(deg)_EST":0.101
65 | },
66 | "8":{
67 | "bus_name":"bus_7",
68 | "Bus Nro.":9,
69 | "V1(pu)_DSS":0.9643529542,
70 | "Ang1(deg)_DSS":-0.0839369621,
71 | "V1(pu)_EST":0.9643,
72 | "Ang1(deg)_EST":0.1005
73 | },
74 | "9":{
75 | "bus_name":"bus_8",
76 | "Bus Nro.":10,
77 | "V1(pu)_DSS":0.9658752549,
78 | "Ang1(deg)_DSS":-0.0791572268,
79 | "V1(pu)_EST":0.9659,
80 | "Ang1(deg)_EST":0.0989
81 | },
82 | "10":{
83 | "bus_name":"bus_11",
84 | "Bus Nro.":11,
85 | "V1(pu)_DSS":0.9575286849,
86 | "Ang1(deg)_DSS":-0.0682673309,
87 | "V1(pu)_EST":0.9573,
88 | "Ang1(deg)_EST":0.1
89 | },
90 | "11":{
91 | "bus_name":"bus_12",
92 | "Bus Nro.":12,
93 | "V1(pu)_DSS":0.9554739976,
94 | "Ang1(deg)_DSS":-0.0780726925,
95 | "V1(pu)_EST":0.9551,
96 | "Ang1(deg)_EST":0.0996
97 | },
98 | "12":{
99 | "bus_name":"bus_13",
100 | "Bus Nro.":13,
101 | "V1(pu)_DSS":0.9537598652,
102 | "Ang1(deg)_DSS":-0.0862057896,
103 | "V1(pu)_EST":0.9535,
104 | "Ang1(deg)_EST":0.1017
105 | },
106 | "13":{
107 | "bus_name":"bus_14",
108 | "Bus Nro.":14,
109 | "V1(pu)_DSS":0.9515221951,
110 | "Ang1(deg)_DSS":-0.1075007038,
111 | "V1(pu)_EST":0.9519,
112 | "Ang1(deg)_EST":0.1055
113 | },
114 | "14":{
115 | "bus_name":"bus_15",
116 | "Bus Nro.":15,
117 | "V1(pu)_DSS":0.949920105,
118 | "Ang1(deg)_DSS":-0.1230862792,
119 | "V1(pu)_EST":0.9503,
120 | "Ang1(deg)_EST":0.1107
121 | }
122 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/Results/Results_I_Ang_from_DSSE_13NodeIEEE.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "element_name":"Line.650632",
4 | "from_bus":"650",
5 | "to_bus":"632",
6 | "I1(pu)_DSS":0.1369848957,
7 | "Ang1(deg)_DSS":-4.3525031017,
8 | "I1(pu)_EST":0.107592515,
9 | "Ang1(deg)_EST":-39.7693654525
10 | },
11 | "1":{
12 | "element_name":"Line.632670",
13 | "from_bus":"632",
14 | "to_bus":"670",
15 | "I1(pu)_DSS":0.1047779799,
16 | "Ang1(deg)_DSS":-3.7277147993,
17 | "I1(pu)_EST":0.0790011928,
18 | "Ang1(deg)_EST":-39.9467587852
19 | },
20 | "2":{
21 | "element_name":"Line.670671",
22 | "from_bus":"670",
23 | "to_bus":"671",
24 | "I1(pu)_DSS":0.0970387348,
25 | "Ang1(deg)_DSS":-3.8138104075,
26 | "I1(pu)_EST":0.0541273687,
27 | "Ang1(deg)_EST":-49.6873242866
28 | },
29 | "3":{
30 | "element_name":"Line.671680",
31 | "from_bus":"671",
32 | "to_bus":"680",
33 | "I1(pu)_DSS":0.0000001367,
34 | "Ang1(deg)_DSS":116.4341406534,
35 | "I1(pu)_EST":0.5692350338,
36 | "Ang1(deg)_EST":-143.4777023403
37 | },
38 | "4":{
39 | "element_name":"Line.632633",
40 | "from_bus":"632",
41 | "to_bus":"633",
42 | "I1(pu)_DSS":0.0164046635,
43 | "Ang1(deg)_DSS":-7.9769418499,
44 | "I1(pu)_EST":0.0229920536,
45 | "Ang1(deg)_EST":-115.2661672461
46 | },
47 | "5":{
48 | "element_name":"Line.632645",
49 | "from_bus":"632",
50 | "to_bus":"645",
51 | "I1(pu)_DSS":0.0158418048,
52 | "Ang1(deg)_DSS":-4.734942358,
53 | "I1(pu)_EST":0.0124764566,
54 | "Ang1(deg)_EST":-80.7464991833
55 | },
56 | "6":{
57 | "element_name":"Line.645646",
58 | "from_bus":"645",
59 | "to_bus":"646",
60 | "I1(pu)_DSS":0.0088519837,
61 | "Ang1(deg)_DSS":-1.8777135419,
62 | "I1(pu)_EST":0.0113338283,
63 | "Ang1(deg)_EST":-348.2797762747
64 | },
65 | "7":{
66 | "element_name":"Line.692675",
67 | "from_bus":"692",
68 | "to_bus":"675",
69 | "I1(pu)_DSS":0.0329480918,
70 | "Ang1(deg)_DSS":-2.3210228201,
71 | "I1(pu)_EST":0.0259764898,
72 | "Ang1(deg)_EST":-13.2161064952
73 | },
74 | "8":{
75 | "element_name":"Line.671684",
76 | "from_bus":"671",
77 | "to_bus":"684",
78 | "I1(pu)_DSS":0.0112378149,
79 | "Ang1(deg)_DSS":-2.6106073594,
80 | "I1(pu)_EST":0.0114670804,
81 | "Ang1(deg)_EST":-0.117306696
82 | },
83 | "9":{
84 | "element_name":"Line.684611",
85 | "from_bus":"684",
86 | "to_bus":"611",
87 | "I1(pu)_DSS":0.0062672413,
88 | "Ang1(deg)_DSS":1.194052064,
89 | "I1(pu)_EST":0.01243588,
90 | "Ang1(deg)_EST":-128.2417911789
91 | },
92 | "10":{
93 | "element_name":"Line.684652",
94 | "from_bus":"684",
95 | "to_bus":"652",
96 | "I1(pu)_DSS":0.005001746,
97 | "Ang1(deg)_DSS":-7.3806400284,
98 | "I1(pu)_EST":0.005506573,
99 | "Ang1(deg)_EST":-83.6581674205
100 | },
101 | "11":{
102 | "element_name":"Line.671692",
103 | "from_bus":"671",
104 | "to_bus":"692",
105 | "I1(pu)_DSS":0.0403722671,
106 | "Ang1(deg)_DSS":-4.7153934465,
107 | "I1(pu)_EST":0.6667507422,
108 | "Ang1(deg)_EST":-138.424134648
109 | }
110 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/MEAS_files/Pos_MEAS_Elem_ft.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "element_name":"Line.650632",
4 | "from_bus":"650",
5 | "to_bus":"632",
6 | "STS_PQft":1,
7 | "Rii_PQft":0.0001,
8 | "P1mft(pu)":0.35636,
9 | "Q1mft(pu)":0.24354,
10 | "STS_Ift":0,
11 | "Rii_Ift":0,
12 | "I1mft(pu)":0
13 | },
14 | "1":{
15 | "element_name":"Line.632670",
16 | "from_bus":"632",
17 | "to_bus":"670",
18 | "STS_PQft":1,
19 | "Rii_PQft":0.0001,
20 | "P1mft(pu)":0.26895,
21 | "Q1mft(pu)":0.16629,
22 | "STS_Ift":0,
23 | "Rii_Ift":0,
24 | "I1mft(pu)":0
25 | },
26 | "2":{
27 | "element_name":"Line.670671",
28 | "from_bus":"670",
29 | "to_bus":"671",
30 | "STS_PQft":0,
31 | "Rii_PQft":0.0,
32 | "P1mft(pu)":0.0,
33 | "Q1mft(pu)":0.0,
34 | "STS_Ift":0,
35 | "Rii_Ift":0,
36 | "I1mft(pu)":0
37 | },
38 | "3":{
39 | "element_name":"Line.671680",
40 | "from_bus":"671",
41 | "to_bus":"680",
42 | "STS_PQft":0,
43 | "Rii_PQft":0.0,
44 | "P1mft(pu)":0.0,
45 | "Q1mft(pu)":0.0,
46 | "STS_Ift":0,
47 | "Rii_Ift":0,
48 | "I1mft(pu)":0
49 | },
50 | "4":{
51 | "element_name":"Line.632633",
52 | "from_bus":"632",
53 | "to_bus":"633",
54 | "STS_PQft":0,
55 | "Rii_PQft":0.0,
56 | "P1mft(pu)":0.0,
57 | "Q1mft(pu)":0.0,
58 | "STS_Ift":0,
59 | "Rii_Ift":0,
60 | "I1mft(pu)":0
61 | },
62 | "5":{
63 | "element_name":"Line.632645",
64 | "from_bus":"632",
65 | "to_bus":"645",
66 | "STS_PQft":0,
67 | "Rii_PQft":0.0,
68 | "P1mft(pu)":0.0,
69 | "Q1mft(pu)":0.0,
70 | "STS_Ift":0,
71 | "Rii_Ift":0,
72 | "I1mft(pu)":0
73 | },
74 | "6":{
75 | "element_name":"Line.645646",
76 | "from_bus":"645",
77 | "to_bus":"646",
78 | "STS_PQft":0,
79 | "Rii_PQft":0.0,
80 | "P1mft(pu)":0.0,
81 | "Q1mft(pu)":0.0,
82 | "STS_Ift":0,
83 | "Rii_Ift":0,
84 | "I1mft(pu)":0
85 | },
86 | "7":{
87 | "element_name":"Line.692675",
88 | "from_bus":"692",
89 | "to_bus":"675",
90 | "STS_PQft":0,
91 | "Rii_PQft":0.0,
92 | "P1mft(pu)":0.0,
93 | "Q1mft(pu)":0.0,
94 | "STS_Ift":0,
95 | "Rii_Ift":0,
96 | "I1mft(pu)":0
97 | },
98 | "8":{
99 | "element_name":"Line.671684",
100 | "from_bus":"671",
101 | "to_bus":"684",
102 | "STS_PQft":1,
103 | "Rii_PQft":0.0001,
104 | "P1mft(pu)":0.02875,
105 | "Q1mft(pu)":0.01596,
106 | "STS_Ift":0,
107 | "Rii_Ift":0,
108 | "I1mft(pu)":0
109 | },
110 | "9":{
111 | "element_name":"Line.684611",
112 | "from_bus":"684",
113 | "to_bus":"611",
114 | "STS_PQft":0,
115 | "Rii_PQft":0.0,
116 | "P1mft(pu)":0.0,
117 | "Q1mft(pu)":0.0,
118 | "STS_Ift":0,
119 | "Rii_Ift":0,
120 | "I1mft(pu)":0
121 | },
122 | "10":{
123 | "element_name":"Line.684652",
124 | "from_bus":"684",
125 | "to_bus":"652",
126 | "STS_PQft":0,
127 | "Rii_PQft":0.0,
128 | "P1mft(pu)":0.0,
129 | "Q1mft(pu)":0.0,
130 | "STS_Ift":0,
131 | "Rii_Ift":0,
132 | "I1mft(pu)":0
133 | },
134 | "11":{
135 | "element_name":"Line.671692",
136 | "from_bus":"671",
137 | "to_bus":"692",
138 | "STS_PQft":0,
139 | "Rii_PQft":0.0,
140 | "P1mft(pu)":0.0,
141 | "Q1mft(pu)":0.0,
142 | "STS_Ift":0,
143 | "Rii_Ift":0,
144 | "I1mft(pu)":0
145 | }
146 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/PosSeq circuit/Load.DSS:
--------------------------------------------------------------------------------
1 | New "Load.s701a" bus1=701 model=1 phases=1 conn=wye kV=2.7713 kW=46.667 kvar=23.333
2 | New "Load.s701b" bus1=701 model=1 phases=1 conn=wye kV=2.7713 kW=46.667 kvar=23.333
3 | New "Load.s701c" bus1=701 model=1 phases=1 conn=wye kV=2.7713 kW=116.67 kvar=58.333
4 | New "Load.s712c" bus1=712 model=1 phases=1 conn=wye kV=2.7713 kW=28.333 kvar=13.333
5 | New "Load.s713c" bus1=713 model=1 phases=1 conn=wye kV=2.7713 kW=28.333 kvar=13.333
6 | New "Load.s714a" bus1=714 model=4 phases=1 conn=wye kV=2.7713 kW=5.6667 kvar=2.6667
7 | New "Load.s714b" bus1=714 model=4 phases=1 conn=wye kV=2.7713 kW=7 kvar=3.3333
8 | New "Load.s718a" bus1=718 model=2 phases=1 conn=wye kV=2.7713 kW=28.333 kvar=13.333
9 | New "Load.s720c" bus1=720 model=1 phases=1 conn=wye kV=2.7713 kW=28.333 kvar=13.333
10 | New "Load.s722b" bus1=722 model=4 phases=1 conn=wye kV=2.7713 kW=46.667 kvar=23.333
11 | New "Load.s722c" bus1=722 model=4 phases=1 conn=wye kV=2.7713 kW=7 kvar=3.3333
12 | New "Load.s724b" bus1=724 model=2 phases=1 conn=wye kV=2.7713 kW=14 kvar=7
13 | New "Load.s725b" bus1=725 model=1 phases=1 conn=wye kV=2.7713 kW=14 kvar=7
14 | New "Load.s727c" bus1=727 model=1 phases=1 conn=wye kV=2.7713 kW=14 kvar=7
15 | New "Load.s728" bus1=728 model=1 phases=1 conn=wye kV=2.7713 kW=42 kvar=21
16 | New "Load.s729a" bus1=729 model=4 phases=1 conn=wye kV=2.7713 kW=14 kvar=7
17 | New "Load.s730c" bus1=730 model=2 phases=1 conn=wye kV=2.7713 kW=28.333 kvar=13.333
18 | New "Load.s731b" bus1=731 model=2 phases=1 conn=wye kV=2.7713 kW=28.333 kvar=13.333
19 | New "Load.s732c" bus1=732 model=1 phases=1 conn=wye kV=2.7713 kW=14 kvar=7
20 | New "Load.s733a" bus1=733 model=4 phases=1 conn=wye kV=2.7713 kW=28.333 kvar=13.333
21 | New "Load.s734c" bus1=734 model=1 phases=1 conn=wye kV=2.7713 kW=14 kvar=7
22 | New "Load.s735c" bus1=735 model=1 phases=1 conn=wye kV=2.7713 kW=28.333 kvar=13.333
23 | New "Load.s736b" bus1=736 model=2 phases=1 conn=wye kV=2.7713 kW=14 kvar=7
24 | New "Load.s737a" bus1=737 model=4 phases=1 conn=wye kV=2.7713 kW=46.667 kvar=23.333
25 | New "Load.s738a" bus1=738 model=1 phases=1 conn=wye kV=2.7713 kW=42 kvar=20.667
26 | New "Load.s740c" bus1=740 model=1 phases=1 conn=wye kV=2.7713 kW=28.333 kvar=13.333
27 | New "Load.s741c" bus1=741 model=4 phases=1 conn=wye kV=2.7713 kW=14 kvar=7
28 | New "Load.s742a" bus1=742 model=2 phases=1 conn=wye kV=2.7713 kW=2.6667 kvar=1.3333
29 | New "Load.s742b" bus1=742 model=2 phases=1 conn=wye kV=2.7713 kW=28.333 kvar=13.333
30 | New "Load.s744a" bus1=744 model=1 phases=1 conn=wye kV=2.7713 kW=14 kvar=7
31 | New "Load.s702" bus1=702 model=1 phases=1 conn=wye kV=2.7713 kW=0 kvar=0
32 | New "Load.s705" bus1=705 model=1 phases=1 conn=wye kV=2.7713 kW=0 kvar=0
33 | New "Load.s704" bus1=704 model=1 phases=1 conn=wye kV=2.7713 kW=0 kvar=0
34 | New "Load.s707" bus1=707 model=1 phases=1 conn=wye kV=2.7713 kW=0 kvar=0
35 | New "Load.s706" bus1=706 model=1 phases=1 conn=wye kV=2.7713 kW=0 kvar=0
36 | New "Load.s703" bus1=703 model=1 phases=1 conn=wye kV=2.7713 kW=0 kvar=0
37 | New "Load.s709" bus1=709 model=1 phases=1 conn=wye kV=2.7713 kW=0 kvar=0
38 | New "Load.s708" bus1=708 model=1 phases=1 conn=wye kV=2.7713 kW=0 kvar=0
39 | New "Load.s710" bus1=710 model=1 phases=1 conn=wye kV=2.7713 kW=0 kvar=0
40 | New "Load.s711" bus1=711 model=1 phases=1 conn=wye kV=2.7713 kW=0 kvar=0
41 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | # py_open_dsse
2 | py_open_dsse is an application for state estimation in distribution systems, developed within the OpenREiD project (Integral software for simulation and optimization of electrical distribution networks), of the Instituto de Energía Eléctrica (IEE), UNSJ - CONICET, San Juan - Argentina.
3 |
4 | ## Version 0.1.1
5 | This first beta version allows to performance state estimation in single-phase distribution systems with nonlinear methods with and without phasor and linear measurements. In the case of multiphase networks, the positive sequence equivalent is obtained and the estimated state is obtained with a nonlinear method with or without phasor measurements.
6 |
7 | ## Source Code
8 | All the source code of the py_open_dsse tool is accessible and distributed compressed in ZIP and is available in the GitHub and SourceForge repositories.
9 |
10 | ## Third-Party Components
11 | + OpenDSS (OpenDSSEngine.DLL Version 9.4.1.1) (x64) License: BSD.
12 | + Python Version: 3.8.10 (x64) License: Python Software Foundation License.
13 | + Python Plugins, Supported Versions, and Opensource Licenses.
14 |
15 | ## System Requirements
16 |
17 | - Microsoft Windows 10-64bit.
18 | - Pentium compatible PC (Intel Core i5 or higher).
19 | - 2 GB RAM (4 GB RAM recommended).
20 | - At least 4 GB available on the hard disk.
21 |
22 | ## License
23 | Shield: [![CC BY-NC-SA 4.0][cc-by-nc-sa-shield]][cc-by-nc-sa]
24 |
25 | This work is licensed under a
26 | [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa].
27 |
28 | [![CC BY-NC-SA 4.0][cc-by-nc-sa-image]][cc-by-nc-sa]
29 |
30 | [cc-by-nc-sa]: http://creativecommons.org/licenses/by-nc-sa/4.0/
31 | [cc-by-nc-sa-image]: https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png
32 | [cc-by-nc-sa-shield]: https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg
33 |
34 | ## Disclaimer of Warranties and Limitation of Liability
35 |
36 | This software tool is provided by the Instituto de Energía Eléctrica (IEE), UNSJ - CONICET, on an "as is" and "as available" basis and makes no representations or warranties of any kind with respect to the Licensed Material, whether express, implied, statutory or otherwise. This includes, but is not limited to, warranties of title, merchantability, fitness for a particular purpose, non-infringement, freedom from latent defects or other defects, accuracy, the presence or absence of errors, whether or not known or detectable. Where a disclaimer of warranties, in whole or in part, is not permitted, this exclusion may not apply to you.
37 | In no event shall the Instituto de Energía Eléctrica (IEE), UNSJ - CONICET, be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, without limitation, procurement of substitute goods or services; loss of use, data or profits; or business interruption) however arising and on any theory of liability, whether in contract, strict liability or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damages.
38 | For further details on the disclaimer of warranties and limitation of liability referred to the license terms.
39 |
40 | ## Credits
41 | * Developer: Jorge A. Lara S.
42 | * Director: Mauricio E. Samper
43 | * Co-Director: D. Graciela Colomé
44 |
--------------------------------------------------------------------------------
/docs/docs_es/LICENSE.md:
--------------------------------------------------------------------------------
1 | # py_open_dsse
2 |
3 | py_open_dsse es una aplicación para para la estimación de estado en sistemas de distribución, desarrollada en el marco del proyecto OpenREiD (Software integral de simulación y optimización de redes eléctricas de distribución), del Instituto de Energía Eléctrica (IEE), UNSJ - CONICET, San Juan - Argentina.
4 |
5 | ## Versión Beta 0.1.0
6 |
7 | Esta primer versión beta permite realizar estimación de estado en sistemas de distribución de redes monofásicas con métodos no lineales con y sin mediciones fasoriales y lineal. Para el caso de redes multifásica se obtienen el equivalente de secuencia positiva y se obtiene el estado estimado con un método no lineal.
8 |
9 | ## Código Fuente
10 |
11 | Todo el código fuente de la herramienta py_open_dsse es accesible y se distribuye comprimido en ZIP y se encuentra disponible en el repositorio de GitHub y SourceForge.
12 |
13 | ## Componentes de Terceros
14 |
15 | + OpenDSS (OpenDSSEngine.DLL Version 9.4.1.1) (x64) Licencia: BSD.
16 | + Python Versión: 3.8.10 (x64) Licencia: Python Software Foundation License.
17 | + Complementos de Python, Versiones compatibles, Licencias opensource.
18 |
19 | ## Requisitos del sistema
20 |
21 | + Microsoft Windows 10-64bit.
22 | + PC compatible con Pentium (Intel Core i5 o superior).
23 | + 2 GB de RAM (se recomiendan 4 GB de RAM).
24 | + Al menos 4 GB disponibles en el disco duro.
25 |
26 | ## Licencia
27 |
28 | Se concede permiso para copiar, distribuir y/o modificar esta herramienta de software bajo los términos de la Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0). Consulte los detalles de la licencia en: https://creativecommons.org/licenses/by-nc-sa/4.0/deed.es
29 |
30 | ## Exención de Garantías y Limitación de Responsabilidad
31 |
32 | Esta herramienta de software es provista por el Instituto de Energía Eléctrica (IEE), UNSJ - CONICET, tal como es y tal como está disponible y no se hace responsable ni ofrece garantías de ningún tipo respecto al Material Licenciado, ya sea de manera expresa, implícita, legal u otra. Esto incluye, de manera no taxativa, las garantías de título, comerciabilidad, idoneidad para un propósito en particular, no infracción, ausencia de vicios ocultos u otros defectos, la exactitud, la presencia o la ausencia de errores, sean o no conocidos o detectables. Cuando no se permita, totalmente o en parte, la declaración de ausencia de garantías, a Usted puede no aplicársele esta exclusión.
33 | En ningún caso el Instituto de Energía Eléctrica (IEE), UNSJ - CONICET, será responsable de cualquier daño directo, indirecto, incidental, especial, ejemplar o daños emergentes (incluyendo, entre otros, la adquisición de bienes o servicios sustitutos, pérdida de uso, datos o beneficios; o negocio interrupción) cualquiera que se produzca y bajo cualquier teoría de responsabilidad, ya sea en contrato, responsabilidad estricta o agravio (incluyendo negligencia o de otro tipo) que surja de cualquier manera del uso de este software, incluso si se informa de la posibilidad de tales daños.
34 | Para más detalles sobre la exención de garantías y limitación de responsabilidad remitirse a los términos de la licencia.
35 |
36 | ## Créditos
37 |
38 | + Desarrollador: Ing. Jorge A. Lara S.
39 | + Director: Dr. Ing. Mauricio E. Samper
40 | + Codirector: Dr. Ing. D. Graciela Colomé.
41 |
--------------------------------------------------------------------------------
/openpy_dsse/LICENSE.md:
--------------------------------------------------------------------------------
1 | # py_open_dsse
2 | py_open_dsse is an application for state estimation in distribution systems, developed within the OpenREiD project (Integral software for simulation and optimization of electrical distribution networks), of the Instituto de Energía Eléctrica (IEE), UNSJ - CONICET, San Juan - Argentina.
3 |
4 | ## Version 0.1.1
5 | This first beta version allows to performance state estimation in single-phase distribution systems with nonlinear methods with and without phasor and linear measurements. In the case of multiphase networks, the positive sequence equivalent is obtained and the estimated state is obtained with a nonlinear method with or without phasor measurements.
6 |
7 | ## Source Code
8 | All the source code of the py_open_dsse tool is accessible and distributed compressed in ZIP and is available in the GitHub and SourceForge repositories.
9 |
10 | ## Third-Party Components
11 | + OpenDSS (OpenDSSEngine.DLL Version 9.4.1.1) (x64) License: BSD.
12 | + Python Version: 3.8.10 (x64) License: Python Software Foundation License.
13 | + Python Plugins, Supported Versions, and Opensource Licenses.
14 |
15 | ## System Requirements
16 |
17 | - Microsoft Windows 10-64bit.
18 | - Pentium compatible PC (Intel Core i5 or higher).
19 | - 2 GB RAM (4 GB RAM recommended).
20 | - At least 4 GB available on the hard disk.
21 |
22 | ## License
23 | Shield: [![CC BY-NC-SA 4.0][cc-by-nc-sa-shield]][cc-by-nc-sa]
24 |
25 | This work is licensed under a
26 | [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa].
27 |
28 | [![CC BY-NC-SA 4.0][cc-by-nc-sa-image]][cc-by-nc-sa]
29 |
30 | [cc-by-nc-sa]: http://creativecommons.org/licenses/by-nc-sa/4.0/
31 | [cc-by-nc-sa-image]: https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png
32 | [cc-by-nc-sa-shield]: https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg
33 |
34 | ## Disclaimer of Warranties and Limitation of Liability
35 |
36 | This software tool is provided by the Instituto de Energía Eléctrica (IEE), UNSJ - CONICET, on an "as is" and "as available" basis and makes no representations or warranties of any kind with respect to the Licensed Material, whether express, implied, statutory or otherwise. This includes, but is not limited to, warranties of title, merchantability, fitness for a particular purpose, non-infringement, freedom from latent defects or other defects, accuracy, the presence or absence of errors, whether or not known or detectable. Where a disclaimer of warranties, in whole or in part, is not permitted, this exclusion may not apply to you.
37 | In no event shall the Instituto de Energía Eléctrica (IEE), UNSJ - CONICET, be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, without limitation, procurement of substitute goods or services; loss of use, data or profits; or business interruption) however arising and on any theory of liability, whether in contract, strict liability or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damages.
38 | For further details on the disclaimer of warranties and limitation of liability referred to the license terms.
39 |
40 | ## Credits
41 | * Developer: Jorge A. Lara S.
42 | * Director: Mauricio E. Samper
43 | * Co-Director: D. Graciela Colomé
44 |
--------------------------------------------------------------------------------
/docs/docs_en/LICENSE.md:
--------------------------------------------------------------------------------
1 | # py_open_dsse
2 | py_open_dsse is an application for state estimation in distribution systems, developed within the OpenREiD project (Integral software for simulation and optimization of electrical distribution networks), of the Instituto de Energía Eléctrica (IEE), UNSJ - CONICET, San Juan - Argentina.
3 |
4 | ## Version 0.1.1
5 | This first beta version allows to performance state estimation in single-phase distribution systems with nonlinear methods with and without phasor and linear measurements. In the case of multiphase networks, the positive sequence equivalent is obtained and the estimated state is obtained with a nonlinear method with or without phasor measurements.
6 |
7 | ## Source Code
8 | All the source code of the py_open_dsse tool is accessible and distributed compressed in ZIP and is available in the GitHub and SourceForge repositories.
9 |
10 | ## Third-Party Components
11 | + OpenDSS (OpenDSSEngine.DLL Version 9.4.1.1) (x64) License: BSD.
12 | + Python Version: 3.8.10 (x64) License: Python Software Foundation License.
13 | + Python Plugins, Supported Versions, and Opensource Licenses.
14 |
15 | ## System Requirements
16 |
17 | - Microsoft Windows 10-64bit.
18 | - Pentium compatible PC (Intel Core i5 or higher).
19 | - 2 GB RAM (4 GB RAM recommended).
20 | - At least 4 GB available on the hard disk.
21 |
22 | ## License
23 | Shield: [![CC BY-NC-SA 4.0][cc-by-nc-sa-shield]][cc-by-nc-sa]
24 |
25 | This work is licensed under a
26 | [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa].
27 |
28 | [![CC BY-NC-SA 4.0][cc-by-nc-sa-image]][cc-by-nc-sa]
29 |
30 | [cc-by-nc-sa]: http://creativecommons.org/licenses/by-nc-sa/4.0/
31 | [cc-by-nc-sa-image]: https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png
32 | [cc-by-nc-sa-shield]: https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg
33 |
34 | ## Disclaimer of Warranties and Limitation of Liability
35 |
36 | This software tool is provided by the Instituto de Energía Eléctrica (IEE), UNSJ - CONICET, on an "as is" and "as available" basis and makes no representations or warranties of any kind with respect to the Licensed Material, whether express, implied, statutory or otherwise. This includes, but is not limited to, warranties of title, merchantability, fitness for a particular purpose, non-infringement, freedom from latent defects or other defects, accuracy, the presence or absence of errors, whether or not known or detectable. Where a disclaimer of warranties, in whole or in part, is not permitted, this exclusion may not apply to you.
37 | In no event shall the Instituto de Energía Eléctrica (IEE), UNSJ - CONICET, be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, without limitation, procurement of substitute goods or services; loss of use, data or profits; or business interruption) however arising and on any theory of liability, whether in contract, strict liability or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damages.
38 | For further details on the disclaimer of warranties and limitation of liability referred to the license terms.
39 |
40 | ## Credits
41 | * Developer: Jorge A. Lara S.
42 | * Director: Mauricio E. Samper
43 | * Co-Director: D. Graciela Colomé
44 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/MEAS_files/Init_Bus_i.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "bus_name":"650",
4 | "num_nodes":3,
5 | "ph_1":1,
6 | "ph_2":1,
7 | "ph_3":1,
8 | "Unc(%)_Vm":3,
9 | "STS_Vm":1,
10 | "Unc(%)_PQd":0,
11 | "STS_PQd(SM)":0,
12 | "STS_PQd(0)":0,
13 | "STS_PQd(Psd)":0
14 | },
15 | "1":{
16 | "bus_name":"671",
17 | "num_nodes":3,
18 | "ph_1":1,
19 | "ph_2":1,
20 | "ph_3":1,
21 | "Unc(%)_Vm":0,
22 | "STS_Vm":0,
23 | "Unc(%)_PQd":15,
24 | "STS_PQd(SM)":0,
25 | "STS_PQd(0)":0,
26 | "STS_PQd(Psd)":1
27 | },
28 | "2":{
29 | "bus_name":"633",
30 | "num_nodes":3,
31 | "ph_1":1,
32 | "ph_2":1,
33 | "ph_3":1,
34 | "Unc(%)_Vm":0,
35 | "STS_Vm":0,
36 | "Unc(%)_PQd":15,
37 | "STS_PQd(SM)":0,
38 | "STS_PQd(0)":0,
39 | "STS_PQd(Psd)":1
40 | },
41 | "3":{
42 | "bus_name":"645",
43 | "num_nodes":2,
44 | "ph_1":0,
45 | "ph_2":1,
46 | "ph_3":1,
47 | "Unc(%)_Vm":3,
48 | "STS_Vm":1,
49 | "Unc(%)_PQd":5,
50 | "STS_PQd(SM)":1,
51 | "STS_PQd(0)":0,
52 | "STS_PQd(Psd)":0
53 | },
54 | "4":{
55 | "bus_name":"646",
56 | "num_nodes":2,
57 | "ph_1":0,
58 | "ph_2":1,
59 | "ph_3":1,
60 | "Unc(%)_Vm":3,
61 | "STS_Vm":1,
62 | "Unc(%)_PQd":5,
63 | "STS_PQd(SM)":1,
64 | "STS_PQd(0)":0,
65 | "STS_PQd(Psd)":0
66 | },
67 | "5":{
68 | "bus_name":"692",
69 | "num_nodes":3,
70 | "ph_1":1,
71 | "ph_2":1,
72 | "ph_3":1,
73 | "Unc(%)_Vm":0,
74 | "STS_Vm":0,
75 | "Unc(%)_PQd":15,
76 | "STS_PQd(SM)":0,
77 | "STS_PQd(0)":0,
78 | "STS_PQd(Psd)":1
79 | },
80 | "6":{
81 | "bus_name":"675",
82 | "num_nodes":3,
83 | "ph_1":1,
84 | "ph_2":1,
85 | "ph_3":1,
86 | "Unc(%)_Vm":0,
87 | "STS_Vm":0,
88 | "Unc(%)_PQd":15,
89 | "STS_PQd(SM)":0,
90 | "STS_PQd(0)":0,
91 | "STS_PQd(Psd)":1
92 | },
93 | "7":{
94 | "bus_name":"611",
95 | "num_nodes":1,
96 | "ph_1":0,
97 | "ph_2":0,
98 | "ph_3":1,
99 | "Unc(%)_Vm":3,
100 | "STS_Vm":1,
101 | "Unc(%)_PQd":5,
102 | "STS_PQd(SM)":1,
103 | "STS_PQd(0)":0,
104 | "STS_PQd(Psd)":0
105 | },
106 | "8":{
107 | "bus_name":"652",
108 | "num_nodes":1,
109 | "ph_1":1,
110 | "ph_2":0,
111 | "ph_3":0,
112 | "Unc(%)_Vm":0,
113 | "STS_Vm":0,
114 | "Unc(%)_PQd":15,
115 | "STS_PQd(SM)":0,
116 | "STS_PQd(0)":0,
117 | "STS_PQd(Psd)":1
118 | },
119 | "9":{
120 | "bus_name":"670",
121 | "num_nodes":3,
122 | "ph_1":1,
123 | "ph_2":1,
124 | "ph_3":1,
125 | "Unc(%)_Vm":0,
126 | "STS_Vm":0,
127 | "Unc(%)_PQd":15,
128 | "STS_PQd(SM)":0,
129 | "STS_PQd(0)":0,
130 | "STS_PQd(Psd)":1
131 | },
132 | "10":{
133 | "bus_name":"632",
134 | "num_nodes":3,
135 | "ph_1":1,
136 | "ph_2":1,
137 | "ph_3":1,
138 | "Unc(%)_Vm":3,
139 | "STS_Vm":1,
140 | "Unc(%)_PQd":0,
141 | "STS_PQd(SM)":0,
142 | "STS_PQd(0)":0,
143 | "STS_PQd(Psd)":0
144 | },
145 | "11":{
146 | "bus_name":"680",
147 | "num_nodes":3,
148 | "ph_1":1,
149 | "ph_2":1,
150 | "ph_3":1,
151 | "Unc(%)_Vm":0,
152 | "STS_Vm":0,
153 | "Unc(%)_PQd":0,
154 | "STS_PQd(SM)":0,
155 | "STS_PQd(0)":0,
156 | "STS_PQd(Psd)":0
157 | },
158 | "12":{
159 | "bus_name":"684",
160 | "num_nodes":2,
161 | "ph_1":1,
162 | "ph_2":0,
163 | "ph_3":1,
164 | "Unc(%)_Vm":0,
165 | "STS_Vm":0,
166 | "Unc(%)_PQd":0,
167 | "STS_PQd(SM)":0,
168 | "STS_PQd(0)":0,
169 | "STS_PQd(Psd)":0
170 | }
171 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/Results/Results_I_Ang_from_DSSE_15NodeIEEE.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "element_name":"Line.from_1_to_2",
4 | "from_bus":"bus_1",
5 | "to_bus":"bus_2",
6 | "I1(pu)_DSS":0.1778576013,
7 | "Ang1(deg)_DSS":-45.608790592,
8 | "I1(pu)_EST":0.1774026179,
9 | "Ang1(deg)_EST":-49.2667913879
10 | },
11 | "1":{
12 | "element_name":"Line.from_2_to_3",
13 | "from_bus":"bus_2",
14 | "to_bus":"bus_3",
15 | "I1(pu)_DSS":0.1029274267,
16 | "Ang1(deg)_DSS":-45.6175891911,
17 | "I1(pu)_EST":0.103054616,
18 | "Ang1(deg)_EST":-45.4954308243
19 | },
20 | "2":{
21 | "element_name":"Line.from_3_to_4",
22 | "from_bus":"bus_3",
23 | "to_bus":"bus_4",
24 | "I1(pu)_DSS":0.0591129588,
25 | "Ang1(deg)_DSS":-45.6392026628,
26 | "I1(pu)_EST":0.0591725617,
27 | "Ang1(deg)_EST":-49.0722913572
28 | },
29 | "3":{
30 | "element_name":"Line.from_4_to_5",
31 | "from_bus":"bus_4",
32 | "to_bus":"bus_5",
33 | "I1(pu)_DSS":0.0066067462,
34 | "Ang1(deg)_DSS":-45.5801649293,
35 | "I1(pu)_EST":0.0049983514,
36 | "Ang1(deg)_EST":-58.6663585433
37 | },
38 | "4":{
39 | "element_name":"Line.from_2_to_9",
40 | "from_bus":"bus_2",
41 | "to_bus":"bus_9",
42 | "I1(pu)_DSS":0.0167449024,
43 | "Ang1(deg)_DSS":-45.5597029523,
44 | "I1(pu)_EST":0.017002175,
45 | "Ang1(deg)_EST":-47.3146894925
46 | },
47 | "5":{
48 | "element_name":"Line.from_9_to_10",
49 | "from_bus":"bus_9",
50 | "to_bus":"bus_10",
51 | "I1(pu)_DSS":0.0064730717,
52 | "Ang1(deg)_DSS":-45.5395206542,
53 | "I1(pu)_EST":0.0059719847,
54 | "Ang1(deg)_EST":-47.6367792381
55 | },
56 | "6":{
57 | "element_name":"Line.from_2_to_6",
58 | "from_bus":"bus_2",
59 | "to_bus":"bus_6",
60 | "I1(pu)_DSS":0.0517345768,
61 | "Ang1(deg)_DSS":-45.617248485,
62 | "I1(pu)_EST":0.0517795474,
63 | "Ang1(deg)_EST":-48.2757283909
64 | },
65 | "7":{
66 | "element_name":"Line.from_6_to_7",
67 | "from_bus":"bus_6",
68 | "to_bus":"bus_7",
69 | "I1(pu)_DSS":0.0207285934,
70 | "Ang1(deg)_DSS":-45.6279586551,
71 | "I1(pu)_EST":0.0211205127,
72 | "Ang1(deg)_EST":-48.3511163336
73 | },
74 | "8":{
75 | "element_name":"Line.from_6_to_8",
76 | "from_bus":"bus_6",
77 | "to_bus":"bus_8",
78 | "I1(pu)_DSS":0.0103426014,
79 | "Ang1(deg)_DSS":-45.5940348659,
80 | "I1(pu)_EST":0.0102224155,
81 | "Ang1(deg)_EST":-47.1546397899
82 | },
83 | "9":{
84 | "element_name":"Line.from_3_to_11",
85 | "from_bus":"bus_3",
86 | "to_bus":"bus_11",
87 | "I1(pu)_DSS":0.0334333309,
88 | "Ang1(deg)_DSS":-45.594096914,
89 | "I1(pu)_EST":0.035074686,
90 | "Ang1(deg)_EST":-48.3620016286
91 | },
92 | "10":{
93 | "element_name":"Line.from_11_to_12",
94 | "from_bus":"bus_11",
95 | "to_bus":"bus_12",
96 | "I1(pu)_DSS":0.012556868,
97 | "Ang1(deg)_DSS":-45.5632135949,
98 | "I1(pu)_EST":0.0134081706,
99 | "Ang1(deg)_EST":-49.7951102474
100 | },
101 | "11":{
102 | "element_name":"Line.from_12_to_13",
103 | "from_bus":"bus_12",
104 | "to_bus":"bus_13",
105 | "I1(pu)_DSS":0.0104742483,
106 | "Ang1(deg)_DSS":-45.6025289687,
107 | "I1(pu)_EST":0.0097536816,
108 | "Ang1(deg)_EST":-51.2204335468
109 | },
110 | "12":{
111 | "element_name":"Line.from_4_to_14",
112 | "from_bus":"bus_4",
113 | "to_bus":"bus_14",
114 | "I1(pu)_DSS":0.0104989301,
115 | "Ang1(deg)_DSS":-45.6240968494,
116 | "I1(pu)_EST":0.0078533022,
117 | "Ang1(deg)_EST":-61.9285924298
118 | },
119 | "13":{
120 | "element_name":"Line.from_4_to_15",
121 | "from_bus":"bus_4",
122 | "to_bus":"bus_15",
123 | "I1(pu)_DSS":0.0210341735,
124 | "Ang1(deg)_DSS":-45.667958603,
125 | "I1(pu)_EST":0.018243531,
126 | "Ang1(deg)_EST":-59.545256032
127 | }
128 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | #dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | Scripts/
21 | sdist/
22 | var/
23 | wheels/
24 | share/python-wheels/
25 | *.egg-info/
26 | tests/
27 | test_bc_dsse.py
28 | .installed.cfg
29 | *.egg
30 | MANIFEST
31 |
32 | # PyInstaller
33 | # Usually these files are written by a python script from a template
34 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
35 | *.manifest
36 | *.spec
37 |
38 | # Installer logs
39 | pip-log.txt
40 | pip-delete-this-directory.txt
41 |
42 | # Unit test / coverage reports
43 | htmlcov/
44 | .tox/
45 | .nox/
46 | .coverage
47 | .coverage.*
48 | .cache
49 | nosetests.xml
50 | coverage.xml
51 | *.cover
52 | *.py,cover
53 | .hypothesis/
54 | .pytest_cache/
55 | cover/
56 |
57 | # Translations
58 | *.mo
59 | *.pot
60 |
61 | # Django stuff:
62 | *.log
63 | local_settings.py
64 | db.sqlite3
65 | db.sqlite3-journal
66 |
67 | # Flask stuff:
68 | instance/
69 | .webassets-cache
70 |
71 | # Scrapy stuff:
72 | .scrapy
73 |
74 | # Sphinx documentation
75 | docs/_build/
76 |
77 | # PyBuilder
78 | .pybuilder/
79 | target/
80 |
81 | # Jupyter Notebook
82 | .ipynb_checkpoints
83 |
84 | # IPython
85 | profile_default/
86 | ipython_config.py
87 |
88 | # pyenv
89 | # For a library or package, you might want to ignore these files since the code is
90 | # intended to run in multiple environments; otherwise, check them in:
91 | # .python-version
92 |
93 | # pipenv
94 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
95 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
96 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
97 | # install all needed dependencies.
98 | #Pipfile.lock
99 |
100 | # poetry
101 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
102 | # This is especially recommended for binary packages to ensure reproducibility, and is more
103 | # commonly ignored for libraries.
104 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
105 | #poetry.lock
106 |
107 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow
108 | __pypackages__/
109 |
110 | # Celery stuff
111 | celerybeat-schedule
112 | celerybeat.pid
113 |
114 | # SageMath parsed files
115 | *.sage.py
116 |
117 | # Environments
118 | .env
119 | .venv
120 | env/
121 | venv/
122 | ENV/
123 | env.bak/
124 | venv.bak/
125 | share/
126 | Scripts/
127 |
128 | # Spyder project settings
129 | .spyderproject
130 | .spyproject
131 |
132 | # Rope project settings
133 | .ropeproject
134 |
135 | # mkdocs documentation
136 | /site
137 |
138 | # mypy
139 | .mypy_cache/
140 | .dmypy.json
141 | dmypy.json
142 |
143 | # Pyre type checker
144 | .pyre/
145 |
146 | # pytype static type analyzer
147 | .pytype/
148 |
149 | # Cython debug symbols
150 | cython_debug/
151 |
152 | # PyCharm
153 | # JetBrains specific template is maintainted in a separate JetBrains.gitignore that can
154 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
155 | # and can be added to the global gitignore or merged into this file. For a more nuclear
156 | # option (not recommended) you can uncomment the following to ignore the entire idea folder.
157 | #.idea/
158 |
159 | poetry-convert.py
160 |
161 |
162 |
163 | poetry-convert.py
164 |
165 | poetry-convert.py
166 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/Loads.DSS:
--------------------------------------------------------------------------------
1 | ! spot loads
2 | New Load.S701a Bus1=701.1.2 Phases=1 Conn=Delta Model=1 kV= 4.800 kW= 140.0 kVAR= 70.0
3 | New Load.S701b Bus1=701.2.3 Phases=1 Conn=Delta Model=1 kV= 4.800 kW= 140.0 kVAR= 70.0
4 | New Load.S701c Bus1=701.3.1 Phases=1 Conn=Delta Model=1 kV= 4.800 kW= 350.0 kVAR= 175.0
5 | New Load.S712c Bus1=712.3.1 Phases=1 Conn=Delta Model=1 kV= 4.800 kW= 85.0 kVAR= 40.0
6 | New Load.S713c Bus1=713.3.1 Phases=1 Conn=Delta Model=1 kV= 4.800 kW= 85.0 kVAR= 40.0
7 | New Load.S714a Bus1=714.1.2 Phases=1 Conn=Delta Model=4 kV= 4.800 kW= 17.0 kVAR= 8.0
8 | New Load.S714b Bus1=714.2.3 Phases=1 Conn=Delta Model=4 kV= 4.800 kW= 21.0 kVAR= 10.0
9 | New Load.S718a Bus1=718.1.2 Phases=1 Conn=Delta Model=2 kV= 4.800 kW= 85.0 kVAR= 40.0
10 | New Load.S720c Bus1=720.3.1 Phases=1 Conn=Delta Model=1 kV= 4.800 kW= 85.0 kVAR= 40.0
11 | New Load.S722b Bus1=722.2.3 Phases=1 Conn=Delta Model=4 kV= 4.800 kW= 140.0 kVAR= 70.0
12 | New Load.S722c Bus1=722.3.1 Phases=1 Conn=Delta Model=4 kV= 4.800 kW= 21.0 kVAR= 10.0
13 | New Load.S724b Bus1=724.2.3 Phases=1 Conn=Delta Model=2 kV= 4.800 kW= 42.0 kVAR= 21.0
14 | New Load.S725b Bus1=725.2.3 Phases=1 Conn=Delta Model=1 kV= 4.800 kW= 42.0 kVAR= 21.0
15 | New Load.S727c Bus1=727.3.1 Phases=1 Conn=Delta Model=1 kV= 4.800 kW= 42.0 kVAR= 21.0
16 | New Load.S728 Bus1=728 Phases=3 Conn=Delta Model=1 kV= 4.800 kW= 126.0 kVAR= 63.0
17 | New Load.S729a Bus1=729.1.2 Phases=1 Conn=Delta Model=4 kV= 4.800 kW= 42.0 kVAR= 21.0
18 | New Load.S730c Bus1=730.3.1 Phases=1 Conn=Delta Model=2 kV= 4.800 kW= 85.0 kVAR= 40.0
19 | New Load.S731b Bus1=731.2.3 Phases=1 Conn=Delta Model=2 kV= 4.800 kW= 85.0 kVAR= 40.0
20 | New Load.S732c Bus1=732.3.1 Phases=1 Conn=Delta Model=1 kV= 4.800 kW= 42.0 kVAR= 21.0
21 | New Load.S733a Bus1=733.1.2 Phases=1 Conn=Delta Model=4 kV= 4.800 kW= 85.0 kVAR= 40.0
22 | New Load.S734c Bus1=734.3.1 Phases=1 Conn=Delta Model=1 kV= 4.800 kW= 42.0 kVAR= 21.0
23 | New Load.S735c Bus1=735.3.1 Phases=1 Conn=Delta Model=1 kV= 4.800 kW= 85.0 kVAR= 40.0
24 | New Load.S736b Bus1=736.2.3 Phases=1 Conn=Delta Model=2 kV= 4.800 kW= 42.0 kVAR= 21.0
25 | New Load.S737a Bus1=737.1.2 Phases=1 Conn=Delta Model=4 kV= 4.800 kW= 140.0 kVAR= 70.0
26 | New Load.S738a Bus1=738.1.2 Phases=1 Conn=Delta Model=1 kV= 4.800 kW= 126.0 kVAR= 62.0
27 | New Load.S740c Bus1=740.3.1 Phases=1 Conn=Delta Model=1 kV= 4.800 kW= 85.0 kVAR= 40.0
28 | New Load.S741c Bus1=741.3.1 Phases=1 Conn=Delta Model=4 kV= 4.800 kW= 42.0 kVAR= 21.0
29 | New Load.S742a Bus1=742.1.2 Phases=1 Conn=Delta Model=2 kV= 4.800 kW= 8.0 kVAR= 4.0
30 | New Load.S742b Bus1=742.2.3 Phases=1 Conn=Delta Model=2 kV= 4.800 kW= 85.0 kVAR= 40.0
31 | New Load.S744a Bus1=744.1.2 Phases=1 Conn=Delta Model=1 kV= 4.800 kW= 42.0 kVAR= 21.0
32 |
33 | !zero injection loads
34 | New Load.S702 Bus1=702 Phases=3 Conn=Delta Model=1 kV=4.800 kW=0 kVAR=0
35 | New Load.S705 Bus1=705 Phases=3 Conn=Delta Model=1 kV=4.800 kW=0 kVAR=0
36 | New Load.S704 Bus1=704 Phases=3 Conn=Delta Model=1 kV=4.800 kW=0 kVAR=0
37 | New Load.S707 Bus1=707 Phases=3 Conn=Delta Model=1 kV=4.800 kW=0 kVAR=0
38 | New Load.S706 Bus1=706 Phases=3 Conn=Delta Model=1 kV=4.800 kW=0 kVAR=0
39 | New Load.S703 Bus1=703 Phases=3 Conn=Delta Model=1 kV=4.800 kW=0 kVAR=0
40 | New Load.S709 Bus1=709 Phases=3 Conn=Delta Model=1 kV=4.800 kW=0 kVAR=0
41 | New Load.S708 Bus1=708 Phases=3 Conn=Delta Model=1 kV=4.800 kW=0 kVAR=0
42 | New Load.S710 Bus1=710 Phases=3 Conn=Delta Model=1 kV=4.800 kW=0 kVAR=0
43 | New Load.S711 Bus1=711 Phases=3 Conn=Delta Model=1 kV=4.800 kW=0 kVAR=0
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/MEAS_files/Init_Elem_ft_PMU.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "element_name":"Line.650632",
4 | "num_ph":3,
5 | "num_cond":3,
6 | "conn":"",
7 | "from_bus":"650",
8 | "to_bus":"632",
9 | "bus1":"650.1.2.3",
10 | "bus2":"632.1.2.3",
11 | "ph_1":1,
12 | "ph_2":1,
13 | "ph_3":1,
14 | "Unc(%)_Ift":0,
15 | "STS_Ift":0
16 | },
17 | "1":{
18 | "element_name":"Line.632670",
19 | "num_ph":3,
20 | "num_cond":3,
21 | "conn":"",
22 | "from_bus":"632",
23 | "to_bus":"670",
24 | "bus1":"632.1.2.3",
25 | "bus2":"670.1.2.3",
26 | "ph_1":1,
27 | "ph_2":1,
28 | "ph_3":1,
29 | "Unc(%)_Ift":0,
30 | "STS_Ift":0
31 | },
32 | "2":{
33 | "element_name":"Line.670671",
34 | "num_ph":3,
35 | "num_cond":3,
36 | "conn":"",
37 | "from_bus":"670",
38 | "to_bus":"671",
39 | "bus1":"670.1.2.3",
40 | "bus2":"671.1.2.3",
41 | "ph_1":1,
42 | "ph_2":1,
43 | "ph_3":1,
44 | "Unc(%)_Ift":0,
45 | "STS_Ift":0
46 | },
47 | "3":{
48 | "element_name":"Line.671680",
49 | "num_ph":3,
50 | "num_cond":3,
51 | "conn":"",
52 | "from_bus":"671",
53 | "to_bus":"680",
54 | "bus1":"671.1.2.3",
55 | "bus2":"680.1.2.3",
56 | "ph_1":1,
57 | "ph_2":1,
58 | "ph_3":1,
59 | "Unc(%)_Ift":0,
60 | "STS_Ift":0
61 | },
62 | "4":{
63 | "element_name":"Line.632633",
64 | "num_ph":3,
65 | "num_cond":3,
66 | "conn":"",
67 | "from_bus":"632",
68 | "to_bus":"633",
69 | "bus1":"632.1.2.3",
70 | "bus2":"633.1.2.3",
71 | "ph_1":1,
72 | "ph_2":1,
73 | "ph_3":1,
74 | "Unc(%)_Ift":0,
75 | "STS_Ift":0
76 | },
77 | "5":{
78 | "element_name":"Line.632645",
79 | "num_ph":2,
80 | "num_cond":2,
81 | "conn":"",
82 | "from_bus":"632",
83 | "to_bus":"645",
84 | "bus1":"632.3.2",
85 | "bus2":"645.3.2",
86 | "ph_1":0,
87 | "ph_2":1,
88 | "ph_3":1,
89 | "Unc(%)_Ift":0,
90 | "STS_Ift":0
91 | },
92 | "6":{
93 | "element_name":"Line.645646",
94 | "num_ph":2,
95 | "num_cond":2,
96 | "conn":"",
97 | "from_bus":"645",
98 | "to_bus":"646",
99 | "bus1":"645.3.2",
100 | "bus2":"646.3.2",
101 | "ph_1":0,
102 | "ph_2":1,
103 | "ph_3":1,
104 | "Unc(%)_Ift":0,
105 | "STS_Ift":0
106 | },
107 | "7":{
108 | "element_name":"Line.692675",
109 | "num_ph":3,
110 | "num_cond":3,
111 | "conn":"",
112 | "from_bus":"692",
113 | "to_bus":"675",
114 | "bus1":"692.1.2.3",
115 | "bus2":"675.1.2.3",
116 | "ph_1":1,
117 | "ph_2":1,
118 | "ph_3":1,
119 | "Unc(%)_Ift":0,
120 | "STS_Ift":0
121 | },
122 | "8":{
123 | "element_name":"Line.671684",
124 | "num_ph":2,
125 | "num_cond":2,
126 | "conn":"",
127 | "from_bus":"671",
128 | "to_bus":"684",
129 | "bus1":"671.1.3",
130 | "bus2":"684.1.3",
131 | "ph_1":1,
132 | "ph_2":0,
133 | "ph_3":1,
134 | "Unc(%)_Ift":0,
135 | "STS_Ift":0
136 | },
137 | "9":{
138 | "element_name":"Line.684611",
139 | "num_ph":1,
140 | "num_cond":1,
141 | "conn":"",
142 | "from_bus":"684",
143 | "to_bus":"611",
144 | "bus1":"684.3",
145 | "bus2":"611.3",
146 | "ph_1":0,
147 | "ph_2":0,
148 | "ph_3":1,
149 | "Unc(%)_Ift":0,
150 | "STS_Ift":0
151 | },
152 | "10":{
153 | "element_name":"Line.684652",
154 | "num_ph":1,
155 | "num_cond":1,
156 | "conn":"",
157 | "from_bus":"684",
158 | "to_bus":"652",
159 | "bus1":"684.1",
160 | "bus2":"652.1",
161 | "ph_1":1,
162 | "ph_2":0,
163 | "ph_3":0,
164 | "Unc(%)_Ift":0,
165 | "STS_Ift":0
166 | },
167 | "11":{
168 | "element_name":"Line.671692",
169 | "num_ph":3,
170 | "num_cond":3,
171 | "conn":"",
172 | "from_bus":"671",
173 | "to_bus":"692",
174 | "bus1":"671",
175 | "bus2":"692",
176 | "ph_1":1,
177 | "ph_2":1,
178 | "ph_3":1,
179 | "Unc(%)_Ift":0,
180 | "STS_Ift":0
181 | }
182 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/MEAS_files/MEAS_Bus_i_PMU.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "bus_name":650,
4 | "num_nodes":3,
5 | "ph_1":1,
6 | "ph_2":1,
7 | "ph_3":1,
8 | "STS_Vm":0,
9 | "Rii_Vm":0,
10 | "V1m(pu)":0,
11 | "V2m(pu)":0,
12 | "V3m(pu)":0,
13 | "Ang1m(deg)":0,
14 | "Ang2m(deg)":0,
15 | "Ang3m(deg)":0
16 | },
17 | "1":{
18 | "bus_name":671,
19 | "num_nodes":3,
20 | "ph_1":1,
21 | "ph_2":1,
22 | "ph_3":1,
23 | "STS_Vm":0,
24 | "Rii_Vm":0,
25 | "V1m(pu)":0,
26 | "V2m(pu)":0,
27 | "V3m(pu)":0,
28 | "Ang1m(deg)":0,
29 | "Ang2m(deg)":0,
30 | "Ang3m(deg)":0
31 | },
32 | "2":{
33 | "bus_name":633,
34 | "num_nodes":3,
35 | "ph_1":1,
36 | "ph_2":1,
37 | "ph_3":1,
38 | "STS_Vm":0,
39 | "Rii_Vm":0,
40 | "V1m(pu)":0,
41 | "V2m(pu)":0,
42 | "V3m(pu)":0,
43 | "Ang1m(deg)":0,
44 | "Ang2m(deg)":0,
45 | "Ang3m(deg)":0
46 | },
47 | "3":{
48 | "bus_name":645,
49 | "num_nodes":2,
50 | "ph_1":0,
51 | "ph_2":1,
52 | "ph_3":1,
53 | "STS_Vm":0,
54 | "Rii_Vm":0,
55 | "V1m(pu)":0,
56 | "V2m(pu)":0,
57 | "V3m(pu)":0,
58 | "Ang1m(deg)":0,
59 | "Ang2m(deg)":0,
60 | "Ang3m(deg)":0
61 | },
62 | "4":{
63 | "bus_name":646,
64 | "num_nodes":2,
65 | "ph_1":0,
66 | "ph_2":1,
67 | "ph_3":1,
68 | "STS_Vm":0,
69 | "Rii_Vm":0,
70 | "V1m(pu)":0,
71 | "V2m(pu)":0,
72 | "V3m(pu)":0,
73 | "Ang1m(deg)":0,
74 | "Ang2m(deg)":0,
75 | "Ang3m(deg)":0
76 | },
77 | "5":{
78 | "bus_name":692,
79 | "num_nodes":3,
80 | "ph_1":1,
81 | "ph_2":1,
82 | "ph_3":1,
83 | "STS_Vm":0,
84 | "Rii_Vm":0,
85 | "V1m(pu)":0,
86 | "V2m(pu)":0,
87 | "V3m(pu)":0,
88 | "Ang1m(deg)":0,
89 | "Ang2m(deg)":0,
90 | "Ang3m(deg)":0
91 | },
92 | "6":{
93 | "bus_name":675,
94 | "num_nodes":3,
95 | "ph_1":1,
96 | "ph_2":1,
97 | "ph_3":1,
98 | "STS_Vm":0,
99 | "Rii_Vm":0,
100 | "V1m(pu)":0,
101 | "V2m(pu)":0,
102 | "V3m(pu)":0,
103 | "Ang1m(deg)":0,
104 | "Ang2m(deg)":0,
105 | "Ang3m(deg)":0
106 | },
107 | "7":{
108 | "bus_name":611,
109 | "num_nodes":1,
110 | "ph_1":0,
111 | "ph_2":0,
112 | "ph_3":1,
113 | "STS_Vm":0,
114 | "Rii_Vm":0,
115 | "V1m(pu)":0,
116 | "V2m(pu)":0,
117 | "V3m(pu)":0,
118 | "Ang1m(deg)":0,
119 | "Ang2m(deg)":0,
120 | "Ang3m(deg)":0
121 | },
122 | "8":{
123 | "bus_name":652,
124 | "num_nodes":1,
125 | "ph_1":1,
126 | "ph_2":0,
127 | "ph_3":0,
128 | "STS_Vm":0,
129 | "Rii_Vm":0,
130 | "V1m(pu)":0,
131 | "V2m(pu)":0,
132 | "V3m(pu)":0,
133 | "Ang1m(deg)":0,
134 | "Ang2m(deg)":0,
135 | "Ang3m(deg)":0
136 | },
137 | "9":{
138 | "bus_name":670,
139 | "num_nodes":3,
140 | "ph_1":1,
141 | "ph_2":1,
142 | "ph_3":1,
143 | "STS_Vm":0,
144 | "Rii_Vm":0,
145 | "V1m(pu)":0,
146 | "V2m(pu)":0,
147 | "V3m(pu)":0,
148 | "Ang1m(deg)":0,
149 | "Ang2m(deg)":0,
150 | "Ang3m(deg)":0
151 | },
152 | "10":{
153 | "bus_name":632,
154 | "num_nodes":3,
155 | "ph_1":1,
156 | "ph_2":1,
157 | "ph_3":1,
158 | "STS_Vm":0,
159 | "Rii_Vm":0,
160 | "V1m(pu)":0,
161 | "V2m(pu)":0,
162 | "V3m(pu)":0,
163 | "Ang1m(deg)":0,
164 | "Ang2m(deg)":0,
165 | "Ang3m(deg)":0
166 | },
167 | "11":{
168 | "bus_name":680,
169 | "num_nodes":3,
170 | "ph_1":1,
171 | "ph_2":1,
172 | "ph_3":1,
173 | "STS_Vm":0,
174 | "Rii_Vm":0,
175 | "V1m(pu)":0,
176 | "V2m(pu)":0,
177 | "V3m(pu)":0,
178 | "Ang1m(deg)":0,
179 | "Ang2m(deg)":0,
180 | "Ang3m(deg)":0
181 | },
182 | "12":{
183 | "bus_name":684,
184 | "num_nodes":2,
185 | "ph_1":1,
186 | "ph_2":0,
187 | "ph_3":1,
188 | "STS_Vm":0,
189 | "Rii_Vm":0,
190 | "V1m(pu)":0,
191 | "V2m(pu)":0,
192 | "V3m(pu)":0,
193 | "Ang1m(deg)":0,
194 | "Ang2m(deg)":0,
195 | "Ang3m(deg)":0
196 | }
197 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/MEAS_files/Init_Bus_i.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "bus_name":"bus_1",
4 | "num_nodes":1,
5 | "ph_1":1,
6 | "ph_2":0,
7 | "ph_3":0,
8 | "Unc(%)_Vm":3,
9 | "STS_Vm":1,
10 | "Unc(%)_PQd":0,
11 | "STS_PQd(SM)":0,
12 | "STS_PQd(0)":0,
13 | "STS_PQd(Psd)":0
14 | },
15 | "1":{
16 | "bus_name":"bus_2",
17 | "num_nodes":1,
18 | "ph_1":1,
19 | "ph_2":0,
20 | "ph_3":0,
21 | "Unc(%)_Vm":0,
22 | "STS_Vm":0,
23 | "Unc(%)_PQd":5,
24 | "STS_PQd(SM)":1,
25 | "STS_PQd(0)":0,
26 | "STS_PQd(Psd)":0
27 | },
28 | "2":{
29 | "bus_name":"bus_3",
30 | "num_nodes":1,
31 | "ph_1":1,
32 | "ph_2":0,
33 | "ph_3":0,
34 | "Unc(%)_Vm":0,
35 | "STS_Vm":0,
36 | "Unc(%)_PQd":5,
37 | "STS_PQd(SM)":1,
38 | "STS_PQd(0)":0,
39 | "STS_PQd(Psd)":0
40 | },
41 | "3":{
42 | "bus_name":"bus_4",
43 | "num_nodes":1,
44 | "ph_1":1,
45 | "ph_2":0,
46 | "ph_3":0,
47 | "Unc(%)_Vm":3,
48 | "STS_Vm":1,
49 | "Unc(%)_PQd":5,
50 | "STS_PQd(SM)":1,
51 | "STS_PQd(0)":0,
52 | "STS_PQd(Psd)":0
53 | },
54 | "4":{
55 | "bus_name":"bus_5",
56 | "num_nodes":1,
57 | "ph_1":1,
58 | "ph_2":0,
59 | "ph_3":0,
60 | "Unc(%)_Vm":0,
61 | "STS_Vm":0,
62 | "Unc(%)_PQd":5,
63 | "STS_PQd(SM)":1,
64 | "STS_PQd(0)":0,
65 | "STS_PQd(Psd)":0
66 | },
67 | "5":{
68 | "bus_name":"bus_9",
69 | "num_nodes":1,
70 | "ph_1":1,
71 | "ph_2":0,
72 | "ph_3":0,
73 | "Unc(%)_Vm":0,
74 | "STS_Vm":0,
75 | "Unc(%)_PQd":15,
76 | "STS_PQd(SM)":0,
77 | "STS_PQd(0)":0,
78 | "STS_PQd(Psd)":1
79 | },
80 | "6":{
81 | "bus_name":"bus_10",
82 | "num_nodes":1,
83 | "ph_1":1,
84 | "ph_2":0,
85 | "ph_3":0,
86 | "Unc(%)_Vm":0,
87 | "STS_Vm":0,
88 | "Unc(%)_PQd":15,
89 | "STS_PQd(SM)":0,
90 | "STS_PQd(0)":0,
91 | "STS_PQd(Psd)":1
92 | },
93 | "7":{
94 | "bus_name":"bus_6",
95 | "num_nodes":1,
96 | "ph_1":1,
97 | "ph_2":0,
98 | "ph_3":0,
99 | "Unc(%)_Vm":15,
100 | "STS_Vm":0,
101 | "Unc(%)_PQd":0,
102 | "STS_PQd(SM)":0,
103 | "STS_PQd(0)":0,
104 | "STS_PQd(Psd)":1
105 | },
106 | "8":{
107 | "bus_name":"bus_7",
108 | "num_nodes":1,
109 | "ph_1":1,
110 | "ph_2":0,
111 | "ph_3":0,
112 | "Unc(%)_Vm":0,
113 | "STS_Vm":0,
114 | "Unc(%)_PQd":15,
115 | "STS_PQd(SM)":0,
116 | "STS_PQd(0)":0,
117 | "STS_PQd(Psd)":1
118 | },
119 | "9":{
120 | "bus_name":"bus_8",
121 | "num_nodes":1,
122 | "ph_1":1,
123 | "ph_2":0,
124 | "ph_3":0,
125 | "Unc(%)_Vm":0,
126 | "STS_Vm":0,
127 | "Unc(%)_PQd":15,
128 | "STS_PQd(SM)":0,
129 | "STS_PQd(0)":0,
130 | "STS_PQd(Psd)":1
131 | },
132 | "10":{
133 | "bus_name":"bus_11",
134 | "num_nodes":1,
135 | "ph_1":1,
136 | "ph_2":0,
137 | "ph_3":0,
138 | "Unc(%)_Vm":0,
139 | "STS_Vm":0,
140 | "Unc(%)_PQd":15,
141 | "STS_PQd(SM)":0,
142 | "STS_PQd(0)":0,
143 | "STS_PQd(Psd)":1
144 | },
145 | "11":{
146 | "bus_name":"bus_12",
147 | "num_nodes":1,
148 | "ph_1":1,
149 | "ph_2":0,
150 | "ph_3":0,
151 | "Unc(%)_Vm":0,
152 | "STS_Vm":0,
153 | "Unc(%)_PQd":15,
154 | "STS_PQd(SM)":0,
155 | "STS_PQd(0)":0,
156 | "STS_PQd(Psd)":1
157 | },
158 | "12":{
159 | "bus_name":"bus_13",
160 | "num_nodes":1,
161 | "ph_1":1,
162 | "ph_2":0,
163 | "ph_3":0,
164 | "Unc(%)_Vm":0,
165 | "STS_Vm":0,
166 | "Unc(%)_PQd":15,
167 | "STS_PQd(SM)":0,
168 | "STS_PQd(0)":0,
169 | "STS_PQd(Psd)":1
170 | },
171 | "13":{
172 | "bus_name":"bus_14",
173 | "num_nodes":1,
174 | "ph_1":1,
175 | "ph_2":0,
176 | "ph_3":0,
177 | "Unc(%)_Vm":0,
178 | "STS_Vm":0,
179 | "Unc(%)_PQd":15,
180 | "STS_PQd(SM)":0,
181 | "STS_PQd(0)":0,
182 | "STS_PQd(Psd)":1
183 | },
184 | "14":{
185 | "bus_name":"bus_15",
186 | "num_nodes":1,
187 | "ph_1":1,
188 | "ph_2":0,
189 | "ph_3":0,
190 | "Unc(%)_Vm":0,
191 | "STS_Vm":0,
192 | "Unc(%)_PQd":15,
193 | "STS_PQd(SM)":0,
194 | "STS_PQd(0)":0,
195 | "STS_PQd(Psd)":1
196 | }
197 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/MEAS_files/Pos_MEAS_Bus_i.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "bus_name":"650",
4 | "STS_Vm":1,
5 | "Rii_Vm":0.0001,
6 | "V1m(pu)":1.05002,
7 | "STS_PQd(SM)":0,
8 | "Rii_SM":0.0,
9 | "STS_PQd(0)":0,
10 | "Rii_0":0,
11 | "STS_PQd(Psd)":0,
12 | "Rii_Psd":0.0,
13 | "P1md(pu)":0.0,
14 | "Q1md(pu)":0.0
15 | },
16 | "1":{
17 | "bus_name":"671",
18 | "STS_Vm":0,
19 | "Rii_Vm":0.0,
20 | "V1m(pu)":0.0,
21 | "STS_PQd(SM)":0,
22 | "Rii_SM":0.0,
23 | "STS_PQd(0)":0,
24 | "Rii_0":0,
25 | "STS_PQd(Psd)":1,
26 | "Rii_Psd":0.0025,
27 | "P1md(pu)":-0.11534,
28 | "Q1md(pu)":-0.06584
29 | },
30 | "2":{
31 | "bus_name":"633",
32 | "STS_Vm":0,
33 | "Rii_Vm":0.0,
34 | "V1m(pu)":0.0,
35 | "STS_PQd(SM)":0,
36 | "Rii_SM":0.0,
37 | "STS_PQd(0)":0,
38 | "Rii_0":0,
39 | "STS_PQd(Psd)":1,
40 | "Rii_Psd":0.0025,
41 | "P1md(pu)":-0.04012,
42 | "Q1md(pu)":-0.02912
43 | },
44 | "3":{
45 | "bus_name":"645",
46 | "STS_Vm":1,
47 | "Rii_Vm":0.0001,
48 | "V1m(pu)":1.0026,
49 | "STS_PQd(SM)":1,
50 | "Rii_SM":0.0002778889,
51 | "STS_PQd(0)":0,
52 | "Rii_0":0,
53 | "STS_PQd(Psd)":0,
54 | "Rii_Psd":0.0,
55 | "P1md(pu)":-0.01738,
56 | "Q1md(pu)":-0.01288
57 | },
58 | "4":{
59 | "bus_name":"646",
60 | "STS_Vm":1,
61 | "Rii_Vm":0.0001,
62 | "V1m(pu)":1.00137,
63 | "STS_PQd(SM)":1,
64 | "Rii_SM":0.0002778889,
65 | "STS_PQd(0)":0,
66 | "Rii_0":0,
67 | "STS_PQd(Psd)":0,
68 | "Rii_Psd":0.0,
69 | "P1md(pu)":-0.02277,
70 | "Q1md(pu)":-0.01295
71 | },
72 | "5":{
73 | "bus_name":"692",
74 | "STS_Vm":0,
75 | "Rii_Vm":0.0,
76 | "V1m(pu)":0.0,
77 | "STS_PQd(SM)":0,
78 | "Rii_SM":0.0,
79 | "STS_PQd(0)":0,
80 | "Rii_0":0,
81 | "STS_PQd(Psd)":1,
82 | "Rii_Psd":0.0025,
83 | "P1md(pu)":-0.01586,
84 | "Q1md(pu)":-0.014
85 | },
86 | "6":{
87 | "bus_name":"675",
88 | "STS_Vm":0,
89 | "Rii_Vm":0.0,
90 | "V1m(pu)":0.0,
91 | "STS_PQd(SM)":0,
92 | "Rii_SM":0.0,
93 | "STS_PQd(0)":0,
94 | "Rii_0":0,
95 | "STS_PQd(Psd)":1,
96 | "Rii_Psd":0.0025,
97 | "P1md(pu)":-0.08533,
98 | "Q1md(pu)":-0.04723
99 | },
100 | "7":{
101 | "bus_name":"611",
102 | "STS_Vm":1,
103 | "Rii_Vm":0.0001,
104 | "V1m(pu)":0.97312,
105 | "STS_PQd(SM)":1,
106 | "Rii_SM":0.0002778889,
107 | "STS_PQd(0)":0,
108 | "Rii_0":0,
109 | "STS_PQd(Psd)":0,
110 | "Rii_Psd":0.0,
111 | "P1md(pu)":-0.01668,
112 | "Q1md(pu)":-0.00792
113 | },
114 | "8":{
115 | "bus_name":"652",
116 | "STS_Vm":0,
117 | "Rii_Vm":0.0,
118 | "V1m(pu)":0.0,
119 | "STS_PQd(SM)":0,
120 | "Rii_SM":0.0,
121 | "STS_PQd(0)":0,
122 | "Rii_0":0,
123 | "STS_PQd(Psd)":1,
124 | "Rii_Psd":0.0025,
125 | "P1md(pu)":-0.01228,
126 | "Q1md(pu)":-0.00831
127 | },
128 | "9":{
129 | "bus_name":"670",
130 | "STS_Vm":0,
131 | "Rii_Vm":0.0,
132 | "V1m(pu)":0.0,
133 | "STS_PQd(SM)":0,
134 | "Rii_SM":0.0,
135 | "STS_PQd(0)":0,
136 | "Rii_0":0,
137 | "STS_PQd(Psd)":1,
138 | "Rii_Psd":0.0025,
139 | "P1md(pu)":-0.02019,
140 | "Q1md(pu)":-0.01179
141 | },
142 | "10":{
143 | "bus_name":"632",
144 | "STS_Vm":1,
145 | "Rii_Vm":0.0001,
146 | "V1m(pu)":1.00645,
147 | "STS_PQd(SM)":0,
148 | "Rii_SM":0.0,
149 | "STS_PQd(0)":0,
150 | "Rii_0":0,
151 | "STS_PQd(Psd)":0,
152 | "Rii_Psd":0.0,
153 | "P1md(pu)":0.0,
154 | "Q1md(pu)":0.0
155 | },
156 | "11":{
157 | "bus_name":"680",
158 | "STS_Vm":0,
159 | "Rii_Vm":0.0,
160 | "V1m(pu)":0.0,
161 | "STS_PQd(SM)":0,
162 | "Rii_SM":0.0,
163 | "STS_PQd(0)":0,
164 | "Rii_0":0,
165 | "STS_PQd(Psd)":0,
166 | "Rii_Psd":0.0,
167 | "P1md(pu)":0.0,
168 | "Q1md(pu)":0.0
169 | },
170 | "12":{
171 | "bus_name":"684",
172 | "STS_Vm":0,
173 | "Rii_Vm":0.0,
174 | "V1m(pu)":0.0,
175 | "STS_PQd(SM)":0,
176 | "Rii_SM":0.0,
177 | "STS_PQd(0)":0,
178 | "Rii_0":0,
179 | "STS_PQd(Psd)":0,
180 | "Rii_Psd":0.0,
181 | "P1md(pu)":0.0,
182 | "Q1md(pu)":0.0
183 | }
184 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/MEAS_files/MEAS_Elem_ft_PMU.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "element_name":"Line.650632",
4 | "num_ph":3,
5 | "from_bus":650,
6 | "to_bus":632,
7 | "ph_1":1,
8 | "ph_2":1,
9 | "ph_3":1,
10 | "STS_Ift":0,
11 | "Rii_Ift":0,
12 | "I1mft(pu)":0,
13 | "I2mft(pu)":0,
14 | "I3mft(pu)":0,
15 | "Ang1m(deg)":0,
16 | "Ang2m(deg)":0,
17 | "Ang3m(deg)":0
18 | },
19 | "1":{
20 | "element_name":"Line.632670",
21 | "num_ph":3,
22 | "from_bus":632,
23 | "to_bus":670,
24 | "ph_1":1,
25 | "ph_2":1,
26 | "ph_3":1,
27 | "STS_Ift":0,
28 | "Rii_Ift":0,
29 | "I1mft(pu)":0,
30 | "I2mft(pu)":0,
31 | "I3mft(pu)":0,
32 | "Ang1m(deg)":0,
33 | "Ang2m(deg)":0,
34 | "Ang3m(deg)":0
35 | },
36 | "2":{
37 | "element_name":"Line.670671",
38 | "num_ph":3,
39 | "from_bus":670,
40 | "to_bus":671,
41 | "ph_1":1,
42 | "ph_2":1,
43 | "ph_3":1,
44 | "STS_Ift":0,
45 | "Rii_Ift":0,
46 | "I1mft(pu)":0,
47 | "I2mft(pu)":0,
48 | "I3mft(pu)":0,
49 | "Ang1m(deg)":0,
50 | "Ang2m(deg)":0,
51 | "Ang3m(deg)":0
52 | },
53 | "3":{
54 | "element_name":"Line.671680",
55 | "num_ph":3,
56 | "from_bus":671,
57 | "to_bus":680,
58 | "ph_1":1,
59 | "ph_2":1,
60 | "ph_3":1,
61 | "STS_Ift":0,
62 | "Rii_Ift":0,
63 | "I1mft(pu)":0,
64 | "I2mft(pu)":0,
65 | "I3mft(pu)":0,
66 | "Ang1m(deg)":0,
67 | "Ang2m(deg)":0,
68 | "Ang3m(deg)":0
69 | },
70 | "4":{
71 | "element_name":"Line.632633",
72 | "num_ph":3,
73 | "from_bus":632,
74 | "to_bus":633,
75 | "ph_1":1,
76 | "ph_2":1,
77 | "ph_3":1,
78 | "STS_Ift":0,
79 | "Rii_Ift":0,
80 | "I1mft(pu)":0,
81 | "I2mft(pu)":0,
82 | "I3mft(pu)":0,
83 | "Ang1m(deg)":0,
84 | "Ang2m(deg)":0,
85 | "Ang3m(deg)":0
86 | },
87 | "5":{
88 | "element_name":"Line.632645",
89 | "num_ph":2,
90 | "from_bus":632,
91 | "to_bus":645,
92 | "ph_1":0,
93 | "ph_2":1,
94 | "ph_3":1,
95 | "STS_Ift":0,
96 | "Rii_Ift":0,
97 | "I1mft(pu)":0,
98 | "I2mft(pu)":0,
99 | "I3mft(pu)":0,
100 | "Ang1m(deg)":0,
101 | "Ang2m(deg)":0,
102 | "Ang3m(deg)":0
103 | },
104 | "6":{
105 | "element_name":"Line.645646",
106 | "num_ph":2,
107 | "from_bus":645,
108 | "to_bus":646,
109 | "ph_1":0,
110 | "ph_2":1,
111 | "ph_3":1,
112 | "STS_Ift":0,
113 | "Rii_Ift":0,
114 | "I1mft(pu)":0,
115 | "I2mft(pu)":0,
116 | "I3mft(pu)":0,
117 | "Ang1m(deg)":0,
118 | "Ang2m(deg)":0,
119 | "Ang3m(deg)":0
120 | },
121 | "7":{
122 | "element_name":"Line.692675",
123 | "num_ph":3,
124 | "from_bus":692,
125 | "to_bus":675,
126 | "ph_1":1,
127 | "ph_2":1,
128 | "ph_3":1,
129 | "STS_Ift":0,
130 | "Rii_Ift":0,
131 | "I1mft(pu)":0,
132 | "I2mft(pu)":0,
133 | "I3mft(pu)":0,
134 | "Ang1m(deg)":0,
135 | "Ang2m(deg)":0,
136 | "Ang3m(deg)":0
137 | },
138 | "8":{
139 | "element_name":"Line.671684",
140 | "num_ph":2,
141 | "from_bus":671,
142 | "to_bus":684,
143 | "ph_1":1,
144 | "ph_2":0,
145 | "ph_3":1,
146 | "STS_Ift":0,
147 | "Rii_Ift":0,
148 | "I1mft(pu)":0,
149 | "I2mft(pu)":0,
150 | "I3mft(pu)":0,
151 | "Ang1m(deg)":0,
152 | "Ang2m(deg)":0,
153 | "Ang3m(deg)":0
154 | },
155 | "9":{
156 | "element_name":"Line.684611",
157 | "num_ph":1,
158 | "from_bus":684,
159 | "to_bus":611,
160 | "ph_1":0,
161 | "ph_2":0,
162 | "ph_3":1,
163 | "STS_Ift":0,
164 | "Rii_Ift":0,
165 | "I1mft(pu)":0,
166 | "I2mft(pu)":0,
167 | "I3mft(pu)":0,
168 | "Ang1m(deg)":0,
169 | "Ang2m(deg)":0,
170 | "Ang3m(deg)":0
171 | },
172 | "10":{
173 | "element_name":"Line.684652",
174 | "num_ph":1,
175 | "from_bus":684,
176 | "to_bus":652,
177 | "ph_1":1,
178 | "ph_2":0,
179 | "ph_3":0,
180 | "STS_Ift":0,
181 | "Rii_Ift":0,
182 | "I1mft(pu)":0,
183 | "I2mft(pu)":0,
184 | "I3mft(pu)":0,
185 | "Ang1m(deg)":0,
186 | "Ang2m(deg)":0,
187 | "Ang3m(deg)":0
188 | },
189 | "11":{
190 | "element_name":"Line.671692",
191 | "num_ph":3,
192 | "from_bus":671,
193 | "to_bus":692,
194 | "ph_1":1,
195 | "ph_2":1,
196 | "ph_3":1,
197 | "STS_Ift":0,
198 | "Rii_Ift":0,
199 | "I1mft(pu)":0,
200 | "I2mft(pu)":0,
201 | "I3mft(pu)":0,
202 | "Ang1m(deg)":0,
203 | "Ang2m(deg)":0,
204 | "Ang3m(deg)":0
205 | }
206 | }
--------------------------------------------------------------------------------
/openpy_dsse/base_DSSE.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # @Time : 18/08/2022
3 | # @Author : Ing. Jorge Lara
4 | # @Email : jlara@iee.unsj.edu.ar
5 | # @File : ------------
6 | # @Software: PyCharm
7 |
8 | import numpy as np
9 | #from .Algorithm_classification import *
10 | #from .OpenDSS_data_extraction import OpenDSS_data_collection
11 | from .error_handling_logging import update_logg_file
12 |
13 | # Options or combinations currently available
14 | # op = [Typ_cir: str, ALG: str, coord: str, method: str]
15 | alg_mapping = {
16 | 'op1': ['1ph', 'NV', 'polar', 'nonlinear'],
17 | 'op2': ['1ph', 'NV', 'polar', 'linear_PMU'],
18 | 'op3': ['1ph', 'NV', 'polar', 'nonlinear_PMU'],
19 | 'op4': ['Pos', 'NV', 'polar', 'nonlinear'],
20 | 'op5': ['Pos', 'NV', 'polar', 'nonlinear_PMU']
21 | }
22 |
23 | class File_options:
24 |
25 | def __init__(self, DSS_path: str, MEAS_path: str, path_save: str, MEAS_Pos: bool, name_project: str):
26 |
27 | self.DSS_path = DSS_path
28 | self.MEAS_path = MEAS_path
29 | self.path_save = path_save
30 | self.MEAS_Pos = MEAS_Pos
31 | self.name_project = name_project
32 |
33 | class Algorithm_options:
34 |
35 | def __init__(self, Typ_cir: str, ALG: str, coord: str, method: str):
36 | self.Typ_cir = Typ_cir
37 | self.ALG = ALG
38 | self.coord = coord
39 | self.method = method
40 |
41 | class BaseAlgorithm:
42 |
43 | def __init__(self, Sbas3ph_MVA: float, tolerance: float, max_iter: int, init_values: str):
44 |
45 | self.Sbas3ph_MVA = Sbas3ph_MVA
46 | self.tolerance = tolerance
47 | self.max_iter = max_iter
48 | self.init_values = init_values
49 | self.successful = False
50 |
51 | class functions_DSSE:
52 | def check_observability(self, num_state_var, num_measurements, log_py):
53 | if num_measurements < (2 * num_state_var) - 1:
54 | update_logg_file("System is not observable (cancelling)", 4, log_py)
55 | update_logg_file(
56 | f'Measurements available: {num_measurements}. '
57 | f'Measurements required: {(2 * num_state_var) - 1}', 3, log_py)
58 | exit()
59 |
60 | raise UserWarning("Measurements available: %d. Measurements required: %d" %
61 | (num_measurements, (2 * num_state_var) - 1))
62 |
63 | exit()
64 | else:
65 | pass
66 |
67 | def check_num_max_iter(self, max_iter, n_Iter, tol, log_py):
68 | if max_iter <= n_Iter:
69 | if max_iter > 1:
70 | update_logg_file(f"The state estimation algorithm does not converge", 4, log_py)
71 | update_logg_file(f"Number of iterrations:{max_iter}, Tolerance: {format(tol, '.2E')}", 4, log_py)
72 | update_logg_file("Suggestion, change the location and type of measurements", 3, log_py)
73 | exit()
74 |
75 | def calculate_Ginv(self, Gm: np.array, log_py):
76 | try:
77 | G_inv = np.linalg.inv(Gm)
78 | except:
79 | update_logg_file('Cannot calculate inverse matrix of G, change type and location of measurements', 4, log_py)
80 | exit()
81 | return G_inv
82 |
83 | class Estimating_other_parameters:
84 | def __init__(self, I_Ang_EST: bool = False, PQi_EST: bool = False, PQf_EST: bool = False):
85 | self.I_Ang_EST = I_Ang_EST
86 | self.PQi_EST = PQi_EST
87 | self.PQf_EST = PQf_EST
88 |
89 | class Plot_DSSE_results:
90 | def __init__(self, Plot_results: bool = False, no_PU: bool = False, MAPE: bool = False, MAE: bool = False, RMSE: bool = False):
91 |
92 | self.Plot_results = Plot_results
93 | self.no_PU = no_PU
94 | self.MAPE = MAPE
95 | self.MAE = MAE
96 | self.RMSE = RMSE
97 |
98 | class Bad_data_detection(BaseAlgorithm):
99 |
100 | def __init__(self, Sbas3ph_MVA, tolerance, max_iter, init_values):
101 | super(Bad_data_detection, self).__init__(Sbas3ph_MVA, tolerance, max_iter, init_values)
102 |
103 | # Parameters for Bad data detection
104 | self.R_inv = None
105 | self.Gm = None
106 | self.r = None
107 | self.H = None
108 | self.hx = None
109 |
110 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/MEAS_files/Init_Elem_ft.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "element_name":"Line.650632",
4 | "num_ph":3,
5 | "num_cond":3,
6 | "conn":"",
7 | "from_bus":"650",
8 | "to_bus":"632",
9 | "bus1":"650.1.2.3",
10 | "bus2":"632.1.2.3",
11 | "ph_1":1,
12 | "ph_2":1,
13 | "ph_3":1,
14 | "Unc(%)_PQft":3,
15 | "STS_PQft":1,
16 | "Unc(%)_Ift":0,
17 | "STS_Ift":0
18 | },
19 | "1":{
20 | "element_name":"Line.632670",
21 | "num_ph":3,
22 | "num_cond":3,
23 | "conn":"",
24 | "from_bus":"632",
25 | "to_bus":"670",
26 | "bus1":"632.1.2.3",
27 | "bus2":"670.1.2.3",
28 | "ph_1":1,
29 | "ph_2":1,
30 | "ph_3":1,
31 | "Unc(%)_PQft":3,
32 | "STS_PQft":1,
33 | "Unc(%)_Ift":0,
34 | "STS_Ift":0
35 | },
36 | "2":{
37 | "element_name":"Line.670671",
38 | "num_ph":3,
39 | "num_cond":3,
40 | "conn":"",
41 | "from_bus":"670",
42 | "to_bus":"671",
43 | "bus1":"670.1.2.3",
44 | "bus2":"671.1.2.3",
45 | "ph_1":1,
46 | "ph_2":1,
47 | "ph_3":1,
48 | "Unc(%)_PQft":0,
49 | "STS_PQft":0,
50 | "Unc(%)_Ift":0,
51 | "STS_Ift":0
52 | },
53 | "3":{
54 | "element_name":"Line.671680",
55 | "num_ph":3,
56 | "num_cond":3,
57 | "conn":"",
58 | "from_bus":"671",
59 | "to_bus":"680",
60 | "bus1":"671.1.2.3",
61 | "bus2":"680.1.2.3",
62 | "ph_1":1,
63 | "ph_2":1,
64 | "ph_3":1,
65 | "Unc(%)_PQft":0,
66 | "STS_PQft":0,
67 | "Unc(%)_Ift":0,
68 | "STS_Ift":0
69 | },
70 | "4":{
71 | "element_name":"Line.632633",
72 | "num_ph":3,
73 | "num_cond":3,
74 | "conn":"",
75 | "from_bus":"632",
76 | "to_bus":"633",
77 | "bus1":"632.1.2.3",
78 | "bus2":"633.1.2.3",
79 | "ph_1":1,
80 | "ph_2":1,
81 | "ph_3":1,
82 | "Unc(%)_PQft":0,
83 | "STS_PQft":0,
84 | "Unc(%)_Ift":0,
85 | "STS_Ift":0
86 | },
87 | "5":{
88 | "element_name":"Line.632645",
89 | "num_ph":2,
90 | "num_cond":2,
91 | "conn":"",
92 | "from_bus":"632",
93 | "to_bus":"645",
94 | "bus1":"632.3.2",
95 | "bus2":"645.3.2",
96 | "ph_1":0,
97 | "ph_2":1,
98 | "ph_3":1,
99 | "Unc(%)_PQft":0,
100 | "STS_PQft":0,
101 | "Unc(%)_Ift":0,
102 | "STS_Ift":0
103 | },
104 | "6":{
105 | "element_name":"Line.645646",
106 | "num_ph":2,
107 | "num_cond":2,
108 | "conn":"",
109 | "from_bus":"645",
110 | "to_bus":"646",
111 | "bus1":"645.3.2",
112 | "bus2":"646.3.2",
113 | "ph_1":0,
114 | "ph_2":1,
115 | "ph_3":1,
116 | "Unc(%)_PQft":0,
117 | "STS_PQft":0,
118 | "Unc(%)_Ift":0,
119 | "STS_Ift":0
120 | },
121 | "7":{
122 | "element_name":"Line.692675",
123 | "num_ph":3,
124 | "num_cond":3,
125 | "conn":"",
126 | "from_bus":"692",
127 | "to_bus":"675",
128 | "bus1":"692.1.2.3",
129 | "bus2":"675.1.2.3",
130 | "ph_1":1,
131 | "ph_2":1,
132 | "ph_3":1,
133 | "Unc(%)_PQft":0,
134 | "STS_PQft":0,
135 | "Unc(%)_Ift":0,
136 | "STS_Ift":0
137 | },
138 | "8":{
139 | "element_name":"Line.671684",
140 | "num_ph":2,
141 | "num_cond":2,
142 | "conn":"",
143 | "from_bus":"671",
144 | "to_bus":"684",
145 | "bus1":"671.1.3",
146 | "bus2":"684.1.3",
147 | "ph_1":1,
148 | "ph_2":0,
149 | "ph_3":1,
150 | "Unc(%)_PQft":3,
151 | "STS_PQft":1,
152 | "Unc(%)_Ift":0,
153 | "STS_Ift":0
154 | },
155 | "9":{
156 | "element_name":"Line.684611",
157 | "num_ph":1,
158 | "num_cond":1,
159 | "conn":"",
160 | "from_bus":"684",
161 | "to_bus":"611",
162 | "bus1":"684.3",
163 | "bus2":"611.3",
164 | "ph_1":0,
165 | "ph_2":0,
166 | "ph_3":1,
167 | "Unc(%)_PQft":0,
168 | "STS_PQft":0,
169 | "Unc(%)_Ift":0,
170 | "STS_Ift":0
171 | },
172 | "10":{
173 | "element_name":"Line.684652",
174 | "num_ph":1,
175 | "num_cond":1,
176 | "conn":"",
177 | "from_bus":"684",
178 | "to_bus":"652",
179 | "bus1":"684.1",
180 | "bus2":"652.1",
181 | "ph_1":1,
182 | "ph_2":0,
183 | "ph_3":0,
184 | "Unc(%)_PQft":0,
185 | "STS_PQft":0,
186 | "Unc(%)_Ift":0,
187 | "STS_Ift":0
188 | },
189 | "11":{
190 | "element_name":"Line.671692",
191 | "num_ph":3,
192 | "num_cond":3,
193 | "conn":"",
194 | "from_bus":"671",
195 | "to_bus":"692",
196 | "bus1":"671",
197 | "bus2":"692",
198 | "ph_1":1,
199 | "ph_2":1,
200 | "ph_3":1,
201 | "Unc(%)_PQft":0,
202 | "STS_PQft":0,
203 | "Unc(%)_Ift":0,
204 | "STS_Ift":0
205 | }
206 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/MEAS_files/Init_Elem_ft_PMU.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "element_name":"Line.from_1_to_2",
4 | "num_ph":1,
5 | "num_cond":1,
6 | "conn":"",
7 | "from_bus":"bus_1",
8 | "to_bus":"bus_2",
9 | "bus1":"bus_1.1",
10 | "bus2":"bus_2.1",
11 | "ph_1":1,
12 | "ph_2":0,
13 | "ph_3":0,
14 | "Unc(%)_Ift":0,
15 | "STS_Ift":0
16 | },
17 | "1":{
18 | "element_name":"Line.from_2_to_3",
19 | "num_ph":1,
20 | "num_cond":1,
21 | "conn":"",
22 | "from_bus":"bus_2",
23 | "to_bus":"bus_3",
24 | "bus1":"bus_2.1",
25 | "bus2":"bus_3.1",
26 | "ph_1":1,
27 | "ph_2":0,
28 | "ph_3":0,
29 | "Unc(%)_Ift":0,
30 | "STS_Ift":0
31 | },
32 | "2":{
33 | "element_name":"Line.from_3_to_4",
34 | "num_ph":1,
35 | "num_cond":1,
36 | "conn":"",
37 | "from_bus":"bus_3",
38 | "to_bus":"bus_4",
39 | "bus1":"bus_3.1",
40 | "bus2":"bus_4.1",
41 | "ph_1":1,
42 | "ph_2":0,
43 | "ph_3":0,
44 | "Unc(%)_Ift":2,
45 | "STS_Ift":1
46 | },
47 | "3":{
48 | "element_name":"Line.from_4_to_5",
49 | "num_ph":1,
50 | "num_cond":1,
51 | "conn":"",
52 | "from_bus":"bus_4",
53 | "to_bus":"bus_5",
54 | "bus1":"bus_4.1",
55 | "bus2":"bus_5.1",
56 | "ph_1":1,
57 | "ph_2":0,
58 | "ph_3":0,
59 | "Unc(%)_Ift":0,
60 | "STS_Ift":0
61 | },
62 | "4":{
63 | "element_name":"Line.from_2_to_9",
64 | "num_ph":1,
65 | "num_cond":1,
66 | "conn":"",
67 | "from_bus":"bus_2",
68 | "to_bus":"bus_9",
69 | "bus1":"bus_2.1",
70 | "bus2":"bus_9.1",
71 | "ph_1":1,
72 | "ph_2":0,
73 | "ph_3":0,
74 | "Unc(%)_Ift":0,
75 | "STS_Ift":0
76 | },
77 | "5":{
78 | "element_name":"Line.from_9_to_10",
79 | "num_ph":1,
80 | "num_cond":1,
81 | "conn":"",
82 | "from_bus":"bus_9",
83 | "to_bus":"bus_10",
84 | "bus1":"bus_9.1",
85 | "bus2":"bus_10.1",
86 | "ph_1":1,
87 | "ph_2":0,
88 | "ph_3":0,
89 | "Unc(%)_Ift":1,
90 | "STS_Ift":1
91 | },
92 | "6":{
93 | "element_name":"Line.from_2_to_6",
94 | "num_ph":1,
95 | "num_cond":1,
96 | "conn":"",
97 | "from_bus":"bus_2",
98 | "to_bus":"bus_6",
99 | "bus1":"bus_2.1",
100 | "bus2":"bus_6.1",
101 | "ph_1":1,
102 | "ph_2":0,
103 | "ph_3":0,
104 | "Unc(%)_Ift":0,
105 | "STS_Ift":0
106 | },
107 | "7":{
108 | "element_name":"Line.from_6_to_7",
109 | "num_ph":1,
110 | "num_cond":1,
111 | "conn":"",
112 | "from_bus":"bus_6",
113 | "to_bus":"bus_7",
114 | "bus1":"bus_6.1",
115 | "bus2":"bus_7.1",
116 | "ph_1":1,
117 | "ph_2":0,
118 | "ph_3":0,
119 | "Unc(%)_Ift":0,
120 | "STS_Ift":0
121 | },
122 | "8":{
123 | "element_name":"Line.from_6_to_8",
124 | "num_ph":1,
125 | "num_cond":1,
126 | "conn":"",
127 | "from_bus":"bus_6",
128 | "to_bus":"bus_8",
129 | "bus1":"bus_6.1",
130 | "bus2":"bus_8.1",
131 | "ph_1":1,
132 | "ph_2":0,
133 | "ph_3":0,
134 | "Unc(%)_Ift":0,
135 | "STS_Ift":0
136 | },
137 | "9":{
138 | "element_name":"Line.from_3_to_11",
139 | "num_ph":1,
140 | "num_cond":1,
141 | "conn":"",
142 | "from_bus":"bus_3",
143 | "to_bus":"bus_11",
144 | "bus1":"bus_3.1",
145 | "bus2":"bus_11.1",
146 | "ph_1":1,
147 | "ph_2":0,
148 | "ph_3":0,
149 | "Unc(%)_Ift":0,
150 | "STS_Ift":0
151 | },
152 | "10":{
153 | "element_name":"Line.from_11_to_12",
154 | "num_ph":1,
155 | "num_cond":1,
156 | "conn":"",
157 | "from_bus":"bus_11",
158 | "to_bus":"bus_12",
159 | "bus1":"bus_11.1",
160 | "bus2":"bus_12.1",
161 | "ph_1":1,
162 | "ph_2":0,
163 | "ph_3":0,
164 | "Unc(%)_Ift":0,
165 | "STS_Ift":0
166 | },
167 | "11":{
168 | "element_name":"Line.from_12_to_13",
169 | "num_ph":1,
170 | "num_cond":1,
171 | "conn":"",
172 | "from_bus":"bus_12",
173 | "to_bus":"bus_13",
174 | "bus1":"bus_12.1",
175 | "bus2":"bus_13.1",
176 | "ph_1":1,
177 | "ph_2":0,
178 | "ph_3":0,
179 | "Unc(%)_Ift":0,
180 | "STS_Ift":0
181 | },
182 | "12":{
183 | "element_name":"Line.from_4_to_14",
184 | "num_ph":1,
185 | "num_cond":1,
186 | "conn":"",
187 | "from_bus":"bus_4",
188 | "to_bus":"bus_14",
189 | "bus1":"bus_4.1",
190 | "bus2":"bus_14.1",
191 | "ph_1":1,
192 | "ph_2":0,
193 | "ph_3":0,
194 | "Unc(%)_Ift":0,
195 | "STS_Ift":0
196 | },
197 | "13":{
198 | "element_name":"Line.from_4_to_15",
199 | "num_ph":1,
200 | "num_cond":1,
201 | "conn":"",
202 | "from_bus":"bus_4",
203 | "to_bus":"bus_15",
204 | "bus1":"bus_4.1",
205 | "bus2":"bus_15.1",
206 | "ph_1":1,
207 | "ph_2":0,
208 | "ph_3":0,
209 | "Unc(%)_Ift":0,
210 | "STS_Ift":0
211 | }
212 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/MEAS_files/MEAS_Bus_i_PMU.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "bus_name":"bus_1",
4 | "num_nodes":1,
5 | "ph_1":1,
6 | "ph_2":0,
7 | "ph_3":0,
8 | "STS_Vm":1,
9 | "Rii_Vm":0.0000110889,
10 | "V1m(pu)":1.0094,
11 | "V2m(pu)":0.0,
12 | "V3m(pu)":0.0,
13 | "Ang1m(deg)":0.07674,
14 | "Ang2m(deg)":0.0,
15 | "Ang3m(deg)":0.0
16 | },
17 | "1":{
18 | "bus_name":"bus_2",
19 | "num_nodes":1,
20 | "ph_1":1,
21 | "ph_2":0,
22 | "ph_3":0,
23 | "STS_Vm":0,
24 | "Rii_Vm":0.0,
25 | "V1m(pu)":0.0,
26 | "V2m(pu)":0.0,
27 | "V3m(pu)":0.0,
28 | "Ang1m(deg)":0.0,
29 | "Ang2m(deg)":0.0,
30 | "Ang3m(deg)":0.0
31 | },
32 | "2":{
33 | "bus_name":"bus_3",
34 | "num_nodes":1,
35 | "ph_1":1,
36 | "ph_2":0,
37 | "ph_3":0,
38 | "STS_Vm":0,
39 | "Rii_Vm":0.0,
40 | "V1m(pu)":0.0,
41 | "V2m(pu)":0.0,
42 | "V3m(pu)":0.0,
43 | "Ang1m(deg)":0.0,
44 | "Ang2m(deg)":0.0,
45 | "Ang3m(deg)":0.0
46 | },
47 | "3":{
48 | "bus_name":"bus_4",
49 | "num_nodes":1,
50 | "ph_1":1,
51 | "ph_2":0,
52 | "ph_3":0,
53 | "STS_Vm":0,
54 | "Rii_Vm":0.0,
55 | "V1m(pu)":0.0,
56 | "V2m(pu)":0.0,
57 | "V3m(pu)":0.0,
58 | "Ang1m(deg)":0.0,
59 | "Ang2m(deg)":0.0,
60 | "Ang3m(deg)":0.0
61 | },
62 | "4":{
63 | "bus_name":"bus_5",
64 | "num_nodes":1,
65 | "ph_1":1,
66 | "ph_2":0,
67 | "ph_3":0,
68 | "STS_Vm":0,
69 | "Rii_Vm":0.0,
70 | "V1m(pu)":0.0,
71 | "V2m(pu)":0.0,
72 | "V3m(pu)":0.0,
73 | "Ang1m(deg)":0.0,
74 | "Ang2m(deg)":0.0,
75 | "Ang3m(deg)":0.0
76 | },
77 | "5":{
78 | "bus_name":"bus_9",
79 | "num_nodes":1,
80 | "ph_1":1,
81 | "ph_2":0,
82 | "ph_3":0,
83 | "STS_Vm":1,
84 | "Rii_Vm":0.0000110889,
85 | "V1m(pu)":0.97253,
86 | "V2m(pu)":0.00002,
87 | "V3m(pu)":0.00002,
88 | "Ang1m(deg)":-0.05835,
89 | "Ang2m(deg)":0.00002,
90 | "Ang3m(deg)":0.00002
91 | },
92 | "6":{
93 | "bus_name":"bus_10",
94 | "num_nodes":1,
95 | "ph_1":1,
96 | "ph_2":0,
97 | "ph_3":0,
98 | "STS_Vm":0,
99 | "Rii_Vm":0.0,
100 | "V1m(pu)":0.0,
101 | "V2m(pu)":0.0,
102 | "V3m(pu)":0.0,
103 | "Ang1m(deg)":0.0,
104 | "Ang2m(deg)":0.0,
105 | "Ang3m(deg)":0.0
106 | },
107 | "7":{
108 | "bus_name":"bus_6",
109 | "num_nodes":1,
110 | "ph_1":1,
111 | "ph_2":0,
112 | "ph_3":0,
113 | "STS_Vm":0,
114 | "Rii_Vm":0.0,
115 | "V1m(pu)":0.0,
116 | "V2m(pu)":0.0,
117 | "V3m(pu)":0.0,
118 | "Ang1m(deg)":0.0,
119 | "Ang2m(deg)":0.0,
120 | "Ang3m(deg)":0.0
121 | },
122 | "8":{
123 | "bus_name":"bus_7",
124 | "num_nodes":1,
125 | "ph_1":1,
126 | "ph_2":0,
127 | "ph_3":0,
128 | "STS_Vm":0,
129 | "Rii_Vm":0.0,
130 | "V1m(pu)":0.0,
131 | "V2m(pu)":0.0,
132 | "V3m(pu)":0.0,
133 | "Ang1m(deg)":0.0,
134 | "Ang2m(deg)":0.0,
135 | "Ang3m(deg)":0.0
136 | },
137 | "9":{
138 | "bus_name":"bus_8",
139 | "num_nodes":1,
140 | "ph_1":1,
141 | "ph_2":0,
142 | "ph_3":0,
143 | "STS_Vm":0,
144 | "Rii_Vm":0.0,
145 | "V1m(pu)":0.0,
146 | "V2m(pu)":0.0,
147 | "V3m(pu)":0.0,
148 | "Ang1m(deg)":0.0,
149 | "Ang2m(deg)":0.0,
150 | "Ang3m(deg)":0.0
151 | },
152 | "10":{
153 | "bus_name":"bus_11",
154 | "num_nodes":1,
155 | "ph_1":1,
156 | "ph_2":0,
157 | "ph_3":0,
158 | "STS_Vm":0,
159 | "Rii_Vm":0.0,
160 | "V1m(pu)":0.0,
161 | "V2m(pu)":0.0,
162 | "V3m(pu)":0.0,
163 | "Ang1m(deg)":0.0,
164 | "Ang2m(deg)":0.0,
165 | "Ang3m(deg)":0.0
166 | },
167 | "11":{
168 | "bus_name":"bus_12",
169 | "num_nodes":1,
170 | "ph_1":1,
171 | "ph_2":0,
172 | "ph_3":0,
173 | "STS_Vm":0,
174 | "Rii_Vm":0.0,
175 | "V1m(pu)":0.0,
176 | "V2m(pu)":0.0,
177 | "V3m(pu)":0.0,
178 | "Ang1m(deg)":0.0,
179 | "Ang2m(deg)":0.0,
180 | "Ang3m(deg)":0.0
181 | },
182 | "12":{
183 | "bus_name":"bus_13",
184 | "num_nodes":1,
185 | "ph_1":1,
186 | "ph_2":0,
187 | "ph_3":0,
188 | "STS_Vm":0,
189 | "Rii_Vm":0.0,
190 | "V1m(pu)":0.0,
191 | "V2m(pu)":0.0,
192 | "V3m(pu)":0.0,
193 | "Ang1m(deg)":0.0,
194 | "Ang2m(deg)":0.0,
195 | "Ang3m(deg)":0.0
196 | },
197 | "13":{
198 | "bus_name":"bus_14",
199 | "num_nodes":1,
200 | "ph_1":1,
201 | "ph_2":0,
202 | "ph_3":0,
203 | "STS_Vm":0,
204 | "Rii_Vm":0.0,
205 | "V1m(pu)":0.0,
206 | "V2m(pu)":0.0,
207 | "V3m(pu)":0.0,
208 | "Ang1m(deg)":0.0,
209 | "Ang2m(deg)":0.0,
210 | "Ang3m(deg)":0.0
211 | },
212 | "14":{
213 | "bus_name":"bus_15",
214 | "num_nodes":1,
215 | "ph_1":1,
216 | "ph_2":0,
217 | "ph_3":0,
218 | "STS_Vm":0,
219 | "Rii_Vm":0.0,
220 | "V1m(pu)":0.0,
221 | "V2m(pu)":0.0,
222 | "V3m(pu)":0.0,
223 | "Ang1m(deg)":0.0,
224 | "Ang2m(deg)":0.0,
225 | "Ang3m(deg)":0.0
226 | }
227 | }
--------------------------------------------------------------------------------
/openpy_dsse/Elec_param_calc_DSS_EST.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # @Time : 18/08/2022
3 | # @Author : Ing. Jorge Lara
4 | # @Email : jlara@iee.unsj.edu.ar
5 | # @File : ------------
6 | # @Software: PyCharm
7 |
8 | import pandas as pd
9 | import numpy as np
10 | import math
11 | import cmath
12 |
13 | from openpy_dsse import YBus_Matrix_Pos_Seq
14 |
15 | from .OpenDSS_data_extraction import OpenDSS_data_collection, Values_per_unit, dss
16 | from openpy_dsse.DSSE_algorithms.Symb_Eqn.sym_func_1ph import sym_func_Iij_rec
17 | from .YBus_Matrix_Pos_Seq import get_G_B_Pos_seq, YBus_Matrix_SeqPos_OpenDSS
18 | from .error_handling_logging import elem_YBus, orient, indent
19 |
20 | data_DSS = OpenDSS_data_collection()
21 |
22 | class estimated_electrical_variables:
23 | def __init__(self, I_Ang_EST: bool = False, PQi_EST: bool = False, PQf_EST: bool = False):
24 | self.I_Ang_EST = I_Ang_EST
25 | self.PQi_EST = PQi_EST
26 | self.PQf_EST = PQf_EST
27 | def Imang_Angle_EST_1ph(
28 | self,
29 | df_Results_DSSE: pd.DataFrame,
30 | SbasMVA_3ph: float,
31 | path_save: str,
32 | View_res: bool,
33 | DSS_col: bool,
34 | name_project: str
35 | ):
36 | I_Ang_EST_DSS = dict()
37 | YBus_1ph = YBus_Matrix_SeqPos_OpenDSS(data_DSS.allbusnames_aux())
38 | YBusMatrix_PU = YBus_1ph.YBus_Matrix_pu(
39 | SbasMVA_3ph=SbasMVA_3ph,
40 | YBus_Matrix=YBus_1ph.build_YBus_Matrix_Pos_Seq(
41 | element=elem_YBus
42 | )
43 | )
44 | Per_PU = Values_per_unit(SbasMVA_3ph=SbasMVA_3ph)
45 | I_elem_pu_DSS = Per_PU.element_Iij_PU(
46 | df_element_currents=data_DSS.element_currents_Iij_Ang(
47 | element=['lines'])
48 | )
49 | #Current
50 | I_elem_pu_DSS = I_elem_pu_DSS[['element_name', 'from_bus', 'to_bus', 'I1(pu)', 'ang1(deg)']]
51 | DF_Iij_aux_DSS = pd.merge(
52 | I_elem_pu_DSS, data_DSS.allbusnames_aux(),
53 | how='inner', left_on='from_bus', right_on='bus_name', suffixes=('_i', '')
54 | )
55 | DF_Iij_aux_DSS = pd.merge(
56 | DF_Iij_aux_DSS, data_DSS.allbusnames_aux(),
57 | how='inner', left_on='to_bus', right_on='bus_name', suffixes=('_j', '')
58 | )
59 | DF_Iij_aux_DSS = DF_Iij_aux_DSS.rename(
60 | columns={'bus_name_aux_j': 'from_bus_aux', 'bus_name_aux': 'to_bus_aux'}
61 | )
62 | DF_I_Ang_estimate = pd.DataFrame(
63 | columns=['element_name', 'from_bus', 'to_bus', 'I1(pu)', 'ang1(deg)'])
64 | DF_results_WLS = df_Results_DSSE.copy()
65 | for k in range(len(DF_results_WLS)):
66 | 'angle'
67 | DF_results_WLS.at[k, 'Ang1(deg)_EST'] = math.radians(DF_results_WLS.at[k, 'Ang1(deg)_EST'])
68 | Matrix_WLS_results = np.array(DF_results_WLS)
69 | V_1 = np.array([Matrix_WLS_results[:, 2]]).T
70 | Vang_1 = np.array([Matrix_WLS_results[:, 3]]).T
71 |
72 | f29 = sym_func_Iij_rec()
73 | for index, row in DF_Iij_aux_DSS.iterrows():
74 | id_name = DF_Iij_aux_DSS['element_name'][index]
75 | m = DF_Iij_aux_DSS['from_bus_aux'][index] - 1
76 | n = DF_Iij_aux_DSS['to_bus_aux'][index] - 1
77 |
78 | G1, B1 = get_G_B_Pos_seq(m, n, YBusMatrix_PU)
79 | I_ij = f29(G1, B1, V_1[m][0], Vang_1[m][0], V_1[n][0], Vang_1[n][0])
80 | I1, ang1 = cmath.polar(I_ij)
81 | DF_I_Ang_estimate = DF_I_Ang_estimate.append({
82 | 'element_name': id_name,
83 | 'from_bus': DF_Iij_aux_DSS['from_bus'][index],
84 | 'to_bus': DF_Iij_aux_DSS['to_bus'][index],
85 | 'I1(pu)': I1, 'ang1(deg)': math.degrees(ang1) - 180}, ignore_index=True)
86 |
87 | I_Ang_EST_DSS['df_EST'] = DF_I_Ang_estimate.rename(columns={'I1(pu)': 'I1(pu)_EST', 'ang1(deg)': 'Ang1(deg)_EST'})
88 | I_Ang_EST_DSS['df_DSS'] = I_elem_pu_DSS.rename(columns={'I1(pu)': 'I1(pu)_DSS', 'ang1(deg)': 'Ang1(deg)_DSS'})
89 | if DSS_col:
90 | df_DSS_EST = pd.merge(I_Ang_EST_DSS['df_DSS'], I_Ang_EST_DSS['df_EST'], on=('element_name', 'from_bus', 'to_bus'))
91 | else:
92 | df_DSS_EST = I_Ang_EST_DSS['df_EST']
93 | if View_res:
94 | print(df_DSS_EST)
95 | if path_save is not None:
96 | df_DSS_EST.to_excel(f'{path_save}\Results_I_Ang_from_DSSE_{name_project}.xlsx', index=False)
97 |
98 | df_DSS_EST_json = df_DSS_EST.to_json(orient=orient, indent=indent)
99 | with open(f"{path_save}\Results_I_Ang_from_DSSE_{name_project}.json", "w") as outfile:
100 | outfile.write(df_DSS_EST_json)
101 | return I_Ang_EST_DSS
102 |
103 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/MEAS_files/Pos_MEAS_Bus_i_PMU.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "bus_name":"799",
4 | "STS_Vm":0,
5 | "Rii_Vm":0.0,
6 | "V1m(pu)":0.0,
7 | "Ang1m(deg)":0.0
8 | },
9 | "1":{
10 | "bus_name":"701",
11 | "STS_Vm":0,
12 | "Rii_Vm":0.0,
13 | "V1m(pu)":0.0,
14 | "Ang1m(deg)":0.0
15 | },
16 | "2":{
17 | "bus_name":"702",
18 | "STS_Vm":0,
19 | "Rii_Vm":0.0,
20 | "V1m(pu)":0.0,
21 | "Ang1m(deg)":0.0
22 | },
23 | "3":{
24 | "bus_name":"705",
25 | "STS_Vm":0,
26 | "Rii_Vm":0.0,
27 | "V1m(pu)":0.0,
28 | "Ang1m(deg)":0.0
29 | },
30 | "4":{
31 | "bus_name":"713",
32 | "STS_Vm":0,
33 | "Rii_Vm":0.0,
34 | "V1m(pu)":0.0,
35 | "Ang1m(deg)":0.0
36 | },
37 | "5":{
38 | "bus_name":"703",
39 | "STS_Vm":1,
40 | "Rii_Vm":0.0000110889,
41 | "V1m(pu)":0.97441,
42 | "Ang1m(deg)":29.45889
43 | },
44 | "6":{
45 | "bus_name":"727",
46 | "STS_Vm":0,
47 | "Rii_Vm":0.0,
48 | "V1m(pu)":0.0,
49 | "Ang1m(deg)":0.0
50 | },
51 | "7":{
52 | "bus_name":"730",
53 | "STS_Vm":0,
54 | "Rii_Vm":0.0,
55 | "V1m(pu)":0.0,
56 | "Ang1m(deg)":0.0
57 | },
58 | "8":{
59 | "bus_name":"704",
60 | "STS_Vm":0,
61 | "Rii_Vm":0.0,
62 | "V1m(pu)":0.0,
63 | "Ang1m(deg)":0.0
64 | },
65 | "9":{
66 | "bus_name":"714",
67 | "STS_Vm":0,
68 | "Rii_Vm":0.0,
69 | "V1m(pu)":0.0,
70 | "Ang1m(deg)":0.0
71 | },
72 | "10":{
73 | "bus_name":"720",
74 | "STS_Vm":0,
75 | "Rii_Vm":0.0,
76 | "V1m(pu)":0.0,
77 | "Ang1m(deg)":0.0
78 | },
79 | "11":{
80 | "bus_name":"742",
81 | "STS_Vm":0,
82 | "Rii_Vm":0.0,
83 | "V1m(pu)":0.0,
84 | "Ang1m(deg)":0.0
85 | },
86 | "12":{
87 | "bus_name":"712",
88 | "STS_Vm":0,
89 | "Rii_Vm":0.0,
90 | "V1m(pu)":0.0,
91 | "Ang1m(deg)":0.0
92 | },
93 | "13":{
94 | "bus_name":"706",
95 | "STS_Vm":0,
96 | "Rii_Vm":0.0,
97 | "V1m(pu)":0.0,
98 | "Ang1m(deg)":0.0
99 | },
100 | "14":{
101 | "bus_name":"725",
102 | "STS_Vm":0,
103 | "Rii_Vm":0.0,
104 | "V1m(pu)":0.0,
105 | "Ang1m(deg)":0.0
106 | },
107 | "15":{
108 | "bus_name":"707",
109 | "STS_Vm":0,
110 | "Rii_Vm":0.0,
111 | "V1m(pu)":0.0,
112 | "Ang1m(deg)":0.0
113 | },
114 | "16":{
115 | "bus_name":"724",
116 | "STS_Vm":0,
117 | "Rii_Vm":0.0,
118 | "V1m(pu)":0.0,
119 | "Ang1m(deg)":0.0
120 | },
121 | "17":{
122 | "bus_name":"722",
123 | "STS_Vm":0,
124 | "Rii_Vm":0.0,
125 | "V1m(pu)":0.0,
126 | "Ang1m(deg)":0.0
127 | },
128 | "18":{
129 | "bus_name":"708",
130 | "STS_Vm":1,
131 | "Rii_Vm":0.0000110889,
132 | "V1m(pu)":0.96671,
133 | "Ang1m(deg)":29.42581
134 | },
135 | "19":{
136 | "bus_name":"733",
137 | "STS_Vm":0,
138 | "Rii_Vm":0.0,
139 | "V1m(pu)":0.0,
140 | "Ang1m(deg)":0.0
141 | },
142 | "20":{
143 | "bus_name":"732",
144 | "STS_Vm":0,
145 | "Rii_Vm":0.0,
146 | "V1m(pu)":0.0,
147 | "Ang1m(deg)":0.0
148 | },
149 | "21":{
150 | "bus_name":"709",
151 | "STS_Vm":0,
152 | "Rii_Vm":0.0,
153 | "V1m(pu)":0.0,
154 | "Ang1m(deg)":0.0
155 | },
156 | "22":{
157 | "bus_name":"731",
158 | "STS_Vm":0,
159 | "Rii_Vm":0.0,
160 | "V1m(pu)":0.0,
161 | "Ang1m(deg)":0.0
162 | },
163 | "23":{
164 | "bus_name":"710",
165 | "STS_Vm":0,
166 | "Rii_Vm":0.0,
167 | "V1m(pu)":0.0,
168 | "Ang1m(deg)":0.0
169 | },
170 | "24":{
171 | "bus_name":"735",
172 | "STS_Vm":0,
173 | "Rii_Vm":0.0,
174 | "V1m(pu)":0.0,
175 | "Ang1m(deg)":0.0
176 | },
177 | "25":{
178 | "bus_name":"736",
179 | "STS_Vm":0,
180 | "Rii_Vm":0.0,
181 | "V1m(pu)":0.0,
182 | "Ang1m(deg)":0.0
183 | },
184 | "26":{
185 | "bus_name":"711",
186 | "STS_Vm":1,
187 | "Rii_Vm":0.0000110889,
188 | "V1m(pu)":0.95865,
189 | "Ang1m(deg)":29.39157
190 | },
191 | "27":{
192 | "bus_name":"741",
193 | "STS_Vm":0,
194 | "Rii_Vm":0.0,
195 | "V1m(pu)":0.0,
196 | "Ang1m(deg)":0.0
197 | },
198 | "28":{
199 | "bus_name":"740",
200 | "STS_Vm":0,
201 | "Rii_Vm":0.0,
202 | "V1m(pu)":0.0,
203 | "Ang1m(deg)":0.0
204 | },
205 | "29":{
206 | "bus_name":"718",
207 | "STS_Vm":0,
208 | "Rii_Vm":0.0,
209 | "V1m(pu)":0.0,
210 | "Ang1m(deg)":0.0
211 | },
212 | "30":{
213 | "bus_name":"744",
214 | "STS_Vm":0,
215 | "Rii_Vm":0.0,
216 | "V1m(pu)":0.0,
217 | "Ang1m(deg)":0.0
218 | },
219 | "31":{
220 | "bus_name":"734",
221 | "STS_Vm":0,
222 | "Rii_Vm":0.0,
223 | "V1m(pu)":0.0,
224 | "Ang1m(deg)":0.0
225 | },
226 | "32":{
227 | "bus_name":"737",
228 | "STS_Vm":0,
229 | "Rii_Vm":0.0,
230 | "V1m(pu)":0.0,
231 | "Ang1m(deg)":0.0
232 | },
233 | "33":{
234 | "bus_name":"738",
235 | "STS_Vm":0,
236 | "Rii_Vm":0.0,
237 | "V1m(pu)":0.0,
238 | "Ang1m(deg)":0.0
239 | },
240 | "34":{
241 | "bus_name":"728",
242 | "STS_Vm":0,
243 | "Rii_Vm":0.0,
244 | "V1m(pu)":0.0,
245 | "Ang1m(deg)":0.0
246 | },
247 | "35":{
248 | "bus_name":"729",
249 | "STS_Vm":0,
250 | "Rii_Vm":0.0,
251 | "V1m(pu)":0.0,
252 | "Ang1m(deg)":0.0
253 | }
254 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/ieee37_Power.DSV:
--------------------------------------------------------------------------------
1 | SetProp, 1E050, -1E050, 1E050, -1E050, 16777215, 16777215, 0, 4
2 | ClickOn
3 | SetProp, 1E050, -1E050, 1E050, -1E050, 16777215, 16777215, 1, 0
4 | Xlabel, "X"
5 | Ylabel, "Y"
6 | TxtAlign, 1
7 | KeyClass, 1
8 | ChartCaption, "ieee37:Power, max=2E003 "
9 | Line, "Line.l1", "701.1.2.3", "702.1.2.3", 0, 6, 0, 0, 2.7712813, 0, 0, -1.85, 0, -2.81, 16711680, 5, 0, 0, 0, 0, 16, 1
10 | Line, "Line.l2", "702.1.2.3", "705.1.2.3", 192, 6, 0, 0, 2.7712813, 0, 0, -2.81, -0.4, -2.81, 16711680, 1, 0, 0, 0, 0, 16, 1
11 | Line, "Line.l3", "702.1.2.3", "713.1.2.3", 384, 6, 0, 0, 2.7712813, 0, 0, -2.81, 0.36, -2.81, 16711680, 1, 0, 0, 0, 0, 16, 1
12 | Line, "Line.l4", "702.1.2.3", "703.1.2.3", 576, 6, 0, 0, 2.7712813, 0, 0, -2.81, 0, -4.13, 16711680, 3, 0, 0, 0, 0, 16, 1
13 | Line, "Line.l5", "703.1.2.3", "727.1.2.3", 768, 6, 0, 0, 2.7712813, 0, 0, -4.13, -0.24, -4.13, 16711680, 1, 0, 0, 0, 0, 16, 1
14 | Line, "Line.l6", "703.1.2.3", "730.1.2.3", 960, 6, 0, 0, 2.7712813, 0, 0, -4.13, 0, -4.73, 16711680, 2, 0, 0, 0, 0, 16, 1
15 | Line, "Line.l7", "704.1.2.3", "714.1.2.3", 1152, 6, 0, 0, 2.7712813, 0, 0.88, -2.81, 0.88, -2.89, 16711680, 1, 0, 0, 0, 0, 16, 1
16 | Line, "Line.l8", "704.1.2.3", "720.1.2.3", 1344, 6, 0, 0, 2.7712813, 0, 0.88, -2.81, 1.68, -2.81, 16711680, 1, 0, 0, 0, 0, 16, 1
17 | Line, "Line.l9", "705.1.2.3", "742.1.2.3", 1536, 6, 0, 0, 2.7712813, 0, -0.4, -2.81, -0.72, -2.81, 16711680, 1, 0, 0, 0, 0, 16, 1
18 | Line, "Line.l10", "705.1.2.3", "712.1.2.3", 1728, 6, 0, 0, 2.7712813, 0, -0.4, -2.81, -0.4, -2.57, 16711680, 1, 0, 0, 0, 0, 16, 1
19 | Line, "Line.l11", "706.1.2.3", "725.1.2.3", 1920, 6, 0, 0, 2.7712813, 0, 1.68, -3.41, 1.68, -3.69, 16711680, 1, 0, 0, 0, 0, 16, 1
20 | Line, "Line.l12", "707.1.2.3", "724.1.2.3", 2112, 6, 0, 0, 2.7712813, 0, 1.68, -1.89, 1.68, -1.13, 16711680, 1, 0, 0, 0, 0, 16, 1
21 | Line, "Line.l13", "707.1.2.3", "722.1.2.3", 2304, 6, 0, 0, 2.7712813, 0, 1.68, -1.89, 1.56, -1.89, 16711680, 1, 0, 0, 0, 0, 16, 1
22 | Line, "Line.l14", "708.1.2.3", "733.1.2.3", 2496, 6, 0, 0, 2.7712813, 0, -0.32, -4.93, -0.32, -5.25, 16711680, 2, 0, 0, 0, 0, 16, 1
23 | Line, "Line.l15", "708.1.2.3", "732.1.2.3", 2688, 6, 0, 0, 2.7712813, 0, -0.32, -4.93, -0.64, -4.93, 16711680, 1, 0, 0, 0, 0, 16, 1
24 | Line, "Line.l16", "709.1.2.3", "731.1.2.3", 2880, 6, 0, 0, 2.7712813, 0, 0, -4.93, 0.6, -4.93, 16711680, 1, 0, 0, 0, 0, 16, 1
25 | Line, "Line.l17", "709.1.2.3", "708.1.2.3", 3072, 6, 0, 0, 2.7712813, 0, 0, -4.93, -0.32, -4.93, 16711680, 2, 0, 0, 0, 0, 16, 1
26 | Line, "Line.l18", "710.1.2.3", "735.1.2.3", 3264, 6, 0, 0, 2.7712813, 0, -0.84, -5.81, -0.84, -6.01, 16711680, 1, 0, 0, 0, 0, 16, 1
27 | Line, "Line.l19", "710.1.2.3", "736.1.2.3", 3456, 6, 0, 0, 2.7712813, 0, -0.84, -5.81, -0.84, -4.53, 16711680, 1, 0, 0, 0, 0, 16, 1
28 | Line, "Line.l20", "711.1.2.3", "741.1.2.3", 3648, 6, 0, 0, 2.7712813, 0, 0.48, -6.45, 0.88, -6.45, 16711680, 1, 0, 0, 0, 0, 16, 1
29 | Line, "Line.l21", "711.1.2.3", "740.1.2.3", 3840, 6, 0, 0, 2.7712813, 0, 0.48, -6.45, 0.48, -6.25, 16711680, 1, 0, 0, 0, 0, 16, 1
30 | Line, "Line.l22", "713.1.2.3", "704.1.2.3", 4032, 6, 0, 0, 2.7712813, 0, 0.36, -2.81, 0.88, -2.81, 16711680, 1, 0, 0, 0, 0, 16, 1
31 | Line, "Line.l23", "714.1.2.3", "718.1.2.3", 4224, 6, 0, 0, 2.7712813, 0, 0.88, -2.89, 0.88, -3.41, 16711680, 1, 0, 0, 0, 0, 16, 1
32 | Line, "Line.l24", "720.1.2.3", "707.1.2.3", 4416, 6, 0, 0, 2.7712813, 0, 1.68, -2.81, 1.68, -1.89, 16711680, 1, 0, 0, 0, 0, 16, 1
33 | Line, "Line.l25", "720.1.2.3", "706.1.2.3", 4608, 6, 0, 0, 2.7712813, 0, 1.68, -2.81, 1.68, -3.41, 16711680, 1, 0, 0, 0, 0, 16, 1
34 | Line, "Line.l26", "727.1.2.3", "744.1.2.3", 4800, 6, 0, 0, 2.7712813, 0, -0.24, -4.13, -0.52, -4.13, 16711680, 1, 0, 0, 0, 0, 16, 1
35 | Line, "Line.l27", "730.1.2.3", "709.1.2.3", 4992, 6, 0, 0, 2.7712813, 0, 0, -4.73, 0, -4.93, 16711680, 2, 0, 0, 0, 0, 16, 1
36 | Line, "Line.l28", "733.1.2.3", "734.1.2.3", 5184, 6, 0, 0, 2.7712813, 0, -0.32, -5.25, -0.32, -5.81, 16711680, 1, 0, 0, 0, 0, 16, 1
37 | Line, "Line.l29", "734.1.2.3", "737.1.2.3", 5376, 6, 0, 0, 2.7712813, 0, -0.32, -5.81, -0.32, -6.45, 16711680, 1, 0, 0, 0, 0, 16, 1
38 | Line, "Line.l30", "734.1.2.3", "710.1.2.3", 5568, 6, 0, 0, 2.7712813, 0, -0.32, -5.81, -0.84, -5.81, 16711680, 1, 0, 0, 0, 0, 16, 1
39 | Line, "Line.l31", "737.1.2.3", "738.1.2.3", 5760, 6, 0, 0, 2.7712813, 0, -0.32, -6.45, 0.08, -6.45, 16711680, 1, 0, 0, 0, 0, 16, 1
40 | Line, "Line.l32", "738.1.2.3", "711.1.2.3", 5952, 6, 0, 0, 2.7712813, 0, 0.08, -6.45, 0.48, -6.45, 16711680, 1, 0, 0, 0, 0, 16, 1
41 | Line, "Line.l33", "744.1.2.3", "728.1.2.3", 6144, 6, 0, 0, 2.7712813, 0, -0.52, -4.13, -0.52, -4.33, 16711680, 1, 0, 0, 0, 0, 16, 1
42 | Line, "Line.l34", "744.1.2.3", "729.1.2.3", 6336, 6, 0, 0, 2.7712813, 0, -0.52, -4.13, -0.8, -4.13, 16711680, 1, 0, 0, 0, 0, 16, 1
43 | Line, "Line.l35", "799.1.2.3", "701.1.2.3", 6528, 6, 0, 0, 2.7712813, 0, 0, 0.01, 0, -1.85, 16711680, 6, 0, 0, 0, 0, 16, 1
44 | Range, -4.5219, 5.3619, -6.581784, 0.007416
45 | SetProp, -4.5219, 5.3619, -6.581784, 0.007416, 16777215, 16777215, 1, 0
46 | KeepAspect, 1
47 |
--------------------------------------------------------------------------------
/Sample_tests/13NodeIEEE/13NodeIEEE.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "attachments": {},
5 | "cell_type": "markdown",
6 | "metadata": {},
7 | "source": [
8 | "# IEEE 13 Node Test Feeder"
9 | ]
10 | },
11 | {
12 | "attachments": {},
13 | "cell_type": "markdown",
14 | "metadata": {},
15 | "source": [
16 | ""
17 | ]
18 | },
19 | {
20 | "attachments": {},
21 | "cell_type": "markdown",
22 | "metadata": {},
23 | "source": [
24 | "## Import Libraries"
25 | ]
26 | },
27 | {
28 | "cell_type": "code",
29 | "execution_count": 2,
30 | "metadata": {},
31 | "outputs": [],
32 | "source": [
33 | "import openpy_dsse"
34 | ]
35 | },
36 | {
37 | "attachments": {},
38 | "cell_type": "markdown",
39 | "metadata": {},
40 | "source": [
41 | "## Start the class."
42 | ]
43 | },
44 | {
45 | "cell_type": "code",
46 | "execution_count": 3,
47 | "metadata": {},
48 | "outputs": [],
49 | "source": [
50 | "dsse = openpy_dsse.init_DSSE(\n",
51 | " init_values='flat'\n",
52 | ")"
53 | ]
54 | },
55 | {
56 | "cell_type": "code",
57 | "execution_count": 7,
58 | "metadata": {},
59 | "outputs": [],
60 | "source": [
61 | "net = dsse.test_circuit(\n",
62 | " Typ_cir='Pos',\n",
63 | " case=1\n",
64 | " )"
65 | ]
66 | },
67 | {
68 | "attachments": {},
69 | "cell_type": "markdown",
70 | "metadata": {},
71 | "source": [
72 | "## Execute the state estimation algorithm"
73 | ]
74 | },
75 | {
76 | "cell_type": "code",
77 | "execution_count": 8,
78 | "metadata": {},
79 | "outputs": [
80 | {
81 | "name": "stdout",
82 | "output_type": "stream",
83 | "text": [
84 | "\u001b[1mState estimation through the positive sequence equivalent circuit\u001b[0m\n",
85 | "----------------------------------------------------------------\n",
86 | "13NodeIEEE\n",
87 | "State estimation was successful\n",
88 | "Results obtained:\n",
89 | "Number of iterations: 5\n",
90 | "Tolerance obtained :9.06E-04\n",
91 | "Simulation time: 9.66E-01 seg\n",
92 | "Type and number of measurements:\n",
93 | "|| |Vi|: 5 || Pi: 9 || Qi: 9 || Pij: 3 || Qij: 3 || |Iij|: 0 || Vi|θ: 0 || Iij|δ: 0\n",
94 | " bus_name Bus Nro. V1(pu)_DSS Ang1(deg)_DSS V1(pu)_EST Ang1(deg)_EST\n",
95 | "0 650 1 1.049856 29.992553 1.0501 30.0\n",
96 | "1 632 2 1.006364 28.006131 1.006 29.8718\n",
97 | "2 670 3 0.995577 27.465054 0.9952 29.8406\n",
98 | "3 671 4 0.975825 26.433957 0.9805 29.9435\n",
99 | "4 680 5 0.975825 26.433956 1.0088 36.4925\n",
100 | "5 633 6 1.003871 27.965045 1.0062 30.0786\n",
101 | "6 645 7 1.002658 27.984540 1.0051 30.0309\n",
102 | "7 646 8 1.001424 27.973731 1.0035 29.9993\n",
103 | "8 692 9 0.975729 26.432565 0.9814 30.0233\n",
104 | "9 675 10 0.972373 26.391252 0.9787 30.0307\n",
105 | "10 684 11 0.974261 26.418538 0.9789 29.9295\n",
106 | "11 611 12 0.973165 26.394821 0.9797 30.0547\n",
107 | "12 652 13 0.972421 26.443465 0.979 30.0513\n"
108 | ]
109 | }
110 | ],
111 | "source": [
112 | "Results = dsse.estimate(\n",
113 | " DSS_path=net['DSS_file'],\n",
114 | " MEAS_path=net['MEAS_path'],\n",
115 | " path_save=net['save_path'],\n",
116 | " Typ_cir=net['Typ_cir'],\n",
117 | " name_project=net['name_project'],\n",
118 | " View_res=True,\n",
119 | " summary=True,\n",
120 | " DSS_coll=True,\n",
121 | " #MEAS_Pos=True,\n",
122 | " #method='nonlinear'\n",
123 | " #method='linear_PMU',\n",
124 | " )"
125 | ]
126 | },
127 | {
128 | "cell_type": "code",
129 | "execution_count": null,
130 | "metadata": {},
131 | "outputs": [],
132 | "source": []
133 | }
134 | ],
135 | "metadata": {
136 | "kernelspec": {
137 | "display_name": "Python 3",
138 | "language": "python",
139 | "name": "python3"
140 | },
141 | "language_info": {
142 | "codemirror_mode": {
143 | "name": "ipython",
144 | "version": 3
145 | },
146 | "file_extension": ".py",
147 | "mimetype": "text/x-python",
148 | "name": "python",
149 | "nbconvert_exporter": "python",
150 | "pygments_lexer": "ipython3",
151 | "version": "3.9.13"
152 | },
153 | "orig_nbformat": 4
154 | },
155 | "nbformat": 4,
156 | "nbformat_minor": 2
157 | }
158 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/MEAS_files/Init_Elem_ft.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "element_name":"Line.from_1_to_2",
4 | "num_ph":1,
5 | "num_cond":1,
6 | "conn":"",
7 | "from_bus":"bus_1",
8 | "to_bus":"bus_2",
9 | "bus1":"bus_1.1",
10 | "bus2":"bus_2.1",
11 | "ph_1":1,
12 | "ph_2":0,
13 | "ph_3":0,
14 | "Unc(%)_PQft":3,
15 | "STS_PQft":1,
16 | "Unc(%)_Ift":0,
17 | "STS_Ift":0
18 | },
19 | "1":{
20 | "element_name":"Line.from_2_to_3",
21 | "num_ph":1,
22 | "num_cond":1,
23 | "conn":"",
24 | "from_bus":"bus_2",
25 | "to_bus":"bus_3",
26 | "bus1":"bus_2.1",
27 | "bus2":"bus_3.1",
28 | "ph_1":1,
29 | "ph_2":0,
30 | "ph_3":0,
31 | "Unc(%)_PQft":0,
32 | "STS_PQft":0,
33 | "Unc(%)_Ift":0,
34 | "STS_Ift":0
35 | },
36 | "2":{
37 | "element_name":"Line.from_3_to_4",
38 | "num_ph":1,
39 | "num_cond":1,
40 | "conn":"",
41 | "from_bus":"bus_3",
42 | "to_bus":"bus_4",
43 | "bus1":"bus_3.1",
44 | "bus2":"bus_4.1",
45 | "ph_1":1,
46 | "ph_2":0,
47 | "ph_3":0,
48 | "Unc(%)_PQft":0,
49 | "STS_PQft":0,
50 | "Unc(%)_Ift":0,
51 | "STS_Ift":0
52 | },
53 | "3":{
54 | "element_name":"Line.from_4_to_5",
55 | "num_ph":1,
56 | "num_cond":1,
57 | "conn":"",
58 | "from_bus":"bus_4",
59 | "to_bus":"bus_5",
60 | "bus1":"bus_4.1",
61 | "bus2":"bus_5.1",
62 | "ph_1":1,
63 | "ph_2":0,
64 | "ph_3":0,
65 | "Unc(%)_PQft":0,
66 | "STS_PQft":0,
67 | "Unc(%)_Ift":0,
68 | "STS_Ift":0
69 | },
70 | "4":{
71 | "element_name":"Line.from_2_to_9",
72 | "num_ph":1,
73 | "num_cond":1,
74 | "conn":"",
75 | "from_bus":"bus_2",
76 | "to_bus":"bus_9",
77 | "bus1":"bus_2.1",
78 | "bus2":"bus_9.1",
79 | "ph_1":1,
80 | "ph_2":0,
81 | "ph_3":0,
82 | "Unc(%)_PQft":3,
83 | "STS_PQft":1,
84 | "Unc(%)_Ift":0,
85 | "STS_Ift":0
86 | },
87 | "5":{
88 | "element_name":"Line.from_9_to_10",
89 | "num_ph":1,
90 | "num_cond":1,
91 | "conn":"",
92 | "from_bus":"bus_9",
93 | "to_bus":"bus_10",
94 | "bus1":"bus_9.1",
95 | "bus2":"bus_10.1",
96 | "ph_1":1,
97 | "ph_2":0,
98 | "ph_3":0,
99 | "Unc(%)_PQft":0,
100 | "STS_PQft":0,
101 | "Unc(%)_Ift":0,
102 | "STS_Ift":0
103 | },
104 | "6":{
105 | "element_name":"Line.from_2_to_6",
106 | "num_ph":1,
107 | "num_cond":1,
108 | "conn":"",
109 | "from_bus":"bus_2",
110 | "to_bus":"bus_6",
111 | "bus1":"bus_2.1",
112 | "bus2":"bus_6.1",
113 | "ph_1":1,
114 | "ph_2":0,
115 | "ph_3":0,
116 | "Unc(%)_PQft":0,
117 | "STS_PQft":0,
118 | "Unc(%)_Ift":0,
119 | "STS_Ift":0
120 | },
121 | "7":{
122 | "element_name":"Line.from_6_to_7",
123 | "num_ph":1,
124 | "num_cond":1,
125 | "conn":"",
126 | "from_bus":"bus_6",
127 | "to_bus":"bus_7",
128 | "bus1":"bus_6.1",
129 | "bus2":"bus_7.1",
130 | "ph_1":1,
131 | "ph_2":0,
132 | "ph_3":0,
133 | "Unc(%)_PQft":0,
134 | "STS_PQft":0,
135 | "Unc(%)_Ift":0,
136 | "STS_Ift":0
137 | },
138 | "8":{
139 | "element_name":"Line.from_6_to_8",
140 | "num_ph":1,
141 | "num_cond":1,
142 | "conn":"",
143 | "from_bus":"bus_6",
144 | "to_bus":"bus_8",
145 | "bus1":"bus_6.1",
146 | "bus2":"bus_8.1",
147 | "ph_1":1,
148 | "ph_2":0,
149 | "ph_3":0,
150 | "Unc(%)_PQft":0,
151 | "STS_PQft":0,
152 | "Unc(%)_Ift":0,
153 | "STS_Ift":0
154 | },
155 | "9":{
156 | "element_name":"Line.from_3_to_11",
157 | "num_ph":1,
158 | "num_cond":1,
159 | "conn":"",
160 | "from_bus":"bus_3",
161 | "to_bus":"bus_11",
162 | "bus1":"bus_3.1",
163 | "bus2":"bus_11.1",
164 | "ph_1":1,
165 | "ph_2":0,
166 | "ph_3":0,
167 | "Unc(%)_PQft":0,
168 | "STS_PQft":0,
169 | "Unc(%)_Ift":0,
170 | "STS_Ift":0
171 | },
172 | "10":{
173 | "element_name":"Line.from_11_to_12",
174 | "num_ph":1,
175 | "num_cond":1,
176 | "conn":"",
177 | "from_bus":"bus_11",
178 | "to_bus":"bus_12",
179 | "bus1":"bus_11.1",
180 | "bus2":"bus_12.1",
181 | "ph_1":1,
182 | "ph_2":0,
183 | "ph_3":0,
184 | "Unc(%)_PQft":0,
185 | "STS_PQft":0,
186 | "Unc(%)_Ift":0,
187 | "STS_Ift":0
188 | },
189 | "11":{
190 | "element_name":"Line.from_12_to_13",
191 | "num_ph":1,
192 | "num_cond":1,
193 | "conn":"",
194 | "from_bus":"bus_12",
195 | "to_bus":"bus_13",
196 | "bus1":"bus_12.1",
197 | "bus2":"bus_13.1",
198 | "ph_1":1,
199 | "ph_2":0,
200 | "ph_3":0,
201 | "Unc(%)_PQft":0,
202 | "STS_PQft":0,
203 | "Unc(%)_Ift":0,
204 | "STS_Ift":0
205 | },
206 | "12":{
207 | "element_name":"Line.from_4_to_14",
208 | "num_ph":1,
209 | "num_cond":1,
210 | "conn":"",
211 | "from_bus":"bus_4",
212 | "to_bus":"bus_14",
213 | "bus1":"bus_4.1",
214 | "bus2":"bus_14.1",
215 | "ph_1":1,
216 | "ph_2":0,
217 | "ph_3":0,
218 | "Unc(%)_PQft":3,
219 | "STS_PQft":0,
220 | "Unc(%)_Ift":1,
221 | "STS_Ift":0
222 | },
223 | "13":{
224 | "element_name":"Line.from_4_to_15",
225 | "num_ph":1,
226 | "num_cond":1,
227 | "conn":"",
228 | "from_bus":"bus_4",
229 | "to_bus":"bus_15",
230 | "bus1":"bus_4.1",
231 | "bus2":"bus_15.1",
232 | "ph_1":1,
233 | "ph_2":0,
234 | "ph_3":0,
235 | "Unc(%)_PQft":0,
236 | "STS_PQft":0,
237 | "Unc(%)_Ift":0,
238 | "STS_Ift":0
239 | }
240 | }
--------------------------------------------------------------------------------
/Sample_tests/15NodeIEEE/15NodeIEEE.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "attachments": {},
5 | "cell_type": "markdown",
6 | "metadata": {},
7 | "source": [
8 | "# IEEE 15 Node Test Feeder"
9 | ]
10 | },
11 | {
12 | "attachments": {},
13 | "cell_type": "markdown",
14 | "metadata": {},
15 | "source": [
16 | ""
17 | ]
18 | },
19 | {
20 | "attachments": {},
21 | "cell_type": "markdown",
22 | "metadata": {},
23 | "source": [
24 | "## Import Libraries"
25 | ]
26 | },
27 | {
28 | "cell_type": "code",
29 | "execution_count": 13,
30 | "metadata": {},
31 | "outputs": [],
32 | "source": [
33 | "import openpy_dsse"
34 | ]
35 | },
36 | {
37 | "attachments": {},
38 | "cell_type": "markdown",
39 | "metadata": {},
40 | "source": [
41 | "## Start the class."
42 | ]
43 | },
44 | {
45 | "cell_type": "code",
46 | "execution_count": 14,
47 | "metadata": {},
48 | "outputs": [],
49 | "source": [
50 | "dsse = openpy_dsse.init_DSSE(\n",
51 | " init_values='flat'\n",
52 | ")"
53 | ]
54 | },
55 | {
56 | "cell_type": "code",
57 | "execution_count": 15,
58 | "metadata": {},
59 | "outputs": [],
60 | "source": [
61 | "net = dsse.test_circuit(\n",
62 | " Typ_cir='1ph',\n",
63 | " case=2\n",
64 | " )"
65 | ]
66 | },
67 | {
68 | "attachments": {},
69 | "cell_type": "markdown",
70 | "metadata": {},
71 | "source": [
72 | "## Execute the state estimation algorithm"
73 | ]
74 | },
75 | {
76 | "cell_type": "code",
77 | "execution_count": 16,
78 | "metadata": {},
79 | "outputs": [
80 | {
81 | "name": "stdout",
82 | "output_type": "stream",
83 | "text": [
84 | "\u001b[22mState estimation of a single-phase distribution network \u001b[0m\n",
85 | "----------------------------------------------------------------\n",
86 | "15NodeIEEE\n",
87 | "State estimation was successful\n",
88 | "Results obtained:\n",
89 | "Number of iterations: 3\n",
90 | "Tolerance obtained :1.20E-04\n",
91 | "Simulation time: 1.50E+00 seg\n",
92 | "Type and number of measurements:\n",
93 | "|| |Vi|: 2 || Pi: 14 || Qi: 14 || Pij: 2 || Qij: 2 || |Iij|: 0 || Vi|θ: 3 || Iij|δ: 2\n",
94 | " bus_name Bus Nro. V1(pu)_DSS Ang1(deg)_DSS V1(pu)_EST Ang1(deg)_EST\n",
95 | "0 bus_1 1 1.009394 0.076735 1.0094 0.1\n",
96 | "1 bus_2 2 0.974975 -0.050535 0.975 0.1019\n",
97 | "2 bus_3 3 0.962290 -0.055202 0.9623 0.0993\n",
98 | "3 bus_4 4 0.953119 -0.091914 0.9531 0.0953\n",
99 | "4 bus_5 5 0.952051 -0.096829 0.9524 0.1054\n",
100 | "5 bus_9 6 0.972516 -0.058373 0.9725 0.0997\n",
101 | "6 bus_10 7 0.971648 -0.059912 0.9716 0.1001\n",
102 | "7 bus_6 8 0.967392 -0.074349 0.9674 0.1016\n",
103 | "8 bus_7 9 0.964353 -0.083937 0.9642 0.098\n",
104 | "9 bus_8 10 0.965875 -0.079157 0.9658 0.0967\n",
105 | "10 bus_11 11 0.957529 -0.068267 0.9573 0.1007\n",
106 | "11 bus_12 12 0.955474 -0.078073 0.9553 0.1002\n",
107 | "12 bus_13 13 0.953760 -0.086206 0.9536 0.1032\n",
108 | "13 bus_14 14 0.951522 -0.107501 0.952 0.1067\n",
109 | "14 bus_15 15 0.949920 -0.123086 0.9504 0.1118\n"
110 | ]
111 | }
112 | ],
113 | "source": [
114 | "Results = dsse.estimate(\n",
115 | " DSS_path=net['DSS_file'],\n",
116 | " MEAS_path=net['MEAS_path'],\n",
117 | " path_save=net['save_path'],\n",
118 | " Typ_cir=net['Typ_cir'],\n",
119 | " name_project=net['name_project'],\n",
120 | " View_res=True,\n",
121 | " summary=True,\n",
122 | " DSS_coll=True,\n",
123 | " #MEAS_Pos=True,\n",
124 | " #method='nonlinear'\n",
125 | " #method='linear_PMU',\n",
126 | " )"
127 | ]
128 | },
129 | {
130 | "cell_type": "code",
131 | "execution_count": null,
132 | "metadata": {},
133 | "outputs": [],
134 | "source": []
135 | }
136 | ],
137 | "metadata": {
138 | "kernelspec": {
139 | "display_name": "Python 3",
140 | "language": "python",
141 | "name": "python3"
142 | },
143 | "language_info": {
144 | "codemirror_mode": {
145 | "name": "ipython",
146 | "version": 3
147 | },
148 | "file_extension": ".py",
149 | "mimetype": "text/x-python",
150 | "name": "python",
151 | "nbconvert_exporter": "python",
152 | "pygments_lexer": "ipython3",
153 | "version": "3.9.13"
154 | },
155 | "orig_nbformat": 4
156 | },
157 | "nbformat": 4,
158 | "nbformat_minor": 2
159 | }
160 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/37NodeIEEE/OpenDSS files/PosSeq circuit/Line.DSS:
--------------------------------------------------------------------------------
1 | New "Line.l1" bus1=701 bus2=702 Seasons=1 Ratings=[400,] length=0.96 r1=0.05996197 x1=0.062393 C1=64.21801 phases=1 normamps=400 emergamps=600 units=none
2 | New "Line.l2" bus1=702 bus2=705 Seasons=1 Ratings=[400,] length=0.4 r1=0.30074 x1=0.09668602 C1=30.267 phases=1 normamps=400 emergamps=600 units=none
3 | New "Line.l3" bus1=702 bus2=713 Seasons=1 Ratings=[400,] length=0.36 r1=0.15509 x1=0.088441 C1=37.598 phases=1 normamps=400 emergamps=600 units=none
4 | New "Line.l4" bus1=702 bus2=703 Seasons=1 Ratings=[400,] length=1.32 r1=0.05996195 x1=0.062393 C1=64.21801 phases=1 normamps=400 emergamps=600 units=none
5 | New "Line.l5" bus1=703 bus2=727 Seasons=1 Ratings=[400,] length=0.24 r1=0.30074 x1=0.09668601 C1=30.267 phases=1 normamps=400 emergamps=600 units=none
6 | New "Line.l6" bus1=703 bus2=730 Seasons=1 Ratings=[400,] length=0.6 r1=0.15509 x1=0.08844101 C1=37.598 phases=1 normamps=400 emergamps=600 units=none
7 | New "Line.l7" bus1=704 bus2=714 Seasons=1 Ratings=[400,] length=0.08 r1=0.30074 x1=0.096686 C1=30.267 phases=1 normamps=400 emergamps=600 units=none
8 | New "Line.l8" bus1=704 bus2=720 Seasons=1 Ratings=[400,] length=0.8 r1=0.15509 x1=0.08844102 C1=37.598 phases=1 normamps=400 emergamps=600 units=none
9 | New "Line.l9" bus1=705 bus2=742 Seasons=1 Ratings=[400,] length=0.32 r1=0.30074 x1=0.09668602 C1=30.267 phases=1 normamps=400 emergamps=600 units=none
10 | New "Line.l10" bus1=705 bus2=712 Seasons=1 Ratings=[400,] length=0.24 r1=0.30074 x1=0.09668601 C1=30.267 phases=1 normamps=400 emergamps=600 units=none
11 | New "Line.l11" bus1=706 bus2=725 Seasons=1 Ratings=[400,] length=0.28 r1=0.30074 x1=0.09668601 C1=30.267 phases=1 normamps=400 emergamps=600 units=none
12 | New "Line.l12" bus1=707 bus2=724 Seasons=1 Ratings=[400,] length=0.76 r1=0.3007399 x1=0.09668609 C1=30.267 phases=1 normamps=400 emergamps=600 units=none
13 | New "Line.l13" bus1=707 bus2=722 Seasons=1 Ratings=[400,] length=0.12 r1=0.30074 x1=0.096686 C1=30.267 phases=1 normamps=400 emergamps=600 units=none
14 | New "Line.l14" bus1=708 bus2=733 Seasons=1 Ratings=[400,] length=0.32 r1=0.15509 x1=0.088441 C1=37.598 phases=1 normamps=400 emergamps=600 units=none
15 | New "Line.l15" bus1=708 bus2=732 Seasons=1 Ratings=[400,] length=0.32 r1=0.30074 x1=0.09668602 C1=30.267 phases=1 normamps=400 emergamps=600 units=none
16 | New "Line.l16" bus1=709 bus2=731 Seasons=1 Ratings=[400,] length=0.6 r1=0.15509 x1=0.08844101 C1=37.598 phases=1 normamps=400 emergamps=600 units=none
17 | New "Line.l17" bus1=709 bus2=708 Seasons=1 Ratings=[400,] length=0.32 r1=0.15509 x1=0.088441 C1=37.598 phases=1 normamps=400 emergamps=600 units=none
18 | New "Line.l18" bus1=710 bus2=735 Seasons=1 Ratings=[400,] length=0.2 r1=0.30074 x1=0.09668601 C1=30.267 phases=1 normamps=400 emergamps=600 units=none
19 | New "Line.l19" bus1=710 bus2=736 Seasons=1 Ratings=[400,] length=1.28 r1=0.3007398 x1=0.09668625 C1=30.267 phases=1 normamps=400 emergamps=600 units=none
20 | New "Line.l20" bus1=711 bus2=741 Seasons=1 Ratings=[400,] length=0.4 r1=0.15509 x1=0.08844101 C1=37.598 phases=1 normamps=400 emergamps=600 units=none
21 | New "Line.l21" bus1=711 bus2=740 Seasons=1 Ratings=[400,] length=0.2 r1=0.30074 x1=0.09668601 C1=30.267 phases=1 normamps=400 emergamps=600 units=none
22 | New "Line.l22" bus1=713 bus2=704 Seasons=1 Ratings=[400,] length=0.52 r1=0.15509 x1=0.08844101 C1=37.598 phases=1 normamps=400 emergamps=600 units=none
23 | New "Line.l23" bus1=714 bus2=718 Seasons=1 Ratings=[400,] length=0.52 r1=0.30074 x1=0.09668604 C1=30.267 phases=1 normamps=400 emergamps=600 units=none
24 | New "Line.l24" bus1=720 bus2=707 Seasons=1 Ratings=[400,] length=0.92 r1=0.3007399 x1=0.09668613 C1=30.267 phases=1 normamps=400 emergamps=600 units=none
25 | New "Line.l25" bus1=720 bus2=706 Seasons=1 Ratings=[400,] length=0.6 r1=0.15509 x1=0.08844101 C1=37.598 phases=1 normamps=400 emergamps=600 units=none
26 | New "Line.l26" bus1=727 bus2=744 Seasons=1 Ratings=[400,] length=0.28 r1=0.15509 x1=0.088441 C1=37.598 phases=1 normamps=400 emergamps=600 units=none
27 | New "Line.l27" bus1=730 bus2=709 Seasons=1 Ratings=[400,] length=0.2 r1=0.15509 x1=0.088441 C1=37.598 phases=1 normamps=400 emergamps=600 units=none
28 | New "Line.l28" bus1=733 bus2=734 Seasons=1 Ratings=[400,] length=0.56 r1=0.15509 x1=0.08844101 C1=37.598 phases=1 normamps=400 emergamps=600 units=none
29 | New "Line.l29" bus1=734 bus2=737 Seasons=1 Ratings=[400,] length=0.64 r1=0.15509 x1=0.08844102 C1=37.598 phases=1 normamps=400 emergamps=600 units=none
30 | New "Line.l30" bus1=734 bus2=710 Seasons=1 Ratings=[400,] length=0.52 r1=0.30074 x1=0.09668604 C1=30.267 phases=1 normamps=400 emergamps=600 units=none
31 | New "Line.l31" bus1=737 bus2=738 Seasons=1 Ratings=[400,] length=0.4 r1=0.15509 x1=0.08844101 C1=37.598 phases=1 normamps=400 emergamps=600 units=none
32 | New "Line.l32" bus1=738 bus2=711 Seasons=1 Ratings=[400,] length=0.4 r1=0.15509 x1=0.08844101 C1=37.598 phases=1 normamps=400 emergamps=600 units=none
33 | New "Line.l33" bus1=744 bus2=728 Seasons=1 Ratings=[400,] length=0.2 r1=0.30074 x1=0.09668601 C1=30.267 phases=1 normamps=400 emergamps=600 units=none
34 | New "Line.l34" bus1=744 bus2=729 Seasons=1 Ratings=[400,] length=0.28 r1=0.30074 x1=0.09668601 C1=30.267 phases=1 normamps=400 emergamps=600 units=none
35 | New "Line.l35" bus1=799 bus2=701 Seasons=1 Ratings=[400,] length=1.85 r1=0.04302393 x1=0.044186 C1=80.27503 phases=1 normamps=400 emergamps=600 units=none
36 |
--------------------------------------------------------------------------------
/openpy_dsse/examples/15NodeIEEE/MEAS_files/MEAS_Elem_ft_PMU.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "element_name":"Line.from_1_to_2",
4 | "num_ph":1,
5 | "from_bus":"bus_1",
6 | "to_bus":"bus_2",
7 | "ph_1":1,
8 | "ph_2":0,
9 | "ph_3":0,
10 | "STS_Ift":0,
11 | "Rii_Ift":0.0,
12 | "I1mft(pu)":0.0,
13 | "I2mft(pu)":0.0,
14 | "I3mft(pu)":0.0,
15 | "Ang1m(deg)":0.0,
16 | "Ang2m(deg)":0.0,
17 | "Ang3m(deg)":0.0
18 | },
19 | "1":{
20 | "element_name":"Line.from_2_to_3",
21 | "num_ph":1,
22 | "from_bus":"bus_2",
23 | "to_bus":"bus_3",
24 | "ph_1":1,
25 | "ph_2":0,
26 | "ph_3":0,
27 | "STS_Ift":0,
28 | "Rii_Ift":0.0,
29 | "I1mft(pu)":0.0,
30 | "I2mft(pu)":0.0,
31 | "I3mft(pu)":0.0,
32 | "Ang1m(deg)":0.0,
33 | "Ang2m(deg)":0.0,
34 | "Ang3m(deg)":0.0
35 | },
36 | "2":{
37 | "element_name":"Line.from_3_to_4",
38 | "num_ph":1,
39 | "from_bus":"bus_3",
40 | "to_bus":"bus_4",
41 | "ph_1":1,
42 | "ph_2":0,
43 | "ph_3":0,
44 | "STS_Ift":1,
45 | "Rii_Ift":0.0000444889,
46 | "I1mft(pu)":0.05904,
47 | "I2mft(pu)":-0.00007,
48 | "I3mft(pu)":-0.00007,
49 | "Ang1m(deg)":-45.63928,
50 | "Ang2m(deg)":-0.00007,
51 | "Ang3m(deg)":-0.00007
52 | },
53 | "3":{
54 | "element_name":"Line.from_4_to_5",
55 | "num_ph":1,
56 | "from_bus":"bus_4",
57 | "to_bus":"bus_5",
58 | "ph_1":1,
59 | "ph_2":0,
60 | "ph_3":0,
61 | "STS_Ift":0,
62 | "Rii_Ift":0.0,
63 | "I1mft(pu)":0.0,
64 | "I2mft(pu)":0.0,
65 | "I3mft(pu)":0.0,
66 | "Ang1m(deg)":0.0,
67 | "Ang2m(deg)":0.0,
68 | "Ang3m(deg)":0.0
69 | },
70 | "4":{
71 | "element_name":"Line.from_2_to_9",
72 | "num_ph":1,
73 | "from_bus":"bus_2",
74 | "to_bus":"bus_9",
75 | "ph_1":1,
76 | "ph_2":0,
77 | "ph_3":0,
78 | "STS_Ift":0,
79 | "Rii_Ift":0.0,
80 | "I1mft(pu)":0.0,
81 | "I2mft(pu)":0.0,
82 | "I3mft(pu)":0.0,
83 | "Ang1m(deg)":0.0,
84 | "Ang2m(deg)":0.0,
85 | "Ang3m(deg)":0.0
86 | },
87 | "5":{
88 | "element_name":"Line.from_9_to_10",
89 | "num_ph":1,
90 | "from_bus":"bus_9",
91 | "to_bus":"bus_10",
92 | "ph_1":1,
93 | "ph_2":0,
94 | "ph_3":0,
95 | "STS_Ift":1,
96 | "Rii_Ift":0.0000110889,
97 | "I1mft(pu)":0.00651,
98 | "I2mft(pu)":0.00004,
99 | "I3mft(pu)":0.00004,
100 | "Ang1m(deg)":-45.53948,
101 | "Ang2m(deg)":0.00004,
102 | "Ang3m(deg)":0.00004
103 | },
104 | "6":{
105 | "element_name":"Line.from_2_to_6",
106 | "num_ph":1,
107 | "from_bus":"bus_2",
108 | "to_bus":"bus_6",
109 | "ph_1":1,
110 | "ph_2":0,
111 | "ph_3":0,
112 | "STS_Ift":0,
113 | "Rii_Ift":0.0,
114 | "I1mft(pu)":0.0,
115 | "I2mft(pu)":0.0,
116 | "I3mft(pu)":0.0,
117 | "Ang1m(deg)":0.0,
118 | "Ang2m(deg)":0.0,
119 | "Ang3m(deg)":0.0
120 | },
121 | "7":{
122 | "element_name":"Line.from_6_to_7",
123 | "num_ph":1,
124 | "from_bus":"bus_6",
125 | "to_bus":"bus_7",
126 | "ph_1":1,
127 | "ph_2":0,
128 | "ph_3":0,
129 | "STS_Ift":0,
130 | "Rii_Ift":0.0,
131 | "I1mft(pu)":0.0,
132 | "I2mft(pu)":0.0,
133 | "I3mft(pu)":0.0,
134 | "Ang1m(deg)":0.0,
135 | "Ang2m(deg)":0.0,
136 | "Ang3m(deg)":0.0
137 | },
138 | "8":{
139 | "element_name":"Line.from_6_to_8",
140 | "num_ph":1,
141 | "from_bus":"bus_6",
142 | "to_bus":"bus_8",
143 | "ph_1":1,
144 | "ph_2":0,
145 | "ph_3":0,
146 | "STS_Ift":0,
147 | "Rii_Ift":0.0,
148 | "I1mft(pu)":0.0,
149 | "I2mft(pu)":0.0,
150 | "I3mft(pu)":0.0,
151 | "Ang1m(deg)":0.0,
152 | "Ang2m(deg)":0.0,
153 | "Ang3m(deg)":0.0
154 | },
155 | "9":{
156 | "element_name":"Line.from_3_to_11",
157 | "num_ph":1,
158 | "from_bus":"bus_3",
159 | "to_bus":"bus_11",
160 | "ph_1":1,
161 | "ph_2":0,
162 | "ph_3":0,
163 | "STS_Ift":0,
164 | "Rii_Ift":0.0,
165 | "I1mft(pu)":0.0,
166 | "I2mft(pu)":0.0,
167 | "I3mft(pu)":0.0,
168 | "Ang1m(deg)":0.0,
169 | "Ang2m(deg)":0.0,
170 | "Ang3m(deg)":0.0
171 | },
172 | "10":{
173 | "element_name":"Line.from_11_to_12",
174 | "num_ph":1,
175 | "from_bus":"bus_11",
176 | "to_bus":"bus_12",
177 | "ph_1":1,
178 | "ph_2":0,
179 | "ph_3":0,
180 | "STS_Ift":0,
181 | "Rii_Ift":0.0,
182 | "I1mft(pu)":0.0,
183 | "I2mft(pu)":0.0,
184 | "I3mft(pu)":0.0,
185 | "Ang1m(deg)":0.0,
186 | "Ang2m(deg)":0.0,
187 | "Ang3m(deg)":0.0
188 | },
189 | "11":{
190 | "element_name":"Line.from_12_to_13",
191 | "num_ph":1,
192 | "from_bus":"bus_12",
193 | "to_bus":"bus_13",
194 | "ph_1":1,
195 | "ph_2":0,
196 | "ph_3":0,
197 | "STS_Ift":0,
198 | "Rii_Ift":0.0,
199 | "I1mft(pu)":0.0,
200 | "I2mft(pu)":0.0,
201 | "I3mft(pu)":0.0,
202 | "Ang1m(deg)":0.0,
203 | "Ang2m(deg)":0.0,
204 | "Ang3m(deg)":0.0
205 | },
206 | "12":{
207 | "element_name":"Line.from_4_to_14",
208 | "num_ph":1,
209 | "from_bus":"bus_4",
210 | "to_bus":"bus_14",
211 | "ph_1":1,
212 | "ph_2":0,
213 | "ph_3":0,
214 | "STS_Ift":0,
215 | "Rii_Ift":0.0,
216 | "I1mft(pu)":0.0,
217 | "I2mft(pu)":0.0,
218 | "I3mft(pu)":0.0,
219 | "Ang1m(deg)":0.0,
220 | "Ang2m(deg)":0.0,
221 | "Ang3m(deg)":0.0
222 | },
223 | "13":{
224 | "element_name":"Line.from_4_to_15",
225 | "num_ph":1,
226 | "from_bus":"bus_4",
227 | "to_bus":"bus_15",
228 | "ph_1":1,
229 | "ph_2":0,
230 | "ph_3":0,
231 | "STS_Ift":0,
232 | "Rii_Ift":0.0,
233 | "I1mft(pu)":0.0,
234 | "I2mft(pu)":0.0,
235 | "I3mft(pu)":0.0,
236 | "Ang1m(deg)":0.0,
237 | "Ang2m(deg)":0.0,
238 | "Ang3m(deg)":0.0
239 | }
240 | }
--------------------------------------------------------------------------------
/openpy_dsse/examples/13NodeIEEE/MEAS_files/MEAS_Elem_ft.json:
--------------------------------------------------------------------------------
1 | {
2 | "0":{
3 | "element_name":"Line.650632",
4 | "num_ph":3,
5 | "from_bus":"650",
6 | "to_bus":"632",
7 | "ph_1":1,
8 | "ph_2":1,
9 | "ph_3":1,
10 | "STS_PQft":1,
11 | "Rii_PQft":0.0001,
12 | "P1mft(pu)":0.12437,
13 | "P2mft(pu)":0.09615,
14 | "P3mft(pu)":0.13258,
15 | "Q1mft(pu)":0.09069,
16 | "Q2mft(pu)":0.05739,
17 | "Q3mft(pu)":0.09611,
18 | "STS_Ift":0,
19 | "Rii_Ift":0,
20 | "I1mft(pu)":0,
21 | "I2mft(pu)":0,
22 | "I3mft(pu)":0
23 | },
24 | "1":{
25 | "element_name":"Line.632670",
26 | "num_ph":3,
27 | "from_bus":"632",
28 | "to_bus":"670",
29 | "ph_1":1,
30 | "ph_2":1,
31 | "ph_3":1,
32 | "STS_PQft":1,
33 | "Rii_PQft":0.0001,
34 | "P1mft(pu)":0.10591,
35 | "P2mft(pu)":0.05122,
36 | "P3mft(pu)":0.10754,
37 | "Q1mft(pu)":0.06982,
38 | "Q2mft(pu)":0.03191,
39 | "Q3mft(pu)":0.06348,
40 | "STS_Ift":0,
41 | "Rii_Ift":0,
42 | "I1mft(pu)":0,
43 | "I2mft(pu)":0,
44 | "I3mft(pu)":0
45 | },
46 | "2":{
47 | "element_name":"Line.670671",
48 | "num_ph":3,
49 | "from_bus":"670",
50 | "to_bus":"671",
51 | "ph_1":1,
52 | "ph_2":1,
53 | "ph_3":1,
54 | "STS_PQft":0,
55 | "Rii_PQft":0.0,
56 | "P1mft(pu)":0.0,
57 | "P2mft(pu)":0.0,
58 | "P3mft(pu)":0.0,
59 | "Q1mft(pu)":0.0,
60 | "Q2mft(pu)":0.0,
61 | "Q3mft(pu)":0.0,
62 | "STS_Ift":0,
63 | "Rii_Ift":0,
64 | "I1mft(pu)":0,
65 | "I2mft(pu)":0,
66 | "I3mft(pu)":0
67 | },
68 | "3":{
69 | "element_name":"Line.671680",
70 | "num_ph":3,
71 | "from_bus":"671",
72 | "to_bus":"680",
73 | "ph_1":1,
74 | "ph_2":1,
75 | "ph_3":1,
76 | "STS_PQft":0,
77 | "Rii_PQft":0.0,
78 | "P1mft(pu)":0.0,
79 | "P2mft(pu)":0.0,
80 | "P3mft(pu)":0.0,
81 | "Q1mft(pu)":0.0,
82 | "Q2mft(pu)":0.0,
83 | "Q3mft(pu)":0.0,
84 | "STS_Ift":0,
85 | "Rii_Ift":0,
86 | "I1mft(pu)":0,
87 | "I2mft(pu)":0,
88 | "I3mft(pu)":0
89 | },
90 | "4":{
91 | "element_name":"Line.632633",
92 | "num_ph":3,
93 | "from_bus":"632",
94 | "to_bus":"633",
95 | "ph_1":1,
96 | "ph_2":1,
97 | "ph_3":1,
98 | "STS_PQft":0,
99 | "Rii_PQft":0.0,
100 | "P1mft(pu)":0.0,
101 | "P2mft(pu)":0.0,
102 | "P3mft(pu)":0.0,
103 | "Q1mft(pu)":0.0,
104 | "Q2mft(pu)":0.0,
105 | "Q3mft(pu)":0.0,
106 | "STS_Ift":0,
107 | "Rii_Ift":0,
108 | "I1mft(pu)":0,
109 | "I2mft(pu)":0,
110 | "I3mft(pu)":0
111 | },
112 | "5":{
113 | "element_name":"Line.632645",
114 | "num_ph":2,
115 | "from_bus":"632",
116 | "to_bus":"645",
117 | "ph_1":0,
118 | "ph_2":1,
119 | "ph_3":1,
120 | "STS_PQft":0,
121 | "Rii_PQft":0.0,
122 | "P1mft(pu)":0.0,
123 | "P2mft(pu)":0.0,
124 | "P3mft(pu)":0.0,
125 | "Q1mft(pu)":0.0,
126 | "Q2mft(pu)":0.0,
127 | "Q3mft(pu)":0.0,
128 | "STS_Ift":0,
129 | "Rii_Ift":0,
130 | "I1mft(pu)":0,
131 | "I2mft(pu)":0,
132 | "I3mft(pu)":0
133 | },
134 | "6":{
135 | "element_name":"Line.645646",
136 | "num_ph":2,
137 | "from_bus":"645",
138 | "to_bus":"646",
139 | "ph_1":0,
140 | "ph_2":1,
141 | "ph_3":1,
142 | "STS_PQft":0,
143 | "Rii_PQft":0.0,
144 | "P1mft(pu)":0.0,
145 | "P2mft(pu)":0.0,
146 | "P3mft(pu)":0.0,
147 | "Q1mft(pu)":0.0,
148 | "Q2mft(pu)":0.0,
149 | "Q3mft(pu)":0.0,
150 | "STS_Ift":0,
151 | "Rii_Ift":0,
152 | "I1mft(pu)":0,
153 | "I2mft(pu)":0,
154 | "I3mft(pu)":0
155 | },
156 | "7":{
157 | "element_name":"Line.692675",
158 | "num_ph":3,
159 | "from_bus":"692",
160 | "to_bus":"675",
161 | "ph_1":1,
162 | "ph_2":1,
163 | "ph_3":1,
164 | "STS_PQft":0,
165 | "Rii_PQft":0.0,
166 | "P1mft(pu)":0.0,
167 | "P2mft(pu)":0.0,
168 | "P3mft(pu)":0.0,
169 | "Q1mft(pu)":0.0,
170 | "Q2mft(pu)":0.0,
171 | "Q3mft(pu)":0.0,
172 | "STS_Ift":0,
173 | "Rii_Ift":0,
174 | "I1mft(pu)":0,
175 | "I2mft(pu)":0,
176 | "I3mft(pu)":0
177 | },
178 | "8":{
179 | "element_name":"Line.671684",
180 | "num_ph":2,
181 | "from_bus":"671",
182 | "to_bus":"684",
183 | "ph_1":1,
184 | "ph_2":0,
185 | "ph_3":1,
186 | "STS_PQft":1,
187 | "Rii_PQft":0.0001,
188 | "P1mft(pu)":0.01172,
189 | "P2mft(pu)":-0.00002,
190 | "P3mft(pu)":0.01537,
191 | "Q1mft(pu)":0.00785,
192 | "Q2mft(pu)":-0.00002,
193 | "Q3mft(pu)":0.00725,
194 | "STS_Ift":0,
195 | "Rii_Ift":0,
196 | "I1mft(pu)":0,
197 | "I2mft(pu)":0,
198 | "I3mft(pu)":0
199 | },
200 | "9":{
201 | "element_name":"Line.684611",
202 | "num_ph":1,
203 | "from_bus":"684",
204 | "to_bus":"611",
205 | "ph_1":0,
206 | "ph_2":0,
207 | "ph_3":1,
208 | "STS_PQft":0,
209 | "Rii_PQft":0.0,
210 | "P1mft(pu)":0.0,
211 | "P2mft(pu)":0.0,
212 | "P3mft(pu)":0.0,
213 | "Q1mft(pu)":0.0,
214 | "Q2mft(pu)":0.0,
215 | "Q3mft(pu)":0.0,
216 | "STS_Ift":0,
217 | "Rii_Ift":0,
218 | "I1mft(pu)":0,
219 | "I2mft(pu)":0,
220 | "I3mft(pu)":0
221 | },
222 | "10":{
223 | "element_name":"Line.684652",
224 | "num_ph":1,
225 | "from_bus":"684",
226 | "to_bus":"652",
227 | "ph_1":1,
228 | "ph_2":0,
229 | "ph_3":0,
230 | "STS_PQft":0,
231 | "Rii_PQft":0.0,
232 | "P1mft(pu)":0.0,
233 | "P2mft(pu)":0.0,
234 | "P3mft(pu)":0.0,
235 | "Q1mft(pu)":0.0,
236 | "Q2mft(pu)":0.0,
237 | "Q3mft(pu)":0.0,
238 | "STS_Ift":0,
239 | "Rii_Ift":0,
240 | "I1mft(pu)":0,
241 | "I2mft(pu)":0,
242 | "I3mft(pu)":0
243 | },
244 | "11":{
245 | "element_name":"Line.671692",
246 | "num_ph":3,
247 | "from_bus":"671",
248 | "to_bus":"692",
249 | "ph_1":1,
250 | "ph_2":1,
251 | "ph_3":1,
252 | "STS_PQft":0,
253 | "Rii_PQft":0.0,
254 | "P1mft(pu)":0.0,
255 | "P2mft(pu)":0.0,
256 | "P3mft(pu)":0.0,
257 | "Q1mft(pu)":0.0,
258 | "Q2mft(pu)":0.0,
259 | "Q3mft(pu)":0.0,
260 | "STS_Ift":0,
261 | "Rii_Ift":0,
262 | "I1mft(pu)":0,
263 | "I2mft(pu)":0,
264 | "I3mft(pu)":0
265 | }
266 | }
--------------------------------------------------------------------------------