小弟刚接触电机控制,最近遇到个电机定位的问题:
电机:伺服
软件环境:FOC2.0的库
编码器:600线,增量式光电编码器
问题来源:FOC2.0的库中对编码器初始化后会将编码器初始值设置为一个固定值,下面这个:
#define COUNTER_RESET (u16)((((s32)(ALIGNMENT_ANGLE)*4*ENCODER_PPR/360)-1)/POLE_PAIR_NUM)
就是((A/B相的90度差 * 4 *编码器线数 / 360)- 1)/ 电机极对数,这个值我算出来的结果是199
不太理解为什么要这个设定,我曾把这个值改为其他值,结果电机转的就不对了,所以这个值我就没动。
那么问题来了,由于增量编码器下电不会记住角度,当我下电后,将电机随意转一个角度,重新上电,那重新上电后的位置的脉冲值就是199,因为这个199的位置距离Z点的位置不固定,导致电机到Z点时的脉冲值也不固定,这就导致我无法确定电机的位置(除非每次上电调一次位置,但实际不允许)。
请教一下做过的大佬们,小弟这问题有没有什么办法解决,感谢提供思路!!!