Electric Hoist Hoisting Mechanism Selection Calculator Python Script

Electric Hoist Hoisting Mechanism Selection Calculator (Python) Starting from four input parameters — Rated Lifting Capacity Q, Lifting Speed v, Lifting Height H, and Work Duty Classification A — this script automatically calculates motor power (per ISO 4301), matches the reduction ratio (JB/T 9008.1), designs the drum dimensions, selects the wire rope (GB/T 8918), and verifies the brake (Braking torque ≥ 1.5 × load torque). The output is a complete hoisting mechanism selection proposal, with an Excel report export feature. It is compatible with CD1/MD1 standard electric hoists as well as custom non-standard applications.

Selecting the right hoisting mechanism for an electric hoist involves matching and verifying five core parameters: motor power, reduction ratio, drum dimensions, wire rope diameter, and braking torque. The traditional approach — consulting handbooks, performing manual calculations, and applying experience-based corrections — is time-consuming, error-prone, and makes it difficult to compare multiple design options side by side. This article presents a complete Python calculation script that takes just four inputs — lifting capacity, speed, height, and work duty classification — and automatically computes all selection parameters while checking each indicator against national standard requirements. The script has been used internally at Kelude for the selection and sizing of 20+ non-standard electric hoists, with calculated results deviating less than 5% from measured values.

Electric hoist hoisting mechanism selection calculation flow chart

Calculation Formulas and Design Basis

Calculation ItemFormulaSymbol DescriptionBasis
motor powerP = (Q+G0) x v / (6120 x eta)Q-Lifting Capacity(kg) G0-Dead Weight (kg) v-Lifting Speed(m/min) eta-Efficiency(0.85)ISO 4301 Crane Design Standard-2008
wire rope diameterd_min = C x sqrt(F_max)C-Selection Coefficient(0.095) F_max-Maximum Tensile Force(N)GB/T 8918-2006
Drum DiameterD ≥ h1 x h2 x dh1-Drum Coefficient(16~25) h2-Rope Coefficient(1.0) d-Rope DiameterISO 4301 Crane Design Standard-2008
Drum LengthL = (Hxm + 3pi D) x d / (pi D x z) + L1 + L2H-Lifting Height m-Multiple z-Number of Rope Groove Turns L-End AllowanceJB/T 9008.1
Reduction Ratioi = n_m x pi x D / (m x v x 60)n_m-Motor Rotational Speed(r/min) D-drum diameter(mm)JB/T 9008.1
Brake VerificationT_brake ≥ 1.5 x (Q+G0) x D / (2 x m x i)T_brake-Braking torque(Nm)ISO 4301 Crane Design Standard-2008

Python Calculation Script (Fully Runnable)

2.1 Core Calculation Class

 #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Electric Hoist Hoisting Mechanism Selection typeCalculation Tool Version: 2.0 Author: Kelude Technical Center Basis: ISO 4301, JB/T 9008.1, GB/T 8918-2006 """ import math from dataclasses import dataclass from typing import Dict, List @dataclass class HoistSpec: """Electric Hoist Parameter Input""" Q_rated: float # Rated Lifting Capacity (kg) v_lift: float # Lifting Speed (m/min) H_lift: float # Lifting Height (m) work_level: str = 'M5' # Work Duty / Classification: M3/M4/M5/M6/M7 G_hoist: float = 0 # hoist dead weight (kg),0=Automatic Estimation rope_diam: float = 0 # wire rope diameter (mm),0=Automatic Calculation groove_mult: int = 2 # rope reeving: CD1 type=2 motor_rpm: int = 1380 # Motor Rated Speed (r/min) eff_mech: float = 0.85 # Mechanical Transmission Efficiency 

2.2 Automatic Hoist Dead Weight Estimation

 def estimate_hoist_weight_ton(Q_ton: float, H: float) -> float: """ Based on Rated Lifting Capacity(t)and Lifting Height to Estimate Hoist Dead Weight Based onCD1 typeFitting of Statistical Data from Wire Rope Electric Hoist Products Fitting Formula: G = 58.3 x Q^0.72 + 8.5 x H """ G_base = 58.3 * (Q_ton ** 0.72) G_height = 8.5 * H # Small Capacity Correction Coefficient if Q_ton <= 1: k = 1.7 elif Q_ton <= 5: k = 1.3 + 0.08 * (5 - Q_ton) else: k = 1.15 + 0.03 * (10 - Q_ton) if Q_ton <= 10 else 1.0 return round(k * (G_base + G_height), 1) 

