Reliability Problems

Defining Reliability Problems

In general, 3 main "items" are always need to fully define a reliability problem and successfully solve it to find the associated probability of failure $P_{f}$ and reliability index $\beta$:

ItemDescription
$\vec{X}$Random vector with correlated non-normal marginals
$\rho^{X}$Correlation matrix
$g(\vec{X})$Limit state function

Fortuna.jl package uses these 3 "items" to fully define reliability problems using a custom ReliabilityProblem() type as shown in the example below.

# Define random vector:
X₁  = randomvariable("Normal", "M", [10, 2])
X₂  = randomvariable("Normal", "M", [20, 5])
X   = [X₁, X₂]

# Define correlation matrix:
ρˣ = [1 0.5; 0.5 1]

# Define limit state function:
g(x::Vector) = x[1] ^ 2 - 2 * x[2]

# Define reliability problem:
Problem = ReliabilityProblem(X, ρˣ, g)
Note

The definition of the limit state function $g(\vec{X})$ in Fortuna.jl package only pertains to its form (e.g., whether it is linear, square, exponential, etc. in each variable). The information about the random variables involved in the reliability problem is carried in the random vector $\vec{X}$ and its correlation matrix $\rho^{X}$, that you use when defining a reliability problem using a custom ReliabilityProblem() type.

Solving Reliability Problems

After defining the reliability problem, Fortuna.jl allows to easily solve it using a whole suite of First- and Second-Order Reliability Methods through a single solve() function as shown in the example below.

# Perform reliability analysis using improved Hasofer-Lind-Rackwitz-Fiessler (iHLRF) method:
Solution = solve(Problem, FORM(iHLRF()))
println("PoF    = $(Solution.PoF)")
println("β      = $(Solution.β)")
PoF    = 0.017500805228824537
β      = 2.1083397672223776

Descriptions of all First- and Second-Order Reliability Methods implemented in Fortuna.jl can be found on First-Order Reliability Methods and Second-Order Reliability Methods pages.

API

Fortuna.ReliabilityProblemType
ReliabilityProblem <: AbstractReliabilityProblem

Type used to define reliability problems.

  • X::AbstractVector{<:Distributions.UnivariateDistribution}: Random vector $\vec{X}$

  • ρˣ::AbstractMatrix{<:Real}: Correlation matrix $\rho^{X}$

  • g::Function: Limit state function $g(\vec{X})$