劉勇,周振華,厲昂,谷雪冬,張金祥
國電電力大連莊河發電有限責任公司,遼寧大連 116431
計算機技術突飛猛進的發展,帶動了標準的工業計算軟件技術的變革,在此背景下,新的工業控制系統正以硬件平臺構成的集成取代傳統的封閉式系統。占據工業控制領域主導地位的上位機(PC 機)具有廣闊的市場前景,同時帶動了組態軟件的發展。在實際操作的控制系統中,Windows 系統下的組態軟件,如組態王(KINGVIEW)為控制系統提供了強大的人機界面和通信功能。本文設計了一個基于組態王的水箱液位前饋反饋控制系統,既發揮了前饋作用及時克服主要擾動對被控量影響的優點,又保持了反饋控制能克服多個擾動影響的特點,從而實現水箱液位的前饋反饋控制。系統實時監控水箱液位數值,確保系統運行的穩定性,同時提高控制的準確性。
水箱液位定值控制的前饋反饋控制器由組態王組成。組態王負責數據采集、輸出控制量和對整個控制過程的監控。水箱液位前饋反饋控制的硬件系統主要包括A3000 過程控制系統、百特表、壓力傳感器、電動調節閥和計算機[1-2]。A3000 現場系統是一種基于現場總線的過程控制系統,通過連接液位傳感器、壓力傳感器等外部設備的I/O 模塊,實時采集各種過程參數的數據,如圖1 所示。

A3000 過程控制系統實現了多個控制系統的連接和協同工作,同時通過網關系統與不同類型的設備進行連接,以實現全面的控制和監控,系統結構如圖2所示。

水箱液位前饋反饋控制的軟件系統采用的是北京某公司生產的組態王和MATLAB。
基于組態王的單容水箱液位前饋反饋控制系統里,組態王負責接收從采樣設備傳來的液位采樣值,同時把控制量傳遞給調節閥,并負責對整個控制過程的監控。建模對系統進行仿真的過程采用數學應用軟件MATLAB 來得以實現[3]。控制邏輯如圖3 所示。

在本設計中,定值需要保持水箱液位,主要擾動量是流量,對其進行前饋控制,被控變量是水箱液位,對其進行反饋控制。
綜上所述,用組態王軟件實現系統的控制功能,通過設計流量—液位的前饋反饋控制方法,實現實驗室的過程控制同步實驗。
在組態王軟件中建立新工程,選擇一個工作目錄,用于存儲工程所需的各種文件和數據,包括圖形界面設計文件、數據采集配置文件、控制邏輯腳本文件等。通過工作目錄來進行文件管理可以使系統更加有序和高效。
在組態王軟件中,IO 設備通常包括下位機(PLC、儀表、模塊、板卡、變頻器等)和通過網絡連接的其他計算機。通過與組態王軟件進行連接和交互,下位機可以接收來自軟件的控制指令,并向軟件反饋設備狀態、測量數據等信息。為方便定義和配置外部設備,組態王軟件提供了“設備配置向導”,通過該向導,用戶可以一步步完成設備的連接和配置。
在組態界面的開發過程中,定義變量是非常重要的一步。通過定義變量,可以在組態界面中實現對數據的傳遞和管理。定義變量是組態界面開發中的基礎步驟,通過合理定義和使用變量,可以實現界面的功能和交互效果。圖4 為變量“fmtov1”的信息總結列表。

在組態王軟件的操控界面瀏覽器左側選擇大綱項中的“文件畫面”雙擊“新建”圖標,彈出新建的操作界面,在開發系統中利用工具箱進行組態畫面的設置,選擇相應的屬性后,確定結果顯示出組態畫面,如圖5 所示。

建立變量 "fmtov" 的動畫連接并設計模擬數值,模擬數值確定后,界面出現輸出對話框,如圖6 所示。在實際運行時,確保動畫連接與實際變量的數值同步更新,確保顯示的數據準確反映變量的狀態。

點擊操作界面菜單上的編輯命令,點擊屬性,選擇命令語言,此時操作者在窗口編輯畫面中編輯命令語言,進行上位機和下位機之間數據傳遞。在本文的設計中,為了將采樣液位最終傳遞到MATLAB,同時將MATLAB 計算出的控制量最終傳遞到電動調節閥,需要輸入的命令語言為:fvtom =測量值a;過程值b=fmtov;其編輯窗口如圖7 所示。

