资源简介
【平衡小车之家】Forest D1 STM32 旋转倒立摆STM32源码 电子竞赛
代码片段和文件信息
#include “control.h“
/**************************************************************************
作者:Sam
我的淘宝小店:客户满意使我们的服务宗旨
**************************************************************************/
int Balance_PwmPosition_Pwm;
u8 Flag_TargetPosition_Target;
/**************************************************************************
函数功能:所有的控制代码都在这里面
TIM1控制的5ms定时中断
**************************************************************************/
int TIM1_UP_IRQHandler(void)
{
if(TIM1->SR&0X0001)//5ms定时中断
{
TIM1->SR&=~(1<<0); //===清除定时器1中断标志位
if(delay_flag==1)
{
if(++delay_50==10) delay_50=0delay_flag=0; //===给主函数提供50ms的精准延时
}
Encoder=Read_Encoder(4); //===更新编码器位置信息
Angle_Balance=Get_Adc_Average(315); //===更新姿态
Balance_Pwm =balance(Angle_Balance); //===角度PD控制
if(++Position_Target>4) Position_Pwm=Position(Encoder)Position_Target=0; //===位置PD控制 25ms进行一次位置控制
Moto=Balance_Pwm-Position_Pwm; //===计算电机最终PWM
Xianfu_Pwm(); //===PWM限幅 反正占空比100%带来的系统不稳定因素
if(Turn_Off(Voltage)==0) //===低压和倾角过大保护
Set_Pwm(Moto); //===赋值给PWM寄存器
Led_Flash(100); //===LED闪烁指示系统正常运行
Voltage=Get_battery_volt(); //===获取电池电压
Key(); //===扫描按键变化
}
return 0;
}
/**************************************************************************
函数功能:倾角PD控制
入口参数:角度
返回 值:倾角控制PWM
作 者:平衡小车之家
**************************************************************************/
int balance(float Angle)
{
float Bias; //倾角偏差
static float Last_BiasD_Bias; //PID相关变量
int balance; //PWM返回值
Bias=Angle-ZHONGZHI; //求出平衡的角度中值 和机械相关
D_Bias=Bias-Last_Bias; //求出偏差的微分 进行微分控制
balance=-Balance_KP*Bias-D_Bias*Balance_KD; //===计算倾角控制的电机PWM PD控制
Last_Bias=Bias; //保持上一次的偏差
return balance;
}
/**************************************************************************
函数功能:位置PD控制
入口参数:编码器
返回 值:位置控制PWM
作 者:平衡小车之家
**************************************************************************/
int Position(int Encoder)
{
static float Position_PWMLast_PositionPosition_BiasPosition_Differential;
static float Position_Least;
Position_Least =Encoder-Position_Zero; //===
Position_Bias *=0.8;
Position_Bias += Position_Least*0.2; //===一阶低通滤波器
Position_Differential=Position_Bias-Last_Position;
Last_Position=Position_Bias;
Position_PWM=Position_Bias*Position_KP+Position_Differential*Position_KD; //===速度控制
return Position_PWM;
}
/***************************************************
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-03-22 10:34 【平衡小车之家】Forest D1 旋转倒立摆源码\
目录 0 2017-03-22 10:34 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\
目录 0 2018-04-20 09:27 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\CONTROL\
文件 0 2016-02-22 11:47 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\CONTROL\MFC10DB.tmp
文件 0 2016-02-23 08:58 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\CONTROL\MFC3A5E.tmp
文件 5604 2018-04-20 09:27 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\CONTROL\control.c
文件 11154 2016-02-22 15:13 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\CONTROL\control.c~RF18b9998.TMP
文件 574 2016-04-23 13:57 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\CONTROL\control.h
目录 0 2017-03-22 10:34 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\DMP\
文件 19342 2012-12-14 11:16 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\DMP\dmpKey.h
文件 6765 2012-12-14 11:16 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\DMP\dmpmap.h
文件 84104 2015-07-09 14:05 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\DMP\inv_mpu.c
文件 4335 2015-07-09 14:05 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\DMP\inv_mpu.h
文件 57839 2015-07-09 14:05 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\DMP\inv_mpu_dmp_motion_driver.c
文件 3386 2015-07-09 14:05 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\DMP\inv_mpu_dmp_motion_driver.h
目录 0 2017-03-22 10:34 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\DataScope_DP\
文件 2891 2015-07-09 14:05 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\DataScope_DP\DataScope_DP.C
文件 586 2015-07-09 14:05 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\DataScope_DP\DataScope_DP.h
目录 0 2017-03-22 10:34 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\MPU6050\
文件 11099 2015-12-04 10:34 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\MPU6050\MPU6050.c
文件 14787 2015-10-17 15:04 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\MPU6050\mpu6050.h
目录 0 2017-03-22 10:34 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\filter\
文件 2105 2015-12-07 15:52 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\filter\filter.c
文件 399 2015-12-07 15:52 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\filter\filter.h
目录 0 2018-04-20 09:27 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\show\
文件 4978 2018-04-20 09:27 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\show\show.c
文件 332 2016-04-19 16:22 【平衡小车之家】Forest D1 旋转倒立摆源码\BALANCE\show\show.h
目录 0 2017-03-22 10:34 【平衡小车之家】Forest D1 旋转倒立摆源码\HARDWARE\
目录 0 2018-04-20 09:27 【平衡小车之家】Forest D1 旋转倒立摆源码\HARDWARE\ADC\
文件 4587 2018-04-20 09:27 【平衡小车之家】Forest D1 旋转倒立摆源码\HARDWARE\ADC\adc.c
文件 487 2017-12-17 15:51 【平衡小车之家】Forest D1 旋转倒立摆源码\HARDWARE\ADC\adc.h
............此处省略161个文件信息
- 上一篇:Da14580官方开发包SDK5.0.3
- 下一篇:海康威视模式识别笔试题
相关资源
- DQ电子_STM32F103VET6_开发板_用户手册.
- 扫码模块配合STM32
- 基于STM32F1和ESP8266的MQTT数据传输
- STM32F10X上面的所有串口综合程序
- stm32f1WM8978录音和放音例程.rar
- 基于STM32的TEA5767收音机工程
- DM412三通道LED STM32F103驱动
- STM32F407+ov2640图像处理图像经过二值化
- STM32的ADC模数转换(STM32神舟IV号-库函
- stm32汉字取模显示
- STM32F103ZET6-TFTLCD显示二维码
- MPU9250九轴官方MPL库移植STM32F407例程
- STM32F103c8t6核心板资料很全的就能用
- LDC1314源码
- ks103多个超声波驱动
- 基于STM32的MS5611程序 气压计 IIC
- stm32f103modbus主机程序
- ESP8266模块--APP连接可收发数据
- STM32F103+MC20GRPS源码
- 2017年全国大学生电子竞赛A题论文方案
- EC11_stm32的程序
- STM32F103C8T6控制86步进电机
- 基于stm32f103zet6的水温控制系统
- 基于stm32的心跳信号监测,短信发送心
- 基于STM32的光照灯设计
- APDS9960手势识别程序源码
- 基于stm32的三导联心电仪设计源码
- stm32串口实验之多机通信
- bluetooth蓝牙和STM32连接例程
- stm32f030驱动MPU6050
评论
共有 条评论