A column is a vertical structural element in architecture and engineering designed to support weight and bear loads, often transferring the weight of the structure above it down to a foundation.
Columns are designed to withstand compressive forces that may lead to two principle failure modes:
Initially, the column will have a circular solid homogeneous cross section for this case study, while hollow columns and more advanced topologies are studied afterwards. Furthermore, the radius of the column is assumed to be a free variable, while the length, boundary conditions and load are decided (constraints).
Buckling is a likely failure mode for long and slendered columns. The critical buckling load is expressed by
\begin{equation} F_{cr} = \frac{\pi^2 EI}{(KL)^2} \tag{1} \end{equation}The parameter $K$ depends on the boundary conditions, for example:
Since a circular solid homogeneous cross section is assumed:
\begin{equation} I = \frac{\pi r^4}{4} \tag{2} \end{equation}such that
\begin{equation} F_{cr} = \frac{\pi^3 E r^4}{4(KL)^2} \tag{3} \end{equation}The critical buckling load must be greater than the applied load:
\begin{equation} F_{cr} > F_0 \tag{4} \end{equation}such that the required radius becomes
\begin{equation} r > \Big( \frac{4(KL)^2 F_{0}}{\pi^3 E} \Big)^{\frac{1}{4}} \tag{5} \end{equation}The mass of the column is
\begin{equation} m = L\pi r^2 \rho \tag{6} \end{equation}and therefore,
\begin{equation} m > L\pi\Big( \frac{4(KL)^2 F_{0}}{\pi^3 E} \Big)^{\frac{1}{2}}\rho \tag{7} \end{equation}Organizing the previous expression:
\begin{equation} m > \Big(\frac{4(KL^2)^2 F_{0}}{\pi} \Big)^{\frac{1}{2}} \Big( \frac{\rho}{E} \Big)^{\frac{1}{2}} \tag{8} \end{equation}Hence, in order to mimimize the mass:
\begin{equation} \min(m) \Rightarrow \min \Big(\frac{\rho}{E^{1/2}}\Big) \Rightarrow \max \Big(\frac{E^{1/2}}{\rho}\Big) \tag{9} \end{equation}Compressive failure is a consequence of a compressive stress exceeding the compressive failure strength $\sigma_f$. In order to avoid failure,
$$\sigma < \sigma_f \Rightarrow$$\begin{equation} \frac{F_0}{\pi r^2} < \sigma_f \tag{10} \end{equation}The requirement for the radius is consequently
\begin{equation} r > \Big( \frac{F_0}{\sigma_f \pi} \Big)^{\frac{1}{2}} \tag{11} \end{equation}and for the mass
\begin{equation} m > \Big( \frac{L \pi F_0}{ \pi} \Big) \Big( \frac{\rho}{\sigma_f} \Big) \tag{12} \end{equation}Therefore, minimizing the mass implies
\begin{equation} \max\Big( \frac{\sigma_f}{\rho} \Big) \tag{13} \end{equation}Note: Absolute values are used in (10)-(13)
Constraints:
$L_0 = 2000 \text{ mm}$
$F_0 = 100 \text{ kN}$
$K = 0.5$
Free variables: The radius $r$ and choice of material within a limited list of potential candidates.
import numpy as np
from numpy import pi
import matplotlib.pyplot as plt
materials= [{'Name': 'Steel ', 'rho':7850E-12, 'E':200000, 'sigc':500},
{'Name': 'Aluminum', 'rho':2700E-12, 'E': 70000, 'sigc':300},
{'Name': 'Woods ', 'rho': 500E-12, 'E': 12000, 'sigc': 50}]
L0 = 2000
F0 = 100E3
K = 0.5
ro = np.linspace(10,20)
I = pi*(ro**4)/4
for mat in materials:
print(mat['Name'])
r_buckl = ((4*((K*L0)**2)*F0)/((pi**3)*mat['E']))**(1/4) # eq. (5)
r_compr = (F0/(mat['sigc']*pi))**(1/2) # eq. (11)
m_buckl = pi*(r_buckl**2)*L0*mat['rho'] # eq. (6)
m_compr = pi*(r_compr**2)*L0*mat['rho'] # eq. (6)
print(' Radius with respect to buckling: {:.2f} mm, mass: {:.2f} kg'.format(r_buckl, m_buckl*1000))
print(' Radius with respect to compressiv failure: {:.2f} mm, mass: {:.2f} kg'.format(r_compr, m_compr*1000))
Governing failure mode is buckling for all materials and, unsuprisingly, the winner is the solution made of wood. The relatively low density of the wood enables a wider column that provides a relatively much greater second moment of area ($I$) compared to both aluminum and steel.
If, however, the allowable outer radius is limited to for example $r_0 = 25 \text{ mm}$, wood is not a viable option.
Rather, a hollow circular profile should be investigated.
The second moment of area of a cross section having internal radius $r_i$ is
\begin{equation} I = \frac{\pi r_0^4- \pi r_i^4}{4} \tag{14} \end{equation}Combining (1), (4) and (14) and solving for $r_i$ gives
\begin{equation} r_i < \bigg( r_0^4 - \Big( \frac{4F_0 (KL)^2}{\pi^2 E} \Big) \bigg)^{\frac{1}{4}} \tag{15} \end{equation}The mass is now
\begin{equation} m = L(\pi r_0^2 - \pi r_i^2)\rho \tag{16} \end{equation}With respect to compressive failure,
$$\frac{F_0}{\pi r_0^2 - \pi r_i^2} < \sigma_f \Rightarrow$$\begin{equation} r_i < \Big(r_0^2 - \frac{F_0}{\pi \sigma_f}\Big)^\frac{1}{2} \tag{17} \end{equation}and finally, the wall thickness is
\begin{equation} t > r_0-r_i \tag{18} \end{equation}materials= [{'Name': 'Steel ', 'rho':7850E-12, 'E':200000, 'sigc':500},
{'Name': 'Aluminum', 'rho':2700E-12, 'E': 70000, 'sigc':300}]
r0 = 25
for mat in materials:
print(mat['Name'])
ri_buckl =(r0**4 - (4*F0*(K*L0)**2)/((pi**3)*mat['E']))**(1/4) # eq. (15)
ri_compr =((r0**2)-F0/(mat['sigc']*pi))**(1/2) # eq. (17)
t_buckl=r0-ri_buckl # eq. (18)
t_compr=r0-ri_compr # eq. (18)
m_buckl = pi*(r0**2-ri_buckl**2)*L0*mat['rho'] # eq. (16)
m_compr = pi*(r0**2-ri_compr**2)*L0*mat['rho'] # eq. (16)
print(' Thickness with respect to buckling: {:.2f} mm, mass: {:.2f} kg'.format(t_buckl, m_buckl*1000))
print(' Thickness with respect to compressiv failure: {:.2f} mm, mass: {:.2f} kg'.format(t_compr, m_compr*1000))
The winner is now alumium, where the governing failure is once again buckling. Hence the required mass is 2.90 kg.
Script for a representative FEA model of the hollow column: Abaqus scripting, Example: Column
The result for the Aluminum solution with thickness 3.69 mm is essentially identical to the analytical solution (eigenvalue approximatly equal to unity)