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

標題: 一個簡單的PID單片機算法程序 [打印本頁]

作者: doublecityggb    時間: 2018-9-11 20:52
標題: 一個簡單的PID單片機算法程序
用單片機做的,在電機測試了可以用。就是開機的時候,會最大轉速輸出,有點噪音

單片機源程序如下:
  1. void Pid_regulate(void)
  2. {
  3.         u8 TempError;
  4.         u8 TempAngle;
  5.         if(Pid_Ts != 0)
  6.         {
  7.                 return;                //采樣時間未到,退出
  8.         }
  9.         Pid_ts = 0x1a;        //重置采樣時間
  10.         TempError = Temp_Setting - TempOp;        //溫度誤差
  11.         Integral = Integral + Ki * TempError;                //誤差* 積分增益并累加
  12.         if(Integral > 1024)
  13.                 Integral = 1024;
  14.         else if(Integral < -1024)
  15.                 Integral = -1024;
  16.         TempAngle = FeedFwd_agnle(Templn,Voltage,WaterFlow);
  17.         TempAngle = Kp * TempError;
  18.         TempAngle = TempAngle + (Integral >> 4);//累加
  19.         if(TempAngle < 2)
  20.                 TempAngle = 2;                //下限
  21.         else if(TempAngle > 200)
  22.                 TempAngle = 200;                //上限
  23.         Fire_angle = 200 - (u8)TempAngle;        //得到觸發角

  24. }

  25. void PID(void)
  26. {
  27.         float ek,ek1,ek2,ek_sum;
  28.         uint a;
  29.         ek=K-temp; //計算誤差
  30.         while(1)
  31.         {
  32.                 if(ON_OFF==1) //溫控開關開
  33.                 {
  34.                         if(ek>=15)
  35.                         {
  36.                                 outflag=1;
  37.                                 OUT=0;
  38.                                 Time_on=100;
  39.                                 break;
  40.                         } //溫差大于15度,不用PID調節
  41.                         else if(ek<0)
  42.                         {
  43.                                 ek=0;
  44.                                 outflag=0;
  45.                                 OUT=1;
  46.                                 Time_on=0;
  47.                                 break;
  48.                         } //溫差小于等于0不調節
  49.                         else
  50.                         {
  51.                                 if(ek>5)
  52.                                         a=0;
  53.                                 if(ek<5)
  54.                                         a=1;
  55.                                 ek2=ek1;
  56.                                 ek1=ek;
  57.                                 ek_sum+=ek;
  58.                                 uk=kp*ek+ki*ek_sum+kd*(ek1-ek2);
  59.                                 //計算PID輸出uk
  60.                                 if(start_flag==0) //PID運算標志位
  61.                                 {
  62.                                         uk0=uk; //uk初值,用于參考以后uk加熱時間
  63.                                         start_flag=1;
  64.                                         div=100/uk0;
  65.                                 } //開始PID計算
  66.                                 else if(start_flag==1)//加熱片加熱時間
  67.                                 {
  68.                                         Time_on=uk*div;
  69.                                         OUT=0;
  70.                                         outflag=1;
  71.                                 }
  72.                                 break;
  73.                         }
  74.                 }
  75.                 else
  76.                 {
  77.                         outflag=0;
  78.                         OUT=1;
  79.                         break;
  80.                 } //不加熱
  81.         }
  82. }
復制代碼

所有資料51hei提供下載:
Pid.rar (861 Bytes, 下載次數: 99)



作者: li96261    時間: 2019-4-22 15:42
學習學習啦!!!謝謝!!
作者: zhaocheng_er    時間: 2019-8-21 09:21
學習學習啦!!!謝謝!!
作者: ultra夢幻雨    時間: 2019-9-4 10:08
感謝分享!




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