先说下什么是四旋翼飞行器

名称:四旋翼飞行器
组件:一个机架,一个陀螺仪,四个无刷直流电机,一个电池,一块单片机(能飞起来的最基本配置)
原理:利用四个电机旋转产生的反作用力托起飞行器上升,利用单片机和飞行控制算法控制电机使飞行器稳定

串级PID算法

然互简单介绍下串级PID算法
名字:串级PID算法
作用:采集飞行器姿态角,输出调控量使飞行器稳定

姿态角

先说一下姿态角,现在我们想象一个平铺在空间的一个“十”字,这个字左右晃,上下晃,和绕着原点转圈就叫做三个姿态角。前两个叫俯仰,滚转,绕原点转圈的角叫偏航
(下文暂用x,y,z表示)对于仅仅保持稳定,只用x,y角就足够了,那么这三个角怎么测量出来呢?
用陀螺仪,这里我们说MPU6050,,陀螺仪就是一个芯片,唯一的作用就是可以输出三个长度为3的一维数组x[3],y[3],z[3],x,y,z代表三个角,长度为3是因为分别为角度,角速度,角加速度,串级pid只用角度与角速度。

那么具体怎么利用这三个角度控制飞行器稳定呢?

先来个简单的,比如平铺在空间中的十字,我们通过陀螺仪检测到左边往下偏10度,那么x=10,如果右边往下偏10度,x=-10,上边往下偏,y=10,下边往下偏y=-10,注意左边往下偏右边就往上偏,右边往下偏左边就往上偏,这跟个杠杆似得就不用赘述了吧。这两个变量的值会在单片机中以全局变量表示,我们可以直接使用。
如果我们检测到x=10,那么我们就需要加大左边电机的速度,减小右边电机的速度,最终使x,y维持在0,这样飞行器就稳定了,其余角度都同理。
这里的x和y值即是误差,通过误差反过来调控输入的系统叫做负反馈系统
而串级PID算法研究的就是这个要减小和增加的电机转速到底是多少。先介绍下电机转速
首先,电机速度是由PWM波控制的,占空比越大,速度越大,把PWM波占空比的变化用一个int变量speed值从0到1000的变化映射出来,这样0就代表速度0,1000就代表速度最大值。(占空比就是一个周期内高电平时间与周期的比值)
这样构成飞控系统的输入量,输出量就都出来了,输入量是陀螺仪采集的角度,输出量是speed的值,四个电机对应四个speed,分别是speed1,speed2,speed3,speed4。

串级PID衍生于PID,PID就是比例、积分和微分

下面先介绍下PID

PID分两种,增量式和位置式,增量式直接输出调控量的增量,适合于自带积分的步进电机,四旋翼使用位置式PID

P:的作用是按比例增大控制量,比如检测到x=10,此时speed1应该增加10但是10太小,我们就可以把调节量放大,如果P是5那么调节量就扩大为50了
可是只用比例会出现一个问题,那就是比如我想要调节量为33,而P是5的话我们计算得出的调节量只能为5的整数倍,30或35,与33永远有一个误差
如果体现在图像上就是曲线在平衡位置上上下下的折线移动

I:为了消除静差我们必须引入积分量,积分的特点是,只要有一点误差他就会发挥作用(因为是直接程序判断x或y与0的大小关系控制积分器开启的)
并且如果误差不消除或者变号(变号就是正变负或负变正,比如由机翼向右偏变成向左偏),积分就会越来越大,对调节量的增福会越来越大(所以记得设置一个上限)
当然你可能会疑惑积分累加出来的值怎么消除,当机翼由左偏到被比例和积分调节的向右偏时,调节量变号了,你再累加不就相当于累减了吗,就自然消除了
所以积分的调节量就在0左右波动,这样曲线就会由在平衡点上下打折线变成小波浪了

D:至于微分值是是利用上一次的误差值改变这一次的调节量,他的作用就是预测,他的值最有意思的地方就是,和你的机翼所处的位置无关,也即是说即使你的机翼往左偏
微分值也有可能调控让机翼更加往左偏,那既然这样我们为什么还要用微分值呢,其实微分值是检测两个不同的算法周期(一会重点解释这个)误差变化量的大小
假设算法周期是一秒
假设第一秒,飞机x=30,经过算法调节第二秒x=25,第三秒x=10,那么对于微分来说第一秒误差变化量为5,第二秒误差变化量为15
那么他就会阻止x继续变小,即使x变小是为了使飞机稳定,如果第一秒x=15,第2秒x=10那么他就会帮助x变小
这就是微分作用的本质,不分敌我,一心阻止误差变化的扩大,这个的作用其实就是预测误差变化,再由我们具体事件具体分析

怎么利用它

其实了解比例积分微分的本质,具体怎么利用就仁者见仁智者见智了

那么什么是串级PID呢,就是同时利用角度与角速度作为误差输入,两个PID套在一起作为系统,电机速度调控作为输出
外环角度误差先经过一个PID得出的调控量与内环角速度环的差值作为内环的输入误差,该误差再经过一个PID后得出实际电机速度调控量

具体哪里用PI哪里用PD哪里用PID可以根据自己实际情况自己调整,建议外环PI,内环PID。

下面说一下算法周期

