《2812交流伺服电机驱动(程序+论文)》中这程序的作用是啥?
《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 ;
} 是的,电机带霍尔位置传感器,传回来的是UVW三个信号,可以根据这三个信号确定转子初位置。 hrq0521 发表于 2012-9-11 10:33
是的,电机带霍尔位置传感器,传回来的是UVW三个信号,可以根据这三个信号确定转子初位置。 ...
我也看了代码,作者用的电机应该是2对极的,然后编码器是2500线,四倍频后是10000线。
对于一对极的无刷电机,一般静止状态下,电机会停止于6个可能的位置。
但这样处理似乎也有不妥,假如电机启动的时候,受到外力作用偏离了一些,后面的park变换和ipark变换就瞎了。 cpholr1 发表于 2016-11-26 19:21
我也看了代码,作者用的电机应该是2对极的,然后编码器是2500线,四倍频后是10000线。
对于一对极的无刷 ...
应该瞎不了,作者的这个代码在初始位置确定后就进入编码器计算电角度,即使受外力电角度也不会偏差太多。 weichao4808335 发表于 2016-11-28 22:54
应该瞎不了,作者的这个代码在初始位置确定后就进入编码器计算电角度,即使受外力电角度也不会偏差太多。 ...
我是指,在上电之前,假如电机并没有停在作者想象的位置上,后面计算出来的Iq Id就都是不准的。
一般来说,对于无减速器无负载的电机来说,作者的这个写法成功率很高。
但对于有减速器,或者有偏离负载的情况下,这个写法的失败率很高。
个人认为:正确的做法,应该是用作者使用的方式先启动,然后第一次检测到霍尔中断的时候进行一次d轴角度校正,这样才能保证不管什么情况下都能使计算正确。 本帖最后由 weichao4808335 于 2016-11-29 08:09 编辑
cpholr1 发表于 2016-11-28 23:01
我是指,在上电之前,假如电机并没有停在作者想象的位置上,后面计算出来的Iq Id就都是不准的。
一般来 ...
作者用的是伺服电机,而伺服电机上是没有霍尔的,u v w都是在编码器上,一般初始相位角厂家都会提供,即使不提供也可以自己通过自动对相算出来,然后在z脉冲来的时候矫正下,(用z脉矫正是因为很多编码器都是省线编码器),矫正后就是真实角度!矫正不是因为上电之前有没有转动,而是因为u v w在60度电角度时才会变化,上电读取的状态只能判断大概角度,矫正后才会是真的角度,当然你用无刷电机通过霍尔变化可以在下一个霍尔中断时矫正,伺服电机的通用做法还是要在z脉冲中断里面矫正 进行转子初始位置定位 cpholr1 发表于 2016-11-26 19:21
我也看了代码,作者用的电机应该是2对极的,然后编码器是2500线,四倍频后是10000线。
对于一对极的无刷 ...
没有问题的,只是进行初始位置定位,角度误差正负30度,空载启动一点问题都没有;其次在正常运行过程,转子位置偏差30度以内,扇区就不会发生变化,正常运行没有问题,之前做过测试。当然只能是静差为30度以内,要是来回变化或者畸变都会很大程度上影响运行性能。 catzsh 发表于 2016-11-29 11:12
没有问题的,只是进行初始位置定位,角度误差正负30度,空载启动一点问题都没有;其次在正常运行过程,转 ...
问题在于,定位不精确的话,d轴电流会偏大,这个我做过测试。 cpholr1 发表于 2016-11-29 23:46
问题在于,定位不精确的话,d轴电流会偏大,这个我做过测试。
这只是启动的时候才会出现角度偏差。当正常运行时,捕获到Z信号就可以进行角度修正了。 catzsh 发表于 2016-12-11 17:06
这只是启动的时候才会出现角度偏差。当正常运行时,捕获到Z信号就可以进行角度修正了。 ...
这个问题我后面做过测试,原程序作者处理的方式,在使用电流环的时候没有问题。
但如果开环就要出大事了。开环是指,直接对Vq赋值,对Vd直接等于0。
页:
[1]