-- The Start --
前言:
近两周连续接到两个有感BLDC案子,都遇到HALL安装位置存在偏差的问题。按照HALL信号换相,尽管电机都可以转动,但是在同样转速的情况下,电流却大了很多。这是驱动效率低的典型表现,客户当然也不可能接受的。想让客户修改HALL板是不可能的,你懂的。因此,只能通过软件将HALL安装位置偏差导致的驱动角度偏差纠正过来,也叫做HALL角度软件补偿。本文就将HALL角度软件补偿的思路梳理一遍。希望对遇到同样问题的同学有所帮助。
1. HALL角度补偿定义
HALL角度补偿包括:滞后补偿和超前补偿。
(1)滞后补偿就是在HALL中断发生后的某一时刻换相。
(2)超前补偿就是在HALL中断发生前的某一时刻换相。
下文仅以120°HALL为例分别做说明怎么实现三种HALL角度补偿,以下实现方法兼容60°HALL。
如图1所示,如按HALL换相,那么换相时间点分别为A,B、C和D。但是,通过HALL角度滞后补偿,换相时间点改变为a,b,c和d。相邻两次HALL中断的时间周期为TH。a,b,c和d点分别相比A,B、C和D点,滞后td时间。td即是滞后换相的时间。
实现HALL角度滞后补偿,需要两个时钟TimerA和TimerB。定时器TimerA, 记录每相邻两次HALL中断的时间周期TH。定时器TimerB以td为周期定时。td是基于TH的时间,比如td = 15%*TH,根据实际情况设置TH的百分比。
具体操作步骤如下:
步骤1:当HALL中断产生时,读取HALL值,但不换相。读取TimerA定时周期TH后,重启TimerA,并将td装载到TimerB,启动TimerB后,进入步骤2。
步骤2:当TimerB定时中断到时,根据HALL值(滞后HALL)换相后,进入步骤1。
步骤1和2,循环执行即可实现HALL角度滞后补偿。
3. HALL角度超前补偿HALL角度超前补偿示意图,请见下图2。
如图2所示,如按HALL换相,那么换相时间点分别为B,C、D和E。但是,通过HALL角度超前补偿,换相时间点改变为e,f,g和h。相邻两次HALL中断的时间周期为TH。e,f,g和h点分别相比B,C、D和E点,超前ta时间。ta即是超前换相的时间。
实现HALL角度超前补偿,同样需要两个时钟TimerA和TimerB。定时器TimerA, 记录每相邻两次HALL中断的时间周期TH。定时器TimerB以(TH - td)为周期定时。td是基于TH的时间,比如td = 15%*TH,根据实际情况设置TH的百分比。
具体操作步骤如下:
步骤1:第一次HALL中断产生时,读取HALL值,根据HALL值进行换相。读取TimerA定时周期TH后,重启TimerA,并将(TH - td)装载到TimerB,启动TimerB。进入步骤2。
步骤2:当TimerB定时中断到时,根据HALL值的下一相换相(超前HALL)后,进入步骤3。
步骤3:当HALL中断产生时,读取HALL值,但不换相。读取TimerA定时周期TH后,重启TimerA,并将(TH - td)装载到TimerB,启动TimerB后,进入步骤2。
步骤2和3,循环执行即可实现HALL角度超前补偿。
小结:(1)HALL角度补偿原理很简单,关键是理清实现过程中的各种小细节。(2)HALL板的HALL位置设计错误或者位置装配偏差,可用软件角度补偿纠正错误,避免了重新打板,提高了开发效率。-- The End --往期文章:
欢迎点分享、收藏、点赞、在看!谢谢!