该篇博客是对锡月科技无人机飞行控制原理教学内容的整理

1、四旋翼飞行器的两种结构:

  • “×”字模式: Pitch和 Roll与1,3、2,4两组电机呈 45°夹角 。
  • “十”字模式: Pitch对应2,4电机的对轴,Roll对应1,3电机的对轴,夹角为0。

(基本选用X模式)

2、四旋翼飞行器的几种姿态

导言:

思考一下:

1. 四个电机转速完全相同,无人机能平衡嘛?

答:四旋翼重心不一定在中心上,所以无法平衡。

2. 达到平衡状态后不改变四个电机的转速,无人机能一直平衡下去嘛?

答:因为有外界的干扰,四旋翼四个旋翼的转速要一直处于调节状

态才能保持平衡。

六种飞行姿态:

1、垂直运动

在四旋翼完成4轴平衡的条件下,同时增加四个电机的输出功率,旋翼转速增加使得总的拉力增大,当总拉力足以克服四旋翼无人机受到的重力时,四旋翼飞行器便离地垂直上升;反之,同时减小四个电机的输出功率,四旋翼飞行器则垂直下降,直至平衡落地,实现了沿 z轴的垂直运动。当外界扰动量为零时,在旋翼产生的升力等于飞行器的自身的重力时,飞行器便保持悬停状态。

2、俯仰运动

在四旋翼完成4轴平衡的条件下在图中,电机1、4的转速上升,电机2、3的转速下降(改变量大小应相等,在PID程序的实现中也有体现)。由于旋翼1、4的转速即升力上升,旋翼 2、3的转速即升力下降,产生的不平衡力矩使机身绕Roll轴旋转,同理,当电机1、4的转速下降,电机 2、3的转速上升,机身便绕Roll轴向另一个方向运动,实现飞行器的俯仰运动。

3、翻滚运动

在图中,在四旋翼完成4轴平衡的条件下,提高3、4号电机的转速,减慢1、2号电机的转速,则可使机身绕Pitch轴的正向或者反向进行运动实现飞行器的翻滚运动

4、航向运动

在图中,当电机1和电机3的转速上升,电机2和电机4的转速下降时,旋翼1和旋翼3对机身的反扭矩大于旋翼2和旋翼4对机身的反扭矩,机身便在富余反扭矩的作用下绕z轴转动,实现飞行器的航向运动,转向与电机1、电机3的转向相反。

5、前后运动

如果想要实现四旋翼无人机在水平面内前后、左右的运动,必须在水平面内对飞行器施加一定的力。在图中,增加1、4号电机转速,使拉力增大,相应减小2、3号电机转速,使拉力减小,同时反扭矩仍然要保持平衡。按俯仰理论,飞行器首先发生一定程度的倾斜,从而使旋翼拉力产生水平分量,因此可以实现无人机的前飞运动。向后飞行与向前飞行正好相反。

6、侧向运动

与前后运动对称,与翻滚运动同轴。

无人机姿态计算公式:

3、四旋翼的自动控制参数

油门基础量

油门基础量的选择:

1. 大约占电机最高转速的70%左右。

2. 能够提供给四旋翼一个起飞的油门,注意并不是靠地效的反作用力是四旋翼

脱离地面的量。

油门基础量与控制量的占比:

油门基础量占比为80%左右或以上,控制量只是根据外界干扰和重心偏移

所修正的一个油门转速,所以只需要较小的控制量就能使四旋翼保持平衡。

为什么油门基础量这么大:

如果油门基础量较小,控制量较大,会发生什么情况?

答: 一旦控制飞行时,调节平衡能力就较差,且受到外界干扰后,控制量较大,

四旋翼处于较不稳定状态。

PID控制器

关于PID的详细原理戳上面的链接

PID控制器(比例-积分-微分控制器),由比例单元(P)、积分单元(I)和微分单元(D)组成。透过Kp,Ki和Kd三个参数的设定。PID

控制器主要适用于基本上线性,且动态特性不随时间变化的系统。

参数及其影响范围:

1、稳定性(P和I降低系统稳定性,D提高系统稳定性)

在平衡状态下,系统受到某个干扰后,经过一段时间其被控量可

以达到某一稳定状态;

2、准确性(P和I提高稳态精度,D无作用)

系统处于稳态时,其稳态误差;

3、快速性(P和D提高响应速度,I降低响应速度):系统对动态响

应的要求。一般由过渡时间的长短来衡量。

PID调参方法:

