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

遠程實驗室仿真與算法生成的一體化軟件設計

2023-02-20 13:42:00夏志強胡文山劉國平雷忠誠
實驗室研究與探索 2023年11期
關鍵詞:實驗系統設計

夏志強,胡文山,劉國平,周 洪,雷忠誠

(1.武漢大學電氣與自動化學院,武漢 430072;2.南方科技大學電子與電氣工程系,廣東深圳 518055)

0 引言

實驗教學是高校培養高質量人才的重要組成部分[1-2]。傳統的線下實驗存在實驗場地有限、器材成本高、實驗室開放時間短等問題[3-5],很難充分利用實驗資源,從而影響實驗教學效果。互聯網技術的發展,為實驗教學帶來了解決方案,集網絡技術、通信技術和多媒體技術于一體的遠程在線實驗室可以克服線下實驗室的諸多問題,真正實現實驗資源的充分利用和共享[6-7]。

國內外科研機構研發了眾多虛擬仿真實驗室[8-10]和遠程控制實驗室[11-13]。大多數遠程控制實驗室需要第三方軟件或系統(如Matlab、LabVIEW 等)的支持。Rubio等[14]設計的SLD(Sistema de Laboratorios a Distancia)允許用戶運行Matlab/Simulink算法文件,或借助本地計算機上的Matlab 軟件修改算法。張治等[15]設計了基于RaspberryPi 的飛控系統半實物仿真平臺,實現了基于Matlab/Simulink 軟件設計的飛控仿真模型在硬件平臺上的實時運行。對于武漢大學設計的網絡化控制系統實驗室(NCSLab)[16],前端瀏覽器為用戶提供自主算法設計服務,服務器端則通過遠程調用Matlab軟件的方式完成仿真或算法編譯。

借助第三方軟件搭建遠程控制實驗室可以降低實驗室開發的難度,但存在依賴性強、靈活性差、效率低以及數據和隱私泄露問題。針對以上問題,在已有的NCSLab前端與實驗設備的基礎上,本文設計了一款面向遠程實驗室仿真與算法生成的一體化軟件M2PLink(mathematics to practice link),可根據用戶自主設計的Web 端控制框圖進行仿真實驗或編譯生成可執行性算法。

1 NCSLab簡介

NCSLab誕生于2006 年,是為自動化專業教學而研發的在線實驗室,用戶可以隨時隨地通過瀏覽器訪問并遠程控制實驗。

1.1 NCSLab整體架構

基于B/S(browser/server)架構,NCSLab已形成了如圖1 所示的以前端瀏覽器、中央服務器集群、實驗服務器和實驗設備為主體的4 層結構。

圖1 NCSLab的4層架構

瀏覽器層主要提供算法設計和監控組態服務;中央服務器集群包括Nginx代理服務器、仿真/編譯服務器、超文本預處理器(PHP)、文件管理服務器以及MySQL服務器;實驗服務器層由多臺管理實驗設備的實驗服務器和FFmpeg 服務器組成;實驗設備層包含20類虛擬實驗設備與6 類實體實驗設備(實驗設備參數包括電動機轉速、電動機角度、伺服位置、氣浮高度、風扇轉速和水箱液位高度)。

1.2 NCSLab設計思路

作為混合類在線實驗室,NCSLab不僅支持仿真實驗,還支持涵蓋在線算法設計、遠程配置、遠程監控和實時控制功能的遠程控制實驗,其設計思路如圖2所示。

圖2 NCSLab設計思路

在瀏覽器端為用戶提供自主算法設計界面(見圖2 中的自主算法設計界面),界面包含模塊庫、操作欄和設計區三部分。使用時以拖拽的形式將模塊從模塊庫拖入設計區并連線,完成算法框圖的設計;點擊模塊和配置參數按鈕進行參數的設置,再點擊開始仿真或開始編譯按鈕,前端將框圖算法以json 形式發送至后端。

仿真/編譯服務器在接收到前端的請求后生成對應的M文件并遠程調用Matlab軟件,生成仿真結果或可執行算法文件,過程如圖2 中現系統實現部分所示。

