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.

\[SAIFI = \frac{\sum N_i}{N_T}\]

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.

\[SAIDI = \frac{\sum r_i N_i}{N_T}\]

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.

\[CAIDI = \frac{SAIDI}{SAIFI}\]

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.

\[CTAIDI = \frac{\sum r_i N_i}{CN}\]

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.

\[CAIFI = \frac{\sum N_i}{CN}\]

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

\[ASAI = \frac{N_T * (Number of hours / year) - \sum r_i N_i}{N_T * (Number of hours / year)}\]

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.

\[CEMI_n = \frac{\sum CN_{(k>n)}}{N_T}\]

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.

\[ASIFI = \frac{\sum L_i}{L_T}\]

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.

\[ASIFI = \frac{\sum r_i L_i}{L_T}\]

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 = \frac{\sum IM_i N_{mi}}{N_T}\]

\(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.

\[MAIFI_E = \frac{\sum IM_E N_{mi}}{N_T}\]

\(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.

\[CEMSMI_n = \frac{\sum CNT_{(k>n)}}{N_T}\]

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).

\[PDF : f(t) = (\gamma/t)(t/\alpha)^\gamma e^{-(t/\alpha)^\gamma}\]

\(\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.
\[PDF: f(t) = \frac{C \alpha m^ \alpha}{t^ \alpha+1}, m<=t<=n\]

\(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.
\[SAIFI = \frac{\sum N_i}{N_T}\]

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.
\[SAIDI = \frac{\sum r_i N_i}{N_T}\]

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.
\[CAIDI = \frac{SAIDI}{SAIFI}\]
  • 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
\[ASAI = \frac{N_T * (Number of hours / year) - \sum r_i N_i}{N_T * (Number of hours / year)}\]

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