999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2014-08-03 03:45:16任麗麗夏伯鍇
化工自動化及儀表 2014年8期

任麗麗 唐 娟 夏伯鍇

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

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

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

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

按照需求分析、功能要求和設(shè)計原則,優(yōu)化控制軟件包體系(OCS)設(shè)計為C/S(客戶/服務(wù)器)結(jié)構(gòu),如圖1所示,服務(wù)器端(上位機(jī))響應(yīng)并提供固定的服務(wù),客戶端(下位機(jī))向服務(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ù)。上位機(jī)和下位機(jī)的TCP/IP通信采用Winsock控件。

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

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

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

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

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

研究中采用多變量狀態(tài)反饋預(yù)測控制策略,以使系統(tǒng)突破內(nèi)模控制(IMC)的框架,可用于不穩(wěn)定的被控對象。具有較強(qiáng)的抗干擾能力,魯棒性好,穩(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)鏈接庫是二進(jìn)制文件[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中進(jìn)行聲明

在apc.dll中,函數(shù)和過程對于VB應(yīng)用程序來說是外部過程,為了調(diào)用這些函數(shù)和過程,必須在VB中進(jìn)行聲明。在一個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ù)組進(jìn)行訪問。

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

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

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

在VB中進(jìn)行調(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)用

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

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

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

5 結(jié)束語

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

主站蜘蛛池模板: 亚洲国产精品一区二区第一页免| 4虎影视国产在线观看精品| 免费在线播放毛片| 三级毛片在线播放| 国产激爽大片在线播放| 日韩东京热无码人妻| 高潮爽到爆的喷水女主播视频| 国产在线91在线电影| 亚洲欧美国产五月天综合| 男人天堂伊人网| 国产在线一区二区视频| 欧美一区二区人人喊爽| 亚洲天堂日本| 第一区免费在线观看| 99久久精品国产麻豆婷婷| 日本午夜影院| 极品国产在线| 日本三级欧美三级| Jizz国产色系免费| 国产成人综合亚洲网址| 国产精彩视频在线观看| 国产精品白浆无码流出在线看| 国产屁屁影院| 久久网欧美| 69av在线| 久久人妻xunleige无码| 青青国产成人免费精品视频| 亚洲色图狠狠干| 中文字幕永久在线看| 综1合AV在线播放| 国产精品香蕉在线| 欧美日韩一区二区在线免费观看| 2022国产91精品久久久久久| 东京热高清无码精品| 刘亦菲一区二区在线观看| 呦女亚洲一区精品| 国产精品视频3p| 午夜啪啪福利| 4虎影视国产在线观看精品| 国产成人91精品免费网址在线| 成人91在线| 久久永久视频| 亚洲AⅤ无码国产精品| 欧美区一区| 无码'专区第一页| 一级毛片免费不卡在线 | 亚洲第一成年人网站| 在线精品亚洲一区二区古装| 天堂网亚洲综合在线| 欧美精品v日韩精品v国产精品| 欧美亚洲一区二区三区在线| 黄色成年视频| 亚洲精品色AV无码看| 综合色在线| 精品欧美一区二区三区久久久| 男女猛烈无遮挡午夜视频| 国产成人精品优优av| 狼友视频一区二区三区| 蜜桃视频一区二区三区| 国产免费久久精品99re不卡| 91 九色视频丝袜| 亚洲日韩Av中文字幕无码| 色婷婷综合激情视频免费看| 亚洲中文精品久久久久久不卡| 2021亚洲精品不卡a| 欧美日韩北条麻妃一区二区| 国产小视频免费| 欧美97欧美综合色伦图| 激情国产精品一区| 久久人人妻人人爽人人卡片av| a国产精品| 欧美日韩国产在线人成app| 日韩国产 在线| 精品夜恋影院亚洲欧洲| 中文字幕久久亚洲一区| 国产日韩丝袜一二三区| 国产日韩久久久久无码精品| 国产成人a毛片在线| 精品人妻AV区| 欧美 亚洲 日韩 国产| 国产亚洲欧美在线人成aaaa| 国产亚洲成AⅤ人片在线观看|