一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

模型仿真的云端及终端交互方法、服务器、终端及系统与流程

2022-06-25 06:53:52 来源:中国专利 TAG:


1.本发明涉及通控领域,尤其涉及模型仿真的前后端交互。


背景技术:

[0002][0003]
嵌入式系统软件的软件建模工具作为嵌入式系统软件的基础开发工具,是用来支撑国产处理器和国产操作系统发展的生态链的关键一环,其中,建模仿真则是属于软件建模工具的关键性技术环节。要实现嵌入式系统软件的软件建模工具基于模型的开发,就是通过对算法建模进行软件设计的过程,使用图形化语言和模型设计实现算法,并对算法进行仿真验证,且通过代码生成工具将模型翻译成对应的开发语言。
[0004]
在上述基于模型的开发中,从需求分析到开发、安装、测试,模型在其中起到了非常关键的作用。在建模开发之后,对系统模型进行仿真,通过仿真结果发现、改善设计过程中存在的缺陷。交替进行建模和仿真可以减少在设计过程后期发现的错误数量,从而提高系统设计的质量。
[0005]
国外已有ansys公司的scade,mathworks公司的simulink code等两款嵌入式ide用于其高安全可靠的嵌入式软件开发。但是上述两款软件都采用了集成客户端的方式,也就是说软件底层的仿真、代码生成等功能和前端人机交互界面是不可分割的,前后端绑定不可拆分不仅使得仿真系统的适用性和灵活性受到了巨大的限制。仿真模块和人机交互界面之间无法分开来运行,这样不能解决网络通信下不同的仿真模块调用同一模型的技术问题。而且,这样还使得仿真系统代码维护的成本提高,前端的功能模块修改时,后端的相应功能模块也要进行与前端对应修改,浪费人力、物力和时间成本。此外,仿真系统的二次开发同样受到前后端功能结构绑定的限制,从而增加了二次开发难度。
[0006]
为此,亟需一种模型仿真的云端及终端交互方法和装置来解决上述问题,用以实现前后端的耦合性的降低,能够将仿真、代码生成等核心功能作为独立的底层模块,和前端的人机交互界面进行分离。人机交互界面和仿真模块分开来方便前端人机交互界面和后端核心模块的自由替换,从而能实现同一模型基于网络环境下的云仿真功能,提高仿真系统的适用性和灵活性,且降低仿真系统维护需要的人力、物力和时间成本,以及使得仿真系统易于二次开发,进而克服现有技术的上述缺陷,且大幅提高模型仿真系统的实用性且降低模型仿真和验证的难度。


技术实现要素:

