王宇紅 張娜娜
(中國石油大學(xué)(華東)信息與控制工程學(xué)院,山東 東營 257061)
Matlab具有強(qiáng)大的工具包,在Matlab中可以編寫各種復(fù)雜的先進(jìn)控制算法并進(jìn)行驗證,但這種驗證多基于仿真。為此,本文利用A3000過程實驗裝置和Profibus構(gòu)建了一個實驗平臺,將Matlab中的控制算法在實驗裝置上進(jìn)行了驗證。
Profibus是一種國際化的、開放的、不依賴于設(shè)備生產(chǎn)商的現(xiàn)場總線標(biāo)準(zhǔn),廣泛應(yīng)用于工業(yè)自動化。根據(jù)其應(yīng)用特點,Profibus分為Profibus-FMS、Profibus-DP和Profibus-PA三個兼容版本。Profibus-DP專為自動控制系統(tǒng)和設(shè)備級分散I/O之間的通信而設(shè)計,可取代24 V或0~20 mA并行信號線,也可用于分布式控制系統(tǒng)的高速數(shù)據(jù)傳輸,其傳輸速率可達(dá)12 Mbit/s,一般構(gòu)成單主站系統(tǒng)[1]。
本文運用Profibus的先進(jìn)性,利用西門子Simatic PCS7和Step7軟件對變頻器、ET200S輸入輸出模塊進(jìn)行了設(shè)備硬件組態(tài),實現(xiàn)了對A3000過程控制實驗裝置的數(shù)據(jù)采集與控制,構(gòu)建起了復(fù)雜算法驗證的實驗平臺。同時,結(jié)合OPC(OLE for process control)技術(shù),利用Step7軟件,實現(xiàn)了OPC Server,最終完成了Matlab與Profibus的結(jié)合。
ISO/OSI模型結(jié)構(gòu)分為7層,從下到上依次為物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表達(dá)層和應(yīng)用層,其中前4層面向網(wǎng)絡(luò),后3層面向用戶。Profibus協(xié)議采用了ISO/OSI模型的第1層和第2層,必要時還采用了第7層。第1層和第2層的導(dǎo)線和傳輸協(xié)議基于美國標(biāo)準(zhǔn)EIA RS-485、國際標(biāo)準(zhǔn)IEC 870-5-1和歐洲標(biāo)準(zhǔn)EN 60870-5-1??偩€存取程序、數(shù)據(jù)傳輸和管理服務(wù)基于DIN 19241標(biāo)準(zhǔn)的第1至第3部分和IEC 955標(biāo)準(zhǔn)[1]。
OPC技術(shù)在硬件供應(yīng)商和軟件開發(fā)商之間劃了一條明確的界限,為數(shù)據(jù)源的產(chǎn)生規(guī)定了一種機(jī)制,并為這些數(shù)據(jù)與任何客戶程序之間的通信提供了一種標(biāo)準(zhǔn)方式[2]。從用戶的角度來看,Profibus提供了3種通信協(xié)議類型,即DP、FMS和PA。系統(tǒng)通過運用OPC技術(shù),保證了軟件對客戶的透明性,使得用戶完全從低層開發(fā)中脫離出來。應(yīng)用程序與OPC服務(wù)器之間必須有OPC接口。OPC規(guī)范提供了2套標(biāo)準(zhǔn)接口,即Custom標(biāo)準(zhǔn)接口和OLE自動化標(biāo)準(zhǔn)接口。本系統(tǒng)采用OLE自動化標(biāo)準(zhǔn)接口[2]。Profibus的協(xié)議結(jié)構(gòu)如圖1所示。
圖1 Profibus協(xié)議結(jié)構(gòu)Fig.1 Protocol structure of Profibus
圖2 A3000裝置實驗系統(tǒng)結(jié)構(gòu)圖Fig.2 Structure of A3000 experimental system
本設(shè)計系統(tǒng)對象是采用Profibus-DP現(xiàn)場總線的A3000過程控制裝置,A3000過程控制裝置的結(jié)構(gòu)圖如圖2所示。A3000高級過程控制實驗系統(tǒng)是一套包含被控對象和檢測儀表、執(zhí)行儀表的現(xiàn)場實驗系統(tǒng),可以實現(xiàn)液位、流量、溫度控制實驗。該現(xiàn)場系統(tǒng)有被控對象單元(包括3個水箱、1個鍋爐和1個換熱器)、檢測儀表(2個流量儀表和3個壓力儀表)、執(zhí)行儀表(1個電動調(diào)節(jié)閥、1個變頻泵和1個調(diào)壓器,調(diào)壓器位于鍋爐內(nèi)部),此外,還安裝有變頻器和ET200S模塊。系統(tǒng)可以接收和提供標(biāo)準(zhǔn)的4~20 mA電流信號,組成一個完整、獨立的現(xiàn)場環(huán)境。
A3000裝置中的變頻器采用西門子MM420變頻器,帶有 Profibus-DP接口。變送器信號通過符合Profibus-DP協(xié)議的信號遠(yuǎn)傳模塊ET200S接入Profibus-DP總線,控制站采用安裝CP5611通信卡的PC機(jī)。系統(tǒng)采用Profibus-DP總線的單主站結(jié)構(gòu),將PC機(jī)組態(tài)為Profibus-DP主站,同時將其設(shè)置為OPC服務(wù)器,將MM420和ET200S設(shè)置為Profibus-DP從站。A3000裝置Profibus-DP網(wǎng)絡(luò)連接結(jié)構(gòu)如圖3所示。
圖3 Profibus-DP網(wǎng)絡(luò)連接結(jié)構(gòu)Fig.3 Profibus-DP network connection structure
圖3中,PC機(jī)和Profibus-DP總線通過CP5611通信卡連接,在本系統(tǒng)中,CP5611通信卡作為DP主站。作為從站的變頻器MM420和I/O遠(yuǎn)傳模塊ET200S通過DP電纜與CP5611卡連接。DP電纜是帶有9針DP接頭、采用RS-485傳輸技術(shù)的通信電纜[3]。
Profibus-DP系統(tǒng)組態(tài)過程如下。首先,配置PC Station硬件機(jī)架,成功安裝軟件SOFTNET和硬件通信卡并正確安裝向?qū)б院?,在“Station Configuration Editor”中可以看到OPC server和CP5611卡均在槽中。接著,在Step7中的組態(tài)文件PC Station中,打開Simatic Manager,新建一個項目,通過“Insert”插入一個Simatic PC Station,點擊Configuration,進(jìn)入配置畫面進(jìn)行參數(shù)配置,Profibus-DP主站配置完畢后,CP5611已搭建出Profibus-DP總線。此時,即可以在硬件目錄下添加從站設(shè)備MM420和ET200S。最后,系統(tǒng)組態(tài)完成后與A3000裝置通過DP電纜連接并下載配置文件,點擊“Download the Selected Station”即可完成下載。至此,Profibus-DP系統(tǒng)組態(tài)配置完成,PC機(jī)可以提供OPC Server。
基于OPC的Matlab與Step7通信原理如圖4所示[6]。
圖4 通信原理圖Fig.4 Communication principle
采用Matlab實現(xiàn)A3000的控制的設(shè)計思想是:使用Matlab的OPC功能函數(shù),編寫M文件,建立與Step7 OPC Server的連接,進(jìn)行數(shù)據(jù)通信,實現(xiàn)A3000裝置的預(yù)測控制,為以后實現(xiàn)復(fù)雜控制算法打下基礎(chǔ)。
OPC Server將用于動態(tài)交換的數(shù)據(jù)做成一個封裝的結(jié)構(gòu)面向訪問它的客戶端,需進(jìn)行操作的數(shù)據(jù)以數(shù)據(jù)項(Item)的形式提供,但是數(shù)據(jù)項對客戶端是不可見的,OPC Server只有以組對象(Group)的方式訪問數(shù)據(jù)項。圖4中,Matlab客戶端對 Step7 OPC Server的訪問通過COM/DCOM接口和網(wǎng)絡(luò)實現(xiàn)連接,Client通過操作Server中Item實現(xiàn)對設(shè)備寄存器的讀寫[4-5]。
實現(xiàn)Matlab OPC Client與Step7 Server的數(shù)據(jù)通信,首先要構(gòu)建訪問OPC Server的客戶端對象,這通過Opcda()函數(shù)實現(xiàn),并需要指定OPC Server所在PC機(jī)的位置(本系統(tǒng)是在本地主機(jī)“l(fā)ocalhost”上)和OPC Server標(biāo)示。完成客戶端對象添加后通過Connect()函數(shù)和服務(wù)器端建立連接。在客戶端對象下使用Addgroup()函數(shù)添加組對象,然后再使用Additem()函數(shù)添加需要采集的各個數(shù)據(jù)項,并利用Set()函數(shù)設(shè)置數(shù)據(jù)通信的相關(guān)參數(shù)。此時,OPC客戶端就可以通過Read()函數(shù)和Write()函數(shù)對服務(wù)器進(jìn)行數(shù)據(jù)讀寫操作?;贠PC技術(shù)的Matlab與Step7的通信程序示例如下。
本實驗被控對象的模型采用階躍響應(yīng)來描述,即對象的動態(tài)特性用其階躍響應(yīng)在采樣時刻 t=T、2T、…、NT的值 a1、a2、…、aN來描述,其中,T=2 s,N=133,N為模型時域長度,NT為階躍響應(yīng)的截斷點。N的選擇應(yīng)使ai(i>N)的值與階躍響應(yīng)的靜態(tài)終值之差具有與測量誤差和計算誤差相同的數(shù)量級,以忽略N以后的動態(tài)系數(shù)值。
由于被控對象的階躍響應(yīng)參數(shù)是比較容易測得的,因此,這種被控對象的建模特別適用于較復(fù)雜且難以用數(shù)學(xué)表達(dá)式進(jìn)行描述的對象。將a1、a2、…、aN這N個參數(shù)進(jìn)行組合,形成向量a=[a1a2… aN]T,產(chǎn)生被控對象的階躍響應(yīng)向量,這里的被控對象是指除計算機(jī)控制器以外回路中的全部環(huán)節(jié),可以認(rèn)為是一種廣義被控對象[6]。本實驗中給調(diào)節(jié)閥一定的開度(60%),取液位穩(wěn)定時的一個數(shù)值,然后增大調(diào)節(jié)閥的開度(10%),在此期間,通過計算機(jī)每隔2 s采集一個液位的數(shù)值。本次實驗中所取數(shù)值的個數(shù)N為133,從而得出需要的階躍模型。
本實驗采用動態(tài)矩陣控制(dynamic matrix control,DMC)算法,被控對象的模型用上面獲得的階躍響應(yīng)的離散采樣數(shù)據(jù)來描述[7]。
預(yù)測控制有多種控制算法形式,每種形式都建立在3項基本原理之上。這3項基本原理稱為預(yù)測控制的3要素,即預(yù)測模型、反饋校正和滾動優(yōu)化[7]。
根據(jù)線性系統(tǒng)的比例和疊加原理,利用上述模型和給定的輸入控制增量,可以預(yù)測系統(tǒng)未來的時刻的輸出值,如在k時刻加一個控制量Δu(k),則在未來N個時刻的模型輸出值為:
式中:y0(k+i)(i=1、2、…、N)是在 k時刻不施加控制作用Δu(k)情況下,由k時刻起未來的N個時刻的輸出預(yù)測的初始值。
由于模型誤差和干擾等的影響,系統(tǒng)的輸出預(yù)測值需要在預(yù)測模型輸出的基礎(chǔ)上用實際輸出誤差進(jìn)行反饋校正,以實現(xiàn)閉環(huán)預(yù)測,即:
式中:Ym(k+1)為模型的預(yù)測輸出;Yp(k+1)為反饋校正后的預(yù)測輸出;A、A0為動態(tài)矩陣;H=[h1,h2,…,hp]T,hj為對應(yīng)與第 j步輸出的反饋矯正系數(shù),本文中全部取為1;e(k)為實測輸出y(k)與預(yù)測值ym(k)之差,即 e(k)=y(k)-ym(k)。
由DMC算法可知,當(dāng)此算法在線實施時,只涉及到模型參數(shù)和控制參數(shù)。模型參數(shù)取決于對象階躍響應(yīng)特性和采樣周期的選擇,控制參數(shù)取決于模型參數(shù)和優(yōu)化性能指標(biāo)[8]。它們都是設(shè)計的結(jié)果而不是可直接調(diào)用的參數(shù),在設(shè)計中真正要確定的原始參數(shù)應(yīng)該是采樣周期T、優(yōu)化時域P、控制時域M、誤差權(quán)矩陣Q和控制權(quán)矩陣R。
動態(tài)矩陣控制算法以被控對象的階躍響應(yīng)直接作為模型,采用動態(tài)預(yù)測和滾動優(yōu)化的策略,具有易于建模和魯棒性強(qiáng)的優(yōu)點。在環(huán)境變化時,控制系統(tǒng)能夠保持穩(wěn)定和良好的控制性能,十分適合復(fù)雜工業(yè)過程控制的特點和要求。單容水箱液位動態(tài)矩陣控制曲線如圖5所示。圖5中,u、y、yc分別表示輸入量控制增量的變化、水箱液位隨控制增量變化而變化的實際輸出和預(yù)測輸出值。
圖5 控制曲線Fig.5 Control curves
基于現(xiàn)場總線的自動化系統(tǒng)采用總線方式代替一對一的I/O連線,對大規(guī)模I/O系統(tǒng)來說,減少了接線點造成的不可靠因素,符合工控系統(tǒng)向分散化、網(wǎng)絡(luò)化、智能化發(fā)展的方向。
本文為了解決復(fù)雜控制算法實驗驗證問題,在構(gòu)建了基于Profibus-DP現(xiàn)場總線的A3000過程控制實驗系統(tǒng)后,利用Matlab提供的先進(jìn)控制算法實現(xiàn)了對該系統(tǒng)的先進(jìn)控制,并結(jié)合OPC技術(shù),建立了Matlab與Step7的數(shù)據(jù)通信連接。同時,將實時數(shù)據(jù)采集到Matlab中進(jìn)行處理,實現(xiàn)了預(yù)測控制和系統(tǒng)辨識等分析研究。這使得控制效果得到優(yōu)化,在實驗系統(tǒng)上取得了滿意的控制效果。該系統(tǒng)為其他復(fù)雜先進(jìn)控制算法的實現(xiàn)提供了完善的驗證平臺。
[1]任波,喬莉,李環(huán).現(xiàn)場總線技術(shù)及應(yīng)用[M].北京:航空工業(yè)出版社,2008:4-25.
[2]謝富珍,王春平.OPC數(shù)據(jù)采集技術(shù)的應(yīng)用[J].科技廣場,2006(10):127-128.
[3]OPC國際基金會.OPC data access automation interface standard version[EB/OL].[2009 -04 -05].http://www.opc foundation.org.2002.
[4]史江梅,馮麗輝,鐘偉紅,等.基于模型的預(yù)測控制算法研究[J].昆明理工大學(xué)學(xué)報:理工版,2002,27(6):72 -75.
[5]胡劍杭,陳沖.基于OPC技術(shù)的MATLAB實時過程控制系統(tǒng)[J].福州大學(xué)學(xué)報:自然科學(xué)版,2008,36(S1):105 -107.
[6]王樹清.工業(yè)過程控制工程[M].北京:化學(xué)工業(yè)出版社,2003:7-8.
[7]夏揚.計算機(jī)控制技術(shù)[M].北京:機(jī)械工業(yè)出版社,2003:65-73.
[8]徐利新,歐陽咸泰,胡中功,等.模型預(yù)測控制在工業(yè)控制領(lǐng)域中的發(fā)展與應(yīng)用[J].武漢化工學(xué)院學(xué)報,2001,23(1):78-81.