|
本帖最后由 jeremyshw 于 2013-8-7 11:34 编辑
加上p调到等幅震荡后,再加D,老是增强震荡,没有抑制额。。。。
求解答。。。
附上我的pid
{
// iError //iError为E[k]项
// LastError //sptr->LastError为E[k-1]项
// PrevError; //sptr->PrevError为E[k-2]项
// delta u(k)=Kp*[e(k)-e(k-1)] + Ki*e(k) + Kd*[e(k)-2*e(k-1)+e(k-2)]
pError=iError-LastError;
dError=iError-2*(LastError)+PrevError;
iIncpid = P * pError + I * iError_y + D * dError;
//存储误差,用于下次计算
LastError = iError; // e(k-1)= e(k) ,而新的e(k)则是外部传递进来的,就是执行一次,就要更新一次
PrevError = LastError;//e(k-2)=e(k-1)
}
// printf("iIncpid_y=%.0f\n ",iIncpid_y);
return (iIncpid);//返回增量值
|
欢迎继续阅读楼主其他信息
|