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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3663|回復: 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,如果換成增量式 數據計算就沒有那麼大
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久精品网 | 亚洲精品一区二三区不卡 | 成年人视频在线免费观看 | 日本精品一区二区三区在线观看视频 | 五月天婷婷丁香 | 成人av网站在线观看 | 黄色男女网站 | 国产精品视频一二三区 | 欧美在线视频一区 | 国产人成精品一区二区三 | 国产片侵犯亲女视频播放 | 中文字幕亚洲免费 | 欧美性生活一区二区三区 | 亚洲成人播放器 | 日韩av电影在线观看 | 天天操天天射天天舔 | 国产成人在线一区二区 | 免费观看一级毛片 | 啪啪av| 一级黄色播放 | www.精品国产 | 懂色中文一区二区三区在线视频 | 久久精品伊人 | 日韩一级二级片 | 91麻豆精品国产91久久久久久久久 | 日韩一区中文字幕 | 综合久久亚洲 | 国产传媒毛片精品视频第一次 | 亚洲视频一区在线播放 | 国产精品大片在线观看 | 中文字字幕一区二区三区四区五区 | 欧美一区二区三区四区五区无卡码 | 91精品国产91久久久久游泳池 | 欧美色综合一区二区三区 | 91在线精品播放 | 黄色免费观看网站 | 欧美综合久久 | 午夜在线精品 | 一级黄色片一级黄色片 | 日韩一区二区三区在线观看视频 | 国产91久久精品一区二区 |