Crane Hook Design Optimization

Main.CraneHook History

Hide minor edits - Show changes to output

June 10, 2021, at 01:08 AM by 166.170.15.107 -
Changed line 7 from:
%width=200px%Attach:crane_hook.png
to:
%width=250px%Attach:crane_hook.png
June 10, 2021, at 01:07 AM by 166.170.15.107 -
Changed line 7 from:
%width=300px%Attach:crane_hook.png
to:
%width=200px%Attach:crane_hook.png
June 10, 2021, at 01:07 AM by 166.170.15.107 -
Changed line 7 from:
%width=450px%Attach:crane_hook.png
to:
%width=300px%Attach:crane_hook.png
June 10, 2021, at 01:07 AM by 166.170.15.107 -
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_'''.
June 10, 2021, at 01:06 AM by 166.170.15.107 -
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