分割器 2023Q2业绩超预期数字控制机床业务未来可期——豪迈科技(002595) 四轴车限载多少吨? 拓斯达董秘回复:公司基本的产品为以工业机器人、注塑机、数字控制机床为核心的智能装备
数控转台 2024年中国五轴联动数字控制机床市场规模预测及细分市场占比分析(图) 拓斯达获95家机构调研:公司多关节机器人包括SCARA、六轴、DELTA机器人2022年上半年出货量超过1000台同比增长超150%(附调研问答) 科德数控:募投项目主要使用在于公司主营的高档数字控制机床板块属于国家“十四五规划”重点鼓励发展的工业母机领域

以STM32F4为控制核心的四轴航拍飞行器的设计与实现

来源:m6米乐在线入口    发布时间:2024-03-09 19:11:02

■ 本设计是基于STM32F4的四轴航拍平台。以STM32F407为控制核心,四轴飞行器为载体,辅以


  •   本设计是基于STM32F4的四轴航拍平台。以STM32F407为控制核心,四轴飞行器为载体,辅以云台的航拍系统。硬件上由飞控电路,电源管理,通信模块,动力系统,机架,云台伺服系统组成。算法上采用简洁稳定的四元数加互补滤波作为姿态解算算法,PID作为控制器,实现飞行,云台增稳等功能。具有灵活轻盈,延展性,适应性强好等特点。

      四轴飞行器是一种利用四个旋翼作为飞行引擎来进行空中飞行的飞行器。进入20世纪以来,电子技术快速的提升四轴飞行器开始走向小型化,并融入了人工智能,使其发展趋于无人机,智能机器人。

      四轴飞行器不但实现了直升机的垂直升降的飞行性能,同时也在某些特定的程度上降低了飞行器机械结构的设计难度。四轴飞行器的平衡控制管理系统由各类惯性传感器组成。在制作的步骤中,对整体机身的中心、对称性以及电机性能要求较低,这也正是制作四轴飞行器的优势所在,而且相较于固定翼飞机,四轴也有着可垂直起降,更加灵活,易维护等优点。

      在实际应用方面,四轴飞行器可以在复杂、危险的环境下能够实现特定的飞行任务,也能够适用于监控交通,环境等。比如,在四轴飞行器上安装甲烷等有害化学气体的检测装置,则可以在高空定点地检测有害化学气体;进入辐射区检查;做军事侦察;甚至搬运材料,搭建房屋等等。本设计利用四轴搭载云台实现航拍任务,当然通过改装也可以执行其他任务。

      本设计主要研究了四轴飞行器的姿态结算和飞行控制,并设计制作了一架四轴飞行器,对关键传感器做了标定,并利用用matlab分析数据,设计算法,还进行了单通道平衡试验调试,进行试飞实验取得了一定的效果。

      本设计采用STM32F4作为核心处理器,该处理器内核架构ARM Cortex-M4,具有高性能、低成本、低功耗等特点。

      主控板包括传感器MPU6050电路模块、无线蓝牙模块、电机启动模块,电源管理模块等;遥控使用商品遥控及接收机。控制芯片捕获接收机的PPM命令信号,传感器与控制芯片之间采用IIC总线连接,MCU与电调之间用PWM传递控制信号。

      软件算法才用基于四元数的互补滤波解算姿态叫,控制算法才用经典PID控制器控制云台舵机和四轴电机。如图2-1为本设计总体框图。

      针对前面提出的整体设计的具体方案,本设计采取模块化策略,将各个功能部分开来设计,最后组合起来。

      四轴飞行器要求整体设计质量较轻,体积较小,因此在电池的选取方面,采用体积小、质量轻、容量大的锂电池供电最合适。系统的核心芯片为STM32F103,常用工作电压为3.3V,同时惯性测量传感器,蓝牙通信模块的常规供电电压也为3.3V,锂电池的电压为11.4V,要使系统正常工作,需要将11.4V的锂电池电压稳压到3.3V。常用的78系列稳压芯片已不再适用,一定要选择性能更好的稳压芯片。

      经综合考虑,本电路采取LM1117-3.3和LM2940-5电源部分的核心芯片。电池电源经过LM2940-5降到5V后在输入LM1117-3.3稳压为3.3V。由于电机部分电流比较大,故在飞控电路部分加入了过流保护,使用500mA的保险丝。电路图如下。

      软件设计上由控制核心STM32F4读取传感器信息,解算姿态角,以姿态角为被控制量融合遥控信息后,输出到四个电机及两个舵机以完成四轴飞行控制和云台的稳定补偿。下图是软件流程:

      根据前面给出的姿态解算方程与四元数,即可得到姿态计算系统的计算原理如下图(4-1)

      本设计基于互补滤波的思想上完成的四元素算法,其核心思路为利用加速度测得的重力向量与估计姿态得到重力向量的误差来矫正陀螺仪积分误差,然后利用矫正后的陀螺仪积分得到姿态角。

      首先不妨设处理后的加速度数据为:ax,ay,az,单位m/s^2。加速度计的向量为 (ax,ay,az)陀螺仪数据为:gx,gy,gz,单位rad/s。陀螺仪向量 (gx,gy,gz),由式(4-5)可得由载体到导航坐标系的四元数形式转换矩阵为:

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

      然后利用向量的叉积, 可视为误差向量,这个叉积向量仍旧是位于机体坐标系上的,而陀螺积分误差也是在机体坐标系,而且叉积的大小与陀螺积分误差成正比,正好拿来纠正陀螺。由于陀螺是对机体直接积分,所以对陀螺的纠正量会直接体现在对机体坐标系的纠正。用上面得到的结果校正陀螺仪:

      再利用二阶毕卡法解四元数微分方程(4-6),更新四元数为下一次计算做准备。毕卡二阶算法为:

      通过以上算法我成功得出了飞行器的姿态角,在开启电机的情况下,角度误差在+/-2°以内,满足了控制要求。姿态计算效果如下图所示,其中红色和蓝色是直接由加速度计算出的俯仰角和横滚角,青色和黄色为姿态结算后的俯仰角和横滚角。由图中数据可看出,解算的姿态角不仅能即时的反应角度变化切曲线平滑,说明姿态解算算法有效。4.2.控制设计

      由于四轴飞行器独特的机械结构,即结构上的对称设计,使得四轴在俯仰角的控制欲横滚角的控制上有这近乎相同的控制特性,且两者相对独立。四轴飞行器的俯仰,横滚,偏航,升降能够最终靠四个输入量来控制。通过设定一个期望角度,调整电机转速,使得测得的姿态角稳定在期望角。控制律的设计主要是采用是闭环控制。以姿态角做为被控制量,采用经典的PID控制算法。

      四轴飞行器系统是一个时变且非线性的系统,采用传统PID算法的单一的反馈控制会使系统存在不同程度的超调和振荡现象,没办法得到理想的控制效果。本文将前馈控制引入到了四轴飞行器系统的控制中,有效地改善了系统的实时性,提高了系统的反应速度;并且根据四轴飞行器系统的特点,对数字PID算法进行了改进,引入了微分先行环节,改善了系统的动态特性;使得控制器能够更好地适应四轴飞行器系统的实际情况。

      在姿态角的控制中,本设计将控制器捕获到的遥控器信号转换为一个角度,作为期望角,与解算出来的测量角作差,得到偏差error。将error乘以一个比例系数kp。在只有kp作用下,系统会有静差所以考虑利用积分ki控制消除稳态误差。但积分控制会降低系统的动态性能,甚至造成闭环系统不稳定,因此要对积分进行限幅,防止积分过大。

      对于微分,如果采用传统的D方法,在人为操纵四轴时会产生输入的设定值变化频繁且幅度较大,从而造成系统的振荡。对人为控制十分不利,未解决设定值的频繁变化给系统带来的不良影响,本文在姿态角控制上引入了微分先行PID算法,其特点是只对输出量进行微分,即只对陀螺仪角速度测量值进行微分,而不对姿态角的设定值进行微分。这样,在设定值发生明显的变化时,输出量并不会改变,而被控量的变化相对是比较缓和的,这就很好地避免了设定值的频繁变化给系统造成的振荡,明显地改善了系统的动态性能。控制周期定为4ms,姿态控制系统示意图如下:

      通过前面一章的介绍我们已的达到了俯仰,横滚,航向三个控制量,然后将它们分别输入三个独立的如上图所示的PID控制器,我们大家可以得到三个PID输出:pid_roll,pid_pitch,pid_yaw将这三个输出量做简单的线性运算输出给电机。部分代码如下:

      PID参数的整定是PID控制的关键环节,直接影响到控制的效果。故一个PID设计的好不好往往要看其参数能否调节好,本设计的PID参数调节采用凑试法。凑试法是通过实际的闭环系统,通过观察系统的响应曲线,在本设计中通过观察被调量,PID输出,设定值三条曲线,判断出kp,ki,kd对系统响应的影响,反复尝试,最终达到满意响应,进而达到确定控制参数的kp,ki,kd的目的。在参数调节过程总遵循以下原则[17]:

      确定比例增益P时,首先去掉PID的积分项和微分项,一般是令Ti=0、Td=0(具体见PID的参数设定说明),使PID为纯比例调节。输入设定为系统允许的最大值的60%~70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益P,设定PID的比例增益P为当前值的60%~70%。比例增益P调试完成。

      比例增益P确定后,设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡,之后在反过来,逐渐加大Ti,直至系统振荡消失。记录此时的 Ti,设定PID的积分时间常数Ti为当前值的150%~180%。积分时间常数Ti调试完成。

      积分时间常数Td一般不用设定,为0即可。若要设定,与确定 P和Ti的方法相同,取不振荡时的30%。

      (5)最终调试好的标准应该是,PID输出曲线在有一个阶跃响应来是,响应一大一小两个波,小波是的四分之一。

      四轴飞行器的PID整定,我们第一步四轴固定在单轴平衡平台上,让飞行器完成单轴平衡,主要观察姿态角的(1)稳定性,能否平衡在期望角度;(2)响应性,当操纵命令改变时,四轴能否即时的响应期望的变化;(3)操纵性,由操纵员感受四轴的姿态是否已与操纵,会不会产生响应过冲。

      在参数调整时,先调P,将I,D给0,先给一个小值P1,如果飞行器不能稳定在一个角度,则P1给小了,下一次给一个较大值P2,如果飞行器产生震荡则证明P2给大了,那么合适的P在P1-P2之间,反复试验几次可找到P震荡的临界点P0,然后保持P0不变按照调P的方法来调D,D是用来消除误差的,当抖动差不多被消除时,此时我们有较合适的P0,D0,在这两个值附近再试几组参数,观察效果得到最优参数。调好P,D后此时四轴的稳定状态与期望状态间也学会有静差,接下来加入I,参数有小到大,当静差差不多被消除时,我们再对P,I,D三组参数在小范围内联调。最后确定恰当的积分限幅值,完成整个PID参数的整定。5.系统创新

      采用STM32F407这样一款高性能芯片作为控制核心,计算快速,扩展空间大。

      姿态算法采用基于四元数的互补滤波,姿态角无奇点,比起卡尔曼李春波等高端算法有着计算量小的特点且能投入到正常的使用中,大大节约了cpu计算时间,也降低了对cpu的性能要求。

      利用四轴作为云台载体有着灵活机动,可让摄像头获得比较好的视野,且云台能消除四轴机体抖动。

      在完成控制器底层的硬件驱动后,开始姿态角算法的调试。利用蓝牙模块将解算出的姿态角数据发回上位机,摇动四轴机体,观察上位机数据曲线与姿态演示立方块。

      图6-1 姿态角数据对比曲线中黄色和蓝色为直接由加速度计算出的俯仰与横滚角,红色和青色为姿态解算后的姿态角,可明显看出直接由加速度计算出的姿态角噪声大,不平滑,不能真实反映姿态角的变化。而由四元数算法解算后的姿态角反应快,噪声小,足以满足控制要求。光观察曲线并不直观,还可以观察上位机中的立方块,当小立方块的姿态与四轴机体能够保持一致变化时说明姿态解算良好。通过以上手段可知姿态角解算满足需求。

      在第五章,已经针对四轴飞行器进行了PID的控制设计,但为得到实际使用的PID控制参数我们还一定要通过反复试验来整定出最优参数。为了方便参数的调试,在本设计过程中才用了先调平衡一个方向,再调另一个方向,最后联达到平衡的效果。为此设计了如下图所示试试验平台:

      在调试过程中,为了尽最大可能避免频繁的下载程序带来的不变,采用串口蓝牙发送参数的做法,大幅度的提升了调试效率。当俯仰与横滚两个轴都能够独立的平衡时,可以脱离单轴平台开始在空中进行航向角的稳定性调试。

      6.2.四轴飞行器的试飞当前面的各项调试都完成了之后,就准备要进行试飞实验。飞行试验是对控制管理系统的功能和技术指标做验证的最终手段,也是衡量四轴设计是否成功的重要标志。

      试飞前要确保系统各部分工作正常,稳定。检查各个接口连接是不是正确,各部件安装是否牢固,电池的电量是否充足。打开电源前检查遥控器油门是否在最低位置,起飞前先轻门确保电机工作正常。一切准备就绪,即可进行试飞。将四种飞行器放在水平地面上,开始启动姿态初始化程序,听到电调提示音后,缓慢增加油门,螺旋桨转速上升,将飞机拉离地面。由真实的情况可看出当姿态发生倾斜时,姿态解算及PID控制能够及时作出调整电机转速,稳定飞行姿态。飞行器还能根据遥控指令的变化完成相应的动作。本此设计的四轴飞行器可实现垂直升降的要求,能保持姿态的稳定,机体晃动小,在微风的干扰下能自动调整姿态,确保平稳飞行,且系统响应快,航时大概在8分钟。因此本次的设计是有效的。

      关键字:引用地址:以STM32F4为控制核心的四轴航拍飞行器的设计与实现

      下一篇:采用DSP与STM32的智能型伺服控制器的软硬件设计及性能测试分析

      以上为GPIO的讲解顺序 在 开发指南第六章有简要的介绍 GPIO口 官方的参考 STM32F4中文参考手册 STM32 F407 的芯片资料 STM32f407 有7组 IO口 1.输入浮空 如果一个IO口 被配制成了浮空输入模式,那么它的 输出驱动器这部分的电路是不工作的。电平从IO口输入后先经过可以配置的上拉下拉 ,然后经过 TTL施密特触发器就会被打开,那么就能够最终靠输入数据寄存器读取IO口的电平。 2 输入上拉 如果被配置为输入上拉后,如上图所示的上拉电阻会被接到Vdd,输入的电平会被拉倒VDD, 之后经过TTL触发器后到输入数据寄存器,之后被CPU读取 3输入下拉 输入电平被拉低 4 模拟输入

      学习 day4 正点原子 第12讲 STM32 GPIO口工作原理 /

      29

      mpu6050.h /** ****************************************************************************** * @file mpu6050.h * @author Waao * @version V1.0.0 * @date 16-Feb-2019 * @brief This file contains some board support packages definition for the MPU6050. * ***********************************************

      人工智能技术是与多门基础学科联系紧密、相互促进相互发展的前沿技术,是集计算机、物理学、生理学、控制技术、传感器技术等于一体的高新技术产业。人工智能技术的应用领域也慢慢变得广泛,除了传统的工业领域,人工智能技术的应用也涉及到军事、娱乐、服务、医疗等领域 。 随机器人技术的持续不断的发展,人们对机器人的要求也慢慢变得高,机器人的智能化已成为当今的热点。智能小车作 为一种四轮驱动的智能机器人,它行动灵活、操作便捷,车上可集成各种精密传感器数据处理模块,其避障功能保证了智能小车在行进过程中行进方向的自行调节, 避免发生碰撞、碰擦,是智能小车的重要组成部分。目前,智能小车大多采用单个传感器实现单面避障,但单面避障存在着固有的缺陷,如:障碍物探测缓慢、

      的智能小车避障系统 /

      STM32F407xx内嵌四个通用同步/异步接收器(USART1,USART2,USART3 和USART6)和两个通用异步收发器(UART4和UART5)。这6个接口提供异步通信的IrDASIR ENDEC支持,多机通信模式,单线半双工通信模式LIN主/从功能。 USART1和USART6接口能够速度高达10.5 Mbit / s的通信其他可用的接口通信高达5.25bit/s。USART1,USART2,USART3和USART6还提供硬件管理的CTS,RTS信号,智能卡的模式(ISO7816兼容)和类似的SPI通信能力。所有接口都能够最终靠DMA控制器。 这里只使用了两根线的最简单串口设置。 硬件环境:STM32

      描述 STM32F4的DAC模块(数字/模拟转换模块)是12位数字输入,电压输出型的DAC。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可设为成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以一起进行转换并同步地更新2个通道的输出。DAC能够最终靠引脚输入参考电压Vref+(通ADC共用)以获得更精确的转换结果。 STM32F4的DAC模块主要特征有: ① 2个DAC转换器:每个转换器对应1个输出通道 ② 8位或者12位单调输出 ③ 12位模式下数据左对齐或者右对齐 ④ 同步更新功能

      07】DAC实验 /

      一. 前言 有工程师反应说Keil 下没办法使用 STM32F4 xx 硬件浮点单元, 导致当运算浮点时运算时间过长,还有一些人反应不知道怎么来使用芯片芯片内部的复杂数学运算,比如三角函数运算。针对这个部分本文将详细介绍怎么样去使用硬件浮点单元以及相关数学运算。 二.问题产生原因 1. ------对于Keil MDK Version 5 版本, 编译器已经完全支持STM32F4xx 的FPU(浮点运算单元),可以直接用芯片内部的浮点运算单元。 2. ------对于Keil MDK Version 4 版本, 高版本v4,比如当前 keil 官网可下载的v4.74.0.0 版本也已经支持FPU,可以直接用芯片内部浮点运算。但如果使

      xx 硬件浮点单元的话题 /

      -DMA请求映射表 /

      引言 开关电源是利用现代电力电子技术控制功率开关管(MOSFET,IGBT)开通和关断的时间比率来稳定输出电压的一种新型稳压电源。从上世纪90年代以来开关电源相继进入各种电子、电器设备领域,计算机、程控交换机、通讯、电子检测设备电源、控制设备电源等都已广泛地使用了开关电源。利用单片机控制的开关电源,可使开关电源具备更完善的功能,智能化进一步提升,便于实时监控。其功能最重要的包含对运行中的开关电源进行仔细的检测、自动显示电源状态;能够最终靠按键进行编程控制;能够直接进行故障自诊断,对电源功率部分实现自动监测;可以对电源进行过压、过流保护;可以对电池充放电进行实时控制。 开关电源的系统结构 通信用-48V开关电源结构图如图1所示:

      机器人手册:第3卷-机器人应用 (西西利亚诺《机器人手册》翻译委员会译)

      报名赢【养生壶、鼠标】等|STM32 Summit全球在线大会邀您一起解读STM32方案

      有奖征文:邀一线汽车VCU/MCU开发工程师,分享开发经验、难题、成长之路等

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

      【下载】LAT1396 STM32CubeIDE实用技巧之STM32H7双核调试的配置

      【下载】LAT1392 LTDC RGB接口 LCD的TouchGFX工程的移植步骤

      【直播】3月27日,STSAFE-A110安全芯片及ST4SIM eSIM芯片助力安全通信

      【线日,基于Buildroot制作STM32MP13启动镜像-深圳/厦门/西安/郑州/苏州

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

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

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

      【下载】AN5129_适合2.4GHz无线信号的低成本PCB天线 基于 BlueNRG-LP ARM Cortex-M0+

      相信学过单片机的同学,对于调库这个操作都不陌生,大多数人都是从调别人的库阶段过来的。今天看到一个评论说,如果只会调库,到了公司后会 ...

      一、MCU中断程序执行过程以MCU裸机程序框架为例,MCU 的主函数是个死循环:主函数:main(void){While(1){ 主程序}}如果没有中断或异常 ...

      一、前言该项目是基于正点原子精英板制作的一个简易示波器,可以读取信号的频率和幅值,并能够最终靠按键改变采样频率和控制屏幕的更新暂停。 ...

      事先声明哦,我也是最近才开始学32的,不过我会尽可能详细的讲解这些小知识点我们口中常说的LED灯其实是指LED发光二极管,关于这一点涉及到 ...

      我们回到前面提到的需求,每隔50±20ms做唤醒,即30ms~70ms范围内实现唤醒都可接受。如果说使用ALARM中断,相信很多人自然会想到,先设定 ...

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