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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1252|回復: 0
打印 上一主題 下一主題
收起左側

單片機pid控制

[復制鏈接]
跳轉到指定樓層
樓主
ID:700647 發表于 2020-3-16 23:10 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
1.   //*****************************************************
2.   //定義PID結構體
3.   //*****************************************************
4.   typedef struct PID
5.   {
6.       int SetPoint; //設定目標Desired Value
7.       double Proportion; //比例常數Proportional Const
8.       double Integral; //積分常數Integral Const
9.       double Derivative; //微分常數Derivative Const
10.     int LastError; //Error[-1]
11.     int PrevError; //Error[-2]
12. } PID;
13. //*****************************************************
14. //定義相關宏
15. //*****************************************************
16. #define P_DATA 100
17. #define I_DATA 0.6
18. #define D_DATA 1
19. #define HAVE_NEW_VELOCITY 0X01
20. //*****************************************************
21. //聲明PID實體
22. //*****************************************************
23. static PID sPID;
24. static PID *sptr = &sPID;
25. //*****************************************************
26. //PID參數初始化
27. //*****************************************************
28. void IncPIDInit(void)
29. {
30. sptr->LastError = 0; //Error[-1]
31. sptr->PrevError = 0; //Error[-2]
32. sptr->Proportion =P_DATA; //比例常數Proportional Const
33. sptr->Integral =I_DATA; //積分常數Integral Const
34. sptr->Derivative =D_DATA; //微分常數Derivative Const
35. sptr->SetPoint =100;  目標是100
36. }
37. //*****************************************************
38. //增量式PID控制設計
39. //*****************************************************
40. int IncPIDCalc(int NextPoint)
41. {
42.    int iError, iIncpid; //當前誤差
43.    iError = sptr->SetPoint- NextPoint; //增量計算
44.    iIncpid =sptr->Proportion * iError //E[k]項
45.             - sptr->Integral * sptr->LastError //E[k-1]項
46.             + sptr->Derivative * sptr->PrevError; //E[k-2]項
47.     sptr->PrevError =sptr->LastError;   //存儲誤差,用于下次計算
48.     sptr->LastError =iError;
49.     return(iIncpid);                       //返回增量值
50. }

PID代碼.docx

20.99 KB, 下載次數: 20, 下載積分: 黑幣 -5

常見pid代碼

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表