对液压泵转速进行控制还要:
1、变频器-作为电机驱动(对应主控和电调);2、差动变压器-作为输出反馈(对应无人机姿态监视)。
PID怎么对误差控制,听我细细道来:
所谓“误差”就是命令与输出的差值。比如你希望控制液压泵转速为1500转(“命令电压”=6V),而事实上控制液压泵转速只有1000转(“输出电压”=4V),则误差: e=500转(对应电压2V)。如果泵实际转速为2000转,则误差e=-500转(注意正负号)。
该误差值送到PID控制器,作为PID控制器的输入。PID控制器的输出为:误差乘比例系数Kp+Ki*误差积分+Kd*误差微分。
Kp*e + Ki*∫edt + Kd*(de/dt) (式中的t为时间,即对时间积分、微分)
上式为三项求和(希望你能看懂),PID结果后送入电机变频器或驱动器。
从上式看出,如果没有误差,即e=0,则Kp*e=0;Kd*(de/dt)=0;而Ki*∫edt 不一定为0。三项之和不一定为0。
总之,如果“误差”存在,PID就会对变频器作调整,直到误差=0。
评价一个控制系统是否优越,有三个指标:快、稳、准。
所谓快,就是要使压力能快速地达到“命令值”(不知道你的系统要求多少时间)
所谓稳,就是要压力稳定不波动或波动量小(不知道你的系统允许多大波动)
所谓准,就是要求“命令值”与“输出值”之间的误差e小(不知道你的系统允许多大误差)
对于你的系统来说,要求“快”的话,可以增大Kp、Ki值
要求“准”的话,可以增大Ki值
要求“稳”的话,可以增大Kd值,可以减少压力波动
仔细分析可以得知:这三个指标是相互矛盾的。
如果太“快”,可能导致不“稳”;
如果太“稳”,可能导致不“快”;
只要系统稳定且存在积分Ki,该系统在静态是没有误差的(会存在动态误差);
所谓动态误差,指当“命令值”不为恒值时,“输出值”跟不上“命令值”而存在的误差。不管是谁设计的、再好的系统都存在动态误差,动态误差体现的是系统的跟踪特性,比如说,有的音响功放对高频声音不敏感,就说明功放跟踪性能不好。
调整PID参数有两种方法:1、仿真法;2、“试凑法”
仿真法我想你是不会的,介绍一下“试凑法”
“试凑法”设置PID参数的建议步骤:
1、把Ki与Kd设为0,不要积分与微分;
2、把Kp值从0开始慢慢增大,观察压力的反应速度是否在你的要求内;
3、当压力的反应速度达到你的要求,停止增大Kp值;
4、在该Kp值的基础上减少10%;
5、把Ki值从0开始慢慢增大;
6、当压力开始波动(可能产生溢出效果),停止增大Ki值;
7、在该Ki值的基础上减少10%;
8、把Kd值从0开始慢慢增大,观察压力的反应速度是否在你的要求内

PID公式及参数解析:

?(k)是指设定值和当前值的误差,??为控制周期,??为比例系数,??为积 分系数,??为微分系数,?(0)为电机调速的基础量。

PID编程方法:

当前角度误差 = 期望角度 实际角度 ;

PID_P = Kp * 当前角度误差 ;

PID_I += Ki * 当前角度误差 ;

PID_I项 进行积分限幅 ;

//积分限幅是指对积分次数进行限制防止积分值太大从而导致出错

//当前角度的微分(原理上为当前角度误差 上一次角度

//误差,换一个角度来讲角度的微分就是角速度,所以一

//般用陀螺仪的角速度数据来替代角度的微分)

PID_D = Kd * 当前角速度的微分(陀螺仪数据) ;

单环PID总输出 = PID_P + PID_I + PID_D ;

单环PID总输出限幅 ;

飞行器姿态控制要点

飞行器姿态调控使用了两重(角速度和角度作为被调控量)PID调控

  • 增加了控制变量,增加抗干扰性
  • 内环粗调,外环细调
  • 内环起到超前调节的总用,增加鲁棒性
  • 提高了系统工作频率,减小震荡周期,调节时间缩短,系统的快速性增强串级PID

串级PID编程:

当前角度误差 = 期望角度 实际角度 ;

外环PID_P = Kp * 当前角度误差 ;

外环PID_I += Ki * 当前角度误差 ;

外环PID_I项 进行积分限幅 ;

外环PID_D = Kd * (本次角度误差 上次角度误差)/ 控制周期 ;

外环PID总输出 = 外环PID_P + 外环PID_I + 外环PID_D ;

