|
自己写的代码,pid代码是最基本的那种
void pid()
{
getGyrAcc();
/得出角度/
Input=y;
/先测试两个桨的,y为互补滤波得出的角度/
unsigned long now = millis();
double timeChange = (double)(now - lastTime)/10;
/时间/
double error = Setpoint - Input;
errSum += (error * timeChange);
double dErr = (error - lastErr) / timeChange;
/pid计算/
Output = kp * error + ki * errSum + kd * dErr;
/Output输出pid计算后的数据/
lastErr = error;
lastTime = now;
}
不知如何调整,求大神指点,输入的是角度,单位是度啊
|
欢迎继续阅读楼主其他信息
|