国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

動態(tài)鏈接庫在先進控制軟件包中的設(shè)計與應(yīng)用

2014-08-03 03:45:16任麗麗夏伯鍇
化工自動化及儀表 2014年8期
關(guān)鍵詞:組態(tài)王下位調(diào)用

任麗麗 唐 娟 夏伯鍇

(1.中石油蘭州石化公司自動化研究院,蘭州 730060;2.中國石油大學(xué)(華東),山東 青島 266580)

對于石油化工行業(yè),“安穩(wěn)長滿優(yōu)”是生產(chǎn)裝置運行的目標(biāo)[1,2]。采用先進控制與優(yōu)化技術(shù)提高裝置的自控水平,對于充分發(fā)揮生產(chǎn)裝置的運行潛力,有效實現(xiàn)平穩(wěn)運行、增產(chǎn)與降耗具有十分重要的意義[3,4]。目前國內(nèi)裝置較多引進國外的先進控制與優(yōu)化軟件,由于這類軟件開發(fā)成本高,應(yīng)用時還需專家到現(xiàn)場測試數(shù)據(jù),并對軟件進行安裝、調(diào)試與培訓(xùn),費用昂貴,同時由于知識產(chǎn)權(quán)問題,重復(fù)購買時價格基本相同。所以,開發(fā)具有自主版權(quán)的先進控制與優(yōu)化軟件勢在必行。

筆者采用VC++和Visual Basic平臺開發(fā)先進控制系統(tǒng)軟件包,設(shè)計了軟件包的體系結(jié)構(gòu),并對狀態(tài)反饋預(yù)測控制算法進行簡要推導(dǎo),著重探討基于VC++的動態(tài)鏈接庫技術(shù)在先進控制系統(tǒng)軟件包中的設(shè)計與應(yīng)用。

1 軟件包體系結(jié)構(gòu)①

按照需求分析、功能要求和設(shè)計原則,優(yōu)化控制軟件包體系(OCS)設(shè)計為C/S(客戶/服務(wù)器)結(jié)構(gòu),如圖1所示,服務(wù)器端(上位機)響應(yīng)并提供固定的服務(wù),客戶端(下位機)向服務(wù)器端請求某種服務(wù)。

本設(shè)計采用基于VB中應(yīng)用程序間數(shù)據(jù)傳送的動態(tài)數(shù)據(jù)交換(DDE)技術(shù)實現(xiàn)數(shù)據(jù)共享[5]。所有共享變量均置于運行平臺處,各模塊所需的變量可從運行平臺中得到。通過DDE技術(shù),應(yīng)用程序之間相互傳送數(shù)據(jù)。上位機和下位機的TCP/IP通信采用Winsock控件。

圖1 軟件包體系結(jié)構(gòu)

客戶端(下位機)常采用DCS、工控機、組態(tài)王及PLC等。在設(shè)計中,下位機的控制對象采用組態(tài)王應(yīng)用軟件。服務(wù)器端(上位機)包含有運行平臺、先進控制算法模塊和模擬仿真模塊。

采用組態(tài)王模擬下位機DCS,通過上-下位機聯(lián)調(diào)對熱水罐的液位、溫度的二入二出耦合模型進行仿真[6]。先進控制算法模塊從運行平臺得到過程對象模型的狀態(tài)變量和輸出變量,輸入、輸出和狀態(tài)個數(shù),以及控制的預(yù)測步數(shù)。調(diào)用動態(tài)鏈接庫函數(shù)計算出控制量,通過DDE技術(shù)寫入運行平臺。采用C語言基于VC++ 6.0(VC)環(huán)境編寫先進控制算法,通過編譯生成動態(tài)鏈接庫(DLL)。在VB中通過聲明調(diào)用.dll中的導(dǎo)出函數(shù),即可計算出控制量。

運行平臺通過TCP/IP協(xié)議再把控制量發(fā)送至下位機的組態(tài)王,通過過程對象模型的仿真計算模塊,計算出狀態(tài)變量和輸出變量,再通過TCP/IP協(xié)議將其送入運行平臺。反復(fù)進行以上步驟,通過上下位機的聯(lián)調(diào)即可實現(xiàn)過程對象的先進控制。

