1. 首页
  2. 教育教学论文

虚拟现实技术在土木工程中的应用 摘要:本文基于Unity 3D平台和Visual Studio 2010开发环境,在3Ds Max建模软件的基础上,结合.Net脚本以及Winform窗体设计完成大型储罐地震动实验的虚拟实验系统,解决了直径为60m~80m的大型储罐地震动实验因缺少振动台、耗资巨大而无法完成的问题,同时为土木工程专业的实验教学方案提供了一定的帮助。 关键词:Unity 3D;大型储罐;地震动实验 中图分类号:TP3 文献标识码:A 论文编号:1674-2117(2017)20-0096-

摘要:本文基于Unity 3D平台和Visual Studio 2010开发环境,在3Ds Max建模软件的基础上,结合.Net脚本以及Winform窗体设计完成大型储罐地震动实验的虚拟实验系统,解决了直径为60m~80m的大型储罐地震动实验因缺少振动台、耗资巨大而无法完成的问题,同时为土木工程专业的实验教学方案提供了一定的帮助。

关键词:Unity 3D;大型储罐;地震动实验

中图分类号:TP3 文献标识码:A 论文编号:1674-2117(2017)20-0096-04

● 引言

随着社会的发展,抗灾减灾及抗震减灾已成为单独学科或者土木工程专业附属学科,储罐地震动研究也成为一个主要科目。作为当代大学生,尤其是土木相关行业的学生及从业者,有必要深入了解储罐地震动的相关基本知识。[1]尽管部分高校有着先进的振动台及储罐实验罐体,但是由于振动台属于大型液压传动设备,液压元件均按照国家工业标准进行设计制造,属于精密度极高的液压元器件,使用寿命有限,且无论是振动台还是储罐都属于大型教学试件,尤其是地震的晃动存在很多潜在的危险性,所以学校一般不会要求学生集体参与其中。此外,学校本身技术、实验空间等客观条件的约束仍然存在。目前,市场上主流的振动台台面尺寸多为0.5m×0.5m、0.8m×0.8m、1.0m×1.0m、1.5m×1.5m、3.0m×3.0m等,承重为100kg、200kg、300kg、500kg、1500kg,我国最大新型振动台为中国建筑科学研究院使用的,台面尺寸为6m×6m,承重达到60t,真实地震动实验涉及储罐直径为60m~80m,满灌液体重量达到50000t~150000t,以目前市场上的振动台无法满足地震动实验的要求。

一般高校只能按比例缩小实际储罐的尺寸,制作模型来完成大型储罐地震动实验,无法实现对实际储罐进行地震动实验。在实验过程中,学生只能作为旁观者观看,片面了解实验过程中所涉及的相关设备及原理,无法进行深层次的学习,更不能发挥主观能动性。[2]为了节省学校资源,避免实验准备周期长,并让师生在虚拟现实的大型实验中学到更多、更直接的专业知识,解决现实中无法完成大型储罐地震动实验的难题,本文通过对小型储罐地震动实验方案和结果的研究,以及对大型储罐地震动实验的虚拟仿真,设计了以大型储罐(50000m3~100000m3)为实验对象的地震动虚拟实验系统。

● 系统设计与构成

大型储罐地震动实验系统的设计分为四个阶段:①资料搜集阶段。这一阶段作为基本信息的搜集整理阶段,是整个系统的基础,它能分析大型储罐的材料、大小及浮顶设计原理,同时能对市场上各种振动台进行调研,动力系统考证一系列论证实现虚拟环境下振动台的数值需求,选取适合本实验的测量设备,如位移传感器、加速度传感器、应变传感器等,还能对遥感测量技术进行研究,以及对出事实验基地的尺寸设计及外围环境进行设置。②3D建模阶段。根据收集的实验室、储罐、设备等资料,利用3Ds Max建模软件,结合数据换算,建立虚拟仿真模型。③引擎编译阶段。将建造好的模型导出FBX后,导入Unity 3D引擎中,设计正常的物理运动,在储罐振动、作动头往复、作动轴摆动等现实场景中可以看到动态场景。④系统发布。系统开发完成后,需要在Unity 3D平台下进行打包发布处理。

