深入解析AB相编码器4倍频原理及其在运动控制中的应用

1次阅读
没有评论

共计 1887 个字符,预计需要花费 5 分钟才能阅读完成。

image.webp

基础概念:AB 相编码器的工作原理

AB 相编码器是一种常见的位置传感器,通过输出两路相位差 90°的方波信号(A 相和 B 相)来检测旋转方向与位移。其核心价值在于:

深入解析 AB 相编码器 4 倍频原理及其在运动控制中的应用

  • 方向判别 :通过比较 A、B 相信号的相位关系(A 超前 B 或 B 超前 A)确定转动方向
  • 位置反馈 :每个脉冲对应固定的机械位移量,脉冲数累计即为位置信息
  • 速度计算 :单位时间内的脉冲数反映运动速度

在运动控制系统中,编码器分辨率直接影响控制精度。原始信号每转产生的脉冲数(PPR)是固定值,而 4 倍频技术可将有效分辨率提升 4 倍。

4 倍频技术深度解析

硬件层实现

  1. 信号调理电路
  2. 差分接收:采用 AM26LS32 等芯片抑制共模干扰
  3. 施密特触发器:对输入信号进行整形,消除毛刺
  4. 电压比较器:将正弦信号转换为规整方波

  5. 边沿检测原理

  6. A、B 相信号各产生上升沿和下降沿,共 4 种状态变化
  7. 每个状态变化都视为有效计数点(原始信号的 1 / 4 周期)

软件算法实现(STM32 示例)

// 编码器接口配置(TIMx 为例)void Encoder_Init(void) {TIM_Encoder_InitTypeDef sConfig = {0};
  htimx.Init.Period = 0xFFFF; // 16 位计数器
  sConfig.EncoderMode = TIM_ENCODERMODE_TI12; // 双通道模式
  sConfig.IC1Polarity = TIM_ICPOLARITY_RISING; 
  sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;
  HAL_TIM_Encoder_Init(&htimx, &sConfig);
  HAL_TIM_Encoder_Start(&htimx, TIM_CHANNEL_ALL);
}

// 4 倍频计数逻辑(外部中断方式)void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
  static uint8_t last_state = 0;
  uint8_t current_state = (A_PIN << 1) | B_PIN; // 组合当前状态

  /* 状态转移表:* 旧状态 -> 新状态 | 方向
   *   00   ->   01   | 正转
   *   00   ->   10   | 反转
   *   01   ->   11   | 正转
   *   01   ->   00   | 反转
   *   ...(其余 4 种情况)*/

  if((last_state == 0x0 && current_state == 0x1) || 
     (last_state == 0x1 && current_state == 0x3) ||
     (last_state == 0x3 && current_state == 0x2) ||
     (last_state == 0x2 && current_state == 0x0)) {position++;} else {position--;}
  last_state = current_state;
}

工程实践关键问题

抗干扰设计

  • PCB 布局
  • 编码器信号线走差分对,等长处理
  • 远离功率线路,必要时加屏蔽层
  • 电源端并联 0.1μF+10μF 电容

  • 信号处理

  • 软件消抖:连续采样 3 次确认有效边沿
  • 硬件滤波:RC 低通滤波(截止频率>10 倍信号频率)

计数溢出处理

// 32 位扩展计数方案
int32_t full_cycles = 0; 
int16_t last_count = 0;

void Update_Position(void) {
  int16_t current = TIMx->CNT;
  if((last_count > 0xC000) && (current < 0x4000)) {full_cycles++;} else if((last_count < 0x4000) && (current > 0xC000)) {full_cycles--;}
  position = (full_cycles << 16) | current;
  last_count = current;
}

性能对比测试

倍频方式 1000PPR 编码器有效分辨率 实测位置波动(±μm)
无倍频 1000 counts/rev 12.5
2 倍频 2000 counts/rev 6.2
4 倍频 4000 counts/rev 3.1

生产环境避坑指南

  1. EMC 防护
  2. 信号线串接 120Ω 终端电阻
  3. 使用 TVS 二极管防护静电
  4. 金属外壳接地处理

  5. 安装注意事项

  6. 保证编码器与转轴同心度<0.1mm
  7. 避免强振动环境安装
  8. 定期清洁光栅 / 磁栅

进阶思考:与 PID 控制的结合

通过 4 倍频获得高精度位置反馈后,可构建更精确的闭环控制:

  1. 位置环 PID 根据编码器反馈计算速度指令
  2. 速度环 PID 结合 M / T 法测速实现平滑调速
  3. 前馈补偿机械传动间隙

建议尝试调节 PID 参数时:

  • 先调 P 项至系统开始震荡
  • 加入 D 项抑制超调
  • 最后用 I 项消除静差

完整的运动控制系统还需要考虑加速度规划、柔性传动补偿等更深层问题,这将是下一个值得探讨的话题。

正文完
 0
评论(没有评论)