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

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