## Reliability Index Beta

This notebook compute the reliability index, failure probability and influence factors in level II, using the package 'Reliability'Level2". In this package those variables are determined through the algorithm 'Normal Tail Approxima tion" as is explained in the book of Madsen et al.: Methods of Structural Safety, pp. 94 and following. The failure function of the limit state must be defined and, also, the independent basic variables given by a matrix with a row for each variable with the kind of distribution function assumed, the mean and the standard deviation. The following names of distribution functions are implemented: "normal" or "gauss", 'lognormal" or 'lognor", "gamma", "logistic", "uniform", "wribull", and "extremes" or "gumbel".

The iterations defined in the loop of the algorithm is stopped when the differences between two consecutive values i less than the error defined.

Needs["ReliabilityxLevel2^"]

Limit Statefunctio

Define the limit state function gAz_E :>

ZAA1EE IZAA2EE + ZAA3EEM + IZAA4EE . IIZAA2EE + ZAA3EEM® 12 + ZAA5EE + bMMM . zaa6ee izaa7ee , zaa8eem + L2 ® 8

Ramdomvariable

Define the variables matrix distribution function, mean and standard deviation m = {{"lognormal", 1,.1},

{"normal", 0.00082 ,0.00082*0.05}, {"lognormal", 560,560*0.054}, {"normal",0.22,0.01} , {"lognormal", 30,30*0.167}, {"lognormal", 1.2,.18}, {"normal", 0.007,0.007*.1},

Failprob [m,g]

Obtain the reliability index beta ; the failure probabilities; and the sensitivity factor for each variable beta > 3.8 00 04, Phil.betaM > 7.23367A 10 "5 I 5 iterationsM

alpha > 9.0.442388, . 0.22345 5, .0.230898, . 0.21680 7, .0.025858 5, 0.661535, 0.33499 6, 0.32174 7=

Attachment 8 - MATLAB package "Level2.m"

BeginPackage["Reliability'Level2'"]

Needs["Statistics' ContinuousDistributions'"]

Failprob::usage =

"Work out the Hassofer-Lind reliability index and the coefficients of sensitivity using the algorithm Norman Tail Approximation given in STRUCTURAL SAFETY by

Madsen et al., p94 . It admits a maximum of 10 variables "

Characterization::usage =

" Characterize the distribution functions given by a matrix "

Factores::usage =

" Gives the sensitivity factors"

Begin["'Private'"]

Off[Part::partw]

Module[

{ n=First[Dimensions[matrix]], znew=muiter=Transpose[matrix][[2]], sigmaiter=Transpose[matrix][[3]], distnor=NormalDistribution[0., 1.], error= 10.A(-3), (* error admited *)

Characterization[matrix]; (* Characterization of the variables *) Do[ (* iterative cycle *)

ziter=znew;

partic=Take[{z[[1]]->ziter[[1]],z[[2]]->ziter[[2]],z[[3]]->ziter[[3]], z[[4]]->ziter[[4]],z[[5]]->ziter[[5]],z[[6]]->ziter[[6]], z[[7]]->ziter[[7]],z[[8]]->ziter[[8]],z[[9]]->ziter[[9]], z[[10]]->ziter[[10]]},n];

aux = invnormal[CDF[dist[i],ziter[[i]]]]; sigmaiter[[i]] = PDF[distnor,aux]/PDF[dist[i], ziter[[i]] ]; muiter[[i]] = ziter[[i]] - aux sigmaiter[[i]],

Annex B -Elementary methods of structural reliability II {i,n}];

If[Abs[beta-betanterior] < error,Break[],betanterior=beta],

Print["beta = ",N[beta,5], Phi(-beta) = ",ScientificForm[prob]," ( \ ",ind," iterations)" ]; Print["alpha = ",N[alpha,3] ]

Factores:= Module[ { alpha, znew, muiter, sigmaiter}, Print["alpha = ",N[alpha,4]]; Print["znew = ",N[znew,4]]; x=(znew-muiter) 1 ./sigmaiter; Print["x = ",N[x,4]]

Characterization[matrix_]:= Module[ {w,par1,par2,a, n=First[Dimensions[matrix]]

If[matrix[[i,1]]==="normal"||matrix[[i,1]]==="gauss", par1=matrix[[i,2]]; par2=matrix[[i,3]]; dist[i]=NormalDistribution[par1,par2], If[matrix[[i,1]]==="lognormal"||matrix[[i,1]]==="lognor", w=(matrix[[i,2]]A2 + matrix[[i,3]]A2)/matrix[[i,2]]A2; par1=.5Log[matrix[[i,2]]A2/w]; par2=Sqrt[Log[w]]; dist[i]=LogNormalDistribution[par1,par2], If[matrix [ [i, 1 ]]===" gamma", par1=matrix[[i,2]]A2/matrix[[i,3]]A2; par2=matrix[[i,3]]A2/matrix[[i,2]]; dist[i]=GammaDistribution[par1,par2], If[matrix[[i,1]]=== "logistic", par1=matrix[[i,2]]; par2=matrix[[i,3]] Sqrt[3.]/Pi; dist[i]=LogisticDistribution[par1,par2],

If[matrix[[i,1]]==="uniform", par1=matrix[[i,2]]-Sqrt[3.] matrix[[i,3]] ; par2=matrix[[i,2]]+Sqrt[3.] matrix[[i,3]] ; dist[i]=UniformDistribution[par1,par2], If[matrix[[i,1]]==="weibull", par1=a /. FindRoot[ matrix[[i,2]]A2/ matrix[[i,3]]A2==

par2=matrix[[i,2]]/Gamma[1+1/par1]; dist[i]=WeibullDistribution[par1,par2], If[matrix[[i,1]] === "extremes" || matrix[[i,1]] ==="gumbel", par1 = matrix[[i,2]] - N[(Sqrt[6]*EulerGamma*matrix[[i,3]])/Pi];

par2 = N[matrix[[i,3]]*Sqrt[6]/Pi]; dist[i] = ExtremeValueDistribution[par1, par2], Print["Error: the distribution ", i ," (",matrix[[i,1]], ") is not defined. "]; Return[]]]]]]]],

EndPackage[]\.1a

Attachment 9 - MATHCAD sheet "FORM2.mcd"

MATHCAD sheet "FORM2.mcd", FORM for g(X)= R - E = 0 assuming general three parameter lognormal distribution LN(|,o,a) of E and R

1. Parameters for E and R: Highlighted regions |E := 50 wE := 0.2 aE := 1.14 oE := wE-|E

Default distribution of R- two parameter lognormal |R := 100 wR := 0.1 aR := 3-wR + wR3 oR := wR-|R

2. Parameter C and skewness a:

Distribution parameter C given by the skewness a: 'C(a) :='

Transformation of parameters^o,a) := -ln(|C(a)|) + ln(o) - (0.5)-ln(1 + C( a) s(a) := ■J ln(1 + C( a)

3. Probability density of E and R (for any a):

^E(x) := dlnorm[sign(aE)-(x- x0(|E,oE,aE)),m(oE,aE), s(aE)] if aE * 0

dnorm(x,|E,oE) if aE = 0 ^R(x) := dlnorm[sign(aR)-(x- x0(|R,oR,aR)),m(oR,aR), s(aR)] if aR * 0 dnorm(x, |R, oR) if aR = 0

4. Distribution function of E and R (for any a) :

O E(x) := 0.5-(1 - sign(aE)) + sign(aE) plnorm[sign(aE)-(x- x0(|E,oE,aE)),m(oE,aE), s(aE)] if aE * 0

pnorm(x, |E,oE) if aE = 0 O R(x) := 0.5(1 - sign(aR)) + sign(aR) plnorm[sign(aR)-(x- x0(|R,oR,aR)),m(oR,aR), s(aR)] if aR * 0 pnorm(x, |R, oR) if aR = 0

5. FORM iteration process: Guess values:xE := |E + 0.005(|R -|E) xR := xE Number of iterations n := 1.. 4

P n =

3.304

2.904

2.904

2.904

 pfn = 4.7710-4 1.84310-3 1.84410-3 1.844-10-3 -oRe Attachment 10 - MATHCAD sheet "FORM7.mcd"