四旋翼飞行器控制pid学习笔记

来源:CSDN 浏览量:273 发布时间:2018-12-27 21:40:20

PID控制学习笔记


——凡事必躬亲,身体而力行,化理论为实践,方得始终。


研究PID,首先应当把PID拆解开来,便是P(比例控制)、I(积分控制)、D(微分控制),


比例控制P越大,飞行器的动作反应越快,反之则越慢;


D则为飞行器靠近目标位置的一个阻力;


I会根据误差和误差经历的时间进行积分,是为了防止外界环境对于飞行轨迹的影响,可以在合适的时间给P一个合适的力。其值决定了在外界影响的情况下回到正确轨迹的能力。


形象理解来看的话,P值是飞行器的修正轨迹基础动作,D用来消除震荡(阻尼的作用),I为一个辅助参数,当飞行器反应慢了就帮他一下(但一定要注意不要设定的太大,那样会导致帮助“过度”,导致过冲)。也就是说,P的回复力是系统平衡的主力,D是阻尼力,始终是抑制作用,I只能作为辅助参数来辅助P。PID的参数需要根据设备的实际调试情况进行现场调试。因此,调试PID参数,才是理解PID控制最好的方法。


下面来看一下通用飞控代码里的具体操作PID control:


首先得到前后两次的误差量,作为微分部分的derror;


之后对微分部分进行低通滤波,去除信号的高频部分噪声(采用软件建构在硬件之上的低通滤波器);


更新信号量,更新微分结果以及误差结果;


分别输出PID三个通道的值:


P通道输出,直接对于当下的误差乘上当前误差量,作为修正动作的幅度;


I通道输出,飞控里一般执行成线性叠加,作为飞行误差辅助修正量的判断标

准;


D通道输出,d参数乘上经滤波后的微分结果,控制目标动作的幅度,作为 阻尼参数使用。


简单来说,拿高度的PID计算来举个例子,P就是告诉飞机该加多大的油门去达到遥控器或者代码制定的高度,I就是一个误差的积累过程,可以体现为对误差对于时间的积分或者简单的线性叠加,为防止i值过大导致调整高度的动作逐渐失去理智,一定要加上一个限幅函数来限制i的上下限,D其实是最难从数学角度理解的控制量,对前后两次的误差与采样时间(PIDtime)作比,来控制机体调整高度的动作幅度,可以将D理解为润滑剂,让动作不要显得太跳,无人车其实对动作的要求没有那么高,甚至仅用较大的Kp值控制就行,但无人机作为在空中调整六轴姿态的机体,稳定性便成为了重中之重,因此编写无人机飞控姿态代码首先应当考虑的问题便是如何提高无人机的飞行稳定性。


下面简要介绍一下常用的飞控PID算法:


飞控采用通用串级PID控制方法,实质为增量级PID控制器。串级pid实际上就是两个pid串在一起,分为内环pid和外环pid。此处,飞控一般使用外环p控制,内环pid控制。通俗来讲的话,外环就是直接的角度控制量转化为角速度,宏观上控制飞机的控制灵敏度,内环pid就是对角速度变化的控制。在上述通用飞控pid控制中,外环pid的作用实际上就是对角度误差加一个控制量,以此将飞机的姿态调整动作柔滑化。


尾述:Pid实质上是一个闭环的自动控制技术,是基于反馈的概念以减少不确定性,因此理解并运用pid的关键便是要理解什么是闭环控制,其次什么叫做数据的反馈以及反馈的表现形式,不过做重要的是根据合适的情形选用合适的pid控制算法。

--------------------- 

原文:https://blog.csdn.net/qq_42884619/article/details/85158052