Presentation

Case Study: Cantilever beam

Thyge Vinther Ludvigsen, s203591

6 May, 2026

Plan

Time Plan

Countinuous damage states

  • Make an funciton for given H1 what is the stiffness reduction factor for the damage state
  • Make an rugth function there links the stiffness reduction factor to probability of failure? for the structure
  • Use the 2 functions above to update the cost matrix for undetected damage
  • Upadate FEM model to an more realistic structure. (2D, more dof’s, elments, modes etc.)
  • Set up 2-3 cass whit realistic priors and cost matrix
    • read papers and method to set up the priors and cost matrix (Takes time)
  • Implement optimization algorithm’s to find the optimal decision cretiria for the optimal snosor placements
    • what is the given information ??
  • Ilustative Work on Fream work for testing assumptions? (cut be fun?)
    • Make an sugestion for an surgate model for error in OMA (Not computabol ???)
  • Thigtening up the othere work ?
  • Comparison with traditional methods
    • we do not have the samme ground truth to compare with ??? (Not that intresting)

Stiffness reduction

Stiffness reduction effect’s

Stiffness reduction factor: \[ E_{damaged} = (1 - d) E_{undamaged} \]

where:

  • \(E_{damaged}\) is the effective Young’s modulus of the damaged structure.
  • \(E_{undamaged}\) is the Young’s modulus of the undamaged structure.
  • \(d\) is the damage variable, which ranges from 0 (no damage) to 1 (complete failure).

Static loading

Lowering the stiffness leads to:

  • \(\uparrow \delta\) (higher displacements) and \(\uparrow \epsilon\) (higher strains) (SLS)
  • Redistribution of loads in indeterminate systems, to stiffer elements. (ULS)
  • \(\downarrow P_{cr}\) lower buckling capacity, do to lower stiffness in out of plane buckling. (ULS)

Dynamic loading

Lowering the stiffness leads to:

  • \(\downarrow \omega\) lower natural frequencies (Resonance effects)
  • Large amplitude of the vibrations for the same loading (conservation of energy in equation of motion)

Note

If the stiffness reduction is due to plastic deformations, then the ductility of the structure can be decreased for further loading. This has an effect on:

  • Earthquakes where there are large cyclic loading, where the structure rely on ductility to dissipate energy.

FEM model for evaluating the effect of stiffness reduction

Static loading:

  • Linear FEM model: to capture load redistribution in indeterminate systems. (if deformations are small)
  • Nonlinear FEM model: to capture geometric instability (buckling), and non linear effects (if the deformations are not small.)

Dynamic loading:

  • dynamic linear FEM model: to capture the effect of Modal parameters when the stiffness is reduced. (if deformations are small)
    • This is the case when we do OMA.
  • dynamic nonlinear FEM model: to capture nonlinear effects, and buckling (if deformations are not small)

Continuous Damage States

General idea

Probability of level of stiffness reduction: \[ P(\delta E \mid \theta) \]

where:

  • \(\delta E\) is the stiffness reduction factor

Probability of failure given damage state add stiffness reduction factor: \[ P(\text{failure} \mid \delta E, \theta) \]

Boundary conditions: stiffness reduction factor

No damage leads to no stiffness reduction: \[ P(\delta E > 0 \mid \theta = \text{No damage}) = 0, \quad P(\delta E = 0 \mid \theta = \text{No damage}) =1 \]

Probability mass for damage state: \[ P(\delta E > 0\mid \theta = \text{damage}) = \int_0^1 P(\delta E \mid \theta = \text{damage}) d\delta E = 1 \]

Probability of level of stiffness reduction

\[ P(\delta E \mid \theta) \]

This is an function where we have no good way to estimate it, but we can make some assumptions about the shape of the function.

Assumptions:

  1. The probability of stiffness reduction of close to 100% is very low?
  2. The probability of stiffness reduction of close to 0% is low?
    • Argument 1: There is no value of upserving small martrial degradations, even if they are present, they are only valuable if they leed to faster degradations there will have an effect on the probability of failure.
    • Argument 2: the prior are constructed on the basis of \(H_1\) being that the structure is damaged, (If damage is defined as an stiffness change there leads to a significant change of probability of failure. )

Probability of failure given stiffness reduction

\[ P(\text{failure} \mid \delta E, \theta) = P(g(X) < 0 \mid \delta E, \theta) \]

variables: \[ X = \{\delta E, \theta, F, f_y, \epsilon_{ult}, ...\} \]

  • \(\delta E\) is the stiffness reduction factor
  • \(\theta\) is the damage state vector
  • \(F\) is the applied load
  • \(f_y\) is the yield strength of the steel
  • \(\epsilon_{ult}\) is the ultimate strain capacity of forexample the concrete

