3. 步进电机开环位置控制系统搭建

步进电机开环位置控制系统搭建 学习卡片

开环位置控制系统的组成与信号链

步进电机开环位置控制的核心是“脉冲当量”与“脉冲计数”。控制器每发出一个脉冲,驱动器就驱动电机转过一个固定步距角,经丝杠转换为固定的直线位移。系统不需要位置传感器反馈,因此结构简单、成本低,但必须保证电机不丢步。

本案例采用以下实际对象搭建系统:

  • 控制器:STM32F103 或 PLC 脉冲输出型,负责产生方向信号 DIR 和脉冲信号 PUL。
  • 驱动器:DM542 型两相步进驱动器,细分数设为 8,即 1600 脉冲/转。
  • 步进电机:57 系列两相混合式,步距角 1.8°,即 200 步/转。
  • 丝杠机构:滚珠丝杠导程 5 mm,即电机转一圈,滑台移动 5 mm。

由此可计算系统关键参数:

  • 脉冲当量 = 丝杠导程 ÷ (电机步数 × 细分数) = 5 mm ÷ (200 × 8) = 0.003125 mm/脉冲。
  • 若目标位移为 100 mm,则所需脉冲数 = 100 ÷ 0.003125 = 32000 个脉冲。
  • 若要求滑台速度为 20 mm/s,则脉冲频率 = 20 ÷ 0.003125 = 6400 Hz。
控制器 STM32 / PLC 产生 PUL / DIR 驱动器 DM542 细分 8 → 1600 脉冲/转 步进电机 57 两相混合式 步距角 1.8° 丝杠滑台 导程 5 mm 直线输出 PUL/DIR A+/A-/B+/B- 联轴器 关键参数计算 脉冲当量 = 丝杠导程 ÷ (电机步数 × 细分数) = 5 mm ÷ (200 × 8) = 0.003125 mm/脉冲 目标位移 100 mm → 所需脉冲数 = 100 ÷ 0.003125 = 32000 脉冲 目标速度 20 mm/s → 脉冲频率 = 20 ÷ 0.003125 = 6400 Hz 方向控制:DIR = 0 正转 / DIR = 1 反转(以驱动器拨码设定为准) 开环控制:无位置反馈,脉冲计数即位置指令

控制器脉冲输出与驱动器接线

控制器与驱动器之间采用共阳极或共阴极接法。本案例采用共阳极接法:控制器 PUL+ 和 DIR+ 接 +5V,PUL− 和 DIR− 分别接控制器输出引脚。控制器输出低电平时,驱动器内部光耦导通,接收一个脉冲。

以 STM32F103 为例,使用 TIM2 通道 1 产生脉冲,PA0 作为方向控制引脚。关键配置如下:

// 系统时钟 72 MHz,预分频 71 → 计数时钟 1 MHz
// 自动重装载值 = 1 MHz / 6400 Hz - 1 = 155
TIM2->PSC = 71;
TIM2->ARR = 155;
TIM2->CCR1 = 78;          // 50% 占空比
TIM2->CCMR1 |= (1<<6)|(1<<5); // PWM 模式 1
TIM2->CCER |= (1<<0);    // 使能通道 1 输出
TIM2->CR1 |= (1<<0);     // 启动定时器

// 方向控制
GPIOA->BSRR = (1<<0);    // PA0 置高,正转
// GPIOA->BRR = (1<<0); // PA0 置低,反转

驱动器拨码开关设置:细分数 8(SW1~SW3 按 DM542 手册设定),电流根据电机额定电流 2.0 A 设置。丝杠滑台上安装限位开关,接入控制器外部中断,防止超程撞机。

位移与速度控制实现

开环位置控制的核心是精确计数脉冲。控制器需要记录已发出的脉冲数,当达到目标脉冲数时停止输出。以下为位移控制逻辑:

volatile uint32_t pulse_count = 0;
uint32_t target_pulses = 32000;  // 100 mm

void TIM2_IRQHandler(void) {
    if (TIM2->SR & TIM_SR_UIF) {
        TIM2->SR &= ~TIM_SR_UIF;
        pulse_count++;
        if (pulse_count >= target_pulses) {
            TIM2->CR1 &= ~(1<<0);  // 停止定时器
            pulse_count = 0;
        }
    }
}

速度控制通过修改 ARR 值实现。例如需要 10 mm/s 时,脉冲频率为 3200 Hz,ARR = 1 MHz / 3200 − 1 = 311。注意:修改 ARR 应在更新事件时生效,避免脉冲抖动。

验证与丢步判断

开环系统最典型的故障是丢步。验证方法:在滑台上安装百分表或激光位移计,指令移动 100 mm,实测位移若小于 100 mm,说明存在丢步。常见原因包括:

  • 脉冲频率过高,超过电机启动频率。应设置加减速曲线,从 500 Hz 逐步升至 6400 Hz。
  • 驱动器电流设置过小,电机转矩不足。应重新按电机额定电流整定。
  • 丝杠预紧力过大或导轨润滑不良,机械阻力增大。

若实测位移与指令一致,且重复定位误差在 ±0.01 mm 以内,则系统搭建成功。注意:开环系统无法自动纠正丢步,因此加减速设计和机械装配质量是保证精度的关键。

调试时先用低速(如 500 Hz)运行全程,确认方向和限位有效,再逐步提高速度并加入加减速曲线。每次修改细分数后,必须重新计算脉冲当量和目标脉冲数。