高级会员
- 积分
- 642
- 威望
- 309
- 贡献
- 237
- 兑换币
- 171
- 注册时间
- 2012-12-31
- 在线时间
- 48 小时
- 毕业学校
- 青岛理工大学教务处
|
void duoji_pid(void)
{
float kp,ki,kd;
float pk,ik,dk;
float dp;
kp=18;
ki=0.0;
kd=0.0;
ep=set_mid-pian_ju;//其中set_mid是赛道中心,pian_ju是偏差
pk=ep-ep1;
ik=ep;
dk=ep-2*ep1+ep2;
dp=kp*pk+ki*ik+kd*dk;
ep2=ep1;
ep1=ep;
shuchu=shuchu+(int)dp;//shuchu是全局变量
if(shuchu>=1900)//这地方是怕舵机左右打死,进行一下限制
shuchu=1900;
if(shuchu<=1100)
shuchu=1100;
pwm2_init(shuchu);
}
请各位看看这段代码有没有错误,现在舵机两边打角老是不同,有时候一边根本不打角,舵机PID调节的时间是10毫秒
|
|