基于stm32f407飞控+stm32f103遥控sxy飞行器加权串级PID控制代码代码+算法


本资源是本人在大学四年里设计和研究的成果,主要研究sxy飞行控制的控制方法,方案采用的是9轴mpu9150,包含3轴陀螺仪+3轴加速计+3轴地磁计,陀螺仪采用四元数+欧拉角算法解算出xyz姿态角度,采用了加权系数串级pid控制算法(内环+外环鲁棒控制)使系统更加稳定、安全、和更具鲁棒性,采用卡尔曼滤波算法滤掉和平滑滤波算法滤除高频成分和突变情况,使角度更加平滑,输出更稳定,采用数字补偿控制飞行器漂移,采用24l01无线模块远程控制飞行姿态,采用超声波和z轴加速度控制高度和定高,实践飞行的效果比较好,飞行器飞行很稳定,抗干扰强、鲁棒性强,向下或向上拉扯抗拉力强,最大角度恢复速度快,稳定时间短,最大仰角下1-2次反馈就恢复水平,本代码和控制算法仅供大家学习和参考,请勿上传到其他网站赚取积分,否则将追究责任!
资源截图
代码片段和文件信息
/**************************************************************************//**
 * @file     core_cm3.c
 * @brief    CMSIS Cortex-M3 Core Peripheral Access layer Source File
 * @version  V1.30
 * @date     30. October 2009
 *
 * @note
 * Copyright (C) 2009 ARM Limited. All rights reserved.
 *
 * @par
 * ARM Limited (ARM) is supplying this software for use with Cortex-M 
 * processor based microcontrollers.  This file can be freely distributed 
 * within development tools that are supporting such ARM based processors. 
 *
 * @par
 * THIS SOFTWARE IS PROVIDED “AS IS“.  NO WARRANTIES WHETHER EXPRESS IMPLIED
 * OR STATUTORY INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
 * ARM SHALL NOT IN ANY CIRCUMSTANCES BE LIABLE FOR SPECIAL INCIDENTAL OR
 * CONSEQUENTIAL DAMAGES FOR ANY REASON WHATSOEVER.
 *
 ******************************************************************************/

#include 

/* define compiler specific symbols */
#if defined ( __CC_ARM   )
  #define __ASM            __asm                                      /*!< asm keyword for ARM Compiler          */
  #define __INLINE         __inline                                   /*!< inline keyword for ARM Compiler       */

#elif defined ( __ICCARM__ )
  #define __ASM           __asm                                       /*!< asm keyword for IAR Compiler          */
  #define __INLINE        inline                                      /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */

#elif defined   (  __GNUC__  )
  #define __ASM            __asm                                      /*!< asm keyword for GNU Compiler          */
  #define __INLINE         inline                                     /*!< inline keyword for GNU Compiler       */

#elif defined   (  __TASKING__  )
  #define __ASM            __asm                                      /*!< asm keyword for TASKING Compiler      */
  #define __INLINE         inline                                     /*!< inline keyword for TASKING Compiler   */

#endif


/* ###################  Compiler specific Intrinsics  ########################### */

#if defined ( __CC_ARM   ) /*------------------RealView Compiler -----------------*/
/* ARM armcc specific functions */

/**
 * @brief  Return the Process Stack Pointer
 *
 * @return ProcessStackPointer
 *
 * Return the actual process stack pointer
 */
__ASM uint32_t __get_PSP(void)
{
  mrs r0 psp
  bx lr
}

/**
 * @brief  Set the Process Stack Pointer
 *
 * @param  topOfProcStack  Process Stack Pointer
 *
 * Assign the value ProcessStackPointer to the MSP 
 * (process stack pointer) Cortex processor register
 */
__ASM void __set_PSP(uint32_t topOfProcStack)
{
  msr psp r0
  bx lr
}

/**
 * @brief  Return the Main Stack Pointer
 *
 * @return Main Stack Pointer
 *
 * Return the curren

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-10-04 22:54  基于stm32f407四旋翼飞行器PID控制代码
     目录           0  2018-10-04 22:50  基于stm32f407四旋翼飞行器PID控制代码2401 - RX
     目录           0  2018-10-04 22:50  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验
     目录           0  2018-10-04 22:50  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验CORE
     文件       17273  2010-06-07 10:25  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验COREcore_cm3.c
     文件       85714  2011-02-09 14:59  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验COREcore_cm3.h
     文件       15503  2011-03-10 10:52  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验COREstartup_stm32f10x_hd.s
     文件       12765  2011-03-10 10:52  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验COREstartup_stm32f10x_md.s
     目录           0  2018-10-04 22:50  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验HARDWARE
     目录           0  2018-10-04 22:50  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验HARDWAREKEY
     文件        1977  2014-03-20 20:32  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验HARDWAREKEYkey.c
     文件        1013  2014-03-20 20:30  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验HARDWAREKEYkey.h
     目录           0  2018-10-04 22:50  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验HARDWARELCD
     文件       35016  2014-01-02 17:22  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验HARDWARELCDFONT.H
     文件       85631  2015-08-12 18:19  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验HARDWARELCDlcd.c
     文件        8193  2015-08-12 18:19  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验HARDWARELCDlcd.h
     目录           0  2018-10-04 22:50  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验HARDWARELED
     文件        1301  2014-03-20 20:13  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验HARDWARELEDled.c
     文件         640  2014-03-20 19:03  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验HARDWARELEDled.h
     目录           0  2018-10-04 22:50  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验HARDWARENRF24L01
     文件        8509  2017-03-22 15:30  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验HARDWARENRF24L0124l01.c
     文件        4830  2017-03-22 15:30  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验HARDWARENRF24L0124l01.h
     目录           0  2018-10-04 22:50  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验HARDWARESPI
     文件        3318  2014-03-22 14:03  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验HARDWARESPIspi.c
     文件         685  2014-03-22 14:03  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验HARDWARESPIspi.h
     文件         399  2011-04-23 10:24  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验keilkilll.bat
     目录           0  2018-10-04 22:50  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验OBJ
     文件      323848  2017-03-22 15:31  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验OBJ24L01.axf
     文件        1451  2017-03-22 15:31  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验OBJ24L01.build_log.htm
     文件      354668  2017-03-22 15:30  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验OBJ24l01.crf
     文件        1759  2017-03-22 15:30  基于stm32f407四旋翼飞行器PID控制代码2401 - RXALIENTEK MINISTM32 实验24 24L01无线通信实验OBJ24l01.d
............此处省略1377个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)