Beam deflection¶
-
class
pyeng.general.beams.deflection.BeamPointLoad(beam_length, youngs_modulus, moment_inertia, point_load, load_xmax=0.0, supporttype_left='Support', supporttype_right='Support', seed=50, fail_silently=True)¶ Represents a thin linear elastic beam with a point load applied for which shear forces, moments, slopes and deflections are calculated under various combinations of geometry and support.
Provided that the following conditions are met:
- The beam is originally straight, and any taper is slight
- The beam experiences only linear elastic deformation
- The beam is slender (its length to height ratio is greater than 10)
- Only small deflections are considered (max deflection less than 1/10 the span).
In this case, the equation governing the beam’s deflection (\(w\)) can be approximated as:
\[\frac{\mathrm{d}^{2}w(x)}{\mathrm{d} x^{2}} = \frac{M(x)}{E(x)I(x)}\]A beam instance is created using a constructor with the following arguments:
Parameters: - beam_length – Total length of the beam (\(L\)) [\(m\)] - Suggested range: 0.0<= \(L\)
- youngs_modulus – Young’s modulus of the beam (\(E\)) [\(kPa\)] - Suggested range: 0.0<= \(E\)
- moment_inertia – Area moment of intertia about the beam axis - See
general.geometry.geom_2d.TwodimensionalShape(\(I\)) [\(m4\)] - Suggested range: 0.0<= \(I\) - point_load – Magnitude of the point load (\(P\)) [\(kN\)]
- load_xmax – X-coordinate of the point load application point measured from the leftmost support(\(x_{P}\)) [\(m\)] (optional, default=0.0) - Suggested range: 0.0 < \(x_{P}\) < \(L\)
- supporttype_left – Type of support at the leftmost support [-] (optional, default=”Support”) - Options = (“Free”,”Support”,”Clamped”,”Guided”)
- supporttype_right – Type of support at the rightmost support [-] (optional, default=”Support”) - Options = (“Free”,”Support”,”Clamped”,”Guided”)
- seed – Number of nodes along the beam length [-] (optional, default=50)
This creates a beam according to the following sign convention:
Shear forces, bending moments, slopes and deflections are calculated numerically along the beam length. Upon instance creation, the shear forces, bending moments, slopes and deflections are calculated. When properties of the beam are changed, the calculate function needs to be called again. Maximum or minimum values can be extracted by applying Python’s built-in min() and max() functions to the results. Increasing the number of nodes will increase the accuracy.
- Examples:
>>>beam = deflection.BeamPointLoad(beam_length=1.0, youngs_modulus=210.0e6, moment_inertia=0.01, point_load=1.0, load_xmax=0.4, supporttype_left="Clamped", supporttype_right="Support") >>>print("%20.12e meter" % min(beam.deflection)) -3.657951072379e-09 meter >>>beam.seed = 10000 # Improve the accuracy by increasing the seed >>>beam.calculate() >>>print("%20.12e meter" % min(beam.deflection)) -3.660072055407e-09 meter
If the beam behaves elastically for a combined loading scenario, with linear elastic behaviour also applying to each of the individual loadcases, then the principle of superposition can be applied. According to this principle, the resulting deflections and slopes are simply the algebraic sum of the deflection and slope for each individual load combination. Small deflection theory also need to be applicable. To apply the principle of superposition, simply create two beam instances with the same support types and positions, length and cross- sectional properties and sum the resulting deflections. Note that the location of the resulting maximum deflection is not equal to the sum of the location of individual deflections.
References - Wikipedia: https://en.wikipedia.org/wiki/Deflection_(engineering)
