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

式中:
Ek是當前誤差
Ek-1是上次的誤差
Ek-2是上上次的誤差 這就是增量式PID公式,現(xiàn)在應(yīng)該知道是怎么來的吧。 兩者的區(qū)別知道了計算公式之后,兩者的區(qū)別就顯而易見了,粘貼一個百度: - 位置式PID控制的輸出與整個過去的狀態(tài)有關(guān),用到了誤差的累加值;而增量式PID的輸出只與當前拍和前兩拍的誤差有關(guān),因此位置式PID控制的累積誤差相對更大;
- 增量式PID控制輸出的是控制量增量,并無積分作用,因此該方法適用于執(zhí)行機構(gòu)帶積分部件的對象,如步進電機等,而位置式PID適用于執(zhí)行機構(gòu)不帶積分部件的對象,如電液伺服閥。
- 由于增量式PID輸出的是控制量增量,如果計算機出現(xiàn)故障,誤動作影響較小,而執(zhí)行機構(gòu)本身有記憶功能,可仍保持原位,不會嚴重影響系統(tǒng)的工作,而位置式的輸出直接對應(yīng)對象的輸出,因此對系統(tǒng)影響較大。
總結(jié)至此,PID這塊骨頭理論上已經(jīng)啃完了,就差實戰(zhàn)了。后面我準備用電機來進行實戰(zhàn),用位置式和增量式去控制轉(zhuǎn)速,實現(xiàn)PID控制。 往前看看,我寫第一個帖子是6月30號,當時還不會配置PWM,還在跟著視頻學STM32。不到一個月的時間,PID理論已經(jīng)懂了,不能說完全掌握吧,最起碼有點頭緒了。其實我也沒有想到能學到這一步,因為大學4年都沒把PID搞懂(其實是沒有去認真搞)。十分感謝我在網(wǎng)上找到的文獻和視頻的作者,以后我也會在網(wǎng)上多發(fā)布一些做項目的經(jīng)驗,不僅可以記錄自己 ,還能幫助別人。 堅持就是勝利,加油吧!
|