劉勇,周振華,厲昂,谷雪冬,張金祥
國電電力大連莊河發(fā)電有限責任公司,遼寧大連 116431
計算機技術(shù)突飛猛進的發(fā)展,帶動了標準的工業(yè)計算軟件技術(shù)的變革,在此背景下,新的工業(yè)控制系統(tǒng)正以硬件平臺構(gòu)成的集成取代傳統(tǒng)的封閉式系統(tǒng)。占據(jù)工業(yè)控制領(lǐng)域主導地位的上位機(PC 機)具有廣闊的市場前景,同時帶動了組態(tài)軟件的發(fā)展。在實際操作的控制系統(tǒng)中,Windows 系統(tǒng)下的組態(tài)軟件,如組態(tài)王(KINGVIEW)為控制系統(tǒng)提供了強大的人機界面和通信功能。本文設計了一個基于組態(tài)王的水箱液位前饋反饋控制系統(tǒng),既發(fā)揮了前饋作用及時克服主要擾動對被控量影響的優(yōu)點,又保持了反饋控制能克服多個擾動影響的特點,從而實現(xiàn)水箱液位的前饋反饋控制。系統(tǒng)實時監(jiān)控水箱液位數(shù)值,確保系統(tǒng)運行的穩(wěn)定性,同時提高控制的準確性。
水箱液位定值控制的前饋反饋控制器由組態(tài)王組成。組態(tài)王負責數(shù)據(jù)采集、輸出控制量和對整個控制過程的監(jiān)控。水箱液位前饋反饋控制的硬件系統(tǒng)主要包括A3000 過程控制系統(tǒng)、百特表、壓力傳感器、電動調(diào)節(jié)閥和計算機[1-2]。A3000 現(xiàn)場系統(tǒng)是一種基于現(xiàn)場總線的過程控制系統(tǒng),通過連接液位傳感器、壓力傳感器等外部設備的I/O 模塊,實時采集各種過程參數(shù)的數(shù)據(jù),如圖1 所示。
A3000 過程控制系統(tǒng)實現(xiàn)了多個控制系統(tǒng)的連接和協(xié)同工作,同時通過網(wǎng)關(guān)系統(tǒng)與不同類型的設備進行連接,以實現(xiàn)全面的控制和監(jiān)控,系統(tǒng)結(jié)構(gòu)如圖2所示。
水箱液位前饋反饋控制的軟件系統(tǒng)采用的是北京某公司生產(chǎn)的組態(tài)王和MATLAB。
基于組態(tài)王的單容水箱液位前饋反饋控制系統(tǒng)里,組態(tài)王負責接收從采樣設備傳來的液位采樣值,同時把控制量傳遞給調(diào)節(jié)閥,并負責對整個控制過程的監(jiān)控。建模對系統(tǒng)進行仿真的過程采用數(shù)學應用軟件MATLAB 來得以實現(xiàn)[3]??刂七壿嬋鐖D3 所示。
在本設計中,定值需要保持水箱液位,主要擾動量是流量,對其進行前饋控制,被控變量是水箱液位,對其進行反饋控制。
綜上所述,用組態(tài)王軟件實現(xiàn)系統(tǒng)的控制功能,通過設計流量—液位的前饋反饋控制方法,實現(xiàn)實驗室的過程控制同步實驗。
在組態(tài)王軟件中建立新工程,選擇一個工作目錄,用于存儲工程所需的各種文件和數(shù)據(jù),包括圖形界面設計文件、數(shù)據(jù)采集配置文件、控制邏輯腳本文件等。通過工作目錄來進行文件管理可以使系統(tǒng)更加有序和高效。
在組態(tài)王軟件中,IO 設備通常包括下位機(PLC、儀表、模塊、板卡、變頻器等)和通過網(wǎng)絡連接的其他計算機。通過與組態(tài)王軟件進行連接和交互,下位機可以接收來自軟件的控制指令,并向軟件反饋設備狀態(tài)、測量數(shù)據(jù)等信息。為方便定義和配置外部設備,組態(tài)王軟件提供了“設備配置向?qū)А?,通過該向?qū)В脩艨梢砸徊讲酵瓿稍O備的連接和配置。
在組態(tài)界面的開發(fā)過程中,定義變量是非常重要的一步。通過定義變量,可以在組態(tài)界面中實現(xiàn)對數(shù)據(jù)的傳遞和管理。定義變量是組態(tài)界面開發(fā)中的基礎(chǔ)步驟,通過合理定義和使用變量,可以實現(xiàn)界面的功能和交互效果。圖4 為變量“fmtov1”的信息總結(jié)列表。
在組態(tài)王軟件的操控界面瀏覽器左側(cè)選擇大綱項中的“文件畫面”雙擊“新建”圖標,彈出新建的操作界面,在開發(fā)系統(tǒng)中利用工具箱進行組態(tài)畫面的設置,選擇相應的屬性后,確定結(jié)果顯示出組態(tài)畫面,如圖5 所示。
建立變量 "fmtov" 的動畫連接并設計模擬數(shù)值,模擬數(shù)值確定后,界面出現(xiàn)輸出對話框,如圖6 所示。在實際運行時,確保動畫連接與實際變量的數(shù)值同步更新,確保顯示的數(shù)據(jù)準確反映變量的狀態(tài)。
點擊操作界面菜單上的編輯命令,點擊屬性,選擇命令語言,此時操作者在窗口編輯畫面中編輯命令語言,進行上位機和下位機之間數(shù)據(jù)傳遞。在本文的設計中,為了將采樣液位最終傳遞到MATLAB,同時將MATLAB 計算出的控制量最終傳遞到電動調(diào)節(jié)閥,需要輸入的命令語言為:fvtom =測量值a;過程值b=fmtov;其編輯窗口如圖7 所示。
通過以上4 個步驟,組態(tài)王就可以利用定義的變量與百特表交換數(shù)據(jù),同時利用設計的組態(tài)畫面對整個過程進行監(jiān)控。
在負載干擾量變化的測量中,采用前饋控制策略實時抵消干擾并保持被調(diào)量穩(wěn)定。在實時控制中,前饋控制的主要目的是通過提前獲得和處理干擾信號來提高控制系統(tǒng)的抗干擾能力。通過計算出的校正值來確定按照某種物質(zhì)或能量平衡所需的條件。在穩(wěn)態(tài)時,通過測量系統(tǒng)的擾動干擾,計算出校正值來補償這些干擾。通過前饋控制和校正值的應用,有效地抵消負載干擾,維持被調(diào)量的穩(wěn)定性,并滿足系統(tǒng)所需的條件。
前饋—反饋控制系統(tǒng)原理圖如圖8 所示,用兩個水泵注水,設法保持下水箱液位。
系統(tǒng)經(jīng)過計算測量得出干擾數(shù)值,一旦支路發(fā)生干擾動作,系統(tǒng)不通過調(diào)節(jié)器直接進行補償,動作指令傳達另一支路,通過對調(diào)節(jié)閥開度做以調(diào)整與其相互匹配。
系統(tǒng)在執(zhí)行命令動作過程中,如果遇到開環(huán)控制,系統(tǒng)存在余差并且無反饋,增加反饋通道,使用PI 進行控制。
圖9 為前饋反饋控制系統(tǒng)圖,此系統(tǒng)為復合系統(tǒng),由反饋回路和開環(huán)補償回路相互疊加產(chǎn)生。在擾動F(s)作用下,系統(tǒng)輸出為:
其中,Y(s)表示系統(tǒng)的輸出信號,是系統(tǒng)對輸入和擾動的響應結(jié)果;F(s)表示擾動的輸入信號,是系統(tǒng)受到的外部干擾或變化;Wf(s)表示開環(huán)補償回路的傳遞函數(shù),用于對輸入信號F(s)進行補償,以抵消擾動的影響;Wm(s)表示開環(huán)補償回路和反饋回路之間的傳遞函數(shù),用于調(diào)節(jié)開環(huán)補償和反饋之間的相互作用;Wo(s)表示反饋回路的傳遞函數(shù),將系統(tǒng)的輸出Y(s)反饋到系統(tǒng)輸入中,以實現(xiàn)對系統(tǒng)性能的控制和優(yōu)化;Wc(s)表示反饋回路和系統(tǒng)輸出之間的傳遞函數(shù),用于調(diào)節(jié)反饋和系統(tǒng)輸出之間的相互作用。
在公式(1)中,開環(huán)補償回路的傳遞函數(shù)Wf(s)和Wm(s)抵消擾動的作用,通過對F(s)進行補償和調(diào)節(jié),以最小化干擾對系統(tǒng)輸出的影響;而反饋回路的傳遞函數(shù)Wo(s)和Wc(s)則負責對系統(tǒng)的輸出進行校正和調(diào)節(jié),以確保系統(tǒng)輸出Y(s)穩(wěn)定且符合要求。通過公式中各個變量的相互作用和調(diào)節(jié),該復合系統(tǒng)能夠同時利用開環(huán)補償和反饋控制來抵消擾動,優(yōu)化系統(tǒng)性能,并實現(xiàn)對系統(tǒng)輸出的穩(wěn)定和控制。
擾動量F(s)對被控量Y(s)的影響:Wm(s)Wo(s)F(s)是前饋控制作用;Wc(s)Wo(s)Y(s)是反饋控制作用。
在給定X(s)作用下,系統(tǒng)輸出為:
在擾動和給定作用下,系統(tǒng)輸出為:
3.2.1 前饋補償
加前饋是為了消除擾動對系統(tǒng)影響,即:
所以,
3.2.2 反饋補償
PID 控制器的輸出值v(t)取決于系統(tǒng)給定值r(t)和系統(tǒng)輸出值y(t)的偏差e(t)、偏差的積分、偏差的微分的線性加權(quán)組合,即:
其中,TI表示積分時間常數(shù);TD表示微分時間常數(shù);KP表示比例系數(shù);表示積分系數(shù);KD=KPTD表示微分系數(shù);變量dt定義了時間間隔或采樣周期,用于離散化PID 控制,通常,dt表示兩次控制信號計算之間的時間差。
位置式PID 控制算法:
其中,偏差e(k)是指系統(tǒng)給定值和輸出值的差異,k表示離散時間步長,位置式PID 控制算法根據(jù)偏差的累積誤差(積分項)和最近兩個采樣時刻的偏差變化率(微分項);KP表示比例增益,用于調(diào)整根據(jù)偏差計算的控制輸出的幅度;KI表示積分增益,用于調(diào)整根據(jù)偏差累積誤差計算的控制輸出的幅度;KD表示微分增益,用于調(diào)整根據(jù)偏差變化率計算的控制輸出的幅度。
在該算法中,偏差e(k)通過比例增益進行反饋,誤差的累積和通過積分增益進行反饋,偏差變化率通過微分增益進行反饋。這樣的組合可以綜合利用偏差、偏差累積誤差和偏差變化率,從而更好地調(diào)節(jié)控制輸出。
增量式PID 控制算法:
反饋補償是指通過對系統(tǒng)的輸出值與給定值之間的偏差進行測量和調(diào)節(jié),以實現(xiàn)對系統(tǒng)的控制和優(yōu)化。在PID 控制器中,反饋補償是通過比例、積分和微分的線性加權(quán)組合來實現(xiàn)的。在位置式PID 控制算法中,PID 控制器的輸出值v(t)取決于偏差e(t)、偏差的積分和偏差的微分的線性加權(quán)組合。比例系數(shù)KP控制著偏差的比例部分,積分系數(shù)TI控制著偏差的積分部分,微分系數(shù)KD=KPTD控制著偏差的微分部分,用于計算PID 控制器的輸出,以調(diào)節(jié)系統(tǒng)的控制量,使其接近給定值。在增量式PID 控制算法中,PID 控制器的輸出值Δu(k)通過當前控制量u(k)與上一時刻的控制量u(k-1)之間的差值表示。這種算法主要用于離散時間的控制系統(tǒng),在每個采樣周期中根據(jù)當前偏差和歷史控制量的變化來更新控制器的輸出。以上為前饋反饋補償?shù)膶崿F(xiàn)基礎(chǔ),編輯程序,運行后得到仿真圖10 ~12。
圖10 為系統(tǒng)偏差,即給定液位與實際液位的差值,可以看到,液位很快達到給定值。
前饋控制量是基于前饋補償而得出的對調(diào)節(jié)器的控制量,由于仿真輸入的給定量為正弦信號,所以補償作用也隨之變化,圖11 中藍線為前饋控制量。
反饋補償起作用是由于系統(tǒng)在初始設定的給定值與系統(tǒng)輸出存有偏差,對調(diào)節(jié)器的控制量進行反饋補償,若系統(tǒng)無偏差,說明給定值與系統(tǒng)輸出數(shù)值一致,沒有反饋控制量。圖11 中黑線為無反饋控制量,數(shù)值為0。
合控制量即前饋反饋補償對調(diào)節(jié)器的最終作用量。開始時,由于給定值與系統(tǒng)輸出有偏差,加上在前饋作用下,導致合控制量比較大,當無反饋控制量時,系統(tǒng)合控制量即為前饋控制量,故與前饋控制量重合,圖11 中紅線為合控制量。
仿真時,參考輸入量為正弦信號,主要觀察輸出跟隨輸入情況,由圖12 可知,開始時,輸出與輸入存在偏差,通過調(diào)節(jié),輸出值與輸入值相等,曲線重合,即輸出可以有效跟蹤輸入。
為了使系統(tǒng)設計達到最佳效果,需要輸入不同測試數(shù)值進行實驗比對,以便更好地顯示出水箱控制液位[4-5]。
調(diào)試過程的一般步驟如下:
(1)在A3000-FS 上,打開手動調(diào)節(jié)閥JV104、JV103、1#電磁閥、JV201、JV206,其余閥門關(guān)閉;
(2)在A3000-CS 上,電磁流量計輸出的流量與AI2 進行匹配,渦輪流量計輸出的流量與AI0 進行匹配;下水箱液位連接到A11;AO0 連接到電動調(diào)節(jié)閥(FV101);
(3)打開A3000 電源,在A3000-FS 上,啟動左邊水泵和右邊水泵,左邊水泵使用變頻器控制;
(4)啟動計算機組態(tài)軟件,點擊進入工程式,進行水箱液位的前饋反饋控制;
(5)進入組態(tài)王的運行環(huán)境;
(6)控制液位由啟動調(diào)節(jié)器來設置,在組態(tài)王監(jiān)控操作界面中,通過顯示屏的水位視圖,多次輸入?yún)?shù)變化進行調(diào)節(jié),最終達到最佳控制效果。
將實際控制效果與預期的控制效果進行比較。調(diào)試過程中注意逐步調(diào)整參數(shù),觀察每次調(diào)整的效果,同時掌握合適的參數(shù)范圍,以避免不穩(wěn)定或不可控的控制結(jié)果[6-7]。最佳控制參數(shù)程序如下:
%PID Feedforward Controler
clear all;
close all;
ts=0.001;
sys=tf(133,[1,25,0]);
dsys=c2d(sys,ts,'z');
[num,den]=tfdata(dsys,'v');
u_1=0;u_2=0;
y_1=0;y_2=0;
error_1=0;ei=0;
for k=1:1:1000
time(k)=k*ts;
A=0.5;F=3.0;
rin(k)=A*sin(F*2*pi*k*ts);
drin(k)=A*F*2*pi*cos(F*2*pi*k*ts);
ddrin(k)=-A*F*2*pi*F*2*pi*sin(F*2*pi*k*ts);
%Linear model
yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;
error(k)=rin(k)-yout(k);
ei=ei+error(k)*ts;
up(k)=80*error(k)+20*ei+2.0*(error(k)-error_1)/ts;
uf(k)=25/133*drin(k)+1/133*ddrin(k);
M=2;
if M==1%Only using PID
u(k)=up(k);
elseif M==2%PID+Feedforward
u(k)=up(k)+uf(k);
end
if u(k)>=10
u(k)=10;
end
if u(k)<=-10
u(k)=-10;
end
u_2=u_1;u_1=u(k);
y_2=y_1;y_1=yout(k);
error_1=error(k);
end
figure(1);
plot(time,rin,'r',time,yout,'b');
xlabel('time(s)');ylabel('rin,yout');
figure(2);
plot(time,error,'r');
xlabel('time(s)');ylabel('error');
figure(3);
plot(time,up,'k',time,uf,'b',time,u,'r');
xlabel('time(s)');ylabel('up,uf,u');
圖13 是15 cm 時的控制效果圖??梢钥闯?,系統(tǒng)控制效果良好,基本能夠滿足系統(tǒng)設計所要求的各項指標。
水箱液位前饋反饋控制器是基于組態(tài)王實現(xiàn)的,充分發(fā)揮組態(tài)王可視化、易操作的優(yōu)點,達到比較好的控制效果。組態(tài)王中開發(fā)組態(tài)界面包含IO 設備的定義、數(shù)據(jù)庫的建立、監(jiān)控畫面的設計以及動畫連接的實現(xiàn)。本文采用MATLAB 編輯前饋反饋控制算法進行仿真,經(jīng)反復對比實驗得出前饋反饋控制算法的最佳參數(shù)。其控制曲線結(jié)果表明,系統(tǒng)具有很好的控制效果,達到預期指標。整套水箱液位前饋反饋控制原理簡單,編程容易。采用前饋反饋控制,使系統(tǒng)能在擾動出現(xiàn)時就進行控制,從而更有效地消除擾動對被控參數(shù)的影響,提高生產(chǎn)效率,減少大量的人力、物力,有利于降低生產(chǎn)成本。在控制復雜的工業(yè)過程時,尤其是在需要同時控制多個變量時,利用MATLAB 與組態(tài)王的組合使用,進行復雜的數(shù)學計算,方便實現(xiàn)對各個變量的控制,將其應用到實際的工業(yè)生產(chǎn)過程,具有較好的社會效益和商業(yè)價值。