系统主要由三维模型建立、数据提取保存、UI交互三个模块构成,各个模块的实现过程如图1所示。

● 虚拟场景搭建

虚拟场景的搭建是大型储油库地震动实验系统的基础,主要对实验室、大型储罐、振动台以及所用的检测仪器、设备等进行3Ds Max建模以及Photoshop贴图处理。实验室模型的建立按照本校土木工程学院结构实验室按比例放大设计。大型储罐针对5万方、10万方和15万方容量进行建模,并按照实际实验的布置位置和方法布置位移传感器、加速度传感器及应变片等。

● 数据提取保存

实验数据通过ADINA有限元数值仿真分析软件计算得到,采用Newmark-β逐步积分法求解[3],在储罐上布置加速度测点7个,位移测点7个,为测试晃动波高在液面顶部布置7个位移传感器。在数据提取过程中,定义点对每一点进行数据提取,提取罐壁加速度时称曲线、有效应力时称曲线、环向应力时称曲线、轴线应力时称曲线等。以“兰州波2”为例进行说明,数据如图2所示。

数据提取处理完成后,导入SQL Server 2008数据库进行存储,数据类型设计如图3所示。

● UI交互实现

Unity自发布以来,在版本Unity 4.6之前,官方只提供OnGUI函数来进行GUI开发,由于在开发过程中问题较多,且不支持可视化开发,所以UI设计形成了很大的局限性,但这一现状很快被NGUI插件打破,它成了Unity开发必备插件,支持可视化开发,同时支持2D与3D的UI界面开发,性能更稳定。本系统采用Unity 3D自带的UGUI开发体系,应用了UGUI中的Canvas、Text、Image、Button等14个控件进行界面的设计,系统的UI交互设计如图4所示。

1.登录系统

登录系统的存在是完整系統组成的必要部分,设置系统登录操作不仅能有效保护系统的安全性,还能很好地甄别拥有不同权限用户登录后所获取的不同服务功能。

系统登录后,打开系统介绍界面,即可了解虚拟现实技术应用于该领域的目的和意义,同时对该虚拟实验场景进行场地区域划分说明,这能让学生更快地了解软件的场景构成,减少系统学习使用时间。

系统介绍阅读完毕后,正式进入实验准备阶段。本系统完全依照真实实验进行设计,实验系统包括5万方、10万方、15万方等三种不同储量的大型浮顶储罐,针对不同场地类型及多条地震波进行实验,设计了多种实验方案,主要内容包括储罐类型,应变片选取,加速度传感器选取,实验过程中涉及的原理公式、施工方式方法等。

2.实验场景

实验场景主要包括实验准备、开始、停止以及资料学习等场景。在实验准备模块中,大量的UI交互开始介入实验系统,秉承UI设计的一致性、准确性、布局合理、操作合理、响应时间的多重原则,设计后续UI图标及交互方式。本次UI设计依照极简、矢量、扁平化等目前比较流行的设计风格,主题图标颜色以黑色为主,每个图标拥有自己独立的挂载脚本和独立功能,在交互过程中不会出现干扰,在UI交互独立性控制的同时,能控制UI控件的响应时间,使人机操作更加和谐。大型储罐地震动实验系统采取的交互UI位于主屏幕右侧,按照实验操作顺序进行布置,同时设置提示模块,显示各步骤的指示操作,引导学生按步骤操作实验。

在实验准备界面的设计场景中,按钮功能如下表所示,效果图如下页图5~图7所示。

3.部分功能实现代码

