前端04.数字孪生实现方案

数字孪生实现方案(针对研究对象具备复杂逻辑 需要外部数学模型或仿真平台[simulink等])

方案实现整体框图

前端04.数字孪生实现方案_第1张图片

  • 任务需求分析:当前前端已初步实现数字孪生所需要的功能模块,问题集中在由simulink搭建的DEH模型如何装载入后端,实现整体的数字孪生实现流程,针对次问题,目前调研了三种实现方案。

一.方案1 直接将simulink仿真内嵌入网页前端 由前端将指令数据读取后传入后端 实现整个流程

​ 参考资料【Matlab开发Web App服务器】

  • ​ https://www.zhihu.com/question/38003831/answer/103977807
  • ​ https://zhuanlan.zhihu.com/p/86838817
  • ​ https://www.mathworks.com/help/compiler/web-apps.html
  • ​ https://www.it1352.com/1603610.html
  • ​ [1]Development of Web Applications Based on MATLAB
  • ​ [2]基于Web和MATLAB Builder JA技术的远程计算与仿真系统研究
  • ​ https://wenku.baidu.com/view/cd01128c6cdb6f1aff00bed5b9f3f90f76c64d80.html
  • ​ http://www.xjishu.com/zhuanli/54/201910334498.html
  • ​ https://blog.csdn.net/TICPSH/article/details/115895334

1.1实现依据及整体思路

  • 从2018a开始Matlab提供了Web Apps功能,它能够将电脑设为服务器,把App程序发布到局域网,可以通过浏览器访问,可以以此方式将simulink仿真模型导入到网页前端,进而进行数据交互。

1.2实现具体细节

1.2.1使用App Designer创建交互式的应用程序

  • 下载安装包
  • 安装
  • 解压MATLABWebAppServer.zip
  • 启动服务
  • 启动/停止服务
  • 打开web apps的主页
  • 打开服务器log文件夹
  • 启动SSL,使用HTTPS

1.2.2使用Web App Compiler打包

  • 打开App
  • 在Configure and Run页面点击Stop
  • 在Service Registration页面点击Unregister

1.2.3基于MATLAB Web App Server托管

  • 在App Designer中使用Web app Compiler进行打包,生成ctf文件
  • 将ctf文件拷贝到Web App Server的apps文件夹;
  • 从web apps主页启动app,查看效果。

1.3方案评估

  • 此方式是将simulink的GUI展示界面通过url直接上传,现有的实现实例大多是GUI展示,如下图所示,模型中的数据能否单独实时引出,以供数字孪生的逻辑自

    前端04.数字孪生实现方案_第2张图片

洽,目前还未实际测试,但可作为备选方案,此种方式若能成功实践,可以直接将simulink模型搬运到前后端,实现逻辑与动画的交互。

二.方案2 在simulink内部编写python函数 将仿真数据抛出

参考资料

  • https://blog.csdn.net/chengzhe412/article/details/78555445

2.1实现依据及整体思路

  • Python的应用越来越广泛,在深度学习,机器学习,数据挖掘等方面有很大的优势,并且python是开源的有强大的第三方库,这是python的最大优势。但是MATLAB在科学计算方面优化的非常极致,特别是SIMULINK的模块化编程方式非常方便,在实际的应用中经常会需要SIMULINK和python之间频繁的数据交换和调用,从 MATLAB2014b 开始,MATLAB支持直接调用Python。

2.2实现具体细节

2.2.1 首先将matlab链接到python引擎

  • 前端04.数字孪生实现方案_第3张图片

2.2.2 在MATLAB中调用python函数,按照py.文件名.函数名(参数)的格式进行函数调用

  • 前端04.数字孪生实现方案_第4张图片

2.2.3 再实时仿真的环境中应用python函数,采用S-Function的方式进行调用py语句。采用S-function的方式不需要外部编译的方式,提高仿真效率

前端04.数字孪生实现方案_第5张图片

2.2.4数据抛出以后实时读取,然后由后端传递给前端,即可完成数字孪生逻辑与动画的交互

2.3 方案评估

  • 此种方式是先将数据从simulink中导出,然后后端读取,以后端中转的方式实现从数学模型到前端模型的数据交互,理论上是可行的,但实时性可能未必能达到项目需求,需要后续实践评估。

三.方案3 直接通过Python调用MATLAB的内部引擎函数搭建模型 无需simulink

  • 参考资料
  • https://www.jianshu.com/p/02fd2ef6f174
  • https://cn.mathworks.com/help/matlab/matlab-engine-for-python.html

3.1.实现依据及整体思路

  • 用于 Python 的 MATLAB 引擎 API 可提供一个包,供 Python 将 MATLAB 作为计算引擎来调用。该引擎支持参考实现 (CPython)。MATLAB 支持版本 2.7、3.6、3.7 和 3.8。

3.2.实现具体细节

  • 在python中调用MATLAB引擎进行绘图
  • 前端04.数字孪生实现方案_第6张图片

3.3.方案评估

  • 如果python中能够调用的MATLAB引擎函数足够齐全,理论上是可以在python中(java也同理)搭建一个DEH仿真系统,此种方式实现效果最后,但参考资源比较少,能否实现需要实践检验

3.3.方案评估

  • 如果python中能够调用的MATLAB引擎函数足够齐全,理论上是可以在python中(java也同理)搭建一个DEH仿真系统,此种方式实现效果最后,但参考资源比较少,能否实现需要实践检验

四.个人项目实现初步效果

贴图 有时间逐步复盘教程

你可能感兴趣的:(前端,javascript,vue.js,node.js)