龐中華 ,劉國平,喬宇亮
(1. 青島理工大學 自動化工程學院,山東 青島,266033;2. 中國科學院 自動化研究所 復雜系統(tǒng)與智能科學實驗室,北京,100190;3. Faculty of Advanced Technology, University of Glamorgan, Pontypridd CF37 1DL, UK)
實驗室作為銜接理論和實踐的應用平臺,是進行實踐教學和科學研究的重要場所,對于創(chuàng)新型人才的培養(yǎng)和科學技術的發(fā)展具有重要的意義和作用。自20世紀90年代中期以來,隨著計算機技術、網(wǎng)絡通訊技術和Web技術的迅速發(fā)展,作為真實實驗室的有力補充,基于Web的遠程實驗室[1-4]不斷涌現(xiàn)并得到廣泛應用。與真實實驗室相比,基于Web的遠程實驗室具有如下優(yōu)勢:(1) 遠程實驗室可以實現(xiàn)實驗設備的共享,提高實驗資源的使用效益。目前,全球實驗資源存在著這樣1對矛盾:一方面,由于各高校、科研機構無統(tǒng)一的協(xié)調(diào)和管理,貴重實驗儀器存在著嚴重的重復購置、長久閑置不用等現(xiàn)象,使用效益低;另一方面,有些高校和科研機構由于受各種條件(資金、場所等)的限制,無法購置所需要的實驗設備,從而無法正常開展相關實驗。而若利用遠程實驗室,通過共享全球實驗資源,則可很好地解決上述矛盾。(2) 用戶通過遠程實驗室做實驗,可不受時間、地點的約束,如:教師可以在課堂教學時,邊傳授理論知識邊輔以實驗演示;學生可以在宿舍、家中甚至途中等場所進行實驗;等。目前,已有多種基于Web的遠程控制實驗室解決方案,但大多數(shù)僅針對特定的實驗設備,如直流電機[5-6]、倒立擺[7]、機器人[8]、雙容水箱[9]等。而且這些實驗室一般不允許用戶自行設計實驗過程、實驗算法等,僅可進行驗證性實驗,從而無法滿足設計型和綜合型實驗的需要。意大利 Siena大學開發(fā)的遠程控制實驗室Automatic Control Telelab[10],允許用戶設計自己的控制算法,并可在實驗過程中修改控制器參數(shù)、參考輸入等,但在使用時,需要遠程用戶在瀏覽器端安裝并配置 JRE運行環(huán)境、安裝MATLAB/Simulink軟件等,且實時監(jiān)控功能較弱。遠程控制實驗室 WebLab-Deusto[11]采用“終端客戶/主服務器/微服務器/實驗設備”的4層分布式結構,便于控制分布在不同地域的實驗設備,但WebLab-Deusto允許終端用戶訪問與設備直接連接的微服務器,從而給設備帶來了安全隱患。例如:當過多用戶同時訪問同一微服務器或者微服務器受到網(wǎng)絡攻擊時,設備將無法正常運行。為了設計一個完全基于Web的遠程控制和網(wǎng)絡化控制實驗室,共享位于全球各地的自動控制實驗裝置,中國科學院自動化研究所與英國Glamorgan大學聯(lián)合開發(fā)了網(wǎng)絡化控制系統(tǒng)實驗室NCSLab(Networked control system laboratory)。NCSLab無需用戶安裝任何軟件或插件,無需學習任何特定的編程語言,僅通過連入因特網(wǎng)中的Web瀏覽器,即可設計自己的控制算法,并可進行控制系統(tǒng)的離線仿真、遠程編譯、實時控制以及可視化監(jiān)控組態(tài)、實時監(jiān)控等。
圖1 NCSLab V3的體系結構Fig.1 Architecture of NCSLab V3
自2006年NCSLab建立以來,其體系結構經(jīng)歷了如下變革。
(1) NCSLab V1:Web瀏覽器/主服務器/子服務器/實驗臺[12];
(2) NCSLab V2:Web瀏覽器/中央服務器/區(qū)域服務器/子服務器/實驗臺[13];
(3) NCSLab V3,即NCSLab最新版本,采用如圖1所示的4層體系結構,自右向左依次為:Web瀏覽器、中央Web服務器與MATLAB服務器、區(qū)域實驗服務器、實驗臺。
NCSLab采用 Web瀏覽器作為客戶端,并利用AJAX和Flash等技術增強用戶與Web瀏覽器、中央Web服務器之間的交互。Web瀏覽器可以是Windows預裝的 Internet Explorer,也可以是其他瀏覽器,如Maxthon瀏覽器、Firefox瀏覽器等。Web瀏覽器通過HTTP協(xié)議與中央Web服務器交互,從中下載網(wǎng)頁并獲取各種動態(tài)數(shù)據(jù)信息,同時也向中央Web服務器提交用戶操作的相關信息。
中央Web服務器是NCSLab的門戶和核心,它借助MySQL數(shù)據(jù)庫來管理全局資源,如MATLAB服務器、區(qū)域實驗服務器、實驗臺等,并通過程序檢測這些資源的運行狀態(tài)。在多個用戶同時競爭某一實驗設備時,中央Web服務器負責調(diào)度這些用戶的訪問。此外,用戶的個性化數(shù)據(jù)信息(如實驗算法、監(jiān)控組態(tài)等)也保存在此服務器中。
為了實現(xiàn)基于Web的遠程仿真和編譯,NCSLab設置了 MATLAB服務器。MATLAB服務器由MATLAB軟件(內(nèi)嵌Simulink、RTW及相關工具包)、ARM Linux GCC交叉編譯器和MatCom通訊程序組成。MatCom接收來自中央Web服務器用戶編制的控制框圖數(shù)據(jù),將其轉化為 Simulink模型文件(mdl文件);然后,RTW將mdl文件轉化為C代碼,再由ARM Linux GCC對其進行編譯,得到可運行于實驗臺上的可執(zhí)行程序;最后,由MatCom將其傳送回中央Web服務器。
在MATLAB軟件中,除Simulink提供的各種工具箱外,為了配合基本硬件驅動和滿足網(wǎng)絡化控制系統(tǒng)設計的需要,還嵌入了作者所在小組開發(fā)的網(wǎng)絡化控制工具箱[12](Networked Control Toolbox)。該工具箱提供了從硬件接口到網(wǎng)絡應用的眾多模塊,可快速完成本地/網(wǎng)絡化控制系統(tǒng)的設計和分析,大大縮短了系統(tǒng)開發(fā)周期。
與中央Web服務器一樣,區(qū)域實驗服務器也部署在因特網(wǎng)環(huán)境下,負責與實驗臺交互。區(qū)域實驗服務器接受中央Web服務器的管理,為中央Web服務器提供某一實驗臺的啟動、停止或實驗切換等服務。在進行實時控制實驗時,程序自動選取最佳區(qū)域實驗服務器(一般情況下,會選擇與實驗臺在同一區(qū)域的實驗服務器),由其直接向遠程用戶提供實時監(jiān)控服務,這樣可以縮短監(jiān)控數(shù)據(jù)的傳輸路徑,提高監(jiān)控的實時性;另外,區(qū)域實驗服務器的引入,可以避免實驗負載過度集中在中央 Web服務器上,增強了系統(tǒng)的可擴展性。目前,NCSLab部署了2臺區(qū)域實驗服務器,分別位于英國和中國,如圖1所示。
實驗臺由2部分組成:網(wǎng)絡化控制器與實驗設備。
(1) 網(wǎng)絡化控制器。網(wǎng)絡化控制器[14]是作者所在小組為NCSLab開發(fā)的基于以太網(wǎng)的前端控制器,它采用高性能、低功耗的32位ARM微處理器,運行嵌入式實時操作系統(tǒng),主要用于控制算法的具體實現(xiàn)。網(wǎng)絡化控制器可通過網(wǎng)絡接收用戶下載的控制算法以及用于修改控制參數(shù)的指令等,并將控制對象的運行狀態(tài)實時上傳至區(qū)域實驗服務器。
網(wǎng)絡化控制器采用工業(yè)級模塊化設計方式,主要包括3類模塊:電源模塊、主板模塊和擴展功能模塊(如通用 I/O 模塊、高速測速模塊等),各類模塊通過EAB總線[14]集成在一起。主板模塊主處理器采用AT91RM9200,配有高容量的存儲器和其他通用接口,如串口、網(wǎng)線接口、USB接口等。通用I/O模塊提供多路標準輸入輸出接口,如ADC,DAC,DI,DO,PWM 和中斷輸入等;另外,根據(jù)具體實驗設備的需要,網(wǎng)絡化控制器還可擴展其他功能模塊,如用于倒立擺控制系統(tǒng)的高速測速模塊等。
(2) 實驗設備。目前,NCSLab已連入12臺實驗設備,如伺服控制系統(tǒng)(英國)、磁懸浮系統(tǒng)(英國)、直流電機系統(tǒng)(中國)、液位裝置(中國)、球桿系統(tǒng)(中國)、倒立擺系統(tǒng)(中國)等。對于 NCSLab來說,只要實驗設備可由標準電氣信號(電壓或電流)驅動,均可通過網(wǎng)絡化控制器連入其中。
NCSLab為用戶提供了一個完全基于Web的遠程控制和網(wǎng)絡化控制快速開發(fā)方案,僅通過Web瀏覽器即可完成真實實驗室中大部分工作,如控制系統(tǒng)設計、離線仿真、實時控制以及監(jiān)控組態(tài)、實時監(jiān)控等。下面介紹NCSLab實現(xiàn)這些功能的設計機理。
NCSLab為連入其中的每臺實驗設備均配備了演示控制算法,如PID算法、LQG算法等,用戶可直接調(diào)用這些算法進行相應驗證性實驗。
同時,NCSLab也允許用戶基于Web設計自己的控制算法,該方式稱為WebConSim工程,如圖2所示。從圖2可以看出:WebConSim的界面與Simulink類似。左邊為2個模塊庫,即WebConSim公共模塊庫和網(wǎng)絡化控制模塊庫。前者為常用模塊,類似于Simulink中的公共模塊庫;后者對應于作者所在小組開發(fā)的網(wǎng)絡化控制工具箱。鼠標左鍵單擊模塊庫前的“+”,可展開查看模塊庫中的模塊。左鍵單擊某個模塊,可將其放入系統(tǒng)模型中。雙擊系統(tǒng)模型中的模塊,會彈出1個對話框,用于模塊參數(shù)的設置,如:鼠標左鍵雙擊圖2中的“Kd”增益模塊,則會彈出“Gain Block”對話框,用于增益的設置。在選擇好所需模塊后,將前一模塊的輸出與后一模塊的輸入相連,即可按照系統(tǒng)的信號流程將各模塊正確連接起來??梢姡赪ebConSim中構建控制框圖與Simulink類似,操作直觀、簡便。
WebConSim采用HTML和JavaScript混合編寫,用戶打開網(wǎng)頁即可完成自動加載過程,無需安裝任何插件。用戶的繪圖操作命令(如模塊拖入、連線等)由Web瀏覽器本地運行的 JavaScript代碼響應。借助JSON(JavaScript Object Notation),JavaScript 可以在Web瀏覽器本地內(nèi)存中保存數(shù)據(jù),這樣在控制組態(tài)過程中,用戶無需通過網(wǎng)絡與遠程服務器交互,因此,控制框圖設計具有很快的響應速度。用戶在設計過程中,也可以點擊“保存”按鈕,將控制框圖的JavaScript數(shù)據(jù)保存至中央 Web服務器,以備將來從中加載使用。
圖2 基于Web的控制組態(tài)界面Fig.2 Web-based control configuration interface
NCSLab支持基于Web的離線仿真功能,從而可以在進行實時控制實驗前對所設計系統(tǒng)的控制效果進行檢驗。NCSLab為每臺實驗設備建立了數(shù)學模型,當用戶創(chuàng)建 WebConSim工程時,所選設備對象的數(shù)學模型已作為一個模塊包含在 WebConSim界面里。WebConSim控制框圖如圖3所示。用戶完成控制框圖設計后,點擊“運行仿真模型”按鈕,控制框圖的JavaScript數(shù)據(jù)將發(fā)送至中央Web服務器;然后,中央Web服務器再將其發(fā)送至MATLAB服務器并請求其進行“仿真”操作;接著,MATLAB服務器將JavaScript數(shù)據(jù)解析并轉化為對應的mdl文件,并啟動“仿真”操作,產(chǎn)生相應的仿真結果,如文本數(shù)據(jù)、曲線圖像等;最后,MATLAB服務器將仿真結果發(fā)送回中央Web服務器,顯示在Web瀏覽器中,并可以下載和保存。
用戶可以重復設計、修改控制框圖并多次進行離線仿真,直至仿真效果良好。由于AJAX技術的適當應用,控制框圖的設計和仿真以及編譯過程均在同一個頁面里實現(xiàn),用戶無需切換、刷新頁面,因此用戶可以獲得與桌面客戶端軟件類似的體驗。由于算法設計的缺陷或 MATLAB服務器的故障,可能導致仿真操作的失敗,MATLAB服務器能夠監(jiān)視到這種狀況,并在仿真結果頁面中向用戶提供錯誤信息以供調(diào)試。
實現(xiàn)基于Web的實時控制,需要解決以下問題:
(1) 離線仿真時,用的是被控對象的數(shù)學模型,以模擬實際設備的特性。但在進行實時控制實驗時,數(shù)學模型是無意義的,需要直接對硬件接口進行操作。
(2) Simulink模型文件無法在網(wǎng)絡化控制器中直接運行,需要將其轉化為實時可執(zhí)行代碼。
為了解決問題(1),利用網(wǎng)絡化控制工具箱中的相關硬件接口模塊替換掉控制框圖中的仿真模型模塊,以實現(xiàn)對設備對象的實時控制;為了解決問題(2),利用RTW和ARM Linux GCC交叉編譯器將Simulink模型文件轉化為可執(zhí)行代碼。RTW 可將 Simulink模型轉化為 C代碼,該代碼可以在 Unix,Windows,VxWorks,DOS等環(huán)境下運行。由于MATLAB服務器是基于Windows平臺運行的,而網(wǎng)絡化控制器則基于ARM-Linux運行,因此,需要實現(xiàn)在Windows平臺上對C代碼的交叉編譯?;诖耍?MATLAB服務器中安裝了ARM Linux GCC交叉編譯器,在Windows平臺上模擬Linux的運行環(huán)境。編譯后的可執(zhí)行代碼可直接下載至網(wǎng)絡化控制器Linux操作系統(tǒng)下運行。WebConSim控制框圖的編譯過程(圖3)如下:
(1) 將仿真模型無縫替換至實時模型(如圖 4所示)。在此過程中,僅將仿真模型模塊由被控對象對應的硬件接口模塊替換掉,其他模塊不做任何變動。該操作由系統(tǒng)管理員預先定義。
(2) 替換后的控制框圖的 JavaScript數(shù)據(jù)被發(fā)送至中央Web服務器;然后,由其啟動“遠程編譯調(diào)用引擎”,將JavaScript數(shù)據(jù)發(fā)送至MATLAB服務器。
(3) MATLAB服務器對JavaScript數(shù)據(jù)進行解析,將其轉化為對應的Simulink模型文件,并由RTW和ARM Linux GCC將其編譯為可執(zhí)行代碼,最后發(fā)送回中央Web服務器。算法標題將顯示在NCSLab“實驗算法”列表中。
用戶若想啟動實驗,在“實驗算法”列表中選擇該算法,點擊“開始實驗”按鈕,中央Web服務器則將編譯好的算法經(jīng)最佳區(qū)域實驗服務器下載至實驗臺,并立刻執(zhí)行。從圖3可以看出:WebConSim控制框圖的編譯過程雖然復雜,但均是在后臺進行的,用戶無需進行任何干預,也無需詳細了解其工作流程。
圖3 WebConSim的仿真過程Fig.3 Flow of simulation of WebConSim
圖4 仿真模型至實時模型的無縫替換Fig.4 Seamless replacement from simulated model to real-time model
NCSLab為每臺實驗設備的演示算法配備了相應的監(jiān)控組態(tài)頁面,用戶可直接調(diào)用。同時,用戶也可以基于Web組建自己的監(jiān)控頁面,以便在實驗過程中查看自己感興趣的相關信號或修改相關參數(shù),以及通過視頻觀看實驗設備的現(xiàn)場運行狀況等。
控制算法下載至實驗臺后,實驗過程隨之開始,同時實驗臺也將啟動一個監(jiān)控和數(shù)據(jù)采集(Supervisory control and data acquisition,SCADA)服務進程。區(qū)域實驗服務器可以通過 NSP(NetCon Supervisory Protocol)協(xié)議[15]與該服務進程通訊,其過程如下:區(qū)域實驗服務器在指定的端口與網(wǎng)絡化控制器的 SCADA服務進程建立 TCP連接后,向其發(fā)送EXT_GET_PARAMSIGNAL消息;SCADA服務進程向區(qū)域實驗服務器返回所有可調(diào)參數(shù)和可觀測信號的列表,區(qū)域實驗服務器將保存此列表,以備用戶監(jiān)控組態(tài)時選用。
NCSLab基于Web的可視化監(jiān)控組態(tài)頁面如圖5所示。監(jiān)控組態(tài)頁面中提供了多種可視化 Flash虛擬組件,如數(shù)字輸入框、多路開關、滑動條、實時趨勢圖、液晶顯示框、儀表盤、實時視頻等。單擊所需的虛擬組件,即可將其放入組態(tài)頁面內(nèi)。雙擊組態(tài)頁面內(nèi)的組件,可關聯(lián)“信號/參數(shù)”列表中想要觀看的信號或需要調(diào)試的參數(shù)(其步驟為如圖 5所示的①,②和③)。組件的位置和大小可以通過拖放進行調(diào)整,其顯示方式可以在雙擊彈出的設置面板里定制。監(jiān)控組態(tài)頁面也采用了AJAX技術,在Web瀏覽器中離線運行。用戶組態(tài)完成后,點擊“保存”按鈕可將其存儲在中央Web服務器中。
圖5 基于Web的監(jiān)控組態(tài)界面Fig.5 Web-based motoring configuration interface
完成基于Web的監(jiān)控組態(tài)后,點擊“運行”按鈕,即可進行實時監(jiān)控。這時,區(qū)域實驗服務器向網(wǎng)絡化控制器發(fā)送EXT_SELECT_SIGNAL消息,請求其上傳監(jiān)控組態(tài)頁面里選定的“參數(shù)”或“信號”的實時數(shù)據(jù)。網(wǎng)絡化控制器接到命令后,將所選“參數(shù)”或“信號”的最新數(shù)據(jù)打包為EXT_UPLOAD_DATA消息,周期性地傳送至區(qū)域實驗服務器。Web瀏覽器以固定時間間隔輪詢區(qū)域實驗服務器,獲取實時數(shù)據(jù)并將其顯示在虛擬儀器中。用戶若修改調(diào)試參數(shù)的數(shù)值,其操作指令先由中央Web服務器提交至區(qū)域實驗服務器;再由其將參數(shù)名稱和參數(shù)值打包為EXT_SETPARAM消息,發(fā)送至網(wǎng)絡化控制器;最后,網(wǎng)絡化控制器將響應此消息,并完成參數(shù)值修改操作。
在實時監(jiān)控過程中,用戶與Web瀏覽器的交互僅由區(qū)域實驗服務器處理,而不直接訪問網(wǎng)絡化控制器,因此,NCSLab允許多人同時對某一實驗設備進行監(jiān)控。但是,僅允許獲得實驗控制權的唯一用戶修改監(jiān)控頁面中的相關參數(shù)值,其他用戶只可旁觀,這與真實實驗室內(nèi)多人同時在某一實驗設備上做實驗的情形相似。
目前,在如上所述的體系結構和設計機理下,NCSLab已實現(xiàn)如下主要功能:
(1) 為滿足不同區(qū)域、不同語言用戶的需要,NCSLab頁面簡潔、操作簡單,頁面語言可進行中/英文切換,而且連入NCSLab中的實驗臺7×24 h無人看守運行。
(2) NCSLab具有用戶權限設定功能。在NCSLab中,用戶分為2類:有實驗權用戶和有觀看權用戶。前者可以進行實驗的各種操作,如控制系統(tǒng)設計、仿真、實時控制以及監(jiān)控組態(tài)、實時監(jiān)控等,對于某一實驗設備,同一時間僅允許一個用戶具有實驗權;后者只能通過監(jiān)控頁面觀看別人實驗的運行情況,無權對實驗設備做任何修改操作。用戶登入NCSLab后,就被賦予了觀看權,而實驗權的獲得需要申請,并由系統(tǒng)按照一定的排隊策略進行分配。
(3) 用戶身份定義和排隊策略:NCSLab用戶包括本科生、研究生、實驗室老師、專業(yè)研究人員等,基于他們不同的專業(yè)水平,在注冊時系統(tǒng)為其分配不同的優(yōu)先權。當某一實驗設備在眾多請求下產(chǎn)生設備競爭時,NCSLab將綜合考慮用戶的優(yōu)先權和請求先后順序,以確定其在排隊中的位置。另外,在必要的情況下,管理員可對排隊順序進行人工干預。
(4) NCSLab為連入其中的每臺實驗設備提供了豐富的幫助文檔,如設備描述、控制方案簡介、動畫演示等,可快速地指導用戶利用NCSLab進行實驗。
(5) NCSLab為每臺實驗設備均提供了現(xiàn)成的演示算法和監(jiān)控頁面,可直接使用。同時,NCSLab也允許用戶自行設計實驗過程,即通過Web瀏覽器進行控制算法的設計、控制系統(tǒng)的離線仿真、實時控制、監(jiān)控組態(tài)、實時監(jiān)控等。
(6) NCSLab不僅支持遠程的本地控制實驗,還可非常容易地實現(xiàn)網(wǎng)絡化控制實驗(包括離線仿真、半實物仿真、實時控制及監(jiān)控等),以研究網(wǎng)絡誘導時延、數(shù)據(jù)丟包等網(wǎng)絡不確定因素對控制系統(tǒng)造成的影響。
(7) 不同用戶之間可基于 Web實現(xiàn)資源共享。NCSLab不僅能夠實現(xiàn)實驗設備的共享,而且允許用戶共享他人的實驗算法、監(jiān)控組態(tài)等資源。通過共享實驗算法,來促進用戶間的相互學習和算法改進;通過共享監(jiān)控組態(tài),可旁觀他人的實驗過程。
(8) NCSLab具有實時視頻反饋功能,增強了遠程控制實驗的臨場感,并開辟了論壇網(wǎng)頁,可供用戶進行學術和經(jīng)驗交流。
(9) NCSLab具有較強的可擴展性,既可以應用在因特網(wǎng)環(huán)境下,整合全球范圍內(nèi)的實驗設備;也可以直接布署在校園局域網(wǎng)內(nèi),便于高校的教學和科研。
(10) NCSLab具有較強的設備安全和網(wǎng)絡安全措施。設備安全措施根據(jù)實驗設備的不同而不同,以保證實驗設備的 7×24 h無人看守運行;同時,在NCSLab的各個環(huán)節(jié)也都采取了相應的網(wǎng)絡安全措施,如在網(wǎng)絡化控制系統(tǒng)中,對傳感器、控制器、執(zhí)行器之間的通信數(shù)據(jù)進行了加解密等安全處理。
在NCSLab中,每臺實驗設備通過電纜與1臺本地網(wǎng)絡化控制器相連,構成本地控制系統(tǒng);也可與其他遠程網(wǎng)絡化控制器協(xié)作,構成網(wǎng)絡化控制系統(tǒng)[16-18](Networked control systems, NCS)。本文以位于Glamorgan大學的伺服控制實驗裝置(以下簡稱伺服裝置)作為被控對象,介紹如何在NCSLab中進行遠程控制實驗和網(wǎng)絡化控制實驗的設計與實現(xiàn)。
伺服裝置包括直流電機、磁性負載、傳動裝置、角位移傳感器、放大器和電源??刂颇繕藶椋和ㄟ^控制DC伺服電機,使角位移跟蹤給定值。伺服裝置為單輸入單輸出系統(tǒng),輸入為控制電壓信號(-10~10 V),輸出為角位移信號(-120°~120°)。
所謂遠程本地控制(簡稱遠程控制)是指遠程用戶通過網(wǎng)絡進行實驗,但控制系統(tǒng)在結構上屬于本地控制,即僅有1臺網(wǎng)絡化控制器與被控對象通過電纜直接連接,構成閉環(huán)控制系統(tǒng)。用戶憑借注冊的用戶名和密碼進入NCSLab后,首先看到的是NCSLab設備列表。點擊“格拉摩根伺服控制平臺”,可查看該設備的相關文檔和設備的實時圖像,以及為其提供的多種演示控制算法及監(jiān)控頁面等。
目前,NCSLab提供 2種控制框圖設計方式:WebConSim方式和常規(guī) Simulink方式,這里采用前者。點擊“算法設計”中的“創(chuàng)建新工程”,即可打開WebConSim控制框圖組態(tài)頁面。該頁面內(nèi)已存在1個模塊“Plant”,即伺服裝置的數(shù)學模型:
式中,G(z-1)為離散傳遞函數(shù);z-1為單位延遲因子。
這里采用PID算法對伺服裝置進行控制,并取控制器參數(shù)分別為kp=0.5,ki=0.5和kd=0.03,設計的控制框圖如圖2所示。點擊“運行仿真模型”按鈕,離線仿真結果如圖6所示,并可點擊曲線下方的超級鏈接下載仿真數(shù)據(jù)。
從圖6可以看出:離線仿真結果令人滿意。此時,用戶無需對控制框圖做任何改動,只需設置相關實時參數(shù),如采樣周期、求解器等;然后,點擊“編譯實時模型”按鈕即可進行編譯,生成可在網(wǎng)絡化控制器中運行的可執(zhí)行代碼,并最終顯示在“實驗算法”列表中。
圖6 基于Web的離線仿真結果Fig.6 Web-based off-line simulation results
在申請到實驗控制權后,從“實驗算法”列表中選擇自己先前編制的算法,點擊“開始實驗”按鈕,即可進行遠程控制實驗。若想中途停止實驗,則點擊“停止實驗”按鈕即可,此時實驗臺將切換為默認的算法。
在遠程控制實驗過程中,用戶與實驗臺通常處于異地,為了實現(xiàn)對系統(tǒng)運行狀況的實時觀測和相關參數(shù)的在線修改,需要設計相應的遠程實時監(jiān)控頁面。在NCSLab中,點擊“新建監(jiān)控組態(tài)”按鈕,用戶可基于Web自行組建監(jiān)控頁面。本實驗的監(jiān)控組態(tài)頁面如圖5所示。這里選擇了4種組件:“數(shù)字輸入框”用于PID參數(shù)的調(diào)試;“液晶顯示框”用于系統(tǒng)輸出(角位移)的實時顯示;“實時趨勢圖”用于系統(tǒng)輸出與設定值的實時曲線顯示;“實時視頻”用于觀看設備的現(xiàn)場運行情況。
點擊“運行”按鈕,實時監(jiān)控頁面如圖7所示。由圖6和圖7可以看出:由于所建的伺服裝置數(shù)學模型較精確,利用相同的PID控制器參數(shù),離線仿真結果與實際控制結果相近。
圖7 基于Web的實時監(jiān)控界面Fig.7 Web-based real-time motoring and supervisory control interface
圖8 網(wǎng)絡化預測控制WebConSim框圖Fig.8 WebConSim diagram of NPC
對于網(wǎng)絡化控制實驗,其設計流程與上述遠程控制實驗類似,這里僅介紹其控制系統(tǒng)組成、控制框圖設計及實驗結果。
在伺服裝置的網(wǎng)絡化控制系統(tǒng)中,共有2臺網(wǎng)絡化控制器,分別為位于英國Glamorgan大學的控制器A(IP:193.63.131.219)和位于中國中科院自動化所的控制器B(IP:159.226.20.109)。網(wǎng)絡化控制器A作為驅動執(zhí)行單元與角位移采樣單元,與伺服裝置通過電纜直接連接;網(wǎng)絡化控制器B作為控制器單元,通過因特網(wǎng)與控制器A進行數(shù)據(jù)交換。
由于2個節(jié)點間通訊距離較遠,數(shù)據(jù)在傳輸過程中存在較大的網(wǎng)絡時延和較頻繁的數(shù)據(jù)丟包,這里采用網(wǎng)絡化預測控制(Networked predictive control, NPC)[16,19]策略對其進行補償。NPC的基本思想為:基于被控對象的數(shù)學模型,在控制器端對未來時刻的若干步輸出進行預測,進而計算出未來若干步的控制量,并利用網(wǎng)絡“包傳輸”的特性,將此序列傳送到執(zhí)行器端;在執(zhí)行器端設置足夠大的緩沖區(qū),根據(jù)所測網(wǎng)絡時延,提取出合適的控制量輸出給被控對象。伺服裝置NPC系統(tǒng)的WebConSim框圖如圖8所示,其中:左邊為控制器B(控制器端)的框圖,采用MPC算法計算控制預測序列;右邊為控制器A(傳感-執(zhí)行器端)的框圖,根據(jù)網(wǎng)絡環(huán)路時延,從最新控制預測序列中選擇針對本時刻的預測控制量進行輸出,并將最新采樣數(shù)據(jù)發(fā)送至控制器端。將這2個控制框圖分別編譯并下載至對應的控制器中,并建立監(jiān)控組態(tài)頁面對其進行監(jiān)控,網(wǎng)絡化控制結果如圖9所示。從圖9可以看出:NPC策略可以有效地補償隨機網(wǎng)絡時延、數(shù)據(jù)丟包等現(xiàn)象,從而有效改善網(wǎng)絡化控制系統(tǒng)性能。
圖9 網(wǎng)絡化控制系統(tǒng)實驗結果Fig.9 Experimental results of NCS
(1) 由于 4層體系結構的提出及 Web 2.0,J2EE和AJAX等最新技術的應用,NCSLab允許用戶訪問位于全球各地連入其中的實驗設備,并為其提供了一個完全基于 Web的遠程控制和網(wǎng)絡化控制的設計與實現(xiàn)平臺,可快速、靈活地進行控制算法的設計、控制系統(tǒng)的離線仿真、遠程編譯、實時控制以及可視化監(jiān)控組態(tài)、實時監(jiān)控等。
(2) 與其他遠程控制實驗室相比,NCSLab更為突出的功能是其支持網(wǎng)絡化控制實驗,這將對NCS的理論研究和工程實現(xiàn)產(chǎn)生較大的促進作用。
[1] Aktan B, Bohus C A, Crowl L A, et al. Distance learning applied to control engineering laboratories[J]. IEEE Transactions on Education, 1996, 39(3): 320-326.
[2] Shaheen M, Loparo K A, Buchner M R. Remote laboratory experimentation[C]//Proceedings of the American Control Conference. Philadelphia, 1998: 1326-1329.
[3] Ma J, Nickerson J V. Hands-on, simulated, and remote laboratories: A comparative literature review[J]. ACM Computing Surveys, 2006, 38(3): Article 7.
[4] Rodriguez F J, Giron C, Bueno E J, et al. Remote laboratory for experimentation with multilevel power converters[J]. IEEE Transactions on Industrial Electronics, 2009, 56(7): 2450-2463.
[5] Kikuchi T, Kenjo T, Fukuda S. Remote laboratory for a brushless DC motor[J]. IEEE Transactions on Education, 2001, 44(2): 12.
[6] Yeung K, Huang J. Development of the Internet based control experiment[C]//Proceedings of the 40th IEEE Conference on Decision and Control. Oriando, 2001: 2809-2815.
[7] Sanchez J, Dormido S, Pastor R, et al. A Java/MATLAB based environment for remote control system laboratories: Illustrated with an inverted pendulum[J]. IEEE Transactions on Education,2004, 47(3): 321-329.
[8] Tzafestas C S, Palaiologou N, Alifragis M. Virtual and remote robotic laboratory: Comparative experimental evaluation[J].IEEE Transactions on Education, 2006, 49(3): 360-369.
[9] Ko C C, Chen B M, Chen J P, et al. Development of a Web-based laboratory for control experiments on a coupled tank apparatus[J]. International Journal of Engineering Education,2005, 21(6): 1017-1030.
[10] Casini M, Prattichizzo D, Vicino A. The Automatic Control Telelab: A user-friendly interface for distance learning[J]. IEEE Transactions on Education, 2003, 46(2): 252-257.
[11] Garcia-Zubia J, Lopez-de-Ipina D, Orduna P, et al. Questions and answers for designing useful WebLabs[J]. International Journal of Online Engineering, Special Issue REV 2006, 2(3):1-6.
[12] Hu W S, Liu G P, Rees D, et al. Design and implementation of Web-based control laboratory for experiment devices in geographically diverse locations[J]. IEEE Transactions on Industrial Electronics, 2008, 55(6): 2343-2354.
[13] Hu W S, Liu G P, Rees D, et al. Design of Web-based real-time control laboratory for diversely located test rigs[C]//Proceedings of the 17th IFAC World Congress. Seoul, 2008: 12643-12648.
[14] Bian H B, Liu G P, Dong Z. Structure design and application of embedded Ethernet based control systems[C]//Proceedings of the 2007 IEEE International Conference on Networking, Sensing and Control. London, 2007: 47-51.
[15] Zhu Y Z, Zheng G, Dong Z, et al. Design of supervisory software for Ethernet-based control systems[C]//Proceedings of 2007 IEEE International Conference on Networking, Sensing and Control. London, 2007: 36-41.
[16] Liu G P, Xia Y, Chen J, et al. Networked predictive control systems with random network delays in both forward and feedback channels[J]. IEEE Transactions on Industrial Electronics, 2007, 54(3): 1282-1297.
[17] Hespanha J P, Naghshtabrizi P, Xu Y G. A survey of recent results in networked control systems[J]. Proceedings of the IEEE,2007, 95(1): 138-162.
[18] Cloosterman M B G, van de Wouw N, Heemels W P M H, et al.Stability of networked control systems with uncertain time-varying delays[J]. IEEE Transactions on Automatic Control,2009, 54(7): 1575-1580.
[19] Hu W S, Liu G P, Rees D. Design and implementation of networked predictive control systems based on round trip time delay measurement[C]//Proceedings of the 2006 American Control Conference. Minneapolis, 2006: 674-679.