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

在普通人的认知中,电机通电->电机旋转->设备运动,似乎只需要一个电机就能完成机械运动。但在工业化设备中,例如:半导体检测设备、手机组装设备、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[负载运动]
|
|
工业设备为什么不用普通电机?
普通交流电机(电源——交流电机——旋转)结构简单、成本低、速度稳定。应用场景很多,例如电风扇、电泵、传送带等。它的问题是无法精确控制位置。要求移动10mm,普通电机只能转一下、转两圈、转很多圈,但是它不知道自己转了多少圈,也不知道当前位置在哪里。
工业设备需要的是:移动10.000mm,实际10.001mm,误差1μm。所以需要可控、可反馈、可修正。这就是伺服系统。

伺服电机:工业运动的核心
什么是伺服(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[修正误差]
|
|
形成闭环:
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
|
|
编码器:电机为什么知道自己在哪里?
伺服电机相比普通电机,多了一个关键组件——编码器(Encoder),其作用是是检测电机角度、转速、方向。
例如:电机旋转一圈,编码器反馈10000个脉冲,那么每个脉冲代表 。经过丝杆转换(假设丝杆导程5mm/圈),那么 。这就是高精度运动的基础。

电机驱动器:为什么电机不能直接接电脑?
很多软件工程师容易产生疑问:不能直接给电机发送一个位置吗?
实际上,电脑不能直接控制电机。因为电机需要大电流、电压控制、电流控制、转矩控制,所以需要伺服驱动器(Servo Drive)。

伺服驱动器工作流程如下:
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[电机]
flowchart TD
A[位置环] --> B[速度环]
B --> C[电流环]
C --> D[电机]
flowchart TD
A[位置环] --> B[速度环]
B --> C[电流环]
C --> D[电机]
|
|
什么是轴卡?

轴卡:一种专门用于运动控制的硬件控制器,通过高速总线连接计算机,并向伺服驱动器输出运动控制指令,实现多轴高精度运动。
常见厂商:
为什么需要轴卡?
软件工程师可能会想:我的程序发送运动指令不行吗?
例如:
|
|
非常简单啊!但是实际运动,伺服电机可能需要每秒几十万脉冲(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形轨迹,很多设备不能接受。而需要直线运动,这就需要插补。
插补的本质就是把一个复杂运动目标,分解成多个轴的小运动。常见有直线插补、圆弧插补、螺旋插补等。

什么是脉冲当量?
在运动控制领域,脉冲当量(Pulse Equivalent)是一个非常核心的参数。一句话理解:脉冲当量 = 发送一个脉冲,机械实际移动的距离。
推荐
参考
相关内容
支付宝
微信