Note

  • \(\delta E\) is not an stochastic variable
  • \(\theta\) is not an stochastic variable
  • all the other variables are stochastic variables.

limit state function: \[ g(X)=R(X)−S(X) \]

where:

  • \(R(X)\) is the resistance / the capacity of the structure.
  • \(S(X)\) is the load effect / the response of the structure to the applied load
  • Failure occurs when \(g(X) < 0\)

Clarification

This is a note that will appear as a colored box in your PDF.

Limit state function

My expectations of the probability of failure

Relationship between stiffness reduction and probability of failure:

  • \(\downarrow \delta E \rightarrow \downarrow P_{cr}\): Liniar relationship in Static loading whit no redistribution of loads (\(P_{cr} \propto E I\))
    • Eurlerar buckling formula: \(P_{cr} = \frac{\pi^2 E I_z}{(K L)^2}\)
      • \(K\) is the effective length factor

Probability functions

I am intrested in probability distributions in the interval [0,1].

Beta PDF: \[ f(x; \alpha, \beta) = \frac{x^{\alpha-1} (1-x)^{\beta-1}}{B(\alpha, \beta)} \]

where:

  • \(\beta\) is the beta function, defined as \(B(\alpha, \beta) = \frac{\Gamma(\alpha) \Gamma(\beta)}{\Gamma(\alpha + \beta)}\)
  • \(\Gamma\) is the gamma function.

Stiffness reduction probability distribution:

  • \(a = 4\) and \(b= 4\) (symmetric, mean = 0.5, low probability at tails)
  • \(a = 4\) and \(b= 10\) (mean < 0.5, low probability at tails)

Problem whit continuous damage states

Problem 1

Eigen value problem: \[ (K(\theta, \delta E) - \omega^2 M) \phi = 0 \]

  • \(\omega\) is the natural frequency, eigen values
  • \(\phi\) is the mode shape, eigen vectors
  • \(K\) is the stiffness matrix
    • the static loading is also included in the stiffness matrix ???
  • \(M\) is the mass matrix

For the cantilever beam dos \(10^4\) evaluations of the eigen value problem take 32s on my PC.

Problem:

  • It is some what expensive to evalueta the omega and phi for each evaluation

Solution 1:

  • Build an surrogate model of the modal prameters given the siffness reduction factor, and the damage state.
    • Problem 1: the cost of building the surrogate model, increases fast whit the number of posibole damage states \(\theta\).
    • Problem 2: For my structure is the relationship cose to linear, but i think that for more complex structures is the relationship not always close to linear.
    • Problem 3: changing of the order of modes and mode shapes, when the stiffness is reduced, can lead to problems with the surrogate model.

Solution 2:

  • Use the Build FEM model maby it is fast enough

Sulution 3:

  • Extract stiffness and mass matrices form the model and try to build an faster solver?
import math as math
n = 10**3 # number of elements
k = 3 # size of combinations 

math.factorial(n) / (math.factorial(k) * math.factorial(n-k))
166167000.0

Example for understanding

  • \(\omega_1\) for the first axis
  • \(\omega_2\) for the second axis

Stochastic modal parameters:

\[ (\bar{\boldsymbol\omega}, \bar{\boldsymbol\phi}) \sim p(\boldsymbol\omega, \boldsymbol\phi \mid \theta) \]

\[ (\bar{\boldsymbol\omega}, \bar{\boldsymbol\phi}) \sim g(\theta, e) + \epsilon(\theta, e) \]

Where:

  • \(g(\theta, e)\) is the deterministic part of the model, which depends on the structural state \(\theta\) and the sensor configuration \(e\).
  • \(\epsilon(\theta, e) = \epsilon_0(\cdot) + ... + \epsilon_n(\cdot)\)

Likelihood for the Level 1 SHM system:

\[ f(y \mid H_i)= \sum_{\theta \in H_i} \int f(y, \theta, \delta E \mid H_i) d\delta E =\sum_{\theta \in H_i} \int f(y \mid \theta, \delta E) P(\theta \mid H_i) f(\delta E|\theta) \, d\delta E \]

Posterior distribution (level 1 SHM system):

\[ P(H_i \mid y) = \frac{f(y \mid H_i) P(H_i)}{f(y)} \]

Joint distribution of \(\omega_1\) and \(\delta E\) given the damage state \(\theta\):

