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

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

QQ登錄

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

搜索
查看: 3676|回復(fù): 0
收起左側(cè)

增量式PID代碼C語(yǔ)言實(shí)現(xiàn)實(shí)現(xiàn)代碼

[復(fù)制鏈接]
ID:492440 發(fā)表于 2019-3-17 11:00 | 顯示全部樓層 |閱讀模式
增量式pid語(yǔ)言代碼,初學(xué)者可以參考下
0.png

源程序如下:
  1. #define _PID_C
  2. #include "pid.h"
  3. #include <math.h>

  4. #define MAXOUT 1000                                //輸出最大值

  5. void IncPIDInit(void)
  6. {
  7.         sptr                        = &sPID;
  8.         sptr->SetPoint        = 700;                //設(shè)定值
  9.         sptr->BitMove        = 0;                //返回結(jié)果比例

  10.         sptr->LastError = 0;                //前2次誤差值
  11.         sptr->PrevError = 0;                //前1次誤差值

  12.         sptr->Proportion = 3;                //比例
  13.         sptr->Integral         = 0;                //積分
  14.         sptr->Derivative = 0;                //微分

  15.         sptr->iError = 0;                        //當(dāng)前誤差
  16.         sptr->iIncpid=0;                        //增量誤差

  17.         sptr->Uk = 0;                                //輸出返回值
  18. }

  19. int IncPIDCalc(int NextPoint)
  20. {
  21.         //當(dāng)前誤差
  22.         sptr->iError = sptr->SetPoint - NextPoint;
  23.         //增量誤差
  24.         sptr->iIncpid= sptr->Proportion * sptr->iError
  25.                                 - sptr->Integral * sptr->LastError
  26.                                 + sptr->Derivative * sptr->PrevError;
  27.         //存儲(chǔ)誤差,用于下次計(jì)算
  28.         sptr->PrevError = sptr->LastError;
  29.         sptr->LastError = sptr->iError;

  30.         sptr->Uk += sptr->iIncpid;

  31.         //輸出值限幅
  32.         if ((sptr->Uk>>sptr->BitMove) >= MAXOUT)
  33.         {
  34.                 sptr->Uk = MAXOUT;
  35.         }
  36.         else if((sptr->Uk>>sptr->BitMove) <= 0)
  37.         {
  38.                 sptr->Uk = 0;
  39.         }
  40.         else        sptr->Uk = sptr->Uk>>sptr->BitMove;
  41.        
  42.         return(sptr->Uk);
  43. }
復(fù)制代碼
  1. #ifndef _PID_H
  2. #ifndef _PID_H

  3. #ifdef _PID_C
  4.     #define PID_EXT
  5. #else
  6.     #define PID_EXT extern
  7. #endif

  8. typedef struct PID
  9. {
  10.         int SetPoint;
  11.        
  12.         unsigned char BitMove;
  13.        
  14.         float Proportion;
  15.         float Integral;
  16.         float Derivative;
  17.        
  18.         int iError;
  19.         int iIncpid;
  20.        
  21.         int LastError;
  22.         int PrevError;
  23.        
  24.         int Uk;
  25. }PID,*pPID;

  26. PID_EXT PID sPID;
  27. PID_EXT pPID sptr;

  28. void IncPIDInit(void);
  29. int IncPIDCalc(int NextPoint);

  30. #endif
復(fù)制代碼


所有資料51hei提供下載:
增量式PID代碼C語(yǔ)言實(shí)現(xiàn)實(shí)現(xiàn).rar (1.19 KB, 下載次數(shù): 45)


評(píng)分

參與人數(shù) 2黑幣 +80 收起 理由
倉(cāng)道與 + 30
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91视频久久 | 成人免费一区二区三区视频网站 | 一区二区免费 | 四虎影院欧美 | 日韩成人一区 | 国产高清在线观看 | 久久99精品久久 | 日本五月婷婷 | 欧美1区| 亚洲一二三在线观看 | 亚洲人成网亚洲欧洲无码 | 国产成人精品一区二 | 日韩欧美国产综合 | 久久久久亚洲精品 | 成人久久久 | 国产一区二区在线播放 | 亚洲欧美日韩精品久久亚洲区 | 91在线电影| 久久一 | 国产一区二区三区在线 | 天天躁日日躁狠狠躁白人 | 成人性视频免费网站 | 日韩毛片免费看 | 国产黄色小视频 | 美女天天干天天操 | 国产成人免费在线观看 | 欧美成人在线影院 | 国产成人av一区二区三区 | 久久999| 中文字幕视频在线观看 | 欧美精品福利视频 | 精品国产亚洲一区二区三区大结局 | 欧美激情视频一区二区三区免费 | 中文字幕人成人 | 激情五月婷婷丁香 | 91五月天 | a亚洲精品 | 日日拍夜夜| 精品亚洲一区二区三区四区五区高 | 欧美一区二区在线观看 | 综合色播 |