進行仿真實驗時,用戶可以在前端瀏覽器界面查看仿真結果;進行遠程控制實驗時,用戶通過實驗服務器將可執行算法下載至樹莓派控制器并開始遠程實驗,包含虛擬設備控制實驗與實體設備控制實驗2 種。

此外,進行遠程控制實驗時用戶可在瀏覽器端借助豐富的監控組態界面進行遠程配置、遠程監視與實時控制操作,包括多種輸入組件(數字輸入、滑動輸入)、多種輸出組件(曲線圖、數字顯示、三維模型和攝像頭)及操作按鈕。

1.3 現系統不足與新系統構思

NCSLab設計思路中,自主算法設計功能是整個系統的重要組成部分,允許學生以模塊化的形式設計所學的各種控制算法,如比例-積分-微分(PID)控制、串級控制等,幫助學生加深對算法的理解,但在后端實現過程中需要遠程調用第三方軟件Matlab。為了防范可能存在的禁用和數據泄露風險,同時提高系統效率,對自主算法設計功能的后端實現進行新構思,即自主設計一款適配于NCSLab前端與硬件的仿真和算法生成一體化軟件,接收前端框圖算法的json 信息并生成仿真與編譯的可執行文件,過程如圖2 中新系統構思部分所示。

2 M2PLink設計與實現

新系統相較于現系統,只要修改自主算法設計功能的后端實現,其余部分均無須改動,包括前后端數據傳遞的形式。本節中在介紹后端輸入的基礎上,對M2PLink進行設計。

2.1 M2PLink輸入

后端的輸入為框圖算法的json 信息,圖3 展示了框圖算法與json 信息的對應關系。生成的json 信息中包含了用戶名稱、算法名稱、解算器參數、模塊信息和模塊間的連線信息。

圖3 框圖算法與json信息對應關系

2.2 M2PLink架構

基于框圖算法的json 信息對M2PLink 進行設計,整體架構可分為4 層,即解析層、處理層、輸出層和封裝層,如圖4 所示。

圖4 M2PLink架構

(1)解析層。在接收到瀏覽器傳遞的框圖算法信息后系統開始解析,即根據其中的模塊信息與連線信息創建出對應的實例,為遍歷輸出鏈、檢測代數環和生成代碼做準備。

(2)處理層。中間處理操作包括解算器設置、輸出鏈建立和代數環檢測。設置解算器是為了在生成代碼時寫入對應的解算算法,建立正確的輸出鏈是保證框圖算法運行結果準確的前提,代數環檢測則可以有效避免算法進入死鎖狀態。

(3)輸出層。主要負責代碼生成,生成的代碼包括仿真/編譯主程序、解算器代碼、算法功能代碼以及其他文件(視仿真或編譯條件而定)。

(4)封裝層。仿真主要封裝核心代碼、步長控制代碼和結果存儲代碼,編譯則需要封裝核心代碼、通信代碼、定時器代碼與硬件接口代碼,保障遠程控制實驗的正常進行。最后,系統進行編譯操作,生成可執行性文件。

2.3 解算器設計

控制框圖算法中,除了較容易實現的四則運算與邏輯運算外,還包含了一類特殊的模塊(積分、傳遞函數和狀態空間),這類模塊的輸入與輸出存在微分關系,求解此類模塊的輸出等同于求解微分方程,因此可以根據不同的微分方程求解算法設計多種求解器,下面介紹常用的四階龍格-庫塔法。

四階龍格-庫塔法在每個時間步長內執行以下計算:

式中:yi為當前時間步長的解值;yi+1為下一個時間步長的解值;k1、k2、k3和k4為4 個中間值。k1、k2、k3、k4的計算式為:

式中:ti為當前時刻;h為步長;f(t,y)表示常微分方程的右側,即導數。

2.4 模塊化設計

根據前端瀏覽器傳遞的json 信息及解算器設計思路可為模塊設計統一的模板(Block類)。

每個模塊含有類型、模塊名、模塊id、模塊所處位置(用于判斷模塊是否在子系統中)、若干輸入端口、若干輸出端口、若干狀態等基本信息。每個模塊的特性是通過繼承Block 類并覆寫部分方法實現的,各方法的功能如表1 所示。

