打印

初写PID,问题多多

[复制链接]
9370|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
CCALM|  楼主 | 2013-11-3 17:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神帮我纠正下我的PID:


void pid_control()
{
        float P=7,I=0,D=3;          //灵敏 力度  3.9          2.9/0.954
        float rool=0,pitch=0;
//        float roolb=0,pitchb=0;  //上上一次角度
        float roola=0,pitcha=0;  //上一次角度
        float Pmax=300;
        float Rmax=300;

        lb();        
        IMUupdate(AX,AY,GZ,GX,GY,AZ        );//更新陀螺仪数据
/*
俯仰角PID---------------------------------------------------------------------------------
*/
        pitch = P * Pitch + I * pitcha - D * GX ;
//        pitchb=pitcha;
        pitcha=Pitch;

        if(pitch>Pmax) pitch=Pmax;
        if(pitch<-Pmax) pitch=-Pmax;
        PP=pitch;

/*
翻滚角PID---------------------------------------------------------------------------------
*/               
        rool = -P * Rool + I * roola - D * GY ;
//        roolb=roola;
        roola=Rool;

        if(rool>Rmax) rool=Rmax;
        if(rool<-Rmax) rool=-Rmax;
        RR=rool;

        M1=- rool - pitch;
        M2=+ rool + pitch;
        M3=- rool + pitch;
        M4=+ rool - pitch;
        
        MOTO_PWM(M1,M2,M3,M4);
}

相关帖子

沙发
dictionary| | 2013-11-12 08:08 | 只看该作者
float P=7,I=0,D=3;          //灵敏 力度  3.9          2.9/0.954
        float rool=0,pitch=0;
//        float roolb=0,pitchb=0;  //上上一次角度
        float roola=0,pitcha=0;  //上一次角度
        float Pmax=300;
        float Rmax=300;

那么多float  
先想办法去掉这些 float 再说 好了

使用特权

评论回复
板凳
290399937| | 2013-11-12 08:21 | 只看该作者
表示.什么pid算法 !没弄过!我只弄过求平均!哈哈。要好好折腾!

使用特权

评论回复
地板
meilidianzhi| | 2013-12-7 01:06 | 只看该作者
我的也没成功

使用特权

评论回复
5
qbwww| | 2021-9-26 15:30 | 只看该作者
更新陀螺仪数据

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

8

帖子

1

粉丝