Skip to content
This repository has been archived by the owner on Sep 27, 2023. It is now read-only.

Implement resilience analysis use case #485

Merged
merged 134 commits into from
Nov 4, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
3e2801f
Create README.md
Dec 10, 2019
3097408
Update README.md
Dec 10, 2019
255a770
Create Resilience.md
Dec 11, 2019
35a07b1
Merge branch 'develop' into use_case/resilience
Dec 12, 2019
f8d4232
Merge branch 'develop' into use_case/resilience
Feb 17, 2020
0efaa10
Merge branch 'develop' into use_case/resilience
Feb 24, 2020
d50bebf
Merge branch 'develop' into use_case/resilience
Feb 26, 2020
bf402f0
Merge branch 'develop' into use_case/resilience
Feb 26, 2020
ec4b4e1
Merge branch 'develop' into use_case/resilience
Feb 28, 2020
cdedeca
Merge branch 'develop' into use_case/resilience
Mar 3, 2020
c3e5ded
Merge branch 'develop' into use_case/resilience
Mar 8, 2020
3033a5b
Merge branch 'develop' into use_case/resilience
Mar 20, 2020
b842b5d
Merge branch 'develop' into use_case/resilience
Mar 24, 2020
92de077
Merge branch 'develop' into use_case/resilience
Apr 6, 2020
21446ed
Merge branch 'develop' into use_case/resilience
Apr 15, 2020
9dd9de0
Merge branch 'develop' into use_case/resilience
Apr 24, 2020
2c3cfea
Merge branch 'develop' into use_case/resilience
aivanova5 Apr 30, 2020
0f5c922
Merge branch 'develop' into use_case/resilience
aivanova5 May 5, 2020
1c28776
Merge branch 'develop' into use_case/resilience
aivanova5 Sep 30, 2020
d68e5e0
IEEE 13 model with poles
aivanova5 Oct 2, 2020
e183140
Adding model IEEE 13 with poles
aivanova5 Oct 19, 2020
76e85b5
Create test_IEEE13_pole_output.csv
aivanova5 Oct 19, 2020
fef2e6d
Adding wind pressure output
aivanova5 Oct 19, 2020
88313ba
Update .gitignore
aivanova5 Oct 19, 2020
9b78d20
Update pole.cpp
Oct 19, 2020
e2a3e8e
Merge branch 'use_case/resilience' of https://github.com/slacgismo/gr…
aivanova5 Oct 19, 2020
f9379e9
Merge branch 'develop' into use_case/resilience
aivanova5 Oct 27, 2020
6fa6f18
Add documentation on resilience impacts of vegetation
Nov 9, 2020
1914581
Add support for parent class definition in loader
Nov 11, 2020
f5a7512
Add support for more general tariff design specification
Nov 11, 2020
e6942f7
Revert "Add support for parent class definition in loader"
Nov 11, 2020
01f88ae
Revert "Add support for more general tariff design specification"
Nov 11, 2020
b0b651d
Added Santa Cruz county example data
Dec 15, 2020
2d0edcd
Update Powerline vegetation impact example.ipynb
Dec 15, 2020
21c6c4c
Update Powerline vegetation impact example.ipynb
Dec 15, 2020
e78f197
Update Powerline vegetation impact example.ipynb
Dec 17, 2020
6e244e3
Merge branch 'develop' into use_case/resilience
Mar 31, 2021
28aa2ec
Merge branch 'develop' into use_case/resilience
dchassin Apr 4, 2021
3233938
Add example of RoW canopy cover analysis
dchassin Apr 4, 2021
c024c11
Create requirements.txt
Apr 4, 2021
2207d40
Update requirements.txt
dchassin Apr 4, 2021
915b52f
Update requirements.txt
Apr 5, 2021
863fe4b
Fix vegetation path analysis
Apr 5, 2021
690e8d1
Convert example to command-like usage
Apr 5, 2021
78dd43d
Update vegetation.py
Apr 5, 2021
caa4a31
Update vegetation.py
Apr 5, 2021
ff2379a
Update vegetation.py
dchassin Apr 5, 2021
74355ee
Merge branch 'use_case/resilience' of https://github.com/slacgismo/gr…
Apr 6, 2021
1ac02e7
Create agl.py
Apr 6, 2021
ef26008
Update agl.py
Apr 6, 2021
3c256ea
Add elevation data acquisition
Apr 8, 2021
fb8cf8d
Delete 230kV_example.tif
Apr 8, 2021
59d8cab
Update elevation.py
Apr 8, 2021
9239052
Update requirements.txt
Apr 8, 2021
8b32ed3
Update elevation.py
Apr 8, 2021
5b9bd20
vegetation analysis file (#889)
Apr 26, 2021
6703ac9
Fixing it
May 3, 2021
c094be7
Moving vegetation analysis docs
May 3, 2021
2573030
Merge branch 'develop' into use_case/resilience
May 3, 2021
83874e3
Merge branch 'develop' into use_case/resilience
aivanova5 Jul 6, 2021
4eb640c
Merge branch 'develop' into use_case/resilience
dchassin Jul 19, 2021
a4799f0
Update pole.cpp
dchassin Jul 19, 2021
b2cbf53
Update pole.h
dchassin Jul 19, 2021
501515f
Update test_IEEE_13_pole.glm
dchassin Jul 19, 2021
ea88cb1
Update test_IEEE13_pole_output.csv
dchassin Jul 19, 2021
46082fc
Update main.cpp
dchassin Jul 20, 2021
1c6fe61
Update main.cpp
dchassin Jul 20, 2021
2ad7709
Merge branch 'develop-fix-missing-verbose-context' into use_case/resi…
dchassin Jul 20, 2021
84fdc7f
Update load.cpp
dchassin Jul 20, 2021
c38ccc2
Merge branch 'develop-fix-missing-verbose-context' into use_case/resi…
dchassin Jul 20, 2021
5cb8507
Delete 230kV_example.tif
dchassin Jul 20, 2021
f90a169
Update pole_mount.cpp
dchassin Jul 22, 2021
bfdf491
Update test_pole.glm
dchassin Jul 22, 2021
97cbb98
Merge branch 'develop' into use_case/resilience
dchassin Jul 27, 2021
34c43c2
Update pole_mount.cpp
dchassin Jul 27, 2021
40982f0
Fix resilience autotest error
dchassin Jul 27, 2021
a5cf431
Fix for ABOVE_NORMAL and NORMAL Rfloor value
aivanova5 Jul 28, 2021
668c56c
Merge branch 'develop-fix-thermalintegrity' into use_case/resilience
dchassin Jul 28, 2021
e94cb8f
Merge branch 'develop' into use_case/resilience
Aug 4, 2021
bb7dfc1
Merge branch 'develop' into use_case/resilience
aivanova5 Aug 5, 2021
9935fa7
Merge branch 'use_case/resilience' of https://github.com/slacgismo/gr…
Aug 6, 2021
ed45669
Merge branch 'develop' into use_case/resilience
Aug 13, 2021
7ce0b7d
Update pole.cpp
Aug 16, 2021
5bdd0e7
Update pole.cpp
Aug 16, 2021
ed35550
Update pole.cpp
Aug 17, 2021
21f315e
Merge remote-tracking branch 'origin/develop' into use_case/resilience
Aug 25, 2021
37a32a4
Update pole.cpp
Aug 25, 2021
bce5d8a
Update pole.cpp
Aug 25, 2021
81c0300
Merge branch 'use_case/resilience' of https://github.com/slacgismo/gr…
Aug 25, 2021
f70d38e
Merge remote-tracking branch 'origin/develop' into use_case/resilience
Aug 25, 2021
2b2175a
Merge remote-tracking branch 'origin/develop' into use_case/resilience
Aug 26, 2021
f7c6e2d
Update load.cpp
Aug 26, 2021
41906de
Merge branch 'develop-fix-onexit-crlf-error' into use_case/resilience
Aug 26, 2021
d38ef7e
Update test_IEEE_13_pole_output.csv
Aug 26, 2021
1c86340
Update test_pole.csv
Aug 26, 2021
db458f4
Merge remote-tracking branch 'origin/develop' into use_case/resilience
Aug 26, 2021
fc629a3
Update test_IEEE_13_pole_output.csv
Aug 26, 2021
35a7ffb
Update test_IEEE_13_pole_wind.player
Aug 26, 2021
74d6451
Merge branch 'develop' into use_case/resilience
dchassin Aug 26, 2021
9afed5a
Update test_IEEE_13_pole_output.csv
Aug 30, 2021
24b8366
Update Pole.md
aivanova5 Sep 2, 2021
e892415
Merge branch 'develop' into use_case/resilience
aivanova5 Sep 3, 2021
a0c31fb
Merge branch 'develop' into use_case/resilience
Sep 14, 2021
bf01d5d
Merge branch 'develop' into use_case/resilience
Sep 20, 2021
9ad2407
Merge branch 'develop' into use_case/resilience
aivanova5 Sep 22, 2021
9eb09b3
Merge branch 'develop' into use_case/resilience
dchassin Sep 25, 2021
d8cc31c
Merge branch 'use_case/resilience' of https://github.com/slacgismo/gr…
Sep 28, 2021
fcfb562
Merge branch 'develop' into use_case/resilience
Sep 28, 2021
1b93a9b
(#985) Update so "status" field for links will now allow them to disc…
ftuffner Oct 11, 2021
2f92d42
Merge branch 'use_case/resilience' of https://github.com/slacgismo/gr…
Oct 12, 2021
20618f9
Merge branch 'develop' into use_case/resilience
Oct 12, 2021
6023b90
Create test_IEEE123_link_outages.py
Oct 12, 2021
d202aa1
Create test_IEEE123_link_outages.glm
Oct 12, 2021
dbe27c1
Create .gitignore
Oct 12, 2021
252b3a6
Update test_IEEE123_link_outages.glm
Oct 12, 2021
7ae0a2b
Update test_IEEE123_link_outages.py
Oct 12, 2021
106a60b
Update test_IEEE123_link_outages.glm
Oct 12, 2021
92f60f6
Update test_IEEE123_link_outages.py
Oct 12, 2021
288243c
Update test_IEEE123_link_outages.glm
Oct 12, 2021
16fcacb
Update test_IEEE123_link_outages.py
Oct 12, 2021
05b35bc
Update test_IEEE123_link_outages.py
Oct 12, 2021
7c3347a
Update test_IEEE123_link_outages.glm
Oct 12, 2021
15434e0
Update test_IEEE123_link_outages.glm
Oct 12, 2021
4c847a6
Update test_IEEE123_link_outages.glm
Oct 12, 2021
8a7dbd9
Update test_IEEE123_link_outages.py
Oct 12, 2021
bde2a16
Update test_IEEE123_link_outages.glm
Oct 13, 2021
6b67bf3
Update test_IEEE123_link_outages.py
Oct 13, 2021
60c1254
Update test_IEEE123_link_outages.glm
Oct 13, 2021
dd601a3
Merge branch 'use_case/resilience' of https://github.com/slacgismo/gr…
Oct 14, 2021
438cf13
Update pole.cpp
Oct 20, 2021
17722ae
(#985) Added multiple independent island capability
ftuffner Oct 25, 2021
3cbce84
Update pole_mount.cpp
Oct 27, 2021
5fec99b
(#985) Small fix so the MacOS compiler stops complaining about C++11 …
ftuffner Oct 30, 2021
cb8dac2
Fix resilience IEEE123 autotest of NR solver
Nov 2, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/Module/Powerflow/Pole.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
~~~
object pole
{
pole_status "OK";
status "OK";
tilt_angle "0 deg";
tilt_direction 0 deg";
weather "<climate-object>";
Expand Down
41 changes: 21 additions & 20 deletions module/generators/autotest/fqm_group_lf_batt633_power.player
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
2014-01-01 00:01:30 PST,+312175+000000i
2014-01-01 01:01:30 PST,+181920+000000i
2014-01-01 02:01:30 PST,+061563+000000i
2014-01-01 03:01:30 PST,+000000+000000i
2014-01-01 04:01:30 PST,+000000+900000i
2014-01-01 05:01:30 PST,-176150+881896i
2014-01-01 06:01:30 PST,-356255-826488i
2014-01-01 07:01:30 PST,-613021-658942i
2014-01-01 08:01:30 PST,-774889-457763i
2014-01-01 09:01:30 PST,+000000-900000i
2014-01-01 10:01:30 PST,+152205-887036i
2014-01-01 11:01:30 PST,+506831-743722i
2014-01-01 12:01:30 PST,+064691-762707i
2014-01-01 13:01:30 PST,-152656-762707i
2014-01-01 14:01:30 PST,-683220-585841i
2014-01-01 15:01:30 PST,-000000-762707i
2014-01-01 16:01:30 PST,+000000-762707i
2014-01-01 18:01:30 PST,+294085+079313i
2014-01-01 19:01:30 PST,+054743+079313i
2014-01-01 20:01:30 PST,+000000+898334i
2014-01-01 00:01:30 PST,+325935+0.0j
2014-01-01 01:01:30 PST,+194925+0.0j
2014-01-01 02:01:30 PST,+78102.5+0.0j
2014-01-01 03:01:30 PST,+0+0.0j
2014-01-01 04:01:30 PST,0.0+900000j
2014-01-01 05:01:30 PST,-160331+884948j
2014-01-01 06:01:30 PST,-340311-833180j
2014-01-01 07:01:30 PST,-591762-678099j
2014-01-01 08:01:30 PST,-773662-459834j
2014-01-01 09:01:30 PST,0.0-900000j
2014-01-01 10:01:30 PST,+163413-885040j
2014-01-01 11:01:30 PST,+518316-735764j
2014-01-01 12:01:30 PST,+80063.1-735764j
2014-01-01 13:01:30 PST,-135288-735764j
2014-01-01 14:01:30 PST,-654367-617902j
2014-01-01 15:01:30 PST,0.0-735764j
2014-01-01 16:01:30 PST,0.0-735764j
2014-01-01 17:01:30 PST,0.0-735764j
2014-01-01 18:01:30 PST,+308929+35065j
2014-01-01 19:01:30 PST,+68380.1+35065j
2014-01-01 20:01:30 PST,+0.0+897399j
41 changes: 21 additions & 20 deletions module/generators/autotest/fqm_group_lf_batt684_power.player
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
2014-01-01 00:01:30 PST,+104058+000000i
2014-01-01 01:01:30 PST,+060640+000000i
2014-01-01 02:01:30 PST,+020521+000000i
2014-01-01 03:01:30 PST,+000000+000000i
2014-01-01 04:01:30 PST,+000000+300000i
2014-01-01 05:01:30 PST,-058717+293965i
2014-01-01 06:01:30 PST,-118752-275496i
2014-01-01 07:01:30 PST,-204340-219647i
2014-01-01 08:01:30 PST,-258296-152588i
2014-01-01 09:01:30 PST,-148051-260923i
2014-01-01 10:01:30 PST,+050735-295679i
2014-01-01 11:01:30 PST,+168944-247907i
2014-01-01 12:01:30 PST,+021564-254236i
2014-01-01 13:01:30 PST,-050878-254236i
2014-01-01 14:01:30 PST,-227740-195280i
2014-01-01 15:01:30 PST,-228869-193956i
2014-01-01 16:01:30 PST,+000000-254236i
2014-01-01 18:01:30 PST,+098028+026438i
2014-01-01 19:01:30 PST,+018248+026438i
2014-01-01 20:01:30 PST,+000000+299445i
2014-01-01 00:01:30 PST,+108645+0.0j
2014-01-01 01:01:30 PST,+64974.9+0.0j
2014-01-01 02:01:30 PST,+26034.2,+0j
2014-01-01 03:01:30 PST,+0+0j
2014-01-01 04:01:30 PST,0.0+300000j
2014-01-01 05:01:30 PST,-53443.8+294983j
2014-01-01 06:01:30 PST,-113437-277727j
2014-01-01 07:01:30 PST,-197254-226033j
2014-01-01 08:01:30 PST,-257887-153278j
2014-01-01 09:01:30 PST,-137733-266514j
2014-01-01 10:01:30 PST,+54470.6-295013j
2014-01-01 11:01:30 PST,+172772-245255j
2014-01-01 12:01:30 PST,+26687.7-245255j
2014-01-01 13:01:30 PST,-45095.9-245255j
2014-01-01 14:01:30 PST,-218122-205967j
2014-01-01 15:01:30 PST,-232263-189879j
2014-01-01 16:01:30 PST,+0.0-245255j
2014-01-01 17:01:30 PST,+0.0-245255j
2014-01-01 18:01:30 PST,+102976+11688.3j
2014-01-01 19:01:30 PST,+22793.4+11688.3j
2014-01-01 20:01:30 PST,0.0+299133j
105 changes: 70 additions & 35 deletions module/generators/windturb_dg.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,9 @@ int windturb_dg::init(OBJECT *parent)

double ZB, SB = 0.0, EB = 0.0;
complex tst, tst2, tst3, tst4;
gld_property *temp_property_pointer;
enumeration temp_enum;
bool NR_detect;

switch (Turbine_Model) {
case GENERIC_IND_LARGE:
Expand Down Expand Up @@ -452,17 +455,6 @@ int windturb_dg::init(OBJECT *parent)
*/
}

// construct circuit variable map to meter -- copied from 'House' module
struct {
complex **var;
const char *varname;
} map[] = {
// local object name, meter object name
{&pCircuit_V, "voltage_A"}, // assumes 2 and 3 follow immediately in memory
{&pLine_I, "current_A"}, // assumes 2 and 3(N) follow immediately in memory
/// @todo use triplex property mapping instead of assuming memory order for meter variables (residential, low priority) (ticket #139)
};

static complex default_line123_voltage[3], default_line1_current[3];
size_t i;

Expand Down Expand Up @@ -554,18 +546,58 @@ int windturb_dg::init(OBJECT *parent)
voltages of the parent meter be within ~10% of the rated voltage.
*/

// attach meter variables to each circuit
for (i=0; i<sizeof(map)/sizeof(map[0]); i++)
//Map the solver method and see if we're NR-oriented
temp_property_pointer = new gld_property("powerflow::solver_method");

//Make sure it worked
if ((temp_property_pointer->is_valid() != true) || (temp_property_pointer->is_enumeration() != true))
{
*(map[i].var) = get_complex(parent,map[i].varname);
GL_THROW("windturb_dg:%d %s failed to map the nominal_frequency property", obj->id, (obj->name ? obj->name : "Unnamed"));
/* TROUBLESHOOT
While attempting to map the powerflow:solver_method property, an error occurred. Please try again.
If the error persists, please submit your GLM and a bug report to the ticketing system.
*/
}

if (*(map[i].var) == NULL)
{
GL_THROW("Unable to map variable %s",map[i].varname);
/* TROUBLESHOOT
The variable name was not found when mapping it
*/
}
//Must be valid, read it
temp_enum = temp_property_pointer->get_enumeration();

//Remove the link
delete temp_property_pointer;

//Check which method we are - NR=2
if (temp_enum == 2)
{
//Map the current property - pre-rotated for NR
pLine_I = get_complex(parent,"prerotated_current_A");
}
else //Other methods - should already be set, but be explicit
{
//Map the normal current property for FBS for now
pLine_I = get_complex(parent,"current_A");
}

//Check it
if (pLine_I == NULL)
{
GL_THROW("windturb_dg:%d %s failed to map the current property", obj->id, (obj->name ? obj->name : "Unnamed"));
/* TROUBLESHOOT
While attempting to map the current property from the parent meter, an error occurred. Please try again.
If the error persists, please submit your GLM and a bug report to the ticketing system.
*/
}

//Map the voltage - it's the same regardless
pCircuit_V = get_complex(parent,"voltage_A");

//Check it
if (pCircuit_V == NULL)
{
GL_THROW("windturb_dg:%d %s failed to map the voltage property", obj->id, (obj->name ? obj->name : "Unnamed"));
/* TROUBLESHOOT
While attempting to map the voltage property from the parent meter, an error occurred. Please try again.
If the error persists, please submit your GLM and a bug report to the ticketing system.
*/
}
}
else if (gl_object_isa(parent,"triplex_meter","powerflow"))
Expand Down Expand Up @@ -620,22 +652,25 @@ int windturb_dg::init(OBJECT *parent)
voltages of the parent meter be within ~10% of the rated voltage.
*/

//Map the normal current property
pLine_I = get_complex(parent,"current_A");

//Check it
if (pLine_I == NULL)
{
GL_THROW("windturb_dg:%d %s failed to map the current property", obj->id, (obj->name ? obj->name : "Unnamed"));
//Defined above
}

//Map the voltage - it's the same regardless
pCircuit_V = get_complex(parent,"voltage_A");

// attach meter variables to each circuit
for (i=0; i<sizeof(map)/sizeof(map[0]); i++)
//Check it
if (pCircuit_V == NULL)
{
if ((*(map[i].var) = get_complex(parent,map[i].varname))==NULL)
{
GL_THROW("%s (%s:%d) does not implement rectifier variable %s for %s (windturb_dg:%d)",
/* TROUBLESHOOT
The rectifier requires that the inverter contains certain published properties in order to properly connect. If you encounter this error, please report it to the developers, along with
the version of GridLAB-D that raised this error.
*/
parent->name?parent->name:"unnamed object", parent->oclass->name, parent->id, map[i].varname, obj->name?obj->name:"unnamed", obj->id);
}
GL_THROW("windturb_dg:%d %s failed to map the voltage property", obj->id, (obj->name ? obj->name : "Unnamed"));
//Defined above
}

}
else
{
Expand All @@ -650,8 +685,8 @@ int windturb_dg::init(OBJECT *parent)
warning("windturb_dg:%d %s", obj->id, parent==NULL?"has no parent meter defined":"parent is not a meter");

// attach meter variables to each circuit in the default_meter
*(map[0].var) = &default_line123_voltage[0];
*(map[1].var) = &default_line1_current[0];
// *(map[0].var) = &default_line123_voltage[0];
// *(map[1].var) = &default_line1_current[0];

// provide initial values for voltages
default_line123_voltage[0] = complex(Rated_V/sqrt(3.0),0);
Expand Down
Loading