楊亮 吳占友 張汝彬 邵奎志
摘要:在FPGA實現(xiàn)九點控制器的算法設計中,引入四個輔助變量,可以降低復雜邏輯判斷過程。文章以高溫加熱爐控制對象為例,在分析了對象數(shù)學模型特征的基礎上,忽略三個無關工況,只選取六個工況作為有效參數(shù),使FPGA頂層電路的設計結構得以優(yōu)化。將工況K0引入偏差的動態(tài)控制,有效消除了輸出波動,有利于改善控制器的穩(wěn)定性能。實驗證明,在設定值為300℃的條件下,系統(tǒng)穩(wěn)態(tài)誤差小于2℃,上升時間短,控制輸出穩(wěn)定。FPGA九點控制器的新型設計方法具有算法簡單,易于實現(xiàn)的優(yōu)點。
關鍵詞:FPGA;九點控制器;溫度控制;加熱爐;相平面圖
中圖分類號:TP273 文獻標識碼:A 文章編號:1009-2374(2012)03-0040-04
一、概述
九點控制器是近年來提出的一種新型智能控制器,其特點是不需要復雜的數(shù)學運算,實現(xiàn)形式靈活多樣。目前,九點控制器的研究和應用都是建立在單片機等微處理器(MCU)基礎上的。傳統(tǒng)的控制算法中,PID控制是目前工業(yè)控制中應用最廣泛的一種,其主要弱點是在線性控制性能上未能很好地解決系統(tǒng)性能指標中穩(wěn)定性、準確性與快速性之間的矛盾,參數(shù)整定困難,對象參數(shù)變化敏感,魯棒性不強。模糊控制特別適合于模擬專家對數(shù)學模型未知的、復雜的、非線性系統(tǒng)的控制,但控制規(guī)則相對較多,而且主要憑經(jīng)驗進行設計,再通過實驗反復調整,測試過程很費時。相比之下,九點控制器的控制策略是一種邏輯控制,是根據(jù)系統(tǒng)的偏差和偏差變化率進行控制的,不必預知控制系統(tǒng)的精確數(shù)學模型。作為一種新型控制技術,九點控制器能夠按照系統(tǒng)輸出的變化調整系統(tǒng)增益,具有結構簡單、靈活方便、易于實現(xiàn)、適應性強等特點。目前片上控制器設計正在成為芯片應用的新熱點。在控制器實現(xiàn)方式中,微處理器雖然應用十分普遍,能夠實現(xiàn)各類控制算法,但其不足之處是由于參與了代碼的運行控制,相對運算速度不夠快、復位不夠可靠、有產生程序計數(shù)器跑飛的風險等。本文以FPGA為開發(fā)平臺,提出一種九點控制器片上控制單元的新型設計方法,該方法經(jīng)過簡化后,能使FPGA設計過程簡化,易于實現(xiàn)。
二、九點控制器的控制策略
九點控制器是根據(jù)系統(tǒng)的偏差e和偏差變化率(簡稱“偏差率”)進行控制的,又叫基本型邏輯控制器。九點控制器組成的控制系統(tǒng)結構如圖1
所示:
圖1九點控制器的控制系統(tǒng)組成
在圖1中,r為設定值,c為控制系統(tǒng)的輸出量,即系統(tǒng)被控量。e為偏差,是設定值r與系統(tǒng)輸出量的差值,即e=r-c。uc為九點控制器的輸出,是根據(jù)系統(tǒng)的偏差e和偏差率的狀況決定的。當前時刻k時的偏差率為k時刻偏差與前一時刻(k-1)時刻偏差的差值除以相鄰兩時刻間的時間長度,即采樣周期T,如式(1)所示:
(1)
由于采樣過程中采樣周期固定不變,為簡化運算過程,本設計中用偏差變化量來代替偏差變化率,如式(2)所示:
(2)
九點控制器根據(jù)偏差e和偏差率將系統(tǒng)的動態(tài)過程劃分成九種工作狀況,簡稱“工況”,每種工況對應控制器的一種輸出uc。九種控制輸出相互協(xié)調作用,使系統(tǒng)的輸出穩(wěn)定在期望值上。九點控制器的九種工況可以用圖2所示的相平面圖來表示,相平面圖是分析九點控制器的基本工具。
圖2由偏差e和偏差變化率組成的相平面圖
在圖2中,橫軸和縱軸分別為偏差e和偏差率,L1、L2所夾的區(qū)域構成偏差變化率零帶,二者所在位置的大小為分別±;L3、L4所夾的區(qū)域構成偏差零帶,二者所在位置的大小分別為±e0。L1、L2、L3、L4四條線將整個相平面劃分成九個區(qū)域,分別對應九點控制器的九種控制力。九點控制器的控制原則為:偏差e為正則輸出增大;偏差e為零則輸出保持;偏差e為負則輸出減小??刂破鬏敵觯?/p>
uc=Ki, i=0, 1±, 2±, 3±, 4± (3)
式(3)中Ki為工況輸出,對應的九種取值分別為K4+、K3+、K2+、K1+、K4-、K3-、K2-、K1-、K0,對應工況號分別為Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ、Ⅵ、Ⅶ、Ⅷ、Ⅸ九個區(qū)的控制輸出量。根據(jù)九點控制器的控制原則可知,九個工況參數(shù)Ki之間滿足如下關系:
K4+≥K3+≥K2+≥K1+≥K0≥K1-≥K2-≥K3-≥K4-
由圖2可見,當e0和取較小值時,系統(tǒng)在Ⅸ區(qū)的偏差和偏差率都接近于零,因此Ⅸ區(qū)是系統(tǒng)的期望工況。九點控制器的控制目標就是使系統(tǒng)的工況從其他區(qū)穩(wěn)定到Ⅸ區(qū)??梢?,e0越小,系統(tǒng)的穩(wěn)態(tài)誤差越小,而越小,則要求系統(tǒng)的跟蹤性能越好。
三、FPGA設計九點控制器的方法
九點控制器控制策略的核心思想是利用輸入的偏差和偏差率的工況,決策相適應的輸出量,而不依賴于對象的數(shù)學模型,其控制過程具有很強的邏輯性。因此,選擇FPGA設計九點控制器能夠充分發(fā)揮其數(shù)字邏輯設計的優(yōu)勢,有利于簡化控制算法。根據(jù)九點控制器的原理,將FPGA設計過程分為計算偏差、計算偏差變化率及決策控制輸出三個步驟。
1.偏差e的計算。由于當前時刻k時的偏差為e(k)=r-c(k),對于FPGA來說只要一個減法器便可實現(xiàn)。設在FPGA設計中當前時刻為n,則有:
E(n)=R-C(n)=R+NOT{C(n)}+Cin(4)
式(4)中NOT為取反運算,Cin為進位,由于是減法運算,所以此處Cin應為1。式中偏差E(n)可能為負數(shù),為了運算方便,避免因為數(shù)據(jù)極性的混淆而產生錯誤,特別地給這些變量增加一個符號位,其中,用‘0表示正數(shù),‘1表示負數(shù)。一般的,設定值和實際值都是正數(shù),所以此時有:
E(n)=R-C(n)={0,R}+NOT{0,C(n)}+
Cin(5)
2.偏差變化率的計算。對于k時刻的偏差率,,其中e(k)、e(k-1)分別為k時刻和(k-1)時刻的偏差。將e(k)通過寄存器延遲一個采樣周期后便得到e(k-1),然后通過FPGA減法器的運算便得到偏差變化率。同理,e(k)和e(k-1)均含符號位。
3.決策控制輸出uc。系統(tǒng)的工況是控制算法的依據(jù),根據(jù)控制域的工況,輸出相應的控制量。判斷工況即判斷e(k)和所在的區(qū)間,即判斷二者分別與±e0和±作比較的大小。在FPGA中,各種運算和數(shù)據(jù)都是靠硬件實現(xiàn)的。例如,要比較-1和0的大小,在FPGA中-1是用補碼表示的,如果直接比較會得到-1>0這個錯誤結果。因此,在FPGA中作數(shù)據(jù)比較時,應將作比較的數(shù)據(jù)都設置一個符號位,先由符號位判斷數(shù)據(jù)的正負,然后再比較同符號數(shù)據(jù)的大小。
在FPGA的九點控制器設計中,判斷工況是一個復雜過程,可以設置四個輔助變量以簡化判斷過程。令當前時刻x1(k)=e(k)+e0、x2(k)=e(k)-e0、x3(k)=+、x4(k)=-。在FPGA設計中,令當前時刻為n,將上述四個輔助變量算式轉換后的描述如下:
(6)
式(6)中,X1(n)、X2(n)用來判斷偏差的大小,X3(n)、X4(n)用來判斷偏差變化率的范圍。E(n)、、E0、均含有符號位,且數(shù)據(jù)位數(shù)相同。因此,可以根據(jù)X1(n)、X2(n)、X3(n)、X4(n)的符號位來判斷E(n)與±E0、與±比較的大小。例如,式(6)中有:
X1(n)=E(n)+E0=E(n)-(-E0)(7)
根據(jù)公式(7)則可以推斷偏差的工況,即:
IFX1(n)符號位為‘1
THENX1(n)<0 //即E(n)<(-E0)
IFX1(n)符號位為‘0
THENX1(n)≥0//即E(n)≥(-E0)
可見,F(xiàn)PGA設計將九點控制器的控制算法轉化為只需判斷X1(n)、X2(n)、X3(n)、X4(n)的符號位,即可知道E(n)與±E0及與±的比較大小的過程,依此推斷系統(tǒng)當前時刻所處的工況,決策相應的輸出控制量,算法簡潔、易用。設Uout為控制器輸出變量,X1(n)、X2(n)、X3(n)、X4(n)均為12位數(shù)據(jù),其表達式如式(6)所示。FPGA設計九點控制器的推斷算法描述如下:
IF X1[11]=1//符號位為‘1,X1為負數(shù)
THENUout=0 //控制器在Ⅴ~Ⅶ區(qū)輸出為0
ELSE IF X2[11]=0且X2≠0
IF X3[11]=1
THEN Uout=K2+//在Ⅲ區(qū)的輸出為K2+
ELSE IFX4[11]=0且X4≠0
THEN Uout=K4+//在Ⅰ區(qū)的輸出為K4+
ELSEUout=K3+ //在Ⅱ區(qū)的輸出為K3+
依此類推,即可推斷每個工況的輸出量。工況分析過程中的判斷次數(shù)原來最多為15次,采用輔助變量后減少到最多9次。
四、FPGA九點控制器系統(tǒng)的實現(xiàn)與測試
如圖3所示是以FPGA九點控制器作為核心部件,設計實現(xiàn)的一個單閉環(huán)爐溫控制系統(tǒng)。
圖3基于FPGA的爐溫控制系統(tǒng)組成結構
圖3所示的控制系統(tǒng)擴展了數(shù)據(jù)通信接口,其作用除了將編譯的程序代碼下載輸入到FPGA芯片中外,更主要的是通過RS232串口電路接口實現(xiàn)FPGA九點控制器與計算機的通信,進行數(shù)據(jù)的保存和分析;溫度采集模塊輸入端采用K型熱電偶為測溫元件,輸出標準電壓信號給AD轉換,然后產生12位溫度數(shù)據(jù)傳送給九點控制器;繼電器控溫模塊通過PWM方式控制固態(tài)繼電器的通斷來達到調節(jié)加熱功率的目的;人機接口包括鍵盤和顯示兩部分,用于控制器的起??刂坪蜏囟蕊@示等人機交互的操作;時鐘控制模塊用于將系統(tǒng)時鐘分頻并產生定時采樣信號;控制器的輸出應限制在一定的幅度內,以保證控制邏輯輸出的信號在物理設備承受范圍之內。
實驗中以高溫加熱爐作為溫度控制對象,被控對象數(shù)學模型的傳遞函數(shù)可描述為:
(8)
由式(8)可見,被控對象的比例系數(shù)為1.21,時間常數(shù)為1480s,純滯后時間為8.64s,即控制對象為一階、純滯后、慣性系統(tǒng)。當溫度變化范圍較大時,被控對象模型的參數(shù)隨之發(fā)生變化,因此系統(tǒng)還具有時變性和非線性。通常的溫控要求上升時間盡可能短,超調量小或者無超調,穩(wěn)定。
由于加熱爐降溫為自然冷卻方式,降溫速度慢,為保證最小超調控制,當出現(xiàn)超調的時候,應迅速減小控制器輸出,使系統(tǒng)回復到控制零帶,減少調節(jié)時間;而九點控制器九個工況輸出中K1-、K2-、K3-、K4-所對應的工況表示系統(tǒng)響應有超調或者有產生超調的趨勢,因此這里設,
K1-=K2-=K3-=K4-=0(9)
式(9)表示控制器在這四個工況的輸出量為0,以避免被控對象產生大的超調??煽醋鱇1-、K2-、K3-及K4-所對應的工況合并為一個工況,從而原來的九個狀態(tài)簡化為六個。算法改進后的相平面圖如圖4所示。合并工況后,判斷工況的邏輯判斷次數(shù)由原來的8次減少為6次,同時FPGA的設計質量得以優(yōu)化。
由九點控制器的特性可知,偏差零帶越小,系統(tǒng)的穩(wěn)態(tài)性能相對越好,因此選擇偏差零帶e0=1;根據(jù)加熱爐的加熱特性選擇偏差變化率零帶=2。設控制器輸出信號的幅值為100,以式(8)的加熱爐數(shù)學模型應用Matlab仿真。
圖4 九點控制算法改進后的相平面圖
由于九點控制器各參數(shù)中對穩(wěn)態(tài)性能起主要作用的是K3+和K0,因此首要確定這兩個參數(shù)的值大小。如表1所示為測試中選取的典型一組仿真參數(shù)和兩組實測參數(shù)的對比情況。
1 2 100 36 33 30 24+2e
根據(jù)控制器的各項參數(shù)對控制性能的影響進行仿真測試。當K0=25,K3+=36時,Matlab的仿真如圖5(a)所示,其穩(wěn)態(tài)控制效果是最理想的;K1+、K2+值的大小位于K0和K3+之間,分別選為30、33;K4+選為最大值100。將仿真整定的參數(shù)作為背景數(shù)據(jù)。
實驗測試中環(huán)境溫度約為25℃,作為初始值。加熱爐的工作溫度約為200℃~600℃,采集周期為2秒,K型熱電偶測量精度為5‰,溫度設定值為300℃,AD轉換分辨率為12位,得到的階躍響應曲線如圖5(b)所示。由圖可知,得到的溫度曲線超調量為4℃,誤差為3℃,系統(tǒng)輸出不穩(wěn)定,輸出值在偏差零帶上限上下波動。由測試分析可知,控制器在K0區(qū)域內的作用力偏大,即K0值應當減小。為了避免系統(tǒng)輸出在偏差零帶內上下波動,改進K0區(qū)域內輸出為動態(tài)的控制策略,即在K0工況內偏差為正時,控制器輸出稍大;偏差為負時,控制器輸出稍小,因此可選取當前時刻K0(k)的大小滿足e(k)為線性關系如下所示:
K0(k)=24+2e(k) (10)
(a)(b)(c)
圖5爐溫控制實驗系統(tǒng)仿真和實測時的階躍響應曲線
依據(jù)式(10)再次進行溫控測試,得到的階躍響應曲線如圖5(c)所示??梢姡淖兒蟮腒0(k)使系統(tǒng)輸出的超調量僅1℃,系統(tǒng)能夠穩(wěn)態(tài)輸出,誤差小于2℃。同時,系統(tǒng)上升時間變化不大。算法改進前后的K0取值及控制性能指標如表2所示:
五、結論
1.基于FPGA九點控制器的設計過程中,采用將控制算法轉化為偏差、偏差變化率與工況之間的邏輯關系的設計思想,可以發(fā)揮FPGA邏輯設計的優(yōu)勢。
2.優(yōu)化FPGA設計。優(yōu)化設計中引入了四個輔助變量,并采用增加符號位來簡化九點控制器復雜的工況判斷過程,大大提高了算法的執(zhí)行效率。
3.進行工況分析,化簡工況參數(shù)。根據(jù)高溫加熱爐控制對象的模型特征,將工況輸出合并為六個,使得FPGA的邏輯設計結構進一步簡化,降低了設計
成本。
4.由于系統(tǒng)控制的穩(wěn)態(tài)性能與K0并非為恒定關系,而可以看作與當前時刻的輸入偏差近似成線性關系,因此提出采用動態(tài)計算工況K0(k)的方法來減小系統(tǒng)輸出波動。
將FPGA設計的九點控制器應用于具有一階純滯后慣性特性的高溫加熱爐的升溫控制過程,設定溫度為300℃。測試結果表明,系統(tǒng)輸出的超調量為1℃,穩(wěn)態(tài)誤差小于2℃,上升時間約為360秒,控制參數(shù)滿足預期目標要求,控制效果令人滿意。
參考文獻
[1]劉教瑜,劉江鋒.一種新的延遲系統(tǒng)的控制方法[J].武漢理工大學學報,2003,25(10).
[2]蘇義鑫,張尉,張南綸.九點五態(tài)控制器及其仿真研究
[J].武漢理工大學學報,2003,25(2).
[3]于海東,陳東雷.CPLD/FPGA在數(shù)字系統(tǒng)設計中的應用前景[J].電機電器技術,2003,(4).
[4]譚思云,徐武雄.九點控制器穩(wěn)態(tài)性能分析[J].武漢理工大學學報,2002,24(10).
[5]YUEN FONG CHAN,M MOALLEM,WEI WANG. Design and Implementation of Modular FPGA-Based PID Controllers[A].IEEE Transactions on Industrial Electronics,2007,54(4).
[6]楊素英,張忠賢,李垂君.九點控制器在電阻爐溫控制的研究和仿真[J].控制工程,2007,14(S3).
[7]譚思云,周建中.一種新型的智能控制器——九點控制器[J].華中科技大學學報(自然科學版),2003,31(12).
作者簡介:楊亮(1982-),男,河北保定人,海洋石油工程股份有限公司助理工程師。
(責任編輯:趙秀娟)