楊揚,朱文玉,趙法瑞
(中國石油大學勝利學院機械與控制工程學院,山東東營257061)
在計算機技術飛速發(fā)展的今天,PC機作為上位機在工業(yè)過程監(jiān)控平臺中的應用越來越廣泛。監(jiān)控平臺軟件有著動畫效果、組態(tài)方便和強監(jiān)控能力的特點[1-4],如組態(tài)王軟件,雖然可以提供強大的人機界面和通訊功能,但是其計算能力差、難以完成復雜控制算法的缺點也不能忽視[5-8]。目前,系統(tǒng)工程師在生產設計時越來越傾向于使用智能控制算法,如:PID控制算法、人工神經網絡算法、遺傳算法等先進控制算法。而MATLAB中的Simulink仿真軟件,具有方便的圖形界面和對控制工具軟件包的支持,可以對動態(tài)系統(tǒng)進行建模、仿真和分析[9]。本文通過Simulink工具箱可以實現(xiàn)復雜控制系統(tǒng)的建模、對仿真模型的參數(shù)進行在線修改、可以模擬實際生產過程中的干擾和模型變化,并可以立刻得出修改后的仿真結果。結合兩種軟件各自的優(yōu)點,組態(tài)王建立監(jiān)控軟件平臺,在監(jiān)控界面上可以進行動態(tài)工藝圖顯示PLC參數(shù)修改、實時數(shù)據(jù)采集,而MATLAB作為后臺控制軟件,可以實現(xiàn)復雜系統(tǒng)設計、參數(shù)修改、曲線繪制等功能。
選取雙容水箱為控制對象,組態(tài)王和MATLAB軟件借助DDE協(xié)議分別實現(xiàn)與EXCEL作為中間服務器的數(shù)據(jù)交換。本文提出了通過Simulink仿真軟件中的workspace工作空間與EXCEL進行數(shù)據(jù)通訊,組態(tài)王界面借助DDE通訊協(xié)議可以實時修改EXCEL表格中的對應參數(shù),同時EXCEL表中的數(shù)據(jù)及時反饋到workspace工作空間,從而影響模型中的輸入變量的參數(shù)。
結合現(xiàn)場雙容水箱的布局和外觀,利用組態(tài)王的繪圖工具箱,建立形象的主監(jiān)控界面,實現(xiàn)整個液位控制流程的實時監(jiān)控,如圖1所示。首先,在組態(tài)王工程窗口新建工程,命名為雙容水箱液位控制系統(tǒng)主控界面,根據(jù)控制系統(tǒng)實際要求,在監(jiān)控界面主要有3個水箱,分別為儲水箱、上水箱、下水箱。每個水箱內有液位變送器、在儲水箱和上水箱進水口安裝一個電動調節(jié)閥、除此以外還有水泵一個。組態(tài)王監(jiān)控界面可以實現(xiàn)整個圖形界面的設計、I/O設備配置、動畫連接生成、系統(tǒng)運行與調試[10-11]。文中建立的雙容水箱監(jiān)控界面,可以通過命令窗口設定和模塊拖動的方式設置下水箱液位值sp、3個PID參數(shù)值Ki、Kp和Kd,組態(tài)王界面完成這4個參數(shù)的修改,通過DDE通訊與MATLAB的workspace工作空間互聯(lián),從而實現(xiàn)模型中參數(shù)的修改,曲線發(fā)生相應變化。
組態(tài)王界面中實時顯示上水箱液位和下水箱液位變化曲線,其中圖片中曲線①為下水箱液位設定值,曲線②為下水箱液位變化曲線、曲線③為上水箱液位變化曲線。該曲線與Simulink仿真曲線一致。
DDE交換數(shù)據(jù)的方法主要分3種:由客戶申請數(shù)據(jù)、服務器發(fā)送數(shù)據(jù)稱為冷鏈;服務器的數(shù)據(jù)有變化時,服務器通知客戶,客戶再來取數(shù)據(jù)稱為溫鏈;服務器數(shù)據(jù)變化時,直接把數(shù)據(jù)發(fā)送給可出,由客戶進行處理數(shù)據(jù)稱為熱鏈[12-13]。MATLAB提供的DDE功能可以與EXCEL進行實時的動態(tài)數(shù)據(jù)交換,而組態(tài)王也可以通過DDE方式與其他應用軟件進行數(shù)據(jù)交換,實現(xiàn)了組態(tài)王通過MATLAB實現(xiàn)復雜控制的功能。
圖1 雙容水箱液位系統(tǒng)主控界面
在雙容水箱液位控制系統(tǒng)主控界面的工程界面尋找設備DDE,打開DDE點擊新建,設備驅動選擇DDE,進行下一步,給要安裝的DDE設備指定的連接對象名設為Excel,服務程序名為Excel,話題名為sheet1,選擇標準的Windows項目數(shù)據(jù)交換形式。這樣就完成了組態(tài)王與MATLAB的通訊。如圖2所示。
圖2 組態(tài)王中DDE設置
根據(jù)需要建立內存變量和IO變量,配置變量的類型和各種屬性,并將IO變量與相應的IO設備寄存器連接。打開新建的工程,在工程瀏覽器界面,點擊新建就能建立新的變量。例如下水箱液位,變量名:下水箱液位,變量類型選擇:I/O實數(shù),連接設備選擇:Excel,項目名:r2c3,表示將組態(tài)王下水箱液位值存入EXCEL表中的第2行第3列。除下水箱液位外還設置變量有:上水箱液位、sv(下水箱液位設定值)、KP、Ki、Kd、pv(上水箱液位設定值)其他變量設置類似,如圖3所示。
圖3 組態(tài)王自定義變量
圖4 EXCEL中間數(shù)據(jù)庫
新建一個EXCEL文件“data.xls”,在EXCEL里完成相應的設置,如圖4所示。選中第一行第二列r1c2:在其中寫入:下水箱液位設定。用同樣方法可以完成其他輸出量在data.xls中的設置。Excel與組態(tài)王通過DDE通訊能夠實現(xiàn)數(shù)據(jù)的同步傳輸。通過組態(tài)王中對變量的DDE設置,每個變量對應Excel中某一單元格,只要在組態(tài)王設置與EXCEL軟件互聯(lián),即可實現(xiàn)數(shù)據(jù)變量的同步變化。
MATLAB作為客戶應用程序,它支持文本格式的數(shù)據(jù)傳遞,可以使用MATLAB中的DDE客戶端所提供的函數(shù)與服務器應用程序進行數(shù)據(jù)通訊[14],MATLAB的DDE客戶包含7個函數(shù),分別是:ddeinit是建立與服務器的的對話,建立成功則該函數(shù)返回一個通道信號;ddereq向服務器索要數(shù)據(jù),返回值是存有數(shù)據(jù)的矩陣;ddepoke向服務器發(fā)送數(shù)據(jù);ddeadv和ddeunadv的功能是建立熱鏈的請求和刪除請求;ddexec發(fā)出執(zhí)行命令給服務器應用程序;ddeerm終止與服務器之間的DDE會話[15]。本文主要用到的函數(shù)為 ddeinit、ddereq、ddepoke 3種,下面是MATLAB進行DDE通訊的步驟:
1)雙容水箱串級PID控制模型搭建
文中采用PID串級控制,分主控制器和副控制器,主控制器的PID參數(shù)可以通過m文件中的set_param函數(shù)寫入Simulink模型中進行修改,如圖5所示。
圖5 雙容水箱串級控制模型
2)編寫實現(xiàn)DDE功能的M文件
在MATLAB中編寫Simulink模型與EXCEL進行數(shù)據(jù)通訊的m文件,如圖6所示。編程思路是在m文件中定義4個變量,分別為下水箱液位設定值、比例常數(shù)設定值、積分常數(shù)設定值、微分常數(shù)設定值,而函數(shù)set_parm可以修改PID模型中的KP、Ki、Kd、參數(shù)。本文用到的函數(shù)ddeinit建立與組態(tài)王的對話,建立成功則該函數(shù)返回一個通道信號[16]。用if,else語句來檢測對話有沒有建立成功,若建立成功,用ddereq函數(shù)從Excel中讀入數(shù)據(jù),再把數(shù)據(jù)送入SIMULIK仿真模型中,經過模型運算之后再把數(shù)據(jù)返回傳入Excel,最后送還給組態(tài)王監(jiān)控畫面中。例如”sv=ddereq(channel,‘r2c2’)”,把 Excel中第二行第二列的數(shù)據(jù)讀給sv送入Simulink仿真模型,經過運算之后通過To Workspace把數(shù)據(jù)送回工作空間,再經過ddepoke從工作空間向Excel返回數(shù)據(jù),MATLAB把返回值送給Excel,Excel再通過DDE通訊把數(shù)據(jù)傳輸?shù)浇M態(tài)王監(jiān)視界面中。
圖6 m文件編程
1)打開組態(tài)王工程:雙容水箱監(jiān)控平臺,進入組態(tài)王運行環(huán)境;即在工程瀏覽器界面找到VIEW,單擊切換到運行狀態(tài)。設定下水箱液位控制參數(shù)(設定下水箱液位比例參數(shù)P=0.45,積分參數(shù)I=0.0045,微分參數(shù)D=5,設定液位值為15)。
2)打開“data.xls”這個 Excel,對通訊的數(shù)據(jù)進行更新。
3)打開MATLAB,打開SIMULINK文件和M文件,運行M文件。
4)將輸入信號改為單位階躍信號后,觀察經過模型運算后示波器的情況,下水箱液位如圖7示波器Scope1所示,上水箱液位如示波器Scope2所示。
5)輸入信號為實際設定值時,將上水箱液位、下水箱液位和設定值顯示在同一畫面中,如圖8所示。
圖7 示波器
圖8 示波器Scope3
文中通過組態(tài)王和MATLAB軟件自主開發(fā)雙容水箱液位控制仿真實驗平臺,提出了使用MATLAB的workspace工作空間與EXCEL數(shù)據(jù)庫進行互聯(lián)。組態(tài)王和MATLAB分別實現(xiàn)雙容水箱監(jiān)控系統(tǒng)的界面搭建和串級模型的搭建。利用DDE通訊訪問EXCEL數(shù)據(jù)庫,同時在組態(tài)王界面進行參數(shù)設置時可進行EXCEL數(shù)據(jù)庫的實時修改,而EXCEL同時與Simulink雙容水箱模型互聯(lián),繼而修改水箱模型參數(shù),進行不同參數(shù)下模型的分析。結論證明,利用組態(tài)王軟件進行參數(shù)修改后,組態(tài)王界面的示波器顯示結果與MATLAB模型仿真波形一直,實現(xiàn)了3者的互聯(lián)。仿真實驗平臺的搭建具有圖形界面動態(tài)效果逼真、操作性強等優(yōu)點,對進一步的控制類教學和工作實踐有著重要的意義。
[1]張梓琪,黃凌云,李才對,等.基于組態(tài)王與Matlab的液位控制仿真平臺構建[J].實驗室研究與探索,2013(9):81-85.
[2]敖茂繞.串級液位控制系統(tǒng)的改進粒子群神經網絡PID控制研究[J].計算機測量與控制,2014(22):95-100.
[3]張亞鋒.基于PID串級控制的MATLAB仿真系統(tǒng)[J].電子科技,2015(10):26-27.
[4]王志剛,虎恩典,王寧.基于PLC的雙容水箱液位串級PID控制的實現(xiàn)[J].電子設計工程,2014(22):131-135.
[5]朱濤,周天沛.基于PLC的雙容水箱液位控制仿真與實物實驗系統(tǒng)設計[J].實驗室技術與管理,2013(11):29-32.
[6]王雪梅.基于模糊神經網絡PID的液位串級控制的研究[J].機電一體化,2013(3):35-85.
[7]鄭華,呂偉珍.基于組態(tài)王和MATLAB的雙容水箱液位控制[J].中國農機化,2012(2):155-157.
[8]王維權,馬陽,雷彥華.基于組態(tài)王與MATLAB的雙容水箱液位模糊控制系統(tǒng)[J].工業(yè)控制計算機,2014(27):23-26.
[9]盧守鋒,韋欽平,沈文,等.集成VISSIM、EXCEL VBA和MATLAB的仿真平臺研究[J].交通運輸系統(tǒng)工程與信息,2012(12):43-48
[10]黃彪,張井崗.模糊PID控制在液位串級控制系統(tǒng)中的應用[J].機械工程與自動化,2012(5):150-155.
[11]孫婷.雙容水箱液位串級控制系統(tǒng)的設計[J].產業(yè)與科技論壇,2014(13):65-78.
[12]常瑞麗,韓軍.雙容水箱液位控制系統(tǒng)的開發(fā)與研究[J].機床與液壓,2014(42):166-169.
[13]曹紅英,鄧娜.液位串級控制系統(tǒng)控制器參數(shù)優(yōu)化整定分析[J].開封大學學報,2015(29):89-92.
[14]陳星,魯玲.一種基于OPC通訊的自適應模糊PID控制優(yōu)化設計[J].工業(yè)控制與應用,2014(33):17-21.
[15]徐銀梅,李擎,董潔.自動化實訓實驗室的建設與實踐[J].實驗技術與管理,2016(33)240-244.
[16]周洋,沈雷,孫閩紅,等.主動式實驗教學法的探索與實踐[J].實驗室科學,2012,15(5):14-16.