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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3560|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

STM32 PID算法測(cè)試C語(yǔ)言程序?qū)崿F(xiàn) 0.96寸OLED顯示

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主


單片機(jī)源程序如下:
  1. #include "PID.h"

  2. /*以電機(jī)調(diào)速為例*/

  3. struct _pid{
  4.         float SetSpeed;       //設(shè)定值
  5.         float ActualSpeed;    //實(shí)際值
  6.         float err;            //偏差值
  7.         float err_last;       //上一個(gè)偏差值
  8.         float err_last_last;  //最上一個(gè)偏差值
  9.         float Kp, Ki, Kd;     //比例、積分、微分系數(shù)
  10. }pid;

  11. void PID_init()               //初始化
  12. {
  13.         pid.SetSpeed = 0.0;
  14.         pid.ActualSpeed = 0.0;
  15.         pid.err = 0.0;
  16.         pid.err_last = 0.0;
  17.         pid.err_last_last = 0.0;
  18.   pid.Kp = 0.2;               //可修改
  19.         pid.Ki = 0.015;             //可修改
  20.         pid.Kd = 0.2;               //可修改
  21. }

  22. float PID_realize(float Speed)
  23. {
  24.         float incrementSpeed;        //當(dāng)前值
  25.         pid.SetSpeed = Speed;        //用戶設(shè)定值
  26.         pid.err = pid.SetSpeed - pid.ActualSpeed;   //偏差值
  27.         incrementSpeed =pid.Kp*(pid.err - pid.err_last) + pid.Ki*pid.err + pid.Kd*(pid.err - 2 * pid.err_last_last + pid.err_last);
  28.         pid.ActualSpeed += incrementSpeed;   //實(shí)際輸出值
  29.         pid.err_last = pid.err_last_last;
  30.         pid.err_last_last = pid.err;
  31.         return pid.ActualSpeed;
  32. }
復(fù)制代碼
  1. /**********************PID算法測(cè)試C語(yǔ)言實(shí)現(xiàn)**************************/

  2. //  0.96寸OLED顯示   IIC通訊
  3. //              --------------------
  4. //              GND   電源地
  5. //              VCC   接5V或3.3v電源
  6. //              SCL   接PA5(SCL)
  7. //              SDA   接PA7(SDA)  
  8. //              --------------------
  9. #include "stm32f10x.h"
  10. #include "oled.h"
  11. #include "PID.h"

  12. int main(void)
  13.   {
  14.                 u32 count=0;

  15.                 OLED_Init();                        //初始化OLED  
  16.                 OLED_Clear();
  17.                 PID_init();
  18.         
  19.                 OLED_ShowChar(16,0,'P',16);
  20.                 OLED_ShowChar(24,0,'I',16);
  21.                 OLED_ShowChar(32,0,'D',16);
  22.                 OLED_ShowCHinese(44,0,0);
  23.                 OLED_ShowCHinese(60,0,1);
  24.                 OLED_ShowCHinese(76,0,2);
  25.                 OLED_ShowCHinese(92,0,3);
  26.                
  27.                 OLED_ShowCHinese(0,4,4);
  28.                 OLED_ShowCHinese(16,4,5);
  29.                 OLED_ShowCHinese(32,4,6);
  30.                 OLED_ShowChar(48,4,':',16);
  31.                
  32.                 OLED_ShowCHinese(0,6,7);
  33.                 OLED_ShowCHinese(16,6,8);
  34.                 OLED_ShowCHinese(32,6,9);
  35.                 OLED_ShowChar(48,6,':',16);
  36.                
  37.                 OLED_ShowChar(86,5,'.',12);
  38.                 OLED_ShowChar(86,7,'.',12);
  39.                
  40.                 OLED_ShowNum(56,5,(int)setspeed,5,12);  //顯示設(shè)定值整數(shù)部分
  41.                 OLED_ShowNum(93,5,(int)(setspeed*10)%10,1,12);  //顯示設(shè)定值小數(shù)部分
  42.                 OLED_ShowNum(99,5,(int)(setspeed*100)%10,1,12);
  43.                 OLED_ShowNum(105,5,(int)(setspeed*1000)%10,1,12);
  44.                 OLED_ShowNum(111,5,(int)(setspeed*10000)%10,1,12);
  45.         while(count<1000)
  46.         {
  47.           float Speed = PID_realize(setspeed);
  48.                 OLED_ShowNum(56,7,Speed,5,12);    //顯示當(dāng)前值整數(shù)部分
  49.                 OLED_ShowNum(93,7,(int)(Speed*10000)%10000,4,12);  //顯示當(dāng)前值及小數(shù)點(diǎn)后4位
  50.         }
  51. }
復(fù)制代碼


所有資料51hei提供下載:
PID算法測(cè)試.7z (184.24 KB, 下載次數(shù): 141)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:186249 發(fā)表于 2019-8-29 23:56 | 只看該作者
這個(gè)怎么樣,下來(lái)看看
回復(fù)

使用道具 舉報(bào)

板凳
ID:423971 發(fā)表于 2020-4-16 23:23 | 只看該作者
感謝樓主 學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表