ECLM¶
- class ECLM(totalImpactVector, integrationAlgo=None, nIntervals=8, verbose=False)¶
Provides a class for the Extended Common Load Model (ECLM).
- Parameters
- totalImpactVector
Indices
The total impact vector of the common cause failure (CCF) group.
- integrationAlgo
IntegrationAlgorithm
The integration algorithm used to compute the integrals.
- totalImpactVector
Notes
The Extended Common Load Model (ECLM) is detailed in Extended Common Load Model: a tool for dependent failure modelling in highly redundant structures, T. Mankamo, Report number: 2017:11, ISSN: 2000-0456, available at www.stralsakerhetsmyndigheten.se, 2017.
We consider a common cause failure (CCF) group of components supposed to be independent and identical.
We denote by the load and the resistance of the component of the CCF group. We assume that are independent and identically distributed according to .
We assume that the load is modelled as a mixture of two normal distributions:
the base part with mean and variance
the extreme load parts with mean and variance
the respective weights .
Then the density of is written as:
We assume that the resistance is modelled as a normal distribution with mean and variance . We denote by and its density and its cumulative density function.
We define the ECLM probabilities of a CCF group of size , for are the following:
: probability that a specific set of components fail.
: probability that a specific set of components fail while the other survive.
: probability that some set of components fail while the other survive.
: probability that at least some specific set of components fail.
Then the probabilities are defined as:
We get the , and and probabilities with the relations:
We use the following set of parameters called general parameter :
(4)¶
defined by:
Then the probabilities are written as:
(5)¶
We note that for , the integral can be computed explicitly:
(6)¶
The computation of the probabilities is done with a quadrature method provided at the creation of the class. We advice the
GaussLegendre
quadrature with 40 points (default algorithm) applied on the integration interval divided into sub-intervals. We advice to use (default value).The probabilistic model:
We denote by the random variable that counts the number of failure events in the CCF group under one test or demand. Then the range of is and its probability law is .
Under test or demands, we denote by the random variable that counts the number of times when failure events have occured, for each in . Then follows a Multinomial distribution parameterized by with:
The data:
The data is the total impact vector of the CCF group. The component for is the number of failure events of multiplicity in the CCF group. In addition, is the number of tests and demands on the whole group. Then we have .
Then is a realization of the random variable .
Data likelihood:
The log-likelihood of the model is defined by:
The optimal parameter maximises the log-likelihoodand is defined as:
(7)¶
Remark: As we have (2), then the log-likelihood can be written as:
Noting that the first term does not depend on the parameter , then we also have:
(8)¶
At last, we normalize the log-likelihood values and we consider the following optimisation problem:
(9)¶
Mankamo method:
Mankamo introduces a new set of parameters: defined from the general parameter (4) as follows:
(10)¶
Mankamo assumes that:
(11)¶
This assumption means that . Then equations (10) simplifies and we get:
(12)¶
We call Mankamo parameter the set:
(13)¶
The parameter is directly estimated from the total impact vector:
(14)¶
The parameters must verifiy the following constraints: :
Assuming that , we can write the parameters definition domain as:
Mankamo adds the following constraint:
(15)¶
which means that .
Then the optimal maximises the log-likelihood of the model and then the expression:
(16)¶
Methods
analyseDistECLMProbabilities
(fileNameSample, ...)Fits distribution on ECL probabilities sample.
analyseGraphsECLMParam
(fileNameSample)Produces graphs to analyse a sample of (Mankamo and general) parameters.
Produces graphs to analyse a sample of all the ECLM probabilities.
computeAnalyseKMaxSample
(p, fileNameInput, ...)Generates a sample and produces graphs to analyse it.
computeECLMProbabilitiesFromMankano
(...[, ...])Computes the sample of all the ECLM probabilities from a sample of Mankamo parameters using the Mankamo assumption.
computeGeneralParamFromMankamo
(mankamoParam)Computes the general parameter from the Mankamo parameter under the Mankamo assumption.
Computes the minimal multipicity of the common cause failure with a probability greater than a given threshold.
computePEG
(k)Computes the probability.
Computes all the probabilities for .
computePES
(k)Computes the probability.
Computes all the probabilities for .
computePSG
(k)Computes the probability.
Computes the probability.
Computes all the probabilities for .
computePTS
(k)Computes the probability.
Computes all the probabilities for .
Gives a point given and verifying the constraints.
Generates a Bootstrap sample of the (Mankamo and general) parameters under the Mankamo assumption.
estimateMaxLikelihoodFromMankamo
(startingPoint)Estimates the maximum likelihood (general and Mankamo) parameters under the Mankamo assumption.
Accessor to the general parameter.
Accessor to the integration algorithm.
Accessor to the Mankamo Parameter.
getN
()Accessor to the CCF group size .
getPt
()Accessor to the the probability .
Accessor to the total impact vector.
setGeneralParameter
(generalParameter)Accessor to the general parameter.
setIntegrationAlgo
(integrationAlgo)Accessor to the integration algorithm.
setMankamoParameter
(mankamoParameter)Accessor to the Mankamo parameter.
setTotalImpactVector
(totalImpactVector)Accessor to the total impact vector.
Verifies if the point verifies the constraints.
logVrais_Mankamo
- __init__(totalImpactVector, integrationAlgo=None, nIntervals=8, verbose=False)¶
- analyseDistECLMProbabilities(fileNameSample, kMax, confidenceLevel, factoryColl)¶
Fits distribution on ECL probabilities sample.
- Parameters
- fileNameSample: string
The csv file that stores the sample of all the ECLM probabilities.
- kMaxint,
The maximal multipicity of the common cause failure.
- confidenceLevelfloat,
The confidence level of each interval.
- factoryCollectionlist of
DistributionFactory
List of factories that will be used to fit a distribution to the sample.
- desc_list: :class:`~openturns.Description`
Description of each graph.
- Returns
Notes
The confidence intervals and the graphs illustrating the fitting are given according to the following order: . Each fitting is tested using the Lilliefors test. The result is printed and the best model among the list of factories is given. Care: it is not guaranted that the best model be accepted by the Lilliefors test.
- analyseGraphsECLMParam(fileNameSample)¶
Produces graphs to analyse a sample of (Mankamo and general) parameters.
- Parameters
- fileNameSample: string,
The csv file that stores the sample of .
- Returns
Notes
The marginal distributions are first estimated for the Mankamo parameter (13) then for the general parameter (4).
Each distribution is approximated with a Histogram and a normal kernel smoothing.
- analyseGraphsECLMProbabilities(fileNameSample, kMax)¶
Produces graphs to analyse a sample of all the ECLM probabilities.
- Parameters
- fileNameSample: string
The csv file that stores the ECLM probabilities.
- kMaxint,
The maximal multiplicity of the common cause failure.
- Returns
- graphPairs_listlist of
Graph
The Pairs graph of the ECLM probabilities.
- graphPEG_PES_PTS_listlist of
Graph
The Pairs graph of the probabilities for .
- graphMargPEG_listlist of
Graph
The list of the marginal pdf of the probabilities for .
- graphMargPSG_listlist of
Graph
The list of the marginal pdf of the probabilities for .
- graphMargPES_listlist of
Graph
The list of the marginal pdf of the probabilities for .
- graphMargPTS_listlist of
Graph
The list of the marginal pdf of the probabilities for .
- desc_list:
Description
Description of each graph.
- graphPairs_listlist of
Notes
Each distribution is approximated with a Histogram and a normal kernel smoothing.
- computeAnalyseKMaxSample(p, fileNameInput, fileNameRes, blockSize=256, parallel=True)¶
Generates a sample and produces graphs to analyse it.
- Parameters
- pfloat, :math:` 0 leq p leq 1`
The probability threshold.
- fileNameInput: string
The csv file that stores the sample of .
- fileNameRes: string
The csv file that stores the sample of defined by (17).
- blockSizeint
The block size after which the sample is saved. Default value is 256.
- parallelbool
True if the parallelisation is used. Default value is True.
- Returns
- kmax_graph
Graph
The empirical distribution of .
- kmax_graph
Notes
The function generates a script script_bootstrap_KMax.py that uses the parallelisation of the pool object of the multiprocessing module and a module job_bootstrap_KMax.py where the parallel job is defined. It also creates a file myECLMxxx.xml, where xxx is a large random integer, that stores the total impact vector to be read by the script. All these files are removed at the end of the execution of the method.
The computation is saved in the csv file named fileNameRes every blockSize calculus. The computation can be interrupted: it will be restarted from the last filenameRes saved.
The sample is stored in the same order as the parameters sample.
The empirical distribution is fitted on the sample. The confidence interval is given, computed from the empirical distribution.
- computeECLMProbabilitiesFromMankano(fileNameInput, fileNameRes, blockSize=256, parallel=True)¶
Computes the sample of all the ECLM probabilities from a sample of Mankamo parameters using the Mankamo assumption.
- Parameters
- fileNameInput: string
The csv file that stores the sample of .
- fileNameRes: string
The csv file that stores the ECLM probabilities.
- blockSizeint
The block size after which the sample is saved. Default value is 256.
- parallelbool
True if the parallelisation is used. Default value is True.
Notes
The ECLM probabilities are computed using the Mankamo assumption (11). They are returned according to the order using equations (5), (1), (2), (3), using the Mankamo assumption (11).
The function generates a script script_bootstrap_ECLMProbabilities.py that uses the parallelisation of the pool object of the multiprocessing module and a module job_bootstrap_ECLMProbabilities.py where the parallel job is defined. It also creates a file myECLMxxx.xml, where xxx is a large random integer, that stores the total impact vector to be read by the script. All these files are removed at the end of the execution of the method.
The computation is saved in the csv file named fileNameRes every blockSize calculus. The computation can be interrupted: it will be restarted from the last filenameRes saved.
The probabilities sample is stored in the same order as the parameters sample.
- computeGeneralParamFromMankamo(mankamoParam)¶
Computes the general parameter from the Mankamo parameter under the Mankamo assumption.
- Parameters
- mankamoParamlist of float
The Mankamo parameter (13).
- Returns
- generalParamlist of float
The general parameter (4).
Notes
The general parameter (4) is computed from the Mankamo parameter (13) under the Mankamo assumption (11) using equations (12).
- computeKMaxPTS(p)¶
Computes the minimal multipicity of the common cause failure with a probability greater than a given threshold.
- Parameters
- pfloat, :math:` 0 leq p leq 1`
The probability threshold.
- Returns
- kMaxint
The minimal multipicity of the common cause failure with a probability greater than .
Notes
The multiplicity is the minimal multipicity of the common cause failure such that the probability that at least failures occur is greater than . Then is defined by:
(17)¶
The probability is computed using (3).
- computePEG(k)¶
Computes the probability.
- Parameters
- kint,
Multiplicity of the common cause failure event.
- Returns
- peg_knfloat,
The probability.
Notes
The probability is computed using (5).
- computePEGall()¶
Computes all the probabilities for .
- Returns
- peg_listseq of float,
The probabilities for .
Notes
All the probabilities are computed using (5).
- computePES(k)¶
Computes the probability.
- Parameters
- kint,
Multiplicity of the failure event.
- Returns
- pes_knfloat,
The probability.
Notes
The probability is computed using (2).
- computePESall()¶
Computes all the probabilities for .
- Returns
- pes_listseq of float,
The probabilities for .
Notes
All the probabilities are computed using (2).
- computePSG(k)¶
Computes the probability.
- Parameters
- kint,
Multiplicity of the common cause failure event.
- Returns
- psg_knfloat,
The probability.
Notes
The probability is computed using (1) for and using (6) for .
- computePSG1()¶
Computes the probability.
- Returns
- psg_1nfloat,
The probability.
Notes
The - probability is computed using (6).
- computePSGall()¶
Computes all the probabilities for .
- Returns
- psg_listseq of float,
The probabilities for .
Notes
All the probabilities are computed using (1) for and (6) for .
- computePTS(k)¶
Computes the probability.
- Parameters
- kint,
Multiplicity of the common cause failure event.
- Returns
- pts_knfloat,
The probability.
Notes
The probability is computed using (3) where the probability is computed using (2).
- computePTSall()¶
Computes all the probabilities for .
- Returns
- pts_listseq of float,
The probabilities for .
Notes
All the probabilities are computed using (3).
- computeValidMankamoStartingPoint(Cx)¶
Gives a point given and verifying the constraints.
- Parameters
- Cxfloat,
The parameter .
- Returns
- validPoint
Point
A valid point verifying the constraints.
- validPoint
Notes
The constraints are defined in (15) under the Mankamo assumption (11). The parameter is computed from the total impact vector as (14). For a given , we give the range of possible values for and and we propose a valid point .
- estimateBootstrapParamSampleFromMankamo(Nbootstrap, startingPoint, fileNameRes, blockSize=256, parallel=True)¶
Generates a Bootstrap sample of the (Mankamo and general) parameters under the Mankamo assumption.
- Parameters
- Nbootstrapint
The size of the sample generated.
- startingPointlist of float
Mankamo starting point (13) for the optimization problem.
- fileNameRes: string
The csv file that stores the sample of under the Mankamo assumption (11).
- blockSizeint
The block size after which the sample is saved. Default value is 256.
- parallelbool
True if the parallelisation is used. Default value is True.
Notes
The Mankamo parameter sample is obtained by bootstraping the empirical law of the total impact vector times. The total empirical impact vector follows the distribution MultiNomial parameterized by the empirical probabilities where and is the number of tests and demands on the whole group. Then the optimisation problem (16) is solved using the specified starting point.
The function generates a script script_bootstrap_ParamFromMankamo.py that uses the parallelisation of the pool object of the multiprocessing module and a module job_bootstrap_ParamFromMankamo.py where the parallel job is defined. It also creates a file myECLMxxx.xml, where xxx is a large random integer, that stores the total impact vector to be read by the script. All these files are removed at the end of the execution of the method.
The computation is saved in the csv file named fileNameRes every blockSize calculus. The computation can be interrupted: it will be restarted from the last filenameRes saved.
- estimateMaxLikelihoodFromMankamo(startingPoint, visuLikelihood=False)¶
Estimates the maximum likelihood (general and Mankamo) parameters under the Mankamo assumption.
- Parameters
- startingPoint
Point
Starting point for the optimization problem.
- visuLikelihoodbool
Produces the graph of the log-likelihood function at the optimal point. Default value is False.
- startingPoint
- Returns
Notes
If the starting point is not valid, we computes a valid one witht the function computeValidMankamoStartingPoint at the point .
- getGeneralParameter()¶
Accessor to the general parameter.
- Returns
- generalParameterlist of foat
The general parameter defined in (4).
- getIntegrationAlgorithm()¶
Accessor to the integration algorithm.
- Returns
- integrationAlgo
IntegrationAlgorithm
The integration algorithm used to compute the integrals.
- integrationAlgo
- getMankamoParameter()¶
Accessor to the Mankamo Parameter.
- getN()¶
Accessor to the CCF group size .
- Returns
- nint
The CCF group size .
- getPt()¶
Accessor to the the probability .
- Returns
- Ptfloat,
The estimator of PT().
- getTotalImpactVector()¶
Accessor to the total impact vector.
- Returns
- totalImpactVector
Indices
The total impact vector of the CCF group.
- totalImpactVector
- setGeneralParameter(generalParameter)¶
Accessor to the general parameter.
- Parameters
- generalParameterlist of float
The general parameter (4).
- setIntegrationAlgo(integrationAlgo)¶
Accessor to the integration algorithm.
- Parameters
- integrationAlgo
IntegrationAlgorithm
The integration algorithm used to compute the integrals.
- integrationAlgo
- setMankamoParameter(mankamoParameter)¶
Accessor to the Mankamo parameter.
- Parameters
- mankamoParameterlist of float
The Mankamo parameter (13).
Notes
It automaticcally updates the general parameter.