请教(Microchip)AN1017关于电机正弦控制的问题,小的有几个问题不明白,请教大家:
在AN1017 demo程序中
1)
// These Phase values represent the base Phase value of the sinewave for each
// one of the sectors (each sector is a translation of the hall effect sensors
// reading
#define PHASE_ZERO 57344
#define PHASE_ONE ((PHASE_ZERO + 65536/6) % 65536) //2730
#define PHASE_TWO ((PHASE_ONE + 65536/6) % 65536) //13652
#define PHASE_THREE ((PHASE_TWO + 65536/6) % 65536) //24574
#define PHASE_FOUR ((PHASE_THREE + 65536/6) % 65536) //35496
#define PHASE_FIVE ((PHASE_FOUR + 65536/6) % 65536) //46418
请教Phase_zero为什么定义为-45度?
2)
if (Required_Direction == CW)
{
Phase = PhaseValues[Sector];
}
else
{
// For CCW an offset must be added to compensate difference in
// symmetry of the sine table used for CW and CCW
Phase = PhaseValues[(Sector + 3) % 6] + PhaseOffset;
}
请教大家,电机反转时,Phase = PhaseValues[(Sector + 3) % 6] + PhaseOffset;
看不明白。
注: int PhaseOffset = 4100;
麻烦大家多多指教,谢谢!!
(原文件名:sector.JPG)
其实例子中定义的6个基本矢量#define PHASE_ZERO 57344
#define PHASE_ONE ((PHASE_ZERO + 65536/6) % 65536) //2730
#define PHASE_TWO ((PHASE_ONE + 65536/6) % 65536) //13652
#define PHASE_THREE ((PHASE_TWO + 65536/6) % 65536) //24574
#define PHASE_FOUR ((PHASE_THREE + 65536/6) % 65536) //35496
#define PHASE_FIVE ((PHASE_FOUR + 65536/6) % 65536) //46418
是每个扇区的起点了。
假设按照例子定义的这些起点是电机CW转的时候,定义的起点。那么该扇区按照该起点开始每个PWM周期加个角度θ
如果电机要求往零位一个方向转时候,就希望该扇区的终点是作为反转的扇区的起点。
每个扇区起点和终点之间相差了60度,所以这个就是60度的由来啊。
一周热门 更多>