打印
[四轴技术交流]

如何从零开始调节四旋翼的PID

[复制链接]
1396|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
adeli|  楼主 | 2016-7-23 09:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在自己编写了四旋翼控制程序,使用的是角速度和角度串级pid算法,如何开始调PID参数呢?下面是我控制算法的代码,control_inner是内环控制,输入的是陀螺仪数据,control_shell是外环控制,输入的是四元数姿态解算出来的姿态角,各位牛人帮忙看看有什么问题吗?
void control_inner(float x,float y,float z)
{
//  Xinner.Kp=5;
  Xinner.Ex=Xshell.Out-x*0.0005327/AtR;
       
  Xinner.Eix+=Xinner.Ex;
  Xinner.Out=Xinner.Kp * Xinner.Ex + \
             Xinner.Ki * Xinner.Eix + \
             Xinner.Kd * (mpu_gryo_data_History.X-x);
  
//  Yinner.Kp=1;
  Yinner.Ex=Yshell.Out-y*0.0005327/AtR;
  Yinner.Eix+=Yinner.Ex;
  Yinner.Out=Yinner.Kp * Yinner.Ex + \
             Yinner.Ki * Yinner.Eix + \
             Yinner.Kd * (mpu_gryo_data_History.Y-y);
//  Zinner.Kp=1;
  Zinner.Ex=Zshell.Out-z*0.0005327/AtR;
  Zinner.Eix+=Zinner.Ex;
  Zinner.Out=Zinner.Kp * Zinner.Ex + \
             Zinner.Ki * Zinner.Eix + \
             Zinner.Kd * (mpu_gryo_data_History.Z-z);
        mpu_gryo_data_History.Y=y;
        mpu_gryo_data_History.X=x;
        mpu_gryo_data_History.Z=z;
}

void control_shell(float x,float y,float z)
{
//        Xshell.Kp=3;
  Xshell.Ex=(float)(RC_mid - rc_data.pitch)/100-x;
  Xshell.Eix+=Xshell.Ex;
        if(Xshell.Eix>13000)
                Xshell.Eix=13000;
        if(Xshell.Eix<-13000)
                Xshell.Eix=-13000;
       
  Xshell.Out=Xshell.Kp * Xshell.Ex + \
            Xshell.Ki * Xshell.Eix ;
  
//  Yshell.Kp=1;
  Yshell.Ex=(RC_mid - rc_data.roll)/100-y;
  Yshell.Eix+=Yshell.Ex;
        if(Yshell.Eix>13000)
                Yshell.Eix=13000;
        if(Yshell.Eix<-13000)
                Yshell.Eix=-13000;
       
  Yshell.Out=Yshell.Kp * Yshell.Ex + \
            Yshell.Ki * Yshell.Eix ;
  
//  Zshell.Kp=1;
  Zshell.Ex=(RC_mid - rc_data.yaw)/100-z;
  Zshell.Eix+=Zshell.Ex;
        if(Zshell.Eix>13000)
                Zshell.Eix=13000;
        if(Zshell.Eix<-13000)
                Zshell.Eix=-13000;
       
  Zshell.Out=Zshell.Kp * Zshell.Ex + \
            Zshell.Ki * Zshell.Eix ;
  
}

相关帖子

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

本版积分规则

4

主题

32

帖子

1

粉丝