通過以上4 個步驟,組態王就可以利用定義的變量與百特表交換數據,同時利用設計的組態畫面對整個過程進行監控。
在負載干擾量變化的測量中,采用前饋控制策略實時抵消干擾并保持被調量穩定。在實時控制中,前饋控制的主要目的是通過提前獲得和處理干擾信號來提高控制系統的抗干擾能力。通過計算出的校正值來確定按照某種物質或能量平衡所需的條件。在穩態時,通過測量系統的擾動干擾,計算出校正值來補償這些干擾。通過前饋控制和校正值的應用,有效地抵消負載干擾,維持被調量的穩定性,并滿足系統所需的條件。
前饋—反饋控制系統原理圖如圖8 所示,用兩個水泵注水,設法保持下水箱液位。

系統經過計算測量得出干擾數值,一旦支路發生干擾動作,系統不通過調節器直接進行補償,動作指令傳達另一支路,通過對調節閥開度做以調整與其相互匹配。
系統在執行命令動作過程中,如果遇到開環控制,系統存在余差并且無反饋,增加反饋通道,使用PI 進行控制。
圖9 為前饋反饋控制系統圖,此系統為復合系統,由反饋回路和開環補償回路相互疊加產生。在擾動F(s)作用下,系統輸出為:
其中,Y(s)表示系統的輸出信號,是系統對輸入和擾動的響應結果;F(s)表示擾動的輸入信號,是系統受到的外部干擾或變化;Wf(s)表示開環補償回路的傳遞函數,用于對輸入信號F(s)進行補償,以抵消擾動的影響;Wm(s)表示開環補償回路和反饋回路之間的傳遞函數,用于調節開環補償和反饋之間的相互作用;Wo(s)表示反饋回路的傳遞函數,將系統的輸出Y(s)反饋到系統輸入中,以實現對系統性能的控制和優化;Wc(s)表示反饋回路和系統輸出之間的傳遞函數,用于調節反饋和系統輸出之間的相互作用。