2 多變量狀態(tài)反饋預(yù)測控制算法

研究中采用多變量狀態(tài)反饋預(yù)測控制策略,以使系統(tǒng)突破內(nèi)模控制(IMC)的框架,可用于不穩(wěn)定的被控對象。具有較強的抗干擾能力,魯棒性好,穩(wěn)態(tài)無偏差且在線計算量小。多變量狀態(tài)反饋預(yù)測控制數(shù)學(xué)模型基于狀態(tài)空間,過程對象數(shù)學(xué)模型可描述為:

x(k+1)=Ax(k)+Bu(k)
y(k)=Cx(k)

(1)

由式(1)可得狀態(tài)變量x和輸出y在未來p時刻的預(yù)測值,即:

(2)

(3)

未來p時刻的輸出預(yù)測修正值和當(dāng)前輸出預(yù)測值分別為:

(4)

(5)

多變量預(yù)測控制系統(tǒng)與單變量(SISO)預(yù)測控制系統(tǒng)[7]的不同之處在于,多變量預(yù)測控制系統(tǒng)的每一個輸出yj(k)都可以有一個相應(yīng)的預(yù)測時域pj,或者說多變量預(yù)測控制系統(tǒng)的預(yù)測時域P是一個向量,即P=[p1,p2,…,pr]T,其中r為過程對象輸出的維數(shù)。

由式(3)可知,對于第j個輸出,在未來pj采樣時刻的預(yù)測值[8,9]為:

(6)

(7)

j=1,2,…,r

采用單值預(yù)測控制策略思路,可得:

u(k+i)=u(k),i>0

通過使反饋修正后的輸出預(yù)測值等于輸出給定值,得到最優(yōu)控制律。

聯(lián)立式(4)、(5)、(7)可得:

ysj(k+pj)=cjApjx(k)-cjApjx(k-pj)+

(9)

整理式(9)可得增量形式的最優(yōu)控制律為:

Δu(k)=S-1(P)[Ys(k)-y(k)-Δx-Δu]

Δu(k)=u(k)-u(k-1)

Δx=CAP[x(k)-x(k-P)]

3 動態(tài)鏈接庫技術(shù)的應(yīng)用開發(fā)

軟件開發(fā)過程中,VB與VC的鏈接采用的是動態(tài)鏈接庫DLL技術(shù)。動態(tài)鏈接庫是二進制文件[10~12]。在軟件包開發(fā)應(yīng)用中調(diào)用.dll時,將所需的.dll文件置于Windows的系統(tǒng)目錄windowssystem之下。

在VC++中創(chuàng)建apc.dll的步驟如下:

a. 創(chuàng)建apc.dll工程。在VC++菜單中選擇FileNewProject,再選擇Win32 Dynamic-Link Library,在Project Name中輸入工程名apc,并保存apc.dll工程文件。

b. 創(chuàng)建apc.def文件。LIBRARY apc,定義導(dǎo)出函數(shù)algorithm()為例,EXPORTS;algorithm @1。

c. 創(chuàng)建apc.h頭文件。在菜單中選擇FileNewC++ Head File項,輸入代碼后保存文件名apc.h。

d. 填寫apc.cpp文件。輸入代碼后保存文件名apc.cpp。

e. 編譯apc.dll文件。

3.1 在VB中進行聲明

在apc.dll中,函數(shù)和過程對于VB應(yīng)用程序來說是外部過程,為了調(diào)用這些函數(shù)和過程,必須在VB中進行聲明。在一個VB(工程)中,要調(diào)用的dll過程只需聲明一次,以后即可在程序的任何地方調(diào)用[5,12,13]。dll過程的聲明有兩種格式:

a. Declare Sub過程名Lib”庫名”[Alias“別名”]([參數(shù)表列]);

b. Declare Function過程名Lib”庫名”[Alias“別名”]([參數(shù)表列])As類型。