[0007]
本发明之目的在于提供一种模型仿真的云端及终端交互方法,能够将仿真、代码生成等核心功能作为独立的底层模块,与前端的人机交互界面进行分离,从而一方面实现前后端的耦合性的降低,另一方面实现同一模型基于网络环境下的云仿真,进而提高仿真系统的适用性和灵活性。
[0008]
为实现上述目的,本发明提供了一种模型仿真的云端及终端交互方法,方法包括:
云端响应模型仿真请求,启动网络服务并运行仿真容器。开始仿真时,终端将模型转换为json格式的仿真模型数据,发送至云端。云端接收到json 格式的仿真模型数据后将其转换为与之对应的xml格式的仿真模型数据。云端接收到开始仿真的命令后启动仿真并生成仿真结果。云端将仿真结果转换为 json格式的仿真结果,以及将json格式的仿真结果发送给终端。终端接收且实时显示仿真结果。
[0009]
作为优选方式,终端将仿真结果转换为json格式的仿真结果包括:终端判断模型是否有变化。若模型发生变化,则终端将新的模型转换成json格式的仿真模型数据并发送至云端。等待云端将json格式的仿真模型数据转换为对应的xml格式的仿真模型数据后,终端接收云端的模型转换结果且向云端发送开始仿真的命令。若模型未发生变化,则直接向云端发送开始仿真的命令。
[0010]
作为优选方式,云端接收到开始仿真的命令后启动仿真并生成仿真结果包括:云端在接收到终端发出的开始仿真的命令之后,根据保存的xml格式的仿真模型数据解析模型,得到模型中每个模块的语义,并启动仿真线程,调用求解器计算每个模块的数据,从而生成仿真结果。同时将仿真状态置为运行状态。
[0011]
作为优选方式,终端接收且实时显示仿真结果包括:终端开启线程来接收云端仿真回传的数据,在接收到返回的运行结果之后,开启接收仿真结果数据线程。仿真结果是一组json格式的数据;终端将json格式的仿真结果转换成文字、图表和/或语音信息。终端将转换后的仿真结果显示于终端上。
[0012]
作为优选方式,接收json格式的仿真模型数据将其转换为与之对应的 xml格式的仿真模型数据具体为:通过java反序列化将json格式的仿真模型数据转换成java模型类对象。再通过java序列化将java模型类对象转换成 xml格式的仿真模型数据。
[0013]
作为优选方式,终端监听云端的通信状态和仿真模型数据的仿真,以及发送模型仿真请求至云端。云端响应终端的模型仿真请求,启动网络服务且运行仿真容器。开始仿真时,终端将模型转成json格式的仿真模型数据,且创建 websocket连接并向云端发送连接请求,进而通过websocket发送消息的api 向云端发送json格式的仿真模型数据。云端在监听到终端的连接请求后与终端进行websocket连接,从而建立云端和终端之间的通信,以及接收终端传输的json格式的仿真模型数据。云端在接收到json格式的仿真模型数据后,将其转换为与之对应的xml格式的仿真模型数据,同时启动该模型数据的仿真。云端开始仿真后,生成一组按时间序列排序的仿真结果,调用websocket发送消息api将仿真结果仍然以json的格式发送给终端。
[0014]
作为优选方式,终端包括css和javascript构成的人机交互界面。云端通过springboot启动网络服务并运行仿真容器。
[0015]
作为优选方式,本发明提供了一种模型仿真的云端及终端交互服务器包括网络服务模块和仿真模块。网络服务模块接收终端发送的模型仿真请求。收到模型仿真请求后,网络服务模块启动网络服务且仿真模块运行仿真容器。网络服务模块在监听到终端的连接请求后与终端进行连接,从而建立云端和终端之间的通信,以及接收终端传输的json格式的仿真模型数据传输至仿真模块。仿真模块将json格式的仿真模型数据转换成与之对应xml格式的仿真模型数据,同时启动转换后的仿真模型数据的仿真。仿真后得到一组按时间序列排序的仿真结果,调用websocket发送消息api将仿真结果仍然以json的格式发送给终
端。
[0016]
作为优选方式,本发明提供了一种模型仿真的云端及终端交互终端包括:监听模块,用以监听云端的通信状态和仿真模型数据的仿真。仿真通信模块,用以在仿真时将模型转成json格式的仿真模型数据,且创建websocket连接并向云端发送连接请求,进而通过websocket发送消息的api向云端发送json格式的仿真模型数据。显示模块,用以在接收到云端返回的仿真结果后在人机交互界面上实时显示仿真结果。
[0017]
作为优选方式,本发明提供了一种模型仿真的云端及终端交互系统包括:上述模型仿真的云端及终端交互服务器和上述模型仿真的云端及终端交互终端。
[0018]
与现有技术相比,本发明通过模型转换、解析与云通信的无缝衔接,实现了同一模型基于网络环境下的云仿真功能,使得云端仿真模块与终端仿真通信模块及显示模块的耦合性的降低,从而将云端的仿真、代码生成等核心功能作为独立模块,与终端的人机交互显示功能分离。终端的仿真通信模块及人机交互相关的显示模块均实现了独立于云端的仿真模块存在,从而能自由替换仿真通信模块及人机交互相关的显示模块,以及自由替换和后端核心仿真模块,进而大幅提高了仿真系统的适用性和灵活性,有效降低了仿真系统维护需要的人力、物力和时间成本,以及使得仿真系统易于二次开发,且大幅提高模型仿真系统的实用性且降低模型仿真和验证的难度。
附图说明
[0019]
图1为本发明的模型仿真的云端及终端交互方法的原理示意图。
[0020]
图2为本发明的模型仿真的云端及终端交互方法的流程示意图。
[0021]
图3为本发明的模型仿真的云端及终端交互方法的详细流程示意图。
[0022]
图4为本发明的模型仿真的云端及终端交互方法的终端功能示意图。
[0023]
图5为本发明的模型仿真的云端及终端交互方法的人机仿真输出示意图。
具体实施方式
[0024]
在下文中,将参照附图描述本发明的模型仿真的云端及终端交互方法、服务器、终端及系统的实施方式。
[0025]
在此记载的实施方式为本发明的特定的具体实施方式,用于说明本发明的构思,均是解释性和示例性的,不应解释为对本发明实施方式及本发明范围的限制。除在此记载的实施方式外,本领域技术人员还能够基于本技术权利要求书和说明书所公开的内容采用显而易见的其它技术方案,这些技术方案包括采用对在此记载的实施方式的做出任何显而易见的替换和修改的技术方案。
[0026]
本说明书的附图为示意图,辅助说明本发明的构思,示意性地表示各部分的形状及其相互关系。
[0027]
实施例一
[0028]
在该实施方式中,如图1所示,示出了一种模型仿真的云端及终端交互方法的方法流程图,该方法通过模型转换、解析与云通信的无缝衔接,实现了同一模型基于网络环境下的云仿真功能,使得云端仿真模块与终端仿真通信模块及显示模块的耦合性的降低,从而将云端的仿真、代码生成等核心功能作为独立模块,与终端的人机交互显示功能分离。终端
的仿真通信模块及人机交互相关的显示模块均实现了独立于云端的仿真模块存在,从而能自由替换仿真通信模块及人机交互相关的显示模块,以及自由替换和后端核心仿真模块,进而大幅提高了仿真系统的适用性和灵活性,有效降低了仿真系统维护需要的人力、物力和时间成本,以及使得仿真系统易于二次开发,且大幅提高模型仿真系统的实用性且降低模型仿真和验证的难度。该模型仿真的云端及终端交互方法可以包括如下步骤:
[0029]
步骤101,云端响应模型仿真请求,启动网络服务并运行仿真容器。开始仿真时,终端将模型转换为json格式的仿真模型数据,发送至云端。
[0030]
步骤102,云端接收到json格式的仿真模型数据后将其转换为与之对应的 xml格式的仿真模型数据。
[0031]
步骤103,云端接收到开始仿真的命令后启动仿真并生成仿真结果。云端将仿真结果转换为json格式的仿真结果,以及将json格式的仿真结果发送给终端。
[0032]
步骤104,终端接收且实时显示仿真结果。
[0033]
本实施例进一步优选地,云端接收到开始仿真的命令后启动仿真并生成仿真结果包括:云端在接收到终端发出的开始仿真的命令之后,根据保存的xml 格式的仿真模型数据解析模型,得到模型中每个模块的语义,并启动仿真线程,调用求解器计算每个模块的数据,从而生成仿真结果。同时将仿真状态置为运行状态。
[0034]
本实施例进一步优选地,终端接收且实时显示仿真结果包括:终端开启线程来接收云端仿真回传的数据,在接收到返回的运行结果之后,开启接收仿真结果数据线程。仿真结果是一组json格式的数据;终端将json格式的仿真结果转换成文字、图表和/或语音信息。终端将转换后的仿真结果显示于终端上。
[0035]
本实施例进一步优选地,接收json格式的仿真模型数据将其转换为与之对应的xml格式的仿真模型数据具体为:通过java反序列化将json格式的仿真模型数据转换成java模型类对象。再通过java序列化将java模型类对象转换成xml格式的仿真模型数据。
[0036]
本实施例进一步优选地,终端监听云端的通信状态和仿真模型数据的仿真,以及发送模型仿真请求至云端。云端响应终端的模型仿真请求,启动网络服务且运行仿真容器。开始仿真时,终端将模型转成json格式的仿真模型数据,且创建websocket连接并向云端发送连接请求,进而通过websocket发送消息的api向云端发送json格式的仿真模型数据。云端在监听到终端的连接请求后与终端进行websocket连接,从而建立云端和终端之间的通信,以及接收终端传输的json格式的仿真模型数据。云端在接收到json格式的仿真模型数据后,将其转换为与之对应的xml格式的仿真模型数据,同时启动该模型数据的仿真。云端开始仿真后,生成一组按时间序列排序的仿真结果,调用 websocket发送消息api将仿真结果仍然以json的格式发送给终端。
[0037]
本实施例进一步优选地,终端包括css和javascript构成的人机交互界面。云端通过springboot启动网络服务并运行仿真容器。
[0038]
本实施例一提供的模型仿真的云端及终端交互方法,能够将仿真、代码生成等核心功能作为独立的底层模块,与前端的人机交互界面进行分离,从而一方面实现前后端的耦合性的降低,另一方面实现同一模型基于网络环境下的云仿真,进而提高仿真系统的适用性和灵活性。
[0039]
实施例二
[0040]
与第一实施方式相比,第二实施方式的区别是,终端将仿真结果转换为 json格式的仿真结果包括:终端判断模型是否有变化。若模型发生变化,则终端将新的模型转换成json格式的仿真模型数据并发送至云端。等待云端将json 格式的仿真模型数据转换为对应的xml格式的仿真模型数据后,终端接收云端的模型转换结果且向云端发送开始仿真的命令。若模型未发生变化,则直接向云端发送开始仿真的命令。请参见图3,其示出了一种模型仿真的云端及终端交互方法的方法流程图。值得强调的是,仿真过程中,云端在实时监听终端的仿真命令可以灵活停止仿真、暂停仿真或单步仿真。仿真模型实例图如图4 所示,该模型包括sin波形、积分器、加法器、常量和范围等参数。仿真结果实例图如图5所示,可以为实时数字表示或波形表示或画面表示。该模型仿真的云端及终端交互方法可以包括如下步骤:
[0041]
步骤101:模型数据初始化,终端点击仿真,判断模型是否有变化。如果和之前的模型相比有差异,则将新的模型转换成json格式的模型数据,发送给云端,云端接收到json格式的模型数据之后,通过模型转换模块,将json 格式模型数据转换成xml格式的模型数据,用于云端模型的仿真,云端模型完成转换之后将转换结果返回给终端,此时终端向云端发送开始仿真的命令;如果终端模型判断无差异,则直接发送开始仿真的命令。
[0042]
步骤102:仿真,云端在接收到终端发出的仿真命令之后,根据保存的xml 格式的模型数据解析模型,得到模型中每个模块的语义,并启动仿真线程,调用求解器计算每个模块的数据。同时,将仿真状态置为running状态。
[0043]
步骤103:发送仿真数据,在终端发送完开始仿真的命令之后,云端发送仿真数据,云端将仿真得到的结果,转换成json格式的数据,返回给终端。
[0044]
步骤104:接收数据,在终端发送完开始仿真的命令之后,终端立即发送接收仿真数据的命令,开启线程来接收云端仿真回传的数据,在接收到云端返回的结果之后,开启接收仿真数据线程,仿真数据发送回来时是一组json格式的数据,终端需要将json格式转换成其他格式的数据在终端进行显示。
[0045]
名词解释:
[0046]
1.仿真。利用模型复现实际系统中发生的本质过程,并通过对系统模型的实验来研究存在的或设计中的系统,又称模拟。这里所指的模型包括物理的和数学的,静态的和动态的,连续的和离散的各种模型。所指的系统也很广泛, 包括电气、机械、化工、水力、热力等系统,也包括社会、经济、生态、管理等系统。当所研究的系统造价昂贵、实验的危险性大或需要很长的时间才能了解系统参数变化所引起的后果时,仿真是一种特别有效的研究手段。仿真的重要工具是计算机。仿真与数值计算、求解方法的区别在于它首先是一种实验技术。仿真的过程包括建立仿真模型和进行仿真实验两个主要步骤。
[0047]
2.json:javascript object notation,是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。它是基于javascript programming language,standard ecma-262 3rd edition
‑ꢀ
december 1999的一个子集。json采用完全独立于程序语言的文本格式,但是也使用了类c语言的习惯(包括c,c ,c#,java,javascript,perl,python等)。这些特性使json成为理想的数据交换语言。
[0048]
3.xml:可扩展标记语言与access,oracle和sql server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,可扩展
标记语言仅仅是存储数据。事实上它与其他数据表现形式最大的不同是:可扩展标记语言极其简单,这是一个看上去有点琐细的优点,但正是这点使它与众不同。
[0049]
4.单步仿真:单步仿真是从单步调试演变而来,单步调试是指程序开发中,为了找到程序的bug,通常采用的一种调试手段,一步一步跟踪程序执行的流程,根据变量的值,找到错误的原因。仿真软件在开发软件时通过单步仿真的方式找到模型的存在的bug,根据仿真数据的值,找到错误的原因。
[0050]
现有技术中前端ui和后端仿真核心模块必须保持一致,前端ui直接调用后端的核心模块来实现仿真、代码生成等核心功能,两者直接密不可分,而且由于是内部接口调用的关系,两者耦合性大,很难做到解耦。本实施例二提供的模型仿真的云端及终端交互方法,前端设置在终端可以部署ui模块,后端设置在云端部署核心仿真模块,具备以下优点:
[0051]
1.前端ui和后端核心模块的解耦之后可以为不同的后端核心模块搭建一个平台,前端ui在这个平台下,可以任意调用不同的后端核心模块进行仿真建模。解耦前端ui和核心模块,将前端的ui和核心模块进行充分解耦,通过网络api调用,解决前后端耦合性大的问题。
[0052]
2.多种前端ui和后端核心模块可以进行相互替换,只要满足网络api的接口,前后端可以混合使用,可以使仿真工具更灵活。
[0053]
3.可以实现云计算功能,将多个核心模块部署到云端,前端ui可以选择不同的后端核心模块进行仿真,可以实现对超大模型的仿真、代码生成等功能,也可以为多用户提供云计算功能,节约资源,提高计算机的重复利用率。
[0054]
实施例三
[0055]
请参见图1、2,其示出了一种模型仿真的云端及终端交互流程。本发明提供一种模型仿真的云端及终端交互服务器包括网络服务模块和仿真模块。网络服务模块接收终端发送的模型仿真请求。收到模型仿真请求后,网络服务模块启动网络服务且仿真模块运行仿真容器。网络服务模块在监听到终端的连接请求后与终端进行连接,从而建立云端和终端之间的通信,以及接收终端传输的 json格式的仿真模型数据传输至仿真模块。仿真模块将json格式的仿真模型数据转换成与之对应xml格式的仿真模型数据,同时启动转换后的仿真模型数据的仿真。仿真后得到一组按时间序列排序的仿真结果,调用websocket发送消息api将仿真结果仍然以json的格式发送给终端。
[0056]
本实施例三提供的模型仿真的云端及终端交互服务器,能够将仿真、代码生成等核心功能作为独立的底层模块,与前端的人机交互界面进行分离,从而一方面实现前后端的耦合性的降低,另一方面实现同一模型基于网络环境下的云仿真,进而提高仿真系统的适用性和灵活性。
[0057]
实施例四
[0058]
请参见图1、2,其示出了一种模型仿真的云端及终端交互的终端的结构图。本发明提供一种模型仿真的云端及终端交互终端包括:监听模块,用以监听云端的通信状态和仿真模型数据的仿真。仿真通信模块,用以在仿真时将模型转成json格式的仿真模型数据,且创建websocket连接并向云端发送连接请求,进而通过websocket发送消息的api向云端发送json格式的仿真模型数据。显示模块,用以在接收到云端返回的仿真结果后在人机交互界面上实时显示仿真结果。
[0059]
本实施例四提供的模型仿真的云端及终端交互终端,能够将仿真、代码生成等核心功能作为独立的底层模块,与前端的人机交互界面进行分离,从而一方面实现前后端的耦合性的降低,另一方面实现同一模型基于网络环境下的云仿真,进而提高仿真系统的适用性和灵活性。
[0060]
实施例五
[0061]
本发明提供了一种模型仿真的云端及终端交互系统包括:上述模型仿真的云端及终端交互服务器和上述模型仿真的云端及终端交互终端,可以实现将模型仿真软件的前后端进行分离。前端设置在终端可以部署ui模块,后端设置在云端部署核心仿真模块。前后端交互时通过将模型转换成json格式的数据使用websocket进行传输,前端只负责和用户进行交互,后端负责对模型进行仿真。前后端数据交互如图1、2所示,具体如下:
[0062]
前端使用electron js来开发界面,后端使用springboot来启动一个web服务并运行仿真容器,并用websocket作为通讯协议连接前后端。websocket是一种在单个tcp连接上进行全双工通信的协议。使用websocket可以让客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在websocket的api中,客户端和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。websocket中包含了创建连接、监听消息、发送消息、接收消息等api。
[0063]
使用websocket进行前后端分离的数据传输过程如图2所示,后端在启动时就调用websocket监听消息的api,对前端进行监听。前端开始仿真时,先将模型转成json格式,创建websocket连接,并向后端发送连接请求,后端监听到此请求后与前端进行连接,之后前端通过websocket发送消息的api向后端发送json格式数据。后端通过websocket接收消息的api接收到json数据后将其转成对应xml模型数据,同时启动仿真。后端开始仿真之后会得到一组按时间序列排序的仿真结果,调用websocket发送消息api将仿真结果仍然以json的格式发送给前端;前端接收到仿真数据后在ui界面上即可实时显示仿真结果。
[0064]
模型到json格式的转换采用了antv x6图编辑器引擎,在此技术上进行了针对性的修改,将绘图区域中模型的模块组成、模块间连线、模块属性等数据转换成json数据。
[0065]
json模型数据转换成对应的xml模型数据,采用了java中序列化和反序列化技术,将json和xml两种模型数据抽象成一个模型类,通过反序列化将 json转换成模型类,再通过序列化将模型类转换成xml数据。
[0066]
前端接收到仿真数据之后,通过反序列化的方式,解析得到仿真数据,并使用plotly组件绘制仿真结果。
[0067]
与现有技术相比,本发明通过模型转换、解析与云通信的无缝衔接,实现了同一模型基于网络环境下的云仿真功能,使得云端仿真模块与终端仿真通信模块及显示模块的耦合性的降低,从而将云端的仿真、代码生成等核心功能作为独立模块,与终端的人机交互显示功能分离。终端的仿真通信模块及人机交互相关的显示模块均实现了独立于云端的仿真模块存在,从而能自由替换仿真通信模块及人机交互相关的显示模块,以及自由替换和后端核心仿真模块,进而大幅提高了仿真系统的适用性和灵活性,有效降低了仿真系统维护需要的人力、物力和时间成本,以及使得仿真系统易于二次开发,且大幅提高模型仿真系统的实用性且降低模型仿真和验证的难度。
[0068]
以上对本发明的模型仿真的云端及终端交互方法、服务器、终端及系统的实施方
式进行了说明,其目的在于解释本发明之精神。请注意,本领域技术人员可以在不脱离本发明的精神的情况下对上述各实施方式的特征进行修改和组合,因此,本发明并不限于上述各实施方式。对于本发明的模型仿真的云端及终端交互服务器、终端及系统的具体特征如形状、尺寸和位置可以上述披露的特征的作用进行具体设计,这些设计均是本领域技术人员能够实现的。而且,上述披露的各技术特征并不限于已披露的与其它特征的组合,本领域技术人员还可根据发明之目的进行各技术特征之间的其它组合,以实现本发明之目的为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献