本帖最后由 tianye907 于 2020-3-25 11:19 编辑
不知道大咖们有没有时间帮忙分析下。
背景:
STM32F103 直流电机驱动和霍尔编码器脉冲计数B相。
编码器捕获接PA1--定时器2的2通道捕获。电机驱动接PA8--定时器1的1通道PWM和PB8 --定时器4的3通道PWM。
目的:
实现对电机转动位置的定位。
思路:
两个IO驱动电机正反转,通过编码器捕获脉冲,通过脉冲数的对比,实现电机的正反转的定位。
问题:
两种方式驱动电机:
1 不用pwm调速电机。只是IO高低电平驱动电机正反转,这个时候发现定时器2捕获的编码器脉冲在电机正反转的时候,是相当的,电机转的圈数也相当。但是有累积误差,循环正反转时间长了定位就不准了。
2 用定时器1和定时器4的PA8 PB8两路单独的PWM驱动电机,对电机的正反转进行调速,以此试图消除正反转速度不一致造成的惯性影响。操作办法是正转的时候占空比100%。反转占空比50%。理论上正反转定时器2捕获的编码器脉冲应该都一样才对。但是发现,正转的时候正常,捕获脉冲10,电机转5圈,反转的时候,捕获的脉冲数量10,电机转1圈。明显捕获的脉冲不一样。
这是为什么呢?
我这个思路不知道合理不合理,有哪位大神做过这种应用,可否指点下。怎么消除误差,使得定位准确?
|