资源简介
前几天一直在整平衡小车,想用这个理解一下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个文件信息
- 上一篇:STM32F407ZGT6串口通信源码
- 下一篇:考研倒计时小程序.rar
相关资源
- 基于STM32平衡小车制作
- 平衡小车PCB+代码+原理图
- 两轮平衡小车K5环境+STM32+MPU6050+卡尔曼
- 两轮自平衡小车控制系统
- Arduino平衡小车说明书.rar
- 平衡小车蓝牙控制Apk 3个
- 平衡小车car--葛凤佩.rar
- 平衡小车原理图PCB图
- 平衡小车pcb与原理图,源码,蓝牙,
- 基于STM32的两轮平衡小车资料
- 平衡小车 SCH+PCB+程序
- 两轮自平衡小车全套资料
- 论文研究-两轮自平衡小车模型参考自
- stc15两轮自平衡小车
- 基于STC12C5A60S2两轮平衡小车程序源码
- Arduino STM32 平衡小车之家平衡小车源码
- 自平衡小车arduino+mpu6050+卡尔曼滤波
- Arduino 平衡小车
- Arduino 亚博智能平衡小车源码
- 两轮移动式倒立摆两轮自平衡小车
- 平衡小车之家以及自己的有关于平衡
- arduino pid 调节 平衡小车代码
- 51单片机两轮平衡小车
- 基于STM32的两轮平衡小车,代码详尽,
评论
共有 条评论