qq_61200313 2023-03-18 19:26 采纳率: 20%
浏览 28
已结题

关于#算法#的问题:我想用pid算法控制电机,我这里编码器用外部中断记录脉冲数,测速用定时中断(进中断后记录脉冲数)把这个脉冲数当成速度,带到pid里面,然后返回值给占空比

我想用pid算法控制电机,我这里编码器用外部中断记录脉冲数,测速用定时中断(进中断后记录脉冲数)把这个脉冲数当成速度,带到pid里面,然后返回值给占空比,这里面有什么问题吗?我的电机现在不转了,不知道哪里出了问题,求指导

现在的情况是不加Pid函数,电机就转,我那个测速也正常(先不考虑,外部中断的信号毛刺,和测速公式,因为我的就是简单地用脉冲数除了1ms当速度了,没去考虑编码器那个比例)。
总之就是我的速度是粗测出来的,然后后面有的问题,我实在想不出来了,求帮助

  • 写回答

2条回答 默认 最新

  • 追cium 2023-03-18 19:29
    关注

    参考GPT和自己的思路:

    根据你提供的信息,我能找到一些潜在的问题。
    首先,你需要确保你的pid算法实现正确。同时,你也需要检查你的定时中断是否按照你的期望进行。另一个需要考虑的问题是,电机驱动电路是否正确连接。最后,你还需要检查编码器的输出是否正确。

    为了更好地排查问题,你可以通过以下方式进行调试:
    1.检查你的pid算法中是否有错误。你可以手动设置一个固定的占空比,看看电机是否会启动。
    2.检查你的定时中断是否正常工作。你可以打开示波器,查看定时器触发的时间是否正确。
    3.检查电机驱动电路。确保电机的电源和控制信号都正确连接。
    4.检查编码器的输出是否正确。你可以手动旋转电机,观察编码器的输出是否符合你的期望。

    希望以上信息对你有所帮助,并能解决你的问题。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月29日
  • 创建了问题 3月18日

悬赏问题

  • ¥20 思科:Router c3600 MN-4E插槽
  • ¥15 16进制修改视频的元数据
  • ¥15 岛津txt格式文件转nirs格式
  • ¥15 石墨烯磁表面等离子体
  • ¥15 angular 项目无法启动
  • ¥15 安装wampserver,图标绿色,但是无法进入软件
  • ¥15 C++ MFC 标准库 加密解密解惑
  • ¥15 两条数据合并成一条数据
  • ¥15 Ubuntu虚拟机设置
  • ¥15 comsol三维模型中磁场为什么没有“速度(洛伦兹项)”这一选项