5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 841|回复: 1
打印 上一主题 下一主题

求助哦,用增量式pid,为什么加D之后感觉是加强震荡,而不是抑制呢。。。

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-7 10:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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);//返回增量值




欢迎继续阅读楼主其他信息

沙发
发表于 2013-8-7 21:17 | 只看该作者
d是控制角速度,你用是角度的微分,这样可以用,不过要注意有没有滞后,还有,d输出应该反值,你是不是正反搞反了,也可以调小d看看嘛
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表