在智能小车中,电机和承重的关系
-
- 一、常见电机型号对照表(含承重量)
- 二、承重量计算说明
-
- [1. 承重能力计算依据](#1. 承重能力计算依据)
- [2. 减速比对性能的影响](#2. 减速比对性能的影响)
- [3. 承重能力计算参考](#3. 承重能力计算参考)
- [4. 不同配置下的承重能力](#4. 不同配置下的承重能力)
- 三、详细承重能力分析
-
- [1. 不同轮径下的承重调整系数](#1. 不同轮径下的承重调整系数)
- [2. 不同减速比下的承重能力](#2. 不同减速比下的承重能力)
- 四、减速比、承重系数、速度系数计算公式
- 五、根据扭力算速度、承重
- 六、应用场景推荐
-
- [1. 不同应用场景的电机选择](#1. 不同应用场景的电机选择)
- [2. 配置实例分析](#2. 配置实例分析)
- 五、选购注意事项
-
- [1. 承重能力的关键影响因素](#1. 承重能力的关键影响因素)
- [2. 实际应用建议表](#2. 实际应用建议表)
- 六、性能对比表
- 七、快速选择指南
- 总结
一、常见电机型号对照表(含承重量)
| 电机型号 | 尺寸(mm) | 额定电压 | 空载转速 | 额定扭矩 | 堵转扭矩 | 单电机承重能力 | 2驱系统总承重 | 4驱系统总承重 | 典型价格 |
|---|---|---|---|---|---|---|---|---|---|
| N20 | 20×12×10 | 6-12V | 100-500rpm | 0.2-0.5N·m | 0.8-1.5N·m | 3-8kg | 6-16kg | 12-32kg | 20-50元 |
| 370 | 37×24 | 12-24V | 300-2000rpm | 0.3-1.0N·m | 1.5-3.0N·m | 5-12kg | 10-24kg | 20-48kg | 30-80元 |
| 390 | 39×21 | 12-24V | 500-3000rpm | 0.5-1.5N·m | 2.0-4.0N·m | 8-15kg | 16-30kg | 32-60kg | 40-100元 |
| 550 | 56×36 | 12-24V | 3000-10000rpm | 1.0-3.0N·m | 4.0-8.0N·m | 10-25kg | 20-50kg | 40-100kg | 50-150元 |
| 775 | 66×42 | 12-24V | 5000-15000rpm | 2.0-5.0N·m | 6.0-12.0N·m | 15-35kg | 30-70kg | 60-140kg | 80-200元 |
| JGY-370 | 38×20 | 6-12V | 150-600rpm | 0.5-1.2N·m | 2.0-4.0N·m | 6-15kg | 12-30kg | 24-60kg | 25-60元 |
| TT马达 | 28×20 | 3-6V | 100-300rpm | 0.05-0.15N·m | 0.2-0.5N·m | 1-3kg | 2-6kg | 4-12kg | 5-15元 |
| 直流减速电机 | 42×19 | 12V | 100-300rpm | 1.0-2.0N·m | 3.0-6.0N·m | 10-20kg | 20-40kg | 40-80kg | 40-90元 |
| 无刷电机 | 42×42 | 24-48V | 2000-8000rpm | 2.0-8.0N·m | 6.0-20.0N·m | 20-40kg | 40-80kg | 80-160kg | 100-300元 |
| 伺服电机 | 40×40 | 12-48V | 3000-6000rpm | 3.0-10N·m | 10.0-30.0N·m | 25-50kg | 50-100kg | 100-200kg | 200-500元 |
二、承重量计算说明
1. 承重能力计算依据
python
# 承重计算公式
def calculate_load_capacity_detail():
"""
承重能力计算基于以下假设:
1. 轮径:80-125mm
2. 地面摩擦系数:0.8(室内硬地面)
3. 最大爬坡角度:15°-20°
4. 安全系数:1.5-2.0
5. 计算基于单个电机的牵引力
"""
# 单个电机承重计算公式
# 承重 = (电机扭矩 × 减速比) / (轮半径 × 摩擦系数 × 安全系数)
# 例如:N20电机,额定扭矩0.3N·m,减速比1:100,轮径80mm
import math
motor_torque = 0.3 # N·m
reduction_ratio = 100
wheel_radius = 0.04 # 米(80mm直径)
friction_coefficient = 0.8
safety_factor = 1.8
# 计算单个电机承重
load_per_motor = (motor_torque * reduction_ratio) / \
(wheel_radius * friction_coefficient * safety_factor)
return load_per_motor
# 示例计算
print(f"单电机承重: {calculate_load_capacity_detail():.1f} kg")
2. 减速比对性能的影响
python
# 减速比选择计算器
def calculate_motor_spec(wheel_diameter_mm,
vehicle_weight_kg,
max_speed_kmh,
max_grade_degrees):
"""
计算电机参数
"""
import math
# 转换为标准单位
wheel_radius = wheel_diameter_mm / 2000 # 米
weight = vehicle_weight_kg
# 计算所需扭矩(考虑爬坡)
# 爬坡阻力 = m*g*sin(θ)
grade_rad = math.radians(max_grade_degrees)
grade_force = weight * 9.8 * math.sin(grade_rad)
# 计算车轮所需扭矩
wheel_torque = grade_force * wheel_radius
# 计算减速比范围
# 假设电机额定转速为3000rpm
motor_rpm = 3000
wheel_rpm = (max_speed_kmh * 1000) / (60 * math.pi * wheel_diameter_mm/1000)
reduction_ratio = motor_rpm / wheel_rpm
return {
'required_wheel_torque_nm': round(wheel_torque, 2),
'recommended_reduction_ratio': round(reduction_ratio, 1),
'wheel_rpm': round(wheel_rpm, 1)
}
# 示例:10kg小车,100mm轮子,最高速度5km/h,最大爬坡20°
specs = calculate_motor_spec(100, 10, 5, 20)
print(specs)
3. 承重能力计算参考
python
class MotorLoadCalculator:
"""电机负载计算器"""
@staticmethod
def calculate_load_capacity(motor_torque_nm,
wheel_diameter_mm,
num_motors,
drive_type='2WD'):
"""
计算最大承重能力
参数:
motor_torque_nm: 单个电机扭矩(N·m)
wheel_diameter_mm: 轮子直径(mm)
num_motors: 电机数量
drive_type: '2WD' 或 '4WD'
"""
import math
wheel_radius = wheel_diameter_mm / 2000 # 转换为米
# 总扭矩
total_torque = motor_torque_nm * num_motors
# 最大牵引力(考虑摩擦系数0.8)
max_traction = total_torque / wheel_radius
# 计算最大承重(考虑爬坡20°,安全系数1.5)
grade_angle = 20 # 度
friction_coefficient = 0.8 # 轮胎摩擦系数
safety_factor = 1.5
# 计算平地和爬坡的承重
max_weight_flat = max_traction / (9.8 * friction_coefficient)
grade_rad = math.radians(grade_angle)
max_weight_grade = max_traction / (9.8 * (math.sin(grade_rad) +
friction_coefficient * math.cos(grade_rad)))
# 取较小值,并考虑安全系数
max_weight = min(max_weight_flat, max_weight_grade) / safety_factor
return {
'drive_type': drive_type,
'total_torque_nm': round(total_torque, 2),
'max_traction_n': round(max_traction, 2),
'max_weight_kg': round(max_weight, 1),
'max_weight_with_safety_kg': round(max_weight / safety_factor, 1)
}
# 示例计算
# 两驱:2个0.5N·m电机,80mm轮子
result_2wd = MotorLoadCalculator.calculate_load_capacity(0.5, 80, 2, '2WD')
print("两驱承重能力:", result_2wd)
# 四驱:4个0.5N·m电机,80mm轮子
result_4wd = MotorLoadCalculator.calculate_load_capacity(0.5, 80, 4, '4WD')
print("四驱承重能力:", result_4wd)
4. 不同配置下的承重能力
| 配置类型 | 2电机驱动承重 | 4电机驱动承重 | 提升比例 |
|---|---|---|---|
| N20 (1:100) | 6-16kg | 12-32kg | +100% |
| 370 (1:150) | 10-24kg | 20-48kg | +100% |
| 550 (1:50) | 20-50kg | 40-100kg | +100% |
| 无刷 (1:30) | 40-80kg | 80-160kg | +100% |
三、详细承重能力分析
1. 不同轮径下的承重调整系数
| 轮径(mm) | 承重调整系数 | 速度调整系数 | 适用场景 |
|---|---|---|---|
| 50-65mm | ×0.7 | ×1.3 | 竞速小车 |
| 65-80mm | ×0.85 | ×1.15 | 平衡车 |
| 80-100mm | ×1.0 | ×1.0 | 通用型 |
| 100-125mm | ×1.2 | ×0.85 | 越野车 |
| 125-150mm | ×1.4 | ×0.7 | 负重车 |
python
# 轮径对承重的影响计算
def wheel_size_adjustment(wheel_diameter_mm, base_load_kg):
"""
计算不同轮径下的承重调整
"""
if wheel_diameter_mm < 65:
adjustment = 0.7
elif wheel_diameter_mm < 80:
adjustment = 0.85
elif wheel_diameter_mm < 100:
adjustment = 1.0
elif wheel_diameter_mm < 125:
adjustment = 1.2
else:
adjustment = 1.4
adjusted_load = base_load_kg * adjustment
return adjusted_load
# 示例:N20电机,标准承重5kg,使用100mm轮子
adjusted = wheel_size_adjustment(100, 5)
print(f"使用100mm轮子的承重: {adjusted:.1f} kg")
2. 不同减速比下的承重能力
| 减速比 | 承重系数 | 速度系数 | 适用电机 |
|---|---|---|---|
| 1:30 | ×0.5 | ×3.0 | 高速低载 |
| 1:50 | ×0.75 | ×2.0 | 平衡型 |
| 1:100 | ×1.0 | ×1.0 | 通用型 |
| 1:150 | ×1.25 | ×0.7 | 高载低速 |
| 1:200 | ×1.5 | ×0.5 | 超高负载 |
四、减速比、承重系数、速度系数计算公式
假设基准减速比为1:100,其承重系数为1.0,速度系数为1.0
那么,对于其他减速比:
承重系数 = 实际减速比 / 基准减速比
速度系数 = 基准减速比 / 实际减速比
例如,减速比1:50:
承重系数 = 50/100 = 0.5
速度系数 = 100/50 = 2.0
减速比1:150:
承重系数 = 150/100 = 1.5
速度系数 = 100/150 = 0.6667
五、根据扭力算速度、承重
python
import math
class MotorPerformance:
def __init__(self, torque_gf_cm, base_rpm, wheel_diameter_mm=80):
self.torque_nm = torque_gf_cm * 0.0098 * 0.01 # 转换为 N·m
self.base_rpm = base_rpm # 电机空载转速
self.wheel_radius = wheel_diameter_mm / 2000.0 # 转换为米
def calculate(self, reduction_ratio, efficiency=0.85):
"""
计算给定减速比下的性能
efficiency: 减速器传动效率
"""
# 输出扭矩(考虑效率损失)
output_torque = self.torque_nm * reduction_ratio * efficiency
# 输出转速
output_rpm = self.base_rpm / reduction_ratio
# 计算线速度 (m/s)
wheel_circum = 2 * math.pi * self.wheel_radius
linear_speed_ms = (output_rpm / 60.0) * wheel_circum
# 计算最大牵引力
max_traction = output_torque / self.wheel_radius
# 估算最大承重(基于平地牵引,摩擦系数μ=0.8,安全系数1.5)
mu = 0.8
safety_factor = 1.5
max_load_kg = max_traction / (9.8 * mu * safety_factor)
return {
'减速比': f"1:{reduction_ratio}",
'输出扭矩(N·m)': round(output_torque, 3),
'输出转速(RPM)': round(output_rpm, 1),
'线速度(m/s)': round(linear_speed_ms, 2),
'线速度(km/h)': round(linear_speed_ms * 3.6, 1),
'理论最大承重(kg/电机)': round(max_load_kg, 1),
}
# 实例化:假设你的800 gf·cm电机空载转速为5000 RPM
my_motor = MotorPerformance(torque_gf_cm=800, base_rpm=5000, wheel_diameter_mm=80)
# 比较不同减速比
print("=== 800 gf·cm 电机性能计算 (80mm轮) ===")
ratios = [30, 50, 100, 150, 200]
for rr in ratios:
perf = my_motor.calculate(rr)
print(f"{perf['减速比']:8} | 扭矩: {perf['输出扭矩(N·m)']:5.3f}Nm | "
f"速度: {perf['线速度(m/s)']:4.2f}m/s ({perf['线速度(km/h)']:4.1f}km/h) | "
f"单电机承重: {perf['理论最大承重(kg/电机)']:4.1f}kg")
输出
=== 800 gf·cm 电机性能计算 (80mm轮) ===
1:30 | 扭矩: 0.200Nm | 速度: 0.70m/s (2.5km/h) | 单电机承重: 1.7kg
1:50 | 扭矩: 0.333Nm | 速度: 0.42m/s (1.5km/h) | 单电机承重: 2.8kg
1:100 | 扭矩: 0.666Nm | 速度: 0.21m/s (0.8km/h) | 单电机承重: 5.7kg
1:150 | 扭矩: 1.000Nm | 速度: 0.14m/s (0.5km/h) | 单电机承重: 8.5kg
1:200 | 扭矩: 1.333Nm | 速度: 0.10m/s (0.4km/h) | 单电机承重: 11.4kg
六、应用场景推荐
1. 不同应用场景的电机选择
| 应用场景 | 车体重量 | 推荐电机 | 驱动方式 | 预估承重 |
|---|---|---|---|---|
| 儿童玩具车 | 2-5kg | TT马达 | 2驱 | 2-6kg |
| ROS学习平台 | 3-8kg | N20 | 2驱 | 6-16kg |
| 室内服务机器人 | 8-15kg | 370/390 | 2驱或4驱 | 10-30kg |
| 仓储AGV小车 | 15-30kg | 550 | 4驱 | 30-70kg |
| 工业搬运车 | 30-50kg | 775/无刷 | 4驱 | 50-100kg |
| 特种机器人 | 50-100kg | 伺服电机 | 4驱 | 100-200kg |
2. 配置实例分析
python
# 配置计算器
class MotorConfigCalculator:
def __init__(self):
self.motor_specs = {
'N20': {'torque': 0.3, 'price': 30, 'load': 5},
'370': {'torque': 0.8, 'price': 50, 'load': 10},
'550': {'torque': 2.0, 'price': 100, 'load': 20},
'无刷': {'torque': 5.0, 'price': 200, 'load': 30}
}
def recommend_motor(self, vehicle_weight, max_speed, budget):
"""推荐电机配置"""
recommendations = []
for motor_type, specs in self.motor_specs.items():
# 2驱配置
load_2wd = specs['load'] * 2
# 4驱配置
load_4wd = specs['load'] * 4
# 检查是否能承载车重
if load_2wd >= vehicle_weight * 1.5: # 安全系数1.5
cost_2wd = specs['price'] * 2 + 50 # 加上驱动板
if cost_2wd <= budget:
recommendations.append({
'motor': motor_type,
'config': '2驱',
'capacity': load_2wd,
'cost': cost_2wd,
'safety_margin': load_2wd / vehicle_weight
})
if load_4wd >= vehicle_weight * 1.5:
cost_4wd = specs['price'] * 4 + 100 # 四驱需要更强的驱动板
if cost_4wd <= budget:
recommendations.append({
'motor': motor_type,
'config': '4驱',
'capacity': load_4wd,
'cost': cost_4wd,
'safety_margin': load_4wd / vehicle_weight
})
# 按性价比排序
recommendations.sort(key=lambda x: x['safety_margin'] / x['cost'], reverse=True)
return recommendations
# 使用示例
calculator = MotorConfigCalculator()
vehicle_weight = 10 # kg
budget = 300 # 元
recommendations = calculator.recommend_motor(vehicle_weight, 1.0, budget)
print("推荐配置:")
for rec in recommendations[:3]: # 显示前三推荐
print(f" {rec['motor']} {rec['config']}: 承重{rec['capacity']}kg, 成本{rec['cost']}元")
五、选购注意事项
1. 承重能力的关键影响因素
| 影响因素 | 对承重的影响 | 调整方法 |
|---|---|---|
| 减速比 | 减速比越大,承重越高 | 选择合适减速比的电机 |
| 轮径大小 | 轮径越小,承重越低 | 根据需求选择轮径 |
| 地面条件 | 摩擦系数影响牵引力 | 选择合适轮胎材料 |
| 电池电压 | 电压影响电机输出功率 | 确保电压匹配 |
| 散热条件 | 过热会降低电机扭矩 | 增加散热片或风扇 |
| 安全系数 | 建议1.5-2.0倍余量 | 选择承重更大的电机 |
2. 实际应用建议表
| 项目需求 | 车重范围 | 推荐最小承重 | 推荐电机 |
|---|---|---|---|
| 实验室原型 | 5-10kg | 15kg | N20或370 |
| 竞赛小车 | 3-8kg | 12kg | 370减速电机 |
| 家庭服务机器人 | 10-20kg | 30kg | 390或550 |
| 商业AGV | 20-40kg | 60kg | 550或775 |
| 工业搬运 | 40-80kg | 120kg | 无刷或伺服 |
六、性能对比表
| 电机型号 | 效率 | 噪音 | 寿命 | 控制精度 | 维护需求 |
|---|---|---|---|---|---|
| TT马达 | 低 | 高 | 短 | 低 | 低 |
| N20 | 中 | 中 | 中 | 中 | 中 |
| 370/390 | 中高 | 中 | 中长 | 中 | 低 |
| 550/775 | 高 | 中低 | 长 | 中高 | 中 |
| 无刷电机 | 很高 | 低 | 很长 | 高 | 低 |
| 伺服电机 | 最高 | 很低 | 最长 | 最高 | 很低 |
七、快速选择指南
简单选择公式:
python
# 1. 计算所需总承重
required_total_load = 预计车重 × 安全系数(1.5-2.0)
# 2. 选择驱动方式
if required_total_load < 15kg:
推荐2驱,单电机承重 = required_total_load / 2
elif required_total_load < 40kg:
推荐4驱,单电机承重 = required_total_load / 4
else:
推荐4驱无刷,单电机承重 = required_total_load / 4
# 3. 对照表格选择电机
预算与性能平衡表:
| 预算范围 | 最佳性价比配置 | 预估承重 | 适用项目 |
|---|---|---|---|
| 100元内 | N20 ×2 + TB6612 | 6-16kg | 学习实验 |
| 100-300元 | 370 ×4 + L298N | 20-48kg | 中小项目 |
| 300-600元 | 550 ×4 + 无刷驱动 | 40-100kg | 专业项目 |
| 600元以上 | 无刷×4 + 伺服驱动 | 80-160kg | 工业应用 |
总结
yaml
项目规格:
用途: ROS学习/室内导航
预期车重: 5-8kg
最大速度: 0.8m/s (2.9km/h)
续航: 2-4小时
推荐配置:
电机: N20减速电机 ×2
功率: 15W ×2 (总30W)
电压: 12V
减速比: 1:100
扭矩: 0.4N·m ×2
轮径: 80mm
编码器: 12线霍尔编码器
驱动板: TB6612FNG或DRV8833
预估承重: 6-10kg
成本: 电机150元 + 驱动50元 + 轮子30元
yaml
项目规格:
用途: 室内服务/物资运输
预期车重: 15-25kg
最大速度: 1.2m/s (4.3km/h)
续航: 3-6小时
推荐配置:
电机: 550有刷电机 ×4
功率: 60W ×4 (总240W)
电压: 24V
减速比: 1:150
扭矩: 3.0N·m ×4
轮径: 125mm麦克纳姆轮
编码器: 500线光电编码器
驱动板: 4路无刷电机驱动器
预估承重: 20-35kg
成本: 电机800元 + 驱动300元 + 轮子400元
yaml
项目规格:
用途: 工厂物料搬运
预期车重: 30-50kg
最大速度: 1.5m/s (5.4km/h)
负载能力: 100kg
续航: 8小时
推荐配置:
电机: 无刷伺服电机 ×4
功率: 200W ×4 (总800W)
电压: 48V
减速比: 1:50
扭矩: 10N·m ×4
轮径: 200mm聚氨酯轮
编码器: 17位绝对值编码器
驱动: 伺服驱动器CAN通讯
预估承重: 40-60kg + 100kg负载
成本: 电机4000元 + 驱动2000元 + 轮子800元