数字孪生-使用Unity构建能实时显示应力应变的孪生模型

Motivation - 采用Unity作为孪生技术栈的经历?

最开始想要利用Ansys的Twin Builder模块来进行数字孪生的开发,但是Ansys 的Twin Builder在部署的时候,需要license,要获得license所要花费的价格是难以接受的。 后来想要利用QT+VTK的方式来进行开发,因为QT是用来开发GUI程序比较常用的框架,加上自己所要研究的对象需要实时反映三维的应力应变的情况,VTK是一个专门做可视化的包,也在网上查到Paraview这个非常强大的科学可视化的软件就是基于VTK所编写的,我还专门去研究了一下paraview的源码编译过程,发现最后虽然实现了paraview的编译,但是想要从paraview当中实时拆解一些我所需要的模块进行使用的时候,几乎不可能,可能是自己的水平还不到家。在使用QT开发的过程中,发现要达到自己所想要的孪生的效果所需要的时间成本是非常大的。后面再B站上以及跟进大工宋学官老师的研究,发现有不少人在使用Unity来进行数字孪生模型的构建,自己就尝试使用Unity来进行了,从11号下载Unity完毕到今天15天的时间里,也稍微做一个总结。

Unity有什么优势?

Unity 作为一个游戏引擎,他最直接的优势就是为我提供了一个平台或框架,让我很多东西是不用从0开始的。比如说他的UGUI系统,游戏物体挂载代码来实现对应的行为,动画效果等等。入门是具有一定的成本,但是相较于可以实现的效果来说,是值得去探索和尝试一下的。

现在实现地怎么样了?

首先放几个动图:

(1) 首先是可视化的界面

在这里插入图片描述
主要是甲方还是想要一些比较炫酷的效果,想要我给对方做一个demo,这张图只是一个前端,主要是购买了unity官方商店的一个数据可视化的包,就很容易实现,大概花了一天的时间就行,后面接入真实的数据就可以了。 但官方商店太贵了,┭┮﹏┭┮,几百大洋就没了。
在这里插入图片描述
想着可以回点血,我也将资源放在淘宝上了, 有需要的小伙伴可以自取(勿喷,一个学生拿将近一个月工资买了也真的很心疼呜呜,之前的插件其实也是花几百大洋买的,但都是免费分享的):

【淘宝】https://m.tb.cn/h.5nncs1Yn6yWUUal?tk=fqssWTelLsU CZ3457 「Unity3D 可视化素材」
点击链接直接打开 或者 淘宝搜索直接打开

另外给大家避个坑,这家店卖的不是Unity里面要用的包,而是一些psd资源,后面还是需要自己码代码,基本上没什么用。
在这里插入图片描述
好了,广告就到这里了。

(2)应力应变实时可视化

由于我的电脑跑整个机架的模型还是有点太慢了,就将其中的一个零件单独拿出来。上面一张图是Abaqus这根零件的变形云图,我将相关的数据抽取出来在unity当中重建了模型,并根据节点的数值大小重新进行了一下渲染,如下面第二张图所示,可以看到在Unity当中重建还是可以接受的。
Abaqus

在这里插入图片描述
上面的图则说明顺利地完成了从Abaqus模型转换到Unity的过程。
下面两张动图则是为了验证在Unity当中能够顺利完成实时地渲染。第一个动图则是在mesh节点所有数据上加了一个正弦函数,所以有了一个明暗的变化。
请添加图片描述
下面的动图则是将四个不同分量进行一个实时地转换,这个倒是比较简单。
请添加图片描述

经过上面的试验,至少说明在Unity当中已经具备实时显示的基础了;如果不再考虑训练代理模型来进行实时数据更新,最粗暴的方式就是在数据库当中储存一定数量的云图数据案例,按照加载情况进行实时地调用就是(虽然这应该不算是真正的数字孪生)。

以上就是目前的进展了,而后续也打算研究一下代理模型的一些研究。

当前的进展当中遇到了哪些难点?

首先是需要熟悉和了解unity的运行机制,如怎么理解在一个Gameobject上挂代码?如何控制Unity的相机、动画、Shader等等,这些跟着B站的一些教程走还是比较容易地。
其次是Abaqus模型怎么导入到Unity当中.如果只是外观模型的话,可以首先导入solidwork里面,然后再导入到3dmax转化为fbx模型;但是,总有个但是,如果需要渲染应力应变的云图的话,那就需要根据有限元仿真数据和Unity的模型构建机制来重构模型的顶点和三角面,并且编写Unity的Shader代码来根据模型节点上的分析数据(如应变数据)来对模型进行一个实时渲染。

