资源简介
里面有详细的介绍,PID关于电机速度的闭环控制程序。有详细说明

代码片段和文件信息
#include “control.h“
/**************************************************************************
作者:平衡小车之家
我的淘宝小店:http://shop114407458.taobao.com/
**************************************************************************/
int Target_velocity=50; //设定速度控制的目标速度为50个脉冲每10ms
int TIM3_IRQHandler(void)
{
if(TIM3->SR&0X0001)//10ms定时中断
{
TIM3->SR&=~(1<<0); //===清除定时器1中断标志位
Encoder=Read_Encoder(2); //===读取编码器的值,M法测速,输出为每10ms的脉冲数
Led_Flash(100); //===LED闪烁;指示单片机正常运行
Moto1=Incremental_PI(EncoderTarget_velocity); //===速度PI控制器
Xianfu_Pwm(); //===PWM限幅
Set_Pwm(Moto1); //===赋值给PWM寄存器
}
return 0;
}
/**************************************************************************
函数功能:赋值给PWM寄存器
入口参数:PWM
返回 值:无
**************************************************************************/
void Set_Pwm(int moto1)
{
if(moto1>0) AIN2=1 AIN1=0;
else AIN2=0 AIN1=1;
PWMA=myabs(moto1);
}
/**************************************************************************
函数功能:限制PWM赋值
入口参数:无
返回 值:无
**************************************************************************/
void Xianfu_Pwm(void)
{
int Amplitude=7100; //===PWM满幅是7200 限制在7100
if(Moto1<-Amplitude) Moto1=-Amplitude;
if(Moto1>Amplitude) Moto1=Amplitude;
}
/**************************************************************************
函数功能:绝对值函数
入口参数:int
返回 值:unsigned int
**************************************************************************/
int myabs(int a)
{
int temp;
if(a<0) temp=-a;
else temp=a;
return temp;
}
/**************************************************************************
函数功能:增量PI控制器
入口参数:编码器测量值,目标速度
返回 值:电机PWM
根据增量式离散PID公式
pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)+Kd[e(k)-2e(k-1)+e(k-2)]
e(k)代表本次偏差
e(k-1)代表上一次的偏差 以此类推
pwm代表增量输出
在我们的速度控制闭环系统里面,只使用PI控制
pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)
**************************************************************************/
int Incremental_PI (int Encoderint Target)
{
float Kp=20Ki=30;
static int BiasPwmLast_bias;
Bias=Encoder-Target; //计算偏差
Pwm+=Kp*(Bias-Last_bias)+Ki*Bias; //增量式PI控制器
Last_bias=Bias; //保存上一次偏差
return Pwm; //增量输出
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2787 2016-06-01 11:57 电机速度闭环控制(代码详细注释)\BALANCE\CONTROL\control.c
文件 463 2015-10-28 10:52 电机速度闭环控制(代码详细注释)\BALANCE\CONTROL\control.h
文件 2891 2015-07-09 14:05 电机速度闭环控制(代码详细注释)\BALANCE\DataScope_DP\DataScope_DP.C
文件 586 2015-07-09 14:05 电机速度闭环控制(代码详细注释)\BALANCE\DataScope_DP\DataScope_DP.h
文件 19342 2012-12-14 11:16 电机速度闭环控制(代码详细注释)\BALANCE\DMP\dmpKey.h
文件 6765 2012-12-14 11:16 电机速度闭环控制(代码详细注释)\BALANCE\DMP\dmpmap.h
文件 84104 2015-07-09 14:05 电机速度闭环控制(代码详细注释)\BALANCE\DMP\inv_mpu.c
文件 4335 2015-07-09 14:05 电机速度闭环控制(代码详细注释)\BALANCE\DMP\inv_mpu.h
文件 57839 2015-07-09 14:05 电机速度闭环控制(代码详细注释)\BALANCE\DMP\inv_mpu_dmp_motion_driver.c
文件 3386 2015-07-09 14:05 电机速度闭环控制(代码详细注释)\BALANCE\DMP\inv_mpu_dmp_motion_driver.h
文件 2108 2015-07-09 14:05 电机速度闭环控制(代码详细注释)\BALANCE\filter\filter.c
文件 399 2015-07-09 14:05 电机速度闭环控制(代码详细注释)\BALANCE\filter\filter.h
文件 11064 2015-10-20 17:02 电机速度闭环控制(代码详细注释)\BALANCE\MPU6050\MPU6050.c
文件 14781 2015-07-09 14:05 电机速度闭环控制(代码详细注释)\BALANCE\MPU6050\mpu6050.h
文件 3273 2015-10-13 13:02 电机速度闭环控制(代码详细注释)\BALANCE\show\show.c
文件 331 2015-10-16 15:04 电机速度闭环控制(代码详细注释)\BALANCE\show\show.h
文件 2377 2015-06-22 15:54 电机速度闭环控制(代码详细注释)\HARDWARE\ADC\adc.c
文件 189 2015-06-22 15:39 电机速度闭环控制(代码详细注释)\HARDWARE\ADC\adc.h
文件 2563 2015-07-09 14:05 电机速度闭环控制(代码详细注释)\HARDWARE\ENCODER\encoder.c
文件 470 2015-07-09 14:05 电机速度闭环控制(代码详细注释)\HARDWARE\ENCODER\encoder.h
文件 10557 2015-07-09 14:05 电机速度闭环控制(代码详细注释)\HARDWARE\IIC\IOI2C.c
文件 3119 2015-07-09 14:05 电机速度闭环控制(代码详细注释)\HARDWARE\IIC\IOI2C.h
文件 1630 2015-06-21 12:46 电机速度闭环控制(代码详细注释)\HARDWARE\KEY\key.c
文件 234 2015-06-21 11:03 电机速度闭环控制(代码详细注释)\HARDWARE\KEY\key.h
文件 484 2015-12-27 16:13 电机速度闭环控制(代码详细注释)\HARDWARE\LED\LED.C
文件 166 2015-12-27 16:24 电机速度闭环控制(代码详细注释)\HARDWARE\LED\LED.H
文件 1059 2015-12-27 15:50 电机速度闭环控制(代码详细注释)\HARDWARE\MOTOR\motor.c
文件 307 2015-12-27 16:01 电机速度闭环控制(代码详细注释)\HARDWARE\MOTOR\motor.h
文件 5550 2015-06-21 16:07 电机速度闭环控制(代码详细注释)\HARDWARE\OLED\oled.c
文件 961 2015-06-21 16:51 电机速度闭环控制(代码详细注释)\HARDWARE\OLED\oled.h
............此处省略129个文件信息
相关资源
- PID_AutoTune_v0.rar
- FPGA实现PID.v
- DV泵加罗茨泵独立控制系统PID.smart
- 模糊PID控制 c
- 课程设计蔬菜大棚自动控制系统,包
- (温度PID)实验指导书(三菱)
- PLCS7-1200PID参数自整定
- PLCS7-1200PID闭环控制
- RapidIO 2.2 Specification
- RapidIO_Rev_2.2_Specification
- 基于DSP的大功率开关电源的设计方案
- 基于DSP的大功率开关电源设计
- BLDC电机PID算法
- 基于双闭环模糊PID控制器的开关电源
- pid 模拟测试软件
- 基于RBF神经网络在线辨识的永磁同步
-
Lipase-catalyzed synthesis and the lipid me
- 中微子双β衰变的CUPID-Mo实验:性能
- 智能车模糊控制
- LabVIEW实现Fuzzy_PID的补充资源
- 四轴飞控源码 PID参考apm 采用了dmp自带
- 平衡小车之家全套资料
- 基于ARM的高精度PID温度控制器_张军
- 基于STM32F07单片机风洞程序
- 基于51单片机的直流电机PID控制
- 基于STM32的智能服务型多功能多足机器
- 基于STM32PID电机控制
- STM32直流有刷电机PID控制
- STM32F407. 基于PID速度环的步进电机速度
- 基于stm32F103的两轮自平衡小车
评论
共有 条评论