电机控制8---步进电机常见问题

五、步进电机常见问题

  1.步进电机T型加速几个参量的作用?

    步进电机运行最大步数(steps):步进电机运行的总步数,决定了步进电机运行的时间。

    步进电机加速阶段加速度accel:该参量决定了步进电机达加速快慢,值越大越早达到最大速度。但是选择加速度过大,将导致脉冲频率增大过快,会导致步进电机丢步,从而卡死。最好选择在5至10。

   步进电机减速阶段减速度(decel):该参量决定步进电机减速快慢,与加速度一样,过大会导致步进电机过冲。从而卡死。

   步进电机运行速度(speeds):该参数决定步进电机运行最快速度,步进电机最快速度由步进电机所能接收的极限频率决定。本例测试步进电机达到速度25时,端口输出脉冲频率为62.5kHz。

2.如何防止步进电机加速或减速阶段卡死?

   有以下几种解决方法:1.调低加速或减速值

                        2.加入合适的延时时间----一般以微秒计。可以得到极高的运行速度。

 3.步进电机运行速度与延迟时间的关系

      虽然AVR算法提供了控制步进电机的有效解决方案,但是该算法在不同的时间端频率依旧存在骤升现象,因此步进电机会出现卡死现象。所以相让步进电机运行在高频状态仅仅依靠AVR算法不能胜任。在程序适当位置加上延时,能平稳加速,不出现卡死现象。但是,随之而来的是步进电机加速阶段时间延长。

Speeds(无单位)

Delay(us)

运行状态

<10

无需延时

平稳

25

10

平稳

35

10

平稳,有小噪声。

45

10

平稳

55

10

平稳,噪声变大。

    步进电机运行可靠速度选择在0至50之间。加速度确定为5,减速度确定为5.步数为5000,延时时间为10微秒.所以PID所要计算的只是速度。

4.如何进行位置控制?

    步进电机的运行方式,决定步进电机能够使用开环方式进行控制。开环状态下,能够计算步进电机接收脉冲的次数,也就能实现步进电机精确定位,也就能够根据此获得步进电机旋转圈数,或转换为步进电机转轴旋转总位移。在直线状态,就转换为皮带移动距离,进而能够判断平台大致处于何位置。

   32细分下,步进电机旋转圈数r=pluse/(32*200)。旋转一圈皮带移动60mm。

   取主轴长600mm,左侧、右侧剩下10mm。从左侧到右侧仅需10圈。也就是64000个脉冲。

理论上,统计脉冲数,便能控制住平台不撞上边缘。

开环控制总会存在一些误差,想要完全消除误差,只能采用其它方式,进行闭环控制。

5.换向过程中会遇到的问题?

    步进电机在换向过程中,往往是向某一方向快速运动,突然停止,并且在高频率下换向,这将导致步进电机卡死。因此,想要换向的前提必定是当前端口输出的频率设置为零,这样就能够解决步进电机在高频换向的情况下卡死。

总结一下,步进电机可能出现以下几种卡死现象。

  1.步进电机启动频率过高导致卡死。

  2.步进电机减速频率过高导致卡死。

  3.T型加速频率提升过快卡死。

  4.T型减速频率降低过快卡死。

  5.步进电机高频换向卡死。

  从不同情景下会出现这些情况,但是,具体只有一种卡死,就是频率变化过快导致卡死。

6.程序运行中,将运行状态设置为stop,步进电机依旧运转,什么原因?

    经过测试,发现步进电机运行状态已经被设置为零,但是,时钟依旧在进行比较输出,不断地进入中断,也就不断地拉高及拉低IO口。因此,步进电机在脉冲的输入下,依旧在旋转。如果设置步进电机运行状态停止,那么就应当关闭时钟。

     对应的函数为   TIM_Cmd(TIM4,DISABLE);虽然该函数能够解决脉冲输出问题,但是再次开启需要再次配置。(似乎又不用了----给定合适的延迟时间,给10ms延时即可。)

7.程序运行步数远远多于实际步数,怎么回事?

   这是由于T型加速算法造成的,经过测试,程序会从加速阶段进入运行阶段,但是需要很长时间才能进入减速阶段。T型算法计算出的减速阶段的值为8亿5千万。而运行步数则是进入中断的次数,想要到达减速阶段,需要运行较长时间。

8.步进电机换向停顿问题,如何解决?

    步进电机换向停顿是由于在换向过程中端口输出的脉冲数量过少,故步进电机移动缓慢,也就出现了换向停顿问题。一解决方法是增大加速度,使得一换向就有较大频率的脉冲输出。但是加速度过快倒立摆卡死。 二是减少延迟时间。

对问题5的进一步解释,换向需要完成这个动作。

  

1.检测是否换向

2.电机停转---运行状态设stop,关中断。(关闭时钟)

3.置相反位(方向位0设1,1设0)。

4.清零中断函数中的step_count

new_step_delay

Rest

PMotorPara->accel_count

PMotorPara->run_state设定为加速状态

5.Speed_Parameter()设定速度

6.使能时钟

清除PMotorPara->pulse

 

电动机视频汇总:电动机视频  

其它博文链接:  电机控制1-电机

                         电机控制4---步进电机模型及控制(1)

                         电机控制5---步进电机模型及控制(2)

                         电机控制6---步进电机模型及控制(3)

                         电机控制7---步进电机模型及控制(4)

                         电机控制8---步进电机常见问题

 

 

 

posted @ 2020-01-17 20:57  秋风不识春  阅读(3097)  评论(0编辑  收藏  举报