大话BLDC驱动:怎么根据HALL信号换相

根据《大话BLDC驱动:为什么可以根据HALL信号换相?》文中内容,我们知道HALL信号实时反应了电机转子的位置,所以,针对有感BLDC,我们当然可以根据HALL信号进行换相。那么,问题来了,根据HALL信号换相的方法及其步骤是什么?
有什么细节?有什么要注意?本文就来梳理一下。

1. 有感BLDC 8线接口定义

3线驱动接口:U_V_W
5线HALL接口:3线霍尔接口:Ha_Hb_Hc,2线电源接口:5v(3.3v)_GND

2. 根据HALL信号换相的方法与步骤

步骤1,

固定电机3线HALL信号线和电机3线UVW信号线的线序。电机3线HALL信号线以任意顺序连接到驱动板的HALL接口;电机3线UVW信号线也以任意顺序连接到驱动板的UVW接口。一旦连接后,就不要再改变。即,驱动板HALL接口上的HALL信号线序和驱动板UVW接口上的UVW信号线序,存在一一对应关系。比如:HaHbHc与UVW对应,HaHbHc与WUV对应,HaHcHb与WUV对应,HaHcHb与VWU对应等等。

步骤2,

分别确定正转和反转的HALL信号的输出值及其顺序。根据《大话BLDC驱动:为什么可以根据HALL信号换相?》文中内容,一方面,可知HALL信号实时反应了电机转子的位置;另一方面,可知在60°HALL中,HALL信号的输出值为:6_4_7_3_1_0;在120°HALL中,HALL信号的输出值为:5_4_6_2_3_1。即,这一串数字分别代表了电机转子的位置。本文后续仅以120°HALL为例做说明。
因此,120°HALL在正转或者反转时,HALL信号的输出值的顺序是:5_4_6_2_3_1…或者4_5_1_3_2_6_4…

如何确定正转和反转时,HALL信号的输出值?确定方法:首先将HALL接口的2线电源接口供电,然后用手或者其他工具分别正转或者反转电机,在示波器端观察3线霍尔接口的输出并记录下数字(当然只会读到5_4_6_2_3_1_5…或者4_5_1_3_2_6_4…)。

步骤3,

确定逆变电路的导通顺序。根据《大话BLDC驱动-如何确定六步换相法两两导通的顺序?》文中的内容,可知在六步换相法中,逆变电路两两导通顺序只能是:AC_AB_CB_CA_BA_BC__AC…或者 CB_AB_AC_BC_BA_CA_CB……。为了方便沟通,我们将AC_AB_CB_CA_BA_BC分别编号为1_2_3_4_5_6。在六步换相法中,我们又称这一串编号为电机转子的相位phase,比如相位phase1,相位phase2,相位phase3…。即,phase1导通AC,phase2导通AB,phase3导通CB,phase4导通CA,phase5导通BA,phase6导通BC。那么据此编写源码1如下:

/*-----www.zhugedz.com------*/
switch(phase)
{
	case 1:
		PWM_ON_AC;
		break;
	case 2:
		PWM_ON_AB;
		break;
	case 3:
		PWM_ON_CB;
		break;
	case 4:
		PWM_ON_CA;
		break;
	case 5:
		PWM_ON_BA;
		break;
	case 6:
		PWM_ON_BC;
		break;
	default:
		PWM_OFF;
		break;
}

步骤4,

分别确定HALL值(5_4_6_2_3_1和4_5_1_3_2_6)与相位值(1_2_3_4_5_6)的对应关系。即,要解决读取到HALL某个值时,导通相位几的问题。

那么怎么确定HALL值和相位值的对应关系呢?

方法1:电机厂家会给出hall表的驱动图

方法2:排除法。

首先固定HALL值的顺序(5_4_6_2_3_1),然后分别用相位值(phase1_phase2_phase3_phase4_phase5_phase6)、(phase2_3_4_5_6_1)、(phase3_4_5_6_1_2)、(phase4_5_6_1_2_3)、(phase5_6_1_2_3_4)、( phase6_1_2_3_4_5)分别做测试。编写测试源码2如下:

/*-----www.zhugedz.com------*/
switch(HALL)
        {
			case 5:
                phase = 1;
                break;
            case 4:
                phase = 2;
                break;
            case 6:
                phase = 3;
                break;
            case 2:
                phase = 4;
                break;
            case 3:
                phase = 5;
                break;
            case 1:
                phase = 6;
                break;
            
            default:
                phase = 0;
                break;
        }
		

以上测试结果会有两种。第一种,6次中有1次是正确的(通过观察电机运行状态,或者观察端电压和相电流的关系);
第二种,6次都错误。那么分别改用相位值(phase3_phase2_phase1_phase6_phase5_phase4)、( phase2_1_6_5_4_3)、( phase1_6_5_4_3_1),(phase6_5_4_3_2_1)、(phase5_4_3_2_1_6)、(phase4_3_2_1_6_5)、再测试一遍,一定可以找到一组正确的相位值。记录下HALL值对应的相位值,比如,HALL值(4_6_2_3_1_5)对应相位值(phase3_4_5_6_1_2)。

然后,再固定HALL值的顺序(4_5_1_3_2_6),按上面的方法再进行测试。比如,测试结果为HALL值(4_5_1_3_2_6)对应相位值(pashe6_5_4_3_2_1)。这样便找到了HALL值和相位值分别在正反转情况下的对应关系。测试完毕后,编写源码3如下:

/*-----www.zhugedz.com------*/
if(dir == CCW)   
  {
	switch(HALL)
	{
		case 4:
			phase = 3;
			break;
		case 6:
			phase = 4;
			break;
		case 2:
			phase = 5;
			break;
		case 3:
			phase = 6;
			break;
		case 1:
			phase = 1;
			break;
		case 5:
			phase = 2;
			break;
		default:
			phase = 0;
			break;
	}
 }
     else
     {
        switch(HALL)
        {
            case 4:
                phase = 6;
                break;
            case 5:
                phase = 5;
                break;
            case 1:
                phase = 4;
                break;
            case 3:
                phase = 3;
                break;
            case 2:
                phase = 2;
                break;
            case 6:
                phase = 1;
                break;
            default:
                phase = 0;
                break;
        }
      }

可见,源码3和源码1便将HALL值和相位值一一对应起来了,并实现了正确的逆变电路的开关控制。此刻,如给适当大小PWM的占空比,你的电机就转起来了。

方法3:观察法。

使用工具带动电机分别做正反转动,在示波器端观察HALL值和UVW端电压的相位关系。会很容得到HALL值和相位值的对应关系。

  • 26
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值