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

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

方案实现整体框图

image-20210527154227675

  • 任务需求分析:当前前端已初步实现数字孪生所需要的功能模块,问题集中在由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展示,如下图所示,模型中的数据能否单独实时引出,以供数字孪生的逻辑自

    image-20210526155250265

洽,目前还未实际测试,但可作为备选方案,此种方式若能成功实践,可以直接将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引擎

  • image-20210526162403070

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

  • image-20210526162457432

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

image-20210526162547700

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引擎进行绘图
  • image-20210527160226502

3.3.方案评估

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

3.3.方案评估

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

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

贴图 有时间逐步复盘教程
数字孪生

### 前端开发学习路径:数字孪生技术栈 #### 学习目标设定 为了有效掌握用于数字孪生前端开发技能,建议设立具体的学习目标。这些目标应围绕理解并能够运用现代Web技术和工具构建交互式的可视化界面展开。 #### 技术栈概览 数字孪生项目通常涉及多种技术栈的合作[^2]。对于专注于前端的部分来说,重点在于创建直观且高效的用户接口来展示来自物理世界的动态数据流。这不仅限于传统的HTML/CSS/JavaScript组合,还包括更高级别的框架和技术: - **UI库与框架**:如Angular, React 或 Vue.js,以及针对企业级应用场景设计的UI5。 ```javascript import { createApp } from 'vue'; const app = createApp({}); ``` - **图形渲染引擎**:Three.js或其他三维图形库可以帮助开发者处理复杂的几何形状和动画效果,在视觉化复杂结构方面尤为重要。 - **实时通信协议**:WebSocket等技术支持即时更新机制,确保虚拟环境中的变化能迅速反映到用户的屏幕上。 - **API集成能力**:RESTful API或GraphQL使前后端之间的高效互动成为可能,从而获取必要的传感器读数和其他外部资源。 #### 学习路线图 基于上述需求,以下是推荐的学习顺序: 1. 掌握基础编程语言(HTML5, CSS3, JavaScript ES6+),这是任何Web应用程序的基础; 2. 深入研究至少一种主流MV*架构下的单页应用(SPA)框架——React、Vue或Angular; 3. 对于希望进入工业界的企业级解决方案,则需熟悉SAP UI5及其生态系统特性; 4. 练习使用D3.js或者其他适合科学计算可视化的JS库来进行数据分析图表绘制练习; 5. 尝试结合Three.js制作简单的3D场景作为入门实践案例; 6. 熟悉如何利用Node.js搭建服务器并与客户端建立稳定可靠的双向通讯渠道; 7. 最后一步则是探索微服务架构下跨平台调用的最佳做法,比如通过gRPC或者Apollo Server实现GraphQL查询语句解析等功能模块的设计思路。 #### 资源推荐 - 官方文档总是最好的起点之一,无论是React官方指南还是Vue教程都提供了详尽的内容帮助初学者快速上手。 - GitHub上的开源项目也是不可多得的学习材料来源,特别是那些已经被广泛采用的真实世界实例更是值得仔细研读模仿。 - Coursera、Udemy平台上由行业专家录制的专业课程同样不容错过,它们往往涵盖了从理论讲解直到实际操作演练在内的全部环节。 - 参加线上线下的黑客松活动或是加入专门的兴趣小组讨论群组也有助于积累实战经验并结识志同道合的朋友共同进步成长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值