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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3648|回復: 3
收起左側

比較典型的PID處理程序

  [復制鏈接]
ID:793610 發表于 2020-6-30 11:55 | 顯示全部樓層 |閱讀模式
這是從網上找來的一個比較典型的PID處理程序,在使用單片機作為控制cpu時,請稍作簡化,具體的PID
參數必須由具體對象通過實驗確定。由于單片機的處理速度和ram資源的限制,一般不采用浮點數運算,
而將所有參數全部用整數,運算到最后再除以一個2的N次方數據(相當于移位),作類似定點數運算,可
大大提高運算速度,根據控制精度的不同要求,當精度要求很高時,注意保留移位引起的“余數”,做好余
數補償。這個程序只是一般常用pid算法的基本架構,沒有包含輸入輸出處理部分。


  1. #include <string.h>
  2. #include <stdio.h>
  3. /*====================================================================================================
  4. PID Function
  5. The PID (比例、積分、微分) function is used in mainly
  6. control applications. PIDCalc performs one iteration of the PID
  7. algorithm.
  8. While the PID function works, main is just a dummy program showing
  9. a typical usage.
  10. =====================================================================================================*/
  11. typedef struct PID {
  12. double SetPoint; // 設定目標 Desired Value
  13. double Proportion; // 比例常數 Proportional Const
  14. double Integral; // 積分常數 Integral Const
  15. double Derivative; // 微分常數 Derivative Const
  16. double LastError; // Error[-1]
  17. double PrevError; // Error[-2]
  18. double SumError; // Sums of Errors
  19. } PID;
  20. /*====================================================================================================
  21. PID計算部分
  22. =====================================================================================================*/
  23. double PIDCalc( PID *pp, double NextPoint )
  24. {
  25. double dError,
  26. Error;
  27. Error = pp->SetPoint - NextPoint; // 偏差
  28. pp->SumError += Error; // 積分
  29. dError = pp->LastError - pp->PrevError; // 當前微分
  30. pp->PrevError = pp->LastError;
  31. pp->LastError = Error;
  32. return (pp->Proportion * Error // 比例項
  33. + pp->Integral * pp->SumError // 積分項
  34. + pp->Derivative * dError // 微分項
  35. );
  36. }
  37. /*====================================================================================================
  38. Initialize PID Structure
  39. =====================================================================================================*/
  40. void PIDInit (PID *pp)
  41. {
  42. memset ( pp,0,sizeof(PID));
  43. }
  44. /*====================================================================================================
  45. Main Program
  46. =====================================================================================================*/
  47. double sensor (void) // Dummy Sensor Function
  48. {
  49. return 100.0;
  50. }
  51. void actuator(double rDelta) // Dummy Actuator Function
  52. {}
  53. void main(void)
  54. {
  55. PID sPID; // PID Control Structure
  56. double rOut; // PID Response (Output)


  57. double rIn; // PID Feedback (Input)
  58. PIDInit ( &sPID ); // Initialize Structure
  59. sPID.Proportion = 0.5; // Set PID Coefficients
  60. sPID.Integral = 0.5;
  61. sPID.Derivative = 0.0;
  62. sPID.SetPoint = 100.0; // Set PID Setpoint
  63. for (;;) { // Mock Up of PID Processing
  64. rIn = sensor (); // Read Input
  65. rOut = PIDCalc ( &sPID,rIn ); // Perform PID Interation
  66. actuator ( rOut ); // Effect Needed Changes
  67. }
  68. }





復制代碼



評分

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

查看全部評分

回復

使用道具 舉報

ID:462629 發表于 2021-12-28 09:26 | 顯示全部樓層
這個PID有用嗎?
回復

使用道具 舉報

ID:33544 發表于 2022-8-18 16:26 | 顯示全部樓層

這個資料好,不過難度也不低呀!
回復

使用道具 舉報

ID:1046594 發表于 2022-10-9 16:15 | 顯示全部樓層
這個應該是位置式PID,如果換成增量式 數據計算就沒有那麼大
回復

使用道具 舉報

5#
無效樓層,該帖已經被刪除
6#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩av在线一区二区 | 国产中文一区二区三区 | 免费黄色片视频 | 91久久精品一区 | 精品视频一区二区在线观看 | 日韩欧美在线视频一区 | 亚洲福利在线观看 | 国产中文 | 欧美在线 | 亚洲精品福利视频 | 中文字幕av亚洲精品一部二部 | h漫在线观看 | 中文字幕av网站 | 电影午夜精品一区二区三区 | 少妇淫片aaaaa毛片叫床爽 | 成年人在线观看 | 精品久久久久久久久久 | 国产精品不卡 | 久久不卡 | 狠狠夜夜 | 亚洲综合99 | 在线观看中文字幕一区二区 | 国产成人免费视频 | 中文字幕av亚洲精品一部二部 | 99热激情 | 中文字幕免费在线 | 成年人精品视频在线观看 | 欧美视频在线免费 | 日韩一区二 | 国产免费观看一级国产 | 国产一区二区影院 | 欧美日韩视频在线第一区 | 中文字幕一级 | 久久se精品一区精品二区 | 天天曰夜夜 | 天天影视亚洲综合网 | 欧美日韩黄色一级片 | 狠狠干网站 | a级毛片免费高清视频 | 日韩电影中文字幕 | 午夜合集 |