赞
踩
在动态控制中,我们通过调整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;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。