stm32精密控制步进电机(升级篇)

这一篇文章里会深入的对步进电机控制方法进行论述


如何避免步进电机丢转的问题

1.机械结构:排查一下传动的问题,举个例子,我的毕设里大臂机械臂的步进电机有时会有丢转问题,造成无法运动到指定位置,后面发现是因为皮带轮传动,皮带绑的不紧,造成步进电机的小直齿轮无法很好的带动大齿轮。

2.看一下供电的电流和电压:使用步进电机驱动器控制时,电源最好选用开关电源。如果其中有使用DCDC或者LDO降压的操作,要保证可以完成稳定的电流供应。

3.看一下是不是负载太大,造成末端或者是部分关节难以移动

4.进行速度变化控制,先调节一下驱动器的细分数,尝试运行条件下最快且不丢转的速度,定下此时的arr与psc值。之后再试一下运行条件下最慢且可以完成任务的速度,记录为arr2和psc2。让步进电机在一个运动周期内,先加速,后匀速,再减速,这就是一般会说到的梯型速度控制/S型速度控制方法,另外也可以使用阶梯调速的方法

5.进行闭环PID速度控制,可使用matlab仿真

6.写位置插补,或者是速度插补函数,补足运行的距离

如果上述方法还是有些误差,可以减少每次步进电机运动的脉冲数,让步进电机多运行几次,以此达到相应的距离

阶梯调速原理及代码解析

这个想法同样来自毕设,当时毕设使用脉冲数控制运动距离,发现梯型速度和S型速度控制方法都很难融入到实际成品里,也是我当时不太会写公式,索性将每次运动的总脉冲数pulse_we_need分为n份,每份脉冲结束后都会对arr和psc加/减,以此完成减速/加速的运动控制。

把总共需要运行的脉冲数分成相对应的十份,pulse1_speed4被设置为从加速到匀速的临界点脉冲,pulse1_speed7被设置为从匀速到减速的临界点脉冲。

设置定时器的句柄后,通过if判断改变十份脉冲间隔时的arr和psc值,重新设置,再打开定时器继续运行。arr和psc值越小,运行速度越快,arr和psc值越大,运行速度越慢。

定时器中断内的pulse计数大于pulse_we_need时,pulse重新置0,arr和psc值设置为工作范围内运行速度最慢的值,重新设定定时器后关闭定时器的中断。 

相关推荐

  1. 基于单片机的电机升降速并行控制

    2024-07-17 11:50:01       33 阅读
  2. 电机综合控制

    2024-07-17 11:50:01       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 11:50:01       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 11:50:01       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 11:50:01       57 阅读
  4. Python语言-面向对象

    2024-07-17 11:50:01       68 阅读

热门阅读

  1. Angular 开发编码规约

    2024-07-17 11:50:01       27 阅读
  2. 2407d,让d的printf安全

    2024-07-17 11:50:01       30 阅读
  3. 【python】python装饰器整理

    2024-07-17 11:50:01       20 阅读
  4. 金豺狼优化算法(GWO)及其Python和MATLAB实现

    2024-07-17 11:50:01       25 阅读
  5. ChatGPT等模型SQL优化提示词

    2024-07-17 11:50:01       23 阅读
  6. 使用mysql shell搭建MGR

    2024-07-17 11:50:01       25 阅读
  7. 工作常用sql 总结-长期更新

    2024-07-17 11:50:01       18 阅读
  8. 基于深度学习的游戏AI

    2024-07-17 11:50:01       21 阅读
  9. Linux Kernel 6.10 释出

    2024-07-17 11:50:01       17 阅读
  10. Django跨域问题解决

    2024-07-17 11:50:01       20 阅读
  11. layui 监听弹窗关闭并刷新父级table

    2024-07-17 11:50:01       17 阅读
  12. 【Linux】基本指令

    2024-07-17 11:50:01       21 阅读
  13. Linux内存从0到1学习笔记(8.19 ION简介)---更新中

    2024-07-17 11:50:01       20 阅读
  14. D4:知识蒸馏

    2024-07-17 11:50:01       22 阅读