\[ f_{\omega_1}(\omega_1, \delta E|\theta) = f_{\omega_1}(\omega_1 \mid \theta, \delta E)f_{\delta E}(\delta E|\theta) \]

Marginal distribution of \(\omega_1\) given the damage state \(\theta\): \[ f_{\omega_1}(\omega_1 \mid \theta) = \int f_{\omega_1}(\omega_1 \mid \theta, \delta E)f_{\delta E}(\delta E|\theta) d\delta E \]

Note for plot

  • this is only an ilustration of one damage state \(\theta = 3\).

Nice Book

Structural Reliability Analysis and Prediction

Questions ?

Work plan

  • Am i missing something important in the work plan ?
  • Is it oaky that i dont do comparison with traditional methods ? (it is form the procject plan)

Other

  • good ideas for building an surrogate model for the mapping \(\Delta E\) to the modal parameters ?
  • good ideas for seting up the ralationship between the stiffness reduction factor and the probability of failure ?
  • what do you think about the stiffness reduction function?

Note:

  • can you send the bridge model so i can see it?

Idear’s

Train the covariance matrix on the modal data, so i don’t need to know the parameters for the covariance matrix in the OMA error function?

case study Overview

Chosen Features

Modal properties:

  • x first natural frequencies
  • x first mode shapes

Features:

  • natural frequencies
  • Total Modal Assurance Criterion (TMAC)
    • \(MAC(\phi_a,\phi_b)=\frac{|\phi_a^T\phi_b|^2}{(\phi_a^T\phi_a)(\phi_b^T\phi_b)}\)
    • with no damage as reference \(H_0\)
  • Modal Flexibility
    • \(F = \sum_{i=1}^{n} \frac{\phi_i \phi_i^T}{\omega_i^2}\)

Evaluation of the Bayes risk

Numarical integration:

  • MCS with importance sampling

Decision rules:

  • Explicit likelihood for Modal properties (no use of features)
    • Maximum a posteriori (MAP) decision rule \(\delta(y) = \arg\max_{a} p(H \mid y)\)
  • Supervised Machine learning (ML) classification based on the features (no use of likelihood)
    • Logistic regression

Prior distibution

H_1 = 0.01
H_0 = 1-H_1

# uninformed prior
N_prior = 2**4
prior_H = np.array([H_0, H_1])
prior_theta = np.concatenate(([H_0], np.repeat(H_1 / (N_prior - 1), N_prior - 1)))

print(f"Prior probabilities for H: {prior_H}")
print(f"\nPrior probabilities for θ: {np.round(prior_theta, 4)}")
Prior probabilities for H: [0.99 0.01]

Prior probabilities for θ: [9.9e-01 7.0e-04 7.0e-04 7.0e-04 7.0e-04 7.0e-04 7.0e-04 7.0e-04 7.0e-04
 7.0e-04 7.0e-04 7.0e-04 7.0e-04 7.0e-04 7.0e-04 7.0e-04]

Cost function

\[ C_\text{total} = C_\text{prediction}(H, d) + C_\text{sensors}(e) \]

\[ C_\text{sensors}(e) = 5 + 1 \cdot \text{number of sensors} \]

\[ C_\text{prediction} = \begin{bmatrix} 0 & 50 \\ 10000 & 10 \end{bmatrix} = \begin{bmatrix} \text{True Negative} & \text{False Positive} \\ \text{False Negative} & \text{True Positive} \end{bmatrix} \]

where:

  • Positive: is the prediction of damage.
  • Negative: is the prediction of no damage.
  • True Positive (TP): Correctly predicting damage when it is present.
  • False Positive (FP): Incorrectly predicting damage when it is not present.
  • True Negative (TN): Correctly predicting no damage when it is not present.
  • False Negative (FN): Incorrectly predicting no damage when there is actually damage.
# C [H, d] = the prediction cost
prediction_cost = np.array([[0,   50],  # TN, FP
                            [10000, 100]   # FN, TP
                            ])  

H = 1; d = 1 
print(f"Prediction cost: {prediction_cost[H, d]}, which is the cost of predicting {d} when the true state is {H}.")

def sensor_cost(n_sensors):
    return 5 + 1 * n_sensors
Prediction cost: 100, which is the cost of predicting 1 when the true state is 1.

FEM model

Geometry

Mode Shapes

Damaged scenarios

Damage scenarios: 
[(0, 0, 0, 0), (0, 0, 0, 1), (0, 0, 1, 0), (0, 0, 1, 1), (0, 1, 0, 0), (0, 1, 0, 1), (0, 1, 1, 0), (0, 1, 1, 1), (1, 0, 0, 0), (1, 0, 0, 1), (1, 0, 1, 0), (1, 0, 1, 1), (1, 1, 0, 0), (1, 1, 0, 1), (1, 1, 1, 0), (1, 1, 1, 1)]
size of theta: 16
Plot of case: (1, 1, 1, 1): 