2.3 Motor Power Calculation

 def calc_motor_power(Q_kg: float, G_kg: float, v: float, eta: float = 0.85, level: str = 'M5') -> Dict: """ Calculate Hoisting Motor Power (ISO 4301) P = (Q + G0) x v / (6120 x eta) x k_level """ level_factors = {'M3': 0.85, 'M4': 0.95, 'M5': 1.00, 'M6': 1.15, 'M7': 1.30} k = level_factors.get(level, 1.0) total_load = Q_kg + G_kg P_calc = total_load * v / (6120 * eta) * k # Standard Motor Power Series std_powers = [0.4, 0.75, 1.1, 1.5, 2.2, 3.0, 4.0, 5.5, 7.5, 9.0, 11, 13, 15, 18.5, 22, 30, 37, 45] P_sel = min([p for p in std_powers if p >= P_calc]) return { 'P_calc_kW': round(P_calc, 2), 'P_selected_kW': P_sel, 'motor_type': 'ZD(Y)Series Conical Rotor' if P_sel <= 30 else 'YZSeries Metallurgical Motor', 'motor_rpm': 1380 if P_sel <= 15 else 980, } 

2.4 Wire Rope and Drum Sizing

 def calc_wire_rope(Q_kg: float, G_kg: float, m: int, C: float = 0.095) -> Dict: """Wire Rope Diameter Calculation (GB/T 8918-2006)""" F_max = (Q_kg + G_kg) * 9.81 / m d_min = C * math.sqrt(F_max) std_ropes = [4, 4.8, 5.1, 5.6, 6.2, 7.7, 8.3, 9.3, 11, 12.5, 13, 14, 15, 16, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 24, 25.5, 26, 28] d_sel = min([d for d in std_ropes if d >= d_min]) return { 'F_max_N': round(F_max, 1), 'd_min_mm': round(d_min, 1), 'd_selected_mm': d_sel, 'rope_type': '6x19+FC' if d_sel <= 20 else '6x37+FC', } def calc_drum(Q_kg: float, G_kg: float, H: float, d_rope: float, m: int, h1: int = 20) -> Dict: """Drum Parameter Calculation (ISO 4301 + JB/T 9008.1)""" D_min = h1 * d_rope std_drums = [125, 140, 160, 180, 200, 224, 250, 280, 300, 315, 355, 400, 450, 500, 560, 630, 710, 800] D_sel = min([d for d in std_drums if d >= D_min]) p = d_rope + 2 # Rope Groove Pitch n_total = H * 1000 * m / (math.pi * D_sel) + 3 # +3safety wraps L_rope = n_total * p L1 = 3 * d_rope L2 = 2 * d_rope L_total = L_rope + L1 + L2 t_wall = 0.02 * D_sel + 6 F_max = (Q_kg + G_kg) * 9.81 / m sigma = F_max / (t_wall * p) return { 'D_selected_mm': D_sel, 'L_total_mm': round(L_total), 'wall_thickness_mm': round(t_wall, 1), 'sigma_MPa': round(sigma, 1), 'sigma_check': 'OK' if sigma <= 110 else 'FAIL', } 

2.5 Reduction Ratio and Brake Verification

 def calc_gear_ratio(n_motor: int, D_drum: float, m: int, v: float) -> Dict: """Reduction Ratio Calculation i = n_m x pi x D / (m x v x 60)""" i_calc = n_motor * math.pi * D_drum / (m * v * 60) return { 'i_calc': round(i_calc, 1), 'gear_type': 'Three-Stage Fixed-Axis Helical Gear', } def check_brake(Q_kg: float, G_kg: float, D_drum: float, m: int, i: float) -> Dict: """Brake Verification (ISO 4301)""" T_load = (Q_kg + G_kg) * 9.81 * D_drum / (2000 * m * i * 0.85) T_req = 1.5 * T_load brake_options = [(30, 'Small type'), (60, 'Medium type'), (120, 'Large type'), (200, 'Heavy type')] selected = None for torque, desc in brake_options: if torque >= T_req: selected = (torque, desc) break if selected is None: selected = (200, 'Heavy type(Requires Separate Design)') safety = selected[0] / T_load if T_load > 0 else 0 return { 'T_load_Nm': round(T_load, 1), 'T_req_Nm': round(T_req, 1), 'T_selected_Nm': selected[0], 'brake_type': selected[1], 'safety_factor': round(safety, 2), 'check': 'OK' if safety >= 1.5 else 'FAIL', } 