表1 Block類中各方法的作用

不同于其他模塊,在進行實驗設備(電動機、風扇等)模塊設計時需要區分仿真模型與實體模型。仿真模型是通過機理建模或系統辨識得到的,一般為傳遞函數,而實體模型中包含了硬件接口。

圖5 展示了電動機模塊的仿真與實體模型。仿真模型包含了限幅模塊、傳遞函數模塊與延時模塊,而在實體模型中,通過串口通信的方式發送控制信號和接收編碼器測得的電動機轉速信號。

圖5 電動機的仿真與實體模型

2.5 輸出鏈建立與代數環檢測

2.5.1 輸出鏈建立

控制框圖的輸出順序一般考慮以下幾個方面:

(1)直聯饋通模塊的輸出與輸入有關,因此輸出鏈中與直聯饋通模塊輸入端口相連的模塊要先于直聯饋通模塊出現。

(2)多輸入模塊需要等所有的輸入更新完后再計算輸出。

(3)子系統使得模塊處于不同層級,一般而言,子系統中模塊的計算優先級高于子系統之后的所有模塊。

鑒于多層級遍歷流程較為復雜,首先采用虛化子系統的方式將多層級系統轉換為單層級系統。圖6 展示了一個2 層系統轉換為單層系統的過程。前端瀏覽器將算法信息發送至M2PLink 后,在解析連線信息前對子系統的連線信息進行修改,即用①、③號連線分別替代原系統中的②、④號連線,同時忽略模塊所處的位置信息。這種方式實現了對子系統模塊的虛化,將子系統中的模塊置于了第1 層系統。

圖6 子系統處理

建立單層級系統輸出鏈遍歷流程,遍歷遵循以下規則:

(1)從“起始”模塊沿輸入連線進行遍歷,首次遍歷的“起始”模塊為示波器類模塊,非首次遍歷的“起始”模塊為本輪遍歷之前發現的非直聯模塊。

(2)遍歷過程若發現多輸入模塊則按多輸入模塊的輸入端口號依次遍歷。

(3)遍歷的停止條件為發現“終止”模塊,包括信號源類模塊、非直聯模塊和本次遍歷前“已遍歷”的模塊。

(4)遍歷到“終止”模塊后,系統會從“終止”模塊起沿遍歷鏈方向添加模塊至輸出鏈。多輸入模塊需在所有輸入端口支鏈添加完再添加。

圖7 展示了上述輸出鏈建立思路。由于算法中只存在傳遞函數這一個非直聯模塊,該算法只需進行2次遍歷。

圖7 輸出鏈建立思路

1 次遍歷以示波器為“起始”模塊,并沿輸入連線進行,直至遇到第1 個雙輸入乘積模塊。接著,系統先沿乘積模塊的1 號端口遍歷至正弦波模塊,再沿乘積模塊的2 號端口遍歷至傳遞函數模塊(非直聯)。最后,從“終止”模塊起沿遍歷路徑添加模塊至輸出鏈,得到1次遍歷的模塊輸出順序,如圖7數字1~8所示。

2 次遍歷以傳遞函數模塊為“起始”模塊,并沿輸入連線遍歷至雙輸入求和模塊。接著,系統先沿求和模塊的1 號端口遍歷至常數模塊,再沿求和模塊的2號端口遍歷至“已遍歷”的除法模塊。最后,從“終止”模塊起沿遍歷路徑添加模塊至輸出鏈(其中除法模塊和傳遞函數模塊在1 次遍歷中已添加,本次不添加),得到2 次遍歷的模塊輸出順序,如圖7 數字9~12所示。

2.5.2 代數環檢測

代數環檢測是與輸出鏈遍歷同時進行的,在每次遍歷過程中系統會記錄本輪遍歷到的所有模塊,當已遍歷的模塊再次出現時,則說明算法中存在代數環。

2.6 代碼生成

編譯代碼與仿真代碼生成流程相同,需要生成基于控制框圖信息的算法功能代碼和其他靜態代碼(不會因框圖信息變化而改變)兩部分,不同之處在于兩者生成的實驗設備實例與靜態代碼文件,圖8(a)展示了編譯代碼的生成過程,圖8(b)展示了仿真與編譯代碼生成時的區別。

