当前位置:   article > 正文

PID控制输出PWM核心代码(基于STM32F103)_通过pid怎么找到pwm波

通过pid怎么找到pwm波

注:

1、如果对于PID控制原理不是很了解,可以找些资料看,最好先搞懂原理。

2、程序中Kp、Ki、Kd、199.0可根据实际情况自己修改。

  1. //全局变量
  2. float target=30.0;//目标温度
  3. float error_all=0;
  4. unsigned int show_zkb=0;//这是一个整数,即当前占空比,可用于在屏幕上显示
  5. //PID算法
  6. int PID(float input_wendu)//反馈输入温度,从温度传感器上读取,如DHT11
  7. {
  8. float Kp=200.0,Ki=10.0,Kd=50.0;
  9. float error,d1;
  10. static unsigned char x=0;
  11. int output_pwm;//反馈输出PWM
  12. error=input_wendu-target;//实际温度-目标温度=误差
  13. if(x==0)
  14. {d1=error,x=~x;}
  15. error_all=error_all+error;//历史误差求和
  16. output_pwm=199.0+Kp*error+Ki*error_all+Kd*(error-d1);
  17. if((error>0)&&(output_pwm>999))//因占空比范围0/1000~1000/1000
  18. {
  19. show_zkb=999;
  20. return 999;
  21. }
  22. else if((error<0)&&(output_pwm<0))
  23. {
  24. show_zkb=0;
  25. return 0;
  26. }
  27. else
  28. {
  29. show_zkb=output_pwm;
  30. return output_pwm;
  31. }
  32. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/751626
推荐阅读
相关标签
  

闽ICP备14008679号