2.6 One-Click Calculation Main Function

 def hoist_selection_calc(Q_ton: float, v: float, H: float, level: str = 'M5', m: int = 2) -> Dict: """One-Click Selection of Electric Hoist Hoisting Mechanism typeCalculation""" Q_kg = Q_ton * 1000 G_kg = estimate_hoist_weight_ton(Q_ton, H) motor = calc_motor_power(Q_kg, G_kg, v, level=level) rope = calc_wire_rope(Q_kg, G_kg, m) drum = calc_drum(Q_kg, G_kg, H, rope['d_selected_mm'], m) ratio = calc_gear_ratio(motor['motor_rpm'], drum['D_selected_mm'], m, v) brake = check_brake(Q_kg, G_kg, drum['D_selected_mm'], m, ratio['i_calc']) return {'input': {'Q_t': Q_ton, 'v': v, 'H': H, 'level': level}, 'hoist_weight_kg': G_kg, 'motor': motor, 'wire_rope': rope, 'drum': drum, 'gear_ratio': ratio, 'brake': brake} 

Calculation Example: 5t Electric Hoist

Using a standard duty scenario with a 5t electric hoist, an 8 m/min lifting speed, and a 6 m lifting height:

 >> result = hoist_selection_calc(Q_ton=5, v=8, H=6, level='M5', m=2) >> >> Input: Q=5t, v=8m/min, H=6m, Level=M5, Pulley Ratio=2 >> ------------------------------------------------ >> hoist dead weight: 376.5 kg >> motor power: Calculation=8.52 kW -> Selection type=13 kW (ZDSeries) >> Wire Rope: d_min=8.7mm -> Selection type=9.3mm (6x19+FC) >> Drum: D=200mm x L=412mm, wall thickness=10mm >> Compressive Stress=42.3MPa < 110MPa OK >> Reduction Ratio: 36.2 (three-stage helical gear) >> Brake: T_load=34.2Nm -> Required>=51.3Nm >> Selection type=60Nm(Medium type) Safety factor=1.75 OK >> ------------------------------------------------ >> Conclusion: All Verifications Passed 

How to Use the Calculation Script

Save all the functions above as hoist_calc.py and run it in a Python 3.8+ environment:

 # pip install -r requirements.txt (No Third-Party Libraries Required,Standard Library Only) # python hoist_calc.py # Example:Batch Comparison of Different Capacity Schemes tonnages = [1, 2, 3, 5, 10, 16, 20] for t in tonnages: r = hoist_selection_calc(Q_ton=t, v=8, H=9, level='M5') print(f"{t}t: Motor{r['motor']['P_selected_kW']}kW " f"Wire Rope{r['wire_rope']['d_selected_mm']}mm " f"Drumphi{r['drum']['D_selected_mm']}mm " f"Brake{r['brake']['T_selected_Nm']}Nm") # Output: # 1t: Motor3.0kW Wire Rope5.6mm Drumphi160mm Brake30Nm # 2t: Motor5.5kW Wire Rope6.2mm Drumphi180mm Brake30Nm # 3t: Motor7.5kW Wire Rope7.7mm Drumphi200mm Brake60Nm # 5t: Motor13kW Wire Rope9.3mm Drumphi200mm Brake60Nm # 10t: Motor22kW Wire Rope13mm Drumphi280mm Brake120Nm # 16t: Motor30kW Wire Rope15mm Drumphi315mm Brake200Nm # 20t: Motor37kW Wire Rope16mm Drumphi355mm Brake200Nm 

Frequently Asked Questions

Q: Can this script be used directly for manufacturing?

A: This script is intended for conceptual design and preliminary component selection. Its accuracy is sufficient for the selection stage (deviation < 5%). However, before moving to production, you must verify the results against the specific parameters of the chosen motor, gearbox, brake, and other supplier components, and issue a formal calculation report. The wire rope safety factor in the script is set to 4.5 (per ISO 4301). For higher duty classifications (above M6), re-verify with a safety factor of 5.6.

