欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: STM32單片機(jī)的PID算法實(shí)現(xiàn)程序無法編譯,求指導(dǎo) [打印本頁]

作者: 114786    時(shí)間: 2021-6-30 14:55
標(biāo)題: STM32單片機(jī)的PID算法實(shí)現(xiàn)程序無法編譯,求指導(dǎo)

  1. #include "System_init.h"
  2. extern int U_Set;
  3. extern u16 CCR1_Val;

  4. /*====================================================================================================
  5. PID Function
  6. The PID (比例、積分、微分) function is used in mainly
  7. control applications. PIDCalc performs one iteration of the PID
  8. algorithm.
  9. While the PID function works, main is just a dummy program showing
  10. a typical usage.
  11. =====================================================================================================*/
  12. typedef struct PID {
  13.         float SetPoint; // 設(shè)定目標(biāo)Desired value
  14.         float Proportion; // 比例常數(shù)Proportional Const
  15.         float Integral; // 積分常數(shù)Integral Const
  16.         float Derivative; // 微分常數(shù)Derivative Const
  17.         float LastError; // Error[-1]       
  18.         float PrevError; // Error[-2]
  19.         float SumError; // Sums of Errors
  20. } PID;
  21. /*====================================================================================================/
  22. PID計(jì)算部分
  23. =====================================================================================================*/
  24. PID   vPID={0,0.1,0.001,0.001,0,0,0};

  25. float PIDCalc( PID *pp, float NextPoint )
  26. {
  27.         float dError,
  28.         Error;
  29.         Error = pp->SetPoint - NextPoint; // 偏差
  30.         pp->SumError += Error; // 積分
  31.         dError = pp->LastError - pp->PrevError; // 當(dāng)前微分
  32.         pp->PrevError = pp->LastError;
  33.         pp->LastError = Error;

  34.     if(pp->SumError>900)  pp->SumError=900;
  35.     else if(pp->SumError<-900)          pp->SumError=-900;

  36.         return (pp->Proportion * Error // 比例項(xiàng)
  37.         + pp->Integral * pp->SumError // 積分項(xiàng)
  38.         + pp->Derivative * dError // 微分項(xiàng)
  39.         );
  40. }

  41. float Vol(int vSet,int v3){

  42.         float vOut; // PID Response (Output)
  43.         float vIn; // PID Feedback (Input)

  44.         vPID.SetPoint = vSet; // Set PID Setpoint
  45.         vIn = (float)v3; // Read Input
  46.         vOut = PIDCalc ( &vPID,vIn ); // Perform PID Interation         
  47.         return vOut;
  48. }

復(fù)制代碼

代碼: STM32單片機(jī)的PID算法實(shí)例.zip (729.66 KB, 下載次數(shù): 12)





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1