張 偉,張 建,高 巖,孫天澳,李旭升,王云亮
(丹東東方測(cè)控技術(shù)股份有限公司,遼寧丹東,118000)
基于FPGA的增量式PID算法的設(shè)計(jì)與改進(jìn)
張 偉,張 建,高 巖,孫天澳,李旭升,王云亮
(丹東東方測(cè)控技術(shù)股份有限公司,遼寧丹東,118000)
本文介紹了一種基于FPGA的用Veilog HDL語言設(shè)計(jì)的增量式PID控制器的設(shè)計(jì)方法,并為了提高控制精度,消除精差,減少由于短時(shí)間內(nèi)系統(tǒng)輸出余量過大造成的偏差而引起系統(tǒng)較大的振蕩,因此增加了積分分離控制算法,從而進(jìn)一步提高了PID控制算法的穩(wěn)定性和控制精度。
FPGA;增量式;PID;積分分離
數(shù)字PID控制算法是在過程控制中普遍采用的控制方法,具有靈活可控的特點(diǎn)。但是由于在實(shí)際工業(yè)生產(chǎn)過程中往往存在非線性,時(shí)變不確定,波動(dòng)大,穩(wěn)定時(shí)間不確定等因素,使用常規(guī)的PID控制器不能達(dá)到理想的控制效果。本文采用FPGA軟件設(shè)計(jì),實(shí)現(xiàn)改進(jìn)型增量式PID算法,成功應(yīng)用于工業(yè)在線檢測(cè)儀表探測(cè)器的穩(wěn)峰電路中,降低了控制過程中的調(diào)整波動(dòng),提高了電壓調(diào)整的穩(wěn)定性和可控性。
PID控制器是一種線性控制器,其控制規(guī)律如下所示:
增量式PID控制算法如下:
式中:kp--比例系數(shù);ki--積分系數(shù);kd—微分系數(shù);Δu(k)—第K次采樣時(shí)刻的輸出控制量增量;error(k)—第K次采樣時(shí)刻的輸入偏差量。
由上式可知,增量式PID控制算法增量?jī)H與最近K次的采樣有關(guān),所以誤動(dòng)作影響小,而且較容易通過加權(quán)處理獲得比較好的控制效果。
1.1 積分分離控制原理
積分分離的控制原理是:當(dāng)輸入偏差(即輸入量與設(shè)定值)較大時(shí),取消積分系數(shù),避免超調(diào)量過大引起系統(tǒng)的穩(wěn)定性降低;因此,設(shè)置積分分離線,當(dāng)輸入偏差接近積分分離時(shí),引入積分控制調(diào)整,以便消除靜差,提高控制精度。如下對(duì)增量式PID公式引入積分分離線:
(1)根據(jù)探測(cè)器穩(wěn)峰閾值輸入積分分離線:ε>0;
(2)當(dāng)|error(k)|>ε時(shí),采用PID控制,以保證系統(tǒng)的控制精度;
(3)當(dāng)|error(k)|≤ε時(shí),采用PD控制,可避免產(chǎn)生過大的超調(diào),使系統(tǒng)有較快的響應(yīng);引入積分分離后,增量式PID算法可表示為:
(1)由于增量式PID運(yùn)算過程中,描述輸入偏差量的表達(dá)式e(k)為絕對(duì)值,因此引入增減模式控制信號(hào)mode[1:0],其變量用于表達(dá)e(k)的差值符號(hào),用于控制PID過程變量傳遞參數(shù)時(shí)是遞增預(yù)算還是遞減運(yùn)算。
(2)區(qū)別與基于C語言設(shè)計(jì)的ARM,單片機(jī)等過程設(shè)計(jì),使用Verilog HDL語言的FPGA設(shè)計(jì)屬于硬件描述語言,所有進(jìn)程模塊為并行結(jié)構(gòu),而且在PID運(yùn)算實(shí)現(xiàn)的設(shè)計(jì)中存在過程變量傳遞參數(shù),因此不能使用非阻塞式賦值,應(yīng)當(dāng)在進(jìn)程模塊中實(shí)現(xiàn)異步賦值。
(3)增加過程變量輸出變量u(k),u(k-1),u(k-2),用于對(duì)比增量變化,實(shí)現(xiàn)積分分離控制。
圖1 增量式PID算法軟件流程圖
(1)通過Modelsim軟件對(duì)FPGA實(shí)現(xiàn)的增量式PID軟件改進(jìn)算法進(jìn)行仿真,設(shè)置激勵(lì)參數(shù)。
(2)設(shè)置PID參數(shù),其中比例系數(shù)Kp = 10;積分系數(shù)Ki = 5;微分系數(shù)Kd = 30;積分分離線偏差值initegral_value = 10。
(3)設(shè)置輸入變差datain,并逐次遞減。
(4)分別設(shè)置增減模式控制mode。
(5)e0,e1,e2為過程參數(shù),用于計(jì)算積分分離線;u0,u1,u2為輸出過程參數(shù);du為增量。
如圖2所示為增量式PID算法mode = 1遞減模式時(shí)Modelsim仿真圖[2]。
圖2 增量式PID軟件算法遞增方式仿真圖
如圖3所示為增量式PID算法mode = 2遞增模式時(shí)Modelsim仿真圖。
圖3 增量式PID軟件算法遞減方式仿真圖
通過圖2,圖3中所示,增量式PID算法,其增減變化只于增量有關(guān),減少了由于過程量變化引起的波動(dòng),避免了由靜差變化引起的過程參數(shù)的不穩(wěn)定性變化,而且加入了積分分離線,減少了系統(tǒng)趨于穩(wěn)定區(qū)間過程中不必要的余量,造成控制的不穩(wěn)定性。
本文作者根據(jù)上述設(shè)計(jì)原理以及軟件結(jié)構(gòu)的基礎(chǔ)上,采用Altera公司FPGA,Cyclone E系列芯片EP4CE22上得以驗(yàn)證和實(shí)現(xiàn)。本設(shè)計(jì)應(yīng)用于氦3探測(cè)器穩(wěn)峰電路中,通過兩路通道計(jì)數(shù)的采集,確定輸入量偏差,針對(duì)輸入量偏差進(jìn)行PID運(yùn)算得到16位輸出量u0,再將16位輸入量u0直接通過spi接口接入單通道16位精度DAC中,輸出0到5V的控制電壓,再通過控制電壓控制氦3探測(cè)器高壓電路,從而調(diào)整探測(cè)器兩路計(jì)數(shù),使得兩路計(jì)數(shù)的輸入量偏差趨于零。
圖4 增量式PID改進(jìn)控制算法在產(chǎn)品中的應(yīng)用
在工業(yè)過程控制應(yīng)用中,PID控制由于其簡(jiǎn)單,高效,適用性強(qiáng)等優(yōu)點(diǎn),在工業(yè)領(lǐng)域中得到了廣泛的應(yīng)用,而在硬件系統(tǒng)中嵌入PID運(yùn)算,尤其是FPGA硬件嵌入式設(shè)計(jì)由于Verilog HDL硬件描述語言穩(wěn)定性更高,更滿足數(shù)字控制電路對(duì)數(shù)據(jù)處理的吞吐量和高速I/O的要求,并減少了由于線路,工業(yè)環(huán)境,電磁干擾等因素引起的不穩(wěn)定性而導(dǎo)致故障,造成損失,保證的檢測(cè)儀表的穩(wěn)定性要求,
[1]SanirPalnitkar.Verilog數(shù)字設(shè)計(jì)與綜合.第二版[M],夏宇聞譯,電子工業(yè)出版社,2009.
[2]劉金琨.先進(jìn)PID控制以及器MATLAB仿真[M],電子工業(yè)出版社,2003.
A design and improvement of the incremental PID algorithm based on FPGA
Zhang Wei,Zhang Jian,Gao Yan,Sun TianAo,Li XuShen,Wang YunLiang
(LiaoNingDanDong.DongFangCeKong,Dandong Liaoning,118000)
This paper introduces a FPGA based design method of using Veilog HDL language to design the incremental PID controller. In order to improve the control precision, eliminate the steady-state error,and reduce the large system oscillation caused by deviation due to the large allowance of system output within a short time, this design uses the integral separation control algorithm, which can improve the stability and control precision of the PID control algorithm.
FPGA;Incremental;PID;Integral separation
遼寧省“百千萬人才工程”資助項(xiàng)目(遼百千萬立項(xiàng)【2015】9號(hào))。
張偉(1980 - ),男,本科,學(xué)士,丹東東方測(cè)控技術(shù)股份有限公司副總工程師,教授研究員級(jí)高級(jí)工程師,主要從事同位素在線檢測(cè)儀表的研發(fā)工作。