PID算法的FPGA實現(xiàn)_第1頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、pid算法的fpga實現(xiàn) 1.引言 在許多現(xiàn)代化的工業(yè)生產(chǎn)如冶金、電力等,實現(xiàn)對溫度的精度控制至關重要的,不僅挺直影響著產(chǎn)品的質(zhì)量,而且還關系到生產(chǎn)平安、能源節(jié)省等一系列重大經(jīng)濟指標。pid控制因為其魯棒性好,牢靠性高,在常規(guī)的溫度控制中應用十分廣泛。目前工程的實際應用中,大多數(shù)含糊pid控制器都利用軟件編程來實現(xiàn),然而單片機的命令是按挨次執(zhí)行的,實時性不強,加上軟件實現(xiàn)簡單受外界的干擾,抗干擾性能力差,對于實時性要求很高和外界干擾比較嚴峻的系統(tǒng)不太相宜。本文選取(現(xiàn)場可編程門陣列)作為系統(tǒng)的主控制芯片,fpga全部的信號都是時鐘驅(qū)動的,對于程序的執(zhí)行具有并行運算的能力,顯著的提高了系統(tǒng)控制的

2、實時性,在fpga內(nèi)部硬件實現(xiàn)還可以防止像單片機程序一樣,在惡劣的環(huán)境條件下發(fā)生程序跑飛的問題。尤其是現(xiàn)在fpga器件有越來越多的參考設計計劃以及ip(學問產(chǎn)權(quán))核心庫方面的支持。利用fpga設計的pid控制器一方面可以將實現(xiàn)pid算法的模塊單獨作為控制模塊來用法,挺直去實現(xiàn)對控制對象的調(diào)整,另一方面,基于fpga的pid控制算法也可以將其作為系統(tǒng)內(nèi)的ip核,以便在多路或復雜的系統(tǒng)上挺直調(diào)用,加快研發(fā)設計速度。2.pid算法分析2.1 離散pid算法pid控制系統(tǒng)是一個容易的閉環(huán)系統(tǒng),1所示,pid系統(tǒng)框圖中,囫圇系統(tǒng)主要包括、pid控制器和控制對象,其中pid包括三個環(huán)節(jié),即比例、積分和微分

3、。圖1 pid系統(tǒng)框圖圖1中的r(t)作為系統(tǒng)的給定值,y(t)作為系統(tǒng)的輸出值,e(t)是給定值與輸出值的偏差,所以系統(tǒng)的偏差可以求得:e(t)=r(t)-y(t) (1)u(t)作為控制系統(tǒng)中的中間便量,既是偏差e(t)通過pid控制算法處理后的輸出量,又是被控對象的輸入量,因此模擬pid控制器的控制邏輯為:其中,kp為模擬控制器的比例增益,ti為模擬控制器的積分時光常數(shù),td為模擬控制器的微分時光常數(shù)。2.2 離散pid算法為了用微處理器實現(xiàn)pid算法,我們需要將模擬pid離散化,按照采樣時刻的偏差來實現(xiàn)pid算法,因此式(3.2)中的微分和積分項兩項內(nèi)容作離散化處理。假設t為采樣周期,

4、則積分項可作如下變換:采樣周期的時光十分短,故微分可以近似的表示為:將式(3)和式(4)帶入式(2)后,可得到離散pid算法為(限于篇幅,推導過程省略):這個等式被叫做增量式pid控制算法。其中,乘積因子由pid控制參數(shù)kp、ki、kd確定:3.pid算法的fpga實現(xiàn)由公式(5)知,增量式pid控制算法的詳細實現(xiàn)步驟為:先通過誤差計算模塊求出偏差值e(k)、e(k-1)、e(k-2),再通過乘積模塊求出三個信號分離與乘積因子的相乘,最后對乘積項求和得到最后的控制量。圖2所示為增量式pid算法結(jié)構(gòu)圖。3.1 誤差計算模塊誤差計算模塊的目的是為了求出三次相鄰的偏差采樣值,即公式(3.8)中提到的

5、e(k)、e(k-1)、e(k-2),輸入的給定值r(t)與實際輸出值y(t)相減得到誤差值。 hdl程序代碼如下,其中,ek0、ek1、ek2、rt、yt分離對應偏差值e(k)、e(k-1)、e(k-2)、r(t)、y(t)。將上述程序在 ii軟件環(huán)境里完成編譯后,其結(jié)果3所示。圖2 增量式pid算法結(jié)構(gòu)圖圖3 誤差模塊仿真圖3.2 乘積和求和模塊通過誤差計算模塊求出e(k)、e(k-1)、e(k-2)后,由公式(5)知,要計算出控制量還必需將其分離與乘積因子做乘法運算,通過硬件描述語言來實現(xiàn)乘法運算的功能:根據(jù)上述程序,在quartus ii完成編譯后,其仿真結(jié)果4所示。圖4 乘法器仿真圖

6、現(xiàn)在可計算出0e(k)、1e(k-1)、2e(k-2)三個乘積項的計算結(jié)果,將上面三個乘積項求和就可以得出控制量u(k)。程序代碼如下所示,其中輸入val015.0、val115.0、val215.0 分離對應0e(k)、1e(k-1) 、2e(k-2)乘積的結(jié)果,輸出val15.0就是控制量u(k)的值。根據(jù)上述程序,在quartus ii完成編譯后,其仿真結(jié)果5所示。圖5 pid求和模塊仿真波形圖3.3 溫度檢測及輸出控制設計本文用到的溫度測量器件是k型熱電偶,溫度測量范圍為01200。熱電偶輸出的是模擬信號,必需舉行a/d轉(zhuǎn)換,同時還需對熱電偶舉行冷端補償和非線形校正。為了解決上面的問題

7、,本文采納的是k型熱電偶專用數(shù)字轉(zhuǎn)換器max6675芯片,max6675芯片內(nèi)部集成了熱電偶,內(nèi)置高達12位的模數(shù)轉(zhuǎn)換器。還包括了非線性矯正、冷端補償、斷線檢測等功能模塊。max6675的工作溫度范圍為-2085,溫度的測量范圍為01024,溫度辨別率可以達到0.25。假設d為a/d轉(zhuǎn)換后得到的數(shù)字量對應的十進制數(shù)值,那么測量溫度值t可以通過如下公式算出:輸出控制電路采納的是(脈寬調(diào)制)方式,實現(xiàn)對爐的溫度控制。光耦芯片選用moc3061,用于對強弱電路的隔離,雙向?qū)ㄟx用的是bt137_600e。假如占空比越高,那么相對可控硅導通的時光也就越長,電阻爐加熱溫度也就越高,反之溫度也就會漸漸散熱降低,從而達到控制爐溫的目的。4.結(jié)語本文分析了pid算法,給出了在fpga內(nèi)部硬件實現(xiàn)增量式pi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論