先记住一句话
一台电机加上功率驱动、反馈传感器和闭环控制才成为 servo;再加减速器、轴承、结构、热设计和通信,才成为可装到机器人上的关节 actuator。
1. 开环电机与闭环伺服
开环
命令电压、占空比或步数,不持续检查输出是否到位。负载、摩擦、电池电压变化都会改变结果。
闭环
传感器测量位置/速度/电流,控制器用误差修正输入,并报告状态和故障。
target → controller → motor driver → motor → transmission → joint
↑ │
└──────────── encoder / current / torque ────────────┘
2. 三种常被叫作“舵机”的东西
| 名称 | 通常包含 | 典型接口 |
|---|---|---|
| RC hobby servo | 小 DC/BLDC、电位器、齿轮、简单控制板 | PWM pulse,常只给目标位置 |
| Smart servo | 电机、编码器、驱动、减速器、MCU、总线 | 串行/CAN,能读状态和设增益 |
| 机器人集成关节 | PMSM、FOC、双编码器、减速器、轴承、热与安全 | RS-485/CAN/EtherCAT/私有总线 |
工业里还会把 motor + encoder 称 servo motor,把独立功率控制器称 servo drive。读资料时必须确认“servo”是否已经包含减速器、驱动器和控制器。
3. 一个完整关节的部件
- 电机:把电能变成转矩与转速。
- 驱动器:逆变、FOC、电流采样与快速保护。
- 转子编码器:用于电角度换向,也可估计转速。
- 减速器:以速度换输出转矩,同时引入摩擦、回差、柔性和反射惯量。
- 输出编码器:测减速器之后的真实关节角,帮助看到回差和弹性。
- 轴承与外壳:承受径向、轴向和倾覆力矩,不应让转子磁隙承担结构载荷。
- 温度/力矩感知:用于降额、保护或力控。
- 通信与电源:接收命令、回传状态,并处理掉线、急停和上电状态机。
4. 双编码器为什么有价值
电机侧编码器看到 θm,输出侧编码器看到 θj。理想刚性传动应有 θj ≈ θm/N;两者差异包含齿隙、弹性扭转、装配偏差和可能的故障。
transmission deflection ≈ θm/N − θj转子编码器高速、低延迟,适合换向和内环;输出编码器更接近任务真正关心的关节角。双编码器并不自动消除回差,控制器还要考虑两路信号的带宽与机械共振。
5. 位置模式、速度模式和力矩模式
| 命令 | 低层闭环 | 适合 | 主要风险 |
|---|---|---|---|
| 位置 | 位置 + 速度 + 电流 | 轨迹、机械臂常规动作 | 刚度过高时碰撞力大 |
| 速度 | 速度 + 电流 | 轮子、输送、扫描 | 位置会累积漂移 |
| 力矩/电流 | 电流环 | WBC、阻抗、接触控制 | 外环失控会快速运动 |
| 阻抗/混合 | PD + 前馈力矩 | 腿足和柔顺交互 | 延迟与错误增益会振荡 |
“力矩模式”常是用相电流乘 Kt 估计电机转矩。经过减速器后,摩擦、效率、齿轮弹性和惯性都会让输出力矩与估计不同;高精度力控可能需要输出力矩传感器。
6. 上电状态机也是 servo 的一部分
OFF → self-test → encoder/calibration check → READY
↓ enable
FAULT ← watchdog / overtemp ← CLOSED LOOP → controlled stop → OFF
安全系统必须定义:命令超时怎么办、编码器跳变怎么办、母线欠压是否抱死、急停是断力矩还是保持制动、重新上电是否需要找零。一个只会“收到角度就转”的板子还不是成熟关节。
7. 评估 servo 的指标
- 输出能力:连续/峰值转矩、峰值持续时间、速度—转矩曲线、机械功率。
- 可控性:控制带宽、命令周期、延迟/抖动、力矩线性、低速齿槽转矩。
- 机械质量:质量、转动惯量、回差、扭转刚度、可回驱性、轴承载荷。
- 反馈:编码器精度/分辨率、绝对值能力、双编码器、温度和故障状态。
- 系统边界:电压、电流、散热条件、IP 等级、线缆/连接器、通信和安全功能。
8. 四个 servo-stack 手算
例 1:位置 PD 变 torque
q_ref=1.0 rad、q=0.9、速度 error=−0.2 rad/s,Kp=50 N·m/rad、Kd=2 N·m·s/rad:τ=50×0.1+2×(−0.2)=4.6 N·m。
例 2:双编码器量传动变形
Motor encoder 经 N=10 换算后的 output angle=30.0°,output encoder=29.6°,传动 twist=0.4°=0.00698 rad。若 torsional stiffness=300 N·m/rad,estimated torque≈2.09 N·m。
例 3:encoder count 网格
14-bit absolute encoder 每转 16384 counts,单 count=360/16384≈0.02197°。经过 10:1 reduction,motor-side encoder 映射到 output 的命令网格约 0.00220°,但回差/弹性可能大得多。
例 4:thermal derating
Actuator 25°C 时 continuous torque=8 N·m;控制器规定 85°C 后线性降到 100°C 时 0。温度 91°C 是区间的 6/15,剩余比例=0.6,允许 continuous torque=8×0.6=4.8 N·m。
编码器分辨率高不代表输出位置同样准确。减速器回差、结构弯曲、零位标定、磁编码器偏心和温漂都可能主导最终误差。
自测
1. 给普通 DC 电机加一个编码器,就已经是完整舵机了吗?
还需要能根据误差调节功率的闭环控制器/驱动器,以及合理的供电、保护和机械输出;编码器只是反馈元件。
2. 为什么输出侧编码器不能简单替代电机侧编码器做 FOC?
FOC 需要低延迟、高带宽的转子电角度;输出角还隔着减速器的比率、回差和弹性,通常不适合作为唯一换向反馈。
3. 为什么机器人腿喜欢阻抗或力矩接口?
它能让上层协调多个关节和接触力,并设置可控柔顺性;纯高刚度位置控制面对未知地面更容易产生冲击。
一手资料
ODrive Controller 给出三层闭环与控制模式;ODrive Dual Encoder 说明 motor/load 两侧反馈;Unitree Actuator SDK 展示 q/dq/Kp/Kd/τ 混合关节命令。