四轴飞行器的位置式PID控制和增量式PID控制

在开始本文的描述前,我们先来看看什么叫PID控制器。P是Proportional的简称,I是Integral的简称,D是Derivative的简称,合并起来,PID控制器指的就是是比例,积分和微分控制器,用公式表示如下(e是指设定值和当前值的误差,t是指当前的时间)。
公式一:pid

以离散的数字方式表示如下(其中,k表示某个时刻,e(k)就表示某个时刻的误差值)。

公式二:pid2

以四轴飞行器为例,假定我们每1ms读取一次陀螺仪和加速度的数值,并计算到姿态pitch和roll,再假定我们的目前姿态是水平状态,即pitch=0,roll=0,那么我们就可以得到某个时刻的PID计算公式如下图(其中A代表的是姿态角)。

公式三:pid3

上述公式就是我们在四轴飞行器源代码里面经常看到的编程方法,通常,我们把微分控制的姿态差直接用陀螺仪的数据来表示,因为从陀螺仪读取出来的数据代表的就是现在和上一次的角速度差,乘以1ms的时间差,即为角度差,因而公式变为。

公式四:pid4

对于简单的四轴飞行,积分不是必要的条件,而且积分使用不好的情况下,会对四轴飞行器的稳定性产生很大影响,所以对于四轴飞行器初学者来说,我们可以先去除积分项,把公式简化成下面的样子。

公式五:pid6

就这样,一个简单的四轴飞行器的PID控制公式就出现在我们面前了。把该公式变换成代码,即可以实现四轴飞行器的PID控制。

从上面的描述,我们可知,这是一个位置式的PID控制器,即我们是把当前位置和水平位置作为误差来进行PID控制,从而实现四轴飞行器的水平飞行的。增量式PID和位置式PID的不同就在于增量PID控制是把位置的变化量作为控制量。这样一来,我们可以得到下述的计算公式。

公式六:pid7

从上面公式,我们可以看出,积分项累加的结果就是当前姿态减去初始姿态,假定初始姿态为水平状态,那么姿态增量的积分就是当前的姿态。比例控制的是当前姿态相对于上一姿态的增量,根据我们之前的描述,可以用陀螺仪数据来表示。假定我们忽略微风项的控制,那么公式可以简化为:

公式七:pid8

把公式七和公式五做对比,我们可以知道,在四轴飞行器中,位置式的PD控制相当于增量式PID的PI控制。把位置式PID控制和增量式PID控制组合在一起,就可以组成串级PID控制。

上文详细描述了位置式和增量式PID控制,并引出了串级PID控制的概念,如需转载,请勿用于商业目的,并注明:该文章出自圆点博士无人机www.bspilot.com


  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
今天本来也没做好起飞的准备,不过感觉老是在屋里调有些东西是观察不到的,因此就冒险去户外飞了一下。果然。。。。。。坠机了,原因是其中一个非自紧螺旋桨的螺丝松了,稍后上图,之前也松过一次,没处理好,这次得到教训了。这一摔就是400块钱没了,维修也得1到2个星期。 目前的功能: 1.开启传感器低通滤波98Hz,滤掉电机震动对加速度计和陀螺仪的影响。 2.磁力计现场校准,代码直接完成,不需要PC干预。换个地方飞不用再带个电脑做校准了。 3.陀螺仪零偏自校准 4.加速度计零偏和灵敏度校准 4.代码时间片管理,姿态融合500Hz,PID控制200Hz 5.位置PID控制控制参数采用kp,Ti,Td,从今天飞行状况来看,此功能日后需大力改进 6.固定航向模。日后加入可控航向。 7.串口在线调试,支持在线参数保存和读取,采用GD32F103内部Flash来保存参数,不用外扩存储芯片,也方便调试PID参数和磁力计校准。 8.飞行模:x模 自己设计的飞控板第二版,兼容F10x/F2xx/F4xx系列MCU,正面:外扩4个PWMin外接遥控接收机,4个PWMout外接motor,4个PWM备用,1个DCMI摄像头接口,1个USART1接蓝牙模块,1个SPI可接SPI nand。外接TF卡用于存储视频 整机:两个白色轴中间是机头,右边白色轴上是之前做的蓝牙模块,整机标配:450机架,980kv电机,好盈20A电调,11.1V-3S动力电池,7通道接收机,锂电池低压报警器,桨1047 PID分两种位置增量,我采用的是位置,将Ki和Kd用Ti和Td的形来表达,并带入到2-3中,ek=角度的期望-传感器输出的角度,所用的PID三个参数是:Kp、Ti、Td。 公如图所示: 四轴PID控制的目的就是将接收到的遥控的控制信号(一般有油门THR、升降舵ELE(对应pitch)、副翼Ail(对应roll)、方向舵RUD(对应yaw))与飞控板本身计算得出pitch、roll、yaw做比较,分别得出它们之间的误差值,然后将Kp、Ti、Td与这个误差值结合得出PID输出(PID_pitch、PID_roll或者PID_yaw),再将这三个PID输出与油门结合在一起算出送到每一个电调的PWM数值,从而控制每一个电机的转动。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值