.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/structural_engineering/plasticity/plot_01_kazinczy_plastic_hinge.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code or to run this example in your browser via JupyterLite. .. rst-class:: sphx-glr-example-title .. _sphx_glr_api_gallery_structural_engineering_plasticity_plot_01_kazinczy_plastic_hinge.py: Kazinczy's plastic hinge (1914) =============================== In 1914 Gábor Kazinczy loaded steel beams built into concrete walls in Budapest. They carried far more than the elastic theory allowed: when the most stressed section yielded through its whole depth it went on turning at a constant *plastic moment* :math:`M_p = \sigma_yZ_p` (a plastic hinge), and the load moved to other sections until enough hinges had formed to make a mechanism. For a rectangle :math:`Z_p = bh^2/4`, 1.5 times the elastic modulus (:func:`~engineeringkit.structural_engineering.plastic_section_modulus`). The collapse load follows from the work equation of the mechanism (:func:`~engineeringkit.structural_engineering.plastic_collapse_load`). The example follows a built-in beam under a uniform load from first yield, through hinges at the walls, to collapse with a third hinge at midspan. .. GENERATED FROM PYTHON SOURCE LINES 19-30 .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from engineeringkit.structural_engineering import ( PlanarFrame, plastic_collapse_load, plastic_section_modulus, rectangular_second_moment, rectangular_section_modulus, ) .. GENERATED FROM PYTHON SOURCE LINES 31-33 Section and beam ---------------- .. GENERATED FROM PYTHON SOURCE LINES 33-39 .. code-block:: Python b, h, sigma_y, L, E = 0.1, 0.3, 250e6, 8.0, 200e9 Z, Zp = rectangular_section_modulus(b, h), plastic_section_modulus(b, h) My, Mp = sigma_y * Z, sigma_y * Zp print(f"first-yield moment {My / 1e3:.1f} kN m, plastic moment {Mp / 1e3:.1f} kN m, shape factor {Zp / Z:.2f}") .. rst-class:: sphx-glr-script-out .. code-block:: none first-yield moment 375.0 kN m, plastic moment 562.5 kN m, shape factor 1.50 .. GENERATED FROM PYTHON SOURCE LINES 40-46 Stage 1: elastic, both ends built in ------------------------------------ The stiffness solution gives the wall moment :math:`wL^2/12`, twice the midspan moment. The walls yield first and form hinges at :math:`w_1 = 12M_p/L^2`. .. GENERATED FROM PYTHON SOURCE LINES 46-54 .. code-block:: Python beam = PlanarFrame([[0, 0], [L, 0]], ((0, 1),), E, b * h, rectangular_second_moment(b, h)) unit = beam.solve(np.zeros(6), [0, 1, 2, 3, 4, 5], member_loads=1.0) wall_per_w = unit.member_end_forces[0, 2] # counterclockwise end moment per unit load w_first_yield, w1 = My / wall_per_w, Mp / wall_per_w print(f"first yield at w = {w_first_yield / 1e3:.2f} kN/m, wall hinges at w1 = {w1 / 1e3:.2f} kN/m") assert np.isclose(w1, 12 * Mp / L**2) .. rst-class:: sphx-glr-script-out .. code-block:: none first yield at w = 70.31 kN/m, wall hinges at w1 = 105.47 kN/m .. GENERATED FROM PYTHON SOURCE LINES 55-61 Stage 2: hinges at the walls ---------------------------- With the wall moments held at :math:`-M_p`, the beam behaves as simply supported with end moments. The midspan moment is :math:`wL^2/8 - M_p`, which reaches :math:`M_p` at the collapse load. .. GENERATED FROM PYTHON SOURCE LINES 61-89 .. code-block:: Python w_c = 2 * Mp * 8 / L**2 assert np.isclose(w_c, plastic_collapse_load(Mp, L, "fixed", "uniform")) print(f"collapse at w_c = {w_c / 1e3:.2f} kN/m: {w_c / w_first_yield:.2f} times first yield") print(f"a simply supported beam would collapse at {plastic_collapse_load(Mp, L, 'simple', 'uniform') / 1e3:.2f} kN/m") x = np.linspace(0, L, 201) fig, axes = plt.subplots(1, 2, figsize=(11, 3.5)) for w, label in [(w_first_yield, "first yield"), (w1, "wall hinges"), (w_c, "collapse")]: wall = min(w * L**2 / 12, Mp) axes[0].plot(x, (w * x * (L - x) / 2 - wall) / 1e3, label=f"{label}, w = {w / 1e3:.0f} kN/m") for level in (Mp, -Mp): axes[0].axhline(level / 1e3, color="gray", ls=":") axes[0].set(xlabel="x [m]", ylabel="bending moment [kN m]", title="Moment redistribution") axes[0].legend(fontsize=8) # Load-deflection: the midspan deflection grows faster once the walls hinge. w_path = np.linspace(0, w_c, 200) I = rectangular_second_moment(b, h) elastic = w_path * L**4 / (384 * E * I) hinged = w1 * L**4 / (384 * E * I) + (w_path - w1) * 5 * L**4 / (384 * E * I) axes[1].plot(1e3 * np.where(w_path <= w1, elastic, hinged), w_path / 1e3) axes[1].axhline(w_c / 1e3, color="C3", ls="--", label="collapse load") axes[1].set(xlabel="midspan deflection [mm]", ylabel="load [kN/m]", title="Load path") axes[1].legend() fig.tight_layout() plt.show() .. image-sg:: /api/gallery/structural_engineering/plasticity/images/sphx_glr_plot_01_kazinczy_plastic_hinge_001.png :alt: Moment redistribution, Load path :srcset: /api/gallery/structural_engineering/plasticity/images/sphx_glr_plot_01_kazinczy_plastic_hinge_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none collapse at w_c = 140.62 kN/m: 2.00 times first yield a simply supported beam would collapse at 70.31 kN/m .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.064 seconds) .. _sphx_glr_download_api_gallery_structural_engineering_plasticity_plot_01_kazinczy_plastic_hinge.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: lite-badge .. image:: images/jupyterlite_badge_logo.svg :target: ../../../../lite/lab/index.html?path=api/gallery/structural_engineering/plasticity/plot_01_kazinczy_plastic_hinge.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_01_kazinczy_plastic_hinge.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_01_kazinczy_plastic_hinge.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_01_kazinczy_plastic_hinge.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_