PID控制器开发笔记之九:基于前馈补偿的PID控制器的实现
對于一般的時滯系統(tǒng)來說,設定值的變動會產生較大的滯后才能反映在被控變量上,從而產生合理的調節(jié)。而前饋控制系統(tǒng)是根據(jù)擾動或給定值的變化按補償原理來工作的控制系統(tǒng),其特點是當擾動產生后,被控變量還未變化以前,根據(jù)擾動作用的大小進行控制,以補償擾動作用對被控變量的影響。前饋控制系統(tǒng)運用得當,可以使被控變量的擾動消滅在萌芽之中,使被控變量不會因擾動作用或給定值變化而產生偏差,它較之反饋控制能更加及時地進行控制,并且不受系統(tǒng)滯后的影響。
1、前饋控制基本思想
在高精度伺服控制中,前饋控制可用來提高系統(tǒng)的跟蹤性能。經典控制理論中的前饋控制設計是基于復合控制思想的,當閉環(huán)系統(tǒng)為連續(xù)系統(tǒng)時,使前饋環(huán)節(jié)與閉環(huán)系統(tǒng)的傳遞函數(shù)之積為1,從而實現(xiàn)輸出完全復現(xiàn)輸入。其系統(tǒng)結構圖如下:
從上圖中,我們可以發(fā)現(xiàn)前饋環(huán)節(jié)的傳遞函數(shù)是被控對象的倒數(shù)。那么就是在使用前饋控制前我們需要對被控對象的模型有了解,才能有針對性的設計出合適的前饋控制器。也就說,每個系統(tǒng)的前饋控制器都是不一樣的,每個前饋控制器都是專用的。
要實施前饋控制,首先我們必須得到被控系統(tǒng)的近似模型,這個模型越接近真實的系統(tǒng),控制的效果就越明顯。在這里我們假定一個被控對向的模型為:
那么前饋控制器是被控對象的倒數(shù),于是我們可以推導出前饋控制器的輸入輸出表達式為:
我們將其離散化,就可以得到我們想要實現(xiàn)的前饋控制器的輸出公式。前饋控制器的輸入是設定值,所以表示如下:
2、算法實現(xiàn)
經過上面的分析我們可以實現(xiàn)一個前饋控制器,前饋控制器的輸出與設定值當前值、前一拍的值以及前兩拍的只有關。也就是說如果設定值長時間不變化,該前饋控制器是不起作用的。當然每一個前饋控制器都是不一樣的。
由于A、B、T均為常數(shù)于是我們?yōu)榱藭鴮懛奖?#xff0c;令α=A/(B*T),β=1/(B*T*T)于是我們可以先實現(xiàn)前饋控制器。定義一個前饋控制器的結構體:
/*定義前饋控制器的結構體*/ typedef struct{float rin;float lastRin;float perrRin; }FFC/*實現(xiàn)前饋控制器*/ float FeedforwardController(FFC vFFC) {float result;result=α*(vFFC->rin-vFFC->lastRin)+β*(vFFC->rin-2*vFFC->lastRin+vFFC->perrRin);vFFC->perrRin= vFFC->lastRin;vFFC->lastRin= vFFC->rin;return result; }有了這個前饋控制器,只需要與PID控制器的輸出合并在一起就好了U(k)=Up(k)+Uf(k),而PID控制器采用位置型還是增量型都沒有關系。不過在調用這兩個控制器時需:
vFFC->rin=vPID-> setpoint
3、總結
前饋控制器是一種補償控制,或者說模型控制,其特點就是必須能得到被控對象的精確模型或者近似模型才能起到較好的控制效果。對于時滯系統(tǒng)的模型控制有很多方法,前饋控制是其中比較簡單和應用較廣的算法。
系統(tǒng)中存在頻率高、幅度大、可測量而不可控的擾動時,可選用前饋控制。當控制系統(tǒng)控制通道滯后時間長、反饋控制又不能獲得良好效果時,可選用前饋控制。
歡迎關注:
總結
以上是生活随笔為你收集整理的PID控制器开发笔记之九:基于前馈补偿的PID控制器的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 砥志研思SVM(一) 最优间隔分类器问
- 下一篇: 探索比特币源码2-配置Bitcoin C