智能车制作

标题: 求PID速度控制程序,谢了 [打印本页]

作者: vickyw    时间: 2008-5-23 18:17
标题: 求PID速度控制程序,谢了
求PID速度控制程序,谢了
作者: 920lyj    时间: 2008-6-23 06:34
标题: Re:求PID速度控制程序,谢了
<><FONT style="BACKGROUND-COLOR: #e1ffff">我也想要一个,有没有高手呀</FONT></P>
作者: Roacher    时间: 2008-6-25 23:30
标题: Re:求PID速度控制程序,谢了
&nbsp;&nbsp; 是啊,现在发现速度控制好难&nbsp;&nbsp; 有没有什么好的方法啊?&nbsp;&nbsp; 多谢提供
作者: Flyingpigone    时间: 2008-7-3 18:45
标题: Re:求PID速度控制程序,谢了
<>其实速度控制不是那么重要的,重要的是舵机的控制。</P><P>舵机控制好了,速度根本不需要降低</P>
作者: zsy7758758    时间: 2008-7-7 03:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: piaoyij3    时间: 2008-7-8 01:37
标题: Re:求PID速度控制程序,谢了
大家认为舵机是给的档位多点好呢,还是少点好?
作者: luohua5280    时间: 2008-7-14 17:13
标题: Re:求PID速度控制程序,谢了
舵机不要分太多的档,但是每档的转角要注意了
作者: 薄子太    时间: 2009-10-12 20:33
高手哪里去了
作者: 早点睡觉。    时间: 2009-10-14 13:19

用数码舵机啦
作者: wokao    时间: 2009-10-18 18:11
舵机分档是什么意思啊??
作者: haerbinsl    时间: 2009-10-25 16:51
舵机分档是啥意思啊?
作者: peilet    时间: 2009-10-26 22:08
本帖最后由 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;
}


作者: peilet    时间: 2009-10-26 22:09
舵机分档是什么意思啊??
wokao 发表于 2009-10-18 18:11


就是非线性控制
作者: 0708140119    时间: 2010-3-4 19:39
对呀,各位大侠啊,哪位帮帮忙呢?
作者: lfllcy    时间: 2010-3-24 19:32
速度要调节的平滑才行!求解?
作者: 锦芫    时间: 2010-3-24 19:52
什么事数码舵机啊
作者: 西子枫林    时间: 2010-4-3 15:38
回复 16# 锦芫


    用数字舵机违规的
作者: anhuipl2010    时间: 2010-4-5 14:38
权威一点的快来解答一下!!舵机到底采用PI还是PD控制,用位置式还是增量式?
作者: hufangwu    时间: 2010-4-5 20:45
受教啦 谢谢
作者: hufangwu    时间: 2010-4-5 20:46
受教啦 谢谢
作者: mznch    时间: 2010-4-8 11:00
个人认为PD控制舵机较好~
作者: fengnan    时间: 2010-5-7 19:44
就是对应不同的位置对应不同的角度
作者: 武当奇人    时间: 2010-5-8 15:13
来打酱油
作者: henryxuzhou    时间: 2010-5-8 17:31
同求
作者: henryxuzhou    时间: 2010-5-8 17:31
同求
作者: henryxuzhou    时间: 2010-5-8 17:31
同求
作者: 994824405    时间: 2010-5-8 21:58
?44
作者: lfllcy    时间: 2010-6-1 15:22
舵机用增量式的pi就够了
作者: adrian    时间: 2010-6-1 19:24
B车的机械结构不好啊,右转和左转舵机打同样角度,车子的转弯效果有很大差别
作者: simon3panda    时间: 2010-7-7 10:16
饿。。。控速我都无语了。。。
作者: racwin    时间: 2010-11-1 13:16
舵机的连贯性控制还是很重要的,PD就可以,唉,正在搜集资料中
作者: 437334816    时间: 2010-11-1 15:04
一次转过多少度。
作者: yyyzrxh    时间: 2013-5-10 11:12
我感觉我的舵机程序没有分档啊。。。。。。。。。。。。。。。。
作者: 且听风吟456    时间: 2014-5-23 20:59
peilet 发表于 2009-10-26 22:08
下面提供一组最简单的pid伪代码和C代码

previous_error = 0

两个问题想请教下:
1,double position  这个变量啥作用?
2 ,这个函数是位置式PID吗? 它返回的值直接赋给PWM波吗?

作者: 且听风吟456    时间: 2014-5-23 21:01
peilet 发表于 2009-10-26 22:08
下面提供一组最简单的pid伪代码和C代码

previous_error = 0

两个问题想请教下:
1,double position  这个变量啥作用?
2 ,这个函数是位置式PID吗? 它返回的值直接赋给PWM波吗?
谢谢





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2