亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于機電液系統(tǒng)的聯(lián)合仿真分析平臺研究

        2024-01-16 06:20:42盧寧陳天保鄭宏遠龔濤
        機床與液壓 2023年24期
        關(guān)鍵詞:二次開發(fā)液壓缸命令

        盧寧,陳天保,鄭宏遠,龔濤

        (1.北京建筑大學機電與車輛工程學院,北京 100044;2.北京市建筑安全監(jiān)測工程技術(shù)研究中心,北京 100044)

        0 前言

        隨著計算機技術(shù)的進步[1],虛擬樣機技術(shù)、參數(shù)化建模和計算機輔助工程(Computer Aided Engineering,CAE)技術(shù)得到快速發(fā)展[2-3],其中,虛擬仿真技術(shù)在工業(yè)生產(chǎn)應(yīng)用中日益發(fā)揮著重要的作用。機電液一體化技術(shù)因涉及機械、電子、液壓、控制、氣動、軟件等多個不同的學科領(lǐng)域[4],研究較為復雜。因此,機電液系統(tǒng)的虛擬仿真技術(shù)逐漸發(fā)展起來。

        針對機械模型、液壓模型、控制模型,國外科技公司開發(fā)了多種強大的計算機輔助設(shè)計與仿真軟件。目前,國內(nèi)外還沒有成熟的機電液一體化仿真平臺商業(yè)軟件可以建立完整的機電液聯(lián)合仿真模型[5]。因此,通過多軟件聯(lián)合仿真實現(xiàn)機電液一體化的功能十分必要。文獻[6]利用ADAMS、Simulink、AMESim的聯(lián)合仿真接口,建立一種六自由度運動平臺的機電液一體化虛擬實驗系統(tǒng),為運動平臺的優(yōu)化奠定了基礎(chǔ)。文獻[7]基于ADAMS、Simulink、AMESim的機電液聯(lián)合仿真技術(shù),比較了傳統(tǒng) PID控制和自適應(yīng)模糊PID控制2種控制方式,得出了自適應(yīng)模糊PID控制方式系統(tǒng)響應(yīng)的跟隨性能更好的結(jié)論。文獻[8]建立機電液聯(lián)合仿真模型,驗證了盤型閘的恒減速制動比二級制動效果更優(yōu)異。

        由此可見,多軟件的機電液聯(lián)合仿真技術(shù)在應(yīng)用研究中已經(jīng)越來越主流。但各軟件間的官方數(shù)據(jù)傳輸接口并沒有完成互通,研究人員在實驗過程中,若要調(diào)整仿真參數(shù),則首先需要切換至對應(yīng)軟件,找到指定模塊中的對應(yīng)參數(shù)進行修改。當控制系統(tǒng)模型較為復雜時,頻繁地調(diào)參及不直觀的變量位置會使得仿真效率較低。為了解決這個問題,本文作者提出建立一個第三方的仿真控制平臺管理各仿真軟件的數(shù)據(jù),以此簡化仿真操作流程并提高仿真效率。

        在以Simulink為主[9]的聯(lián)合仿真的基礎(chǔ)上,對各軟件的數(shù)據(jù)傳輸接口和仿真語言深入研究,通過Python分別建立與ADAMS、Simulink和AMESim的仿真交互接口,提出一種以TCP/IP作為與ADAMS命令交互的通信協(xié)議的方法;以MATLAB虛擬環(huán)境為中介,Python通過執(zhí)行MATLAB函數(shù)實現(xiàn)與Simulink的交互;以AMESim的Python應(yīng)用程序編程接口(Application Programming Interface,API)實現(xiàn)編程建模,該代碼中包含了液壓系統(tǒng)中的所有信息,從而實現(xiàn)與AMESim中元件的交互。以此構(gòu)建出能與各軟件交流的第三方仿真集成平臺,并能在該平臺直接修改各軟件的主要仿真參數(shù),通過該聯(lián)合仿真平臺進行仿真實驗,驗證聯(lián)合仿真平臺的可行性、可操作性強和仿真效率高。

        1 仿真平臺的架構(gòu)設(shè)計

        仿真平臺的總體架構(gòu)設(shè)計使用Python作為開發(fā)語言。作為一種解釋性語言[10],Python不僅擁有強大的標準庫,還擁有龐大的第三方開源庫。而PyQt則是Python對Qt庫進行完整封裝的跨平臺GUI庫,它提供窗口控件集合[11]的界面設(shè)計方式和能自動轉(zhuǎn)換成Python代碼,可以極大提高開發(fā)效率并高效運行。因此,綜合考慮開發(fā)難度、靈活性和可移植性,使用Python作為開發(fā)語言更合適。開發(fā)的仿真平臺人機交互界面如圖1所示,通過平臺左邊的圖標和對應(yīng)的按鈕可切換至不同的軟件設(shè)置界面。

        圖1 人機交互界面Fig.1 Human-machine interface

        仿真平臺的總體架構(gòu)如圖2所示,它是由仿真平臺客戶端、數(shù)據(jù)交換模塊、數(shù)據(jù)處理、仿真平臺服務(wù)端等功能模塊構(gòu)成的綜合性機電液一體化數(shù)字仿真平臺。

        圖2 仿真平臺總架構(gòu)Fig.2 Overall architecture of the simulation platform

        仿真平臺客戶端包括人機交互界面和仿真結(jié)果可視化顯示,不同的部分表示對應(yīng)軟件的命令交互操作界面,仿真結(jié)果通過對仿真數(shù)據(jù)的本地化儲存,然后進行預處理,在去除無用參數(shù)的同時對數(shù)據(jù)進行排列整理,使用Python的可視化繪圖庫Matplotlib對處理后的數(shù)據(jù)繪圖并以子程序的形式顯示在仿真平臺客戶端。

        數(shù)據(jù)交換模塊是人機交互界面控制仿真進程的核心方式:通過TCP/IP協(xié)議傳入ADAMS能夠識別的特定語句,能夠控制ADAMS的仿真;MATLAB可以通過指定的函數(shù)修改Simulink中一些模型的固定參數(shù),因此,對于不需變動的固定設(shè)置可以將它編寫進m文件,對于需要動態(tài)調(diào)整的參數(shù)則需要直接寫入程序內(nèi),二者均可以通過Python啟動MATLAB Engine直接運行;AMESim則對Python開放了API,通過指定函數(shù)可以修改AMESim液壓模型中任意元件的大多數(shù)仿真參數(shù)。通過此模塊,用戶可以將仿真關(guān)鍵參數(shù)直接傳入仿真軟件中,從而達到快速仿真的目的,且沒有操作門檻。

        仿真平臺服務(wù)端則負責實現(xiàn)機電液聯(lián)合仿真。目前,ADAMS、AMESim和Simulink間的數(shù)據(jù)接口都已經(jīng)成熟,在建立機電液聯(lián)合仿真分析平臺之前,需要先搭建出機械系統(tǒng)、液壓系統(tǒng)和控制系統(tǒng)。聯(lián)合仿真數(shù)據(jù)交換原理如圖3所示,將AMESim/MATLAB接口和ADAMS/MATLAB接口在Simulink中做對接,液壓輸出通過AMESim/MATLAB接口傳遞到Simulink中,然后通過ADAMS/MATLAB接口將輸出傳遞到機械系統(tǒng)中,以此實現(xiàn)AMESim和ADAMS在Simulink中的數(shù)據(jù)交換。

        圖3 聯(lián)合仿真數(shù)據(jù)交換原理Fig.3 Principle of data exchange in co-simulation

        2 ADAMS與仿真平臺接口研究

        由于軟件的開放性有限,國內(nèi)外學者對ADAMS仿真平臺的二次開發(fā)技術(shù)的應(yīng)用主要是通過定制ADAMS軟件的專用界面,通過錄制宏文件和編寫用戶子程序組成使用界面的動作響應(yīng),以此實現(xiàn)目標功能。ADAMS偏向于支持用戶子程序二次開發(fā)并連接至用戶定制界面的方法,且提供了FORTRAN語言編寫的子程序模板,子程序能利用通用程序設(shè)計語言的功能來定義ADAMS/View不能提供的函數(shù),它具有很強的通用性和靈活性。但用戶必須將寫成的子程序使用獨立的FORTRAN編譯器編譯,然后連接到ADAMS以創(chuàng)建ADAMS/Solver用戶庫文件,之后可以連同該庫與ADAMS/Solver一起運行。此方式基于ADAMS內(nèi)置人機交互庫使用,只能保存成數(shù)據(jù)庫文件然后打開ADAMS讀取該庫文件使用,面對現(xiàn)代多種仿真技術(shù)的耦合,它在編程和功能拓展方面并不具有優(yōu)勢。

        因此,針對上述缺點,提出使用TCP/IP協(xié)議技術(shù)與ADAMS形成仿真交互。TCP/IP技術(shù)的使用提供了ADAMS二次開發(fā)的一種新方式,因為以TCP/IP作為通信技術(shù)而開發(fā)出的ADAMS第三方仿真平臺具有獨立性與強大的拓展性,這也為實現(xiàn)基于ADAMS的機電液聯(lián)合仿真平臺的開發(fā)提供了一個方向。

        而與傳統(tǒng)ADAMS自身的開發(fā)環(huán)境相比,在GUI設(shè)計、靈活性和可移植性等方面,Python明顯優(yōu)于ADAMS,因此選擇Python作為ADAMS二次開發(fā)編程語言更合適。

        2.1 仿真平臺ADAMS部分的結(jié)構(gòu)設(shè)計

        ADAMS二次開發(fā)平臺的設(shè)計路線如圖4所示,它由仿真平臺客戶端、ADAMS服務(wù)端和交互命令模塊3個模塊組成。

        圖4 ADAMS仿真平臺原理Fig.4 Principle of ADAMS simulation platform

        仿真平臺客戶端是負責與用戶交互的人機交互界面,用戶可以通過此集成平臺完成對模型的導入、參數(shù)設(shè)置、仿真控制等操作;ADAMS服務(wù)端則是以ADAMS軟件為核心的動力學計算模塊。啟動文件是優(yōu)化ADAMS開啟后的默認程序和初始化與外部軟件的通信功能,會隨著ADAMS啟動自動被其讀取并運行。

        交互命令模塊是仿真平臺客戶端和ADAMS服務(wù)端仿真交互的通道,仿真的控制和數(shù)據(jù)傳遞采用受ADAMS服務(wù)組件Adams Commannd Server支持的TCP/IP技術(shù)。仿真平臺通過TCP/IP通信協(xié)議訪問該接口,而ADAMS作為服務(wù)器可以偵聽來自外部應(yīng)用程序的命令。在交互命令語句復雜時,可以通過命令讓ADAMS讀取宏指令,批量執(zhí)行ADAMS/View命令,仿真平臺通過命令語句更高效地控制ADAMS仿真。

        2.2 編制ADAMS初始化文件

        ADAMS每次啟動時都會對工作界面進行初始化,且ADAMS的服務(wù)組件Adams Commannd Server支持的TCP/IP通信服務(wù)默認關(guān)閉,因此需要編制啟動文件,在軟件啟動時簡化工作界面并啟用TCP/IP服務(wù)。

        在ADAMS安裝目錄中的aview文件夾下新建文本文件,并編寫ADAMS初始化程序,之后更改文件名稱和擴展名為"aviewAS.cmd"。

        部分代碼如下:

        interface model_browser undisplay

        !關(guān)閉模型瀏覽器

        interface ribbon undisplay

        !關(guān)閉狀態(tài)欄

        int tool undis tool = .gui.main.status_toolbar

        !關(guān)閉工具欄

        int grid und grid = .gui.grid &view = ( db_default(.system_defaults,"view" ))

        !關(guān)閉默認彈出窗口

        command_server start

        !開啟TCP/IP服務(wù)組件

        ······

        完成之后重新啟動ADAMS并打開“CMD Command Window”命令框,輸入“command_server show”會出現(xiàn)圖5所示的窗口,說明啟動文件已生效,TCP/IP服務(wù)已隨軟件自啟,地址為本機,默認端口號為5002,外部軟件可通過特定語句與ADAMS進行交互。

        圖5 顯示窗口Fig.5 Display window

        2.3 TCP/IP收發(fā)模塊設(shè)計

        由于是建立第三方仿真平臺客戶端,且首次將TCP/IP技術(shù)應(yīng)用于ADAMS二次開發(fā),Adams View Command Server傳輸?shù)拿钫Z句需要符合ADAMS的通用命令格式,因此還需要編寫基于TCP/IP協(xié)議的通用命令發(fā)送與數(shù)據(jù)接收程序,才能滿足第三方仿真平臺客戶端的使用要求。

        TCP/IP收發(fā)模塊的運行流程如圖6所示,2種通用命令為:指令命令和查詢命令。這些命令通過TCP/IP協(xié)議以字符串的形式,通過“client_socket.send(…)”程序發(fā)送給ADAMS服務(wù)端。

        圖6 TCP/IP收發(fā)模塊運行流程Fig.6 Flow of TCP/IP transceiver module operation

        其中指令命令是讓ADAMS執(zhí)行相應(yīng)的動作指令,每一條指令命令字符串必須以“cmd ”開頭才能被ADAMS識別,既可以單獨發(fā)送一條指令,包括ADAMS宏指令文件 ,也可以循環(huán)讀取并發(fā)送一個列表里的所有命令。

        以導入名“model_import_macro.cmd”的ADAMS宏文件為例,部分代碼如下:

        import socket #導入模塊

        cmds =

        [" cmd macro read macro_name=import file_name=

        ′D:/ADAMS/model/model_macro.cmd′",#宏文件位置

        " cmd import "]#命令列表,包含兩條命令

        for cmd in cmds:#循環(huán)讀取命令列表

        client_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

        ······

        查詢命令是讓ADAMS以字符串形式返回查詢的數(shù)據(jù),每一條查詢指令必須以“query”開頭,以發(fā)送“OK”表示結(jié)束,ADAMS返回查詢的結(jié)果并通過“client_socket.recv(1024)”接收數(shù)據(jù)且賦給變量。

        以查詢MARKER_2的坐標值為例,部分代碼如下:

        import socket #導入模塊

        client_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

        client_socket.connect(("localhost",5002))

        queries = ["query MARKER_2.location ",

        " OK"] # 查詢目標查詢

        for query in queries:

        client_socket.send(bytes(query,'utf-8')) #發(fā)送命令

        recv_data = client_socket.recv(1024) #接收數(shù)據(jù)

        ······

        該收發(fā)模塊具有功能單一且需要多次使用的特點,因此將該模塊程序設(shè)計成Python類,指令命令和查詢命令設(shè)計成構(gòu)造方法,并對此數(shù)據(jù)交換接口進行數(shù)據(jù)封裝,以便調(diào)用所有程序,使得ADAMS部分具有強大的可擴展性,可以滿足未來需要增加的仿真需求與方式。

        3 Simulink與仿真平臺接口研究

        3.1 Python與Simulink交互設(shè)計

        Simulink是MATLAB的一個組件[12],能夠調(diào)用MATLAB的函數(shù)庫并能兼容其他專業(yè)軟件的擴展,它提供的基于Windows模型化圖形輸入交互方式[13]可以快速實現(xiàn)動態(tài)系統(tǒng)建模和仿真,是MATLAB的重要組成部分。Python無法直接與Simulink模型交互,但是可以通過與MATLAB交互實現(xiàn),MATLAB提供的外部語言接口可與其他編程語言進行靈活的雙向集成,高版本的MATLAB引擎開放了針對Python的API,其中包含了從Python中調(diào)用MATLAB的工具庫,即在Python中可以調(diào)用兼容版本的MATLAB Compiler SDK。

        因此,文中對Simulink的二次開發(fā)路線如圖7所示,以MATLAB為數(shù)據(jù)傳輸中介,Simulink的變量參數(shù)改變和仿真結(jié)果輸出由MATLAB的函數(shù)命令執(zhí)行。

        圖7 Python與Simulink的交互Fig.7 Python interaction with Simulink

        3.2 Simulink交互函數(shù)研究

        Python通過MATLAB實現(xiàn)與Simulink的交互,這種交互方式需要解決2個關(guān)鍵技術(shù):(1)可以隨時修改Simulink中模塊的仿真參數(shù);(2)在仿真結(jié)束之后,仿真結(jié)果能夠以數(shù)組形式保存到計算機本地。因此首先需要在MATLAB中安裝Python包形式的API以激活MATLAB對Python的函數(shù)支持,之后Python可以建立MATLAB環(huán)境并能運行m文件和在程序里直接調(diào)用MATLAB支持的函數(shù),通過在Simulink中使用特定模塊建模和在Python中靈活使用MATLAB提供的函數(shù),可以解決二次開發(fā)中的技術(shù)問題。

        Python程序通過導入matlab.engine類可以在計算機上不啟動MATLAB客戶端的情況下啟用新的MATLAB虛擬進程,雖然沒有UI界面,但是存在MATLAB工作區(qū)和變量,在該環(huán)境中可以使用標準語句直接與MATLAB交互,因此第三方平臺可以通過調(diào)用MATLAB引擎與Simulink服務(wù)器交互實現(xiàn)動態(tài)通信。

        目前,通過Python建立MATLAB虛擬進程之后,有2種方式可以實現(xiàn)MATLAB與Simulink交互,如圖8所示。既可以通過MATLAB引擎運行m文件,也可以在Python中執(zhí)行MATLAB代碼。前者可以方便快捷地執(zhí)行模型的初始化和一些固定程序,后者在需要批量仿真或頻繁調(diào)參甚至動態(tài)仿真的場合更為高效。因此,文中同時使用2種方式,啟動模型初始化變量、結(jié)果輸出和仿真過程調(diào)參分別使用不同運行方式,這樣不僅可以降低系統(tǒng)的耦合性,還有利于平臺功能的拓展和代碼的維護。

        圖8 交互方式Fig.8 Interaction methods

        MATLAB與Simulink的交互主要涉及到set_param(Object,Name1,Value1,...,NameN,ValueN)函數(shù),該函數(shù)可以將指定模型或模塊對象上的參數(shù)設(shè)置為指定的值。當用戶修改了Simulink中的模型變量值后,set_param函數(shù)會將新參數(shù)值直接替換寫入Simulink相應(yīng)的形參中,從而實現(xiàn)動態(tài)修改Simulink中模塊的參數(shù)。其中,set_param()函數(shù)中的Object是模型文件中需要修改的模塊的名稱,Name是該模塊中需要修改的形參名稱,Value是新的參數(shù)的值。當同一個模塊需要修改多個形參時,可以使用一個set_param()命令和多個Name-Value實參組而不是多個set_param()命令,因此該命令具有很高的效率。

        因為Python客戶端無法直接調(diào)用Simulink的Scope模塊中的仿真結(jié)果,因此需要將仿真結(jié)果轉(zhuǎn)換成數(shù)組,然后Python讀取數(shù)組內(nèi)數(shù)據(jù)再繪制成波形圖,此功能的過程如圖9所示。set_param()命令將用戶設(shè)置的模塊參數(shù)、仿真時間和仿真開始的指令傳遞給Simulink,Simulink仿真進程結(jié)束后,仿真模型通過To Workspace模塊將仿真結(jié)果輸出到MATLAB的工作區(qū)(Workspace)中,并通過xlswrite()函數(shù)將數(shù)據(jù)寫入到本地excel中,再由程序處理并繪制到平臺中,該方式不僅能及時保存實驗數(shù)據(jù),還能隨時查閱過往數(shù)據(jù),有利于用戶對數(shù)據(jù)的分析。

        圖9 仿真結(jié)果輸出過程Fig.9 Simulation results output process

        4 AMESim的Python API建模研究

        AMESim是一種基于圖形化設(shè)計[14],包含機械、液壓、氣動和信號等多學科復雜系統(tǒng)建模與仿真的平臺。隨著版本的迭代,AMESim提供了一套完整的API函數(shù),可以允許高級語言(如Python、C++、VB等)與模型進行交互,包括建模、組線、設(shè)參、仿真、讀取結(jié)果等一系列功能。其中包含了允許Python、C++、VB編程語言對液壓控制系統(tǒng)進行編程建模的功能。通過Python建立模型的代碼通用結(jié)構(gòu)如圖10所示,該結(jié)構(gòu)共分為3個部分:初始化環(huán)境、控制系統(tǒng)的構(gòu)建和完成建模并退出。

        圖10 液壓系統(tǒng)建模流程Fig.10 Hydraulic system modeling flow

        值得注意的是,AMESim中大多數(shù)元件都存在多個子模型,每個子模型對應(yīng)著不同的特性,因此程序在添加元件后還應(yīng)選擇一個具體的子模型。將2個元件對應(yīng)位置相互連接時,由于Python語言對序列的計算是從0開始的,因此,設(shè)置連接口序號時總是為實際序號值減1的值。例如,圖10中AMEConnectTwoPortsWithLine(′pump01′,0,′tank01′,0,′hydraulic′,()),表示將名為“pump01”的液壓泵1號端口和名為“tank01”的油箱1號端口用線連接起來。聯(lián)合仿真時,機電液系統(tǒng)將使用Simulink中的仿真參數(shù),AMESim中設(shè)置的仿真參數(shù)會失去作用。在編譯模型前需要將AMESim編譯器設(shè)置為Microsoft Visual C++ 2015 and higher。

        5 建立聯(lián)合仿真模型

        文中的聯(lián)合仿真實驗以噴管的簡易模型為例,設(shè)計出一個針對該模型的機電液聯(lián)合仿真平臺。噴管簡易模型如圖11所示,噴桶固定,通過并聯(lián)的2個液壓缸共同作用,調(diào)整噴嘴的位置。液壓缸的壓力輸入由聯(lián)合仿真系統(tǒng)中AMESim的輸出提供,液壓缸輸出位移反饋給AMESim,二者的數(shù)據(jù)交換經(jīng)Simulink平臺互相傳遞,AMESim中的伺服閥控制由Simulink發(fā)出信號。

        圖11 ADAMS機械系統(tǒng)模型Fig.11 ADAMS mechanical system model

        Simulink控制系統(tǒng)如圖12所示,系統(tǒng)共分為五部分:期望輸出、PID控制、Simulink和AMESim的接口文件AME2SLCoSim、Simulink和ADAMS的接口文件ADAMS_sub、仿真數(shù)組導出(實際模型軟件接口中的變量均為英文,圖中中文是為了方便理解)。其中,文中使用的期望輸出為恒值,通過設(shè)定2個自由度的期望位移,與ADAMS機械模型輸出的實時位移進行PID控制,輸出的信號控制AMESim伺服閥的位置與開度。仿真數(shù)據(jù)通過To Workspace模塊輸出到MATLAB 工作區(qū),輸出的是不包含時間序列的同名一維數(shù)組,時間可用sim()函數(shù)單獨獲取。在此之前,需要用mex-setup將MATLAB的編譯器切換成Microsoft Visual C++ 2015(c),和AMESim編譯器保持一致。

        圖12 Simulink控制系統(tǒng)模型Fig.12 Simulink control system model

        控制系統(tǒng)的聯(lián)合仿真平臺需要調(diào)整的參數(shù)名稱和代碼中變量名稱如表1所示。

        表1 變量名稱Tab.1 List of variable names

        聯(lián)合仿真中AMESim液壓子系統(tǒng)模型如圖13所示(實際搭建模型時,所有接口模塊的變量必須以英文表示,此處采用中文示意以方便理解),噴管模型由AMESim中的Hydraulic庫搭建[15],伺服閥的開度由Simulink模型中的PID控制信號調(diào)節(jié),液壓缸通過力傳感器輸出無單位數(shù)值,通過AMESim和Simulink的數(shù)據(jù)接口傳入,并直接作為ADAMS的輸入量。

        圖13 AMESim液壓控制系統(tǒng)模型Fig.13 AMESim hydraulic control system

        圖13所示的液壓控制系統(tǒng)中聯(lián)合仿真平臺需要調(diào)整的參數(shù)和代碼變量名稱如表2所示,若存在多個相同元件,可在AMESim變量中查看每個元件變量的參數(shù)路徑。

        表2 液壓系統(tǒng)變量Tab.2 List of hydraulic system variable

        前面詳細說明了ADAMS、Simulink、AMESim二次開發(fā)方式與原理,并給出了關(guān)鍵技術(shù)與參數(shù)代碼,使得這3個軟件同時具備了與利用第三方搭建的外部平臺交互的能力,故還建立了以圖11-13模型為基礎(chǔ)的人機交互界面。

        人機交互界面主要為用戶提供直接交互功能,如圖1所示,主要包括仿真配置設(shè)置、參數(shù)顯示、用戶操作按鈕和數(shù)據(jù)顯示等功能,根據(jù)表1-2中參數(shù)變量建立的各軟件界面如圖1所示。用戶可通過對應(yīng)按鈕切換至不同軟件的設(shè)置界面,每次修改參數(shù)后需更新,將設(shè)置值寫入程序。仿真結(jié)果使用Python的繪圖庫Matplotlib,它不僅功能強大、用法簡潔、可移植性強,還提供了面向?qū)ο罄L圖的API。當機電液聯(lián)合仿真完成后,Simulink程序分別將位移變化數(shù)值和對應(yīng)的時間序列寫入同一個excel表中,之后Matplotlib讀取表中數(shù)據(jù),經(jīng)處理后繪制折線圖顯示出來,平臺將每一次仿真結(jié)果都保存在本地,可方便用戶選擇查看。

        6 平臺驗證結(jié)果

        通過對多軟件二次開發(fā)的聯(lián)合仿真平臺進行機電液聯(lián)合仿真實驗,驗證機電液虛擬實驗的可行性和聯(lián)合仿真分析平臺的正確性。在聯(lián)合仿真平臺設(shè)置機電液控制系統(tǒng)的參數(shù),設(shè)置X-Y液壓缸和Y-Z液壓缸的期望位移分別為300 mm和200 mm,并通過設(shè)置PID控制液壓缸伺服閥的開度而調(diào)控液壓缸位移,設(shè)置完所有參數(shù)并更新后,點擊開始仿真按鈕完成仿真。聯(lián)合仿真平臺輸出的兩液壓缸實際位移如圖14所示。

        圖14 實際位移Fig.14 Actual displacement:(a)X-Y hydraulic cylinder; (b)Y-Z hydraulic cylinder

        分析圖14可知:該控制系統(tǒng)能很好地復現(xiàn)理論的期望值,由于AMESim中液壓缸元件存在死區(qū)容積,因此2個液壓缸位移的實際值分別在299 mm和199 mm附近波動,誤差均在2 mm以內(nèi)??芍?,開發(fā)的機電液聯(lián)合仿真平臺能很好地完成虛擬實驗,驗證了建立第三方機電液聯(lián)合仿真管理平臺的可行性,體現(xiàn)出該平臺操作的簡易性。

        7 結(jié)論

        通過對ADAMS、AMESim、MATLAB/Simulink仿真語言和底層接口的深入研究,以三者為基礎(chǔ),二次開發(fā)出可視化操作的機電液聯(lián)合仿真分析平臺。通過該平臺可實現(xiàn)對3個軟件的參數(shù)配置,有效解決了傳統(tǒng)方式需要多次切換軟件并手動尋找配置的問題,同時降低了操作門檻,提高了仿真效率。對平臺各部分模塊化的開發(fā)方式,使系統(tǒng)具有較低的耦合性,提高了仿真平臺的穩(wěn)定性。

        由虛擬仿真實驗結(jié)果可知:控制系統(tǒng)能很好地復現(xiàn)給定的期望位移,建立ADAMS、AMESim、Simulink機電液系統(tǒng)聯(lián)合仿真分析平臺的研究方法具有普遍適用性,對現(xiàn)實模型的實驗具有一定的參考價值。

        猜你喜歡
        二次開發(fā)液壓缸命令
        只聽主人的命令
        冷軋雙切剪液壓缸螺栓斷裂分析
        一種基于液壓缸負負載回油腔的調(diào)速控制系統(tǒng)
        重型機械(2020年2期)2020-07-24 08:16:20
        淺談基于Revit平臺的二次開發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        淺談Mastercam后處理器的二次開發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        移防命令下達后
        西門子Easy Screen對倒棱機床界面二次開發(fā)
        這是人民的命令
        液壓缸維修技術(shù)
        一種新型旋轉(zhuǎn)直線組合式液壓缸設(shè)計
        日韩性爱视频| 国产精品自线在线播放| av亚洲在线一区二区| 蜜桃网站入口可看18禁| 国产免费三级av在线| 国产女主播白浆在线观看| 国产成人久久精品77777综合| 熟女人妻丰满熟妇啪啪| 亚洲天堂色婷婷一区二区| 91色区在线免费观看国产| 久久久久亚洲av成人片| 少妇性l交大片| 中文字幕乱偷乱码亚洲| 大量老肥熟女老女人自拍| 免费播放成人大片视频| 亚洲欧美日韩另类精品一区| 色婷婷综合久久久久中文| 久久亚洲日本免费高清一区| 国内精品国产三级国产avx| 久久一道精品一区三区| 日本无码欧美一区精品久久| 乱子伦视频在线看| 国产 在线播放无码不卡| 国产毛片精品av一区二区| 午夜熟女插插xx免费视频| 亚洲精品字幕| 亚洲精品亚洲人成在线播放| 国产大片在线观看91| 我和丰满妇女激情视频| 亚洲成av人片在线观看麦芽| 午夜a福利| 北岛玲亚洲一区二区三区| 精品国产一区二区三区不卡在线| 久久久亚洲欧洲日产国码αv| 国产98在线 | 免费| 国产肥熟女视频一区二区三区 | 欧美激情肉欲高潮视频| 欧美jizzhd精品欧美| 99免费视频精品| 国产乱子伦一区二区三区国色天香| 把女人弄爽特黄a大片|