Crane Hook Design Optimization

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.

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 ro and the inner radius is ri with a minimum inner diameter of 3.0 mm. The height is the difference between the outer and inner radius h=ro-ri. The bending moment is M=FR 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 rn.

$$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/mm2.

Solution

# 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]))

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

Generative AI Learning

Use these prompts to test your understanding after completing the exercise. The optimal solution is printed on this page, so the graded skill is not finding it - it is deriving, verifying, and defending it. Direct the AI accordingly.

"Quiz me with 4 questions, one at a time, on the crane hook design problem: why a curved beam's stress distribution differs from a straight beam's (where the neutral axis sits and why the inner fiber is critical), why the stress must be checked at BOTH points A and B, why minimizing volume with a fixed load pushes the design toward its stress and size limits, and what would physically go wrong if the bound ri at least 1.5 mm were removed. Grade my answers and list my misconceptions."
"The published optimum for this crane hook is V = 37.50 mm^3 with ro = 3.39, ri = 1.50, b = 1.29 mm. Do NOT confirm it blindly. Walk me through an independent verification, asking me to compute each piece: the stresses at points A and B at this design (are they at the 430 N/mm^2 limit?), which constraints and bounds are active, and whether a small feasible perturbation (e.g., ro + 0.05) can reduce the volume. Then ask me: if the published optimum FAILED one of these checks, what would I do next as the engineer of record?"

What to Turn In

Submit a short report (PDF, 1-2 pages) that curates your results into a demonstration of what you learned. You may use Generative AI to help write the report, but you must guide it to the correct mechanics, justifications, and assumptions. Answer these questions:

  1. Present the formulation in standard form and your own solver run's optimum. Does it reproduce the published solution?
  2. Show your independent verification: stresses at A and B at the optimum, the active constraint set, and the perturbation check. Which constraints/bounds pin the design?
  3. Increase the load from 100 N to 150 N and re-solve. How do the optimal radii and volume scale, and does the active set change?
  4. Why does the optimizer drive ri to its lower bound? What real manufacturing or service consideration would make you set that bound higher?
  5. From the quiz prompt: one question you missed and the corrected answer.

Course Information

Homework

Projects

Activities

Lecture Notes

Extra Content

Related Courses

Admin