数学建模社区-数学中国
标题:
使用Matlab/Simulink实现运动可视化技术
[打印本页]
作者:
建不了的模。
时间:
2014-12-10 09:52
标题:
使用Matlab/Simulink实现运动可视化技术
使用Matlab/Simulink实现运动可视化技术
还在为不知道如何使自己的仿真结果更容易让人接受而烦恼吗?
还在为用一条条曲线所表示的运动太过抽象而苦不堪言吗?
建个3D模型,使用Matlab平台,投资小,利润高!小本经营,无限回报,赶快继续阅读吧,依托强大的Matlab平台支持,帮你解决仿真过程中遇到的这些烦恼~~
试想一下,无论是学术活动还是各种汇报,一个会动的仿真结果和一组组曲线相比哪个更直观,再配以必要的文字、数字说明,相信下面介绍的方法所得到的结果,无论从哪个角度来讲可能都会更具说服力。是个不错的选择~~ ^_^
===================================分割线===============================
广告打完了,言归正传。运动可视化使用到的是虚拟现实技术。虚拟现实(Virtual Reality,VR)顾名思义就是使用电脑模拟一个三维空间,让观察者有身临其境感觉的一项可视化技术。如果其中物体的运动是受外界控制的,那么就实现了运动的可视化,使运动不再抽象,控制效果也不再是一条条仿真曲线,可以从3D模型的运动中直观地反映出来。
运动可视化技术可以应用于很多领域,如控制中可以用它来反映被控对象的运动情况,机械中借助于外界输入设备(鼠标、操纵杆等)可以观察复杂机械设备的联动情况。做出来的虚拟现实系统也可以应用于虚拟训练、虚拟地图等场合。
虚拟现实所使用到的语言为VRML(Virtual Reality Modeling Language)即虚拟现实建模语言。由于早期的网络使用的语言HTML (HyperText Mark-up Language)无法满足巨大信息量的要求,为了解决这个问题,就应运而生了VRML语言,此处的运动可视化技术是借用VRML的强大建模的功能,在Matlab平台上实现虚拟现实。
那么下面就介绍一下虚拟现实的实现流程吧
2014-12-10 09:47 上传
下载附件
(23.99 KB)
[img]file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TempPic\Y]~]QT2[7SFIAYT]_6@@4U4.tmp[/img]
从流程图上看,操作过程并不复杂,实际上也是这样的,下面介绍的这样方法,即使没有VRML语言基础也能建立很好的虚拟现实场景。
首先是VRML建模工具的选择。
建模工具有很多种,比如V-Realm Builder 2.0(Matlab自带的VR建模工具),3D Max(功能强大,操作相对简单的工具,强烈推荐),如果对VRML语言十分精通,甚至可以使用记事本进行建模,虽然看起来最拽,但前期需要投入相当多的精力研究VRML语言。我使用的工具是3D Max和V-Realm Builder 2.0兼用,前者是在初期建模时使用的工具,后者是在对模型修改时所使用到的工具。
其次是虚拟现实浏览器的选择。
虚拟现实浏览器可以理解为VRML语言编译的编译器,通过虚拟现实浏览器可以将VRML语言编译成为3D模型。至于VRML浏览器的选择也有很多种,但如果是基于Matlab平台的系统,推荐使用Matlab/Simulink/Simulink 3D Animation工具箱中自带的VR Sink浏览器,使用这种浏览器不用考虑与Matlab的接口问题。
工具选择好之后,那么就举个例子看一下到底怎么用吧
1.建立3D模型
使用3D Max建立3D模型
2014-12-10 09:48 上传
下载附件
(43.58 KB)
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TempPic\I2~W6K9ZY}8DVV%@]0IADM7.tmp
3D Max建模过程相对简单,效果可以做到相当逼真的程度,完全可以满足虚拟现实中对模型精度的要求。如果不想自己建模也可以借助网络资源,使用搜索引擎搜索“3D模型”,可以找到大量现成的模型。
2.生成VRML 97格式文件
为了能在虚拟现实浏览器中反映出使用3D Max建立出的3D模型,需要将模型转换生成VRML97格式的文件。导出的方法很简单,选择文件→导出→VRML97格式的文件就行了。
3.使用虚拟现实浏览器
将Matlab/Simulink/Simulink 3D Animation/VR Sink模块拖拽到新建文件中,双击,出现如下界面
2014-12-10 09:49 上传
下载附件
(28.88 KB)
[img]file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TempPic\NS1}SHQ2(A[HP4O)AY6GFVC.tmp[/img]
单击Browse按钮,选择上步所生成的VRML97格式文件,之后界面变成如下形式
2014-12-10 09:49 上传
下载附件
(34.87 KB)
[img]file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TempPic\}J{}}65~0PL[%WM6YD8X0`V.tmp[/img]
这时窗口的右侧VRML Tree中就显示了很多节点,这些节点和VRML语言中的节点是一一对应的,这里面对于控制而言经常用到两个节点为rotation(旋转),translation(位置)。
需要注意的是,在建模过程中需要将一起运动的部件分到一个“组”中,控制时控制这个组的“旋转”和“位置”就行了。
4.虚拟现实浏览器的数据接口
常用的数据接口主要是针对rotation节点和translation节点的。
对于rotation节点需要四维数据,前三维定义绕哪个轴旋转,定义方法如下[1,0,0]表示绕x轴旋转,[0,1,0] 表示绕y轴旋转,[0,0,1] 表示绕z轴旋转;最后一维定义转动角度,以弧度为单位。坐标轴定义如下
2014-12-10 09:50 上传
下载附件
(12.78 KB)
[img]file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TempPic\P[]G73LV`YFR@
J84NH5_G@8.tmp
[/img]
对于translation节点只需要三维数据,即三个当前时刻中心的坐标。
由于rotation是经常需要使用到的节点,所以,每次都写很多0,1很麻烦,可以将rotation的接口用一个模块来替代,使用之前只需要选择绕哪个轴即可,输入由原来的四维变成了一维,可以大大提高建模效率。模块参数如下
2014-12-10 09:50 上传
下载附件
(29.87 KB)
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TempPic\9D6GNC89XLIA9(9]PQ6I2@H.tmp
做好一切准备工作之后,剩下的就是按动开始仿真的按钮了,让我们一起看一下效果吧~~
2014-12-10 09:51 上传
下载附件
(43.35 KB)
[img]file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\TempPic\Q%`I_$TL1CX(6`
9L79@QMVF.tmp
[/img]
模型是使4个轮子旋转,并且整体移动,如果这样的试验通过了,下一步就是接入能使车真正运动起来的数据,进而可以仿真真实车辆行驶的全过程了
上图中左侧的图就是Matlab自带的虚拟现实浏览器,其中下方有许许多多按钮,下方的这些按钮是控制观察者的视角的,类似一些RPG游戏一样,观察者也可以通过鼠标任意调整视角,360°看到虚拟现实世界中的一切,不过前提是场景得做的十分精细,附件中的模型我指贴了一面的贴图,如果大家好奇心特别重,旋转了视角,将会看到另一个世界~~
==================================分割线================================
上面介绍了VRML建模的全过程,如果遇到复杂的模型,耗费时间的地方在于对真实模型和环境的刻画,Matlab这边的工作,Simulink 3D Animation工具箱已经做了足够多,不需要更改什么,设置一些参数就能直接用了。
此外,Simulink 3D Animation工具箱还提供了很多其他强大的功能,例如在虚拟现实世界中显示文字(VR Text Output),将运动物体的运动后的轨迹记录并在浏览器中显示(VR Tracer),一些外部输入设备的驱动(Joystick Input,Space Mouse Input)。最经典的是Demos模块中提供了各式各样的例子,里面不同类型的应用,基本能够满足简单的要求,同时也是学习虚拟现实一个很好的工具。
下载:
附件使用方法:将压缩文件解压生成car.WRL文件,打开car.mdl,双击VR Sink,单击Brown找到car.WRL文件,在左侧节点列表中下找到如下节点
SUV/children.rotation 整车的旋转
SUV/children.translation 整车的位置
Reifen_VL.rotation 左前轮旋转
Reifen_HL.rotation 左后轮旋转
Reifen_VR.rotation 右前轮旋转
Reifen_HL.rotation 左后轮旋转
勾选上述节点,旋转需要四维数据(格式见上文所述),位置需要三维数据,输入相应数据,即可观察到相应的运动
21272659m7lurqnz9zqus4.jpg.thumb.jpg
(12.78 KB, 下载次数: 224)
2014-12-10 09:50 上传
点击文件名下载附件
作者:
张银银
时间:
2014-12-10 21:51
做机械的,还是多学习这个···
作者:
励俊07
时间:
2014-12-11 20:50
学习学习!!!!!
作者:
w785485068
时间:
2014-12-12 17:09
顶一下。。。。。
作者:
yqybsd
时间:
2015-7-27 11:02
好棒啊 感觉棒棒的
作者:
1024973593
时间:
2021-10-18 14:19
找了好久终于找到,感谢楼主的教程
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5