有感霍尔控制foc 📅 2026/7/22 15:58:06 1.霍尔传感器霍尔传感器通常是三个开关型霍尔元件安装在定子上互差120°电角度用来感知转子的磁极位置。当转子上的 N/S 极扫过霍尔元件时霍尔输出高低电平。三个霍尔共同输出一个 3 位二进制码在一个电周期内共有 6 个有效状态000 和 111 是非法态对应 6 个 60° 扇区。2. 霍尔 FOC用 3 颗霍尔代替编码器给 FOC 提供转子角度的有感方案——难点不在 FOC 本身而在于霍尔每电周期只给 6 个跳沿每档 60° 电角度而 Park 变换要的是连续角度所以怎么把 60° 扇区插成平滑 θ就是霍尔 FOC 的核心。基于此就可以在电机中嵌入霍尔传感器作为位置检测的手段。!3 颗开关霍尔在空间互差 120° 电角度安装转子转过一个电周期三路方波拼出 6 个有效状态000/111 是非法态扇区3. 解决安装误差 预定位 θ_offset 校准霍尔虽然知道扇区但不知道 d 轴磁极轴线相对于霍尔跳沿的精确偏移——这个偏移每台装机都不一样霍尔贴片公差 ±机械角。流程1.给 d 轴定向电流Vd设定值Vq0角度锁定在 ALIGN_ANGLE一般选 0°对应 A 相轴线 2.定子磁场把转子强行吸到这个电角度对应的位置保持几百 ms 3.此时读 Ha/Hb/Hc 的状态记下当前霍尔码 这个电角度 4.算出 θ_offset θ_align − Hall_ Sector_Base存下来#defineALIGN_ANGLE(0)// 预定位角度单位°#defineU_START_CUR_SET_F(0.2A)// 第一段定位电流#defineU_START_CUR_SET_S(0.5A)// 第二段定位电流#defineDC_HOLDTIME_LENTH150// 第一段 ms#defineDC_HOLDTIME_LENTH_STAGE1300// 第二段 ms4. FOC如何用霍尔传感器判断位置标准的霍尔传感器3个互差120°电角度本身无法直接提供FOC所需的连续、高分辨率转子位置角 θ 。FOC的Park变换和SVPWM要求位置角 θ 是连续变化的比如从 0° 平滑过渡到360° 精度通常要求在 1° 以内。而3个霍尔只能告诉你转子在哪个 60° 扇区里分辨率只有6个状态。因此在工程实践中“用霍尔做FOC”实际上指的是以霍尔信号为基准/锚点通过算法“插值”或“估算”出连续的转子位置。线性插值法最常用、性价比最高原理 既然霍尔只能给出6个离散的扇区边界点比如每60°跳变一次那么我们可以假设在两个霍尔跳变沿之间电机是匀速旋转的。 当检测到霍尔边沿时记录下当前的时间戳 t0 和对应的固定角度 θ0 比如 0°,60°,120°… 。 在下一个霍尔边沿到来之前利用上一次计算出的转速 ω 通过积分推算出当前时刻的角度 θ(t)θ0ω⋅(t−t0) 其中 ω 可以通过测量最近两次霍尔跳变的时间间隔 ΔT 得到ω60°/ΔT 。i是当前扇区的信号ωi-1是上一个扇区的平均速度θi是霍尔传感器的触发角度ΔT是采样周期就是PWM的周期。为了消除积分造成的累计误差在每一次到达扇区边沿的时候更新一次转子角度。也可以尝试在整个2pi周期完成后进行补偿可以减少角度跳变导致的转矩波动。锁相环法PLL / Software PLL这是对线性插值法的改进引入了闭环反馈来修正角度估算误差。原理 把霍尔的跳变沿看作是一个“相位参考信号”。软件内部构建一个数字锁相环PLL包含一个VCO压控振荡器这里就是角度积分器 ∫ωdt 和一个相位比较器。PLL锁相环解决这个问题的方法是每次 Hall跳变时用两次跳变的时间间隔算出电机转速再把转速转化为每个 PWM 周期的角度增量然后在两个 Hall 跳变之间每个 PWM 周期按这个增量匀速递增角度像填空一样把 60° 区间内的连续角度插出来。 下一次Hall 跳变到来时用实际测量值修正速度估算再继续下一段插值如此循环。本质上就是用速度做线性插值用 Hall 跳变做周期性校准把离散的 Hall信号变成连续平滑的电角度供 FOC 使用。优点相比纯开环插值PLL能更好地适应加减速角度估算更平滑抗干扰能力更强。缺点参数整定比插值法复杂需要调节PLL的带宽和阻尼比。带宽太宽则滤波效果差太窄则动态响应慢。适用场景对平稳性有一定要求的家电如变频空调压缩机、工业风机等。4.总结霍尔 FOC 的定位与价值霍尔 FOC 是性价比最优的折中方案它比无感多了几块钱的霍尔成本但换来了零速可控、启动平滑、算法简单。对于绝大多数民用电机控制场景它是工程上的首选。