基于FF總線實現(xiàn)水箱系統(tǒng)動態(tài)矩陣控制
引言
ff現(xiàn)場總線系統(tǒng)是連接智能現(xiàn)場設(shè)備和自動化系統(tǒng)的數(shù)字式、雙向傳輸、多分支結(jié)構(gòu)的通信網(wǎng)絡(luò),與現(xiàn)行控制系統(tǒng)相比,具有如下技術(shù)優(yōu)勢:① 現(xiàn)場總線用數(shù)字信號代替?zhèn)鹘y(tǒng)的模擬信號,測量精度高,抗干擾能力強;② 基于總線的現(xiàn)場儀表可以對量程和零點進行遠(yuǎn)程設(shè)定,具有儀表工作狀態(tài)自診斷功能,能進行多參數(shù)測量和對環(huán)境影響的自動補償;③ 現(xiàn)場設(shè)備集檢測、轉(zhuǎn)換、運算和控制功能于一體,既降低了成本,又增加了安全性和可靠性。④ 所有現(xiàn)場設(shè)備直接通過一對傳輸線即現(xiàn)場總線連接,減少了連線的數(shù)量,易于安裝和維護,節(jié)省費用、調(diào)試和維修成本。
本實驗測控系統(tǒng)采用jbs2gk03 過程控制實驗裝置,并采用中科院沈陽自動化研究所開發(fā)的ff h1 opc服務(wù)器microcyber.
ffserver.1作為opc服務(wù)器。該服務(wù)器符合opc組織制訂的opc da 2.0規(guī)范標(biāo)準(zhǔn)。opc客戶端與服務(wù)器之間的通訊符合opc的自動化接口規(guī)范要求,利用matlab
7.0支持opc規(guī)范的新功能,實現(xiàn)了用戶端與服務(wù)器端的通訊。動態(tài)矩陣控制算法在客戶端通過matlab的m語言實現(xiàn),充分發(fā)揮了矩陣計算語言簡潔、高效的優(yōu)勢。
控制原理
本實驗測控系統(tǒng)采用的jbs2gk03 過程控制實驗裝置,被控參數(shù)變量為液位、流量、溫度和壓力。該過程為自衡非振蕩, 具有相互影響的雙容過程,其數(shù)學(xué)模型可用如下傳遞函數(shù)描述:
(1)式中,kp, tp,τ分別為過程的增益、時間常數(shù)和時滯。由上位機的opc服務(wù)器實時獲取ff現(xiàn)場總線采集現(xiàn)場設(shè)備數(shù)據(jù)并動態(tài)顯示。
opc服務(wù)器microcyber .ffserver.1每秒鐘刷新一次,實現(xiàn)設(shè)備的實時數(shù)據(jù)和歷史數(shù)據(jù)共享以及報警等功能。opc客戶端與服務(wù)器之間的通訊符合opc的自動化接口規(guī)范要求,利用matlab 7.0支持opc規(guī)范的新功能,實現(xiàn)用戶端與服務(wù)器的通訊。動態(tài)矩陣控制算法通過matlab的m語言在監(jiān)控端實現(xiàn),利用其強大的計算與動態(tài)顯示能力對水箱系統(tǒng)進行動態(tài)矩陣控制。并將opc服務(wù)器的歷史數(shù)據(jù)保存在matlab的數(shù)組中,以實現(xiàn)對歷史數(shù)據(jù)曲線的實時繪制。本文采用的受控對象為device1.flow,組名為 device1。通過matlab編寫的客戶端與sql2000服務(wù)器的odbc連接,實時與數(shù)據(jù)庫交互。從opc服務(wù)器讀取選項的值,并可以實時將選項的值插入到數(shù)據(jù)庫服務(wù)器中保存為歷史數(shù)據(jù)。需要時,可以通過選項隨時將歷史數(shù)據(jù)進行回調(diào),進行查詢、更新、刪除等操作,或者用于算法控制和繪制歷史曲線圖。從而可以實現(xiàn)opc服務(wù)器和歷史數(shù)據(jù)服務(wù)器的分布式管理。本設(shè)計中采用的ncs-if105設(shè)備可以接收四個通道0~20ma模擬信號,并轉(zhuǎn)換成ff現(xiàn)場總線信號。而ncs-ld105現(xiàn)場總線網(wǎng)關(guān)則可用于各種采用ff h1現(xiàn)場總線設(shè)備的控制系統(tǒng)當(dāng)中,不僅可將ff h1總線設(shè)備無縫集成到以太網(wǎng)網(wǎng)絡(luò)中,還可擴展ff h1應(yīng)用。
程序?qū)崿F(xiàn)
客戶端與opc服務(wù)器通訊
首先,matlab客戶端應(yīng)先生成 opc服務(wù)器支持的 opc 對象。opc 數(shù)據(jù)訪問對象由分層結(jié)構(gòu)構(gòu)成,即一個 opc 服務(wù)器對象具有一個作為子對象的 opc組集合對象(opc groups)。在這個 opc組集合對象里可以添加多個opc組對象。各個opc組對象都具有一個作為子對象的opc標(biāo)簽集合對象,在這個標(biāo)簽集合對象里可以添加多個 opc標(biāo)簽對象。
用matlab m文件編寫opc客戶端程序包含以下步驟:
(1)添加服務(wù)器的引用,創(chuàng)建 opc 服務(wù)器對象,并將客戶程序與服務(wù)器相連;
(2)連接創(chuàng)建的opc 服務(wù)器對象;
(3)通過瀏覽整個服務(wù)器中所有的項,添加組對象;
(4)添加 opc項,選擇需要的項,將其添加到規(guī)定的組中,并顯示其值和狀態(tài);
(5)啟動opc服務(wù)器。
程序和注釋如下:
hostinfo = opcserverinfo(遠(yuǎn)程/本地服務(wù)器名);%連接遠(yuǎn)程/本地服務(wù)器
allservers = hostinfo.serverid;
da = opcda(服務(wù)器名, opc服務(wù)器名);
connect(da);
sawtoothitems = serveritems(da, *受控設(shè)備名*);
itmids = {控設(shè)備名};
grp = addgroup(da, demgroup);%增加組
itm = additem(grp, itmids); %增加項目
start(grp); %啟動opc服務(wù)器
客戶端與sql數(shù)據(jù)庫服務(wù)器通訊
首先,在sql數(shù)據(jù)庫中建立一個指定名字的數(shù)據(jù)庫,并建立一個名為history的表。表中的字段包括選項的值(value)、品質(zhì)(quality)、時間戳(timestamp)、服務(wù)器名(servername)以及設(shè)備名(device)。設(shè)置odbc數(shù)據(jù)源,建立一個和前面數(shù)據(jù)庫名字相同的數(shù)據(jù)源,該數(shù)據(jù)源指向sql數(shù)據(jù)庫中的同名數(shù)據(jù)庫。測試連接成功后,即可在matlab中通過編寫m文件實現(xiàn)與數(shù)據(jù)庫的連接,并建立一個工作空間數(shù)組存儲來自數(shù)據(jù)庫的數(shù)據(jù),通過執(zhí)行命令的方式實現(xiàn)選擇、插入數(shù)據(jù)等操作。關(guān)鍵程序及注釋如下所示:
首先,實現(xiàn)建立連接對象,實現(xiàn)與數(shù)據(jù)庫服務(wù)器的連接。
conn = database(數(shù)據(jù)源名、用戶名、用戶密碼);%連接數(shù)據(jù)庫
ping(conn);%檢查連接狀態(tài)
curs = exec(conn, select country from 表名)%打開游標(biāo)執(zhí)行sql語句
setdbprefs(datareturnformat, cellarray)%說明檢索數(shù)據(jù)的格式
curs = fetch(curs、10)%將數(shù)據(jù)導(dǎo)入到matalb
columnnames(curs)%獲取列名
a = curs.data%顯示游標(biāo)對象里的所有數(shù)據(jù)元素,data(:,3)為獲取某一字段的元素值
insert(conn、 表名、字段名、 數(shù)組名);%將數(shù)組的值插入到表的某一字段中
close(curs)%關(guān)閉游標(biāo)
close(conn)%關(guān)閉連接對象
改進的dmc控制程序仿真
受控系統(tǒng)數(shù)學(xué)模型如公式(1)所示。將階躍信號作為控制信號作用于受控系統(tǒng),通過ff現(xiàn)場總線,實時獲取一段時間內(nèi)系統(tǒng)某一受控對象(流量)的階躍響應(yīng)輸出,通過matlab程序讀取對應(yīng)時刻的階躍響應(yīng)值,并將時間和對應(yīng)值存在一個數(shù)組中。通過建立受控對象的數(shù)學(xué)模型,可辨識受控系統(tǒng)的參數(shù),并得到辨識后系統(tǒng)的輸出。使用matlab 7.0 的opc工具包,實現(xiàn)客戶端程序與opc服務(wù)器的通訊,使用get(itm,value)函數(shù)來獲取服務(wù)器中流量的實時值(其中itm=device1.flow),然后進行動態(tài)矩陣控制。得到控制量后,通過使用write(itm, setvalue)函數(shù)將控制量寫入opc服務(wù)器,從而控制受控系統(tǒng)。
設(shè)置模型的時域長度為n=10,優(yōu)化時域長度為p=3,誤差校正向量為h,其長度為n,控制向量為d,其長度為p,預(yù)測向量存儲在數(shù)組y1中。不同的模型時域長度和優(yōu)化長度對系統(tǒng)性能的影響是不同的,仿真曲線如圖1所示。r過大時,預(yù)測向量會明顯偏離真實的系統(tǒng)響應(yīng),對預(yù)測不利。當(dāng)r=20,p=3時,預(yù)測與實際響應(yīng)值一致。可見,在dmc控制算法中,應(yīng)該合理選擇模型時域長度和優(yōu)化長度才能達到理想的控制效果。
結(jié)語
ff 現(xiàn)場總線技術(shù)與傳統(tǒng)dcs 相比,系統(tǒng)布線投資明顯減少,而網(wǎng)絡(luò)功能則大大加強。而且該系統(tǒng)可以充分利用各種軟件的優(yōu)勢,大大提高軟件編程的效率和靈活性,實際運行結(jié)果表明,基于matlab和opc技術(shù)的ff現(xiàn)場總線的測控系統(tǒng)運行穩(wěn)定,控制效果良好。
評論