从电机到轴卡:工业设备高精度运动控制系统的核心原理

在普通人的认知中,电机通电->电机旋转->设备运动,似乎只需要一个电机就能完成机械运动。但在工业化设备中,例如:半导体检测设备、手机组装设备、MTF光学检测设备、精密点胶设备、贴片机、激光加工设备等。设备要求的不是“运动”,而是移动到指定位置误差小于几个微米、速度稳定、加减速平滑、多轴协同、高重复定位精度、实时响应外部触发等等。例如:

一个视觉检测设备,需要相机移动到指定位置拍照,如果运动误差超过5μm,视觉算法得到的结果可能完全失效。

这时候,仅靠电机无法满足需求。工业设备需要一套完整的运动控制系统(Motion Control System),其中核心的组成就是:

  • 电机(Motor)
  • 驱动器(Servo Drive)
  • 轴卡(Motion Control Card)
  • 编码器(Encoder)
  • 机械结构(Mechanism)
  • 控制软件(Motion Control Software)

整体关系如下:

图表 代码
flowchart TD
    A[上位机软件] --> B[轴卡]
    B --> C[电机驱动器]
    C --> D[伺服电机]
    D --> F[机械机构]
    F --> G[负载运动]
flowchart TD
    A[上位机软件] --> B[轴卡]
    B --> C[电机驱动器]
    C --> D[伺服电机]
    D --> F[机械机构]
    F --> G[负载运动]
flowchart TD
    A[上位机软件] --> B[轴卡]
    B --> C[电机驱动器]
    C --> D[伺服电机]
    D --> F[机械机构]
    F --> G[负载运动]
1
2
3
4
5
6
flowchart TD
    A[上位机软件] --> B[轴卡]
    B --> C[电机驱动器]
    C --> D[伺服电机]
    D --> F[机械机构]
    F --> G[负载运动]

工业设备为什么不用普通电机?

普通交流电机(电源——交流电机——旋转)结构简单、成本低、速度稳定。应用场景很多,例如电风扇、电泵、传送带等。它的问题是无法精确控制位置。要求移动10mm,普通电机只能转一下、转两圈、转很多圈,但是它不知道自己转了多少圈,也不知道当前位置在哪里。

工业设备需要的是:移动10.000mm,实际10.001mm,误差1μm。所以需要可控、可反馈、可修正。这就是伺服系统

图1 齿轮电机与伺服电机
图1 齿轮电机与伺服电机

伺服电机:工业运动的核心

什么是伺服(Servo)?Servo来源Serve(服务、跟随),意思是电机能够按照控制指令精确跟随目标运动。一个伺服系统:

图表 代码
flowchart TD
    A[目标位置] --> B[控制器]
    B --> C[电机]
    C --> D[电机]
    D --> F[编码器反馈]
    F --> G[修正误差]
flowchart TD
    A[目标位置] --> B[控制器]
    B --> C[电机]
    C --> D[电机]
    D --> F[编码器反馈]
    F --> G[修正误差]
flowchart TD
    A[目标位置] --> B[控制器]
    B --> C[电机]
    C --> D[电机]
    D --> F[编码器反馈]
    F --> G[修正误差]
1
2
3
4
5
6
flowchart TD
    A[目标位置] --> B[控制器]
    B --> C[电机]
    C --> D[电机]
    D --> F[编码器反馈]
    F --> G[修正误差]

形成闭环:

图表 代码
flowchart TD
    A[目标位置/速度 Target] --> B[控制器 Controller]
    B --> C[驱动器 Motor Driver]
    C --> D[电机 Motor]
    D --> E[机械运动 Mechanical System]
    E --> F[编码器反馈 Encoder Feedback]
    F --> B
flowchart TD
    A[目标位置/速度 Target] --> B[控制器 Controller]
    B --> C[驱动器 Motor Driver]
    C --> D[电机 Motor]
    D --> E[机械运动 Mechanical System]
    E --> F[编码器反馈 Encoder Feedback]
    F --> B
flowchart TD
    A[目标位置/速度 Target] --> B[控制器 Controller]
    B --> C[驱动器 Motor Driver]
    C --> D[电机 Motor]
    D --> E[机械运动 Mechanical System]
    E --> F[编码器反馈 Encoder Feedback]
    F --> B
1
2
3
4
5
6
7
flowchart TD
    A[目标位置/速度 Target] --> B[控制器 Controller]
    B --> C[驱动器 Motor Driver]
    C --> D[电机 Motor]
    D --> E[机械运动 Mechanical System]
    E --> F[编码器反馈 Encoder Feedback]
    F --> B

编码器:电机为什么知道自己在哪里?

伺服电机相比普通电机,多了一个关键组件——编码器(Encoder),其作用是是检测电机角度、转速、方向。

例如:电机旋转一圈,编码器反馈10000个脉冲,那么每个脉冲代表 360°10000=0.036°\frac{360\degree}{10000} = 0.036\degree。经过丝杆转换(假设丝杆导程5mm/圈),那么 5mm10000=0.5μm\frac{5mm}{10000} = 0.5μm。这就是高精度运动的基础。

图2 丝杆
图2 丝杆

电机驱动器:为什么电机不能直接接电脑?

很多软件工程师容易产生疑问:不能直接给电机发送一个位置吗?

实际上,电脑不能直接控制电机。因为电机需要大电流、电压控制、电流控制、转矩控制,所以需要伺服驱动器(Servo Drive)。

