基于Unity3D的数字化工厂建模仿真系统
2020-12-06张宏帅姜宝柱
张宏帅 姜宝柱
摘 要:本文以硅片制造生产车间和工艺流程为对象,研究制造设备仿真建模和工艺实时数据驱动仿真技术。首先采用SolidWorks完成实体建模,借助3D Max实现模型渲染,并以Unity3D场景集成的方式对生产车间和设备进行数字化三维建模,其次研究了基于实时数据驱动、有限状态机仿真的设备实时仿真方法,并基于消息队列中间件技术实现数据采集系统内物理设备实时数据与虚拟仿真系统内虚拟设备的绑定,最终利用网络编程技术实现虚拟仿真系统的搭建。测试结果证明,仿真系统具有集成建模仿真资源便捷、可复用性强、灵活性和可配置性高等特点。
关键词:数字化工厂;数据驱动;Unity3D
中图分类号:TH122;TH123 文献标识码:A 文章编号:1003-5168(2020)29-0071-04
Abstract: In this paper, the manufacturing equipment simulation modeling and process real-time data-driven simulation technology were studied. Firstly, SolidWorks was used to complete solid modeling, 3D Max was used to realize model rendering, and Unity3D scene integration was used to digitally and three-dimensionally model the production workshop and equipment, at the same time, a real-time equipment simulation method based on real-time data driving and finite state machine simulation was studied, and based on the message queue middleware technology, the real-time data of the physical equipment in the data collection system was bound to the virtual equipment in the virtual simulation system, and finally the network programming technology was used to realize the construction of the virtual simulation system. The test results prove that the simulation system has the characteristics of convenient integrated modeling and simulation resources, strong reusability, flexibility and high configurability.
Keywords: digital factory;data-driven;Unity3D
近年来,智能制造领域的快速发展引领了产业革命,数字孪生、信息物理系统(CPS)等概念成为智能制造的组成部分。工业虚拟仿真是实现数字孪生和CPS虚实结合的方向之一,在智能制造发展中具有举足轻重的地位。传统工业虚拟仿真主要集中在工厂产线布局、仿真动画演示等展示性功能上。本研究以硅片制造生产车间和工艺流程为研究对象,进行制造设备仿真建模和工艺实时数据驱动仿真技术研究。首先采用SolidWorks完成实体建模,借助3D Max实现模型渲染,并以Unity3D场景集成的方式对生产车间和设备进行数字化三维建模,同时研究了基于实时数据驱动、有限状态机仿真的设备实时仿真方法,并基于消息队列中间件技术实现数据采集系统内物理设备实时数据与虚拟仿真系统内虚拟设备的绑定,最终利用网络编程技术实现虚拟仿真系统的搭建[1]。测试结果证明,建模仿真系统具有集成建模仿真资源便捷、可复用性强、灵活性和可配置性高等特点。
1 关键技术研究
1.1 基于实时数据的设备模型驱动仿真
在虚拟运动仿真中,基于实时数据的仿真主要有两种类型:根据位移/旋转运动仿真、根据速度/角速度运动仿真。
1.1.1 根据位移/旋转运动仿真。采集的实时位移数据为离散的位置点,为保证模型运动连续性,在物体运动的前后两个坐标点和路径拐点处设置路径节点,通过线性插值得到运动过程中的其他坐标点,将坐标点连接起来即得到物体运动路线[2]。Unity3D的世界坐标系为[Y]轴向上的右手坐标系,故考虑物体在[XOZ]平面上做平移和旋转运动,则物体在原始位置时的向量坐标为已知量[a],其坐标位置为[x,0,z]。運动终点的向量坐标为[b],其坐标位置为[x′,0,z′],则可得向量坐标[b=x-x′,0,z-z′],[θ]为[a]与[b]的夹角,则由余弦公式可得:
物体运动的平移、旋转均可通过以上两个变换矩阵实现,其中[dx]、[dy]、[dz]分别表示物体在[X]轴、[Y]轴、[Z]轴方向上的平移量。由于物体是在[XOZ]平面上运动,故[dx]=0,[θ]表示物体运动绕[Y]轴偏移的角度。对物体先做绕[Y]轴旋转变换再做平移变换,其运动模型为:
综上可知,由式(2)计算出[θ]值,再代入式(5)求出物体运动模型,并按照插值法确定的运动路线则可完成模型的实时驱动[3]。模型运动的可视化在Unity3D环境中进行,可由脚本transform类中的localPosition属性和localEulerAngles属性实现,实现的C#脚本代码如下:
transform.localPosition = new Vector3(x, y, z);
transform.localEulerAngles = new Vector3 (angx, angy, angz);
其中,x、y、z为物体在Unity环境中相对父节点的位移坐标;angx、angy、angz为物体在Unity环境中相对父节点坐标系的欧拉角旋转角度。
1.1.2 根据速度/角速度运动仿真。速度/角速度运动仿真的实现与位移/旋转运动仿真实现方式类似。Unity3D脚本中提供Update函数实现按帧刷新机制,则基于速度/角速度的仿真脚本可表示为:
transform.Translate(new Vector3(0, v * Time.deltaTime, 0), Space.Self);
transform.Rotate(new Vector3(0, r * 6 * Time.deltaTime, 0), Space.Self);
其中,v为直线位移速度,m/s;r为旋转角速度,r/min;Time.deltaTime为Unity完成上一帧的时间;Space.Self设定运动默认为物体自身坐标系运动。
1.2 基于有限状态机的设备虚拟仿真
受限于实时数据采集的不完整性,某些情况下无法获取到仿真物体的真实位移等数据,无法基于位置数据实现连续仿真,但可获取设备工作状态数据,建立设备有限状态机模型(Finite-State Machine,FMS),对设备数据在满足一定条件下的状态进行仿真演示。在Unity3D仿真环境中,可使用动画状态机Animator实现不同状态下动画仿真的切换与管理。图1为磨片机动画状态模型,磨片机定义空闲、上料、磨削、退刀下料四种状态,每种状态对应一种动画仿真过程演示。通过实时获取磨片机状态数据,可按照数据规则条件触发不同的动画仿真演示。Animator提供Bool、Int、Float、Trigger四种状态转换条件及其组合的复杂状态转换条件,可支持复杂状态仿真管理。
1.3 消息队列通信技术
虚拟仿真系统的仿真驱动数据源来自包括SCADA系统、AGV管控系统在内的多种、异构的数据采集系统。各类数据的数据结构定义方式、数据编码格式、数据服务质量要求等特征各不相同。使用统一的AMQP(Advanced Message Queued Protocol)高级消息队列中间件实现的数据集中分发服务,可以解决多系统应用耦合、异步消息、消息阻塞等问题。
基于AMQP的实现途径有很多,主流的有LShift提供的RabbitMQ和Apache公司的Qpid。两者在技术上都支持多种通信模式,支持优先级,具有较高的可靠性和灵活的路由,具有可用的队列,支持事务和消息排序等。但是,RabbitMQ基于Erlang语言实现,在高并发性上具有天然的优点。当消息长度较小时,RabbitMQ具有比Qpid更好的输出性能,更适用于工业现场数据单次传输小、传输次数频繁的情况。本系统在数据通信集成方面选择RabbitMQ实现数据传输。RabbitMQ工作原理如图2所示。
2 系统整体设计
仿真系统采用C/S架构,系统设计以数据模型为核心,定义实体生产车间映射数据,通过服务端数据库配置动态管理仿真场景设备布局等信息。通过RabbitMQ消息队列接口与其他信息系统实现数据交换、接收设备实时数据,并通过数据处理模块实现虚拟场景设备的真实数据绑定,并通过运动仿真管理模块为虚拟设备加载脚本实现数据驱动仿真运动。
通过场景界面管理模块和多视角相机管理功能模块提供多种虚拟场景人机交互方式。仿真系统软件架构如图3所示。
3 系統通信数据流设计
仿真系统软件架构如图4所示。
仿真系统与外部系统的数据交互主要分为设备实时数据和场景配置数据两部分。设备实时数据主要来自工厂现场的SCADA、DCS、AGVS等系统,通过搭建实时数据消息队列服务作为数据中间件,实现各个数据采集系统的实时数据与仿真系统的连接;场景配置数据主要包括仿真环境中设备布局、设备台账信息、设备实时信号绑定等配置数据,此类数据通过SQL Server数据库配置。
4 系统功能流程
系统功能流程如图5所示。
从图5可知,系统启动后进行用户登录验证,登录用户将进入生产车间总体鸟瞰布局界面查看,通过选择对应区域进入漫游,在漫游场景中通过下拉列表在漫游和监视视角间进行切换。同时,可从漫游界面进入系统配置界面进行设备管理等相关功能操作。
5 系统测试
虚拟车间场景第一人称漫游测试效果如图6所示;数字化虚拟车间被划分成多个区域,如图7所示,可通过预设的固定相机视角监视整个目标区域;仿真系统内虚拟设备由来源于数据采集系统内的实时数据驱动,如图8和图9所示。
6 结语
本研究对硅底基智能制造生产车间及设备进行了数字化三维建模,通过规范建模质量标准,实现仿真性能最优化。其间通过实时数据直接驱动连续仿真和基于有限状态机的离散仿真两种方式,实现了实时数据驱动的设备虚拟仿真,最终设计并搭建了一种数字化建模仿真系统,其可实现对硅底基智能制造工厂车间环境漫游、监视、实时状态仿真、动态场景配置等功能。
参考文献:
[1]胡凡成.基于Unity3D的实时数据驱动数字化车间研究[D].长沙:湖南大学,2018.
[2]姜康,柯榕,赵小勇,等.数字化车间虚拟监控系统研究[J].航空制造技术,2016(20):97-100,104.
[3]柯榕.车间制造状态三维虚拟监控与预警方法研究[D].合肥:合肥工业大学,2015.