智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2826|回复: 3
打印 上一主题 下一主题

[控制类] pid求解决

[复制链接]

1

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
65
威望
39
贡献
26
兑换币
21
注册时间
2019-7-12
在线时间
0 小时
跳转到指定楼层
1#
发表于 2019-7-14 15:55:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
           求大佬帮解决
           duoji_pwm = PID_realize( h );  
            ftm_pwm_duty(ftm3, ftm_ch3, duoji_pwm);
      如果是这样算出来的结果舵机不动


            duoji_pwm = 90;     
            ftm_pwm_duty(ftm3, ftm_ch3, duoji_pwm);
          如果是这样的话舵机会转的很好

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

0

主题

8

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
203
威望
126
贡献
77
兑换币
82
注册时间
2017-3-30
在线时间
0 小时
毕业学校
阿坝师范学院
2#
发表于 2019-7-14 23:09:57 | 只看该作者
程序都不放出来怎么看
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
65
威望
39
贡献
26
兑换币
21
注册时间
2019-7-12
在线时间
0 小时
3#
 楼主| 发表于 2019-7-16 14:45:20 | 只看该作者
1092639052 发表于 2019-7-14 23:09
程序都不放出来怎么看

uint32 PID_realize(int x) //x为距离中间的偏差
{
  uint8 out;   
  pid.err = x;
  out = (uint8)(s3010_middle + pid.err * pid.Kp + (pid.err - pid.err_last) * pid.Kd);   
  pid.err_last = pid.err;  
  return out;
}
我感觉就是这个算法有问题,可以运行就是这个算法好像给不出结果

回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

注册会员

Rank: 2

积分
91
威望
57
贡献
30
兑换币
34
注册时间
2017-10-31
在线时间
2 小时
4#
发表于 2019-7-18 15:12:42 | 只看该作者
如果,偏差没问题,那么就是uint8可能有问题了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-5-7 21:39 , Processed in 0.071225 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表