在B站上看到有讲无人机自动控制方面的视频,感觉不错,分享下:

https://www.bilibili.com/video/BV1aW411E7Qq/?spm_id_from=333.788.videocard.1

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

看来这个才知道,有飞控的叫无人机,无飞控的叫航模(远程遥控飞机)。

原来无人机里面的飞控也是用的PID控制算法。

没有飞行控制器的飞机是难以稳定飞行的,因为它的飞行控制是需要人在远程进行操控的。人类在物理世界中驾驶的载人飞机其控制器其实就是驾驶员。

无人机的飞行状态由飞控器件来控制,人类只需要给出基本的指令,如:悬停,向前飞,向后方,向上飞,向下飞,向左飞,向右飞等指令,而具体的对电动机的控制则由飞控器件根据指令来进行操作。

无人机的控制示意图,个人猜测版:

四旋翼无人机大致长相如下:

4旋翼无人机共有4个电动机螺旋桨,1号和3号是逆时针选择,2号和4号是顺时针选择。

悬停的时候1,2,3,4号电动机产生的升力之和和无人机的自身重力相当, 1,3号电动机产生的逆时针扭矩 与  2,4号电动机产生的顺时针扭矩相互抵消。

向前运动的时候,1,2号电动机减少旋转转数,3,4号增加旋转的转数,于是头向下倾斜,尾向上倾斜。顺逆时针扭矩相互抵消,升力与重力相抵消,并产生前向拉力。

向后运动的时候,1,2号电动机增加旋转转数,3,4号减少旋转的转数,于是头向上倾斜,尾向下倾斜。顺逆时针扭矩相互抵消,升力与重力相抵消,并产生前后拉力。

以头尾的中间线为轴:

向左运动的时候,2,3号电动机减少旋转转数,1,4号增加旋转的转数,于是机身向左下倾斜,尾向右上倾斜。顺逆时针扭矩相互抵消,升力与重力相抵消,并产生前左拉力。

向右运动的时候,1,4号电动机减少旋转转数,2,3号增加旋转的转数,于是机身向右下倾斜,尾向左上倾斜。顺逆时针扭矩相互抵消,升力与重力相抵消,并产生前右拉力。

以机身的中心点的垂直线为轴:

向左机身平面左转的时候,2,4号电动机减少旋转转数,1,3号增加旋转的转数,于是机身向左扭矩增加,机身向右扭矩减少。升力与重力相抵消,顺逆时针扭矩不能相互抵消,产生左转的扭矩。

向右机身平面右转的时候,1,3号电动机减少旋转转数,2,4号增加旋转的转数,于是机身向右扭矩增加,机身向左扭矩减少。升力与重力相抵消,顺逆时针扭矩不能相互抵消,产生右转的扭矩。

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