Sensor configurations

# nodes  
e_sensor = np.arange(len(X))

# list of fixed nodes
fixed_nodes = [bounds[i][0] for i in range(len(bounds))]

# remove fixed nodes
e_sensor = e_sensor[~np.isin(e_sensor, fixed_nodes)] # ~ is the logical NOT operator, which inverts the boolean array returned by np.isin
print(f"Sensor nodes: {e_sensor}")

# make an list whit all possible combinations of sensor placements
import itertools # generate the solution space of all possible combinations.
# e_configuration = list(itertools.combinations(e_sensor.tolist(), 3))
e_configuration =  np.array(list(itertools.product([0, 1], repeat=len(e_sensor)))) # all combinations of 0 and 1 for each sensor node
e_configuration = e_configuration 
print(f"Number of sensor configurations: {len(e_configuration)}")
for i in range(len(e_configuration)):
    print(f"Configuration {i} given in nodes with sensors: {e_configuration[i]}")
Sensor nodes: [1 2 3 4]
Number of sensor configurations: 16
Configuration 0 given in nodes with sensors: [0 0 0 0]
Configuration 1 given in nodes with sensors: [0 0 0 1]
Configuration 2 given in nodes with sensors: [0 0 1 0]
Configuration 3 given in nodes with sensors: [0 0 1 1]
Configuration 4 given in nodes with sensors: [0 1 0 0]
Configuration 5 given in nodes with sensors: [0 1 0 1]
Configuration 6 given in nodes with sensors: [0 1 1 0]
Configuration 7 given in nodes with sensors: [0 1 1 1]
Configuration 8 given in nodes with sensors: [1 0 0 0]
Configuration 9 given in nodes with sensors: [1 0 0 1]
Configuration 10 given in nodes with sensors: [1 0 1 0]
Configuration 11 given in nodes with sensors: [1 0 1 1]
Configuration 12 given in nodes with sensors: [1 1 0 0]
Configuration 13 given in nodes with sensors: [1 1 0 1]
Configuration 14 given in nodes with sensors: [1 1 1 0]
Configuration 15 given in nodes with sensors: [1 1 1 1]

Covariance matrix

Covariance matrix:
 [1.000e-02 5.500e-01 3.200e+00 2.842e+01 1.100e-01 1.100e-01 1.900e-01
 1.900e-01 1.400e-01 1.400e-01 3.900e-01 3.900e-01]
Sensor configuration: [0 0 1 1]

Covariance matrix:
 [0.01 0.22 1.61 4.98 0.1  0.1  0.1  0.1  0.08 0.08 0.08 0.08 0.07 0.07
 0.07 0.07 0.07 0.07 0.07 0.07]
Sensor configuration: [1 1 1 1]

Analysis 1

  • Evaluation method: Monte Carlo simulation with importance sampling
  • likelihood: Explicit likelihood for Modal properties (no use of features)
  • Decision rule: Maximum a posteriori (MAP) decision rule \(d(y) = \arg\max_{H} p(H \mid y)\)

New stuff:

  • Continuous damage reduction factor: \(\delta E\)
    • \(P(\delta E \mid \theta)\): Probability of level of stiffness reduction
  • \(P(\text{failure} \mid \delta E, \theta)\): Probability of failure given stiffness reduction and damage state
  • Updated cost function: Expected cost given damage

Questions ?

Whats next?

Test

Likelihood evaluation P(y | theta)

Main approaches to build the full distribution

Method One-time cost Reusable Accuracy
Monte Carlo per y cheap high
Quadrature medium high
Sampling + KDE expensive high
Gaussian mixture expensive very high

Grid evaluation (slow to build, but fast to evaluate)

✅ Pros:

  • simple
  • robust

❌ Cons:

  • expensive to build
  • resolution limited

Build density from y samples? (fast to build, but slow to evaluate)

  • generate y samples
  • build density from the samples (e.g., kernel density estimation, histogram, etc.)

✅ Pros:

  • very flexible
  • works perfectly with black-box g
  • reusable

❌ Cons:

  • KDE smoothing error

Mixture approximation (simple and precise, but slow to evaluate)

Note

  • This is what i have done with MC sampling earlier

Surrogate model of g(x)

  1. Approximate g(x) with a smooth model
  2. Use fast integration afterward