4. 位置与速度传感器:霍尔传感器原理与安装、编码器(增量式/绝对式)接口设计、无传感器观测器初探

做 FOC 控制,说白了就是得知道转子在哪儿、转得多快。没有准确的位置和速度信息,电流环算得再漂亮也没用。这一章我们聊聊传感器——霍尔、编码器,还有无传感器观测器的一些入门思路。

我个人习惯把传感器选择比作「选鞋」:霍尔传感器就像拖鞋,便宜、够用、但精度有限;编码器像跑鞋,性能好、价格也高;无传感器观测器呢,有点像赤脚跑——省了鞋钱,但需要更强的技术功底。咱们一个一个来看。

4.1 霍尔传感器:原理与安装

霍尔传感器利用霍尔效应来检测磁场变化。电机里通常装三个霍尔元件,间隔 120° 或 60° 电角度。转子转动时,霍尔输出高低电平,组合出 6 个状态,对应 60° 电角度区间。

关键点:霍尔传感器只能提供 60° 电角度的分辨率,用于 FOC 启动和低速换相足够,但高速运行时精度不够。我见过不少项目用霍尔做启动辅助,高速切到无传感器观测器。

安装注意事项:

  • 霍尔元件必须对准转子磁极的切换位置
  • 三个霍尔之间的机械角度误差应控制在 ±1° 以内
  • 安装后需要做角度校准——我习惯用示波器看霍尔边沿与反电动势过零点的对齐情况

我曾经踩过的坑:有一次霍尔安装座加工公差偏大,导致三个霍尔信号占空比不一致。低速时换相点偏移,电机抖动得像筛糠。后来加了软件校准才解决。所以霍尔安装后的校准步骤千万别省。

4.2 编码器:增量式与绝对式

编码器是 FOC 里用得最多的位置传感器。增量式和绝对式各有各的脾气。

类型 输出信号 分辨率 掉电保持 典型应用
增量式 A/B/Z 脉冲 几百~几千线 否 伺服、机器人关节
绝对式 SSI/BiSS/EnDat 12~24 位 是 高端伺服、协作机器人

增量式编码器接口设计要点:

  • A/B 相正交解码:用定时器的编码器模式或外部中断捕获边沿
  • Z 相用于零位校准:每次上电后需要找 Z 相脉冲
  • 速度计算:可以用 M 法(测频)或 T 法(测周期),低速时 T 法更准
// 增量式编码器速度计算示例(M法)
// 每 1ms 读取一次脉冲计数值
uint32_t pulse_count;
float speed_rpm;

void timer_isr(void) {
    static uint32_t last_count = 0;
    uint32_t current_count = encoder_get_count();
    uint32_t delta = current_count - last_count;
    last_count = current_count;
    
    // 假设编码器 1000 线,4 倍频后每转 4000 脉冲
    speed_rpm = (float)delta * 60.0f / (4000.0f * 0.001f);
}

我个人的经验:增量式编码器上电后不知道绝对位置,需要做一次「找零」动作。我习惯在电机上电后先低速转动到 Z 相位置,或者用霍尔辅助定位。绝对式编码器虽然贵,但省了这个麻烦。

绝对式编码器接口:

  • SSI 协议:时钟+数据线,同步串行,适合中速应用
  • BiSS 协议:双向通信,速度更快,适合高速伺服
  • EnDat 协议:海德汉标准,工业级可靠性

接口设计时要注意差分信号传输、抗干扰滤波、以及 CRC 校验。我遇到过编码器线缆过长导致数据错位的问题,后来加了终端电阻和屏蔽层才稳定。

4.3 无传感器观测器初探

无传感器观测器,说白了就是不用物理传感器,靠数学模型估算转子位置和速度。常用的方法有:

  • 反电动势法:利用电机反电动势过零点估算位置,低速时信号太弱
  • 磁链观测器:基于电压模型或电流模型,计算定子磁链位置
  • 滑模观测器:鲁棒性好,但存在抖振问题
  • 扩展卡尔曼滤波:精度高,计算量大

我最早接触无传感器 FOC 是在一个风机项目上。客户要求不能装传感器,因为环境温度高、振动大。我们用了滑模观测器,配合启动时的 I/F 开环控制,效果还不错。

核心思路:无传感器观测器的本质是「用模型代替测量」。模型越准,估算越可靠。但模型依赖电机参数,参数变化(温度、磁饱和)会影响精度。

下面这张图展示了无传感器 FOC 的基本信号流向:

无传感器 FOC 信号流向图 无传感器 FOC 信号流向 电流采样 Clarke/Park 电流环 PI 滑模/磁链观测器 估算位置 & 速度 反 Park 变换 SVPWM 说明: 1. 电流采样数据同时送入电流环和观测器 2. 观测器估算的位置/速度反馈给 Park 和反 Park 变换 3. 低速时观测器精度下降,常配合 I/F 开环启动

你想想看,无传感器观测器最大的挑战是什么?是低速。转速越低,反电动势信号越弱,信噪比越差。我见过不少方案在 10% 额定转速以下就撑不住了。

我的建议:如果项目对低速性能要求高(比如伺服对位、零速锁定),老老实实用编码器。如果只是风机、泵类负载,无传感器方案完全够用。

4.4 传感器选型决策

选哪种传感器,取决于你的应用场景。我整理了一个简单的决策表:

应用场景 推荐方案 理由
低成本风机/泵 无传感器观测器 省成本,对低速性能要求低
通用伺服 增量式编码器 性价比高,性能足够
协作机器人 绝对式编码器 掉电保持位置,安全要求高
汽车电子 霍尔 + 无传感器 冗余设计,可靠性优先