arras-energy / gridlabd-old Goto Github PK
View Code? Open in Web Editor NEWHiPAS GridLAB-D is the California Energy Commission (CEC) version of GridLAB-D.
Home Page: https://docs.gridlabd.us
License: BSD 3-Clause "New" or "Revised" License
HiPAS GridLAB-D is the California Energy Commission (CEC) version of GridLAB-D.
Home Page: https://docs.gridlabd.us
License: BSD 3-Clause "New" or "Revised" License
Recorded properties should be able to be aliased so that the names in the CSV header override the actual property name.
e.g.:
property node_HVMV_Sub_LSB:total_moment as node_HVMV_Sub_LSB:current_stress
Visual inspection of gldcore/autotest/test_filter_delay/output.csv
indicates the filter is not working. Also, the absence of an assert statement makes it difficult to detect the failure.
The current values available are:
complex measured_voltage_1[V]; // measured voltage, phase 1 to ground
complex measured_voltage_2[V]; // measured voltage, phase 2 to ground
complex measured_voltage_N[V]; // measured voltage, phase N to ground
The same mechanism that supports XML and GLM dumps needs to also support JSON dumps.
The use of std::* object in gld_object classes is strictly prohibited until gldcore/object.c/create_object is updated to support C++ constructors.
In particular, mysql/recorder.h has std::vector<gld_property>
and std::vector<gld_unit>
as instances rather than pointer to instances. They must be pointers, and the instances must be constructed using new
in recorder::create()
.
This issue arises from problems with compile GLM files in minimal form (see #74). The ability to suppress default values doesn't work reliably because too many defaults are not set properly when the class template is constructed. There needs to be a more robust method of setting and getting defaults when the class is registered and the template is constructed.
The parameters to the stress function should be moved to the init function so that they can be retrieved without having to execute the simulation (use "-c -o file.json" options to dump the output after initialization).
The multirecorder limits the column to 1024 characters. Add support to export more than 1024 characters.
It should be possible to export a multi-GLM model into a single GLM model. There should be the option either include or not include macros/includes in the simple file.
This is necessary to allow the following usage:
#define STARTTIME=2000-01-01 00:00:00 UTC
#define STOPTIME=2000-01-02 00:00:00 UTC
clock {
starttime ${STARTTIME};
stoptime ${STOPTIME};
}
which is currently impossible because the parser insists on having single quotes, which global_getvar always put only double quotes.
When recording a property, we should be able to extract the units of measure.
e.g., for wind speed:
wind_speed = 10
wind_speed.units_of_measure = 'm/s'
Change nodes to poles where appropriate.
Publish the following additional pole properties:
total_moment
resisting_moment
wind speed at failure
the components of the calculation for wind speed at failure
The (Wind) Stress function parameters should be published. These parameters can be published in both foot-pounds and normalized to pole stress.
This is a new issue with master and is probably related to the recent merges.
By default, the GridLAB-D daemon shuts down GridLAB-D when the socket connection from the client is closed. There should be an option to all the simulation to continue the simulation.
GridLAB-D should be able to handle datetime formats such as:
2008-09-15T15:53:00+05:00
2018-10-23T17:15:35:00Z
When validation executes autotests that get aborted end up getting recorded as successful and show that they pass validation.
When the critical stress is reached, it should trigger a fault.
Whether or not a fault should be triggered when the critical stress is reached should be a parameter in the pole object. The default should probably be true.
Note: Depending on what is decided on how to handle wind susceptibility, we may want the configuration property to allow the modeler to trigger a fault based on the wind speed at failure property (calculated from wind susceptibility). The fault could be caused by either the pole stress or wind speed at failure threshold reached (whichever comes first), only or the other threshold reached, or only when both thresholds are reached.
When checking out a docker image the permissions for debugger are not enabled. In addition, the image doesn't build right away with the correct libraries:
To get around it and to manually enable gdb I had to do two steps:
(1) correctly allow permissions as:
docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -it -v $(pwd)/gridlabd:gridlabd image_name
then run within docker bash,
(2) %host: debuginfo-install glibc-2.17-222.el7.x86_64 libgcc-4.8.5-28.el7_5.1.x86_64 libstdc++-4.8.5-28.el7_5.1.x86_64
@aivanova5 see branch, I converted one node to a pole. node_15
(venv370) ➜ ieee123_pole_vulnerability git:(feature/glm_add_subnetwork) ✗ docker run -it -v $(pwd):/model gridlabd/slac-master:latest gridlabd --version -o ieee123.glm.json -W /model ieee123_pole_vulnerability.glm
GridLAB-D 4.0.0-17872 (b0721201:master) 64-bit LINUX RELEASE
*** Error in `/usr/local/bin/gridlabd.bin': free(): invalid next size (normal): 0x0000000001da66c0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x81489)[0x7f73bc025489]
/usr/local/bin/gridlabd.bin(delete_exception_handler+0x33)[0x429df3]
/usr/local/bin/gridlabd.bin(unit_find+0x48)[0x48cef8]
/usr/local/bin/gridlabd.bin[0x41292a]
/usr/local/bin/gridlabd.bin[0x4152a0]
/usr/local/bin/gridlabd.bin[0x450b80]
/usr/local/bin/gridlabd.bin[0x44f25f]
/usr/local/bin/gridlabd.bin[0x44f25f]
/usr/local/bin/gridlabd.bin[0x44f25f]
/usr/local/bin/gridlabd.bin[0x44f25f]
/usr/local/bin/gridlabd.bin[0x44f25f]
/usr/local/bin/gridlabd.bin[0x44f25f]
/usr/local/bin/gridlabd.bin[0x44f25f]
/usr/local/bin/gridlabd.bin[0x44f25f]
/usr/local/bin/gridlabd.bin[0x44f25f]
/usr/local/bin/gridlabd.bin[0x44f25f]
/usr/local/bin/gridlabd.bin[0x44f25f]
/usr/local/bin/gridlabd.bin[0x4524f5]
/usr/local/bin/gridlabd.bin(loadall_glm_roll+0x24c)[0x455c2c]
/usr/local/bin/gridlabd.bin(loadall+0x10d)[0x45601d]
/usr/local/bin/gridlabd.bin(cmdarg_load+0x1b1)[0x41c301]
/usr/local/bin/gridlabd.bin(main+0x15f)[0x4157ef]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7f73bbfc63d5]
/usr/local/bin/gridlabd.bin[0x415bb4]
======= Memory map: ========
00400000-004c6000 r-xp 00000000 08:01 1070429 /usr/local/bin/gridlabd.bin
006c5000-006c6000 r--p 000c5000 08:01 1070429 /usr/local/bin/gridlabd.bin
006c6000-006d5000 rw-p 000c6000 08:01 1070429 /usr/local/bin/gridlabd.bin
006d5000-00ece000 rw-p 00000000 00:00 0
014f3000-01dbd000 rw-p 00000000 00:00 0 [heap]
7f73ac000000-7f73ac021000 rw-p 00000000 00:00 0
7f73ac021000-7f73b0000000 ---p 00000000 00:00 0
7f73b23d7000-7f73b2446000 r-xp 00000000 08:01 1070549 /usr/local/lib/gridlabd/tape.so
7f73b2446000-7f73b2646000 ---p 0006f000 08:01 1070549 /usr/local/lib/gridlabd/tape.so
7f73b2646000-7f73b2647000 r--p 0006f000 08:01 1070549 /usr/local/lib/gridlabd/tape.so
7f73b2647000-7f73b2649000 rw-p 00070000 08:01 1070549 /usr/local/lib/gridlabd/tape.so
7f73b2649000-7f73b2656000 r-xp 00000000 08:01 1070529 /usr/local/lib/gridlabd/gismo.so
7f73b2656000-7f73b2855000 ---p 0000d000 08:01 1070529 /usr/local/lib/gridlabd/gismo.so
7f73b2855000-7f73b2856000 r--p 0000c000 08:01 1070529 /usr/local/lib/gridlabd/gismo.so
7f73b2856000-7f73b2857000 rw-p 0000d000 08:01 1070529 /usr/local/lib/gridlabd/gismo.so
7f73b2857000-7f73bb5c1000 rw-p 00000000 00:00 0
7f73bb5c1000-7f73bb616000 r-xp 00000000 08:01 1070547 /usr/local/lib/gridlabd/residential.so
7f73bb616000-7f73bb815000 ---p 00055000 08:01 1070547 /usr/local/lib/gridlabd/residential.so
7f73bb815000-7f73bb816000 r--p 00054000 08:01 1070547 /usr/local/lib/gridlabd/residential.so
7f73bb816000-7f73bb818000 rw-p 00055000 08:01 1070547 /usr/local/lib/gridlabd/residential.so
7f73bb818000-7f73bb81a000 rw-p 00000000 00:00 0
7f73bb81a000-7f73bb97f000 r-xp 00000000 08:01 1070543 /usr/local/lib/gridlabd/powerflow.so
7f73bb97f000-7f73bbb7f000 ---p 00165000 08:01 1070543 /usr/local/lib/gridlabd/powerflow.so
7f73bbb7f000-7f73bbb80000 r--p 00165000 08:01 1070543 /usr/local/lib/gridlabd/powerflow.so
7f73bbb80000-7f73bbb82000 rw-p 00166000 08:01 1070543 /usr/local/lib/gridlabd/powerflow.so
7f73bbb82000-7f73bbb85000 rw-p 00000000 00:00 0
7f73bbb85000-7f73bbba1000 r-xp 00000000 08:01 1070521 /usr/local/lib/gridlabd/climate.so
7f73bbba1000-7f73bbda0000 ---p 0001c000 08:01 1070521 /usr/local/lib/gridlabd/climate.so
7f73bbda0000-7f73bbda1000 r--p 0001b000 08:01 1070521 /usr/local/lib/gridlabd/climate.so
7f73bbda1000-7f73bbda2000 rw-p 0001c000 08:01 1070521 /usr/local/lib/gridlabd/climate.so
7f73bbda2000-7f73bbfa4000 rw-p 00000000 00:00 0
7f73bbfa4000-7f73bc166000 r-xp 00000000 08:01 1331013 /usr/lib64/libc-2.17.so
7f73bc166000-7f73bc366000 ---p 001c2000 08:01 1331013 /usr/lib64/libc-2.17.so
7f73bc366000-7f73bc36a000 r--p 001c2000 08:01 1331013 /usr/lib64/libc-2.17.so
7f73bc36a000-7f73bc36c000 rw-p 001c6000 08:01 1331013 /usr/lib64/libc-2.17.so
7f73bc36c000-7f73bc371000 rw-p 00000000 00:00 0
7f73bc371000-7f73bc388000 r-xp 00000000 08:01 1331177 /usr/lib64/libpthread-2.17.so
7f73bc388000-7f73bc587000 ---p 00017000 08:01 1331177 /usr/lib64/libpthread-2.17.so
7f73bc587000-7f73bc588000 r--p 00016000 08:01 1331177 /usr/lib64/libpthread-2.17.so
7f73bc588000-7f73bc589000 rw-p 00017000 08:01 1331177 /usr/lib64/libpthread-2.17.so
7f73bc589000-7f73bc58d000 rw-p 00000000 00:00 0
7f73bc58d000-7f73bc5a2000 r-xp 00000000 08:01 1331058 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f73bc5a2000-7f73bc7a1000 ---p 00015000 08:01 1331058 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f73bc7a1000-7f73bc7a2000 r--p 00014000 08:01 1331058 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f73bc7a2000-7f73bc7a3000 rw-p 00015000 08:01 1331058 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f73bc7a3000-7f73bc8a4000 r-xp 00000000 08:01 1331119 /usr/lib64/libm-2.17.so
7f73bc8a4000-7f73bcaa3000 ---p 00101000 08:01 1331119 /usr/lib64/libm-2.17.so
7f73bcaa3000-7f73bcaa4000 r--p 00100000 08:01 1331119 /usr/lib64/libm-2.17.so
7f73bcaa4000-7f73bcaa5000 rw-p 00101000 08:01 1331119 /usr/lib64/libm-2.17.so
7f73bcaa5000-7f73bcb8e000 r-xp 00000000 08:01 1331213 /usr/lib64/libstdc++.so.6.0.19
7f73bcb8e000-7f73bcd8d000 ---p 000e9000 08:01 1331213 /usr/lib64/libstdc++.so.6.0.19
7f73bcd8d000-7f73bcd95000 r--p 000e8000 08:01 1331213 /usr/lib64/libstdc++.so.6.0.19
7f73bcd95000-7f73bcd97000 rw-p 000f0000 08:01 1331213 /usr/lib64/libstdc++.so.6.0.19
7f73bcd97000-7f73bcdac000 rw-p 00000000 00:00 0
7f73bcdac000-7f73bcdae000 r-xp 00000000 08:01 1331038 /usr/lib64/libdl-2.17.so
7f73bcdae000-7f73bcfae000 ---p 00002000 08:01 1331038 /usr/lib64/libdl-2.17.so
7f73bcfae000-7f73bcfaf000 r--p 00002000 08:01 1331038 /usr/lib64/libdl-2.17.so
7f73bcfaf000-7f73bcfb0000 rw-p 00003000 08:01 1331038 /usr/lib64/libdl-2.17.so
7f73bcfb0000-7f73bcfd2000 r-xp 00000000 08:01 1330973 /usr/lib64/ld-2.17.so
7f73bd0c4000-7f73bd1cb000 rw-p 00000000 00:00 0
7f73bd1cd000-7f73bd1d1000 rw-p 00000000 00:00 0
7f73bd1d1000-7f73bd1d2000 r--p 00021000 08:01 1330973 /usr/lib64/ld-2.17.so
7f73bd1d2000-7f73bd1d3000 rw-p 00022000 08:01 1330973 /usr/lib64/ld-2.17.so
7f73bd1d3000-7f73bd1d4000 rw-p 00000000 00:00 0
7fff686b6000-7fff6870b000 rw-p 00000000 00:00 0 [stack]
7fff687f1000-7fff687f3000 r--p 00000000 00:00 0 [vvar]
7fff687f3000-7fff687f5000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
/usr/local/bin/gridlabd: line 351: 20 Aborted "$bindir/gridlabd.bin" "$@"
Add a property to the powerflow:pole object to record the suceptibility to wind. This may be derivative of the "ratio of actual stress to critical stress" with respect to wind.
We would like to be able to record the meter properties directly on a pole (e.g., measured_real_power). This would allow us to record various properties under a single object (e.g., pole stress and measured real power on the same pole object).
Add support for power pole modeling to the powerflow module. This should include effect of wind, ice, and tilt. The model should be based on the attached document.
Add command line argument or GridLAB-D configuration that allows the asset names and global variables to be exported
Any property in pole_configuration object that has a unit can not be re-assigned unless the unit is specified explicitly within a model file. Error:
[root@1c381fc128de autotest]# gridlabd test_pole.glm
/usr/local/bin/gridlabd: line 341: 66732 Bus error "$bindir/gridlabd.bin" "$@"
This is not a new problem, but it seems to be happening more frequently than previously observed.
We need the ability to produce the git information that was prevailing during the build of the current install. This includes the remote, commit number, status, and diff among other things. The should be obtain using a command line option like --origin.
GridLAB-D is not compiling on Debian-based systems. The following output is from Ubuntu and the Dockerfile sets up a Debian Docker image.
make[1]: Entering directory '/home/jorge/projects/grip/gridlabd'
CXX assert/assert_assert_la-assert.lo
CXX assert/assert_assert_la-complex_assert.lo
CXX assert/assert_assert_la-double_assert.lo
CXX assert/assert_assert_la-enum_assert.lo
CXX assert/assert_assert_la-int_assert.lo
CXX assert/assert_assert_la-init.lo
CXX assert/assert_assert_la-main.lo
CXXLD assert/assert.la
CXX climate/climate_climate_la-climate.lo
CXX climate/climate_climate_la-csv_reader.lo
CXX climate/climate_climate_la-init.lo
In file included from /usr/include/c++/7/vector:60:0,
from climate/climate.h:17,
from climate/init.cpp:11:
/usr/include/c++/7/bits/stl_algobase.h:243:56: error: macro "min" passed 3 arguments, but takes just 2
min(const _Tp& __a, const _Tp& __b, _Compare __comp)
^
/usr/include/c++/7/bits/stl_algobase.h:265:56: error: macro "max" passed 3 arguments, but takes just 2
max(const _Tp& __a, const _Tp& __b, _Compare __comp)
^
In file included from ./gldcore/gridlabd.h:91:0,
from climate/init.cpp:9:
/usr/include/c++/7/bits/stl_algobase.h:195:5: error: expected unqualified-id before ‘const’
min(const _Tp& __a, const _Tp& __b)
^
/usr/include/c++/7/bits/stl_algobase.h:195:5: error: expected ‘)’ before ‘const’
/usr/include/c++/7/bits/stl_algobase.h:195:5: error: expected ‘)’ before ‘const’
/usr/include/c++/7/bits/stl_algobase.h:195:5: error: expected initializer before ‘const’
/usr/include/c++/7/bits/stl_algobase.h:219:5: error: expected unqualified-id before ‘const’
max(const _Tp& __a, const _Tp& __b)
^
/usr/include/c++/7/bits/stl_algobase.h:219:5: error: expected ‘)’ before ‘const’
/usr/include/c++/7/bits/stl_algobase.h:219:5: error: expected ‘)’ before ‘const’
/usr/include/c++/7/bits/stl_algobase.h:219:5: error: expected initializer before ‘const’
In file included from /usr/include/c++/7/vector:60:0,
from climate/climate.h:17,
from climate/init.cpp:11:
/usr/include/c++/7/bits/stl_algobase.h:246:7: error: expected primary-expression before ‘if’
if (__comp(__b, __a))
^~
/usr/include/c++/7/bits/stl_algobase.h:246:7: error: expected ‘}’ before ‘if’
/usr/include/c++/7/bits/stl_algobase.h:246:7: error: expected ‘;’ before ‘if’
/usr/include/c++/7/bits/stl_algobase.h:248:7: error: expected unqualified-id before ‘return’
return __a;
^~~~~~
/usr/include/c++/7/bits/stl_algobase.h:268:7: error: expected primary-expression before ‘if’
if (__comp(__a, __b))
^~
/usr/include/c++/7/bits/stl_algobase.h:268:7: error: expected ‘}’ before ‘if’
/usr/include/c++/7/bits/stl_algobase.h:268:7: error: expected ‘;’ before ‘if’
/usr/include/c++/7/bits/stl_algobase.h:270:7: error: expected unqualified-id before ‘return’
return __a;
^~~~~~
/usr/include/c++/7/bits/stl_algobase.h:271:5: error: expected declaration before ‘}’ token
}
^
Makefile:5348: recipe for target 'climate/climate_climate_la-init.lo' failed
make[1]: *** [climate/climate_climate_la-init.lo] Error 1
make[1]: Leaving directory '/home/jorge/projects/grip/gridlabd'
Makefile:7170: recipe for target 'install' failed
make: *** [install] Error 2
Dockerfile:
FROM library/python:3.7-stretch
RUN apt-get update
RUN apt-get install -y python3
RUN apt-get install -y python3-pip
# RUN apt-get install -y postgresql-client
# For VIM
RUN apt-get install -y apt-file
RUN apt-file update
RUN apt-get install -y vim
# RUN pip install --upgrade pip
# COPY requirements.txt /
# RUN pip3 install --trusted-host pypi.org -r /requirements.txt
# Setup GridLAB-D
RUN apt-get install -y libxerces-c-dev automake cmake libboost-all-dev build-essential
WORKDIR /
#RUN git clone https://github.com/gridlab-d/gridlab-d.git
RUN git clone -b dchassin/json_dump https://github.com/dchassin/gridlabd.git
WORKDIR /gridlabd
RUN pwd
RUN autoreconf -if
RUN ./configure --enable-silent-rules 'CFLAGS=-g -O0 -w' 'CXXFLAGS=-g -O0 -w' 'LDFLAGS=-g -O0 -w'
RUN make
RUN make install
# WORKDIR /code
CMD ["gridlabd" "--version"]
When the pole stress reaches 1 but then later in the simulation it falls below 1, the pole status goes back to "OK" and the service status goes back to "IN_SERVICE".
This can be replicated in the GRIP ieee123 pole model:
start time 01-31-03 19:00
stop time 01-31-03 21:52
node: node_13
After running a simulation using the -o flag with an XML or JSON output file name, the user should be able to feed that final state file into a new simulation run so that the final state after the second run is the same as if a single simulation had been run with the exact same duration/number of time steps.
The final random state of an object after the first run should be carried over as the starting random state of the same object in the next simulation run, along with the other states. The original random seed should be carried forward as well, but any new random numbers would continue from the current random state, not the original random seed. At the end of the simulation the random state and random seed would match the values as if there had been a single run.
The global_randomseed
is used as the storage space for the current state of the random number generator. This makes it impossible to recover the original seed and reset the state in a subsequent simulation.
Recommend adding a new global called global_randomstate
and setting the ur_state
in gldcore/random.c/random_init
to point to that instead of glolbal_randomseed
.
The GRIP wind impact anticipation application needs a wind forecast.
It should probably:
We need the ability to see what the environment is for a gridlabd installation. Having a --printenv command-line option to display the environment variables would be very useful.
Error when adding poles is:
/usr/local/bin/gridlabd: line 341: 19 Bus error "$bindir/gridlabd.bin" "$@"
We're trying to get the to/from properties in the JSON dump. We can see the to connection from the overhead_line to the node in the GLM file, but in the JSON output, we're not seeing any reference to the node at all and no to/from in the node itself, so we're not seeing a way to get the topology from JSON.
GLM File:
object overhead_line {
phases ABCN;
name "LN5563942-5";
from "Q16483_CAP";
to "R42247";
length 0.005260km;
configuration "3PH_H-397_ACSR397_ACSR397_ACSR2/0_ACSR";
}
object node {
phases ABCN;
name "R42247";
nominal_voltage 7199.558;
}
JSON output. No references to "R42247" other than the definition:
"R42247" : {
"id" : "14716",
"class" : "node",
"rank" : "5",
"clock" : "4268336",
"schedule_skew" : "0",
"rng_state" : "115093100",
"heartbeat" : "0",
"guid" : "0x7dcee4dc7c3e8e67",
"flags" : "0x100",
"bustype" : "PQ",
"busflags" : "HASSOURCE",
"reference_bus" : "",
"maximum_voltage_error" : "+0.719956 V",
"voltage_A" : "+7495.8-33.0728d V",
"voltage_B" : "+7524.74-153.128d V",
"voltage_C" : "+7520.39+87.3804d V",
"voltage_AB" : "+13011.8-3.03646d V",
"voltage_BC" : "+12996-122.883d V",
"voltage_CA" : "+13034+117.1d V",
"mean_repair_time" : "+0 s",
"frequency_measure_type" : "NONE",
"sfm_Tf" : "+0.01 s",
"pll_Kp" : "+10 pu",
"pll_Ki" : "+100 pu",
"measured_angle_A" : "+0 rad",
"measured_frequency_A" : "+60 Hz",
"measured_angle_B" : "+0 rad",
"measured_frequency_B" : "+60 Hz",
"measured_angle_C" : "+0 rad",
"measured_frequency_C" : "+60 Hz",
"measured_frequency" : "+60 Hz",
"service_status" : "IN_SERVICE",
"service_status_double" : "-1",
"previous_uptime" : "-1 min",
"current_uptime" : "+3 min",
"Norton_dynamic" : "FALSE",
"generator_dynamic" : "FALSE",
"GFA_enable" : "FALSE",
"GFA_freq_low_trip" : "+59.5 Hz",
"GFA_freq_high_trip" : "+60.5 Hz",
"GFA_volt_low_trip" : "+0.8 pu",
"GFA_volt_high_trip" : "+1.2 pu",
"GFA_reconnect_time" : "+300 s",
"GFA_freq_disconnect_time" : "+0.2 s",
"GFA_volt_disconnect_time" : "+0.2 s",
"GFA_status" : "TRUE",
"GFA_trip_method" : "NONE",
"topological_parent" : ""
},
The user should be able to run the simulation in 2 modes: 1) no failure/fault occurring when the pole stress is reached and 2) poles breaking when the pole stress is reached and causing a fault.
The first mode would be just to get an an idea of which poles are the most vulnerable. This option should be able to be specified either when running in server mode or directly in the GLM file.
For the first mode, the fault would not occur and pole stress could potentially go beyond 1. Whether the pole status should go to "FAILED" and service_status to "OUT_OF_SERVICE" needs to be determined. On the one hand if there is no failure then the status should be OK. On the other we need a way to tell whether a pole should have failed.
Requested features:
This should be implemented like the command-line options --gdb
and --lldb
, i.e., --valgrind
or --valgrind=options
.
The pole degradation should be a property of the pole which can be configured. This property should be able to support random distributions.
The TMY2 weather files are in tenths of a meter per second, but GridLAB-D is converting it to miles per hour.
Currently multiple properties have to be listed on the same line with no spaces. This makes it difficult to read when attempting to record many different properties in the same recorder. The user should be able to separate out the properties with a carriage return since the property line definition ends with a ";"
object multi_recorder {
file 8500_pole_vulnerability.csv;
property climate:wind_speed,node_HVMV_Sub_HSB:measured_real_power,node_HVMV_Sub_HSB:measured_reactive_power,node_HVMV_Sub_LSB:nominal_voltage,node_HVMV_Sub_LSB:pole_stress,node_HVMV_Sub_LSB:susceptibility,node_HVMV_Sub_LSB:nominal_voltage,node_HVMV_Sub_48332:pole_stress,node_HVMV_Sub_48332:susceptibility;
//Triplex meters - Not Needed for now
//node_SX2673305B_1:measured_real_power,node_SX2673305B_1:measured_voltage_12.real,node_SX3048196B_1:measured_real_power,node_SX3048196B_1:measured_voltage_12.real;
interval 3600;
};
When saveall
is enable with not format implied by the extension, the extension .gld
is used (to avoid overwriting the original glm
file). But this extension is not mapped to a valid format.
Recommend added a mapping from .gld
to saveglm
in gldcore/save.c
.
Saves are different from dumps insofar as we need to save the definitions of properties like randomvar
, schedule
, etc. rather than saving the value of the property. This makes it difficult if not impossible to restore a model fully to the condition it was in at the time it was saved.
The distinction between a save and dump is not made at this point but it should be introduced. This will require a review of the code to determine where the expectation is a save versus a dump.
This ratio should be added to the powerflow:pole object.
The macros used to be the traditional C macro, but were changed to use fmin()
and fmax()
. Unfortunately this doesn't work for values that aren't double, e.g., as char*
in connection/udp.cpp
.
The entire code base should be updated so that the correct functions (e.g., fmin
, fmax
) are used and the min
and max
macros are eliminated completely.
This would also address the hidden problem that max
is a defined as a member of some classes like double_array
and complex_array
.
To use the --gdb
command line option on gridlabd docker images, the images must be run with the options --cap-add=SYS_PTRACE --security-opt seccomp=unconfined
and the following command must be run in the container debuginfo-install glibc-2.17-222.el7.x86_64 libgcc-4.8.5-28.el7_5.1.x86_64 libstdc++-4.8.5-28.el7_5.1.x86_64
.
In a recent simulation run of the IEEE123 pole vulnerability model, the lines to the poles have a lot more power than the substation swing bus.
e.g.:
first time step
+20964.4 substation (measured real power)
+1.10552e+06 pole (power out real)
last time step
+14474.3 substation (measured real power)
+761657 pole (power out real)
There is no solar in this model and both measurements are in W according to modhelp.
The critical wind speed calculations is not consistent with wind_failure calculations.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.