5.2. SDOF-to-MDOF Calibration
- calibration.calibrate_model()[source]
Run the full SDOF-to-MDOF calibration pipeline.
The method performs the following steps:
Build mass and stiffness matrices.
Scale the stiffness matrix so that the first analytical period matches
T_target.Extract the first mode shape and compute modal participation factors.
Compute storey shear and drift distribution ratios.
Rebuild the stiffness matrix from shear ratios for mutual consistency with the storey forces.
Transform the SDOF capacity curve to MDOF storey force-drift backbones.
Scale storey forces so that spring stiffnesses match
T_target.(Optional) If storey_heights were provided, build an OpenSees model, verify the period, and run a static pushover for validation.
- Returns:
floor_masses (list of float) – Diagonal floor masses from the mass matrix.
storey_drifts (numpy.ndarray) – Inter-storey drift capacities in metres, shape
(nst, n_points).storey_forces (numpy.ndarray) – Storey shear-force capacities in g x mass units, shape
(nst, n_points).phi (numpy.ndarray) – First mode shape (roof-normalised).
metadata (dict) – Dictionary of calibration metadata including
T_target,Gamma,M_eff,shear_ratios,drift_ratios, mass and stiffness matrices, and (when storey_heights is provided) SPO verification results.
Theoretical Background
The SDOF-to-MDOF calibration maps a single-degree-of-freedom (SDOF) spectral capacity curve to storey-level force-deformation relationships for a stick-and-mass MDOF model (Xu et al., 2016; Lu et al., 2020).
First-mode participation
The SDOF spectral displacement \(S_d\) is related to the roof displacement \(u_{\text{roof}}\) through the first-mode participation factor \(\Gamma_1\) and the normalised first-mode shape \(\phi_1\):
where the participation factor is:
Storey force distribution
The storey shear forces are distributed proportionally to the first-mode shape. For storey \(i\), the lateral force is:
where \(V_{\text{base}} = S_a \cdot M_{\text{eff}}\) is the base shear and \(M_{\text{eff}} = \Gamma_1 \sum_i m_i \phi_1^{(i)}\) is the effective modal mass.
Mass matrix
A lumped-mass idealisation assigns one translational degree of freedom per storey. The consistent mass matrix is diagonal:
with \(m_i = m_{\text{floor}}\) for intermediate storeys and \(m_n = r_{\text{roof}} \cdot m_{\text{floor}}\) at the roof (default \(r_{\text{roof}} = 0.75\)).
Stiffness grouping and decay
Adjacent storeys are paired into groups of size 2. Within each group the spring stiffness decays with normalised height \(h \in [0, 1]\):
For soft-storey systems a further reduction factor is applied to the ground-floor spring to reproduce the characteristic weak-storey behaviour.
Period matching
The assembled stiffness and mass matrices are used in an eigenvalue problem \((\mathbf{K} - \omega^2 \mathbf{M})\boldsymbol{\phi} = \mathbf{0}\) to obtain the computed fundamental period \(T_{\text{computed}}\). The stiffness matrix is then scaled so that \(T_{\text{computed}} = T_{\text{target}}\), where \(T_{\text{target}}\) is inferred from the first point of the SDOF capacity curve.