最近在看st2.0的电机库,那个hall电角度怎么计算出来
小弟最近在看电机库,是利用定时器3捕获hall信号,但是看代码不是很明白,为什么计算电角度跟hall值1,2,4无关呢,只是判断3,5,6这几个hall值bPrevHallState = bHallState;bHallState = ReadHallState();
#if (HALL_SENSORS_PLACEMENT == DEGREES_120)
switch(bHallState)
{
case STATE_5:
if (bPrevHallState == STATE_5)
{
//a speed reversal occured
if(bSpeed<0)
{
bSpeed = POSITIVE_SWAP;
}
else
{
bSpeed = NEGATIVE_SWAP;
}
}
else if (bPrevHallState == STATE_6)
{
bSpeed = POSITIVE;
}
else if (bPrevHallState == STATE_3)
{
bSpeed = NEGATIVE;
}
// Update angle
if(bSpeed<0)
{
hElectrical_Angle = (s16)(S16_PHASE_SHIFT+S16_60_PHASE_SHIFT);
}
else if(bSpeed!= ERROR)
{
hElectrical_Angle = S16_PHASE_SHIFT;
}
break;也不是很明白bSpeed 的作用,hElectrical_Angle 这个计算值是怎么出来的,有研究的坛友,希望指点一下。
用户手册里有计算公式的吧,找找看电机控制同步电角度测试说明.pdf 坐等高人指点:) bSpeed是用来判定电机正反转方向的,电角度的计算时通过初始相位偏差加上当前hall对应的角度值计算过来的,不清楚的地方可以看UM0492这个文档,有中文版的 初始位置偏差+加上霍尔变化时计算出来的,初始位置偏差应该手动量出来的,但是霍尔这种方式精度比较差,实际应用中不具备可行性的 路过,打个酱油。 qy2110000 发表于 2018-8-22 16:08
初始位置偏差+加上霍尔变化时计算出来的,初始位置偏差应该手动量出来的,但是霍尔这种方式精度比较差,实 ...
卵你就知道,现在占20%出口额的电动车/扭扭车都是用霍尔+FOC方式! 求用户手册,中文的,感谢
页:
[1]