FPGA技術(shù)的快速發(fā)展與VHDL(VeryhighspeedintegratedcircuitHardwareDescriptionLanguage)硬件描述語言的支持,使得智能控制策略(模糊邏輯、神經(jīng)網(wǎng)絡(luò)、遺傳算法等)的VHDL描述和FPGA固核實現(xiàn)研究也隨之活躍。在模糊邏輯控制方面,Torralba等人完成了4輸入、12個隸屬度、64條規(guī)則的模糊邏輯控制器的FPGA實現(xiàn),Cirstea等人基于FPGA設(shè)計模糊控制器。本文主要詳解基于FPGA的模糊PID控制器的設(shè)計實現(xiàn),首先介紹了FPGA工作原理、基本特點以及FPGA的優(yōu)勢,其次闡述了使用Altera的FPGA設(shè)計實現(xiàn)的數(shù)字模糊PID控制器,具體的跟隨小編一起來了解一下。
FPGA工作原理
FPGA采用了邏輯單元陣列LCA這樣一個概念,內(nèi)部包括可配置邏輯模塊CLB、輸出輸入模塊IOB和內(nèi)部連線三個部分。FPGA利用小型查找表(16&TImes;1RAM)來實現(xiàn)組合邏輯,每個查找表連接到一個D觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動其他邏輯電路或驅(qū)動I/O,由此構(gòu)成了即可實現(xiàn)組合邏輯功能又可實現(xiàn)時序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。FPGA的邏輯是通過向內(nèi)部靜態(tài)存儲單元加載編程數(shù)據(jù)來實現(xiàn)的,存儲在存儲器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并最終決定了FPGA所能實現(xiàn)的功能, 加電時,F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復(fù)使用。FPGA的編程無須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當(dāng)需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。FPGA是由存放在片內(nèi)RAM中的程序來設(shè)置其工作狀態(tài)的,因此,工作時需要對片內(nèi)的RAM進行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。
FPGA的基本特點
1)采用FPGA設(shè)計ASIC電路(專用集成電路),用戶不需要投片生產(chǎn),就能得到合用的芯片。
2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。
3)FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳。
4)FPGA是ASIC電路中設(shè)計周期最短、開發(fā)費用最低、風(fēng)險最小的器件之一。
5) FPGA采用高速CMOS工藝,功耗低,可以與CMOS、TTL電平兼容。
FPGA的優(yōu)勢
優(yōu)勢一:
更大的并行度。這個主要是通過并發(fā)和流水兩種技術(shù)實現(xiàn)。
A:并發(fā)是指重復(fù)分配計算資源,使得多個模塊之間可以同時獨立進行計算。這一點與現(xiàn)在的多核和SIMD技術(shù)相似。但相對與SIMD技術(shù),F(xiàn)PGA的并發(fā)可以在不同邏輯功能之間進行,而不局限于同時執(zhí)行相同的功能。舉個簡單例子說就是使用SIMD 可以同時執(zhí)行多個加法,而FPGA可以同時執(zhí)行多個加法和乘法和任何你能設(shè)計出來的邏輯。
B:流水是通過將任務(wù)分段,段與段之間同時執(zhí)行。其實這一點和CPU相似,只是CPU是指令間的流水而FPGA是任務(wù)間流水或者可以說是線程間流水。
優(yōu)勢二:
可定制。FPGA 內(nèi)部通過Lookup Table實現(xiàn)邏輯,可以簡單理解為是硬件電路??啥ㄖ浦傅氖窃谫Y源允許范圍內(nèi),用戶可實現(xiàn)自己的邏輯電路。通常情況下任務(wù)在硬件電路上跑是比在軟件上快的,比如要比較一個64位數(shù)高32位和低32位的大小,在CPU下需要2條區(qū)數(shù)指令,兩條位與指令,一條移位指令一條比較指令和一條寫回指令,而在FPGA下只要一個比較器就行了。
優(yōu)勢三:
可重構(gòu)??芍貥?gòu)指的是FPGA內(nèi)部的邏輯可根據(jù)需求改變,減少開發(fā)成本。同時,使用FPGA復(fù)用資源比使用多個固定的ASIC模塊為服務(wù)器省下更多的空間
基于FPGA的模糊PID控制器的設(shè)計實現(xiàn)
一、控制器原理
模糊自整定PID控制器結(jié)構(gòu):是模糊控制器與傳統(tǒng)PID控制器的結(jié)合,利用模糊推理判斷的思想,根據(jù)不同的偏差、偏差變化率對PID的參數(shù)KP、KI、KD進行在線自整定,傳統(tǒng)PID控制器在獲得新的KP、KI、KD后,對控制對象輸出控制量。由此模糊PID控制器的結(jié)構(gòu)框圖如圖1所示。
二、控制器的VHDL分層設(shè)計
模糊PID控制器主要由A/D控制器、模糊化模塊、模糊推理模塊、反模糊化模塊、規(guī)則存儲器、數(shù)字PID運算等部分組成,其結(jié)構(gòu)如圖3所示。現(xiàn)就模糊化模塊、模糊推理模塊、反模糊化模塊等主要模塊的建立來描述VHDL的設(shè)計過程。
1、模糊化模塊
模糊化模塊的功能主要包括兩部分:把輸入的精確量進行尺度變換,變換到相應(yīng)的論域范圍;將己變換到論域范圍的輸入量進行模糊化處理,主要是計算各個輸入量的隸屬度。由于變量的隸屬度函數(shù)均取用等腰三角形,則底邊寬度和底邊中點就可以確定隸屬函數(shù)的所有信息。分別用一個字節(jié)表示每個語言變量的底邊寬度(實際寬度的一半),用三個位(bit)表示底邊中點位置,將這部分信息存在兩個表中。根據(jù)兩個表中的信息,可以計算出輸入變量的隸屬度。為實現(xiàn)隸屬度的計算,需要用到一個加法器,一個減法器和一個除法器。計算的結(jié)果肯定是小數(shù)(由隸屬度的性質(zhì)可知)。為了實現(xiàn)方便,將分子的計算結(jié)果左移8位。這樣,分子的計算結(jié)果是16位,分母是8位,計算結(jié)果是8位。對其部分輸入進行模糊化的VHDL描述如下:
2、模糊推理模塊
模糊推理模塊是模糊控制器的核心,它將輸入的模糊量經(jīng)過推理,變?yōu)檩敵龅哪:?。模糊推理采用Mamdani推理,也稱為Max一Min推理,即最大一最小推理,因為其中主要包括最大化模塊和最小化模塊。對于兩輸入系統(tǒng),最多輸出四個語言值和四個隸屬度。這樣,對于一個兩輸入系統(tǒng),最多激活四條模糊規(guī)則。上述過程就是規(guī)則匹配的過程。規(guī)則匹配需要最小化運算,即Min運算。規(guī)則合并就是將后件相同的模糊規(guī)則進行合并,規(guī)則合并需要最大化運算,即Max運算。由模糊化模塊計算所得的四個隸屬函數(shù)值在控制信號作用下經(jīng)過多路選擇器輸入到比較器;另外兩個控制信號經(jīng)過譯碼后選中隸屬函數(shù)寄存器中的一個,同時選擇輸出最小值到比較器;比較器的輸出結(jié)果再輸入到隸屬函數(shù)寄存器中。這樣,經(jīng)過4個循環(huán),就完成了一個最小化運算。由于VHDL描述簡單,在這里省略。
3、反模糊化模塊
反模糊化通常采用重心法,由于隸屬度函數(shù)采用8為二進制表示,而所涉及的規(guī)則數(shù)最多為4條,所以分子運算需要四個8位x2位的乘法器,3個10位加法器,分母需要3個8位加法器。此外,還需要一個12位/10位的除法器。除法器的設(shè)計方法與模糊化模塊中的設(shè)計方法相同。而乘法器的設(shè)計也與除法器的設(shè)計方法相似。相應(yīng)的VHDL描述如下:
4、數(shù)字PID運算模塊
數(shù)字PID運算主要是加、減、乘的運算,運用原碼算法設(shè)計數(shù)字電路無疑增加電路的復(fù)雜度。而采用補碼運算進行設(shè)計就簡單多了。加減法運算都可以用相同的加法電路來實現(xiàn)。設(shè)計乘法電路的方法很多,考慮到節(jié)省FPGA器件資源問題,采用BOOTH算法。主要涉及累加器溢出處理和小數(shù)運算處理等問題。
三、試驗結(jié)果
借助MATLAB的模糊控制工具箱提供的FIS編輯器建立mamdani型的模糊控制器,并結(jié)合Simulink工具箱建立FuzzyPID控制系統(tǒng)仿真模型。仿真得到的系統(tǒng)階躍響應(yīng)如圖2。通過圖可以看出Fuzzy-PID控制調(diào)節(jié)時間短,超調(diào)量小,曲線平滑,具有較強的抗干擾和魯棒性。
各模塊程序經(jīng)過編譯優(yōu)化之后,由QuartusⅡ軟件綜合并生成網(wǎng)表文件,最后下載到Altera公司的Cyclone系列的EP1C6Q240C8芯片上。經(jīng)實際測試顯示,該模糊PID控制器控制效果明顯優(yōu)于普通的PID控制器。
四、結(jié)論
本文使用Altera的FPGA設(shè)計實現(xiàn)了一個數(shù)字模糊PID控制器。其中PID部分采用增量式算法,模糊控制部分采用離線計算、在線查表的方式實現(xiàn),在不增加硬件資源耗費的前提下大大改善了普通PID控制器的控制效果。同時,F(xiàn)PGA作為單一控制器實現(xiàn)模糊自整定PID控制,編程規(guī)范、時序驗證方便、系統(tǒng)修改靈活,且基本無須改動硬件,是實現(xiàn)單片或小系統(tǒng)智能控制策略的一種新的有效途徑。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
602977 -
PID控制器
+關(guān)注
關(guān)注
2文章
173瀏覽量
18579
發(fā)布評論請先 登錄
相關(guān)推薦
評論