无人机项目跟踪记录四十九----角速度环的pid控制详解

角速度环的pid控制的函数是void CtrlAttiRate(void),具体解释如下:

首先初始化变量,获取陀螺仪读取的角速度。

    float yawRateTarget=0;                                   //期望的偏航角速度
	
    static uint32_t tPrev=0;
	  float gryoPitch = imu.gyro[PITCH]-imu.gyroOffset[PITCH];   //当前俯仰值
	  float gryoRoll = imu.gyro[ROLL]-imu.gyroOffset[ROLL];      //当前横滚值
	  float gryoYaw = imu.gyro[YAW]-imu.gyroOffset[YAW];         //当前航向值(也既是航向值)

计算两次调用的间隔时间:

    float dt=0,t=0;                    //两次调用间隔时间
    t=micros();
    dt=(tPrev>0)?(t-tPrev):0;
    tPrev=t;

获取希望的偏航角:为何取负值没有搞清楚,估计与机体系和地理系变换有关系。如果陀螺仪读取的角度小于某个阈值就置为零。


    yawRateTarget=-(float)RC_DATA.YAW;  //希望的偏航角
    //注意,原来的pid参数,对应的是 ad值,故转之
#ifdef IMU_SW
	if(fabs(gryoPitch) < 0.001)
	{
		gryoPitch = 0;
	}
	if(fabs(gryoRoll) < 0.001)
	{
		gryoRoll = 0;
	}
	if(fabs(gryoYaw) < 0.001)
	{
		gryoYaw = 0;
	}

做角速度环的PID自整定,与角度环相似。注意一点就是,角度环是大调整,角速度环是内环细调,所以角度环条用的间隔时间长,角速度环的间隔时间短。

    PID_Postion_Cal(&pitch_rate_PID,pitch_angle_PID.Output,gryoPitch*180.0f/M_PI_F,dt);   //做角速度环的PID自整定,俯仰角的自整定
    PID_Postion_Cal(&roll_rate_PID,roll_angle_PID.Output,gryoRoll*180.0f/M_PI_F,dt);//gyroxGloble    //做角速度环的PID自整定,横滚角的自整定
    PID_Postion_Cal(&yaw_rate_PID,yawRateTarget,gryoYaw*180.0f/M_PI_F,dt);//DMP_DATA.GYROz   //做角速度环的PID自整定,航向角的自整定
#else

    //原参数对应于 DMP的直接输出gyro , 是deg.  且原DMP之后的处理运算是错误的
    PID_Postion_Cal(&pitch_rate_PID,pitch_angle_PID.Output,imu.gyro[PITCH]*DMP_GYRO_SCALE,0);
    PID_Postion_Cal(&roll_rate_PID,roll_angle_PID.Output,imu.gyro[ROLL]*DMP_GYRO_SCALE,0);//gyroxGloble
    PID_Postion_Cal(&yaw_rate_PID,yawRateTarget,imu.gyro[YAW]*DMP_GYRO_SCALE,0);          //DMP_DATA.GYROz
#endif

    Pitch = pitch_rate_PID.Output;
    Roll  = roll_rate_PID.Output;
    Yaw   = yaw_rate_PID.Output;
	

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wyssailing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值