




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、PID算法原理、調試經驗以及代碼前言:下班前收到網友的短信,和我說正在做PID的程序,感覺有些困難。我剛好曾經做過PID算法,故將自己以前的論文和代碼做了整理,寫了這篇文章,希望能夠對用到PID調節器的朋友們有所幫助。也希望更多的朋友能夠分享你們的經驗,因為我們相信成功源于共享。1。PID原理 2.流程圖 2.流程圖 2#發表于 2007-11-2 22:21 3。PID代碼/定義變量float Kp; /PI調節的比例常數float Ti; /PI調節的積分常數float T; /采樣周期float Ki;float ek; /偏差ekfloat ek1; /偏差ek-1float ek2;
2、 /偏差ek-2float uk; /uksigned int uk1; /對uk四舍五入取整signed int adjust; /調節器輸出調整量/變量初始化Kp=4;Ti=0。005;T=0.001;/ Ki=KpT/Ti=0.8,微分系數Kd=KpTd/T=0.8,Td=0.0002,根據實驗調得的結果確定這些參數ek=0;ek1=0;ek2=0;uk=0;uk1=0;adjust=0;int piadjust(float ek) /PI調節算法if( gabs(ek)<0.1 )adjust=0;elseuk=Kp*(ek-ek1)+Ki*ek; /計算控制增量ek1=ek;u
3、k1=(signed int)uk;if(uk>0)if(uk-uk1>=0.5)uk1=uk1+1;if(uk<0)if(uk1-uk>=0.5)uk1=uk1-1;adjust=uk1;return adjust;下面是在AD中斷程序中調用的代碼。else /退出軟啟動后,PID調節,20ms調節一次EvaRegs.CMPR3=EvaRegs.CMPR3+piadjust(ek);/誤差較小PID調節穩住if(EvaRegs.CMPR3>=890)EvaRegs.CMPR3=890; /限制PWM占空比。4。PID調節經驗總結PID控制器參數選擇的方法很多,例
4、如試湊法、臨界比例度法、擴充臨界比例度法等。但是,對于PID控制而言,參數的選擇始終是一件非常煩雜的工作,需要經過不斷的調整才能得到較為滿意的控制效果。依據經驗,一般PID參數確定的步驟如下42:(1) 確定比例系數Kp確定比例系數Kp時,首先去掉PID的積分項和微分項,可以令Ti=0、Td=0,使之成為純比例調節。輸入設定為系統允許輸出最大值的6070,比例系數Kp由0開始逐漸增大,直至系統出現振蕩;再反過來,從此時的比例系數Kp逐漸減小,直至系統振蕩消失。記錄此時的比例系數Kp,設定PID的比例系數Kp為當前值的6070。(2) 確定積分時間常數Ti比例系數Kp確定之后,設定一個較大的積分
5、時間常數Ti,然后逐漸減小Ti,直至系統出現振蕩,然后再反過來,逐漸增大Ti,直至系統振蕩消失。記錄此時的Ti,設定PID的積分時間常數Ti為當前值的150180。(3) 確定微分時間常數Td微分時間常數Td一般不用設定,為0即可,此時PID調節轉換為PI調節。如果需要設定,則與確定Kp的方法相同,取不振蕩時其值的30。(4) 系統空載、帶載聯調對PID參數進行微調,直到滿足性能要求。上面的實際是PI調節的代碼,現附上PID的。1./聲明變量2.3./定義變量4.float Kp; /PID調節的比例常數5.float Ti; /PID調節的積分常數6.float T; /采樣周期7.floa
6、t Td; /PID調節的微分時間常數8.float a0;9.float a1;10.float a2;11.12.float ek; /偏差ek13.float ek1; /偏差ek-114.float ek2; /偏差ek-215.float uk; / uk1; /對uk四舍五入求整17.int adjust; /最終輸出的調整量18.19./變量初始化,根據實際情況初始化20. Kp=;21. Ti=;22. T=;23. Td=;24.25. a0=Kp*(1+T/Ti+Td/T);26. a1=-Kp*(1+2*Td/T);27. a2=Kp*Td/T;28./
7、Ki=KpT/Ti=0.8,微分系數Kd=KpTd/T=0.8,Td=0.0002,根據實驗調得的結果確定這些參數29. ek=0;30. ek1=0;31. ek2=0;32. uk=0;33. uk1=0;34. adjust=0;35.36.37.int pid(float ek)38.39. if(gabs(ek)<ee) /ee 為誤差的閥值,小于這個數值的時候,不做PID調整,避免誤差較小時頻繁調節引起震蕩。ee的值可自己設40. 41. adjust=0;42. 43. else44. 45. uk=a0*ek+a1*ek1+a2*ek2;46. ek2=ek1;47. e
8、k1=ek;48. uk1=(int)uk;49.50. if(uk>0)51. 52. if(uk-uk1>=0.5)53. 54. uk1=uk1+1;55. 56. 57. if(uk<0)58. 59. if(uk1-uk>=0.5)60. 61. uk1=uk1-1;62. 63. 64.65. adjust=uk1;66. 67. return adjust;1.float gabs(float ek)72.73. if(ek<0)74. 75. ek=0-ek;76. 77. return ek;78.復制代碼3#發表于 2007
9、-11-3 09:06 樓主真是大大大大大大的好人啊!真的是超級感謝你啊!這篇文章我收下了!不過在下還有一個不情之請,不知道樓主能不能吧PID的程序上傳一下撒!如果不方便的話,也沒有關系!我會努力,會加油的!真的是再次謝謝你了!還有其他問題的時候,還要麻煩樓主啊!4#發表于 2007-11-3 10:33 PID并不復雜,程序代碼我已經寫出來了,因為這是整個程序里面的一小段,所以也不好全貼出來了。PID的關鍵我覺得在于參數的調試,需要不斷的做實驗,分析,再調整,再做實驗,最終選擇一組適合自己項目的參數。我自己寫過一個PID的仿真軟件,不過是用于開關電源中BUCK電路的PID仿真軟件,最近整理之
10、后,拿出來給大家,有需要的朋友敬請期待哦,呵呵。也希望您能夠多多支持我們HELLODSP,陪伴我們一起成長!盡自己的力量去幫助更多需要幫助的朋友們5#發表于 2007-11-3 11:02 呵呵,謝謝,版主!我們期待這你的成果,希望像你這樣好心的前輩能有取得更大的成績,幫助我們。我會盡自己的努力的,會繼續支持HELLODSP的!6#發表于 2007-11-3 14:17 "不過是用于開關電源中BUCK電路的PID仿真軟件""不過是用于開關電源中BUCK電路的PID仿真軟件"我期待著這個地出現,謝謝樓主7#發表于 2007-11-3 19:32 謝謝分享你
11、的成果致敬!8#發表于 2007-11-4 23:21 PID仿真軟件已經發布了,需要的朋友點擊下面的頁面去看看吧:PID控制器仿真軟件【基于BUCK電路】9#發表于 2007-11-5 12:54 一定仔細研究,謝謝哈10#發表于 2007-11-5 14:35 好帖子,謝謝樓主!11#發表于 2007-11-5 20:19 原創!好東東,收藏!12#發表于 2007-11-21 19:53 喜歡經驗之談!13#發表于 2007-11-22 12:36 喜歡經驗之談14#發表于 2007-11-22 15:14 感謝樓主,好貼,收藏!15#發表于 2007-12-7 14:30 回復 6#
12、的帖子謝謝,得好好研讀一下16#發表于 2007-12-23 20:30 好文章,謝謝樓主分享經驗。17#發表于 2007-12-27 13:20 支持開源,倡導開源,18#發表于 2007-12-28 19:04 xxxxxxxxxxxxxxxxxx19#發表于 2008-1-2 23:36 呵呵呵呵,看過,謝了,想起了很久用匯編寫了個PI算法,寫得老長。20#發表于 2008-1-8 01:31 不夠清楚呀。21#發表于 2008-1-10 11:53 太感謝樓主了,這么好的貼了,要拼了老命的頂啊22#發表于 2008-1-10 12:03 贊!希望樓主貼代碼(*_*) 嘻嘻23#發表于 2008-3-3 20:32 頂一個,很感謝版主的分享24#發表于 2008-3-5 11:03 感謝樓主!25#發表于 2008-3-19 08:40 謝謝26#發表于 2008-3-21 19:22 感謝樓主 正在思考PID的問題27#發表于 2008-3-23 20:26
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《智謀物流管理》課件
- 鐵道機車專業教學鄭州鐵路單紹平35課件
- 鐵道機車專業教學鄭州鐵路張中央70課件
- 天津海運職業于禎妮GroupTouristsBoardin
- 鐵道概論授課崔桂蘭64課件
- 鐵路信號與通信設備接發列車工作90課件
- 中醫文獻課件
- 個人介紹課件
- 設備融資租賃合同樣本
- 多式聯運貨物運輸保險合同主要條款
- 公路工程標準施工招標文件(2018年版)
- 個人理財-形考作業4(第8-9章)-國開(ZJ)-參考資料
- 2024年江西省職業院校技能大賽(研學旅行賽項)備考試題庫(含答案)
- 人教版九年級數學復習教案全冊
- 【建筑專業】16J914-1公用建筑衛生間(完整)
- 小學數學高效課堂教學策略研究中期報告
- DL∕T 1654-2016 磷酸酯抗燃油氧化安定性和腐蝕性試驗方法
- DL∕T 1098-2016 間隔捧技術條件和試驗方法
- 腦鈉肽BNP幻燈片
- 甲狀旁腺功能減亢進的護理
- (高清版)JTG 3370.1-2018 公路隧道設計規范 第一冊 土建工程
評論
0/150
提交評論