Crane Hook Design Optimization
Main.CraneHook History
Hide minor edits - Show changes to output
Changed lines 5-6 from:
to:
(:html:)
<iframe width="560" height="315" src="https://www.youtube.com/embed/KlgAWtSRcE0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
(:htmlend:)
<iframe width="560" height="315" src="https://www.youtube.com/embed/KlgAWtSRcE0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
(:htmlend:)
Changed lines 85-87 from:
Optimal hook width: 1.29 mm
to:
Optimal hook width: 1.29 mm
%width=550px%Attach:optimize_crane_hook.png
%width=550px%Attach:optimize_crane_hook.png
Changed line 5 from:
Design a crane hook to carry a load ''F''. The hook has a rectangular cross section with width ''b'' (minimum 0.2 mm) and height ''h''.
to:
A crane hook is used for lifting and moving heavy objects and is often found in industrial applications. Design a crane hook to carry a load ''F''. The hook has a rectangular cross section with width ''b'' (minimum 0.2 mm) and height ''h''.
Changed line 7 from:
%width=200px%Attach:crane_hook.png
to:
%width=250px%Attach:crane_hook.png
Changed line 7 from:
%width=300px%Attach:crane_hook.png
to:
%width=200px%Attach:crane_hook.png
Changed line 7 from:
%width=450px%Attach:crane_hook.png
to:
%width=300px%Attach:crane_hook.png
Changed lines 5-9 from:
Design a crane hook to carry a load ''F''. The hook has a rectangular cross section with width ''b'' (minimum 0.2 mm) and height ''h''. Optimize the crane hook design to minimize the volume of the hook. The hook is manufactured from a complete rectangular wire ring that is clipped and bent to give the final hook shape. The outer radius of the hook is ''r'_o_''' and the inner radius is ''r'_i_''' with a minimum inner diameter of 3.0 mm. The height is the difference between the outer and inner radius ''h=r'_o_'-r'_i_'''. The bending moment is ''M''=''F''''R'' with a force ''F'' of 100 N (10.2 kg for a static load on earth). The centroid radius is ''R'' and the neutral axis radius is ''r'_n_'''.
to:
Design a crane hook to carry a load ''F''. The hook has a rectangular cross section with width ''b'' (minimum 0.2 mm) and height ''h''.
%width=450px%Attach:crane_hook.png
Optimize the crane hook design to minimize the volume of the hook. The hook is manufactured from a complete rectangular wire ring that is clipped and bent to give the final hook shape. The outer radius of the hook is ''r'_o_''' and the inner radius is ''r'_i_''' with a minimum inner diameter of 3.0 mm. The height is the difference between the outer and inner radius ''h=r'_o_'-r'_i_'''. The bending moment is ''M''=''F''''R'' with a force ''F'' of 100 N (10.2 kg for a static load on earth). The centroid radius is ''R'' and the neutral axis radius is ''r'_n_'''.
%width=450px%Attach:crane_hook.png
Optimize the crane hook design to minimize the volume of the hook. The hook is manufactured from a complete rectangular wire ring that is clipped and bent to give the final hook shape. The outer radius of the hook is ''r'_o_''' and the inner radius is ''r'_i_''' with a minimum inner diameter of 3.0 mm. The height is the difference between the outer and inner radius ''h=r'_o_'-r'_i_'''. The bending moment is ''M''=''F''''R'' with a force ''F'' of 100 N (10.2 kg for a static load on earth). The centroid radius is ''R'' and the neutral axis radius is ''r'_n_'''.
Added lines 1-77:
(:title Crane Hook Design Optimization:)
(:keywords design, optimization, yield strength, strain, mechanical:)
(:description Design a crane hook to carry a load, keep stress below the yield strength of steel, and minimize the steel volume to manufacture the hook.:)
Design a crane hook to carry a load ''F''. The hook has a rectangular cross section with width ''b'' (minimum 0.2 mm) and height ''h''. Optimize the crane hook design to minimize the volume of the hook. The hook is manufactured from a complete rectangular wire ring that is clipped and bent to give the final hook shape. The outer radius of the hook is ''r'_o_''' and the inner radius is ''r'_i_''' with a minimum inner diameter of 3.0 mm. The height is the difference between the outer and inner radius ''h=r'_o_'-r'_i_'''. The bending moment is ''M''=''F''''R'' with a force ''F'' of 100 N (10.2 kg for a static load on earth). The centroid radius is ''R'' and the neutral axis radius is ''r'_n_'''.
{$r_n = \frac{h}{\ln\left(r_o/r_i\right)}$}
The difference between the centroid radius and the neutral axis radius is ''e''. The stress at point ''A'' is
{$\sigma_A = \frac{M \left(r_o-r_n\right)}{b\;h\;e\;r_o}$}
The stress at point ''B'' is
{$\sigma_B = \frac{M \left(r_n-r_i\right)}{b\;h\;e\;r_i}$}
The stress at points ''A'' and ''B'' should not exceed the yield strength of the steel at ''430 N/mm'^2^'''.
'''Solution'''
(:source lang=python:)
# Crane Hook optimization
from gekko import GEKKO
from numpy import pi
m = GEKKO(remote=False)
# Constants
F = 100 # load (N)
S_y = 430 # yield strength of steel (N/mm^2)
# Grade D fine-carbon steel (ASTM A255)
# Variables
r_o = m.Var() # outer radius (mm)
r_i = m.Var(lb=1.5) # inner radius (mm)
b = m.Var(lb=0.2) # hook width (mm)
V = m.Var() # hook volume (mm^3)
# Intermediates
h = r_o - r_i # hook height (mm)
R = (r_o + r_i)/2 # radius of the centroid (mm)
r_n = h/m.log(r_o/r_i) # radius of the neutral axis (mm)
e = R - r_n # R - r_n (mm)
M = F * R # bending moment due to the load
c_o = r_o - r_n # distance from outer to neutral(mm)
c_i = r_n - r_i # distance from inner to neutral(mm)
Area = b*h # cross-sectional area (mm^2)
o_A = (M*c_o/(Area*e*r_o)) # outer stress
o_B = (M*c_i/(Area*e*r_i)) # inner stress
# Equations
m.Equations([
V == pi*(r_o**2-r_i**2)*b, # volume calculation
o_A < S_y, # yield stress @ A < yield strength
o_B < S_y, # yield stress @ B < yield strength
r_i < r_o # constraint for feasibility
])
# Objective
m.Minimize(V)
# Solve
m.options.SOLVER = 3
m.solve()
print('Optimal Volume: ' + str(V[0]))
print('Optimal outer radius: ' + str(r_o[0]))
print('Optimal inner radius: ' + str(r_i[0]))
print('Optimal hook width: ' + str(b[0]))
(:sourceend:)
The optimal solution is:
Optimal Volume: 37.50 mm^2
Optimal outer radius: 3.39 mm
Optimal inner radius: 1.50 mm
Optimal hook width: 1.29 mm
(:keywords design, optimization, yield strength, strain, mechanical:)
(:description Design a crane hook to carry a load, keep stress below the yield strength of steel, and minimize the steel volume to manufacture the hook.:)
Design a crane hook to carry a load ''F''. The hook has a rectangular cross section with width ''b'' (minimum 0.2 mm) and height ''h''. Optimize the crane hook design to minimize the volume of the hook. The hook is manufactured from a complete rectangular wire ring that is clipped and bent to give the final hook shape. The outer radius of the hook is ''r'_o_''' and the inner radius is ''r'_i_''' with a minimum inner diameter of 3.0 mm. The height is the difference between the outer and inner radius ''h=r'_o_'-r'_i_'''. The bending moment is ''M''=''F''''R'' with a force ''F'' of 100 N (10.2 kg for a static load on earth). The centroid radius is ''R'' and the neutral axis radius is ''r'_n_'''.
{$r_n = \frac{h}{\ln\left(r_o/r_i\right)}$}
The difference between the centroid radius and the neutral axis radius is ''e''. The stress at point ''A'' is
{$\sigma_A = \frac{M \left(r_o-r_n\right)}{b\;h\;e\;r_o}$}
The stress at point ''B'' is
{$\sigma_B = \frac{M \left(r_n-r_i\right)}{b\;h\;e\;r_i}$}
The stress at points ''A'' and ''B'' should not exceed the yield strength of the steel at ''430 N/mm'^2^'''.
'''Solution'''
(:source lang=python:)
# Crane Hook optimization
from gekko import GEKKO
from numpy import pi
m = GEKKO(remote=False)
# Constants
F = 100 # load (N)
S_y = 430 # yield strength of steel (N/mm^2)
# Grade D fine-carbon steel (ASTM A255)
# Variables
r_o = m.Var() # outer radius (mm)
r_i = m.Var(lb=1.5) # inner radius (mm)
b = m.Var(lb=0.2) # hook width (mm)
V = m.Var() # hook volume (mm^3)
# Intermediates
h = r_o - r_i # hook height (mm)
R = (r_o + r_i)/2 # radius of the centroid (mm)
r_n = h/m.log(r_o/r_i) # radius of the neutral axis (mm)
e = R - r_n # R - r_n (mm)
M = F * R # bending moment due to the load
c_o = r_o - r_n # distance from outer to neutral(mm)
c_i = r_n - r_i # distance from inner to neutral(mm)
Area = b*h # cross-sectional area (mm^2)
o_A = (M*c_o/(Area*e*r_o)) # outer stress
o_B = (M*c_i/(Area*e*r_i)) # inner stress
# Equations
m.Equations([
V == pi*(r_o**2-r_i**2)*b, # volume calculation
o_A < S_y, # yield stress @ A < yield strength
o_B < S_y, # yield stress @ B < yield strength
r_i < r_o # constraint for feasibility
])
# Objective
m.Minimize(V)
# Solve
m.options.SOLVER = 3
m.solve()
print('Optimal Volume: ' + str(V[0]))
print('Optimal outer radius: ' + str(r_o[0]))
print('Optimal inner radius: ' + str(r_i[0]))
print('Optimal hook width: ' + str(b[0]))
(:sourceend:)
The optimal solution is:
Optimal Volume: 37.50 mm^2
Optimal outer radius: 3.39 mm
Optimal inner radius: 1.50 mm
Optimal hook width: 1.29 mm