06 飞行控制器

2023-05-16

06 飞行控制器

  • 目录
  • 1 XTDrone动态模型代码讲解
  • 2 自动控制初步
    • 2.1 自动控制概述
      • 多旋翼飞行器控制实例
    • 2.2 控制性能
    • 2.3 传递函数与状态方程
      • 示例
  • 3 PID控制器
    • 3.1 PID控制器
    • 3.2 比例项调节
    • 3.3 积分项调节
      • 积分饱和(Integral windup)
    • 3.4 微分项调节
      • 微分先行
    • 3.5 PID口诀
    • 3.6 数字(离散型)PID
  • 4 多旋翼飞行器控制系统
    • 4.1 PX4控制系统方框图
    • 4.2 控制分配器(Mixer)
  • 5 非线性多旋翼飞行器姿态控制
    • 5.1 Nonlinear Quadrocopter Attitude Control
      • 补充知识:关于稳定性
      • 鲁棒性
    • 3.2 期望姿态
    • 3.3 3.3 启发式(heuristic)算法
  • 6 PX4姿态控制代码讲解

目录

  1. XTDrone动态模型代码讲解
    2.自动控制初步
  2. PID控制器
    4.多旋翼飞行器控制系统
  3. 非线性多旋翼飞行器姿态控制
  4. PX4姿态控制代码讲解

1 XTDrone动态模型代码讲解

  • 旋翼动力学模型
    https://github.com/PX4/sitl_gazebo/blob/master/src/gazebo_motor_model.cpp
  • 动力单元模型
    https://github.com/PX4/sitl_gazebo/blob/master/src/gazebo_mavlink_interface.cpp

在这里插入图片描述
在这里插入图片描述


2 自动控制初步

2.1 自动控制概述

自动控制(automatic control)是指在没有人直接参与的情况下,利用外加的设备或装置,使机器、设备或生产过程的某个工作状态或参数自动地按照预定的规律运行(使被控对象的被控量等于给定值/目标值)。
在这里插入图片描述

多旋翼飞行器控制实例

在这里插入图片描述

常规多旋翼飞行器的控制是欠驱动系统,四个输入量(三个控制力矩,一个控制力),六个输出量(三维位移,三维姿态),使用串级PID实现控制。

[注1] 欠驱动系统
如 四个输入量 -> 六个输出量,故不能实现全向运动(不能原地打转)

[注2] 串级PID
先位置控制,再姿态控制,无法同时,因为耦合在一块

2.2 控制性能

在这里插入图片描述

2.3 传递函数与状态方程

在这里插入图片描述

[注]

  • 非定常:转动惯量改变,如喷农药
  • 非线性:姿态动力学,姿态角的变化率与角速度的系数

示例

在这里插入图片描述


3 PID控制器

3.1 PID控制器

  • PID控制器(比例-积分-微分控制器),由比例单元(Proportional)、积分单元(Integral)和微分单元(Derivative)组成。可以透过调整这三个单元的增益 𝐾_𝑃 𝐾_𝐼 𝐾_𝐷 来调定其特性。其应用非常广泛,几乎所有领域都能见到PID的身影。
  • 一般工程师在做的PID调参,其实是在做免模型(model-free)控制,对象模型参数模糊,依据经验调试。研究人员已经证明了现在我们的控制律可以使得多旋翼飞行器全局渐近稳定(在一定的扰动下),我们只需要把PID参数调好即可。严格设计PID控制器,需要辨识系统参数。

在这里插入图片描述

3.2 比例项调节

  • 比例控制:𝐷(𝑠)=𝐾_𝑝,简单快速,系数增大,响应速度变快,静差减小,振荡加剧,甚至发散
    在这里插入图片描述

3.3 积分项调节

  • 在这里插入图片描述

  • 积分项用于消除静差,𝑇_𝑖小,积分作用强,系统可能发生振荡;𝑇_𝑖大,消除静差需要的时间变长
    在这里插入图片描述

积分饱和(Integral windup)

在这里插入图片描述

[注]
详细可参考Rundqwist, L. (1990).Anti-reset Windup for PID Controllers. IFAC Proceedings Volumes, 23(8), 453–458.doi:10.1016/s1474-6670(17)51865-0

[参考] 抗积分饱和:https://blog.csdn.net/foxclever/article/details/80294264

3.4 微分项调节

在这里插入图片描述
在这里插入图片描述