总结一下工作流程

  1. 首先提取Abaqus当中的节点信息;
  2. 编写脚本解析提取出来的文本信息;
  3. 根据解析的数据来构建unity的mesh,里面包含顶点位置、顶点数值和面片信息;
  4. 编写Shader来根据顶点数值进行模型的渲染,完成在Unity当中模型的重构。
    如果有需要相关的源码借鉴和参考的小伙伴可以私信,不过稍微有偿噢~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/749735.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB:拟合与插值

一、关于多项式的基本操作 若要求非线性方程的根,则采用fzero, fminbnd函数 二、多项式拟合 clc, clear x0:0.2:10; y0.25*x20*sin(x); plot(x,y,k.,MarkerSize,15) grid on; hold on [p1,s1,mu1]polyfit(x,y,3); %3阶多项式拟合 y1polyval(p1,x,s1,mu1); [p2,s…

2024.3.17 机器学习周报

引言 Abstract 文献阅读 1、题目 R-TRANSFORMER: RECURRENT NEURAL NETWORK ENHANCED TRANSFORMER 2、引言 递归神经网络长期以来一直是序列建模的主要选择。然而,它严重遭受两个问题:在捕获非常长期的依赖性和无法并行化的顺序计算过程中无能为力…

云服务器2核4G能支持多少人同时访问?拿本记上!

腾讯云轻量2核4G5M带宽服务器支持多少人在线访问?5M带宽下载速度峰值可达640KB/秒,阿腾云以搭建网站为例,假设优化后平均大小为60KB,则5M带宽可支撑10个用户同时在1秒内打开网站,并发数为10,经阿腾云测试&a…

[蓝桥杯练习题]确定字符串是否包含唯一字符/确定字符串是否是另一个的排列

确定字符串是否包含唯一字符 #include<bits/stdc.h> using namespace std; int main(){ios::sync_with_stdio(0);cin.tie(nullptr);cout.tie(nullptr);map<char,int>m;string s;cin>>s;for(int i0;i<s.size();i){if(isalpha(s[i]))s[i]tolower(s[i]);if(…

如何使用“Docker registry创建本地仓库,在服务器之间进行文件push和pull”?

1.1、在服务器1&#xff0c;运行registry docker run -d -p 5000:5000 -v ${PWD}/registry:/var/lib/registry --restart always --name registry registry:2.7.11.2、编辑/etc/docker/daemon.json 文件&#xff0c; 192.168.xxx.xxx 换成你自己 registry 服务的地址 sudo na…

印度交易所股票行情数据API接口

1. 历史日线 # Restful API https://tsanghi.com/api/fin/stock/XNSE/daily?token{token}&ticker{ticker}默认返回全部历史数据&#xff0c;也可以使用参数start_date和end_date选择特定时间段。 更新时间&#xff1a;收盘后3~4小时。 更新周期&#xff1a;每天。 请求方式…

下载程序到嵌入式开发板教程

一、设置共享目录 ubuntu与Window共同拥有的目录。 第一步&#xff1a;在Windows下创建一个文件夹share 第二部&#xff1a;点击虚拟机--->设置--->选项--->共享文件夹 进入共享目录的命令&#xff1a;cd/mnt/hgfs/share 二、C语言编译器 使用Linux平台下的gcc编…

MyBatis Plus(代码生成器)

一、安装 安装MyBatisPlus插件 二、配置 1、 在生成代码之前首先需要配置所要连接的数据库 下面所对应的分别是&#xff1a; 所要连接的数据库 数据库驱动 用户名 密码 2、 点击Other->Code Generator 开始配置所需选项

【NR 定位】3GPP NR Positioning 5G定位标准解读(十四)-DL-TDOA 定位

前言 3GPP NR Positioning 5G定位标准&#xff1a;3GPP TS 38.305 V18 3GPP 标准网址&#xff1a;Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;一&#xff09;-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;…

基于卷积神经网络实现手写数字识别

基于卷积神经网络实现手写数字识别 基于卷积神经网络实现手写数字识别。具体过程如下&#xff1a; &#xff08;1&#xff09; 定义ConvNet结构类及其前向传播方式 &#xff08;2&#xff09; 设置超参数以及导入相关的包。 &#xff08;3&#xff09; 定义训练网络函数和绘…

桌面待办,电脑桌面待办事项便利贴怎么搞的

电脑桌面待办事项贴便利&#xff0c;是一款非常实用的小工具&#xff0c;可以帮助我们高效管理工作和生活中的各种任务。通过简单的操作&#xff0c;你可以在电脑桌面上添加待办事项&#xff0c;随时提醒自己完成任务&#xff0c;提高工作效率。那么&#xff0c;桌面待办&#…

Hack The Box-Jab

目录 信息收集 nmap enum4linux 服务信息收集 Pidgin kerbrute hashcat 反弹shell & get user 提权 系统信息收集 端口转发 漏洞利用 get root 信息收集 nmap 端口探测┌──(root㉿ru)-[~/kali/hackthebox] └─# nmap -p- 10.10.11.4 --min-rate 10000 -oA…

vitepress里使用gitalk(图文教程)

vitepress里使用gitalk Gitalk 是一个基于 GitHub Issue 和 Preact 开发的评论插件 生成client配置 创建OAuth application 填写完毕&#xff0c;点击 Register application 即可 生成client secrets 一开始没有自动生成 Client secrets&#xff0c;需要手动生成&#xff…

Day17 深入类加载机制

Day17 深入类加载机制 文章目录 Day17 深入类加载机制一、初识类加载过程二、深入类加载过程三、利用类加载过程理解面试题四、类加载器五、类加载器分类六、类加载器之间的层次关系七、双亲委派模型 - 概念八、双亲委派模型 - 工作过程九、双亲委派模型 - 好处十、双亲委派原则…

MySQL:视图

1. 概述 在MySQL中&#xff0c;视图&#xff08;View&#xff09;是一个虚拟存在的表&#xff0c;其内容是由查询定义的。视图本身并不包含数据&#xff0c;它只包含一条SQL查询语句&#xff08;即定义视图的SELECT语句&#xff09;。当通过视图访问数据时&#xff0c;MySQL会执…

【软考高项】八、信息技术发展之新一代信息技术及应用

1、物联网 定义&#xff1a;通过信息传感设备&#xff0c;按约定的协议将任何物品与互联网相连接&#xff0c;进行信息交换和通信&#xff0c;以实现智能化识别、定位、跟踪、监控和管理的网络 分层&#xff1a; 感知层---各种传感器构成 网络层---物联网的中枢&#xff0c…

西门子TIA中配置Anybus PROFINET IO Slave 模块

1、所需产品 Siemens S7 PLC CPU 315-2 PN/DP 6ES7 315-2EH-0AB0 Siemens PLC 编程电缆 n.a. n.a. PC ,并安装Siemens PLC编程软件 TIA Portal V11 X-gateway Slave 接口的GSDML文件 根据网关的软件版本而定 Anybus Communicator GSD文件 GSDML-V1.0-HMS-ABCPRT-20050317.xl…

win下 VirtualBox 自动启动脚本脚本

文章目录 一、找到VBoxManage二、测试脚本1、打开cmd2、输入命令 (直接把上面找到的VBoxManage.exe 拖入到cmd中&#xff0c;这样就不用输入路径了)3、效果展示 比如虚拟机中的系统名称叫“centos-mini” 三、设置自动启动脚本1、复制刚才测试好的命令到新建文本中2、修改文本名…

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

Golang实现Redis分布式锁&#xff08;Lua脚本可重入自动续期&#xff09; 1 概念 应用场景 Golang自带的Lock锁单机版OK&#xff08;存储在程序的内存中&#xff09;&#xff0c;分布式不行 分布式锁&#xff1a; 简单版&#xff1a;redis setnx》加锁设置过期时间需要保证原…

Unity3d版白银城地图

将老外之前拼接的Unity3d版白银城地图&#xff0c;导入到国内某手游里&#xff0c;改成它的客户端地图模式&#xff0c;可以体验一把手游的快乐。 人物角色用的是它原版的手游默认的&#xff0c;城内显示效果很好&#xff0c;大家可以仔细看看。 由于前期在导入时遇到重大挫折&…