圖8 代碼生成

算法功能代碼主要包括各種數據結構的定義、算法的初始化方法、輸出方法、微分方法、狀態更新方法等。各方法均由各模塊生成的代碼拼接而成,以輸出方法生成為例,基于建立的輸出鏈,系統會按順序調用每個模塊的輸出代碼并寫入模塊功能代碼的輸出方法中,最終生成整個算法的輸出方法,供解算器調用。

存放于靜態文件庫中的文件主要包括仿真/編譯主程序、解算器代碼等,在生成代碼時只需將其拷貝進用戶文件夾。此外,仿真的主程序與實物控制的主程序存在差別,仿真的最終任務是獲取示波器的輸入數據并傳輸給瀏覽器進行繪圖,而在實物控制中需要調用通信代碼實現前端瀏覽器與樹莓派間的動態交互。動態交互的實現方式如圖9 所示。瀏覽器與實驗服務器間采用超文本傳輸協議(HTTP)進行通信,而實驗服務器與樹莓派間使用的是傳輸控制協議(TCP),交互的2 種方式為狀態監測與參數調試。

圖9 瀏覽器與樹莓派間的動態交互

(1)狀態監測。將算法下載至樹莓派,用戶在前端瀏覽器進行信號或參數選擇后,實驗服務器便會給樹莓派發送一條信號選擇消息,請求樹莓派將信號或參數信息上傳至前端瀏覽器界面;樹莓派在接到該消息后,便將對應的信號或參數的最新數據打包,并通過實驗執行模塊放入實時數據池。最后,這些實驗數據通過WebSocket實時發送給前端組態。

(2)參數調試。用戶在前端瀏覽器進行參數修改后,調試指令將由前端瀏覽器界面提交給實驗服務器,數據交換模塊再將參數名稱和數值打包為參數設置指令并通過實驗執行模塊發送給樹莓派控制單元,最后樹莓派響應該指令,完成控制參數修改。

3 系統測試與應用

將M2PLink 部署在NCSLab 上,為了驗證其計算的準確性、算法生成功能及對系統效率提高的積極作用,本節中將進行仿真實驗、實體實驗和效率測試實驗,并介紹其在教學上的應用。

3.1 仿真實驗

在NCSLab平臺搭建仿真框圖(見圖10),并分別使用M2PLink和Matlab 軟件進行仿真實驗。驗證輸出鏈建立流程、子系統實現和四階龍格-庫塔法編程的正確性。實驗中解算器使用的是四階龍格-庫塔法,仿真步長為0.2 s,得到前2.0 s示波器輸出結果,如表2所示。比較2 份實驗數據,誤差不大于10-12,可認為2 份實驗數據相同。因此,輸出鏈遍歷過程、子系統設計和四階龍格-庫塔法編程均得到實現。

表2 仿真實驗示波器輸出結果

圖10 用于測試的仿真框圖算法

3.2 實體實驗

單容水箱液位控制系統是自動化實驗教學中的一種常見實驗裝置,主要由水箱、執行器、傳感器和控制器組成。系統以水箱為被控對象,水泵為執行器,進行實驗時改變水箱液位的設定值,控制器通過調節水泵的供水量從而實現對液位的控制。

為了驗證系統的算法生成功能,在前端瀏覽器搭建水箱液位串級控制算法并使用M2PLink 生成可執行算法文件,之后進行實體實驗,如圖11 所示。串級控制算法中主、副控制器均采用比例-積分(PI)控制,主控制參數為液位高度,副控制參數為水泵的進水速度。監控組態界面顯示了液位穩定于100 mL 后將設定值增加到120 mL的控制效果,實驗結果符合預期,驗證了M2PLink的編譯功能。

圖11 水箱液位串級控制算法與監控組態畫面

3.3 系統效率測試

新系統中,M2PLink 服務器與原系統的Matlab 服務器配置一致,如表3 所示。分別使用2 個服務器對水箱液位串級控制算法進行仿真與編譯操作,兩者所耗時間如表4 所示。由于基于M2PLink的NCSLab 系統比基于Matlab 的NCSLab 系統少了遠程調用操作,新系統的效率遠高于原系統。水箱液位串級控制算法與監控組態畫面如圖11 所示。

