粘貼過來的代碼都亂了,貼個原文鏈接吧:
https://blog.csdn.net/D_SEngineer?spm=1011.2124.3001.5113
不定時發送福利,歡迎小伙伴們交流學習。
上一節說的PID公式屬于位置式PID,位置式PID控制的輸出與整個過去的狀態有關,用到了誤差的累加值,而增量式PID的輸出只與當前拍和前兩拍的誤差有關。就溫控系統來說,位置式PID輸出的結果就是PWM占空比最終值,如果用增量式就是PWM占空比相比上次輸出增加(減少)的值。
比如用位置式控制,計算結果是100,那么占空比就是100%,如果用增量式控制,計算結果是20,那么占空比就是(上次輸出值+20)%。
增量式PID公式推導假設上一次輸出是OUTk-1,這次輸出的是OUTk,兩個相減:
△OUT=OUTk-OUTk-1將位置式PID代入得:

注意紅色字體,紅色字體應該計算到當前值(k)的前一個值。
化簡得:

式中:
Ek是當前誤差
Ek-1是上次的誤差
Ek-2是上上次的誤差
這就是增量式PID公式,現在應該知道是怎么來的吧。
兩者的區別知道了計算公式之后,兩者的區別就顯而易見了,粘貼一個百度:
至此,PID這塊骨頭理論上已經啃完了,就差實戰了。后面我準備用電機來進行實戰,用位置式和增量式去控制轉速,實現PID控制。
往前看看,我寫第一個帖子是6月30號,當時還不會配置PWM,還在跟著視頻學STM32。不到一個月的時間,PID理論已經懂了,不能說完全掌握吧,最起碼有點頭緒了。其實我也沒有想到能學到這一步,因為大學4年都沒把PID搞懂(其實是沒有去認真搞)。十分感謝我在網上找到的文獻和視頻的作者,以后我也會在網上多發布一些做項目的經驗,不僅可以記錄自己 ,還能幫助別人。
堅持就是勝利,加油吧!
| 歡迎光臨 (http://m.raoushi.com/bbs/) | Powered by Discuz! X3.1 |