• 大小: 6.12MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-02
  • 语言: 其他
  • 标签: 平衡小车  

资源简介

前几天一直在整平衡小车,想用这个理解一下pid,并调一调带编码盘的电机。 首先谈谈我对pid算法的理解,刚开始以为平衡小车是采取的串级pid来是小车平衡,就是通过角度算出此时的pwm,在通过这个pwm去当作速度环的入口参数,通过编码盘来获取小车的速度控制小车由角度环指定速度下行驶。但通过实践并不是这样,速度环和角度环应该是两个独立的系统,角度环用来让小车快速的恢复到平衡状态,如果初始化陀螺仪时陀螺仪的角度正好重力重合,那么你的小车就会平衡,否则就会向一个方向加速,只至倒下,加上速度环就会解决这一问题,速度环是为了消除小车的位移,让小车能够在一定的位移范围内调整角度,如果下车像一个方向一直加速,那么速度环累计的位移就会越来越大最后达到一定程度,导致小车减速甚至反向到达以前的位置。

资源截图

代码片段和文件信息

/**************************************************************************//**
 * @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

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      17273  2010-06-07 10:25  平衡小车\CORE\core_cm3.c

     文件      85714  2011-02-09 14:59  平衡小车\CORE\core_cm3.h

     文件      15503  2018-06-15 22:18  平衡小车\CORE\startup_stm32f10x_hd.s

     文件      19342  2012-12-14 11:16  平衡小车\HARDWARE\MPU6050\eMPL\dmpKey.h

     文件       6765  2012-12-14 11:16  平衡小车\HARDWARE\MPU6050\eMPL\dmpmap.h

     文件      89473  2018-06-14 14:29  平衡小车\HARDWARE\MPU6050\eMPL\inv_mpu.c

     文件       4865  2015-01-17 12:09  平衡小车\HARDWARE\MPU6050\eMPL\inv_mpu.h

     文件      58387  2014-05-09 12:20  平衡小车\HARDWARE\MPU6050\eMPL\inv_mpu_dmp_motion_driver.c

     文件       3538  2012-12-14 11:16  平衡小车\HARDWARE\MPU6050\eMPL\inv_mpu_dmp_motion_driver.h

     文件       5003  2018-06-14 18:08  平衡小车\HARDWARE\MPU6050\mpu6050.c

     文件       4911  2018-06-14 18:07  平衡小车\HARDWARE\MPU6050\mpu6050.h

     文件       2911  2018-06-22 20:03  平衡小车\HARDWARE\MPU6050\mpuiic.c

     文件       1480  2018-06-22 20:03  平衡小车\HARDWARE\MPU6050\mpuiic.h

     文件       2709  2018-06-20 18:48  平衡小车\HARDWARE\PWM\pwm.c

     文件        344  2018-06-20 19:09  平衡小车\HARDWARE\PWM\pwm.h

     文件       6962  2018-06-23 08:15  平衡小车\HARDWARE\TIMER\timer.c

     文件        749  2018-06-23 07:43  平衡小车\HARDWARE\TIMER\timer.h

     文件        399  2011-04-23 10:24  平衡小车\keilkilll.bat

     文件     349060  2018-04-04 21:36  平衡小车\OBJ\capture.crf

     文件       1709  2018-04-04 21:36  平衡小车\OBJ\capture.d

     文件     383244  2018-04-04 21:36  平衡小车\OBJ\capture.o

     文件       3939  2018-06-23 08:53  平衡小车\OBJ\core_cm3.crf

     文件        101  2018-06-23 08:53  平衡小车\OBJ\core_cm3.d

     文件      11340  2018-06-23 08:53  平衡小车\OBJ\core_cm3.o

     文件     348299  2018-06-23 08:53  平衡小车\OBJ\delay.crf

     文件       1666  2018-06-23 08:53  平衡小车\OBJ\delay.d

     文件     384060  2018-06-23 08:53  平衡小车\OBJ\delay.o

     文件         19  2018-06-23 08:03  平衡小车\OBJ\ExtDll.iex

     文件     355744  2018-03-31 14:21  平衡小车\OBJ\hcsr.crf

     文件          0  2018-03-31 21:47  平衡小车\OBJ\hcsr.d

............此处省略214个文件信息

评论

共有 条评论