视频分享---------《无人机背后的PID控制》的更多相关文章

  1. 一文读懂PID控制算法(抛弃公式,从原理上真正理解PID控制)

      PID控制应该算是应用非常广泛的控制算法了.小到控制一个元件的温度,大到控制无人机的飞行姿态和飞行速度等等,都可以使用PID控制.这里我们从原理上来理解PID控制. PID(proportion ...

  2. 【iCore3应用开发平台】发布 iCore3 应用开发平台PID控制代码

    说明:1.本代码包包含FPGA和STM32F407两部分内容2.FPGA工程为出厂代码FPGA工程,版本为REV43.STM32F407为只含PID控制的ARM工程4.在使用风扇过程中,请勿将手伸入扇 ...

  3. .net之工作流工程展示及代码分享(四)主控制类

    现在应该讲主控制类了,为了不把系统弄得太复杂,所以就用一个类作为主要控制类(服务类),作为前端.后端.业务逻辑的控制类. WorkflowService类的类图如下: 该类的构造函数: public ...

  4. 两轮自平衡小车双闭环PID控制设计

                                                                                            两轮自平衡小车的研究意义 ...

  5. 关于python测试webservice接口的视频分享

    现在大公司非常流行用python做产品的测试框架,还有对于一些快速原型产品的开发也好,很好地支持OO编程,代码易读.Python的更新挺快的,尤其是第三方库. 对于测试人员,代码基础薄弱,用pytho ...

  6. wordpress使用video.js与七牛云存储实现无广告视频分享应用

    video.js是一款极受欢迎的基于HTML5的开源WEB视频播放器,其充分利用了HTML5的视频支持特性,可以实现全平台的无视频插件播放功能,对于现在流行的手机.PAD等移动智能终端有极佳的应用体验 ...

  7. 数字式PID控制的应用总结

    PID控制是一个二阶线性闭环控制器,通过调整比例.积分和微分三项参数,使得大多数的工业控制系统获得良好的闭环控制性能.PID控制优点:a. 技术成熟,b. 易被人们熟悉和掌握,c. 不需要建立数学模型 ...

  8. PID控制学习笔记(二)

    不管是基本的PID控制还是变形的PID控制算法,其核心都是对输入信号(设定值信号.测量信号或者偏差信号等)做基本的比例.积分.微分运算,最终提供给被控过程良好的调节信号. 在过程控制仪表,特别是在数字 ...

  9. SLAM+语音机器人DIY系列:(四)差分底盘设计——5.底盘PID控制参数整定

    摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...

  10. MATLAB-离散系统的数字PID控制仿真

    %PID Controller clear all; close all; ts=0.001; %采样时间=0.001s  sys=tf(,]); %建立被控对象传递函数 dsys=c2d(sys,t ...

随机推荐

  1. Uncaught TypeError: $(...).datagrid is not a function

    项目中碰见异常"Uncaught TypeError: $(...).datagrid is not a function",网上查询基本上都是jQuery的重复引用,但是找了半天 ...

  2. 模拟epoll的饥饿场景

    说明 一直听说epoll的饥饿场景,但是从未在实际环境中面对过,那么能不能模拟出来呢?实际的情况是怎样呢? 模拟步骤 基于epoll写一个简单的tcp echo server,将每次read返回的字节 ...

  3. rabbitMq实现系统内的短信发送设计&动态获取BEAN

    rabbitMq实现系统内的短信发送设计&动态获取BEAN 1.短信非系统的重要节点操作,可以在任务完成之后,比如下单成功,发送下单成功的mq消息,短信服务接收到mq消息,动态的判断该短信的c ...

  4. OOM异常的4种可能分析及常见的OOM异常演示

    OOM异常的4种可能分析及常见的OOM异常演示 OOM异常: OutOfMemoryError 1.JAVA堆溢出JAVA堆用于存储对象实例,只要不断的创建对象,并且保证GC Roots到这些对象之间 ...

  5. iOS11之后刷新tableview会出现漂移的现象解决办法

    首先要注意这只是在iOS11下会出现的bug,如果iOS10以及以下也有问题的情况不属于此列 问题的动图如下所示,如果要做每隔一段短时间就刷新一个section甚至整个tableview的操作的时候会 ...

  6. Vite-Wechat网页聊天室|vite5.x+vue3+pinia+element-plus仿微信客户端

    基于Vue3+Pinia+ElementPlus仿微信网页聊天模板Vite5-Vue3-Wechat. vite-wechat使用最新前端技术vite5+vue3+vue-router@4+pinia ...

  7. Linux 内核:设备树(2)dtb转换成device_node

    Linux 内核:设备树(2)dtb转换成device_node 背景 前面我们了解到dtb的内存分布以后(dtb格式),接下来就来看看内核是如何把设备树解析成所需的device_node. 原文(有 ...

  8. 【进阶篇】Java 项目中对使用递归的理解分享

    [进阶篇]Java 项目中对使用递归的理解分享 目录 [进阶篇]Java 项目中对使用递归的理解分享 前言 一.什么是递归 1.1基本概念 1.2优缺点 1.3与迭代的区别 二.实际案例 三.改进方案 ...

  9. vue大型电商项目尚品汇(前台篇)day03

    堆积了两天一起发的,先祝大家节日快乐 后面任务很繁重,还有登录注册组件还有后台管理页面,真的繁重,我现在感觉每天全天时间都在学都不一定学得完,主要想在六月一号之前把整个项目过一遍.看看能不能创造奇迹 ...

  10. pysnmp 获取设备 mib

    snmpwalk 指令获取设备 mib snmpwalk -v 1 -c public ip .1 > ip.mibs pysnmp 获取设备 mib 安装环境 pip3 install pys ...