四轴飞行器PID调参建议

在动态控制中,我们通过调整PID三个参数来获得动力,同时消除振荡,找到对你当前的飞行场景来说更优的手感。

P(Propotional)是比例的简称。

“P”单元控制着控制系统的所有动力,以达到所需的输出。如果“P”单元没有足够的输出,无人机就没有足够的动力来反馈你的控制命令;如果“P”单元输出过大,无人机就会反应过度,发生振荡。它的特点和弹簧完全一致。

简单来说,它的作用就是测量无人机当前位置与目标位置的距离。这个距离越远,就需要更大的力给掰回去。

P越大,“弹簧”越硬,回复的速度越快,震动的频率也越高。

所以一般建议设置P值较大,增强无人机的反应能力

如果闭环控制中只有P,结果就是飞机会持续无休止地振荡,这个时候就要引入D来消除振荡。

D(Differential)是微分的简称。

D就是通过微分的方法来计算运动速度。用人话来说,就是D越大在物体运动时的阻力就越大。这个阻力和物体的运动方向相反。

你可以把它想象成把振动的物体丢到液体里的过程。

D越大,液体密度越大,“物体”在运动时的阻力就越大,就能更快静止下来。

稍微加一点D,P带来的振幅会变小,无人机会更快地停在目标位置。

但如果D值过大,这个阻力会抵消回复力,让控制变得非常迟钝,整个运动过程就会显得有些油腻。

根据需求调节,一般是航拍机追求画面比较稳定,所以普遍较高。

而穿越机,最求反应迅速,考虑跟多的就是P高一点,D小一点

I(Integral)是积分的简称。

“I”单元对外界干扰或存在的系统误差进行纠正,以确保最后的输出符合预期。

飞机会不停地检测位置是否存在偏差,如果存在的偏差越大、持续时间越长,就会产生一个越大的力来矫正。

一般情况下,我们可以把I值设的高一点,使得飞行器尽快从误差值恢复到目标值

但需要注意的是,I值过大,使得飞行器恢复力过大也会产生振荡。

最后提供一个小飞机的PID作为参考,每个飞行器电机与重量都不同,所以一般而言原厂的PID参数就足够日常飞行了

void PID_ParamInit(void)
{
	pidRateX.kp = 2.0f;//内环,角速度环
	pidRateY.kp = 2.0f;
	pidRateZ.kp = 4.0f;

	pidRateX.ki = 0.0f;
	pidRateY.ki = 0.0f;
	pidRateZ.ki = 0.0f;	

	pidRateX.kd = 0.08f;
	pidRateY.kd = 0.08f;
	pidRateZ.kd = 0.5f;	

	pidPitch.kp	= 7.0f;//外环,角度环
	pidRoll.kp	= 7.0f;
	pidYaw.kp	= 7.0f;	
}

  • 1
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值