基于Unity3D的船舶电力推进系统虚拟仿真设计
2021-03-16李建伟
李建伟
应用研究
基于Unity3D的船舶电力推进系统虚拟仿真设计
李建伟1, 2
(1. 青岛港湾职业技术学院,青岛 266404;2. 船舶动力工程技术交通运输行业重点实验室(武汉理工大学),武汉 430063)
以某电力推进科考船为母型,在分析电力推进结构和原理的基础上,提出基于Unity3D的虚拟仿真设计,并介绍系统设计过程中的关键技术。仿真结果表明:该设计能实现船舶电力推进系统虚拟场景的漫游控制、部件检查、人机交互等功能,其生成的可执行程序有助于电力推进系统的操作和培训。
船舶电力推进 虚拟仿真 Unity3D
0 引言
船舶电力推进系统以其机动性好、布局灵活等诸多优点,被广泛应用于大型集装箱船、超大型散货船、LNG船、客运滚装船、破冰船、挖泥船等领域。罗成汉利用Profibus现场总线技术设计船舶电力推进模拟平台,对船舶电力推进系统的推进电机的启动、制动和紧急反转进行仿真,分析了三种工况下推进电机对电网的冲击[1];秦俊峰等在空间矢量调制直接转矩控制算法的基础上利用MATLAB/Simulink建立船舶电力永磁同步推进电机的仿真模型,分析了电力推进船舶的额定负载起动、转速转矩突变及低速运行性能[2];宋春楠采用PI模糊控制对船舶电力推进系统中螺旋桨负载进行模拟研究,分析了螺旋桨的三种典型转矩特性,并结合最小二乘法对螺旋桨特性曲线进行曲线拟合[3]。
随着虚拟现实技术的发展,船舶电力推进系统的虚拟仿真研究逐渐展开,但尚未成熟。王成睿利用 Java3D 虚拟现实软件平台,搭建了吊舱式电力推进器的虚拟场景,实现了推进器的虚拟漫游和操控[4];栾成利用Visual C++6.0 及Open GL对船舶综合电力推进系统进行三维建模,实现了船舶电力推进系统各部件的模型展示和初步交互[5]。鉴于此,本文利用Unity3D虚拟现实编辑平台,对船舶电力推进系统进行虚拟仿真设计。
1 虚拟仿真的方案设计
基于Unity3D的船舶电力推进系统虚拟仿真设计旨在借助Unity3D虚拟现实编辑平台塑造一种可在液晶屏上演示和操作的虚拟人机交互系统,其演示和操作内容涵盖了船舶电力推进系统的相关理论知识和实践技能,系统设计流程如图1。
图1 虚拟仿真构建思路
系统设计首先整理和分析船舶电力推进系统的各组成部分、动作原理和操作流程,并结合实船调研资料分析出系统设计所需的数学模型,忽略一些次要影响因素,对模型进行必要的简化,为后期的建模提供便利。
根据数学模型的简化结果,采用3dsMax创建船舶电力推进系统的三维模型,并对模型进行必要的纹理、渲染、烘焙及动画设置处理[6],将三维模型保存成.FBX后缀文件,以方便Unity3D虚拟现实编辑平台的识别和导入。
利用Unity3D编辑平台对导入的三维模型进行编辑、调整和精细化处理,同时利用第一人称摄像机和Shader渲染出船舶电力推进系统的虚拟场景[7],借助Java脚本和C#脚本实现船舶电力推进系统的设计功能,最后发布成船舶电力推进系统虚拟仿真平台。
2 虚拟仿真的关键技术和实现
2.1 系统数学模型及简化
基于Unity3D的船舶电力推进系统虚拟仿真以某先进的轮渡船为参考模型进行建模,其母型船参数为船长182.6米、船宽26.8米、型深13.35米、设计吃水7.6米、排水量16729吨,载重7828吨,所建数学模型涵盖了电气、机械及热力方面的相关理论知识。
船舶电力系统的数学模型包括柴油同步发电机数学模型、真空断路器数学模型、推进变压器数学模型、艏侧推电机数学模型、传输线路数学模型、静态负荷数学模型、动态负荷数学模型及吊舱式永磁同步推进电机数学模型,论文以吊舱式永磁同步推进电机数学模型为例进行阐述。
永磁同步推进电机电压等级690 V,额定转速200 r/min,额定功率560 kW,额定电流583 A。在建模时,采用坐标系下的派克-戈列夫模型,并忽略磁场的高次谐波分量、电枢反应、励磁绕组和阻尼绕组的漏感,确保稳态和瞬态性能[8-9]。
永磁同步推进电机的电压方程为:
u=dΨ/d- ωΨ+ Ri
u=dΨ/d- ωΨ+ Ri
2q/d+ R2q2q0
2d/d+ R2d2d0
磁链方程为:
Ψ=Li+ Li2d+ Li
Ψ= Li+ Li2q
2d2di+ Li+ Li
2q2q2q+ Li
电磁转矩方程:
(Ψi-Ψi)
机械运动方程为:
d=T-T-RΩ
为分析和模型控制需要,进行如下假设:
①假设磁路饱和、磁滞和涡流对参数无影响;
②假设导体的集肤效应可以忽略;
③假设温度和频率对永磁体性能无影响;
④假设转子结构对直轴和交轴完全对称;
⑤假设转子阻尼绕组课等效为直轴和交轴两个独立绕组[10]。
根据上述假设,模型简化为:
u=dΨ/d- ωΨ+ Ri
u=dΨ/d- ωΨ+ Ri
Ψ=Li+ Li
Ψ= Li
(Ψi-Ψi)=[Lii+(L-L)ii]
以上所述式子中,表示电压;表示电流;表示磁链;为定子直轴分量;为定子交轴分量;2为转子直轴分量;2为转子交轴分量;为电感。
2.2 三维建模及优化
基于Unity3D的船舶电力推进系统虚拟仿真的三维建模,是在各机械数学模型和电气数学模型的基础上,忽略次要影响因素所创建的简化模型,进而为系统的三维建模提供数据支撑[6]。
为保证所构建虚拟场景的逼真度,选择合适的建模方法称为关键。根据本系统的实际建模需要,采用了3ds Max建模软件提供线框建模、多边形建模和NURBS建模等建模方法。
对于配电系统的电压表、电流表等的表盘可采用线框建模,以方便精准把握表盘尺寸的大小,凹凸程度以及指针的坐标,使模型精确细化,并能有效减少冗余的三角面,方便后期的场景运行;对于形状规则的配电板、转换开关、地气灯和操作按钮等则采用多边形建模,利用3ds Max提供的“编辑多边形”修改器能方便快捷的创建三维模型;对于真空断路器、艏侧推器和吊舱式电力推进器则采用非均匀有理数B-样条线的NURBS建模方法,图2为船舶电力推进系统配电装置,图3为吊舱式电力推进器。
图2 船舶电力推进系统配电装置
为了保证所设计的虚拟系统运行的流畅性和逼真度,同时兼顾运行时少占用内存,必须对三维模型进行必要的优化。模型优化的目的是有效减少三角面的数量,常采用MultiRes优化法[11]。其方法如下:首先将待优化模型转化为可编辑多边形,然后利用MultiRes命令进行优化,在优化过程中要合理把握模型大小和模型准确性之间的最优解,并设置分辨率中的点百分比,可有效减少模型的顶点数和三角面数,达到优化的效果。
图3 吊舱式电力推进器
2.3 漫游功能及碰撞检测
船舶电力推进系统虚拟仿真设计的漫游功能可对各部件进行动态展示,宛如在实际场景中漫步,方便对各部件的细节进行检查并对关键部位进行微调,漫游功能的实现主要采用“第一人称相机”配合脚本来实现,最终的人机交互可通过鼠标和键盘来控制,也才采用预制的漫游路径来展示。
在漫游控制过程中,为了达到沉浸式的漫游效果,增强参与感,同时避免“第一人称相机”与各部件及周围环境的干涉情况出现,必须进行碰撞检测的设置。论文采用“基于固定时间片长度的碰撞检测算法”,即将虚拟场景中的物体运动过程按时间划分为很多等长的时间片,在每一个时间片结束时对物体进行碰撞检测。其关键在于选择合适的时间片长度,既可避免出现漏报现象,又能有效降低计算机内存占用[6]。
采用该算法中逻辑的空间包围盒将虚拟物体包裹起来,并将该包围盒视作刚体,这样在漫游时就能快速实现碰撞检测,有效避免物体间的重叠现象。
2.4 真空断路器的检修流程
真空断路器是船舶电力推进系统的重要部件,为提高真空断路器的可靠性,操作人员根据实际状况定期对真空断路器进行检修,主要包括检测真空灭弧室的真空度、调整真空断路器的超行程、整定真空断路器同期性、调整真空断路器的分合闸速度和检修操作机构[12](运动部件的磨损、紧固件是否松动、清除绝缘表面灰尘和加注润滑脂)。
在实船上,通常将真空断路器装入高压开关柜中,并安装起隔离电路作用的隔离开关、起安全保障作用的接地开关和起过电压保护作用的RC吸收器等[13]。为了确保操作者的安全,RC吸收器必须充分放电,检修操作必须严格按照既定的操作规程进行,其流程如下:
2.5 交互功能及打包发布
船舶电力推进系统所涉及的交互功能主要由脚本来实现,Unity3D提供了Boo脚本语言、Java脚本语言和C#脚本语言[14],其中Boo脚本语言在Unity3D编程中很少使用,Java脚本语言属于弱类型,后期的维护和调试比较繁琐,可用于实现简单的交互,诸如“转换开关”的选择切换、“指示灯”的颜色改变、“操作部件”的平移、“高压开关柜”的打开及关闭等。
图4 真空断路器检修流程图
C#脚本语言使用比较广泛,可用于实现复杂的逻辑关系,同时用户可根据习惯编写自定义脚本,并能轻易建立脚本之间的连接和调用,整合各类Event事件,实现复杂逻辑的实时仿真。
为了更好展示船舶电力推进系统的虚拟仿真程序,需要对所编辑的虚拟场景进行打包和发布。在打包时,需要设置Rendering参数、Identification参数、Configuration参数及Optimization参数,并配合Build按钮进行打包[16]。
Unity3D平台可将编辑好的虚拟仿真场景发布成macOS或Windows系统程序。对于macOS系统,发布成app bundle,囊括了所有的资源,且可以直接执行;对于Windows系统则发布成.exe后缀名的可执行文件,同时生成XXX_Data文件,方便浏览和查阅。
3 结束语
基于Unity3D虚拟仿真平台设计并开发了船舶电力推进系统,模拟了船舶电力推进系统的发电操作、并车操作、配电操作、真空断路器的检修、艏侧推器的启动及吊舱式电力推进器的工作过程,并增加了First Person Conttroller,提升了用户的体验效果,实现了系统的人机交互。
该仿真系统具良好的交互功能和逼真的沉浸感,操作者可以在虚拟环境中体验船舶电力推进系统的各种操作,满足船舶电力推进系统操作人员培训的基本要求,具有对于理顺船舶电力系统的操作流程和人员培训具有较高的参考价值。
[1] 罗成汉. 船舶电力推进模拟平台的研究[D]. 武汉: 武汉理工大学, 2013: 1-8.
[2] 秦俊峰, 白洪芬, 颜泽锌, 齐运永. 船舶电力永磁同步推进电机空间电压矢量DTC[J]. 中国航海, 2017(12): 25-29.
[3] 宋春楠. 船舶电力推进系统中螺旋桨负载模拟的研究[D]. 哈尔滨: 哈尔滨工程大学, 2011: 1-7.
[4] 王成睿. Web3D虚拟现实平台及吊舱推进器虚拟操控的研发[D]. 厦门: 集美大学, 2014: 5-13.
[5] 栾成. 船舶综合电力推进系统三维建模与初步实现[D]. 哈尔滨: 哈尔滨工程大学, 2012: 23-31.
[6] 李建伟. 船舶辅锅炉操控系统的三维实体建模与虚拟仿真[D]. 厦门: 集美大学, 2009: 27-31.
[7] Charles Bemardoff. NGUI for Unity3d[M].BIRI VirnGAM-MUMBI: Packt Publish. 2014.
[8] 乔鸣忠, 于飞, 张晓锋.船舶电力推进技术[M]. 北京:机械工业出版社, 2019: 55-63.
[9] 汤天浩, 韩朝珍. 船舶电力推进系统[M]. 北京: 机械工业出版社, 2015: 103-112.
[10] 武起立. 烟大铁路轮渡变频电力推进系统的研究[D]. 大连: 大连海事大学, 2008: 40-47.
[11] 栾飞. 基于Unity3D的液压传动虚拟仿真教学系统开发[D]. 济南: 山东建筑大学, 2015: 26-29.
[12] 李凯. 基于PLC的船舶中压电站模拟器研发[D]. 厦门: 集美大学, 2014: 36-41.
[13] 宋洋涛. 船舶电力推进自动控制系统设计与研究[D]. 大连: 大连海事大学出版社, 2014: 2-7.
[14] 加藤政树, 罗水东. Unity游戏设计与实现[M]. 北京: 人民邮电出版社, 2019: 71-75.
[15] 万隆君. 基于VR技术的船舶管路装配虚拟仿真系统设计[J]. 中国造船, 2017(3): 186-191.
[16] 马遥, 陈虹松, 林凡超. Unity3D完全自学教程[M]. 北京: 电子工业出版社, 2019: 313-322.
Virtual Simulation Design of Marine Electric Propulsion System Based on Unity3D
Li Jianwei1, 2
(1. Department of Marine Engineering, Qingdao Harbor Vocational And Technical College, Qingdao 266404, Fujian, China;2. the Key Laboratory of MarinePower Engineering &Technology(Wuhan University of Technology), Ministry of Transport, Wuhan 430063, China)
U665.1
A
1003-4862(2021)02-0007-04
2020-09-10
船舶动力工程技术交通运输行业重点实验室(武汉理工大学)开放课题基金资助项目(No.KLMPET2018-07);山东省高等学校科技计划项目(J18KB034)
李建伟(1981-),男,副教授。研究方向:虚拟仿真。E-mail: joyleejianwei@163.com