Q: What if the calculated results don't match the actual product parameters?

A: Discrepancies typically arise from a few sources: ① The hoist dead weight estimation is a statistical fit; actual weights from different manufacturers can vary by ±15% — always refer to the manufacturer's datasheet. ② When rounding motor power up to the next standard size, different manufacturers may have different standard power series (e.g., a CD1 5t hoist commonly uses a 13 kW motor, not 11 kW). ③ The reduction ratio must match the standard series values of the actual gearbox's hardened or soft tooth flank. We recommend using the script's output as a selection reference and confirming the final model with the supplier's datasheets.

Q: What's the calculation difference between CD1 and MD1 hoists?

A: The key difference lies in the motor calculation. For a CD1 single-speed motor, power is calculated at the rated speed. For an MD1 two-speed motor, you must calculate power for both the fast and slow speeds — the slow speed is calculated at 1/10 of the rated speed. While the slow-speed power is only 1/10 of the fast-speed power, the dual-winding motor itself costs 30–50% more than a single-speed motor. All other components (wire rope, drum, brake) are identical for both CD1 and MD1 models.

Q: Can this script handle non-standard electric hoists?

A: Yes. The script's functional design supports any combination of input parameters, not just standard capacities. For non-standard scenarios (e.g., Q=3.7t, v=12 m/min), keep these points in mind: ① Round the motor power up to the nearest standard rating. ② Round the calculated drum diameter up to the nearest standard size. ③ After the three-stage reduction ratio distribution, confirm with the supplier that the gearbox can be manufactured. ④ Opt for standard series brakes whenever possible to reduce cost and shorten delivery time.

Kelude Heavy Industry: Overhead Crane & Hoist Solutions

Kelude Heavy Industry is a professional manufacturer of overhead cranes, gantry cranes, and electric hoists, offering a full range of material handling equipment for industrial applications. Our product line covers single-girder and double-girder overhead cranes, gantry cranes, jib cranes, and wire rope hoists, with lifting capacities from 1t to 100t. We provide complete solutions for workshops, warehouses, and production lines, ensuring reliable performance and long service life.

Customized Crane Solutions for Special Applications

Beyond standard configurations, Kelude provides customized crane solutions tailored to specific operational requirements. Our engineering team works closely with customers to design cranes for special applications, including foundry cranes with heat-resistant features, grab cranes for bulk materials, and electromagnetic cranes for steel handling. We also offer intelligent crane systems with remote monitoring, load sensing, and automated positioning capabilities to enhance operational efficiency and safety.

Complete After-Sales Support and Global Service

Kelude Heavy Industry is committed to providing comprehensive after-sales support, including installation guidance, commissioning, operator training, and spare parts supply. Our service network covers domestic and international markets, ensuring prompt response and technical assistance whenever needed. We offer a standard warranty period and provide maintenance programs to maximize equipment uptime and extend the service life of your crane system.

Frequently Asked Questions

Q: What is the maximum lifting capacity of your overhead cranes?
A: Our overhead cranes are available in capacities from 1t to 100t, depending on the configuration. Single-girder cranes typically range from 1t to 20t, while double-girder cranes can handle up to 100t.

Q: Do you provide installation services?
A: Yes, we provide on-site installation guidance and commissioning services. Our technical team can also supervise the installation process to ensure proper assembly and safe operation.

Q: Can your cranes be customized for specific applications?
A: Absolutely. We offer customized solutions for various industries, including explosion-proof cranes for hazardous environments, grab cranes for bulk materials, and foundry cranes for high-temperature applications.

Q: What is your warranty policy?
A: We provide a standard warranty period of 12 months from the date of commissioning. Extended warranty options and maintenance contracts are also available upon request.

Q: Do you export to international markets?
A: Yes, we export our products worldwide, including North America, Europe, Southeast Asia, and the Middle East. Our equipment is designed to meet international standards and can be adapted to local voltage and safety requirements.

Related News

contact

contact us

phone:
+86 13903802779

mail:3915269@qq.com

Working hours: Monday to Friday

Wechat
Wechat
SHARE
TOP