用旋变替代编码器做速度反馈
用旋变替代编码器做速度反馈有人做过吗
旋变可以输出像编码器一样的信号模式那么用ti的列子
速度计算当中初始位置和一个脉冲代表的角度 该如何计算呢 void F281X_EV1_QEP_Calc(QEP *p)
{
int32 Tmp;
// Check the rotational direction
p->DirectionQep = 0x4000&EvaRegs.GPTCONA.all; //通用定时器全局控制寄存器 通过增减计数位
p->DirectionQep = p->DirectionQep>>14; //0和1代表不同的转向
// Check the timer 2 counter for QEP
p->RawTheta = EvaRegs.T2CNT + p->CalibratedAngle; //转子的即时位置对应的脉冲(转子对应定子A相的初始位置的角度+转过的相对角度)
// Compute the mechanical angle in Q15 MechScalar 参数:0.9999/计数最大值 RawTheta定时器2得出的角度MechScaler是电机转一周产生的最大脉冲个数的倒数
Tmp = __qmpy32by16(p->MechScaler,p->RawTheta,31); // Q15 = Q30*Q0
p->MechTheta = (int16)(Tmp); // Q15 -> Q15
//计算机械角度
p->MechTheta &= 0x7FFF; // Wrap around 0x07FFF,把一个-1~1换成两个0~1安位与
// Compute the electrical angle in Q15
p->ElecTheta = p->PolePairs*p->MechTheta; // 电角度=p*机械角度,Q0*Q15 = Q15
//计算电角度
p->ElecTheta &= 0x7FFF; // Wrap around 0x07FFF,把一个-1~1换成两个0~1
}
使用旋变后,需要改变的量有calibratedangle 初始位置的角度 脉冲数 mechscaler一个脉冲对应的角度如果是编码器 就是 360°除以线数
变成旋变后 第一个值我想是不是通过sci来获得,第二值是与你的解码芯片有关吧 可以测量 单位时间内脉冲的增量,然后计算转速 请人帮助解答 谢谢,顶顶顶
页:
[1]