├── .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 | jorge lara -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /openpy_dsse/examples/15NodeIEEE/MEAS_files/~$MEAS_file_format.xlsx: -------------------------------------------------------------------------------- 1 | 2 | jorge lara 3 | jorge lara -------------------------------------------------------------------------------- /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 | 13 | -------------------------------------------------------------------------------- /.idea/OpenPy-DSSE.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 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 | "![R Users Group - Ecuador](https://github.com/jlara6/OpenPy-DSSE/blob/main/Sample_tests/13NodeIEEE/13%20Node%20IEEE.png?raw=true)" 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 | "![R Users Group - Ecuador](https://github.com/jlara6/OpenPy-DSSE/blob/main/Sample_tests/15NodeIEEE/15NodeIEEE.jpg?raw=true)" 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 | } --------------------------------------------------------------------------------