(沈陽化工研究院設(shè)計(jì)工程公司,沈陽 110021)
精餾過程一般是個(gè)被控對象系統(tǒng)模型參數(shù)隨時(shí)間變化的過程,對于蒸餾過程可以采用傳統(tǒng)的PID控制,但是效果未必是理想的,近年來發(fā)展的廣義預(yù)測控制對于系統(tǒng)模型參數(shù)變化有很好的自適應(yīng)調(diào)節(jié)能力[1-2],但是此種算法的計(jì)算量比較大,而近年來隨著半導(dǎo)體工業(yè)片上系統(tǒng)的發(fā)展,使得可以采用片上系統(tǒng)來實(shí)現(xiàn)某些先進(jìn)控制算法控制化工生產(chǎn)過程,實(shí)現(xiàn)過程不復(fù)雜,控制效果較傳統(tǒng)的PID控制要好,并能顯著提高產(chǎn)品收益,尤其對于精細(xì)化工來說,能顯著提高經(jīng)濟(jì)效益。對于點(diǎn)數(shù)多,系統(tǒng)比較大的系統(tǒng)采用成品DCS解決方案比較合適,一般DCS廠家有相應(yīng)的先進(jìn)控制軟件包通過組態(tài)來實(shí)現(xiàn)先進(jìn)控制算法是比較好的方案,或者采用OPC方式購買獨(dú)立的軟件包實(shí)現(xiàn)[3];但是對于系統(tǒng)較小或者生產(chǎn)規(guī)模比較小的生產(chǎn)車間,采用DCS來解決,從成本來說就不是很經(jīng)濟(jì),而且要有相應(yīng)的維護(hù)人員,對于一般的小廠家這個(gè)未必現(xiàn)實(shí),所以,這種先進(jìn)控制算法在點(diǎn)數(shù)少或者小車間實(shí)現(xiàn)的不多。如果能采用帶有先進(jìn)控制算法的一體化數(shù)字控制器,比如:數(shù)顯表或者帶有控制功能的無紙記錄儀,在小車間或者點(diǎn)數(shù)少的控制系統(tǒng)實(shí)現(xiàn)先進(jìn)控制算法,從經(jīng)濟(jì)和現(xiàn)實(shí)上是比較合理的,同時(shí)能提高相應(yīng)企業(yè)的經(jīng)濟(jì)效益。本文針對點(diǎn)數(shù)少,生產(chǎn)規(guī)模小的車間設(shè)計(jì)一個(gè)采用先進(jìn)控制算法的控制器,控制器硬件上采用片上系統(tǒng)ST32F407微控制器,控制器上運(yùn)行嵌入式操作系統(tǒng),先進(jìn)控制算法的編程實(shí)現(xiàn)基于操作系統(tǒng)的調(diào)度算法。
控制器芯片采用STM32F407VET6,此種SoC芯片帶有浮點(diǎn)運(yùn)算單元,對于復(fù)雜控制算法和矩陣運(yùn)算非常有優(yōu)勢,而且實(shí)時(shí)性也能保證,造價(jià)也比DSP要低??刂破黠@示部分由2排4位連體數(shù)碼管組成,通過2個(gè)74HC595串聯(lián)來驅(qū)動(dòng)數(shù)碼管,上面一排顯示實(shí)際測量值,下面一排顯示設(shè)定值;4個(gè)按鍵分別是參數(shù)設(shè)定鍵、增加鍵、減少鍵、回車鍵;還有2個(gè)發(fā)光二級管,紅色的是電源指示燈,綠色的是控制輸出,還有2個(gè)報(bào)警燈,可根據(jù)需要設(shè)定為高限報(bào)警和低限報(bào)警。控制器的輸入輸出主要包括信號的變換及放大,輸入輸出較為復(fù)雜一些,下面介紹。
輸入采用萬能輸入,一般蒸餾過程的控制量主要是溫度、壓力等,對于溫度信號,測量溫度儀表的輸出信號有熱電阻、熱電偶、0~10 V、或者 4~20 mA的標(biāo)準(zhǔn)電流信號等幾種輸入,壓力一般是4~20 mA、0~10 V信號。由于工業(yè)上一般采用三線制熱電阻輸入,就需要的輸入端子數(shù)來說最多的是熱電阻信號,所以萬能輸入的端子數(shù)是3個(gè)。如何在3個(gè)端子上可以實(shí)現(xiàn)熱電阻、熱電偶、0~10 V、4~20 mA信號的輸入,是萬能輸入電路需要解決的問題。具體實(shí)現(xiàn)的方案本質(zhì)上就是通過多路轉(zhuǎn)換來實(shí)現(xiàn),具體實(shí)現(xiàn)有電子的轉(zhuǎn)換開關(guān)如CD4052,ADG801/802,機(jī)械式的撥碼開關(guān),放大倍數(shù)的切換通過CD4052,ADG801/802來實(shí)現(xiàn);如果輸入的是熱電偶信號,溫度補(bǔ)償可通過三極管的集電極和基極短接作為二極管來實(shí)現(xiàn)的,用三極管主要是考慮這種補(bǔ)償效果比二級管效果好。具體實(shí)現(xiàn)的電路可以有好幾種,根據(jù)實(shí)際可能碰到的輸入信號形式來具體選擇。
本產(chǎn)品根據(jù)實(shí)際情況出發(fā),采用4~20 mA和三線制熱電阻輸入,由于要在4~20 mA和熱電阻信號之間進(jìn)行切換,模擬開關(guān)要選擇導(dǎo)通電流大的,導(dǎo)通電阻小的,這種情況要選擇ADG801/802,這款模擬開關(guān)與CD4052比,導(dǎo)通電流大并且導(dǎo)通電阻小足以滿足需求,AG801與ADG802的區(qū)別是輸入邏輯信號是相反的。經(jīng)過電路變換后的電壓直接接入STM32F407的15引腳ADC123_IN10。具體實(shí)現(xiàn)如圖1所示。
圖1 控制器輸入Fig.1 Input of controllor
圖中 K1、K2、K3、K4、K5、K6、K7、K12選 ADG801,K8、K9、K10、K11選ADG802, 用一個(gè)引腳控制這些開關(guān),即把所有這些開關(guān)都連接到一個(gè)邏輯輸出引腳上,當(dāng)為高電平時(shí)代表熱電阻輸入,低電平時(shí)代表4~20 mA輸入。一個(gè)引腳控制所有開關(guān)也實(shí)現(xiàn)了互鎖,這是由于ADG801/ADG802輸入邏輯相反,2個(gè)輸入電路只有1個(gè)有效。
控制器的輸出采用4~20 mA輸出,由于微處理器的D/A轉(zhuǎn)換輸出時(shí)電壓信號,這就需要一個(gè)電壓到電流轉(zhuǎn)換的電路,電路的電壓信號取自STM32F407的29引腳DAC_OUT1,具體實(shí)現(xiàn)如圖2所示。
圖2 控制器輸出Fig.2 Output of controllor
廠家已經(jīng)把這款芯片的UCOSIII移植到這款SoC芯片上了,只要參考對應(yīng)的程序,把沒有的外設(shè)加到操作系統(tǒng)上就可以了,具體過程略。
UCOSIII這種操作系統(tǒng)有基于時(shí)間片輪轉(zhuǎn)的調(diào)度策略,對于熟悉PLC或者DCS的人來說基于這種調(diào)度編程比較容易上手,基于時(shí)間片就是每隔1個(gè)固定時(shí)間就執(zhí)行一次時(shí)間片內(nèi)的任務(wù),整個(gè)程序由不同時(shí)間片的任務(wù)組成。根據(jù)實(shí)際經(jīng)驗(yàn),GPC算法可以在5 min的時(shí)間片內(nèi),即GPC采樣周期設(shè)為5 min,PID在1 min左右的時(shí)間片,及PID采樣周期設(shè)為1 min,顯示單位任務(wù)在30 s時(shí)間片任務(wù)內(nèi),采樣任務(wù)安排在30 s的任務(wù)內(nèi)。系統(tǒng)啟動(dòng)流程如圖3所示。
圖3 軟件系統(tǒng)的啟動(dòng)流程Fig.3 Start of software system
由于蒸餾過程隨著產(chǎn)品和組分的不同,相應(yīng)的回流比也是不一樣的,同時(shí)系統(tǒng)的動(dòng)態(tài)模型也是不一樣的,并且控制系統(tǒng)有時(shí)滯,對于要求較高的蒸餾單元操作常規(guī)的串級控制,往往不能滿足需求。為了適應(yīng)這種模型參數(shù)的不確定,蒸餾過程采用廣義預(yù)測控制加PID控制,組成GPC-PID串級控制。GPC算法執(zhí)行的時(shí)間間隔大于PID算法。此算法不但能利用當(dāng)前及過去時(shí)刻的系統(tǒng)輸出而且能利用將來時(shí)刻的預(yù)測輸出來進(jìn)行控制,對于系統(tǒng)的時(shí)滯有較好的抑制,控制精度和系統(tǒng)的抗干擾性都有較好的提高,算法要先辨識出系統(tǒng)模型,再根據(jù)變化的數(shù)學(xué)參數(shù)設(shè)計(jì)控制器,由于模型實(shí)時(shí)變化,控制器也是根據(jù)這個(gè)變化在線實(shí)時(shí)做相應(yīng)改變。同時(shí)底層也采用了PID算法,這種算法適應(yīng)能力強(qiáng),魯棒性好,GPC-PID串級控制算法,充分發(fā)揮先進(jìn)控制算法和常規(guī)的算法的優(yōu)勢。蒸餾過程的被控量是塔底溫度,副對象是流量,如圖4所示。
圖4 蒸餾塔廣義預(yù)測串級控制Fig.4 Cascade control system of distillation tower
系統(tǒng)模型采用CARIMA模型[5](受控自回歸積分滑動(dòng)平均模型),即:
各項(xiàng)系數(shù) ai(1≤i≤na),bi(0≤i≤nb),ci(1≤i≤nc)為過程需要辨識的參數(shù)?;诖思訜徇^程不是很復(fù)雜取 na=2,即:A(z-1)=1+a1z-1+a2z-2;除 b3,b4外,其余涉及 b 的系數(shù)都為 0,即:B(z-1)=bcz-3+b4z-4,系統(tǒng)時(shí)滯為 3 個(gè)采用周期即為 3 min,d=3;C(z-1)=1。算法流程如圖5所示。
圖5 廣義預(yù)測算法流程Fig.5 Algorithm of general predictive control
具體廣義預(yù)測算法如下:
已知:na、nb及 d。
步驟 1設(shè)置初值和 P(0),輸入初始數(shù)據(jù),并設(shè)置控制參數(shù) N、N1、N2、Nu,以及控制加權(quán)矩陣、輸出柔化系數(shù) α、遺忘因子 λ 等;其中估計(jì)參數(shù)列向量的初值取初值 0,P(0)=106I,N1=3,N2=N=4;Nu=4,控制加權(quán)矩陣取單位陣,階次為4,輸出柔化系數(shù)α=0.7,遺忘因子λ=1;
步驟2采樣當(dāng)前實(shí)際輸出y(k)和參考規(guī)矩輸出 yr(k+j);
參考輸出取為
式中,ω為溫度設(shè)定值,這個(gè)需要根據(jù)工藝條件給定。
步驟3利用遺忘因子遞推最小二乘法[6]:
即在線實(shí)時(shí)估計(jì)被控對象參數(shù)θ^,A^、B^;
步驟4求解Diophanine方程:
解出多項(xiàng)式 Ej、Gj和 Fj;
步驟 5構(gòu)造向量 Yr、ΔU(k-j)、Y(k)及矩陣G、F1、F2:
為過去的控制向量;
步驟 6利用式
u(k)=u(k-1)+Δu(k)
計(jì)算出 u(k);
步驟7返回Step2(k→k+1),繼續(xù)循環(huán)。
蒸餾過程一般用調(diào)節(jié)閥控制流量,采用位置式PID,但是對于控制器計(jì)算來說采用增量式,最后再轉(zhuǎn)換成位置式PID,具體算法如下:
步驟1計(jì)算控制增量Δuk:
步驟 2計(jì)算 uk:uk=uk-1+Δuk
式中:uk、uk-1、Δuk分別為當(dāng)前時(shí)刻和前一時(shí)刻的控制輸出及當(dāng)前時(shí)刻的控制器增量;ek、ek-1、ek-2分別為前一時(shí)刻,和前兩時(shí)刻的設(shè)定值與實(shí)際測量值之差。
通過設(shè)計(jì)廣義預(yù)測控制器,在UCOSIII上實(shí)現(xiàn)GPC-PID串級控制算法,能夠?qū)崟r(shí)辨識蒸餾過程的動(dòng)態(tài)系統(tǒng)模型,從而根據(jù)新的模型動(dòng)態(tài)調(diào)整控制器算法。在控制蒸餾過程的實(shí)際應(yīng)用中,由于廣義預(yù)測控制器在設(shè)計(jì)控制器時(shí)不但考慮了系統(tǒng)過去和當(dāng)前的狀態(tài)信息而且考慮了系統(tǒng)未來輸出,所以能更好地抑制系統(tǒng)由于反應(yīng)過程產(chǎn)生的模型參數(shù)改變帶來的擾動(dòng),而且對于模型參數(shù)較大范圍的改變也能夠得到很好的控制效果,而常規(guī)PID控制對于較大范圍的參數(shù)擾動(dòng)可能會(huì)失效,或者產(chǎn)生不穩(wěn)定現(xiàn)象,此種控制較常規(guī)的PID控制更能適應(yīng)參數(shù)的改變,控制效果更好。在實(shí)際應(yīng)用中,由于這種控制器算法本身能夠自動(dòng)辨識系統(tǒng)的參數(shù),其參數(shù)調(diào)整能自動(dòng)完成,不需要人工干預(yù),適應(yīng)性更強(qiáng),這種控制器成本低、效果好、可維護(hù)性比較高、易于實(shí)現(xiàn),對于小系統(tǒng)或者小的實(shí)驗(yàn)室系統(tǒng),及對于控制要求又比較高的情況非常適用,具有很好的推廣價(jià)值。
[1]Filatov N M,Unbehauen H.Survey of adaptive dual control methods[J].IEEE Proc.Control Theory Appl,2000,147(1):118-128.
[2]Witenmark B.Stochastic adaptive control methods:A survey[J].International Journal of Control,1975,21(21):705-730.
[3]OPC foundation.OPC Data Access Custom Interface Specification 3.0[M],2003
[4]龐中華,崔紅.系統(tǒng)辨識與自適應(yīng)控制MATLAB仿真[M].北京:北京航空航天大學(xué)出版社,2009.
[5]韓曾晉.自適應(yīng)控制[M].北京:清華大學(xué)出版社,1995.
[6]Astrom KJ,Wttenmark B.Adaptive Control[M].北京:科學(xué)出 版社,2003.