MWC代码看了很长时间了,PID部分还有点疑问,忘高手指点...
本帖最后由 lzb1989666 于 2013-8-1 18:51 编辑//**** PITCH & ROLL & YAW PID ****
for(axis=0;axis<3;axis++)
{
if (accMode == 1 && axis<2 ) { //LEVEL MODE
errorAngle = rcCommand/2 - angle/2;
PTerm = (errorAngle)*PLEVEL8/50 - gyroData*dynP8/10;
errorAngleI +=errorAngle;
errorAngleI= constrain(errorAngleI,-5000,+5000); //WindUp
ITerm = errorAngleI *ILEVEL8/2000;
} else { //ACRO MODE or YAW axis
error = rcCommand*10/P8 - gyroData;
PTerm = rcCommand-gyroData*dynP8/10;
errorGyroI += error;
errorGyroI= constrain(errorGyroI,-2000,+2000); //WindUp
if (abs(gyroData)>80) errorGyroI = 0;
ITerm = errorGyroI*I8/1000;
}
delta = gyroData - lastGyro;
DTerm = (delta1+delta2+delta+1)*dynD8/3;
delta2 = delta1;
delta1 = delta;
lastGyro = gyroData;
axisPID =PTerm + ITerm - DTerm;
}
为什么要减去gyroData*dynP8/10这项,还有红色部分为什么会不同啊,有什么区别,还望大神指点,小弟谢了
另外LEVEL与ACRO MODE or YAW axis模式有什么不同
请问楼组知道传感器数据是在哪获得的不?看半天没看出来... 挺一下,我也有同样的问题 我也有同样的问题
页:
[1]