• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32做PID控制,编码器取值异常

qiuqiu 2018-11-12 浏览量:1056
用10ms的定时中断取两次间隔的编码器计数差值,理论计算10m间隔计数差值值不会大于2400,但是debug检测窗口给出数值要高出很多,求教大佬是什么原因

1 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 感觉还是PID的参数的设计有问题的,要不不会差这么多的
    • 发布于 2018-11-12
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:6
  • 编码器不用定时器中断了,直接读值,看一下读出来的值对吗?调快调慢PWM输出(电机转速)看反馈的编码器值与预计的是否有差异?
    • 发布于2018-11-12
    • 举报
    • 评论 0
    • 1
    • 0

  • 不要用调试,调试会影响中断的,你直接把计数保存到内存中,空闲时间用串口发出到上位机
    • 发布于2018-11-12
    • 举报
    • 评论 0
    • 0
    • 0

  • debug会影响中断,而且一般都是读编码器脉冲个数,当然也可以测量电平宽度
    • 发布于2018-11-17
    • 举报
    • 评论 0
    • 0
    • 0

  • debug窗口的那个值本身就不能反映这种比较快速的变化的,这种可以考虑添加打印
    • 发布于2018-11-21
    • 举报
    • 评论 0
    • 0
    • 0

  • debug会导致你的程序中断,这样就影响执行了,建议用打印输出的方式调试
    • 发布于2018-12-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 这么快速的刷新不一定会及时显示出来,直接用打印的方式好一点
    • 发布于2018-12-19
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32做PID控制,编码器取值异常