• 大小: 3.73MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-11
  • 语言: 其他
  • 标签: stm32  

资源简介

采用stm系列单片机,根据温度来实验对风扇转速的自动调节。

资源截图

代码片段和文件信息

#include “control.h“
#include “usart.h“
#include “ds18b20.h“ 
float SpeedSet=2000;
float Kp=1.2;
float Ki=0.2;
float Integral_MAX=230;
float JIFEN_YUZHI=100;
float SpeedControlOutMax=3500;
int Encoder;
int Moto1;
int temperature;
int z;

/*************************************************
                  速度部分变量
*************************************************/
float Real
      I0
      SpeedControlOut;
 int real;
  /**************************************************************************
作者:平衡小车之家
我的淘宝小店:http://shop114407458.taobao.com/
**************************************************************************/
//int Encoder;
//int Moto1;
//int Target_velocity;  //设定速度控制的目标速度为50个脉冲每10ms

//int TIM2_IRQHandler(void)  
//{    
// if(TIM2->SR&0X0001)//10ms定时中断
// {   
//   TIM2->SR&=~(1<<0);                                       //===清除定时器1中断标志位  
//   Encoder=Read_Encoder(4);   //===读取编码器的值,M法测速,输出为每10ms的脉冲数
// Encoder=Encoder*CAR_SPEED_CONSTANT;                                     //===LED闪烁;指示单片机正常运行
//    Xianfu_Pwm();                                            //===PWM限幅
// //Moto1=1000;
//   Moto1=Incremental_PI(EncoderTarget_velocity);           //===速度PI控制器
//     Set_Pwm(Moto1);                                          //===赋值给PWM寄存器  
// }       
//  return 0;   
//} 

void TIM2_IRQHandler(void)   //TIM3中断
{
if (TIM_GetITStatus(TIM2 TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源 
{
TIM_ClearITPendingBit(TIM2 TIM_IT_Update);  //清除TIMx的中断待处理位:TIM 中断?
Encoder= Read_Encoder(4);
real=(int)(Encoder*(1500/334));
Moto1=(int)Incremental_PI(SpeedSet);           //===速度PI控制器                                   
TIM3->CCR2=Moto1*2;
temperature=(int)DS18B20_Get_Temp();
      z++;
}
TIM_ClearITPendingBit(TIM2TIM_IT_Update);
}

/**************************************************************************
函数功能:赋值给PWM寄存器
入口参数:PWM
返回  值:无
**************************************************************************/

/**************************************************************************
函数功能:限制PWM赋值 
入口参数:无
返回  值:无
**************************************************************************/


/**************************************************************************
函数功能:绝对值函数
入口参数:int
返回  值:unsigned int
**************************************************************************/

/**************************************************************************
函数功能:增量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 Target)

//   float Kp=5Ki=1;
//  float PI;
 volatile static int BiasLast_biasIntegral_bias;
   
 Bias=Target-real;                //计算偏差
 
 if((Bias

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

     文件       3895  2019-01-02 16:38  test1 - 1602正常 1x4键盘 加减调速 加温控\CONTROL\control.c

     文件        486  2018-11-18 15:14  test1 - 1602正常 1x4键盘 加减调速 加温控\CONTROL\control.h

     文件      17273  2010-06-07 10:25  test1 - 1602正常 1x4键盘 加减调速 加温控\CORE\core_cm3.c

     文件      85714  2011-02-09 14:59  test1 - 1602正常 1x4键盘 加减调速 加温控\CORE\core_cm3.h

     文件      15503  2011-03-10 10:52  test1 - 1602正常 1x4键盘 加减调速 加温控\CORE\startup_stm32f10x_hd.s

     文件       3893  2015-03-13 20:05  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\DS18B20\ds18b20.c

     文件       1208  2012-09-17 11:49  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\DS18B20\ds18b20.h

     文件       2166  2018-12-02 12:25  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\ENCODER\encoder.c

     文件        216  2018-11-17 10:12  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\ENCODER\encoder.h

     文件       4731  2018-11-23 21:40  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\HC05\hc05.c

     文件        972  2015-04-30 10:47  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\HC05\hc05.h

     文件       1827  2018-11-24 17:11  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\KEY\key.c

     文件       1186  2018-11-24 17:10  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\KEY\key.h

     文件       2978  2018-11-27 19:01  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\LCD\lcd1602.c

     文件        942  2018-11-24 22:52  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\LCD\lcd1602.h

     文件       1298  2012-09-13 13:13  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\LED\led.c

     文件        638  2012-09-13 09:45  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\LED\led.h

     文件        380  2018-11-23 21:11  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\MOTOR\motor.c

     文件         80  2018-11-17 10:12  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\MOTOR\motor.h

     文件      35016  2015-03-13 14:54  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\TFT\font.h

     文件      85363  2015-04-24 11:50  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\TFT\lcd.c

     文件       7529  2018-11-22 17:27  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\TFT\lcd.h

     文件       7691  2018-11-27 19:12  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\TIMER\timer.c

     文件        653  2018-11-18 20:09  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\TIMER\timer.h

     文件       4263  2018-11-18 21:18  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\USART3\usart3.c

     文件       1053  2015-04-30 10:47  test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\USART3\usart3.h

     文件        399  2011-04-23 10:24  test1 - 1602正常 1x4键盘 加减调速 加温控\keilkilll.bat

     文件     355495  2019-01-02 16:38  test1 - 1602正常 1x4键盘 加减调速 加温控\OBJ\control.crf

     文件       1876  2019-01-02 16:38  test1 - 1602正常 1x4键盘 加减调速 加温控\OBJ\control.d

     文件     391192  2019-01-02 16:38  test1 - 1602正常 1x4键盘 加减调速 加温控\OBJ\control.o

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

评论

共有 条评论