图3 伺服驱动器
图3 伺服驱动器

伺服驱动器工作流程如下:

图表 代码
flowchart TD
    A[控制信号] --> B[驱动器]
    B --> C[电流控制]
    C --> D[电机运动]
flowchart TD
    A[控制信号] --> B[驱动器]
    B --> C[电流控制]
    C --> D[电机运动]
flowchart TD
    A[控制信号] --> B[驱动器]
    B --> C[电流控制]
    C --> D[电机运动]
1
2
3
4
flowchart TD
    A[控制信号] --> B[驱动器]
    B --> C[电流控制]
    C --> D[电机运动]

驱动器内部通常包含:电流环(控制电机产生多少力)、速度环(控制转速是否正确)以及位置环(控制是否到达目标位置),形成三级控制:

图表 代码
flowchart TD
    A[位置环] --> B[速度环]
    B --> C[电流环]
    C --> D[电机]
flowchart TD
    A[位置环] --> B[速度环]
    B --> C[电流环]
    C --> D[电机]
flowchart TD
    A[位置环] --> B[速度环]
    B --> C[电流环]
    C --> D[电机]
1
2
3
4
flowchart TD
    A[位置环] --> B[速度环]
    B --> C[电流环]
    C --> D[电机]

什么是轴卡?

图4 固高科技GVN系列轴卡
图4 固高科技GVN系列轴卡

轴卡:一种专门用于运动控制的硬件控制器,通过高速总线连接计算机,并向伺服驱动器输出运动控制指令,实现多轴高精度运动。

常见厂商:

为什么需要轴卡?

软件工程师可能会想:我的程序发送运动指令不行吗?

例如:

1
MoveAxis(100);

非常简单啊!但是实际运动,伺服电机可能需要每秒几十万脉冲(Pulse, 一个短暂变化的数字电信号),实时周期0.1ms,普通Windows系统线程调度可能要1ms~几十ms,运控控制要求必须稳定。所以由轴卡承担实时控制

轴卡的工作原理

硬件组成:运动控制卡通常由芯片、驱动电路、I/O接口、时序控制器、程序存储器、交互接口等组成。其中,芯片是运动控制卡最重要的组成部分,它集成了运动控制的核心算法和数据处理功能,并且控制着整个系统的运行和维护。

接收主机指令:运动控制卡通过接口(如PCI、PCIe、USB等)与主机(通常是计算机)连接,并接收主机发送的控制命令。这些命令可能包括运动类型(如直线、圆弧等)、目标位置、速度、加速度等参数。

解析控制命令:运动控制卡接收到命令后,会解析命令内容,将其转换为内部可以理解的指令。

生成运动轨迹:根据接收到的命令,运动控制卡通过内部运动规划算法生成运动轨迹,并将运动参数设置给相应的轴。这一过程涉及到复杂的数学计算和算法优化,以确保运动的精确性和平滑性。

驱动器控制:运动控制卡将生成的运动轨迹和参数通过接口传输给驱动器。驱动器接收到信号后,根据设定的参数和轨迹控制电机或执行器的运动。驱动器可能采用脉冲/方向、脉冲/脉冲等多种输出模式来控制电机的运动。

位置反馈与闭环控制:驱动器通过内部的编码器或传感器获取电机或执行器的位置信息,并将反馈信号传回给运动控制卡。运动控制卡通过位置反馈信号与设定的目标位置进行比较,并调整驱动器的输出信号,使电机或执行器运动达到设定的目标位置。这种闭环控制系统可以实时纠正传动过程中的误差,提高运动的精度和稳定性。

状态监测与报告:运动控制卡可以监测电机或执行器的状态,如电流、速度等,并将状态信息通过主机接口返回给主机。主机可以利用这些信息对控制系统进行状态监控和故障诊断。

软件支持:运动控制卡通常需要配合专业的软件使用,这些软件提供了丰富的编程接口和库函数,方便用户快速开发出满足特定需求的运动控制系统。用户可以使用VC、VB等开发工具调用运动控制卡的函数库,实现各种复杂的运动控制功能。

什么是插补?

插补(Interpolation)就是轴卡根据目标轨迹,实时计算多个轴的位置关系,并转换成同步脉冲,使机械按照指定路径运动。这是轴卡的核心能力之一。

先看一个例子。假设设备有X轴和Y轴,现在要求从点A(0,0)移动到点B(100,100)。如果没有插补,可能先移动到点(100,0),再移动到点B(100,100),形成一个L形轨迹,很多设备不能接受。而需要直线运动,这就需要插补。

插补的本质就是把一个复杂运动目标,分解成多个轴的小运动。常见有直线插补、圆弧插补、螺旋插补等。

图5 不同类型插补
图5 不同类型插补

什么是脉冲当量?

在运动控制领域,脉冲当量(Pulse Equivalent)是一个非常核心的参数。一句话理解:脉冲当量 = 发送一个脉冲,机械实际移动的距离。

推荐

CONTEC 运动控制的基础知识

SIEMENS 驱动与控制基础

固高科技 GTS系列四轴运动控制卡

雷赛控制技术 EtherCAT 总线卡 用户使用手册

参考

一文详解运动控制卡的工作原理是什么?


相关内容

请作者喝杯咖啡!
AndyFree96 支付宝支付宝
AndyFree96 微信微信