智能车制作

 找回密码
 注册

扫一扫,访问微社区

楼主: vickyw
打印 上一主题 下一主题

求PID速度控制程序,谢了

  [复制链接]

0

主题

8

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
247
威望
199
贡献
36
兑换币
14
注册时间
2009-9-26
在线时间
6 小时
11#
发表于 2009-10-25 16:51:37 | 只看该作者
舵机分档是啥意思啊?
回复 支持 反对

使用道具 举报

7

主题

262

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2478
威望
499
贡献
1803
兑换币
0
注册时间
2009-5-12
在线时间
88 小时
12#
发表于 2009-10-26 22:08:23 | 只看该作者
本帖最后由 peilet 于 2009-10-26 22:29 编辑

下面提供一组最简单的pid伪代码和C代码

previous_error = 0
integral = 0
start:
  error = setpoint_speed - actual_speed
  integral = integral + (error*dt)
  derivative = (error - previous_error)/dt
  output = (Kp*error) + (Ki*integral) + (Kd*derivative)
  previous_error = error
  wait(dt)
  goto start



C:

typedef struct
{
double dState; // Last position input
double iState; // Integrator state
double iMax, iMin;
// Maximum and minimum allowable integrator state
double        iGain, // integral gain
pGain, // proportional gain
dGain; // derivative gain
} SPid;
double UpdatePID(SPid * pid, double error, double position)
{
double pTerm,
dTerm, iTerm;
pTerm = pid->pGain * error;
// calculate the proportional term
// calculate the integral state with appropriate limiting
pid->iState += error;
if (pid->iState > pid->iMax) pid->iState = pid->iMax;
else if (pid->iState
<
pid->iMin) pid->iState = pid->iMin;
iTerm = pid->iGain * iState; // calculate the integral term
dTerm = pid->dGain * (position - pid->dState);
pid->dState = position;
return pTerm + iTerm - dTerm;
}

回复 支持 反对

使用道具 举报

7

主题

262

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2478
威望
499
贡献
1803
兑换币
0
注册时间
2009-5-12
在线时间
88 小时
13#
发表于 2009-10-26 22:09:20 | 只看该作者
舵机分档是什么意思啊??
wokao 发表于 2009-10-18 18:11


就是非线性控制
回复 支持 反对

使用道具 举报

3

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
301
威望
219
贡献
26
兑换币
4
注册时间
2009-10-25
在线时间
28 小时
14#
发表于 2010-3-4 19:39:40 | 只看该作者
对呀,各位大侠啊,哪位帮帮忙呢?
回复 支持 反对

使用道具 举报

0

主题

125

帖子

0

精华

高级会员

Rank: 4

积分
578
威望
376
贡献
76
兑换币
0
注册时间
2009-8-23
在线时间
63 小时
15#
发表于 2010-3-24 19:32:30 | 只看该作者
速度要调节的平滑才行!求解?
回复 支持 反对

使用道具 举报

4

主题

207

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
QQ
威望
1255
贡献
688
兑换币
0
注册时间
2009-11-12
在线时间
25 小时
16#
发表于 2010-3-24 19:52:43 | 只看该作者
什么事数码舵机啊
回复 支持 反对

使用道具 举报

7

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
356
威望
237
贡献
21
兑换币
0
注册时间
2009-10-28
在线时间
49 小时
17#
发表于 2010-4-3 15:38:46 | 只看该作者
回复 16# 锦芫


    用数字舵机违规的
回复 支持 反对

使用道具 举报

9

主题

79

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
493
QQ
威望
348
贡献
111
兑换币
18
注册时间
2010-4-4
在线时间
17 小时
18#
发表于 2010-4-5 14:38:28 | 只看该作者
权威一点的快来解答一下!!舵机到底采用PI还是PD控制,用位置式还是增量式?
回复 支持 反对

使用道具 举报

35

主题

168

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1215
威望
416
贡献
249
兑换币
22
注册时间
2009-9-10
在线时间
275 小时
19#
发表于 2010-4-5 20:45:12 | 只看该作者
受教啦 谢谢
回复 支持 反对

使用道具 举报

35

主题

168

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1215
威望
416
贡献
249
兑换币
22
注册时间
2009-9-10
在线时间
275 小时
20#
发表于 2010-4-5 20:46:13 | 只看该作者
受教啦 谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-26 17:50 , Processed in 0.056213 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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