微分先行

  • 偏差微分:对给定值和测量值都有微分作用

  • 测量值微分:只对测量值微分,适用于给定值频繁升降的场合,可以避免因输入变动而在输出上产生跃变
    在这里插入图片描述

  • 微分将由两部分组成:

    • 一部分是给定量的变化,
    • 一部分是实际观测量的变化。
    • 微分控制作用是与偏差的变化速度成正比的,测量值的突然变化,微分控制作用十分猛烈。可以只对测量值(输出量)起微分作用,不要从误差中接,因为测量值一般是不会突然变化的。
  • 适合于给定指令频繁升降的场合,可以避免指令的改变导致超调过大,避免因为输入变动在输出上的跃变。微分先行由于微分部分只对测量值起作用所以可以消除设定值突变的影响,还可以引入低通滤波。

3.5 PID口诀

在这里插入图片描述

3.6 数字(离散型)PID

在这里插入图片描述


4 多旋翼飞行器控制系统

4.1 PX4控制系统方框图

在这里插入图片描述

https://dev.px4.io/master/en/flight_stack/controller_diagrams.html 重要!

4.2 控制分配器(Mixer)

在这里插入图片描述

  • 此时得到的转速最省能量

[注] https://dev.px4.io/master/en/concept/mixing.html#multirotor_mixer


5 非线性多旋翼飞行器姿态控制

5.1 Nonlinear Quadrocopter Attitude Control

  • 无奇异
  • 全局渐进稳定
  • 鲁棒
  • 求解速度快
  • PX4的姿态控制方案

在这里插入图片描述

补充知识:关于稳定性

在这里插入图片描述
在这里插入图片描述

你的姿态无论在什么位置,都能收敛到期望的位置

鲁棒性

证明跳过,由于计算机控制系统是离散时间的,具有一定的滞后性,可以证明算法是鲁棒的。

3.2 期望姿态

期望姿态到四元素的映射

偏航角追踪是否真的有意义?

  • 不控制偏航角(Reduced attitude control)
  • 控制偏航角(Full attitude control)
  • 二者的结合(Mixed full and reduce attitude control)
  • 限制最大倾角

3.3 3.3 启发式(heuristic)算法

角度变化小,是否意味时间一定短? (直观:有一个方向的角速度)

  • 定性回答否,定量却难以计算
  • 主要针对偏航角,俯仰滚转意义不大
  • 定一个启发式条件

在这里插入图片描述


6 PX4姿态控制代码讲解

src/modules/mc_att_control.main.cpp

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

06 飞行控制器 的相关文章

