被“用濫”的PID,你真的學(xué)廢了嗎?

前言
這是兩年前寫的文章,當(dāng)時是在做熱風(fēng)烘箱項目,涉及到風(fēng)溫控制。開始采用的是普通的PID,效果總是不理想,震蕩比較大。后來,從網(wǎng)絡(luò)上了解到積分分離PID,通過編程調(diào)試,最終能達(dá)到想要的效果。
積分分離控制的基本思想
我們知道,在普通的PID控制中引入積分的目的,主要是為了消除靜差,提高控制精度。但在過程啟動或大幅度增減設(shè)定值時,短時間內(nèi)系統(tǒng)輸出有很大的偏差,會造成PID運算的積分積累,引起系統(tǒng)較大的超調(diào),甚至?xí)a(chǎn)生較大的震蕩。
當(dāng)被控量與設(shè)定值偏差較大時,取消積分作用;當(dāng)被控量接近設(shè)定值時,引入積分控制,以便消除靜差,提高控制精度。
具體實現(xiàn)步驟如下:

積分分離控制的算法實現(xiàn)
算法公式如下:

算法流程圖如下:

積分分離控制的PLC編程
項目選用的是西門子SMART系列PLC,PID算法沒有用自帶的模塊生成,而是自己編程。
主程序開100ms定時中斷:

中斷子程序:

溫控子程序:

積分分離PID子程序:

寫在最后
就本項目而言,風(fēng)溫需要多級控制,且風(fēng)溫設(shè)定值增幅較大,可以說積分分離式PID算法完美適配,最終達(dá)到的效果也是非常理想的。
其實,PID算法很簡單,不管怎么變形,就那三個式子之和。但是,P、I、D三個參數(shù)的調(diào)試卻不是那么容易。
我的理解是需要更多了解控制對象本身的物理特性和執(zhí)行機(jī)構(gòu)的精度,以及現(xiàn)場環(huán)境。
END
標(biāo)簽: