Reliability User Guide
Introduction to Reliability Analysis
This section provides the definitions for the 12 indices used in the reliability analysis of a distribution system. This guide also identifies the factors that go into the calculations for each reliability index. It is important to note that these indices are used to analyze distribution systems only. Generation and transmission systems are not looked at in this type of study.
Jump to the Reliability Module Section.
Note
All names, factors, equations, definitions, and applications discussed in this guide were taken from the IEEE Std 1366 2003 Edition.
Definitions
This section provides definitions to assist the user in understanding the factors that affect index calculations.
1. Customer: A metered electrical service point for which an active bill account is established. Within GridLAB-D™ the customer list is generated by looking for all the meter and triplex_meter objects written in the .glm file.
2. Momentary Interruption: A single operation of an interrupting device that results in a voltage of zero at the node. Take one operation of a recloser for example. The single operation of a recloser opening then closing would be considered one momentary interruption if the operation resulted in interrupting one or more customers.
3. Momentary Interruption Event: An interruption lasting five minutes or less. For example, if a circuit breaker operates five times then holds within five minutes of the first operation, then those five momentary interruptions are considered one momentary interruption event.
4. Sustained Interruption: An interruption that last more than five minutes.
Reliability Indices
Index Factors
The factors listed below indicate the data needed to calculate the indices. All factors are collected over a single reporting period of one year.
- \(r_i\) = restoration time, in minutes, for interruption event \(i\)
- \(N_i\) = number of interrupted customers for each sustained interruption event
- \(N_{mi}\) = number of interrupted customers for each momentary interruption event
- \(N_T\) = number of customers for distribution area of interest
- \(L_i\) = the total connected kVA load interrupted for the each sustained interruption event
- \(L_T\) = the total connected kVA load served
- \(IM_i\) = the number of momentary interruption operations for each momentary interruption event
- \(IM_E\) = number of momentary interruption events
- \(CN\) = total number of customers who have experienced a least one sustained interruption
- \(CNT_{(k>n)}\) = total number of customers who have experienced more than n interruption events
- \(k\) = number of interruption events experienced by an individual customer
Sustained Interruption Indices
SAIFI
SAIFI, the system average interruption frequency index, shows how often the average customer experiences a sustained interruption over a period of time. In GridLAB-D™ that period of time is a year. The equation below is used to calculate SAIFI.
SAIDI
SAIDI, the system average interruption duration index, shows the average duration of a sustained interruption for a customer during the reporting period. In GridLAB-D™ this index is given in minutes. The equation below is used to calculate SAIDI.
CAIDI
CAIDI, the customer average interruption duration index, shows average time needed to restore service. This index is given in minutes in GridLAB-D™. The equation below is used to calculate CAIDI.
CTAIDI
CTAIDI, the customer total average interruption duration index, shows the total average time that customers who experienced an interruption were without power. This index is given in minutes in GridLAB-D™. The equation below is used to calculate CTAIDI.
CAIFI
CAIFI, the customer average interruption frequency index, shows average frequency of sustained interruptions experienced for customers who actually experienced a sustained interruption. The equation below is used to calculate CAIFI.
ASAI
ASAI, the average service availability index, shows the fraction of time that a customer has received power during the reporting period. This index is given as a percentage within GridLAB-D™. The equation below is used to calculate ASAI
Note
There is no specification between regular years and leap years when calculating this index in GridLAB-D™. The regular 8760 hours/year is used when calculated this index.
\(CEMI_n\)
\(CEMI_n\), the customers experiencing multiple interruptions index, shows the fraction of individual customers experiencing more than \(n\) sustained interruptions over the total number of customers served. The equation below is used to calculate the index.
Load Based Indices
ASIFI
ASIFI, the average system interruption frequency index, is based on load instead of number of customers interrupted. This index is useful analyzing distribution systems made up primarily of industrial and commercial customers. If the system being analyzed had a homogeneous load distribution, then ASIFI would be the same as SAIFI. Also this index includes only interrupted load from sustained interruption events. The equation below is used to calculate the index.
ASIDI
ASIDI, the average system interruption duration index, is based on load instead of number of customers interrupted. Its use is the same a previously discussed in the section above. The equation below is used to calculate the index.
Momentary Interruption Indices
MAIFI
MAIFI, the momentary average interruption frequency index, shows the average frequency of momentary interruption. The equation below is used to calculate the index.
\(MAIFI_E\)
MAIFI\(_E\), the momentary average interruption event frequency index, shows the average frequency of momentary interruption events. The equation below is used to calculate the index.
\(CEMSMI_n\)
\(CEMSMI_n\), customers experiencing multiple sustained interruption and momentary interruption events, shows the fraction of individual customers who experienced more than \(n\) interruption events of any kind over the total customers served. This index looks a how many events a customer experienced, regardless of whether they are sustained or momentary. The equation below is used to calculate the index.
References
IEEE Std 1366-2003. IEEE Guide for Electric Power Distribution Reliability Indices. Available online at: www.ieee.org
Reliability Module
The reliability module provides the ability to induce events on a system and evaluate their impacts. The reliability module collects and outputs module-appropriate metrics to a log file for user evaluation. reliability is only an event-inducing and metrics-recording module and requires specific interfaces to different modules of interest. At this time, the only module interface that exists is with the powerflow module (see the Power Flow User Guide).
Overall settings
The reliability module has two module-level settings that a user can specify. These two settings influence all reliability-related items in the system, regardless of the module. The two parameters are maximum_event_length and report_event_log, which would be implemented as
module reliability {
maximum_event_length 300 s;
report_event_log TRUE;
}
The maximum_event_length specifies the maximum duration any object may be in a fault condition on the system. If a randomly-generated fault exceeds this time limit, it will be thresholded to the value of maximum_event_length. However, manual faulting scenarios do not check this limit, and can produce longer fault condition.
The report_event_log property defines whether the metrics object will include a list of induced events, or just the output statistics. If enabled, the output file will include when an event started, when it ended, the desired fault, the implemented fault, and some customer information.
Reliability Objects
There are two object within the reliability module. These two objects will interact with specific module classes to generate the events and record module-appropriate metrics.
Metrics
The metrics object collects and outputs any of the measurements associated with reliability in a specific module. The actual metrics are computed by module-specific objects, such as the power_metrics object in the powerflow module. The output file containing the event information and reliability calculations is output by the metrics object.
A minimal metrics object would be implemented as
object metrics {
name test_metrics;
module_metrics_object powermetrics;
metrics_of_interest "SAIFI,SAIDI";
customer_group "groupid=METEROBJS";
}
with an equivalent implementation of
object metrics {
name test_metrics;
module_metrics_object powermetrics;
metrics_of_interest "SAIFI,SAIDI";
customer_group "groupid=METEROBJS";
metric_interval 0 s;
report_interval 1 yr;
}
Metrics Parameters
| Property Name | Type | Unit | Description |
|---|---|---|---|
| report_file | char1024 | N/A | File name where the event log (if desired) and metric calculations are written. |
| customer_group | char1024 | N/A | Defines the criterion for an object to be considered a customer. Uses specifications similar to collector objects with class= and groupid= being valid keywords. |
| module_metrics_object | object | N/A | Link to the module-specific metrics device to compute reliability indices related to that module. An example would be the power_metrics object in the powerflow module. |
| metrics_of_interest | char1024 | N/A | Comma-separated list of metrics to output into the report_file. Values desired must be published by the module-specific metrics object. |
| metric_interval | double | seconds | Intermediate interval over which to calculate reliability indices. Interval metrics will be reset every metric_interval seconds. Simulation-long metric calculations are unaffected by this value. Defaults to 0 seconds, so intermediate values are not output. |
| report_interval | double | seconds | Time period between writes to the report_file, unless prompted to do so earlier by metric_interval. Drives the output of overall simulation-long metric calculations. Defaults to 1 year. |
Eventgen
The eventgen object creates events on objects in the GLM file to test the reliability of the system. Such induced events often produce a relevant result in the metrics object, or in some output of the system. The eventgen object allows both manually specified, deterministic events, or randomly-generated, stochastic events.
eventgen objects must be parented to an appropriate metrics object to function. This allows the reliability indices to be calculated appropriately when an event is induced.
The minimal setup required for a randomly-induced event would be
object eventgen {
name RandEvent;
parent MetricsObj;
target_group "class=line AND groupid=FAULTY";
fault_type "DLG-X";
}
which is equivalent to a fully specified version of
object eventgen {
name RandEvent;
parent MetricsObj;
target_group "class=line AND groupid=FAULTY";
fault_type "DLG-X";
failure_dist EXPONENTIAL;
restoration_dist PARETO;
failure_dist_param_1 3.858e-7;
failure_dist_param_2 0.0;
restoration_dist_param_1 1.0;
restoration_dist_param_2 1.0002778;
max_outage_length 432000 s;
max_simultaneous_faults -1;
}
A deterministic eventgen object can be specified as
object eventgen {
name DeterEvent;
parent MetricsObj;
fault_type "DLG-X";
manual_outages "nodeB,2000-01-01 5:00:00,2000-01-02 6:00:00";
}
Note that a deterministic evengen object ignores the limits specified in the module-level maximum_event_length parameter, as well as the max_outage_length and max_simultaneous_faults properties.
Eventgen external event mode
eventgen also has an "external event" mode where an event can be sent via JSON string, via something like HELICS. To support this approach, a typical eventgen object would look like:
object eventgen {
name ExternalSupported;
use_external_faults TRUE;
}
External events are sent to the external_fault_event field, and have a JSON syntax of:
"{
\"name\": \"fault1\",
\"type\": \"TLL\",
\"fault_object\": \"line12\"
}"
where the name field is a unique identifier for the fault event, type is the same as the powerflow types listed at the end of this documentation page, and fault_object is the GridLAB-D™ object to induce the event on. Note that the name is utilized as a unique identifier of this fault, so to turn the fault off, simply sending that name will be sufficnent. e.g.,:
"{\"name\":\fault1\"}"
Eventgen Parameters
| Property Name | Type | Unit | Description |
|---|---|---|---|
| target_group | char1024 | N/A | Defines the criterion for the objects to induce faults upon. Uses specifications similar to collector objects with class= and groupid= being valid keywords. Note that stochastically specified eventgen objects will induce faults on all objects in the target_group field independently, with only consideration for the max_simultaneous_faults field. This field must be empty for manual_outages to work. |
| fault_type | char1024 | N/A | Describes the type of faults/events to induce on the specified objects. This is specific to the module the faults/events are being induced upon, or the reliability metrics are measuring. |
| failure_dist | enumeration | N/A | Distribution type used to generate times to random "failure" event on the system. Valid distributions are UNIFORM, NORMAL, LOGNORMAL, BERNOULLI, PARETO, EXPONENTIAL, RAYLEIGH, WEIBULL, GAMMA, BETA, and TRIANGLE. |
| restoration_dist | enumeration | N/A | Distribution type used to determine time to restoration on faulted/evented objects. Valid distributions are UNIFORM, NORMAL, LOGNORMAL, BERNOULLI, PARETO, EXPONENTIAL, RAYLEIGH, WEIBULL, GAMMA, BETA, and TRIANGLE. |
| failure_dist_param_1 | double | Varies | Parameter 1 for the distribution selected in failure_dist. Specifies the following for the distributions listed: - UNIFORM - lower range of the uniform distribution - NORMAL - mean of the distribution - LOGNORMAL - geometric mean of the distribution - BERNOULLI - probability of the distribution - PARETO - minimum value of the distribution - EXPONENTIAL - coefficient of the distribution - RAYLEIGH - sigma of the distribution - WEIBULL - lambda of the distribution - GAMMA - alpha of the distribution - BETA - alpha of the distribution - TRIANGLE - a of the distribution |
| failure_dist_param_2 | double | Varies | Parameter 2 for the distribution selected in failure_dist. If a distribution is not listed below, it does not need the second parameter. Specifies the following for the distributions listed: - UNIFORM - upper range of the uniform distribution - NORMAL - standard deviation of the distribution - LOGNORMAL - geometric standard deviation of the distribution - PARETO - gamma scale of the distribution - EXPONENTIAL - k_scale of the distribution - WEIBULL - k of the distribution - GAMMA - beta of the distribution - BETA - beta of the distribution - TRIANGLE - b of the distribution |
| restoration_dist_param_1 | double | Varies | Parameter 1 for the distribution selected in restoration_dist. Specifies the following for the distributions listed: - UNIFORM - lower range of the uniform distribution - NORMAL - mean of the distribution - LOGNORMAL - geometric mean of the distribution - BERNOULLI - probability of the distribution - PARETO - minimum value of the distribution - EXPONENTIAL - coefficient of the distribution - RAYLEIGH - sigma of the distribution - WEIBULL - lambda of the distribution - GAMMA - alpha of the distribution - BETA - alpha of the distribution - TRIANGLE - a of the distribution |
| restoration_dist_param_2 | double | Varies | Parameter 2 for the distribution selected in restoration_dist. If a distribution is not listed below, it does not need the second parameter. Specifies the following for the distributions listed: - UNIFORM - upper range of the uniform distribution - NORMAL - standard deviation of the distribution - LOGNORMAL - geometric standard deviation of the distribution - PARETO - gamma scale of the distribution - EXPONENTIAL - k_scale of the distribution - WEIBULL - k of the distribution - GAMMA - beta of the distribution - BETA - beta of the distribution - TRIANGLE - b of the distribution |
| manual_outages | char1024 | N/A | Manual input describing which object to fault, when to fault it, and when to restore it. In the syntax above, nodeB,2000-01-01 5:00:00,2000-01-01 6:00:00 would fault the object nodeB from 5 AM on January 1, 2000 to 6 AM on January 2, 2000. All times must follow the yyyy-mm-dd HH:MM:SS format. The fault induced is determined by the fault_type field. target_group must be empty for this field and implementation type to be considered. Subsequent faults may be specified in the same format (name, time start, time end). |
| max_outage_length | double | seconds | Defines the maximum time an object is allowed be out of service after faulted/evented. Serves as an upper limit to the value produced by the restoration_dist function. This parameter is ignored when a fault is specifed by the manual_outages field. |
| max_simultaneous_faults | double | N/A | Defines the maximum number of faults a particular eventgen object can create at once. If more faults are requested by the fault_dist property, they will be ignored. This parameter is ignored when a fault is specified by the manual_outages field. |
| use_external_faults | bool | N/A | If set to true, expects externally-defined events to come through the external_fault_event field in the JSON syntax noted above. |
| external_fault_event | char1024 | N/A | Input field for externally-defined/populated events. Must be in the JSON format described in Eventgen external event mode |
Powerflow implementation
At this time, the reliability module only interfaces with the powerflow module. Faults can currently only be induced on link objects within the powerflow module. Faults available are:
- SLG-A, SLG-B, SLG-C, SLG-X -> single-line-ground A, B, C, or random
- DLG-AB, DLG-BC, DLG-CA, DLG-X -> double-line-ground AB, BC, CA, or random
- LL-AB, LL-BC, LL-CA, LL-X -> line-line AB, BC, CA, or random
- TLG -> triple-line-ground - ABC
- OC-A, OC1-A, OC-B, OC1-B, OC-C, OC1-C, OC-X, OC1-X -> single open conductor A, A, B, B, C, C, random, or random (OC and OC1 are the same)
- OC2-AB, OC2-BC, OC2-CA, OC2-X -> double open conductor AB, BC, CA, or random
- OC3 -> triple open circuit - ABC
The following fault types are valid events in reliability calls, but should not be explicitly induced. These events are induced by switch or fuse objects when specific actions occur. They may show up in the output log of powerflow reliability calls, but should not be explicitly specified as a fault.
- SW-A, SW-B, SW-C -> open switch phase A, B, or C
- SW-AB, SW-BC, SW-CA -> open switch phases AB, BC, or CA
- SW-ABC -> open switch phases ABC
- FUS-A, FUS-B, FUS-C, FUS-X -> fuse tripping (forced) A, B, C, or random
- FUS-AB, FUS-BC, FUS-CA, FUS-X -> fuse tripping (forced) AB, BC, CA, or random
- FUS-ABC -> fuse tripping (forced) - ABC
In order for GridLAB-D™ to effectively model the effects of distribution feeder reconfiguration, it is necessary to calculate the metrics of IEEE-1366. Distribution reconfiguration is designed to reconfigure the distribution system following a system fault in an attempt to minimize the impact on the end use customers. To properly model this in GridLAB-D™, it is necessary for the reliability module to interface with the power flow model in order to insert faults, call the restoration object, restore faulted sections, and to calculate the metrics of IEEE-1366 for the duration of the simulation period. This document outlines the requirements of the GridLAB-D™ reliability module, for use with power system analysis.
Power System Faults
-
All asymmetrical short-circuit faults such as Single-Line-Ground (L-G), Line-Line (L-L), Double-Line-Ground (L-L-G); symmetrical Three-Line-Ground (3-L-G) fault; one open conductor line faults, two open conductor line fault, three conductor open line faults will be enumerated in the reliability module.
-
The user will be able to manually enter the different types of fault and the time when the fault occurs during GridLAB-D™ simulations. The user should also be able to specify the types of distribution used for the calculation of MTTF (Mean Time To Failure) and MTTR (Mean Time To Repair)including but not limited to normal, exponential, log-normal, Weibull, Poisson , and Pareto distribution. The user should also be able to specify the unit of time to be used for the metrics calculation.
-
The reliability module will also have default sets of probabilistic values for every fault condition and will choose those values based on the MTTF (Mean Time To Failure) factor for every link object in the system.
-
The module will also have the capability so that the default values can be overwritten with user defined MTTF (Mean Time To Failure) by any object class.
-
Simultaneous line faults capability will be present inside the reliability module. All the customers affected will be treated equally.
GridLAB-D™ is not designed to perform detailed fault analysis. For the purpose of reconfiguration, when a fault occurs, the first upstream protective device (fuse, switch etc)is assumed to operate, islanding the downstream loads if the system is radial. No reclosing action will be incorporated in this module.
Requirements of the Reliability Module
The reliability module must be able to perform the following tasks:
-
Develop distribution curves for the Mean Time To Failure (MTTF) and Mean Time To Repair (MTTR) for every link object in the system. A module level as well as an object level specification with an ability to be overwritten by the user will be provided. The user should be able to specify the types of distribution he/she wants. All the distributions supported by GridLAB-D™ should be supported including but not limited to normal, exponential, log-normal, Poisson & Weibull distribution curves.
-
As an example, the data to obtain Mean Time To Failure (MTTF)calculated by Weibull Distribution is described below. Weibull distribution has become increasingly popular because the three parameters associated with it scale(alpha),shape(gamma)and location can be easily changed to obtain different characteristics. For this module gamma=1(exponential distribution).
\(\lambda = \frac{\gamma}{\alpha}(\frac{t}{\alpha})^{\gamma -1}\)
when, \(\gamma =1\),\(\alpha = \frac{1}{\lambda}\)
where,
\(\gamma\) = the Weibull slope(the shape parameter)
\(\alpha\) = the characteristic life/scale parameter
\(\lambda\) = Failure rate (Number of failures/user specified time)
- MTTR = time to diagnose a problem + time to get repair technician on-site + time to physically repair a system. As an example , Pareto distribution to obtain MTTR is described below.
\(C = \frac {1} {1-(n/m)^\alpha}\)
where
\(\alpha\) = shape parameter of the Pareto distribution
\(m\) = scale parameter of the Pareto distribution
\(n\) = truncation point of the Pareto distribution
\(C\) = Normalization factor
-
When any part of a link is determined to have failed, the reliability module must remove that part from service in the power flow module, and indicate to the powerflow module that the topology of the system has changed.
-
For each load the module must track the number of outages and duration of each outage.
-
At the end of the simulation the module must be able to calculate these relaibility indices : SAIFI, SAIDI, CAIDI, and ASAI for each feeder in the model, as well as each substation.
-
The output of the module will be a .csv file that indicates; the IEEE 1366 metrics for the substations and individual feeders and a list of outage events. It will also have the capability to generate output for the number of customers and different loads affected by the outage.
Reliability Metrics
The following reliability indices will be calculated in this reliability module:
- SAIFI = The system average interruption frequency index (SAIFI), shows how often the average customer experiences a sustained interruption over a period of time. In GridLAB-D™ that period of time is a year. The equation below is used to calculate SAIFI.
where,
\(N_i\) = Number of customers interrupted.
\(N_T\) = Total number of customers in the area of interest
- SAIDI = The system average interruption duration index(SAIDI), shows the average duration of a sustained interruption for a customer during the reporting period. In GridLAB-D™ this index is given in minutes. The equation below is used to calculate SAIDI.
where,
\(N_i\) = Number of customers interrupted.
\(N_T\) = Total number of customers in the area of interest
\(r_i\) = restoration time (unit specified by the user)
- CAIDI = The customer average interruption duration index (CAIDI), shows average time needed to restore service. This unit for the index will be user specified in GridLAB-D™. The equation below is used to calculate CAIDI.
- ASAI = The average service availability index (ASAI), shows the fraction of time that a customer has received power during the reporting period. This index is given as a percentage within GridLAB-D™. The equation below is used to calculate ASAI
where,
\(N_T\) = Total number of customers in the area of interest
Note
There is no specification between regular years and leap years when calculating this index in GridLAB-D™. The regular 8760 hours/year is used when calculated this index._
Data acquisition for metrics calculation
In order to calculate the reliability indices metrics various system data needs to be obtained.
-
Number of customer interruptions can be calulated at the meter level ( triplex meter for houses, meter for industrial loads ) by measuring the voltage or energy consumption at that node. If the measured voltage is zero, the customer lost its service and will go in the list of customer interruption.
-
Number of customers can be caluculated by the amount of triplex meters, meters present on the feeder.
Reliability Module Validation
Initial testing of the reliability module will be done on IEEE 13-node system for various relaibility indices check. It will be further expanded to evaluate the reliability module and feeder reconfiguration performance on two taxonomy feeders.
-
SAIFI, SAIDI, CAIDI, ASAI indices check
-
The IEEE 13-node system will be populated with majorly residential/commercial customers. One open conductor fault on the overhead line will be simulated. The mean time to restoration for one conductor of a line is considered and the SAIFI,SAIDI,CAIDI,ASAI indices are calculated. The tests can be repeated for two open conductor and three open conductor faults and L-G, L-L-G, L-L, 3-L-G faults.
-
The IEEE 13-node system will be populated with majorly residential/commercial customers. One open conductor fault on the underground line will be simulated. The mean time to restoration for one conductor of a line is considered and the SAIFI,SAIDI,CAIDI,ASAI indices are calculated. The tests can be repeated for two open conductor and three open conductor faults and L-G, L-L-G, L-L, 3-L-G faults.
Simultaneous faults
The reliability indices will be verified for simultaneous faults scenario. The IEEE 13-node system will be populated with residential/commercial loads. A line fault (one open conductor) and a three -phase-ground fault (3-L-G) will be applied on the feeder. The reliability indices SAIFI, SAIDI, CAIDI and ASAI will be calculated.
Related Concepts:
- Reliability
- Power Flow User Guide