在公式(1)中,開環補償回路的傳遞函數Wf(s)和Wm(s)抵消擾動的作用,通過對F(s)進行補償和調節,以最小化干擾對系統輸出的影響;而反饋回路的傳遞函數Wo(s)和Wc(s)則負責對系統的輸出進行校正和調節,以確保系統輸出Y(s)穩定且符合要求。通過公式中各個變量的相互作用和調節,該復合系統能夠同時利用開環補償和反饋控制來抵消擾動,優化系統性能,并實現對系統輸出的穩定和控制。
擾動量F(s)對被控量Y(s)的影響:Wm(s)Wo(s)F(s)是前饋控制作用;Wc(s)Wo(s)Y(s)是反饋控制作用。
在給定X(s)作用下,系統輸出為:
在擾動和給定作用下,系統輸出為:
3.2.1 前饋補償
加前饋是為了消除擾動對系統影響,即:
所以,
3.2.2 反饋補償
PID 控制器的輸出值v(t)取決于系統給定值r(t)和系統輸出值y(t)的偏差e(t)、偏差的積分、偏差的微分的線性加權組合,即:
其中,TI表示積分時間常數;TD表示微分時間常數;KP表示比例系數;表示積分系數;KD=KPTD表示微分系數;變量dt定義了時間間隔或采樣周期,用于離散化PID 控制,通常,dt表示兩次控制信號計算之間的時間差。
位置式PID 控制算法:
其中,偏差e(k)是指系統給定值和輸出值的差異,k表示離散時間步長,位置式PID 控制算法根據偏差的累積誤差(積分項)和最近兩個采樣時刻的偏差變化率(微分項);KP表示比例增益,用于調整根據偏差計算的控制輸出的幅度;KI表示積分增益,用于調整根據偏差累積誤差計算的控制輸出的幅度;KD表示微分增益,用于調整根據偏差變化率計算的控制輸出的幅度。
在該算法中,偏差e(k)通過比例增益進行反饋,誤差的累積和通過積分增益進行反饋,偏差變化率通過微分增益進行反饋。這樣的組合可以綜合利用偏差、偏差累積誤差和偏差變化率,從而更好地調節控制輸出。
增量式PID 控制算法:
反饋補償是指通過對系統的輸出值與給定值之間的偏差進行測量和調節,以實現對系統的控制和優化。在PID 控制器中,反饋補償是通過比例、積分和微分的線性加權組合來實現的。在位置式PID 控制算法中,PID 控制器的輸出值v(t)取決于偏差e(t)、偏差的積分和偏差的微分的線性加權組合。比例系數KP控制著偏差的比例部分,積分系數TI控制著偏差的積分部分,微分系數KD=KPTD控制著偏差的微分部分,用于計算PID 控制器的輸出,以調節系統的控制量,使其接近給定值。在增量式PID 控制算法中,PID 控制器的輸出值Δu(k)通過當前控制量u(k)與上一時刻的控制量u(k-1)之間的差值表示。這種算法主要用于離散時間的控制系統,在每個采樣周期中根據當前偏差和歷史控制量的變化來更新控制器的輸出。以上為前饋反饋補償的實現基礎,編輯程序,運行后得到仿真圖10 ~12。
圖10 為系統偏差,即給定液位與實際液位的差值,可以看到,液位很快達到給定值。
前饋控制量是基于前饋補償而得出的對調節器的控制量,由于仿真輸入的給定量為正弦信號,所以補償作用也隨之變化,圖11 中藍線為前饋控制量。
反饋補償起作用是由于系統在初始設定的給定值與系統輸出存有偏差,對調節器的控制量進行反饋補償,若系統無偏差,說明給定值與系統輸出數值一致,沒有反饋控制量。圖11 中黑線為無反饋控制量,數值為0。
合控制量即前饋反饋補償對調節器的最終作用量。開始時,由于給定值與系統輸出有偏差,加上在前饋作用下,導致合控制量比較大,當無反饋控制量時,系統合控制量即為前饋控制量,故與前饋控制量重合,圖11 中紅線為合控制量。
仿真時,參考輸入量為正弦信號,主要觀察輸出跟隨輸入情況,由圖12 可知,開始時,輸出與輸入存在偏差,通過調節,輸出值與輸入值相等,曲線重合,即輸出可以有效跟蹤輸入。
為了使系統設計達到最佳效果,需要輸入不同測試數值進行實驗比對,以便更好地顯示出水箱控制液位[4-5]。
調試過程的一般步驟如下:
(1)在A3000-FS 上,打開手動調節閥JV104、JV103、1#電磁閥、JV201、JV206,其余閥門關閉;
(2)在A3000-CS 上,電磁流量計輸出的流量與AI2 進行匹配,渦輪流量計輸出的流量與AI0 進行匹配;下水箱液位連接到A11;AO0 連接到電動調節閥(FV101);
(3)打開A3000 電源,在A3000-FS 上,啟動左邊水泵和右邊水泵,左邊水泵使用變頻器控制;
(4)啟動計算機組態軟件,點擊進入工程式,進行水箱液位的前饋反饋控制;



(5)進入組態王的運行環境;
(6)控制液位由啟動調節器來設置,在組態王監控操作界面中,通過顯示屏的水位視圖,多次輸入參數變化進行調節,最終達到最佳控制效果。
將實際控制效果與預期的控制效果進行比較。調試過程中注意逐步調整參數,觀察每次調整的效果,同時掌握合適的參數范圍,以避免不穩定或不可控的控制結果[6-7]。最佳控制參數程序如下:
%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 時的控制效果圖。可以看出,系統控制效果良好,基本能夠滿足系統設計所要求的各項指標。

水箱液位前饋反饋控制器是基于組態王實現的,充分發揮組態王可視化、易操作的優點,達到比較好的控制效果。組態王中開發組態界面包含IO 設備的定義、數據庫的建立、監控畫面的設計以及動畫連接的實現。本文采用MATLAB 編輯前饋反饋控制算法進行仿真,經反復對比實驗得出前饋反饋控制算法的最佳參數。其控制曲線結果表明,系統具有很好的控制效果,達到預期指標。整套水箱液位前饋反饋控制原理簡單,編程容易。采用前饋反饋控制,使系統能在擾動出現時就進行控制,從而更有效地消除擾動對被控參數的影響,提高生產效率,減少大量的人力、物力,有利于降低生產成本。在控制復雜的工業過程時,尤其是在需要同時控制多個變量時,利用MATLAB 與組態王的組合使用,進行復雜的數學計算,方便實現對各個變量的控制,將其應用到實際的工業生產過程,具有較好的社會效益和商業價值。