基于动力定位平台的虚拟仿真系统
2024-04-18綦志刚
綦志刚, 杨 帆, 李 冰
(哈尔滨工程大学智能科学与工程学院,哈尔滨 150001)
0 引 言
国内许多高校在船舶动力定位的教学中缺乏相关实验环境和平台,学习理论知识只能通过课本,难以直观了解动力定位平台各个系统的结构和工作原理[1]。采用虚拟仿真技术建立模拟海洋环境及受仿真数据驱动平台的虚拟仿真系统具有重要意义。通过在虚拟仿真系统中切换不同视角观察系统可靠性和平台航行的实际状态,完成可视化的实验虚拟仿真。
袁伟等[2]搭建了关于动力定位系统的半实物仿真平台,通过该平台验证了储油轮的控制效果,为研究船舶运动控制技术等提供了试验平台。李婷云等[3]使用仿真软件和虚拟仿真技术构建了船舶动力定位系统,使观察者可多方位观察,为船舶建设前期提供论证。Midhin等[4]使用仿真软件设计了无人水下航行器的仿真系统,该系统可在虚拟环境中进行模拟海流等外部干扰和优化控制器,提高水下机器人的定位性能和控制精度。
本文以动力定位平台为核心,搭建虚拟仿真系统,模拟场景中的运动状态,实现动力定位平台推力优化分配和平台运行的可视化,验证推力分配的合理性,加强实验教学效果。
1 虚拟仿真系统
动力定位平台虚拟仿真系统是一个人机交互平台,具有虚拟现实(Virtual Reality,VR)技术的沉浸式、交互性特点[5],通过强大的几何体和材质等实时渲染技术构建逼真的三维虚拟场景,使系统可更贴近真实环境。
动力定位平台虚拟仿真系统由虚拟仿真平台、数据管理系统、数值仿真平台组成,如图1 所示。用户使用VR设备与虚拟仿真系统中的UI交互,设置海浪参数和平台的运动位置;通过数值仿真平台进行仿真。数据管理系统主要实现数值仿真平台与虚拟仿真平台间的数据通信、读取、转化处理等工作。系统运行后可以可视化的观察平台三自由度的运行效果及推进设备旋转情况[6]。
图1 虚拟仿真系统构成图
2 虚拟仿真系统
虚拟仿真系统设计主要是平台三维场景和交互界面;数据传输和处理;动力定位的数学模型和推力分配算法及控制器。
2.1 虚拟仿真平台
(1)三维场景。三维场景建模主要是建立动力定位平台的三维模型和海洋环境。收集动力定位平台的资料,包括平台的外观及尺寸、平台甲板建筑物的样式等。利用Solidworks、Blender 软件依据实际参数对动力定位模型进行绘制。具体建模流程如图2 所示[7]。
图2 三维建模流程
动力定位平台虚拟模型由船体、船舱、推进器、甲板标等组成。通过Solidworks对装置内部和外部分别建模,将其导出为STL 格式;将导出的模型导入到blender,切换编辑模式、物理模式,对模型平移、旋转、缩放操作,并进行UV 展开,为制作贴图、材质做准备[8]。模型效果如图3 所示。
图3 动力定位模型
将模型UV展开,绘制简陋的样式及标明颜色,通过绘制纹理贴图软件进行详细的基础色、法线、环境光等贴图的绘制,将其保存并在blender 中进行编辑[9]。对曲面进行平滑着色并进行渲染获得完整的模型资源。UV展开及贴图如图4 所示。海洋环境使用虚拟引擎5(Unreal Engine 5,UE5)的水系统插件进行构建。将海洋拖入世界大纲中,在细节面板对海洋的颜色、波浪的长度、高度、浪向角等参数进行细致调整,使其更接近真实海洋环境,如图5所示。将建立的平台模型导入UE5 进行整合。
图4 模型的UV展开以及贴图
图5 海洋环境构建图
(2)三维场景优化。精细的平台模型和场景可极大提高仿真系统的真实感、流畅度,更具沉浸感。针对本系统的特点,使用多细节层次技术(Levels of Detail,LOD)和虚拟几何体系统技术(Nanite)对模型和水系统进行优化。
LOD技术可根据模型节点在显示环境所处的位置和重要程度,来决定物体渲染的资源分配,降低非重要物体的面数和细节数,以获得高效率的渲染计算[10]。当近距离观察海洋时,渲染精模,呈现更高的细节程度;距离较远观察物体时,只渲染简模甚至不渲染,呈现出的细节程度更低,如图6 所示。
图6 海洋环境优化
采用全新的内部网格体格式和渲染技术来渲染像素级别的细节以及海量对象,它仅处理用户能够感受到的细节。根据摄像机视图以不同LOD,随时切换群集,在不破坏同一对象相邻群集的情况下完美连接。通过Nanite使模型更细节化和实时渲染更高效,如图7 所示。
图7 平台模型优化
(3)交互设计。交互设计[11]包括用户与系统UI的交互,用户与系统中环境和平台的交互。交互逻辑通过UE5 的蓝图进行构建,主要功能为漫游、模型结构可视化以及数据可视化等。
UI具有选择实验类型、海浪建模和参数设置等功能。参数设置包括控制策略、波高、风速和风浪谱等,同时可实时显示仿真数据。界面设计应用了事件分发器、直接通信等蓝图通信功能,实现数据更新和相应事件的触发,如图8(a)所示。UI 交互主要通过射线交互,VR左、右手柄控制器生成红色射线,UI 接受硬件输入,同时开启玩家控制器输入。UI检测到射线与其发生碰撞,可产生点击仿真按钮、选择参数等操作。如图8(b)所示。
图8 UI交互设计
用户与环境、平台的交互利用VR设备,在VR模式下进行设计。通过UE 摄像机组件模拟VR 设备中的HTC Vive Pro2 头显,摄像机的旋转等同于人体带上VR头显的运动,摄像机可将场景中的画面实时传输到VR头显,使其保持运动同步。2 个运动控制器组件添加手部骨骼模型模拟VR设备的左、右手柄,捕捉手部动作并同步,如图9(a)所示。粒子系统组件用于模拟移动轨迹,实现瞬移功能,如图9(b)所示。为使模型结构和海洋环境可视化,采用多视角转换,在不同视角上放置摄像机,如正视、左视、俯视、水底和甲板等视角,进行实时监测,如图9(c)所示。通过相应按键转换到相应的视角画面进行观察,这样更易观察到航行时的平台效果。展示效果如图9(d)所示。
图9 用户与环境交互设计
2.2 数值仿真平台设计
本文考虑动力定位平台在水平面上的三自由度横荡、纵荡和艏摇运动[12]。为降低能量损耗和推进器磨损,仅考虑低频运动,平台模型可以简化为:
式中:η·=[x,y,ψ]T为北东坐标系下的位置和欧拉角;v =[u,v,r]T为平台坐标系下的速度;R(ψ)为转换矩阵;M为惯性矩阵;D 为阻尼矩阵;τ为环境干扰力和推进器推力的合力。
动力定位平台工作时会受到海风、海浪和海流的干扰。其中二阶波浪干扰会使运动平台偏离所在位置,在进行推力分配时需要考虑这些干扰影响[13]。本文仅考虑风载荷与浪载荷的干扰。
动力定位平台的推力分配需综合考虑推进器的推力、方位角、推进器功率与推力间的关系等因素,确定等式约束、不等式约束及目标函数从而获得最优解,使其满足到达指定位置所需要的推力和角度[14]。对于平台的6 个推进器的推力分配采用序列二次规划算法进行求解。推力分配算法具体推导及约束条件建立过程详见文献[15]。
2.3 数据管理系统设计
将数值平台仿真出的数据保存为csv 格式文件。在UE5 工程中创建C ++接口,设置文件读取路径及数据执行时长,通过接口读取csv文件中的数据,并将其保存到UE5 的资产中。在关卡蓝图中设置该资产关联,同时建立函数实现从资产中读取数据功能,如图10 所示。将读取的数据存储为变量后,经过线性插值函数逆运算转变为0 ~1 的浮点数,再经线性插值函数映射到虚拟场景中的具体坐标。将坐标的数据传输给动力定位平台,驱动平台根据采样的数据进行运动。
图10 读取函数代码图
3 仿真与分析
系统的研究对象是一个小型的动力定位平台,平台宽0.5 m。仿真过程中的环境干扰参数设置为:风速为2.7 m/s,风向角为60°,波浪的有义波高为0.3 m,浪向角为60°。控制器采用传统的PID 控制,推力分配优化算法采用序列二次规划算法。
图11 为数值平台仿真运动轨迹,可发现通过PID控制顺利克服了环境干扰,从初始点成功到达给定目标位置。图12 为虚拟平台仿真运动轨迹,当虚拟平台运行时可通过UI切换不同视角观测到平台运动状态,且运动轨迹与数值平台运动轨迹基本一致。
图11 数值平台运动轨迹
图12 虚拟平台运动轨迹
由图13 可知,每个推进器的推力曲线,1、3、4 和6号推进器的分配结果较为相近。各推进器推力均在同一个数量级,且不超过最大推力。在平台到达给定目标位置时,推力都趋向于稳定,说明满足了推力分配模型的约束条件。
图13 推进器推力曲线
4 结 语
本文设计了动力定位平台虚拟仿真系统。实现了系统的交互、漫游及以第一人称视角沉浸式观察平台运行情况。通过数值平台对动力定位平台低频运动及环境载荷进行了建模及仿真。
在动力定位平台虚拟仿真系统中可观察平台运行过程,可视化地验证设计的控制方法、推力分配优化方法的合理性和正确性;将其引入实验教学后可激发学生学习的积极性并丰富了实验教学内容。在后续研究中,将对系统进行进一步的优化设计,采用交互选择模式来可视化验证其他控制算法和推力分配策略。