产品展示 | 联系我们 您好,欢迎访问M6米乐官网登录,我们将竭诚为您服务!
20年专注设备技术研发 专注技术 专心质量 专业服务
全国咨询热线:13528178965
您的位置: 首页 > 客户案例
客户案例

联系我们contact us

M6米乐官网登录
地址:广东省深圳市南山区前海路1428号南岗商务大厦1304室
联系人:米乐电竞下载
电话:13528178965
手机:13528138044

客户案例

基于STM32的四旋翼飞行姿态串级控制的设计与实现

时间:2024-02-03 06:38:57 来源:M6米乐官网登录 点击:1次

  四旋翼飞行器与传统的单桨直升机相比,其飞行原理简单,结构紧密相连,单位体积所提供的升力大,且可以扭矩自平衡而不需要反扭桨。四旋翼飞行器只通过改变螺旋桨的速度来实现各种动作,是一种六自由度的垂直起降机,很适合在静态和准静态条件下飞行,近几年在军事和民用领域大范围的应用。然而四旋翼飞行器是个具有4个输入量,6个输出量的欠驱动系统,控制器的设计的基本要求高。

  姿态解算是姿态参考系统的关键技术,算法的优劣直接决定了解算效率和系统的精度。目前姿态描述的主要方式有:欧拉角、方向余弦、四元素法。欧拉角物理意义明确,但存在“奇点”。方向余弦计算没有“奇点”,但三角函数运算量大,不适合实时运算。四元素法没有“奇点”,而且运算为一般代数运算,运算量小,方法简单,易于操作。采用四元素法进行姿态解算是理想的选择。

  四旋翼飞行器在结构布局上有十字形、X形和H形。本文主要讨论X形布局,如图1所示。4个电机分别安装在对称结构的X形支架的4个顶点,电机1和3逆时针旋转,电机2和4顺时针旋转,当飞行器平衡飞行时,陀螺效应和空气动力扭矩效应均被抵消。四旋翼飞行器在空间中有6个自由度(分别沿3个坐标轴作平移和旋转动作),可通过调节4个电机的转速来实现控制。基本运动状态:垂直运动、俯仰运动、滚转运动、偏航运动、前后运动、侧向运动。

  垂直运动:同相改变四个电机的输出功率,使总的拉力改变,便实现飞行器沿z轴的垂直运动。当升力等于自重时,飞行器便保持悬停状态。

  俯仰运动和滚转运动:电机1、4的转速上升,电机2、3的转速下降。产生的不平衡力矩使机身绕x轴旋转,实现飞行器的俯仰运动。横滚运动与俯仰运动的原理相同。

  偏航运动:四旋翼偏航运动能借助旋翼产生的反扭矩来实现。四个旋翼对角线上的两个旋翼转动方向相同,当两条对角线上的电机转速不完全相同时,不平衡的反扭矩引起四旋翼转动,实现偏航运动。

  前后运动和倾向运动:为实现水平面内运动,须在水平面内对飞行器施加一定的力。使飞行器做横滚或俯仰。飞行器发生某些特定的程度的倾斜,从而使旋翼拉力产生水平分量,实现飞行器的水平运动。

  飞行器控制器通过处理微型MEMS惯性器件和三维地磁传感器采集的数据,计算飞行器的姿态角,并根据飞行指令,结合相应的控制律给出适当的控制信号,控制飞行器姿态和位置。

  本文采用模块化设计,四旋翼飞行控制管理系统主要由主控模块、数据采集模块、电机驱动模块等组成。采用STM32芯片作为主控芯片。系统硬件结构如图2所示。

  本文采用基于ARMCortexM3内核的STM32F103VCTE微控制器为主控芯片。STM32微控制器具有多路信号采集通道和多路PWM输出通道,方便接收传感器数据和对电机来控制,72MHz的主频满足系统对于运算速度的要求,且功耗低。

  采用拥有3轴加速度计和3轴陀螺仪的组合传感器MPU-6050来测量加速度和角速度,3轴地磁传感器HMC5883L测量地磁场,气压计MS5611测量气压。

  MPU-6050集成了3轴MEMS陀螺仪,3轴MEMS加速度计。陀螺仪可测范围和加速度计可测范围可结合实际应用调整。与设备寄存器之间的通信采用400kHz的I2C接口。

  HMC5883L是一种带有数字接口的弱磁传感器芯片,测量范围从毫高斯到8高斯(Gauss),罗盘精度在1°~2°,以I2C总线接口与主控芯片进行通信。MS5611气压传感器是一款高分辨率气压传感器,分辨率可达到10cm。拥有I2C总线接口与微控制器连接。

  采用4个ST2210无刷直流电机并用ST20A电调对电机进行驱动。STM32通过配置GPIO接口输出PPM信号到电调控制电机转速。ST20A电调接受20~400Hz,脉宽1~2ms的PWM信号,电平支持3.3V和5V。0%~100%的油门由PPM信号1~2ms的脉宽表示,即0%油门对应1ms脉宽,100%油门对应2ms脉宽,以达到调节电机转速的目的。

  系统软件设计在KeilMDK-ARM开发环境里编写。MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的C/C++开发环境。程序流程如图3所示。

  对姿态角的测量和解算是飞行控制管理系统中重要的组成部分。姿态解算的速度和准确度直接影响到姿态控制效果。本文采用运算速度快,精度高的四元素互补滤波算法对姿态进行解算,能达到飞行控制的要求。

  姿态角是通过陀螺仪、加速度计和数字罗盘等传感器测量得到的。MEMS陀螺仪具有温度漂移特性,长期积分运算存在累积误差,短期数据精度高。飞行器在飞行过程中机体振动会对加速度计产生一定的影响,同时数字罗盘是一种磁阻传感器,很容易受到外部磁场的干扰,两者不适合短期测量,但其测量误差为静态误差,不随时间的累加而变化,可用以长时间姿态角采集。

  四元素互补滤波方法将这几种传感器的优势互补。此方法的主要思想是用加速度计和数字罗盘的测量姿态修正陀螺仪的测量姿态。加速度计和数字罗盘测量出来的数据是地球重力与地球磁场在机体空间坐标上的分量,可认为是实际姿态。陀螺仪测量出来的姿态经实际姿态修正后输出给控制器以计算控制量。欧拉角、四元素和方向余弦矩阵间的关系如式(1)所示。

  根据余弦矩阵和欧拉角的定义,地理坐标系的重力向量转到机体坐标系为第三行三个元素,即:

  式(2)中,aX,aY,aZ为加速度计测量出的重力向量在各个轴向上的分量,即实际测出来的重力向量;vX,vY,vZ为陀螺积分后的姿态来推算出的重力向量,它们都是机体坐标系上的重力向量。它们之间的误差,就是陀螺积分后的姿态和加速度计测出来的姿态之间的误差。计算前aX,aY,aZ需规范化处理。

  陀螺仪各轴转动的角速度经修正后,再以一阶龙格库塔算法进行积分更新四元素,如式(6)所示。

  PID(比例-积分-微分)控制器简单易懂,使用中不需精确的系统模型等先决条件,因而成为应用最为广泛的控制器。

  四旋翼飞行器姿态的调节是通过对4个带桨电机的转速调节实现的,4个电机不同的转速组合,可以在一定程度上完成飞行器俯仰、横滚、偏航等不同的飞行动作。通过在3个姿态控制通道分别设计PID控制律,实现所需的控制功能。

  针对本系统动态要求比较高的特点,采用PID控制器的改进型控制器———串级PID控制器进行,控制结构框图如图4所示。

  主控制器采用PID控制器对姿态角进行精确调整,副控制器采用PD控制器对角速度的变化趋势做快速调整,提高了系统动态扰动下的控制能力,保证了系统控制性能和飞行姿态的稳定。

  在Simulink搭建模型进行仿真,整定串级PID控制器参数,横滚角和俯仰角的阶跃响应仿真曲线(a)、(b)所示。从图5能够准确的看出,串级PID具有非常好的控制能力,能够发到控制要求。

  四旋翼飞行器实物如图6所示。通过实验验证采用四元素融合滤波和串级PID算法控制下,四旋翼飞行器在空中悬停时各个姿态角的稳定性。实验根据结果得出,本文所设计的飞行控制器能够稳定控制四旋翼飞行器的各个姿态角,在空中悬停的过程中使各个姿态角都在合理的范围内波动,符合控制的要求。

  基于STM32系列设计了四旋翼飞行器飞行控制管理系统。通过传感器采集飞行器的飞行姿态数据,STM32微控制器进行数据融合滤波和控制律运算,输出控制量到四个电机,最终实现飞行姿态的稳定控制。空中悬停实验根据结果得出,采用四元素融合滤波算法和串级PID控制器的飞行控制管理系统拥有非常良好的控制效果,可以在一定程度上完成飞行姿态的稳定控制,达到了设计的目的。同时为以后进一步实现更高飞行任务的研究奠定了基础。

  中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部中断,2个定时/计数器中断和一个串口中断,但是在STM32中,中断数量大幅度提升,而且中断的设置也更为复杂。今天就将来探讨一下关于STM32中的中断系统。 1 基本概念 ARM Coetex-M3内核共支持256个中断,其中16个内部中断,240个外部中断和可编程的256级中断优先级的设置。STM32目前支持的中断共84个(16个内部+68个外部),还有16级可编程的中断优先级的设置,仅使用中断优先级设置8bit中的高4位。 STM32可支持68个中断通道,已经固定分配给相应的外部设备,每个中断通道都具备自己的中断优先级控制字节PR

  单片机型号:STM32L053R8T6 这几篇日志将详细记录,自己应用stm32进行低功耗设计的全过程。 使用芯片:STM32L053R8T6 运行模式: Range 1:电源电压限制在1.71-3.6V,CPU最大运行频率为32MHz。 Range 2:CPU最大运行频率为16MHz。 Range 3:CPU最大运行频率4.2MHz 低功耗模式: Sleep mode(睡眠模式)、Low-power run mode(低功耗运行模式)、Low-power sleep mode(低功耗睡眠模式)、Stop mode with RTC(带有RTC的停止模

  开发笔记24:STM32L0低功耗设计——需求概述 /

  嵌入式系统是一个软件和硬件相结合的计算机系统。软件代码经编写、编译、汇编、链接,生成可执行文件,然后将可执行文件加载到嵌入式系统的ROM或flash中,通过嵌入式系统的MCU来控制、检测外部的装置。 软件的编辑需要文本编辑器,编译需要编译器,汇编需要汇编器,链接需要编译器,可执行文件需要软件工具来加载文件,同时软件还需要一些函数库,中间件等。为了使开发更便捷,简单,几乎所有的MCU芯片都会有对应的集成开发环境(IDE),该环境囊括了软件开发从编辑到可执行文件的所有工具,同时还包括常用的库,调试工具,在线调试工具链等。 STM32主流的集成开发环境有两种:IAR和MDK。我在这里不想讨论哪一种IDE好,谈论这个没有意

  :集成开发环境IDE /

  几个月前刚接触STM32时,第一感觉就是固件库里的文件又多又深,还好发现固件库里自带有范例文件,但是它们全都是针对特定的评估板的,手头只有一块STM MCU 3 in 1 MiniKit。虽说作些修改就可为我所用,可对于像我这样还没入门的菜鸟,知道要如何修改,并且编译通过,却是十分艰难。 昨晚闲暇,在网上找了一些资料,自己也学着新建了一个工程。今天写下来,顺带温故一遍。 首先介绍一下操作环境: Keil 版本: Vision 4.1.0 STM32 固件库版本:V3.4.0 第一步,建立工程文件夹,在其子文件夹内拷贝并整理好相应的文件。 1.1、建

  ADC输入通道管理模式可分为规则组和注入组。规则组指正常的转换;而注入组是由外部触发或者软件触发,打断正常的规则组转换。规则组可以是某单一的通道,也可以是某几个通道的组合。多通道的转换次序可编程,转换次序长度最大为16,注入通道最长为4. 1、单词转换模式,即能够最终靠设置ADC_CR2寄存器的ADON位(只适用于规则通道)启动,也可通过外部触发启动(都适用),此时CONT位为0. 规则通道被转换后:数据存储在ADC_DR中 EOC(转换结果)标志置位 设置了EOCIE,则产生中断 注入通道被转换后:数据存储在ADC_DRJ1中

  MCU:STM32F334C8T6 PWM即脉宽调制,可拿来驱动电机,驱动全桥电路等,用过STM32的知道,用它的定时器可以很容易实现PWM输出,使用高级定时器的TIMx_CHy和TIMx_CHyN可以轻易实现互补PWM(complementary PWM)波形的输出。 高级定时器资源有限,本文利用通用定时器(General-purpose timers)实现互补PWM输出,在高级定时器资源不够时不失为一个好方法。 STM32的定时器PWM有两种模式:PWM mode 1和PWM mode 2 工作原理: PWM mode 1 - In upcounting, channel 1 is active as lon

  通用定时器实现输出两路占空比和频率可调的互补PWM /

  以NuttX工程为例,硬件平台STM32F103C8。 1 导入工程 File- Import 选择Existing Code as Makefie Project,点击next 输入工程名字(nuttx)以及工程路径(/home/boots/nuttx) 2 配置MCU调试环境 应用市场下载MCU插件: Help- Eclipse Marketplace :输入mcu并搜索,点击Install来安装 点击甲壳虫旁边倒三角,点击Debug Configurations...进行Debug 参数配置 双击GDB SEGGER J-LINK Debugging(若成功安装MCU插件,就会出现该选项),新建nuttx

  调试环境 /

  步进电机的驱动 stm32为例,使用ULN2003,TB6600电机驱动板,介绍步进电机的常用驱动方式。 步进电机 我使用的是一个教学用的小步进电机,驱动电压只有5V,所有的步进电机驱动原理都是类似的,电机详情如图。 产品参数 该模块为5线相步进电机,能够正常的使用普通的uln2003芯片驱动。 驱动要求:可提供较快的电流上升和下降速度,使电流波形经量接近矩形。提供具有戒指期间释放电流流通的贿赂,以前降低绕组两端的反电动势,加快电流衰减。具有较高的功率及效率,步进电机的转速与脉冲信号的频率姐可以对单机进行调速。 内部结构图 四拍驱动方式 在四线驱动方式中,每次仅有一个线圈通电,对磁铁具有吸引作用,从而使电机进行转

  MP1在光伏逆变上的应用

  不完全手册_寄存器版本_V3.3

  -Mini的多路PWM

  器

  使用STM32 Nucleo撬开针对物联网的ARM mbed IDE之门

  STM32CubeMX and STM32Cube HAL basics

  有奖直播 同质化严重,缺乏创新,ST60毫米波非接触连接器,赋予你独特的产品设计,重拾市场话语权

  电源小课堂 从12V电池及供电网络优化的角度分析电动汽车E/E架构的趋势

  MPS电机研究院 让电机更听话的秘密! 第一站:电机应用知识大考!跟帖赢好礼~

  【下载】LAT1362 利用STM32 TIMER触发ADC实现分组转换

  【下载】LAT1334 基于MCSDK5.4.8电机库修改两电阻采样方法

  【下载】LAT1347 基于STM32CubeIDE移植ClassB 4.0

  【下载】LAT1340 STM32H5读取温度传感器校准值时进HardFault的原因分析

  【生态】使用STM32CubeMX在STM32U5上配置LPBAM应用程序

  【MPU】轻松使用STM32MP13x如MCU般在Cortex A 核上裸跑应用程序

  【新品】STM32H5-Arm® Cortex®-M33 内核,主频高达250MHz,提升性能与信息安全性

  【新品】STM32MP13X-支持Linux、RTOS和Bare Metal应用,新一代通用工业级MPU

  【新品】Arm® Cortex®-M33处理器内核,运行频率160 MHz,基于Armv8-M架构并带有TrustZone®

  【新品】降本增效这事儿,就看STM32C0,低至0.24美元” ,开机即可物联世界

  【GUI开发】TouchGFX 4.23:支持矢量字体,节省Flash,更丰富的UI!

  【边缘AI】突破边缘AI应用的次元壁:首届意法半导体边缘人工智能峰会举行

  【生态系统】STM32CubeProgrammer和STM32CubeIDE协同调试的方法

  【无线携手创新微MinewSemi共创低功耗模块,引领中国智能连接未来

  软件超时机制1、背景在嵌入式软件程序设计过程中中,经常会遇到超时(或定时)的处理情况,基本处理思想是在时间到的时候进行有关程序处理 ...

  了解电源之前,先来简单了解一下各种电源端口的命名VCC:C=circuit 表示电路的意思, 即接入电路的电压。VDD:D=device 表示器件的意思, ...

  STM32三种启动模式下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存,这是所谓的启动过程。STM32上电或者复位后,代 ...

  TFTLCD即薄膜晶体管液晶显示器。它与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT),可 ...

  STM32总线前文本文主要进行学习总结,为他人提供参考和学习,也为了记录自己的学习知识进行总结,并且望有错误之处,请各位技术大佬们提出修正,互 ...

  站点相关:综合资讯51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程

在线客服
联系方式

热线电话

13528178965

上班时间

周一到周五

手机号码

13528138044

二维码
线