搜索
bottom↓
回复: 10

《2812交流伺服电机驱动(程序+论文)》中这程序的作用是啥?

[复制链接]

出0入0汤圆

发表于 2012-8-19 05:55:17 | 显示全部楼层 |阅读模式
《2812交流伺服电机驱动(程序+论文)》
http://www.amobbs.com/thread-992814-1-1.html中的demo.c中的

这段程序的作用确定运转前电机转子的位置么?和DSP引脚连接的外围电路是怎样的?

///////////////////电机初始化函数(位置确定)////////////////////////////
void motor_init(void)
{
     switch(GpioDataRegs.GPADAT.all & 0xE000)
     {
         case 0xA000: shan_qu=0; break; //1010,0000,0000,0000
         case 0x2000: shan_qu=1; break;
         case 0x6000: shan_qu=2; break;
         case 0x4000: shan_qu=3; break;
         case 0xC000: shan_qu=4; break;
         case 0x8000: shan_qu=5; break;

                default: motor_OK = 0; break;
     }
     extent_D = 833 * shan_qu + 416 ;
         
}

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2012-9-11 10:33:15 | 显示全部楼层
是的,电机带霍尔位置传感器,传回来的是UVW三个信号,可以根据这三个信号确定转子初位置。

出0入0汤圆

发表于 2016-11-26 19:21:05 | 显示全部楼层
hrq0521 发表于 2012-9-11 10:33
是的,电机带霍尔位置传感器,传回来的是UVW三个信号,可以根据这三个信号确定转子初位置。 ...

我也看了代码,作者用的电机应该是2对极的,然后编码器是2500线,四倍频后是10000线。

对于一对极的无刷电机,一般静止状态下,电机会停止于6个可能的位置。

但这样处理似乎也有不妥,假如电机启动的时候,受到外力作用偏离了一些,后面的park变换和ipark变换就瞎了。

出0入0汤圆

发表于 2016-11-28 22:54:47 来自手机 | 显示全部楼层
cpholr1 发表于 2016-11-26 19:21
我也看了代码,作者用的电机应该是2对极的,然后编码器是2500线,四倍频后是10000线。

对于一对极的无刷 ...

应该瞎不了,作者的这个代码在初始位置确定后就进入编码器计算电角度,即使受外力电角度也不会偏差太多。

出0入0汤圆

发表于 2016-11-28 23:01:06 | 显示全部楼层
weichao4808335 发表于 2016-11-28 22:54
应该瞎不了,作者的这个代码在初始位置确定后就进入编码器计算电角度,即使受外力电角度也不会偏差太多。 ...

我是指,在上电之前,假如电机并没有停在作者想象的位置上,后面计算出来的Iq Id就都是不准的。

一般来说,对于无减速器无负载的电机来说,作者的这个写法成功率很高。
但对于有减速器,或者有偏离负载的情况下,这个写法的失败率很高。

个人认为:正确的做法,应该是用作者使用的方式先启动,然后第一次检测到霍尔中断的时候进行一次d轴角度校正,这样才能保证不管什么情况下都能使计算正确。

出0入0汤圆

发表于 2016-11-29 08:07:44 来自手机 | 显示全部楼层
本帖最后由 weichao4808335 于 2016-11-29 08:09 编辑
cpholr1 发表于 2016-11-28 23:01
我是指,在上电之前,假如电机并没有停在作者想象的位置上,后面计算出来的Iq Id就都是不准的。

一般来 ...


作者用的是伺服电机,而伺服电机上是没有霍尔的,u v w都是在编码器上,一般初始相位角厂家都会提供,即使不提供也可以自己通过自动对相算出来,然后在z脉冲来的时候矫正下,(用z脉矫正是因为很多编码器都是省线编码器),矫正后就是真实角度!矫正不是因为上电之前有没有转动,而是因为u v w在60度电角度时才会变化,上电读取的状态只能判断大概角度,矫正后才会是真的角度,当然你用无刷电机通过霍尔变化可以在下一个霍尔中断时矫正,伺服电机的通用做法还是要在z脉冲中断里面矫正

出0入0汤圆

发表于 2016-11-29 11:09:08 | 显示全部楼层
进行转子初始位置定位

出0入0汤圆

发表于 2016-11-29 11:12:35 | 显示全部楼层
cpholr1 发表于 2016-11-26 19:21
我也看了代码,作者用的电机应该是2对极的,然后编码器是2500线,四倍频后是10000线。

对于一对极的无刷 ...

没有问题的,只是进行初始位置定位,角度误差正负30度,空载启动一点问题都没有;其次在正常运行过程,转子位置偏差30度以内,扇区就不会发生变化,正常运行没有问题,之前做过测试。当然只能是静差为30度以内,要是来回变化或者畸变都会很大程度上影响运行性能。

出0入0汤圆

发表于 2016-11-29 23:46:46 | 显示全部楼层
catzsh 发表于 2016-11-29 11:12
没有问题的,只是进行初始位置定位,角度误差正负30度,空载启动一点问题都没有;其次在正常运行过程,转 ...

问题在于,定位不精确的话,d轴电流会偏大,这个我做过测试。

出0入0汤圆

发表于 2016-12-11 17:06:53 | 显示全部楼层
cpholr1 发表于 2016-11-29 23:46
问题在于,定位不精确的话,d轴电流会偏大,这个我做过测试。

这只是启动的时候才会出现角度偏差。当正常运行时,捕获到Z信号就可以进行角度修正了。

出0入0汤圆

发表于 2017-3-5 11:28:37 | 显示全部楼层
catzsh 发表于 2016-12-11 17:06
这只是启动的时候才会出现角度偏差。当正常运行时,捕获到Z信号就可以进行角度修正了。 ...

这个问题我后面做过测试,原程序作者处理的方式,在使用电流环的时候没有问题。

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

本版积分规则

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

GMT+8, 2024-3-29 22:19

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

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