久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6608|回復: 4
收起左側

單片機PID控制直流電機轉動源程序

  [復制鏈接]
ID:228436 發表于 2017-8-19 22:06 | 顯示全部樓層 |閱讀模式
0.png
51單片機利用pid技術控制直流馬達的源程序如下:
  1. #include<reg52.h>
  2. #include<stdio.h>
  3. #include<lcd.h>
  4. /***定義變量***/
  5. sbit PWM_EN=P1^0; //接ln298使能端
  6. sbit speed_in=P3^2;
  7. //int e ,e1 ,e2 ;//pid 偏差
  8. //float uk ,uk1 ,duk ;//pid輸出值
  9. //float Kp=10,Ki=12,Kd=1.6;//pid控制系數        10,12,1.5
  10. //float vv_min=0.0;vv_max=250.0;
  11. float bianhuasudu;                              //當前速度(理論計算值)
  12. float vi_Ref=60.0;                              //給定值
  13. float vi_PreError,vi_PreDerror;
  14. float v_kp=10,v_ki=12,v_kd=1.6;               //比例,積分,微分常數
  15. int out=0;
  16. extern uint SpeedSet;
  17. extern uint Inpluse,num;//脈沖計數
  18. //static unsigned int time=0;//靜態變量,退出程序值保留
  19. uint cnt=0;
  20. uint PWMTime=100;//脈沖寬度,128/256=0.5,占空比是50%(8位pwm)
  21. /**函數聲明**/
  22. PIDControl();
  23. void SystemInit();
  24. void PWMOUT();

  25. /**************主函數************/
  26. void main()
  27. {
  28.         SystemInit();
  29.         LcdInit();          //初始化
  30.         Lcd_busy_check();//忙檢測
  31.         while(1)
  32.         {
  33.                 Lcd_display();        //顯示
  34.                 SetSpeed();                //速度設定
  35.                 PWMOUT();                //pwm輸出
  36.                
  37.         }
  38. }
  39. /*pid_control*/
  40. float pid_control (float SpeedSet,float num)       //pid偏差計算
  41. {
  42.         register float error1,d_error,dd_error;
  43.     error1=SpeedSet-num;                 //偏差的計算
  44.     d_error=error1-vi_PreError;                 //誤差的偏差
  45.     dd_error=d_error-vi_PreDerror;              //誤差變化率
  46.     vi_PreError=error1;                         //存儲當前偏差
  47.     vi_PreDerror=d_error;
  48.     bianhuasudu=(v_kp*d_error+v_ki*vi_PreError+v_kd*dd_error);
  49.     return (bianhuasudu);
  50.         
  51.         
  52. }


  53. void PWMOUT()
  54. {
  55.         if(cnt<PWMTime)
  56.         {
  57.                 PWM_EN=1;
  58.         }
  59.         else
  60.         {
  61.                  PWM_EN=0;
  62.         }
  63.         if(cnt>1000) cnt=0;
  64. }

  65. void SystemInit()
  66. {

  67.          TMOD=0x15;//設置定時計數器工作于方式1;

  68.          TH1=(65536-1000)>>8;
  69.          TL1=(65536-1000);//定時1000us,即1ms
  70.          TR1=1;//啟動定時計數器0
  71.          ET1=1;//使能定時計數器0中斷
  72.          ET0=1;//啟動定時器計數器1
  73.          TR0=1;//使能定時計數器1中斷
  74.          EX0=1;     //中斷0用來測量轉速
  75.          IT0=1;           //外部中斷0 低電平觸發
  76.          EA=1;//中斷總開關
  77. }

  78. void int0() interrupt 0
  79. {
  80.         Inpluse++;                   //脈沖計數
  81. }

  82. void t1() interrupt 3
  83. {        
  84.         static unsigned int time=0;//靜態變量,退出程序值保留
  85.         //TR1=0;
  86.     TH1=(65536-1000)/256;
  87.     TL1=(65536-1000)%256;//定時1000us,即1ms
  88.         time++;  //轉速測量周期
  89.         if(time>100)
  90.         {
  91.                 time=0;
  92.             num=Inpluse*6.5;         //計算速度
  93.         PWMTime=PWMTime+pid_control(SpeedSet,num);
  94.                 Inpluse=0;               
  95. ……………………

  96. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
pid.rar (38.42 KB, 下載次數: 179)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:302760 發表于 2018-4-6 17:29 | 顯示全部樓層
學一下,好資料,51黑有你更精彩!!!
回復

使用道具 舉報

ID:299343 發表于 2018-4-9 20:45 | 顯示全部樓層
很好,下載看看,正在做這個
回復

使用道具 舉報

ID:184005 發表于 2019-11-16 18:16 | 顯示全部樓層
學習學習!
回復

使用道具 舉報

ID:609797 發表于 2023-7-6 14:53 | 顯示全部樓層
學一下,好資料,51黑有你更精彩!!!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 超碰97人人人人人蜜桃 | gav成人免费播放视频 | 在线视频 欧美日韩 | 久久精品国产99国产精品 | 欧美h视频| 午夜精品福利视频 | jav成人av免费播放 | 能看的av | 国产99免费视频 | 超碰人人插 | 精品99在线 | 欧美精品一区二区免费视频 | 国产91在线播放 | 国产人成精品一区二区三 | 国产精品精品3d动漫 | 久优草 | 久久av网 | 欧美亚洲一级 | 国产在线小视频 | 亚洲欧美日韩在线 | 国产亚洲精品成人av久久ww | 日韩精品极品视频在线观看免费 | 久久久久久国产 | 国产精品久久久久久久午夜片 | 国产精品久久久久久久久久久久午夜片 | 久久欧美高清二区三区 | 91精品国产综合久久小仙女图片 | 天天射美女 | 成人午夜在线视频 | 99re国产| 欧美一区二区成人 | 91短视频网址 | 日本特黄a级高清免费大片 成年人黄色小视频 | 午夜久久久 | 亚洲国产精品区 | 丁香久久 | 伊人久久麻豆 | 91精品国产乱码久久久久久久久 | 91精品国产91久久综合桃花 | 精品久久久久久亚洲综合网站 | 激情五月综合 |