3、有传感器控制回顾:编码器原理、霍尔传感器原理、有传感器FOC控制架构
好,咱们正式开始聊无感之前,我特意安排了一章来回顾有传感器方案。为什么?
说白了,无感控制不是凭空造出来的。它脱胎于有感控制,把传感器干的活,用算法替代了。你如果不理解传感器到底测了什么、怎么测的,那后面学无感算法,就会觉得「这玩意儿为啥要这么算?」——嗯,根儿上就没接上。
我当年刚转无感的时候,就犯过这个错。上来就啃滑模观测器,结果连反电动势和转子位置的关系都没理清,折腾了两周,代码跑出来全是乱的。后来老老实实回去把编码器和霍尔重新捋了一遍,再回头看无感,豁然开朗。
所以这一章,咱们把三种主流有传感器方案过一遍:编码器、霍尔传感器,以及它们怎么搭进FOC架构里。
3.1 编码器原理:位置和速度的「标尺」
编码器,你可以把它想象成贴在电机轴上的一个精密尺子。轴转多少角度,它告诉你多少。
3.1.1 增量式编码器
这是最常见的类型。它输出两路正交脉冲信号,A相和B相。轴每转一个固定角度,就输出一个脉冲。A和B的相位差90°,用来判断正反转。
我习惯这么记:A领先B是正转,B领先A是反转。
增量式编码器不告诉你绝对位置。你上电那一刻,不知道轴在哪儿。必须找一个参考点(Z信号)或者做一次寻零动作,才能知道0°在哪。
3.1.2 绝对式编码器
绝对式编码器就厉害了。它每个位置对应一个唯一的二进制码。上电一瞬间,你读到的码值直接告诉你当前角度。不需要寻零,不需要转一圈。
它通常用SSI、BiSS、EnDat等协议通信。分辨率可以做到很高,比如17位、23位,甚至更高。
代价呢?贵。而且通信线多,抗干扰要求高。
| 特性 | 增量式编码器 | 绝对式编码器 |
|---|---|---|
| 上电位置 | 未知,需寻零 | 已知,直接读取 |
| 输出信号 | A/B/Z脉冲 | SSI/BiSS/EnDat等数字码 |
| 分辨率 | 取决于线数(如2500线) | 取决于位数(如17位=131072步/圈) |
| 抗干扰 | 脉冲易受干扰 | 数字通信,相对可靠 |
| 成本 | 低 | 高 |
3.2 霍尔传感器原理:低成本的位置「开关」
霍尔传感器,说白了就是三个开关,装在电机定子上,相隔120°或60°。转子上的磁钢经过时,霍尔输出高或低电平。
三个霍尔,组合出6种状态(000和111通常不用),对应6个扇区。每个扇区60°电角度。
你想想看,霍尔只能告诉你「你在哪个60°扇区里」,不能告诉你精确到1°的位置。所以霍尔的分辨率很低,只有60°。
但它的好处是便宜、简单、可靠。很多低成本风机、水泵、电动工具都用它。
3.3 有传感器FOC控制架构
好,传感器有了,怎么搭进FOC里?
FOC的核心是坐标变换:Clark变换、Park变换。这两个变换都需要一个关键输入——转子电角度θ。
有传感器方案里,这个θ就是传感器直接测出来的。
3.3.1 编码器接入FOC
编码器输出脉冲或数字码,经过解码(比如用定时器的编码器模式,或者SPI读取),得到位置值。然后换算成电角度θ,喂给Park变换和逆Park变换。
速度呢?对θ求导(差分)就得到电角速度,再换算成机械转速。
流程大概是这样的:
编码器脉冲 → 定时器解码 → 位置计数 → 电角度θ → Park/逆Park
↓
差分 → 速度 → 速度环PI
3.3.2 霍尔接入FOC
霍尔只有6个扇区信息,直接做FOC精度不够。怎么办?
我常用的方法是:在扇区内做线性插值。
比如当前在扇区1(0°~60°),霍尔状态不变。我根据上一次换相的时间,估算当前在扇区内的位置。说白了,就是假设转速不变,用时间推算角度。
但这个方法有个坑:转速突变时,估算会不准。所以霍尔FOC通常只用在负载平稳的场合。
- 编码器FOC:θ直接测量,精度高,动态响应好。
- 霍尔FOC:θ估算(扇区内插值),精度低,适合稳态。
3.3.3 完整的有传感器FOC框图
下面这张图,是我自己画的有传感器FOC架构。你可以看到,传感器模块和FOC核心模块是怎么连起来的。
3.4 有传感器方案的优缺点
聊了这么多,我总结一下有传感器方案的优缺点。这样你后面学无感时,就知道无感在补什么短板。
- 优点:
- 位置信息准确,启动零速性能好。
- 动态响应快,负载突变时不容易失步。
- 算法相对简单,传感器直接给θ,不用观测器。
- 缺点:
- 成本高:编码器比电机还贵的情况很常见。
- 可靠性下降:传感器线缆容易断,霍尔怕高温。
- 安装受限:有些场合(如压缩机内部)根本装不了传感器。
1. 成本敏感吗?——敏感就别用编码器。
2. 环境恶劣吗?——高温、振动、油污,传感器容易坏。
3. 需要零速大扭矩吗?——如果需要,有传感器还是更靠谱。
这三个问题想清楚,你就知道该走有感还是无感路线了。