第 1 课:电机、驱动器、控制器究竟是什么?

1. 先理解最核心的区别

假设你正在控制一个六轴机器人机械臂,希望第三个关节旋转到 90°。

实际系统中有三个不同的角色。

80mm 48V 750W Robot Servo Motor With Brake And Encoder

电机(Motor):真正产生机械运动的设备。把电能转化成机械能,产生转矩,使机器人关节运动。

Ethercat Communication 1kw 5000rpm High Speed Three Phass AC Servo Motor Servo Drive - Servo Motor and Servo

驱动器(Servo Drive):控制电机如何运动的设备。根据目标指令和传感器反馈,调节输送给电机的电流,从而控制转矩、速度或位置。

Embedded PC - CX9020 series - Beckhoff Automation - DIN rail / Intel Xscale 32 bits / ARM Cortex-A8

控制器(Controller): 决定机器人需要怎样运动的设备或软件。

例如计算目标关节角度,规划运动轨迹,再通过通信总线向驱动器发送指令。

你只需要先记住:

控制器决定去哪里,驱动器负责怎么驱动,电机负责产生运动。

不过驱动器并不是简单的转发器,它内部还有控制算法、功率电路、反馈处理和保护机制。

2. 为什么控制器不能直接驱动电机?

例如,在你的 CAN 机械臂项目里,上位机发送:

target_position = 1.57;  // 目标角度,rad

这个数值只表示想让某个关节运动到约 90°。

它本身不会让电机旋转。

驱动器还需要完成:

  1. 接收目标位置,解析通信报文。

  2. 读取编码器,获得当前位置。

  3. 根据目标位置和当前位置的误差,计算需要的运动控制量。

  4. 根据所需转矩,计算电流目标。

  5. 通过功率电路调节三相电流。

  6. 持续采样和修正,直到满足运动要求。

这也是为什么会发送 CAN 帧,不等于真正理解电机控制。

你的工程重点是理解第 1、2、6 步的通信与反馈,以及第 3~5 步背后的核心控制机制。

3. 电机驱动器内部到底有什么?

可以先把典型伺服驱动器理解成四个部分。

模块

主要作用

通信模块

接收 CAN、EtherCAT 等总线指令

控制模块

运行位置环、速度环、电流环、FOC 等算法

功率模块

使用 MOSFET/IGBT 等器件调节输出电压和电流

反馈与保护模块

采集编码器、电流、温度等信息,检测异常

例如,FOC 控制中,驱动器根据电流和转子位置等反馈调节电机产生的转矩。

这里最容易混淆的是:

  • CAN / EtherCAT 解决的是上位机与驱动器之间如何传递数据。

  • PID / FOC 解决的是驱动器如何根据目标与反馈进行控制。

  • PWM / MOSFET 解决的是如何把控制计算结果转换为实际的电压、电流。

  • 编码器 解决的是如何知道电机转到了哪里。

这四类技术位于不同层次,但共同构成完整的电机驱动系统。

4. 结合你的 EtherCAT 项目理解

你之前项目中涉及 CiA402、CSP、DC 同步,这些其实都能映射到我们今天的框架中。

以典型的 CiA402 伺服驱动器为例:

你接触过的技术

底层含义

EtherCAT

主站和驱动器的数据通信

PDO

周期交换目标值和反馈值

CiA402

驱动设备的状态机与运动控制接口规范

Controlword 0x6040

向驱动器发送状态控制指令

Statusword 0x6041

读取驱动器当前状态

CSP

周期同步位置控制模式

DC

EtherCAT 分布式时钟同步机制

CiA402 定义了驱动器状态机、控制字和状态字等标准接口。

关键理解:CSP 并不是 FOC。

CSP 是驱动器对外提供的一种运动控制模式;FOC 是驱动器内部可能采用的电机电流与转矩控制方法。这两者属于不同层级

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