This IPython notebook converts a pushover curve for an MDOF system into an equivalent SDOF capacity curve, considering the first mode of vibration only. The supplied pushover curve, which is in terms of base shear and roof displacement, is transformed into an equivalent SDOF capacity curve, which is in terms of spectral acceleration and spectral displacement.
Note that this method assumes that the first mode shape Φ has been normalised to unit amplitude at the roof, i.e. Φn = 1, where n denotes the roof level.
The user has the option to derive the yielding Sa and Sd, if needed, using an idealisation of the sdof capacity curve, either bilinear or quadrilinear. To do so set the variable idealised_type
to 'quadrilinear'
or 'bilinear'
, if the idealisation is not required then set it to 'none'
.
In [20]:
%matplotlib inline
from rmtk.vulnerability.common import utils
from rmtk.vulnerability.mdof_to_sdof.first_mode import first_mode
In [21]:
pushover_file = "../../../../../rmtk_data/capacity_curves_Vb-dfloor.csv"
idealised_type = 'quadrilinear'; # 'bilinear', 'quadrilinear' or 'none'
capacity_curves = utils.read_capacity_curves(pushover_file)
[sdof_capacity_curves, sdof_idealised_capacity] = first_mode.mdof_to_sdof(capacity_curves, idealised_type)
Please define what capacity curve should be saved assigning the variable capacity_to_save
one of the following:
capacity_to_save = sdof_idealised_capacity
: idealised capacity curve is saved. If idealised_type
was previously set to none
, an error will be raised because the variable sdof_idealised_capacity
is empty.capacity_to_save = sdof_capacity_curves
: full capacity curve is saved.
In [22]:
capacity_to_save = sdof_idealised_capacity
utils.save_SdSa_capacity_curves(capacity_to_save,'../../../../../rmtk_data/capacity_curves_sdof_first_mode.csv')
In [23]:
if idealised_type is not 'none':
idealised_capacity = utils.idealisation(idealised_type, sdof_capacity_curves)
utils.plot_idealised_capacity(idealised_capacity, sdof_capacity_curves, idealised_type)
else:
utils.plot_capacity_curves(capacity_curves)
utils.plot_capacity_curves(sdof_capacity_curves)
This function allows to define the relationship between the maximum Inter-Storey Drift (ISD) along the building height and spectral displacement. This relationship serves the purpuse of converting interstorey drift damage thresholds to spectral displacement damage threshold, if damage_model['type']=interstorey drift
of the MDOF system wants to be used for the equivalent SDOF system.
If capacity_curves['type'] = 'Vb-dfloor'
the relationship is extracted from the displacement at each storey, otherwise a linear relationship is assumed.
In [24]:
deformed_shape_file = "../../../../../rmtk_data/ISD_Sd.csv"
[ISD_vectors, Sd_vectors] = first_mode.define_deformed_shape(capacity_curves, deformed_shape_file)
In [ ]: