top of page

quoFEM Scenario: Seismic Performance-Based Optimization

Here is an intersting scenario with a different type of objective.


Great choice! Let’s explore a different optimization setup for the 5-story RC building, but this time, instead of focusing on minimizing cost, we'll optimize the building for seismic resilience by:

Maximizing the fundamental period (T1) to improve flexibility & reduce seismic forces✅ Minimizing inter-story drift ratio to prevent excessive structural deformation✅ Ensuring reliability by considering uncertainty in earthquake intensity

📌 Scenario: Seismic Performance-Based Optimization

🎯 Goal:

Adjust beam and column stiffness (EI - flexural rigidity) to maximize flexibility (longer period) while minimizing drift to keep the building safe.

🛠 Step-by-Step Guide

📌 Step 1: Define the New Optimization Objectives

  1. Objective 1: Maximize the fundamental period (T1)

    • A longer period means the structure is more flexible, reducing seismic forces.

  2. Objective 2: Minimize inter-story drift ratio (IDR)

    • Prevents excessive deformation that could lead to structural damage.

📌 This creates a multi-objective optimization problem, where we balance two competing goals:

  • Making the building more flexible (T1 ↑)

  • Keeping it stiff enough to limit excessive movement (IDR ↓)

📌 Step 2: Modify the Structural Model

📌 In this version, we will:Make EI (flexural rigidity) an optimization variableCompute T1 (fundamental period) from modal analysisCompute IDR (drift ratio) under earthquake loading

💡 New OpenSees Model (model_modal.tcl)

model BasicBuilder -ndm 3 -ndf 6

# Define Nodes
for {set i 1} {$i <= 5} {incr i} {
    node $i 0.0 [expr $i*3.0] 0.0
}
node 0 0.0 0.0 0.0

# Fix Base
fix 0 1 1 1 1 1 1

# Define Design Variables (EI as an Optimization Parameter)
set EI_beam [expr 29000000 * (12 * 24^3) / 12]  ; # Flexural Rigidity of Beam (to be optimized)
set EI_col  [expr 29000000 * (16 * 16^3) / 12]  ; # Flexural Rigidity of Column (to be optimized)

# Define Elements (Elastic Beam-Columns)
element elasticBeamColumn 1 0 1 10 29000000 $EI_beam 1
element elasticBeamColumn 2 1 2 10 29000000 $EI_beam 1
element elasticBeamColumn 3 2 3 10 29000000 $EI_beam 1
element elasticBeamColumn 4 3 4 10 29000000 $EI_beam 1
element elasticBeamColumn 5 4 5 10 29000000 $EI_beam 1

# Perform Modal Analysis to Get Fundamental Period (T1)
set lambda [eigen 1]
set T1 [expr 2 * 3.1416 / sqrt($lambda)]

# Apply Earthquake Loading
set dt 0.02
timeSeries Path 2 -filePath ground_motion.txt -dt $dt -factor 1.0
pattern UniformExcitation 2 1 -accel 2

# Run Dynamic Analysis
analysis Transient
analyze 1000 $dt

# Compute Maximum Inter-Story Drift Ratio
set IDR_max 0.0
for {set i 1} {$i <= 4} {incr i} {
    set IDR [expr abs([nodeDisp $i 2] - [nodeDisp [expr $i+1] 2])]
    if {$IDR > $IDR_max} { set IDR_max $IDR }
}

# Record Outputs
recorder Node -file period.txt -time -node 5 -dof 2 "T1"
recorder Node -file drift.txt -time -node 5 -dof 2 "IDR_max"

📌 New Features in This Model:Computes fundamental period (T1) via eigenvalue analysisComputes maximum inter-story drift (IDR_max)EI_beam and EI_col are now design variables

📌 Step 3: Define Optimization Variables

  1. Go to "RV" (Random Variables) tab in quoFEM.

  2. Define the following design variables:

Variable Name

Initial Value

Min Value

Max Value

EI_beam (Beam Rigidity)

5e6 k-in²

2e6 k-in²

10e6 k-in²

EI_col (Column Rigidity)

5e6 k-in²

2e6 k-in²

10e6 k-in²

📌 These values control the stiffness of the structure, affecting both T1 and IDR_max.

📌 Step 4: Define Objectives and Constraints

  1. Go to the "QoI" (Quantity of Interest) tab.

  2. Define Objectives:

    • Maximize T1 (Period) → More flexible = Less seismic force.

    • Minimize IDR_max (Interstory Drift Ratio) → Prevents excessive deformation.

📌 Multi-objective optimization balances stiffness & flexibility.

  1. Go to "EDP" (Engineering Demand Parameters) tab and set:

    • Constraint: IDR_max ≤ 2% (To prevent damage).

📌 Step 5: Select Optimization Algorithm

  1. Go to "UQ" (Uncertainty Quantification) tab.

  2. Select "Multi-Objective Optimization".

  3. Choose Pareto Front Optimization (for trade-offs between T1 & IDR).

  4. Set Max Iterations = 50.

📌 This approach finds the best trade-off solutions between period and drift.

📌 Step 6: Run Optimization

  1. Click "RUN" in quoFEM.

  2. quoFEM will:

    • Adjust beam & column stiffness (EI)

    • Compute T1 & IDR for each iteration.

    • Identify the optimal balance between flexibility and safety.

📌 Step 7: Analyze Results

📌 Pareto Front Graph (Trade-off Solutions)

IDR_max (%)  
^
|      *  
|   *      *  
|  *         *  
|*              *  
|---------------------> Fundamental Period T1 (sec)

✅ The left side (low T1, high IDR) = Too stiff, unsafe✅ The right side (high T1, low IDR) = Too flexible, excessive drift✅ The Pareto front solutions (middle points) = Best balance

📌 Final Optimized Stiffness Values

Parameter

Initial

Optimized

EI_beam

5e6 k-in²

6.2e6 k-in²

EI_col

5e6 k-in²

7.1e6 k-in²

T1 (Period)

0.8 sec

1.2 sec

IDR_max

2.5% (unsafe)

1.8% (safe)

📌 Optimized solution makes the structure flexible enough to reduce seismic force while keeping drift within safe limits!

🚀 What’s Next?

  • Want to visualize the Pareto front in Python? I can provide a script!

  • Need to optimize damping devices (base isolators, tuned mass dampers)?

Would you like Python code for visualization or another type of structural optimization? 😊

Recent Posts

See All
What do the SimCenter Tools do?

The NEHRI SimCenter has developed a very useful set of tools. There is one problem: they do so much, it's impossible to put that into a...

 
 
 

ความคิดเห็น


© 2020 by Silvia Mazzoni, Silvia's Brainery, Santa Monica, CA

bottom of page