外环PID总输出限幅 ;当前角速度误差 = 外环PID总输出 当前角速度 ;(期望角速度为0;

内环PID_P = Kp * 当前角速度误差 ;

内环PID_I += Ki * 当前角速度误差;

内环PID_I项 进行积分限幅 ;

内环PID_D = Kd * (本次角速度误差 上次角速度误差)/ 控制周期 ;

内环PID总输出 = 内环PID_P + 内环PID_I + 内环PID_D ;

内环PID总输出限幅 ;

【飞控理论】四旋翼飞行器控制原理相关推荐

  1. 四旋翼飞行器控制原理与设计

    一.相关理论知识 1.坐标系与欧拉角 进行动力学建模之前首先建立坐标系,在此建立地球坐标系和机体坐标系,如图所示,这里地球系z轴方向向下指向地心,机体系x轴为机头方向. 当描述一个三维空间内的刚体转动 ...

  2. 四旋翼飞行器1——结构和控制原理

    四轴飞行器是一个在空间具有6个活动自由度(分别沿3个坐标轴作平移和旋转动作),但是只有4个控制自由度(四个电机的转速)的系统,因此被称为欠驱动系统(只有当控制自由度等于活动自由度的时候才是完整驱动系统 ...

  3. 四旋翼飞行器的飞控实现

    尝试制作这个四旋翼飞控的过程,感触颇多,整理了思绪之后,把重要的点一一记下来: 这个飞控是基于STM32,整合了MPU6050,即陀螺仪和重力加速计,但没有融合电子罗盘: 另外,四旋翼飞行器的运动方式 ...

  4. 四旋翼飞行器12——飞控接收机的三种接收模式

    四旋翼飞行器12--飞控接收机的三种接收模式 文章目录 四旋翼飞行器12--飞控接收机的三种接收模式 一.PWM型 二.PPM型 三.SBUS 无线遥控就是利用高频无线电波实现对模型的控制.如天地飞的 ...

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

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

  6. STM32单片机:四旋翼飞行器的飞控实现

    ---------------------------------------------------------------------------------------------------- ...

  7. 微型四旋翼飞行器设计经验之瞎扯淡

    在正式开始记录微型四旋翼飞行器设计的学习笔记之前,感觉自己很有必要先给自己一个总结,也希望能够帮到更多的朋友少走弯路(虽然不知道帮助大不大). 去年九月下旬开始了微型四旋翼飞行器的学习与设计,在12月 ...

  8. 四旋翼飞行器基本知识(四旋翼飞行器结构和原理+四轴飞行diy全套入门教程)

    转载两篇日志: 第一篇<四旋翼飞行器结构和原理> 第二篇<四旋翼飞行diy全套入门教程> =========================================== ...

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

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

最新文章

  1. 操作系统常用词典(一)
  2. 千千静听4.6.7版发布了
  3. 含有PCA动画演示的帖子,需要多读几遍的经典
  4. bzoj 1064 图论
  5. matlab二阶导数表示,【单选题】在MATLAB符号计算中,y的二阶导数表示为( )。...
  6. sphinx.conf listen = 9306:mysql41_Sphinx 安装与使用
  7. CC2530-Zstack 协议栈MAC层中的mac_rx.c程序解读
  8. Android SingleTask启动模式与Home键的问题
  9. 解决Linux下启动Tomcat遇到Neither the JAVA_HOME nor the JRE_HOME environment variable is defined...
  10. C++之类型萃取技巧
  11. qt mysql查询中文相等_请教:Qt如何实现查询数据库中具有中文表名的表
  12. shell 脚本编程之for语句、if语句(2 )
  13. 高薪Java开发工程师需要掌握哪些技能?
  14. win10 x64中 windbg x64 安装配置符号库
  15. 华为手机隐藏app图标_3秒钟轻松隐藏华为手机桌面图标!不需要下载安装第三方软件哦!...
  16. MATLAB 图像伪彩色处理
  17. 走出误区,老杨命运发生了转折
  18. linux 代码格式化工具下载,Linux 代码格式化工具 indent
  19. 用 Python 写个俄罗斯方块小游戏
  20. 已知四点经纬度位置计算球面面积

热门文章

  1. 喵喵的支付宝小程序登录
  2. 自动化调参NNI学习(三):使用python启动NNI框架调整随机森林(RandomForest)模型
  3. 使用正则表达式从字符串中提取email
  4. linux(windows,mac)下安装ta-lib
  5. 机器学习数据预处理代码汇总(最新更新20年3月1日)
  6. python求组合数_求组合数的算法_Cppowboy's Blog - SegmentFault 思否
  7. 学习linux装,一个初学者的Linux学习之旅之Linux安装篇
  8. C# ToString()和Convert.ToString()的区别【转】
  9. vue定义对象变量并合并成新的对象
  10. CF788E:New task