1. 引言
随着“中国制造2025”战略的深入推进,高端装备制造业对生产效率、资源利用率以及智能化提出了更高要求。关节轴承作为航空航天、医疗器械等领域的关键零部件,其制造具有多品种、小批量、高精度的特点,生产过程复杂,管理难度大。在这种背景下,提升生产过程的智能化水平,优化车间资源配置,已成为推动高端制造转型升级的关键路径。
针对制造系统的智能化管理,国内外学者已展开了大量研究。在国外,KO等人利用Aspen HYSYS等平台构建化工动态事故模型[1]。Nakai等人开发了面向化工安全培训的VR系统[2],但大多聚焦于特定环节的仿真,缺乏面向制造流程的整体优化。国内研究则多集中在教学和培训场景,如孙佳文等开发的整船虚拟训练平台[3];魏士松等设计的航天器维修仿真系统[4];熊巍等人利用Unity3D开发了一个化学实验虚拟仿真系统[5]。尽管具备较强交互性,但在车间调度与布局优化方面仍显不足。部分学者如吴琪尝试基于Unity3D构建虚拟漫游系统[6],但未融合智能算法。阚研则提升了交互设计,但未深入生产优化问题[7]。总体来看,现有系统多为静态展示或单一功能模块,难以满足制造企业多目标协同优化的实际需求。
在实际生产中,某些车间存在物流路径交叉、搬运距离长、设备利用率低等问题,而传统依赖人工经验的布局与调度方法难以实现高效协同。此外,缺乏有效的数字化验证手段,导致优化方案的实施面临高昂的试错成本。目前,一些软件能够实现车间的二维平面展示以及单个设备的三维动态展示,但关于车间调度决策和布局优化的一体化虚拟仿真系统的研究仍较为稀少。因此,急需一种集成优化算法与可视化技术的智能系统,以实现对车间布局与生产调度的统一规划和实时评估,从而提升车间整体运行效率和智能化水平。
针对上述问题,本文构建了一套基于Unity3D的虚拟仿真系统,用于超精密关节轴承车间的智能化管理。该系统集成SLP-GA混合布局优化模型与NSGA-II调度算法,结合三维可视化与交互技术,实现对车间布局、任务调度及其优化结果的动态呈现与验证。具体包括:① 开发轻量化三维模型库,兼顾渲染效率与模型精度;② 设计多目标优化算法接口,支持物流成本、非物流关系、碳排放与最大完工时间的协同求解;③ 构建交互式虚拟环境,提供布局重构、生产漫游与数据监测功能。系统经实际案例验证,能有效提升车间物流效率与资源利用率,为离散制造企业实现数字化、智能化转型提供了技术支撑与应用示范。
2. 构建系统所用软件及环境配置
本系统开发所需软件配置及环境如表1所示。
Table 1. Software configuration and environment
表1. 软件配置及环境
资源工具名称 |
规格或版本 |
运行环境操作系统 |
Microsoft Windows11专业版 |
开发平台 |
NET |
开发语言 |
C#、Python |
开发工具 |
VisualStudio2022、PyCharm2024.2.2 |
模型处理 |
Solidworks2024、3ds Max2023、Unity3D2019.4.40f1c1引擎 |
数据库 |
MySQL数据库、Navicat Premium17 |
处理器 |
12th GenIntel(R) Core(TM) i7-12700KF 3.60 GHz |
3. 仿真系统的设计与开发
3.1. 系统功能模块设计
本虚拟仿真系统的目标是对超精密关节轴承车间的布局方案和生产调度方案进行优化求解,并提供车间的三维场景展示。根据功能目标的分析,整个仿真系统可划分为图1和表2所示的几个模块。
Figure 1. Functional module structure of simulation system
图1. 仿真系统功能模块结构
Table 2. Simulation system functional module description
表2. 仿真系统功能模块说明
模块名称 |
功能描述 |
调度决策 |
导入工艺、设备、目标等相关信息,根据已构建的超精密关节轴承车间调度模型求解调度方案,并基于该方案进行生产过程仿真。 |
布局优化 |
导入车间搬运物流成本表、物料流动和空间限制等数据,通过优化算法求解最优布局方案,并对优化后的布局进行三维重构。 |
场景漫游 |
允许用户自由切换、移动和缩放视角,从多个角度对车间及设备进行全方位观察。 |
布局展示 |
展示原始车间布局、SLP方法优化后的布局及遗传算法优化后的最终布局。 |
3.2. 虚拟实体配置
(1) 几何模型
基于Unity3D引擎构建虚拟仿真场景,集成了场景模型、相机、光源等关键组件。相机模拟观察者视角,通过调整其位置、旋转、视野和投影方式来控制视角范围与交互体验。光源则影响场景的光照效果,包括光源的方向、强度和颜色,优化阴影与光照分布,以增强场景的真实感与视觉表现。相机和光源的调整分别如图2和图3所示。
Figure 2. Camera position settings
图2. 相机位置设置
(a) 未开灯 (b) 已开灯
Figure 3. Lighting settings
图3. 灯光设置
在Unity3D渲染引擎中,几何模型的一个细微特征可能需要数万个甚至数百万个三角面片来描述;此外,模型之间相互遮挡时,会使被遮挡的模型在视觉中看不到,但却存在实时渲染等问题。这些问题导致计算机求解时间长,甚至使计算机内存爆满而死机。
为提高显示质量,在减少模型复杂度的同时,确保场景流畅和渲染质量。使用3ds Max的MultiRes命令减少模型的点和面,优化模型网格数据量。通过删除非必要面,提高渲染速率与真实度并减轻处理器负荷。以试验机为例,减面效果如图4所示,模型简化前的多边形面片数为118,417,顶点数为58,435,简化后的多边形面片数为76,417,顶点数为37,129。简化后的模型参数约为优化前的64%,在满足仿真需求的同时,大幅降低了后期Unity3D开发平台的数据处理量。
(a) 模型减面前 (b) 模型减面后
Figure 4. Model surface reduction optimization effect
图4. 模型减面优化效果
根据超精密关节轴承车间构成,需要完成的设备三维模型大致有各类机器设备以及AGV运输小车等。首先,在Solidworks中建立每个设备的三维结构模型,并保存为STP格式;随后,将STP文件导入3ds Max进行外观设计与渲染,并转换为MAX格式;最后将MAX格式的模型文件导入到Unity3D以构建车间三维场景。通过Solidworks和3ds Max制作的关节轴承示例展示如图5所示。
(a) Solidworks模型 (b) 3ds Max模型 (c) Unity3D模型
Figure 5. Spherical plain bearing model construction process
图5. 关节轴承模型构建流程
(2) 物理模型
物理模型在虚拟仿真系统中用于模拟和再现真实世界的物理行为,提升系统的准确性和真实性。本系统基于Unity3D物理引擎,为虚拟生产线模型添加刚体(Rigidbody)、碰撞体(Collider)和物理材质(PhysicsMaterial)等物理属性,并根据需求调整参数。
(3) 行为模型
行为模型主要用于描述自动化生产线的生产制造过程,通过仿真规则设定虚拟设备的运动逻辑,提升系统的仿真与监控能力。模型规则采用C#语言在Unity3D中实现,用于驱动虚拟设备运行并支撑数字孪生系统开发。
3.3. 数据通信技术
系统支持Python算法脚本的参数调节与执行,并可读写和修改MySQL数据库数据,涉及多软件通信配置,主要包括:Unity3D与MySQL的交互、Unity3D与Python脚本的通信、Python与MySQL数据库的连接。
(1) Unity3D与MySQL数据库通信
为实现数据存储、查询和管理,系统采用MySQLConnector/NET作为数据库连接工具,通过MySql.Data.dll库在C#中访问MySQL数据库。数据库的连接流程如下:
1) 创建数据库
在MySQL中创建用于存储仿真数据的数据库,并建立如设备参数信息表(含ID、名称、状态等字段)。同时配置用户权限,确保Unity3D可正常访问。
2) 导入DLL文件
由于Unity3D不原生支持MySQL,需引入MySql.Data.dll。从MySQL官网获取Connector/NET,将该DLL放入Unity项目的Assets目录,并在C#脚本中引用MySql.Data.MySqlClient命名空间。
3) 创建连接MySQL的脚本
在Unity3D中通过C#编写连接MySQL的脚本,设置连接字符串(包含地址、端口、用户等),使用Open()建立连接,执行SQL语句操作数据,最后调用Close()释放资源。
(2) Unity3D与Python脚本的通信
本系统中,Unity3D主要用于调用Python脚本执行计算任务,无需进行信息的实时反馈,因此采用进程调用的方式执行Python脚本。通过在Unity内部的System.Diagnostics.Process类调用Python解释器并执行指定的Python脚本。
(3) Python脚本连接MySQL数据库
在Python脚本中,通过mysql.connector连接MySQL数据库,通过封装的connect_db()、fetch_data(query)等函数实现连接、查询、数据处理与关闭操作,并将结果转为NumPy数组便于后续计算。
3.4. 数据库设计
虚拟系统结合数据库可以完成用户登录、调度决策和布局优化等功能,根据前文Unity3D连接数据库的流程,在成功建立与数据库的连接后,创建名为unity_productioninfo的仿真数据库,如图6所示。数据库中包括车间布局相关数据、车间调度相关数据和用户信息数据。
以用户信息表为例,用户在虚拟系统中成功创建账号后,其登录相关信息会自动储存到用户信息表中,确保用户在系统中能够顺利登录和管理个人数据。用户登录信息表如表3所示。
3.5. 界面交互功能设计
超精密关节轴承车间虚拟系统主要通过Unity3D中的UGUI系统进行界面设计与开发。系统中使用的主要UI控件及其功能描述如表4所示。
Figure 6. Simulation database design
图6. 仿真数据库设计
Table 3. User data format table
表3. 用户数据格式表
属性名称 |
数据类型 |
说明 |
ID |
Int (10) |
序号 |
UserName |
Varchar (255) |
用户的账号名 |
PassWord |
Varchar (255) |
用户的账号密码 |
CreateTime |
timestamp |
用户账号的创建时间 |
Table 4. Controls and instructions used in the system
表4. 系统所用控件及说明
控件名称 |
功能说明 |
Button |
用于触发用户交互事件,例如切换场景、启动功能或关闭界面。 |
Text |
显示静态或动态文本信息,用于系统的标题、说明或提示。 |
Image |
用于显示UI组件中的图片,如图标、背景或装饰元素。 |
InputField |
允许用户输入文本,常用于表单、登录界面或搜索功能。 |
Dropdown |
提供选项列表,允许用户从多个预设值中选择一个。 |
Panel |
作为UI容器,用于组织和管理多个UI元素。 |
Canvas |
UGUI系统的根组件,所有UI元素都需放置在Canvas内部。 |
4. 超精密关节轴承车间虚拟系统应用案例
4.1. 仿真系统用户登录与选择主界面
登录界面采用Unity引擎的UGUI系统构建,结合MySQL数据库实现用户数据的管理。该登录系统不仅满足基本的用户登录验证、账号注册功能,还引入了数据加密与安全防护机制,以保障用户信息的安全性。UI元素的整体设计基于Unity的Canvas组件,并利用Text、InputField、Button等基本元素完成布局。各元素的透明度、边框及字体样式均经过精心调整,以符合系统整体风格。仿真系统用户登录界面如图7所示。
Figure 7. Simulation system user login interface
图7. 仿真系统用户登录界面
用户登录时,系统会根据用户输入的用户名查询用户信息表,若匹配成功则验证密码正确性,完成登录流程。
为提高用户数据的安全性,系统采用SHA-256加密算法对用户密码进行加密处理,SHA-256作为不可逆的哈希算法,可有效防止密码泄露。其加密流程如下:用户在Unity客户端输入用户名和密码,系统在本地通过SHA-256算法对密码进行哈希处理,并将加密后的密码与数据库存储的哈希值比对,若匹配则登录成功,否则提示密码错误。用户密码加密前后对比如图8所示。
(a) 加密前
(b) 加密后
Figure 8. Comparison of user passwords before and after encryption
图8. 用户密码加密前后对比图
(2) 系统选择主界面
选择主界面主要使用Button控件开发,通过对界面进行布局,可以实现场景之间的切换。用户通过主界面选择目标场景并进行后续的操作,主界面是进入其他场景的唯一方式。当用户选择场景切换时,需要先返回至主界面,以降低在场景切换过程中对计算机内存的开销。选择主界面如图9所示。
4.2. 场景漫游
场景漫游是指操作者通过外接设备控制虚拟相机,实现三维空间内的自由移动与视角切换。系统支持自动漫游与手动漫游两种模式:前者基于预设路径由动画系统自动执行,后者通过用户键鼠输入结合碰撞检测实现自由漫游。
Figure 9. Virtual simulation system selection main interface
图9. 虚拟仿真系统选择主界面
(1) 输入控制
三维模型的坐标由Transform组件控制,包括位置(Position)、旋转(Rotation)和缩放(Scale),均基于X、Y、Z轴设置。相机移动与旋转主要依赖虚拟轴控制:
1) 虚拟轴。Unity通过-1至1的虚拟轴读取键盘输入。默认水平轴为“Horizontal”,垂直轴为“Vertical”,可在Project Settings中自定义。
2) 获取虚拟轴数值。如图10所示。通过GetAxis函数获取键盘输入值,决定相机移动方向与速度。W/S控制前后(垂直轴),A/D控制左右旋转(水平轴),输入值逐渐由0变化为±1,实现平滑控制。
Figure 10. View input control flow chart
图10. 视角输入控制流程图
(2) 碰撞检测
在Unity3D中实现漫游碰撞效果,需要结合刚体(Rigidbody)与碰撞器(Collider)组件。刚体用于赋予三维物体物理属性,使其能受力(如重力、阻力、扭矩)作用;碰撞器用于检测物体间的接触,实现碰撞或触发效果。有效碰撞的前提是:两个物体都需挂载碰撞器,且至少一个具备刚体组件。此外,还可设置摩擦力、重力等参数丰富物理交互效果,如表5所示。
为了避免在手动漫游时摄像机超出车间边界,应为摄像机添加刚体组件并启用重力,同时为地面与墙体添加与模型匹配的碰撞器。这样在手动漫游中,摄像机会在接触障碍物时自动受阻,避免穿模,确保视角合理。
Table 5. Component property sheet
表5. 组件属性表
属性名称 |
所属组件 |
物理效果 |
Mass |
Rigidbody |
三维模型质量 |
Drag |
Rigidbody |
控制物体在空气中移动的阻力 |
Angular Drag |
Rigidbody |
控制物体选择时的阻力 |
Use Gravity |
Rigidbody |
启用时物体会受到重力影响 |
Is Kinematic |
Rigidbody |
启用时物体不参与物理引擎计算 |
Interpolation |
Rigidbody |
使物体运动平滑,减少物体在快速移动时的抖动 |
Collision Detection |
Rigidbody |
控制碰撞检测的方式 |
Is Trigger |
Collider |
如果启用,碰撞体不产生物理反应 |
Material |
Collider |
设置物理材质,影响碰撞时的摩擦力和弹性 |
Edit Collider |
Collider |
手动调整碰撞器的大小 |
(3) 动画系统
Unity3D通过Animation工具支持摄像机自动漫游,实现沿特定路径的平滑移动与视角切换。操作流程为:在摄像机添加Animation组件并创建动画文件,使用Animation窗口设置Transform组件的Position与Rotation关键帧,定义运动轨迹,关键帧时间轴如图11所示。Unity会自动生成关键帧间的过渡效果。通过调整动画曲线可优化流畅度,使自动漫游更自然。最后在Play模式中测试,确保效果符合预期。
Figure 11. Automatic roaming keyframe timeline
图11. 动漫游关键帧时间轴
手动漫游界面如图12所示。
4.3. 调度决策
在仿真系统功能选择界面点击“调度决策”按钮后,进入调度决策功能模块,如图13所示。该模块为用户提供了完整的调度参数相关设置与结果分析功能,界面主要由三个部分组成:用户输入、计算操作和查看结果。
(1) 用户输入部分
用户可根据需求选择设备信息或工件信息表。点击“查看”按钮可查看表中基本信息,如图14所示。此外,系统支持超精密关节轴承车间调度的单目标与多目标优化,操作人员可灵活设定调度目标函数,并自定义最大迭代次数,控制优化求解过程。
Figure 12. Manual navigation interface
图12. 手动漫游界面
Figure 13. Scheduling decision function interface
图13. 调度决策功能界面
Figure 14. Processing technology information table
图14. 加工工艺信息表
(2) 计算操作部分
在计算操作部分,可以选择合适的优化算法,如改进NSGA-II算法、标准NSGA-II算法等智能优化算法进行求解。系统将根据用户输入的数据和优化目标,计算出最优调度方案。
(3) 查看结果部分
系统以图表和文本形式展示优化结果。点击“Pareto解”、“收敛曲线”和“查看甘特图”按钮,可分别查看解集、迭代曲线与调度甘特图,便于评估算法性能。
以一次调度求解为例,选择“车间设备参数表1”和“加工工艺信息表1”,设置目标为最小化makespan与碳排放,迭代40次,采用改进NSGA-II算法,点击“计算”后生成图15~17所示结果。
Figure 15. Scheduling Gantt chart
图15. 调度甘特图
Figure 16. Pateto solution graph
图16. Pateto解集图
Figure 17. Convergence curve graph
图17. 收敛曲线图
当算法运行并生成结果图后,可以点击“生产过程仿真”按钮,进行超精密关节轴承车间生产过程的仿真。在仿真过程中,随着时间t的推移,设备状态和调度甘特图会发生变化。设备状态通过信号块颜色表示:灰色为待机状态,绿色为加工状态,红色为停机状态。鼠标悬停在设备碰撞体内时,会显示设备的任务安排数据,格式为:[开始时间,工序编号(Oij),[夹具安装时间,拆卸时间],完成状态(Normal/Standby/Finish),完工时间]。图18显示了装配机生产调度任务数据。各图中的“计时器”文本为仿真时间t,在左上角甘特图中数直的亮黄线为时间扫描指针。
在图19中,t = 0秒时,所有设备处于待机状态,准备开始加工任务。图20中,t = 241秒时,设备1、3和12开始加工,状态为绿色,而已完成的设备2状态为红色,未加工的设备为灰色。图21中,
Figure 18. Assembly machine production task scheduling data
图18. 装配机生产任务调度数据
Figure 19. t = 0 seconds, all processes are about to start processing
图19. t = 0秒,所有工序即将开始加工
Figure 20. Production simulation clip at t = 241 seconds
图20. t = 241秒时的生产仿真片段
Figure 21. t = 1281 seconds, all processes completed
图21. t = 1281秒,所有工序加工完成
t = 1281秒时,所有加工任务完成,设备全部停机,信号块为红色。
仿真过程展示了生产过程的全程,包括时间流逝、任务流转和设备状态变化,直观地展示了每个工件的加工顺序和所在设备,实现了调度方案的可视化。
4.4. 布局优化
通过点击主界面的“布局优化按钮”,进入车间布局优化模块,该模块用于求解超精密关节轴承车间的优化布局,并提供智能调整方案。用户可设置优化目标和最大迭代次数,并调整车间尺寸及功能区长宽参数,进行布局优化。车间及功能区参数设置如图22。
设置完成后,点击“计算”按钮,系统将依据设定目标进行求解,并调整车间布局。结果以图表和数据信息展示,包括优化后的车间布局图、收敛曲线图及算法求解数据,便于分析优化效果。
该模块还支持三维布局重构功能,用户可点击“查看优化后布局”按钮,进入三维视图,直观查看优化后的车间布局,并评估不同参数对车间规划的影响。
Figure 22. Workshop and functional area parameter settings
图22. 车间及功能区参数设置
选取搬运成本表1作为输入数据,优化目标为最小化物流搬运成本和非物流关系最大化。区域的长宽参数根据车间实际数据设置,设定算法迭代次数为100次,采用遗传算法进行求解。点击“计算”按钮后,系统将执行算法求解过程。
算法求解完成后,用户可通过功能按钮查看相应结果。利用遗传算法求解生成的布局图、收敛曲线图分别如图23和图24所示。
Figure 23. Layout diagram generated by genetic algorithm
图23. 遗传算法生成的布局图
Figure 24. Genetic algorithm iteration curve
图24. 遗传算法迭代曲线图
当算法运行完成并生成结果图后,用户可点击“查看优化后布局”按钮,进入本次算法运行的三维布局重构场景,如图25所示。在该三维布局场景中,用户可以查看设备的空间位置,并直观感受设备与各功能区域的相对关系,从而清晰展示布局优化效果,帮助理解优化过程中的关键调整与改进。
点击“优化后布局图”按钮,系统将展示遗传算法生成的二维布局图,如图26所示。通过展示三维重构场景与布局图,用户能够更加全面地把握优化后的车间布局,便于后续的生产调度和资源配置。
超精密关节轴承车间布局优化的目标是最小化物料搬运成本,最大化非物流关系。通过该系统的布局优化模块得到车间最终布局方案,将最终方案与原始布局方案和SLP方法优化方案进行对比。结果显示,系统求解出的最终布局方案具有最低的物流成本和最高的非物流关系密切度。具体情况见表6。
Figure 25. Example of operation results
图25. 运行结果示例
Figure 26. 2D layout diagram
图26. 二维布局图
Table 6. Comparison of logistics costs and non-logistics relationship values of various schemes
表6. 各方案物流成本及非物流关系值对比
布局 |
布局单元编号组合 |
物流成本/元 |
非物流关系值 |
原始布局 |
{13, 12, 11, 7, 6, 10, 9, 5, 3, 8, 4, 2, 1} |
9298.425 |
26.0 |
SLP方法优化布局 |
{10, 9, 8, 11, 7, 6, 5, 4, 2, 13, 12, 3, 1} |
6518.005 |
30.6 |
系统求解最终布局 |
{7, 11, 9, 13, 12, 10, 5, 1, 6, 3, 8, 4, 2} |
5339.805 |
32.8 |
5. 结论
本文基于Solidworks、3ds Max、MySQL与Unity3D,构建了一套面向超精密关节轴承车间的虚拟仿真系统。系统集成布局优化、调度决策、生产过程仿真与三维可视化功能,实现了从二维布局到三维重构的全流程展示。通过三维建模、数据管理与虚拟引擎协同开发,系统有效提升了车间管理的智能化水平,为生产优化提供了直观、高效的技术支撑。