| Case | Connection / Scenario | CSII Accuracy | Crack Rate Error | Fatigue MAE | β Accuracy | Status |
|---|---|---|---|---|---|---|
| V1 | Welded T-joint — variable amplitude traffic spectrum | ±2.9% | 4.1% | 3.3% | ±4.7% | ✅ PASS |
| V2 | Railway bridge SHM — crack initiation & propagation detected | ±3.1% | 3.8% | 2.9% | ±3.2% | ✅ PASS |
| V3 | Bolted splice — progressive bolt preload loss | ±2.8% | 4.4% | 3.7% | ±5.1% | ✅ PASS |
| MEAN | — | ±2.93% | 4.1% | 3.3% | ±4.3% | 🏆 CERTIFIED |
CSII certification threshold = 0.90 · β target = 3.8 · Damage limit D_allowable = 0.80 · S_deg warning = 0.10
pip install frame-link-engine
from frame_link import FrameLinkAssessor # Initialize with connection configuration assessor = FrameLinkAssessor( connection_config="configs/welded_T_joint.yaml", sensor_stream="live" ) result = assessor.evaluate() print(result.csii) # CSII ∈ [0,1] print(result.signal) # STEADY_ELASTIC | ANOMALY_L1 | DEGRADATION_L2 | CRITICAL print(result.beta) # Cornell reliability index β print(result.d_joint) # Palmgren–Miner damage D_joint print(result.s_deg) # Stiffness degradation index S_deg,joint print(result.crack_depth) # Current estimated crack depth a (mm) print(result.da_dn) # Paris law crack propagation rate da/dN
from frame_link.fatigue import RainflowCounter, PalmgrenMiner from frame_link.fatigue.sn_curves import SNcurve import numpy as np # Load strain time series from IIW hot-spot gauge strain_ts = np.loadtxt("sensors/weld_toe_strain.csv") # ASTM E1049-85 rainflow cycle counting counter = RainflowCounter() cycles = counter.count(strain_ts) # Eurocode 3 FAT71 S-N curve + Goodman mean stress correction sn = SNcurve(fat_class=71, m=3, code="EC3") miner = PalmgrenMiner(sn_curve=sn, goodman_correction=True) D = miner.accumulate(cycles) print(f"Fatigue damage: {D:.4f} (warning: 0.80, failure: 1.00)")
from frame_link.fracture import ParisErdogan, WheelerRetardation from frame_link.fracture import StressIntensityFactor # Define weld toe geometry and material constants sif = StressIntensityFactor(Y=1.12, geometry="weld_toe") paris = ParisErdogan(C=3e-13, m=3.0) wheeler = WheelerRetardation(p=2.0) # Integrate crack growth to fracture toughness limit result = paris.integrate( a_0=0.001, # Initial crack depth 1 mm a_cr=0.025, # Critical crack depth (K_Ic limit) delta_sigma=85.0, # MPa stress range sif=sif, retardation=wheeler ) print(f"Remaining cycles: {result.N_remaining:,.0f}") print(f"Remaining life: {result.life_hours:.1f} h")
# Launch real-time Streamlit CSII governance dashboard $ streamlit run examples/streamlit_dashboard.py # Dashboard at: http://localhost:8501 # Panels: CSII gauge · Paris crack growth · Fatigue damage map · β reliability · 48h forecast # Or open web dashboard: # https://frame-link.netlify.app/dashboard
git clone https://github.com/gitdeeper12/FRAME-LINK.gitgit clone https://gitlab.com/gitdeeper12/FRAME-LINK.gitgit clone https://bitbucket.org/gitdeeper-12/FRAME-LINK.gitgit clone https://codeberg.org/gitdeeper12/FRAME-LINK.git@software{baladi2026framelink_pypi,
author = {Baladi, Samir},
title = {{FRAME-LINK}: Fatigue Reliability Assessment and Monitoring
Extension for Structural Connection Integrity under
Cyclic and Dynamic Loading},
year = {2026},
version = {1.0.0},
publisher = {Python Package Index},
url = {https://pypi.org/project/frame-link-engine},
note = {Python package, MIT License, Series CONN-SAFETY-01}
}
@dataset{baladi2026framelink_zenodo,
author = {Baladi, Samir},
title = {{FRAME-LINK}: Fatigue Reliability Assessment and Monitoring
Extension for Structural Connection Integrity under
Cyclic and Dynamic Loading —
Research Paper and Simulation Data},
year = {2026},
publisher = {Zenodo},
version = {1.0.0},
doi = {10.5281/zenodo.20440786},
url = {https://doi.org/10.5281/zenodo.20440786},
note = {Structural Connection Integrity · CONN-SAFETY-01}
}
@misc{baladi2026framelink_osf,
author = {Baladi, Samir},
title = {{FRAME-LINK} Framework: Pre-registered Study Protocol for
Fatigue Reliability Assessment and Monitoring of Structural
Connection Integrity under Cyclic and Dynamic Loading},
year = {2026},
publisher = {Open Science Framework},
doi = {10.17605/OSF.IO/BP27A},
url = {https://doi.org/10.17605/OSF.IO/BP27A},
note = {OSF Preregistration}
}
Baladi, S. (2026). FRAME-LINK: Fatigue Reliability Assessment and Monitoring Extension for Structural Connection Integrity under Cyclic and Dynamic Loading (Version 1.0.0, Series CONN-SAFETY-01). Zenodo. https://doi.org/10.5281/zenodo.20440786