搜索
bottom↓
回复: 7

请教(Microchip)AN1017关于电机正弦控制的问题

[复制链接]

出0入0汤圆

发表于 2011-8-1 15:22:39 | 显示全部楼层 |阅读模式
请教(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)

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2011-8-1 19:06:17 | 显示全部楼层
反转和正转的电压矢量正好相差180°,你已经画出了这张图,应该就很明白这个了呀?

出0入0汤圆

 楼主| 发表于 2011-8-2 09:15:39 | 显示全部楼层
回复【1楼】tiancaigao7 天才杨威利
-----------------------------------------------------------------------

谢谢指点!还是有点迷糊。
电机的正反转只与扇区(sector)顺序有关,电机正转时(磁链逆时钟旋转),扇区的顺序是0-1-2-3-4-5-0;
电机反转时(磁链顺时钟旋转),扇区的顺序是5-4-3-2-1-0-5。
按照
// 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;
电机反转,扇区的顺序是5-4-3-2-1-0-5,经过Phase = PhaseValues[(Sector + 3) % 6] + PhaseOffset;,
扇区顺序变成2-1-0-5-4-3-2。

不明白的是电机的反转不可以当做电机正转相反的操作吗?
如,电机正转,当前扇区是0,下一个扇区是1,通过Phase = PhaseValues[Sector]=57344,然后Phase=Phase+PhaseInc(相位增量),就可以转到扇区1。不知道上面说的对不对?
那么电机反转,当前扇区是0,下一个扇区是5,通过Phase = PhaseValues[Sector]=57344,然后Phase=Phase-PhaseInc(相位增量),不就可以转到扇区5,不知道这样操作可不可以?
另外电机反转时候,为什么要+PhaseOffset?
还请多多指点,谢谢!!

出0入0汤圆

发表于 2011-8-28 17:53:58 | 显示全部楼层
这个问题,没有人继续探讨下去了吗
注视是说,这个角度是因为,正传和反转用的是同一个表,为了对称,然后加上这个角度的。但是不理解啊。

出0入0汤圆

发表于 2011-9-8 16:05:42 | 显示全部楼层
经过我今天的思考和总结,我发现了这个偏置角度的由来了。偏执角度=60度-2*15度。计算公式就是上面的。这里的15度呢,是定义的六个基本矢量已经默认的超前角度为15度。为什么是两倍的呢,因为正转的时候,你已经超前5度了。那么反转的时候,需要减掉30度,才可以使反转超前15度。而为什么要加上60度呢。我这里给你细细分析啊。

其实例子中定义的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度的由来啊。

出0入0汤圆

发表于 2012-11-12 17:32:36 | 显示全部楼层
我现在也是参考这个例程来做,方波可以,但是正弦波控制时,电机不能转,
楼上方便聊一下吗?

出0入4汤圆

发表于 2014-3-2 02:10:13 | 显示全部楼层
你好,Phase = PhaseValues[(Sector + 3) % 6] + PhaseOffset这的公式是如何得来的,你解决了吗?我也碰到这个疑问了,整不明白

出0入0汤圆

发表于 2014-4-16 14:58:58 | 显示全部楼层
   顶一下
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 13:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表