表3 服務器參數數據

表4 仿真/編譯時間

3.4 教學應用

目前,M2PLink服務器已經部署于網絡化控制系統實驗室中并用于自動化專業實驗教學。在2023 年春季,武漢大學電氣與自動化學院的82 名自動化專業學生使用新系統進行了電動機轉速PID 控制、控制系統穩定性分析和二階系統的瞬態響應與穩定性3 個實驗,學生們對M2PLink服務器反響強烈。相較于使用Matlab服務器的方式,新系統生成仿真結果與算法的效率得到了大幅提升,減少了等待時間。

4 結語

設計了一款面向遠程實驗室仿真與算法生成的一體化軟件(M2PLink),處理了代碼生成中的模塊化設計、輸出鏈建立、解算器設計等問題,并通過仿真實驗、實體實驗和效率測試實驗驗證了M2PLink 計算的精確性、編譯功能的完整性及對提升系統效率的積極作用。本軟件的開發,旨在替代NCSLab 中的Matlab/Simulink以實現實驗室平臺的自主可控,目前實現了仿真、算法生成等功能。

猜你喜歡
實驗系統設計
記一次有趣的實驗
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
做個怪怪長實驗
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
NO與NO2相互轉化實驗的改進
主站蜘蛛池模板: 99热这里都是国产精品| 久久久精品无码一二三区| 亚洲综合经典在线一区二区| 国产爽歪歪免费视频在线观看| 国产精品美人久久久久久AV| 国产毛片久久国产| 国产福利在线观看精品| 91无码视频在线观看| 久久 午夜福利 张柏芝| 欧美精品不卡| 91国内在线观看| 美女视频黄又黄又免费高清| 婷婷激情亚洲| 在线精品自拍| 一级毛片无毒不卡直接观看| 亚洲日韩每日更新| 日韩欧美色综合| 国产区在线看| 日韩av手机在线| 狠狠干欧美| 国产精品人人做人人爽人人添| 91亚洲影院| 国产在线一区视频| 成人91在线| 亚洲AV无码乱码在线观看裸奔 | 亚洲Av激情网五月天| AV不卡在线永久免费观看| 久久国产精品国产自线拍| 直接黄91麻豆网站| 国产凹凸一区在线观看视频| 欧美一级大片在线观看| 国产激情第一页| 免费观看成人久久网免费观看| 99青青青精品视频在线| 亚洲成人在线免费观看| 日本免费a视频| 3344在线观看无码| 操国产美女| 国产精品hd在线播放| 欧美日韩激情| 大乳丰满人妻中文字幕日本| 人妻中文久热无码丝袜| 色婷婷综合在线| 国产福利不卡视频| 青青草原国产免费av观看| 亚洲一区二区三区香蕉| 欧美精品xx| 日本免费精品| 亚洲中文精品久久久久久不卡| 亚洲精品成人片在线观看| 无码福利日韩神码福利片| 国产又粗又爽视频| 亚洲国产亚综合在线区| 中国成人在线视频| 亚洲无码不卡网| 亚洲无限乱码| 欧美伦理一区| 免费看黄片一区二区三区| 欧美 亚洲 日韩 国产| 婷婷色狠狠干| 中国一级特黄大片在线观看| 国产青榴视频在线观看网站| 国产精品毛片一区视频播| 午夜a视频| 深夜福利视频一区二区| 韩国v欧美v亚洲v日本v| 久久夜色撩人精品国产| 国产男女免费完整版视频| 谁有在线观看日韩亚洲最新视频 | 色偷偷综合网| 白丝美女办公室高潮喷水视频| 久久久噜噜噜久久中文字幕色伊伊 | 99久久成人国产精品免费| 国产女同自拍视频| 婷婷亚洲天堂| 四虎国产在线观看| 国产精品太粉嫩高中在线观看| 国产精品丝袜视频| 亚瑟天堂久久一区二区影院| 亚洲日韩高清无码| 欧美中文一区| 999精品在线视频|