随机推荐

  • 太强了,这款开源终端工具可查询 IP 信息 ...

    作者 xff1a JackTian 来源 xff1a 公众号 杰哥的IT之旅 ID xff1a Jake Internet 转载请联系授权 xff08 微信ID xff1a Hc220088 xff09 原文地址 xff1a 太强了 xff
  • python排序算法——归并排序(附代码)

    python排序算法 归并排序 文章目录 python排序算法 归并排序一 前言二 算法描述三 代码实现总结 一 前言 相关知识来自 python算法设计与分析 初级排序算法是指几种较为基础且容易理解的排序算法 初级排序算法包括插入排序 选
  • 一次服务器非法重启后导致的故障排查记录

    作者 xff1a JackTian 来源 xff1a 公众号 杰哥的IT之旅 ID xff1a Jake Internet 转载请联系授权 xff08 微信ID xff1a Hc220088 xff09 原文地址 xff1a 一次服务器非法
  • 写了个自动巡检多个接口地址的脚本!

    作者 xff1a JackTian 来源 xff1a 公众号 杰哥的IT之旅 ID xff1a Jake Internet 转载请联系授权 xff08 微信ID xff1a Hc220088 xff09 原文链接 xff1a 写了个自动巡检
  • 写了个监控 ElasticSearch 进程异常的脚本!

    作者 xff1a JackTian 来源 xff1a 公众号 杰哥的IT之旅 ID xff1a Jake Internet 链接 xff1a 写了个监控 ElasticSearch 进程异常的脚本 xff01 服务器配置免密钥环境准备 xf
  • 太强了!这款命令行工具可以在 Linux 文件目录快速自动跳转

    作者 xff1a JackTian 来源 xff1a 公众号 杰哥的IT之旅 ID xff1a Jake Internet 链接 xff1a 太强了 xff01 这款命令行工具可以在 Linux 文件目录快速自动跳转 在 Linux 终端下
  • 又一个基于 GPT-4 编写、解释代码的工具,诞生了!

    作者 xff1a JackTian 来源 xff1a 公众号 杰哥的IT之旅 ID xff1a Jake Internet 链接 xff1a 又一个基于 GPT 4 编写 解释代码的工具 xff0c 诞生了 xff01 上周 xff0c O
  • 这款文件传输工具的替代品,牛逼了!

    作者 xff1a JackTian 来源 xff1a 公众号 杰哥的IT之旅 ID xff1a Jake Internet 链接 xff1a 这款文件传输工具的替代品 xff0c 牛逼了 xff01 某种场景下 xff0c 考虑到 LapT
  • 这款轻量级可视化路由追踪的神器,太强了!

    作者 xff1a JackTian 来源 xff1a 公众号 杰哥的IT之旅 ID xff1a Jake Internet 链接 xff1a 这款轻量级可视化路由追踪的神器 xff0c 太强了 xff01 在 Linux 环境下 xff0c
  • 【原创】树莓派4B + VSCode + MAVSDK-Python + PX4环境搭建

    一 前言 为了在树莓派下开发机载计算机相关功能 xff0c 通过MAVSDK与PX4进行通讯需要搭建相关环境 以往都是东拼西凑最后成功编译运行 xff0c 但过一段时间就得重新来过 xff0c 年龄大了不能老这么折腾 xff0c 这次记录一
  • 【Yolo】YoloV5训练自定义模型

    Yolo Jetson Orin Nano下部署 YoloV5 上一篇博文主要记录了在Jetson Orin Nano下部署YoloV5环境 xff0c 并运行了yoloV5n pt模型 xff0c 本篇在上一篇的基础上 xff0c 进一步
  • ModSim基本使用(Modbus模拟器)

    ModSim下载地址 打开软件 1 模拟modbus tcp 创建Modbus TCP连接 设置连接端口 xff0c 默认502 xff0c 点击 OK 就自动创建 新建 新建界面如下 xff08 可新建多个界面 xff0c 同时模拟500
  • [java]final关键字的几种用法

    在java的关键字中 xff0c static和final是两个我们必须掌握的关键字 不同于其他关键字 xff0c 他们都有多种用法 xff0c 而且在一定环境下使用 xff0c 可以提高程序的运行性能 xff0c 优化程序的结构 下面我们
  • Ubuntu系统安装分区设置

    1 创建主分区 xff1a 主分区 xff0c 用于存放系统 20G 主分区 空间起始位置 Ext4日志文件系统 2 创建swap分区 xff1a 逻辑分区 大小设置为电脑内存大小 xff0c 2G xff1b 2048MB 逻辑分区 空间
  • 重装Win+Ubuntu双系统中的Ubuntu

    重装双系统中的Ubuntu 想把玩Linux xff0c 又想保留Windows xff0c 有几种途径 1 使用虚拟机软件如 Vmware Virtual Box等 2 再装一个Ubuntu系统成为Win 43 Ubuntu双系统 专业原
  • ROS打不开gazebo的问题

    前段时间 xff0c 将师兄的Ros工程搬到我的电脑上运行 xff0c 但是一直打不开gazebo xff0c gazebo一直卡在了黑屏的页面 同样的工程 xff0c 在师兄电脑上是可以跑的 xff0c 并不是ros工程的问题 于是我让其
  • 02 四旋翼无人机的组成与拼装(上)

    02 四旋翼无人机的组成与拼装 xff08 上 xff09 目录1 总体介绍2 布局设计2 1 机身布局2 1 1 交叉形2 1 2 环形 比较少2 1 3 可折叠交叉形 2 2 旋翼安装2 2 1 常规布局 VS 共轴双桨2 2 2 力矩
  • 03 四旋翼无人机的组成与拼装(下)

    03 四旋翼无人机的组成与拼装 xff08 下 xff09 目录1 螺旋桨1 1 作用1 2 参数1 型号2 弦长3 转动惯量 重要 4 力效5 桨叶数6 安全转速7 静平衡与动平衡 2 电机2 1 作用2 2 工作原理2 2 1 相位切换
  • 05 无人机动态模型

    05 无人机动态模型 目录1 无人机动态模型简介1 1 无人机动态模型2 刚体运动与姿态表示2 1 如何描述一个刚体2 2 地球坐标系与机体坐标系2 3 坐标系旋转与向量旋转的区别2 4 旋转轴与旋转角2 5 欧拉角 xff08 1 xff
  • 06 飞行控制器

    06 飞行控制器 目录1 XTDrone动态模型代码讲解2 自动控制初步2 1 自动控制概述多旋翼飞行器控制实例 2 2 控制性能2 3 传递函数与状态方程示例 3 PID控制器3 1 PID控制器3 2 比例项调节3 3 积分项调节积分饱