在本設(shè)計中,采用第一種聲明方式,即declare sub algorithm lib“apc.dll”(byval as long,byval as long,byref as double,byref as double,byref as double,byref as long,byref as double),其中algorithm為VB應(yīng)用程序中使用的過程名;apc.dll為動態(tài)鏈接庫庫名;Byval為傳值方式;ByRef為傳址方式。由于u,x,y,p,ys為數(shù)組,所以必須將相應(yīng)參數(shù)聲明設(shè)為傳址方式,即把數(shù)組的第一個元素作為參數(shù)傳入,這樣在dll中就得到了數(shù)組的首地址,從而可對整個數(shù)組進行訪問。

開發(fā)中,需要對C語言與VB語言的數(shù)據(jù)類型進行轉(zhuǎn)換,見表1。由于dll過程中的參數(shù)是用C語言數(shù)據(jù)類型定義的,當(dāng)在VB中聲明一個過程時,必須指定與其匹配的VB數(shù)據(jù)類型。

表1 C語言與VB語言數(shù)據(jù)類型轉(zhuǎn)換

3.2 在VB中進行調(diào)用

在VB中進行調(diào)用時,使用call語句。如調(diào)用動態(tài)鏈接庫中的預(yù)測控制algorithm函數(shù),則為call algorithm(m,n,u(0),x(0),y(0),p(0),ys(0))。

4 仿真應(yīng)用

對熱水罐的液位和溫度二入二出耦合模型進行仿真測試,被控變量的控制效果如圖2、3所示,對于穩(wěn)定的被控過程,預(yù)測步數(shù)減小,預(yù)測控制作用增強,動態(tài)調(diào)節(jié)過程加快;反之,預(yù)測步數(shù)增大,則預(yù)測控制作用減弱,動態(tài)調(diào)節(jié)過程減慢,控制系統(tǒng)的魯棒性增強。

圖2 預(yù)測時域p1=2、p2=1的控制效果

圖3 預(yù)測時域p1=6、p2=5的控制效果

5 結(jié)束語

測試運行結(jié)果表明,以DDE和TCP/IP通信為基礎(chǔ),軟件包各模塊協(xié)調(diào)運行正常,上位機的預(yù)測算法對下位機組態(tài)王中的水罐模型實現(xiàn)了完美控制。基于狀態(tài)變量反饋的預(yù)測控制算法對耦合模型也消除了穩(wěn)態(tài)誤差。這就驗證了軟件包整體功能設(shè)計的正確性。

猜你喜歡
組態(tài)王下位調(diào)用
核電項目物項調(diào)用管理的應(yīng)用研究
發(fā)射機房監(jiān)控系統(tǒng)之下位機
LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
基于組態(tài)王軟件和泓格PIO-D64 板卡的流水燈控制
電子制作(2017年23期)2017-02-02 07:17:16
基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
景洪電廠監(jiān)控系統(tǒng)下位機數(shù)據(jù)傳輸網(wǎng)絡(luò)改造
圍觀黨“下位”,吐槽帝“登基”
MATLAB實現(xiàn)組態(tài)王中TCP/IP讀卡器監(jiān)控方法
CAN總線并發(fā)通信時下位機應(yīng)用軟件設(shè)計
基于PLC與組態(tài)王煤礦壓風(fēng)機的設(shè)計研究
河南科技(2015年8期)2015-03-11 16:23:55
布拖县| 杭锦后旗| 安陆市| 当雄县| 秭归县| 通州市| 汽车| 新田县| 乐东| 康平县| 京山县| 长寿区| 青河县| 定襄县| 南开区| 武清区| 内丘县| 福海县| 海原县| 永宁县| 台东县| 武胜县| 远安县| 新巴尔虎左旗| 桐乡市| 淮安市| 报价| 宝兴县| 五大连池市| 扶余县| 龙陵县| 凤阳县| 左贡县| 临海市| 阆中市| 潞城市| 靖安县| 巫溪县| 荔浦县| 蓝山县| 揭阳市|