在实验场景内,为了高度还原地震动实验场景,笔者设计了吊车吊装储罐从原始位置到达振动台以及实验结束后,将储罐吊回的动画场景。本实验系统通过设定时间函数,对吊车及储罐进行控制,随时间t从零开始,按步骤实现吊起、向前平移至振动台、放下储罐、退回原始位置这一运动轨迹进行吊装演示,关键代码如下:

usingUnityEngine;

usingSystem.Collections;

public class DC5 : MonoBehaviour

{private float t = 0.0f;

void Start(){}

void Update()

{t += Time.deltaTime;

if (t < 7.2f)

{transform.Translate(Vector3.forward * Time.deltaTime * -10, Space.World);}

else if (t > 7.20f && t < 7.48f)

{transform.Translate(Vector3.right * Time.deltaTime * 0, Space.World);}

else if (t > 7.48f && t < 11.08f)

{transform.Translate(Vector3.down * Time.deltaTime * 0, Space.World);}

else if (t > 11.08f && t < 14.68f)

{transform.Translate(Vector3.up * Time.deltaTime * 0, Space.World);}

else if (t > 14.68f && t < 19.53f)

{transform.Translate(Vector3.forward * Time.deltaTime * -10, Space.World);}

else if (t > 19.53f && t < 20.5f)

{transform.Translate(Vector3.down * Time.deltaTime * 0, Space.World);}

else if (t > 20.5f && t < 21.47f)

{transform.Translate(Vector3.up * Time.deltaTime * 0, Space.World);}

else if (t > 21.47f && t < 33.52f)

{transform.Translate(Vector3.forward * Time.deltaTime * 10, Space.World);}}

除了实验吊装外,操作实验动画开始,储罐在振动台作用下随地震波的输入便开始震动是另一重要场景还原,利用Unity内的Dropdown的联合使用,进行数据窗体激活,其主要代码如下:

if (DropD1.options[DropD1.value].text == "15万方储罐" && DropD2.options[DropD2.value].text == "Ⅰ类场地土" && DropD3.options[DropD3.value].text == "CPM_CAPE MENDOCINO_90")

{G15.AddComponent();

FD15.AddComponent();

TST.SetActive(true);

panel.SetActive(false);

Process.Start("C:\\Users\\LDC\\Desktop\\11");

Process.Start("C:\\Users\\LDC\\Desktop\\22");}

if (DropD1.options[DropD1.value].text == "15万方储罐" && DropD2.options[DropD2.value].text == "Ⅰ类场地土" && DropD3.options[DropD3.value].text == "CPM_CAPE MENDOCINO_00")

{G15.AddComponent();

ZDT.AddComponent();

FD15.AddComponent();

Process.Start("H:\\数据窗体\\15万方\\1\\c00\\c00");

TST.SetActive(true);}

4.Winform窗体实现

Winform窗体在Visual Studio 2010开发环境下设计完成,窗体主要实现数据库连接加载数据显示、曲线生成等。Winform窗体由Unity 3D触发弹出,实现与Unity 3D场景实验加载的同步(如图8)。

● 结语

摘要:本文基于Unity 3D平台和Visual Studio 2010开发环境,在3Ds Max建模软件的基础上,结合.Net脚本以及Winform窗体设计完成大型储罐地震动实验的虚拟实验系统,解决了直径为60m~80m的大型储罐地震动实验因缺少振动台、耗资巨大而无法完成的问题,同时为土木工程专业的实验教学方案提供了一定的帮助。

关键词:Unity 3D;大型储罐;地震动实验

中图分类号:TP3 文献标识码:A 论文编号:1674-2117(2017)20-0096-04

● 引言

随着社会的发展,抗灾减灾及抗震减灾已成为单独学科或者土木工程专业附属学科,储罐地震动研究也成为一个主要科目。作为当代大学生,尤其是土木相关行业的学生及从业者,有必要深入了解储罐地震动的相关基本知识。[1]尽管部分高校有着先进的振动台及储罐实验罐体,但是由于振动台属于大型液压传动设备,液压元件均按照国家工业标准进行设计制造,属于精密度极高的液压元器件,使用寿命有限,且无论是振动台还是储罐都属于大型教学试件,尤其是地震的晃动存在很多潜在的危险性,所以学校一般不会要求学生集体参与其中。此外,学校本身技术、实验空间等客观条件的约束仍然存在。目前,市场上主流的振动台台面尺寸多为0.5m×0.5m、0.8m×0.8m、1.0m×1.0m、1.5m×1.5m、3.0m×3.0m等,承重为100kg、200kg、300kg、500kg、1500kg,我国最大新型振动台为中国建筑科学研究院使用的,台面尺寸为6m×6m,承重达到60t,真实地震动实验涉及储罐直径为60m~80m,满灌液体重量达到50000t~150000t,以目前市场上的振动台无法满足地震动实验的要求。

一般高校只能按比例缩小实际储罐的尺寸,制作模型来完成大型储罐地震动实验,无法实现对实际储罐进行地震动实验。在实验过程中,学生只能作为旁观者观看,片面了解实验过程中所涉及的相关设备及原理,无法进行深层次的学习,更不能发挥主观能动性。[2]为了节省学校资源,避免实验准备周期长,并让师生在虚拟现实的大型实验中学到更多、更直接的专业知识,解决现实中无法完成大型储罐地震动实验的难题,本文通过对小型储罐地震动实验方案和结果的研究,以及对大型储罐地震动实验的虚拟仿真,设计了以大型储罐(50000m3~100000m3)为实验对象的地震动虚拟实验系统。

● 系统设计与构成

大型储罐地震动实验系统的设计分为四个阶段:①资料搜集阶段。这一阶段作为基本信息的搜集整理阶段,是整个系统的基础,它能分析大型储罐的材料、大小及浮顶设计原理,同时能对市场上各种振动台进行调研,动力系统考证一系列论证实现虚拟环境下振动台的数值需求,选取适合本实验的测量设备,如位移传感器、加速度传感器、应变传感器等,还能对遥感测量技术进行研究,以及对出事实验基地的尺寸设计及外围环境进行设置。②3D建模阶段。根据收集的实验室、储罐、设备等资料,利用3Ds Max建模软件,结合数据换算,建立虚拟仿真模型。③引擎编译阶段。将建造好的模型导出FBX后,导入Unity 3D引擎中,设计正常的物理运动,在储罐振动、作动头往复、作动轴摆动等现实场景中可以看到动态场景。④系统发布。系统开发完成后,需要在Unity 3D平台下进行打包发布处理。

系统主要由三维模型建立、数据提取保存、UI交互三个模块构成,各个模块的实现过程如图1所示。

● 虚拟场景搭建

虚拟场景的搭建是大型储油库地震动实验系统的基础,主要对实验室、大型储罐、振动台以及所用的检测仪器、设备等进行3Ds Max建模以及Photoshop贴图处理。实验室模型的建立按照本校土木工程学院结构实验室按比例放大设计。大型储罐针对5万方、10万方和15万方容量进行建模,并按照实际实验的布置位置和方法布置位移传感器、加速度传感器及应变片等。

● 数据提取保存

实验数据通过ADINA有限元数值仿真分析软件计算得到,采用Newmark-β逐步积分法求解[3],在储罐上布置加速度测点7个,位移测点7个,为测试晃动波高在液面顶部布置7个位移传感器。在数据提取过程中,定义点对每一点进行数据提取,提取罐壁加速度时称曲线、有效应力时称曲线、环向应力时称曲线、轴线应力时称曲线等。以“兰州波2”为例进行说明,数据如图2所示。

数据提取处理完成后,导入SQL Server 2008数据库进行存储,数据类型设计如图3所示。

● UI交互实现

Unity自发布以来,在版本Unity 4.6之前,官方只提供OnGUI函数来进行GUI开发,由于在开发过程中问题较多,且不支持可视化开发,所以UI设计形成了很大的局限性,但这一现状很快被NGUI插件打破,它成了Unity开发必备插件,支持可视化开发,同时支持2D与3D的UI界面开发,性能更稳定。本系统采用Unity 3D自带的UGUI开发体系,应用了UGUI中的Canvas、Text、Image、Button等14个控件进行界面的设计,系统的UI交互设计如图4所示。

1.登录系统

登录系统的存在是完整系統组成的必要部分,设置系统登录操作不仅能有效保护系统的安全性,还能很好地甄别拥有不同权限用户登录后所获取的不同服务功能。

系统登录后,打开系统介绍界面,即可了解虚拟现实技术应用于该领域的目的和意义,同时对该虚拟实验场景进行场地区域划分说明,这能让学生更快地了解软件的场景构成,减少系统学习使用时间。

系统介绍阅读完毕后,正式进入实验准备阶段。本系统完全依照真实实验进行设计,实验系统包括5万方、10万方、15万方等三种不同储量的大型浮顶储罐,针对不同场地类型及多条地震波进行实验,设计了多种实验方案,主要内容包括储罐类型,应变片选取,加速度传感器选取,实验过程中涉及的原理公式、施工方式方法等。

2.实验场景

实验场景主要包括实验准备、开始、停止以及资料学习等场景。在实验准备模块中,大量的UI交互开始介入实验系统,秉承UI设计的一致性、准确性、布局合理、操作合理、响应时间的多重原则,设计后续UI图标及交互方式。本次UI设计依照极简、矢量、扁平化等目前比较流行的设计风格,主题图标颜色以黑色为主,每个图标拥有自己独立的挂载脚本和独立功能,在交互过程中不会出现干扰,在UI交互独立性控制的同时,能控制UI控件的响应时间,使人机操作更加和谐。大型储罐地震动实验系统采取的交互UI位于主屏幕右侧,按照实验操作顺序进行布置,同时设置提示模块,显示各步骤的指示操作,引导学生按步骤操作实验。

在实验准备界面的设计场景中,按钮功能如下表所示,效果图如下页图5~图7所示。

3.部分功能实现代码

在实验场景内,为了高度还原地震动实验场景,笔者设计了吊车吊装储罐从原始位置到达振动台以及实验结束后,将储罐吊回的动画场景。本实验系统通过设定时间函数,对吊车及储罐进行控制,随时间t从零开始,按步骤实现吊起、向前平移至振动台、放下储罐、退回原始位置这一运动轨迹进行吊装演示,关键代码如下:

usingUnityEngine;

usingSystem.Collections;

public class DC5 : MonoBehaviour

{private float t = 0.0f;

void Start(){}

void Update()

{t += Time.deltaTime;

if (t < 7.2f)

{transform.Translate(Vector3.forward * Time.deltaTime * -10, Space.World);}

else if (t > 7.20f && t < 7.48f)

{transform.Translate(Vector3.right * Time.deltaTime * 0, Space.World);}

else if (t > 7.48f && t < 11.08f)

{transform.Translate(Vector3.down * Time.deltaTime * 0, Space.World);}

else if (t > 11.08f && t < 14.68f)

{transform.Translate(Vector3.up * Time.deltaTime * 0, Space.World);}

else if (t > 14.68f && t < 19.53f)

{transform.Translate(Vector3.forward * Time.deltaTime * -10, Space.World);}

else if (t > 19.53f && t < 20.5f)

{transform.Translate(Vector3.down * Time.deltaTime * 0, Space.World);}

else if (t > 20.5f && t < 21.47f)

{transform.Translate(Vector3.up * Time.deltaTime * 0, Space.World);}

else if (t > 21.47f && t < 33.52f)

{transform.Translate(Vector3.forward * Time.deltaTime * 10, Space.World);}}

除了实验吊装外,操作实验动画开始,储罐在振动台作用下随地震波的输入便开始震动是另一重要场景还原,利用Unity内的Dropdown的联合使用,进行数据窗体激活,其主要代码如下:

if (DropD1.options[DropD1.value].text == "15万方储罐" && DropD2.options[DropD2.value].text == "Ⅰ类场地土" && DropD3.options[DropD3.value].text == "CPM_CAPE MENDOCINO_90")

{G15.AddComponent();

FD15.AddComponent();

TST.SetActive(true);

panel.SetActive(false);

Process.Start("C:\\Users\\LDC\\Desktop\\11");

Process.Start("C:\\Users\\LDC\\Desktop\\22");}

if (DropD1.options[DropD1.value].text == "15万方储罐" && DropD2.options[DropD2.value].text == "Ⅰ类场地土" && DropD3.options[DropD3.value].text == "CPM_CAPE MENDOCINO_00")

{G15.AddComponent();

ZDT.AddComponent();

FD15.AddComponent();

Process.Start("H:\\数据窗体\\15万方\\1\\c00\\c00");

TST.SetActive(true);}

4.Winform窗体实现

Winform窗体在Visual Studio 2010开发环境下设计完成,窗体主要实现数据库连接加载数据显示、曲线生成等。Winform窗体由Unity 3D触发弹出,实现与Unity 3D场景实验加载的同步(如图8)。

● 结语

大型储油罐地震动系统以Unity 3D平台为基础,结合Visual Studio 2010开发环境、3Ds Max建模软件、.Net脚本以及Winform窗体设计完成,解决了针对60m~80m直径大型储罐地震动实验因缺少振动台及耗资巨大而无法完成实验的問题,为土木工程专业的学生和教师提供了了解和学习科研实验的良好环境,为学校的实验教学方案提供了一定的帮助,同时为虚拟现实技术的应用提供了较好的例证。

参考文献:

[1]赵敏.大型LNG储罐随机地震响应与抗震可靠度分析[D].哈尔滨:哈尔滨工业大学,2015.

[2]刘德建,刘晓琳,张琰,等.虚拟现实技术教育应用的潜力、进展与挑战[J].开放教育研究,2016(4):25-31.

[3]孙建刚,崔利富,张营.全容式LNG储罐地震响应数值模拟研究[C].低碳经济与土木工程科技创新——2010中国(北京)国际建筑科技大会论文集,2010:6.

作者简介:张庆高(1989—),男,汉族,山东潍坊人,助理工程师,硕士,主要从事软件开发;孙建刚(1959—),男,汉族,辽宁大连人,教授,博士,主要从事防灾减灾工程研究。大型储油罐地震动系统以Unity 3D平台为基础,结合Visual Studio 2010开发环境、3Ds Max建模软件、.Net脚本以及Winform窗体设计完成,解决了针对60m~80m直径大型储罐地震动实验因缺少振动台及耗资巨大而无法完成实验的問题,为土木工程专业的学生和教师提供了了解和学习科研实验的良好环境,为学校的实验教学方案提供了一定的帮助,同时为虚拟现实技术的应用提供了较好的例证。

参考文献:

[1]赵敏.大型LNG储罐随机地震响应与抗震可靠度分析[D].哈尔滨:哈尔滨工业大学,2015.

[2]刘德建,刘晓琳,张琰,等.虚拟现实技术教育应用的潜力、进展与挑战[J].开放教育研究,2016(4):25-31.

[3]孙建刚,崔利富,张营.全容式LNG储罐地震响应数值模拟研究[C].低碳经济与土木工程科技创新——2010中国(北京)国际建筑科技大会论文集,2010:6.

作者简介:张庆高(1989—),男,汉族,山东潍坊人,助理工程师,硕士,主要从事软件开发;孙建刚(1959—),男,汉族,辽宁大连人,教授,博士,主要从事防灾减灾工程研究。


发表评论

联系我们

在线咨询:点击这里给我发消息

邮件:

工作时间:周一至周五,9:30-18:30,节假日休息

蜀ICP备20014858号-3