就是通过定时器控制,经过多久取一次陀螺仪数据,多久取一次内环计算数据,多久取一次外环计算数据,这个必须要严格控制好,具体值可以和PID值一样自行调试

一年前做过四轴,只凭回忆整理,如有疏漏,谢指正,望谅解。

hjr-四旋翼飞行器串级PID飞控算法相关推荐

  1. 四旋翼飞行器7——主要开源飞控介绍

    四旋翼飞行器7--主要开源飞控介绍 文章目录 四旋翼飞行器7--主要开源飞控介绍 一.APM 特性包括: 硬件包括: 二 Pixhawk 特性包括: 各种恰到好处的传感器. 各种可扩展I/O接口和专用 ...

  2. 用Unity模拟四旋翼飞行器姿态控制(PID控制)

    一.问题来源 至于为什么要做这个仿真,其实我是想通过Unity来测试一下PID算法是如何控制四旋翼飞行器的控制姿态的.在此之前,我也想过直接做实物,然后去实现PID算法,但是实现硬件平台要涉及很多方面 ...

  3. 四旋翼飞行器建模与PID控制器设计(MatlabSimulink)

  4. 四旋翼飞行器平衡传感器数据 处理方法探讨

    四旋翼飞行器平衡传感器数据 处理方法探讨 [摘要]四旋翼飞行器的制作与研究日渐火热,而且其应用价值日渐凸显,当今四旋翼飞行器大都使用飞控板控制,其优点是操作简单,稳定性比较好,但好多的复杂功能无法自定 ...

  5. 基于数据融合和串级PID的小型四旋翼无人机高度测量与控制系统

    作者:Tomy 摘要:简单介绍了一种基于 Mahony 算法无人机姿态解算算法,并在这个的基础上设计了一 种融合惯导加速度计和气压计的小型无人机高度测量系统, 同时利用该高度测量系统设计了 基于串级 ...

  6. 学习四旋翼(三):DMP姿态解算和串级PID控制姿态

    暑假期间,对于四旋翼有一点兴趣,没有亲手做,但是看了一些资料.这个系列文章只是对自己看的东西的记录,对于想要学习了解相关知识的同学没有任何参考价值! 本篇是系列第三篇,介绍了我对于MPU9250 DM ...

  7. 基于串级 PID 控制算法的四旋翼无人机控制系统设计与实现

    1.内容简介 略 489-可以交流.咨询.答疑 2.内容说明   无人机,英文名称UAV C Unmanned Aerial Vehicle,是一种特殊的飞行器, 可以按照预先设定的轨迹进行各种运动, ...

  8. 【飞控理论】四旋翼飞行器控制原理

    该篇博客是对锡月科技无人机飞行控制原理教学内容的整理 1.四旋翼飞行器的两种结构: "×"字模式: Pitch和 Roll与1,3.2,4两组电机呈 45°夹角 . "十 ...

  9. 四轴飞行器的串级PID参数整定经验

    串级PID即将两个PID控制器按照串联的方式连接起来,前一个的输出作为后一个的输入两者共同控制控制对象.对于四旋翼来讲最普通的就是外环角度环,内环角速度环,两者怎么联系呢,有的说法是:外环:输入为角度 ...

最新文章

  1. 瞎了,苹果说这两个Logo过于相似而提起诉讼...
  2. usb 由于计算机限制,电脑usb被限制了怎么办
  3. 修改oracle用户权限,详解如何实现Oracle修改用户权限和角色
  4. HDU4055 - number string(DP)
  5. App Engine中的Google Services身份验证,第2部分
  6. 振子天线三维方向图 matlab仿真,1阵列天线方向图的MATLAB实现
  7. 该文件可能是只读的 或者您要访问的位置_Linux应用编程之文件操作 系统调用篇(下)...
  8. Innodb之监控Buffer pool Load progress
  9. 比亚迪赵长江:腾势今年将发布两款 SUV、一款 MPV
  10. remote验证方法请求没有发送
  11. vue项目之不一样的axios封装(+防抖函数)
  12. 【EI会议推荐】机电一体化、自动化与智能控制领域
  13. AMAZON SP API Feed
  14. 2020.8.25课堂笔记(Linux入门、常用命令)
  15. 2017男宝宝起名大全来了,快来给你的孩子挑个好名字吧
  16. PyQt(Python+Qt)学习随笔:纯文本编辑器QPlainTextEdit功能详解
  17. 【替代XShell】WindTerm 工具 【免费】【开源】
  18. 团宝网员工再次被休假 合作商家欲联合起诉
  19. easyconnect 通过Vmware虚拟机挂ccproxy变非全局代理
  20. 【刷题日记】网易——丰收

热门文章

  1. UTC时间、GMT时间、本地时间、Unix时间戳的区别
  2. 为白描App的“匠人之心”加码,百度OCR让文字识别更智能
  3. 单端怎么转差分信号_单端转差分信号电路详解
  4. 攻防世界Misc新手区-掀桌子SimpleRAR
  5. skb_clone 与skb_copy
  6. 山东理工大学中外合作办学计算机专业,山东理工大学学费多少 收费标准
  7. iOS高仿国美商城、仪表盘、卡片日记、快速拨号、换主题、3D 动画等源码
  8. 致远项目管理SPM系统产品核心优势(一)
  9. Python中Tkinter知识点总结
  10. ClickHouse之DBA运维宝典